From 4b308e8c396dc9af3e1a97f75d15c055e09a17b2 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Tue, 28 Jul 2015 00:38:59 +0200 Subject: [PATCH 0001/2431] iio:adc:berlin2-adc: use GENMASK and BIT for masks Make use of GENMASK for consecutive bitmasks and BIT for single bitmasks. Signed-off-by: Hartmut Knaack Acked-by: Antoine Tenart Signed-off-by: Jonathan Cameron --- drivers/iio/adc/berlin2-adc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/iio/adc/berlin2-adc.c b/drivers/iio/adc/berlin2-adc.c index 4946d9bf1764..6e20c856f479 100644 --- a/drivers/iio/adc/berlin2-adc.c +++ b/drivers/iio/adc/berlin2-adc.c @@ -27,13 +27,13 @@ #define BERLIN2_SM_CTRL_SM_SOC_INT BIT(1) #define BERLIN2_SM_CTRL_SOC_SM_INT BIT(2) #define BERLIN2_SM_CTRL_ADC_SEL(x) ((x) << 5) /* 0-15 */ -#define BERLIN2_SM_CTRL_ADC_SEL_MASK (0xf << 5) +#define BERLIN2_SM_CTRL_ADC_SEL_MASK GENMASK(8, 5) #define BERLIN2_SM_CTRL_ADC_POWER BIT(9) #define BERLIN2_SM_CTRL_ADC_CLKSEL_DIV2 (0x0 << 10) #define BERLIN2_SM_CTRL_ADC_CLKSEL_DIV3 (0x1 << 10) #define BERLIN2_SM_CTRL_ADC_CLKSEL_DIV4 (0x2 << 10) #define BERLIN2_SM_CTRL_ADC_CLKSEL_DIV8 (0x3 << 10) -#define BERLIN2_SM_CTRL_ADC_CLKSEL_MASK (0x3 << 10) +#define BERLIN2_SM_CTRL_ADC_CLKSEL_MASK GENMASK(11, 10) #define BERLIN2_SM_CTRL_ADC_START BIT(12) #define BERLIN2_SM_CTRL_ADC_RESET BIT(13) #define BERLIN2_SM_CTRL_ADC_BANDGAP_RDY BIT(14) @@ -50,7 +50,7 @@ #define BERLIN2_SM_CTRL_TSEN_MODE_10_50 (0x1 << 22) /* 10-50 C */ #define BERLIN2_SM_CTRL_TSEN_RESET BIT(29) #define BERLIN2_SM_ADC_DATA 0x20 -#define BERLIN2_SM_ADC_MASK 0x3ff +#define BERLIN2_SM_ADC_MASK GENMASK(9, 0) #define BERLIN2_SM_ADC_STATUS 0x1c #define BERLIN2_SM_ADC_STATUS_DATA_RDY(x) BIT(x) /* 0-15 */ #define BERLIN2_SM_ADC_STATUS_DATA_RDY_MASK GENMASK(15, 0) @@ -65,9 +65,9 @@ #define BERLIN2_SM_TSEN_CTRL_START BIT(8) #define BERLIN2_SM_TSEN_CTRL_SETTLING_4 (0x0 << 21) /* 4 us */ #define BERLIN2_SM_TSEN_CTRL_SETTLING_12 (0x1 << 21) /* 12 us */ -#define BERLIN2_SM_TSEN_CTRL_SETTLING_MASK (0x1 << 21) +#define BERLIN2_SM_TSEN_CTRL_SETTLING_MASK BIT(21) #define BERLIN2_SM_TSEN_CTRL_TRIM(x) ((x) << 22) -#define BERLIN2_SM_TSEN_CTRL_TRIM_MASK (0xf << 22) +#define BERLIN2_SM_TSEN_CTRL_TRIM_MASK GENMASK(25, 22) struct berlin2_adc_priv { struct regmap *regmap; From 3ac065224fa07ec7e60213d67464388ac8a52222 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Tue, 28 Jul 2015 00:39:03 +0200 Subject: [PATCH 0002/2431] iio:adc:berlin2-adc: enable interrupts with mutex locked Move the call to enable channel interrupts into its _read() function to have it protected by a mutex. This ensures that only one channel is sampled at a time. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- drivers/iio/adc/berlin2-adc.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/iio/adc/berlin2-adc.c b/drivers/iio/adc/berlin2-adc.c index 6e20c856f479..13cfeb494e34 100644 --- a/drivers/iio/adc/berlin2-adc.c +++ b/drivers/iio/adc/berlin2-adc.c @@ -111,6 +111,10 @@ static int berlin2_adc_read(struct iio_dev *indio_dev, int channel) mutex_lock(&priv->lock); + /* Enable the interrupts */ + regmap_write(priv->regmap, BERLIN2_SM_ADC_STATUS, + BERLIN2_SM_ADC_STATUS_INT_EN(channel)); + /* Configure the ADC */ regmap_update_bits(priv->regmap, BERLIN2_SM_CTRL, BERLIN2_SM_CTRL_ADC_RESET | BERLIN2_SM_CTRL_ADC_SEL_MASK @@ -149,6 +153,10 @@ static int berlin2_adc_tsen_read(struct iio_dev *indio_dev) mutex_lock(&priv->lock); + /* Enable interrupts */ + regmap_write(priv->regmap, BERLIN2_SM_TSEN_STATUS, + BERLIN2_SM_TSEN_STATUS_INT_EN); + /* Configure the ADC */ regmap_update_bits(priv->regmap, BERLIN2_SM_CTRL, BERLIN2_SM_CTRL_TSEN_RESET | BERLIN2_SM_CTRL_ADC_ROTATE, @@ -190,7 +198,6 @@ static int berlin2_adc_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long mask) { - struct berlin2_adc_priv *priv = iio_priv(indio_dev); int temp; switch (mask) { @@ -198,10 +205,6 @@ static int berlin2_adc_read_raw(struct iio_dev *indio_dev, if (chan->type != IIO_VOLTAGE) return -EINVAL; - /* Enable the interrupts */ - regmap_write(priv->regmap, BERLIN2_SM_ADC_STATUS, - BERLIN2_SM_ADC_STATUS_INT_EN(chan->channel)); - *val = berlin2_adc_read(indio_dev, chan->channel); if (*val < 0) return *val; @@ -211,10 +214,6 @@ static int berlin2_adc_read_raw(struct iio_dev *indio_dev, if (chan->type != IIO_TEMP) return -EINVAL; - /* Enable interrupts */ - regmap_write(priv->regmap, BERLIN2_SM_TSEN_STATUS, - BERLIN2_SM_TSEN_STATUS_INT_EN); - temp = berlin2_adc_tsen_read(indio_dev); if (temp < 0) return temp; From b465fc5499083d0b7086ae590cb852c0052622a0 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Tue, 28 Jul 2015 00:39:04 +0200 Subject: [PATCH 0003/2431] iio:adc:berlin2-adc: coding style cleanup Some adjustment of indentation to make checkpatch.pl happy in strict mode. Signed-off-by: Hartmut Knaack Acked-by: Antoine Tenart Signed-off-by: Jonathan Cameron --- drivers/iio/adc/berlin2-adc.c | 64 +++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/drivers/iio/adc/berlin2-adc.c b/drivers/iio/adc/berlin2-adc.c index 13cfeb494e34..71c806ecc722 100644 --- a/drivers/iio/adc/berlin2-adc.c +++ b/drivers/iio/adc/berlin2-adc.c @@ -78,13 +78,13 @@ struct berlin2_adc_priv { }; #define BERLIN2_ADC_CHANNEL(n, t) \ - { \ - .channel = n, \ - .datasheet_name = "channel"#n, \ - .type = t, \ - .indexed = 1, \ - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ - } + { \ + .channel = n, \ + .datasheet_name = "channel"#n, \ + .type = t, \ + .indexed = 1, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + } static const struct iio_chan_spec berlin2_adc_channels[] = { BERLIN2_ADC_CHANNEL(0, IIO_VOLTAGE), /* external input */ @@ -117,16 +117,18 @@ static int berlin2_adc_read(struct iio_dev *indio_dev, int channel) /* Configure the ADC */ regmap_update_bits(priv->regmap, BERLIN2_SM_CTRL, - BERLIN2_SM_CTRL_ADC_RESET | BERLIN2_SM_CTRL_ADC_SEL_MASK - | BERLIN2_SM_CTRL_ADC_START, - BERLIN2_SM_CTRL_ADC_SEL(channel) | BERLIN2_SM_CTRL_ADC_START); + BERLIN2_SM_CTRL_ADC_RESET | + BERLIN2_SM_CTRL_ADC_SEL_MASK | + BERLIN2_SM_CTRL_ADC_START, + BERLIN2_SM_CTRL_ADC_SEL(channel) | + BERLIN2_SM_CTRL_ADC_START); ret = wait_event_interruptible_timeout(priv->wq, priv->data_available, - msecs_to_jiffies(1000)); + msecs_to_jiffies(1000)); /* Disable the interrupts */ regmap_update_bits(priv->regmap, BERLIN2_SM_ADC_STATUS, - BERLIN2_SM_ADC_STATUS_INT_EN(channel), 0); + BERLIN2_SM_ADC_STATUS_INT_EN(channel), 0); if (ret == 0) ret = -ETIMEDOUT; @@ -136,7 +138,7 @@ static int berlin2_adc_read(struct iio_dev *indio_dev, int channel) } regmap_update_bits(priv->regmap, BERLIN2_SM_CTRL, - BERLIN2_SM_CTRL_ADC_START, 0); + BERLIN2_SM_CTRL_ADC_START, 0); data = priv->data; priv->data_available = false; @@ -159,22 +161,25 @@ static int berlin2_adc_tsen_read(struct iio_dev *indio_dev) /* Configure the ADC */ regmap_update_bits(priv->regmap, BERLIN2_SM_CTRL, - BERLIN2_SM_CTRL_TSEN_RESET | BERLIN2_SM_CTRL_ADC_ROTATE, - BERLIN2_SM_CTRL_ADC_ROTATE); + BERLIN2_SM_CTRL_TSEN_RESET | + BERLIN2_SM_CTRL_ADC_ROTATE, + BERLIN2_SM_CTRL_ADC_ROTATE); /* Configure the temperature sensor */ regmap_update_bits(priv->regmap, BERLIN2_SM_TSEN_CTRL, - BERLIN2_SM_TSEN_CTRL_TRIM_MASK | BERLIN2_SM_TSEN_CTRL_SETTLING_MASK - | BERLIN2_SM_TSEN_CTRL_START, - BERLIN2_SM_TSEN_CTRL_TRIM(3) | BERLIN2_SM_TSEN_CTRL_SETTLING_12 - | BERLIN2_SM_TSEN_CTRL_START); + BERLIN2_SM_TSEN_CTRL_TRIM_MASK | + BERLIN2_SM_TSEN_CTRL_SETTLING_MASK | + BERLIN2_SM_TSEN_CTRL_START, + BERLIN2_SM_TSEN_CTRL_TRIM(3) | + BERLIN2_SM_TSEN_CTRL_SETTLING_12 | + BERLIN2_SM_TSEN_CTRL_START); ret = wait_event_interruptible_timeout(priv->wq, priv->data_available, - msecs_to_jiffies(1000)); + msecs_to_jiffies(1000)); /* Disable interrupts */ regmap_update_bits(priv->regmap, BERLIN2_SM_TSEN_STATUS, - BERLIN2_SM_TSEN_STATUS_INT_EN, 0); + BERLIN2_SM_TSEN_STATUS_INT_EN, 0); if (ret == 0) ret = -ETIMEDOUT; @@ -184,7 +189,7 @@ static int berlin2_adc_tsen_read(struct iio_dev *indio_dev) } regmap_update_bits(priv->regmap, BERLIN2_SM_TSEN_CTRL, - BERLIN2_SM_TSEN_CTRL_START, 0); + BERLIN2_SM_TSEN_CTRL_START, 0); data = priv->data; priv->data_available = false; @@ -195,8 +200,8 @@ static int berlin2_adc_tsen_read(struct iio_dev *indio_dev) } static int berlin2_adc_read_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, int *val, int *val2, - long mask) + struct iio_chan_spec const *chan, int *val, + int *val2, long mask) { int temp; @@ -305,12 +310,12 @@ static int berlin2_adc_probe(struct platform_device *pdev) return tsen_irq; ret = devm_request_irq(&pdev->dev, irq, berlin2_adc_irq, 0, - pdev->dev.driver->name, indio_dev); + pdev->dev.driver->name, indio_dev); if (ret) return ret; ret = devm_request_irq(&pdev->dev, tsen_irq, berlin2_adc_tsen_irq, - 0, pdev->dev.driver->name, indio_dev); + 0, pdev->dev.driver->name, indio_dev); if (ret) return ret; @@ -327,13 +332,14 @@ static int berlin2_adc_probe(struct platform_device *pdev) /* Power up the ADC */ regmap_update_bits(priv->regmap, BERLIN2_SM_CTRL, - BERLIN2_SM_CTRL_ADC_POWER, BERLIN2_SM_CTRL_ADC_POWER); + BERLIN2_SM_CTRL_ADC_POWER, + BERLIN2_SM_CTRL_ADC_POWER); ret = iio_device_register(indio_dev); if (ret) { /* Power down the ADC */ regmap_update_bits(priv->regmap, BERLIN2_SM_CTRL, - BERLIN2_SM_CTRL_ADC_POWER, 0); + BERLIN2_SM_CTRL_ADC_POWER, 0); return ret; } @@ -349,7 +355,7 @@ static int berlin2_adc_remove(struct platform_device *pdev) /* Power down the ADC */ regmap_update_bits(priv->regmap, BERLIN2_SM_CTRL, - BERLIN2_SM_CTRL_ADC_POWER, 0); + BERLIN2_SM_CTRL_ADC_POWER, 0); return 0; } From 7c7a9eeaa335df03d692ad65e0767020ad1be374 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Thu, 9 Jul 2015 23:51:31 +0200 Subject: [PATCH 0004/2431] iio:light:stk3310: add more error handling Check for the following error cases: * lower boundary for val in _write_event * return value of regmap_(field_)read * possible values for chan->type * return value of stk3310_gpio_probe Also add an error path in _probe to put the sensor back into stand-by mode in case of serious errors. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- drivers/iio/light/stk3310.c | 59 ++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c index f101bb5bddc7..09f2f6a30b79 100644 --- a/drivers/iio/light/stk3310.c +++ b/drivers/iio/light/stk3310.c @@ -241,8 +241,11 @@ static int stk3310_write_event(struct iio_dev *indio_dev, struct stk3310_data *data = iio_priv(indio_dev); struct i2c_client *client = data->client; - regmap_field_read(data->reg_ps_gain, &index); - if (val > stk3310_ps_max[index]) + ret = regmap_field_read(data->reg_ps_gain, &index); + if (ret < 0) + return ret; + + if (val < 0 || val > stk3310_ps_max[index]) return -EINVAL; if (dir == IIO_EV_DIR_RISING) @@ -266,9 +269,12 @@ static int stk3310_read_event_config(struct iio_dev *indio_dev, enum iio_event_direction dir) { unsigned int event_val; + int ret; struct stk3310_data *data = iio_priv(indio_dev); - regmap_field_read(data->reg_int_ps, &event_val); + ret = regmap_field_read(data->reg_int_ps, &event_val); + if (ret < 0) + return ret; return event_val; } @@ -307,14 +313,16 @@ static int stk3310_read_raw(struct iio_dev *indio_dev, struct stk3310_data *data = iio_priv(indio_dev); struct i2c_client *client = data->client; + if (chan->type != IIO_LIGHT && chan->type != IIO_PROXIMITY) + return -EINVAL; + switch (mask) { case IIO_CHAN_INFO_RAW: if (chan->type == IIO_LIGHT) reg = STK3310_REG_ALS_DATA_MSB; - else if (chan->type == IIO_PROXIMITY) - reg = STK3310_REG_PS_DATA_MSB; else - return -EINVAL; + reg = STK3310_REG_PS_DATA_MSB; + mutex_lock(&data->lock); ret = regmap_bulk_read(data->regmap, reg, &buf, 2); if (ret < 0) { @@ -327,17 +335,23 @@ static int stk3310_read_raw(struct iio_dev *indio_dev, return IIO_VAL_INT; case IIO_CHAN_INFO_INT_TIME: if (chan->type == IIO_LIGHT) - regmap_field_read(data->reg_als_it, &index); + ret = regmap_field_read(data->reg_als_it, &index); else - regmap_field_read(data->reg_ps_it, &index); + ret = regmap_field_read(data->reg_ps_it, &index); + if (ret < 0) + return ret; + *val = stk3310_it_table[index][0]; *val2 = stk3310_it_table[index][1]; return IIO_VAL_INT_PLUS_MICRO; case IIO_CHAN_INFO_SCALE: if (chan->type == IIO_LIGHT) - regmap_field_read(data->reg_als_gain, &index); + ret = regmap_field_read(data->reg_als_gain, &index); else - regmap_field_read(data->reg_ps_gain, &index); + ret = regmap_field_read(data->reg_ps_gain, &index); + if (ret < 0) + return ret; + *val = stk3310_scale_table[index][0]; *val2 = stk3310_scale_table[index][1]; return IIO_VAL_INT_PLUS_MICRO; @@ -354,6 +368,9 @@ static int stk3310_write_raw(struct iio_dev *indio_dev, int index; struct stk3310_data *data = iio_priv(indio_dev); + if (chan->type != IIO_LIGHT && chan->type != IIO_PROXIMITY) + return -EINVAL; + switch (mask) { case IIO_CHAN_INFO_INT_TIME: index = stk3310_get_index(stk3310_it_table, @@ -435,7 +452,10 @@ static int stk3310_init(struct iio_dev *indio_dev) struct stk3310_data *data = iio_priv(indio_dev); struct i2c_client *client = data->client; - regmap_read(data->regmap, STK3310_REG_ID, &chipid); + ret = regmap_read(data->regmap, STK3310_REG_ID, &chipid); + if (ret < 0) + return ret; + if (chipid != STK3310_CHIP_ID_VAL && chipid != STK3311_CHIP_ID_VAL) { dev_err(&client->dev, "invalid chip id: 0x%x\n", chipid); @@ -608,8 +628,13 @@ static int stk3310_probe(struct i2c_client *client, if (ret < 0) return ret; - if (client->irq < 0) + if (client->irq < 0) { client->irq = stk3310_gpio_probe(client); + if (client->irq < 0) { + ret = client->irq; + goto err_standby; + } + } if (client->irq >= 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, @@ -618,17 +643,23 @@ static int stk3310_probe(struct i2c_client *client, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, STK3310_EVENT, indio_dev); - if (ret < 0) + if (ret < 0) { dev_err(&client->dev, "request irq %d failed\n", client->irq); + goto err_standby; + } } ret = iio_device_register(indio_dev); if (ret < 0) { dev_err(&client->dev, "device_register failed\n"); - stk3310_set_state(data, STK3310_STATE_STANDBY); + goto err_standby; } + return 0; + +err_standby: + stk3310_set_state(data, STK3310_STATE_STANDBY); return ret; } From 952c3aa3fb5538aa5026980cfdedb3d38829b67e Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Thu, 9 Jul 2015 23:51:32 +0200 Subject: [PATCH 0005/2431] iio:light:stk3310: use correct names and type for state Indicate the bit number of predefined states, make use of these names and change the state type in _resume to u8 to avoid type casting. Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron --- drivers/iio/light/stk3310.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c index 09f2f6a30b79..e5e0b045ebc2 100644 --- a/drivers/iio/light/stk3310.c +++ b/drivers/iio/light/stk3310.c @@ -35,8 +35,8 @@ #define STK3310_REG_ID 0x3E #define STK3310_MAX_REG 0x80 -#define STK3310_STATE_EN_PS 0x01 -#define STK3310_STATE_EN_ALS 0x02 +#define STK3310_STATE_EN_PS BIT(0) +#define STK3310_STATE_EN_ALS BIT(1) #define STK3310_STATE_STANDBY 0x00 #define STK3310_CHIP_ID_VAL 0x13 @@ -436,8 +436,8 @@ static int stk3310_set_state(struct stk3310_data *data, u8 state) dev_err(&client->dev, "failed to change sensor state\n"); } else if (state != STK3310_STATE_STANDBY) { /* Don't reset the 'enabled' flags if we're going in standby */ - data->ps_enabled = !!(state & 0x01); - data->als_enabled = !!(state & 0x02); + data->ps_enabled = !!(state & STK3310_STATE_EN_PS); + data->als_enabled = !!(state & STK3310_STATE_EN_ALS); } mutex_unlock(&data->lock); @@ -683,7 +683,7 @@ static int stk3310_suspend(struct device *dev) static int stk3310_resume(struct device *dev) { - int state = 0; + u8 state = 0; struct stk3310_data *data; data = iio_priv(i2c_get_clientdata(to_i2c_client(dev))); From 5b958f110f8b11f9bb6c62e713b83768b1375f31 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Thu, 9 Jul 2015 23:51:33 +0200 Subject: [PATCH 0006/2431] iio:light:stk3310: adjust indentation Adjust some indentation issues as spotted by checkpatch.pl --strict Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron --- drivers/iio/light/stk3310.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c index e5e0b045ebc2..25c6a715545a 100644 --- a/drivers/iio/light/stk3310.c +++ b/drivers/iio/light/stk3310.c @@ -385,7 +385,7 @@ static int stk3310_write_raw(struct iio_dev *indio_dev, ret = regmap_field_write(data->reg_ps_it, index); if (ret < 0) dev_err(&data->client->dev, - "sensor configuration failed\n"); + "sensor configuration failed\n"); mutex_unlock(&data->lock); return ret; @@ -402,7 +402,7 @@ static int stk3310_write_raw(struct iio_dev *indio_dev, ret = regmap_field_write(data->reg_ps_gain, index); if (ret < 0) dev_err(&data->client->dev, - "sensor configuration failed\n"); + "sensor configuration failed\n"); mutex_unlock(&data->lock); return ret; } @@ -645,7 +645,7 @@ static int stk3310_probe(struct i2c_client *client, STK3310_EVENT, indio_dev); if (ret < 0) { dev_err(&client->dev, "request irq %d failed\n", - client->irq); + client->irq); goto err_standby; } } From 2427d22de807b40f72175c8c9b1ff8a07275ad82 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 17 Jul 2015 10:52:25 +0200 Subject: [PATCH 0007/2431] iio:magnetometer:bmc150_magn: sort entry alphabetically Sort the entry for bmc105_magn in Kconfig and Makefile to its correct position. Also add the minor module information for completeness. Fixes: c91746a2361d ("iio: magn: Add support for BMC150 magnetometer") Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- drivers/iio/magnetometer/Kconfig | 33 +++++++++++++++++-------------- drivers/iio/magnetometer/Makefile | 3 +-- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/drivers/iio/magnetometer/Kconfig b/drivers/iio/magnetometer/Kconfig index efb9350b0d76..868abada3409 100644 --- a/drivers/iio/magnetometer/Kconfig +++ b/drivers/iio/magnetometer/Kconfig @@ -24,6 +24,24 @@ config AK09911 help Deprecated: AK09911 is now supported by AK8975 driver. +config BMC150_MAGN + tristate "Bosch BMC150 Magnetometer Driver" + depends on I2C + select REGMAP_I2C + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER + help + Say yes here to build support for the BMC150 magnetometer. + + Currently this only supports the device via an i2c interface. + + This is a combo module with both accelerometer and magnetometer. + This driver is only implementing magnetometer part, which has + its own address and register map. + + To compile this driver as a module, choose M here: the module will be + called bmc150_magn. + config MAG3110 tristate "Freescale MAG3110 3-Axis Magnetometer" depends on I2C @@ -87,19 +105,4 @@ config IIO_ST_MAGN_SPI_3AXIS depends on IIO_ST_MAGN_3AXIS depends on IIO_ST_SENSORS_SPI -config BMC150_MAGN - tristate "Bosch BMC150 Magnetometer Driver" - depends on I2C - select REGMAP_I2C - select IIO_BUFFER - select IIO_TRIGGERED_BUFFER - help - Say yes here to build support for the BMC150 magnetometer. - - Currently this only supports the device via an i2c interface. - - This is a combo module with both accelerometer and magnetometer. - This driver is only implementing magnetometer part, which has - its own address and register map. - endmenu diff --git a/drivers/iio/magnetometer/Makefile b/drivers/iio/magnetometer/Makefile index 33b1d4d54ee7..2c72df458ec2 100644 --- a/drivers/iio/magnetometer/Makefile +++ b/drivers/iio/magnetometer/Makefile @@ -4,6 +4,7 @@ # When adding new entries keep the list in alphabetical order obj-$(CONFIG_AK8975) += ak8975.o +obj-$(CONFIG_BMC150_MAGN) += bmc150_magn.o obj-$(CONFIG_MAG3110) += mag3110.o obj-$(CONFIG_HID_SENSOR_MAGNETOMETER_3D) += hid-sensor-magn-3d.o obj-$(CONFIG_MMC35240) += mmc35240.o @@ -14,5 +15,3 @@ st_magn-$(CONFIG_IIO_BUFFER) += st_magn_buffer.o obj-$(CONFIG_IIO_ST_MAGN_I2C_3AXIS) += st_magn_i2c.o obj-$(CONFIG_IIO_ST_MAGN_SPI_3AXIS) += st_magn_spi.o - -obj-$(CONFIG_BMC150_MAGN) += bmc150_magn.o From 47d5e30ae38ba81600bd2c3292b39d31792470c7 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Sun, 21 Jun 2015 12:15:51 +0200 Subject: [PATCH 0008/2431] iio:adc:cc10001_adc: resort entry in Kconfig and Makefile Move the entry for the CC 10001 ADC driver in Kconfig and Makefile up to maintain alphabetic order. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- drivers/iio/adc/Kconfig | 22 +++++++++++----------- drivers/iio/adc/Makefile | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index 50c103d75af9..deea62c219ac 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -149,6 +149,17 @@ config BERLIN2_ADC Marvell Berlin2 ADC driver. This ADC has 8 channels, with one used for temperature measurement. +config CC10001_ADC + tristate "Cosmic Circuits 10001 ADC driver" + depends on HAS_IOMEM && HAVE_CLK && REGULATOR + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER + help + Say yes here to build support for Cosmic Circuits 10001 ADC. + + This driver can also be built as a module. If so, the module will be + called cc10001_adc. + config DA9150_GPADC tristate "Dialog DA9150 GPADC driver support" depends on MFD_DA9150 @@ -161,17 +172,6 @@ config DA9150_GPADC To compile this driver as a module, choose M here: the module will be called berlin2-adc. -config CC10001_ADC - tristate "Cosmic Circuits 10001 ADC driver" - depends on HAS_IOMEM && HAVE_CLK && REGULATOR - select IIO_BUFFER - select IIO_TRIGGERED_BUFFER - help - Say yes here to build support for Cosmic Circuits 10001 ADC. - - This driver can also be built as a module. If so, the module will be - called cc10001_adc. - config EXYNOS_ADC tristate "Exynos ADC driver support" depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || (OF && COMPILE_TEST) diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile index a0962103e866..fa5723a5ed7c 100644 --- a/drivers/iio/adc/Makefile +++ b/drivers/iio/adc/Makefile @@ -16,8 +16,8 @@ obj-$(CONFIG_AD799X) += ad799x.o obj-$(CONFIG_AT91_ADC) += at91_adc.o obj-$(CONFIG_AXP288_ADC) += axp288_adc.o obj-$(CONFIG_BERLIN2_ADC) += berlin2-adc.o -obj-$(CONFIG_DA9150_GPADC) += da9150-gpadc.o obj-$(CONFIG_CC10001_ADC) += cc10001_adc.o +obj-$(CONFIG_DA9150_GPADC) += da9150-gpadc.o obj-$(CONFIG_EXYNOS_ADC) += exynos_adc.o obj-$(CONFIG_LP8788_ADC) += lp8788_adc.o obj-$(CONFIG_MAX1027) += max1027.o From 050ee2f16e245b42c9ba30640bb91b309b424c48 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Fri, 14 Aug 2015 16:54:54 +0200 Subject: [PATCH 0009/2431] iio: Move callback buffer to its own module Currently the IIO callback buffer implementation is directly built into the IIO core module when enabled. Given that the callback buffer module is standalone functionallity there is really no reason to do this. So move it to its own module. Also rename the source to follow the standard IIO module naming convention as well as add a license notice to the file. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/iio/Kconfig | 2 +- drivers/iio/Makefile | 2 +- .../iio/{buffer_cb.c => industrialio-buffer-cb.c} | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) rename drivers/iio/{buffer_cb.c => industrialio-buffer-cb.c} (89%) diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index 4011effe4c05..b52c8a3b1360 100644 --- a/drivers/iio/Kconfig +++ b/drivers/iio/Kconfig @@ -21,7 +21,7 @@ config IIO_BUFFER if IIO_BUFFER config IIO_BUFFER_CB - bool "IIO callback buffer used for push in-kernel interfaces" + tristate "IIO callback buffer used for push in-kernel interfaces" help Should be selected by any drivers that do in-kernel push usage. That is, those where the data is pushed to the consumer. diff --git a/drivers/iio/Makefile b/drivers/iio/Makefile index 698afc2d17ce..09d8ec5d57d8 100644 --- a/drivers/iio/Makefile +++ b/drivers/iio/Makefile @@ -6,8 +6,8 @@ obj-$(CONFIG_IIO) += industrialio.o industrialio-y := industrialio-core.o industrialio-event.o inkern.o industrialio-$(CONFIG_IIO_BUFFER) += industrialio-buffer.o industrialio-$(CONFIG_IIO_TRIGGER) += industrialio-trigger.o -industrialio-$(CONFIG_IIO_BUFFER_CB) += buffer_cb.o +obj-$(CONFIG_IIO_BUFFER_CB) += industrialio-buffer-cb.o obj-$(CONFIG_IIO_TRIGGERED_BUFFER) += industrialio-triggered-buffer.o obj-$(CONFIG_IIO_KFIFO_BUF) += kfifo_buf.o diff --git a/drivers/iio/buffer_cb.c b/drivers/iio/industrialio-buffer-cb.c similarity index 89% rename from drivers/iio/buffer_cb.c rename to drivers/iio/industrialio-buffer-cb.c index 1648e6e5a848..323079c3ccce 100644 --- a/drivers/iio/buffer_cb.c +++ b/drivers/iio/industrialio-buffer-cb.c @@ -1,4 +1,12 @@ +/* The industrial I/O callback buffer + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + #include +#include #include #include #include @@ -124,3 +132,7 @@ struct iio_channel return cb_buffer->channels; } EXPORT_SYMBOL_GPL(iio_channel_cb_get_channels); + +MODULE_AUTHOR("Jonathan Cameron "); +MODULE_DESCRIPTION("Industrial I/O callback buffer"); +MODULE_LICENSE("GPL"); From 8548a63b37be4891e7972ba058b785d9468e8907 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Fri, 14 Aug 2015 16:54:55 +0200 Subject: [PATCH 0010/2431] iio: Move generic buffer implementations to sub-directory For generic IIO trigger implementations we already have a sub-directory, but the generic buffer implementations currently reside in the IIO top-level directory. The main reason is that things have historically grown into this form. With more generic buffer implementations on its way now is the perfect time to clean this up and introduce a sub-directory for generic buffer implementations to avoid too much clutter in the top-level directory. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- Documentation/DocBook/iio.tmpl | 2 +- drivers/iio/Kconfig | 22 +---------------- drivers/iio/Makefile | 5 +--- drivers/iio/buffer/Kconfig | 24 +++++++++++++++++++ drivers/iio/buffer/Makefile | 8 +++++++ .../iio/{ => buffer}/industrialio-buffer-cb.c | 0 .../industrialio-triggered-buffer.c | 0 drivers/iio/{ => buffer}/kfifo_buf.c | 0 8 files changed, 35 insertions(+), 26 deletions(-) create mode 100644 drivers/iio/buffer/Kconfig create mode 100644 drivers/iio/buffer/Makefile rename drivers/iio/{ => buffer}/industrialio-buffer-cb.c (100%) rename drivers/iio/{ => buffer}/industrialio-triggered-buffer.c (100%) rename drivers/iio/{ => buffer}/kfifo_buf.c (100%) diff --git a/Documentation/DocBook/iio.tmpl b/Documentation/DocBook/iio.tmpl index 06bb53de5a47..98be322673da 100644 --- a/Documentation/DocBook/iio.tmpl +++ b/Documentation/DocBook/iio.tmpl @@ -578,7 +578,7 @@ work together. IIO triggered buffer setup -!Edrivers/iio/industrialio-triggered-buffer.c +!Edrivers/iio/buffer/industrialio-triggered-buffer.c !Finclude/linux/iio/iio.h iio_buffer_setup_ops diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index b52c8a3b1360..3c6c6e28a60a 100644 --- a/drivers/iio/Kconfig +++ b/drivers/iio/Kconfig @@ -19,27 +19,7 @@ config IIO_BUFFER acquisition methods. if IIO_BUFFER - -config IIO_BUFFER_CB - tristate "IIO callback buffer used for push in-kernel interfaces" - help - Should be selected by any drivers that do in-kernel push - usage. That is, those where the data is pushed to the consumer. - -config IIO_KFIFO_BUF - tristate "Industrial I/O buffering based on kfifo" - help - A simple fifo based on kfifo. Note that this currently provides - no buffer events so it is up to userspace to work out how - often to read from the buffer. - -config IIO_TRIGGERED_BUFFER - tristate - select IIO_TRIGGER - select IIO_KFIFO_BUF - help - Provides helper functions for setting up triggered buffers. - + source "drivers/iio/buffer/Kconfig" endif # IIO_BUFFER config IIO_TRIGGER diff --git a/drivers/iio/Makefile b/drivers/iio/Makefile index 09d8ec5d57d8..7ddb988338ec 100644 --- a/drivers/iio/Makefile +++ b/drivers/iio/Makefile @@ -7,13 +7,10 @@ industrialio-y := industrialio-core.o industrialio-event.o inkern.o industrialio-$(CONFIG_IIO_BUFFER) += industrialio-buffer.o industrialio-$(CONFIG_IIO_TRIGGER) += industrialio-trigger.o -obj-$(CONFIG_IIO_BUFFER_CB) += industrialio-buffer-cb.o -obj-$(CONFIG_IIO_TRIGGERED_BUFFER) += industrialio-triggered-buffer.o -obj-$(CONFIG_IIO_KFIFO_BUF) += kfifo_buf.o - obj-y += accel/ obj-y += adc/ obj-y += amplifiers/ +obj-y += buffer/ obj-y += common/ obj-y += dac/ obj-y += gyro/ diff --git a/drivers/iio/buffer/Kconfig b/drivers/iio/buffer/Kconfig new file mode 100644 index 000000000000..0a7b2fd3699b --- /dev/null +++ b/drivers/iio/buffer/Kconfig @@ -0,0 +1,24 @@ +# +# Industrial I/O generic buffer implementations +# +# When adding new entries keep the list in alphabetical order + +config IIO_BUFFER_CB + tristate "IIO callback buffer used for push in-kernel interfaces" + help + Should be selected by any drivers that do in-kernel push + usage. That is, those where the data is pushed to the consumer. + +config IIO_KFIFO_BUF + tristate "Industrial I/O buffering based on kfifo" + help + A simple fifo based on kfifo. Note that this currently provides + no buffer events so it is up to userspace to work out how + often to read from the buffer. + +config IIO_TRIGGERED_BUFFER + tristate + select IIO_TRIGGER + select IIO_KFIFO_BUF + help + Provides helper functions for setting up triggered buffers. diff --git a/drivers/iio/buffer/Makefile b/drivers/iio/buffer/Makefile new file mode 100644 index 000000000000..4d193b9a9123 --- /dev/null +++ b/drivers/iio/buffer/Makefile @@ -0,0 +1,8 @@ +# +# Makefile for the industrial I/O buffer implementations +# + +# When adding new entries keep the list in alphabetical order +obj-$(CONFIG_IIO_BUFFER_CB) += industrialio-buffer-cb.o +obj-$(CONFIG_IIO_TRIGGERED_BUFFER) += industrialio-triggered-buffer.o +obj-$(CONFIG_IIO_KFIFO_BUF) += kfifo_buf.o diff --git a/drivers/iio/industrialio-buffer-cb.c b/drivers/iio/buffer/industrialio-buffer-cb.c similarity index 100% rename from drivers/iio/industrialio-buffer-cb.c rename to drivers/iio/buffer/industrialio-buffer-cb.c diff --git a/drivers/iio/industrialio-triggered-buffer.c b/drivers/iio/buffer/industrialio-triggered-buffer.c similarity index 100% rename from drivers/iio/industrialio-triggered-buffer.c rename to drivers/iio/buffer/industrialio-triggered-buffer.c diff --git a/drivers/iio/kfifo_buf.c b/drivers/iio/buffer/kfifo_buf.c similarity index 100% rename from drivers/iio/kfifo_buf.c rename to drivers/iio/buffer/kfifo_buf.c From c6c9e995bcd8349f271b39e6abd9bd2f090ec5bd Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 12 Aug 2015 16:50:04 +0200 Subject: [PATCH 0011/2431] iio: bmg160: Use i2c regmap instead of direct i2c access This patch introduces regmap usage into the driver. This is done to later easily support the SPI interface of this chip. Signed-off-by: Markus Pargmann Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron --- drivers/iio/gyro/Kconfig | 1 + drivers/iio/gyro/bmg160.c | 198 +++++++++++++++++--------------------- 2 files changed, 88 insertions(+), 111 deletions(-) diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig index 8d2439345673..cf82d74139a2 100644 --- a/drivers/iio/gyro/Kconfig +++ b/drivers/iio/gyro/Kconfig @@ -55,6 +55,7 @@ config BMG160 depends on I2C select IIO_BUFFER select IIO_TRIGGERED_BUFFER + select REGMAP_I2C help Say yes here to build support for Bosch BMG160 Tri-axis Gyro Sensor driver. This driver also supports BMI055 gyroscope. diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160.c index 460bf715d541..d3c5300a3862 100644 --- a/drivers/iio/gyro/bmg160.c +++ b/drivers/iio/gyro/bmg160.c @@ -28,6 +28,7 @@ #include #include #include +#include #define BMG160_DRV_NAME "bmg160" #define BMG160_IRQ_NAME "bmg160_event" @@ -98,6 +99,7 @@ struct bmg160_data { struct i2c_client *client; + struct regmap *regmap; struct iio_trigger *dready_trig; struct iio_trigger *motion_trig; struct mutex mutex; @@ -134,12 +136,17 @@ static const struct { { 133, BMG160_RANGE_250DPS}, { 66, BMG160_RANGE_125DPS} }; +static struct regmap_config bmg160_regmap_i2c_conf = { + .reg_bits = 8, + .val_bits = 8, + .max_register = 0x3f +}; + static int bmg160_set_mode(struct bmg160_data *data, u8 mode) { int ret; - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_PMU_LPW, mode); + ret = regmap_write(data->regmap, BMG160_REG_PMU_LPW, mode); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_pmu_lpw\n"); return ret; @@ -169,8 +176,7 @@ static int bmg160_set_bw(struct bmg160_data *data, int val) if (bw_bits < 0) return bw_bits; - ret = i2c_smbus_write_byte_data(data->client, BMG160_REG_PMU_BW, - bw_bits); + ret = regmap_write(data->regmap, BMG160_REG_PMU_BW, bw_bits); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_pmu_bw\n"); return ret; @@ -184,16 +190,17 @@ static int bmg160_set_bw(struct bmg160_data *data, int val) static int bmg160_chip_init(struct bmg160_data *data) { int ret; + unsigned int val; - ret = i2c_smbus_read_byte_data(data->client, BMG160_REG_CHIP_ID); + ret = regmap_read(data->regmap, BMG160_REG_CHIP_ID, &val); if (ret < 0) { dev_err(&data->client->dev, "Error reading reg_chip_id\n"); return ret; } - dev_dbg(&data->client->dev, "Chip Id %x\n", ret); - if (ret != BMG160_CHIP_ID_VAL) { - dev_err(&data->client->dev, "invalid chip %x\n", ret); + dev_dbg(&data->client->dev, "Chip Id %x\n", val); + if (val != BMG160_CHIP_ID_VAL) { + dev_err(&data->client->dev, "invalid chip %x\n", val); return -ENODEV; } @@ -210,40 +217,31 @@ static int bmg160_chip_init(struct bmg160_data *data) return ret; /* Set Default Range */ - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_RANGE, - BMG160_RANGE_500DPS); + ret = regmap_write(data->regmap, BMG160_REG_RANGE, BMG160_RANGE_500DPS); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_range\n"); return ret; } data->dps_range = BMG160_RANGE_500DPS; - ret = i2c_smbus_read_byte_data(data->client, BMG160_REG_SLOPE_THRES); + ret = regmap_read(data->regmap, BMG160_REG_SLOPE_THRES, &val); if (ret < 0) { dev_err(&data->client->dev, "Error reading reg_slope_thres\n"); return ret; } - data->slope_thres = ret; + data->slope_thres = val; /* Set default interrupt mode */ - ret = i2c_smbus_read_byte_data(data->client, BMG160_REG_INT_EN_1); + ret = regmap_update_bits(data->regmap, BMG160_REG_INT_EN_1, + BMG160_INT1_BIT_OD, 0); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_int_en_1\n"); - return ret; - } - ret &= ~BMG160_INT1_BIT_OD; - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_EN_1, ret); - if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_en_1\n"); + dev_err(&data->client->dev, "Error updating bits in reg_int_en_1\n"); return ret; } - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_RST_LATCH, - BMG160_INT_MODE_LATCH_INT | - BMG160_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMG160_REG_INT_RST_LATCH, + BMG160_INT_MODE_LATCH_INT | + BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_motion_intr\n"); @@ -284,41 +282,28 @@ static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, int ret; /* Enable/Disable INT_MAP0 mapping */ - ret = i2c_smbus_read_byte_data(data->client, BMG160_REG_INT_MAP_0); + ret = regmap_update_bits(data->regmap, BMG160_REG_INT_MAP_0, + BMG160_INT_MAP_0_BIT_ANY, + (status ? BMG160_INT_MAP_0_BIT_ANY : 0)); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_int_map0\n"); - return ret; - } - if (status) - ret |= BMG160_INT_MAP_0_BIT_ANY; - else - ret &= ~BMG160_INT_MAP_0_BIT_ANY; - - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_MAP_0, - ret); - if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_map0\n"); + dev_err(&data->client->dev, "Error updating bits reg_int_map0\n"); return ret; } /* Enable/Disable slope interrupts */ if (status) { /* Update slope thres */ - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_SLOPE_THRES, - data->slope_thres); + ret = regmap_write(data->regmap, BMG160_REG_SLOPE_THRES, + data->slope_thres); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_slope_thres\n"); return ret; } - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_MOTION_INTR, - BMG160_INT_MOTION_X | - BMG160_INT_MOTION_Y | - BMG160_INT_MOTION_Z); + ret = regmap_write(data->regmap, BMG160_REG_MOTION_INTR, + BMG160_INT_MOTION_X | BMG160_INT_MOTION_Y | + BMG160_INT_MOTION_Z); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_motion_intr\n"); @@ -331,10 +316,10 @@ static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, * to set latched mode, we will be flooded anyway with INTR */ if (!data->dready_trigger_on) { - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_RST_LATCH, - BMG160_INT_MODE_LATCH_INT | - BMG160_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, + BMG160_REG_INT_RST_LATCH, + BMG160_INT_MODE_LATCH_INT | + BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_rst_latch\n"); @@ -342,14 +327,12 @@ static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, } } - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_EN_0, - BMG160_DATA_ENABLE_INT); + ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, + BMG160_DATA_ENABLE_INT); - } else - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_EN_0, - 0); + } else { + ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, 0); + } if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_int_en0\n"); @@ -365,55 +348,39 @@ static int bmg160_setup_new_data_interrupt(struct bmg160_data *data, int ret; /* Enable/Disable INT_MAP1 mapping */ - ret = i2c_smbus_read_byte_data(data->client, BMG160_REG_INT_MAP_1); + ret = regmap_update_bits(data->regmap, BMG160_REG_INT_MAP_1, + BMG160_INT_MAP_1_BIT_NEW_DATA, + (status ? BMG160_INT_MAP_1_BIT_NEW_DATA : 0)); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_int_map1\n"); - return ret; - } - - if (status) - ret |= BMG160_INT_MAP_1_BIT_NEW_DATA; - else - ret &= ~BMG160_INT_MAP_1_BIT_NEW_DATA; - - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_MAP_1, - ret); - if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_map1\n"); + dev_err(&data->client->dev, "Error updating bits in reg_int_map1\n"); return ret; } if (status) { - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_RST_LATCH, - BMG160_INT_MODE_NON_LATCH_INT | - BMG160_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMG160_REG_INT_RST_LATCH, + BMG160_INT_MODE_NON_LATCH_INT | + BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_rst_latch\n"); return ret; } - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_EN_0, - BMG160_DATA_ENABLE_INT); + ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, + BMG160_DATA_ENABLE_INT); } else { /* Restore interrupt mode */ - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_RST_LATCH, - BMG160_INT_MODE_LATCH_INT | - BMG160_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMG160_REG_INT_RST_LATCH, + BMG160_INT_MODE_LATCH_INT | + BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_rst_latch\n"); return ret; } - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_EN_0, - 0); + ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, 0); } if (ret < 0) { @@ -444,10 +411,8 @@ static int bmg160_set_scale(struct bmg160_data *data, int val) for (i = 0; i < ARRAY_SIZE(bmg160_scale_table); ++i) { if (bmg160_scale_table[i].scale == val) { - ret = i2c_smbus_write_byte_data( - data->client, - BMG160_REG_RANGE, - bmg160_scale_table[i].dps_range); + ret = regmap_write(data->regmap, BMG160_REG_RANGE, + bmg160_scale_table[i].dps_range); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_range\n"); @@ -464,6 +429,7 @@ static int bmg160_set_scale(struct bmg160_data *data, int val) static int bmg160_get_temp(struct bmg160_data *data, int *val) { int ret; + unsigned int raw_val; mutex_lock(&data->mutex); ret = bmg160_set_power_state(data, true); @@ -472,7 +438,7 @@ static int bmg160_get_temp(struct bmg160_data *data, int *val) return ret; } - ret = i2c_smbus_read_byte_data(data->client, BMG160_REG_TEMP); + ret = regmap_read(data->regmap, BMG160_REG_TEMP, &raw_val); if (ret < 0) { dev_err(&data->client->dev, "Error reading reg_temp\n"); bmg160_set_power_state(data, false); @@ -480,7 +446,7 @@ static int bmg160_get_temp(struct bmg160_data *data, int *val) return ret; } - *val = sign_extend32(ret, 7); + *val = sign_extend32(raw_val, 7); ret = bmg160_set_power_state(data, false); mutex_unlock(&data->mutex); if (ret < 0) @@ -492,6 +458,7 @@ static int bmg160_get_temp(struct bmg160_data *data, int *val) static int bmg160_get_axis(struct bmg160_data *data, int axis, int *val) { int ret; + unsigned int raw_val; mutex_lock(&data->mutex); ret = bmg160_set_power_state(data, true); @@ -500,7 +467,8 @@ static int bmg160_get_axis(struct bmg160_data *data, int axis, int *val) return ret; } - ret = i2c_smbus_read_word_data(data->client, BMG160_AXIS_TO_REG(axis)); + ret = regmap_bulk_read(data->regmap, BMG160_AXIS_TO_REG(axis), &raw_val, + 2); if (ret < 0) { dev_err(&data->client->dev, "Error reading axis %d\n", axis); bmg160_set_power_state(data, false); @@ -508,7 +476,7 @@ static int bmg160_get_axis(struct bmg160_data *data, int axis, int *val) return ret; } - *val = sign_extend32(ret, 15); + *val = sign_extend32(raw_val, 15); ret = bmg160_set_power_state(data, false); mutex_unlock(&data->mutex); if (ret < 0) @@ -807,12 +775,13 @@ static irqreturn_t bmg160_trigger_handler(int irq, void *p) struct iio_dev *indio_dev = pf->indio_dev; struct bmg160_data *data = iio_priv(indio_dev); int bit, ret, i = 0; + unsigned int val; mutex_lock(&data->mutex); for_each_set_bit(bit, indio_dev->active_scan_mask, indio_dev->masklength) { - ret = i2c_smbus_read_word_data(data->client, - BMG160_AXIS_TO_REG(bit)); + ret = regmap_bulk_read(data->regmap, BMG160_AXIS_TO_REG(bit), + &val, 2); if (ret < 0) { mutex_unlock(&data->mutex); goto err; @@ -840,10 +809,9 @@ static int bmg160_trig_try_reen(struct iio_trigger *trig) return 0; /* Set latched mode interrupt and clear any latched interrupt */ - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_RST_LATCH, - BMG160_INT_MODE_LATCH_INT | - BMG160_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMG160_REG_INT_RST_LATCH, + BMG160_INT_MODE_LATCH_INT | + BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_rst_latch\n"); return ret; @@ -907,33 +875,34 @@ static irqreturn_t bmg160_event_handler(int irq, void *private) struct bmg160_data *data = iio_priv(indio_dev); int ret; int dir; + unsigned int val; - ret = i2c_smbus_read_byte_data(data->client, BMG160_REG_INT_STATUS_2); + ret = regmap_read(data->regmap, BMG160_REG_INT_STATUS_2, &val); if (ret < 0) { dev_err(&data->client->dev, "Error reading reg_int_status2\n"); goto ack_intr_status; } - if (ret & 0x08) + if (val & 0x08) dir = IIO_EV_DIR_RISING; else dir = IIO_EV_DIR_FALLING; - if (ret & BMG160_ANY_MOTION_BIT_X) + if (val & BMG160_ANY_MOTION_BIT_X) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ANGL_VEL, 0, IIO_MOD_X, IIO_EV_TYPE_ROC, dir), iio_get_time_ns()); - if (ret & BMG160_ANY_MOTION_BIT_Y) + if (val & BMG160_ANY_MOTION_BIT_Y) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ANGL_VEL, 0, IIO_MOD_Y, IIO_EV_TYPE_ROC, dir), iio_get_time_ns()); - if (ret & BMG160_ANY_MOTION_BIT_Z) + if (val & BMG160_ANY_MOTION_BIT_Z) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ANGL_VEL, 0, IIO_MOD_Z, @@ -943,10 +912,9 @@ static irqreturn_t bmg160_event_handler(int irq, void *private) ack_intr_status: if (!data->dready_trigger_on) { - ret = i2c_smbus_write_byte_data(data->client, - BMG160_REG_INT_RST_LATCH, - BMG160_INT_MODE_LATCH_INT | - BMG160_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMG160_REG_INT_RST_LATCH, + BMG160_INT_MODE_LATCH_INT | + BMG160_INT_MODE_LATCH_RESET); if (ret < 0) dev_err(&data->client->dev, "Error writing reg_rst_latch\n"); @@ -1038,6 +1006,14 @@ static int bmg160_probe(struct i2c_client *client, struct iio_dev *indio_dev; int ret; const char *name = NULL; + struct regmap *regmap; + + regmap = devm_regmap_init_i2c(client, &bmg160_regmap_i2c_conf); + if (IS_ERR(regmap)) { + dev_err(&client->dev, "Failed to register i2c regmap %d\n", + (int)PTR_ERR(regmap)); + return PTR_ERR(regmap); + } indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); if (!indio_dev) From 74e04345dc7e111fd151923d2de32267f1aae321 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 12 Aug 2015 16:50:05 +0200 Subject: [PATCH 0012/2431] iio: bmg160: Remove i2c_client from data struct i2c_client variable is not really used anymore in the core driver. It is only used to get the device to make proper outputs. This patch replaces all i2c_client usage through direct usage of the device pointer. Signed-off-by: Markus Pargmann Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron --- drivers/iio/gyro/bmg160.c | 64 +++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160.c index d3c5300a3862..e73f7f27692a 100644 --- a/drivers/iio/gyro/bmg160.c +++ b/drivers/iio/gyro/bmg160.c @@ -98,7 +98,7 @@ #define BMG160_AUTO_SUSPEND_DELAY_MS 2000 struct bmg160_data { - struct i2c_client *client; + struct device *dev; struct regmap *regmap; struct iio_trigger *dready_trig; struct iio_trigger *motion_trig; @@ -148,7 +148,7 @@ static int bmg160_set_mode(struct bmg160_data *data, u8 mode) ret = regmap_write(data->regmap, BMG160_REG_PMU_LPW, mode); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_pmu_lpw\n"); + dev_err(data->dev, "Error writing reg_pmu_lpw\n"); return ret; } @@ -178,7 +178,7 @@ static int bmg160_set_bw(struct bmg160_data *data, int val) ret = regmap_write(data->regmap, BMG160_REG_PMU_BW, bw_bits); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_pmu_bw\n"); + dev_err(data->dev, "Error writing reg_pmu_bw\n"); return ret; } @@ -194,13 +194,13 @@ static int bmg160_chip_init(struct bmg160_data *data) ret = regmap_read(data->regmap, BMG160_REG_CHIP_ID, &val); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_chip_id\n"); + dev_err(data->dev, "Error reading reg_chip_id\n"); return ret; } - dev_dbg(&data->client->dev, "Chip Id %x\n", val); + dev_dbg(data->dev, "Chip Id %x\n", val); if (val != BMG160_CHIP_ID_VAL) { - dev_err(&data->client->dev, "invalid chip %x\n", val); + dev_err(data->dev, "invalid chip %x\n", val); return -ENODEV; } @@ -219,14 +219,14 @@ static int bmg160_chip_init(struct bmg160_data *data) /* Set Default Range */ ret = regmap_write(data->regmap, BMG160_REG_RANGE, BMG160_RANGE_500DPS); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_range\n"); + dev_err(data->dev, "Error writing reg_range\n"); return ret; } data->dps_range = BMG160_RANGE_500DPS; ret = regmap_read(data->regmap, BMG160_REG_SLOPE_THRES, &val); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_slope_thres\n"); + dev_err(data->dev, "Error reading reg_slope_thres\n"); return ret; } data->slope_thres = val; @@ -235,7 +235,7 @@ static int bmg160_chip_init(struct bmg160_data *data) ret = regmap_update_bits(data->regmap, BMG160_REG_INT_EN_1, BMG160_INT1_BIT_OD, 0); if (ret < 0) { - dev_err(&data->client->dev, "Error updating bits in reg_int_en_1\n"); + dev_err(data->dev, "Error updating bits in reg_int_en_1\n"); return ret; } @@ -243,7 +243,7 @@ static int bmg160_chip_init(struct bmg160_data *data) BMG160_INT_MODE_LATCH_INT | BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_motion_intr\n"); return ret; } @@ -257,17 +257,17 @@ static int bmg160_set_power_state(struct bmg160_data *data, bool on) int ret; if (on) - ret = pm_runtime_get_sync(&data->client->dev); + ret = pm_runtime_get_sync(data->dev); else { - pm_runtime_mark_last_busy(&data->client->dev); - ret = pm_runtime_put_autosuspend(&data->client->dev); + pm_runtime_mark_last_busy(data->dev); + ret = pm_runtime_put_autosuspend(data->dev); } if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Failed: bmg160_set_power_state for %d\n", on); if (on) - pm_runtime_put_noidle(&data->client->dev); + pm_runtime_put_noidle(data->dev); return ret; } @@ -286,7 +286,7 @@ static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, BMG160_INT_MAP_0_BIT_ANY, (status ? BMG160_INT_MAP_0_BIT_ANY : 0)); if (ret < 0) { - dev_err(&data->client->dev, "Error updating bits reg_int_map0\n"); + dev_err(data->dev, "Error updating bits reg_int_map0\n"); return ret; } @@ -296,7 +296,7 @@ static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, ret = regmap_write(data->regmap, BMG160_REG_SLOPE_THRES, data->slope_thres); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_slope_thres\n"); return ret; } @@ -305,7 +305,7 @@ static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, BMG160_INT_MOTION_X | BMG160_INT_MOTION_Y | BMG160_INT_MOTION_Z); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_motion_intr\n"); return ret; } @@ -321,7 +321,7 @@ static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, BMG160_INT_MODE_LATCH_INT | BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_rst_latch\n"); return ret; } @@ -335,7 +335,7 @@ static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, } if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_en0\n"); + dev_err(data->dev, "Error writing reg_int_en0\n"); return ret; } @@ -352,7 +352,7 @@ static int bmg160_setup_new_data_interrupt(struct bmg160_data *data, BMG160_INT_MAP_1_BIT_NEW_DATA, (status ? BMG160_INT_MAP_1_BIT_NEW_DATA : 0)); if (ret < 0) { - dev_err(&data->client->dev, "Error updating bits in reg_int_map1\n"); + dev_err(data->dev, "Error updating bits in reg_int_map1\n"); return ret; } @@ -361,7 +361,7 @@ static int bmg160_setup_new_data_interrupt(struct bmg160_data *data, BMG160_INT_MODE_NON_LATCH_INT | BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_rst_latch\n"); return ret; } @@ -375,7 +375,7 @@ static int bmg160_setup_new_data_interrupt(struct bmg160_data *data, BMG160_INT_MODE_LATCH_INT | BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_rst_latch\n"); return ret; } @@ -384,7 +384,7 @@ static int bmg160_setup_new_data_interrupt(struct bmg160_data *data, } if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_en0\n"); + dev_err(data->dev, "Error writing reg_int_en0\n"); return ret; } @@ -414,7 +414,7 @@ static int bmg160_set_scale(struct bmg160_data *data, int val) ret = regmap_write(data->regmap, BMG160_REG_RANGE, bmg160_scale_table[i].dps_range); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_range\n"); return ret; } @@ -440,7 +440,7 @@ static int bmg160_get_temp(struct bmg160_data *data, int *val) ret = regmap_read(data->regmap, BMG160_REG_TEMP, &raw_val); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_temp\n"); + dev_err(data->dev, "Error reading reg_temp\n"); bmg160_set_power_state(data, false); mutex_unlock(&data->mutex); return ret; @@ -470,7 +470,7 @@ static int bmg160_get_axis(struct bmg160_data *data, int axis, int *val) ret = regmap_bulk_read(data->regmap, BMG160_AXIS_TO_REG(axis), &raw_val, 2); if (ret < 0) { - dev_err(&data->client->dev, "Error reading axis %d\n", axis); + dev_err(data->dev, "Error reading axis %d\n", axis); bmg160_set_power_state(data, false); mutex_unlock(&data->mutex); return ret; @@ -813,7 +813,7 @@ static int bmg160_trig_try_reen(struct iio_trigger *trig) BMG160_INT_MODE_LATCH_INT | BMG160_INT_MODE_LATCH_RESET); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_rst_latch\n"); + dev_err(data->dev, "Error writing reg_rst_latch\n"); return ret; } @@ -879,7 +879,7 @@ static irqreturn_t bmg160_event_handler(int irq, void *private) ret = regmap_read(data->regmap, BMG160_REG_INT_STATUS_2, &val); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_int_status2\n"); + dev_err(data->dev, "Error reading reg_int_status2\n"); goto ack_intr_status; } @@ -916,7 +916,7 @@ ack_intr_status: BMG160_INT_MODE_LATCH_INT | BMG160_INT_MODE_LATCH_RESET); if (ret < 0) - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_rst_latch\n"); } @@ -1021,7 +1021,7 @@ static int bmg160_probe(struct i2c_client *client, data = iio_priv(indio_dev); i2c_set_clientdata(client, indio_dev); - data->client = client; + data->dev = &client->dev; ret = bmg160_chip_init(data); if (ret < 0) @@ -1188,7 +1188,7 @@ static int bmg160_runtime_suspend(struct device *dev) ret = bmg160_set_mode(data, BMG160_MODE_SUSPEND); if (ret < 0) { - dev_err(&data->client->dev, "set mode failed\n"); + dev_err(data->dev, "set mode failed\n"); return -EAGAIN; } From ebc6eb5907acecdebbd0e180a754d98f21045fbc Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 12 Aug 2015 16:50:06 +0200 Subject: [PATCH 0013/2431] iio: bmg160: Use generic dev_drvdata i2c_get_clientdata() is specifically for i2c. Replace it with the generic dev_get/set_drvdata() to support different protocols. Signed-off-by: Markus Pargmann Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron --- drivers/iio/gyro/bmg160.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160.c index e73f7f27692a..7492532cd402 100644 --- a/drivers/iio/gyro/bmg160.c +++ b/drivers/iio/gyro/bmg160.c @@ -1020,7 +1020,7 @@ static int bmg160_probe(struct i2c_client *client, return -ENOMEM; data = iio_priv(indio_dev); - i2c_set_clientdata(client, indio_dev); + dev_set_drvdata(&client->dev, indio_dev); data->dev = &client->dev; ret = bmg160_chip_init(data); @@ -1154,7 +1154,7 @@ static int bmg160_remove(struct i2c_client *client) #ifdef CONFIG_PM_SLEEP static int bmg160_suspend(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev)); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmg160_data *data = iio_priv(indio_dev); mutex_lock(&data->mutex); @@ -1166,7 +1166,7 @@ static int bmg160_suspend(struct device *dev) static int bmg160_resume(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev)); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmg160_data *data = iio_priv(indio_dev); mutex_lock(&data->mutex); @@ -1182,7 +1182,7 @@ static int bmg160_resume(struct device *dev) #ifdef CONFIG_PM static int bmg160_runtime_suspend(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev)); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmg160_data *data = iio_priv(indio_dev); int ret; @@ -1197,7 +1197,7 @@ static int bmg160_runtime_suspend(struct device *dev) static int bmg160_runtime_resume(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev)); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmg160_data *data = iio_priv(indio_dev); int ret; From 5d889abbe5c39c0c9ebe468dbcab2688324a33fc Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 12 Aug 2015 16:50:07 +0200 Subject: [PATCH 0014/2431] iio: bmg160: Remove remaining uses of i2c_client Signed-off-by: Markus Pargmann Signed-off-by: Jonathan Cameron --- drivers/iio/gyro/bmg160.c | 59 +++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160.c index 7492532cd402..ca12402ffd93 100644 --- a/drivers/iio/gyro/bmg160.c +++ b/drivers/iio/gyro/bmg160.c @@ -110,6 +110,7 @@ struct bmg160_data { int slope_thres; bool dready_trigger_on; bool motion_trigger_on; + int irq; }; enum bmg160_axis { @@ -961,18 +962,13 @@ static const struct iio_buffer_setup_ops bmg160_buffer_setup_ops = { .postdisable = bmg160_buffer_postdisable, }; -static int bmg160_gpio_probe(struct i2c_client *client, - struct bmg160_data *data) +static int bmg160_gpio_probe(struct bmg160_data *data) { struct device *dev; struct gpio_desc *gpio; - int ret; - if (!client) - return -EINVAL; - - dev = &client->dev; + dev = data->dev; /* data ready gpio interrupt pin */ gpio = devm_gpiod_get_index(dev, BMG160_GPIO_NAME, 0, GPIOD_IN); @@ -981,11 +977,12 @@ static int bmg160_gpio_probe(struct i2c_client *client, return PTR_ERR(gpio); } - ret = gpiod_to_irq(gpio); + data->irq = gpiod_to_irq(gpio); - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); + dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), + data->irq); - return ret; + return 0; } static const char *bmg160_match_acpi_device(struct device *dev) @@ -1007,6 +1004,7 @@ static int bmg160_probe(struct i2c_client *client, int ret; const char *name = NULL; struct regmap *regmap; + struct device *dev = &client->dev; regmap = devm_regmap_init_i2c(client, &bmg160_regmap_i2c_conf); if (IS_ERR(regmap)) { @@ -1020,8 +1018,9 @@ static int bmg160_probe(struct i2c_client *client, return -ENOMEM; data = iio_priv(indio_dev); - dev_set_drvdata(&client->dev, indio_dev); - data->dev = &client->dev; + dev_set_drvdata(dev, indio_dev); + data->dev = dev; + data->irq = client->irq; ret = bmg160_chip_init(data); if (ret < 0) @@ -1032,22 +1031,22 @@ static int bmg160_probe(struct i2c_client *client, if (id) name = id->name; - if (ACPI_HANDLE(&client->dev)) - name = bmg160_match_acpi_device(&client->dev); + if (ACPI_HANDLE(dev)) + name = bmg160_match_acpi_device(dev); - indio_dev->dev.parent = &client->dev; + indio_dev->dev.parent = dev; indio_dev->channels = bmg160_channels; indio_dev->num_channels = ARRAY_SIZE(bmg160_channels); indio_dev->name = name; indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->info = &bmg160_info; - if (client->irq <= 0) - client->irq = bmg160_gpio_probe(client, data); + if (data->irq <= 0) + bmg160_gpio_probe(data); - if (client->irq > 0) { - ret = devm_request_threaded_irq(&client->dev, - client->irq, + if (data->irq > 0) { + ret = devm_request_threaded_irq(dev, + data->irq, bmg160_data_rdy_trig_poll, bmg160_event_handler, IRQF_TRIGGER_RISING, @@ -1056,28 +1055,28 @@ static int bmg160_probe(struct i2c_client *client, if (ret) return ret; - data->dready_trig = devm_iio_trigger_alloc(&client->dev, + data->dready_trig = devm_iio_trigger_alloc(dev, "%s-dev%d", indio_dev->name, indio_dev->id); if (!data->dready_trig) return -ENOMEM; - data->motion_trig = devm_iio_trigger_alloc(&client->dev, + data->motion_trig = devm_iio_trigger_alloc(dev, "%s-any-motion-dev%d", indio_dev->name, indio_dev->id); if (!data->motion_trig) return -ENOMEM; - data->dready_trig->dev.parent = &client->dev; + data->dready_trig->dev.parent = dev; data->dready_trig->ops = &bmg160_trigger_ops; iio_trigger_set_drvdata(data->dready_trig, indio_dev); ret = iio_trigger_register(data->dready_trig); if (ret) return ret; - data->motion_trig->dev.parent = &client->dev; + data->motion_trig->dev.parent = dev; data->motion_trig->ops = &bmg160_trigger_ops; iio_trigger_set_drvdata(data->motion_trig, indio_dev); ret = iio_trigger_register(data->motion_trig); @@ -1092,25 +1091,25 @@ static int bmg160_probe(struct i2c_client *client, bmg160_trigger_handler, &bmg160_buffer_setup_ops); if (ret < 0) { - dev_err(&client->dev, + dev_err(dev, "iio triggered buffer setup failed\n"); goto err_trigger_unregister; } ret = iio_device_register(indio_dev); if (ret < 0) { - dev_err(&client->dev, "unable to register iio device\n"); + dev_err(dev, "unable to register iio device\n"); goto err_buffer_cleanup; } - ret = pm_runtime_set_active(&client->dev); + ret = pm_runtime_set_active(dev); if (ret) goto err_iio_unregister; - pm_runtime_enable(&client->dev); - pm_runtime_set_autosuspend_delay(&client->dev, + pm_runtime_enable(dev); + pm_runtime_set_autosuspend_delay(dev, BMG160_AUTO_SUSPEND_DELAY_MS); - pm_runtime_use_autosuspend(&client->dev); + pm_runtime_use_autosuspend(dev); return 0; From e0950d3b9e88051082f7d5a60a0f8156285cbb6d Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Wed, 12 Aug 2015 14:28:34 +0300 Subject: [PATCH 0015/2431] Documentation: iio-trig-sysfs: Document add_trigger attribute This patch adds the ABI documentation for the add_trigger attribute, which is provided by the iio-trig-sysfs stand-alone driver. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron --- Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs b/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs index bbb039237a25..76698d2f0eea 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs +++ b/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs @@ -18,3 +18,14 @@ Description: trigger. In order to associate the trigger with an IIO device one should write this name string to /sys/bus/iio/devices/iio:deviceY/trigger/current_trigger. + +What: /sys/bus/iio/devices/iio_sysfs_trigger/add_trigger +KernelVersion: 2.6.39 +Contact: linux-iio@vger.kernel.org +Description: + This attribute is provided by the iio-trig-sysfs stand-alone + driver and it is used to activate the creation of a new trigger. + In order to achieve this, one should write a positive integer + into the associated file, which will serve as the id of the + trigger. If the trigger with the specified id is already present + in the system, an invalid argument message will be returned. From 8d96fc276aaec449871bcb86cef41f3187136f0a Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Wed, 12 Aug 2015 14:29:41 +0300 Subject: [PATCH 0016/2431] Documentation: iio-trig-sysfs: Add remove_trigger attribute ABI This patch adds the documentation ABI for the remove_trigger attribute, provided by the iio-trig-sysfs stand-alone driver. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron --- Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs b/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs index 76698d2f0eea..04ac62305018 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs +++ b/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs @@ -29,3 +29,14 @@ Description: into the associated file, which will serve as the id of the trigger. If the trigger with the specified id is already present in the system, an invalid argument message will be returned. + +What: /sys/bus/iio/devices/iio_sysfs_trigger/remove_trigger +KernelVersion: 2.6.39 +Contact: linux-iio@vger.kernel.org +Description: + This attribute is used to unregister and delete a previously + created trigger from the list of available triggers. In order to + achieve this, one should write a positive integer into the + associated file, representing the id of the trigger that needs + to be removed. If the trigger can't be found, an invalid + argument message will be returned to the user. From a0175b9c76f59c1f5706f986d690e27ba06363dd Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Wed, 12 Aug 2015 10:22:41 +0200 Subject: [PATCH 0017/2431] iio: st_sensors: add debugfs register read hook This adds a debugfs hook to read/write registers in the ST sensors using debugfs. Proved to be awesome help when trying to debug why IRQs do not arrive. Signed-off-by: Linus Walleij Acked-by: Denis Ciocca Signed-off-by: Jonathan Cameron --- drivers/iio/accel/st_accel_core.c | 1 + .../iio/common/st_sensors/st_sensors_core.c | 22 +++++++++++++++++++ drivers/iio/gyro/st_gyro_core.c | 1 + drivers/iio/magnetometer/st_magn_core.c | 1 + drivers/iio/pressure/st_pressure_core.c | 1 + include/linux/iio/common/st_sensors.h | 4 ++++ 6 files changed, 30 insertions(+) diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c index ff30f8806880..dab8b76c1427 100644 --- a/drivers/iio/accel/st_accel_core.c +++ b/drivers/iio/accel/st_accel_core.c @@ -618,6 +618,7 @@ static const struct iio_info accel_info = { .attrs = &st_accel_attribute_group, .read_raw = &st_accel_read_raw, .write_raw = &st_accel_write_raw, + .debugfs_reg_access = &st_sensors_debugfs_reg_access, }; #ifdef CONFIG_IIO_TRIGGER diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c index 2e7fdb502645..25258e2c1a82 100644 --- a/drivers/iio/common/st_sensors/st_sensors_core.c +++ b/drivers/iio/common/st_sensors/st_sensors_core.c @@ -44,6 +44,28 @@ st_sensors_write_data_with_mask_error: return err; } +int st_sensors_debugfs_reg_access(struct iio_dev *indio_dev, + unsigned reg, unsigned writeval, + unsigned *readval) +{ + struct st_sensor_data *sdata = iio_priv(indio_dev); + u8 readdata; + int err; + + if (!readval) + return sdata->tf->write_byte(&sdata->tb, sdata->dev, + (u8)reg, (u8)writeval); + + err = sdata->tf->read_byte(&sdata->tb, sdata->dev, (u8)reg, &readdata); + if (err < 0) + return err; + + *readval = (unsigned)readdata; + + return 0; +} +EXPORT_SYMBOL(st_sensors_debugfs_reg_access); + static int st_sensors_match_odr(struct st_sensor_settings *sensor_settings, unsigned int odr, struct st_sensor_odr_avl *odr_out) { diff --git a/drivers/iio/gyro/st_gyro_core.c b/drivers/iio/gyro/st_gyro_core.c index 4b993a5bc9a1..02eddcebeea3 100644 --- a/drivers/iio/gyro/st_gyro_core.c +++ b/drivers/iio/gyro/st_gyro_core.c @@ -383,6 +383,7 @@ static const struct iio_info gyro_info = { .attrs = &st_gyro_attribute_group, .read_raw = &st_gyro_read_raw, .write_raw = &st_gyro_write_raw, + .debugfs_reg_access = &st_sensors_debugfs_reg_access, }; #ifdef CONFIG_IIO_TRIGGER diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c index f8dc4b85d70c..b27f0146647b 100644 --- a/drivers/iio/magnetometer/st_magn_core.c +++ b/drivers/iio/magnetometer/st_magn_core.c @@ -560,6 +560,7 @@ static const struct iio_info magn_info = { .attrs = &st_magn_attribute_group, .read_raw = &st_magn_read_raw, .write_raw = &st_magn_write_raw, + .debugfs_reg_access = &st_sensors_debugfs_reg_access, }; #ifdef CONFIG_IIO_TRIGGER diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c index eb41d2b92c24..b39a2fb0671c 100644 --- a/drivers/iio/pressure/st_pressure_core.c +++ b/drivers/iio/pressure/st_pressure_core.c @@ -400,6 +400,7 @@ static const struct iio_info press_info = { .attrs = &st_press_attribute_group, .read_raw = &st_press_read_raw, .write_raw = &st_press_write_raw, + .debugfs_reg_access = &st_sensors_debugfs_reg_access, }; #ifdef CONFIG_IIO_TRIGGER diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h index 3c17cd7fdf06..2fe939c73cd2 100644 --- a/include/linux/iio/common/st_sensors.h +++ b/include/linux/iio/common/st_sensors.h @@ -271,6 +271,10 @@ void st_sensors_power_enable(struct iio_dev *indio_dev); void st_sensors_power_disable(struct iio_dev *indio_dev); +int st_sensors_debugfs_reg_access(struct iio_dev *indio_dev, + unsigned reg, unsigned writeval, + unsigned *readval); + int st_sensors_set_odr(struct iio_dev *indio_dev, unsigned int odr); int st_sensors_set_dataready_irq(struct iio_dev *indio_dev, bool enable); From 672f93b6047cc724f002cf50a84f4e8155b86f12 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Tue, 11 Aug 2015 14:34:38 +0200 Subject: [PATCH 0018/2431] iio: event_monitor: report unsupported events This makes the event monitor bail out with a helpful error message if a device does not support events, as a related fix to iio core now makes it return -ENODEV properly. Signed-off-by: Linus Walleij Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- tools/iio/iio_event_monitor.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/iio/iio_event_monitor.c b/tools/iio/iio_event_monitor.c index cd3fd41b481d..d51eb04202e9 100644 --- a/tools/iio/iio_event_monitor.c +++ b/tools/iio/iio_event_monitor.c @@ -284,7 +284,11 @@ int main(int argc, char **argv) ret = ioctl(fd, IIO_GET_EVENT_FD_IOCTL, &event_fd); if (ret == -1 || event_fd == -1) { ret = -errno; - fprintf(stderr, "Failed to retrieve event fd\n"); + if (ret == -ENODEV) + fprintf(stderr, + "This device does not support events\n"); + else + fprintf(stderr, "Failed to retrieve event fd\n"); if (close(fd) == -1) perror("Failed to close character device file"); From 53dabafe1b17411de82b6c4560145cf396cbb564 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Mon, 10 Aug 2015 10:55:08 +0200 Subject: [PATCH 0019/2431] iio: generic_buffer: be helpful about enabling channels Currently if generic_buffer is invoked without first enabling any channels in scan_elements/*_en, it will fail unable to enable the buffer because bytes_per_datum inside the kernel will be zero if no channels are available. It is implied that the user of the program should enable channels manually or with a script before executing generic_buffer. Be more helpful by stopping execution if no enabled channels can be found, and print a helptext that will tell you what is wrong and what needs to be done. Signed-off-by: Linus Walleij Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- tools/iio/generic_buffer.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/iio/generic_buffer.c b/tools/iio/generic_buffer.c index 9f7b85bf6ada..01c4f67801e0 100644 --- a/tools/iio/generic_buffer.c +++ b/tools/iio/generic_buffer.c @@ -328,6 +328,15 @@ int main(int argc, char **argv) "diag %s\n", dev_dir_name); goto error_free_triggername; } + if (!num_channels) { + fprintf(stderr, + "No channels are enabled, we have nothing to scan.\n"); + fprintf(stderr, "Enable channels manually in " + FORMAT_SCAN_ELEMENTS_DIR + "/*_en and try again.\n", dev_dir_name); + ret = -ENOENT; + goto error_free_triggername; + } /* * Construct the directory name for the associated buffer. From 3f9059b71791cf0e57a4879594f0066237976943 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Tue, 11 Aug 2015 11:56:40 +0200 Subject: [PATCH 0020/2431] iio: percolate error if event fd fails This makes the error from iio_event_getfd() percolate up to userspace properly so we can know for sure there is no events on this device (-ENODEV returned). Before this patch we would bail out looking for the unsupported events on the erroneous (negative) file descriptor. Signed-off-by: Linus Walleij Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron --- drivers/iio/industrialio-core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index b3fcc2c449d8..b347524d1b6d 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -1153,6 +1153,8 @@ static long iio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) if (cmd == IIO_GET_EVENT_FD_IOCTL) { fd = iio_event_getfd(indio_dev); + if (fd < 0) + return fd; if (copy_to_user(ip, &fd, sizeof(fd))) return -EFAULT; return 0; From 70b2737e0a948552843ce1b8500e033080677086 Mon Sep 17 00:00:00 2001 From: Yong Li Date: Wed, 12 Aug 2015 21:25:46 +0800 Subject: [PATCH 0021/2431] staging: iio: hmc5843: Set iio name dynamically Load the driver using the below command: echo hmc5983 0x1e > /sys/bus/i2c/devices/i2c-?/new_device In sysfs, the iio name is hmc5843, however the i2c name is hmc5983, they are inconsistent. With this patch, the iio name will be the same as the i2c device name Signed-off-by: Yong Li Reviewed-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/staging/iio/magnetometer/hmc5843.h | 2 +- drivers/staging/iio/magnetometer/hmc5843_core.c | 4 ++-- drivers/staging/iio/magnetometer/hmc5843_i2c.c | 2 +- drivers/staging/iio/magnetometer/hmc5843_spi.c | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/staging/iio/magnetometer/hmc5843.h b/drivers/staging/iio/magnetometer/hmc5843.h index f3d0da2fe458..06f35d3828e4 100644 --- a/drivers/staging/iio/magnetometer/hmc5843.h +++ b/drivers/staging/iio/magnetometer/hmc5843.h @@ -48,7 +48,7 @@ struct hmc5843_data { }; int hmc5843_common_probe(struct device *dev, struct regmap *regmap, - enum hmc5843_ids id); + enum hmc5843_ids id, const char *name); int hmc5843_common_remove(struct device *dev); int hmc5843_common_suspend(struct device *dev); diff --git a/drivers/staging/iio/magnetometer/hmc5843_core.c b/drivers/staging/iio/magnetometer/hmc5843_core.c index fffca3a9f637..4aab0228a195 100644 --- a/drivers/staging/iio/magnetometer/hmc5843_core.c +++ b/drivers/staging/iio/magnetometer/hmc5843_core.c @@ -577,7 +577,7 @@ int hmc5843_common_resume(struct device *dev) EXPORT_SYMBOL(hmc5843_common_resume); int hmc5843_common_probe(struct device *dev, struct regmap *regmap, - enum hmc5843_ids id) + enum hmc5843_ids id, const char *name) { struct hmc5843_data *data; struct iio_dev *indio_dev; @@ -597,7 +597,7 @@ int hmc5843_common_probe(struct device *dev, struct regmap *regmap, mutex_init(&data->lock); indio_dev->dev.parent = dev; - indio_dev->name = dev->driver->name; + indio_dev->name = name; indio_dev->info = &hmc5843_info; indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->channels = data->variant->channels; diff --git a/drivers/staging/iio/magnetometer/hmc5843_i2c.c b/drivers/staging/iio/magnetometer/hmc5843_i2c.c index ff08667fa2f6..3e06ceb32059 100644 --- a/drivers/staging/iio/magnetometer/hmc5843_i2c.c +++ b/drivers/staging/iio/magnetometer/hmc5843_i2c.c @@ -61,7 +61,7 @@ static int hmc5843_i2c_probe(struct i2c_client *cli, { return hmc5843_common_probe(&cli->dev, devm_regmap_init_i2c(cli, &hmc5843_i2c_regmap_config), - id->driver_data); + id->driver_data, id->name); } static int hmc5843_i2c_remove(struct i2c_client *client) diff --git a/drivers/staging/iio/magnetometer/hmc5843_spi.c b/drivers/staging/iio/magnetometer/hmc5843_spi.c index 8e658f736e1f..8a80d0187ca6 100644 --- a/drivers/staging/iio/magnetometer/hmc5843_spi.c +++ b/drivers/staging/iio/magnetometer/hmc5843_spi.c @@ -59,6 +59,7 @@ static const struct regmap_config hmc5843_spi_regmap_config = { static int hmc5843_spi_probe(struct spi_device *spi) { int ret; + const struct spi_device_id *id = spi_get_device_id(spi); spi->mode = SPI_MODE_3; spi->max_speed_hz = 8000000; @@ -69,7 +70,7 @@ static int hmc5843_spi_probe(struct spi_device *spi) return hmc5843_common_probe(&spi->dev, devm_regmap_init_spi(spi, &hmc5843_spi_regmap_config), - HMC5983_ID); + id->driver_data, id->name); } static int hmc5843_spi_remove(struct spi_device *spi) From 70581e0ef8634074cc305f9e63e8abec08788753 Mon Sep 17 00:00:00 2001 From: Xander Huff Date: Tue, 11 Aug 2015 18:00:49 -0500 Subject: [PATCH 0022/2431] iio: adc: xilinx-xadc: Push interrupts into hardirq context The driver currently registers a pair of irq handlers using request_threaded_irq(), however the synchronization mechanism between the hardirq and the threadedirq handler is a regular spinlock. Unfortunately, this breaks PREEMPT_RT builds, where a spinlock can sleep, and is thus not able to be acquired from a hardirq handler. This patch gets rid of the threaded handler and pushes all interrupt handling into the hardirq context, and uses request_irq(). To validate that this change has no impact on RT performance, here are cyclictest values with no processes running: $ sudo cyclictest -S -m -p 98 policy: fifo: loadavg: 0.00 0.01 0.05 1/174 2539 T: 0 ( 1405) P:98 I:1000 C:167010520 Min: 9 Act: 12 Avg: 12 Max: 75 T: 1 ( 1862) P:98 I:1500 C:111340339 Min: 9 Act: 12 Avg: 12 Max: 73 Then, all xadc raw handles were accessed in a continuous loop via /sys/bus/iio/devices/iio:device0: $ sudo cyclictest -S -m -p 98 policy: fifo: loadavg: 7.84 7.70 7.63 3/182 4260 T: 0 ( 2559) P:98 I:1000 C:241557018 Min: 11 Act: 18 Avg: 21 Max: 74 T: 1 ( 2560) P:98 I:1500 C:161038006 Min: 10 Act: 21 Avg: 20 Max: 73 Signed-off-by: Xander Huff Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/iio/adc/xilinx-xadc-core.c | 37 ++++++++---------------------- drivers/iio/adc/xilinx-xadc.h | 2 -- 2 files changed, 10 insertions(+), 29 deletions(-) diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c index ce93bd8e3f68..0370624a35db 100644 --- a/drivers/iio/adc/xilinx-xadc-core.c +++ b/drivers/iio/adc/xilinx-xadc-core.c @@ -273,33 +273,13 @@ static void xadc_zynq_unmask_worker(struct work_struct *work) schedule_delayed_work(&xadc->zynq_unmask_work, msecs_to_jiffies(XADC_ZYNQ_UNMASK_TIMEOUT)); } -} -static irqreturn_t xadc_zynq_threaded_interrupt_handler(int irq, void *devid) -{ - struct iio_dev *indio_dev = devid; - struct xadc *xadc = iio_priv(indio_dev); - unsigned int alarm; - - spin_lock_irq(&xadc->lock); - alarm = xadc->zynq_alarm; - xadc->zynq_alarm = 0; - spin_unlock_irq(&xadc->lock); - - xadc_handle_events(indio_dev, xadc_zynq_transform_alarm(alarm)); - - /* unmask the required interrupts in timer. */ - schedule_delayed_work(&xadc->zynq_unmask_work, - msecs_to_jiffies(XADC_ZYNQ_UNMASK_TIMEOUT)); - - return IRQ_HANDLED; } static irqreturn_t xadc_zynq_interrupt_handler(int irq, void *devid) { struct iio_dev *indio_dev = devid; struct xadc *xadc = iio_priv(indio_dev); - irqreturn_t ret = IRQ_HANDLED; uint32_t status; xadc_read_reg(xadc, XADC_ZYNQ_REG_INTSTS, &status); @@ -321,18 +301,23 @@ static irqreturn_t xadc_zynq_interrupt_handler(int irq, void *devid) status &= XADC_ZYNQ_INT_ALARM_MASK; if (status) { - xadc->zynq_alarm |= status; xadc->zynq_masked_alarm |= status; /* * mask the current event interrupt, * unmask it when the interrupt is no more active. */ xadc_zynq_update_intmsk(xadc, 0, 0); - ret = IRQ_WAKE_THREAD; + + xadc_handle_events(indio_dev, + xadc_zynq_transform_alarm(status)); + + /* unmask the required interrupts in timer. */ + schedule_delayed_work(&xadc->zynq_unmask_work, + msecs_to_jiffies(XADC_ZYNQ_UNMASK_TIMEOUT)); } spin_unlock(&xadc->lock); - return ret; + return IRQ_HANDLED; } #define XADC_ZYNQ_TCK_RATE_MAX 50000000 @@ -437,7 +422,6 @@ static const struct xadc_ops xadc_zynq_ops = { .setup = xadc_zynq_setup, .get_dclk_rate = xadc_zynq_get_dclk_rate, .interrupt_handler = xadc_zynq_interrupt_handler, - .threaded_interrupt_handler = xadc_zynq_threaded_interrupt_handler, .update_alarm = xadc_zynq_update_alarm, }; @@ -1225,9 +1209,8 @@ static int xadc_probe(struct platform_device *pdev) if (ret) goto err_free_samplerate_trigger; - ret = request_threaded_irq(irq, xadc->ops->interrupt_handler, - xadc->ops->threaded_interrupt_handler, - 0, dev_name(&pdev->dev), indio_dev); + ret = request_irq(irq, xadc->ops->interrupt_handler, 0, + dev_name(&pdev->dev), indio_dev); if (ret) goto err_clk_disable_unprepare; diff --git a/drivers/iio/adc/xilinx-xadc.h b/drivers/iio/adc/xilinx-xadc.h index 54adc5087210..f6f081965647 100644 --- a/drivers/iio/adc/xilinx-xadc.h +++ b/drivers/iio/adc/xilinx-xadc.h @@ -60,7 +60,6 @@ struct xadc { enum xadc_external_mux_mode external_mux_mode; - unsigned int zynq_alarm; unsigned int zynq_masked_alarm; unsigned int zynq_intmask; struct delayed_work zynq_unmask_work; @@ -79,7 +78,6 @@ struct xadc_ops { void (*update_alarm)(struct xadc *, unsigned int); unsigned long (*get_dclk_rate)(struct xadc *); irqreturn_t (*interrupt_handler)(int, void *); - irqreturn_t (*threaded_interrupt_handler)(int, void *); unsigned int flags; }; From 8463f6fb78e0798817785e03860f8b1fc4e1b2e8 Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Tue, 11 Aug 2015 13:18:18 +0300 Subject: [PATCH 0023/2431] Staging: iio: trigger: Alignment should match open parenthesis Fix alignment for function parameters as suggested by checkpatch.pl. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron --- drivers/staging/iio/trigger/iio-trig-bfin-timer.c | 7 ++++--- drivers/staging/iio/trigger/iio-trig-periodic-rtc.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c index 3c1c8c6c4a6c..9fe48ef11473 100644 --- a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c +++ b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c @@ -79,7 +79,8 @@ static int iio_bfin_tmr_set_state(struct iio_trigger *trig, bool state) } static ssize_t iio_bfin_tmr_frequency_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) + struct device_attribute *attr, + const char *buf, size_t count) { struct iio_trigger *trig = to_iio_trigger(dev); struct bfin_tmr_state *st = iio_trigger_get_drvdata(trig); @@ -116,8 +117,8 @@ static ssize_t iio_bfin_tmr_frequency_store(struct device *dev, } static ssize_t iio_bfin_tmr_frequency_show(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_trigger *trig = to_iio_trigger(dev); struct bfin_tmr_state *st = iio_trigger_get_drvdata(trig); diff --git a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c index 0c1976ddee74..a2a42c292211 100644 --- a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c +++ b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c @@ -37,7 +37,7 @@ static int iio_trig_periodic_rtc_set_state(struct iio_trigger *trig, bool state) if (trig_info->frequency == 0 && state) return -EINVAL; dev_dbg(&trig_info->rtc->dev, "trigger frequency is %u\n", - trig_info->frequency); + trig_info->frequency); ret = rtc_irq_set_state(trig_info->rtc, &trig_info->task, state); if (ret == 0) trig_info->state = state; From a6d748e3ad927f6f2b93c9747d78da72c83141b6 Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Tue, 11 Aug 2015 13:20:53 +0300 Subject: [PATCH 0024/2431] Staging: iio: trigger: Use braces on both branches of if statement Fix style issue related to missing braces, detected by checkpatch.pl. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron --- drivers/staging/iio/trigger/iio-trig-periodic-rtc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c index a2a42c292211..2db885750fb8 100644 --- a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c +++ b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c @@ -74,8 +74,9 @@ static ssize_t iio_trig_periodic_write_freq(struct device *dev, if (ret == 0 && trig_info->state && trig_info->frequency == 0) ret = rtc_irq_set_state(trig_info->rtc, &trig_info->task, 1); - } else + } else { ret = rtc_irq_set_state(trig_info->rtc, &trig_info->task, 0); + } if (ret) goto error_ret; From 45ef12b6ad6ade7bb8c89db3d3101e99d9552f3a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:15 +0200 Subject: [PATCH 0025/2431] staging: iio: hmc5843: Export missing SPI module alias information The SPI core always reports the MODALIAS uevent as "spi:" regardless of the mechanism that was used to register the device (i.e: OF or board code) and the table that is used later to match the driver with the device (i.e: SPI id table or OF match table). So drivers needs to export the SPI id table and this be built into the module or udev won't have the necessary information to autoload the needed driver module when the device is added. Signed-off-by: Javier Martinez Canillas Signed-off-by: Jonathan Cameron --- drivers/staging/iio/magnetometer/hmc5843_spi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/iio/magnetometer/hmc5843_spi.c b/drivers/staging/iio/magnetometer/hmc5843_spi.c index 8a80d0187ca6..1549192c0dec 100644 --- a/drivers/staging/iio/magnetometer/hmc5843_spi.c +++ b/drivers/staging/iio/magnetometer/hmc5843_spi.c @@ -82,6 +82,7 @@ static const struct spi_device_id hmc5843_id[] = { { "hmc5983", HMC5983_ID }, { } }; +MODULE_DEVICE_TABLE(spi, hmc5843_id); static struct spi_driver hmc5843_driver = { .driver = { From d1b895fedae30e2e948dbae4d209509c44564074 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:24 +0200 Subject: [PATCH 0026/2431] iio: adc: max1027: Set struct spi_driver .of_match_table The driver has an OF id table but the .of_match_table is not set so the SPI core can't do an OF style match and the table was unused. Signed-off-by: Javier Martinez Canillas Signed-off-by: Jonathan Cameron --- drivers/iio/adc/max1027.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c index 44bf815adb6c..54a8302aaace 100644 --- a/drivers/iio/adc/max1027.c +++ b/drivers/iio/adc/max1027.c @@ -508,6 +508,7 @@ static int max1027_remove(struct spi_device *spi) static struct spi_driver max1027_driver = { .driver = { .name = "max1027", + .of_match_table = of_match_ptr(max1027_adc_dt_ids), .owner = THIS_MODULE, }, .probe = max1027_probe, From 8b7c826d03721ed1d96bd87f138e59dcf80f54e7 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:27 +0200 Subject: [PATCH 0027/2431] iio: as3935: Add OF match table The Documentation/devicetree/bindings/iio/proximity/as3935.txt DT binding doc lists "ams,as3935" as a compatible string but the corresponding driver does not have an OF match table. Add the table to the driver so the SPI core can do an OF style match. Signed-off-by: Javier Martinez Canillas Signed-off-by: Jonathan Cameron --- drivers/iio/proximity/as3935.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/iio/proximity/as3935.c b/drivers/iio/proximity/as3935.c index bc0d68efd455..e95035136889 100644 --- a/drivers/iio/proximity/as3935.c +++ b/drivers/iio/proximity/as3935.c @@ -434,6 +434,12 @@ static int as3935_remove(struct spi_device *spi) return 0; } +static const struct of_device_id as3935_of_match[] = { + { .compatible = "ams,as3935", }, + { /* sentinel */ }, +}; +MODULE_DEVICE_TABLE(of, as3935_of_match); + static const struct spi_device_id as3935_id[] = { {"as3935", 0}, {}, @@ -443,6 +449,7 @@ MODULE_DEVICE_TABLE(spi, as3935_id); static struct spi_driver as3935_driver = { .driver = { .name = "as3935", + .of_match_table = of_match_ptr(as3935_of_match), .owner = THIS_MODULE, .pm = AS3935_PM_OPS, }, From 9e611c9e5a20c28f426271a0c2c962795b699069 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:28 +0200 Subject: [PATCH 0028/2431] iio: adc128s052: Add OF match table The Documentation/devicetree/bindings/iio/adc/ti-adc128s052.txt DT binding doc lists "ti,adc128s052" or "ti,adc122s021" as compatible strings but the corresponding driver does not have an OF match table. Add the table to the driver so the SPI core can do an OF style match. Signed-off-by: Javier Martinez Canillas Signed-off-by: Jonathan Cameron --- drivers/iio/adc/ti-adc128s052.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/iio/adc/ti-adc128s052.c b/drivers/iio/adc/ti-adc128s052.c index 915be6b60097..98c0d2b444bf 100644 --- a/drivers/iio/adc/ti-adc128s052.c +++ b/drivers/iio/adc/ti-adc128s052.c @@ -174,6 +174,13 @@ static int adc128_remove(struct spi_device *spi) return 0; } +static const struct of_device_id adc128_of_match[] = { + { .compatible = "ti,adc128s052", }, + { .compatible = "ti,adc122s021", }, + { /* sentinel */ }, +}; +MODULE_DEVICE_TABLE(of, adc128_of_match); + static const struct spi_device_id adc128_id[] = { { "adc128s052", 0}, /* index into adc128_config */ { "adc122s021", 1}, @@ -184,6 +191,7 @@ MODULE_DEVICE_TABLE(spi, adc128_id); static struct spi_driver adc128_driver = { .driver = { .name = "adc128s052", + .of_match_table = of_match_ptr(adc128_of_match), .owner = THIS_MODULE, }, .probe = adc128_probe, From 9c68be3ecc74e1ccc085eab6f0cdbaff3093fba2 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:29 +0200 Subject: [PATCH 0029/2431] iio: frequency: adf4350: Add OF match table The Documentation/devicetree/bindings/iio/frequency/adf4350.txt DT binding doc lists "adi,adf4350" or "adi,adf4351" as compatible strings but the corresponding driver does not have an OF match table. Add the table to the driver so the SPI core can do an OF style match. Signed-off-by: Javier Martinez Canillas Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/iio/frequency/adf4350.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c index 9890c81c027d..9a6ef3c2edd0 100644 --- a/drivers/iio/frequency/adf4350.c +++ b/drivers/iio/frequency/adf4350.c @@ -616,6 +616,13 @@ static int adf4350_remove(struct spi_device *spi) return 0; } +static const struct of_device_id adf4350_of_match[] = { + { .compatible = "adi,adf4350", }, + { .compatible = "adi,adf4351", }, + { /* sentinel */ }, +}; +MODULE_DEVICE_TABLE(of, adf4350_of_match); + static const struct spi_device_id adf4350_id[] = { {"adf4350", 4350}, {"adf4351", 4351}, @@ -625,6 +632,7 @@ static const struct spi_device_id adf4350_id[] = { static struct spi_driver adf4350_driver = { .driver = { .name = "adf4350", + .of_match_table = of_match_ptr(adf4350_of_match), .owner = THIS_MODULE, }, .probe = adf4350_probe, From 1c00dcd31d8e71670180ff938f05eb9aef49c84e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:23 +0200 Subject: [PATCH 0030/2431] iio: dac: ad7303: Add OF match table The Documentation/devicetree/bindings/iio/dac/ad7303.txt DT binding doc lists "adi,ad7303" as a compatible string but the corresponding driver does not have an OF match table. Add the table to the driver so the SPI core can do an OF style match. Signed-off-by: Javier Martinez Canillas Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/iio/dac/ad7303.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/iio/dac/ad7303.c b/drivers/iio/dac/ad7303.c index fa2810032968..18a4ad5ff8c5 100644 --- a/drivers/iio/dac/ad7303.c +++ b/drivers/iio/dac/ad7303.c @@ -281,6 +281,12 @@ static int ad7303_remove(struct spi_device *spi) return 0; } +static const struct of_device_id ad7303_spi_of_match[] = { + { .compatible = "adi,ad7303", }, + { /* sentinel */ }, +}; +MODULE_DEVICE_TABLE(of, ad7303_spi_of_match); + static const struct spi_device_id ad7303_spi_ids[] = { { "ad7303", 0 }, {} @@ -290,6 +296,7 @@ MODULE_DEVICE_TABLE(spi, ad7303_spi_ids); static struct spi_driver ad7303_driver = { .driver = { .name = "ad7303", + .of_match_table = of_match_ptr(ad7303_spi_of_match), .owner = THIS_MODULE, }, .probe = ad7303_probe, From ed199a11bdfd2957e46984b77a1e1f0927dc9fa0 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:14 +0200 Subject: [PATCH 0031/2431] iio: Export SPI module alias information in missing drivers The SPI core always reports the MODALIAS uevent as "spi:" regardless of the mechanism that was used to register the device (i.e: OF or board code) and the table that is used later to match the driver with the device (i.e: SPI id table or OF match table). So drivers needs to export the SPI id table and this be built into the module or udev won't have the necessary information to autoload the needed driver module when the device is added. Signed-off-by: Javier Martinez Canillas Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/iio/amplifiers/ad8366.c | 1 + drivers/iio/frequency/adf4350.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c index c0d364ebaea8..32b82a2dc894 100644 --- a/drivers/iio/amplifiers/ad8366.c +++ b/drivers/iio/amplifiers/ad8366.c @@ -195,6 +195,7 @@ static const struct spi_device_id ad8366_id[] = { {"ad8366", 0}, {} }; +MODULE_DEVICE_TABLE(spi, ad8366_id); static struct spi_driver ad8366_driver = { .driver = { diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c index 9a6ef3c2edd0..73f27e0a08dd 100644 --- a/drivers/iio/frequency/adf4350.c +++ b/drivers/iio/frequency/adf4350.c @@ -628,6 +628,7 @@ static const struct spi_device_id adf4350_id[] = { {"adf4351", 4351}, {} }; +MODULE_DEVICE_TABLE(spi, adf4350_id); static struct spi_driver adf4350_driver = { .driver = { From ab6ff6c6ca1b4739b2af07501bc333b85d7381d8 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:26 +0200 Subject: [PATCH 0032/2431] iio: adc: mcp320x: Set struct spi_driver .of_match_table The driver has an OF id table but the .of_match_table is not set so the SPI core can't do an OF style match and the table was unused. Signed-off-by: Javier Martinez Canillas Acked-by: Michael Welling Signed-off-by: Jonathan Cameron --- drivers/iio/adc/mcp320x.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c index b19e4f9d16e0..41a21e986c1a 100644 --- a/drivers/iio/adc/mcp320x.c +++ b/drivers/iio/adc/mcp320x.c @@ -404,6 +404,7 @@ MODULE_DEVICE_TABLE(spi, mcp320x_id); static struct spi_driver mcp320x_driver = { .driver = { .name = "mcp320x", + .of_match_table = of_match_ptr(mcp320x_dt_ids), .owner = THIS_MODULE, }, .probe = mcp320x_probe, From ecf7e207a55d8760734a9de5fba1a974628b92e5 Mon Sep 17 00:00:00 2001 From: Nicola Corna Date: Sun, 23 Aug 2015 23:06:19 +0200 Subject: [PATCH 0033/2431] iio: humidity: si7020: replaced bitmask on humidity values with range check The maximum possible value for the relative humidity is 55575 (100%RH). This value, if shifted right by 2 bits, uses 14 bits and masking it with a 12 bit mask removes 2 meaningful bits. The masking has been replaced with a range check that sets the minimum value at 786 (0%RH) and the maximum at 13893 (99.998%RH). Signed-off-by: Nicola Corna Reviewed-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- drivers/iio/humidity/si7020.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iio/humidity/si7020.c b/drivers/iio/humidity/si7020.c index fa3b809aff5e..12128d1ca570 100644 --- a/drivers/iio/humidity/si7020.c +++ b/drivers/iio/humidity/si7020.c @@ -57,8 +57,12 @@ static int si7020_read_raw(struct iio_dev *indio_dev, if (ret < 0) return ret; *val = ret >> 2; + /* + * Humidity values can slightly exceed the 0-100%RH + * range and should be corrected by software + */ if (chan->type == IIO_HUMIDITYRELATIVE) - *val &= GENMASK(11, 0); + *val = clamp_val(*val, 786, 13893); return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: if (chan->type == IIO_TEMP) From 764589b688a1b087b5ff6c1e99f7cd57a5241395 Mon Sep 17 00:00:00 2001 From: Crt Mori Date: Mon, 17 Aug 2015 19:34:33 +0200 Subject: [PATCH 0034/2431] iio: mlx90614: Implement filter configuration Implemented Low pass 3db frequency filter which configures FIR and IIR values within the configuration register of EEPROM. For more standardized interface we have fixed the FIR value to 1024, while changes in IIR value are directly connected to filter responses. The new datasheet version will provide a simplified table (also in reStructured text format below) with this change, to provide quick overview of possible settings. Below sensor timings (bandwidth) are calculated for 3db frequency low pass filter. +--------------------+-----------------+ | Filter setting (%) | Band width (Hz) | | (rounded to 1.0) | | +====================+=================+ | 13 | 0.15 | +--------------------+-----------------+ | 17 | 0.20 | +--------------------+-----------------+ | 25 | 0.31 | +--------------------+-----------------+ | 50 | 0.77 | +--------------------+-----------------+ | 57 | 0.86 | +--------------------+-----------------+ | 67 | 1.10 | +--------------------+-----------------+ | 80 | 1.53 | +--------------------+-----------------+ | 100 | 7.23 | +--------------------+-----------------+ The diff is made towards togreg branch. Added myself to MAINTAINERS and authors as per discussion with Jonathan. Signed-off-by: Crt Mori Signed-off-by: Jonathan Cameron --- MAINTAINERS | 7 +++ drivers/iio/temperature/mlx90614.c | 90 +++++++++++++++++++++++++++++- 2 files changed, 94 insertions(+), 3 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index fb7d3b6acd70..d8bf36d418df 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6757,6 +6757,13 @@ S: Supported F: include/linux/mlx5/ F: drivers/infiniband/hw/mlx5/ +MELEXIS MLX90614 DRIVER +M: Crt Mori +L: linux-iio@vger.kernel.org +W: http://www.melexis.com +S: Supported +F: drivers/iio/temperature/mlx90614.c + MN88472 MEDIA DRIVER M: Antti Palosaari L: linux-media@vger.kernel.org diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c index 5d033a5af615..3fd3ba426a84 100644 --- a/drivers/iio/temperature/mlx90614.c +++ b/drivers/iio/temperature/mlx90614.c @@ -3,6 +3,7 @@ * * Copyright (c) 2014 Peter Meerwald * Copyright (c) 2015 Essensium NV + * Copyright (c) 2015 Melexis * * This file is subject to the terms and conditions of version 2 of * the GNU General Public License. See the file COPYING in the main @@ -20,7 +21,6 @@ * always has a pull-up so we do not need an extra GPIO to drive it high. If * the "wakeup" GPIO is not given, power management will be disabled. * - * TODO: filter configuration */ #include @@ -32,6 +32,7 @@ #include #include +#include #define MLX90614_OP_RAM 0x00 #define MLX90614_OP_EEPROM 0x20 @@ -79,6 +80,20 @@ struct mlx90614_data { unsigned long ready_timestamp; /* in jiffies */ }; +/* Bandwidth values for IIR filtering */ +static const int mlx90614_iir_values[] = {77, 31, 20, 15, 723, 153, 110, 86}; +static IIO_CONST_ATTR(in_temp_object_filter_low_pass_3db_frequency_available, + "0.15 0.20 0.31 0.77 0.86 1.10 1.53 7.23"); + +static struct attribute *mlx90614_attributes[] = { + &iio_const_attr_in_temp_object_filter_low_pass_3db_frequency_available.dev_attr.attr, + NULL, +}; + +static const struct attribute_group mlx90614_attr_group = { + .attrs = mlx90614_attributes, +}; + /* * Erase an address and write word. * The mutex must be locked before calling. @@ -117,6 +132,42 @@ static s32 mlx90614_write_word(const struct i2c_client *client, u8 command, return ret; } +/* + * Find the IIR value inside mlx90614_iir_values array and return its position + * which is equivalent to the bit value in sensor register + */ +static inline s32 mlx90614_iir_search(const struct i2c_client *client, + int value) +{ + int i; + s32 ret; + + for (i = 0; i < ARRAY_SIZE(mlx90614_iir_values); ++i) { + if (value == mlx90614_iir_values[i]) + break; + } + + if (i == ARRAY_SIZE(mlx90614_iir_values)) + return -EINVAL; + + /* + * CONFIG register values must not be changed so + * we must read them before we actually write + * changes + */ + ret = i2c_smbus_read_word_data(client, MLX90614_CONFIG); + if (ret > 0) + return ret; + + /* Write changed values */ + ret = mlx90614_write_word(client, MLX90614_CONFIG, + (i << MLX90614_CONFIG_IIR_SHIFT) | + (((u16) ((0x7 << MLX90614_CONFIG_FIR_SHIFT) | + ((u16) ret & (~((u16) MLX90614_CONFIG_FIR_MASK))))) & + (~(u16) MLX90614_CONFIG_IIR_MASK))); + return ret; +} + #ifdef CONFIG_PM /* * If @startup is true, make sure MLX90614_TIMING_STARTUP ms have elapsed since @@ -236,6 +287,21 @@ static int mlx90614_read_raw(struct iio_dev *indio_dev, *val2 = ret * MLX90614_CONST_EMISSIVITY_RESOLUTION; } return IIO_VAL_INT_PLUS_NANO; + case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: /* IIR setting with + FIR = 1024 */ + mlx90614_power_get(data, false); + mutex_lock(&data->lock); + ret = i2c_smbus_read_word_data(data->client, MLX90614_CONFIG); + mutex_unlock(&data->lock); + mlx90614_power_put(data); + + if (ret < 0) + return ret; + + *val = mlx90614_iir_values[ret & MLX90614_CONFIG_IIR_MASK] / 100; + *val2 = (mlx90614_iir_values[ret & MLX90614_CONFIG_IIR_MASK] % 100) * + 10000; + return IIO_VAL_INT_PLUS_MICRO; default: return -EINVAL; } @@ -262,6 +328,18 @@ static int mlx90614_write_raw(struct iio_dev *indio_dev, mutex_unlock(&data->lock); mlx90614_power_put(data); + return ret; + case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: /* IIR Filter setting */ + if (val < 0 || val2 < 0) + return -EINVAL; + + mlx90614_power_get(data, false); + mutex_lock(&data->lock); + ret = mlx90614_iir_search(data->client, + val * 100 + val2 / 10000); + mutex_unlock(&data->lock); + mlx90614_power_put(data); + return ret; default: return -EINVAL; @@ -275,6 +353,8 @@ static int mlx90614_write_raw_get_fmt(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_CALIBEMISSIVITY: return IIO_VAL_INT_PLUS_NANO; + case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: + return IIO_VAL_INT_PLUS_MICRO; default: return -EINVAL; } @@ -294,7 +374,8 @@ static const struct iio_chan_spec mlx90614_channels[] = { .modified = 1, .channel2 = IIO_MOD_TEMP_OBJECT, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | - BIT(IIO_CHAN_INFO_CALIBEMISSIVITY), + BIT(IIO_CHAN_INFO_CALIBEMISSIVITY) | + BIT(IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY), .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_SCALE), }, @@ -305,7 +386,8 @@ static const struct iio_chan_spec mlx90614_channels[] = { .channel = 1, .channel2 = IIO_MOD_TEMP_OBJECT, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | - BIT(IIO_CHAN_INFO_CALIBEMISSIVITY), + BIT(IIO_CHAN_INFO_CALIBEMISSIVITY) | + BIT(IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY), .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_SCALE), }, @@ -315,6 +397,7 @@ static const struct iio_info mlx90614_info = { .read_raw = mlx90614_read_raw, .write_raw = mlx90614_write_raw, .write_raw_get_fmt = mlx90614_write_raw_get_fmt, + .attrs = &mlx90614_attr_group, .driver_module = THIS_MODULE, }; @@ -569,5 +652,6 @@ module_i2c_driver(mlx90614_driver); MODULE_AUTHOR("Peter Meerwald "); MODULE_AUTHOR("Vianney le Clément de Saint-Marcq "); +MODULE_AUTHOR("Crt Mori "); MODULE_DESCRIPTION("Melexis MLX90614 contactless IR temperature sensor driver"); MODULE_LICENSE("GPL"); From 735ad074ffa72ccc4fdba8e54eb024df95545e7d Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Thu, 20 Aug 2015 22:37:39 +0300 Subject: [PATCH 0035/2431] iio: Support triggered events Support triggered events. This is useful for chips that don't have their own interrupt sources. It allows to use generic/standalone iio triggers for those drivers. Signed-off-by: Vladimir Barinov Signed-off-by: Jonathan Cameron --- drivers/iio/Kconfig | 6 ++ drivers/iio/Makefile | 2 + drivers/iio/industrialio-core.c | 4 +- drivers/iio/industrialio-trigger.c | 12 +++- drivers/iio/industrialio-triggered-event.c | 68 ++++++++++++++++++++++ include/linux/iio/iio.h | 3 + include/linux/iio/triggered_event.h | 11 ++++ 7 files changed, 102 insertions(+), 4 deletions(-) create mode 100644 drivers/iio/industrialio-triggered-event.c create mode 100644 include/linux/iio/triggered_event.h diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index 3c6c6e28a60a..6fe0d6524c9c 100644 --- a/drivers/iio/Kconfig +++ b/drivers/iio/Kconfig @@ -38,6 +38,12 @@ config IIO_CONSUMERS_PER_TRIGGER This value controls the maximum number of consumers that a given trigger may handle. Default is 2. +config IIO_TRIGGERED_EVENT + tristate + select IIO_TRIGGER + help + Provides helper functions for setting up triggered events. + source "drivers/iio/accel/Kconfig" source "drivers/iio/adc/Kconfig" source "drivers/iio/amplifiers/Kconfig" diff --git a/drivers/iio/Makefile b/drivers/iio/Makefile index 7ddb988338ec..40995f366843 100644 --- a/drivers/iio/Makefile +++ b/drivers/iio/Makefile @@ -7,6 +7,8 @@ industrialio-y := industrialio-core.o industrialio-event.o inkern.o industrialio-$(CONFIG_IIO_BUFFER) += industrialio-buffer.o industrialio-$(CONFIG_IIO_TRIGGER) += industrialio-trigger.o +obj-$(CONFIG_IIO_TRIGGERED_EVENT) += industrialio-triggered-event.o + obj-y += accel/ obj-y += adc/ obj-y += amplifiers/ diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index b347524d1b6d..bef690ed0480 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -962,7 +962,7 @@ static void iio_device_unregister_sysfs(struct iio_dev *indio_dev) static void iio_dev_release(struct device *device) { struct iio_dev *indio_dev = dev_to_iio_dev(device); - if (indio_dev->modes & INDIO_BUFFER_TRIGGERED) + if (indio_dev->modes & (INDIO_BUFFER_TRIGGERED | INDIO_EVENT_TRIGGERED)) iio_device_unregister_trigger_consumer(indio_dev); iio_device_unregister_eventset(indio_dev); iio_device_unregister_sysfs(indio_dev); @@ -1243,7 +1243,7 @@ int iio_device_register(struct iio_dev *indio_dev) "Failed to register event set\n"); goto error_free_sysfs; } - if (indio_dev->modes & INDIO_BUFFER_TRIGGERED) + if (indio_dev->modes & (INDIO_BUFFER_TRIGGERED | INDIO_EVENT_TRIGGERED)) iio_device_register_trigger_consumer(indio_dev); if ((indio_dev->modes & INDIO_ALL_BUFFER_MODES) && diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c index 570606c2adbd..ae2806aafb72 100644 --- a/drivers/iio/industrialio-trigger.c +++ b/drivers/iio/industrialio-trigger.c @@ -366,10 +366,18 @@ static ssize_t iio_trigger_write_current(struct device *dev, indio_dev->trig = trig; - if (oldtrig) + if (oldtrig) { + if (indio_dev->modes & INDIO_EVENT_TRIGGERED) + iio_trigger_detach_poll_func(oldtrig, + indio_dev->pollfunc_event); iio_trigger_put(oldtrig); - if (indio_dev->trig) + } + if (indio_dev->trig) { iio_trigger_get(indio_dev->trig); + if (indio_dev->modes & INDIO_EVENT_TRIGGERED) + iio_trigger_attach_poll_func(indio_dev->trig, + indio_dev->pollfunc_event); + } return len; } diff --git a/drivers/iio/industrialio-triggered-event.c b/drivers/iio/industrialio-triggered-event.c new file mode 100644 index 000000000000..8cc254fac16a --- /dev/null +++ b/drivers/iio/industrialio-triggered-event.c @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2015 Cogent Embedded, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +#include +#include +#include +#include +#include +#include + +/** + * iio_triggered_event_setup() - Setup pollfunc_event for triggered event + * @indio_dev: IIO device structure + * @h: Function which will be used as pollfunc_event top half + * @thread: Function which will be used as pollfunc_event bottom half + * + * This function combines some common tasks which will normally be performed + * when setting up a triggered event. It will allocate the pollfunc_event and + * set mode to use it for triggered event. + * + * Before calling this function the indio_dev structure should already be + * completely initialized, but not yet registered. In practice this means that + * this function should be called right before iio_device_register(). + * + * To free the resources allocated by this function call + * iio_triggered_event_cleanup(). + */ +int iio_triggered_event_setup(struct iio_dev *indio_dev, + irqreturn_t (*h)(int irq, void *p), + irqreturn_t (*thread)(int irq, void *p)) +{ + indio_dev->pollfunc_event = iio_alloc_pollfunc(h, + thread, + IRQF_ONESHOT, + indio_dev, + "%s_consumer%d", + indio_dev->name, + indio_dev->id); + if (indio_dev->pollfunc_event == NULL) + return -ENOMEM; + + /* Flag that events polling is possible */ + indio_dev->modes |= INDIO_EVENT_TRIGGERED; + + return 0; +} +EXPORT_SYMBOL(iio_triggered_event_setup); + +/** + * iio_triggered_event_cleanup() - Free resources allocated by iio_triggered_event_setup() + * @indio_dev: IIO device structure + */ +void iio_triggered_event_cleanup(struct iio_dev *indio_dev) +{ + indio_dev->modes &= ~INDIO_EVENT_TRIGGERED; + iio_dealloc_pollfunc(indio_dev->pollfunc_event); +} +EXPORT_SYMBOL(iio_triggered_event_cleanup); + +MODULE_AUTHOR("Vladimir Barinov"); +MODULE_DESCRIPTION("IIO helper functions for setting up triggered events"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h index 7bb7f673cb3f..19c94c9acc81 100644 --- a/include/linux/iio/iio.h +++ b/include/linux/iio/iio.h @@ -294,6 +294,7 @@ static inline s64 iio_get_time_ns(void) #define INDIO_BUFFER_TRIGGERED 0x02 #define INDIO_BUFFER_SOFTWARE 0x04 #define INDIO_BUFFER_HARDWARE 0x08 +#define INDIO_EVENT_TRIGGERED 0x10 #define INDIO_ALL_BUFFER_MODES \ (INDIO_BUFFER_TRIGGERED | INDIO_BUFFER_HARDWARE | INDIO_BUFFER_SOFTWARE) @@ -457,6 +458,7 @@ struct iio_buffer_setup_ops { * @scan_index_timestamp:[INTERN] cache of the index to the timestamp * @trig: [INTERN] current device trigger (buffer modes) * @pollfunc: [DRIVER] function run on trigger being received + * @pollfunc_event: [DRIVER] function run on events trigger being received * @channels: [DRIVER] channel specification structure table * @num_channels: [DRIVER] number of channels specified in @channels. * @channel_attr_list: [INTERN] keep track of automatically created channel @@ -495,6 +497,7 @@ struct iio_dev { unsigned scan_index_timestamp; struct iio_trigger *trig; struct iio_poll_func *pollfunc; + struct iio_poll_func *pollfunc_event; struct iio_chan_spec const *channels; int num_channels; diff --git a/include/linux/iio/triggered_event.h b/include/linux/iio/triggered_event.h new file mode 100644 index 000000000000..8fe8537085bb --- /dev/null +++ b/include/linux/iio/triggered_event.h @@ -0,0 +1,11 @@ +#ifndef _LINUX_IIO_TRIGGERED_EVENT_H_ +#define _LINUX_IIO_TRIGGERED_EVENT_H_ + +#include + +int iio_triggered_event_setup(struct iio_dev *indio_dev, + irqreturn_t (*h)(int irq, void *p), + irqreturn_t (*thread)(int irq, void *p)); +void iio_triggered_event_cleanup(struct iio_dev *indio_dev); + +#endif From 3f4642fc06a51e203b01cf29c418d0833761c4d3 Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Thu, 20 Aug 2015 22:38:08 +0300 Subject: [PATCH 0036/2431] dt: Add vendor prefix 'holt' Add Holt Integrated Circuits, Inc. to the list of device tree vendor prefixes Signed-off-by: Vladimir Barinov Acked-by: Rob Herring Signed-off-by: Jonathan Cameron --- Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index d444757c4d9e..bc64cc9d7b60 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -99,6 +99,7 @@ himax Himax Technologies, Inc. hisilicon Hisilicon Limited. hit Hitachi Ltd. hitex Hitex Development Tools +holt Holt Integrated Circuits, Inc. honeywell Honeywell hp Hewlett Packard i2se I2SE GmbH From a8dbc64a2619b82ec0106f2c54174a94d74da620 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Sun, 30 Aug 2015 16:46:57 +0800 Subject: [PATCH 0037/2431] iio: light: fix platform_no_drv_owner.cocci warnings drivers/iio/light/opt3001.c:796:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci CC: Andreas Dannenberg Signed-off-by: Fengguang Wu Signed-off-by: Jonathan Cameron --- drivers/iio/light/opt3001.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index 923aa6aef0ed..01e111e72d4b 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -793,7 +793,6 @@ static struct i2c_driver opt3001_driver = { .driver = { .name = "opt3001", .of_match_table = of_match_ptr(opt3001_of_match), - .owner = THIS_MODULE, }, }; From f6707ef7a3c9196faee1841f4d12e990239f5dae Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Sun, 30 Aug 2015 16:12:57 +0800 Subject: [PATCH 0038/2431] staging: iio: adc: lpc32xx: use correct reutrn value To lpc32xx_adc driver, when platform_get_resource or platform_get_irq failed, we should use -ENXIO as a return value, but not -EBUSY. Signed-off-by: Peng Fan Cc: Jonathan Cameron Cc: Hartmut Knaack Cc: Lars-Peter Clausen Cc: Peter Meerwald Cc: Greg Kroah-Hartman Cc: Tapasweni Pathak Signed-off-by: Jonathan Cameron --- drivers/staging/iio/adc/lpc32xx_adc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/iio/adc/lpc32xx_adc.c b/drivers/staging/iio/adc/lpc32xx_adc.c index 5331c442fcfc..bcf4ebb2e3ab 100644 --- a/drivers/staging/iio/adc/lpc32xx_adc.c +++ b/drivers/staging/iio/adc/lpc32xx_adc.c @@ -137,7 +137,7 @@ static int lpc32xx_adc_probe(struct platform_device *pdev) res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { dev_err(&pdev->dev, "failed to get platform I/O memory\n"); - return -EBUSY; + return -ENXIO; } iodev = devm_iio_device_alloc(&pdev->dev, sizeof(*info)); @@ -162,7 +162,7 @@ static int lpc32xx_adc_probe(struct platform_device *pdev) irq = platform_get_irq(pdev, 0); if (irq <= 0) { dev_err(&pdev->dev, "failed getting interrupt resource\n"); - return -EINVAL; + return -ENXIO; } retval = devm_request_irq(&pdev->dev, irq, lpc32xx_adc_isr, 0, From 0010d6b444064029f924b4973f74b87579daddc6 Mon Sep 17 00:00:00 2001 From: Sanchayan Maity Date: Mon, 17 Aug 2015 21:21:40 +0530 Subject: [PATCH 0039/2431] iio: adc: vf610: Add IIO buffer support for Vybrid ADC This patch adds support for IIO buffer to the Vybrid ADC driver. IIO triggered buffer infrastructure along with iio sysfs trigger is used to leverage continuous sampling support provided by the ADC block. Signed-off-by: Sanchayan Maity Acked-by: Fugang Duan Signed-off-by: Jonathan Cameron --- drivers/iio/adc/Kconfig | 2 + drivers/iio/adc/vf610_adc.c | 105 +++++++++++++++++++++++++++++++++--- 2 files changed, 100 insertions(+), 7 deletions(-) diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index deea62c219ac..27531180d94b 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -361,6 +361,8 @@ config TWL6030_GPADC config VF610_ADC tristate "Freescale vf610 ADC driver" depends on OF + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER help Say yes here to support for Vybrid board analog-to-digital converter. Since the IP is used for i.MX6SLX, the driver also support i.MX6SLX. diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c index 6bf4c20eb231..635ccd86620e 100644 --- a/drivers/iio/adc/vf610_adc.c +++ b/drivers/iio/adc/vf610_adc.c @@ -34,8 +34,11 @@ #include #include +#include #include -#include +#include +#include +#include /* This will be the driver name the kernel reports */ #define DRIVER_NAME "vf610-adc" @@ -170,6 +173,7 @@ struct vf610_adc { u32 sample_freq_avail[5]; struct completion completion; + u16 buffer[8]; }; static const u32 vf610_hw_avgs[] = { 1, 4, 8, 16, 32 }; @@ -505,12 +509,24 @@ static const struct iio_chan_spec_ext_info vf610_ext_info[] = { .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) | \ BIT(IIO_CHAN_INFO_SAMP_FREQ), \ .ext_info = vf610_ext_info, \ + .scan_index = (_idx), \ + .scan_type = { \ + .sign = 'u', \ + .realbits = 12, \ + .storagebits = 16, \ + }, \ } #define VF610_ADC_TEMPERATURE_CHAN(_idx, _chan_type) { \ .type = (_chan_type), \ .channel = (_idx), \ .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), \ + .scan_index = (_idx), \ + .scan_type = { \ + .sign = 'u', \ + .realbits = 12, \ + .storagebits = 16, \ + }, \ } static const struct iio_chan_spec vf610_adc_iio_channels[] = { @@ -531,6 +547,7 @@ static const struct iio_chan_spec vf610_adc_iio_channels[] = { VF610_ADC_CHAN(14, IIO_VOLTAGE), VF610_ADC_CHAN(15, IIO_VOLTAGE), VF610_ADC_TEMPERATURE_CHAN(26, IIO_TEMP), + IIO_CHAN_SOFT_TIMESTAMP(32), /* sentinel */ }; @@ -559,13 +576,20 @@ static int vf610_adc_read_data(struct vf610_adc *info) static irqreturn_t vf610_adc_isr(int irq, void *dev_id) { - struct vf610_adc *info = (struct vf610_adc *)dev_id; + struct iio_dev *indio_dev = (struct iio_dev *)dev_id; + struct vf610_adc *info = iio_priv(indio_dev); int coco; coco = readl(info->regs + VF610_REG_ADC_HS); if (coco & VF610_ADC_HS_COCO0) { info->value = vf610_adc_read_data(info); - complete(&info->completion); + if (iio_buffer_enabled(indio_dev)) { + info->buffer[0] = info->value; + iio_push_to_buffers_with_timestamp(indio_dev, + info->buffer, iio_get_time_ns()); + iio_trigger_notify_done(indio_dev->trig); + } else + complete(&info->completion); } return IRQ_HANDLED; @@ -613,8 +637,12 @@ static int vf610_read_raw(struct iio_dev *indio_dev, case IIO_CHAN_INFO_RAW: case IIO_CHAN_INFO_PROCESSED: mutex_lock(&indio_dev->mlock); - reinit_completion(&info->completion); + if (iio_buffer_enabled(indio_dev)) { + mutex_unlock(&indio_dev->mlock); + return -EBUSY; + } + reinit_completion(&info->completion); hc_cfg = VF610_ADC_ADCHC(chan->channel); hc_cfg |= VF610_ADC_AIEN; writel(hc_cfg, info->regs + VF610_REG_ADC_HC0); @@ -694,6 +722,60 @@ static int vf610_write_raw(struct iio_dev *indio_dev, return -EINVAL; } +static int vf610_adc_buffer_postenable(struct iio_dev *indio_dev) +{ + struct vf610_adc *info = iio_priv(indio_dev); + unsigned int channel; + int ret; + int val; + + ret = iio_triggered_buffer_postenable(indio_dev); + if (ret) + return ret; + + val = readl(info->regs + VF610_REG_ADC_GC); + val |= VF610_ADC_ADCON; + writel(val, info->regs + VF610_REG_ADC_GC); + + channel = find_first_bit(indio_dev->active_scan_mask, + indio_dev->masklength); + + val = VF610_ADC_ADCHC(channel); + val |= VF610_ADC_AIEN; + + writel(val, info->regs + VF610_REG_ADC_HC0); + + return 0; +} + +static int vf610_adc_buffer_predisable(struct iio_dev *indio_dev) +{ + struct vf610_adc *info = iio_priv(indio_dev); + unsigned int hc_cfg = 0; + int val, ret; + + val = readl(info->regs + VF610_REG_ADC_GC); + val &= ~VF610_ADC_ADCON; + writel(val, info->regs + VF610_REG_ADC_GC); + + hc_cfg |= VF610_ADC_CONV_DISABLE; + hc_cfg &= ~VF610_ADC_AIEN; + + writel(hc_cfg, info->regs + VF610_REG_ADC_HC0); + + ret = iio_triggered_buffer_predisable(indio_dev); + if (ret) + return ret; + + return 0; +} + +static const struct iio_buffer_setup_ops iio_triggered_buffer_setup_ops = { + .postenable = &vf610_adc_buffer_postenable, + .predisable = &vf610_adc_buffer_predisable, + .validate_scan_mask = &iio_validate_scan_mask_onehot, +}; + static int vf610_adc_reg_access(struct iio_dev *indio_dev, unsigned reg, unsigned writeval, unsigned *readval) @@ -753,7 +835,7 @@ static int vf610_adc_probe(struct platform_device *pdev) ret = devm_request_irq(info->dev, irq, vf610_adc_isr, 0, - dev_name(&pdev->dev), info); + dev_name(&pdev->dev), indio_dev); if (ret < 0) { dev_err(&pdev->dev, "failed requesting irq, irq = %d\n", irq); return ret; @@ -806,15 +888,23 @@ static int vf610_adc_probe(struct platform_device *pdev) vf610_adc_cfg_init(info); vf610_adc_hw_init(info); + ret = iio_triggered_buffer_setup(indio_dev, &iio_pollfunc_store_time, + NULL, &iio_triggered_buffer_setup_ops); + if (ret < 0) { + dev_err(&pdev->dev, "Couldn't initialise the buffer\n"); + goto error_iio_device_register; + } + ret = iio_device_register(indio_dev); if (ret) { dev_err(&pdev->dev, "Couldn't register the device.\n"); - goto error_iio_device_register; + goto error_adc_buffer_init; } return 0; - +error_adc_buffer_init: + iio_triggered_buffer_cleanup(indio_dev); error_iio_device_register: clk_disable_unprepare(info->clk); error_adc_clk_enable: @@ -829,6 +919,7 @@ static int vf610_adc_remove(struct platform_device *pdev) struct vf610_adc *info = iio_priv(indio_dev); iio_device_unregister(indio_dev); + iio_triggered_buffer_cleanup(indio_dev); regulator_disable(info->vref); clk_disable_unprepare(info->clk); From 078d02cfdafdd06562286b2f222e6532f369eb27 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Mon, 17 Aug 2015 10:30:15 -0700 Subject: [PATCH 0040/2431] iio: light: DT binding docs for APDS9960 driver Document compatible string, and required DT properties for APDS9960 chipset driver. Reviewed-by: Marek Vasut Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- .../bindings/iio/light/apds9960.txt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/light/apds9960.txt diff --git a/Documentation/devicetree/bindings/iio/light/apds9960.txt b/Documentation/devicetree/bindings/iio/light/apds9960.txt new file mode 100644 index 000000000000..174b709f16db --- /dev/null +++ b/Documentation/devicetree/bindings/iio/light/apds9960.txt @@ -0,0 +1,22 @@ +* Avago APDS9960 gesture/RGB/ALS/proximity sensor + +http://www.avagotech.com/docs/AV02-4191EN + +Required properties: + + - compatible: must be "avago,apds9960" + - reg: the I2c address of the sensor + - interrupt-parent: should be the phandle for the interrupt controller + - interrupts : the sole interrupt generated by the device + + Refer to interrupt-controller/interrupts.txt for generic interrupt client + node bindings. + +Example: + +apds9960@39 { + compatible = "avago,apds9960"; + reg = <0x39>; + interrupt-parent = <&gpio1>; + interrupts = <16 1>; +}; From aff268cd532e99ced3c8f48d01118912eb002bbf Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Mon, 17 Aug 2015 10:30:16 -0700 Subject: [PATCH 0041/2431] iio: light: add APDS9960 ALS + promixity driver APDS9960 is a combination of ALS, proximity, and gesture sensors. This patch adds support for these functions along with gain control, integration time, and event thresholds. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- drivers/iio/light/Kconfig | 13 + drivers/iio/light/Makefile | 1 + drivers/iio/light/apds9960.c | 1135 ++++++++++++++++++++++++++++++++++ 3 files changed, 1149 insertions(+) create mode 100644 drivers/iio/light/apds9960.c diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig index 7ed859a700c4..19b9a173fe61 100644 --- a/drivers/iio/light/Kconfig +++ b/drivers/iio/light/Kconfig @@ -50,6 +50,19 @@ config APDS9300 To compile this driver as a module, choose M here: the module will be called apds9300. +config APDS9960 + tristate "Avago APDS9960 gesture/RGB/ALS/proximity sensor" + select REGMAP_I2C + select IIO_BUFFER + select IIO_KFIFO_BUF + depends on I2C + help + Say Y here to build I2C interface support for the Avago + APDS9960 gesture/RGB/ALS/proximity sensor. + + To compile this driver as a module, choose M here: the + module will be called apds9960 + config BH1750 tristate "ROHM BH1750 ambient light sensor" depends on I2C diff --git a/drivers/iio/light/Makefile b/drivers/iio/light/Makefile index 91c74c014b6f..7b2244550747 100644 --- a/drivers/iio/light/Makefile +++ b/drivers/iio/light/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_ACPI_ALS) += acpi-als.o obj-$(CONFIG_ADJD_S311) += adjd_s311.o obj-$(CONFIG_AL3320A) += al3320a.o obj-$(CONFIG_APDS9300) += apds9300.o +obj-$(CONFIG_APDS9960) += apds9960.o obj-$(CONFIG_BH1750) += bh1750.o obj-$(CONFIG_CM32181) += cm32181.o obj-$(CONFIG_CM3232) += cm3232.o diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c new file mode 100644 index 000000000000..27f415743733 --- /dev/null +++ b/drivers/iio/light/apds9960.c @@ -0,0 +1,1135 @@ +/* + * apds9960.c - Support for Avago APDS9960 gesture/RGB/ALS/proximity sensor + * + * Copyright (C) 2015 Matt Ranostay + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * TODO: gesture + proximity calib offsets + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define APDS9960_REGMAP_NAME "apds9960_regmap" +#define APDS9960_DRV_NAME "apds9960" + +#define APDS9960_REG_RAM_START 0x00 +#define APDS9960_REG_RAM_END 0x7f + +#define APDS9960_REG_ENABLE 0x80 +#define APDS9960_REG_ATIME 0x81 +#define APDS9960_REG_WTIME 0x83 + +#define APDS9960_REG_AILTL 0x84 +#define APDS9960_REG_AILTH 0x85 +#define APDS9960_REG_AIHTL 0x86 +#define APDS9960_REG_AIHTH 0x87 + +#define APDS9960_REG_PILT 0x89 +#define APDS9960_REG_PIHT 0x8b +#define APDS9960_REG_PERS 0x8c + +#define APDS9960_REG_CONFIG_1 0x8d +#define APDS9960_REG_PPULSE 0x8e + +#define APDS9960_REG_CONTROL 0x8f +#define APDS9960_REG_CONTROL_AGAIN_MASK 0x03 +#define APDS9960_REG_CONTROL_PGAIN_MASK 0x0c +#define APDS9960_REG_CONTROL_AGAIN_MASK_SHIFT 0 +#define APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT 2 + +#define APDS9960_REG_CONFIG_2 0x90 +#define APDS9960_REG_CONFIG_2_GGAIN_MASK 0x60 +#define APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT 5 + +#define APDS9960_REG_ID 0x92 + +#define APDS9960_REG_STATUS 0x93 +#define APDS9960_REG_STATUS_PS_INT BIT(5) +#define APDS9960_REG_STATUS_ALS_INT BIT(4) +#define APDS9960_REG_STATUS_GINT BIT(2) + +#define APDS9960_REG_PDATA 0x9c +#define APDS9960_REG_POFFSET_UR 0x9d +#define APDS9960_REG_POFFSET_DL 0x9e +#define APDS9960_REG_CONFIG_3 0x9f + +#define APDS9960_REG_GPENTH 0xa0 +#define APDS9960_REG_GEXTH 0xa1 + +#define APDS9960_REG_GCONF_1 0xa2 +#define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK 0xc0 +#define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT 6 + +#define APDS9960_REG_GCONF_2 0xa3 +#define APDS9960_REG_GOFFSET_U 0xa4 +#define APDS9960_REG_GOFFSET_D 0xa5 +#define APDS9960_REG_GPULSE 0xa6 +#define APDS9960_REG_GOFFSET_L 0xa7 +#define APDS9960_REG_GOFFSET_R 0xa9 +#define APDS9960_REG_GCONF_3 0xaa + +#define APDS9960_REG_GCONF_4 0xab +#define APDS9960_REG_GFLVL 0xae +#define APDS9960_REG_GSTATUS 0xaf + +#define APDS9960_REG_IFORCE 0xe4 +#define APDS9960_REG_PICLEAR 0xe5 +#define APDS9960_REG_CICLEAR 0xe6 +#define APDS9960_REG_AICLEAR 0xe7 + +#define APDS9960_DEFAULT_PERS 0x33 +#define APDS9960_DEFAULT_GPENTH 0x50 +#define APDS9960_DEFAULT_GEXTH 0x40 + +#define APDS9960_MAX_PXS_THRES_VAL 255 +#define APDS9960_MAX_ALS_THRES_VAL 0xffff +#define APDS9960_MAX_INT_TIME_IN_US 1000000 + +enum apds9960_als_channel_idx { + IDX_ALS_CLEAR, IDX_ALS_RED, IDX_ALS_GREEN, IDX_ALS_BLUE, +}; + +#define APDS9960_REG_ALS_BASE 0x94 +#define APDS9960_REG_ALS_CHANNEL(_colour) \ + (APDS9960_REG_ALS_BASE + (IDX_ALS_##_colour * 2)) + +enum apds9960_gesture_channel_idx { + IDX_DIR_UP, IDX_DIR_DOWN, IDX_DIR_LEFT, IDX_DIR_RIGHT, +}; + +#define APDS9960_REG_GFIFO_BASE 0xfc +#define APDS9960_REG_GFIFO_DIR(_dir) \ + (APDS9960_REG_GFIFO_BASE + IDX_DIR_##_dir) + +struct apds9960_data { + struct i2c_client *client; + struct iio_dev *indio_dev; + struct mutex lock; + + /* regmap fields */ + struct regmap *regmap; + struct regmap_field *reg_int_als; + struct regmap_field *reg_int_ges; + struct regmap_field *reg_int_pxs; + + struct regmap_field *reg_enable_als; + struct regmap_field *reg_enable_ges; + struct regmap_field *reg_enable_pxs; + + /* state */ + int als_int; + int pxs_int; + int gesture_mode_running; + + /* gain values */ + int als_gain; + int pxs_gain; + + /* integration time value in us */ + int als_adc_int_us; + + /* gesture buffer */ + u8 buffer[4]; /* 4 8-bit channels */ +}; + +static const struct reg_default apds9960_reg_defaults[] = { + /* Default ALS integration time = 2.48ms */ + { APDS9960_REG_ATIME, 0xff }, +}; + +static const struct regmap_range apds9960_volatile_ranges[] = { + regmap_reg_range(APDS9960_REG_STATUS, + APDS9960_REG_PDATA), + regmap_reg_range(APDS9960_REG_GFLVL, + APDS9960_REG_GSTATUS), + regmap_reg_range(APDS9960_REG_GFIFO_DIR(UP), + APDS9960_REG_GFIFO_DIR(RIGHT)), + regmap_reg_range(APDS9960_REG_IFORCE, + APDS9960_REG_AICLEAR), +}; + +static const struct regmap_access_table apds9960_volatile_table = { + .yes_ranges = apds9960_volatile_ranges, + .n_yes_ranges = ARRAY_SIZE(apds9960_volatile_ranges), +}; + +static const struct regmap_range apds9960_precious_ranges[] = { + regmap_reg_range(APDS9960_REG_RAM_START, APDS9960_REG_RAM_END), +}; + +static const struct regmap_access_table apds9960_precious_table = { + .yes_ranges = apds9960_precious_ranges, + .n_yes_ranges = ARRAY_SIZE(apds9960_precious_ranges), +}; + +static const struct regmap_range apds9960_readable_ranges[] = { + regmap_reg_range(APDS9960_REG_ENABLE, + APDS9960_REG_GSTATUS), + regmap_reg_range(APDS9960_REG_GFIFO_DIR(UP), + APDS9960_REG_GFIFO_DIR(RIGHT)), +}; + +static const struct regmap_access_table apds9960_readable_table = { + .yes_ranges = apds9960_readable_ranges, + .n_yes_ranges = ARRAY_SIZE(apds9960_readable_ranges), +}; + +static const struct regmap_range apds9960_writeable_ranges[] = { + regmap_reg_range(APDS9960_REG_ENABLE, APDS9960_REG_CONFIG_2), + regmap_reg_range(APDS9960_REG_POFFSET_UR, APDS9960_REG_GCONF_4), + regmap_reg_range(APDS9960_REG_IFORCE, APDS9960_REG_AICLEAR), +}; + +static const struct regmap_access_table apds9960_writeable_table = { + .yes_ranges = apds9960_writeable_ranges, + .n_yes_ranges = ARRAY_SIZE(apds9960_writeable_ranges), +}; + +static const struct regmap_config apds9960_regmap_config = { + .name = APDS9960_REGMAP_NAME, + .reg_bits = 8, + .val_bits = 8, + .use_single_rw = 1, + + .volatile_table = &apds9960_volatile_table, + .precious_table = &apds9960_precious_table, + .rd_table = &apds9960_readable_table, + .wr_table = &apds9960_writeable_table, + + .reg_defaults = apds9960_reg_defaults, + .num_reg_defaults = ARRAY_SIZE(apds9960_reg_defaults), + .max_register = APDS9960_REG_GFIFO_DIR(RIGHT), + .cache_type = REGCACHE_RBTREE, +}; + +static const struct iio_event_spec apds9960_pxs_event_spec[] = { + { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_RISING, + .mask_separate = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_ENABLE), + }, + { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_FALLING, + .mask_separate = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_ENABLE), + }, +}; + +static const struct iio_event_spec apds9960_als_event_spec[] = { + { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_RISING, + .mask_separate = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_ENABLE), + }, + { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_FALLING, + .mask_separate = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_ENABLE), + }, +}; + +#define APDS9960_GESTURE_CHANNEL(_dir, _si) { \ + .type = IIO_PROXIMITY, \ + .channel = _si + 1, \ + .scan_index = _si, \ + .indexed = 1, \ + .scan_type = { \ + .sign = 'u', \ + .realbits = 8, \ + .storagebits = 8, \ + }, \ +} + +#define APDS9960_INTENSITY_CHANNEL(_colour) { \ + .type = IIO_INTENSITY, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) | \ + BIT(IIO_CHAN_INFO_INT_TIME), \ + .channel2 = IIO_MOD_LIGHT_##_colour, \ + .address = APDS9960_REG_ALS_CHANNEL(_colour), \ + .modified = 1, \ + .scan_index = -1, \ +} + +static const unsigned long apds9960_scan_masks[] = {0xf, 0}; + +static const struct iio_chan_spec apds9960_channels[] = { + { + .type = IIO_PROXIMITY, + .address = APDS9960_REG_PDATA, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .channel = 0, + .indexed = 0, + .scan_index = -1, + + .event_spec = apds9960_pxs_event_spec, + .num_event_specs = ARRAY_SIZE(apds9960_pxs_event_spec), + }, + /* Gesture Sensor */ + APDS9960_GESTURE_CHANNEL(UP, 0), + APDS9960_GESTURE_CHANNEL(DOWN, 1), + APDS9960_GESTURE_CHANNEL(LEFT, 2), + APDS9960_GESTURE_CHANNEL(RIGHT, 3), + /* ALS */ + { + .type = IIO_INTENSITY, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) | + BIT(IIO_CHAN_INFO_INT_TIME), + .channel2 = IIO_MOD_LIGHT_CLEAR, + .address = APDS9960_REG_ALS_CHANNEL(CLEAR), + .modified = 1, + .scan_index = -1, + + .event_spec = apds9960_als_event_spec, + .num_event_specs = ARRAY_SIZE(apds9960_als_event_spec), + }, + /* RGB Sensor */ + APDS9960_INTENSITY_CHANNEL(RED), + APDS9960_INTENSITY_CHANNEL(GREEN), + APDS9960_INTENSITY_CHANNEL(BLUE), +}; + +/* integration time in us */ +static const int apds9960_int_time[][2] = + { {28000, 246}, {100000, 219}, {200000, 182}, {700000, 0} }; + +/* gain mapping */ +static const int apds9960_pxs_gain_map[] = {1, 2, 4, 8}; +static const int apds9960_als_gain_map[] = {1, 4, 16, 64}; + +static IIO_CONST_ATTR(proximity_scale_available, "1 2 4 8"); +static IIO_CONST_ATTR(intensity_scale_available, "1 4 16 64"); +static IIO_CONST_ATTR_INT_TIME_AVAIL("0.028 0.1 0.2 0.7"); + +static struct attribute *apds9960_attributes[] = { + &iio_const_attr_proximity_scale_available.dev_attr.attr, + &iio_const_attr_intensity_scale_available.dev_attr.attr, + &iio_const_attr_integration_time_available.dev_attr.attr, + NULL, +}; + +static struct attribute_group apds9960_attribute_group = { + .attrs = apds9960_attributes, +}; + +static const struct reg_field apds9960_reg_field_int_als = + REG_FIELD(APDS9960_REG_ENABLE, 4, 4); + +static const struct reg_field apds9960_reg_field_int_ges = + REG_FIELD(APDS9960_REG_GCONF_4, 1, 1); + +static const struct reg_field apds9960_reg_field_int_pxs = + REG_FIELD(APDS9960_REG_ENABLE, 5, 5); + +static const struct reg_field apds9960_reg_field_enable_als = + REG_FIELD(APDS9960_REG_ENABLE, 1, 1); + +static const struct reg_field apds9960_reg_field_enable_ges = + REG_FIELD(APDS9960_REG_ENABLE, 6, 6); + +static const struct reg_field apds9960_reg_field_enable_pxs = + REG_FIELD(APDS9960_REG_ENABLE, 2, 2); + +static int apds9960_set_it_time(struct apds9960_data *data, int val2) +{ + int ret = -EINVAL; + int idx; + + for (idx = 0; idx < ARRAY_SIZE(apds9960_int_time); idx++) { + if (apds9960_int_time[idx][0] == val2) { + mutex_lock(&data->lock); + ret = regmap_write(data->regmap, APDS9960_REG_ATIME, + apds9960_int_time[idx][1]); + if (!ret) + data->als_adc_int_us = val2; + mutex_unlock(&data->lock); + break; + } + } + + return ret; +} + +static int apds9960_set_pxs_gain(struct apds9960_data *data, int val) +{ + int ret = -EINVAL; + int idx; + + for (idx = 0; idx < ARRAY_SIZE(apds9960_pxs_gain_map); idx++) { + if (apds9960_pxs_gain_map[idx] == val) { + /* pxs + gesture gains are mirrored */ + mutex_lock(&data->lock); + ret = regmap_update_bits(data->regmap, + APDS9960_REG_CONTROL, + APDS9960_REG_CONTROL_PGAIN_MASK, + idx << APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT); + if (ret) { + mutex_unlock(&data->lock); + break; + } + + ret = regmap_update_bits(data->regmap, + APDS9960_REG_CONFIG_2, + APDS9960_REG_CONFIG_2_GGAIN_MASK, + idx << APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT); + if (!ret) + data->pxs_gain = idx; + mutex_unlock(&data->lock); + break; + } + } + + return ret; +} + +static int apds9960_set_als_gain(struct apds9960_data *data, int val) +{ + int ret = -EINVAL; + int idx; + + for (idx = 0; idx < ARRAY_SIZE(apds9960_als_gain_map); idx++) { + if (apds9960_als_gain_map[idx] == val) { + mutex_lock(&data->lock); + ret = regmap_update_bits(data->regmap, + APDS9960_REG_CONTROL, + APDS9960_REG_CONTROL_AGAIN_MASK, idx); + if (!ret) + data->als_gain = idx; + mutex_unlock(&data->lock); + break; + } + } + + return ret; +} + +#ifdef CONFIG_PM +static int apds9960_set_power_state(struct apds9960_data *data, bool on) +{ + struct device *dev = &data->client->dev; + int ret = 0; + + mutex_lock(&data->lock); + + if (on) { + int suspended; + + suspended = pm_runtime_suspended(dev); + ret = pm_runtime_get_sync(dev); + + /* Allow one integration cycle before allowing a reading */ + if (suspended) + usleep_range(data->als_adc_int_us, + APDS9960_MAX_INT_TIME_IN_US); + } else { + ret = pm_runtime_put_autosuspend(dev); + } + + mutex_unlock(&data->lock); + + return ret; +} +#else +static int apds9960_set_power_state(struct apds9960_data *data, bool on) +{ + return 0; +} +#endif + +static int apds9960_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) +{ + struct apds9960_data *data = iio_priv(indio_dev); + u16 buf; + int ret = -EINVAL; + + if (data->gesture_mode_running) + return -EBUSY; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + apds9960_set_power_state(data, true); + switch (chan->type) { + case IIO_PROXIMITY: + ret = regmap_read(data->regmap, chan->address, val); + if (!ret) + ret = IIO_VAL_INT; + break; + case IIO_INTENSITY: + ret = regmap_bulk_read(data->regmap, chan->address, + &buf, 2); + if (!ret) + ret = IIO_VAL_INT; + *val = le16_to_cpu(buf); + break; + default: + ret = -EINVAL; + } + apds9960_set_power_state(data, false); + break; + case IIO_CHAN_INFO_INT_TIME: + /* RGB + ALS sensors only have integration time */ + mutex_lock(&data->lock); + switch (chan->type) { + case IIO_INTENSITY: + *val = 0; + *val2 = data->als_adc_int_us; + ret = IIO_VAL_INT_PLUS_MICRO; + break; + default: + ret = -EINVAL; + } + mutex_unlock(&data->lock); + break; + case IIO_CHAN_INFO_SCALE: + mutex_lock(&data->lock); + switch (chan->type) { + case IIO_PROXIMITY: + *val = apds9960_pxs_gain_map[data->pxs_gain]; + ret = IIO_VAL_INT; + break; + case IIO_INTENSITY: + *val = apds9960_als_gain_map[data->als_gain]; + ret = IIO_VAL_INT; + break; + default: + ret = -EINVAL; + } + mutex_unlock(&data->lock); + break; + } + + return ret; +}; + +static int apds9960_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct apds9960_data *data = iio_priv(indio_dev); + + switch (mask) { + case IIO_CHAN_INFO_INT_TIME: + /* RGB + ALS sensors only have int time */ + switch (chan->type) { + case IIO_INTENSITY: + if (val != 0) + return -EINVAL; + return apds9960_set_it_time(data, val2); + default: + return -EINVAL; + } + case IIO_CHAN_INFO_SCALE: + if (val2 != 0) + return -EINVAL; + switch (chan->type) { + case IIO_PROXIMITY: + return apds9960_set_pxs_gain(data, val); + case IIO_INTENSITY: + return apds9960_set_als_gain(data, val); + default: + return -EINVAL; + } + default: + return -EINVAL; + }; + + return 0; +} + +static inline int apds9960_get_thres_reg(const struct iio_chan_spec *chan, + enum iio_event_direction dir, + u8 *reg) +{ + switch (dir) { + case IIO_EV_DIR_RISING: + switch (chan->type) { + case IIO_PROXIMITY: + *reg = APDS9960_REG_PIHT; + break; + case IIO_INTENSITY: + *reg = APDS9960_REG_AIHTL; + break; + default: + return -EINVAL; + } + break; + case IIO_EV_DIR_FALLING: + switch (chan->type) { + case IIO_PROXIMITY: + *reg = APDS9960_REG_PILT; + break; + case IIO_INTENSITY: + *reg = APDS9960_REG_AILTL; + break; + default: + return -EINVAL; + } + break; + default: + return -EINVAL; + } + + return 0; +} + +static int apds9960_read_event(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + enum iio_event_info info, + int *val, int *val2) +{ + u8 reg; + u16 buf; + int ret = 0; + struct apds9960_data *data = iio_priv(indio_dev); + + if (info != IIO_EV_INFO_VALUE) + return -EINVAL; + + ret = apds9960_get_thres_reg(chan, dir, ®); + if (ret < 0) + return ret; + + if (chan->type == IIO_PROXIMITY) { + ret = regmap_read(data->regmap, reg, val); + if (ret < 0) + return ret; + } else if (chan->type == IIO_INTENSITY) { + ret = regmap_bulk_read(data->regmap, reg, &buf, 2); + if (ret < 0) + return ret; + *val = le16_to_cpu(buf); + } else + return -EINVAL; + + *val2 = 0; + + return IIO_VAL_INT; +} + +static int apds9960_write_event(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + enum iio_event_info info, + int val, int val2) +{ + u8 reg; + u16 buf; + int ret = 0; + struct apds9960_data *data = iio_priv(indio_dev); + + if (info != IIO_EV_INFO_VALUE) + return -EINVAL; + + ret = apds9960_get_thres_reg(chan, dir, ®); + if (ret < 0) + return ret; + + if (chan->type == IIO_PROXIMITY) { + if (val < 0 || val > APDS9960_MAX_PXS_THRES_VAL) + return -EINVAL; + ret = regmap_write(data->regmap, reg, val); + if (ret < 0) + return ret; + } else if (chan->type == IIO_INTENSITY) { + if (val < 0 || val > APDS9960_MAX_ALS_THRES_VAL) + return -EINVAL; + buf = cpu_to_le16(val); + ret = regmap_bulk_write(data->regmap, reg, &buf, 2); + if (ret < 0) + return ret; + } else + return -EINVAL; + + return 0; +} + +static int apds9960_read_event_config(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir) +{ + struct apds9960_data *data = iio_priv(indio_dev); + + switch (chan->type) { + case IIO_PROXIMITY: + return data->pxs_int; + case IIO_INTENSITY: + return data->als_int; + default: + return -EINVAL; + } + + return 0; +} + +static int apds9960_write_event_config(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + int state) +{ + struct apds9960_data *data = iio_priv(indio_dev); + int ret; + + state = !!state; + + switch (chan->type) { + case IIO_PROXIMITY: + if (data->pxs_int == state) + return -EINVAL; + + ret = regmap_field_write(data->reg_int_pxs, state); + if (ret) + return ret; + data->pxs_int = state; + apds9960_set_power_state(data, state); + break; + case IIO_INTENSITY: + if (data->als_int == state) + return -EINVAL; + + ret = regmap_field_write(data->reg_int_als, state); + if (ret) + return ret; + data->als_int = state; + apds9960_set_power_state(data, state); + break; + default: + return -EINVAL; + } + + return 0; +} + +static const struct iio_info apds9960_info = { + .driver_module = THIS_MODULE, + .attrs = &apds9960_attribute_group, + .read_raw = apds9960_read_raw, + .write_raw = apds9960_write_raw, + .read_event_value = apds9960_read_event, + .write_event_value = apds9960_write_event, + .read_event_config = apds9960_read_event_config, + .write_event_config = apds9960_write_event_config, + +}; + +static inline int apds9660_fifo_is_empty(struct apds9960_data *data) +{ + int cnt; + int ret; + + ret = regmap_read(data->regmap, APDS9960_REG_GFLVL, &cnt); + if (ret) + return ret; + + return cnt; +} + +static void apds9960_read_gesture_fifo(struct apds9960_data *data) +{ + int ret, cnt = 0; + + mutex_lock(&data->lock); + data->gesture_mode_running = 1; + + while (cnt-- || (cnt = apds9660_fifo_is_empty(data) > 0)) { + ret = regmap_bulk_read(data->regmap, APDS9960_REG_GFIFO_BASE, + &data->buffer, 4); + + if (ret) + goto err_read; + + iio_push_to_buffers(data->indio_dev, data->buffer); + } + +err_read: + data->gesture_mode_running = 0; + mutex_unlock(&data->lock); +} + +static irqreturn_t apds9960_interrupt_handler(int irq, void *private) +{ + struct iio_dev *indio_dev = private; + struct apds9960_data *data = iio_priv(indio_dev); + int ret, status; + + ret = regmap_read(data->regmap, APDS9960_REG_STATUS, &status); + if (ret < 0) { + dev_err(&data->client->dev, "irq status reg read failed\n"); + return IRQ_HANDLED; + } + + if ((status & APDS9960_REG_STATUS_ALS_INT) && data->als_int) { + iio_push_event(indio_dev, + IIO_UNMOD_EVENT_CODE(IIO_INTENSITY, 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_EITHER), + iio_get_time_ns()); + regmap_write(data->regmap, APDS9960_REG_CICLEAR, 1); + } + + if ((status & APDS9960_REG_STATUS_PS_INT) && data->pxs_int) { + iio_push_event(indio_dev, + IIO_UNMOD_EVENT_CODE(IIO_PROXIMITY, 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_EITHER), + iio_get_time_ns()); + regmap_write(data->regmap, APDS9960_REG_PICLEAR, 1); + } + + if (status & APDS9960_REG_STATUS_GINT) + apds9960_read_gesture_fifo(data); + + return IRQ_HANDLED; +} + +static int apds9960_set_powermode(struct apds9960_data *data, bool state) +{ + return regmap_update_bits(data->regmap, APDS9960_REG_ENABLE, 1, state); +} + +static int apds9960_buffer_postenable(struct iio_dev *indio_dev) +{ + struct apds9960_data *data = iio_priv(indio_dev); + int ret; + + ret = regmap_field_write(data->reg_int_ges, 1); + if (ret) + return ret; + + ret = regmap_field_write(data->reg_enable_ges, 1); + if (ret) + return ret; + + pm_runtime_get_sync(&data->client->dev); + + return 0; +} + +static int apds9960_buffer_predisable(struct iio_dev *indio_dev) +{ + struct apds9960_data *data = iio_priv(indio_dev); + int ret; + + ret = regmap_field_write(data->reg_enable_ges, 0); + if (ret) + return ret; + + ret = regmap_field_write(data->reg_int_ges, 0); + if (ret) + return ret; + + pm_runtime_put_autosuspend(&data->client->dev); + + return 0; +} + +static const struct iio_buffer_setup_ops apds9960_buffer_setup_ops = { + .postenable = apds9960_buffer_postenable, + .predisable = apds9960_buffer_predisable, +}; + +static int apds9960_regfield_init(struct apds9960_data *data) +{ + struct device *dev = &data->client->dev; + struct regmap *regmap = data->regmap; + + data->reg_int_als = devm_regmap_field_alloc(dev, regmap, + apds9960_reg_field_int_als); + if (IS_ERR(data->reg_int_als)) { + dev_err(dev, "INT ALS reg field init failed\n"); + return PTR_ERR(data->reg_int_als); + } + + data->reg_int_ges = devm_regmap_field_alloc(dev, regmap, + apds9960_reg_field_int_ges); + if (IS_ERR(data->reg_int_ges)) { + dev_err(dev, "INT gesture reg field init failed\n"); + return PTR_ERR(data->reg_int_ges); + } + + data->reg_int_pxs = devm_regmap_field_alloc(dev, regmap, + apds9960_reg_field_int_pxs); + if (IS_ERR(data->reg_int_pxs)) { + dev_err(dev, "INT pxs reg field init failed\n"); + return PTR_ERR(data->reg_int_pxs); + } + + data->reg_enable_als = devm_regmap_field_alloc(dev, regmap, + apds9960_reg_field_enable_als); + if (IS_ERR(data->reg_enable_als)) { + dev_err(dev, "Enable ALS reg field init failed\n"); + return PTR_ERR(data->reg_enable_als); + } + + data->reg_enable_ges = devm_regmap_field_alloc(dev, regmap, + apds9960_reg_field_enable_ges); + if (IS_ERR(data->reg_enable_ges)) { + dev_err(dev, "Enable gesture reg field init failed\n"); + return PTR_ERR(data->reg_enable_ges); + } + + data->reg_enable_pxs = devm_regmap_field_alloc(dev, regmap, + apds9960_reg_field_enable_pxs); + if (IS_ERR(data->reg_enable_pxs)) { + dev_err(dev, "Enable PXS reg field init failed\n"); + return PTR_ERR(data->reg_enable_pxs); + } + + return 0; +} + +static int apds9960_chip_init(struct apds9960_data *data) +{ + int ret; + + /* Default IT for ALS of 28 ms */ + ret = apds9960_set_it_time(data, 28000); + if (ret) + return ret; + + /* Ensure gesture interrupt is OFF */ + ret = regmap_field_write(data->reg_int_ges, 0); + if (ret) + return ret; + + /* Disable gesture sensor, since polling is useless from user-space */ + ret = regmap_field_write(data->reg_enable_ges, 0); + if (ret) + return ret; + + /* Ensure proximity interrupt is OFF */ + ret = regmap_field_write(data->reg_int_pxs, 0); + if (ret) + return ret; + + /* Enable proximity sensor for polling */ + ret = regmap_field_write(data->reg_enable_pxs, 1); + if (ret) + return ret; + + /* Ensure ALS interrupt is OFF */ + ret = regmap_field_write(data->reg_int_als, 0); + if (ret) + return ret; + + /* Enable ALS sensor for polling */ + ret = regmap_field_write(data->reg_enable_als, 1); + if (ret) + return ret; + /* + * When enabled trigger an interrupt after 3 readings + * outside threshold for ALS + PXS + */ + ret = regmap_write(data->regmap, APDS9960_REG_PERS, + APDS9960_DEFAULT_PERS); + if (ret) + return ret; + + /* + * Wait for 4 event outside gesture threshold to prevent interrupt + * flooding. + */ + ret = regmap_update_bits(data->regmap, APDS9960_REG_GCONF_1, + APDS9960_REG_GCONF_1_GFIFO_THRES_MASK, + BIT(0) << APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT); + if (ret) + return ret; + + /* Default ENTER and EXIT thresholds for the GESTURE engine. */ + ret = regmap_write(data->regmap, APDS9960_REG_GPENTH, + APDS9960_DEFAULT_GPENTH); + if (ret) + return ret; + + ret = regmap_write(data->regmap, APDS9960_REG_GEXTH, + APDS9960_DEFAULT_GEXTH); + if (ret) + return ret; + + ret = apds9960_set_powermode(data, 1); + if (ret) + return ret; + + return 0; +} + +static int apds9960_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct apds9960_data *data; + struct iio_buffer *buffer; + struct iio_dev *indio_dev; + int ret; + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); + if (!indio_dev) + return -ENOMEM; + + buffer = devm_iio_kfifo_allocate(&client->dev); + if (!buffer) + return -ENOMEM; + + iio_device_attach_buffer(indio_dev, buffer); + + indio_dev->info = &apds9960_info; + indio_dev->name = APDS9960_DRV_NAME; + indio_dev->channels = apds9960_channels; + indio_dev->num_channels = ARRAY_SIZE(apds9960_channels); + indio_dev->available_scan_masks = apds9960_scan_masks; + indio_dev->modes = (INDIO_BUFFER_SOFTWARE | INDIO_DIRECT_MODE); + indio_dev->setup_ops = &apds9960_buffer_setup_ops; + + data = iio_priv(indio_dev); + i2c_set_clientdata(client, indio_dev); + + data->regmap = devm_regmap_init_i2c(client, &apds9960_regmap_config); + if (IS_ERR(data->regmap)) { + dev_err(&client->dev, "regmap initialization failed.\n"); + return PTR_ERR(data->regmap); + } + + data->client = client; + data->indio_dev = indio_dev; + mutex_init(&data->lock); + + ret = pm_runtime_set_active(&client->dev); + if (ret) + goto error_power_down; + + pm_runtime_enable(&client->dev); + pm_runtime_set_autosuspend_delay(&client->dev, 5000); + pm_runtime_use_autosuspend(&client->dev); + + apds9960_set_power_state(data, true); + + ret = apds9960_regfield_init(data); + if (ret) + goto error_power_down; + + ret = apds9960_chip_init(data); + if (ret) + goto error_power_down; + + if (client->irq <= 0) { + dev_err(&client->dev, "no valid irq defined\n"); + ret = -EINVAL; + goto error_power_down; + } + ret = devm_request_threaded_irq(&client->dev, client->irq, + NULL, apds9960_interrupt_handler, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "apds9960_event", + indio_dev); + if (ret) { + dev_err(&client->dev, "request irq (%d) failed\n", client->irq); + goto error_power_down; + } + + ret = iio_device_register(indio_dev); + if (ret) + goto error_power_down; + + apds9960_set_power_state(data, false); + + return 0; + +error_power_down: + apds9960_set_power_state(data, false); + + return ret; +} + +static int apds9960_remove(struct i2c_client *client) +{ + struct iio_dev *indio_dev = i2c_get_clientdata(client); + struct apds9960_data *data = iio_priv(indio_dev); + + iio_device_unregister(indio_dev); + pm_runtime_disable(&client->dev); + pm_runtime_set_suspended(&client->dev); + apds9960_set_powermode(data, 0); + + return 0; +} + +#ifdef CONFIG_PM +static int apds9960_runtime_suspend(struct device *dev) +{ + struct apds9960_data *data = + iio_priv(i2c_get_clientdata(to_i2c_client(dev))); + + return apds9960_set_powermode(data, 0); +} + +static int apds9960_runtime_resume(struct device *dev) +{ + struct apds9960_data *data = + iio_priv(i2c_get_clientdata(to_i2c_client(dev))); + + return apds9960_set_powermode(data, 1); +} +#endif + +static const struct dev_pm_ops apds9960_pm_ops = { + SET_RUNTIME_PM_OPS(apds9960_runtime_suspend, + apds9960_runtime_resume, NULL) +}; + +static const struct i2c_device_id apds9960_id[] = { + { "apds9960", 0 }, + {} +}; +MODULE_DEVICE_TABLE(i2c, apds9960_id); + +static struct i2c_driver apds9960_driver = { + .driver = { + .name = APDS9960_DRV_NAME, + .pm = &apds9960_pm_ops, + .owner = THIS_MODULE, + }, + .probe = apds9960_probe, + .remove = apds9960_remove, + .id_table = apds9960_id, +}; +module_i2c_driver(apds9960_driver); + +MODULE_AUTHOR("Matt Ranostay "); +MODULE_DESCRIPTION("ADPS9960 Gesture/RGB/ALS/Proximity sensor"); +MODULE_LICENSE("GPL"); From 7d87b3c5c8602df4ce6d615b33ae6dc15438fa29 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 18 Aug 2015 12:16:33 +0300 Subject: [PATCH 0042/2431] iio: tsl4531: fix error handling in tsl4531_check_id() The tsl4531_check_id() function returned 1 on "found" and 0 on "not found" and negative error codes on failure. This was non-standard and bug prone. The caller treated all non-zero values including error codes as "found". This patch fixes it by changing the tsl4531_check_id() to return zero on success or a negative error code, and updates the caller. Signed-off-by: Dan Carpenter Acked-by: Peter Meerwald Signed-off-by: Jonathan Cameron --- drivers/iio/light/tsl4531.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/iio/light/tsl4531.c b/drivers/iio/light/tsl4531.c index 26979183d27c..cf94ec72b181 100644 --- a/drivers/iio/light/tsl4531.c +++ b/drivers/iio/light/tsl4531.c @@ -158,9 +158,9 @@ static int tsl4531_check_id(struct i2c_client *client) case TSL45313_ID: case TSL45315_ID: case TSL45317_ID: - return 1; - default: return 0; + default: + return -ENODEV; } } @@ -180,9 +180,10 @@ static int tsl4531_probe(struct i2c_client *client, data->client = client; mutex_init(&data->lock); - if (!tsl4531_check_id(client)) { + ret = tsl4531_check_id(client); + if (ret) { dev_err(&client->dev, "no TSL4531 sensor\n"); - return -ENODEV; + return ret; } ret = i2c_smbus_write_byte_data(data->client, TSL4531_CONTROL, From 12280bd3d5d7e1ba1dd60ba0bd4412f4056fc028 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 18 Aug 2015 07:40:37 -0700 Subject: [PATCH 0043/2431] devicetree: add PulsedLight vendor + device docs Add pulsedlight vendor to vendor-prefixes.txt, and LIDAR device documentation to trivial-devices.txt Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- Documentation/devicetree/bindings/i2c/trivial-devices.txt | 1 + Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt index 00f8652e193a..af1bc50ecfb1 100644 --- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt +++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt @@ -80,6 +80,7 @@ oki,ml86v7667 OKI ML86V7667 video decoder ovti,ov5642 OV5642: Color CMOS QSXGA (5-megapixel) Image Sensor with OmniBSI and Embedded TrueFocus pericom,pt7c4338 Real-time Clock Module plx,pex8648 48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch +pulsedlight,lidar-lite-v2 Pulsedlight LIDAR range-finding sensor ramtron,24c64 i2c serial eeprom (24cxx) ricoh,r2025sd I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC ricoh,r2221tl I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index bc64cc9d7b60..341695b1eb2f 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -160,6 +160,7 @@ phytec PHYTEC Messtechnik GmbH picochip Picochip Ltd plathome Plat'Home Co., Ltd. pixcir PIXCIR MICROELECTRONICS Co., Ltd +pulsedlight PulsedLight, Inc powervr PowerVR (deprecated, use img) qca Qualcomm Atheros, Inc. qcom Qualcomm Technologies, Inc From cb119d5350839297bbe8a382dbb2feff545742b5 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 18 Aug 2015 07:40:38 -0700 Subject: [PATCH 0044/2431] iio: proximity: add support for PulsedLight LIDAR Add support for the PulsedLight LIDAR rangefinder sensor which allows high speed (over 300Hz) distance measurements using Barker Coding within 40 meter range. Support only tested on the "blue label" rev 2, but may work using low sample frequencies on the original version. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- drivers/iio/proximity/Kconfig | 12 + drivers/iio/proximity/Makefile | 1 + .../iio/proximity/pulsedlight-lidar-lite-v2.c | 288 ++++++++++++++++++ 3 files changed, 301 insertions(+) create mode 100644 drivers/iio/proximity/pulsedlight-lidar-lite-v2.c diff --git a/drivers/iio/proximity/Kconfig b/drivers/iio/proximity/Kconfig index 41a8d8ffa0de..ef4c73db5b53 100644 --- a/drivers/iio/proximity/Kconfig +++ b/drivers/iio/proximity/Kconfig @@ -20,6 +20,18 @@ endmenu menu "Proximity sensors" +config LIDAR_LITE_V2 + tristate "PulsedLight LIDAR sensor" + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER + depends on I2C + help + Say Y to build a driver for PulsedLight LIDAR range finding + sensor. + + To compile this driver as a module, choose M here: the + module will be called pulsedlight-lite-v2 + config SX9500 tristate "SX9500 Semtech proximity sensor" select IIO_BUFFER diff --git a/drivers/iio/proximity/Makefile b/drivers/iio/proximity/Makefile index 9818dc562abd..9aadd9a8ee99 100644 --- a/drivers/iio/proximity/Makefile +++ b/drivers/iio/proximity/Makefile @@ -4,4 +4,5 @@ # When adding new entries keep the list in alphabetical order obj-$(CONFIG_AS3935) += as3935.o +obj-$(CONFIG_LIDAR_LITE_V2) += pulsedlight-lidar-lite-v2.o obj-$(CONFIG_SX9500) += sx9500.o diff --git a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c new file mode 100644 index 000000000000..185a7ab4f31b --- /dev/null +++ b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c @@ -0,0 +1,288 @@ +/* + * pulsedlight-lidar-lite-v2.c - Support for PulsedLight LIDAR sensor + * + * Copyright (C) 2015 Matt Ranostay + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * TODO: runtime pm, interrupt mode, and signal strength reporting + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define LIDAR_REG_CONTROL 0x00 +#define LIDAR_REG_CONTROL_ACQUIRE BIT(2) + +#define LIDAR_REG_STATUS 0x01 +#define LIDAR_REG_STATUS_INVALID BIT(3) +#define LIDAR_REG_STATUS_READY BIT(0) + +#define LIDAR_REG_DATA_HBYTE 0x0f +#define LIDAR_REG_DATA_LBYTE 0x10 + +#define LIDAR_DRV_NAME "lidar" + +struct lidar_data { + struct iio_dev *indio_dev; + struct i2c_client *client; + + u16 buffer[8]; /* 2 byte distance + 8 byte timestamp */ +}; + +static const struct iio_chan_spec lidar_channels[] = { + { + .type = IIO_DISTANCE, + .info_mask_separate = + BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE), + .scan_index = 0, + .scan_type = { + .sign = 'u', + .realbits = 16, + .storagebits = 16, + }, + }, + IIO_CHAN_SOFT_TIMESTAMP(1), +}; + +static int lidar_read_byte(struct lidar_data *data, int reg) +{ + struct i2c_client *client = data->client; + int ret; + + /* + * Device needs a STOP condition between address write, and data read + * so in turn i2c_smbus_read_byte_data cannot be used + */ + + ret = i2c_smbus_write_byte(client, reg); + if (ret < 0) { + dev_err(&client->dev, "cannot write addr value"); + return ret; + } + + ret = i2c_smbus_read_byte(client); + if (ret < 0) + dev_err(&client->dev, "cannot read data value"); + + return ret; +} + +static inline int lidar_write_control(struct lidar_data *data, int val) +{ + return i2c_smbus_write_byte_data(data->client, LIDAR_REG_CONTROL, val); +} + +static int lidar_read_measurement(struct lidar_data *data, u16 *reg) +{ + int ret; + int val; + + ret = lidar_read_byte(data, LIDAR_REG_DATA_HBYTE); + if (ret < 0) + return ret; + val = ret << 8; + + ret = lidar_read_byte(data, LIDAR_REG_DATA_LBYTE); + if (ret < 0) + return ret; + + val |= ret; + *reg = val; + + return 0; +} + +static int lidar_get_measurement(struct lidar_data *data, u16 *reg) +{ + struct i2c_client *client = data->client; + int tries = 10; + int ret; + + /* start sample */ + ret = lidar_write_control(data, LIDAR_REG_CONTROL_ACQUIRE); + if (ret < 0) { + dev_err(&client->dev, "cannot send start measurement command"); + return ret; + } + + while (tries--) { + usleep_range(1000, 2000); + + ret = lidar_read_byte(data, LIDAR_REG_STATUS); + if (ret < 0) + break; + + /* return 0 since laser is likely pointed out of range */ + if (ret & LIDAR_REG_STATUS_INVALID) { + *reg = 0; + ret = 0; + break; + } + + /* sample ready to read */ + if (!(ret & LIDAR_REG_STATUS_READY)) { + ret = lidar_read_measurement(data, reg); + break; + } + ret = -EIO; + } + + return ret; +} + +static int lidar_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) +{ + struct lidar_data *data = iio_priv(indio_dev); + int ret = -EINVAL; + + mutex_lock(&indio_dev->mlock); + + if (iio_buffer_enabled(indio_dev) && mask == IIO_CHAN_INFO_RAW) { + ret = -EBUSY; + goto error_busy; + } + + switch (mask) { + case IIO_CHAN_INFO_RAW: { + u16 reg; + + ret = lidar_get_measurement(data, ®); + if (!ret) { + *val = reg; + ret = IIO_VAL_INT; + } + break; + } + case IIO_CHAN_INFO_SCALE: + *val = 0; + *val2 = 10000; + ret = IIO_VAL_INT_PLUS_MICRO; + break; + } + +error_busy: + mutex_unlock(&indio_dev->mlock); + + return ret; +} + +static irqreturn_t lidar_trigger_handler(int irq, void *private) +{ + struct iio_poll_func *pf = private; + struct iio_dev *indio_dev = pf->indio_dev; + struct lidar_data *data = iio_priv(indio_dev); + int ret; + + ret = lidar_get_measurement(data, data->buffer); + if (!ret) { + iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, + iio_get_time_ns()); + } else { + dev_err(&data->client->dev, "cannot read LIDAR measurement"); + } + + iio_trigger_notify_done(indio_dev->trig); + + return IRQ_HANDLED; +} + +static const struct iio_info lidar_info = { + .driver_module = THIS_MODULE, + .read_raw = lidar_read_raw, +}; + +static int lidar_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct lidar_data *data; + struct iio_dev *indio_dev; + int ret; + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); + if (!indio_dev) + return -ENOMEM; + + indio_dev->info = &lidar_info; + indio_dev->name = LIDAR_DRV_NAME; + indio_dev->channels = lidar_channels; + indio_dev->num_channels = ARRAY_SIZE(lidar_channels); + indio_dev->modes = INDIO_DIRECT_MODE; + + data = iio_priv(indio_dev); + i2c_set_clientdata(client, indio_dev); + + data->client = client; + data->indio_dev = indio_dev; + + ret = iio_triggered_buffer_setup(indio_dev, NULL, + lidar_trigger_handler, NULL); + if (ret) + return ret; + + ret = iio_device_register(indio_dev); + if (ret) + goto error_unreg_buffer; + + return 0; + +error_unreg_buffer: + iio_triggered_buffer_cleanup(indio_dev); + + return ret; +} + +static int lidar_remove(struct i2c_client *client) +{ + struct iio_dev *indio_dev = i2c_get_clientdata(client); + + iio_device_unregister(indio_dev); + iio_triggered_buffer_cleanup(indio_dev); + + return 0; +} + +static const struct i2c_device_id lidar_id[] = { + {"lidar-lite-v2", 0}, + { }, +}; +MODULE_DEVICE_TABLE(i2c, lidar_id); + +static const struct of_device_id lidar_dt_ids[] = { + { .compatible = "pulsedlight,lidar-lite-v2" }, + { } +}; + +static struct i2c_driver lidar_driver = { + .driver = { + .name = LIDAR_DRV_NAME, + .of_match_table = of_match_ptr(lidar_dt_ids), + }, + .probe = lidar_probe, + .remove = lidar_remove, + .id_table = lidar_id, +}; +module_i2c_driver(lidar_driver); + +MODULE_AUTHOR("Matt Ranostay "); +MODULE_DESCRIPTION("PulsedLight LIDAR sensor"); +MODULE_LICENSE("GPL"); From 13426454b6493a847cebe276fb1ec3a7f1d48d0e Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 19 Aug 2015 14:12:45 +0200 Subject: [PATCH 0045/2431] iio: bmg160: Separate i2c and core driver This patch separates the core driver using regmap and the i2c driver which creates the i2c regmap. Also in the Kconfig file BMG160 and BMG160_I2C are separate now. Signed-off-by: Markus Pargmann Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron --- drivers/iio/gyro/Kconfig | 15 ++-- drivers/iio/gyro/Makefile | 3 +- drivers/iio/gyro/bmg160.h | 10 +++ drivers/iio/gyro/{bmg160.c => bmg160_core.c} | 76 ++++---------------- drivers/iio/gyro/bmg160_i2c.c | 71 ++++++++++++++++++ 5 files changed, 108 insertions(+), 67 deletions(-) create mode 100644 drivers/iio/gyro/bmg160.h rename drivers/iio/gyro/{bmg160.c => bmg160_core.c} (94%) create mode 100644 drivers/iio/gyro/bmg160_i2c.c diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig index cf82d74139a2..94526b13d49f 100644 --- a/drivers/iio/gyro/Kconfig +++ b/drivers/iio/gyro/Kconfig @@ -52,16 +52,21 @@ config ADXRS450 config BMG160 tristate "BOSCH BMG160 Gyro Sensor" - depends on I2C + depends on (I2C || SPI_MASTER) select IIO_BUFFER select IIO_TRIGGERED_BUFFER - select REGMAP_I2C + select BMG160_I2C if (I2C) help - Say yes here to build support for Bosch BMG160 Tri-axis Gyro Sensor - driver. This driver also supports BMI055 gyroscope. + Say yes here to build support for BOSCH BMG160 Tri-axis Gyro Sensor + driver connected via I2C or SPI. This driver also supports BMI055 + gyroscope. This driver can also be built as a module. If so, the module - will be called bmg160. + will be called bmg160_i2c. + +config BMG160_I2C + tristate + select REGMAP_I2C config HID_SENSOR_GYRO_3D depends on HID_SENSOR_HUB diff --git a/drivers/iio/gyro/Makefile b/drivers/iio/gyro/Makefile index f46341b39139..608401041550 100644 --- a/drivers/iio/gyro/Makefile +++ b/drivers/iio/gyro/Makefile @@ -8,7 +8,8 @@ obj-$(CONFIG_ADIS16130) += adis16130.o obj-$(CONFIG_ADIS16136) += adis16136.o obj-$(CONFIG_ADIS16260) += adis16260.o obj-$(CONFIG_ADXRS450) += adxrs450.o -obj-$(CONFIG_BMG160) += bmg160.o +obj-$(CONFIG_BMG160) += bmg160_core.o +obj-$(CONFIG_BMG160_I2C) += bmg160_i2c.o obj-$(CONFIG_HID_SENSOR_GYRO_3D) += hid-sensor-gyro-3d.o diff --git a/drivers/iio/gyro/bmg160.h b/drivers/iio/gyro/bmg160.h new file mode 100644 index 000000000000..72db723c8fb6 --- /dev/null +++ b/drivers/iio/gyro/bmg160.h @@ -0,0 +1,10 @@ +#ifndef BMG160_H_ +#define BMG160_H_ + +extern const struct dev_pm_ops bmg160_pm_ops; + +int bmg160_core_probe(struct device *dev, struct regmap *regmap, int irq, + const char *name); +void bmg160_core_remove(struct device *dev); + +#endif /* BMG160_H_ */ diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160_core.c similarity index 94% rename from drivers/iio/gyro/bmg160.c rename to drivers/iio/gyro/bmg160_core.c index ca12402ffd93..02ff789852a0 100644 --- a/drivers/iio/gyro/bmg160.c +++ b/drivers/iio/gyro/bmg160_core.c @@ -13,7 +13,6 @@ */ #include -#include #include #include #include @@ -29,8 +28,8 @@ #include #include #include +#include "bmg160.h" -#define BMG160_DRV_NAME "bmg160" #define BMG160_IRQ_NAME "bmg160_event" #define BMG160_GPIO_NAME "gpio_int" @@ -137,12 +136,6 @@ static const struct { { 133, BMG160_RANGE_250DPS}, { 66, BMG160_RANGE_125DPS} }; -static struct regmap_config bmg160_regmap_i2c_conf = { - .reg_bits = 8, - .val_bits = 8, - .max_register = 0x3f -}; - static int bmg160_set_mode(struct bmg160_data *data, u8 mode) { int ret; @@ -996,31 +989,22 @@ static const char *bmg160_match_acpi_device(struct device *dev) return dev_name(dev); } -static int bmg160_probe(struct i2c_client *client, - const struct i2c_device_id *id) +int bmg160_core_probe(struct device *dev, struct regmap *regmap, int irq, + const char *name) { struct bmg160_data *data; struct iio_dev *indio_dev; int ret; - const char *name = NULL; - struct regmap *regmap; - struct device *dev = &client->dev; - regmap = devm_regmap_init_i2c(client, &bmg160_regmap_i2c_conf); - if (IS_ERR(regmap)) { - dev_err(&client->dev, "Failed to register i2c regmap %d\n", - (int)PTR_ERR(regmap)); - return PTR_ERR(regmap); - } - - indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); + indio_dev = devm_iio_device_alloc(dev, sizeof(*data)); if (!indio_dev) return -ENOMEM; data = iio_priv(indio_dev); dev_set_drvdata(dev, indio_dev); data->dev = dev; - data->irq = client->irq; + data->irq = irq; + data->regmap = regmap; ret = bmg160_chip_init(data); if (ret < 0) @@ -1028,9 +1012,6 @@ static int bmg160_probe(struct i2c_client *client, mutex_init(&data->mutex); - if (id) - name = id->name; - if (ACPI_HANDLE(dev)) name = bmg160_match_acpi_device(dev); @@ -1125,15 +1106,16 @@ err_trigger_unregister: return ret; } +EXPORT_SYMBOL_GPL(bmg160_core_probe); -static int bmg160_remove(struct i2c_client *client) +void bmg160_core_remove(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(client); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmg160_data *data = iio_priv(indio_dev); - pm_runtime_disable(&client->dev); - pm_runtime_set_suspended(&client->dev); - pm_runtime_put_noidle(&client->dev); + pm_runtime_disable(dev); + pm_runtime_set_suspended(dev); + pm_runtime_put_noidle(dev); iio_device_unregister(indio_dev); iio_triggered_buffer_cleanup(indio_dev); @@ -1146,9 +1128,8 @@ static int bmg160_remove(struct i2c_client *client) mutex_lock(&data->mutex); bmg160_set_mode(data, BMG160_MODE_DEEP_SUSPEND); mutex_unlock(&data->mutex); - - return 0; } +EXPORT_SYMBOL_GPL(bmg160_core_remove); #ifdef CONFIG_PM_SLEEP static int bmg160_suspend(struct device *dev) @@ -1210,39 +1191,12 @@ static int bmg160_runtime_resume(struct device *dev) } #endif -static const struct dev_pm_ops bmg160_pm_ops = { +const struct dev_pm_ops bmg160_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(bmg160_suspend, bmg160_resume) SET_RUNTIME_PM_OPS(bmg160_runtime_suspend, bmg160_runtime_resume, NULL) }; - -static const struct acpi_device_id bmg160_acpi_match[] = { - {"BMG0160", 0}, - {"BMI055B", 0}, - {}, -}; - -MODULE_DEVICE_TABLE(acpi, bmg160_acpi_match); - -static const struct i2c_device_id bmg160_id[] = { - {"bmg160", 0}, - {"bmi055_gyro", 0}, - {} -}; - -MODULE_DEVICE_TABLE(i2c, bmg160_id); - -static struct i2c_driver bmg160_driver = { - .driver = { - .name = BMG160_DRV_NAME, - .acpi_match_table = ACPI_PTR(bmg160_acpi_match), - .pm = &bmg160_pm_ops, - }, - .probe = bmg160_probe, - .remove = bmg160_remove, - .id_table = bmg160_id, -}; -module_i2c_driver(bmg160_driver); +EXPORT_SYMBOL_GPL(bmg160_pm_ops); MODULE_AUTHOR("Srinivas Pandruvada "); MODULE_LICENSE("GPL v2"); diff --git a/drivers/iio/gyro/bmg160_i2c.c b/drivers/iio/gyro/bmg160_i2c.c new file mode 100644 index 000000000000..90126a5a7663 --- /dev/null +++ b/drivers/iio/gyro/bmg160_i2c.c @@ -0,0 +1,71 @@ +#include +#include +#include +#include +#include + +#include "bmg160.h" + +static const struct regmap_config bmg160_regmap_i2c_conf = { + .reg_bits = 8, + .val_bits = 8, + .max_register = 0x3f +}; + +static int bmg160_i2c_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct regmap *regmap; + const char *name = NULL; + + regmap = devm_regmap_init_i2c(client, &bmg160_regmap_i2c_conf); + if (IS_ERR(regmap)) { + dev_err(&client->dev, "Failed to register i2c regmap %d\n", + (int)PTR_ERR(regmap)); + return PTR_ERR(regmap); + } + + if (id) + name = id->name; + + return bmg160_core_probe(&client->dev, regmap, client->irq, name); +} + +static int bmg160_i2c_remove(struct i2c_client *client) +{ + bmg160_core_remove(&client->dev); + + return 0; +} + +static const struct acpi_device_id bmg160_acpi_match[] = { + {"BMG0160", 0}, + {"BMI055B", 0}, + {}, +}; + +MODULE_DEVICE_TABLE(acpi, bmg160_acpi_match); + +static const struct i2c_device_id bmg160_i2c_id[] = { + {"bmg160", 0}, + {"bmi055_gyro", 0}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, bmg160_i2c_id); + +static struct i2c_driver bmg160_i2c_driver = { + .driver = { + .name = "bmg160_i2c", + .acpi_match_table = ACPI_PTR(bmg160_acpi_match), + .pm = &bmg160_pm_ops, + }, + .probe = bmg160_i2c_probe, + .remove = bmg160_i2c_remove, + .id_table = bmg160_i2c_id, +}; +module_i2c_driver(bmg160_i2c_driver); + +MODULE_AUTHOR("Srinivas Pandruvada "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("BMG160 I2C Gyro driver"); From b1d125cc6236399258025b0c5646cafa2b45e043 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 19 Aug 2015 14:12:46 +0200 Subject: [PATCH 0046/2431] iio: bmg160: Add SPI driver Signed-off-by: Markus Pargmann Signed-off-by: Jonathan Cameron --- drivers/iio/gyro/Kconfig | 7 ++++- drivers/iio/gyro/Makefile | 1 + drivers/iio/gyro/bmg160_spi.c | 57 +++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 drivers/iio/gyro/bmg160_spi.c diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig index 94526b13d49f..e816d29d6a62 100644 --- a/drivers/iio/gyro/Kconfig +++ b/drivers/iio/gyro/Kconfig @@ -56,18 +56,23 @@ config BMG160 select IIO_BUFFER select IIO_TRIGGERED_BUFFER select BMG160_I2C if (I2C) + select BMG160_SPI if (SPI) help Say yes here to build support for BOSCH BMG160 Tri-axis Gyro Sensor driver connected via I2C or SPI. This driver also supports BMI055 gyroscope. This driver can also be built as a module. If so, the module - will be called bmg160_i2c. + will be called bmg160_i2c or bmg160_spi. config BMG160_I2C tristate select REGMAP_I2C +config BMG160_SPI + tristate + select REGMAP_SPI + config HID_SENSOR_GYRO_3D depends on HID_SENSOR_HUB select IIO_BUFFER diff --git a/drivers/iio/gyro/Makefile b/drivers/iio/gyro/Makefile index 608401041550..f866a4be0667 100644 --- a/drivers/iio/gyro/Makefile +++ b/drivers/iio/gyro/Makefile @@ -10,6 +10,7 @@ obj-$(CONFIG_ADIS16260) += adis16260.o obj-$(CONFIG_ADXRS450) += adxrs450.o obj-$(CONFIG_BMG160) += bmg160_core.o obj-$(CONFIG_BMG160_I2C) += bmg160_i2c.o +obj-$(CONFIG_BMG160_SPI) += bmg160_spi.o obj-$(CONFIG_HID_SENSOR_GYRO_3D) += hid-sensor-gyro-3d.o diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c new file mode 100644 index 000000000000..021ea5fe6a37 --- /dev/null +++ b/drivers/iio/gyro/bmg160_spi.c @@ -0,0 +1,57 @@ +#include +#include +#include +#include + +#include "bmg160.h" + +static const struct regmap_config bmg160_regmap_spi_conf = { + .reg_bits = 8, + .val_bits = 8, + .max_register = 0x3f, +}; + +static int bmg160_spi_probe(struct spi_device *spi) +{ + struct regmap *regmap; + const struct spi_device_id *id = spi_get_device_id(spi); + + regmap = devm_regmap_init_spi(spi, &bmg160_regmap_spi_conf); + if (IS_ERR(regmap)) { + dev_err(&spi->dev, "Failed to register spi regmap %d\n", + (int)PTR_ERR(regmap)); + return PTR_ERR(regmap); + } + + return bmg160_core_probe(&spi->dev, regmap, spi->irq, id->name); +} + +static int bmg160_spi_remove(struct spi_device *spi) +{ + bmg160_core_remove(&spi->dev); + + return 0; +} + +static const struct spi_device_id bmg160_spi_id[] = { + {"bmg160", 0}, + {"bmi055_gyro", 0}, + {} +}; + +MODULE_DEVICE_TABLE(spi, bmg160_spi_id); + +static struct spi_driver bmg160_spi_driver = { + .driver = { + .name = "bmg160_spi", + .pm = &bmg160_pm_ops, + }, + .probe = bmg160_spi_probe, + .remove = bmg160_spi_remove, + .id_table = bmg160_spi_id, +}; +module_spi_driver(bmg160_spi_driver); + +MODULE_AUTHOR("Markus Pargmann "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("BMG160 SPI Gyro driver"); From 077377fc4f74899c58e946e47352216412d0bb3a Mon Sep 17 00:00:00 2001 From: Teodora Baluta Date: Thu, 20 Aug 2015 17:37:31 +0300 Subject: [PATCH 0047/2431] iio: accel: add support for mxc4005 accelerometer This patch adds support for Memsic MXC4005XC 3-axis accelerometer. The current implementation is a minimal one as it adds raw readings for the three axes and setting scale from userspace. Signed-off-by: Teodora Baluta Signed-off-by: Jonathan Cameron --- drivers/iio/accel/Kconfig | 11 ++ drivers/iio/accel/Makefile | 2 + drivers/iio/accel/mxc4005.c | 354 ++++++++++++++++++++++++++++++++++++ 3 files changed, 367 insertions(+) create mode 100644 drivers/iio/accel/mxc4005.c diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index a59047d7657e..69302bed2860 100644 --- a/drivers/iio/accel/Kconfig +++ b/drivers/iio/accel/Kconfig @@ -137,6 +137,17 @@ config MMA9553 To compile this driver as a module, choose M here: the module will be called mma9553. +config MXC4005 + tristate "Memsic MXC4005XC 3-Axis Accelerometer Driver" + depends on I2C + select REGMAP_I2C + help + Say yes here to build support for the Memsic MXC4005XC 3-axis + accelerometer. + + To compile this driver as a module, choose M. The module will be + called mxc4005. + config STK8312 tristate "Sensortek STK8312 3-Axis Accelerometer Driver" depends on I2C diff --git a/drivers/iio/accel/Makefile b/drivers/iio/accel/Makefile index ebd2675b2a02..020dda0ae508 100644 --- a/drivers/iio/accel/Makefile +++ b/drivers/iio/accel/Makefile @@ -14,6 +14,8 @@ obj-$(CONFIG_MMA9551_CORE) += mma9551_core.o obj-$(CONFIG_MMA9551) += mma9551.o obj-$(CONFIG_MMA9553) += mma9553.o +obj-$(CONFIG_MXC4005) += mxc4005.o + obj-$(CONFIG_STK8312) += stk8312.o obj-$(CONFIG_STK8BA50) += stk8ba50.o diff --git a/drivers/iio/accel/mxc4005.c b/drivers/iio/accel/mxc4005.c new file mode 100644 index 000000000000..e15c1bd26bd1 --- /dev/null +++ b/drivers/iio/accel/mxc4005.c @@ -0,0 +1,354 @@ +/* + * 3-axis accelerometer driver for MXC4005XC Memsic sensor + * + * Copyright (c) 2014, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + */ + +#include +#include +#include +#include +#include +#include + +#define MXC4005_DRV_NAME "mxc4005" +#define MXC4005_REGMAP_NAME "mxc4005_regmap" + +#define MXC4005_REG_XOUT_UPPER 0x03 +#define MXC4005_REG_XOUT_LOWER 0x04 +#define MXC4005_REG_YOUT_UPPER 0x05 +#define MXC4005_REG_YOUT_LOWER 0x06 +#define MXC4005_REG_ZOUT_UPPER 0x07 +#define MXC4005_REG_ZOUT_LOWER 0x08 + +#define MXC4005_REG_CONTROL 0x0D +#define MXC4005_REG_CONTROL_MASK_FSR GENMASK(6, 5) +#define MXC4005_CONTROL_FSR_SHIFT 5 + +#define MXC4005_REG_DEVICE_ID 0x0E + +enum mxc4005_axis { + AXIS_X, + AXIS_Y, + AXIS_Z, +}; + +enum mxc4005_range { + MXC4005_RANGE_2G, + MXC4005_RANGE_4G, + MXC4005_RANGE_8G, +}; + +struct mxc4005_data { + struct device *dev; + struct mutex mutex; + struct regmap *regmap; +}; + +/* + * MXC4005 can operate in the following ranges: + * +/- 2G, 4G, 8G (the default +/-2G) + * + * (2 + 2) * 9.81 / (2^12 - 1) = 0.009582 + * (4 + 4) * 9.81 / (2^12 - 1) = 0.019164 + * (8 + 8) * 9.81 / (2^12 - 1) = 0.038329 + */ +static const struct { + u8 range; + int scale; +} mxc4005_scale_table[] = { + {MXC4005_RANGE_2G, 9582}, + {MXC4005_RANGE_4G, 19164}, + {MXC4005_RANGE_8G, 38329}, +}; + + +static IIO_CONST_ATTR(in_accel_scale_available, "0.009582 0.019164 0.038329"); + +static struct attribute *mxc4005_attributes[] = { + &iio_const_attr_in_accel_scale_available.dev_attr.attr, + NULL, +}; + +static const struct attribute_group mxc4005_attrs_group = { + .attrs = mxc4005_attributes, +}; + +static bool mxc4005_is_readable_reg(struct device *dev, unsigned int reg) +{ + switch (reg) { + case MXC4005_REG_XOUT_UPPER: + case MXC4005_REG_XOUT_LOWER: + case MXC4005_REG_YOUT_UPPER: + case MXC4005_REG_YOUT_LOWER: + case MXC4005_REG_ZOUT_UPPER: + case MXC4005_REG_ZOUT_LOWER: + case MXC4005_REG_DEVICE_ID: + case MXC4005_REG_CONTROL: + return true; + default: + return false; + } +} + +static bool mxc4005_is_writeable_reg(struct device *dev, unsigned int reg) +{ + switch (reg) { + case MXC4005_REG_CONTROL: + return true; + default: + return false; + } +} + +static const struct regmap_config mxc4005_regmap_config = { + .name = MXC4005_REGMAP_NAME, + + .reg_bits = 8, + .val_bits = 8, + + .max_register = MXC4005_REG_DEVICE_ID, + + .readable_reg = mxc4005_is_readable_reg, + .writeable_reg = mxc4005_is_writeable_reg, +}; + +static int mxc4005_read_axis(struct mxc4005_data *data, + unsigned int addr) +{ + __be16 reg; + int ret; + + ret = regmap_bulk_read(data->regmap, addr, (u8 *) ®, sizeof(reg)); + if (ret < 0) { + dev_err(data->dev, "failed to read reg %02x\n", addr); + return ret; + } + + return be16_to_cpu(reg); +} + +static int mxc4005_read_scale(struct mxc4005_data *data) +{ + unsigned int reg; + int ret; + int i; + + ret = regmap_read(data->regmap, MXC4005_REG_CONTROL, ®); + if (ret < 0) { + dev_err(data->dev, "failed to read reg_control\n"); + return ret; + } + + i = reg >> MXC4005_CONTROL_FSR_SHIFT; + + if (i < 0 || i >= ARRAY_SIZE(mxc4005_scale_table)) + return -EINVAL; + + return mxc4005_scale_table[i].scale; +} + +static int mxc4005_set_scale(struct mxc4005_data *data, int val) +{ + unsigned int reg; + int i; + int ret; + + for (i = 0; i < ARRAY_SIZE(mxc4005_scale_table); i++) { + if (mxc4005_scale_table[i].scale == val) { + reg = i << MXC4005_CONTROL_FSR_SHIFT; + ret = regmap_update_bits(data->regmap, + MXC4005_REG_CONTROL, + MXC4005_REG_CONTROL_MASK_FSR, + reg); + if (ret < 0) + dev_err(data->dev, + "failed to write reg_control\n"); + return ret; + } + } + + return -EINVAL; +} + +static int mxc4005_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) +{ + struct mxc4005_data *data = iio_priv(indio_dev); + int ret; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + switch (chan->type) { + case IIO_ACCEL: + if (iio_buffer_enabled(indio_dev)) + return -EBUSY; + + ret = mxc4005_read_axis(data, chan->address); + if (ret < 0) + return ret; + *val = sign_extend32(ret >> 4, 11); + return IIO_VAL_INT; + default: + return -EINVAL; + } + case IIO_CHAN_INFO_SCALE: + ret = mxc4005_read_scale(data); + if (ret < 0) + return ret; + + *val = 0; + *val2 = ret; + return IIO_VAL_INT_PLUS_MICRO; + default: + return -EINVAL; + } +} + +static int mxc4005_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct mxc4005_data *data = iio_priv(indio_dev); + + switch (mask) { + case IIO_CHAN_INFO_SCALE: + if (val != 0) + return -EINVAL; + + return mxc4005_set_scale(data, val2); + default: + return -EINVAL; + } +} + +static const struct iio_info mxc4005_info = { + .driver_module = THIS_MODULE, + .read_raw = mxc4005_read_raw, + .write_raw = mxc4005_write_raw, + .attrs = &mxc4005_attrs_group, +}; + +#define MXC4005_CHANNEL(_axis, _addr) { \ + .type = IIO_ACCEL, \ + .modified = 1, \ + .channel2 = IIO_MOD_##_axis, \ + .address = _addr, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ +} + +static const struct iio_chan_spec mxc4005_channels[] = { + MXC4005_CHANNEL(X, MXC4005_REG_XOUT_UPPER), + MXC4005_CHANNEL(Y, MXC4005_REG_YOUT_UPPER), + MXC4005_CHANNEL(Z, MXC4005_REG_ZOUT_UPPER), +}; + +static int mxc4005_chip_init(struct mxc4005_data *data) +{ + int ret; + unsigned int reg; + + ret = regmap_read(data->regmap, MXC4005_REG_DEVICE_ID, ®); + if (ret < 0) { + dev_err(data->dev, "failed to read chip id\n"); + return ret; + } + + dev_dbg(data->dev, "MXC4005 chip id %02x\n", reg); + + return 0; +} + +static int mxc4005_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct mxc4005_data *data; + struct iio_dev *indio_dev; + struct regmap *regmap; + int ret; + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); + if (!indio_dev) + return -ENOMEM; + + regmap = devm_regmap_init_i2c(client, &mxc4005_regmap_config); + if (IS_ERR(regmap)) { + dev_err(&client->dev, "failed to initialize regmap\n"); + return PTR_ERR(regmap); + } + + data = iio_priv(indio_dev); + i2c_set_clientdata(client, indio_dev); + data->dev = &client->dev; + data->regmap = regmap; + + ret = mxc4005_chip_init(data); + if (ret < 0) { + dev_err(&client->dev, "failed to initialize chip\n"); + return ret; + } + + mutex_init(&data->mutex); + + indio_dev->dev.parent = &client->dev; + indio_dev->channels = mxc4005_channels; + indio_dev->num_channels = ARRAY_SIZE(mxc4005_channels); + indio_dev->name = MXC4005_DRV_NAME; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->info = &mxc4005_info; + + ret = iio_device_register(indio_dev); + if (ret < 0) { + dev_err(&client->dev, + "unable to register iio device %d\n", ret); + return ret; + } + + return 0; +} + +static int mxc4005_remove(struct i2c_client *client) +{ + iio_device_unregister(i2c_get_clientdata(client)); + + return 0; +} + +static const struct acpi_device_id mxc4005_acpi_match[] = { + {"MXC4005", 0}, + { }, +}; +MODULE_DEVICE_TABLE(acpi, mxc4005_acpi_match); + +static const struct i2c_device_id mxc4005_id[] = { + {"mxc4005", 0}, + { }, +}; +MODULE_DEVICE_TABLE(i2c, mxc4005_id); + +static struct i2c_driver mxc4005_driver = { + .driver = { + .name = MXC4005_DRV_NAME, + .acpi_match_table = ACPI_PTR(mxc4005_acpi_match), + }, + .probe = mxc4005_probe, + .remove = mxc4005_remove, + .id_table = mxc4005_id, +}; + +module_i2c_driver(mxc4005_driver); + +MODULE_AUTHOR("Teodora Baluta "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("MXC4005 3-axis accelerometer driver"); From 1ce0eda0f75747b3131a9047aee19291f59c18c9 Mon Sep 17 00:00:00 2001 From: Teodora Baluta Date: Thu, 20 Aug 2015 17:37:32 +0300 Subject: [PATCH 0048/2431] iio: mxc4005: add triggered buffer mode for mxc4005 This patch adds support for buffered readings for the 3-axis accelerometer mxc4005. Signed-off-by: Teodora Baluta Signed-off-by: Jonathan Cameron --- drivers/iio/accel/Kconfig | 2 + drivers/iio/accel/mxc4005.c | 79 +++++++++++++++++++++++++++++++++++-- 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index 69302bed2860..cd5cd246792d 100644 --- a/drivers/iio/accel/Kconfig +++ b/drivers/iio/accel/Kconfig @@ -140,6 +140,8 @@ config MMA9553 config MXC4005 tristate "Memsic MXC4005XC 3-Axis Accelerometer Driver" depends on I2C + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER select REGMAP_I2C help Say yes here to build support for the Memsic MXC4005XC 3-axis diff --git a/drivers/iio/accel/mxc4005.c b/drivers/iio/accel/mxc4005.c index e15c1bd26bd1..390eaf8cb2f8 100644 --- a/drivers/iio/accel/mxc4005.c +++ b/drivers/iio/accel/mxc4005.c @@ -19,6 +19,9 @@ #include #include #include +#include +#include +#include #define MXC4005_DRV_NAME "mxc4005" #define MXC4005_REGMAP_NAME "mxc4005_regmap" @@ -52,6 +55,7 @@ struct mxc4005_data { struct device *dev; struct mutex mutex; struct regmap *regmap; + __be16 buffer[8]; }; /* @@ -122,6 +126,20 @@ static const struct regmap_config mxc4005_regmap_config = { .writeable_reg = mxc4005_is_writeable_reg, }; +static int mxc4005_read_xyz(struct mxc4005_data *data) +{ + int ret; + + ret = regmap_bulk_read(data->regmap, MXC4005_REG_XOUT_UPPER, + (u8 *) data->buffer, sizeof(data->buffer)); + if (ret < 0) { + dev_err(data->dev, "failed to read axes\n"); + return ret; + } + + return 0; +} + static int mxc4005_read_axis(struct mxc4005_data *data, unsigned int addr) { @@ -197,7 +215,8 @@ static int mxc4005_read_raw(struct iio_dev *indio_dev, ret = mxc4005_read_axis(data, chan->address); if (ret < 0) return ret; - *val = sign_extend32(ret >> 4, 11); + *val = sign_extend32(ret >> chan->scan_type.shift, + chan->scan_type.realbits - 1); return IIO_VAL_INT; default: return -EINVAL; @@ -239,6 +258,11 @@ static const struct iio_info mxc4005_info = { .attrs = &mxc4005_attrs_group, }; +static const unsigned long mxc4005_scan_masks[] = { + BIT(AXIS_X) | BIT(AXIS_Y) | BIT(AXIS_Z), + 0 +}; + #define MXC4005_CHANNEL(_axis, _addr) { \ .type = IIO_ACCEL, \ .modified = 1, \ @@ -246,14 +270,43 @@ static const struct iio_info mxc4005_info = { .address = _addr, \ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ + .scan_index = AXIS_##_axis, \ + .scan_type = { \ + .sign = 's', \ + .realbits = 12, \ + .storagebits = 16, \ + .shift = 4, \ + .endianness = IIO_BE, \ + }, \ } static const struct iio_chan_spec mxc4005_channels[] = { MXC4005_CHANNEL(X, MXC4005_REG_XOUT_UPPER), MXC4005_CHANNEL(Y, MXC4005_REG_YOUT_UPPER), MXC4005_CHANNEL(Z, MXC4005_REG_ZOUT_UPPER), + IIO_CHAN_SOFT_TIMESTAMP(3), }; +static irqreturn_t mxc4005_trigger_handler(int irq, void *private) +{ + struct iio_poll_func *pf = private; + struct iio_dev *indio_dev = pf->indio_dev; + struct mxc4005_data *data = iio_priv(indio_dev); + int ret; + + ret = mxc4005_read_xyz(data); + if (ret < 0) + goto err; + + iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, + pf->timestamp); + +err: + iio_trigger_notify_done(indio_dev->trig); + + return IRQ_HANDLED; +} + static int mxc4005_chip_init(struct mxc4005_data *data) { int ret; @@ -304,23 +357,43 @@ static int mxc4005_probe(struct i2c_client *client, indio_dev->dev.parent = &client->dev; indio_dev->channels = mxc4005_channels; indio_dev->num_channels = ARRAY_SIZE(mxc4005_channels); + indio_dev->available_scan_masks = mxc4005_scan_masks; indio_dev->name = MXC4005_DRV_NAME; indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->info = &mxc4005_info; + ret = iio_triggered_buffer_setup(indio_dev, + &iio_pollfunc_store_time, + mxc4005_trigger_handler, + NULL); + if (ret < 0) { + dev_err(&client->dev, + "failed to setup iio triggered buffer\n"); + return ret; + } + ret = iio_device_register(indio_dev); if (ret < 0) { dev_err(&client->dev, "unable to register iio device %d\n", ret); - return ret; + goto err_buffer_cleanup; } return 0; + +err_buffer_cleanup: + iio_triggered_buffer_cleanup(indio_dev); + + return ret; } static int mxc4005_remove(struct i2c_client *client) { - iio_device_unregister(i2c_get_clientdata(client)); + struct iio_dev *indio_dev = i2c_get_clientdata(client); + + iio_device_unregister(indio_dev); + + iio_triggered_buffer_cleanup(indio_dev); return 0; } From 47196620c82f8d8cef0dc61b87b76f18278537dd Mon Sep 17 00:00:00 2001 From: Teodora Baluta Date: Thu, 20 Aug 2015 17:37:33 +0300 Subject: [PATCH 0049/2431] iio: mxc4005: add data ready trigger for mxc4005 Add iio trigger for the data ready interrupt that signals new measurements for the X, Y and Z axes. Signed-off-by: Teodora Baluta Signed-off-by: Jonathan Cameron --- drivers/iio/accel/mxc4005.c | 142 +++++++++++++++++++++++++++++++++++- 1 file changed, 141 insertions(+), 1 deletion(-) diff --git a/drivers/iio/accel/mxc4005.c b/drivers/iio/accel/mxc4005.c index 390eaf8cb2f8..e72e218c2696 100644 --- a/drivers/iio/accel/mxc4005.c +++ b/drivers/iio/accel/mxc4005.c @@ -17,13 +17,16 @@ #include #include #include +#include #include #include +#include #include #include #include #define MXC4005_DRV_NAME "mxc4005" +#define MXC4005_IRQ_NAME "mxc4005_event" #define MXC4005_REGMAP_NAME "mxc4005_regmap" #define MXC4005_REG_XOUT_UPPER 0x03 @@ -33,6 +36,12 @@ #define MXC4005_REG_ZOUT_UPPER 0x07 #define MXC4005_REG_ZOUT_LOWER 0x08 +#define MXC4005_REG_INT_MASK1 0x0B +#define MXC4005_REG_INT_MASK1_BIT_DRDYE 0x01 + +#define MXC4005_REG_INT_CLR1 0x01 +#define MXC4005_REG_INT_CLR1_BIT_DRDYC 0x01 + #define MXC4005_REG_CONTROL 0x0D #define MXC4005_REG_CONTROL_MASK_FSR GENMASK(6, 5) #define MXC4005_CONTROL_FSR_SHIFT 5 @@ -55,7 +64,9 @@ struct mxc4005_data { struct device *dev; struct mutex mutex; struct regmap *regmap; + struct iio_trigger *dready_trig; __be16 buffer[8]; + bool trigger_enabled; }; /* @@ -107,6 +118,8 @@ static bool mxc4005_is_readable_reg(struct device *dev, unsigned int reg) static bool mxc4005_is_writeable_reg(struct device *dev, unsigned int reg) { switch (reg) { + case MXC4005_REG_INT_CLR1: + case MXC4005_REG_INT_MASK1: case MXC4005_REG_CONTROL: return true; default: @@ -307,6 +320,91 @@ err: return IRQ_HANDLED; } +static int mxc4005_clr_intr(struct mxc4005_data *data) +{ + int ret; + + /* clear interrupt */ + ret = regmap_write(data->regmap, MXC4005_REG_INT_CLR1, + MXC4005_REG_INT_CLR1_BIT_DRDYC); + if (ret < 0) { + dev_err(data->dev, "failed to write to reg_int_clr1\n"); + return ret; + } + + return 0; +} + +static int mxc4005_set_trigger_state(struct iio_trigger *trig, + bool state) +{ + struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); + struct mxc4005_data *data = iio_priv(indio_dev); + int ret; + + mutex_lock(&data->mutex); + if (state) { + ret = regmap_write(data->regmap, MXC4005_REG_INT_MASK1, + MXC4005_REG_INT_MASK1_BIT_DRDYE); + } else { + ret = regmap_write(data->regmap, MXC4005_REG_INT_MASK1, + ~MXC4005_REG_INT_MASK1_BIT_DRDYE); + } + + if (ret < 0) { + mutex_unlock(&data->mutex); + dev_err(data->dev, "failed to update reg_int_mask1"); + return ret; + } + + data->trigger_enabled = state; + mutex_unlock(&data->mutex); + + return 0; +} + +static int mxc4005_trigger_try_reen(struct iio_trigger *trig) +{ + struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); + struct mxc4005_data *data = iio_priv(indio_dev); + + if (!data->dready_trig) + return 0; + + return mxc4005_clr_intr(data); +} + +static const struct iio_trigger_ops mxc4005_trigger_ops = { + .set_trigger_state = mxc4005_set_trigger_state, + .try_reenable = mxc4005_trigger_try_reen, + .owner = THIS_MODULE, +}; + +static int mxc4005_gpio_probe(struct i2c_client *client, + struct mxc4005_data *data) +{ + struct device *dev; + struct gpio_desc *gpio; + int ret; + + if (!client) + return -EINVAL; + + dev = &client->dev; + + gpio = devm_gpiod_get_index(dev, "mxc4005_int", 0, GPIOD_IN); + if (IS_ERR(gpio)) { + dev_err(dev, "failed to get acpi gpio index\n"); + return PTR_ERR(gpio); + } + + ret = gpiod_to_irq(gpio); + + dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); + + return ret; +} + static int mxc4005_chip_init(struct mxc4005_data *data) { int ret; @@ -363,7 +461,7 @@ static int mxc4005_probe(struct i2c_client *client, indio_dev->info = &mxc4005_info; ret = iio_triggered_buffer_setup(indio_dev, - &iio_pollfunc_store_time, + iio_pollfunc_store_time, mxc4005_trigger_handler, NULL); if (ret < 0) { @@ -372,6 +470,43 @@ static int mxc4005_probe(struct i2c_client *client, return ret; } + if (client->irq < 0) + client->irq = mxc4005_gpio_probe(client, data); + + if (client->irq > 0) { + data->dready_trig = devm_iio_trigger_alloc(&client->dev, + "%s-dev%d", + indio_dev->name, + indio_dev->id); + if (!data->dready_trig) + return -ENOMEM; + + ret = devm_request_threaded_irq(&client->dev, client->irq, + iio_trigger_generic_data_rdy_poll, + NULL, + IRQF_TRIGGER_FALLING | + IRQF_ONESHOT, + MXC4005_IRQ_NAME, + data->dready_trig); + if (ret) { + dev_err(&client->dev, + "failed to init threaded irq\n"); + goto err_buffer_cleanup; + } + + data->dready_trig->dev.parent = &client->dev; + data->dready_trig->ops = &mxc4005_trigger_ops; + iio_trigger_set_drvdata(data->dready_trig, indio_dev); + indio_dev->trig = data->dready_trig; + iio_trigger_get(indio_dev->trig); + ret = iio_trigger_register(data->dready_trig); + if (ret) { + dev_err(&client->dev, + "failed to register trigger\n"); + goto err_trigger_unregister; + } + } + ret = iio_device_register(indio_dev); if (ret < 0) { dev_err(&client->dev, @@ -381,6 +516,8 @@ static int mxc4005_probe(struct i2c_client *client, return 0; +err_trigger_unregister: + iio_trigger_unregister(data->dready_trig); err_buffer_cleanup: iio_triggered_buffer_cleanup(indio_dev); @@ -390,10 +527,13 @@ err_buffer_cleanup: static int mxc4005_remove(struct i2c_client *client) { struct iio_dev *indio_dev = i2c_get_clientdata(client); + struct mxc4005_data *data = iio_priv(indio_dev); iio_device_unregister(indio_dev); iio_triggered_buffer_cleanup(indio_dev); + if (data->dready_trig) + iio_trigger_unregister(data->dready_trig); return 0; } From 441fda8461c8c1c781c3604d9ddb32747c61657c Mon Sep 17 00:00:00 2001 From: Maxime Lorrillere Date: Mon, 17 Aug 2015 14:04:49 +0200 Subject: [PATCH 0050/2431] staging: lustre: simplify ptlrpc_deactivate_and_unlock_import The locking scheme used in ptlrpc_deactivate_and_unlock_import and ptlrpc_deactivate_import generates the followings sparse errors: drivers/staging/lustre/lustre/ptlrpc/import.c:209:9: warning: context imbalance in 'ptlrpc_deactivate_and_unlock_import' - unexpected unlock drivers/staging/lustre/lustre/ptlrpc/import.c:221:6: warning: context imbalance in 'ptlrpc_deactivate_import' - wrong count at exit As ptlrpc_deactivate_and_unlock_import is only used by ptlrpc_deactivate_import as a helper function, this patch moves its code into ptlrpc_deactivatre_import to fix the sparse warnings. Signed-off-by: Maxime Lorrillere Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/import.c | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 1eae3896c037..1fd85104bd9d 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -200,28 +200,21 @@ int ptlrpc_set_import_discon(struct obd_import *imp, __u32 conn_cnt) return rc; } -/* Must be called with imp_lock held! */ -static void ptlrpc_deactivate_and_unlock_import(struct obd_import *imp) -{ - assert_spin_locked(&imp->imp_lock); - - CDEBUG(D_HA, "setting import %s INVALID\n", obd2cli_tgt(imp->imp_obd)); - imp->imp_invalid = 1; - imp->imp_generation++; - spin_unlock(&imp->imp_lock); - - ptlrpc_abort_inflight(imp); - obd_import_event(imp->imp_obd, imp, IMP_EVENT_INACTIVE); -} - /* * This acts as a barrier; all existing requests are rejected, and * no new requests will be accepted until the import is valid again. */ void ptlrpc_deactivate_import(struct obd_import *imp) { + CDEBUG(D_HA, "setting import %s INVALID\n", obd2cli_tgt(imp->imp_obd)); + spin_lock(&imp->imp_lock); - ptlrpc_deactivate_and_unlock_import(imp); + imp->imp_invalid = 1; + imp->imp_generation++; + spin_unlock(&imp->imp_lock); + + ptlrpc_abort_inflight(imp); + obd_import_event(imp->imp_obd, imp, IMP_EVENT_INACTIVE); } EXPORT_SYMBOL(ptlrpc_deactivate_import); From 8369cfff7235d120397b96030beb33a72062f491 Mon Sep 17 00:00:00 2001 From: Anjali Menon Date: Tue, 18 Aug 2015 19:24:24 +0530 Subject: [PATCH 0051/2431] staging: lustre: lustre: llite: Added a space Added a space to fix the following coding style error detected by checkpatch error: ERROR: space required after that close brace '}' Signed-off-by: Anjali Menon Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index dcd0c6d65efb..166c3f199f83 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -270,7 +270,7 @@ static int ll_md_close(struct obd_export *md_exp, struct inode *inode, int lockmode; __u64 flags = LDLM_FL_BLOCK_GRANTED | LDLM_FL_TEST_LOCK; struct lustre_handle lockh; - ldlm_policy_data_t policy = {.l_inodebits = {MDS_INODELOCK_OPEN}}; + ldlm_policy_data_t policy = {.l_inodebits = {MDS_INODELOCK_OPEN} }; int rc = 0; /* clear group lock, if present */ @@ -2670,7 +2670,7 @@ ll_file_flock(struct file *file, int cmd, struct file_lock *file_lock) }; struct md_op_data *op_data; struct lustre_handle lockh = {0}; - ldlm_policy_data_t flock = {{0}}; + ldlm_policy_data_t flock = { {0} }; __u64 flags = 0; int rc; int rc2 = 0; From d0bed03524f3e1a4140d339cd69c88120052d3ea Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Mon, 24 Aug 2015 11:28:18 -0700 Subject: [PATCH 0052/2431] staging/lustre: fix block comment formatting Running checkpatch.pl on lnet/klnds/o2iblnd/o2iblnd.h produces several "Block comments use a trailing */ on a separate line" warnings. This patch fixes these. Signed-off-by: Jeff Becker Signed-off-by: Greg Kroah-Hartman --- .../lustre/lnet/klnds/o2iblnd/o2iblnd.h | 280 ++++++++---------- 1 file changed, 125 insertions(+), 155 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h index f4b6c33ac318..07e81cb4a12e 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h @@ -79,38 +79,33 @@ #define IBLND_N_SCHED_HIGH 4 typedef struct { - int *kib_dev_failover; /* HCA failover */ - unsigned int *kib_service; /* IB service number */ - int *kib_min_reconnect_interval; /* first failed connection - * retry... */ - int *kib_max_reconnect_interval; /* ...exponentially increasing - * to this */ - int *kib_cksum; /* checksum kib_msg_t? */ - int *kib_timeout; /* comms timeout (seconds) */ - int *kib_keepalive; /* keepalive timeout (seconds) */ - int *kib_ntx; /* # tx descs */ - int *kib_credits; /* # concurrent sends */ - int *kib_peertxcredits; /* # concurrent sends to 1 peer */ - int *kib_peerrtrcredits; /* # per-peer router buffer - * credits */ - int *kib_peercredits_hiw; /* # when eagerly to return - * credits */ - int *kib_peertimeout; /* seconds to consider peer dead */ - char **kib_default_ipif; /* default IPoIB interface */ - int *kib_retry_count; - int *kib_rnr_retry_count; - int *kib_concurrent_sends; /* send work queue sizing */ - int *kib_ib_mtu; /* IB MTU */ - int *kib_map_on_demand; /* map-on-demand if RD has more - * fragments than this value, 0 - * disable map-on-demand */ - int *kib_fmr_pool_size; /* # FMRs in pool */ - int *kib_fmr_flush_trigger; /* When to trigger FMR flush */ - int *kib_fmr_cache; /* enable FMR pool cache? */ - int *kib_require_priv_port; /* accept only privileged ports */ - int *kib_use_priv_port; /* use privileged port for active - * connect */ - int *kib_nscheds; /* # threads on each CPT */ + int *kib_dev_failover; /* HCA failover */ + unsigned int *kib_service; /* IB service number */ + int *kib_min_reconnect_interval; /* first failed connection retry... */ + int *kib_max_reconnect_interval; /* exponentially increasing to this */ + int *kib_cksum; /* checksum kib_msg_t? */ + int *kib_timeout; /* comms timeout (seconds) */ + int *kib_keepalive; /* keepalive timeout (seconds) */ + int *kib_ntx; /* # tx descs */ + int *kib_credits; /* # concurrent sends */ + int *kib_peertxcredits; /* # concurrent sends to 1 peer */ + int *kib_peerrtrcredits; /* # per-peer router buffer credits */ + int *kib_peercredits_hiw; /* # when eagerly to return credits */ + int *kib_peertimeout; /* seconds to consider peer dead */ + char **kib_default_ipif; /* default IPoIB interface */ + int *kib_retry_count; + int *kib_rnr_retry_count; + int *kib_concurrent_sends; /* send work queue sizing */ + int *kib_ib_mtu; /* IB MTU */ + int *kib_map_on_demand; /* map-on-demand if RD has more */ + /* fragments than this value, 0 */ + /* disable map-on-demand */ + int *kib_fmr_pool_size; /* # FMRs in pool */ + int *kib_fmr_flush_trigger; /* When to trigger FMR flush */ + int *kib_fmr_cache; /* enable FMR pool cache? */ + int *kib_require_priv_port; /* accept only privileged ports */ + int *kib_use_priv_port; /* use privileged port for active connect */ + int *kib_nscheds; /* # threads on each CPT */ } kib_tunables_t; extern kib_tunables_t kiblnd_tunables; @@ -199,8 +194,7 @@ typedef struct { unsigned long ibd_next_failover; int ibd_failed_failover; /* # failover failures */ unsigned int ibd_failover; /* failover in progress */ - unsigned int ibd_can_failover; /* IPoIB interface is a bonding - * master */ + unsigned int ibd_can_failover; /* IPoIB interface is a bonding master */ struct list_head ibd_nets; struct kib_hca_dev *ibd_hdev; } kib_dev_t; @@ -249,28 +243,26 @@ typedef struct kib_poolset { char ps_name[IBLND_POOL_NAME_LEN]; /* pool set name */ struct list_head ps_pool_list; /* list of pools */ struct list_head ps_failed_pool_list;/* failed pool list */ - unsigned long ps_next_retry; /* time stamp for retry if - * failed to allocate */ + unsigned long ps_next_retry; /* time stamp for retry if */ + /* failed to allocate */ int ps_increasing; /* is allocating new pool */ int ps_pool_size; /* new pool size */ int ps_cpt; /* CPT id */ kib_ps_pool_create_t ps_pool_create; /* create a new pool */ kib_ps_pool_destroy_t ps_pool_destroy; /* destroy a pool */ - kib_ps_node_init_t ps_node_init; /* initialize new allocated - * node */ + kib_ps_node_init_t ps_node_init; /* initialize new allocated node */ kib_ps_node_fini_t ps_node_fini; /* finalize node */ } kib_poolset_t; typedef struct kib_pool { - struct list_head po_list; /* chain on pool list */ - struct list_head po_free_list; /* pre-allocated node */ - kib_poolset_t *po_owner; /* pool_set of this pool */ - unsigned long po_deadline; /* deadline of this pool */ - int po_allocated; /* # of elements in use */ - int po_failed; /* pool is created on failed - * HCA */ - int po_size; /* # of pre-allocated elements */ + struct list_head po_list; /* chain on pool list */ + struct list_head po_free_list; /* pre-allocated node */ + kib_poolset_t *po_owner; /* pool_set of this pool */ + unsigned long po_deadline; /* deadline of this pool */ + int po_allocated; /* # of elements in use */ + int po_failed; /* pool is created on failed HCA */ + int po_size; /* # of pre-allocated elements */ } kib_pool_t; typedef struct { @@ -295,8 +287,8 @@ typedef struct { int fps_pool_size; int fps_flush_trigger; int fps_increasing; /* is allocating new pool */ - unsigned long fps_next_retry; /* time stamp for retry if - * failed to allocate */ + unsigned long fps_next_retry; /* time stamp for retry if*/ + /* failed to allocate */ } kib_fmr_poolset_t; typedef struct { @@ -344,31 +336,22 @@ struct kib_sched_info { }; typedef struct { - int kib_init; /* initialisation state */ - int kib_shutdown; /* shut down? */ - struct list_head kib_devs; /* IB devices extant */ - struct list_head kib_failed_devs; /* list head of failed - * devices */ - wait_queue_head_t kib_failover_waitq; /* schedulers sleep here */ - atomic_t kib_nthreads; /* # live threads */ - rwlock_t kib_global_lock; /* stabilize net/dev/peer/conn - * ops */ - struct list_head *kib_peers; /* hash table of all my known - * peers */ - int kib_peer_hash_size; /* size of kib_peers */ - void *kib_connd; /* the connd task - * (serialisation assertions) - */ - struct list_head kib_connd_conns; /* connections to - * setup/teardown */ - struct list_head kib_connd_zombies; /* connections with zero - * refcount */ - wait_queue_head_t kib_connd_waitq; /* connection daemon sleeps - * here */ - spinlock_t kib_connd_lock; /* serialise */ - struct ib_qp_attr kib_error_qpa; /* QP->ERROR */ - struct kib_sched_info **kib_scheds; /* percpt data for schedulers - */ + int kib_init; /* initialisation state */ + int kib_shutdown; /* shut down? */ + struct list_head kib_devs; /* IB devices extant */ + struct list_head kib_failed_devs; /* list head of failed devices */ + wait_queue_head_t kib_failover_waitq; /* schedulers sleep here */ + atomic_t kib_nthreads; /* # live threads */ + rwlock_t kib_global_lock; /* stabilize net/dev/peer/conn ops */ + struct list_head *kib_peers; /* hash table of all my known peers */ + int kib_peer_hash_size; /* size of kib_peers */ + void *kib_connd; /* the connd task (serialisation assertions) */ + struct list_head kib_connd_conns; /* connections to setup/teardown */ + struct list_head kib_connd_zombies; /* connections with zero refcount */ + wait_queue_head_t kib_connd_waitq; /* connection daemon sleeps here */ + spinlock_t kib_connd_lock; /* serialise */ + struct ib_qp_attr kib_error_qpa; /* QP->ERROR */ + struct kib_sched_info **kib_scheds; /* percpt data for schedulers */ } kib_data_t; #define IBLND_INIT_NOTHING 0 @@ -480,10 +463,10 @@ typedef struct { #define IBLND_REJECT_FATAL 3 /* Anything else */ #define IBLND_REJECT_CONN_UNCOMPAT 4 /* incompatible version peer */ #define IBLND_REJECT_CONN_STALE 5 /* stale peer */ -#define IBLND_REJECT_RDMA_FRAGS 6 /* Fatal: peer's rdma frags can't match - * mine */ -#define IBLND_REJECT_MSG_QUEUE_SIZE 7 /* Fatal: peer's msg queue size can't - * match mine */ +#define IBLND_REJECT_RDMA_FRAGS 6 /* Fatal: peer's rdma frags can't match */ + /* mine */ +#define IBLND_REJECT_MSG_QUEUE_SIZE 7 /* Fatal: peer's msg queue size can't */ + /* match mine */ /***********************************************************************/ @@ -491,8 +474,7 @@ typedef struct kib_rx /* receive message */ { struct list_head rx_list; /* queue for attention */ struct kib_conn *rx_conn; /* owning conn */ - int rx_nob; /* # bytes received (-1 while - * posted) */ + int rx_nob; /* # bytes received (-1 while posted) */ enum ib_wc_status rx_status; /* completion status */ kib_msg_t *rx_msg; /* message buffer (host vaddr) */ __u64 rx_msgaddr; /* message buffer (I/O addr) */ @@ -501,38 +483,35 @@ typedef struct kib_rx /* receive message */ struct ib_sge rx_sge; /* ...and its memory */ } kib_rx_t; -#define IBLND_POSTRX_DONT_POST 0 /* don't post */ -#define IBLND_POSTRX_NO_CREDIT 1 /* post: no credits */ -#define IBLND_POSTRX_PEER_CREDIT 2 /* post: give peer back 1 credit */ -#define IBLND_POSTRX_RSRVD_CREDIT 3 /* post: give myself back 1 reserved - * credit */ +#define IBLND_POSTRX_DONT_POST 0 /* don't post */ +#define IBLND_POSTRX_NO_CREDIT 1 /* post: no credits */ +#define IBLND_POSTRX_PEER_CREDIT 2 /* post: give peer back 1 credit */ +#define IBLND_POSTRX_RSRVD_CREDIT 3 /* post: give self back 1 reserved credit */ typedef struct kib_tx /* transmit message */ { - struct list_head tx_list; /* queue on idle_txs ibc_tx_queue - * etc. */ - kib_tx_pool_t *tx_pool; /* pool I'm from */ - struct kib_conn *tx_conn; /* owning conn */ - short tx_sending; /* # tx callbacks outstanding */ - short tx_queued; /* queued for sending */ - short tx_waiting; /* waiting for peer */ - int tx_status; /* LNET completion status */ - unsigned long tx_deadline; /* completion deadline */ - __u64 tx_cookie; /* completion cookie */ - lnet_msg_t *tx_lntmsg[2]; /* lnet msgs to finalize on - * completion */ - kib_msg_t *tx_msg; /* message buffer (host vaddr) */ - __u64 tx_msgaddr; /* message buffer (I/O addr) */ + struct list_head tx_list; /* queue on idle_txs ibc_tx_queue etc. */ + kib_tx_pool_t *tx_pool; /* pool I'm from */ + struct kib_conn *tx_conn; /* owning conn */ + short tx_sending; /* # tx callbacks outstanding */ + short tx_queued; /* queued for sending */ + short tx_waiting; /* waiting for peer */ + int tx_status; /* LNET completion status */ + unsigned long tx_deadline; /* completion deadline */ + __u64 tx_cookie; /* completion cookie */ + lnet_msg_t *tx_lntmsg[2]; /* lnet msgs to finalize on completion */ + kib_msg_t *tx_msg; /* message buffer (host vaddr) */ + __u64 tx_msgaddr; /* message buffer (I/O addr) */ DECLARE_PCI_UNMAP_ADDR(tx_msgunmap); /* for dma_unmap_single() */ - int tx_nwrq; /* # send work items */ - struct ib_send_wr *tx_wrq; /* send work items... */ - struct ib_sge *tx_sge; /* ...and their memory */ - kib_rdma_desc_t *tx_rd; /* rdma descriptor */ - int tx_nfrags; /* # entries in... */ - struct scatterlist *tx_frags; /* dma_map_sg descriptor */ - __u64 *tx_pages; /* rdma phys page addrs */ - kib_fmr_t fmr; /* FMR */ - int tx_dmadir; /* dma direction */ + int tx_nwrq; /* # send work items */ + struct ib_send_wr *tx_wrq; /* send work items... */ + struct ib_sge *tx_sge; /* ...and their memory */ + kib_rdma_desc_t *tx_rd; /* rdma descriptor */ + int tx_nfrags; /* # entries in... */ + struct scatterlist *tx_frags; /* dma_map_sg descriptor */ + __u64 *tx_pages; /* rdma phys page addrs */ + kib_fmr_t fmr; /* FMR */ + int tx_dmadir; /* dma direction */ } kib_tx_t; typedef struct kib_connvars { @@ -540,53 +519,44 @@ typedef struct kib_connvars { } kib_connvars_t; typedef struct kib_conn { - struct kib_sched_info *ibc_sched; /* scheduler information */ - struct kib_peer *ibc_peer; /* owning peer */ - kib_hca_dev_t *ibc_hdev; /* HCA bound on */ - struct list_head ibc_list; /* stash on peer's conn - * list */ - struct list_head ibc_sched_list; /* schedule for attention */ - __u16 ibc_version; /* version of connection */ - __u64 ibc_incarnation; /* which instance of the - * peer */ - atomic_t ibc_refcount; /* # users */ - int ibc_state; /* what's happening */ - int ibc_nsends_posted; /* # uncompleted sends */ - int ibc_noops_posted; /* # uncompleted NOOPs */ - int ibc_credits; /* # credits I have */ + struct kib_sched_info *ibc_sched; /* scheduler information */ + struct kib_peer *ibc_peer; /* owning peer */ + kib_hca_dev_t *ibc_hdev; /* HCA bound on */ + struct list_head ibc_list; /* stash on peer's conn list */ + struct list_head ibc_sched_list; /* schedule for attention */ + __u16 ibc_version; /* version of connection */ + __u64 ibc_incarnation; /* which instance of the peer */ + atomic_t ibc_refcount; /* # users */ + int ibc_state; /* what's happening */ + int ibc_nsends_posted; /* # uncompleted sends */ + int ibc_noops_posted; /* # uncompleted NOOPs */ + int ibc_credits; /* # credits I have */ int ibc_outstanding_credits; /* # credits to return */ int ibc_reserved_credits; /* # ACK/DONE msg credits */ - int ibc_comms_error; /* set on comms error */ - unsigned int ibc_nrx:16; /* receive buffers owned */ - unsigned int ibc_scheduled:1; /* scheduled for attention - */ - unsigned int ibc_ready:1; /* CQ callback fired */ - unsigned long ibc_last_send; /* time of last send */ - struct list_head ibc_connd_list; /* link chain for - * kiblnd_check_conns only - */ - struct list_head ibc_early_rxs; /* rxs completed before - * ESTABLISHED */ - struct list_head ibc_tx_noops; /* IBLND_MSG_NOOPs for - * IBLND_MSG_VERSION_1 */ - struct list_head ibc_tx_queue; /* sends that need a credit - */ - struct list_head ibc_tx_queue_nocred; /* sends that don't need a - * credit */ - struct list_head ibc_tx_queue_rsrvd; /* sends that need to - * reserve an ACK/DONE msg - */ - struct list_head ibc_active_txs; /* active tx awaiting - * completion */ - spinlock_t ibc_lock; /* serialise */ - kib_rx_t *ibc_rxs; /* the rx descs */ - kib_pages_t *ibc_rx_pages; /* premapped rx msg pages */ + int ibc_comms_error; /* set on comms error */ + unsigned int ibc_nrx:16; /* receive buffers owned */ + unsigned int ibc_scheduled:1; /* scheduled for attention */ + unsigned int ibc_ready:1; /* CQ callback fired */ + unsigned long ibc_last_send; /* time of last send */ + struct list_head ibc_connd_list; /* link chain for */ + /* kiblnd_check_conns only */ + struct list_head ibc_early_rxs; /* rxs completed before ESTABLISHED */ + struct list_head ibc_tx_noops; /* IBLND_MSG_NOOPs for */ + /* IBLND_MSG_VERSION_1 */ + struct list_head ibc_tx_queue; /* sends that need a credit */ + struct list_head ibc_tx_queue_nocred; /* sends that don't need a */ + /* credit */ + struct list_head ibc_tx_queue_rsrvd; /* sends that need to */ + /* reserve an ACK/DONE msg */ + struct list_head ibc_active_txs; /* active tx awaiting completion */ + spinlock_t ibc_lock; /* serialise */ + kib_rx_t *ibc_rxs; /* the rx descs */ + kib_pages_t *ibc_rx_pages; /* premapped rx msg pages */ - struct rdma_cm_id *ibc_cmid; /* CM id */ - struct ib_cq *ibc_cq; /* completion queue */ + struct rdma_cm_id *ibc_cmid; /* CM id */ + struct ib_cq *ibc_cq; /* completion queue */ - kib_connvars_t *ibc_connvars; /* in-progress connection - * state */ + kib_connvars_t *ibc_connvars; /* in-progress connection state */ } kib_conn_t; #define IBLND_CONN_INIT 0 /* being initialised */ @@ -780,8 +750,8 @@ kiblnd_queue2str(kib_conn_t *conn, struct list_head *q) return NULL; } -/* CAVEAT EMPTOR: We rely on descriptor alignment to allow us to use the - * lowest bits of the work request id to stash the work item type. */ +/* CAVEAT EMPTOR: We rely on descriptor alignment to allow us to use the */ +/* lowest bits of the work request id to stash the work item type. */ #define IBLND_WID_TX 0 #define IBLND_WID_RDMA 1 @@ -928,9 +898,9 @@ static inline unsigned int kiblnd_sg_dma_len(struct ib_device *dev, return ib_sg_dma_len(dev, sg); } -/* XXX We use KIBLND_CONN_PARAM(e) as writable buffer, it's not strictly - * right because OFED1.2 defines it as const, to use it we have to add - * (void *) cast to overcome "const" */ +/* XXX We use KIBLND_CONN_PARAM(e) as writable buffer, it's not strictly */ +/* right because OFED1.2 defines it as const, to use it we have to add */ +/* (void *) cast to overcome "const" */ #define KIBLND_CONN_PARAM(e) ((e)->param.conn.private_data) #define KIBLND_CONN_PARAM_LEN(e) ((e)->param.conn.private_data_len) From b1ff890126909bfaeb8b5be5af08cb525cd85cfe Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 22 Aug 2015 17:17:20 +0300 Subject: [PATCH 0053/2431] staging: lustre: fix CODE_INDENT checkpatch.pl errors Fix occurencies of the following checkpatch.pl error: ERROR: code indent should use tabs where possible Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 2 +- drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index 0d5aac6a2bb3..ffdc06cbd18e 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c @@ -626,7 +626,7 @@ ksocknal_find_conn_locked(ksock_peer_t *peer, ksock_tx_t *tx, int nonblk) list_for_each (tmp, &peer->ksnp_conns) { ksock_conn_t *c = list_entry(tmp, ksock_conn_t, ksnc_list); int nob = atomic_read(&c->ksnc_tx_nob) + - c->ksnc_sock->sk->sk_wmem_queued; + c->ksnc_sock->sk->sk_wmem_queued; int rc; LASSERT(!c->ksnc_closing); diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib.c index 340706110c21..679785b0209c 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib.c @@ -355,9 +355,9 @@ ksocknal_lib_recv_kiov(ksock_conn_t *conn) LASSERT(i < niov); /* Dang! have to kmap again because I have nowhere to - * stash the mapped address. But by doing it while the - * page is still mapped, the kernel just bumps the map - * count and returns me the address it stashed. */ + * stash the mapped address. But by doing it while the + * page is still mapped, the kernel just bumps the map + * count and returns me the address it stashed. */ base = kmap(kiov[i].kiov_page) + kiov[i].kiov_offset; fragnob = kiov[i].kiov_len; if (fragnob > sum) From ea28d21ac51ae955834ac71e66587e2005de9215 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 22 Aug 2015 17:17:21 +0300 Subject: [PATCH 0054/2431] staging: lustre: fix GLOBAL_INITIALISERS checkpatch.pl errors Fix occurencies of the following checkpatch.pl error: ERROR: do not initialise globals to 0 or NULL Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 4 ++-- drivers/staging/lustre/lustre/libcfs/fail.c | 4 ++-- drivers/staging/lustre/lustre/obdclass/capa.c | 2 +- drivers/staging/lustre/lustre/obdclass/class_obd.c | 8 ++++---- drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c | 2 +- drivers/staging/lustre/lustre/obdclass/lu_object.c | 4 ++-- drivers/staging/lustre/lustre/obdclass/obd_config.c | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index 4bb3173bcd5f..cc212b97abaa 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -47,8 +47,8 @@ struct kmem_cache *ldlm_resource_slab, *ldlm_lock_slab; -int ldlm_srv_namespace_nr = 0; -int ldlm_cli_namespace_nr = 0; +int ldlm_srv_namespace_nr; +int ldlm_cli_namespace_nr; struct mutex ldlm_srv_namespace_lock; LIST_HEAD(ldlm_srv_namespace_list); diff --git a/drivers/staging/lustre/lustre/libcfs/fail.c b/drivers/staging/lustre/lustre/libcfs/fail.c index 42d615fbd664..d39fecebd12d 100644 --- a/drivers/staging/lustre/lustre/libcfs/fail.c +++ b/drivers/staging/lustre/lustre/libcfs/fail.c @@ -35,10 +35,10 @@ #include "../../include/linux/libcfs/libcfs.h" -unsigned long cfs_fail_loc = 0; +unsigned long cfs_fail_loc; EXPORT_SYMBOL(cfs_fail_loc); -unsigned int cfs_fail_val = 0; +unsigned int cfs_fail_val; EXPORT_SYMBOL(cfs_fail_val); DECLARE_WAIT_QUEUE_HEAD(cfs_race_waitq); diff --git a/drivers/staging/lustre/lustre/obdclass/capa.c b/drivers/staging/lustre/lustre/obdclass/capa.c index d8d1a66ad68e..99af0176f413 100644 --- a/drivers/staging/lustre/lustre/obdclass/capa.c +++ b/drivers/staging/lustre/lustre/obdclass/capa.c @@ -58,7 +58,7 @@ #define NR_CAPAHASH 32 #define CAPA_HASH_SIZE 3000 /* for MDS & OSS */ -struct kmem_cache *capa_cachep = NULL; +struct kmem_cache *capa_cachep; /* lock for capa hash/capa_list/fo_capa_keys */ DEFINE_SPINLOCK(capa_lock); diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index 2c705d76211f..20a7cd9fb4f1 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -53,9 +53,9 @@ EXPORT_SYMBOL(obd_devs); struct list_head obd_types; DEFINE_RWLOCK(obd_dev_lock); -__u64 obd_max_pages = 0; +__u64 obd_max_pages; EXPORT_SYMBOL(obd_max_pages); -__u64 obd_max_alloc = 0; +__u64 obd_max_alloc; EXPORT_SYMBOL(obd_max_alloc); __u64 obd_alloc; EXPORT_SYMBOL(obd_alloc); @@ -64,7 +64,7 @@ EXPORT_SYMBOL(obd_pages); static DEFINE_SPINLOCK(obd_updatemax_lock); /* The following are visible and mutable through /proc/sys/lustre/. */ -unsigned int obd_alloc_fail_rate = 0; +unsigned int obd_alloc_fail_rate; EXPORT_SYMBOL(obd_alloc_fail_rate); unsigned int obd_debug_peer_on_timeout; EXPORT_SYMBOL(obd_debug_peer_on_timeout); @@ -81,7 +81,7 @@ EXPORT_SYMBOL(obd_timeout); unsigned int obd_timeout_set; EXPORT_SYMBOL(obd_timeout_set); /* Adaptive timeout defs here instead of ptlrpc module for /proc/sys/ access */ -unsigned int at_min = 0; +unsigned int at_min; EXPORT_SYMBOL(at_min); unsigned int at_max = 600; EXPORT_SYMBOL(at_max); diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c index c49dfe541925..1f0004c5554b 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c @@ -41,7 +41,7 @@ #include "../include/lprocfs_status.h" #include "../include/obd_support.h" -struct lprocfs_stats *obd_memory = NULL; +struct lprocfs_stats *obd_memory; EXPORT_SYMBOL(obd_memory); void lprocfs_counter_add(struct lprocfs_stats *stats, int idx, long amount) diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 8e472327c880..55d4523b56ee 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -1689,8 +1689,8 @@ EXPORT_SYMBOL(lu_context_refill); * predefined when the lu_device type are registered, during the module probe * phase. */ -__u32 lu_context_tags_default = 0; -__u32 lu_session_tags_default = 0; +__u32 lu_context_tags_default; +__u32 lu_session_tags_default; void lu_context_tags_update(__u32 tags) { diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 93805ac93c5a..7b2b4c84208d 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -931,8 +931,8 @@ static int class_set_global(char *ptr, int val, struct lustre_cfg *lcfg) /* We can't call ll_process_config or lquota_process_config directly because * it lives in a module that must be loaded after this one. */ -static int (*client_process_config)(struct lustre_cfg *lcfg) = NULL; -static int (*quota_process_config)(struct lustre_cfg *lcfg) = NULL; +static int (*client_process_config)(struct lustre_cfg *lcfg); +static int (*quota_process_config)(struct lustre_cfg *lcfg); void lustre_register_client_process_config(int (*cpc)(struct lustre_cfg *lcfg)) { From 60753e90ffa7e213539fa937b110c7e91297be04 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 22 Aug 2015 17:17:23 +0300 Subject: [PATCH 0055/2431] staging: lustre: fix OPEN_BRACE checkpatch.pl errors Fix occurencies of the following checkpatch.pl error: ERROR: open brace '{' following function declarations go on the next line Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lprocfs_status.h | 3 ++- drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 3 ++- drivers/staging/lustre/lustre/obdclass/cl_object.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index fd3c4df319c2..213666b03f7c 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -206,7 +206,8 @@ struct lprocfs_stats { #define OPC_RANGE(seg) (seg ## _LAST_OPC - seg ## _FIRST_OPC) /* Pack all opcodes down into a single monotonically increasing index */ -static inline int opcode_offset(__u32 opc) { +static inline int opcode_offset(__u32 opc) +{ if (opc < OST_LAST_OPC) { /* OST opcode */ return (opc - OST_FIRST_OPC); diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index 9b1bb23c4d3c..144afbed4d65 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -658,7 +658,8 @@ enum changelog_rec_type { CL_LAST }; -static inline const char *changelog_type2str(int type) { +static inline const char *changelog_type2str(int type) +{ static const char *changelog_str[] = { "MARK", "CREAT", "MKDIR", "HLINK", "SLINK", "MKNOD", "UNLNK", "RMDIR", "RENME", "RNMTO", "OPEN", "CLOSE", "LYOUT", "TRUNC", diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index 163fe0cd7f9a..c1a9b819e95a 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -653,7 +653,8 @@ static inline void cl_env_do_detach(struct cl_env *cle) cle->ce_owner = NULL; } -static int cl_env_store_init(void) { +static int cl_env_store_init(void) +{ cl_env_hash = cfs_hash_create("cl_env", HASH_CL_ENV_BITS, HASH_CL_ENV_BITS, HASH_CL_ENV_BKT_BITS, 0, From 625a31217eb2cca358d7a3d6976bca402beaa7a5 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:05 +0200 Subject: [PATCH 0056/2431] staging: lustre: include: put constant on the right of binary operator Move constants to the right of binary operators. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ constant c; expression e; binary operator b = {==,!=,&,|}; @@ ( - c + e b - e + c | - c < e + e > c ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/include/linux/lnet/types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/include/linux/lnet/types.h b/drivers/staging/lustre/include/linux/lnet/types.h index 940f73f266d1..11630180c5e7 100644 --- a/drivers/staging/lustre/include/linux/lnet/types.h +++ b/drivers/staging/lustre/include/linux/lnet/types.h @@ -303,7 +303,7 @@ static inline int LNetHandleIsEqual(lnet_handle_any_t h1, lnet_handle_any_t h2) */ static inline int LNetHandleIsInvalid(lnet_handle_any_t h) { - return LNET_WIRE_HANDLE_COOKIE_NONE == h.cookie; + return h.cookie == LNET_WIRE_HANDLE_COOKIE_NONE; } /** From 5019c8f017495cd8da21df7a49a5ed41377965e6 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:06 +0200 Subject: [PATCH 0057/2431] staging: lustre: lnet: lib-ptl.c: put constant on the right of binary operator Move constants to the right of binary operators. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ constant c; expression e; binary operator b = {==,!=,&,|}; @@ ( - c + e b - e + c | - c < e + e > c ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/lib-ptl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/lib-ptl.c b/drivers/staging/lustre/lnet/lnet/lib-ptl.c index 84707c5cb464..b4f573ab62cc 100644 --- a/drivers/staging/lustre/lnet/lnet/lib-ptl.c +++ b/drivers/staging/lustre/lnet/lnet/lib-ptl.c @@ -420,9 +420,9 @@ lnet_mt_match_md(struct lnet_match_table *mtable, if (info->mi_opc == LNET_MD_OP_GET || !lnet_ptl_is_lazy(the_lnet.ln_portals[info->mi_portal])) - return LNET_MATCHMD_DROP | exhausted; + return exhausted | LNET_MATCHMD_DROP; - return LNET_MATCHMD_NONE | exhausted; + return exhausted | LNET_MATCHMD_NONE; } static int From a75e7ac6492aabb5fa9bb659657766b7b40c3b18 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:07 +0200 Subject: [PATCH 0058/2431] staging: lustre: ldlm: put constant on the right of binary operator Move constants to the right of binary operators. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ constant c; expression e; binary operator b = {==,!=,&,|}; @@ ( - c + e b - e + c | - c < e + e > c ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ldlm/ldlm_flock.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index a4c252febfe4..ab670fcf852d 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c @@ -602,7 +602,7 @@ ldlm_flock_completion_ast(struct ldlm_lock *lock, __u64 flags, void *data) (LDLM_FL_FAILED|LDLM_FL_LOCAL_ONLY)) { if (lock->l_req_mode == lock->l_granted_mode && lock->l_granted_mode != LCK_NL && - NULL == data) + data == NULL) ldlm_lock_decref_internal(lock, lock->l_req_mode); /* Need to wake up the waiter if we were evicted */ @@ -614,7 +614,7 @@ ldlm_flock_completion_ast(struct ldlm_lock *lock, __u64 flags, void *data) if (!(flags & (LDLM_FL_BLOCK_WAIT | LDLM_FL_BLOCK_GRANTED | LDLM_FL_BLOCK_CONV))) { - if (NULL == data) + if (data == NULL) /* mds granted the lock in the reply */ goto granted; /* CP AST RPC: lock get granted, wake it up */ @@ -627,10 +627,10 @@ ldlm_flock_completion_ast(struct ldlm_lock *lock, __u64 flags, void *data) obd = class_exp2obd(lock->l_conn_export); /* if this is a local lock, there is no import */ - if (NULL != obd) + if (obd != NULL) imp = obd->u.cli.cl_import; - if (NULL != imp) { + if (imp != NULL) { spin_lock(&imp->imp_lock); fwd.fwd_generation = imp->imp_generation; spin_unlock(&imp->imp_lock); From 3cfc537aea3fe442f31d16fd641bf8bff56c6acd Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:08 +0200 Subject: [PATCH 0059/2431] staging: lustre: libcfs: put constant on the right of binary operator Move constants to the right of binary operators. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ constant c; expression e; binary operator b = {==,!=,&,|}; @@ ( - c + e b - e + c | - c < e + e > c ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/libcfs/hash.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/hash.c b/drivers/staging/lustre/lustre/libcfs/hash.c index 0ed063145230..08f0b48c97e4 100644 --- a/drivers/staging/lustre/lustre/libcfs/hash.c +++ b/drivers/staging/lustre/lustre/libcfs/hash.c @@ -677,8 +677,8 @@ cfs_hash_bd_findadd_locked(struct cfs_hash *hs, struct cfs_hash_bd *bd, int noref) { return cfs_hash_bd_lookup_intent(hs, bd, key, hnode, - CFS_HS_LOOKUP_IT_ADD | - (!noref * CFS_HS_LOOKUP_MASK_REF)); + (!noref * CFS_HS_LOOKUP_MASK_REF) | + CFS_HS_LOOKUP_IT_ADD); } EXPORT_SYMBOL(cfs_hash_bd_findadd_locked); @@ -756,7 +756,7 @@ cfs_hash_multi_bd_findadd_locked(struct cfs_hash *hs, unsigned i; LASSERT(hnode != NULL); - intent = CFS_HS_LOOKUP_IT_PEEK | (!noref * CFS_HS_LOOKUP_MASK_REF); + intent = (!noref * CFS_HS_LOOKUP_MASK_REF) | CFS_HS_LOOKUP_IT_PEEK; cfs_hash_for_each_bd(bds, n, i) { ehnode = cfs_hash_bd_lookup_intent(hs, &bds[i], key, From 1f6eaf830b3c4f77a5b18414f1d564c1d3301f6e Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:09 +0200 Subject: [PATCH 0060/2431] staging: lustre: llite: put constant on the right of binary operator Move constants to the right of binary operators. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ constant c; expression e; binary operator b = {==,!=,&,|}; @@ ( - c + e b - e + c | - c < e + e > c ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/dir.c | 10 +++++----- drivers/staging/lustre/lustre/llite/file.c | 10 +++++----- drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c index 769b61193d87..d407fcc9904d 100644 --- a/drivers/staging/lustre/lustre/llite/dir.c +++ b/drivers/staging/lustre/lustre/llite/dir.c @@ -660,7 +660,7 @@ static int ll_dir_setdirstripe(struct inode *dir, struct lmv_user_md *lump, int mode; int err; - mode = (0755 & ~current_umask()) | S_IFDIR; + mode = (~current_umask() & 0755) | S_IFDIR; op_data = ll_prep_md_op_data(NULL, dir, NULL, filename, strlen(filename), mode, LUSTRE_OPC_MKDIR, lump); @@ -838,11 +838,11 @@ int ll_dir_getstripe(struct inode *inode, struct lov_mds_md **lmmp, /* We don't swab objects for directories */ switch (le32_to_cpu(lmm->lmm_magic)) { case LOV_MAGIC_V1: - if (LOV_MAGIC != cpu_to_le32(LOV_MAGIC)) + if (cpu_to_le32(LOV_MAGIC) != LOV_MAGIC) lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lmm); break; case LOV_MAGIC_V3: - if (LOV_MAGIC != cpu_to_le32(LOV_MAGIC)) + if (cpu_to_le32(LOV_MAGIC) != LOV_MAGIC) lustre_swab_lov_user_md_v3((struct lov_user_md_v3 *)lmm); break; default: @@ -1554,7 +1554,7 @@ out_req: switch (lmm->lmm_magic) { case LOV_USER_MAGIC_V1: - if (LOV_USER_MAGIC_V1 == cpu_to_le32(LOV_USER_MAGIC_V1)) + if (cpu_to_le32(LOV_USER_MAGIC_V1) == LOV_USER_MAGIC_V1) break; /* swab objects first so that stripes num will be sane */ lustre_swab_lov_user_md_objects( @@ -1563,7 +1563,7 @@ out_req: lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lmm); break; case LOV_USER_MAGIC_V3: - if (LOV_USER_MAGIC_V3 == cpu_to_le32(LOV_USER_MAGIC_V3)) + if (cpu_to_le32(LOV_USER_MAGIC_V3) == LOV_USER_MAGIC_V3) break; /* swab objects first so that stripes num will be sane */ lustre_swab_lov_user_md_objects( diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index 166c3f199f83..e332326011d1 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -94,7 +94,7 @@ void ll_pack_inode2opdata(struct inode *inode, struct md_op_data *op_data, op_data->op_handle = *fh; op_data->op_capa1 = ll_mdscapa_get(inode); - if (LLIF_DATA_MODIFIED & ll_i2info(inode)->lli_flags) + if (ll_i2info(inode)->lli_flags & LLIF_DATA_MODIFIED) op_data->op_bias |= MDS_DATA_MODIFIED; } @@ -1433,7 +1433,7 @@ int ll_lov_getstripe_ea_info(struct inode *inode, const char *filename, * little endian. We convert it to host endian before * passing it to userspace. */ - if (LOV_MAGIC != cpu_to_le32(LOV_MAGIC)) { + if (cpu_to_le32(LOV_MAGIC) != LOV_MAGIC) { int stripe_count; stripe_count = le16_to_cpu(lmm->lmm_stripe_count); @@ -2494,8 +2494,8 @@ ll_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg) default: { int err; - if (LLIOC_STOP == - ll_iocontrol_call(inode, file, cmd, arg, &err)) + if (ll_iocontrol_call(inode, file, cmd, arg, &err) == + LLIOC_STOP) return err; return obd_iocontrol(cmd, ll_i2dtexp(inode), 0, NULL, @@ -2850,7 +2850,7 @@ ldlm_mode_t ll_take_md_lock(struct inode *inode, __u64 bits, fid = &ll_i2info(inode)->lli_fid; CDEBUG(D_INFO, "trying to match res "DFID"\n", PFID(fid)); - rc = md_lock_match(ll_i2mdexp(inode), LDLM_FL_BLOCK_GRANTED|flags, + rc = md_lock_match(ll_i2mdexp(inode), flags | LDLM_FL_BLOCK_GRANTED, fid, LDLM_IBITS, &policy, mode, lockh); return rc; diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index b4ed6c89af3d..fcad241a1537 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -2201,7 +2201,7 @@ struct md_op_data *ll_prep_md_op_data(struct md_op_data *op_data, } /* When called by ll_setattr_raw, file is i1. */ - if (LLIF_DATA_MODIFIED & ll_i2info(i1)->lli_flags) + if (ll_i2info(i1)->lli_flags & LLIF_DATA_MODIFIED) op_data->op_bias |= MDS_DATA_MODIFIED; return op_data; From 9c5d9fa05508e3e03b6d17641588819bafb55dad Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:10 +0200 Subject: [PATCH 0061/2431] Staging: lustre: obd: put constant on the right of binary operator Move constants to the right of binary operators. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ constant c; expression e; binary operator b = {==,!=,&,|}; @@ ( - c + e b - e + c | - c < e + e > c ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/cl_object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index c1a9b819e95a..8f17d7c4f28e 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -694,10 +694,10 @@ static struct lu_env *cl_env_new(__u32 ctx_tags, __u32 ses_tags, void *debug) INIT_LIST_HEAD(&cle->ce_linkage); cle->ce_magic = &cl_env_init0; env = &cle->ce_lu; - rc = lu_env_init(env, LCT_CL_THREAD|ctx_tags); + rc = lu_env_init(env, ctx_tags | LCT_CL_THREAD); if (rc == 0) { rc = lu_context_init(&cle->ce_ses, - LCT_SESSION | ses_tags); + ses_tags | LCT_SESSION); if (rc == 0) { lu_context_enter(&cle->ce_ses); env->le_ses = &cle->ce_ses; From 40daf5ce553ae214ba5bf56af1550258e2e57ff4 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:11 +0200 Subject: [PATCH 0062/2431] staging: lustre: osc: put constant on the right of binary operator Move constants to the right of binary operators. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ constant c; expression e; binary operator b = {==,!=,&,|}; @@ ( - c + e b - e + c | - c < e + e > c ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/osc_page.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/osc/osc_page.c b/drivers/staging/lustre/lustre/osc/osc_page.c index f9cf5cea643d..856d859c385e 100644 --- a/drivers/staging/lustre/lustre/osc/osc_page.c +++ b/drivers/staging/lustre/lustre/osc/osc_page.c @@ -553,7 +553,7 @@ void osc_page_submit(const struct lu_env *env, struct osc_page *opg, oap->oap_cmd = crt == CRT_WRITE ? OBD_BRW_WRITE : OBD_BRW_READ; oap->oap_page_off = opg->ops_from; oap->oap_count = opg->ops_to - opg->ops_from; - oap->oap_brw_flags = OBD_BRW_SYNC | brw_flags; + oap->oap_brw_flags = brw_flags | OBD_BRW_SYNC; if (!client_is_remote(osc_export(obj)) && capable(CFS_CAP_SYS_RESOURCE)) { From 2b241d31a4b3129e10d35763f8cfdc84d9e46936 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:12 +0200 Subject: [PATCH 0063/2431] staging: lustre: put constant on the right of binary operator Move constants to the right of binary operators. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ constant c; expression e; binary operator b = {==,!=,&,|}; @@ ( - c + e b - e + c | - c < e + e > c ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/client.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 10 +++++----- drivers/staging/lustre/lustre/ptlrpc/pack_generic.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index c83a34a01e65..865c8a2dd1c9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -2954,7 +2954,7 @@ void ptlrpc_init_xid(void) } /* Always need to be aligned to a power-of-two for multi-bulk BRW */ - CLASSERT((PTLRPC_BULK_OPS_COUNT & (PTLRPC_BULK_OPS_COUNT - 1)) == 0); + CLASSERT(((PTLRPC_BULK_OPS_COUNT - 1) & PTLRPC_BULK_OPS_COUNT) == 0); ptlrpc_last_xid &= PTLRPC_BULK_OPS_MASK; } diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 1fd85104bd9d..f5b324539a07 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -899,7 +899,7 @@ static int ptlrpc_connect_interpret(const struct lu_env *env, } /* Determine what recovery state to move the import to. */ - if (MSG_CONNECT_RECONNECT & msg_flags) { + if (msg_flags & MSG_CONNECT_RECONNECT) { memset(&old_hdl, 0, sizeof(old_hdl)); if (!memcmp(&old_hdl, lustre_msg_get_handle(request->rq_repmsg), sizeof(old_hdl))) { @@ -924,7 +924,7 @@ static int ptlrpc_connect_interpret(const struct lu_env *env, * eviction. If it is in recovery - we are safe to * participate since we can reestablish all of our state * with server again */ - if ((MSG_CONNECT_RECOVERING & msg_flags)) { + if ((msg_flags & MSG_CONNECT_RECOVERING)) { CDEBUG(level, "%s@%s changed server handle from %#llx to %#llx but is still in recovery\n", obd2cli_tgt(imp->imp_obd), imp->imp_connection->c_remote_uuid.uuid, @@ -945,7 +945,7 @@ static int ptlrpc_connect_interpret(const struct lu_env *env, imp->imp_remote_handle = *lustre_msg_get_handle(request->rq_repmsg); - if (!(MSG_CONNECT_RECOVERING & msg_flags)) { + if (!(msg_flags & MSG_CONNECT_RECOVERING)) { IMPORT_SET_STATE(imp, LUSTRE_IMP_EVICTED); rc = 0; goto finish; @@ -961,7 +961,7 @@ static int ptlrpc_connect_interpret(const struct lu_env *env, CDEBUG(D_HA, "%s: reconnected but import is invalid; marking evicted\n", imp->imp_obd->obd_name); IMPORT_SET_STATE(imp, LUSTRE_IMP_EVICTED); - } else if (MSG_CONNECT_RECOVERING & msg_flags) { + } else if (msg_flags & MSG_CONNECT_RECOVERING) { CDEBUG(D_HA, "%s: reconnected to %s during replay\n", imp->imp_obd->obd_name, obd2cli_tgt(imp->imp_obd)); @@ -974,7 +974,7 @@ static int ptlrpc_connect_interpret(const struct lu_env *env, } else { IMPORT_SET_STATE(imp, LUSTRE_IMP_RECOVER); } - } else if ((MSG_CONNECT_RECOVERING & msg_flags) && !imp->imp_invalid) { + } else if ((msg_flags & MSG_CONNECT_RECOVERING) && !imp->imp_invalid) { LASSERT(imp->imp_replayable); imp->imp_remote_handle = *lustre_msg_get_handle(request->rq_repmsg); diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index 84937ad90570..e9f8aa0df978 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -883,7 +883,7 @@ void lustre_msg_clear_flags(struct lustre_msg *msg, int flags) case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); - pb->pb_flags &= ~(MSG_GEN_FLAG_MASK & flags); + pb->pb_flags &= ~(flags & MSG_GEN_FLAG_MASK); return; } default: From 11f32ad360bf0447e4f97cb1dc2d020247a59f1f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 11:39:39 -0700 Subject: [PATCH 0064/2431] staging: comedi: usbduxsigma: add missing spaces Add some missing space to quiet the checkpatch.pl issues about: CHECK: spaces preferred around that '/' (ctx:VxV) CHECK: spaces preferred around that '+' (ctx:VxV) CHECK: spaces preferred around that '*' (ctx:VxV) CHECK: spaces preferred around that '-' (ctx:VxV) Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxsigma.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index 649cf47184a4..a33b2cbe1fb5 100644 --- a/drivers/staging/comedi/drivers/usbduxsigma.c +++ b/drivers/staging/comedi/drivers/usbduxsigma.c @@ -66,10 +66,10 @@ #define USBDUXSUB_CPUCS 0xE600 /* 300Hz max frequ under PWM */ -#define MIN_PWM_PERIOD ((long)(1E9/300)) +#define MIN_PWM_PERIOD ((long)(1E9 / 300)) /* Default PWM frequency */ -#define PWM_DEFAULT_PERIOD ((long)(1E9/100)) +#define PWM_DEFAULT_PERIOD ((long)(1E9 / 100)) /* Number of channels (16 AD and offset)*/ #define NUMCHANNELS 16 @@ -81,7 +81,7 @@ * Size of the async input-buffer IN BYTES, the DIO state is transmitted * as the first byte. */ -#define SIZEINBUF (((NUMCHANNELS+1)*SIZEADIN)) +#define SIZEINBUF (((NUMCHANNELS + 1) * SIZEADIN)) /* 16 bytes. */ #define SIZEINSNBUF 16 @@ -90,20 +90,20 @@ #define NUMOUTCHANNELS 8 /* size of one value for the D/A converter: channel and value */ -#define SIZEDAOUT ((sizeof(uint8_t)+sizeof(uint16_t))) +#define SIZEDAOUT ((sizeof(uint8_t) + sizeof(uint16_t))) /* * Size of the output-buffer in bytes * Actually only the first 4 triplets are used but for the * high speed mode we need to pad it to 8 (microframes). */ -#define SIZEOUTBUF ((8*SIZEDAOUT)) +#define SIZEOUTBUF ((8 * SIZEDAOUT)) /* * Size of the buffer for the dux commands: just now max size is determined * by the analogue out + command byte + panic bytes... */ -#define SIZEOFDUXBUFFER ((8*SIZEDAOUT+2)) +#define SIZEOFDUXBUFFER ((8 * SIZEDAOUT + 2)) /* Number of in-URBs which receive the data: min=2 */ #define NUMOFINBUFFERSFULL 5 @@ -228,7 +228,7 @@ static void usbduxsigma_ai_handle_urb(struct comedi_device *dev, for (i = 0; i < cmd->chanlist_len; i++) { /* transfer data, note first byte is the DIO state */ - val = be32_to_cpu(devpriv->in_buf[i+1]); + val = be32_to_cpu(devpriv->in_buf[i + 1]); val &= 0x00ffffff; /* strip status byte */ val ^= 0x00800000; /* convert to unsigned */ @@ -559,7 +559,7 @@ static void create_adc_command(unsigned int chan, if (chan < 8) (*muxsg0) = (*muxsg0) | (1 << chan); else if (chan < 16) - (*muxsg1) = (*muxsg1) | (1 << (chan-8)); + (*muxsg1) = (*muxsg1) | (1 << (chan - 8)); } static int usbbuxsigma_send_cmd(struct comedi_device *dev, int cmd_type) From ef9a6bdfea3fa9686dbadf0a79502eff005c141a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 11:39:40 -0700 Subject: [PATCH 0065/2431] staging: comedi: usbduxsigma: use prefered kernel types As suggested by checkpatch.pl: CHECK: Prefer kernel type 'u8' over 'uint8_t' CHECK: Prefer kernel type 'u32' over 'uint32_t' Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxsigma.c | 39 ++++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index a33b2cbe1fb5..b3487106d827 100644 --- a/drivers/staging/comedi/drivers/usbduxsigma.c +++ b/drivers/staging/comedi/drivers/usbduxsigma.c @@ -75,7 +75,7 @@ #define NUMCHANNELS 16 /* Size of one A/D value */ -#define SIZEADIN ((sizeof(uint32_t))) +#define SIZEADIN ((sizeof(u32))) /* * Size of the async input-buffer IN BYTES, the DIO state is transmitted @@ -90,7 +90,7 @@ #define NUMOUTCHANNELS 8 /* size of one value for the D/A converter: channel and value */ -#define SIZEDAOUT ((sizeof(uint8_t) + sizeof(uint16_t))) +#define SIZEDAOUT ((sizeof(u8) + sizeof(uint16_t))) /* * Size of the output-buffer in bytes @@ -150,13 +150,13 @@ struct usbduxsigma_private { /* PWM period */ unsigned int pwm_period; /* PWM internal delay for the GPIF in the FX2 */ - uint8_t pwm_delay; + u8 pwm_delay; /* size of the PWM buffer which holds the bit pattern */ int pwm_buf_sz; /* input buffer for the ISO-transfer */ __be32 *in_buf; /* input buffer for single insn */ - uint8_t *insn_buf; + u8 *insn_buf; unsigned high_speed:1; unsigned ai_cmd_running:1; @@ -172,7 +172,7 @@ struct usbduxsigma_private { /* interval in frames/uframes */ unsigned int ai_interval; /* commands */ - uint8_t *dux_commands; + u8 *dux_commands; struct semaphore sem; }; @@ -214,7 +214,7 @@ static void usbduxsigma_ai_handle_urb(struct comedi_device *dev, struct usbduxsigma_private *devpriv = dev->private; struct comedi_async *async = s->async; struct comedi_cmd *cmd = &async->cmd; - uint32_t val; + u32 val; int ret; int i; @@ -341,7 +341,7 @@ static void usbduxsigma_ao_handle_urb(struct comedi_device *dev, struct usbduxsigma_private *devpriv = dev->private; struct comedi_async *async = s->async; struct comedi_cmd *cmd = &async->cmd; - uint8_t *datap; + u8 *datap; int ret; int i; @@ -553,8 +553,7 @@ static int usbduxsigma_ai_cmdtest(struct comedi_device *dev, * range is the range value from comedi */ static void create_adc_command(unsigned int chan, - uint8_t *muxsg0, - uint8_t *muxsg1) + u8 *muxsg0, u8 *muxsg1) { if (chan < 8) (*muxsg0) = (*muxsg0) | (1 << chan); @@ -634,9 +633,9 @@ static int usbduxsigma_ai_cmd(struct comedi_device *dev, struct usbduxsigma_private *devpriv = dev->private; struct comedi_cmd *cmd = &s->async->cmd; unsigned int len = cmd->chanlist_len; - uint8_t muxsg0 = 0; - uint8_t muxsg1 = 0; - uint8_t sysred = 0; + u8 muxsg0 = 0; + u8 muxsg1 = 0; + u8 sysred = 0; int ret; int i; @@ -708,9 +707,9 @@ static int usbduxsigma_ai_insn_read(struct comedi_device *dev, { struct usbduxsigma_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); - uint8_t muxsg0 = 0; - uint8_t muxsg1 = 0; - uint8_t sysred = 0; + u8 muxsg0 = 0; + u8 muxsg1 = 0; + u8 sysred = 0; int ret; int i; @@ -738,7 +737,7 @@ static int usbduxsigma_ai_insn_read(struct comedi_device *dev, } for (i = 0; i < insn->n; i++) { - uint32_t val; + u32 val; ret = usbduxsigma_receive_cmd(dev, USBDUXSIGMA_SINGLE_AD_CMD); if (ret < 0) { @@ -1221,8 +1220,8 @@ static int usbduxsigma_pwm_config(struct comedi_device *dev, static int usbduxsigma_getstatusinfo(struct comedi_device *dev, int chan) { struct usbduxsigma_private *devpriv = dev->private; - uint8_t sysred; - uint32_t val; + u8 sysred; + u32 val; int ret; switch (chan) { @@ -1274,8 +1273,8 @@ static int usbduxsigma_firmware_upload(struct comedi_device *dev, unsigned long context) { struct usb_device *usb = comedi_to_usb_dev(dev); - uint8_t *buf; - uint8_t *tmp; + u8 *buf; + u8 *tmp; int ret; if (!data) From c20d199492b48402cef24a9bab599bc10e0d2a3c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 11:39:41 -0700 Subject: [PATCH 0066/2431] staging: comedi: usbduxsigma: tidy up block comments Merge the two comments and format it in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxsigma.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index b3487106d827..8b4cafe53d9b 100644 --- a/drivers/staging/comedi/drivers/usbduxsigma.c +++ b/drivers/staging/comedi/drivers/usbduxsigma.c @@ -223,11 +223,11 @@ static void usbduxsigma_ai_handle_urb(struct comedi_device *dev, if (devpriv->ai_counter == 0) { devpriv->ai_counter = devpriv->ai_timer; - /* get the data from the USB bus - and hand it over to comedi */ + /* + * Get the data from the USB bus and hand it over + * to comedi. Note, first byte is the DIO state. + */ for (i = 0; i < cmd->chanlist_len; i++) { - /* transfer data, - note first byte is the DIO state */ val = be32_to_cpu(devpriv->in_buf[i + 1]); val &= 0x00ffffff; /* strip status byte */ val ^= 0x00800000; /* convert to unsigned */ From d3f1e38830f7201d901aa456050d00be1931b248 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 11:39:42 -0700 Subject: [PATCH 0067/2431] staging: comedi: usbduxsigma: use comedi_offset_munge() Use the comedi_offset_munge() helper to convert the hardware two's complement values to the offset binary format expected by comedi. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxsigma.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index 8b4cafe53d9b..d49147bc2786 100644 --- a/drivers/staging/comedi/drivers/usbduxsigma.c +++ b/drivers/staging/comedi/drivers/usbduxsigma.c @@ -230,8 +230,7 @@ static void usbduxsigma_ai_handle_urb(struct comedi_device *dev, for (i = 0; i < cmd->chanlist_len; i++) { val = be32_to_cpu(devpriv->in_buf[i + 1]); val &= 0x00ffffff; /* strip status byte */ - val ^= 0x00800000; /* convert to unsigned */ - + val = comedi_offset_munge(s, val); if (!comedi_buf_write_samples(s, &val, 1)) return; } @@ -749,9 +748,7 @@ static int usbduxsigma_ai_insn_read(struct comedi_device *dev, val = be32_to_cpu(get_unaligned((__be32 *)(devpriv->insn_buf + 1))); val &= 0x00ffffff; /* strip status byte */ - val ^= 0x00800000; /* convert to unsigned */ - - data[i] = val; + data[i] = comedi_offset_munge(s, val); } up(&devpriv->sem); @@ -1219,6 +1216,7 @@ static int usbduxsigma_pwm_config(struct comedi_device *dev, static int usbduxsigma_getstatusinfo(struct comedi_device *dev, int chan) { + struct comedi_subdevice *s = dev->read_subdev; struct usbduxsigma_private *devpriv = dev->private; u8 sysred; u32 val; @@ -1263,9 +1261,8 @@ static int usbduxsigma_getstatusinfo(struct comedi_device *dev, int chan) /* 32 bits big endian from the A/D converter */ val = be32_to_cpu(get_unaligned((__be32 *)(devpriv->insn_buf + 1))); val &= 0x00ffffff; /* strip status byte */ - val ^= 0x00800000; /* convert to unsigned */ - return (int)val; + return (int)comedi_offset_munge(s, val); } static int usbduxsigma_firmware_upload(struct comedi_device *dev, From 0726f06d176c015f4ed5f27b661eb1da1ea6f633 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 14:35:28 -0700 Subject: [PATCH 0068/2431] staging: comedi: vmk80xx: cleanup multi-line comment Reformat the multi-line comment in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/vmk80xx.c | 35 ++++++++++++------------ 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/drivers/staging/comedi/drivers/vmk80xx.c b/drivers/staging/comedi/drivers/vmk80xx.c index 3af075aa3946..3293f1acebe3 100644 --- a/drivers/staging/comedi/drivers/vmk80xx.c +++ b/drivers/staging/comedi/drivers/vmk80xx.c @@ -1,22 +1,23 @@ /* - comedi/drivers/vmk80xx.c - Velleman USB Board Low-Level Driver + * vmk80xx.c + * Velleman USB Board Low-Level Driver + * + * Copyright (C) 2009 Manuel Gebele , Germany + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 2000 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ - Copyright (C) 2009 Manuel Gebele , Germany - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 2000 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ /* * Driver: vmk80xx * Description: Velleman USB Board Low-Level Driver From c9b9cfe792feace71a2e0b4c079124b3f5f26ff2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 14:35:29 -0700 Subject: [PATCH 0069/2431] staging: comedi: vmk80xx: tidy up defines For aesthetics, use tabs instead of spaces for the whitespace. Convert the bit defines to use the preferred BIT macro. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/vmk80xx.c | 84 ++++++++++++------------ 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/drivers/staging/comedi/drivers/vmk80xx.c b/drivers/staging/comedi/drivers/vmk80xx.c index 3293f1acebe3..8c7393ef762d 100644 --- a/drivers/staging/comedi/drivers/vmk80xx.c +++ b/drivers/staging/comedi/drivers/vmk80xx.c @@ -52,52 +52,52 @@ enum { DEVICE_VMK8061 }; -#define VMK8055_DI_REG 0x00 -#define VMK8055_DO_REG 0x01 -#define VMK8055_AO1_REG 0x02 -#define VMK8055_AO2_REG 0x03 -#define VMK8055_AI1_REG 0x02 -#define VMK8055_AI2_REG 0x03 -#define VMK8055_CNT1_REG 0x04 -#define VMK8055_CNT2_REG 0x06 +#define VMK8055_DI_REG 0x00 +#define VMK8055_DO_REG 0x01 +#define VMK8055_AO1_REG 0x02 +#define VMK8055_AO2_REG 0x03 +#define VMK8055_AI1_REG 0x02 +#define VMK8055_AI2_REG 0x03 +#define VMK8055_CNT1_REG 0x04 +#define VMK8055_CNT2_REG 0x06 -#define VMK8061_CH_REG 0x01 -#define VMK8061_DI_REG 0x01 -#define VMK8061_DO_REG 0x01 -#define VMK8061_PWM_REG1 0x01 -#define VMK8061_PWM_REG2 0x02 -#define VMK8061_CNT_REG 0x02 -#define VMK8061_AO_REG 0x02 -#define VMK8061_AI_REG1 0x02 -#define VMK8061_AI_REG2 0x03 +#define VMK8061_CH_REG 0x01 +#define VMK8061_DI_REG 0x01 +#define VMK8061_DO_REG 0x01 +#define VMK8061_PWM_REG1 0x01 +#define VMK8061_PWM_REG2 0x02 +#define VMK8061_CNT_REG 0x02 +#define VMK8061_AO_REG 0x02 +#define VMK8061_AI_REG1 0x02 +#define VMK8061_AI_REG2 0x03 -#define VMK8055_CMD_RST 0x00 -#define VMK8055_CMD_DEB1_TIME 0x01 -#define VMK8055_CMD_DEB2_TIME 0x02 -#define VMK8055_CMD_RST_CNT1 0x03 -#define VMK8055_CMD_RST_CNT2 0x04 -#define VMK8055_CMD_WRT_AD 0x05 +#define VMK8055_CMD_RST 0x00 +#define VMK8055_CMD_DEB1_TIME 0x01 +#define VMK8055_CMD_DEB2_TIME 0x02 +#define VMK8055_CMD_RST_CNT1 0x03 +#define VMK8055_CMD_RST_CNT2 0x04 +#define VMK8055_CMD_WRT_AD 0x05 -#define VMK8061_CMD_RD_AI 0x00 -#define VMK8061_CMR_RD_ALL_AI 0x01 /* !non-active! */ -#define VMK8061_CMD_SET_AO 0x02 -#define VMK8061_CMD_SET_ALL_AO 0x03 /* !non-active! */ -#define VMK8061_CMD_OUT_PWM 0x04 -#define VMK8061_CMD_RD_DI 0x05 -#define VMK8061_CMD_DO 0x06 /* !non-active! */ -#define VMK8061_CMD_CLR_DO 0x07 -#define VMK8061_CMD_SET_DO 0x08 -#define VMK8061_CMD_RD_CNT 0x09 /* TODO: completely pointless? */ -#define VMK8061_CMD_RST_CNT 0x0a /* TODO: completely pointless? */ -#define VMK8061_CMD_RD_VERSION 0x0b /* internal usage */ -#define VMK8061_CMD_RD_JMP_STAT 0x0c /* TODO: not implemented yet */ -#define VMK8061_CMD_RD_PWR_STAT 0x0d /* internal usage */ -#define VMK8061_CMD_RD_DO 0x0e -#define VMK8061_CMD_RD_AO 0x0f -#define VMK8061_CMD_RD_PWM 0x10 +#define VMK8061_CMD_RD_AI 0x00 +#define VMK8061_CMR_RD_ALL_AI 0x01 /* !non-active! */ +#define VMK8061_CMD_SET_AO 0x02 +#define VMK8061_CMD_SET_ALL_AO 0x03 /* !non-active! */ +#define VMK8061_CMD_OUT_PWM 0x04 +#define VMK8061_CMD_RD_DI 0x05 +#define VMK8061_CMD_DO 0x06 /* !non-active! */ +#define VMK8061_CMD_CLR_DO 0x07 +#define VMK8061_CMD_SET_DO 0x08 +#define VMK8061_CMD_RD_CNT 0x09 /* TODO: completely pointless? */ +#define VMK8061_CMD_RST_CNT 0x0a /* TODO: completely pointless? */ +#define VMK8061_CMD_RD_VERSION 0x0b /* internal usage */ +#define VMK8061_CMD_RD_JMP_STAT 0x0c /* TODO: not implemented yet */ +#define VMK8061_CMD_RD_PWR_STAT 0x0d /* internal usage */ +#define VMK8061_CMD_RD_DO 0x0e +#define VMK8061_CMD_RD_AO 0x0f +#define VMK8061_CMD_RD_PWM 0x10 -#define IC3_VERSION (1 << 0) -#define IC6_VERSION (1 << 1) +#define IC3_VERSION BIT(0) +#define IC6_VERSION BIT(1) enum vmk80xx_model { VMK8055_MODEL, From 3b2ea2fb4b31bd59c48bb37a21928a0205668b34 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:26 -0700 Subject: [PATCH 0070/2431] staging: comedi: usbdux: use preferred kernel types As suggested by checkpatch.pl: CHECK: Prefer kernel type 'u8' over 'uint8_t' CHECK: Prefer kernel type 'u16' over 'uint16_t' Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbdux.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index ced05e581620..bb100e9bdbcb 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c @@ -114,7 +114,7 @@ #define PWM_DEFAULT_PERIOD ((long)(1E9/100)) /* Size of one A/D value */ -#define SIZEADIN ((sizeof(uint16_t))) +#define SIZEADIN ((sizeof(u16))) /* * Size of the input-buffer IN BYTES @@ -126,7 +126,7 @@ #define SIZEINSNBUF 16 /* size of one value for the D/A converter: channel and value */ -#define SIZEDAOUT ((sizeof(uint8_t)+sizeof(uint16_t))) +#define SIZEDAOUT ((sizeof(u8) + sizeof(u16))) /* * Size of the output-buffer in bytes @@ -187,7 +187,7 @@ struct usbdux_private { /* PWM period */ unsigned int pwm_period; /* PWM internal delay for the GPIF in the FX2 */ - uint8_t pwm_delay; + u8 pwm_delay; /* size of the PWM buffer which holds the bit pattern */ int pwm_buf_sz; /* input buffer for the ISO-transfer */ @@ -209,7 +209,7 @@ struct usbdux_private { /* interval in frames/uframes */ unsigned int ai_interval; /* commands */ - uint8_t *dux_commands; + u8 *dux_commands; struct semaphore sem; }; @@ -262,7 +262,7 @@ static void usbduxsub_ai_handle_urb(struct comedi_device *dev, /* get the data from the USB bus and hand it over to comedi */ for (i = 0; i < cmd->chanlist_len; i++) { unsigned int range = CR_RANGE(cmd->chanlist[i]); - uint16_t val = le16_to_cpu(devpriv->in_buf[i]); + u16 val = le16_to_cpu(devpriv->in_buf[i]); /* bipolar data is two's-complement */ if (comedi_range_is_bipolar(s, range)) @@ -380,7 +380,7 @@ static void usbduxsub_ao_handle_urb(struct comedi_device *dev, struct usbdux_private *devpriv = dev->private; struct comedi_async *async = s->async; struct comedi_cmd *cmd = &async->cmd; - uint8_t *datap; + u8 *datap; int ret; int i; @@ -603,10 +603,10 @@ static int usbdux_ai_cmdtest(struct comedi_device *dev, * creates the ADC command for the MAX1271 * range is the range value from comedi */ -static uint8_t create_adc_command(unsigned int chan, unsigned int range) +static u8 create_adc_command(unsigned int chan, unsigned int range) { - uint8_t p = (range <= 1); - uint8_t r = ((range % 2) == 0); + u8 p = (range <= 1); + u8 r = ((range % 2) == 0); return (chan << 4) | ((p == 1) << 2) | ((r == 1) << 3); } @@ -1391,8 +1391,8 @@ static int usbdux_firmware_upload(struct comedi_device *dev, unsigned long context) { struct usb_device *usb = comedi_to_usb_dev(dev); - uint8_t *buf; - uint8_t *tmp; + u8 *buf; + u8 *tmp; int ret; if (!data) From 0725b16ece9fe68887144fc2a86b6f297bafa1e2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:27 -0700 Subject: [PATCH 0071/2431] staging: comedi: usbdux: add missing spaces Add some missing space to quiet the checkpatch.pl issues about: CHECK: spaces preferred around that '/' (ctx:VxV) CHECK: spaces preferred around that '*' (ctx:VxV) CHECK: spaces preferred around that '+' (ctx:VxV) For aesthetics, use tabs instead of spaces in all the defines and ensure they have common alignment. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbdux.c | 26 ++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index bb100e9bdbcb..1ba6dd93dd36 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c @@ -108,55 +108,55 @@ #define BULK_TIMEOUT 1000 /* 300Hz max frequ under PWM */ -#define MIN_PWM_PERIOD ((long)(1E9/300)) +#define MIN_PWM_PERIOD ((long)(1E9 / 300)) /* Default PWM frequency */ -#define PWM_DEFAULT_PERIOD ((long)(1E9/100)) +#define PWM_DEFAULT_PERIOD ((long)(1E9 / 100)) /* Size of one A/D value */ -#define SIZEADIN ((sizeof(u16))) +#define SIZEADIN ((sizeof(u16))) /* * Size of the input-buffer IN BYTES * Always multiple of 8 for 8 microframes which is needed in the highspeed mode */ -#define SIZEINBUF ((8*SIZEADIN)) +#define SIZEINBUF (8 * SIZEADIN) /* 16 bytes. */ -#define SIZEINSNBUF 16 +#define SIZEINSNBUF 16 /* size of one value for the D/A converter: channel and value */ -#define SIZEDAOUT ((sizeof(u8) + sizeof(u16))) +#define SIZEDAOUT ((sizeof(u8) + sizeof(u16))) /* * Size of the output-buffer in bytes * Actually only the first 4 triplets are used but for the * high speed mode we need to pad it to 8 (microframes). */ -#define SIZEOUTBUF ((8*SIZEDAOUT)) +#define SIZEOUTBUF (8 * SIZEDAOUT) /* * Size of the buffer for the dux commands: just now max size is determined * by the analogue out + command byte + panic bytes... */ -#define SIZEOFDUXBUFFER ((8*SIZEDAOUT+2)) +#define SIZEOFDUXBUFFER (8 * SIZEDAOUT + 2) /* Number of in-URBs which receive the data: min=2 */ -#define NUMOFINBUFFERSFULL 5 +#define NUMOFINBUFFERSFULL 5 /* Number of out-URBs which send the data: min=2 */ -#define NUMOFOUTBUFFERSFULL 5 +#define NUMOFOUTBUFFERSFULL 5 /* Number of in-URBs which receive the data: min=5 */ /* must have more buffers due to buggy USB ctr */ -#define NUMOFINBUFFERSHIGH 10 +#define NUMOFINBUFFERSHIGH 10 /* Number of out-URBs which send the data: min=5 */ /* must have more buffers due to buggy USB ctr */ -#define NUMOFOUTBUFFERSHIGH 10 +#define NUMOFOUTBUFFERSHIGH 10 /* number of retries to get the right dux command */ -#define RETRIES 10 +#define RETRIES 10 static const struct comedi_lrange range_usbdux_ai_range = { 4, { From a0341e5deb05c18c67b786d138799b9a107cdfbf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:28 -0700 Subject: [PATCH 0072/2431] staging: comedi: usbdux: use common code path to check the cmd->scan_begin_arg There are currently separate code paths to check the scan_begin_arg based of the USB speed. Refactor the code to use a common code path and simplify the code. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbdux.c | 40 ++++++++++--------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index 1ba6dd93dd36..be4c2db21cc8 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c @@ -517,8 +517,7 @@ static int usbdux_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) { struct usbdux_private *this_usbduxsub = dev->private; - int err = 0, i; - unsigned int tmp_timer; + int err = 0; /* Step 1 : check if triggers are trivially valid */ @@ -549,6 +548,10 @@ static int usbdux_ai_cmdtest(struct comedi_device *dev, err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); if (cmd->scan_begin_src == TRIG_TIMER) { + /* full speed does 1kHz scans every USB frame */ + unsigned int arg = 1000000; + unsigned int min_arg = arg; + if (this_usbduxsub->high_speed) { /* * In high speed mode microframes are possible. @@ -556,33 +559,20 @@ static int usbdux_ai_cmdtest(struct comedi_device *dev, * sample one channel. Thus, the more channels * are in the channel list the more time we need. */ - i = 1; + int i = 1; + /* find a power of 2 for the number of channels */ - while (i < (cmd->chanlist_len)) + while (i < cmd->chanlist_len) i = i * 2; - err |= comedi_check_trigger_arg_min(&cmd-> - scan_begin_arg, - 1000000 / 8 * i); - /* now calc the real sampling rate with all the - * rounding errors */ - tmp_timer = - ((unsigned int)(cmd->scan_begin_arg / 125000)) * - 125000; - } else { - /* full speed */ - /* 1kHz scans every USB frame */ - err |= comedi_check_trigger_arg_min(&cmd-> - scan_begin_arg, - 1000000); - /* - * calc the real sampling rate with the rounding errors - */ - tmp_timer = ((unsigned int)(cmd->scan_begin_arg / - 1000000)) * 1000000; + arg /= 8; + min_arg = arg * i; } - err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, - tmp_timer); + err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, + min_arg); + /* calc the real sampling rate with the rounding errors */ + arg = (cmd->scan_begin_arg / arg) * arg; + err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); } err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, From 1e4c3a2e7da0f7e40f79ba1e219ccbe1d8a79f56 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:29 -0700 Subject: [PATCH 0073/2431] staging: comedi: usbdux: rename dev->private local variables For aesthetics, consistently use the same name. 'devpriv', for the local variable used to reference the private data, 'dev->private'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbdux.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index be4c2db21cc8..d576af734407 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c @@ -516,7 +516,7 @@ static int usbdux_submit_urbs(struct comedi_device *dev, static int usbdux_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) { - struct usbdux_private *this_usbduxsub = dev->private; + struct usbdux_private *devpriv = dev->private; int err = 0; /* Step 1 : check if triggers are trivially valid */ @@ -552,7 +552,7 @@ static int usbdux_ai_cmdtest(struct comedi_device *dev, unsigned int arg = 1000000; unsigned int min_arg = arg; - if (this_usbduxsub->high_speed) { + if (devpriv->high_speed) { /* * In high speed mode microframes are possible. * However, during one microframe we can roughly @@ -877,18 +877,18 @@ ao_trig_exit: static int usbdux_ao_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) { - struct usbdux_private *this_usbduxsub = dev->private; + struct usbdux_private *devpriv = dev->private; int err = 0; unsigned int flags; - if (!this_usbduxsub) + if (!devpriv) return -EFAULT; /* Step 1 : check if triggers are trivially valid */ err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_INT); - if (0) { /* (this_usbduxsub->high_speed) */ + if (0) { /* (devpriv->high_speed) */ /* the sampling rate is set by the coversion rate */ flags = TRIG_FOLLOW; } else { @@ -897,7 +897,7 @@ static int usbdux_ao_cmdtest(struct comedi_device *dev, } err |= comedi_check_trigger_src(&cmd->scan_begin_src, flags); - if (0) { /* (this_usbduxsub->high_speed) */ + if (0) { /* (devpriv->high_speed) */ /* * in usb-2.0 only one conversion it transmitted * but with 8kHz/n From 2779b7e51497b5d0855dc7d21d793998acd2ad5f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:30 -0700 Subject: [PATCH 0074/2431] staging: comedi: usbdux: remove impossible 'if (!devpriv)' check The comedi core can only call this subdevice function is the private data was successfully allocated during the (*auto_attach). Remove the unnecessary check. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbdux.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index d576af734407..eea41e8ad1ac 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c @@ -877,13 +877,9 @@ ao_trig_exit: static int usbdux_ao_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) { - struct usbdux_private *devpriv = dev->private; int err = 0; unsigned int flags; - if (!devpriv) - return -EFAULT; - /* Step 1 : check if triggers are trivially valid */ err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_INT); From 6e2ebdf8720306d9aee47de4e050b41884de7e3d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:31 -0700 Subject: [PATCH 0075/2431] staging: comedi: usbdux: use comedi_offset_munge() Use the comedi_offset_munge() helper to convert the hardware two's complement values to the offset binary format expected by comedi. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbdux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index eea41e8ad1ac..39710f2297a6 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c @@ -266,7 +266,7 @@ static void usbduxsub_ai_handle_urb(struct comedi_device *dev, /* bipolar data is two's-complement */ if (comedi_range_is_bipolar(s, range)) - val ^= ((s->maxdata + 1) >> 1); + val = comedi_offset_munge(s, val); /* transfer data */ if (!comedi_buf_write_samples(s, &val, 1)) @@ -776,7 +776,7 @@ static int usbdux_ai_insn_read(struct comedi_device *dev, /* bipolar data is two's-complement */ if (comedi_range_is_bipolar(s, range)) - val ^= ((s->maxdata + 1) >> 1); + val = comedi_offset_munge(s, val); data[i] = val; } From 035d819b4ee6de95268381e92f65f8c98d39ecdc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 17:09:12 -0700 Subject: [PATCH 0076/2431] staging: comedi: ssv_dnp: tidy up multi-line comments Format the multi-line comments in the kernel CodingStyle. Move the comment about the I/O ports in dnp_attach() to the start of the function. This is typically where the resources are reserved. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ssv_dnp.c | 55 +++++++++++++----------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/drivers/staging/comedi/drivers/ssv_dnp.c b/drivers/staging/comedi/drivers/ssv_dnp.c index acc7f3445c58..f9f634fd53cf 100644 --- a/drivers/staging/comedi/drivers/ssv_dnp.c +++ b/drivers/staging/comedi/drivers/ssv_dnp.c @@ -1,28 +1,29 @@ /* - comedi/drivers/ssv_dnp.c - generic comedi driver for SSV Embedded Systems' DIL/Net-PCs - Copyright (C) 2001 Robert Schwebel + * ssv_dnp.c + * generic comedi driver for SSV Embedded Systems' DIL/Net-PCs + * Copyright (C) 2001 Robert Schwebel + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 2000 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 2000 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ /* -Driver: ssv_dnp -Description: SSV Embedded Systems DIL/Net-PC -Author: Robert Schwebel -Devices: [SSV Embedded Systems] DIL/Net-PC 1486 (dnp-1486) -Status: unknown -*/ + * Driver: ssv_dnp + * Description: SSV Embedded Systems DIL/Net-PC + * Author: Robert Schwebel + * Devices: [SSV Embedded Systems] DIL/Net-PC 1486 (dnp-1486) + * Status: unknown + */ /* include files ----------------------------------------------------------- */ @@ -134,6 +135,12 @@ static int dnp_attach(struct comedi_device *dev, struct comedi_devconfig *it) struct comedi_subdevice *s; int ret; + /* + * We use I/O ports 0x22, 0x23 and 0xa3-0xa9, which are always + * allocated for the primary 8259, so we don't need to allocate + * them ourselves. + */ + ret = comedi_alloc_subdevices(dev, 1); if (ret) return ret; @@ -148,10 +155,6 @@ static int dnp_attach(struct comedi_device *dev, struct comedi_devconfig *it) s->insn_bits = dnp_dio_insn_bits; s->insn_config = dnp_dio_insn_config; - /* We use the I/O ports 0x22,0x23 and 0xa3-0xa9, which are always - * allocated for the primary 8259, so we don't need to allocate them - * ourselves. */ - /* configure all ports as input (default) */ outb(PAMR, CSCIR); outb(0x00, CSCDR); From 6d40c0c74a49c568ecb3d8fa650f922c195047a7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 13:03:22 -0700 Subject: [PATCH 0077/2431] staging: comedi: unioxx5: remove this flawed driver I was going to clean up this driver but looking it over it has a number of serious flaws. Also, Fastwell published an End-Of-Life notification for the board on 24/Jan/2014 (End-of-sale 30/Jun/2014, End-of-delivery 30/Dec/2014). Since the driver has a comedi driver status of "unkown", lets just remove the driver instead of trying to fix the flaws. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/Kconfig | 8 - drivers/staging/comedi/drivers/Makefile | 1 - drivers/staging/comedi/drivers/unioxx5.c | 506 ----------------------- 3 files changed, 515 deletions(-) delete mode 100644 drivers/staging/comedi/drivers/unioxx5.c diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index 57e71f9f14a2..682987eaf6e4 100644 --- a/drivers/staging/comedi/Kconfig +++ b/drivers/staging/comedi/Kconfig @@ -400,14 +400,6 @@ config COMEDI_DMM32AT To compile this driver as a module, choose M here: the module will be called dmm32at. -config COMEDI_UNIOXX5 - tristate "Fastwel UNIOxx-5 analog and digital io board support" - ---help--- - Enable support for Fastwel UNIOxx-5 (analog and digital i/o) boards - - To compile this driver as a module, choose M here: the module will be - called unioxx5. - config COMEDI_FL512 tristate "FL512 ISA card support" ---help--- diff --git a/drivers/staging/comedi/drivers/Makefile b/drivers/staging/comedi/drivers/Makefile index 5764dc9a6893..c3b8f2d7611b 100644 --- a/drivers/staging/comedi/drivers/Makefile +++ b/drivers/staging/comedi/drivers/Makefile @@ -90,7 +90,6 @@ obj-$(CONFIG_COMEDI_CONTEC_PCI_DIO) += contec_pci_dio.o obj-$(CONFIG_COMEDI_DAS08_PCI) += das08_pci.o obj-$(CONFIG_COMEDI_DT3000) += dt3000.o obj-$(CONFIG_COMEDI_DYNA_PCI10XX) += dyna_pci10xx.o -obj-$(CONFIG_COMEDI_UNIOXX5) += unioxx5.o obj-$(CONFIG_COMEDI_GSC_HPDI) += gsc_hpdi.o obj-$(CONFIG_COMEDI_ICP_MULTI) += icp_multi.o obj-$(CONFIG_COMEDI_DAQBOARD2000) += daqboard2000.o diff --git a/drivers/staging/comedi/drivers/unioxx5.c b/drivers/staging/comedi/drivers/unioxx5.c deleted file mode 100644 index 51498b889c6c..000000000000 --- a/drivers/staging/comedi/drivers/unioxx5.c +++ /dev/null @@ -1,506 +0,0 @@ -/*************************************************************************** - * * - * comedi/drivers/unioxx5.c * - * Driver for Fastwel UNIOxx-5 (analog and digital i/o) boards. * - * * - * Copyright (C) 2006 Kruchinin Daniil (asgard) [asgard@etersoft.ru] * - * * - * COMEDI - Linux Control and Measurement Device Interface * - * Copyright (C) 1998,2000 David A. Schleef * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - ***************************************************************************/ -/* - -Driver: unioxx5 -Description: Driver for Fastwel UNIOxx-5 (analog and digital i/o) boards. -Author: Kruchinin Daniil (asgard) -Status: unknown -Updated: 2006-10-09 -Devices: [Fastwel] UNIOxx-5 (unioxx5), - - This card supports digital and analog I/O. It written for g01 - subdevices only. - channels range: 0 .. 23 dio channels - and 0 .. 11 analog modules range - During attaching unioxx5 module displays modules identifiers - (see dmesg after comedi_config) in format: - | [module_number] module_id | - -*/ - -#include -#include -#include "../comedidev.h" - -#define UNIOXX5_SIZE 0x10 -#define UNIOXX5_SUBDEV_BASE 0xA000 /* base addr of first subdev */ -#define UNIOXX5_SUBDEV_ODDS 0x400 - -/* modules types */ -#define MODULE_DIGITAL 0 -#define MODULE_OUTPUT_MASK 0x80 /* analog input/output */ - -/* constants for digital i/o */ -#define UNIOXX5_NUM_OF_CHANS 24 - -/* constants for analog i/o */ -#define TxBE 0x10 /* transmit buffer enable */ -#define RxCA 0x20 /* 1 receive character available */ -#define Rx2CA 0x40 /* 2 receive character available */ -#define Rx4CA 0x80 /* 4 receive character available */ - -/* bytes mask errors */ -#define Rx2CA_ERR_MASK 0x04 /* 2 bytes receiving error */ -#define Rx4CA_ERR_MASK 0x08 /* 4 bytes receiving error */ - -/* channel modes */ -#define ALL_2_INPUT 0 /* config all digital channels to input */ -#define ALL_2_OUTPUT 1 /* config all digital channels to output */ - -/* 'private' structure for each subdevice */ -struct unioxx5_subd_priv { - int usp_iobase; - /* 12 modules. each can be 70L or 73L */ - unsigned char usp_module_type[12]; - /* for saving previous written value for analog modules */ - unsigned char usp_extra_data[12][4]; - unsigned char usp_prev_wr_val[3]; /* previous written value */ - unsigned char usp_prev_cn_val[3]; /* previous channel value */ -}; - -static int __unioxx5_define_chan_offset(int chan_num) -{ - if (chan_num < 0 || chan_num > 23) - return -1; - - return (chan_num >> 3) + 1; -} - -#if 0 /* not used? */ -static void __unioxx5_digital_config(struct comedi_subdevice *s, int mode) -{ - struct unioxx5_subd_priv *usp = s->private; - struct device *csdev = s->device->class_dev; - int i, mask; - - mask = (mode == ALL_2_OUTPUT) ? 0xFF : 0x00; - dev_dbg(csdev, "mode = %d\n", mask); - - outb(1, usp->usp_iobase + 0); - - for (i = 0; i < 3; i++) - outb(mask, usp->usp_iobase + i); - - outb(0, usp->usp_iobase + 0); -} -#endif - -/* configure channels for analog i/o (even to output, odd to input) */ -static void __unioxx5_analog_config(struct unioxx5_subd_priv *usp, int channel) -{ - int chan_a, chan_b, conf, channel_offset; - - channel_offset = __unioxx5_define_chan_offset(channel); - conf = usp->usp_prev_cn_val[channel_offset - 1]; - chan_a = chan_b = 1; - - /* setting channel A and channel B mask */ - if (channel % 2 == 0) { - chan_a <<= channel & 0x07; - chan_b <<= (channel + 1) & 0x07; - } else { - chan_a <<= (channel - 1) & 0x07; - chan_b <<= channel & 0x07; - } - - conf |= chan_a; /* even channel ot output */ - conf &= ~chan_b; /* odd channel to input */ - - outb(1, usp->usp_iobase + 0); - outb(conf, usp->usp_iobase + channel_offset); - outb(0, usp->usp_iobase + 0); - - usp->usp_prev_cn_val[channel_offset - 1] = conf; -} - -static int __unioxx5_digital_read(struct comedi_subdevice *s, - unsigned int *data, int channel, int minor) -{ - struct unioxx5_subd_priv *usp = s->private; - struct device *csdev = s->device->class_dev; - int channel_offset, mask = 1 << (channel & 0x07); - - channel_offset = __unioxx5_define_chan_offset(channel); - if (channel_offset < 0) { - dev_err(csdev, - "undefined channel %d. channel range is 0 .. 23\n", - channel); - return 0; - } - - *data = inb(usp->usp_iobase + channel_offset); - *data &= mask; - - /* correct the read value to 0 or 1 */ - if (channel_offset > 1) - channel -= 2 << channel_offset; - *data >>= channel; - return 1; -} - -static int __unioxx5_analog_read(struct comedi_subdevice *s, - unsigned int *data, int channel, int minor) -{ - struct unioxx5_subd_priv *usp = s->private; - struct device *csdev = s->device->class_dev; - int module_no, read_ch; - char control; - - module_no = channel / 2; - read_ch = channel % 2; /* depend on type of channel (A or B) */ - - /* defining if given module can work on input */ - if (usp->usp_module_type[module_no] & MODULE_OUTPUT_MASK) { - dev_err(csdev, - "module in position %d with id 0x%02x is for output only", - module_no, usp->usp_module_type[module_no]); - return 0; - } - - __unioxx5_analog_config(usp, channel); - /* sends module number to card(1 .. 12) */ - outb(module_no + 1, usp->usp_iobase + 5); - outb('V', usp->usp_iobase + 6); /* sends to module (V)erify command */ - control = inb(usp->usp_iobase); /* get control register byte */ - - /* waits while reading four bytes will be allowed */ - while (!((control = inb(usp->usp_iobase + 0)) & Rx4CA)) - ; - - /* if four bytes readding error occurs - return 0(false) */ - if ((control & Rx4CA_ERR_MASK)) { - dev_err(csdev, "4 bytes error\n"); - return 0; - } - - if (read_ch) - *data = inw(usp->usp_iobase + 6); /* channel B */ - else - *data = inw(usp->usp_iobase + 4); /* channel A */ - - return 1; -} - -static int __unioxx5_digital_write(struct comedi_subdevice *s, - unsigned int *data, int channel, int minor) -{ - struct unioxx5_subd_priv *usp = s->private; - struct device *csdev = s->device->class_dev; - int channel_offset, val; - int mask = 1 << (channel & 0x07); - - channel_offset = __unioxx5_define_chan_offset(channel); - if (channel_offset < 0) { - dev_err(csdev, - "undefined channel %d. channel range is 0 .. 23\n", - channel); - return 0; - } - - /* getting previous written value */ - val = usp->usp_prev_wr_val[channel_offset - 1]; - - if (*data) - val |= mask; - else - val &= ~mask; - - outb(val, usp->usp_iobase + channel_offset); - /* saving new written value */ - usp->usp_prev_wr_val[channel_offset - 1] = val; - - return 1; -} - -static int __unioxx5_analog_write(struct comedi_subdevice *s, - unsigned int *data, int channel, int minor) -{ - struct unioxx5_subd_priv *usp = s->private; - struct device *csdev = s->device->class_dev; - int module, i; - - module = channel / 2; /* definig module number(0 .. 11) */ - i = (channel % 2) << 1; /* depends on type of channel (A or B) */ - - /* defining if given module can work on output */ - if (!(usp->usp_module_type[module] & MODULE_OUTPUT_MASK)) { - dev_err(csdev, - "module in position %d with id 0x%0x is for input only!\n", - module, usp->usp_module_type[module]); - return 0; - } - - __unioxx5_analog_config(usp, channel); - /* saving minor byte */ - usp->usp_extra_data[module][i++] = (unsigned char)(*data & 0x00FF); - /* saving major byte */ - usp->usp_extra_data[module][i] = (unsigned char)((*data & 0xFF00) >> 8); - - /* while(!((inb(usp->usp_iobase + 0)) & TxBE)); */ - /* sending module number to card(1 .. 12) */ - outb(module + 1, usp->usp_iobase + 5); - outb('W', usp->usp_iobase + 6); /* sends (W)rite command to module */ - - /* sending for bytes to module(one byte per cycle iteration) */ - for (i = 0; i < 4; i++) { - while (!((inb(usp->usp_iobase + 0)) & TxBE)) - ; /* waits while writing will be allowed */ - outb(usp->usp_extra_data[module][i], usp->usp_iobase + 6); - } - - return 1; -} - -static int unioxx5_subdev_read(struct comedi_device *dev, - struct comedi_subdevice *subdev, - struct comedi_insn *insn, unsigned int *data) -{ - struct unioxx5_subd_priv *usp = subdev->private; - int channel, type; - - channel = CR_CHAN(insn->chanspec); - /* defining module type(analog or digital) */ - type = usp->usp_module_type[channel / 2]; - - if (type == MODULE_DIGITAL) { - if (!__unioxx5_digital_read(subdev, data, channel, dev->minor)) - return -1; - } else { - if (!__unioxx5_analog_read(subdev, data, channel, dev->minor)) - return -1; - } - - return 1; -} - -static int unioxx5_subdev_write(struct comedi_device *dev, - struct comedi_subdevice *subdev, - struct comedi_insn *insn, unsigned int *data) -{ - struct unioxx5_subd_priv *usp = subdev->private; - int channel, type; - - channel = CR_CHAN(insn->chanspec); - /* defining module type(analog or digital) */ - type = usp->usp_module_type[channel / 2]; - - if (type == MODULE_DIGITAL) { - if (!__unioxx5_digital_write(subdev, data, channel, dev->minor)) - return -1; - } else { - if (!__unioxx5_analog_write(subdev, data, channel, dev->minor)) - return -1; - } - - return 1; -} - -/* for digital modules only */ -static int unioxx5_insn_config(struct comedi_device *dev, - struct comedi_subdevice *subdev, - struct comedi_insn *insn, unsigned int *data) -{ - int channel_offset, flags, channel = CR_CHAN(insn->chanspec), type; - struct unioxx5_subd_priv *usp = subdev->private; - int mask = 1 << (channel & 0x07); - - type = usp->usp_module_type[channel / 2]; - - if (type != MODULE_DIGITAL) { - dev_err(dev->class_dev, - "channel configuration accessible only for digital modules\n"); - return -1; - } - - channel_offset = __unioxx5_define_chan_offset(channel); - if (channel_offset < 0) { - dev_err(dev->class_dev, - "undefined channel %d. channel range is 0 .. 23\n", - channel); - return -1; - } - - /* gets previously written value */ - flags = usp->usp_prev_cn_val[channel_offset - 1]; - - switch (*data) { - case COMEDI_INPUT: - flags &= ~mask; - break; - case COMEDI_OUTPUT: - flags |= mask; - break; - default: - dev_err(dev->class_dev, "unknown flag\n"); - return -1; - } - - /* *\ - * sets channels buffer to 1(after this we are allowed to * - * change channel type on input or output) * - \* */ - outb(1, usp->usp_iobase + 0); - /* changes type of _one_ channel */ - outb(flags, usp->usp_iobase + channel_offset); - /* sets channels bank to 0(allows directly input/output) */ - outb(0, usp->usp_iobase + 0); - /* saves written value */ - usp->usp_prev_cn_val[channel_offset - 1] = flags; - - return 0; -} - -/* initializing subdevice with given address */ -static int __unioxx5_subdev_init(struct comedi_device *dev, - struct comedi_subdevice *s, - int iobase) -{ - struct unioxx5_subd_priv *usp; - int i, to, ndef_flag = 0; - int ret; - - usp = comedi_alloc_spriv(s, sizeof(*usp)); - if (!usp) - return -ENOMEM; - - ret = __comedi_request_region(dev, iobase, UNIOXX5_SIZE); - if (ret) - return ret; - usp->usp_iobase = iobase; - - /* defining modules types */ - for (i = 0; i < 12; i++) { - to = 10000; - - __unioxx5_analog_config(usp, i * 2); - /* sends channel number to card */ - outb(i + 1, iobase + 5); - outb('H', iobase + 6); /* requests EEPROM world */ - while (!(inb(iobase + 0) & TxBE)) - ; /* waits while writing will be allowed */ - outb(0, iobase + 6); - - /* waits while reading of two bytes will be allowed */ - while (!(inb(iobase + 0) & Rx2CA)) { - if (--to <= 0) { - ndef_flag = 1; - break; - } - } - - if (ndef_flag) { - usp->usp_module_type[i] = 0; - ndef_flag = 0; - } else { - usp->usp_module_type[i] = inb(iobase + 6); - } - - udelay(1); - } - - /* initial subdevice for digital or analog i/o */ - s->type = COMEDI_SUBD_DIO; - s->subdev_flags = SDF_READABLE | SDF_WRITABLE; - s->n_chan = UNIOXX5_NUM_OF_CHANS; - s->maxdata = 0xFFF; - s->range_table = &range_digital; - s->insn_read = unioxx5_subdev_read; - s->insn_write = unioxx5_subdev_write; - /* for digital modules only!!! */ - s->insn_config = unioxx5_insn_config; - - return 0; -} - -static int unioxx5_attach(struct comedi_device *dev, - struct comedi_devconfig *it) -{ - struct comedi_subdevice *s; - int iobase, i, n_subd; - int id, num, ba; - int ret; - - iobase = it->options[0]; - - dev->iobase = iobase; - iobase += UNIOXX5_SUBDEV_BASE; - n_subd = 0; - - /* getting number of subdevices with types 'g01' */ - for (i = 0, ba = iobase; i < 4; i++, ba += UNIOXX5_SUBDEV_ODDS) { - id = inb(ba + 0xE); - num = inb(ba + 0xF); - - if (id != 'g' || num != 1) - continue; - - n_subd++; - } - - /* unioxx5 can has from two to four subdevices */ - if (n_subd < 2) { - dev_err(dev->class_dev, - "your card must has at least 2 'g01' subdevices\n"); - return -1; - } - - ret = comedi_alloc_subdevices(dev, n_subd); - if (ret) - return ret; - - /* initializing each of for same subdevices */ - for (i = 0; i < n_subd; i++, iobase += UNIOXX5_SUBDEV_ODDS) { - s = &dev->subdevices[i]; - ret = __unioxx5_subdev_init(dev, s, iobase); - if (ret) - return ret; - } - - return 0; -} - -static void unioxx5_detach(struct comedi_device *dev) -{ - struct comedi_subdevice *s; - struct unioxx5_subd_priv *spriv; - int i; - - for (i = 0; i < dev->n_subdevices; i++) { - s = &dev->subdevices[i]; - spriv = s->private; - if (spriv && spriv->usp_iobase) - release_region(spriv->usp_iobase, UNIOXX5_SIZE); - } -} - -static struct comedi_driver unioxx5_driver = { - .driver_name = "unioxx5", - .module = THIS_MODULE, - .attach = unioxx5_attach, - .detach = unioxx5_detach, -}; -module_comedi_driver(unioxx5_driver); - -MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); -MODULE_LICENSE("GPL"); From 28a2993e3e7c02d0b4312df80ada4c27f830c9d5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 13:18:41 -0700 Subject: [PATCH 0078/2431] staging: comedi: serial2002: tidy up multi-line comments Format the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/serial2002.c | 47 ++++++++++----------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/drivers/staging/comedi/drivers/serial2002.c b/drivers/staging/comedi/drivers/serial2002.c index 5f19374c460d..186ddd431567 100644 --- a/drivers/staging/comedi/drivers/serial2002.c +++ b/drivers/staging/comedi/drivers/serial2002.c @@ -1,30 +1,29 @@ /* - comedi/drivers/serial2002.c - Skeleton code for a Comedi driver - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 2002 Anders Blomdell - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ + * serial2002.c + * Comedi driver for serial connected hardware + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 2002 Anders Blomdell + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ /* -Driver: serial2002 -Description: Driver for serial connected hardware -Devices: -Author: Anders Blomdell -Updated: Fri, 7 Jun 2002 12:56:45 -0700 -Status: in development - -*/ + * Driver: serial2002 + * Description: Driver for serial connected hardware + * Devices: + * Author: Anders Blomdell + * Updated: Fri, 7 Jun 2002 12:56:45 -0700 + * Status: in development + */ #include #include "../comedidev.h" From 3335dfd1ab5f02915fb2aeeace41526f92d8b560 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 13:18:42 -0700 Subject: [PATCH 0079/2431] staging: comedi: serial2002: usleep_range is preferred over udelay Fix checkpatch issue: "CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt". Replace the udelay() with usleep_range() with a reasonable upper limit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/serial2002.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/serial2002.c b/drivers/staging/comedi/drivers/serial2002.c index 186ddd431567..c6f985504a80 100644 --- a/drivers/staging/comedi/drivers/serial2002.c +++ b/drivers/staging/comedi/drivers/serial2002.c @@ -175,7 +175,7 @@ static int serial2002_tty_read(struct file *f, int timeout) result = ch; break; } - udelay(100); + usleep_range(100, 1000); } } set_fs(oldfs); From 8d63f5b8f87204cbbdbf5616731680dac7add01b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 13:18:43 -0700 Subject: [PATCH 0080/2431] staging: comedi: serial2002: use proper errno checkpatch.pl reports: WARNING: ENOSYS means 'invalid syscall nr' and nothing else Change the error code to -ENOTTY. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/serial2002.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/serial2002.c b/drivers/staging/comedi/drivers/serial2002.c index c6f985504a80..7a1defcf2102 100644 --- a/drivers/staging/comedi/drivers/serial2002.c +++ b/drivers/staging/comedi/drivers/serial2002.c @@ -101,7 +101,7 @@ static long serial2002_tty_ioctl(struct file *f, unsigned op, if (f->f_op->unlocked_ioctl) return f->f_op->unlocked_ioctl(f, op, param); - return -ENOSYS; + return -ENOTTY; } static int serial2002_tty_write(struct file *f, unsigned char *buf, int count) From de332b11946f1e5f9d8513828e18701d6cb903d4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:10 -0700 Subject: [PATCH 0081/2431] staging: comedi: s526: tidy up multi-line comments Format the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 67 +++++++++++++-------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 6f3e8a08e75c..817ce1509032 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -1,40 +1,39 @@ /* - comedi/drivers/s526.c - Sensoray s526 Comedi driver + * s526.c + * Sensoray s526 Comedi driver + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 2000 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 2000 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ /* -Driver: s526 -Description: Sensoray 526 driver -Devices: [Sensoray] 526 (s526) -Author: Richie - Everett Wang -Updated: Thu, 14 Sep. 2006 -Status: experimental - -Encoder works -Analog input works -Analog output works -PWM output works -Commands are not supported yet. - -Configuration Options: - -comedi_config /dev/comedi0 s526 0x2C0,0x3 - -*/ + * Driver: s526 + * Description: Sensoray 526 driver + * Devices: [Sensoray] 526 (s526) + * Author: Richie + * Everett Wang + * Updated: Thu, 14 Sep. 2006 + * Status: experimental + * + * Encoder works + * Analog input works + * Analog output works + * PWM output works + * Commands are not supported yet. + * + * Configuration Options: + * [0] - I/O port base address + */ #include #include "../comedidev.h" From 1d0d1c00daff961b130691a64ad2cde6d856d24e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:11 -0700 Subject: [PATCH 0082/2431] staging: comedi: s526: refactor gpct registers The S526 board has 4 general purpose counter/timers. The current defines used for the registers of these devices do not provide much clarity in what they are. Refactor the code to add some clarity. Replace the current register defines with macros that return the correct offset based on the counter 'channel'. Introduce a some helper functions to handle reading/writing the LSB/MSB registers so that they are always accessed in the correct oreder. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 149 +++++++++++--------------- 1 file changed, 61 insertions(+), 88 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 817ce1509032..c011c7005e38 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -55,22 +55,12 @@ #define REG_IER 0x0C #define REG_ISR 0x0E #define REG_MSC 0x10 -#define REG_C0L 0x12 -#define REG_C0H 0x14 -#define REG_C0M 0x16 -#define REG_C0C 0x18 -#define REG_C1L 0x1A -#define REG_C1H 0x1C -#define REG_C1M 0x1E -#define REG_C1C 0x20 -#define REG_C2L 0x22 -#define REG_C2H 0x24 -#define REG_C2M 0x26 -#define REG_C2C 0x28 -#define REG_C3L 0x2A -#define REG_C3H 0x2C -#define REG_C3M 0x2E -#define REG_C3C 0x30 + +#define S526_GPCT_LSB_REG(x) (0x12 + ((x) * 8)) +#define S526_GPCT_MSB_REG(x) (0x14 + ((x) * 8)) +#define S526_GPCT_MODE_REG(x) (0x16 + ((x) * 8)) +#define S526_GPCT_CTRL_REG(x) (0x18 + ((x) * 8)) + #define REG_EED 0x32 #define REG_EEC 0x34 @@ -114,24 +104,36 @@ struct s526_private { unsigned short ai_config; }; +static void s526_gpct_write(struct comedi_device *dev, + unsigned int chan, unsigned int val) +{ + /* write high word then low word */ + outw((val >> 16) & 0xffff, dev->iobase + S526_GPCT_MSB_REG(chan)); + outw(val & 0xffff, dev->iobase + S526_GPCT_LSB_REG(chan)); +} + +static unsigned int s526_gpct_read(struct comedi_device *dev, + unsigned int chan) +{ + unsigned int val; + + /* read the low word then high word */ + val = inw(dev->iobase + S526_GPCT_LSB_REG(chan)) & 0xffff; + val |= (inw(dev->iobase + S526_GPCT_MSB_REG(chan)) & 0xff) << 16; + + return val; +} + static int s526_gpct_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) { unsigned int chan = CR_CHAN(insn->chanspec); - unsigned long chan_iobase = dev->iobase + chan * 8; - unsigned int lo; - unsigned int hi; int i; - for (i = 0; i < insn->n; i++) { - /* Read the low word first */ - lo = inw(chan_iobase + REG_C0L) & 0xffff; - hi = inw(chan_iobase + REG_C0H) & 0xff; - - data[i] = (hi << 16) | lo; - } + for (i = 0; i < insn->n; i++) + data[i] = s526_gpct_read(dev, chan); return insn->n; } @@ -143,7 +145,6 @@ static int s526_gpct_insn_config(struct comedi_device *dev, { struct s526_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); - unsigned long chan_iobase = dev->iobase + chan * 8; unsigned int val; union cmReg cmReg; @@ -174,32 +175,31 @@ static int s526_gpct_insn_config(struct comedi_device *dev, cmReg.reg.preloadRegSel = 0; /* PR0 */ cmReg.reg.reserved = 0; - outw(cmReg.value, chan_iobase + REG_C0M); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - outw(0x0001, chan_iobase + REG_C0H); - outw(0x3C68, chan_iobase + REG_C0L); + s526_gpct_write(dev, chan, 0x0013c68); /* Reset the counter */ - outw(0x8000, chan_iobase + REG_C0C); + outw(0x8000, dev->iobase + S526_GPCT_CTRL_REG(chan)); /* Load the counter from PR0 */ - outw(0x4000, chan_iobase + REG_C0C); + outw(0x4000, dev->iobase + S526_GPCT_CTRL_REG(chan)); /* Reset RCAP (fires one-shot) */ - outw(0x0008, chan_iobase + REG_C0C); + outw(0x0008, dev->iobase + S526_GPCT_CTRL_REG(chan)); #endif #if 1 /* Set Counter Mode Register */ cmReg.value = data[1] & 0xffff; - outw(cmReg.value, chan_iobase + REG_C0M); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); /* Reset the counter if it is software preload */ if (cmReg.reg.autoLoadResetRcap == 0) { /* Reset the counter */ - outw(0x8000, chan_iobase + REG_C0C); + outw(0x8000, dev->iobase + S526_GPCT_CTRL_REG(chan)); /* Load the counter from PR0 - * outw(0x4000, chan_iobase + REG_C0C); + * outw(0x4000, dev->iobase + S526_GPCT_CTRL_REG(chan)); */ } #else @@ -227,27 +227,22 @@ static int s526_gpct_insn_config(struct comedi_device *dev, /* Set Counter Mode Register */ cmReg.value = data[1] & 0xffff; - outw(cmReg.value, chan_iobase + REG_C0M); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - /* Load the pre-load register high word */ - val = (data[2] >> 16) & 0xffff; - outw(val, chan_iobase + REG_C0H); - - /* Load the pre-load register low word */ - val = data[2] & 0xffff; - outw(val, chan_iobase + REG_C0L); + /* Load the pre-load register */ + s526_gpct_write(dev, chan, data[2]); /* Write the Counter Control Register */ - if (data[3]) { - val = data[3] & 0xffff; - outw(val, chan_iobase + REG_C0C); - } + if (data[3]) + outw(data[3] & 0xffff, + dev->iobase + S526_GPCT_CTRL_REG(chan)); + /* Reset the counter if it is software preload */ if (cmReg.reg.autoLoadResetRcap == 0) { /* Reset the counter */ - outw(0x8000, chan_iobase + REG_C0C); + outw(0x8000, dev->iobase + S526_GPCT_CTRL_REG(chan)); /* Load the counter from PR0 */ - outw(0x4000, chan_iobase + REG_C0C); + outw(0x4000, dev->iobase + S526_GPCT_CTRL_REG(chan)); } #endif break; @@ -265,33 +260,23 @@ static int s526_gpct_insn_config(struct comedi_device *dev, /* Set Counter Mode Register */ cmReg.value = data[1] & 0xffff; cmReg.reg.preloadRegSel = 0; /* PR0 */ - outw(cmReg.value, chan_iobase + REG_C0M); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - /* Load the pre-load register 0 high word */ - val = (data[2] >> 16) & 0xffff; - outw(val, chan_iobase + REG_C0H); - - /* Load the pre-load register 0 low word */ - val = data[2] & 0xffff; - outw(val, chan_iobase + REG_C0L); + /* Load the pre-load register 0 */ + s526_gpct_write(dev, chan, data[2]); /* Set Counter Mode Register */ cmReg.value = data[1] & 0xffff; cmReg.reg.preloadRegSel = 1; /* PR1 */ - outw(cmReg.value, chan_iobase + REG_C0M); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - /* Load the pre-load register 1 high word */ - val = (data[3] >> 16) & 0xffff; - outw(val, chan_iobase + REG_C0H); - - /* Load the pre-load register 1 low word */ - val = data[3] & 0xffff; - outw(val, chan_iobase + REG_C0L); + /* Load the pre-load register 1 */ + s526_gpct_write(dev, chan, data[3]); /* Write the Counter Control Register */ if (data[4]) { val = data[4] & 0xffff; - outw(val, chan_iobase + REG_C0C); + outw(val, dev->iobase + S526_GPCT_CTRL_REG(chan)); } break; @@ -308,33 +293,23 @@ static int s526_gpct_insn_config(struct comedi_device *dev, /* Set Counter Mode Register */ cmReg.value = data[1] & 0xffff; cmReg.reg.preloadRegSel = 0; /* PR0 */ - outw(cmReg.value, chan_iobase + REG_C0M); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - /* Load the pre-load register 0 high word */ - val = (data[2] >> 16) & 0xffff; - outw(val, chan_iobase + REG_C0H); - - /* Load the pre-load register 0 low word */ - val = data[2] & 0xffff; - outw(val, chan_iobase + REG_C0L); + /* Load the pre-load register 0 */ + s526_gpct_write(dev, chan, data[2]); /* Set Counter Mode Register */ cmReg.value = data[1] & 0xffff; cmReg.reg.preloadRegSel = 1; /* PR1 */ - outw(cmReg.value, chan_iobase + REG_C0M); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - /* Load the pre-load register 1 high word */ - val = (data[3] >> 16) & 0xffff; - outw(val, chan_iobase + REG_C0H); - - /* Load the pre-load register 1 low word */ - val = data[3] & 0xffff; - outw(val, chan_iobase + REG_C0L); + /* Load the pre-load register 1 */ + s526_gpct_write(dev, chan, data[3]); /* Write the Counter Control Register */ if (data[4]) { val = data[4] & 0xffff; - outw(val, chan_iobase + REG_C0C); + outw(val, dev->iobase + S526_GPCT_CTRL_REG(chan)); } break; @@ -352,9 +327,8 @@ static int s526_gpct_winsn(struct comedi_device *dev, { struct s526_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); - unsigned long chan_iobase = dev->iobase + chan * 8; - inw(chan_iobase + REG_C0M); /* Is this read required? */ + inw(dev->iobase + S526_GPCT_MODE_REG(chan)); /* Is this required? */ /* Check what Application of Counter this channel is configured for */ switch (devpriv->gpct_config[chan]) { @@ -372,8 +346,7 @@ static int s526_gpct_winsn(struct comedi_device *dev, case INSN_CONFIG_GPCT_QUADRATURE_ENCODER: case INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR: - outw((data[0] >> 16) & 0xffff, chan_iobase + REG_C0H); - outw(data[0] & 0xffff, chan_iobase + REG_C0L); + s526_gpct_write(dev, chan, data[0]); break; default: From 4e04fd32599bb4e0f2574708e5d48f1f78d80761 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:12 -0700 Subject: [PATCH 0083/2431] staging: comedi: s526: define the timer control register and bits Define this register and it's bits so that we can possibly support it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index c011c7005e38..e329c0470492 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -46,7 +46,12 @@ #define S526_NUM_PORTS 27 /* registers */ -#define REG_TCR 0x00 +#define S526_TIMER_REG 0x00 +#define S526_TIMER_LOAD(x) (((x) & 0xff) << 8) +#define S526_TIMER_MODE ((x) << 1) +#define S526_TIMER_MANUAL S526_TIMER_MODE(0) +#define S526_TIMER_AUTO S526_TIMER_MODE(1) +#define S526_TIMER_RESTART BIT(0) #define REG_WDC 0x02 #define REG_DAC 0x04 #define REG_ADC 0x06 From 088c1ce04dacc3374335ce8b23666a9f8aa5d85c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:13 -0700 Subject: [PATCH 0084/2431] staging: comedi: s526: define the watchdog timer control register and bits Define this register and it's bits so that we can possibly support it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index e329c0470492..df463a22fa7e 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -52,7 +52,10 @@ #define S526_TIMER_MANUAL S526_TIMER_MODE(0) #define S526_TIMER_AUTO S526_TIMER_MODE(1) #define S526_TIMER_RESTART BIT(0) -#define REG_WDC 0x02 +#define S526_WDOG_REG 0x02 +#define S526_WDOG_INVERTED BIT(4) +#define S526_WDOG_ENA BIT(3) +#define S526_WDOG_INTERVAL(x) (((x) & 0x7) << 0) #define REG_DAC 0x04 #define REG_ADC 0x06 #define REG_ADD 0x08 From abbb6489090255290d0bc24f1bf9eeba26b595de Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:14 -0700 Subject: [PATCH 0085/2431] staging: comedi: s526: define the DAC (analog output) control register and bits Define this register and its bits and remove the magic numbers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index df463a22fa7e..e71d850da882 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -56,7 +56,10 @@ #define S526_WDOG_INVERTED BIT(4) #define S526_WDOG_ENA BIT(3) #define S526_WDOG_INTERVAL(x) (((x) & 0x7) << 0) -#define REG_DAC 0x04 +#define S526_AO_CTRL_REG 0x04 +#define S526_AO_CTRL_RESET BIT(3) +#define S526_AO_CTRL_CHAN(x) (((x) & 0x3) << 1) +#define S526_AO_CTRL_START BIT(0) #define REG_ADC 0x06 #define REG_ADD 0x08 #define REG_DIO 0x0A @@ -452,16 +455,17 @@ static int s526_ao_insn_write(struct comedi_device *dev, unsigned int *data) { unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int ctrl = S526_AO_CTRL_CHAN(chan); unsigned int val = s->readback[chan]; int i; - outw(chan << 1, dev->iobase + REG_DAC); + outw(ctrl, dev->iobase + S526_AO_CTRL_REG); + ctrl |= S526_AO_CTRL_START; for (i = 0; i < insn->n; i++) { val = data[i]; outw(val, dev->iobase + REG_ADD); - /* starts the D/A conversion */ - outw((chan << 1) | 1, dev->iobase + REG_DAC); + outw(ctrl, dev->iobase + S526_AO_CTRL_REG); } s->readback[chan] = val; From fe79b3d0c339f053a04673bff95a50f26f59222f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:15 -0700 Subject: [PATCH 0086/2431] staging: comedi: s526: define the ADC (analog input) control register and bits Define this register and its bits and remove the magic numbers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index e71d850da882..ff576d32753e 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -60,7 +60,11 @@ #define S526_AO_CTRL_RESET BIT(3) #define S526_AO_CTRL_CHAN(x) (((x) & 0x3) << 1) #define S526_AO_CTRL_START BIT(0) -#define REG_ADC 0x06 +#define S526_AI_CTRL_REG 0x06 +#define S526_AI_CTRL_DELAY BIT(15) +#define S526_AI_CTRL_CONV(x) (1 << (5 + ((x) & 0x9))) +#define S526_AI_CTRL_READ(x) (((x) & 0xf) << 1) +#define S526_AI_CTRL_START BIT(0) #define REG_ADD 0x08 #define REG_DIO 0x0A #define REG_IER 0x0C @@ -391,7 +395,7 @@ static int s526_ai_insn_config(struct comedi_device *dev, outw(ISR_ADC_DONE, dev->iobase + REG_IER); devpriv->ai_config = (data[0] & 0x3ff) << 5; if (data[1] > 0) - devpriv->ai_config |= 0x8000; /* set the delay */ + devpriv->ai_config |= S526_AI_CTRL_DELAY;/* set the delay */ devpriv->ai_config |= 0x0001; /* ADC start bit */ @@ -416,20 +420,23 @@ static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, { struct s526_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int ctrl; int n; - unsigned short value; unsigned int d; int ret; - /* Set configured delay, enable channel for this channel only, - * select "ADC read" channel, set "ADC start" bit. */ - value = (devpriv->ai_config & 0x8000) | - ((1 << 5) << chan) | (chan << 1) | 0x0001; + /* + * Set configured delay, enable conversion and read for requested + * channel only, set "ADC start" bit. + */ + ctrl = (devpriv->ai_config & S526_AI_CTRL_DELAY) | + S526_AI_CTRL_CONV(chan) | S526_AI_CTRL_READ(chan) | + S526_AI_CTRL_START; /* convert n samples */ for (n = 0; n < insn->n; n++) { /* trigger conversion */ - outw(value, dev->iobase + REG_ADC); + outw(ctrl, dev->iobase + S526_AI_CTRL_REG); /* wait for conversion to end */ ret = comedi_timeout(dev, s, insn, s526_ai_eoc, 0); From 15bccf2e5d7f5d1960c41962b2b628bd1b034ce2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:16 -0700 Subject: [PATCH 0087/2431] staging: comedi: s526: add defines for the ao/ai data register The same register is used for analog output and input data. Add defines for both for added clarity. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index ff576d32753e..5f8a5d3aa9f7 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -65,7 +65,8 @@ #define S526_AI_CTRL_CONV(x) (1 << (5 + ((x) & 0x9))) #define S526_AI_CTRL_READ(x) (((x) & 0xf) << 1) #define S526_AI_CTRL_START BIT(0) -#define REG_ADD 0x08 +#define S526_AO_REG 0x08 +#define S526_AI_REG 0x08 #define REG_DIO 0x0A #define REG_IER 0x0C #define REG_ISR 0x0E @@ -445,8 +446,7 @@ static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, outw(ISR_ADC_DONE, dev->iobase + REG_ISR); - /* read data */ - d = inw(dev->iobase + REG_ADD); + d = inw(dev->iobase + S526_AI_REG); /* munge data */ data[n] = d ^ 0x8000; @@ -471,7 +471,7 @@ static int s526_ao_insn_write(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { val = data[i]; - outw(val, dev->iobase + REG_ADD); + outw(val, dev->iobase + S526_AO_REG); outw(ctrl, dev->iobase + S526_AO_CTRL_REG); } s->readback[chan] = val; From 8a5d6d2ee252dd76305c18f843f82ee7ee376371 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:17 -0700 Subject: [PATCH 0088/2431] staging: comedi: s526: define the interrupt enable/status registers These registers use the same bit defines. Define both of them and the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 5f8a5d3aa9f7..11a661b353ca 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -68,8 +68,14 @@ #define S526_AO_REG 0x08 #define S526_AI_REG 0x08 #define REG_DIO 0x0A -#define REG_IER 0x0C -#define REG_ISR 0x0E +#define S526_INT_ENA_REG 0x0c +#define S526_INT_STATUS_REG 0x0e +#define S526_INT_DIO(x) BIT(8 + ((x) & 0x7)) +#define S526_INT_EEPROM BIT(7) /* status only */ +#define S526_INT_CNTR(x) BIT(3 + (3 - ((x) & 0x3))) +#define S526_INT_AI BIT(2) +#define S526_INT_AO BIT(1) +#define S526_INT_TIMER BIT(0) #define REG_MSC 0x10 #define S526_GPCT_LSB_REG(x) (0x12 + ((x) * 8)) @@ -372,7 +378,6 @@ static int s526_gpct_winsn(struct comedi_device *dev, return insn->n; } -#define ISR_ADC_DONE 0x4 static int s526_ai_insn_config(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) @@ -393,7 +398,7 @@ static int s526_ai_insn_config(struct comedi_device *dev, * INSN_READ handler. */ /* Enable ADC interrupt */ - outw(ISR_ADC_DONE, dev->iobase + REG_IER); + outw(S526_INT_AI, dev->iobase + S526_INT_ENA_REG); devpriv->ai_config = (data[0] & 0x3ff) << 5; if (data[1] > 0) devpriv->ai_config |= S526_AI_CTRL_DELAY;/* set the delay */ @@ -410,8 +415,8 @@ static int s526_ai_eoc(struct comedi_device *dev, { unsigned int status; - status = inw(dev->iobase + REG_ISR); - if (status & ISR_ADC_DONE) + status = inw(dev->iobase + S526_INT_STATUS_REG); + if (status & S526_INT_AI) return 0; return -EBUSY; } @@ -444,7 +449,7 @@ static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, if (ret) return ret; - outw(ISR_ADC_DONE, dev->iobase + REG_ISR); + outw(S526_INT_AI, dev->iobase + S526_INT_STATUS_REG); d = inw(dev->iobase + S526_AI_REG); From 658441b48c01886217d6119d5cfd5c3278b37ddf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:18 -0700 Subject: [PATCH 0089/2431] staging: comedi: s526: define the digtial I/O control register and bits Define this register and its bits and remove the magic numbers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 28 ++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 11a661b353ca..0f56a8988ac6 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -67,7 +67,14 @@ #define S526_AI_CTRL_START BIT(0) #define S526_AO_REG 0x08 #define S526_AI_REG 0x08 -#define REG_DIO 0x0A +#define S526_DIO_CTRL_REG 0x0a +#define S526_DIO_CTRL_DIO3_NEG BIT(15) /* irq on DIO3 neg/pos edge */ +#define S526_DIO_CTRL_DIO2_NEG BIT(14) /* irq on DIO2 neg/pos edge */ +#define S526_DIO_CTRL_DIO1_NEG BIT(13) /* irq on DIO1 neg/pos edge */ +#define S526_DIO_CTRL_DIO0_NEG BIT(12) /* irq on DIO0 neg/pos edge */ +#define S526_DIO_CTRL_GRP2_OUT BIT(11) +#define S526_DIO_CTRL_GRP1_OUT BIT(10) +#define S526_DIO_CTRL_GRP2_NEG BIT(8) /* irq on DIO[4-7] neg/pos edge */ #define S526_INT_ENA_REG 0x0c #define S526_INT_STATUS_REG 0x0e #define S526_INT_DIO(x) BIT(8 + ((x) & 0x7)) @@ -490,9 +497,9 @@ static int s526_dio_insn_bits(struct comedi_device *dev, unsigned int *data) { if (comedi_dio_update_state(s, data)) - outw(s->state, dev->iobase + REG_DIO); + outw(s->state, dev->iobase + S526_DIO_CTRL_REG); - data[1] = inw(dev->iobase + REG_DIO) & 0xff; + data[1] = inw(dev->iobase + S526_DIO_CTRL_REG) & 0xff; return insn->n; } @@ -506,6 +513,10 @@ static int s526_dio_insn_config(struct comedi_device *dev, unsigned int mask; int ret; + /* + * Digital I/O can be configured as inputs or outputs in + * groups of 4; DIO group 1 (DIO0-3) and DIO group 2 (DIO4-7). + */ if (chan < 4) mask = 0x0f; else @@ -515,17 +526,16 @@ static int s526_dio_insn_config(struct comedi_device *dev, if (ret) return ret; - /* bit 10/11 set the group 1/2's mode */ if (s->io_bits & 0x0f) - s->state |= (1 << 10); + s->state |= S526_DIO_CTRL_GRP1_OUT; else - s->state &= ~(1 << 10); + s->state &= ~S526_DIO_CTRL_GRP1_OUT; if (s->io_bits & 0xf0) - s->state |= (1 << 11); + s->state |= S526_DIO_CTRL_GRP2_OUT; else - s->state &= ~(1 << 11); + s->state &= ~S526_DIO_CTRL_GRP2_OUT; - outw(s->state, dev->iobase + REG_DIO); + outw(s->state, dev->iobase + S526_DIO_CTRL_REG); return insn->n; } From 64fe38f49cb2d1335d077f1b9a387177fea22dac Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:19 -0700 Subject: [PATCH 0090/2431] staging: comedi: s526: define the miscellaneous register and bits Define this register and its bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 0f56a8988ac6..22724a242005 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -83,8 +83,8 @@ #define S526_INT_AI BIT(2) #define S526_INT_AO BIT(1) #define S526_INT_TIMER BIT(0) -#define REG_MSC 0x10 - +#define S526_MISC_REG 0x10 +#define S526_MISC_LED_OFF BIT(0) #define S526_GPCT_LSB_REG(x) (0x12 + ((x) * 8)) #define S526_GPCT_MSB_REG(x) (0x14 + ((x) * 8)) #define S526_GPCT_MODE_REG(x) (0x16 + ((x) * 8)) From 2c6b58246de18a9915e5a5804800a7c0a302f8c2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:20 -0700 Subject: [PATCH 0091/2431] staging: comedi: s526: define the eeprom data and control registers Define these registers and their bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 22724a242005..9ed3edd6ba0c 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -89,9 +89,12 @@ #define S526_GPCT_MSB_REG(x) (0x14 + ((x) * 8)) #define S526_GPCT_MODE_REG(x) (0x16 + ((x) * 8)) #define S526_GPCT_CTRL_REG(x) (0x18 + ((x) * 8)) - -#define REG_EED 0x32 -#define REG_EEC 0x34 +#define S526_EEPROM_DATA_REG 0x32 +#define S526_EEPROM_CTRL_REG 0x34 +#define S526_EEPROM_CTRL_ADDR(x) (((x) & 0x3f) << 3) +#define S526_EEPROM_CTRL(x) (((x) & 0x3) << 1) +#define S526_EEPROM_CTRL_READ S526_EEPROM_CTRL(2) +#define S526_EEPROM_CTRL_START BIT(0) struct counter_mode_register_t { #if defined(__LITTLE_ENDIAN_BITFIELD) From 12911c2d6ae64315edb721cc142cc6d4b20db8b5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:21 -0700 Subject: [PATCH 0092/2431] staging: comedi: s526: tidy up subdevice init For aesthetics, add some whitespace to the subdevice initialization. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 71 ++++++++++++++------------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 9ed3edd6ba0c..242db7d9dfb3 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -561,51 +561,54 @@ static int s526_attach(struct comedi_device *dev, struct comedi_devconfig *it) if (ret) return ret; + /* General-Purpose Counter/Timer (GPCT) */ s = &dev->subdevices[0]; - /* GENERAL-PURPOSE COUNTER/TIME (GPCT) */ - s->type = COMEDI_SUBD_COUNTER; - s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_LSAMPL; - s->n_chan = 4; - s->maxdata = 0x00ffffff; /* 24 bit counter */ - s->insn_read = s526_gpct_rinsn; - s->insn_config = s526_gpct_insn_config; - s->insn_write = s526_gpct_winsn; + s->type = COMEDI_SUBD_COUNTER; + s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_LSAMPL; + s->n_chan = 4; + s->maxdata = 0x00ffffff; + s->insn_read = s526_gpct_rinsn; + s->insn_config = s526_gpct_insn_config; + s->insn_write = s526_gpct_winsn; + /* + * Analog Input subdevice + * channels 0 to 7 are the regular differential inputs + * channel 8 is "reference 0" (+10V) + * channel 9 is "reference 1" (0V) + */ s = &dev->subdevices[1]; - /* analog input subdevice */ - s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_DIFF; - /* channels 0 to 7 are the regular differential inputs */ - /* channel 8 is "reference 0" (+10V), channel 9 is "reference 1" (0V) */ - s->n_chan = 10; - s->maxdata = 0xffff; - s->range_table = &range_bipolar10; - s->len_chanlist = 16; - s->insn_read = s526_ai_rinsn; - s->insn_config = s526_ai_insn_config; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_DIFF; + s->n_chan = 10; + s->maxdata = 0xffff; + s->range_table = &range_bipolar10; + s->len_chanlist = 16; + s->insn_read = s526_ai_rinsn; + s->insn_config = s526_ai_insn_config; + /* Analog Output subdevice */ s = &dev->subdevices[2]; - /* analog output subdevice */ - s->type = COMEDI_SUBD_AO; - s->subdev_flags = SDF_WRITABLE; - s->n_chan = 4; - s->maxdata = 0xffff; - s->range_table = &range_bipolar10; - s->insn_write = s526_ao_insn_write; + s->type = COMEDI_SUBD_AO; + s->subdev_flags = SDF_WRITABLE; + s->n_chan = 4; + s->maxdata = 0xffff; + s->range_table = &range_bipolar10; + s->insn_write = s526_ao_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) return ret; + /* Digital I/O subdevice */ s = &dev->subdevices[3]; - /* digital i/o subdevice */ - s->type = COMEDI_SUBD_DIO; - s->subdev_flags = SDF_READABLE | SDF_WRITABLE; - s->n_chan = 8; - s->maxdata = 1; - s->range_table = &range_digital; - s->insn_bits = s526_dio_insn_bits; - s->insn_config = s526_dio_insn_config; + s->type = COMEDI_SUBD_DIO; + s->subdev_flags = SDF_READABLE | SDF_WRITABLE; + s->n_chan = 8; + s->maxdata = 1; + s->range_table = &range_digital; + s->insn_bits = s526_dio_insn_bits; + s->insn_config = s526_dio_insn_config; return 0; } From 09c5d6c83ec3bd56ee1ebef8bec42956b32ca7eb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:22 -0700 Subject: [PATCH 0093/2431] staging: comedi: s526: wait for analog output conversions to complete It's possible for the user to write more than one value to an analog output channel with the (*insn_write) operation. Use comedi_timeout() to check the interrupt status register to ensure that each data conversion is complete before writing the next value. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 242db7d9dfb3..152be955f8ab 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -418,16 +418,19 @@ static int s526_ai_insn_config(struct comedi_device *dev, return result; } -static int s526_ai_eoc(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, - unsigned long context) +static int s526_eoc(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned long context) { unsigned int status; status = inw(dev->iobase + S526_INT_STATUS_REG); - if (status & S526_INT_AI) + if (status & context) { + /* we got our eoc event, clear it */ + outw(context, dev->iobase + S526_INT_STATUS_REG); return 0; + } return -EBUSY; } @@ -455,12 +458,10 @@ static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, outw(ctrl, dev->iobase + S526_AI_CTRL_REG); /* wait for conversion to end */ - ret = comedi_timeout(dev, s, insn, s526_ai_eoc, 0); + ret = comedi_timeout(dev, s, insn, s526_eoc, S526_INT_AI); if (ret) return ret; - outw(S526_INT_AI, dev->iobase + S526_INT_STATUS_REG); - d = inw(dev->iobase + S526_AI_REG); /* munge data */ @@ -479,6 +480,7 @@ static int s526_ao_insn_write(struct comedi_device *dev, unsigned int chan = CR_CHAN(insn->chanspec); unsigned int ctrl = S526_AO_CTRL_CHAN(chan); unsigned int val = s->readback[chan]; + int ret; int i; outw(ctrl, dev->iobase + S526_AO_CTRL_REG); @@ -488,6 +490,11 @@ static int s526_ao_insn_write(struct comedi_device *dev, val = data[i]; outw(val, dev->iobase + S526_AO_REG); outw(ctrl, dev->iobase + S526_AO_CTRL_REG); + + /* wait for conversion to end */ + ret = comedi_timeout(dev, s, insn, s526_eoc, S526_INT_AO); + if (ret) + return ret; } s->readback[chan] = val; From bf483f1e07d0b292ae5d5fdf94d901fa4415ab38 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:23 -0700 Subject: [PATCH 0094/2431] staging: comedi: s526: tidy up s526_ai_rinsn() Rename this function to follow the normal naming in comedi drivers. Use the comedi_offset_munge() helper to munge the hardware two's complement data to the comedi offset binary format. Change the final return to insn->n to clarify the return value without the need for the comment. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 152be955f8ab..1a5aa3d3a36e 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -434,15 +434,17 @@ static int s526_eoc(struct comedi_device *dev, return -EBUSY; } -static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int s526_ai_insn_read(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct s526_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int ctrl; - int n; - unsigned int d; + unsigned int val; int ret; + int i; /* * Set configured delay, enable conversion and read for requested @@ -452,8 +454,7 @@ static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, S526_AI_CTRL_CONV(chan) | S526_AI_CTRL_READ(chan) | S526_AI_CTRL_START; - /* convert n samples */ - for (n = 0; n < insn->n; n++) { + for (i = 0; i < insn->n; i++) { /* trigger conversion */ outw(ctrl, dev->iobase + S526_AI_CTRL_REG); @@ -462,14 +463,11 @@ static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, if (ret) return ret; - d = inw(dev->iobase + S526_AI_REG); - - /* munge data */ - data[n] = d ^ 0x8000; + val = inw(dev->iobase + S526_AI_REG); + data[i] = comedi_offset_munge(s, val); } - /* return the number of samples read/written */ - return n; + return insn->n; } static int s526_ao_insn_write(struct comedi_device *dev, @@ -591,7 +589,7 @@ static int s526_attach(struct comedi_device *dev, struct comedi_devconfig *it) s->maxdata = 0xffff; s->range_table = &range_bipolar10; s->len_chanlist = 16; - s->insn_read = s526_ai_rinsn; + s->insn_read = s526_ai_insn_read; s->insn_config = s526_ai_insn_config; /* Analog Output subdevice */ From 21424e3fa81505f466841eaecaa373f160f44cf4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:24 -0700 Subject: [PATCH 0095/2431] staging: comedi: s526: remove s526_ai_insn_config() This (*insn_config) does not follow the comedi core API. It also would not work as expected. It appears to be trying to configure the analog input subdevice so that the (*insn_read) would read multiple channels (data[0]) and optionally enable the 15us delay (data[1]) needed for the multiplexor to change channels between samples. Unfortunately, the comedi core expects (*insn_read) operations to return 1 or more samples for a single channel, which is what the (*insn_read) in this driver does. The (*insn_config) is also enabling the analog input end-of-conversion interrupt. This isn't needed, and might be a problem since the driver does not currently request and interrupt. The enable bit does not need to be set for the end-of-conversion to occur in the interrupt status register. Remove the (*insn_config) and modify the (*insn_read) to automatically handle the 15us delay when needed. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 49 ++++++--------------------- 1 file changed, 11 insertions(+), 38 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 1a5aa3d3a36e..7cf6250bdf30 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -133,7 +133,7 @@ union cmReg { struct s526_private { unsigned int gpct_config[4]; - unsigned short ai_config; + unsigned short ai_ctrl; }; static void s526_gpct_write(struct comedi_device *dev, @@ -388,36 +388,6 @@ static int s526_gpct_winsn(struct comedi_device *dev, return insn->n; } -static int s526_ai_insn_config(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) -{ - struct s526_private *devpriv = dev->private; - int result = -EINVAL; - - if (insn->n < 1) - return result; - - result = insn->n; - - /* data[0] : channels was set in relevant bits. - data[1] : delay - */ - /* COMMENT: abbotti 2008-07-24: I don't know why you'd want to - * enable channels here. The channel should be enabled in the - * INSN_READ handler. */ - - /* Enable ADC interrupt */ - outw(S526_INT_AI, dev->iobase + S526_INT_ENA_REG); - devpriv->ai_config = (data[0] & 0x3ff) << 5; - if (data[1] > 0) - devpriv->ai_config |= S526_AI_CTRL_DELAY;/* set the delay */ - - devpriv->ai_config |= 0x0001; /* ADC start bit */ - - return result; -} - static int s526_eoc(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -446,17 +416,21 @@ static int s526_ai_insn_read(struct comedi_device *dev, int ret; int i; - /* - * Set configured delay, enable conversion and read for requested - * channel only, set "ADC start" bit. - */ - ctrl = (devpriv->ai_config & S526_AI_CTRL_DELAY) | - S526_AI_CTRL_CONV(chan) | S526_AI_CTRL_READ(chan) | + ctrl = S526_AI_CTRL_CONV(chan) | S526_AI_CTRL_READ(chan) | S526_AI_CTRL_START; + if (ctrl != devpriv->ai_ctrl) { + /* + * The multiplexor needs to change, enable the 15us + * delay for the first sample. + */ + devpriv->ai_ctrl = ctrl; + ctrl |= S526_AI_CTRL_DELAY; + } for (i = 0; i < insn->n; i++) { /* trigger conversion */ outw(ctrl, dev->iobase + S526_AI_CTRL_REG); + ctrl &= ~S526_AI_CTRL_DELAY; /* wait for conversion to end */ ret = comedi_timeout(dev, s, insn, s526_eoc, S526_INT_AI); @@ -590,7 +564,6 @@ static int s526_attach(struct comedi_device *dev, struct comedi_devconfig *it) s->range_table = &range_bipolar10; s->len_chanlist = 16; s->insn_read = s526_ai_insn_read; - s->insn_config = s526_ai_insn_config; /* Analog Output subdevice */ s = &dev->subdevices[2]; From 537dd665e42794886266f50c8379b879d5d99af3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:25 -0700 Subject: [PATCH 0096/2431] staging: comedi: s526: remove unnecessary defines Remove a couple unused defines, Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 7cf6250bdf30..801413d7b0c3 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -39,13 +39,9 @@ #include "../comedidev.h" #include -#define S526_START_AI_CONV 0 -#define S526_AI_READ 0 - -/* Ports */ -#define S526_NUM_PORTS 27 - -/* registers */ +/* + * Register I/O map + */ #define S526_TIMER_REG 0x00 #define S526_TIMER_LOAD(x) (((x) & 0xff) << 8) #define S526_TIMER_MODE ((x) << 1) From 4f3ed25664073891ae093bfe2fa35480bbd10717 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:26 -0700 Subject: [PATCH 0097/2431] staging: comedi: s526: remove #if 0'ed out code block This #if 0'ed out code is not necessary. It's actually just a copy of the psuedo code in the S526 Hardware Manual that shows an example of a counter application. Remove it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 29 --------------------------- 1 file changed, 29 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 801413d7b0c3..43f9c0c3b3fc 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -188,35 +188,6 @@ static int s526_gpct_insn_config(struct comedi_device *dev, */ devpriv->gpct_config[chan] = data[0]; -#if 0 - /* Example of Counter Application */ - /* One-shot (software trigger) */ - cmReg.reg.coutSource = 0; /* out RCAP */ - cmReg.reg.coutPolarity = 1; /* Polarity inverted */ - cmReg.reg.autoLoadResetRcap = 0;/* Auto load disabled */ - cmReg.reg.hwCtEnableSource = 3; /* NOT RCAP */ - cmReg.reg.ctEnableCtrl = 2; /* Hardware */ - cmReg.reg.clockSource = 2; /* Internal */ - cmReg.reg.countDir = 1; /* Down */ - cmReg.reg.countDirCtrl = 1; /* Software */ - cmReg.reg.outputRegLatchCtrl = 0; /* latch on read */ - cmReg.reg.preloadRegSel = 0; /* PR0 */ - cmReg.reg.reserved = 0; - - outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - - s526_gpct_write(dev, chan, 0x0013c68); - - /* Reset the counter */ - outw(0x8000, dev->iobase + S526_GPCT_CTRL_REG(chan)); - /* Load the counter from PR0 */ - outw(0x4000, dev->iobase + S526_GPCT_CTRL_REG(chan)); - - /* Reset RCAP (fires one-shot) */ - outw(0x0008, dev->iobase + S526_GPCT_CTRL_REG(chan)); - -#endif - #if 1 /* Set Counter Mode Register */ cmReg.value = data[1] & 0xffff; From a399d81d41e17410ffd7a84af9bd7ec8aafa58a2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:27 -0700 Subject: [PATCH 0098/2431] staging: comedi: s526: fix the block comments Tidy up the block comments to fix the checkpatch.pl warnings. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/s526.c | 57 +++++++++++++++------------ 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 43f9c0c3b3fc..d70c97947627 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -176,15 +176,17 @@ static int s526_gpct_insn_config(struct comedi_device *dev, unsigned int val; union cmReg cmReg; - /* Check what type of Counter the user requested, data[0] contains */ - /* the Application type */ + /* + * Check what type of Counter the user requested + * data[0] contains the Application type + */ switch (data[0]) { case INSN_CONFIG_GPCT_QUADRATURE_ENCODER: /* - data[0]: Application Type - data[1]: Counter Mode Register Value - data[2]: Pre-load Register Value - data[3]: Conter Control Register + * data[0]: Application Type + * data[1]: Counter Mode Register Value + * data[2]: Pre-load Register Value + * data[3]: Conter Control Register */ devpriv->gpct_config[chan] = data[0]; @@ -214,11 +216,13 @@ static int s526_gpct_insn_config(struct comedi_device *dev, cmReg.reg.clockSource = 0; /* When to take into account the indexpulse: */ - /*if (data[2] == GPCT_IndexPhaseLowLow) { - } else if (data[2] == GPCT_IndexPhaseLowHigh) { - } else if (data[2] == GPCT_IndexPhaseHighLow) { - } else if (data[2] == GPCT_IndexPhaseHighHigh) { - }*/ + /* + * if (data[2] == GPCT_IndexPhaseLowLow) { + * } else if (data[2] == GPCT_IndexPhaseLowHigh) { + * } else if (data[2] == GPCT_IndexPhaseHighLow) { + * } else if (data[2] == GPCT_IndexPhaseHighHigh) { + * } + */ /* Take into account the index pulse? */ if (data[3] == GPCT_RESET_COUNTER_ON_INDEX) /* Auto load with INDEX^ */ @@ -248,11 +252,11 @@ static int s526_gpct_insn_config(struct comedi_device *dev, case INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR: /* - data[0]: Application Type - data[1]: Counter Mode Register Value - data[2]: Pre-load Register 0 Value - data[3]: Pre-load Register 1 Value - data[4]: Conter Control Register + * data[0]: Application Type + * data[1]: Counter Mode Register Value + * data[2]: Pre-load Register 0 Value + * data[3]: Pre-load Register 1 Value + * data[4]: Conter Control Register */ devpriv->gpct_config[chan] = data[0]; @@ -281,11 +285,11 @@ static int s526_gpct_insn_config(struct comedi_device *dev, case INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR: /* - data[0]: Application Type - data[1]: Counter Mode Register Value - data[2]: Pre-load Register 0 Value - data[3]: Pre-load Register 1 Value - data[4]: Conter Control Register + * data[0]: Application Type + * data[1]: Counter Mode Register Value + * data[2]: Pre-load Register 0 Value + * data[3]: Pre-load Register 1 Value + * data[4]: Conter Control Register */ devpriv->gpct_config[chan] = data[0]; @@ -332,11 +336,12 @@ static int s526_gpct_winsn(struct comedi_device *dev, /* Check what Application of Counter this channel is configured for */ switch (devpriv->gpct_config[chan]) { case INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR: - /* data[0] contains the PULSE_WIDTH - data[1] contains the PULSE_PERIOD - @pre PULSE_PERIOD > PULSE_WIDTH > 0 - The above periods must be expressed as a multiple of the - pulse frequency on the selected source + /* + * data[0] contains the PULSE_WIDTH + * data[1] contains the PULSE_PERIOD + * @pre PULSE_PERIOD > PULSE_WIDTH > 0 + * The above periods must be expressed as a multiple of the + * pulse frequency on the selected source */ if ((data[1] <= data[0]) || !data[0]) return -EINVAL; From 99555fc25a5f2a40f0d111a67b13bcd8e8d826b1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:54 -0700 Subject: [PATCH 0099/2431] staging: comedi: usbduxfast: chanlist check is Step 5 of (*do_cmdtest) The channel list should be checked in Step 5 of the (*do_cmdtest) not as part of the (*do_cmd). Factor the check out of usbduxfast_ai_cmd(). Tidy up the factored out code. The channel number 'i' will never be greater than NUMCHANNELS due to the subdevice setup and the checks done in the code. The up/down of the semaphore is also not needed because the (*do_cmdtest) never actually tries to access the hardware. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 58 ++++++++++++--------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index d90dc59982be..16b28faa2ec2 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -332,6 +332,31 @@ static int usbduxfast_submit_urb(struct comedi_device *dev) return 0; } +static int usbduxfast_ai_check_chanlist(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_cmd *cmd) +{ + unsigned int gain0 = CR_RANGE(cmd->chanlist[0]); + int i; + + for (i = 0; i < cmd->chanlist_len; ++i) { + unsigned int chan = CR_CHAN(cmd->chanlist[i]); + unsigned int gain = CR_RANGE(cmd->chanlist[i]); + + if (chan != i) { + dev_err(dev->class_dev, + "channels are not consecutive\n"); + return -EINVAL; + } + if (gain != gain0 && cmd->chanlist_len > 3) { + dev_err(dev->class_dev, + "gain must be the same for all channels\n"); + return -EINVAL; + } + } + return 0; +} + static int usbduxfast_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) @@ -417,7 +442,13 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev, if (err) return 3; - /* step 4: fix up any arguments */ + /* Step 4: fix up any arguments */ + + /* Step 5: check channel list if it exists */ + if (cmd->chanlist && cmd->chanlist_len > 0) + err |= usbduxfast_ai_check_chanlist(dev, s, cmd); + if (err) + return 5; return 0; } @@ -460,8 +491,8 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, { struct usbduxfast_private *devpriv = dev->private; struct comedi_cmd *cmd = &s->async->cmd; - unsigned int chan, gain, rngmask = 0xff; - int i, j, ret; + unsigned int rngmask = 0xff; + int j, ret; int result; long steps, steps_tmp; @@ -481,27 +512,6 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, */ devpriv->ignore = PACKETS_TO_IGNORE; - gain = CR_RANGE(cmd->chanlist[0]); - for (i = 0; i < cmd->chanlist_len; ++i) { - chan = CR_CHAN(cmd->chanlist[i]); - if (chan != i) { - dev_err(dev->class_dev, - "channels are not consecutive\n"); - up(&devpriv->sem); - return -EINVAL; - } - if ((gain != CR_RANGE(cmd->chanlist[i])) - && (cmd->chanlist_len > 3)) { - dev_err(dev->class_dev, - "gain must be the same for all channels\n"); - up(&devpriv->sem); - return -EINVAL; - } - if (i >= NUMCHANNELS) { - dev_err(dev->class_dev, "chanlist too long\n"); - break; - } - } steps = 0; if (cmd->convert_src == TRIG_TIMER) steps = (cmd->convert_arg * 30) / 1000; From db1876ff1e7c86dc97d1721ce2e5e0df71072acb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:55 -0700 Subject: [PATCH 0100/2431] staging: comedi: usbduxfast: only chanlist of 1, 2, 3, or 16 are supported The analog input (*do_cmd) only supports channel lists of 1, 2, 3, or 16 channels. Add a check for this to usbduxfast_ai_check_chanlist() and remove the check from usbduxfast_ai_cmd(). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 16b28faa2ec2..a8635b1659a4 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -339,6 +339,11 @@ static int usbduxfast_ai_check_chanlist(struct comedi_device *dev, unsigned int gain0 = CR_RANGE(cmd->chanlist[0]); int i; + if (cmd->chanlist_len > 3 && cmd->chanlist_len != 16) { + dev_err(dev->class_dev, "unsupported combination of channels\n"); + return -EINVAL; + } + for (i = 0; i < cmd->chanlist_len; ++i) { unsigned int chan = CR_CHAN(cmd->chanlist[i]); unsigned int gain = CR_RANGE(cmd->chanlist[i]); @@ -779,11 +784,6 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, usbduxfast_cmd_data(dev, 4, 0x09, 0x01, rngmask, 0xff); break; - - default: - dev_err(dev->class_dev, "unsupported combination of channels\n"); - up(&devpriv->sem); - return -EFAULT; } /* 0 means that the AD commands are sent */ From fd9fe1fc1cd4771eff4666379b915661d7a4f0d2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:56 -0700 Subject: [PATCH 0101/2431] staging: comedi: usbduxfast: remove impossible 'if (!devpriv)' checks The private data 'devpriv' is allocated in the (*auto_attach) before the subdevices are initialized and the (*auto_attach) has to complete successfully before the core will call any of the subdevice operations. Because of this the (!devpriv) checks in the subdevice code can never fail. Remove them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index a8635b1659a4..cb221e7ab60e 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -223,9 +223,6 @@ static int usbduxfast_ai_cancel(struct comedi_device *dev, struct usbduxfast_private *devpriv = dev->private; int ret; - if (!devpriv) - return -EFAULT; - down(&devpriv->sem); ret = usbduxfast_ai_stop(dev, 1); up(&devpriv->sem); @@ -317,9 +314,6 @@ static int usbduxfast_submit_urb(struct comedi_device *dev) struct usbduxfast_private *devpriv = dev->private; int ret; - if (!devpriv) - return -EFAULT; - usb_fill_bulk_urb(devpriv->urb, usb, usb_rcvbulkpipe(usb, BULKINEP), devpriv->inbuf, SIZEINBUF, usbduxfast_ai_interrupt, dev); @@ -466,9 +460,6 @@ static int usbduxfast_ai_inttrig(struct comedi_device *dev, struct comedi_cmd *cmd = &s->async->cmd; int ret; - if (!devpriv) - return -EFAULT; - if (trig_num != cmd->start_arg) return -EINVAL; @@ -501,9 +492,6 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, int result; long steps, steps_tmp; - if (!devpriv) - return -EFAULT; - down(&devpriv->sem); if (devpriv->ai_cmd_running) { dev_err(dev->class_dev, "ai_cmd not possible\n"); From 26961546738e42f3672ba4022c2d0b8b2b6ea882 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:57 -0700 Subject: [PATCH 0102/2431] staging: comedi: usbduxfast: use preferred kernel types As suggested by checkpatch.pl: CHECK: Prefer kernel type 'u8' over 'uint8_t' CHECK: Prefer kernel type 's8' over 'int8_t' For consistency, also change the uint16_t and int16_t types to u16 and s16. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index cb221e7ab60e..9d889be20039 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -97,7 +97,7 @@ /* * size of one A/D value */ -#define SIZEADIN (sizeof(int16_t)) +#define SIZEADIN (sizeof(s16)) /* * size of the input-buffer IN BYTES @@ -156,8 +156,8 @@ static const struct comedi_lrange range_usbduxfast_ai_range = { */ struct usbduxfast_private { struct urb *urb; /* BULK-transfer handling: urb */ - uint8_t *duxbuf; - int8_t *inbuf; + u8 *duxbuf; + s8 *inbuf; short int ai_cmd_running; /* asynchronous command is running */ int ignore; /* counter which ignores the first buffers */ @@ -190,8 +190,7 @@ static int usbduxfast_send_cmd(struct comedi_device *dev, int cmd_type) } static void usbduxfast_cmd_data(struct comedi_device *dev, int index, - uint8_t len, uint8_t op, uint8_t out, - uint8_t log) + u8 len, u8 op, u8 out, u8 log) { struct usbduxfast_private *devpriv = dev->private; @@ -812,7 +811,7 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, struct usbduxfast_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int range = CR_RANGE(insn->chanspec); - uint8_t rngmask = range ? (0xff - 0x04) : 0xff; + u8 rngmask = range ? (0xff - 0x04) : 0xff; int i, j, n, actual_length; int ret; @@ -867,14 +866,14 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, up(&devpriv->sem); return ret; } - n = actual_length / sizeof(uint16_t); + n = actual_length / sizeof(u16); if ((n % 16) != 0) { dev_err(dev->class_dev, "insn data packet corrupted\n"); up(&devpriv->sem); return -EINVAL; } for (j = chan; (j < n) && (i < insn->n); j = j + 16) { - data[i] = ((uint16_t *) (devpriv->inbuf))[j]; + data[i] = ((u16 *)(devpriv->inbuf))[j]; i++; } } @@ -922,7 +921,7 @@ static int usbduxfast_upload_firmware(struct comedi_device *dev, unsigned long context) { struct usb_device *usb = comedi_to_usb_dev(dev); - uint8_t *buf; + u8 *buf; unsigned char *tmp; int ret; From 24b83783ceda1e7a0e871d9110cbf966387da4d5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:58 -0700 Subject: [PATCH 0103/2431] staging: comedi: usbduxfast: fix multi-line comment This comment does not need to be multi-line. Fix it to remove the checkpatch warning. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 9d889be20039..90422de80d82 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -159,8 +159,7 @@ struct usbduxfast_private { u8 *duxbuf; s8 *inbuf; short int ai_cmd_running; /* asynchronous command is running */ - int ignore; /* counter which ignores the first - buffers */ + int ignore; /* counter which ignores the first buffers */ struct semaphore sem; }; From d636f87d861308a46ad18bb9b23c34ab32ea39de Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:59 -0700 Subject: [PATCH 0104/2431] staging: comedi: usbduxfast: TRIG_EXT only works for 1 or 16 channels Move this check from the (*do_cmd) to the (*do_cmdtest). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 90422de80d82..118347671107 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -399,6 +399,11 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev, if (!cmd->chanlist_len) err |= -EINVAL; + /* external start trigger is only valid for 1 or 16 channels */ + if (cmd->start_src == TRIG_EXT && + cmd->chanlist_len != 1 && cmd->chanlist_len != 16) + err |= -EINVAL; + err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, cmd->chanlist_len); @@ -519,13 +524,6 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, up(&devpriv->sem); return -EINVAL; } - if ((cmd->start_src == TRIG_EXT) && (cmd->chanlist_len != 1) - && (cmd->chanlist_len != 16)) { - dev_err(dev->class_dev, - "TRIG_EXT only with 1 or 16 channels possible\n"); - up(&devpriv->sem); - return -EINVAL; - } switch (cmd->chanlist_len) { case 1: From fe0d96bf5198a06d4620a10f7faba0e596902e72 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:00 -0700 Subject: [PATCH 0105/2431] staging: comedi: usbduxfast: TRIG_EXT is only valid for cmd->start_src According to the code, and verified with the author Bernd Porr, the TRIG_EXT trigger is only valid for the cmd->start_src. Remove this trigger from the cmd->scan_begin_src and cmd->convert_src. The only valid scan_begin_src is then TRIG_FOLLOW and the convert_src is only TRIG_TIMER. Remove the redundant unique trigger checks in Step 2b of the (*do_cmdtest) as well as any other unnecessary checks of those trigger sources. Also remove the incorrect comment for a cmd->stop_src of TRIG_EXT. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 49 ++++++--------------- 1 file changed, 13 insertions(+), 36 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 118347671107..e18b14e9abbf 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -366,10 +366,8 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev, err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT | TRIG_INT); - err |= comedi_check_trigger_src(&cmd->scan_begin_src, - TRIG_FOLLOW | TRIG_EXT); - err |= comedi_check_trigger_src(&cmd->convert_src, - TRIG_TIMER | TRIG_EXT); + err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_FOLLOW); + err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_TIMER); err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); @@ -379,16 +377,10 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev, /* Step 2a : make sure trigger sources are unique */ err |= comedi_check_trigger_is_unique(cmd->start_src); - err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); - err |= comedi_check_trigger_is_unique(cmd->convert_src); err |= comedi_check_trigger_is_unique(cmd->stop_src); /* Step 2b : and mutually compatible */ - /* can't have external stop and start triggers at once */ - if (cmd->start_src == TRIG_EXT && cmd->stop_src == TRIG_EXT) - err |= -EINVAL; - if (err) return 2; @@ -412,34 +404,21 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev, else min_sample_period = MIN_SAMPLING_PERIOD; - if (cmd->convert_src == TRIG_TIMER) { - steps = cmd->convert_arg * 30; - if (steps < (min_sample_period * 1000)) - steps = min_sample_period * 1000; + steps = cmd->convert_arg * 30; + if (steps < (min_sample_period * 1000)) + steps = min_sample_period * 1000; - if (steps > (MAX_SAMPLING_PERIOD * 1000)) - steps = MAX_SAMPLING_PERIOD * 1000; + if (steps > (MAX_SAMPLING_PERIOD * 1000)) + steps = MAX_SAMPLING_PERIOD * 1000; - /* calc arg again */ - tmp = steps / 30; - err |= comedi_check_trigger_arg_is(&cmd->convert_arg, tmp); - } + /* calc arg again */ + tmp = steps / 30; + err |= comedi_check_trigger_arg_is(&cmd->convert_arg, tmp); - /* stop source */ - switch (cmd->stop_src) { - case TRIG_COUNT: + if (cmd->stop_src == TRIG_COUNT) err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); - break; - case TRIG_NONE: + else /* TRIG_NONE */ err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); - break; - /* - * TRIG_EXT doesn't care since it doesn't trigger - * off a numbered channel - */ - default: - break; - } if (err) return 3; @@ -508,9 +487,7 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, */ devpriv->ignore = PACKETS_TO_IGNORE; - steps = 0; - if (cmd->convert_src == TRIG_TIMER) - steps = (cmd->convert_arg * 30) / 1000; + steps = (cmd->convert_arg * 30) / 1000; if ((steps < MIN_SAMPLING_PERIOD) && (cmd->chanlist_len != 1)) { dev_err(dev->class_dev, From c748debc66026d1400686ce9bd5183d5bcf36ec3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:01 -0700 Subject: [PATCH 0106/2431] staging: comedi: usbduxfast: tidy up the conversion timing validation Cleanup the validation of the cmd->convert_arg to use the same calculation in the (*do_cmdtest) and the (*do_cmd). Remove the, then unnecessary, redundant check in the (*do_cmd). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 46 +++++++-------------- 1 file changed, 16 insertions(+), 30 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index e18b14e9abbf..ae775964c7d5 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -359,8 +359,8 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev, struct comedi_cmd *cmd) { int err = 0; - long int steps, tmp; - int min_sample_period; + unsigned int steps; + unsigned int arg; /* Step 1 : check if triggers are trivially valid */ @@ -399,21 +399,20 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev, err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, cmd->chanlist_len); - if (cmd->chanlist_len == 1) - min_sample_period = 1; - else - min_sample_period = MIN_SAMPLING_PERIOD; - - steps = cmd->convert_arg * 30; - if (steps < (min_sample_period * 1000)) - steps = min_sample_period * 1000; - - if (steps > (MAX_SAMPLING_PERIOD * 1000)) - steps = MAX_SAMPLING_PERIOD * 1000; - - /* calc arg again */ - tmp = steps / 30; - err |= comedi_check_trigger_arg_is(&cmd->convert_arg, tmp); + /* + * Validate the conversion timing: + * for 1 channel the timing in 30MHz "steps" is: + * steps <= MAX_SAMPLING_PERIOD + * for all other chanlist_len it is: + * MIN_SAMPLING_PERIOD <= steps <= MAX_SAMPLING_PERIOD + */ + steps = (cmd->convert_arg * 30) / 1000; + if (cmd->chanlist_len != 1) + err |= comedi_check_trigger_arg_min(&steps, + MIN_SAMPLING_PERIOD); + err |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD); + arg = (steps * 1000) / 30; + err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); if (cmd->stop_src == TRIG_COUNT) err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); @@ -489,19 +488,6 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, steps = (cmd->convert_arg * 30) / 1000; - if ((steps < MIN_SAMPLING_PERIOD) && (cmd->chanlist_len != 1)) { - dev_err(dev->class_dev, - "steps=%ld, scan_begin_arg=%d. Not properly tested by cmdtest?\n", - steps, cmd->scan_begin_arg); - up(&devpriv->sem); - return -EINVAL; - } - if (steps > MAX_SAMPLING_PERIOD) { - dev_err(dev->class_dev, "sampling rate too low\n"); - up(&devpriv->sem); - return -EINVAL; - } - switch (cmd->chanlist_len) { case 1: /* From 7b0fc5baa0bd75fa04cd784828d7d072fb905144 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:02 -0700 Subject: [PATCH 0107/2431] staging: comedi: usbduxfast: use a common exit path in ai (*do_cmd) For aesthetics, use 'goto' and a common exit point in this function so that the up of the semaphore is not overlooked. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index ae775964c7d5..60f1c5e15a6a 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -470,14 +470,12 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, struct comedi_cmd *cmd = &s->async->cmd; unsigned int rngmask = 0xff; int j, ret; - int result; long steps, steps_tmp; down(&devpriv->sem); if (devpriv->ai_cmd_running) { - dev_err(dev->class_dev, "ai_cmd not possible\n"); - up(&devpriv->sem); - return -EBUSY; + ret = -EBUSY; + goto cmd_exit; } /* @@ -734,11 +732,9 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, } /* 0 means that the AD commands are sent */ - result = usbduxfast_send_cmd(dev, SENDADCOMMANDS); - if (result < 0) { - up(&devpriv->sem); - return result; - } + ret = usbduxfast_send_cmd(dev, SENDADCOMMANDS); + if (ret < 0) + goto cmd_exit; if ((cmd->start_src == TRIG_NOW) || (cmd->start_src == TRIG_EXT)) { /* enable this acquisition operation */ @@ -747,16 +743,17 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, if (ret < 0) { devpriv->ai_cmd_running = 0; /* fixme: unlink here?? */ - up(&devpriv->sem); - return ret; + goto cmd_exit; } s->async->inttrig = NULL; } else { /* TRIG_INT */ s->async->inttrig = usbduxfast_ai_inttrig; } + +cmd_exit: up(&devpriv->sem); - return 0; + return ret; } /* From a05e94bd5230a90eca2905495e764a0ad707c498 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:03 -0700 Subject: [PATCH 0108/2431] staging: comedi: usbduxfast: document strange ai maxdata The subdevice 'maxdata' is typically a mask of the valid bits that can be returned by a subdevice, (1 << bits) - 1. The analog inputs of this device have a resolution of 12-bits so the 'maxdata' should be 0x0fff. But, this hardware can produce a value of 0x1000 indicating an overflow from the ADC. The comedilib library's comedi_to_phys() function will then return NAN when this value is read from the hardware. Add a comment to clarify the strage 'maxdata' value. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 60f1c5e15a6a..9e846b43f54e 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -865,7 +865,7 @@ static int usbduxfast_attach_common(struct comedi_device *dev) s->do_cmdtest = usbduxfast_ai_cmdtest; s->do_cmd = usbduxfast_ai_cmd; s->cancel = usbduxfast_ai_cancel; - s->maxdata = 0x1000; + s->maxdata = 0x1000; /* 12-bit + 1 overflow bit */ s->range_table = &range_usbduxfast_ai_range; up(&devpriv->sem); From 7c79c014cba5694633ada77811ce14654dfb8227 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:04 -0700 Subject: [PATCH 0109/2431] staging: comedi: usbduxfast: remove unnecessary semaphore down/up The semaphore down/up in usbduxfast_attach_common() is not necessary. This function is only called as part of the (*auto_attach) and does not talk to the USB device. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 9e846b43f54e..149b558a8896 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -842,17 +842,12 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, static int usbduxfast_attach_common(struct comedi_device *dev) { - struct usbduxfast_private *devpriv = dev->private; struct comedi_subdevice *s; int ret; - down(&devpriv->sem); - ret = comedi_alloc_subdevices(dev, 1); - if (ret) { - up(&devpriv->sem); + if (ret) return ret; - } /* Analog Input subdevice */ s = &dev->subdevices[0]; @@ -868,8 +863,6 @@ static int usbduxfast_attach_common(struct comedi_device *dev) s->maxdata = 0x1000; /* 12-bit + 1 overflow bit */ s->range_table = &range_usbduxfast_ai_range; - up(&devpriv->sem); - return 0; } From 42293db075e121d6baef4d0cd7865e060631f3ac Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:05 -0700 Subject: [PATCH 0110/2431] staging: comedi: usbduxfast: absorb usbduxfast_attach_common() This function is only called by the (*auto_attach) to do the final setup of the analog input subdevice. For aesthetics absorb it into usbduxfast_auto_attach() and reorder the initialization of the subdevice to better follow the "norm" in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 47 +++++++++------------ 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 149b558a8896..4c86a9a913cd 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -840,32 +840,6 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, return insn->n; } -static int usbduxfast_attach_common(struct comedi_device *dev) -{ - struct comedi_subdevice *s; - int ret; - - ret = comedi_alloc_subdevices(dev, 1); - if (ret) - return ret; - - /* Analog Input subdevice */ - s = &dev->subdevices[0]; - dev->read_subdev = s; - s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_CMD_READ; - s->n_chan = 16; - s->len_chanlist = 16; - s->insn_read = usbduxfast_ai_insn_read; - s->do_cmdtest = usbduxfast_ai_cmdtest; - s->do_cmd = usbduxfast_ai_cmd; - s->cancel = usbduxfast_ai_cancel; - s->maxdata = 0x1000; /* 12-bit + 1 overflow bit */ - s->range_table = &range_usbduxfast_ai_range; - - return 0; -} - static int usbduxfast_upload_firmware(struct comedi_device *dev, const u8 *data, size_t size, unsigned long context) @@ -943,6 +917,7 @@ static int usbduxfast_auto_attach(struct comedi_device *dev, struct usb_interface *intf = comedi_to_usb_interface(dev); struct usb_device *usb = comedi_to_usb_dev(dev); struct usbduxfast_private *devpriv; + struct comedi_subdevice *s; int ret; if (usb->speed != USB_SPEED_HIGH) { @@ -985,7 +960,25 @@ static int usbduxfast_auto_attach(struct comedi_device *dev, if (ret) return ret; - return usbduxfast_attach_common(dev); + ret = comedi_alloc_subdevices(dev, 1); + if (ret) + return ret; + + /* Analog Input subdevice */ + s = &dev->subdevices[0]; + dev->read_subdev = s; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_CMD_READ; + s->n_chan = 16; + s->maxdata = 0x1000; /* 12-bit + 1 overflow bit */ + s->range_table = &range_usbduxfast_ai_range; + s->insn_read = usbduxfast_ai_insn_read; + s->len_chanlist = s->n_chan; + s->do_cmdtest = usbduxfast_ai_cmdtest; + s->do_cmd = usbduxfast_ai_cmd; + s->cancel = usbduxfast_ai_cancel; + + return 0; } static void usbduxfast_detach(struct comedi_device *dev) From e48c9c260189e28b57ab3a7cf68c5a29ab6dbf51 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:06 -0700 Subject: [PATCH 0111/2431] staging: comedi: usbduxfast: remove unnecessary clearing of private data The clearing of the private data members in the (*detatch) is not necessary. The comedi core is going to kfree the private data as soon as the (*detach) finishes. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 4c86a9a913cd..c6b2a6582127 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -998,16 +998,10 @@ static void usbduxfast_detach(struct comedi_device *dev) usb_kill_urb(devpriv->urb); kfree(devpriv->inbuf); - devpriv->inbuf = NULL; - usb_free_urb(devpriv->urb); - devpriv->urb = NULL; } kfree(devpriv->duxbuf); - devpriv->duxbuf = NULL; - - devpriv->ai_cmd_running = 0; up(&devpriv->sem); } From de1c1862ca8c32a811021b61ce8905d03e53a451 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 15 Aug 2015 21:57:32 +0100 Subject: [PATCH 0112/2431] staging: vt6655: replace typedef struct tagRDES0 with struct vnt_rdes0 replacing members as follows wResCount -> res_count f15Reserved -> f15_reserved f1Owner -> owner big endian f8Reserved1 -> f8_reserved1 f7Reserved -> f7_reserved Narrowing endian differences to inside structure. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 8 +++---- drivers/staging/vt6655/desc.h | 33 ++++++++++------------------ drivers/staging/vt6655/device_main.c | 10 ++++----- drivers/staging/vt6655/dpc.c | 2 +- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index c7b75dfc2d5f..ab632e0d8cc4 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -573,16 +573,16 @@ CARDvSafeResetRx( /* init state, all RD is chip's */ for (uu = 0; uu < pDevice->sOpts.nRxDescs0; uu++) { pDesc = &(pDevice->aRD0Ring[uu]); - pDesc->m_rd0RD0.wResCount = cpu_to_le16(pDevice->rx_buf_sz); - pDesc->m_rd0RD0.f1Owner = OWNED_BY_NIC; + pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); + pDesc->rd0.owner = OWNED_BY_NIC; pDesc->m_rd1RD1.wReqCount = cpu_to_le16(pDevice->rx_buf_sz); } /* init state, all RD is chip's */ for (uu = 0; uu < pDevice->sOpts.nRxDescs1; uu++) { pDesc = &(pDevice->aRD1Ring[uu]); - pDesc->m_rd0RD0.wResCount = cpu_to_le16(pDevice->rx_buf_sz); - pDesc->m_rd0RD0.f1Owner = OWNED_BY_NIC; + pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); + pDesc->rd0.owner = OWNED_BY_NIC; pDesc->m_rd1RD1.wReqCount = cpu_to_le16(pDevice->rx_buf_sz); } diff --git a/drivers/staging/vt6655/desc.h b/drivers/staging/vt6655/desc.h index 3c9007e34c0f..68b3121917b3 100644 --- a/drivers/staging/vt6655/desc.h +++ b/drivers/staging/vt6655/desc.h @@ -172,31 +172,22 @@ typedef struct tagDEVICE_RD_INFO { dma_addr_t skb_dma; } DEVICE_RD_INFO, *PDEVICE_RD_INFO; +struct vnt_rdes0 { + volatile __le16 res_count; #ifdef __BIG_ENDIAN - -typedef struct tagRDES0 { - volatile __le16 wResCount; union { - volatile u16 f15Reserved; + volatile u16 f15_reserved; struct { - volatile u8 f8Reserved1; - volatile u8 f1Owner:1; - volatile u8 f7Reserved:7; - } __attribute__ ((__packed__)); - } __attribute__ ((__packed__)); -} __attribute__ ((__packed__)) -SRDES0, *PSRDES0; - + volatile u8 f8_reserved1; + volatile u8 owner:1; + volatile u8 f7_reserved:7; + } __packed; + } __packed; #else - -typedef struct tagRDES0 { - __le16 wResCount; - unsigned short f15Reserved:15; - unsigned short f1Owner:1; -} __attribute__ ((__packed__)) -SRDES0; - + u16 f15_reserved:15; + u16 owner:1; #endif +} __packed; typedef struct tagRDES1 { __le16 wReqCount; @@ -206,7 +197,7 @@ SRDES1; /* Rx descriptor*/ typedef struct tagSRxDesc { - volatile SRDES0 m_rd0RD0; + volatile struct vnt_rdes0 rd0; volatile SRDES1 m_rd1RD1; volatile __le32 buff_addr; volatile __le32 next_desc; diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 0d8f123c57fe..37c2be2fbe4c 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -778,7 +778,7 @@ static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) int works = 0; for (pRD = pDevice->pCurrRD[uIdx]; - pRD->m_rd0RD0.f1Owner == OWNED_BY_HOST; + pRD->rd0.owner == OWNED_BY_HOST; pRD = pRD->next) { if (works++ > 15) break; @@ -793,7 +793,7 @@ static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) break; } } - pRD->m_rd0RD0.f1Owner = OWNED_BY_NIC; + pRD->rd0.owner = OWNED_BY_NIC; } pDevice->pCurrRD[uIdx] = pRD; @@ -814,10 +814,10 @@ static bool device_alloc_rx_buf(struct vnt_private *pDevice, PSRxDesc pRD) skb_put(pRDInfo->skb, skb_tailroom(pRDInfo->skb)), pDevice->rx_buf_sz, DMA_FROM_DEVICE); - *((unsigned int *)&(pRD->m_rd0RD0)) = 0; /* FIX cast */ + *((unsigned int *)&pRD->rd0) = 0; /* FIX cast */ - pRD->m_rd0RD0.wResCount = cpu_to_le16(pDevice->rx_buf_sz); - pRD->m_rd0RD0.f1Owner = OWNED_BY_NIC; + pRD->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); + pRD->rd0.owner = OWNED_BY_NIC; pRD->m_rd1RD1.wReqCount = cpu_to_le16(pDevice->rx_buf_sz); pRD->buff_addr = cpu_to_le32(pRDInfo->skb_dma); diff --git a/drivers/staging/vt6655/dpc.c b/drivers/staging/vt6655/dpc.c index e14eed160a19..dbaaeeb94817 100644 --- a/drivers/staging/vt6655/dpc.c +++ b/drivers/staging/vt6655/dpc.c @@ -144,7 +144,7 @@ bool vnt_receive_frame(struct vnt_private *priv, PSRxDesc curr_rd) priv->rx_buf_sz, DMA_FROM_DEVICE); frame_size = le16_to_cpu(curr_rd->m_rd1RD1.wReqCount) - - le16_to_cpu(curr_rd->m_rd0RD0.wResCount); + - le16_to_cpu(curr_rd->rd0.res_count); if ((frame_size > 2364) || (frame_size < 33)) { /* Frame Size error drop this packet.*/ From 9fc7091cc24ceae25885a3ad074689cfb029f3c0 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 15 Aug 2015 21:57:33 +0100 Subject: [PATCH 0113/2431] staging: vt6655: replace typedef struct tagRDES1 with struct vnt_rdes1 and members wReqCount -> req_count wReserved -> reserved Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 4 ++-- drivers/staging/vt6655/desc.h | 11 +++++------ drivers/staging/vt6655/device_main.c | 2 +- drivers/staging/vt6655/dpc.c | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index ab632e0d8cc4..7a30ba2faec2 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -575,7 +575,7 @@ CARDvSafeResetRx( pDesc = &(pDevice->aRD0Ring[uu]); pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); pDesc->rd0.owner = OWNED_BY_NIC; - pDesc->m_rd1RD1.wReqCount = cpu_to_le16(pDevice->rx_buf_sz); + pDesc->rd1.req_count = cpu_to_le16(pDevice->rx_buf_sz); } /* init state, all RD is chip's */ @@ -583,7 +583,7 @@ CARDvSafeResetRx( pDesc = &(pDevice->aRD1Ring[uu]); pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); pDesc->rd0.owner = OWNED_BY_NIC; - pDesc->m_rd1RD1.wReqCount = cpu_to_le16(pDevice->rx_buf_sz); + pDesc->rd1.req_count = cpu_to_le16(pDevice->rx_buf_sz); } /* set perPkt mode */ diff --git a/drivers/staging/vt6655/desc.h b/drivers/staging/vt6655/desc.h index 68b3121917b3..eb0c7c3c987d 100644 --- a/drivers/staging/vt6655/desc.h +++ b/drivers/staging/vt6655/desc.h @@ -189,16 +189,15 @@ struct vnt_rdes0 { #endif } __packed; -typedef struct tagRDES1 { - __le16 wReqCount; - unsigned short wReserved; -} __attribute__ ((__packed__)) -SRDES1; +struct vnt_rdes1 { + __le16 req_count; + u16 reserved; +} __packed; /* Rx descriptor*/ typedef struct tagSRxDesc { volatile struct vnt_rdes0 rd0; - volatile SRDES1 m_rd1RD1; + volatile struct vnt_rdes1 rd1; volatile __le32 buff_addr; volatile __le32 next_desc; struct tagSRxDesc *next __aligned(8); diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 37c2be2fbe4c..22c195757f89 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -818,7 +818,7 @@ static bool device_alloc_rx_buf(struct vnt_private *pDevice, PSRxDesc pRD) pRD->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); pRD->rd0.owner = OWNED_BY_NIC; - pRD->m_rd1RD1.wReqCount = cpu_to_le16(pDevice->rx_buf_sz); + pRD->rd1.req_count = cpu_to_le16(pDevice->rx_buf_sz); pRD->buff_addr = cpu_to_le32(pRDInfo->skb_dma); return true; diff --git a/drivers/staging/vt6655/dpc.c b/drivers/staging/vt6655/dpc.c index dbaaeeb94817..ef39cbe28940 100644 --- a/drivers/staging/vt6655/dpc.c +++ b/drivers/staging/vt6655/dpc.c @@ -143,7 +143,7 @@ bool vnt_receive_frame(struct vnt_private *priv, PSRxDesc curr_rd) dma_unmap_single(&priv->pcid->dev, rd_info->skb_dma, priv->rx_buf_sz, DMA_FROM_DEVICE); - frame_size = le16_to_cpu(curr_rd->m_rd1RD1.wReqCount) + frame_size = le16_to_cpu(curr_rd->rd1.req_count) - le16_to_cpu(curr_rd->rd0.res_count); if ((frame_size > 2364) || (frame_size < 33)) { From 88defe2b35f1b765dbfe9a800c443c31400a4e13 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 15 Aug 2015 21:57:34 +0100 Subject: [PATCH 0114/2431] staging: vt6655: replace typedef struct tagDEVICE_RD_INFO with struct vnt_rd_info volatile is removed because it will generate a warning (in any case this member is not) and renaming rd_info. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/desc.h | 6 +++--- drivers/staging/vt6655/device.h | 4 ++-- drivers/staging/vt6655/device_main.c | 24 ++++++++++++------------ drivers/staging/vt6655/dpc.c | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/staging/vt6655/desc.h b/drivers/staging/vt6655/desc.h index eb0c7c3c987d..752c54683c7f 100644 --- a/drivers/staging/vt6655/desc.h +++ b/drivers/staging/vt6655/desc.h @@ -167,10 +167,10 @@ * leads error. */ -typedef struct tagDEVICE_RD_INFO { +struct vnt_rd_info { struct sk_buff *skb; dma_addr_t skb_dma; -} DEVICE_RD_INFO, *PDEVICE_RD_INFO; +}; struct vnt_rdes0 { volatile __le16 res_count; @@ -201,7 +201,7 @@ typedef struct tagSRxDesc { volatile __le32 buff_addr; volatile __le32 next_desc; struct tagSRxDesc *next __aligned(8); - volatile PDEVICE_RD_INFO pRDInfo __aligned(8); + struct vnt_rd_info *rd_info __aligned(8); } __attribute__ ((__packed__)) SRxDesc, *PSRxDesc; typedef const SRxDesc *PCSRxDesc; diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index c9fa6ef42d34..80cc17005d8f 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -410,9 +410,9 @@ struct vnt_private { struct ieee80211_low_level_stats low_stats; }; -static inline PDEVICE_RD_INFO alloc_rd_info(void) +static inline struct vnt_rd_info *alloc_rd_info(void) { - return kzalloc(sizeof(DEVICE_RD_INFO), GFP_ATOMIC); + return kzalloc(sizeof(struct vnt_rd_info), GFP_ATOMIC); } static inline struct vnt_td_info *alloc_td_info(void) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 22c195757f89..defdcc015d12 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -622,7 +622,7 @@ static void device_init_rd0_ring(struct vnt_private *pDevice) /* Init the RD0 ring entries */ for (i = 0; i < pDevice->sOpts.nRxDescs0; i ++, curr += sizeof(SRxDesc)) { pDesc = &(pDevice->aRD0Ring[i]); - pDesc->pRDInfo = alloc_rd_info(); + pDesc->rd_info = alloc_rd_info(); if (!device_alloc_rx_buf(pDevice, pDesc)) dev_err(&pDevice->pcid->dev, "can not alloc rx bufs\n"); @@ -645,7 +645,7 @@ static void device_init_rd1_ring(struct vnt_private *pDevice) /* Init the RD1 ring entries */ for (i = 0; i < pDevice->sOpts.nRxDescs1; i ++, curr += sizeof(SRxDesc)) { pDesc = &(pDevice->aRD1Ring[i]); - pDesc->pRDInfo = alloc_rd_info(); + pDesc->rd_info = alloc_rd_info(); if (!device_alloc_rx_buf(pDevice, pDesc)) dev_err(&pDevice->pcid->dev, "can not alloc rx bufs\n"); @@ -665,14 +665,14 @@ static void device_free_rd0_ring(struct vnt_private *pDevice) for (i = 0; i < pDevice->sOpts.nRxDescs0; i++) { PSRxDesc pDesc = &(pDevice->aRD0Ring[i]); - PDEVICE_RD_INFO pRDInfo = pDesc->pRDInfo; + struct vnt_rd_info *rd_info = pDesc->rd_info; - dma_unmap_single(&pDevice->pcid->dev, pRDInfo->skb_dma, + dma_unmap_single(&pDevice->pcid->dev, rd_info->skb_dma, pDevice->rx_buf_sz, DMA_FROM_DEVICE); - dev_kfree_skb(pRDInfo->skb); + dev_kfree_skb(rd_info->skb); - kfree(pDesc->pRDInfo); + kfree(pDesc->rd_info); } } @@ -682,14 +682,14 @@ static void device_free_rd1_ring(struct vnt_private *pDevice) for (i = 0; i < pDevice->sOpts.nRxDescs1; i++) { PSRxDesc pDesc = &(pDevice->aRD1Ring[i]); - PDEVICE_RD_INFO pRDInfo = pDesc->pRDInfo; + struct vnt_rd_info *rd_info = pDesc->rd_info; - dma_unmap_single(&pDevice->pcid->dev, pRDInfo->skb_dma, + dma_unmap_single(&pDevice->pcid->dev, rd_info->skb_dma, pDevice->rx_buf_sz, DMA_FROM_DEVICE); - dev_kfree_skb(pRDInfo->skb); + dev_kfree_skb(rd_info->skb); - kfree(pDesc->pRDInfo); + kfree(pDesc->rd_info); } } @@ -783,7 +783,7 @@ static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) if (works++ > 15) break; - if (!pRD->pRDInfo->skb) + if (!pRD->rd_info->skb) break; if (vnt_receive_frame(pDevice, pRD)) { @@ -803,7 +803,7 @@ static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) static bool device_alloc_rx_buf(struct vnt_private *pDevice, PSRxDesc pRD) { - PDEVICE_RD_INFO pRDInfo = pRD->pRDInfo; + struct vnt_rd_info *pRDInfo = pRD->rd_info; pRDInfo->skb = dev_alloc_skb((int)pDevice->rx_buf_sz); if (pRDInfo->skb == NULL) diff --git a/drivers/staging/vt6655/dpc.c b/drivers/staging/vt6655/dpc.c index ef39cbe28940..46591859f544 100644 --- a/drivers/staging/vt6655/dpc.c +++ b/drivers/staging/vt6655/dpc.c @@ -134,7 +134,7 @@ static bool vnt_rx_data(struct vnt_private *priv, struct sk_buff *skb, bool vnt_receive_frame(struct vnt_private *priv, PSRxDesc curr_rd) { - PDEVICE_RD_INFO rd_info = curr_rd->pRDInfo; + struct vnt_rd_info *rd_info = curr_rd->rd_info; struct sk_buff *skb; u16 frame_size; From 9cb693f6f326ddf8f9df9c2bb3302048a919b394 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 15 Aug 2015 21:57:35 +0100 Subject: [PATCH 0115/2431] staging: vt6655: replace typedef struct tagSRxDesc with struct vnt_rx_desc and all members the same. volatile is removed from pointers as this generates warning message. Only the first four members of vnt_rx_desc need to be volatile. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 2 +- drivers/staging/vt6655/desc.h | 8 ++--- drivers/staging/vt6655/device.h | 6 ++-- drivers/staging/vt6655/device_main.c | 51 +++++++++++++++------------- drivers/staging/vt6655/dpc.c | 2 +- drivers/staging/vt6655/dpc.h | 2 +- 6 files changed, 36 insertions(+), 35 deletions(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 7a30ba2faec2..ecbe94f41e22 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -564,7 +564,7 @@ CARDvSafeResetRx( ) { unsigned int uu; - PSRxDesc pDesc; + struct vnt_rx_desc *pDesc; /* initialize RD index */ pDevice->pCurrRD[0] = &(pDevice->aRD0Ring[0]); diff --git a/drivers/staging/vt6655/desc.h b/drivers/staging/vt6655/desc.h index 752c54683c7f..9fbc7172484e 100644 --- a/drivers/staging/vt6655/desc.h +++ b/drivers/staging/vt6655/desc.h @@ -195,16 +195,14 @@ struct vnt_rdes1 { } __packed; /* Rx descriptor*/ -typedef struct tagSRxDesc { +struct vnt_rx_desc { volatile struct vnt_rdes0 rd0; volatile struct vnt_rdes1 rd1; volatile __le32 buff_addr; volatile __le32 next_desc; - struct tagSRxDesc *next __aligned(8); + struct vnt_rx_desc *next __aligned(8); struct vnt_rd_info *rd_info __aligned(8); -} __attribute__ ((__packed__)) -SRxDesc, *PSRxDesc; -typedef const SRxDesc *PCSRxDesc; +} __packed; struct vnt_tdes0 { volatile u8 tsr0; diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 80cc17005d8f..d1917d04af30 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -258,9 +258,9 @@ struct vnt_private { struct vnt_tx_desc *apTD0Rings; struct vnt_tx_desc *apTD1Rings; - volatile PSRxDesc aRD0Ring; - volatile PSRxDesc aRD1Ring; - volatile PSRxDesc pCurrRD[TYPE_MAXRD]; + struct vnt_rx_desc *aRD0Ring; + struct vnt_rx_desc *aRD1Ring; + struct vnt_rx_desc *pCurrRD[TYPE_MAXRD]; OPTIONS sOpts; diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index defdcc015d12..86c24a1ab4fa 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -155,7 +155,7 @@ static void device_init_td1_ring(struct vnt_private *pDevice); static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx); static int device_tx_srv(struct vnt_private *pDevice, unsigned int uIdx); -static bool device_alloc_rx_buf(struct vnt_private *pDevice, PSRxDesc pDesc); +static bool device_alloc_rx_buf(struct vnt_private *, struct vnt_rx_desc *); static void device_init_registers(struct vnt_private *pDevice); static void device_free_tx_buf(struct vnt_private *, struct vnt_tx_desc *); static void device_free_td0_ring(struct vnt_private *pDevice); @@ -520,8 +520,8 @@ static bool device_init_rings(struct vnt_private *pDevice) /*allocate all RD/TD rings a single pool*/ vir_pool = dma_zalloc_coherent(&pDevice->pcid->dev, - pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc) + - pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc) + + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + pDevice->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), &pDevice->pool_dma, GFP_ATOMIC); @@ -532,11 +532,11 @@ static bool device_init_rings(struct vnt_private *pDevice) pDevice->aRD0Ring = vir_pool; pDevice->aRD1Ring = vir_pool + - pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc); + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc); pDevice->rd0_pool_dma = pDevice->pool_dma; pDevice->rd1_pool_dma = pDevice->rd0_pool_dma + - pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc); + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc); pDevice->tx0_bufs = dma_zalloc_coherent(&pDevice->pcid->dev, pDevice->sOpts.nTxDescs[0] * PKT_BUF_SZ + @@ -549,8 +549,8 @@ static bool device_init_rings(struct vnt_private *pDevice) dev_err(&pDevice->pcid->dev, "allocate buf dma memory failed\n"); dma_free_coherent(&pDevice->pcid->dev, - pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc) + - pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc) + + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + pDevice->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), vir_pool, pDevice->pool_dma @@ -559,19 +559,19 @@ static bool device_init_rings(struct vnt_private *pDevice) } pDevice->td0_pool_dma = pDevice->rd1_pool_dma + - pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc); + pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc); pDevice->td1_pool_dma = pDevice->td0_pool_dma + pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc); /* vir_pool: pvoid type */ pDevice->apTD0Rings = vir_pool - + pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc) - + pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc); + + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc); pDevice->apTD1Rings = vir_pool - + pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc) - + pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc) + + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc); pDevice->tx1_bufs = pDevice->tx0_bufs + @@ -595,8 +595,8 @@ static bool device_init_rings(struct vnt_private *pDevice) static void device_free_rings(struct vnt_private *pDevice) { dma_free_coherent(&pDevice->pcid->dev, - pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc) + - pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc) + + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + pDevice->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc) , @@ -617,10 +617,11 @@ static void device_init_rd0_ring(struct vnt_private *pDevice) { int i; dma_addr_t curr = pDevice->rd0_pool_dma; - PSRxDesc pDesc; + struct vnt_rx_desc *pDesc; /* Init the RD0 ring entries */ - for (i = 0; i < pDevice->sOpts.nRxDescs0; i ++, curr += sizeof(SRxDesc)) { + for (i = 0; i < pDevice->sOpts.nRxDescs0; + i ++, curr += sizeof(struct vnt_rx_desc)) { pDesc = &(pDevice->aRD0Ring[i]); pDesc->rd_info = alloc_rd_info(); @@ -628,7 +629,7 @@ static void device_init_rd0_ring(struct vnt_private *pDevice) dev_err(&pDevice->pcid->dev, "can not alloc rx bufs\n"); pDesc->next = &(pDevice->aRD0Ring[(i+1) % pDevice->sOpts.nRxDescs0]); - pDesc->next_desc = cpu_to_le32(curr + sizeof(SRxDesc)); + pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } if (i > 0) @@ -640,10 +641,11 @@ static void device_init_rd1_ring(struct vnt_private *pDevice) { int i; dma_addr_t curr = pDevice->rd1_pool_dma; - PSRxDesc pDesc; + struct vnt_rx_desc *pDesc; /* Init the RD1 ring entries */ - for (i = 0; i < pDevice->sOpts.nRxDescs1; i ++, curr += sizeof(SRxDesc)) { + for (i = 0; i < pDevice->sOpts.nRxDescs1; + i ++, curr += sizeof(struct vnt_rx_desc)) { pDesc = &(pDevice->aRD1Ring[i]); pDesc->rd_info = alloc_rd_info(); @@ -651,7 +653,7 @@ static void device_init_rd1_ring(struct vnt_private *pDevice) dev_err(&pDevice->pcid->dev, "can not alloc rx bufs\n"); pDesc->next = &(pDevice->aRD1Ring[(i+1) % pDevice->sOpts.nRxDescs1]); - pDesc->next_desc = cpu_to_le32(curr + sizeof(SRxDesc)); + pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } if (i > 0) @@ -664,7 +666,7 @@ static void device_free_rd0_ring(struct vnt_private *pDevice) int i; for (i = 0; i < pDevice->sOpts.nRxDescs0; i++) { - PSRxDesc pDesc = &(pDevice->aRD0Ring[i]); + struct vnt_rx_desc *pDesc = &(pDevice->aRD0Ring[i]); struct vnt_rd_info *rd_info = pDesc->rd_info; dma_unmap_single(&pDevice->pcid->dev, rd_info->skb_dma, @@ -681,7 +683,7 @@ static void device_free_rd1_ring(struct vnt_private *pDevice) int i; for (i = 0; i < pDevice->sOpts.nRxDescs1; i++) { - PSRxDesc pDesc = &(pDevice->aRD1Ring[i]); + struct vnt_rx_desc *pDesc = &(pDevice->aRD1Ring[i]); struct vnt_rd_info *rd_info = pDesc->rd_info; dma_unmap_single(&pDevice->pcid->dev, rd_info->skb_dma, @@ -774,7 +776,7 @@ static void device_free_td1_ring(struct vnt_private *pDevice) static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) { - PSRxDesc pRD; + struct vnt_rx_desc *pRD; int works = 0; for (pRD = pDevice->pCurrRD[uIdx]; @@ -801,7 +803,8 @@ static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) return works; } -static bool device_alloc_rx_buf(struct vnt_private *pDevice, PSRxDesc pRD) +static bool device_alloc_rx_buf(struct vnt_private *pDevice, + struct vnt_rx_desc *pRD) { struct vnt_rd_info *pRDInfo = pRD->rd_info; diff --git a/drivers/staging/vt6655/dpc.c b/drivers/staging/vt6655/dpc.c index 46591859f544..700032e9c477 100644 --- a/drivers/staging/vt6655/dpc.c +++ b/drivers/staging/vt6655/dpc.c @@ -132,7 +132,7 @@ static bool vnt_rx_data(struct vnt_private *priv, struct sk_buff *skb, return true; } -bool vnt_receive_frame(struct vnt_private *priv, PSRxDesc curr_rd) +bool vnt_receive_frame(struct vnt_private *priv, struct vnt_rx_desc *curr_rd) { struct vnt_rd_info *rd_info = curr_rd->rd_info; struct sk_buff *skb; diff --git a/drivers/staging/vt6655/dpc.h b/drivers/staging/vt6655/dpc.h index ad495719a251..e80b30816968 100644 --- a/drivers/staging/vt6655/dpc.h +++ b/drivers/staging/vt6655/dpc.h @@ -31,6 +31,6 @@ #include "device.h" -bool vnt_receive_frame(struct vnt_private *priv, PSRxDesc curr_rd); +bool vnt_receive_frame(struct vnt_private *priv, struct vnt_rx_desc *curr_rd); #endif /* __RXTX_H__ */ From d2e4f687c463e5080af203de2251b5b78b01e58c Mon Sep 17 00:00:00 2001 From: Peng Sun Date: Thu, 27 Aug 2015 15:41:05 +0800 Subject: [PATCH 0116/2431] staging: android: ashmem.c: 'spaces preferred around that -' style issue fix a CHECK style issue by checkpatch.pl with --strict: spaces preferred around that '-' Signed-off-by: Peng Sun Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ashmem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 60200a3da821..b340ddcd66e6 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -618,7 +618,8 @@ static int ashmem_pin(struct ashmem_area *asma, size_t pgstart, size_t pgend) /* Case #3: We overlap from the rear, so adjust it */ if (range->pgend <= pgend) { - range_shrink(range, range->pgstart, pgstart-1); + range_shrink(range, range->pgstart, + pgstart - 1); continue; } From b8d3bfa7802a5d5ffea7e14837147d063df8eabe Mon Sep 17 00:00:00 2001 From: Peng Sun Date: Thu, 27 Aug 2015 15:41:06 +0800 Subject: [PATCH 0117/2431] staging: android: ashmem.c: 'No space necessary after' style issue fix two CHECK issues by checkpatch.pl with --strict: No space is necessary after a cast Signed-off-by: Peng Sun Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ashmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index b340ddcd66e6..1312600e2468 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -716,7 +716,7 @@ static int ashmem_pin_unpin(struct ashmem_area *asma, unsigned long cmd, if (unlikely((pin.offset | pin.len) & ~PAGE_MASK)) return -EINVAL; - if (unlikely(((__u32) -1) - pin.offset < pin.len)) + if (unlikely(((__u32)-1) - pin.offset < pin.len)) return -EINVAL; if (unlikely(PAGE_ALIGN(asma->size) < pin.offset + pin.len)) @@ -760,7 +760,7 @@ static long ashmem_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ret = -EINVAL; if (!asma->file) { ret = 0; - asma->size = (size_t) arg; + asma->size = (size_t)arg; } break; case ASHMEM_GET_SIZE: From 7048c1fc37f71f860b5042fbe021c9f98218b122 Mon Sep 17 00:00:00 2001 From: Peng Sun Date: Thu, 27 Aug 2015 15:41:07 +0800 Subject: [PATCH 0118/2431] staging: android: ashmem.c: 'Alignment' style issue fix two CHECK issues by checkpatch.pl with --strict: Alignment should match open parenthesis Signed-off-by: Peng Sun Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ashmem.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 1312600e2468..d786ec17e400 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -834,16 +834,16 @@ static int __init ashmem_init(void) int ret; ashmem_area_cachep = kmem_cache_create("ashmem_area_cache", - sizeof(struct ashmem_area), - 0, 0, NULL); + sizeof(struct ashmem_area), + 0, 0, NULL); if (unlikely(!ashmem_area_cachep)) { pr_err("failed to create slab cache\n"); return -ENOMEM; } ashmem_range_cachep = kmem_cache_create("ashmem_range_cache", - sizeof(struct ashmem_range), - 0, 0, NULL); + sizeof(struct ashmem_range), + 0, 0, NULL); if (unlikely(!ashmem_range_cachep)) { pr_err("failed to create slab cache\n"); return -ENOMEM; From b8797affa142840e7c62deccb750813563fc8097 Mon Sep 17 00:00:00 2001 From: Trung Thanh Le Date: Sat, 15 Aug 2015 22:09:45 +0800 Subject: [PATCH 0119/2431] staging: android: fix coding style checks in sw_sync.c replace comparison "obj" to NULL with "!obj" Signed-off-by: Trung Thanh Le Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/sw_sync.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/android/sw_sync.c b/drivers/staging/android/sw_sync.c index c90838d36953..29b5c3567180 100644 --- a/drivers/staging/android/sw_sync.c +++ b/drivers/staging/android/sw_sync.c @@ -145,7 +145,7 @@ static int sw_sync_open(struct inode *inode, struct file *file) get_task_comm(task_comm, current); obj = sw_sync_timeline_create(task_comm); - if (obj == NULL) + if (!obj) return -ENOMEM; file->private_data = obj; @@ -179,14 +179,14 @@ static long sw_sync_ioctl_create_fence(struct sw_sync_timeline *obj, } pt = sw_sync_pt_create(obj, data.value); - if (pt == NULL) { + if (!pt) { err = -ENOMEM; goto err; } data.name[sizeof(data.name) - 1] = '\0'; fence = sync_fence_create(data.name, pt); - if (fence == NULL) { + if (!fence) { sync_pt_free(pt); err = -ENOMEM; goto err; From 7a669e58615c8908cf15222a0ffe1042995cfcd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 23:14:49 -0400 Subject: [PATCH 0120/2431] staging: wilc1000: remove FREE_WILC_BUFFER() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was just a wrapper around kfree(), so call that instead. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_exported_buf.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_exported_buf.c b/drivers/staging/wilc1000/wilc_exported_buf.c index c3f6a0a1c9ad..44db496fb418 100644 --- a/drivers/staging/wilc1000/wilc_exported_buf.c +++ b/drivers/staging/wilc1000/wilc_exported_buf.c @@ -15,9 +15,6 @@ return -ENOBUFS; \ } -#define FREE_WILC_BUFFER(name) \ - kfree(exported_ ## name); - /* * Add necessary buffer pointers */ @@ -59,9 +56,9 @@ static int __init wilc_module_init(void) static void __exit wilc_module_deinit(void) { printk("wilc_module_deinit\n"); - FREE_WILC_BUFFER(g_tx_buf) - FREE_WILC_BUFFER(g_rx_buf) - FREE_WILC_BUFFER(g_fw_buf) + kfree(exported_g_tx_buf); + kfree(exported_g_rx_buf); + kfree(exported_g_fw_buf); } MODULE_LICENSE("Dual BSD/GPL"); From 297a1c34da83459e3f7160e2b75127b8935ef688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 23:14:50 -0400 Subject: [PATCH 0121/2431] staging: wilc1000: replace MALLOC_WILC_BUFFER() macro to avoid possible memory leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The MALLOC_WILC_BUFFER() macro was using a return statement, and didn't take care of possible memory leaks and subsequent bugs when it was failing after succeeding some allocations. This patch corrects this behavior. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_exported_buf.c | 31 +++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_exported_buf.c b/drivers/staging/wilc1000/wilc_exported_buf.c index 44db496fb418..e617b7715600 100644 --- a/drivers/staging/wilc1000/wilc_exported_buf.c +++ b/drivers/staging/wilc1000/wilc_exported_buf.c @@ -8,13 +8,6 @@ #define LINUX_TX_SIZE (64 * 1024) #define WILC1000_FW_SIZE (4 * 1024) -#define MALLOC_WILC_BUFFER(name, size) \ - exported_ ## name = kmalloc(size, GFP_KERNEL); \ - if (!exported_ ## name) { \ - printk("fail to alloc: %s memory\n", exported_ ## name); \ - return -ENOBUFS; \ - } - /* * Add necessary buffer pointers */ @@ -46,11 +39,29 @@ static int __init wilc_module_init(void) /* * alloc necessary memory */ - MALLOC_WILC_BUFFER(g_tx_buf, LINUX_TX_SIZE) - MALLOC_WILC_BUFFER(g_rx_buf, LINUX_RX_SIZE) - MALLOC_WILC_BUFFER(g_fw_buf, WILC1000_FW_SIZE) + exported_g_tx_buf = kmalloc(LINUX_TX_SIZE, GFP_KERNEL); + if (!exported_g_tx_buf) + return -ENOMEM; + + exported_g_rx_buf = kmalloc(LINUX_RX_SIZE, GFP_KERNEL); + if (!exported_g_rx_buf) + goto free_g_tx_buf; + + exported_g_fw_buf = kmalloc(WILC1000_FW_SIZE, GFP_KERNEL); + if (!exported_g_fw_buf) + goto free_g_rx_buf; return 0; + +free_g_rx_buf: + kfree(exported_g_rx_buf); + exported_g_rx_buf = NULL; + +free_g_tx_buf: + kfree(exported_g_tx_buf); + exported_g_tx_buf = NULL; + + return -ENOMEM; } static void __exit wilc_module_deinit(void) From 8dfaafd6398ec49797566ecb6992117434376588 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 18 Aug 2015 23:18:11 +0900 Subject: [PATCH 0122/2431] staging: wilc1000: add a blank line after declaration This patch adds a blank line after declaration found by checkpatch.pl WARNING: Missing a blank line after declarations. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 8 ++++++++ drivers/staging/wilc1000/linux_wlan.c | 18 +++++++++++++++++ drivers/staging/wilc1000/linux_wlan_sdio.c | 1 + drivers/staging/wilc1000/linux_wlan_spi.c | 6 ++++++ drivers/staging/wilc1000/wilc_msgqueue.c | 3 +++ drivers/staging/wilc1000/wilc_spi.c | 4 ++++ .../staging/wilc1000/wilc_wfi_cfgoperations.c | 20 +++++++++++++++++++ drivers/staging/wilc1000/wilc_wlan.c | 13 ++++++++++++ drivers/staging/wilc1000/wilc_wlan_cfg.c | 3 +++ 9 files changed, 76 insertions(+) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 16a0abc970c0..188919525186 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -668,6 +668,7 @@ INLINE u16 get_asoc_id(u8 *data) s32 CoreConfiguratorInit(void) { s32 s32Error = WILC_SUCCESS; + PRINT_D(CORECONFIG_DBG, "CoreConfiguratorInit()\n"); sema_init(&SemHandleSendPkt, 1); @@ -1097,6 +1098,7 @@ void ProcessCharWid(char *pcPacket, s32 *ps32PktLen, u8 *pu8val = (u8 *)ps8WidVal; u8 u8val = 0; s32 s32PktLen = *ps32PktLen; + if (pstrWID == NULL) { PRINT_WRN(CORECONFIG_DBG, "Can't set CHAR val 0x%x ,NULL structure\n", u8val); return; @@ -1151,6 +1153,7 @@ void ProcessShortWid(char *pcPacket, s32 *ps32PktLen, u16 *pu16val = (u16 *)ps8WidVal; u16 u16val = 0; s32 s32PktLen = *ps32PktLen; + if (pstrWID == NULL) { PRINT_WRN(CORECONFIG_DBG, "Can't set SHORT val 0x%x ,NULL structure\n", u16val); return; @@ -1206,6 +1209,7 @@ void ProcessIntWid(char *pcPacket, s32 *ps32PktLen, u32 *pu32val = (u32 *)ps8WidVal; u32 u32val = 0; s32 s32PktLen = *ps32PktLen; + if (pstrWID == NULL) { PRINT_WRN(CORECONFIG_DBG, "Can't set INT val 0x%x , NULL structure\n", u32val); return; @@ -1322,6 +1326,7 @@ void ProcessStrWid(char *pcPacket, s32 *ps32PktLen, u16 u16MsgLen = 0; u16 idx = 0; s32 s32PktLen = *ps32PktLen; + if (pstrWID == NULL) { PRINT_WRN(CORECONFIG_DBG, "Can't set STR val, NULL structure\n"); return; @@ -1540,6 +1545,7 @@ s32 further_process_response(u8 *resp, case WID_SHORT: { u16 *pu16val = (u16 *)(pstrWIDresult->ps8WidVal); + cfg_sht = MAKE_WORD16(resp[idx], resp[idx + 1]); /*Set local copy of WID*/ /* pstrWIDresult->ps8WidVal = (s8*)(s32)cfg_sht; */ @@ -1550,6 +1556,7 @@ s32 further_process_response(u8 *resp, case WID_INT: { u32 *pu32val = (u32 *)(pstrWIDresult->ps8WidVal); + cfg_int = MAKE_WORD32( MAKE_WORD16(resp[idx], resp[idx + 1]), MAKE_WORD16(resp[idx + 2], resp[idx + 3]) @@ -1980,6 +1987,7 @@ s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs, u32 u32WIDsCount, bool bRespRequired, u32 drvHandler) { s32 counter = 0, ret = 0; + if (gpstrWlanOps == NULL) { PRINT_D(CORECONFIG_DBG, "Net Dev is still not initialized\n"); return 1; diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index b3cc9f5c7937..888652dae487 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -194,6 +194,7 @@ static char *ps8current = DebugBuffer; void printk_later(const char *format, ...) { va_list args; + va_start(args, format); ps8current += vsprintf(ps8current, format, args); va_end(args); @@ -402,11 +403,13 @@ static irqreturn_t isr_uh_routine(int irq, void *user_data) irqreturn_t isr_bh_routine(int irq, void *userdata) { linux_wlan_t *nic; + nic = (linux_wlan_t *)userdata; #else static void isr_bh_routine(struct work_struct *work) { perInterface_wlan_t *nic; + nic = (perInterface_wlan_t *)container_of(work, linux_wlan_t, rx_work_queue); #endif @@ -531,6 +534,7 @@ static void linux_wlan_msleep(uint32_t msc) { if (msc <= 4000000) { u32 u32Temp = msc * 1000; + usleep_range(u32Temp, u32Temp); } else { msleep(msc); @@ -549,6 +553,7 @@ static void linux_wlan_dbg(uint8_t *buff) static void *linux_wlan_malloc_atomic(uint32_t sz) { char *pntr = NULL; + pntr = kmalloc(sz, GFP_ATOMIC); PRINT_D(MEM_DBG, "Allocating %d bytes at address %p\n", sz, pntr); return (void *)pntr; @@ -557,6 +562,7 @@ static void *linux_wlan_malloc_atomic(uint32_t sz) static void *linux_wlan_malloc(uint32_t sz) { char *pntr = NULL; + pntr = kmalloc(sz, GFP_KERNEL); PRINT_D(MEM_DBG, "Allocating %d bytes at address %p\n", sz, pntr); return (void *)pntr; @@ -573,6 +579,7 @@ void linux_wlan_free(void *vp) static void *internal_alloc(uint32_t size, uint32_t flag) { char *pntr = NULL; + pntr = kmalloc(size, flag); PRINT_D(MEM_DBG, "Allocating %d bytes at address %p\n", size, pntr); return (void *)pntr; @@ -604,6 +611,7 @@ static void linux_wlan_lock(void *vp) static int linux_wlan_lock_timeout(void *vp, u32 timeout) { int error = -1; + PRINT_D(LOCK_DBG, "Locking %p\n", vp); if (vp != NULL) error = down_timeout((struct semaphore *)vp, msecs_to_jiffies(timeout)); @@ -681,6 +689,7 @@ static void linux_wlan_deinit_spin_lock(void *plock) static void linux_wlan_spin_lock(void *vp, unsigned long *flags) { unsigned long lflags; + PRINT_D(SPIN_DEBUG, "Lock spin %p\n", vp); if (vp != NULL) { spin_lock_irqsave((spinlock_t *)vp, lflags); @@ -692,6 +701,7 @@ static void linux_wlan_spin_lock(void *vp, unsigned long *flags) static void linux_wlan_spin_unlock(void *vp, unsigned long *flags) { unsigned long lflags = *flags; + PRINT_D(SPIN_DEBUG, "Unlock spin %p\n", vp); if (vp != NULL) { spin_unlock_irqrestore((spinlock_t *)vp, lflags); @@ -1535,6 +1545,7 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) { int ret = 0; + PRINT_D(INIT_DBG, "Initializing Threads ...\n"); #if (RX_BH_TYPE == RX_BH_WORK_QUEUE) @@ -1709,6 +1720,7 @@ extern void wilc_wlan_global_reset(void); uint8_t wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, wilc_wlan_oup_t *nwo, linux_wlan_t *nic) { uint8_t trials = 0; + while ((core_11b_ready() && (READY_CHECK_THRESHOLD > (trials++)))) { PRINT_D(INIT_DBG, "11b core not ready yet: %u\n", trials); wilc_wlan_deinit(nic); @@ -1743,6 +1755,7 @@ int repeat_power_cycle(perInterface_wlan_t *nic) int ret = 0; wilc_wlan_inp_t nwi; wilc_wlan_oup_t nwo; + sdio_unregister_driver(&wilc_bus); linux_wlan_device_detection(0); @@ -1880,6 +1893,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) if (g_linux_wlan->oup.wlan_cfg_get(1, WID_FIRMWARE_VERSION, 1, 0)) { int size; char Firmware_ver[20]; + size = g_linux_wlan->oup.wlan_cfg_get_value( WID_FIRMWARE_VERSION, Firmware_ver, sizeof(Firmware_ver)); @@ -2039,6 +2053,7 @@ int mac_open(struct net_device *ndev) { linux_wlan_t *nic; + nic = netdev_priv(ndev); /*initialize platform*/ @@ -2069,6 +2084,7 @@ static void wilc_set_multicast_list(struct net_device *dev) struct WILC_WFI_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; int i = 0; + priv = wiphy_priv(dev->ieee80211_ptr->wiphy); pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; @@ -2120,6 +2136,7 @@ static void linux_wlan_tx_complete(void *priv, int status) { struct tx_complete_data *pv_data = (struct tx_complete_data *)priv; + if (status == 1) PRINT_D(TX_DBG, "Packet sent successfully - Size = %d - Address = %p - SKB = %p\n", pv_data->size, pv_data->buff, pv_data->skb); else @@ -2137,6 +2154,7 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) char *pu8UdpBuffer; struct iphdr *ih; struct ethhdr *eth_h; + nic = netdev_priv(ndev); PRINT_D(INT_DBG, "\n========\n IntUH: %d - IntBH: %d - IntCld: %d\n========\n", int_rcvdU, int_rcvdB, int_clrd); diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index 37f31f4558b5..62e6b62abd82 100644 --- a/drivers/staging/wilc1000/linux_wlan_sdio.c +++ b/drivers/staging/wilc1000/linux_wlan_sdio.c @@ -194,6 +194,7 @@ void disable_sdio_interrupt(void) static int linux_sdio_set_speed(int speed) { struct mmc_ios ios; + sdio_claim_host(local_sdio_func); memcpy((void *)&ios, (void *)&local_sdio_func->card->host->ios, sizeof(struct mmc_ios)); diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 236669cfcd3a..c5cdab76831d 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -122,6 +122,7 @@ int linux_spi_write(uint8_t *b, uint32_t len) if (len > 0 && b != NULL) { struct spi_message msg; + PRINT_D(BUS_DBG, "Request writing %d bytes\n", len); struct spi_transfer tr = { .tx_buf = b, @@ -155,12 +156,14 @@ int linux_spi_write(uint8_t *b, uint32_t len) int linux_spi_write(uint8_t *b, uint32_t len) { int ret; + if (len > 0 && b != NULL) { int i = 0; int blk = len / TXRX_PHASE_SIZE; int remainder = len % TXRX_PHASE_SIZE; char *r_buffer = kzalloc(TXRX_PHASE_SIZE, GFP_KERNEL); + if (!r_buffer) { PRINT_ER("Failed to allocate memory for r_buffer\n"); } @@ -243,6 +246,7 @@ int linux_spi_write(uint8_t *b, uint32_t len) .delay_usecs = 0, }; char *r_buffer = kzalloc(len, GFP_KERNEL); + if (!r_buffer) { PRINT_ER("Failed to allocate memory for r_buffer\n"); } @@ -324,6 +328,7 @@ int linux_spi_read(unsigned char *rb, unsigned long rlen) int remainder = rlen % TXRX_PHASE_SIZE; char *t_buffer = kzalloc(TXRX_PHASE_SIZE, GFP_KERNEL); + if (!t_buffer) { PRINT_ER("Failed to allocate memory for t_buffer\n"); } @@ -403,6 +408,7 @@ int linux_spi_read(unsigned char *rb, unsigned long rlen) }; char *t_buffer = kzalloc(rlen, GFP_KERNEL); + if (!t_buffer) { PRINT_ER("Failed to allocate memory for t_buffer\n"); } diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 70e4fa6a07a6..f047d6228a7b 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -37,6 +37,7 @@ WILC_ErrNo WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) while (pHandle->pstrMessageList != NULL) { Message *pstrMessge = pHandle->pstrMessageList->pstrNext; + kfree(pHandle->pstrMessageList); pHandle->pstrMessageList = pstrMessge; } @@ -82,6 +83,7 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, pHandle->pstrMessageList = pstrMessage; } else { Message *pstrTailMsg = pHandle->pstrMessageList; + while (pstrTailMsg->pstrNext != NULL) { pstrTailMsg = pstrTailMsg->pstrNext; } @@ -122,6 +124,7 @@ WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, Message *pstrMessage; WILC_ErrNo s32RetStatus = WILC_SUCCESS; unsigned long flags; + if ((pHandle == NULL) || (u32RecvBufferSize == 0) || (pvRecvBuffer == NULL) || (pu32ReceivedLength == NULL)) { WILC_ERRORREPORT(s32RetStatus, WILC_INVALID_ARGUMENT); diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index 1bf7d314ae34..d7bb204c3e99 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -1023,6 +1023,7 @@ static int spi_read(uint32_t addr, uint8_t *buf, uint32_t size) static int spi_clear_int(void) { uint32_t reg; + if (!spi_read_reg(WILC_HOST_RX_CTRL_0, ®)) { PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_HOST_RX_CTRL_0); return 0; @@ -1170,6 +1171,7 @@ static void spi_default_bus_speed(void) static int spi_read_size(uint32_t *size) { int ret; + if (g_spi.has_thrpt_enh) { ret = spi_internal_read(0xe840 - WILC_SPI_REG_BASE, size); *size = *size & IRQ_DMA_WD_CNT_MASK; @@ -1197,6 +1199,7 @@ _fail_: static int spi_read_int(uint32_t *int_status) { int ret; + if (g_spi.has_thrpt_enh) { ret = spi_internal_read(0xe840 - WILC_SPI_REG_BASE, int_status); } else { @@ -1257,6 +1260,7 @@ static int spi_clear_int_ext(uint32_t val) ret = spi_internal_write(0xe844 - WILC_SPI_REG_BASE, val); } else { uint32_t flags; + flags = val & ((1 << MAX_NUM_INT) - 1); if (flags) { int i; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index a6edc973f636..ead1291c82fd 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -144,6 +144,7 @@ bool g_wep_keys_saved; void clear_shadow_scan(void *pUserVoid) { int i; + if (op_ifcs == 0) { del_timer_sync(&hAgingTimer); PRINT_INFO(CORECONFIG_DBG, "destroy aging timer\n"); @@ -188,6 +189,7 @@ void refresh_scan(void *pUserVoid, uint8_t all, bool bDirectScan) for (i = 0; i < u32LastScannedNtwrksCountShadow; i++) { tstrNetworkInfo *pstrNetworkInfo; + pstrNetworkInfo = &(astrLastScannedNtwrksShadow[i]); @@ -217,6 +219,7 @@ void refresh_scan(void *pUserVoid, uint8_t all, bool bDirectScan) void reset_shadow_found(void *pUserVoid) { int i; + for (i = 0; i < u32LastScannedNtwrksCountShadow; i++) { astrLastScannedNtwrksShadow[i].u8Found = 0; @@ -226,6 +229,7 @@ void reset_shadow_found(void *pUserVoid) void update_scan_time(void *pUserVoid) { int i; + for (i = 0; i < u32LastScannedNtwrksCountShadow; i++) { astrLastScannedNtwrksShadow[i].u32TimeRcvdInScan = jiffies; } @@ -553,6 +557,7 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, tstrWILC_WFIDrv *pstrWFIDrv; #endif u8 NullBssid[ETH_ALEN] = {0}; + connecting = 0; priv = (struct WILC_WFI_priv *)pUserVoid; @@ -692,6 +697,7 @@ static int WILC_WFI_CfgSetChannel(struct wiphy *wiphy, u32 channelnum = 0; struct WILC_WFI_priv *priv; s32 s32Error = WILC_SUCCESS; + priv = wiphy_priv(wiphy); channelnum = ieee80211_frequency_to_channel(chandef->chan->center_freq); @@ -1075,6 +1081,7 @@ static int WILC_WFI_disconnect(struct wiphy *wiphy, struct net_device *dev, u16 tstrWILC_WFIDrv *pstrWFIDrv; #endif uint8_t NullBssid[ETH_ALEN] = {0}; + connecting = 0; priv = wiphy_priv(wiphy); @@ -1527,6 +1534,7 @@ static int WILC_WFI_get_key(struct wiphy *wiphy, struct net_device *netdev, u8 k struct WILC_WFI_priv *priv; struct key_params key_params; u32 i; + priv = wiphy_priv(wiphy); @@ -1668,6 +1676,7 @@ static int WILC_WFI_get_station(struct wiphy *wiphy, struct net_device *dev, if (nic->iftype == STATION_MODE) { tstrStatistics strStatistics; + host_int_get_statistics(priv->hWILCWFIDrv, &strStatistics); /* @@ -2198,6 +2207,7 @@ void WILC_WFI_p2p_rx (struct net_device *dev, uint8_t *buff, uint32_t size) tstrWILC_WFIDrv *pstrWFIDrv; u32 i = 0; s32 s32Freq; + priv = wiphy_priv(dev->ieee80211_ptr->wiphy); pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; @@ -2333,6 +2343,7 @@ static void WILC_WFI_mgmt_tx_complete(void *priv, int status) static void WILC_WFI_RemainOnChannelReady(void *pUserVoid) { struct WILC_WFI_priv *priv; + priv = (struct WILC_WFI_priv *)pUserVoid; PRINT_D(HOSTINF_DBG, "Remain on channel ready\n"); @@ -2359,6 +2370,7 @@ static void WILC_WFI_RemainOnChannelReady(void *pUserVoid) static void WILC_WFI_RemainOnChannelExpired(void *pUserVoid, u32 u32SessionID) { struct WILC_WFI_priv *priv; + priv = (struct WILC_WFI_priv *)pUserVoid; /*BugID_5477*/ @@ -2399,6 +2411,7 @@ static int WILC_WFI_remain_on_channel(struct wiphy *wiphy, { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; + priv = wiphy_priv(wiphy); PRINT_D(GENERIC_DBG, "Remaining on channel %d\n", chan->hw_value); @@ -2450,6 +2463,7 @@ static int WILC_WFI_cancel_remain_on_channel(struct wiphy *wiphy, { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; + priv = wiphy_priv(wiphy); PRINT_D(CFG80211_DBG, "Cancel remain on channel\n"); @@ -2644,6 +2658,7 @@ int WILC_WFI_mgmt_tx_cancel_wait(struct wiphy *wiphy, { struct WILC_WFI_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; + priv = wiphy_priv(wiphy); pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; @@ -2761,6 +2776,7 @@ static int WILC_WFI_dump_station(struct wiphy *wiphy, struct net_device *dev, int idx, u8 *mac, struct station_info *sinfo) { struct WILC_WFI_priv *priv; + PRINT_D(CFG80211_DBG, "Dumping station information\n"); if (idx != 0) @@ -2790,6 +2806,7 @@ int WILC_WFI_set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, bool enabled, int timeout) { struct WILC_WFI_priv *priv; + PRINT_D(CFG80211_DBG, " Power save Enabled= %d , TimeOut = %d\n", enabled, timeout); if (wiphy == NULL) @@ -3416,6 +3433,7 @@ static int WILC_WFI_del_station(struct wiphy *wiphy, struct net_device *dev, s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; perInterface_wlan_t *nic; + WILC_NULLCHECK(s32Error, wiphy); priv = wiphy_priv(wiphy); @@ -3542,6 +3560,7 @@ struct wireless_dev *WILC_WFI_add_virt_intf(struct wiphy *wiphy, const char *nam perInterface_wlan_t *nic; struct WILC_WFI_priv *priv; struct net_device *new_ifc = NULL; + priv = wiphy_priv(wiphy); @@ -3864,6 +3883,7 @@ int WILC_WFI_DeInitHostInt(struct net_device *net) s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; + priv = wdev_priv(net->ieee80211_ptr); priv->gbAutoRateAdjusted = false; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 7c53a2bd0381..c48fe4ad10ad 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -188,6 +188,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) struct txq_entry_t *tqe; wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; + p->os_func.os_spin_lock(p->txq_spinlock, &flags); if (p->txq_head) { tqe = p->txq_head; @@ -368,6 +369,7 @@ static __inline int remove_TCP_related(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; + p->os_func.os_spin_lock(p->txq_spinlock, &flags); p->os_func.os_spin_unlock(p->txq_spinlock, &flags); @@ -383,6 +385,7 @@ static __inline int tcp_process(struct txq_entry_t *tqe) int i; wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; + p->os_func.os_spin_lock(p->txq_spinlock, &flags); eth_hdr_ptr = &buffer[0]; @@ -398,12 +401,14 @@ static __inline int tcp_process(struct txq_entry_t *tqe) if (protocol == 0x06) { uint8_t *tcp_hdr_ptr; uint32_t IHL, Total_Length, Data_offset; + tcp_hdr_ptr = &ip_hdr_ptr[IP_HDR_LEN]; IHL = (ip_hdr_ptr[0] & 0xf) << 2; Total_Length = (((uint32_t)ip_hdr_ptr[2]) << 8) + ((uint32_t)ip_hdr_ptr[3]); Data_offset = (((uint32_t)tcp_hdr_ptr[12] & 0xf0) >> 2); if (Total_Length == (IHL + Data_offset)) { /*we want to recognize the clear Acks(packet only carry Ack infos not with data) so data size must be equal zero*/ uint32_t seq_no, Ack_no; + seq_no = (((uint32_t)tcp_hdr_ptr[4]) << 24) + (((uint32_t)tcp_hdr_ptr[5]) << 16) + (((uint32_t)tcp_hdr_ptr[6]) << 8) + ((uint32_t)tcp_hdr_ptr[7]); Ack_no = (((uint32_t)tcp_hdr_ptr[8]) << 24) + (((uint32_t)tcp_hdr_ptr[9]) << 16) + (((uint32_t)tcp_hdr_ptr[10]) << 8) + ((uint32_t)tcp_hdr_ptr[11]); @@ -445,6 +450,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) for (i = PendingAcks_arrBase; i < (PendingAcks_arrBase + Pending_Acks); i++) { if (Pending_Acks_info[i].ack_num < Acks_keep_track_info[Pending_Acks_info[i].Session_index].Bigger_Ack_num) { struct txq_entry_t *tqe; + PRINT_D(TCP_ENH, "DROP ACK: %u\n", Pending_Acks_info[i].ack_num); tqe = Pending_Acks_info[i].txqe; if (tqe) { @@ -778,6 +784,7 @@ INLINE void chip_wakeup(void) if (wilc_get_chipid(false) >= 0x1002b0) { /* Enable PALDO back right after wakeup */ uint32_t val32; + g_wlan.hif_func.hif_read_reg(0x1e1c, &val32); val32 |= (1 << 6); g_wlan.hif_func.hif_write_reg(0x1e1c, val32); @@ -793,6 +800,7 @@ INLINE void chip_wakeup(void) INLINE void chip_wakeup(void) { uint32_t reg, trials = 0; + do { if ((g_wlan.io_func.io_type & 0x1) == HIF_SPI) { g_wlan.hif_func.hif_read_reg(1, ®); @@ -833,6 +841,7 @@ INLINE void chip_wakeup(void) if (wilc_get_chipid(false) >= 0x1002b0) { /* Enable PALDO back right after wakeup */ uint32_t val32; + g_wlan.hif_func.hif_read_reg(0x1e1c, &val32); val32 |= (1 << 6); g_wlan.hif_func.hif_write_reg(0x1e1c, val32); @@ -885,6 +894,7 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) int counter; int timeout; uint32_t vmm_table[WILC_VMM_TBL_SIZE]; + p->txq_exit = 0; do { if (p->quit) @@ -1125,6 +1135,7 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) /* and WILC_DATA_PKT_MAC_HDR*/ else if (tqe->type == WILC_NET_PKT) { char *pBSSID = ((struct tx_complete_data *)(tqe->priv))->pBssid; + buffer_offset = ETH_ETHERNET_HDR_OFFSET; /* copy the bssid at the sart of the buffer */ memcpy(&txb[offset + 4], pBSSID, 6); @@ -1225,6 +1236,7 @@ static void wilc_wlan_handle_rxq(void) uint32_t header; uint32_t pkt_len, pkt_offset, tp_len; int is_cfg_packet; + PRINT_D(RX_DBG, "In the 2nd do-while\n"); memcpy(&header, &buffer[offset], 4); #ifdef BIG_ENDIAN @@ -1705,6 +1717,7 @@ void wilc_wlan_global_reset(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + acquire_bus(ACQUIRE_AND_WAKEUP); p->hif_func.hif_write_reg(WILC_GLB_RESET_0, 0x0); release_bus(RELEASE_ONLY); diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index e2842d37b078..c3f3aaf389f5 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -342,6 +342,7 @@ static void wilc_wlan_parse_response_frame(uint8_t *info, int size) if (g_cfg_str[i].id == wid) { if (wid == WID_SITE_SURVEY_RESULTS) { static int toggle; + PRINT_INFO(GENERIC_DBG, "Site survey results received[%d]\n", size); @@ -483,9 +484,11 @@ static int wilc_wlan_cfg_get_wid_value(uint16_t wid, uint8_t *buffer, uint32_t b if (g_cfg_str[i].id == wid) { uint32_t size = g_cfg_str[i].str[0]; + if (buffer_size >= size) { if (g_cfg_str[i].id == WID_SITE_SURVEY_RESULTS) { static int toggle; + PRINT_INFO(GENERIC_DBG, "Site survey results value[%d]\n", size); i += toggle; From 6fffc6213df87e78debd952fe28338a3c8816d03 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:58:56 +0900 Subject: [PATCH 0123/2431] staging: wilc1000: wilc_msgqueue.c: remove braces for single statement This patch removes braces for single statement blocks. WARNING: braces {} are not necessary for single statement blocks Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index f047d6228a7b..fcf3a29ab897 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -84,9 +84,9 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, } else { Message *pstrTailMsg = pHandle->pstrMessageList; - while (pstrTailMsg->pstrNext != NULL) { + while (pstrTailMsg->pstrNext != NULL) pstrTailMsg = pstrTailMsg->pstrNext; - } + pstrTailMsg->pstrNext = pstrMessage; } @@ -98,9 +98,9 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, { /* error occured, free any allocations */ if (pstrMessage != NULL) { - if (pstrMessage->pvBuffer != NULL) { + if (pstrMessage->pvBuffer != NULL) kfree(pstrMessage->pvBuffer); - } + kfree(pstrMessage); } } From 32728da0293835ee37adf72d7d334b29eeb121c2 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:58:57 +0900 Subject: [PATCH 0124/2431] staging: wilc1000: wilc_msgqueue.c: remove blank line after open brace This patch removes a blank line for open brace "{" CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index fcf3a29ab897..7718c481c669 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -26,7 +26,6 @@ WILC_ErrNo WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle) */ WILC_ErrNo WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) { - pHandle->bExiting = true; /* Release any waiting receiver thread. */ @@ -120,7 +119,6 @@ WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, void *pvRecvBuffer, u32 u32RecvBufferSize, u32 *pu32ReceivedLength) { - Message *pstrMessage; WILC_ErrNo s32RetStatus = WILC_SUCCESS; unsigned long flags; From df1890a67482660485130baff7dd5e0c3c3fa9be Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:58:58 +0900 Subject: [PATCH 0125/2431] staging: wilc1000: wilc_msgqueue.c: remove multiple blank lines This patch removes multiple blank lines. CHECK: Please don't use multiple blank lines Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 7718c481c669..e7c4a9a4ffb7 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -76,7 +76,6 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, WILC_NULLCHECK(s32RetStatus, pstrMessage->pvBuffer); memcpy(pstrMessage->pvBuffer, pvSendBuffer, u32SendBufferSize); - /* add it to the message queue */ if (pHandle->pstrMessageList == NULL) { pHandle->pstrMessageList = pstrMessage; @@ -107,8 +106,6 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, return s32RetStatus; } - - /*! * @author syounan * @date 1 Sep 2010 From b6583f7415dbf15aab8fee9ccebd47e52a7aab4c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:58:59 +0900 Subject: [PATCH 0126/2431] staging: wilc1000: wilc_msgqueue.c: remove blank line before a close brace This patch removes blank line before a close brace "}" CHECK: Blank lines aren't necessary before a close brace '}' Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index e7c4a9a4ffb7..8cb74d16f8e0 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -173,7 +173,6 @@ WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, kfree(pstrMessage); spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); - } WILC_CATCH(s32RetStatus) From 96cab4cdc6583d386696c1325a391c11391d6998 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:00 +0900 Subject: [PATCH 0127/2431] staging: wilc1000: wilc_msgqueue.c: remove unnecessary parentheses This patch remove unnecessary parentheses found by checkpatch.pl CHECK: Unnecessary parentheses around pHandle->hSem Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 8cb74d16f8e0..53ce586d96b3 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -30,7 +30,7 @@ WILC_ErrNo WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) /* Release any waiting receiver thread. */ while (pHandle->u32ReceiversCount > 0) { - up(&(pHandle->hSem)); + up(&pHandle->hSem); pHandle->u32ReceiversCount--; } @@ -133,7 +133,7 @@ WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, pHandle->u32ReceiversCount++; spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); - down(&(pHandle->hSem)); + down(&pHandle->hSem); if (s32RetStatus == WILC_TIMEOUT) { /* timed out, just exit without consumeing the message */ From ae177a2afc36336dd6a5a21bb8ddfe9d44791a0d Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:01 +0900 Subject: [PATCH 0128/2431] staging: wilc1000: wilc_msgqueue.c: use ! operator instead of NULL comparison This patch uses ! operator instead of NULL comparison. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 53ce586d96b3..0770ff6d5d7f 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -34,7 +34,7 @@ WILC_ErrNo WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) pHandle->u32ReceiversCount--; } - while (pHandle->pstrMessageList != NULL) { + while (pHandle->pstrMessageList) { Message *pstrMessge = pHandle->pstrMessageList->pstrNext; kfree(pHandle->pstrMessageList); @@ -57,7 +57,7 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, unsigned long flags; Message *pstrMessage = NULL; - if ((pHandle == NULL) || (u32SendBufferSize == 0) || (pvSendBuffer == NULL)) { + if ((!pHandle) || (u32SendBufferSize == 0) || (!pvSendBuffer)) { WILC_ERRORREPORT(s32RetStatus, WILC_INVALID_ARGUMENT); } @@ -77,12 +77,12 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, memcpy(pstrMessage->pvBuffer, pvSendBuffer, u32SendBufferSize); /* add it to the message queue */ - if (pHandle->pstrMessageList == NULL) { + if (!pHandle->pstrMessageList) { pHandle->pstrMessageList = pstrMessage; } else { Message *pstrTailMsg = pHandle->pstrMessageList; - while (pstrTailMsg->pstrNext != NULL) + while (pstrTailMsg->pstrNext) pstrTailMsg = pstrTailMsg->pstrNext; pstrTailMsg->pstrNext = pstrMessage; @@ -95,8 +95,8 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, WILC_CATCH(s32RetStatus) { /* error occured, free any allocations */ - if (pstrMessage != NULL) { - if (pstrMessage->pvBuffer != NULL) + if (pstrMessage) { + if (pstrMessage->pvBuffer) kfree(pstrMessage->pvBuffer); kfree(pstrMessage); @@ -120,8 +120,8 @@ WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, WILC_ErrNo s32RetStatus = WILC_SUCCESS; unsigned long flags; - if ((pHandle == NULL) || (u32RecvBufferSize == 0) - || (pvRecvBuffer == NULL) || (pu32ReceivedLength == NULL)) { + if ((!pHandle) || (u32RecvBufferSize == 0) + || (!pvRecvBuffer) || (!pu32ReceivedLength)) { WILC_ERRORREPORT(s32RetStatus, WILC_INVALID_ARGUMENT); } @@ -151,7 +151,7 @@ WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, spin_lock_irqsave(&pHandle->strCriticalSection, flags); pstrMessage = pHandle->pstrMessageList; - if (pstrMessage == NULL) { + if (!pstrMessage) { spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); WILC_ERRORREPORT(s32RetStatus, WILC_FAIL); } From ce118546d4250cfe2b059fb42a4b755944723a50 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:02 +0900 Subject: [PATCH 0129/2431] staging: wilc1000: wilc_msgqueue.c: remove kfree NULL check This patch removes kfree NULL check. WARNING: kfree(NULL) is safe and this check is probably not required. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 0770ff6d5d7f..d97dd705da5a 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -96,9 +96,7 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, { /* error occured, free any allocations */ if (pstrMessage) { - if (pstrMessage->pvBuffer) - kfree(pstrMessage->pvBuffer); - + kfree(pstrMessage->pvBuffer); kfree(pstrMessage); } } From bb9c2e7a9d04f74746256f033fd78cff2df0a5db Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:03 +0900 Subject: [PATCH 0130/2431] staging: wilc1000: wilc_msgqueue.c: fix bool comparison style This patch changes bool comparison style found by checkpatch.pl CHECK: Using comparison to true is error prone Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index d97dd705da5a..f974f859b1a8 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -61,7 +61,7 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, WILC_ERRORREPORT(s32RetStatus, WILC_INVALID_ARGUMENT); } - if (pHandle->bExiting == true) { + if (pHandle->bExiting) { WILC_ERRORREPORT(s32RetStatus, WILC_FAIL); } @@ -123,7 +123,7 @@ WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, WILC_ERRORREPORT(s32RetStatus, WILC_INVALID_ARGUMENT); } - if (pHandle->bExiting == true) { + if (pHandle->bExiting) { WILC_ERRORREPORT(s32RetStatus, WILC_FAIL); } From bd56018a87a992c3c5ebfe4174b2bc41316dae3b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:04 +0900 Subject: [PATCH 0131/2431] staging: wilc1000: replace WILC_ErrNo by int type This patch replaces WILC_ErrNo with int type. WILC_ErrNo typedef is also removed. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_errorsupport.h | 2 -- drivers/staging/wilc1000/wilc_msgqueue.c | 12 ++++++------ drivers/staging/wilc1000/wilc_msgqueue.h | 8 ++++---- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index b9517dc7f661..6012ec4dfce0 100644 --- a/drivers/staging/wilc1000/wilc_errorsupport.h +++ b/drivers/staging/wilc1000/wilc_errorsupport.h @@ -36,8 +36,6 @@ #define WILC_FILE_EOF -116 -/* Error type */ -typedef s32 WILC_ErrNo; #define WILC_IS_ERR(__status__) (__status__ < WILC_SUCCESS) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index f974f859b1a8..f528f9879d4d 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -8,7 +8,7 @@ * @note copied from FLO glue implementatuion * @version 1.0 */ -WILC_ErrNo WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle) +int WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle) { spin_lock_init(&pHandle->strCriticalSection); sema_init(&pHandle->hSem, 0); @@ -24,7 +24,7 @@ WILC_ErrNo WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle) * @note copied from FLO glue implementatuion * @version 1.0 */ -WILC_ErrNo WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) +int WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) { pHandle->bExiting = true; @@ -50,10 +50,10 @@ WILC_ErrNo WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) * @note copied from FLO glue implementatuion * @version 1.0 */ -WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, +int WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, const void *pvSendBuffer, u32 u32SendBufferSize) { - WILC_ErrNo s32RetStatus = WILC_SUCCESS; + int s32RetStatus = WILC_SUCCESS; unsigned long flags; Message *pstrMessage = NULL; @@ -110,12 +110,12 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, * @note copied from FLO glue implementatuion * @version 1.0 */ -WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, +int WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, void *pvRecvBuffer, u32 u32RecvBufferSize, u32 *pu32ReceivedLength) { Message *pstrMessage; - WILC_ErrNo s32RetStatus = WILC_SUCCESS; + int s32RetStatus = WILC_SUCCESS; unsigned long flags; if ((!pHandle) || (u32RecvBufferSize == 0) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index ef1d2fa20c50..a32c6db5971d 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -27,7 +27,7 @@ * @date 30 Aug 2010 * @version 1.0 */ -WILC_ErrNo WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle); +int WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle); /*! * @brief Sends a message @@ -44,7 +44,7 @@ WILC_ErrNo WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle); * @date 30 Aug 2010 * @version 1.0 */ -WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, +int WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, const void *pvSendBuffer, u32 u32SendBufferSize); /*! @@ -63,7 +63,7 @@ WILC_ErrNo WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, * @date 30 Aug 2010 * @version 1.0 */ -WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, +int WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, void *pvRecvBuffer, u32 u32RecvBufferSize, u32 *pu32ReceivedLength); @@ -76,6 +76,6 @@ WILC_ErrNo WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, * @date 30 Aug 2010 * @version 1.0 */ -WILC_ErrNo WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle); +int WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle); #endif From cd08fc78138af767a8dea2f4d0a8251efd9a0afc Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:05 +0900 Subject: [PATCH 0132/2431] staging: wilc1000: rename WILC_MsgQueueCreate to wilc_mq_create This patch replaces WILC_MsgQueueCreate with wilc_mq_create to shorten function name and avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 66fa677015db..159734f90ba6 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6532,7 +6532,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) PRINT_D(HOSTINF_DBG, "INIT: CLIENT COUNT %d\n", clients_count); if (clients_count == 0) { - s32Error = WILC_MsgQueueCreate(&gMsgQHostIF); + s32Error = wilc_mq_create(&gMsgQHostIF); if (s32Error < 0) { PRINT_ER("Failed to creat MQ\n"); diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index f528f9879d4d..035809981847 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -8,7 +8,7 @@ * @note copied from FLO glue implementatuion * @version 1.0 */ -int WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle) +int wilc_mq_create(WILC_MsgQueueHandle *pHandle) { spin_lock_init(&pHandle->strCriticalSection); sema_init(&pHandle->hSem, 0); diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index a32c6db5971d..555aa02c1668 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -27,7 +27,7 @@ * @date 30 Aug 2010 * @version 1.0 */ -int WILC_MsgQueueCreate(WILC_MsgQueueHandle *pHandle); +int wilc_mq_create(WILC_MsgQueueHandle *pHandle); /*! * @brief Sends a message From 79198138a8c77b385f9232a9067e783e2a7d5eeb Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:06 +0900 Subject: [PATCH 0133/2431] staging: wilc1000: rename WILC_MsgQueueSend to wilc_mq_send This patch replaces WILC_MsgQueueSend with wilc_mq_send to shorten function name and avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 98 +++++++++++------------ drivers/staging/wilc1000/wilc_msgqueue.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.h | 2 +- 3 files changed, 51 insertions(+), 51 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 159734f90ba6..6be2348935ab 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -3997,7 +3997,7 @@ static void ListenTimerCB(unsigned long arg) strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -4344,13 +4344,13 @@ static int hostIFthread(void *pvArg) if ((!g_wilc_initialized)) { PRINT_D(GENERIC_DBG, "--WAIT--"); usleep_range(200 * 1000, 200 * 1000); - WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); continue; } if (strHostIFmsg.u16MsgId == HOST_IF_MSG_CONNECT && pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_D(HOSTINF_DBG, "Requeue connect request till scan done received\n"); - WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); usleep_range(2 * 1000, 2 * 1000); continue; } @@ -4557,7 +4557,7 @@ static void TimerCB_Scan(unsigned long arg) strHostIFmsg.u16MsgId = HOST_IF_MSG_SCAN_TIMER_FIRED; /* send the message */ - WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); } static void TimerCB_Connect(unsigned long arg) @@ -4571,7 +4571,7 @@ static void TimerCB_Connect(unsigned long arg) strHostIFmsg.u16MsgId = HOST_IF_MSG_CONNECT_TIMER_FIRED; /* send the message */ - WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); } @@ -4642,7 +4642,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8keyIdx; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4690,7 +4690,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Index; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending message queue : Default key index\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4757,7 +4757,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4832,7 +4832,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type = tenuAuth_type; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); @@ -4931,7 +4931,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending message queue: PTK Key\n"); @@ -5033,7 +5033,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending message queue: RX GTK\n"); /* ////////////// */ @@ -5096,7 +5096,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm } /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER(" Error in sending messagequeue: PMKID Info\n"); @@ -5198,7 +5198,7 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) strHostIFmsg.uniHostIFmsgBody.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send get mac address\n"); return WILC_FAIL; @@ -5232,7 +5232,7 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send message queue: Set mac address\n"); WILC_ERRORREPORT(s32Error, s32Error); @@ -5484,7 +5484,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", pstrWFIDrv->enuHostIFstate); /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send message queue: Set join request\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -5534,7 +5534,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send message queue: Flush join request\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -5581,7 +5581,7 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Failed to send message queue: disconnect\n"); /* ////////////// */ @@ -5770,7 +5770,7 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) strHostIFmsg.uniHostIFmsgBody.strHostIFSetChan.u8SetChan = u8ChNum; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -5792,7 +5792,7 @@ s32 host_int_wait_msg_queue_idle(void) memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_Q_IDLE; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -5821,7 +5821,7 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = u32address; /* strHostIFmsg.drvHandler=hWFIDrv; */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -5848,7 +5848,7 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) strHostIFmsg.uniHostIFmsgBody.strHostIfSetOperationMode.u32Mode = u32mode; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -5892,7 +5892,7 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Failed to send get host channel param's message queue "); down(&(pstrWFIDrv->hSemGetCHNL)); @@ -5988,7 +5988,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Failed to send get host channel param's message queue "); @@ -6076,7 +6076,7 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return WILC_FAIL; @@ -6113,7 +6113,7 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send GET_LINKSPEED to message queue "); return WILC_FAIL; @@ -6147,7 +6147,7 @@ s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatis strHostIFmsg.uniHostIFmsgBody.pUserData = (char *)pstrStatistics; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return WILC_FAIL; @@ -6218,7 +6218,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, pu8IEs, IEsLen); /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Error in sending message queue scanning parameters: Error(%d)\n", s32Error); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -6265,7 +6265,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) strHostIFmsg.uniHostIFmsgBody.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); WILC_CATCH(s32Error) { @@ -6444,7 +6444,7 @@ static void GetPeriodicRSSI(unsigned long arg) strHostIFmsg.drvHandler = pstrWFIDrv; /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return; @@ -6711,7 +6711,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error != WILC_SUCCESS) PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", s32Error); @@ -6780,7 +6780,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) pu8Buffer, u32Length); /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending network info message queue message parameters: Error(%d)\n", s32Error); } @@ -6840,7 +6840,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) pu8Buffer, u32Length); /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); @@ -6891,7 +6891,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) * pu8Buffer, u32Length); */ /* send the message */ - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) PRINT_ER("Error in sending message queue scan complete parameters: Error(%d)\n", s32Error); } @@ -6938,7 +6938,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -6981,7 +6981,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7031,7 +7031,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe strHostIFmsg.uniHostIFmsgBody.strHostIfRegisterFrame.bReg = bReg; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7097,7 +7097,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, pstrSetBeaconParam->pu8Tail = NULL; } - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); @@ -7138,7 +7138,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); WILC_ERRORCHECK(s32Error); WILC_CATCH(s32Error) @@ -7188,7 +7188,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta } - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); @@ -7233,7 +7233,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) else memcpy(pstrDelStationMsg->au8MacAddr, pu8MacAddr, ETH_ALEN); - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); @@ -7288,7 +7288,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) } pstrDelAllStationMsg->u8Num_AssocSta = u8AssocNumb; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) @@ -7341,7 +7341,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt pstrAddStationMsg->pu8Rates = rates; } - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7377,7 +7377,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti pstrPowerMgmtParam->u32Timeout = u32Timeout; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7410,7 +7410,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u pstrMulticastFilterParam->bIsEnabled = bIsEnabled; pstrMulticastFilterParam->u32count = u32count; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7678,7 +7678,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI pBASessionInfo->u16SessionTimeout = SessionTimeout; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7709,7 +7709,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) pBASessionInfo->u8Ted = TID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7742,7 +7742,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T pBASessionInfo->u8Ted = TID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7785,7 +7785,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) @@ -7824,7 +7824,7 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; - s32Error = WILC_MsgQueueSend(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) WILC_ERRORREPORT(s32Error, s32Error); WILC_CATCH(s32Error) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 035809981847..b5d230bdf94f 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -50,7 +50,7 @@ int WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) * @note copied from FLO glue implementatuion * @version 1.0 */ -int WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, +int wilc_mq_send(WILC_MsgQueueHandle *pHandle, const void *pvSendBuffer, u32 u32SendBufferSize) { int s32RetStatus = WILC_SUCCESS; diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index 555aa02c1668..197b0a9007b7 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -44,7 +44,7 @@ int wilc_mq_create(WILC_MsgQueueHandle *pHandle); * @date 30 Aug 2010 * @version 1.0 */ -int WILC_MsgQueueSend(WILC_MsgQueueHandle *pHandle, +int wilc_mq_send(WILC_MsgQueueHandle *pHandle, const void *pvSendBuffer, u32 u32SendBufferSize); /*! From b986e33e1e60c203620bc8224353590694d70abd Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:07 +0900 Subject: [PATCH 0134/2431] staging: wilc1000: rename WILC_MsgQueueRecv to wilc_mq_recv This patch replaces WILC_MsgQueueRecv with wilc_mq_recv to shorten function name and avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6be2348935ab..f0a138305caa 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4332,7 +4332,7 @@ static int hostIFthread(void *pvArg) memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); while (1) { - WILC_MsgQueueRecv(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg), &u32Ret); + wilc_mq_recv(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg), &u32Ret); pstrWFIDrv = (tstrWILC_WFIDrv *)strHostIFmsg.drvHandler; if (strHostIFmsg.u16MsgId == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index b5d230bdf94f..601509824a6e 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -110,7 +110,7 @@ int wilc_mq_send(WILC_MsgQueueHandle *pHandle, * @note copied from FLO glue implementatuion * @version 1.0 */ -int WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, +int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, void *pvRecvBuffer, u32 u32RecvBufferSize, u32 *pu32ReceivedLength) { diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index 197b0a9007b7..143fba4957b0 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -63,7 +63,7 @@ int wilc_mq_send(WILC_MsgQueueHandle *pHandle, * @date 30 Aug 2010 * @version 1.0 */ -int WILC_MsgQueueRecv(WILC_MsgQueueHandle *pHandle, +int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, void *pvRecvBuffer, u32 u32RecvBufferSize, u32 *pu32ReceivedLength); From 1b128f632d100290fe1e7d9007f08046f2579189 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:08 +0900 Subject: [PATCH 0135/2431] staging: wilc1000: rename WILC_MsgQueueDestroy to wilc_mq_destroy This patch replaces WILC_MsgQueueDestroy to wilc_mq_destroy to shorten function name and avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/wilc_msgqueue.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f0a138305caa..d411847fcf70 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6616,7 +6616,7 @@ _fail_timer_2: del_timer_sync(&pstrWFIDrv->hScanTimer); kthread_stop(HostIFthreadHandler); _fail_mq_: - WILC_MsgQueueDestroy(&gMsgQHostIF); + wilc_mq_destroy(&gMsgQHostIF); _fail_: return s32Error; @@ -6717,7 +6717,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) down(&hSemHostIFthrdEnd); - WILC_MsgQueueDestroy(&gMsgQHostIF); + wilc_mq_destroy(&gMsgQHostIF); msgQ_created = 0; } diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 601509824a6e..76d2e63dc2d5 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -24,7 +24,7 @@ int wilc_mq_create(WILC_MsgQueueHandle *pHandle) * @note copied from FLO glue implementatuion * @version 1.0 */ -int WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle) +int wilc_mq_destroy(WILC_MsgQueueHandle *pHandle) { pHandle->bExiting = true; diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index 143fba4957b0..fc65dfef2773 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -76,6 +76,6 @@ int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, * @date 30 Aug 2010 * @version 1.0 */ -int WILC_MsgQueueDestroy(WILC_MsgQueueHandle *pHandle); +int wilc_mq_destroy(WILC_MsgQueueHandle *pHandle); #endif From 8a625cade3d4ac4da0d985f62afd3184617ba9b7 Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Thu, 20 Aug 2015 16:32:50 +0900 Subject: [PATCH 0136/2431] staging: wilc1000: use the real data type This patch changes the type of gu8FlushedJoinReqDrvHandler with his real data type becasue typecasting is not necessary. In result, typecasting which is not necessary and some building warnings is removed. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d411847fcf70..83abe78dd3a4 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -578,7 +578,7 @@ u8 gu8Flushed11iMode; u8 gu8FlushedAuthType; u32 gu32FlushedJoinReqSize; u32 gu32FlushedInfoElemAsocSize; -u32 gu8FlushedJoinReqDrvHandler; +tstrWILC_WFIDrv *gu8FlushedJoinReqDrvHandler; #define REAL_JOIN_REQ 0 #define FLUSHED_JOIN_REQ 1 #define FLUSHED_BYTE_POS 79 /* Position the byte indicating flushing in the flushed request */ @@ -1940,7 +1940,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps /*BugID_5137*/ if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { memcpy(gu8FlushedJoinReq, pu8CurrByte, gu32FlushedJoinReqSize); - gu8FlushedJoinReqDrvHandler = (u32)pstrWFIDrv; + gu8FlushedJoinReqDrvHandler = pstrWFIDrv; } PRINT_D(GENERIC_DBG, "send HOST_IF_WAITING_CONN_RESP\n"); @@ -2191,11 +2191,11 @@ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) memset(u8ConnectedSSID, 0, ETH_ALEN); /*BugID_5213*/ /*Freeing flushed join request params on connect timeout*/ - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == (u32)drvHandler) { + if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == (u32)drvHandler) { + if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedInfoElemAsoc); gu8FlushedInfoElemAsoc = NULL; } @@ -2617,11 +2617,11 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy /*BugID_5213*/ /*Freeing flushed join request params on receiving*/ /*MAC_DISCONNECTED while connected*/ - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == (u32)drvHandler) { + if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == (u32)drvHandler) { + if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedInfoElemAsoc); gu8FlushedInfoElemAsoc = NULL; } @@ -3117,11 +3117,11 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) /*BugID_5137*/ - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == (u32)drvHandler) { + if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == (u32)drvHandler) { + if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedInfoElemAsoc); gu8FlushedInfoElemAsoc = NULL; } From 53a84401883a873c8ad29a43dee4f0fbdc53157e Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Thu, 20 Aug 2015 16:32:51 +0900 Subject: [PATCH 0137/2431] staging: wilc1000: add an argument for Handle_SetWfiDrvHandler Similar to functions of same layer, this patch add an argument for Handle_SetWfiDrvHandler function. As a result, the redundant typecasting is removed. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 83abe78dd3a4..0506d6dbb857 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -637,12 +637,13 @@ static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetChan *pst * @date * @version 1.0 */ -static s32 Handle_SetWfiDrvHandler(tstrHostIfSetDrvHandler *pstrHostIfSetDrvHandler) +static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, + tstrHostIfSetDrvHandler *pstrHostIfSetDrvHandler) { s32 s32Error = WILC_SUCCESS; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)((pstrHostIfSetDrvHandler->u32Address)); + tstrWILC_WFIDrv *pstrWFIDrv = drvHandler; /*prepare configuration packet*/ @@ -656,7 +657,7 @@ static s32 Handle_SetWfiDrvHandler(tstrHostIfSetDrvHandler *pstrHostIfSetDrvHand s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); - if ((pstrHostIfSetDrvHandler->u32Address) == (u32)NULL) + if (pstrWFIDrv == NULL) up(&hSemDeinitDrvHandle); @@ -4474,7 +4475,8 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_SET_WFIDRV_HANDLER: - Handle_SetWfiDrvHandler(&strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler); + Handle_SetWfiDrvHandler(strHostIFmsg.drvHandler, + &strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler); break; case HOST_IF_MSG_SET_OPERATION_MODE: @@ -5819,7 +5821,7 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_WFIDRV_HANDLER; strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = u32address; - /* strHostIFmsg.drvHandler=hWFIDrv; */ + strHostIFmsg.drvHandler = u32address; s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) From e5d57e917a8c7ff1da10a568eb738a6ac5697dae Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Thu, 20 Aug 2015 16:32:53 +0900 Subject: [PATCH 0138/2431] staging: wilc1000: change address to fixed value The linux_wlan_init_test_config() is called once when net driver is loaded. And because the pointer type of the pstrWFIDrv is changed with the interger type, this patch replaces it with designated value instead of pointer. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 888652dae487..4f7f3b71d142 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1062,7 +1062,7 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n goto _fail_; } - *(int *)c_val = (u32)pstrWFIDrv; + *(int *)c_val = 1; if (!g_linux_wlan->oup.wlan_cfg_set(1, WID_SET_DRV_HANDLER, c_val, 4, 0, 0)) goto _fail_; @@ -1301,7 +1301,7 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n goto _fail_; c_val[0] = 1; /* Enable N with immediate block ack. */ - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_IMMEDIATE_BA_ENABLED, c_val, 1, 1, (u32)pstrWFIDrv)) + if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_IMMEDIATE_BA_ENABLED, c_val, 1, 1, 1)) goto _fail_; return 0; From 3a79a7f7135ab724bce5979963a9e3e5be4c8908 Mon Sep 17 00:00:00 2001 From: Hari Prasath Gujulan Elango Date: Thu, 20 Aug 2015 09:59:44 +0000 Subject: [PATCH 0139/2431] staging: wilc1000: simplify 'memset' of 2D array This patch simplifies the 'memset' done on a static 2D array. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0506d6dbb857..17fa2997b1e7 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1493,8 +1493,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps PRINT_D(GENERIC_DBG, "Handling connect request\n"); #ifndef CONNECT_DIRECT - memset(gapu8RcvdSurveyResults[0], 0, MAX_SURVEY_RESULT_FRAG_SIZE); - memset(gapu8RcvdSurveyResults[1], 0, MAX_SURVEY_RESULT_FRAG_SIZE); + memset(gapu8RcvdSurveyResults, 0, sizeof(gapu8RcvdSurveyResults)); PRINT_D(HOSTINF_DBG, "Getting site survey results\n"); From fec85e0afa918b33e56797400f674bc828362dd4 Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Thu, 27 Aug 2015 19:08:15 +0600 Subject: [PATCH 0140/2431] staging/rtl8188eu: Use %pM format specifier to print mac address printk() supports %pM format specifier for printing 6-byte MAC/FDDI addresses in hex notation small buffers, let's use it intead of %x:%x... Signed-off-by: Alexander Kuleshov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index 935b48eef8b1..5dae7de03327 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c @@ -5384,9 +5384,8 @@ u8 set_stakey_hdl(struct adapter *padapter, u8 *pbuf) cam_id = psta->mac_id + 3;/* 0~3 for default key, cmd_id = macid + 3, macid = aid+1; */ - DBG_88E("Write CAM, mac_addr =%x:%x:%x:%x:%x:%x, cam_entry=%d\n", pparm->addr[0], - pparm->addr[1], pparm->addr[2], pparm->addr[3], pparm->addr[4], - pparm->addr[5], cam_id); + DBG_88E("Write CAM, mac_addr =%pM, cam_entry=%d\n", + pparm->addr, cam_id); write_cam(padapter, cam_id, ctrl, pparm->addr, pparm->key); From 0c74210509049f3391576a45acb1174e2454588c Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Thu, 27 Aug 2015 19:09:27 +0600 Subject: [PATCH 0141/2431] staging/rtl8723au: Use %pM format specifier to print mac address printk() supports %pM format specifier for printing 6-byte MAC/FDDI addresses in hex notation small buffers, let's use it intead of %x:%x... Signed-off-by: Alexander Kuleshov Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c index be9a3d560a43..fca22ba896b3 100644 --- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c @@ -5934,11 +5934,8 @@ int set_stakey_hdl23a(struct rtw_adapter *padapter, const u8 *pbuf) macid = aid+1; */ cam_id = psta->mac_id + 3; - DBG_8723A("Write CAM, mac_addr =%x:%x:%x:%x:%x:%x, " - "cam_entry =%d\n", pparm->addr[0], - pparm->addr[1], pparm->addr[2], - pparm->addr[3], pparm->addr[4], - pparm->addr[5], cam_id); + DBG_8723A("Write CAM, mac_addr =%pM, " + "cam_entry =%d\n", pparm->addr, cam_id); rtl8723a_cam_write(padapter, cam_id, ctrl, pparm->addr, pparm->key); From 51d6859f2352ef420f8a45abaac0391acf573730 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:21 +0530 Subject: [PATCH 0142/2431] staging: most: bool comparison style Mentioning true or false in the if comparison is error prone and also not according to the coding style. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 0a13d8d0fa39..a0cdd26bf303 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -133,7 +133,7 @@ static int aim_close(struct inode *inode, struct file *filp) while (0 != kfifo_out((struct kfifo *)&channel->fifo, &mbo, 1)) most_put_mbo(mbo); - if (channel->keep_mbo == true) + if (channel->keep_mbo) most_put_mbo(channel->stacked_mbo); ret = most_stop_channel(channel->iface, channel->channel_id); atomic_dec(&channel->access_ref); @@ -224,7 +224,7 @@ aim_read(struct file *filp, char __user *buf, size_t count, loff_t *offset) struct mbo *mbo; struct aim_channel *channel = filp->private_data; - if (channel->keep_mbo == true) { + if (channel->keep_mbo) { mbo = channel->stacked_mbo; channel->keep_mbo = false; goto start_copy; @@ -259,7 +259,7 @@ start_copy: retval = not_copied ? proc_len - not_copied : proc_len; - if (channel->keep_mbo == true) { + if (channel->keep_mbo) { channel->mbo_offs = retval; channel->stacked_mbo = mbo; } else { From ba857e0ff08b0ba7922cb58d0870a5a207eadc5e Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:22 +0530 Subject: [PATCH 0143/2431] staging: most: remove multiple blank line Multiple blank lines are not recommended in the kernel coding style. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index a0cdd26bf303..a5e8993f55e9 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -48,7 +48,6 @@ struct aim_channel { static struct list_head channel_list; static spinlock_t ch_list_lock; - static struct aim_channel *get_channel(struct most_interface *iface, int id) { struct aim_channel *channel, *tmp; From c704dfbe452ef1857e83d29bac88e35bdb2bb507 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:23 +0530 Subject: [PATCH 0144/2431] staging: most: out of memory error If kzalloc fails it will print lots of debugging information in the log, no need to have another in the code. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index a5e8993f55e9..2bc877c5c84d 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -412,7 +412,6 @@ static int aim_probe(struct most_interface *iface, int channel_id, channel = kzalloc(sizeof(*channel), GFP_KERNEL); if (!channel) { - pr_info("failed to alloc channel object\n"); retval = -ENOMEM; goto error_alloc_channel; } From 11f7edb5980f4ad7d4eae915c34bdb17d8c751bb Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:24 +0530 Subject: [PATCH 0145/2431] staging: most: remove unused functions These functions were only defined but not used anywhere. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hal.c | 5 ----- drivers/staging/most/hdm-dim2/dim2_hal.h | 5 ----- drivers/staging/most/hdm-dim2/dim2_hdm.c | 10 ---------- 3 files changed, 20 deletions(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index a54cf2cedac3..e334206e2eb0 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.c +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c @@ -912,8 +912,3 @@ bool DIM_DetachBuffers(struct dim_channel *ch, u16 buffers_number) return channel_detach_buffers(ch, buffers_number); } - -u32 DIM_ReadRegister(u8 register_index) -{ - return DIMCB_IoRead((u32 *)g.dim2 + register_index); -} diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.h b/drivers/staging/most/hdm-dim2/dim2_hal.h index 8929af9712ef..ebb7d87a45fc 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.h +++ b/drivers/staging/most/hdm-dim2/dim2_hal.h @@ -105,17 +105,12 @@ bool DIM_EnqueueBuffer(struct dim_channel *ch, u32 buffer_addr, bool DIM_DetachBuffers(struct dim_channel *ch, u16 buffers_number); -u32 DIM_ReadRegister(u8 register_index); - - u32 DIMCB_IoRead(u32 *ptr32); void DIMCB_IoWrite(u32 *ptr32, u32 value); void DIMCB_OnError(u8 error_id, const char *error_message); -void DIMCB_OnFail(const char *filename, int linenum); - #ifdef __cplusplus } diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 6a5a3a2775f3..1ba694b968f3 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -165,16 +165,6 @@ void DIMCB_OnError(u8 error_id, const char *error_message) error_message); } -/** - * DIMCB_OnFail - callback from HAL to report unrecoverable errors - * @filename: Source file where the error happened - * @linenum: Line number of the file where the error happened - */ -void DIMCB_OnFail(const char *filename, int linenum) -{ - pr_err("DIMCB_OnFail: file - %s, line no. - %d\n", filename, linenum); -} - /** * startup_dim - initialize the dim2 interface * @pdev: platform device From 809da8a5f19010e877ed66cd1ffac9f8284d7052 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:25 +0530 Subject: [PATCH 0146/2431] staging: most: make functions static split_arg_list() and audio_set_pcm_format() are being called from the same file and is not referenced from outside, so make them as static. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 860302eebda7..27449d20328a 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -486,7 +486,7 @@ static struct snd_pcm_ops pcm_ops = { }; -int split_arg_list(char *buf, char **card_name, char **pcm_format) +static int split_arg_list(char *buf, char **card_name, char **pcm_format) { *card_name = strsep(&buf, "."); if (!*card_name) @@ -497,7 +497,8 @@ int split_arg_list(char *buf, char **card_name, char **pcm_format) return 0; } -int audio_set_pcm_format(char *pcm_format, struct most_channel_config *cfg) +static int audio_set_pcm_format(char *pcm_format, + struct most_channel_config *cfg) { if (!strcmp(pcm_format, "1x8")) { if (cfg->subbuffer_size != 1) From 96d3064b461f32b0e37b3d7c0cfa4edb24dbf430 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:26 +0530 Subject: [PATCH 0147/2431] staging: most: use NULL pointer sparse was complaining that an integer is used as NULL pointer. Fix it by using NULL. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hdm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 1ba694b968f3..5b0a588450ab 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -238,7 +238,7 @@ static int try_start_dim_transfer(struct hdm_channel *hdm_ch) unsigned long flags; struct dim_ch_state_t st; - BUG_ON(hdm_ch == 0); + BUG_ON(!hdm_ch); BUG_ON(!hdm_ch->is_initialized); spin_lock_irqsave(&dim_lock, flags); @@ -336,7 +336,7 @@ static void service_done_flag(struct dim2_hdm *dev, int ch_idx) unsigned long flags; u8 *data; - BUG_ON(hdm_ch == 0); + BUG_ON(!hdm_ch); BUG_ON(!hdm_ch->is_initialized); spin_lock_irqsave(&dim_lock, flags); @@ -409,7 +409,7 @@ static struct dim_channel **get_active_channels(struct dim2_hdm *dev, if (dev->hch[ch_idx].is_initialized) buffer[idx++] = &dev->hch[ch_idx].ch; } - buffer[idx++] = 0; + buffer[idx++] = NULL; return buffer; } @@ -905,7 +905,7 @@ static int dim2_remove(struct platform_device *pdev) * break link to local platform_device_id struct * to prevent crash by unload platform device module */ - pdev->id_entry = 0; + pdev->id_entry = NULL; return 0; } From 9153b5b1286546d6bee3be0662625573be7bc7a2 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:27 +0530 Subject: [PATCH 0148/2431] staging: most: remove unused variable The variable conf was only assigned the value but was never used. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 305303f2f17c..34843b0b495b 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -568,7 +568,6 @@ static void hdm_read_completion(struct urb *urb) struct device *dev; unsigned long flags; unsigned int channel; - struct most_channel_config *conf; mbo = urb->context; anchor = mbo->priv; @@ -582,8 +581,6 @@ static void hdm_read_completion(struct urb *urb) return; } - conf = &mdev->conf[channel]; - if (unlikely(urb->status && !(urb->status == -ENOENT || urb->status == -ECONNRESET || urb->status == -ESHUTDOWN))) { From a9c2520818ddc8666472e5535181bf3930a8b558 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:28 +0530 Subject: [PATCH 0149/2431] staging: most: fix Makefile The Makefile is including "drivers/media/video". But there is no such directory in kernel tree. Since it is aim-v4l2 this might have been "drivers/media/v4l2-core", but the Kconfig already mentions that it depends on VIDEO_V4L2. So no need to mention that again in the Makefile. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-v4l2/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/most/aim-v4l2/Makefile b/drivers/staging/most/aim-v4l2/Makefile index 28aa948d6609..69a7524b466c 100644 --- a/drivers/staging/most/aim-v4l2/Makefile +++ b/drivers/staging/most/aim-v4l2/Makefile @@ -3,4 +3,3 @@ obj-$(CONFIG_AIM_V4L2) += aim_v4l2.o aim_v4l2-objs := video.o ccflags-y += -Idrivers/staging/most/mostcore/ -ccflags-y += -Idrivers/media/video From 858e1a27c1c58f5a1dd0ba58ce28c80bf5095d0b Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Mon, 24 Aug 2015 19:19:32 +0530 Subject: [PATCH 0150/2431] staging: most: NULL comparison style checkpatch complains when a variable comparison to NULL is written as: variable == NULL or variable != NULL. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 2bc877c5c84d..b0a9a4a1225c 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -173,7 +173,7 @@ static ssize_t aim_write(struct file *filp, const char __user *buf, channel->wq, (mbo = most_get_mbo(channel->iface, channel->channel_id)) || - (channel->dev == NULL))) + (!channel->dev))) return -ERESTARTSYS; } @@ -229,12 +229,12 @@ aim_read(struct file *filp, char __user *buf, size_t count, loff_t *offset) goto start_copy; } while ((0 == kfifo_out(&channel->fifo, &mbo, 1)) - && (channel->dev != NULL)) { + && (channel->dev)) { if (filp->f_flags & O_NONBLOCK) return -EAGAIN; if (wait_event_interruptible(channel->wq, (!kfifo_is_empty(&channel->fifo) || - (channel->dev == NULL)))) + (!channel->dev)))) return -ERESTARTSYS; } @@ -299,7 +299,7 @@ static int aim_disconnect_channel(struct most_interface *iface, int channel_id) } channel = get_channel(iface, channel_id); - if (channel == NULL) + if (!channel) return -ENXIO; mutex_lock(&channel->io_mutex); @@ -336,7 +336,7 @@ static int aim_rx_completion(struct mbo *mbo) return -EINVAL; channel = get_channel(mbo->ifp, mbo->hdm_channel_id); - if (channel == NULL) + if (!channel) return -ENXIO; kfifo_in(&channel->fifo, &mbo, 1); @@ -369,7 +369,7 @@ static int aim_tx_completion(struct most_interface *iface, int channel_id) } channel = get_channel(iface, channel_id); - if (channel == NULL) + if (!channel) return -ENXIO; wake_up_interruptible(&channel->wq); return 0; From 1865e4ea0b2d9889e5e1f93d5ca69194857cc9f0 Mon Sep 17 00:00:00 2001 From: Ronit Halder Date: Wed, 19 Aug 2015 11:17:09 +0530 Subject: [PATCH 0151/2431] Staging: most: Use NULL instead of zero This patch fixes the warning generated by sparse "Using plain integer as NULL pointer" by using NULL instead of zero. Signed-off-by: Ronit halder Acked-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-network/networking.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index c8ab2399faad..a1e1bce16296 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -295,7 +295,7 @@ static void most_net_rm_netdev_safe(struct net_dev_context *nd) unregister_netdev(nd->dev); free_netdev(nd->dev); - nd->dev = 0; + nd->dev = NULL; } static struct net_dev_context *get_net_dev_context( From a7be027984f61119c027f42ee3003a8b30f539ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:02 -0400 Subject: [PATCH 0152/2431] staging: rtl8192u: r8192U_core: fix switch and case indent code style error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some switch and case were not be at the same indent level. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 190 ++++++++++++------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 6f6fe38081bc..915493dab6ad 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -3536,107 +3536,107 @@ static u8 HwRateToMRate90(bool bIsHT, u8 rate) if (!bIsHT) { switch (rate) { - case DESC90_RATE1M: - ret_rate = MGN_1M; - break; - case DESC90_RATE2M: - ret_rate = MGN_2M; - break; - case DESC90_RATE5_5M: - ret_rate = MGN_5_5M; - break; - case DESC90_RATE11M: - ret_rate = MGN_11M; - break; - case DESC90_RATE6M: - ret_rate = MGN_6M; - break; - case DESC90_RATE9M: - ret_rate = MGN_9M; - break; - case DESC90_RATE12M: - ret_rate = MGN_12M; - break; - case DESC90_RATE18M: - ret_rate = MGN_18M; - break; - case DESC90_RATE24M: - ret_rate = MGN_24M; - break; - case DESC90_RATE36M: - ret_rate = MGN_36M; - break; - case DESC90_RATE48M: - ret_rate = MGN_48M; - break; - case DESC90_RATE54M: - ret_rate = MGN_54M; - break; + case DESC90_RATE1M: + ret_rate = MGN_1M; + break; + case DESC90_RATE2M: + ret_rate = MGN_2M; + break; + case DESC90_RATE5_5M: + ret_rate = MGN_5_5M; + break; + case DESC90_RATE11M: + ret_rate = MGN_11M; + break; + case DESC90_RATE6M: + ret_rate = MGN_6M; + break; + case DESC90_RATE9M: + ret_rate = MGN_9M; + break; + case DESC90_RATE12M: + ret_rate = MGN_12M; + break; + case DESC90_RATE18M: + ret_rate = MGN_18M; + break; + case DESC90_RATE24M: + ret_rate = MGN_24M; + break; + case DESC90_RATE36M: + ret_rate = MGN_36M; + break; + case DESC90_RATE48M: + ret_rate = MGN_48M; + break; + case DESC90_RATE54M: + ret_rate = MGN_54M; + break; - default: - ret_rate = 0xff; - RT_TRACE(COMP_RECV, "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", rate, bIsHT); - break; + default: + ret_rate = 0xff; + RT_TRACE(COMP_RECV, "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", rate, bIsHT); + break; } } else { switch (rate) { - case DESC90_RATEMCS0: - ret_rate = MGN_MCS0; - break; - case DESC90_RATEMCS1: - ret_rate = MGN_MCS1; - break; - case DESC90_RATEMCS2: - ret_rate = MGN_MCS2; - break; - case DESC90_RATEMCS3: - ret_rate = MGN_MCS3; - break; - case DESC90_RATEMCS4: - ret_rate = MGN_MCS4; - break; - case DESC90_RATEMCS5: - ret_rate = MGN_MCS5; - break; - case DESC90_RATEMCS6: - ret_rate = MGN_MCS6; - break; - case DESC90_RATEMCS7: - ret_rate = MGN_MCS7; - break; - case DESC90_RATEMCS8: - ret_rate = MGN_MCS8; - break; - case DESC90_RATEMCS9: - ret_rate = MGN_MCS9; - break; - case DESC90_RATEMCS10: - ret_rate = MGN_MCS10; - break; - case DESC90_RATEMCS11: - ret_rate = MGN_MCS11; - break; - case DESC90_RATEMCS12: - ret_rate = MGN_MCS12; - break; - case DESC90_RATEMCS13: - ret_rate = MGN_MCS13; - break; - case DESC90_RATEMCS14: - ret_rate = MGN_MCS14; - break; - case DESC90_RATEMCS15: - ret_rate = MGN_MCS15; - break; - case DESC90_RATEMCS32: - ret_rate = 0x80|0x20; - break; + case DESC90_RATEMCS0: + ret_rate = MGN_MCS0; + break; + case DESC90_RATEMCS1: + ret_rate = MGN_MCS1; + break; + case DESC90_RATEMCS2: + ret_rate = MGN_MCS2; + break; + case DESC90_RATEMCS3: + ret_rate = MGN_MCS3; + break; + case DESC90_RATEMCS4: + ret_rate = MGN_MCS4; + break; + case DESC90_RATEMCS5: + ret_rate = MGN_MCS5; + break; + case DESC90_RATEMCS6: + ret_rate = MGN_MCS6; + break; + case DESC90_RATEMCS7: + ret_rate = MGN_MCS7; + break; + case DESC90_RATEMCS8: + ret_rate = MGN_MCS8; + break; + case DESC90_RATEMCS9: + ret_rate = MGN_MCS9; + break; + case DESC90_RATEMCS10: + ret_rate = MGN_MCS10; + break; + case DESC90_RATEMCS11: + ret_rate = MGN_MCS11; + break; + case DESC90_RATEMCS12: + ret_rate = MGN_MCS12; + break; + case DESC90_RATEMCS13: + ret_rate = MGN_MCS13; + break; + case DESC90_RATEMCS14: + ret_rate = MGN_MCS14; + break; + case DESC90_RATEMCS15: + ret_rate = MGN_MCS15; + break; + case DESC90_RATEMCS32: + ret_rate = 0x80|0x20; + break; - default: - ret_rate = 0xff; - RT_TRACE(COMP_RECV, "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", rate, bIsHT); - break; + default: + ret_rate = 0xff; + RT_TRACE(COMP_RECV, "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", rate, bIsHT); + break; } } From 28071d3400d88325c20e583a96ee5be277a6fdf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:03 -0400 Subject: [PATCH 0153/2431] staging: rtl8192u: r8192U_core: fix space before close parenthesis code style error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A space existed before the close parenthesis of an if statement. This patch removes it to follow the kernel code style. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 915493dab6ad..6137a048c4be 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -3221,7 +3221,7 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) //to get busy traffic condition if (ieee->state == IEEE80211_LINKED) { if (ieee->LinkDetectInfo.NumRxOkInPeriod > 666 || - ieee->LinkDetectInfo.NumTxOkInPeriod > 666 ) { + ieee->LinkDetectInfo.NumTxOkInPeriod > 666) { bBusyTraffic = true; } ieee->LinkDetectInfo.NumRxOkInPeriod = 0; From c745f2677067cbafa6c276a43f832e328e320d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:04 -0400 Subject: [PATCH 0154/2431] staging: rtl8192u: r8192U_core: fix code indent using spaces code style error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix "code indent should use tabs where possible" checkpatch error Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 6137a048c4be..3c207316a490 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -1542,7 +1542,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) tx_fwinfo->RtsSubcarrier = (tx_fwinfo->RtsHT == 0) ? (tcb_desc->RTSSC) : 0; tx_fwinfo->RtsBandwidth = (tx_fwinfo->RtsHT == 1) ? ((tcb_desc->bRTSBW) ? 1 : 0) : 0; tx_fwinfo->RtsShort = (tx_fwinfo->RtsHT == 0) ? (tcb_desc->bRTSUseShortPreamble ? 1 : 0) : - (tcb_desc->bRTSUseShortGI ? 1 : 0); + (tcb_desc->bRTSUseShortGI ? 1 : 0); /* Set Bandwidth and sub-channel settings. */ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) { From 70cdcac563b2e6d06cd5e81ec4a5153f2488ecd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:05 -0400 Subject: [PATCH 0155/2431] staging: rtl8192u: r8192U_core: fix else following close brace code style error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix "else should follow close brace" checkpatch error. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 3c207316a490..bdb8e4fa1be7 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -2585,8 +2585,7 @@ static void rtl8192_hwconfig(struct net_device *dev) regBwOpMode = BW_OPMODE_20MHZ; regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; - } - else + } else #endif { regBwOpMode = BW_OPMODE_20MHZ; From b54cc8d8e8cc4f8cca29cb70ee8d04bcb702fc91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:06 -0400 Subject: [PATCH 0156/2431] staging: rtl8192u: r8192U_core: fix missing struct leading to consistent spacing code style error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A missing struct keyword in variable declaration triggered a need consistent spacing around '*' code style error. The struct keyword thus has been added everywhere for the rtl8192_rx_info struct, and therefore its typedef removed as not needed anymore. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U.h | 4 ++-- drivers/staging/rtl8192u/r8192U_core.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U.h b/drivers/staging/rtl8192u/r8192U.h index 785fd027a00d..a76748e3b506 100644 --- a/drivers/staging/rtl8192u/r8192U.h +++ b/drivers/staging/rtl8192u/r8192U.h @@ -335,11 +335,11 @@ typedef struct _tx_fwinfo_819x_usb { u32 PacketID:13; } tx_fwinfo_819x_usb, *ptx_fwinfo_819x_usb; -typedef struct rtl8192_rx_info { +struct rtl8192_rx_info { struct urb *urb; struct net_device *dev; u8 out_pipe; -} rtl8192_rx_info ; +}; typedef struct rx_desc_819x_usb { /* DOWRD 0 */ diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index bdb8e4fa1be7..e786237ea391 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -4191,7 +4191,7 @@ static void TranslateRxSignalStuff819xUsb(struct sk_buff *skb, rx_drvinfo_819x_usb *pdrvinfo) { // TODO: We must only check packet for current MAC address. Not finish - rtl8192_rx_info *info = (struct rtl8192_rx_info *)skb->cb; + struct rtl8192_rx_info *info = (struct rtl8192_rx_info *)skb->cb; struct net_device *dev = info->dev; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); bool bpacket_match_bssid, bpacket_toself; @@ -4379,7 +4379,7 @@ static void query_rxdesc_status(struct sk_buff *skb, struct ieee80211_rx_stats *stats, bool bIsRxAggrSubframe) { - rtl8192_rx_info *info = (struct rtl8192_rx_info *)skb->cb; + struct rtl8192_rx_info *info = (struct rtl8192_rx_info *)skb->cb; struct net_device *dev = info->dev; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); rx_drvinfo_819x_usb *driver_info = NULL; @@ -4470,7 +4470,7 @@ static void query_rxdesc_status(struct sk_buff *skb, static void rtl8192_rx_nomal(struct sk_buff *skb) { - rtl8192_rx_info *info = (struct rtl8192_rx_info *)skb->cb; + struct rtl8192_rx_info *info = (struct rtl8192_rx_info *)skb->cb; struct net_device *dev = info->dev; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct ieee80211_rx_stats stats = { From 74a0266c072c185880290eb04d2fea4e68d62f1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:07 -0400 Subject: [PATCH 0157/2431] staging: rtl8192u: r8192U_core: whitespace neatening to fix consistent spacing code style errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clean-up the file by using a cleaner spacing around symbols and words. Mostly use the automatic checkpatch whitespacing fixes. This takes care of the consistent spacing errors reported by checkpatch. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 288 ++++++++++++------------- 1 file changed, 144 insertions(+), 144 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index e786237ea391..e0832d1a5493 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -37,17 +37,17 @@ unsigned int __fixunsdfsi(double d) double __adddf3(double a, double b) { - return a+b; + return a + b; } double __addsf3(float a, float b) { - return a+b; + return a + b; } double __subdf3(double a, double b) { - return a-b; + return a - b; } double __extendsfdf2(float a) @@ -114,9 +114,9 @@ static int channels = 0x3fff; -module_param(ifname, charp, S_IRUGO|S_IWUSR); -module_param(hwwep, int, S_IRUGO|S_IWUSR); -module_param(channels, int, S_IRUGO|S_IWUSR); +module_param(ifname, charp, S_IRUGO | S_IWUSR); +module_param(hwwep, int, S_IRUGO | S_IWUSR); +module_param(channels, int, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(ifname, " Net interface name, wlan%d=default"); MODULE_PARM_DESC(hwwep, " Try to use hardware security support. "); @@ -212,7 +212,7 @@ static void CamResetAllEntry(struct net_device *dev) //2004/02/11 In static WEP, OID_ADD_KEY or OID_ADD_WEP are set before STA associate to AP. // However, ResetKey is called on OID_802_11_INFRASTRUCTURE_MODE and MlmeAssociateRequest // In this condition, Cam can not be reset because upper layer will not set this static key again. - ulcommand |= BIT31|BIT30; + ulcommand |= BIT31 | BIT30; write_nic_dword(dev, RWCAM, ulcommand); } @@ -221,14 +221,14 @@ static void CamResetAllEntry(struct net_device *dev) void write_cam(struct net_device *dev, u8 addr, u32 data) { write_nic_dword(dev, WCAMI, data); - write_nic_dword(dev, RWCAM, BIT31|BIT16|(addr&0xff)); + write_nic_dword(dev, RWCAM, BIT31 | BIT16 | (addr & 0xff)); } u32 read_cam(struct net_device *dev, u8 addr) { u32 data; - write_nic_dword(dev, RWCAM, 0x80000000|(addr&0xff)); + write_nic_dword(dev, RWCAM, 0x80000000 | (addr & 0xff)); read_nic_dword(dev, 0xa8, &data); return data; } @@ -241,7 +241,7 @@ void write_nic_byte_E(struct net_device *dev, int indx, u8 data) status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, - indx|0xfe00, 0, &data, 1, HZ / 2); + indx | 0xfe00, 0, &data, 1, HZ / 2); if (status < 0) netdev_err(dev, "write_nic_byte_E TimeOut! status: %d\n", status); @@ -255,7 +255,7 @@ int read_nic_byte_E(struct net_device *dev, int indx, u8 *data) status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, - indx|0xfe00, 0, data, 1, HZ / 2); + indx | 0xfe00, 0, data, 1, HZ / 2); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); @@ -274,7 +274,7 @@ void write_nic_byte(struct net_device *dev, int indx, u8 data) status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, - (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 1, HZ / 2); + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, &data, 1, HZ / 2); if (status < 0) netdev_err(dev, "write_nic_byte TimeOut! status: %d\n", status); @@ -293,7 +293,7 @@ void write_nic_word(struct net_device *dev, int indx, u16 data) status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, - (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 2, HZ / 2); + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, &data, 2, HZ / 2); if (status < 0) netdev_err(dev, "write_nic_word TimeOut! status: %d\n", status); @@ -311,7 +311,7 @@ void write_nic_dword(struct net_device *dev, int indx, u32 data) status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, - (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 4, HZ / 2); + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, &data, 4, HZ / 2); if (status < 0) @@ -329,7 +329,7 @@ int read_nic_byte(struct net_device *dev, int indx, u8 *data) status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, - (indx&0xff)|0xff00, (indx>>8)&0x0f, data, 1, HZ / 2); + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, data, 1, HZ / 2); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); @@ -349,7 +349,7 @@ int read_nic_word(struct net_device *dev, int indx, u16 *data) status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, - (indx&0xff)|0xff00, (indx>>8)&0x0f, + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, data, 2, HZ / 2); if (status < 0) { @@ -368,7 +368,7 @@ static int read_nic_word_E(struct net_device *dev, int indx, u16 *data) status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, - indx|0xfe00, 0, data, 2, HZ / 2); + indx | 0xfe00, 0, data, 2, HZ / 2); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); @@ -387,7 +387,7 @@ int read_nic_dword(struct net_device *dev, int indx, u32 *data) status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, - (indx&0xff)|0xff00, (indx>>8)&0x0f, + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, data, 4, HZ / 2); if (status < 0) { @@ -448,7 +448,7 @@ static int proc_get_registers(struct seq_file *m, void *v) seq_printf(m, "\nD: %2x > ", n); for (i = 0; i < 16 && n <= max; i++, n++) { - read_nic_byte(dev, 0x000|n, &byte_rd); + read_nic_byte(dev, 0x000 | n, &byte_rd); seq_printf(m, "%2x ", byte_rd); } } @@ -458,7 +458,7 @@ static int proc_get_registers(struct seq_file *m, void *v) seq_printf(m, "\nD: %2x > ", n); for (i = 0; i < 16 && n <= max; i++, n++) { - read_nic_byte(dev, 0x100|n, &byte_rd); + read_nic_byte(dev, 0x100 | n, &byte_rd); seq_printf(m, "%2x ", byte_rd); } } @@ -468,7 +468,7 @@ static int proc_get_registers(struct seq_file *m, void *v) seq_printf(m, "\nD: %2x > ", n); for (i = 0; i < 16 && n <= max; i++, n++) { - read_nic_byte(dev, 0x300|n, &byte_rd); + read_nic_byte(dev, 0x300 | n, &byte_rd); seq_printf(m, "%2x ", byte_rd); } } @@ -657,14 +657,14 @@ void rtl8192_update_msr(struct net_device *dev) if (priv->ieee80211->state == IEEE80211_LINKED) { if (priv->ieee80211->iw_mode == IW_MODE_INFRA) - msr |= (MSR_LINK_MANAGED<ieee80211->iw_mode == IW_MODE_ADHOC) - msr |= (MSR_LINK_ADHOC<ieee80211->iw_mode == IW_MODE_MASTER) - msr |= (MSR_LINK_MASTER<udev, usb_rcvbulkpipe(priv->udev, 3), skb_tail_pointer(skb), RX_URB_SIZE, rtl8192_rx_isr, skb); - info = (struct rtl8192_rx_info *) skb->cb; + info = (struct rtl8192_rx_info *)skb->cb; info->urb = entry; info->dev = dev; info->out_pipe = 3; //denote rx normal packet queue @@ -735,7 +735,7 @@ static int rtl8192_rx_initiate(struct net_device *dev) usb_fill_bulk_urb(entry, priv->udev, usb_rcvbulkpipe(priv->udev, 9), skb_tail_pointer(skb), RX_URB_SIZE, rtl8192_rx_isr, skb); - info = (struct rtl8192_rx_info *) skb->cb; + info = (struct rtl8192_rx_info *)skb->cb; info->urb = entry; info->dev = dev; info->out_pipe = 9; //denote rx cmd packet queue @@ -780,9 +780,9 @@ void rtl8192_set_rxconf(struct net_device *dev) rxconf = rxconf & ~RX_FIFO_THRESHOLD_MASK; - rxconf = rxconf | (RX_FIFO_THRESHOLD_NONE<rx_queue))) { - info = (struct rtl8192_rx_info *) skb->cb; + info = (struct rtl8192_rx_info *)skb->cb; if (!info->urb) continue; @@ -872,7 +872,7 @@ inline u16 rtl8192_rate2rate(short rate) /* The prototype of rx_isr has changed since one version of Linux Kernel */ static void rtl8192_rx_isr(struct urb *urb) { - struct sk_buff *skb = (struct sk_buff *) urb->context; + struct sk_buff *skb = (struct sk_buff *)urb->context; struct rtl8192_rx_info *info = (struct rtl8192_rx_info *)skb->cb; struct net_device *dev = info->dev; struct r8192_priv *priv = ieee80211_priv(dev); @@ -905,7 +905,7 @@ static void rtl8192_rx_isr(struct urb *urb) usb_rcvbulkpipe(priv->udev, out_pipe), skb_tail_pointer(skb), RX_URB_SIZE, rtl8192_rx_isr, skb); - info = (struct rtl8192_rx_info *) skb->cb; + info = (struct rtl8192_rx_info *)skb->cb; info->urb = urb; info->dev = dev; info->out_pipe = out_pipe; @@ -1065,7 +1065,7 @@ static void rtl8192_config_rate(struct net_device *dev, u16 *rate_config) net = &priv->ieee80211->current_network; for (i = 0; i < net->rates_len; i++) { - basic_rate = net->rates[i]&0x7f; + basic_rate = net->rates[i] & 0x7f; switch (basic_rate) { case MGN_1M: *rate_config |= RRSR_1M; @@ -1106,7 +1106,7 @@ static void rtl8192_config_rate(struct net_device *dev, u16 *rate_config) } } for (i = 0; i < net->rates_ex_len; i++) { - basic_rate = net->rates_ex[i]&0x7f; + basic_rate = net->rates_ex[i] & 0x7f; switch (basic_rate) { case MGN_1M: *rate_config |= RRSR_1M; @@ -1163,7 +1163,7 @@ static void rtl8192_update_cap(struct net_device *dev, u16 cap) tmp |= BRSR_AckShortPmb; write_nic_dword(dev, RRSR, tmp); - if (net->mode & (IEEE_G|IEEE_N_24G)) { + if (net->mode & (IEEE_G | IEEE_N_24G)) { u8 slot_time = 0; if ((cap & WLAN_CAPABILITY_SHORT_SLOT) && (!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) /* short slot time */ slot_time = SHORT_SLOT_TIME; @@ -1187,7 +1187,7 @@ static void rtl8192_net_update(struct net_device *dev) priv->basic_rate = rate_config & 0x15f; write_nic_dword(dev, BSSIDR, ((u32 *)net->bssid)[0]); - write_nic_word(dev, BSSIDR+4, ((u16 *)net->bssid)[2]); + write_nic_word(dev, BSSIDR + 4, ((u16 *)net->bssid)[2]); rtl8192_update_msr(dev); if (priv->ieee80211->iw_mode == IW_MODE_ADHOC) { @@ -1196,9 +1196,9 @@ static void rtl8192_net_update(struct net_device *dev) write_nic_word(dev, BCN_INTERVAL, net->beacon_interval); write_nic_word(dev, BCN_DRV_EARLY_INT, 1); write_nic_byte(dev, BCN_ERR_THRESH, 100); - BcnTimeCfg |= (BcnCW<TxHT = (tcb_desc->data_rate&0x80) ? 1 : 0; + tx_fwinfo->TxHT = (tcb_desc->data_rate & 0x80) ? 1 : 0; tx_fwinfo->TxRate = MRateToHwRate8190Pci(tcb_desc->data_rate); tx_fwinfo->EnableCPUDur = tcb_desc->bTxEnableFwCalcDur; tx_fwinfo->Short = QueryIsShort(tx_fwinfo->TxHT, tx_fwinfo->TxRate, tcb_desc); @@ -1525,7 +1525,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) tx_fwinfo->AllowAggregation = 1; /* DWORD 1 */ tx_fwinfo->RxMF = tcb_desc->ampdu_factor; - tx_fwinfo->RxAMD = tcb_desc->ampdu_density&0x07;//ampdudensity + tx_fwinfo->RxAMD = tcb_desc->ampdu_density & 0x07; } else { tx_fwinfo->AllowAggregation = 0; /* DWORD 1 */ @@ -1537,7 +1537,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) tx_fwinfo->RtsEnable = (tcb_desc->bRTSEnable) ? 1 : 0; tx_fwinfo->CtsEnable = (tcb_desc->bCTSEnable) ? 1 : 0; tx_fwinfo->RtsSTBC = (tcb_desc->bRTSSTBC) ? 1 : 0; - tx_fwinfo->RtsHT = (tcb_desc->rts_rate&0x80) ? 1 : 0; + tx_fwinfo->RtsHT = (tcb_desc->rts_rate & 0x80) ? 1 : 0; tx_fwinfo->RtsRate = MRateToHwRate8190Pci((u8)tcb_desc->rts_rate); tx_fwinfo->RtsSubcarrier = (tx_fwinfo->RtsHT == 0) ? (tcb_desc->RTSSC) : 0; tx_fwinfo->RtsBandwidth = (tx_fwinfo->RtsHT == 1) ? ((tcb_desc->bRTSBW) ? 1 : 0) : 0; @@ -1655,13 +1655,13 @@ static short rtl8192_usb_initendpoints(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); - priv->rx_urb = kmalloc(sizeof(struct urb *) * (MAX_RX_URB+1), + priv->rx_urb = kmalloc(sizeof(struct urb *) * (MAX_RX_URB + 1), GFP_KERNEL); if (priv->rx_urb == NULL) return -ENOMEM; #ifndef JACKSON_NEW_RX - for (i = 0; i < (MAX_RX_URB+1); i++) { + for (i = 0; i < (MAX_RX_URB + 1); i++) { priv->rx_urb[i] = usb_alloc_urb(0, GFP_KERNEL); @@ -1715,7 +1715,7 @@ static void rtl8192_usb_deleteendpoints(struct net_device *dev) struct r8192_priv *priv = ieee80211_priv(dev); if (priv->rx_urb) { - for (i = 0; i < (MAX_RX_URB+1); i++) { + for (i = 0; i < (MAX_RX_URB + 1); i++) { usb_kill_urb(priv->rx_urb[i]); usb_free_urb(priv->rx_urb[i]); } @@ -1738,7 +1738,7 @@ void rtl8192_usb_deleteendpoints(struct net_device *dev) #ifndef JACKSON_NEW_RX if (priv->rx_urb) { - for (i = 0; i < (MAX_RX_URB+1); i++) { + for (i = 0; i < (MAX_RX_URB + 1); i++) { usb_kill_urb(priv->rx_urb[i]); kfree(priv->rx_urb[i]->transfer_buffer); usb_free_urb(priv->rx_urb[i]); @@ -1833,7 +1833,7 @@ static void rtl8192_qos_activate(struct work_struct *work) /* update the ac parameter to related registers */ for (i = 0; i < QOS_QUEUE_NUM; i++) { //Mode G/A: slotTimeTimer = 9; Mode B: 20 - u1bAIFS = qos_parameters->aifs[i] * ((mode&(IEEE_G|IEEE_N_24G)) ? 9 : 20) + aSifsTime; + u1bAIFS = qos_parameters->aifs[i] * ((mode & (IEEE_G | IEEE_N_24G)) ? 9 : 20) + aSifsTime; u1bAIFS <<= AC_PARAM_AIFS_OFFSET; op_limit = (u32)le16_to_cpu(qos_parameters->tx_op_limit[i]); op_limit <<= AC_PARAM_TXOP_LIMIT_OFFSET; @@ -2005,7 +2005,7 @@ static void rtl8192_update_ratr_table(struct net_device *dev) ratr_value |= 0x80000000; else if (!ieee->pHTInfo->bCurTxBW40MHz && ieee->pHTInfo->bCurShortGI20MHz) ratr_value |= 0x80000000; - write_nic_dword(dev, RATR0+rate_index*4, ratr_value); + write_nic_dword(dev, RATR0 + rate_index * 4, ratr_value); write_nic_byte(dev, UFWP, 1); } @@ -2066,10 +2066,10 @@ static u8 rtl8192_getSupportedWireleeMode(struct net_device *dev) case RF_8225: case RF_8256: case RF_PSEUDO_11N: - ret = WIRELESS_MODE_N_24G|WIRELESS_MODE_G|WIRELESS_MODE_B; + ret = WIRELESS_MODE_N_24G | WIRELESS_MODE_G | WIRELESS_MODE_B; break; case RF_8258: - ret = WIRELESS_MODE_A|WIRELESS_MODE_N_5G; + ret = WIRELESS_MODE_A | WIRELESS_MODE_N_5G; break; default: ret = WIRELESS_MODE_B; @@ -2082,7 +2082,7 @@ static void rtl8192_SetWirelessMode(struct net_device *dev, u8 wireless_mode) struct r8192_priv *priv = ieee80211_priv(dev); u8 bSupportMode = rtl8192_getSupportedWireleeMode(dev); - if ((wireless_mode == WIRELESS_MODE_AUTO) || ((wireless_mode&bSupportMode) == 0)) { + if ((wireless_mode == WIRELESS_MODE_AUTO) || ((wireless_mode & bSupportMode) == 0)) { if (bSupportMode & WIRELESS_MODE_N_24G) { wireless_mode = WIRELESS_MODE_N_24G; } else if (bSupportMode & WIRELESS_MODE_N_5G) { @@ -2182,30 +2182,30 @@ static void rtl8192_init_priv_variable(struct net_device *dev) priv->EarlyRxThreshold = 7; priv->enable_gpio0 = 0; priv->TransmitConfig = - (TCR_MXDMA_2048<ShortRetryLimit<LongRetryLimit<ShortRetryLimit << TCR_SRL_OFFSET) | // Short retry limit + (priv->LongRetryLimit << TCR_LRL_OFFSET) | // Long retry limit (false ? TCR_SAT : 0); // FALSE: HW provides PLCP length and LENGEXT, TRUE: SW provides them #ifdef TO_DO_LIST if (Adapter->bInHctTest) pHalData->ReceiveConfig = pHalData->CSMethod | - RCR_AMF | RCR_ADF | //accept management/data + RCR_AMF | RCR_ADF | //accept management/data //guangan200710 - RCR_ACF | //accept control frame for SW AP needs PS-poll, 2005.07.07, by rcnjko. - RCR_AB | RCR_AM | RCR_APM | //accept BC/MC/UC - RCR_AICV | RCR_ACRC32 | //accept ICV/CRC error packet - ((u32)7<EarlyRxThreshold<EarlyRxThreshold << RCR_FIFO_OFFSET) | // Rx FIFO Threshold, 7: No Rx threshold. (pHalData->EarlyRxThreshold == 7 ? RCR_OnlyErlPkt : 0); else #endif priv->ReceiveConfig = - RCR_AMF | RCR_ADF | //accept management/data - RCR_ACF | //accept control frame for SW AP needs PS-poll, 2005.07.07, by rcnjko. - RCR_AB | RCR_AM | RCR_APM | //accept BC/MC/UC - ((u32)7<EarlyRxThreshold<EarlyRxThreshold << RX_FIFO_THRESHOLD_SHIFT) | // Rx FIFO Threshold, 7: No Rx threshold. (priv->EarlyRxThreshold == 7 ? RCR_ONLYERLPKT : 0); priv->AcmControl = 0; @@ -2298,13 +2298,13 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) } if (bLoad_From_EEPOM) { - tmpValue = eprom_read(dev, EEPROM_VID>>1); + tmpValue = eprom_read(dev, EEPROM_VID >> 1); priv->eeprom_vid = endian_swap(&tmpValue); - priv->eeprom_pid = eprom_read(dev, EEPROM_PID>>1); - tmpValue = eprom_read(dev, EEPROM_ChannelPlan>>1); - priv->eeprom_ChannelPlan = (tmpValue & 0xff00)>>8; + priv->eeprom_pid = eprom_read(dev, EEPROM_PID >> 1); + tmpValue = eprom_read(dev, EEPROM_ChannelPlan >> 1); + priv->eeprom_ChannelPlan = (tmpValue & 0xff00) >> 8; priv->btxpowerdata_readfromEEPORM = true; - priv->eeprom_CustomerID = eprom_read(dev, (EEPROM_Customer_ID>>1)) >>8; + priv->eeprom_CustomerID = eprom_read(dev, (EEPROM_Customer_ID >> 1)) >> 8; } else { priv->eeprom_vid = 0; priv->eeprom_pid = 0; @@ -2319,7 +2319,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) int i; for (i = 0; i < 6; i += 2) { u16 tmp = 0; - tmp = eprom_read(dev, (u16)((EEPROM_NODE_ADDRESS_BYTE_0 + i)>>1)); + tmp = eprom_read(dev, (u16)((EEPROM_NODE_ADDRESS_BYTE_0 + i) >> 1)); *(u16 *)(&dev->dev_addr[i]) = tmp; } } else { @@ -2333,54 +2333,54 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) if (priv->card_8192_version == (u8)VERSION_819xU_A) { //read Tx power gain offset of legacy OFDM to HT rate if (bLoad_From_EEPOM) - priv->EEPROMTxPowerDiff = (eprom_read(dev, (EEPROM_TxPowerDiff>>1))&0xff00) >> 8; + priv->EEPROMTxPowerDiff = (eprom_read(dev, (EEPROM_TxPowerDiff >> 1)) & 0xff00) >> 8; else priv->EEPROMTxPowerDiff = EEPROM_Default_TxPower; RT_TRACE(COMP_EPROM, "TxPowerDiff:%d\n", priv->EEPROMTxPowerDiff); //read ThermalMeter from EEPROM if (bLoad_From_EEPOM) - priv->EEPROMThermalMeter = (u8)(eprom_read(dev, (EEPROM_ThermalMeter>>1))&0x00ff); + priv->EEPROMThermalMeter = (u8)(eprom_read(dev, (EEPROM_ThermalMeter >> 1)) & 0x00ff); else priv->EEPROMThermalMeter = EEPROM_Default_ThermalMeter; RT_TRACE(COMP_EPROM, "ThermalMeter:%d\n", priv->EEPROMThermalMeter); //vivi, for tx power track - priv->TSSI_13dBm = priv->EEPROMThermalMeter *100; + priv->TSSI_13dBm = priv->EEPROMThermalMeter * 100; //read antenna tx power offset of B/C/D to A from EEPROM if (bLoad_From_EEPOM) - priv->EEPROMPwDiff = (eprom_read(dev, (EEPROM_PwDiff>>1))&0x0f00)>>8; + priv->EEPROMPwDiff = (eprom_read(dev, (EEPROM_PwDiff >> 1)) & 0x0f00) >> 8; else priv->EEPROMPwDiff = EEPROM_Default_PwDiff; RT_TRACE(COMP_EPROM, "TxPwDiff:%d\n", priv->EEPROMPwDiff); // Read CrystalCap from EEPROM if (bLoad_From_EEPOM) - priv->EEPROMCrystalCap = (eprom_read(dev, (EEPROM_CrystalCap>>1))&0x0f); + priv->EEPROMCrystalCap = (eprom_read(dev, (EEPROM_CrystalCap >> 1)) & 0x0f); else priv->EEPROMCrystalCap = EEPROM_Default_CrystalCap; RT_TRACE(COMP_EPROM, "CrystalCap = %d\n", priv->EEPROMCrystalCap); //get per-channel Tx power level if (bLoad_From_EEPOM) - priv->EEPROM_Def_Ver = (eprom_read(dev, (EEPROM_TxPwIndex_Ver>>1))&0xff00)>>8; + priv->EEPROM_Def_Ver = (eprom_read(dev, (EEPROM_TxPwIndex_Ver >> 1)) & 0xff00) >> 8; else priv->EEPROM_Def_Ver = 1; RT_TRACE(COMP_EPROM, "EEPROM_DEF_VER:%d\n", priv->EEPROM_Def_Ver); if (priv->EEPROM_Def_Ver == 0) { /* old eeprom definition */ int i; if (bLoad_From_EEPOM) - priv->EEPROMTxPowerLevelCCK = (eprom_read(dev, (EEPROM_TxPwIndex_CCK>>1))&0xff) >> 8; + priv->EEPROMTxPowerLevelCCK = (eprom_read(dev, (EEPROM_TxPwIndex_CCK >> 1)) & 0xff) >> 8; else priv->EEPROMTxPowerLevelCCK = 0x10; RT_TRACE(COMP_EPROM, "CCK Tx Power Levl: 0x%02x\n", priv->EEPROMTxPowerLevelCCK); for (i = 0; i < 3; i++) { if (bLoad_From_EEPOM) { - tmpValue = eprom_read(dev, (EEPROM_TxPwIndex_OFDM_24G+i)>>1); - if (((EEPROM_TxPwIndex_OFDM_24G+i) % 2) == 0) + tmpValue = eprom_read(dev, (EEPROM_TxPwIndex_OFDM_24G + i) >> 1); + if (((EEPROM_TxPwIndex_OFDM_24G + i) % 2) == 0) tmpValue = tmpValue & 0x00ff; else tmpValue = (tmpValue & 0xff00) >> 8; } else { tmpValue = 0x10; } - priv->EEPROMTxPowerLevelOFDM24G[i] = (u8) tmpValue; + priv->EEPROMTxPowerLevelOFDM24G[i] = (u8)tmpValue; RT_TRACE(COMP_EPROM, "OFDM 2.4G Tx Power Level, Index %d = 0x%02x\n", i, priv->EEPROMTxPowerLevelCCK); } } else if (priv->EEPROM_Def_Ver == 1) { @@ -2394,7 +2394,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) priv->EEPROMTxPowerLevelCCK_V1[0] = (u8)tmpValue; if (bLoad_From_EEPOM) - tmpValue = eprom_read(dev, (EEPROM_TxPwIndex_CCK_V1 + 2)>>1); + tmpValue = eprom_read(dev, (EEPROM_TxPwIndex_CCK_V1 + 2) >> 1); else tmpValue = 0x1010; *((u16 *)(&priv->EEPROMTxPowerLevelCCK_V1[1])) = tmpValue; @@ -2405,7 +2405,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) tmpValue = 0x1010; *((u16 *)(&priv->EEPROMTxPowerLevelOFDM24G[0])) = tmpValue; if (bLoad_From_EEPOM) - tmpValue = eprom_read(dev, (EEPROM_TxPwIndex_OFDM_24G_V1+2)>>1); + tmpValue = eprom_read(dev, (EEPROM_TxPwIndex_OFDM_24G_V1 + 2) >> 1); else tmpValue = 0x10; priv->EEPROMTxPowerLevelOFDM24G[2] = (u8)tmpValue; @@ -2443,7 +2443,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) // Antenna B gain offset to antenna A, bit0~3 priv->AntennaTxPwDiff[0] = (priv->EEPROMTxPowerDiff & 0xf); // Antenna C gain offset to antenna A, bit4~7 - priv->AntennaTxPwDiff[1] = (priv->EEPROMTxPowerDiff & 0xf0)>>4; + priv->AntennaTxPwDiff[1] = (priv->EEPROMTxPowerDiff & 0xf0) >> 4; // CrystalCap, bit12~15 priv->CrystalCap = priv->EEPROMCrystalCap; // ThermalMeter, bit0~3 for RFIC1, bit4~7 for RFIC2 @@ -2570,7 +2570,7 @@ static void rtl8192_hwconfig(struct net_device *dev) regRRSR = RATE_ALL_CCK; break; case WIRELESS_MODE_A: - regBwOpMode = BW_OPMODE_5G |BW_OPMODE_20MHZ; + regBwOpMode = BW_OPMODE_5G | BW_OPMODE_20MHZ; regRATR = RATE_ALL_OFDM_AG; regRRSR = RATE_ALL_OFDM_AG; break; @@ -2686,13 +2686,13 @@ static bool rtl8192_adapter_start(struct net_device *dev) //xiong add for new bitfile:usb suspend reset pin set to 1. //do we need? read_nic_byte_E(dev, 0x5f, &tmp); - write_nic_byte_E(dev, 0x5f, tmp|0x20); + write_nic_byte_E(dev, 0x5f, tmp | 0x20); //Set Hardware rtl8192_hwconfig(dev); //turn on Tx/Rx - write_nic_byte(dev, CMDR, CR_RE|CR_TE); + write_nic_byte(dev, CMDR, CR_RE | CR_TE); //set IDR0 here write_nic_dword(dev, MAC0, ((u32 *)dev->dev_addr)[0]); @@ -2705,12 +2705,12 @@ static bool rtl8192_adapter_start(struct net_device *dev) write_nic_dword(dev, RQPN1, NUM_OF_PAGE_IN_FW_QUEUE_BK << RSVD_FW_QUEUE_PAGE_BK_SHIFT | NUM_OF_PAGE_IN_FW_QUEUE_BE << RSVD_FW_QUEUE_PAGE_BE_SHIFT | NUM_OF_PAGE_IN_FW_QUEUE_VI << RSVD_FW_QUEUE_PAGE_VI_SHIFT | - NUM_OF_PAGE_IN_FW_QUEUE_VO <card_8192_version == (u8) VERSION_819xU_A) { + if (priv->card_8192_version == (u8)VERSION_819xU_A) { rtl8192_phy_getTxPower(dev); rtl8192_phy_setTxPower(dev, priv->chan); } @@ -2755,18 +2755,18 @@ static bool rtl8192_adapter_start(struct net_device *dev) #ifdef TO_DO_LIST if (Adapter->ResetProgress == RESET_TYPE_NORESET) { if (pMgntInfo->RegRfOff) { /* User disable RF via registry. */ - RT_TRACE((COMP_INIT|COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RegRfOff ----------\n")); + RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RegRfOff ----------\n")); MgntActSet_RF_State(Adapter, eRfOff, RF_CHANGE_BY_SW); // Those actions will be discard in MgntActSet_RF_State because of the same state for (eRFPath = 0; eRFPath < pHalData->NumTotalRFPath; eRFPath++) PHY_SetRFReg(Adapter, (RF90_RADIO_PATH_E)eRFPath, 0x4, 0xC00, 0x0); } else if (pMgntInfo->RfOffReason > RF_CHANGE_BY_PS) { /* H/W or S/W RF OFF before sleep. */ - RT_TRACE((COMP_INIT|COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RfOffReason(%d) ----------\n", pMgntInfo->RfOffReason)); + RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RfOffReason(%d) ----------\n", pMgntInfo->RfOffReason)); MgntActSet_RF_State(Adapter, eRfOff, pMgntInfo->RfOffReason); } else { pHalData->eRFPowerState = eRfOn; pMgntInfo->RfOffReason = 0; - RT_TRACE((COMP_INIT|COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): RF is on ----------\n")); + RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): RF is on ----------\n")); } } else { if (pHalData->eRFPowerState == eRfOff) { @@ -2826,7 +2826,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) for (i = 0; i < CCKTxBBGainTableLength; i++) { if (TempCCk == priv->cck_txbbgain_table[i].ccktxbb_valuearray[0]) { - priv->cck_present_attentuation_20Mdefault = (u8) i; + priv->cck_present_attentuation_20Mdefault = (u8)i; break; } } @@ -2914,9 +2914,9 @@ static bool HalRxCheckStuck819xUsb(struct net_device *dev) // If rssi is small, we should check rx for long time because of bad rx. // or maybe it will continuous silent reset every 2 seconds. rx_chk_cnt++; - if (priv->undecorated_smoothed_pwdb >= (RateAdaptiveTH_High+5)) { + if (priv->undecorated_smoothed_pwdb >= (RateAdaptiveTH_High + 5)) { rx_chk_cnt = 0; //high rssi, check rx stuck right now. - } else if (priv->undecorated_smoothed_pwdb < (RateAdaptiveTH_High+5) && + } else if (priv->undecorated_smoothed_pwdb < (RateAdaptiveTH_High + 5) && ((priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_40M) || (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_20M))) { if (rx_chk_cnt < 2) @@ -3191,7 +3191,7 @@ static void rtl819x_update_rxcounts(struct r8192_priv *priv, u32 *TotalRxBcnNum, *TotalRxBcnNum = 0; *TotalRxDataNum = 0; - SlotIndex = (priv->ieee80211->LinkDetectInfo.SlotIndex++)%(priv->ieee80211->LinkDetectInfo.SlotNum); + SlotIndex = (priv->ieee80211->LinkDetectInfo.SlotIndex++) % (priv->ieee80211->LinkDetectInfo.SlotNum); priv->ieee80211->LinkDetectInfo.RxBcnNum[SlotIndex] = priv->ieee80211->LinkDetectInfo.NumRecvBcnInPeriod; priv->ieee80211->LinkDetectInfo.RxDataNum[SlotIndex] = priv->ieee80211->LinkDetectInfo.NumRecvDataInPeriod; for (i = 0; i < priv->ieee80211->LinkDetectInfo.SlotNum; i++) { @@ -3231,7 +3231,7 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) if (priv->ieee80211->state == IEEE80211_LINKED && priv->ieee80211->iw_mode == IW_MODE_INFRA) { rtl819x_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum); - if ((TotalRxBcnNum+TotalRxDataNum) == 0) { + if ((TotalRxBcnNum + TotalRxDataNum) == 0) { #ifdef TODO if (rfState == eRfOff) RT_TRACE(COMP_ERR, "========>%s()\n", __func__); @@ -3267,7 +3267,7 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) static void watch_dog_timer_callback(unsigned long data) { - struct r8192_priv *priv = ieee80211_priv((struct net_device *) data); + struct r8192_priv *priv = ieee80211_priv((struct net_device *)data); queue_delayed_work(priv->priv_wq, &priv->watch_dog_wq, 0); mod_timer(&priv->watch_dog_timer, jiffies + MSECS(IEEE80211_WATCH_DOG_TIME)); } @@ -3289,7 +3289,7 @@ static int _rtl8192_up(struct net_device *dev) if (priv->ieee80211->state != IEEE80211_LINKED) ieee80211_softmac_start_protocol(priv->ieee80211); ieee80211_reset_queue(priv->ieee80211); - watch_dog_timer_callback((unsigned long) dev); + watch_dog_timer_callback((unsigned long)dev); if (!netif_queue_stopped(dev)) netif_start_queue(dev); else @@ -3629,7 +3629,7 @@ static u8 HwRateToMRate90(bool bIsHT, u8 rate) ret_rate = MGN_MCS15; break; case DESC90_RATEMCS32: - ret_rate = 0x80|0x20; + ret_rate = 0x80 | 0x20; break; default: @@ -3732,7 +3732,7 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, slide_rssi_index = 0; // <1> Showed on UI for user, in dbm - tmp_val = priv->stats.slide_rssi_total/slide_rssi_statistics; + tmp_val = priv->stats.slide_rssi_total / slide_rssi_statistics; priv->stats.signal_strength = rtl819x_translate_todbm((u8)tmp_val); pcurrent_stats->rssi = priv->stats.signal_strength; // @@ -3769,13 +3769,13 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, priv->stats.rx_rssi_percentage[rfpath] = pprevious_stats->RxMIMOSignalStrength[rfpath]; if (pprevious_stats->RxMIMOSignalStrength[rfpath] > priv->stats.rx_rssi_percentage[rfpath]) { priv->stats.rx_rssi_percentage[rfpath] = - ((priv->stats.rx_rssi_percentage[rfpath]*(Rx_Smooth_Factor-1)) + - (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor); + ((priv->stats.rx_rssi_percentage[rfpath] * (Rx_Smooth_Factor - 1)) + + (pprevious_stats->RxMIMOSignalStrength[rfpath])) / (Rx_Smooth_Factor); priv->stats.rx_rssi_percentage[rfpath] = priv->stats.rx_rssi_percentage[rfpath] + 1; } else { priv->stats.rx_rssi_percentage[rfpath] = - ((priv->stats.rx_rssi_percentage[rfpath]*(Rx_Smooth_Factor-1)) + - (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor); + ((priv->stats.rx_rssi_percentage[rfpath] * (Rx_Smooth_Factor - 1)) + + (pprevious_stats->RxMIMOSignalStrength[rfpath])) / (Rx_Smooth_Factor); } RT_TRACE(COMP_DBG, "priv->stats.rx_rssi_percentage[rfPath] = %d \n", priv->stats.rx_rssi_percentage[rfpath]); } @@ -3801,7 +3801,7 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, slide_beacon_adc_pwdb_index++; if (slide_beacon_adc_pwdb_index >= PHY_Beacon_RSSI_SLID_WIN_MAX) slide_beacon_adc_pwdb_index = 0; - pprevious_stats->RxPWDBAll = priv->stats.Slide_Beacon_Total/slide_beacon_adc_pwdb_statistics; + pprevious_stats->RxPWDBAll = priv->stats.Slide_Beacon_Total / slide_beacon_adc_pwdb_statistics; if (pprevious_stats->RxPWDBAll >= 3) pprevious_stats->RxPWDBAll -= 3; } @@ -3816,13 +3816,13 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, priv->undecorated_smoothed_pwdb = pprevious_stats->RxPWDBAll; if (pprevious_stats->RxPWDBAll > (u32)priv->undecorated_smoothed_pwdb) { priv->undecorated_smoothed_pwdb = - (((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) + - (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor); + (((priv->undecorated_smoothed_pwdb) * (Rx_Smooth_Factor - 1)) + + (pprevious_stats->RxPWDBAll)) / (Rx_Smooth_Factor); priv->undecorated_smoothed_pwdb = priv->undecorated_smoothed_pwdb + 1; } else { priv->undecorated_smoothed_pwdb = - (((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) + - (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor); + (((priv->undecorated_smoothed_pwdb) * (Rx_Smooth_Factor - 1)) + + (pprevious_stats->RxPWDBAll)) / (Rx_Smooth_Factor); } } @@ -3846,7 +3846,7 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, slide_evm_index = 0; // <1> Showed on UI for user, in percentage. - tmp_val = priv->stats.slide_evm_total/slide_evm_statistics; + tmp_val = priv->stats.slide_evm_total / slide_evm_statistics; priv->stats.signal_quality = tmp_val; //cosa add 10/11/2007, Showed on UI for user in Windows Vista, for Link quality. priv->stats.last_signal_strength_inpercent = tmp_val; @@ -3859,8 +3859,8 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, if (priv->stats.rx_evm_percentage[nspatial_stream] == 0) /* initialize */ priv->stats.rx_evm_percentage[nspatial_stream] = pprevious_stats->RxMIMOSignalQuality[nspatial_stream]; priv->stats.rx_evm_percentage[nspatial_stream] = - ((priv->stats.rx_evm_percentage[nspatial_stream]* (Rx_Smooth_Factor-1)) + - (pprevious_stats->RxMIMOSignalQuality[nspatial_stream]* 1)) / (Rx_Smooth_Factor); + ((priv->stats.rx_evm_percentage[nspatial_stream] * (Rx_Smooth_Factor - 1)) + + (pprevious_stats->RxMIMOSignalQuality[nspatial_stream] * 1)) / (Rx_Smooth_Factor); } } } @@ -4048,16 +4048,16 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, report >>= 5; switch (report) { case 0x3: - rx_pwr_all = -35 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1); + rx_pwr_all = -35 - ((pcck_buf->cck_agc_rpt & 0x1f) << 1); break; case 0x2: - rx_pwr_all = -23 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1); + rx_pwr_all = -23 - ((pcck_buf->cck_agc_rpt & 0x1f) << 1); break; case 0x1: - rx_pwr_all = -11 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1); + rx_pwr_all = -11 - ((pcck_buf->cck_agc_rpt & 0x1f) << 1); break; case 0x0: - rx_pwr_all = 6 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1); + rx_pwr_all = 6 - ((pcck_buf->cck_agc_rpt & 0x1f) << 1); break; } } @@ -4080,7 +4080,7 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, else if (pcck_buf->sq_rpt < 20) sq = 100; else - sq = ((64-sq) * 100) / 44; + sq = ((64 - sq) * 100) / 44; } pstats->SignalQuality = precord_stats->SignalQuality = sq; pstats->RxMIMOSignalQuality[0] = precord_stats->RxMIMOSignalQuality[0] = sq; @@ -4103,7 +4103,7 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, //Fixed by Jacken from Bryant 2008-03-20 //Original value is 106 - rx_pwr[i] = ((pofdm_buf->trsw_gain_X[i]&0x3F)*2) - 106; + rx_pwr[i] = ((pofdm_buf->trsw_gain_X[i] & 0x3F) * 2) - 106; //Get Rx snr value in DB tmp_rxsnr = pofdm_buf->rxsnr_X[i]; @@ -4116,8 +4116,8 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, total_rssi += RSSI; /* Record Signal Strength for next packet */ - pstats->RxMIMOSignalStrength[i] = (u8) RSSI; - precord_stats->RxMIMOSignalStrength[i] = (u8) RSSI; + pstats->RxMIMOSignalStrength[i] = (u8)RSSI; + precord_stats->RxMIMOSignalStrength[i] = (u8)RSSI; } @@ -4126,7 +4126,7 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, // //Fixed by Jacken from Bryant 2008-03-20 //Original value is 106 - rx_pwr_all = (((pofdm_buf->pwdb_all) >> 1)& 0x7f) -106; + rx_pwr_all = (((pofdm_buf->pwdb_all) >> 1) & 0x7f) - 106; pwdb_all = rtl819x_query_rxpwrpercentage(rx_pwr_all); pstats->RxPWDBAll = precord_stats->RxPWDBAll = pwdb_all; @@ -4161,7 +4161,7 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, rxsc_sgien_exflg = pofdm_buf->rxsc_sgien_exflg; prxsc = (phy_ofdm_rx_status_rxsc_sgien_exintfflag *)&rxsc_sgien_exflg; if (pdrvinfo->BW) /* 40M channel */ - priv->stats.received_bwtype[1+prxsc->rxsc]++; + priv->stats.received_bwtype[1 + prxsc->rxsc]++; else //20M channel priv->stats.received_bwtype[0]++; } @@ -4394,7 +4394,7 @@ static void query_rxdesc_status(struct sk_buff *skb, stats->RxBufShift = 0; stats->bICV = desc->ICV; stats->bCRC = desc->CRC32; - stats->bHwError = stats->bCRC|stats->bICV; + stats->bHwError = stats->bCRC | stats->bICV; /* RTL8190 set this bit to indicate that Hw does not decrypt packet */ stats->Decrypted = !desc->SWDec; @@ -4402,7 +4402,7 @@ static void query_rxdesc_status(struct sk_buff *skb, (priv->ieee80211->pairwise_key_type == KEY_TYPE_CCMP)) stats->bHwError = false; else - stats->bHwError = stats->bCRC|stats->bICV; + stats->bHwError = stats->bCRC | stats->bICV; if (stats->Length < 24 || stats->Length > MAX_8192U_RX_SIZE) stats->bHwError |= 1; @@ -4573,7 +4573,7 @@ static void query_rx_cmdpkt_desc_status(struct sk_buff *skb, stats->Length = desc->Length; stats->RxDrvInfoSize = 0; stats->RxBufShift = 0; - stats->packetlength = stats->Length-scrclng; + stats->packetlength = stats->Length - scrclng; stats->fraglength = stats->packetlength; stats->fragoffset = 0; stats->ntotalfrag = 1; @@ -4679,11 +4679,11 @@ static int rtl8192_usb_probe(struct usb_interface *intf, dev->netdev_ops = &rtl8192_netdev_ops; - dev->wireless_handlers = (struct iw_handler_def *) &r8192_wx_handlers_def; + dev->wireless_handlers = (struct iw_handler_def *)&r8192_wx_handlers_def; dev->type = ARPHRD_ETHER; - dev->watchdog_timeo = HZ*3; //modified by john, 0805 + dev->watchdog_timeo = HZ * 3; if (dev_alloc_name(dev, ifname) < 0) { RT_TRACE(COMP_INIT, "Oops: devname already taken! Trying wlan%%d...\n"); @@ -4844,7 +4844,7 @@ void EnableHWSecurityConfig8192(struct net_device *dev) ieee->hwsec_active = 1; - if ((ieee->pHTInfo->IOTAction&HT_IOT_ACT_PURE_N_MODE) || !hwwep) { /* add hwsec_support flag to totol control hw_sec on/off */ + if ((ieee->pHTInfo->IOTAction & HT_IOT_ACT_PURE_N_MODE) || !hwwep) { /* add hwsec_support flag to totol control hw_sec on/off */ ieee->hwsec_active = 0; SECR_value &= ~SCR_RxDecEnable; } @@ -4867,33 +4867,33 @@ void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, RT_TRACE(COMP_SEC, "====>to setKey(), dev:%p, EntryNo:%d, KeyIndex:%d, KeyType:%d, MacAddr%pM\n", dev, EntryNo, KeyIndex, KeyType, MacAddr); if (DefaultKey) - usConfig |= BIT15 | (KeyType<<2); + usConfig |= BIT15 | (KeyType << 2); else - usConfig |= BIT15 | (KeyType<<2) | KeyIndex; + usConfig |= BIT15 | (KeyType << 2) | KeyIndex; for (i = 0; i < CAM_CONTENT_COUNT; i++) { - TargetCommand = i+CAM_CONTENT_COUNT*EntryNo; - TargetCommand |= BIT31|BIT16; + TargetCommand = i + CAM_CONTENT_COUNT * EntryNo; + TargetCommand |= BIT31 | BIT16; if (i == 0) { /* MAC|Config */ - TargetContent = (u32)(*(MacAddr+0)) << 16| - (u32)(*(MacAddr+1)) << 24| + TargetContent = (u32)(*(MacAddr + 0)) << 16 | + (u32)(*(MacAddr + 1)) << 24 | (u32)usConfig; write_nic_dword(dev, WCAMI, TargetContent); write_nic_dword(dev, RWCAM, TargetCommand); } else if (i == 1) { /* MAC */ - TargetContent = (u32)(*(MacAddr+2)) | - (u32)(*(MacAddr+3)) << 8| - (u32)(*(MacAddr+4)) << 16| - (u32)(*(MacAddr+5)) << 24; + TargetContent = (u32)(*(MacAddr + 2)) | + (u32)(*(MacAddr + 3)) << 8 | + (u32)(*(MacAddr + 4)) << 16 | + (u32)(*(MacAddr + 5)) << 24; write_nic_dword(dev, WCAMI, TargetContent); write_nic_dword(dev, RWCAM, TargetCommand); } else { //Key Material if (KeyContent != NULL) { - write_nic_dword(dev, WCAMI, (u32)(*(KeyContent+i-2))); + write_nic_dword(dev, WCAMI, (u32)(*(KeyContent + i - 2))); write_nic_dword(dev, RWCAM, TargetCommand); } } From 14285c1f97c3bb137a12fb9e3a4e65e1a3a51a0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:08 -0400 Subject: [PATCH 0158/2431] staging: rtl8192u: r8192U_core: clean C99 // comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace C99 // comments by /* comments */ to follow the kernel code style. Remove some unuseful comments. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 636 ++++++++++++------------- 1 file changed, 316 insertions(+), 320 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index e0832d1a5493..9a658b4e0ce0 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -64,7 +64,7 @@ double __extendsfdf2(float a) #include "r8190_rtl8256.h" /* RTL8225 Radio frontend */ #include "r8180_93cx6.h" /* Card EEPROM */ #include "r8192U_wx.h" -#include "r819xU_phy.h" //added by WB 4.30.2008 +#include "r819xU_phy.h" #include "r819xU_phyreg.h" #include "r819xU_cmdpkt.h" #include "r8192U_dm.h" @@ -72,13 +72,13 @@ double __extendsfdf2(float a) #include #include #include -// FIXME: check if 2.6.7 is ok +/* FIXME: check if 2.6.7 is ok */ #include "dot11d.h" -//set here to open your trace code. //WB +/* set here to open your trace code. */ u32 rt_global_debug_component = COMP_DOWN | COMP_SEC | - COMP_ERR; //always open err flags on + COMP_ERR; /* always open err flags on */ #define TOTAL_CAM_ENTRY 32 #define CAM_CONTENT_COUNT 8 @@ -109,7 +109,7 @@ MODULE_DEVICE_TABLE(usb, rtl8192_usb_id_tbl); MODULE_DESCRIPTION("Linux driver for Realtek RTL8192 USB WiFi cards"); static char *ifname = "wlan%d"; -static int hwwep = 1; //default use hw. set 0 to use software security +static int hwwep = 1; /* default use hw. set 0 to use software security */ static int channels = 0x3fff; @@ -143,17 +143,17 @@ struct CHANNEL_LIST { }; static struct CHANNEL_LIST ChannelPlan[] = { - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 24}, //FCC - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11}, //IC - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 60, 64}, 21}, //ETSI - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, //Spain. Change to ETSI. - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, //France. Change to ETSI. - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, //MKK //MKK - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22},//MKK1 - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, //Israel. - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, // For 11a , TELEC - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, //MIC - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14} //For Global Domain. 1-11:active scan, 12-14 passive scan. //+YJ, 080626 + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 24}, /* FCC */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11}, /* IC */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 60, 64}, 21}, /* ETSI */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* Spain. Change to ETSI. */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* France. Change to ETSI. */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, /* MKK */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, /* MKK1 */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* Israel. */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, /* For 11a , TELEC */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, /* MIC */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14} /* For Global Domain. 1-11:active scan, 12-14 passive scan. */ }; static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) @@ -173,7 +173,7 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) case COUNTRY_CODE_MIC: Dot11d_Init(ieee); ieee->bGlobalDomain = false; - //actually 8225 & 8256 rf chips only support B,G,24N mode + /* actually 8225 & 8256 rf chips only support B,G,24N mode */ if ((priv->rf_chip == RF_8225) || (priv->rf_chip == RF_8256)) { min_chan = 1; max_chan = 14; @@ -181,9 +181,9 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) RT_TRACE(COMP_ERR, "unknown rf chip, can't set channel map in function:%s()\n", __func__); } if (ChannelPlan[channel_plan].Len != 0) { - // Clear old channel map + /* Clear old channel map */ memset(GET_DOT11D_INFO(ieee)->channel_map, 0, sizeof(GET_DOT11D_INFO(ieee)->channel_map)); - // Set new channel map + /* Set new channel map */ for (i = 0; i < ChannelPlan[channel_plan].Len; i++) { if (ChannelPlan[channel_plan].Channel[i] < min_chan || ChannelPlan[channel_plan].Channel[i] > max_chan) break; @@ -193,7 +193,7 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) break; case COUNTRY_CODE_GLOBAL_DOMAIN: - GET_DOT11D_INFO(ieee)->bEnabled = 0;//this flag enabled to follow 11d country IE setting, otherwise, it shall follow global domain settings. + GET_DOT11D_INFO(ieee)->bEnabled = 0; /* this flag enabled to follow 11d country IE setting, otherwise, it shall follow global domain settings. */ Dot11d_Reset(ieee); ieee->bGlobalDomain = true; break; @@ -209,9 +209,10 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) static void CamResetAllEntry(struct net_device *dev) { u32 ulcommand = 0; - //2004/02/11 In static WEP, OID_ADD_KEY or OID_ADD_WEP are set before STA associate to AP. - // However, ResetKey is called on OID_802_11_INFRASTRUCTURE_MODE and MlmeAssociateRequest - // In this condition, Cam can not be reset because upper layer will not set this static key again. + /* 2004/02/11 In static WEP, OID_ADD_KEY or OID_ADD_WEP are set before STA associate to AP. + * However, ResetKey is called on OID_802_11_INFRASTRUCTURE_MODE and MlmeAssociateRequest + * In this condition, Cam can not be reset because upper layer will not set this static key again. + */ ulcommand |= BIT31 | BIT30; write_nic_dword(dev, RWCAM, ulcommand); @@ -264,7 +265,7 @@ int read_nic_byte_E(struct net_device *dev, int indx, u8 *data) return 0; } -//as 92U has extend page from 4 to 16, so modify functions below. +/* as 92U has extend page from 4 to 16, so modify functions below. */ void write_nic_byte(struct net_device *dev, int indx, u8 data) { int status; @@ -678,7 +679,7 @@ void rtl8192_set_chan(struct net_device *dev, short ch) /* this hack should avoid frame TX during channel setting*/ - //need to implement rf set channel here WB + /* need to implement rf set channel here */ if (priv->rf_set_chan) priv->rf_set_chan(dev, priv->chan); @@ -717,7 +718,7 @@ static int rtl8192_rx_initiate(struct net_device *dev) info = (struct rtl8192_rx_info *)skb->cb; info->urb = entry; info->dev = dev; - info->out_pipe = 3; //denote rx normal packet queue + info->out_pipe = 3; /* denote rx normal packet queue */ skb_queue_tail(&priv->rx_queue, skb); usb_submit_urb(entry, GFP_KERNEL); } @@ -738,7 +739,7 @@ static int rtl8192_rx_initiate(struct net_device *dev) info = (struct rtl8192_rx_info *)skb->cb; info->urb = entry; info->dev = dev; - info->out_pipe = 9; //denote rx cmd packet queue + info->out_pipe = 9; /* denote rx cmd packet queue */ skb_queue_tail(&priv->rx_queue, skb); usb_submit_urb(entry, GFP_KERNEL); } @@ -788,7 +789,7 @@ void rtl8192_set_rxconf(struct net_device *dev) write_nic_dword(dev, RCR, rxconf); } -//wait to be removed +/* wait to be removed */ void rtl8192_rx_enable(struct net_device *dev) { rtl8192_rx_initiate(dev); @@ -933,13 +934,13 @@ static u32 rtl819xusb_rx_command_packet(struct net_device *dev, static void rtl8192_data_hard_stop(struct net_device *dev) { - //FIXME !! + /* FIXME !! */ } static void rtl8192_data_hard_resume(struct net_device *dev) { - // FIXME !! + /* FIXME !! */ } /* this function TX data frames when the ieee80211 stack requires this. @@ -1031,16 +1032,16 @@ static void rtl8192_tx_isr(struct urb *tx_urb) atomic_dec(&priv->tx_pending[queue_index]); } - // - // Handle HW Beacon: - // We had transfer our beacon frame to host controller at this moment. - // - // - // Caution: - // Handling the wait queue of command packets. - // For Tx command packets, we must not do TCB fragment because it is not handled right now. - // We must cut the packets to match the size of TX_CMD_PKT before we send it. - // + /* + * Handle HW Beacon: + * We had transfer our beacon frame to host controller at this moment. + * + * + * Caution: + * Handling the wait queue of command packets. + * For Tx command packets, we must not do TCB fragment because it is not handled right now. + * We must cut the packets to match the size of TX_CMD_PKT before we send it. + */ /* Handle MPDU in wait queue. */ if (queue_index != BEACON_QUEUE) { @@ -1051,7 +1052,7 @@ static void rtl8192_tx_isr(struct urb *tx_urb) if (skb) priv->ieee80211->softmac_hard_start_xmit(skb, dev); - return; //modified by david to avoid further processing AMSDU + return; /* avoid further processing AMSDU */ } } @@ -1167,7 +1168,7 @@ static void rtl8192_update_cap(struct net_device *dev, u16 cap) u8 slot_time = 0; if ((cap & WLAN_CAPABILITY_SHORT_SLOT) && (!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) /* short slot time */ slot_time = SHORT_SLOT_TIME; - else //long slot time + else /* long slot time */ slot_time = NON_SHORT_SLOT_TIME; priv->slot_time = slot_time; write_nic_byte(dev, SLOT_TIME, slot_time); @@ -1197,7 +1198,7 @@ static void rtl8192_net_update(struct net_device *dev) write_nic_word(dev, BCN_DRV_EARLY_INT, 1); write_nic_byte(dev, BCN_ERR_THRESH, 100); BcnTimeCfg |= (BcnCW << BCN_TCFG_CW_SHIFT); - // TODO: BcnIFS may required to be changed on ASIC + /* TODO: BcnIFS may required to be changed on ASIC */ BcnTimeCfg |= BcnIFS << BCN_TCFG_IFS; write_nic_word(dev, BCN_TCFG, BcnTimeCfg); @@ -1207,8 +1208,9 @@ static void rtl8192_net_update(struct net_device *dev) } -//temporary hw beacon is not used any more. -//open it when necessary +/* temporary hw beacon is not used any more. + * open it when necessary + */ void rtl819xusb_beacon_tx(struct net_device *dev, u16 tx_rate) { @@ -1287,16 +1289,17 @@ short rtl819xU_tx_cmd(struct net_device *dev, struct sk_buff *skb) memset(pdesc, 0, USB_HWDESC_HEADER_LEN); /* Tx descriptor ought to be set according to the skb->cb */ - pdesc->FirstSeg = 1;//bFirstSeg; - pdesc->LastSeg = 1;//bLastSeg; + pdesc->FirstSeg = 1; + pdesc->LastSeg = 1; pdesc->CmdInit = tcb_desc->bCmdOrInit; pdesc->TxBufferSize = tcb_desc->txbuf_size; pdesc->OWN = 1; pdesc->LINIP = tcb_desc->bLastIniPkt; - //---------------------------------------------------------------------------- - // Fill up USB_OUT_CONTEXT. - //---------------------------------------------------------------------------- + /*---------------------------------------------------------------------------- + * Fill up USB_OUT_CONTEXT. + *---------------------------------------------------------------------------- + */ idx_pipe = 0x04; usb_fill_bulk_urb(tx_urb, priv->udev, usb_sndbulkpipe(priv->udev, idx_pipe), skb->data, skb->len, rtl8192_tx_isr, skb); @@ -1320,7 +1323,7 @@ short rtl819xU_tx_cmd(struct net_device *dev, struct sk_buff *skb) */ static u8 MapHwQueueToFirmwareQueue(u8 QueueID) { - u8 QueueSelect = 0x0; //defualt set to + u8 QueueSelect = 0x0; /* defualt set to */ switch (QueueID) { case BE_QUEUE: @@ -1346,8 +1349,8 @@ static u8 MapHwQueueToFirmwareQueue(u8 QueueID) QueueSelect = QSLT_BEACON; break; - // TODO: 2006.10.30 mark other queue selection until we verify it is OK - // TODO: Remove Assertions + /* TODO: 2006.10.30 mark other queue selection until we verify it is OK */ + /* TODO: Remove Assertions */ case TXCMD_QUEUE: QueueSelect = QSLT_CMD; break; @@ -1548,7 +1551,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) { if (tcb_desc->bPacketBW) { tx_fwinfo->TxBandwidth = 1; - tx_fwinfo->TxSubCarrier = 0; //By SD3's Jerry suggestion, use duplicated mode + tx_fwinfo->TxSubCarrier = 0; /* use duplicated mode */ } else { tx_fwinfo->TxBandwidth = 0; tx_fwinfo->TxSubCarrier = priv->nCur40MhzPrimeSC; @@ -1600,7 +1603,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) tx_desc->USERATE = tcb_desc->bTxUseDriverAssingedRate; /* Fill fields that are required to be initialized in all of the descriptors */ - //DWORD 0 + /* DWORD 0 */ tx_desc->FirstSeg = 1; tx_desc->LastSeg = 1; tx_desc->OWN = 1; @@ -1616,7 +1619,11 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) status = usb_submit_urb(tx_urb, GFP_ATOMIC); if (!status) { - //we need to send 0 byte packet whenever 512N bytes/64N(HIGN SPEED/NORMAL SPEED) bytes packet has been transmitted. Otherwise, it will be halt to wait for another packet. WB. 2008.08.27 + /* We need to send 0 byte packet whenever + * 512N bytes/64N(HIGN SPEED/NORMAL SPEED) bytes packet has + * been transmitted. Otherwise, it will be halt to wait for + * another packet. + */ bool bSend0Byte = false; u8 zero = 0; if (udev->speed == USB_SPEED_HIGH) { @@ -1770,7 +1777,10 @@ static void rtl8192_link_change(struct net_device *dev) if (ieee->state == IEEE80211_LINKED) { rtl8192_net_update(dev); rtl8192_update_ratr_table(dev); - //add this as in pure N mode, wep encryption will use software way, but there is no chance to set this as wep will not set group key in wext. WB.2008.07.08 + /* Add this as in pure N mode, wep encryption will use software + * way, but there is no chance to set this as wep will not set + * group key in wext. + */ if ((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) EnableHWSecurityConfig8192(dev); } @@ -1832,7 +1842,7 @@ static void rtl8192_qos_activate(struct work_struct *work) /* For we just support b/g mode at present, let the slot time at 9/20 selection */ /* update the ac parameter to related registers */ for (i = 0; i < QOS_QUEUE_NUM; i++) { - //Mode G/A: slotTimeTimer = 9; Mode B: 20 + /* Mode G/A: slotTimeTimer = 9; Mode B: 20 */ u1bAIFS = qos_parameters->aifs[i] * ((mode & (IEEE_G | IEEE_N_24G)) ? 9 : 20) + aSifsTime; u1bAIFS <<= AC_PARAM_AIFS_OFFSET; op_limit = (u32)le16_to_cpu(qos_parameters->tx_op_limit[i]); @@ -2021,7 +2031,9 @@ static bool GetNmodeSupportBySecCfg8192(struct net_device *dev) int encrypt; crypt = ieee->crypt[ieee->tx_keyidx]; - //we use connecting AP's capability instead of only security config on our driver to distinguish whether it should use N mode or G mode + /* we use connecting AP's capability instead of only security config + * on our driver to distinguish whether it should use N mode or G mode + */ encrypt = (network->capability & WLAN_CAPABILITY_PRIVACY) || (ieee->host_encrypt && crypt && crypt->ops && (0 == strcmp(crypt->ops->name, "WEP"))); /* simply judge */ @@ -2051,7 +2063,9 @@ static bool GetHalfNmodeSupportByAPs819xUsb(struct net_device *dev) static void rtl8192_refresh_supportrate(struct r8192_priv *priv) { struct ieee80211_device *ieee = priv->ieee80211; - //we do not consider set support rate for ABG mode, only HT MCS rate is set here. + /* We do not consider set support rate for ABG mode, only + * HT MCS rate is set here. + */ if (ieee->mode == WIRELESS_MODE_N_24G || ieee->mode == WIRELESS_MODE_N_5G) memcpy(ieee->Regdot11HTOperationalRateSet, ieee->RegHTSuppRateSet, 16); else @@ -2098,7 +2112,7 @@ static void rtl8192_SetWirelessMode(struct net_device *dev, u8 wireless_mode) wireless_mode = WIRELESS_MODE_B; } } -#ifdef TO_DO_LIST //// TODO: this function doesn't work well at this time, we should wait for FPGA +#ifdef TO_DO_LIST /* TODO: this function doesn't work well at this time, we should wait for FPGA */ ActUpdateChannelAccessSetting(pAdapter, pHalData->CurrentWirelessMode, &pAdapter->MgntInfo.Info8185.ChannelAccessSetting); #endif priv->ieee80211->mode = wireless_mode; @@ -2111,43 +2125,43 @@ static void rtl8192_SetWirelessMode(struct net_device *dev, u8 wireless_mode) rtl8192_refresh_supportrate(priv); } -//init priv variables here. only non_zero value should be initialized here. +/* init priv variables here. only non_zero value should be initialized here. */ static void rtl8192_init_priv_variable(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); u8 i; priv->card_8192 = NIC_8192U; - priv->chan = 1; //set to channel 1 - priv->ieee80211->mode = WIRELESS_MODE_AUTO; //SET AUTO + priv->chan = 1; /* set to channel 1 */ + priv->ieee80211->mode = WIRELESS_MODE_AUTO; /* SET AUTO */ priv->ieee80211->iw_mode = IW_MODE_INFRA; priv->ieee80211->ieee_up = 0; priv->retry_rts = DEFAULT_RETRY_RTS; priv->retry_data = DEFAULT_RETRY_DATA; priv->ieee80211->rts = DEFAULT_RTS_THRESHOLD; - priv->ieee80211->rate = 110; //11 mbps + priv->ieee80211->rate = 110; /* 11 mbps */ priv->ieee80211->short_slot = 1; priv->promisc = (dev->flags & IFF_PROMISC) ? 1 : 0; priv->CckPwEnl = 6; - //for silent reset + /* for silent reset */ priv->IrpPendingCount = 1; priv->ResetProgress = RESET_TYPE_NORESET; priv->bForcedSilentReset = false; priv->bDisableNormalResetCheck = false; priv->force_reset = false; - priv->ieee80211->FwRWRF = 0; //we don't use FW read/write RF until stable firmware is available. + priv->ieee80211->FwRWRF = 0; /* we don't use FW read/write RF until stable firmware is available. */ priv->ieee80211->current_network.beacon_interval = DEFAULT_BEACONINTERVAL; priv->ieee80211->softmac_features = IEEE_SOFTMAC_SCAN | IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ | IEEE_SOFTMAC_PROBERS | IEEE_SOFTMAC_TX_QUEUE | - IEEE_SOFTMAC_BEACONS;//added by amy 080604 + IEEE_SOFTMAC_BEACONS; priv->ieee80211->active_scan = 1; priv->ieee80211->modulation = IEEE80211_CCK_MODULATION | IEEE80211_OFDM_MODULATION; priv->ieee80211->host_encrypt = 1; priv->ieee80211->host_decrypt = 1; - priv->ieee80211->start_send_beacons = NULL; //-by amy 080604 - priv->ieee80211->stop_send_beacons = NULL; //-by amy 080604 + priv->ieee80211->start_send_beacons = NULL; + priv->ieee80211->stop_send_beacons = NULL; priv->ieee80211->softmac_hard_start_xmit = rtl8192_hard_start_xmit; priv->ieee80211->set_chan = rtl8192_set_chan; priv->ieee80211->link_change = rtl8192_link_change; @@ -2160,15 +2174,14 @@ static void rtl8192_init_priv_variable(struct net_device *dev) priv->ieee80211->tx_headroom = TX_PACKET_SHIFT_BYTES; priv->ieee80211->qos_support = 1; - //added by WB priv->ieee80211->SetBWModeHandler = rtl8192_SetBWMode; priv->ieee80211->handle_assoc_response = rtl8192_handle_assoc_response; priv->ieee80211->handle_beacon = rtl8192_handle_beacon; - //added by david + priv->ieee80211->GetNmodeSupportBySecCfg = GetNmodeSupportBySecCfg8192; priv->ieee80211->GetHalfNmodeSupportByAPsHandler = GetHalfNmodeSupportByAPs819xUsb; priv->ieee80211->SetWirelessMode = rtl8192_SetWirelessMode; - //added by amy + priv->ieee80211->InitialGainHandler = InitialGain819xUsb; priv->card_type = USB; #ifdef TO_DO_LIST @@ -2182,30 +2195,29 @@ static void rtl8192_init_priv_variable(struct net_device *dev) priv->EarlyRxThreshold = 7; priv->enable_gpio0 = 0; priv->TransmitConfig = - (TCR_MXDMA_2048 << TCR_MXDMA_OFFSET) | // Max DMA Burst Size per Tx DMA Burst, 7: reserved. - (priv->ShortRetryLimit << TCR_SRL_OFFSET) | // Short retry limit - (priv->LongRetryLimit << TCR_LRL_OFFSET) | // Long retry limit - (false ? TCR_SAT : 0); // FALSE: HW provides PLCP length and LENGEXT, TRUE: SW provides them + (TCR_MXDMA_2048 << TCR_MXDMA_OFFSET) | /* Max DMA Burst Size per Tx DMA Burst, 7: reserved. */ + (priv->ShortRetryLimit << TCR_SRL_OFFSET) | /* Short retry limit */ + (priv->LongRetryLimit << TCR_LRL_OFFSET) | /* Long retry limit */ + (false ? TCR_SAT : 0); /* FALSE: HW provides PLCP length and LENGEXT, TRUE: SW provides them */ #ifdef TO_DO_LIST if (Adapter->bInHctTest) pHalData->ReceiveConfig = pHalData->CSMethod | - RCR_AMF | RCR_ADF | //accept management/data - //guangan200710 - RCR_ACF | //accept control frame for SW AP needs PS-poll, 2005.07.07, by rcnjko. - RCR_AB | RCR_AM | RCR_APM | //accept BC/MC/UC - RCR_AICV | RCR_ACRC32 | //accept ICV/CRC error packet - ((u32)7 << RCR_MXDMA_OFFSET) | // Max DMA Burst Size per Tx DMA Burst, 7: unlimited. - (pHalData->EarlyRxThreshold << RCR_FIFO_OFFSET) | // Rx FIFO Threshold, 7: No Rx threshold. + RCR_AMF | RCR_ADF | /* accept management/data */ + RCR_ACF | /* accept control frame for SW AP needs PS-poll, 2005.07.07, by rcnjko. */ + RCR_AB | RCR_AM | RCR_APM | /* accept BC/MC/UC */ + RCR_AICV | RCR_ACRC32 | /* accept ICV/CRC error packet */ + ((u32)7 << RCR_MXDMA_OFFSET) | /* Max DMA Burst Size per Tx DMA Burst, 7: unlimited. */ + (pHalData->EarlyRxThreshold << RCR_FIFO_OFFSET) | /* Rx FIFO Threshold, 7: No Rx threshold. */ (pHalData->EarlyRxThreshold == 7 ? RCR_OnlyErlPkt : 0); else #endif priv->ReceiveConfig = - RCR_AMF | RCR_ADF | //accept management/data - RCR_ACF | //accept control frame for SW AP needs PS-poll, 2005.07.07, by rcnjko. - RCR_AB | RCR_AM | RCR_APM | //accept BC/MC/UC - ((u32)7 << RCR_MXDMA_OFFSET) | // Max DMA Burst Size per Rx DMA Burst, 7: unlimited. - (priv->EarlyRxThreshold << RX_FIFO_THRESHOLD_SHIFT) | // Rx FIFO Threshold, 7: No Rx threshold. + RCR_AMF | RCR_ADF | /* accept management/data */ + RCR_ACF | /* accept control frame for SW AP needs PS-poll, 2005.07.07, by rcnjko. */ + RCR_AB | RCR_AM | RCR_APM | /* accept BC/MC/UC */ + ((u32)7 << RCR_MXDMA_OFFSET) | /* Max DMA Burst Size per Rx DMA Burst, 7: unlimited. */ + (priv->EarlyRxThreshold << RX_FIFO_THRESHOLD_SHIFT) | /* Rx FIFO Threshold, 7: No Rx threshold. */ (priv->EarlyRxThreshold == 7 ? RCR_ONLYERLPKT : 0); priv->AcmControl = 0; @@ -2225,11 +2237,11 @@ static void rtl8192_init_priv_variable(struct net_device *dev) priv->rf_set_chan = rtl8192_phy_SwChnl; } -//init lock here +/* init lock here */ static void rtl8192_init_priv_lock(struct r8192_priv *priv) { spin_lock_init(&priv->tx_lock); - spin_lock_init(&priv->irq_lock);//added by thomas + spin_lock_init(&priv->irq_lock); sema_init(&priv->wx_sem, 1); sema_init(&priv->rf_sem, 1); mutex_init(&priv->mutex); @@ -2238,7 +2250,7 @@ static void rtl8192_init_priv_lock(struct r8192_priv *priv) static void rtl819x_watchdog_wqcallback(struct work_struct *work); static void rtl8192_irq_rx_tasklet(struct r8192_priv *priv); -//init tasklet and wait_queue here. only 2.6 above kernel is considered +/* init tasklet and wait_queue here. only 2.6 above kernel is considered */ #define DRV_NAME "wlan0" static void rtl8192_init_priv_task(struct net_device *dev) { @@ -2267,12 +2279,14 @@ static void rtl8192_get_eeprom_size(struct net_device *dev) RT_TRACE(COMP_EPROM, "===========>%s()\n", __func__); read_nic_word_E(dev, EPROM_CMD, &curCR); RT_TRACE(COMP_EPROM, "read from Reg EPROM_CMD(%x):%x\n", EPROM_CMD, curCR); - //whether need I consider BIT5? + /* whether need I consider BIT5? */ priv->epromtype = (curCR & Cmd9346CR_9356SEL) ? EPROM_93c56 : EPROM_93c46; RT_TRACE(COMP_EPROM, "<===========%s(), epromtype:%d\n", __func__, priv->epromtype); } -//used to swap endian. as ntohl & htonl are not necessary to swap endian, so use this instead. +/* used to swap endian. as ntohl & htonl are not necessary + * to swap endian, so use this instead. + */ static inline u16 endian_swap(u16 *data) { u16 tmp = *data; @@ -2288,7 +2302,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) u16 tmpValue = 0; int i; RT_TRACE(COMP_EPROM, "===========>%s()\n", __func__); - wEPROM_ID = eprom_read(dev, 0); //first read EEPROM ID out; + wEPROM_ID = eprom_read(dev, 0); /* first read EEPROM ID out; */ RT_TRACE(COMP_EPROM, "EEPROM ID is 0x%x\n", wEPROM_ID); if (wEPROM_ID != RTL8190_EEPROM_ID) { @@ -2313,7 +2327,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) priv->eeprom_CustomerID = 0; } RT_TRACE(COMP_EPROM, "vid:0x%4x, pid:0x%4x, CustomID:0x%2x, ChanPlan:0x%x\n", priv->eeprom_vid, priv->eeprom_pid, priv->eeprom_CustomerID, priv->eeprom_ChannelPlan); - //set channelplan from eeprom + /* set channelplan from eeprom */ priv->ChannelPlan = priv->eeprom_ChannelPlan; if (bLoad_From_EEPOM) { int i; @@ -2324,40 +2338,40 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) } } else { memcpy(dev->dev_addr, bMac_Tmp_Addr, 6); - //should I set IDR0 here? + /* should I set IDR0 here? */ } RT_TRACE(COMP_EPROM, "MAC addr:%pM\n", dev->dev_addr); - priv->rf_type = RTL819X_DEFAULT_RF_TYPE; //default 1T2R + priv->rf_type = RTL819X_DEFAULT_RF_TYPE; /* default 1T2R */ priv->rf_chip = RF_8256; if (priv->card_8192_version == (u8)VERSION_819xU_A) { - //read Tx power gain offset of legacy OFDM to HT rate + /* read Tx power gain offset of legacy OFDM to HT rate */ if (bLoad_From_EEPOM) priv->EEPROMTxPowerDiff = (eprom_read(dev, (EEPROM_TxPowerDiff >> 1)) & 0xff00) >> 8; else priv->EEPROMTxPowerDiff = EEPROM_Default_TxPower; RT_TRACE(COMP_EPROM, "TxPowerDiff:%d\n", priv->EEPROMTxPowerDiff); - //read ThermalMeter from EEPROM + /* read ThermalMeter from EEPROM */ if (bLoad_From_EEPOM) priv->EEPROMThermalMeter = (u8)(eprom_read(dev, (EEPROM_ThermalMeter >> 1)) & 0x00ff); else priv->EEPROMThermalMeter = EEPROM_Default_ThermalMeter; RT_TRACE(COMP_EPROM, "ThermalMeter:%d\n", priv->EEPROMThermalMeter); - //vivi, for tx power track + /* for tx power track */ priv->TSSI_13dBm = priv->EEPROMThermalMeter * 100; - //read antenna tx power offset of B/C/D to A from EEPROM + /* read antenna tx power offset of B/C/D to A from EEPROM */ if (bLoad_From_EEPOM) priv->EEPROMPwDiff = (eprom_read(dev, (EEPROM_PwDiff >> 1)) & 0x0f00) >> 8; else priv->EEPROMPwDiff = EEPROM_Default_PwDiff; RT_TRACE(COMP_EPROM, "TxPwDiff:%d\n", priv->EEPROMPwDiff); - // Read CrystalCap from EEPROM + /* Read CrystalCap from EEPROM */ if (bLoad_From_EEPOM) priv->EEPROMCrystalCap = (eprom_read(dev, (EEPROM_CrystalCap >> 1)) & 0x0f); else priv->EEPROMCrystalCap = EEPROM_Default_CrystalCap; RT_TRACE(COMP_EPROM, "CrystalCap = %d\n", priv->EEPROMCrystalCap); - //get per-channel Tx power level + /* get per-channel Tx power level */ if (bLoad_From_EEPOM) priv->EEPROM_Def_Ver = (eprom_read(dev, (EEPROM_TxPwIndex_Ver >> 1)) & 0xff00) >> 8; else @@ -2409,10 +2423,9 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) else tmpValue = 0x10; priv->EEPROMTxPowerLevelOFDM24G[2] = (u8)tmpValue; - }//endif EEPROM_Def_Ver == 1 + } /* endif EEPROM_Def_Ver == 1 */ - //update HAL variables - // + /* update HAL variables */ for (i = 0; i < 14; i++) { if (i <= 3) priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[0]; @@ -2440,18 +2453,19 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) } } priv->TxPowerDiff = priv->EEPROMPwDiff; - // Antenna B gain offset to antenna A, bit0~3 + /* Antenna B gain offset to antenna A, bit0~3 */ priv->AntennaTxPwDiff[0] = (priv->EEPROMTxPowerDiff & 0xf); - // Antenna C gain offset to antenna A, bit4~7 + /* Antenna C gain offset to antenna A, bit4~7 */ priv->AntennaTxPwDiff[1] = (priv->EEPROMTxPowerDiff & 0xf0) >> 4; - // CrystalCap, bit12~15 + /* CrystalCap, bit12~15 */ priv->CrystalCap = priv->EEPROMCrystalCap; - // ThermalMeter, bit0~3 for RFIC1, bit4~7 for RFIC2 - // 92U does not enable TX power tracking. + /* ThermalMeter, bit0~3 for RFIC1, bit4~7 for RFIC2 + * 92U does not enable TX power tracking. + */ priv->ThermalMeter[0] = priv->EEPROMThermalMeter; - }//end if VersionID == VERSION_819xU_A + } /* end if VersionID == VERSION_819xU_A */ - //added by vivi, for dlink led, 20080416 + /* for dlink led */ switch (priv->eeprom_CustomerID) { case EEPROM_CID_RUNTOP: priv->CustomerID = RT_CID_819x_RUNTOP; @@ -2489,10 +2503,10 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) RT_TRACE(COMP_EPROM, "\n2T4R config\n"); } - // 2008/01/16 MH We can only know RF type in the function. So we have to init - // DIG RATR table again. + /* We can only know RF type in the function. So we have to init + * DIG RATR table again. + */ init_rate_adaptive(dev); - //we need init DIG RATR table here again. RT_TRACE(COMP_EPROM, "<===========%s()\n", __func__); } @@ -2561,8 +2575,7 @@ static void rtl8192_hwconfig(struct net_device *dev) struct r8192_priv *priv = ieee80211_priv(dev); u32 ratr_value = 0; - // Set RRSR, RATR, and BW_OPMODE registers - // + /* Set RRSR, RATR, and BW_OPMODE registers */ switch (priv->ieee80211->mode) { case WIRELESS_MODE_B: regBwOpMode = BW_OPMODE_20MHZ; @@ -2594,8 +2607,9 @@ static void rtl8192_hwconfig(struct net_device *dev) } break; case WIRELESS_MODE_N_24G: - // It support CCK rate by default. - // CCK rate will be filtered out only when associated AP does not support it. + /* It support CCK rate by default. CCK rate will be filtered + * out only when associated AP does not support it. + */ regBwOpMode = BW_OPMODE_20MHZ; regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; @@ -2617,25 +2631,23 @@ static void rtl8192_hwconfig(struct net_device *dev) regRRSR = ((regTmp) << 24) | (regRRSR & 0x00ffffff); write_nic_dword(dev, RRSR, regRRSR); - // - // Set Retry Limit here - // + /* Set Retry Limit here */ write_nic_word(dev, RETRY_LIMIT, priv->ShortRetryLimit << RETRY_LIMIT_SHORT_SHIFT | priv->LongRetryLimit << RETRY_LIMIT_LONG_SHIFT); - // Set Contention Window here + /* Set Contention Window here */ - // Set Tx AGC + /* Set Tx AGC */ - // Set Tx Antenna including Feedback control + /* Set Tx Antenna including Feedback control */ - // Set Auto Rate fallback control + /* Set Auto Rate fallback control */ } -//InitializeAdapter and PhyCfg +/* InitializeAdapter and PhyCfg */ static bool rtl8192_adapter_start(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); @@ -2645,7 +2657,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) u8 tmp; RT_TRACE(COMP_INIT, "====>%s()\n", __func__); priv->Rf_Mode = RF_OP_By_SW_3wire; - //for ASIC power on sequence + /* for ASIC power on sequence */ write_nic_byte_E(dev, 0x5f, 0x80); mdelay(50); write_nic_byte_E(dev, 0x5f, 0xf0); @@ -2654,21 +2666,21 @@ static bool rtl8192_adapter_start(struct net_device *dev) write_nic_byte(dev, 0x17, 0x37); mdelay(10); priv->pFirmware->firmware_status = FW_STATUS_0_INIT; - //config CPUReset Register - //Firmware Reset or not? + /* config CPUReset Register */ + /* Firmware Reset or not? */ read_nic_dword(dev, CPU_GEN, &dwRegRead); if (priv->pFirmware->firmware_status == FW_STATUS_0_INIT) - dwRegRead |= CPU_GEN_SYSTEM_RESET; //do nothing here? + dwRegRead |= CPU_GEN_SYSTEM_RESET; /* do nothing here? */ else if (priv->pFirmware->firmware_status == FW_STATUS_5_READY) dwRegRead |= CPU_GEN_FIRMWARE_RESET; else RT_TRACE(COMP_ERR, "ERROR in %s(): undefined firmware state(%d)\n", __func__, priv->pFirmware->firmware_status); write_nic_dword(dev, CPU_GEN, dwRegRead); - //config BB. + /* config BB. */ rtl8192_BBConfig(dev); - //Loopback mode or not + /* Loopback mode or not */ priv->LoopbackMode = RTL819xU_NO_LOOPBACK; read_nic_dword(dev, CPU_GEN, &dwRegRead); @@ -2681,27 +2693,27 @@ static bool rtl8192_adapter_start(struct net_device *dev) write_nic_dword(dev, CPU_GEN, dwRegRead); - //after reset cpu, we need wait for a seconds to write in register. + /* after reset cpu, we need wait for a seconds to write in register. */ udelay(500); - //xiong add for new bitfile:usb suspend reset pin set to 1. //do we need? + /* add for new bitfile:usb suspend reset pin set to 1. Do we need? */ read_nic_byte_E(dev, 0x5f, &tmp); write_nic_byte_E(dev, 0x5f, tmp | 0x20); - //Set Hardware + /* Set Hardware */ rtl8192_hwconfig(dev); - //turn on Tx/Rx + /* turn on Tx/Rx */ write_nic_byte(dev, CMDR, CR_RE | CR_TE); - //set IDR0 here + /* set IDR0 here */ write_nic_dword(dev, MAC0, ((u32 *)dev->dev_addr)[0]); write_nic_word(dev, MAC4, ((u16 *)(dev->dev_addr + 4))[0]); - //set RCR + /* set RCR */ write_nic_dword(dev, RCR, priv->ReceiveConfig); - //Initialize Number of Reserved Pages in Firmware Queue + /* Initialize Number of Reserved Pages in Firmware Queue */ write_nic_dword(dev, RQPN1, NUM_OF_PAGE_IN_FW_QUEUE_BK << RSVD_FW_QUEUE_PAGE_BK_SHIFT | NUM_OF_PAGE_IN_FW_QUEUE_BE << RSVD_FW_QUEUE_PAGE_BE_SHIFT | NUM_OF_PAGE_IN_FW_QUEUE_VI << RSVD_FW_QUEUE_PAGE_VI_SHIFT | @@ -2712,8 +2724,8 @@ static bool rtl8192_adapter_start(struct net_device *dev) NUM_OF_PAGE_IN_FW_QUEUE_BCN << RSVD_FW_QUEUE_PAGE_BCN_SHIFT); write_nic_dword(dev, RATR0 + 4 * 7, (RATE_ALL_OFDM_AG | RATE_ALL_CCK)); - //Set AckTimeout - // TODO: (it value is only for FPGA version). need to be changed!!2006.12.18, by Emily + /* Set AckTimeout */ + /* TODO: (it value is only for FPGA version). need to be changed!! */ write_nic_byte(dev, ACK_TIMEOUT, 0x30); if (priv->ResetProgress == RESET_TYPE_NORESET) @@ -2726,7 +2738,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) write_nic_byte(dev, SECR, SECR_value); } - //Beacon related + /* Beacon related */ write_nic_word(dev, ATIMWND, 2); write_nic_word(dev, BCN_INTERVAL, 100); @@ -2744,20 +2756,22 @@ static bool rtl8192_adapter_start(struct net_device *dev) rtl8192_phy_setTxPower(dev, priv->chan); } - //Firmware download + /* Firmware download */ init_status = init_firmware(dev); if (!init_status) { RT_TRACE(COMP_ERR, "ERR!!! %s(): Firmware download is failed\n", __func__); return init_status; } RT_TRACE(COMP_INIT, "%s():after firmware download\n", __func__); - // + #ifdef TO_DO_LIST if (Adapter->ResetProgress == RESET_TYPE_NORESET) { if (pMgntInfo->RegRfOff) { /* User disable RF via registry. */ RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RegRfOff ----------\n")); MgntActSet_RF_State(Adapter, eRfOff, RF_CHANGE_BY_SW); - // Those actions will be discard in MgntActSet_RF_State because of the same state + /* Those actions will be discard in MgntActSet_RF_State + * because of the same state + */ for (eRFPath = 0; eRFPath < pHalData->NumTotalRFPath; eRFPath++) PHY_SetRFReg(Adapter, (RF90_RADIO_PATH_E)eRFPath, 0x4, 0xC00, 0x0); } else if (pMgntInfo->RfOffReason > RF_CHANGE_BY_PS) { /* H/W or S/W RF OFF before sleep. */ @@ -2771,13 +2785,15 @@ static bool rtl8192_adapter_start(struct net_device *dev) } else { if (pHalData->eRFPowerState == eRfOff) { MgntActSet_RF_State(Adapter, eRfOff, pMgntInfo->RfOffReason); - // Those actions will be discard in MgntActSet_RF_State because of the same state + /* Those actions will be discard in MgntActSet_RF_State + * because of the same state + */ for (eRFPath = 0; eRFPath < pHalData->NumTotalRFPath; eRFPath++) PHY_SetRFReg(Adapter, (RF90_RADIO_PATH_E)eRFPath, 0x4, 0xC00, 0x0); } } #endif - //config RF. + /* config RF. */ if (priv->ResetProgress == RESET_TYPE_NORESET) { rtl8192_phy_RFConfig(dev); RT_TRACE(COMP_INIT, "%s():after phy RF config\n", __func__); @@ -2785,7 +2801,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) if (priv->ieee80211->FwRWRF) - // We can force firmware to do RF-R/W + /* We can force firmware to do RF-R/W */ priv->Rf_Mode = RF_OP_By_FW; else priv->Rf_Mode = RF_OP_By_SW_3wire; @@ -2797,7 +2813,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, 0x1); if (priv->ResetProgress == RESET_TYPE_NORESET) { - //if D or C cut + /* if D or C cut */ u8 tmpvalue; read_nic_byte(dev, 0x301, &tmpvalue); if (tmpvalue == 0x03) { @@ -2882,9 +2898,7 @@ static RESET_TYPE TxCheckStuck(struct net_device *dev) u8 QueueID; bool bCheckFwTxCnt = false; - // - // Decide such threshold according to current power save mode - // + /* Decide such threshold according to current power save mode */ for (QueueID = 0; QueueID <= BEACON_QUEUE; QueueID++) { if (QueueID == TXCMD_QUEUE) @@ -2911,11 +2925,12 @@ static bool HalRxCheckStuck819xUsb(struct net_device *dev) static u8 rx_chk_cnt; read_nic_word(dev, 0x130, &RegRxCounter); RT_TRACE(COMP_RESET, "%s(): RegRxCounter is %d,RxCounter is %d\n", __func__, RegRxCounter, priv->RxCounter); - // If rssi is small, we should check rx for long time because of bad rx. - // or maybe it will continuous silent reset every 2 seconds. + /* If rssi is small, we should check rx for long time because of bad rx. + * or maybe it will continuous silent reset every 2 seconds. + */ rx_chk_cnt++; if (priv->undecorated_smoothed_pwdb >= (RateAdaptiveTH_High + 5)) { - rx_chk_cnt = 0; //high rssi, check rx stuck right now. + rx_chk_cnt = 0; /* high rssi, check rx stuck right now. */ } else if (priv->undecorated_smoothed_pwdb < (RateAdaptiveTH_High + 5) && ((priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_40M) || (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_20M))) { @@ -2987,14 +3002,18 @@ static RESET_TYPE rtl819x_ifcheck_resetornot(struct net_device *dev) TxResetType = TxCheckStuck(dev); if (rfState != eRfOff || (priv->ieee80211->iw_mode != IW_MODE_ADHOC)) { - // If driver is in the status of firmware download failure , driver skips RF initialization and RF is - // in turned off state. Driver should check whether Rx stuck and do silent reset. And - // if driver is in firmware download failure status, driver should initialize RF in the following - // silent reset procedure Emily, 2008.01.21 - - // Driver should not check RX stuck in IBSS mode because it is required to - // set Check BSSID in order to send beacon, however, if check BSSID is - // set, STA cannot hear any packet at all. Emily, 2008.04.12 + /* If driver is in the status of firmware download failure, + * driver skips RF initialization and RF is in turned off + * state. Driver should check whether Rx stuck and do silent + * reset. And if driver is in firmware download failure status, + * driver should initialize RF in the following silent reset + * procedure + * + * Driver should not check RX stuck in IBSS mode because it is + * required to set Check BSSID in order to send beacon, + * however, if check BSSID is set, STA cannot hear any packet + * at all. + */ RxResetType = RxCheckStuck(dev); } if (TxResetType == RESET_TYPE_NORMAL || RxResetType == RESET_TYPE_NORMAL) { @@ -3084,12 +3103,11 @@ static void CamRestoreAllEntry(struct net_device *dev) CAM_CONST_ADDR[0], 0, NULL); } } -////////////////////////////////////////////////////////////// -// This function is used to fix Tx/Rx stop bug temporarily. -// This function will do "system reset" to NIC when Tx or Rx is stuck. -// The method checking Tx/Rx stuck of this function is supported by FW, -// which reports Tx and Rx counter to register 0x128 and 0x130. -////////////////////////////////////////////////////////////// +/* This function is used to fix Tx/Rx stop bug temporarily. + * This function will do "system reset" to NIC when Tx or Rx is stuck. + * The method checking Tx/Rx stuck of this function is supported by FW, + * which reports Tx and Rx counter to register 0x128 and 0x130. + */ static void rtl819x_ifsilentreset(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); @@ -3098,15 +3116,15 @@ static void rtl819x_ifsilentreset(struct net_device *dev) struct ieee80211_device *ieee = priv->ieee80211; - // 2007.07.20. If we need to check CCK stop, please uncomment this line. - //bStuck = Adapter->HalFunc.CheckHWStopHandler(Adapter); + /* If we need to check CCK stop, please uncomment this line. */ + /* bStuck = Adapter->HalFunc.CheckHWStopHandler(Adapter); */ if (priv->ResetProgress == RESET_TYPE_NORESET) { RESET_START: RT_TRACE(COMP_RESET, "=========>Reset progress!! \n"); - // Set the variable for reset. + /* Set the variable for reset. */ priv->ResetProgress = RESET_TYPE_SILENT; down(&priv->wx_sem); if (priv->up == 0) { @@ -3176,7 +3194,7 @@ RESET_START: priv->bForcedSilentReset = false; priv->bResetInProgress = false; - // For test --> force write UFWP. + /* For test --> force write UFWP. */ write_nic_byte(dev, UFWP, 1); RT_TRACE(COMP_RESET, "Reset finished!! ====>[%d]\n", priv->reset_count); } @@ -3217,7 +3235,7 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) return; hal_dm_watchdog(dev); - //to get busy traffic condition + /* to get busy traffic condition */ if (ieee->state == IEEE80211_LINKED) { if (ieee->LinkDetectInfo.NumRxOkInPeriod > 666 || ieee->LinkDetectInfo.NumTxOkInPeriod > 666) { @@ -3227,7 +3245,7 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) ieee->LinkDetectInfo.NumTxOkInPeriod = 0; ieee->LinkDetectInfo.bBusyTraffic = bBusyTraffic; } - //added by amy for AP roaming + /* for AP roaming */ if (priv->ieee80211->state == IEEE80211_LINKED && priv->ieee80211->iw_mode == IW_MODE_INFRA) { rtl819x_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum); @@ -3247,7 +3265,7 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) } priv->ieee80211->LinkDetectInfo.NumRecvBcnInPeriod = 0; priv->ieee80211->LinkDetectInfo.NumRecvDataInPeriod = 0; - //check if reset the driver + /* check if reset the driver */ if (check_reset_cnt++ >= 3) { ResetType = rtl819x_ifcheck_resetornot(dev); check_reset_cnt = 3; @@ -3363,7 +3381,9 @@ int rtl8192_down(struct net_device *dev) for (i = 0; i < MAX_QUEUE_SIZE; i++) skb_queue_purge(&priv->ieee80211->skb_drv_aggQ[i]); - //as cancel_delayed_work will del work->timer, so if work is not defined as struct delayed_work, it will corrupt + /* as cancel_delayed_work will del work->timer, so if work is not + * defined as struct delayed_work, it will corrupt + */ rtl8192_cancel_deferred_work(priv); deinit_hal_dm(dev); del_timer_sync(&priv->watch_dog_timer); @@ -3465,7 +3485,7 @@ static int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) switch (cmd) { case RTL_IOCTL_WPA_SUPPLICANT: - //parse here for HW security + /* parse here for HW security */ if (ipw->cmd == IEEE_CMD_SET_ENCRYPTION) { if (ipw->u.crypt.set_tx) { if (strcmp(ipw->u.crypt.alg, "CCMP") == 0) { @@ -3484,8 +3504,12 @@ static int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) if (ieee->pairwise_key_type) { memcpy((u8 *)key, ipw->u.crypt.key, 16); EnableHWSecurityConfig8192(dev); - //we fill both index entry and 4th entry for pairwise key as in IPW interface, adhoc will only get here, so we need index entry for its default key serching! - //added by WB. + /* We fill both index entry and 4th + * entry for pairwise key as in IPW + * interface, adhoc will only get here, + * so we need index entry for its + * default key serching! + */ setKey(dev, 4, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8 *)ieee->ap_mac_addr, 0, key); if (ieee->auth_mode != 2) setKey(dev, ipw->u.crypt.idx, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8 *)ieee->ap_mac_addr, 0, key); @@ -3507,11 +3531,11 @@ static int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) if (ieee->group_key_type) { setKey(dev, ipw->u.crypt.idx, - ipw->u.crypt.idx, //KeyIndex - ieee->group_key_type, //KeyType - broadcast_addr, //MacAddr - 0, //DefaultKey - key); //KeyContent + ipw->u.crypt.idx, /* KeyIndex */ + ieee->group_key_type, /* KeyType */ + broadcast_addr, /* MacAddr */ + 0, /* DefaultKey */ + key); /* KeyContent */ } } } @@ -3671,13 +3695,11 @@ static void UpdateRxPktTimeStamp8190(struct net_device *dev, } } -//by amy 080606 - -static long rtl819x_translate_todbm(u8 signal_strength_index)// 0-100 index. +static long rtl819x_translate_todbm(u8 signal_strength_index) /* 0-100 index. */ { - long signal_power; // in dBm. + long signal_power; /* in dBm. */ - // Translate to dBm (x=0.5y-95). + /* Translate to dBm (x=0.5y-95). */ signal_power = (long)((signal_strength_index + 1) >> 1); signal_power -= 95; @@ -3685,10 +3707,11 @@ static long rtl819x_translate_todbm(u8 signal_strength_index)// 0-100 index. } -/* 2008/01/22 MH We can not declare RSSI/EVM total value of sliding window to - be a local static. Otherwise, it may increase when we return from S3/S4. The - value will be kept in memory or disk. Declare the value in the adaptor - and it will be reinitialized when returned from S3/S4. */ +/* We can not declare RSSI/EVM total value of sliding window to + * be a local static. Otherwise, it may increase when we return from S3/S4. The + * value will be kept in memory or disk. Declare the value in the adaptor + * and it will be reinitialized when returned from S3/S4. + */ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct ieee80211_rx_stats *pprevious_stats, struct ieee80211_rx_stats *pcurrent_stats) @@ -3710,13 +3733,12 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, sc = le16_to_cpu(hdr->seq_ctl); frag = WLAN_GET_SEQ_FRAG(sc); seq = WLAN_GET_SEQ_SEQ(sc); - //cosa add 04292008 to record the sequence number + /* to record the sequence number */ pcurrent_stats->Seq_Num = seq; - // - // Check whether we should take the previous packet into accounting - // + + /* Check whether we should take the previous packet into accounting */ if (!pprevious_stats->bIsAMPDU) { - // if previous packet is not aggregated packet + /* if previous packet is not aggregated packet */ bcheck = true; } @@ -3731,13 +3753,12 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, if (slide_rssi_index >= PHY_RSSI_SLID_WIN_MAX) slide_rssi_index = 0; - // <1> Showed on UI for user, in dbm + /* <1> Showed on UI for user, in dbm */ tmp_val = priv->stats.slide_rssi_total / slide_rssi_statistics; priv->stats.signal_strength = rtl819x_translate_todbm((u8)tmp_val); pcurrent_stats->rssi = priv->stats.signal_strength; - // - // If the previous packet does not match the criteria, neglect it - // + + /* If the previous packet does not match the criteria, neglect it */ if (!pprevious_stats->bPacketMatchBSSID) { if (!pprevious_stats->bToSelfBA) return; @@ -3747,24 +3768,24 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, return; - //rtl8190_process_cck_rxpathsel(priv,pprevious_stats);//only rtl8190 supported + /* only rtl8190 supported + * rtl8190_process_cck_rxpathsel(priv,pprevious_stats); + */ - // - // Check RSSI - // + /* Check RSSI */ priv->stats.num_process_phyinfo++; /* record the general signal strength to the sliding window. */ - // <2> Showed on UI for engineering - // hardware does not provide rssi information for each rf path in CCK + /* <2> Showed on UI for engineering + * hardware does not provide rssi information for each rf path in CCK + */ if (!pprevious_stats->bIsCCK && (pprevious_stats->bPacketToSelf || pprevious_stats->bToSelfBA)) { for (rfpath = RF90_PATH_A; rfpath < priv->NumTotalRFPath; rfpath++) { if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, rfpath)) continue; - //Fixed by Jacken 2008-03-20 if (priv->stats.rx_rssi_percentage[rfpath] == 0) priv->stats.rx_rssi_percentage[rfpath] = pprevious_stats->RxMIMOSignalStrength[rfpath]; if (pprevious_stats->RxMIMOSignalStrength[rfpath] > priv->stats.rx_rssi_percentage[rfpath]) { @@ -3782,9 +3803,7 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, } - // - // Check PWDB. - // + /* Check PWDB. */ RT_TRACE(COMP_RXDESC, "Smooth %s PWDB = %d\n", pprevious_stats->bIsCCK ? "CCK" : "OFDM", pprevious_stats->RxPWDBAll); @@ -3827,9 +3846,7 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, } - // - // Check EVM - // + /* Check EVM */ /* record the general EVM to the sliding window. */ if (pprevious_stats->SignalQuality) { if (pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) { @@ -3845,14 +3862,14 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, if (slide_evm_index >= PHY_RSSI_SLID_WIN_MAX) slide_evm_index = 0; - // <1> Showed on UI for user, in percentage. + /* <1> Showed on UI for user, in percentage. */ tmp_val = priv->stats.slide_evm_total / slide_evm_statistics; priv->stats.signal_quality = tmp_val; - //cosa add 10/11/2007, Showed on UI for user in Windows Vista, for Link quality. + /* Showed on UI for user in Windows Vista, for Link quality. */ priv->stats.last_signal_strength_inpercent = tmp_val; } - // <2> Showed on UI for engineering + /* <2> Showed on UI for engineering */ if (pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) { for (nspatial_stream = 0; nspatial_stream < 2; nspatial_stream++) { /* 2 spatial stream */ if (pprevious_stats->RxMIMOSignalQuality[nspatial_stream] != -1) { @@ -3912,16 +3929,12 @@ static u8 rtl819x_evm_dbtopercentage(char value) ret_val = 100; return ret_val; } -// -// Description: -// We want good-looking for signal strength/quality -// 2007/7/19 01:09, by cosa. -// +/* We want good-looking for signal strength/quality */ static long rtl819x_signal_scale_mapping(long currsig) { long retsig; - // Step 1. Scale mapping. + /* Step 1. Scale mapping. */ if (currsig >= 61 && currsig <= 100) retsig = 90 + ((currsig - 60) / 4); else if (currsig >= 41 && currsig <= 60) @@ -3989,7 +4002,7 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, is_cck_rate = rx_hal_is_cck_rate(pdrvinfo); - // Record it for next packet processing + /* Record it for next packet processing */ memset(precord_stats, 0, sizeof(struct ieee80211_rx_stats)); pstats->bPacketMatchBSSID = precord_stats->bPacketMatchBSSID = bpacket_match_bssid; pstats->bPacketToSelf = precord_stats->bPacketToSelf = bpacket_toself; @@ -4012,13 +4025,9 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, precord_stats->RxMIMOSignalQuality[1] = -1; if (is_cck_rate) { - // - // (1)Hardware does not provide RSSI for CCK - // + /* (1)Hardware does not provide RSSI for CCK */ - // - // (2)PWDB, Average PWDB cacluated by hardware (for rate adaptive) - // + /* (2)PWDB, Average PWDB cacluated by hardware (for rate adaptive) */ u8 report; priv->stats.numqry_phystatusCCK++; @@ -4027,9 +4036,6 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, report = pcck_buf->cck_agc_rpt & 0xc0; report >>= 6; switch (report) { - //Fixed by Jacken from Bryant 2008-03-20 - //Original value is -38 , -26 , -14 , -2 - //Fixed value is -35 , -23 , -11 , 6 case 0x3: rx_pwr_all = -35 - (pcck_buf->cck_agc_rpt & 0x3e); break; @@ -4066,9 +4072,7 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, pstats->RxPWDBAll = precord_stats->RxPWDBAll = pwdb_all; pstats->RecvSignalPower = pwdb_all; - // - // (3) Get Signal Quality (EVM) - // + /* (3) Get Signal Quality (EVM) */ if (pstats->RxPWDBAll > 40) { sq = 100; @@ -4088,11 +4092,10 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, } else { priv->stats.numqry_phystatusHT++; - // - // (1)Get RSSI for HT rate - // + + /* (1)Get RSSI for HT rate */ for (i = RF90_PATH_A; i < priv->NumTotalRFPath; i++) { - // 2008/01/30 MH we will judge RF RX path now. + /* We will judge RF RX path now. */ if (priv->brfpath_rxenable[i]) rf_rx_num++; else @@ -4101,11 +4104,9 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, i)) continue; - //Fixed by Jacken from Bryant 2008-03-20 - //Original value is 106 rx_pwr[i] = ((pofdm_buf->trsw_gain_X[i] & 0x3F) * 2) - 106; - //Get Rx snr value in DB + /* Get Rx snr value in DB */ tmp_rxsnr = pofdm_buf->rxsnr_X[i]; rx_snrX = (char)(tmp_rxsnr); rx_snrX /= 2; @@ -4121,34 +4122,34 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, } - // - // (2)PWDB, Average PWDB cacluated by hardware (for rate adaptive) - // - //Fixed by Jacken from Bryant 2008-03-20 - //Original value is 106 + /* (2)PWDB, Average PWDB cacluated by hardware + * (for rate adaptive) + */ rx_pwr_all = (((pofdm_buf->pwdb_all) >> 1) & 0x7f) - 106; pwdb_all = rtl819x_query_rxpwrpercentage(rx_pwr_all); pstats->RxPWDBAll = precord_stats->RxPWDBAll = pwdb_all; pstats->RxPower = precord_stats->RxPower = rx_pwr_all; - // - // (3)EVM of HT rate - // + /* (3)EVM of HT rate */ if (pdrvinfo->RxHT && pdrvinfo->RxRate >= DESC90_RATEMCS8 && pdrvinfo->RxRate <= DESC90_RATEMCS15) - max_spatial_stream = 2; //both spatial stream make sense + max_spatial_stream = 2; /* both spatial stream make sense */ else - max_spatial_stream = 1; //only spatial stream 1 makes sense + max_spatial_stream = 1; /* only spatial stream 1 makes sense */ for (i = 0; i < max_spatial_stream; i++) { tmp_rxevm = pofdm_buf->rxevm_X[i]; rx_evmX = (char)(tmp_rxevm); - // Do not use shift operation like "rx_evmX >>= 1" because the compiler of free build environment - // will set the most significant bit to "zero" when doing shifting operation which may change a negative - // value to positive one, then the dbm value (which is supposed to be negative) is not correct anymore. - rx_evmX /= 2; //dbm + /* Do not use shift operation like "rx_evmX >>= 1" + * because the compiler of free build environment will + * set the most significant bit to "zero" when doing + * shifting operation which may change a negative value + * to positive one, then the dbm value (which is + * supposed to be negative) is not correct anymore. + */ + rx_evmX /= 2; /* dbm */ evm = rtl819x_evm_dbtopercentage(rx_evmX); if (i == 0) /* Fill value in RFD, Get the first spatial stream only */ @@ -4162,16 +4163,18 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, prxsc = (phy_ofdm_rx_status_rxsc_sgien_exintfflag *)&rxsc_sgien_exflg; if (pdrvinfo->BW) /* 40M channel */ priv->stats.received_bwtype[1 + prxsc->rxsc]++; - else //20M channel + else /* 20M channel */ priv->stats.received_bwtype[0]++; } - //UI BSS List signal strength(in percentage), make it good looking, from 0~100. - //It is assigned to the BSS List in GetValueFromBeaconOrProbeRsp(). + /* UI BSS List signal strength(in percentage), make it good looking, + * from 0~100. It is assigned to the BSS List in + * GetValueFromBeaconOrProbeRsp(). + */ if (is_cck_rate) { pstats->SignalStrength = precord_stats->SignalStrength = (u8)(rtl819x_signal_scale_mapping((long)pwdb_all)); } else { - // We can judge RX path number now. + /* We can judge RX path number now. */ if (rf_rx_num != 0) pstats->SignalStrength = precord_stats->SignalStrength = (u8)(rtl819x_signal_scale_mapping((long)(total_rssi /= rf_rx_num))); } @@ -4190,17 +4193,19 @@ static void TranslateRxSignalStuff819xUsb(struct sk_buff *skb, struct ieee80211_rx_stats *pstats, rx_drvinfo_819x_usb *pdrvinfo) { - // TODO: We must only check packet for current MAC address. Not finish + /* TODO: We must only check packet for current MAC address. + * Not finish + */ struct rtl8192_rx_info *info = (struct rtl8192_rx_info *)skb->cb; struct net_device *dev = info->dev; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); bool bpacket_match_bssid, bpacket_toself; bool bPacketBeacon = false, bToSelfBA = false; static struct ieee80211_rx_stats previous_stats; - struct rtl_80211_hdr_3addr *hdr;//by amy + struct rtl_80211_hdr_3addr *hdr; u16 fc, type; - // Get Signal Quality for only RX data queue (but not command queue) + /* Get Signal Quality for only RX data queue (but not command queue) */ u8 *tmp_buf; u8 *praddr; @@ -4232,11 +4237,10 @@ static void TranslateRxSignalStuff819xUsb(struct sk_buff *skb, priv->stats.numpacket_matchbssid++; if (bpacket_toself) priv->stats.numpacket_toself++; - // - // Process PHY information for previous packet (RSSI/PWDB/EVM) - // - // Because phy information is contained in the last packet of AMPDU only, so driver - // should process phy information of previous packet + /* Process PHY information for previous packet (RSSI/PWDB/EVM) + * Because phy information is contained in the last packet of AMPDU + * only, so driver should process phy information of previous packet + */ rtl8192_process_phyinfo(priv, tmp_buf, &previous_stats, pstats); rtl8192_query_rxphystatus(priv, pstats, pdrvinfo, &previous_stats, bpacket_match_bssid, bpacket_toself, bPacketBeacon, bToSelfBA); rtl8192_record_rxdesc_forlateruse(pstats, &previous_stats); @@ -4262,9 +4266,9 @@ UpdateReceivedRateHistogramStatistics8190(struct net_device *dev, struct ieee80211_rx_stats *stats) { struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); - u32 rcvType = 1; //0: Total, 1:OK, 2:CRC, 3:ICV + u32 rcvType = 1; /* 0: Total, 1:OK, 2:CRC, 3:ICV */ u32 rateIndex; - u32 preamble_guardinterval; //1: short preamble/GI, 0: long preamble/GI + u32 preamble_guardinterval; /* 1: short preamble/GI, 0: long preamble/GI */ if (stats->bCRC) @@ -4273,9 +4277,9 @@ UpdateReceivedRateHistogramStatistics8190(struct net_device *dev, rcvType = 3; if (stats->bShortPreamble) - preamble_guardinterval = 1;// short + preamble_guardinterval = 1; /* short */ else - preamble_guardinterval = 0;// long + preamble_guardinterval = 0; /* long */ switch (stats->rate) { /* CCK rate */ @@ -4370,7 +4374,7 @@ UpdateReceivedRateHistogramStatistics8190(struct net_device *dev, break; } priv->stats.received_preamble_GI[preamble_guardinterval][rateIndex]++; - priv->stats.received_rate_histogram[0][rateIndex]++; //total + priv->stats.received_rate_histogram[0][rateIndex]++; /* total */ priv->stats.received_rate_histogram[rcvType][rateIndex]++; } @@ -4384,9 +4388,7 @@ static void query_rxdesc_status(struct sk_buff *skb, struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); rx_drvinfo_819x_usb *driver_info = NULL; - // - //Get Rx Descriptor Information - // + /* Get Rx Descriptor Information */ rx_desc_819x_usb *desc = (rx_desc_819x_usb *)skb->data; stats->Length = desc->Length; @@ -4406,11 +4408,10 @@ static void query_rxdesc_status(struct sk_buff *skb, if (stats->Length < 24 || stats->Length > MAX_8192U_RX_SIZE) stats->bHwError |= 1; - // - //Get Driver Info - // - // TODO: Need to verify it on FGPA platform - //Driver info are written to the RxBuffer following rx desc + /* Get Driver Info */ + /* TODO: Need to verify it on FGPA platform + * Driver info are written to the RxBuffer following rx desc + */ if (stats->RxDrvInfoSize != 0) { driver_info = (rx_drvinfo_819x_usb *)(skb->data + sizeof(rx_desc_819x_usb) + stats->RxBufShift); @@ -4420,11 +4421,13 @@ static void query_rxdesc_status(struct sk_buff *skb, u8 ret_rate; ret_rate = HwRateToMRate90(driver_info->RxHT, driver_info->RxRate); if (ret_rate == 0xff) { - // Abnormal Case: Receive CRC OK packet with Rx descriptor indicating non supported rate. - // Special Error Handling here, 2008.05.16, by Emily + /* Abnormal Case: Receive CRC OK packet with Rx + * descriptor indicating non supported rate. + * Special Error Handling here + */ stats->bHwError = 1; - stats->rate = MGN_1M; //Set 1M rate by default + stats->rate = MGN_1M; /* Set 1M rate by default */ } else { stats->rate = ret_rate; } @@ -4440,13 +4443,10 @@ static void query_rxdesc_status(struct sk_buff *skb, stats->bIsAMPDU = (driver_info->PartAggr == 1); stats->bFirstMPDU = (driver_info->PartAggr == 1) && (driver_info->FirstAGGR == 1); stats->TimeStampLow = driver_info->TSFL; - // xiong mask it, 070514 UpdateRxPktTimeStamp8190(dev, stats); - // - // Rx A-MPDU - // + /* Rx A-MPDU */ if (driver_info->FirstAGGR == 1 || driver_info->PartAggr == 1) RT_TRACE(COMP_RXDESC, "driver_info->FirstAGGR = %d, driver_info->PartAggr = %d\n", driver_info->FirstAGGR, driver_info->PartAggr); @@ -4454,9 +4454,7 @@ static void query_rxdesc_status(struct sk_buff *skb, } skb_pull(skb, sizeof(rx_desc_819x_usb)); - // - // Get Total offset of MPDU Frame Body - // + /* Get Total offset of MPDU Frame Body */ if ((stats->RxBufShift + stats->RxDrvInfoSize) > 0) { stats->bShift = 1; skb_pull(skb, stats->RxBufShift + stats->RxDrvInfoSize); @@ -4496,9 +4494,9 @@ static void rtl8192_rx_nomal(struct sk_buff *skb) ieee80211_hdr = (struct rtl_80211_hdr_1addr *)skb->data; unicast_packet = false; if (is_broadcast_ether_addr(ieee80211_hdr->addr1)) { - //TODO + /* TODO */ } else if (is_multicast_ether_addr(ieee80211_hdr->addr1)) { - //TODO + /* TODO */ } else { /* unicast packet */ unicast_packet = true; @@ -4526,20 +4524,20 @@ static void rtl819xusb_process_received_packet(struct net_device *dev, u16 frame_len = 0; struct r8192_priv *priv = ieee80211_priv(dev); - // Get shifted bytes of Starting address of 802.11 header. 2006.09.28, by Emily - //porting by amy 080508 + /* Get shifted bytes of Starting address of 802.11 header. */ pstats->virtual_address += get_rxpacket_shiftbytes_819xusb(pstats); frame = pstats->virtual_address; frame_len = pstats->packetlength; -#ifdef TODO // by amy about HCT +#ifdef TODO /* about HCT */ if (!Adapter->bInHctTest) CountRxErrStatistics(Adapter, pRfd); #endif -#ifdef ENABLE_PS //by amy for adding ps function in future +#ifdef ENABLE_PS /* for adding ps function in future */ RT_RF_POWER_STATE rtState; - // When RF is off, we should not count the packet for hw/sw synchronize - // reason, ie. there may be a duration while sw switch is changed and hw - // switch is being changed. 2006.12.04, by shien chang. + /* When RF is off, we should not count the packet for hw/sw synchronize + * reason, ie. there may be a duration while sw switch is changed and + * hw switch is being changed. + */ Adapter->HalFunc.GetHwRegHandler(Adapter, HW_VAR_RF_STATE, (u8 *)(&rtState)); if (rtState == eRfOff) return; @@ -4549,8 +4547,7 @@ static void rtl819xusb_process_received_packet(struct net_device *dev, #ifdef TODO RmMonitorSignalStrength(Adapter, pRfd); #endif - /* 2007/01/16 MH Add RX command packet handle here. */ - /* 2007/03/01 MH We have to release RFD and return if rx pkt is cmd pkt. */ + /* We have to release RFD and return if rx pkt is cmd pkt. */ if (rtl819xusb_rx_command_packet(dev, pstats)) return; @@ -4566,9 +4563,7 @@ static void query_rx_cmdpkt_desc_status(struct sk_buff *skb, { rx_desc_819x_usb *desc = (rx_desc_819x_usb *)skb->data; - // - //Get Rx Descriptor Information - // + /* Get Rx Descriptor Information */ stats->virtual_address = (u8 *)skb->data; stats->Length = desc->Length; stats->RxDrvInfoSize = 0; @@ -4595,12 +4590,9 @@ static void rtl8192_rx_cmd(struct sk_buff *skb) if ((skb->len >= (20 + sizeof(rx_desc_819x_usb))) && (skb->len < RX_URB_SIZE)) { query_rx_cmdpkt_desc_status(skb, &stats); - // this is to be done by amy 080508 prfd->queue_id = 1; + /* prfd->queue_id = 1; */ - - // - // Process the command packet received. - // + /* Process the command packet received. */ rtl819xusb_process_received_packet(dev, &stats); @@ -4725,7 +4717,7 @@ fail: return ret; } -//detach all the work and timer structure declared or inititialize in r8192U_init function. +/* detach all the work and timer structure declared or inititialize in r8192U_init function. */ static void rtl8192_cancel_deferred_work(struct r8192_priv *priv) { @@ -4839,8 +4831,12 @@ void EnableHWSecurityConfig8192(struct net_device *dev) SECR_value |= SCR_RxUseDK; SECR_value |= SCR_TxUseDK; } - //add HWSec active enable here. - //default using hwsec. when peer AP is in N mode only and pairwise_key_type is none_aes(which HT_IOT_ACT_PURE_N_MODE indicates it), use software security. when peer AP is in b,g,n mode mixed and pairwise_key_type is none_aes, use g mode hw security. WB on 2008.7.4 + /* add HWSec active enable here. + * default using hwsec. when peer AP is in N mode only and + * pairwise_key_type is none_aes(which HT_IOT_ACT_PURE_N_MODE indicates + * it), use software security. when peer AP is in b,g,n mode mixed and + * pairwise_key_type is none_aes, use g mode hw security. + */ ieee->hwsec_active = 1; @@ -4891,7 +4887,7 @@ void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, write_nic_dword(dev, WCAMI, TargetContent); write_nic_dword(dev, RWCAM, TargetCommand); } else { - //Key Material + /* Key Material */ if (KeyContent != NULL) { write_nic_dword(dev, WCAMI, (u32)(*(KeyContent + i - 2))); write_nic_dword(dev, RWCAM, TargetCommand); From 8f94967a4b8ba8f08cec7034e44ec3178e07513c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:09 -0400 Subject: [PATCH 0159/2431] staging: rtl8192u: r8192U_core: include linux/uaccess.h instead of asm/uaccess.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use #include instead of Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 9a658b4e0ce0..2ab0a98039b4 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -58,7 +58,7 @@ double __extendsfdf2(float a) #define CONFIG_RTL8192_IO_MAP -#include +#include #include "r8192U_hw.h" #include "r8192U.h" #include "r8190_rtl8256.h" /* RTL8225 Radio frontend */ From 4c21f566c72594e79d2ec6a48b1c8ff166d476f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:10 -0400 Subject: [PATCH 0160/2431] staging: rtl8192u: r8192U_core: remove return statement of void function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit void function return statement was not useful in this case. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 2ab0a98039b4..90c5907d480d 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -1481,7 +1481,6 @@ static u8 QueryIsShort(u8 TxHT, u8 TxRate, cb_desc *tcb_desc) static void tx_zero_isr(struct urb *tx_urb) { - return; } /* From cf47ca02250d2420e2511853e6f9a1059bf13e04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:11 -0400 Subject: [PATCH 0161/2431] staging: rtl8192u: r8192U_core: fix unecessary braces code style issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit braces {} are not necessary for any arm of a statement containing one statement on each side. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 90c5907d480d..4425335693f4 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -2304,11 +2304,10 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) wEPROM_ID = eprom_read(dev, 0); /* first read EEPROM ID out; */ RT_TRACE(COMP_EPROM, "EEPROM ID is 0x%x\n", wEPROM_ID); - if (wEPROM_ID != RTL8190_EEPROM_ID) { + if (wEPROM_ID != RTL8190_EEPROM_ID) RT_TRACE(COMP_ERR, "EEPROM ID is invalid(is 0x%x(should be 0x%x)\n", wEPROM_ID, RTL8190_EEPROM_ID); - } else { + else bLoad_From_EEPOM = true; - } if (bLoad_From_EEPOM) { tmpValue = eprom_read(dev, EEPROM_VID >> 1); @@ -2496,11 +2495,10 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) } - if (priv->rf_type == RF_1T2R) { + if (priv->rf_type == RF_1T2R) RT_TRACE(COMP_EPROM, "\n1T2R config\n"); - } else { + else RT_TRACE(COMP_EPROM, "\n2T4R config\n"); - } /* We can only know RF type in the function. So we have to init * DIG RATR table again. From b31c1013502848fef8e5ead3d920d46b8b1d1e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:12 -0400 Subject: [PATCH 0162/2431] staging: rtl8192u: r8192U_core: remove forward declarations in .c file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Checkpatch was giving a "externs should be avoided in .c files" because of these forward declarations. As these were not useful in this case, they have been removed. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 4425335693f4..cd14c0a680da 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -1000,9 +1000,6 @@ static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) return ret; } - -void rtl8192_try_wake_queue(struct net_device *dev, int pri); - static void rtl8192_tx_isr(struct urb *tx_urb) { struct sk_buff *skb = (struct sk_buff *)tx_urb->context; @@ -1223,9 +1220,6 @@ inline u8 rtl8192_IsWirelessBMode(u16 rate) return 0; } -u16 N_DBPSOfRate(u16 DataRate); - - u16 N_DBPSOfRate(u16 DataRate) { u16 N_DBPS = 24; From efe8a7fad59f4e157485e91d84210fe7496afa03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:13 -0400 Subject: [PATCH 0163/2431] staging: rtl8192u: r8192U_core: fix unnecessary check before kfree code style issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit kfree(NULL) is safe and the checks were not required. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index cd14c0a680da..d0020f1caa26 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -1724,10 +1724,9 @@ static void rtl8192_usb_deleteendpoints(struct net_device *dev) } kfree(priv->oldaddr); priv->oldaddr = NULL; - if (priv->pp_rxskb) { - kfree(priv->pp_rxskb); - priv->pp_rxskb = NULL; - } + + kfree(priv->pp_rxskb); + priv->pp_rxskb = NULL; } #else void rtl8192_usb_deleteendpoints(struct net_device *dev) @@ -1752,11 +1751,9 @@ void rtl8192_usb_deleteendpoints(struct net_device *dev) priv->rx_urb = NULL; kfree(priv->oldaddr); priv->oldaddr = NULL; - if (priv->pp_rxskb) { - kfree(priv->pp_rxskb); - priv->pp_rxskb = 0; - } + kfree(priv->pp_rxskb); + priv->pp_rxskb = 0; #endif } From 2054df8690ecbcbfd9409adb4bfb3db9c44f8a2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:14 -0400 Subject: [PATCH 0164/2431] staging: rtl8192u: r8192U_core: fix unnecessary parentheses code style issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two sets of parentheses were used to contain the same statement. In those cases, one of them has been removed, as unnecessary. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index d0020f1caa26..88108fb14280 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -1859,7 +1859,7 @@ static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv, if (priv->ieee80211->state != IEEE80211_LINKED) return ret; - if ((priv->ieee80211->iw_mode != IW_MODE_INFRA)) + if (priv->ieee80211->iw_mode != IW_MODE_INFRA) return ret; if (network->flags & NETWORK_HAS_QOS_MASK) { @@ -1923,7 +1923,7 @@ static int rtl8192_qos_association_resp(struct r8192_priv *priv, if (priv->ieee80211->state != IEEE80211_LINKED) return 0; - if ((priv->ieee80211->iw_mode != IW_MODE_INFRA)) + if (priv->ieee80211->iw_mode != IW_MODE_INFRA) return 0; spin_lock_irqsave(&priv->ieee80211->lock, flags); From 9647a6d534f2f8f2570d0871e42dee4177b3af27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:15 -0400 Subject: [PATCH 0165/2431] staging: rtl8192u: r8192U_core: fix unnecessary else after return code style issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An else statement is not useful after a return. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 31 ++++++++++++-------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 88108fb14280..21173b12d4ad 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -988,8 +988,6 @@ static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) skb_push(skb, USB_HWDESC_HEADER_LEN); rtl819xU_tx_cmd(dev, skb); ret = 1; - spin_unlock_irqrestore(&priv->tx_lock, flags); - return ret; } else { skb_push(skb, priv->ieee80211->tx_headroom); ret = rtl8192_tx(dev, skb); @@ -1300,12 +1298,11 @@ short rtl819xU_tx_cmd(struct net_device *dev, struct sk_buff *skb) status = usb_submit_urb(tx_urb, GFP_ATOMIC); - if (!status) { + if (!status) return 0; - } else { - DMESGE("Error TX CMD URB, error %d", status); - return -1; - } + + DMESGE("Error TX CMD URB, error %d", status); + return -1; } /* @@ -1644,11 +1641,11 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) dev->trans_start = jiffies; atomic_inc(&priv->tx_pending[tcb_desc->queue_index]); return 0; - } else { - RT_TRACE(COMP_ERR, "Error TX URB %d, error %d", atomic_read(&priv->tx_pending[tcb_desc->queue_index]), - status); - return -1; } + + RT_TRACE(COMP_ERR, "Error TX URB %d, error %d", atomic_read(&priv->tx_pending[tcb_desc->queue_index]), + status); + return -1; } static short rtl8192_usb_initendpoints(struct net_device *dev) @@ -2924,20 +2921,20 @@ static bool HalRxCheckStuck819xUsb(struct net_device *dev) (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_20M))) { if (rx_chk_cnt < 2) return bStuck; - else - rx_chk_cnt = 0; + + rx_chk_cnt = 0; } else if (((priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb < RateAdaptiveTH_Low_40M) || (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb < RateAdaptiveTH_Low_20M)) && priv->undecorated_smoothed_pwdb >= VeryLowRSSI) { if (rx_chk_cnt < 4) return bStuck; - else - rx_chk_cnt = 0; + + rx_chk_cnt = 0; } else { if (rx_chk_cnt < 8) return bStuck; - else - rx_chk_cnt = 0; + + rx_chk_cnt = 0; } if (priv->RxCounter == RegRxCounter) From 25e4b9d586f18f8a603ab0fae4ef61fd178e143e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:16 -0400 Subject: [PATCH 0166/2431] staging: rtl8192u: r8192U_core: fix unnecessary whitespace code style issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Whitespaces are not necessary before a quoted newline. Remove those. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 21173b12d4ad..b471b3306cc4 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -1350,7 +1350,7 @@ static u8 MapHwQueueToFirmwareQueue(u8 QueueID) break; default: - RT_TRACE(COMP_ERR, "TransmitTCB(): Impossible Queue Selection: %d \n", QueueID); + RT_TRACE(COMP_ERR, "TransmitTCB(): Impossible Queue Selection: %d\n", QueueID); break; } return QueueSelect; @@ -1880,7 +1880,7 @@ static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv, if ((network->qos_data.active == 1) && (active_network == 1)) { queue_work(priv->priv_wq, &priv->qos_activate); - RT_TRACE(COMP_QOS, "QoS was disabled call qos_activate \n"); + RT_TRACE(COMP_QOS, "QoS was disabled call qos_activate\n"); } network->qos_data.active = 0; network->qos_data.supported = 0; @@ -2895,7 +2895,7 @@ static RESET_TYPE TxCheckStuck(struct net_device *dev) } if (bCheckFwTxCnt) { if (HalTxCheckStuck819xUsb(dev)) { - RT_TRACE(COMP_RESET, "TxCheckStuck(): Fw indicates no Tx condition! \n"); + RT_TRACE(COMP_RESET, "TxCheckStuck(): Fw indicates no Tx condition!\n"); return RESET_TYPE_SILENT; } } @@ -3032,7 +3032,7 @@ static void CamRestoreAllEntry(struct net_device *dev) static u8 CAM_CONST_BROAD[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - RT_TRACE(COMP_SEC, "CamRestoreAllEntry: \n"); + RT_TRACE(COMP_SEC, "CamRestoreAllEntry:\n"); if ((priv->ieee80211->pairwise_key_type == KEY_TYPE_WEP40) || @@ -3107,7 +3107,7 @@ static void rtl819x_ifsilentreset(struct net_device *dev) if (priv->ResetProgress == RESET_TYPE_NORESET) { RESET_START: - RT_TRACE(COMP_RESET, "=========>Reset progress!! \n"); + RT_TRACE(COMP_RESET, "=========>Reset progress!!\n"); /* Set the variable for reset. */ priv->ResetProgress = RESET_TYPE_SILENT; @@ -3783,7 +3783,7 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, ((priv->stats.rx_rssi_percentage[rfpath] * (Rx_Smooth_Factor - 1)) + (pprevious_stats->RxMIMOSignalStrength[rfpath])) / (Rx_Smooth_Factor); } - RT_TRACE(COMP_DBG, "priv->stats.rx_rssi_percentage[rfPath] = %d \n", priv->stats.rx_rssi_percentage[rfpath]); + RT_TRACE(COMP_DBG, "priv->stats.rx_rssi_percentage[rfPath] = %d\n", priv->stats.rx_rssi_percentage[rfpath]); } } From 7b25c24e3f2743689c1578e2efeb249fd89c5faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:17 -0400 Subject: [PATCH 0167/2431] staging: rtl8192u: r8192U_core: fix missing blank line after declarations code style issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds whitespaces to separate the variables declarations and the function content. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 44 ++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index b471b3306cc4..88b11e87882f 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -160,6 +160,7 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) { int i, max_chan = -1, min_chan = -1; struct ieee80211_device *ieee = priv->ieee80211; + switch (channel_plan) { case COUNTRY_CODE_FCC: case COUNTRY_CODE_IC: @@ -428,6 +429,7 @@ static int proc_get_stats_ap(struct seq_file *m, void *v) list_for_each_entry(target, &ieee->network_list, list) { const char *wpa = "non_WPA"; + if (target->wpa_ie_len > 0 || target->rsn_ie_len > 0) wpa = "WPA"; @@ -674,6 +676,7 @@ void rtl8192_update_msr(struct net_device *dev) void rtl8192_set_chan(struct net_device *dev, short ch) { struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); + RT_TRACE(COMP_CH, "=====>%s()====ch:%d\n", __func__, ch); priv->chan = ch; @@ -879,8 +882,10 @@ static void rtl8192_rx_isr(struct urb *urb) struct r8192_priv *priv = ieee80211_priv(dev); int out_pipe = info->out_pipe; int err; + if (!priv->up) return; + if (unlikely(urb->status)) { info->urb = NULL; priv->stats.rxstaterr++; @@ -1058,6 +1063,7 @@ static void rtl8192_config_rate(struct net_device *dev, u16 *rate_config) struct r8192_priv *priv = ieee80211_priv(dev); struct ieee80211_network *net; u8 i = 0, basic_rate = 0; + net = &priv->ieee80211->current_network; for (i = 0; i < net->rates_len; i++) { @@ -1153,6 +1159,7 @@ static void rtl8192_update_cap(struct net_device *dev, u16 cap) u32 tmp = 0; struct r8192_priv *priv = ieee80211_priv(dev); struct ieee80211_network *net = &priv->ieee80211->current_network; + priv->short_preamble = cap & WLAN_CAPABILITY_SHORT_PREAMBLE; tmp = priv->basic_rate; if (priv->short_preamble) @@ -1161,6 +1168,7 @@ static void rtl8192_update_cap(struct net_device *dev, u16 cap) if (net->mode & (IEEE_G | IEEE_N_24G)) { u8 slot_time = 0; + if ((cap & WLAN_CAPABILITY_SHORT_SLOT) && (!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) /* short slot time */ slot_time = SHORT_SLOT_TIME; else /* long slot time */ @@ -1177,6 +1185,7 @@ static void rtl8192_net_update(struct net_device *dev) struct ieee80211_network *net; u16 BcnTimeCfg = 0, BcnCW = 6, BcnIFS = 0xf; u16 rate_config = 0; + net = &priv->ieee80211->current_network; rtl8192_config_rate(dev, &rate_config); @@ -1490,6 +1499,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) int status; struct urb *tx_urb = NULL, *tx_urb_zero = NULL; unsigned int idx_pipe; + pend = atomic_read(&priv->tx_pending[tcb_desc->queue_index]); /* we are locked here so the two atomic_read and inc are executed * without interleaves @@ -1616,6 +1626,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) */ bool bSend0Byte = false; u8 zero = 0; + if (udev->speed == USB_SPEED_HIGH) { if (skb->len > 0 && skb->len % 512 == 0) bSend0Byte = true; @@ -1761,6 +1772,7 @@ static void rtl8192_link_change(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); struct ieee80211_device *ieee = priv->ieee80211; + if (ieee->state == IEEE80211_LINKED) { rtl8192_net_update(dev); rtl8192_update_ratr_table(dev); @@ -1774,6 +1786,7 @@ static void rtl8192_link_change(struct net_device *dev) /*update timing params*/ if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC) { u32 reg = 0; + read_nic_dword(dev, RCR, ®); if (priv->ieee80211->state == IEEE80211_LINKED) priv->ReceiveConfig = reg |= RCR_CBSSID; @@ -1959,6 +1972,7 @@ static int rtl8192_handle_assoc_response(struct net_device *dev, struct ieee80211_network *network) { struct r8192_priv *priv = ieee80211_priv(dev); + rtl8192_qos_association_resp(priv, network); return 0; } @@ -1971,6 +1985,7 @@ static void rtl8192_update_ratr_table(struct net_device *dev) u8 *pMcsRate = ieee->dot11HTOperationalRateSet; u32 ratr_value = 0; u8 rate_index = 0; + rtl8192_config_rate(dev, (u16 *)(&ratr_value)); ratr_value |= (*(u16 *)(pMcsRate)) << 12; switch (ieee->mode) { @@ -2063,6 +2078,7 @@ static u8 rtl8192_getSupportedWireleeMode(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); u8 ret = 0; + switch (priv->rf_chip) { case RF_8225: case RF_8256: @@ -2117,6 +2133,7 @@ static void rtl8192_init_priv_variable(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); u8 i; + priv->card_8192 = NIC_8192U; priv->chan = 1; /* set to channel 1 */ priv->ieee80211->mode = WIRELESS_MODE_AUTO; /* SET AUTO */ @@ -2263,6 +2280,7 @@ static void rtl8192_get_eeprom_size(struct net_device *dev) { u16 curCR = 0; struct r8192_priv *priv = ieee80211_priv(dev); + RT_TRACE(COMP_EPROM, "===========>%s()\n", __func__); read_nic_word_E(dev, EPROM_CMD, &curCR); RT_TRACE(COMP_EPROM, "read from Reg EPROM_CMD(%x):%x\n", EPROM_CMD, curCR); @@ -2288,6 +2306,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) struct r8192_priv *priv = ieee80211_priv(dev); u16 tmpValue = 0; int i; + RT_TRACE(COMP_EPROM, "===========>%s()\n", __func__); wEPROM_ID = eprom_read(dev, 0); /* first read EEPROM ID out; */ RT_TRACE(COMP_EPROM, "EEPROM ID is 0x%x\n", wEPROM_ID); @@ -2317,8 +2336,10 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) priv->ChannelPlan = priv->eeprom_ChannelPlan; if (bLoad_From_EEPOM) { int i; + for (i = 0; i < 6; i += 2) { u16 tmp = 0; + tmp = eprom_read(dev, (u16)((EEPROM_NODE_ADDRESS_BYTE_0 + i) >> 1)); *(u16 *)(&dev->dev_addr[i]) = tmp; } @@ -2365,6 +2386,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) RT_TRACE(COMP_EPROM, "EEPROM_DEF_VER:%d\n", priv->EEPROM_Def_Ver); if (priv->EEPROM_Def_Ver == 0) { /* old eeprom definition */ int i; + if (bLoad_From_EEPOM) priv->EEPROMTxPowerLevelCCK = (eprom_read(dev, (EEPROM_TxPwIndex_CCK >> 1)) & 0xff) >> 8; else @@ -2499,6 +2521,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) static short rtl8192_get_channel_map(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); + if (priv->ChannelPlan > COUNTRY_CODE_GLOBAL_DOMAIN) { netdev_err(dev, "rtl8180_init: Error channel plan! Set to default.\n"); priv->ChannelPlan = 0; @@ -2520,11 +2543,13 @@ static short rtl8192_init(struct net_device *dev) { int i = 0; u8 queuetopipe[] = {3, 2, 1, 0, 4, 8, 7, 6, 5}; + memcpy(priv->txqueue_to_outpipemap, queuetopipe, 9); } #else { u8 queuetopipe[] = {3, 2, 1, 0, 4, 4, 0, 4, 4}; + memcpy(priv->txqueue_to_outpipemap, queuetopipe, 9); } #endif @@ -2640,6 +2665,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) bool init_status = true; u8 SECR_value = 0x0; u8 tmp; + RT_TRACE(COMP_INIT, "====>%s()\n", __func__); priv->Rf_Mode = RF_OP_By_SW_3wire; /* for ASIC power on sequence */ @@ -2730,6 +2756,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) #define DEFAULT_EDCA 0x005e4332 { int i; + for (i = 0; i < QOS_QUEUE_NUM; i++) write_nic_dword(dev, WDCAPARA_ADD[i], DEFAULT_EDCA); } @@ -2800,6 +2827,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) if (priv->ResetProgress == RESET_TYPE_NORESET) { /* if D or C cut */ u8 tmpvalue; + read_nic_byte(dev, 0x301, &tmpvalue); if (tmpvalue == 0x03) { priv->bDcut = true; @@ -2813,6 +2841,7 @@ static bool rtl8192_adapter_start(struct net_device *dev) if (priv->bDcut) { u32 i, TempCCk; u32 tmpRegA = rtl8192_QueryBBReg(dev, rOFDM0_XATxIQImbalance, bMaskDWord); + for (i = 0; i < TxBBGainTableLength; i++) { if (tmpRegA == priv->txbbgain_table[i].txbbgain_value) { priv->rfa_txpowertrackingindex = (u8)i; @@ -2863,6 +2892,7 @@ static bool HalTxCheckStuck819xUsb(struct net_device *dev) struct r8192_priv *priv = ieee80211_priv(dev); u16 RegTxCounter; bool bStuck = false; + read_nic_word(dev, 0x128, &RegTxCounter); RT_TRACE(COMP_RESET, "%s():RegTxCounter is %d,TxCounter is %d\n", __func__, RegTxCounter, priv->TxCounter); if (priv->TxCounter == RegTxCounter) @@ -2908,6 +2938,7 @@ static bool HalRxCheckStuck819xUsb(struct net_device *dev) struct r8192_priv *priv = ieee80211_priv(dev); bool bStuck = false; static u8 rx_chk_cnt; + read_nic_word(dev, 0x130, &RegRxCounter); RT_TRACE(COMP_RESET, "%s(): RegRxCounter is %d,RxCounter is %d\n", __func__, RegRxCounter, priv->RxCounter); /* If rssi is small, we should check rx for long time because of bad rx. @@ -3271,6 +3302,7 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) static void watch_dog_timer_callback(unsigned long data) { struct r8192_priv *priv = ieee80211_priv((struct net_device *)data); + queue_delayed_work(priv->priv_wq, &priv->watch_dog_wq, 0); mod_timer(&priv->watch_dog_timer, jiffies + MSECS(IEEE80211_WATCH_DOG_TIME)); } @@ -3278,6 +3310,7 @@ static int _rtl8192_up(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); int init_status = 0; + priv->up = 1; priv->ieee80211->ieee_up = 1; RT_TRACE(COMP_INIT, "Bringing up iface"); @@ -3306,6 +3339,7 @@ static int rtl8192_open(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); int ret; + down(&priv->wx_sem); ret = rtl8192_up(dev); up(&priv->wx_sem); @@ -3386,6 +3420,7 @@ void rtl8192_commit(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); int reset_status = 0; + if (priv->up == 0) return; priv->up = 0; @@ -3714,6 +3749,7 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct rtl_80211_hdr_3addr *hdr; u16 sc; unsigned int frag, seq; + hdr = (struct rtl_80211_hdr_3addr *)buffer; sc = le16_to_cpu(hdr->seq_ctl); frag = WLAN_GET_SEQ_FRAG(sc); @@ -4404,6 +4440,7 @@ static void query_rxdesc_status(struct sk_buff *skb, /* TODO */ if (!stats->bHwError) { u8 ret_rate; + ret_rate = HwRateToMRate90(driver_info->RxHT, driver_info->RxRate); if (ret_rate == 0xff) { /* Abnormal Case: Receive CRC OK packet with Rx @@ -4642,6 +4679,7 @@ static int rtl8192_usb_probe(struct usb_interface *intf, struct r8192_priv *priv = NULL; struct usb_device *udev = interface_to_usbdev(intf); int ret; + RT_TRACE(COMP_INIT, "Oops: i'm coming\n"); dev = alloc_ieee80211(sizeof(struct r8192_priv)); @@ -4716,10 +4754,9 @@ static void rtl8192_cancel_deferred_work(struct r8192_priv *priv) static void rtl8192_usb_disconnect(struct usb_interface *intf) { struct net_device *dev = usb_get_intfdata(intf); - struct r8192_priv *priv = ieee80211_priv(dev); - if (dev) { + if (dev) { unregister_netdev(dev); RT_TRACE(COMP_DOWN, "=============>wlan driver to be removed\n"); @@ -4731,7 +4768,6 @@ static void rtl8192_usb_disconnect(struct usb_interface *intf) rtl8192_usb_deleteendpoints(dev); destroy_workqueue(priv->priv_wq); mdelay(10); - } free_ieee80211(dev); RT_TRACE(COMP_DOWN, "wlan driver removed\n"); @@ -4808,6 +4844,7 @@ void EnableHWSecurityConfig8192(struct net_device *dev) u8 SECR_value = 0x0; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct ieee80211_device *ieee = priv->ieee80211; + SECR_value = SCR_TxEncEnable | SCR_RxDecEnable; if (((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) && (priv->ieee80211->auth_mode != 2)) { SECR_value |= SCR_RxUseDK; @@ -4842,6 +4879,7 @@ void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, u32 TargetContent = 0; u16 usConfig = 0; u8 i; + if (EntryNo >= TOTAL_CAM_ENTRY) RT_TRACE(COMP_ERR, "cam entry exceeds in setKey()\n"); From 85a22e42f5929bdcc65b90c0c13c741f5783864b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Tue, 18 Aug 2015 12:58:18 -0400 Subject: [PATCH 0168/2431] staging: rtl8192u: r8192U_core: fix quoted string split across lines code style issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quoted strings should not be split to help text grep in the source. All quoted strings that were split have thus been merged to one unique quoted string each to follow the code style. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 88b11e87882f..76255cb09617 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -611,8 +611,8 @@ static void rtl8192_proc_init_one(struct net_device *dev) for (f = rtl8192_proc_files; f->name[0]; f++) { if (!proc_create_data(f->name, S_IFREG | S_IRUGO, dir, &rtl8192_proc_fops, f->show)) { - RT_TRACE(COMP_ERR, "Unable to initialize " - "/proc/net/rtl8192/%s/%s\n", + RT_TRACE(COMP_ERR, + "Unable to initialize /proc/net/rtl8192/%s/%s\n", dev->name, f->name); return; } @@ -1884,8 +1884,8 @@ static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv, network->qos_data.old_param_count = network->qos_data.param_count; queue_work(priv->priv_wq, &priv->qos_activate); - RT_TRACE(COMP_QOS, "QoS parameters change call " - "qos_activate\n"); + RT_TRACE(COMP_QOS, + "QoS parameters change call qos_activate\n"); } } else { memcpy(&priv->ieee80211->current_network.qos_data.parameters, From 4a1a838362a0ddbb847855e2a6918c2efcb54de2 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Wed, 2 Sep 2015 18:46:42 -0700 Subject: [PATCH 0169/2431] staging/fbtft : Remove FSF mailing address checkpatch.pl recommends that this is no longer required. Also replaces ASCII-art copyright notice with simple text Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_bd663474.c | 4 ---- drivers/staging/fbtft/fb_hx8340bn.c | 4 ---- drivers/staging/fbtft/fb_hx8347d.c | 4 ---- drivers/staging/fbtft/fb_hx8353d.c | 4 ---- drivers/staging/fbtft/fb_hx8357d.c | 3 --- drivers/staging/fbtft/fb_ili9320.c | 4 ---- drivers/staging/fbtft/fb_ili9325.c | 4 ---- drivers/staging/fbtft/fb_ili9340.c | 4 ---- drivers/staging/fbtft/fb_ili9341.c | 4 ---- drivers/staging/fbtft/fb_ili9481.c | 4 ---- drivers/staging/fbtft/fb_ili9486.c | 4 ---- drivers/staging/fbtft/fb_pcd8544.c | 4 ---- drivers/staging/fbtft/fb_ra8875.c | 24 ++++-------------------- drivers/staging/fbtft/fb_s6d02a1.c | 4 ---- drivers/staging/fbtft/fb_s6d1121.c | 4 ---- drivers/staging/fbtft/fb_ssd1289.c | 4 ---- drivers/staging/fbtft/fb_ssd1306.c | 4 ---- drivers/staging/fbtft/fb_st7735r.c | 4 ---- drivers/staging/fbtft/fb_tinylcd.c | 4 ---- drivers/staging/fbtft/fb_tls8204.c | 4 ---- drivers/staging/fbtft/fb_uc1701.c | 4 ---- drivers/staging/fbtft/fb_upd161704.c | 4 ---- drivers/staging/fbtft/fb_watterott.c | 4 ---- drivers/staging/fbtft/fbtft-core.c | 4 ---- drivers/staging/fbtft/fbtft.h | 4 ---- drivers/staging/fbtft/fbtft_device.c | 4 ---- 26 files changed, 4 insertions(+), 119 deletions(-) diff --git a/drivers/staging/fbtft/fb_bd663474.c b/drivers/staging/fbtft/fb_bd663474.c index 17a2162a7e5b..deb069f88a5b 100644 --- a/drivers/staging/fbtft/fb_bd663474.c +++ b/drivers/staging/fbtft/fb_bd663474.c @@ -16,10 +16,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c index 54528aa0c0ef..c5b2e5178991 100644 --- a/drivers/staging/fbtft/fb_hx8340bn.c +++ b/drivers/staging/fbtft/fb_hx8340bn.c @@ -17,10 +17,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c index 03ae95b4f79e..42fed64ccfe0 100644 --- a/drivers/staging/fbtft/fb_hx8347d.c +++ b/drivers/staging/fbtft/fb_hx8347d.c @@ -14,10 +14,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_hx8353d.c b/drivers/staging/fbtft/fb_hx8353d.c index d7f4308e1249..79e7ebc90368 100644 --- a/drivers/staging/fbtft/fb_hx8353d.c +++ b/drivers/staging/fbtft/fb_hx8353d.c @@ -13,10 +13,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_hx8357d.c b/drivers/staging/fbtft/fb_hx8357d.c index 8c7bb3ac8030..1b0a29d879af 100644 --- a/drivers/staging/fbtft/fb_hx8357d.c +++ b/drivers/staging/fbtft/fb_hx8357d.c @@ -16,9 +16,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include diff --git a/drivers/staging/fbtft/fb_ili9320.c b/drivers/staging/fbtft/fb_ili9320.c index ef4fa6b72c79..edcd79c57835 100644 --- a/drivers/staging/fbtft/fb_ili9320.c +++ b/drivers/staging/fbtft/fb_ili9320.c @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_ili9325.c b/drivers/staging/fbtft/fb_ili9325.c index 19d254e9a420..5f38e7871dc9 100644 --- a/drivers/staging/fbtft/fb_ili9325.c +++ b/drivers/staging/fbtft/fb_ili9325.c @@ -14,10 +14,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_ili9340.c b/drivers/staging/fbtft/fb_ili9340.c index 0f4a42f89e5e..68acfe064731 100644 --- a/drivers/staging/fbtft/fb_ili9340.c +++ b/drivers/staging/fbtft/fb_ili9340.c @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_ili9341.c b/drivers/staging/fbtft/fb_ili9341.c index 709492e560b6..18389726f085 100644 --- a/drivers/staging/fbtft/fb_ili9341.c +++ b/drivers/staging/fbtft/fb_ili9341.c @@ -18,10 +18,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_ili9481.c b/drivers/staging/fbtft/fb_ili9481.c index 8bae09c2d5ce..e176c87e0654 100644 --- a/drivers/staging/fbtft/fb_ili9481.c +++ b/drivers/staging/fbtft/fb_ili9481.c @@ -13,10 +13,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_ili9486.c b/drivers/staging/fbtft/fb_ili9486.c index dd4ddca384ad..5a3fc89f478d 100644 --- a/drivers/staging/fbtft/fb_ili9486.c +++ b/drivers/staging/fbtft/fb_ili9486.c @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_pcd8544.c b/drivers/staging/fbtft/fb_pcd8544.c index 15da0ec77513..ab208b8c93d7 100644 --- a/drivers/staging/fbtft/fb_pcd8544.c +++ b/drivers/staging/fbtft/fb_pcd8544.c @@ -15,10 +15,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c index 54bc566b09fd..eaac112b19cd 100644 --- a/drivers/staging/fbtft/fb_ra8875.c +++ b/drivers/staging/fbtft/fb_ra8875.c @@ -1,19 +1,7 @@ -/****************************************************************************** - - ProjectName: FBTFT driver ***** ***** - for the RA8875 LCD Controller * * ************ - * ** ** * * - Copyright © by Pf@nne & NOTRO * * * * * **** * - * * * * * * * - Last modification by: * * * * **** * - - Pf@nne (pf@nne-mail.de) * * ***** * - * * * ******* - ***** * * - Date : 10.06.2014 * * - Version : V1.13 ***** - Revision : 5 - -******************************************************************************* +/* + * FBTFT driver for the RA8875 LCD Controller + * Copyright by Pf@nne & NOTRO + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -23,10 +11,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_s6d02a1.c b/drivers/staging/fbtft/fb_s6d02a1.c index f3302525ec00..4b27378e77d1 100644 --- a/drivers/staging/fbtft/fb_s6d02a1.c +++ b/drivers/staging/fbtft/fb_s6d02a1.c @@ -13,10 +13,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_s6d1121.c b/drivers/staging/fbtft/fb_s6d1121.c index 2e1b72ad54aa..0cdde022804a 100644 --- a/drivers/staging/fbtft/fb_s6d1121.c +++ b/drivers/staging/fbtft/fb_s6d1121.c @@ -16,10 +16,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_ssd1289.c b/drivers/staging/fbtft/fb_ssd1289.c index 17a77e061498..c5f996e9b460 100644 --- a/drivers/staging/fbtft/fb_ssd1289.c +++ b/drivers/staging/fbtft/fb_ssd1289.c @@ -14,10 +14,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_ssd1306.c b/drivers/staging/fbtft/fb_ssd1306.c index 15ee44dd130b..fed5961219c7 100644 --- a/drivers/staging/fbtft/fb_ssd1306.c +++ b/drivers/staging/fbtft/fb_ssd1306.c @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c index f65224318610..3628836296d6 100644 --- a/drivers/staging/fbtft/fb_st7735r.c +++ b/drivers/staging/fbtft/fb_st7735r.c @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_tinylcd.c b/drivers/staging/fbtft/fb_tinylcd.c index 4c740b7e9f53..78dfb3a19bac 100644 --- a/drivers/staging/fbtft/fb_tinylcd.c +++ b/drivers/staging/fbtft/fb_tinylcd.c @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_tls8204.c b/drivers/staging/fbtft/fb_tls8204.c index 3253a25e9184..b4b80d7de13c 100644 --- a/drivers/staging/fbtft/fb_tls8204.c +++ b/drivers/staging/fbtft/fb_tls8204.c @@ -16,10 +16,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_uc1701.c b/drivers/staging/fbtft/fb_uc1701.c index 26d669b57916..90a840823c72 100644 --- a/drivers/staging/fbtft/fb_uc1701.c +++ b/drivers/staging/fbtft/fb_uc1701.c @@ -15,10 +15,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_upd161704.c b/drivers/staging/fbtft/fb_upd161704.c index 176c2106d724..04802af9814d 100644 --- a/drivers/staging/fbtft/fb_upd161704.c +++ b/drivers/staging/fbtft/fb_upd161704.c @@ -16,10 +16,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c index 88fb2c0132d5..33c21f108184 100644 --- a/drivers/staging/fbtft/fb_watterott.c +++ b/drivers/staging/fbtft/fb_watterott.c @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 23392eb6799e..63696fe3b59d 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -14,10 +14,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h index 7e9a506d65f9..379f6623088f 100644 --- a/drivers/staging/fbtft/fbtft.h +++ b/drivers/staging/fbtft/fbtft.h @@ -10,10 +10,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __LINUX_FBTFT_H diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index fa916e88d549..ee43ad289230 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -11,10 +11,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include From e7f506bd0e2db2cc67da6e16776cf54aeb827999 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:10 +0300 Subject: [PATCH 0170/2431] staging: fbtft: remove unused bl_ops from fbtft_unregister_backlight The only usage of bl_ops variable in fbtft_unregister_backlight function was assigment of a value to that variable, therefore the assignment and the variable itself can be safely removed Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft-core.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 63696fe3b59d..95aaf778fc8e 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -266,14 +266,11 @@ static int fbtft_backlight_get_brightness(struct backlight_device *bd) void fbtft_unregister_backlight(struct fbtft_par *par) { - const struct backlight_ops *bl_ops; - fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s()\n", __func__); if (par->info->bl_dev) { par->info->bl_dev->props.power = FB_BLANK_POWERDOWN; backlight_update_status(par->info->bl_dev); - bl_ops = par->info->bl_dev->ops; backlight_device_unregister(par->info->bl_dev); par->info->bl_dev = NULL; } From c18d116d9215d28736f6346f95127b53c7892376 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:11 +0300 Subject: [PATCH 0171/2431] staging: fbtft: fbtft-core: define backlight_ops statically instead of devm_kzalloc'ing them Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft-core.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 95aaf778fc8e..a72e046f4fb4 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -276,11 +276,15 @@ void fbtft_unregister_backlight(struct fbtft_par *par) } } +static const struct backlight_ops fbtft_bl_ops = { + .get_brightness = fbtft_backlight_get_brightness, + .update_status = fbtft_backlight_update_status, +}; + void fbtft_register_backlight(struct fbtft_par *par) { struct backlight_device *bd; struct backlight_properties bl_props = { 0, }; - struct backlight_ops *bl_ops; fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s()\n", __func__); @@ -290,13 +294,6 @@ void fbtft_register_backlight(struct fbtft_par *par) return; } - bl_ops = devm_kzalloc(par->info->device, sizeof(struct backlight_ops), - GFP_KERNEL); - if (!bl_ops) - return; - - bl_ops->get_brightness = fbtft_backlight_get_brightness; - bl_ops->update_status = fbtft_backlight_update_status; bl_props.type = BACKLIGHT_RAW; /* Assume backlight is off, get polarity from current state of pin */ bl_props.power = FB_BLANK_POWERDOWN; @@ -304,7 +301,7 @@ void fbtft_register_backlight(struct fbtft_par *par) bl_props.state |= BL_CORE_DRIVER1; bd = backlight_device_register(dev_driver_string(par->info->device), - par->info->device, par, bl_ops, &bl_props); + par->info->device, par, &fbtft_bl_ops, &bl_props); if (IS_ERR(bd)) { dev_err(par->info->device, "cannot register backlight device (%ld)\n", From ed20c6fbf76bdbc326960be621caebfdce92a2c6 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:12 +0300 Subject: [PATCH 0172/2431] staging: fbtft: fbtft_request_gpios: reduce nesting Returning immediately if no platform_data or platform_data->gpios is specified reduceis code nesting Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft-core.c | 51 +++++++++++++++--------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index a72e046f4fb4..d2f547e0ddbe 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -123,33 +123,34 @@ static int fbtft_request_gpios(struct fbtft_par *par) unsigned long flags; int ret; - if (pdata && pdata->gpios) { - gpio = pdata->gpios; - while (gpio->name[0]) { - flags = FBTFT_GPIO_NO_MATCH; - /* if driver provides match function, try it first, - if no match use our own */ - if (par->fbtftops.request_gpios_match) - flags = par->fbtftops.request_gpios_match(par, gpio); - if (flags == FBTFT_GPIO_NO_MATCH) - flags = fbtft_request_gpios_match(par, gpio); - if (flags != FBTFT_GPIO_NO_MATCH) { - ret = devm_gpio_request_one(par->info->device, - gpio->gpio, flags, - par->info->device->driver->name); - if (ret < 0) { - dev_err(par->info->device, - "%s: gpio_request_one('%s'=%d) failed with %d\n", - __func__, gpio->name, - gpio->gpio, ret); - return ret; - } - fbtft_par_dbg(DEBUG_REQUEST_GPIOS, par, - "%s: '%s' = GPIO%d\n", - __func__, gpio->name, gpio->gpio); + if (!(pdata && pdata->gpios)) + return 0; + + gpio = pdata->gpios; + while (gpio->name[0]) { + flags = FBTFT_GPIO_NO_MATCH; + /* if driver provides match function, try it first, + if no match use our own */ + if (par->fbtftops.request_gpios_match) + flags = par->fbtftops.request_gpios_match(par, gpio); + if (flags == FBTFT_GPIO_NO_MATCH) + flags = fbtft_request_gpios_match(par, gpio); + if (flags != FBTFT_GPIO_NO_MATCH) { + ret = devm_gpio_request_one(par->info->device, + gpio->gpio, flags, + par->info->device->driver->name); + if (ret < 0) { + dev_err(par->info->device, + "%s: gpio_request_one('%s'=%d) failed with %d\n", + __func__, gpio->name, + gpio->gpio, ret); + return ret; } - gpio++; + fbtft_par_dbg(DEBUG_REQUEST_GPIOS, par, + "%s: '%s' = GPIO%d\n", + __func__, gpio->name, gpio->gpio); } + gpio++; } return 0; From 23801e3438f6ceddf7db6d03c3556375d1001fda Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:13 +0300 Subject: [PATCH 0173/2431] staging: fbtft: fb_ssd1351: define backlight_ops statically instead of devm_kzalloc'ing them Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_ssd1351.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index 9bcd7a0aeed4..dff5809b551e 100644 --- a/drivers/staging/fbtft/fb_ssd1351.c +++ b/drivers/staging/fbtft/fb_ssd1351.c @@ -208,25 +208,22 @@ static int update_onboard_backlight(struct backlight_device *bd) return 0; } +static const struct backlight_ops bl_ops = { + .update_status = update_onboard_backlight, +}; + static void register_onboard_backlight(struct fbtft_par *par) { struct backlight_device *bd; struct backlight_properties bl_props = { 0, }; - struct backlight_ops *bl_ops; fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s()\n", __func__); - bl_ops = devm_kzalloc(par->info->device, sizeof(struct backlight_ops), - GFP_KERNEL); - if (!bl_ops) - return; - - bl_ops->update_status = update_onboard_backlight; bl_props.type = BACKLIGHT_RAW; bl_props.power = FB_BLANK_POWERDOWN; bd = backlight_device_register(dev_driver_string(par->info->device), - par->info->device, par, bl_ops, &bl_props); + par->info->device, par, &bl_ops, &bl_props); if (IS_ERR(bd)) { dev_err(par->info->device, "cannot register backlight device (%ld)\n", From 6d657dac56438bf7ade5a05142a633e7f5e43984 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:14 +0300 Subject: [PATCH 0174/2431] staging: fbtft: fb_watterott: define backlight_ops statically instead of devm_kzalloc'ing them Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_watterott.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c index 33c21f108184..3000f75783a9 100644 --- a/drivers/staging/fbtft/fb_watterott.c +++ b/drivers/staging/fbtft/fb_watterott.c @@ -253,31 +253,24 @@ static int backlight_chip_update_status(struct backlight_device *bd) return 0; } +static const struct backlight_ops bl_ops = { + .update_status = backlight_chip_update_status, +}; + static void register_chip_backlight(struct fbtft_par *par) { struct backlight_device *bd; struct backlight_properties bl_props = { 0, }; - struct backlight_ops *bl_ops; fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s()\n", __func__); - bl_ops = devm_kzalloc(par->info->device, sizeof(struct backlight_ops), - GFP_KERNEL); - if (!bl_ops) { - dev_err(par->info->device, - "%s: could not allocate memory for backlight operations.\n", - __func__); - return; - } - - bl_ops->update_status = backlight_chip_update_status; bl_props.type = BACKLIGHT_RAW; bl_props.power = FB_BLANK_POWERDOWN; bl_props.max_brightness = 100; bl_props.brightness = DEFAULT_BRIGHTNESS; bd = backlight_device_register(dev_driver_string(par->info->device), - par->info->device, par, bl_ops, &bl_props); + par->info->device, par, &bl_ops, &bl_props); if (IS_ERR(bd)) { dev_err(par->info->device, "cannot register backlight device (%ld)\n", From e6ea2028e04b2adea69b06ef6d5e2d73f82b713c Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:33 -0700 Subject: [PATCH 0175/2431] staging/fbtft : Use BIT() macro when possible Based on checkpatch.pl recommendations, (1 << x) is replaced by BIT(x) Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_hx8340bn.c | 6 +++--- drivers/staging/fbtft/fb_hx8353d.c | 6 +++--- drivers/staging/fbtft/fb_s6d02a1.c | 6 +++--- drivers/staging/fbtft/fb_st7735r.c | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c index c5b2e5178991..d6dd034f32ef 100644 --- a/drivers/staging/fbtft/fb_hx8340bn.c +++ b/drivers/staging/fbtft/fb_hx8340bn.c @@ -113,9 +113,9 @@ static int set_var(struct fbtft_par *par) { /* MADCTL - Memory data access control */ /* RGB/BGR can be set with H/W pin SRGB and MADCTL BGR bit */ -#define MY (1 << 7) -#define MX (1 << 6) -#define MV (1 << 5) +#define MY BIT(7) +#define MX BIT(6) +#define MV BIT(5) switch (par->info->var.rotate) { case 0: write_reg(par, 0x36, par->bgr << 3); diff --git a/drivers/staging/fbtft/fb_hx8353d.c b/drivers/staging/fbtft/fb_hx8353d.c index 79e7ebc90368..73791232799e 100644 --- a/drivers/staging/fbtft/fb_hx8353d.c +++ b/drivers/staging/fbtft/fb_hx8353d.c @@ -87,9 +87,9 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) write_reg(par, 0x2c); } -#define my (1 << 7) -#define mx (1 << 6) -#define mv (1 << 5) +#define my BIT(7) +#define mx BIT(6) +#define mv BIT(5) static int set_var(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); diff --git a/drivers/staging/fbtft/fb_s6d02a1.c b/drivers/staging/fbtft/fb_s6d02a1.c index 4b27378e77d1..2fa4bec15541 100644 --- a/drivers/staging/fbtft/fb_s6d02a1.c +++ b/drivers/staging/fbtft/fb_s6d02a1.c @@ -111,9 +111,9 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) write_reg(par, 0x2C); } -#define MY (1 << 7) -#define MX (1 << 6) -#define MV (1 << 5) +#define MY BIT(7) +#define MX BIT(6) +#define MV BIT(5) static int set_var(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c index 3628836296d6..9b5cea937411 100644 --- a/drivers/staging/fbtft/fb_st7735r.c +++ b/drivers/staging/fbtft/fb_st7735r.c @@ -105,9 +105,9 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) write_reg(par, 0x2C); } -#define MY (1 << 7) -#define MX (1 << 6) -#define MV (1 << 5) +#define MY BIT(7) +#define MX BIT(6) +#define MV BIT(5) static int set_var(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); From e73221877a21352aa03437960b3874fee52fa189 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:34 -0700 Subject: [PATCH 0176/2431] staging/fbtft : Remove repeated set_addr_win debug messages fbtft_par_dbg(DEBUG_SET_ADDR_WIN.. ) is repeated in every set_addr_win() handler, this could be replicated by using the kernel function tracer instead. Signed-off-by: Anish Bhatt Suggested-by: Greg KH Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_agm1264k-fl.c | 4 ---- drivers/staging/fbtft/fb_bd663474.c | 2 -- drivers/staging/fbtft/fb_hx8347d.c | 3 --- drivers/staging/fbtft/fb_hx8353d.c | 3 --- drivers/staging/fbtft/fb_hx8357d.c | 3 --- drivers/staging/fbtft/fb_ili9163.c | 3 --- drivers/staging/fbtft/fb_ili9320.c | 3 --- drivers/staging/fbtft/fb_ili9325.c | 2 -- drivers/staging/fbtft/fb_ili9340.c | 3 --- drivers/staging/fbtft/fb_ili9341.c | 3 --- drivers/staging/fbtft/fb_ili9481.c | 3 --- drivers/staging/fbtft/fb_ili9486.c | 3 --- drivers/staging/fbtft/fb_pcd8544.c | 3 --- drivers/staging/fbtft/fb_ra8875.c | 3 --- drivers/staging/fbtft/fb_s6d02a1.c | 3 --- drivers/staging/fbtft/fb_s6d1121.c | 2 -- drivers/staging/fbtft/fb_ssd1289.c | 3 --- drivers/staging/fbtft/fb_ssd1306.c | 3 --- drivers/staging/fbtft/fb_ssd1331.c | 3 --- drivers/staging/fbtft/fb_ssd1351.c | 3 --- drivers/staging/fbtft/fb_st7735r.c | 3 --- drivers/staging/fbtft/fb_tinylcd.c | 3 --- drivers/staging/fbtft/fb_tls8204.c | 4 ---- drivers/staging/fbtft/fb_uc1611.c | 4 ---- drivers/staging/fbtft/fb_uc1701.c | 2 -- drivers/staging/fbtft/fb_upd161704.c | 2 -- drivers/staging/fbtft/fbtft-core.c | 3 --- drivers/staging/fbtft/fbtft_device.c | 2 -- drivers/staging/fbtft/flexfb.c | 10 ---------- 29 files changed, 91 deletions(-) diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 94dd49ce18de..bfe01f02b586 100644 --- a/drivers/staging/fbtft/fb_agm1264k-fl.c +++ b/drivers/staging/fbtft/fb_agm1264k-fl.c @@ -245,10 +245,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) addr_win.ys_page = ys / 8; addr_win.xe = xe; addr_win.ye_page = ye / 8; - - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys_page=%d, xe=%d, ye_page=%d)\n", __func__, - addr_win.xs, addr_win.ys_page, addr_win.xe, addr_win.ye_page); } static void diff --git a/drivers/staging/fbtft/fb_bd663474.c b/drivers/staging/fbtft/fb_bd663474.c index deb069f88a5b..e3e9ece3f52f 100644 --- a/drivers/staging/fbtft/fb_bd663474.c +++ b/drivers/staging/fbtft/fb_bd663474.c @@ -118,8 +118,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); switch (par->info->var.rotate) { /* R200h = Horizontal GRAM Start Address */ /* R201h = Vertical GRAM Start Address */ diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c index 42fed64ccfe0..00dd9d1bf877 100644 --- a/drivers/staging/fbtft/fb_hx8347d.c +++ b/drivers/staging/fbtft/fb_hx8347d.c @@ -88,9 +88,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - write_reg(par, 0x02, (xs >> 8) & 0xFF); write_reg(par, 0x03, xs & 0xFF); write_reg(par, 0x04, (xe >> 8) & 0xFF); diff --git a/drivers/staging/fbtft/fb_hx8353d.c b/drivers/staging/fbtft/fb_hx8353d.c index 73791232799e..a8b0ae6807b5 100644 --- a/drivers/staging/fbtft/fb_hx8353d.c +++ b/drivers/staging/fbtft/fb_hx8353d.c @@ -74,9 +74,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* column address */ write_reg(par, 0x2a, xs >> 8, xs & 0xff, xe >> 8, xe & 0xff); diff --git a/drivers/staging/fbtft/fb_hx8357d.c b/drivers/staging/fbtft/fb_hx8357d.c index 1b0a29d879af..4188bab711d2 100644 --- a/drivers/staging/fbtft/fb_hx8357d.c +++ b/drivers/staging/fbtft/fb_hx8357d.c @@ -142,9 +142,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Column addr set */ write_reg(par, HX8357_CASET, xs >> 8, xs & 0xff, /* XSTART */ diff --git a/drivers/staging/fbtft/fb_ili9163.c b/drivers/staging/fbtft/fb_ili9163.c index ed92a64306ff..799283f52ba1 100644 --- a/drivers/staging/fbtft/fb_ili9163.c +++ b/drivers/staging/fbtft/fb_ili9163.c @@ -149,9 +149,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - switch (par->info->var.rotate) { case 0: write_reg(par, CMD_CLMADRS, xs >> 8, xs & 0xff, xe >> 8, diff --git a/drivers/staging/fbtft/fb_ili9320.c b/drivers/staging/fbtft/fb_ili9320.c index edcd79c57835..9bc2a718cef8 100644 --- a/drivers/staging/fbtft/fb_ili9320.c +++ b/drivers/staging/fbtft/fb_ili9320.c @@ -177,9 +177,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - switch (par->info->var.rotate) { /* R20h = Horizontal GRAM Start Address */ /* R21h = Vertical GRAM Start Address */ diff --git a/drivers/staging/fbtft/fb_ili9325.c b/drivers/staging/fbtft/fb_ili9325.c index 5f38e7871dc9..80f0462b4597 100644 --- a/drivers/staging/fbtft/fb_ili9325.c +++ b/drivers/staging/fbtft/fb_ili9325.c @@ -172,8 +172,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); switch (par->info->var.rotate) { /* R20h = Horizontal GRAM Start Address */ /* R21h = Vertical GRAM Start Address */ diff --git a/drivers/staging/fbtft/fb_ili9340.c b/drivers/staging/fbtft/fb_ili9340.c index 68acfe064731..1bb1abda9306 100644 --- a/drivers/staging/fbtft/fb_ili9340.c +++ b/drivers/staging/fbtft/fb_ili9340.c @@ -94,9 +94,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Column address */ write_reg(par, 0x2A, xs >> 8, xs & 0xFF, xe >> 8, xe & 0xFF); diff --git a/drivers/staging/fbtft/fb_ili9341.c b/drivers/staging/fbtft/fb_ili9341.c index 18389726f085..b78d481d74a8 100644 --- a/drivers/staging/fbtft/fb_ili9341.c +++ b/drivers/staging/fbtft/fb_ili9341.c @@ -78,9 +78,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Column address set */ write_reg(par, 0x2A, (xs >> 8) & 0xFF, xs & 0xFF, (xe >> 8) & 0xFF, xe & 0xFF); diff --git a/drivers/staging/fbtft/fb_ili9481.c b/drivers/staging/fbtft/fb_ili9481.c index e176c87e0654..8c5581d05a1c 100644 --- a/drivers/staging/fbtft/fb_ili9481.c +++ b/drivers/staging/fbtft/fb_ili9481.c @@ -53,9 +53,6 @@ static int default_init_sequence[] = { static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* column address */ write_reg(par, 0x2a, xs >> 8, xs & 0xff, xe >> 8, xe & 0xff); diff --git a/drivers/staging/fbtft/fb_ili9486.c b/drivers/staging/fbtft/fb_ili9486.c index 5a3fc89f478d..e9d553c9f73e 100644 --- a/drivers/staging/fbtft/fb_ili9486.c +++ b/drivers/staging/fbtft/fb_ili9486.c @@ -57,9 +57,6 @@ static int default_init_sequence[] = { static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Column address */ write_reg(par, 0x2A, xs >> 8, xs & 0xFF, xe >> 8, xe & 0xFF); diff --git a/drivers/staging/fbtft/fb_pcd8544.c b/drivers/staging/fbtft/fb_pcd8544.c index ab208b8c93d7..897e2d5e93a2 100644 --- a/drivers/staging/fbtft/fb_pcd8544.c +++ b/drivers/staging/fbtft/fb_pcd8544.c @@ -97,9 +97,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", - __func__, xs, ys, xe, ye); - /* H=0 Set X address of RAM * * 7:1 1 diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c index eaac112b19cd..65e4fe2d9b6e 100644 --- a/drivers/staging/fbtft/fb_ra8875.c +++ b/drivers/staging/fbtft/fb_ra8875.c @@ -181,9 +181,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Set_Active_Window */ write_reg(par, 0x30, xs & 0x00FF); write_reg(par, 0x31, (xs & 0xFF00) >> 8); diff --git a/drivers/staging/fbtft/fb_s6d02a1.c b/drivers/staging/fbtft/fb_s6d02a1.c index 2fa4bec15541..06e94f165531 100644 --- a/drivers/staging/fbtft/fb_s6d02a1.c +++ b/drivers/staging/fbtft/fb_s6d02a1.c @@ -98,9 +98,6 @@ static int default_init_sequence[] = { static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Column address */ write_reg(par, 0x2A, xs >> 8, xs & 0xFF, xe >> 8, xe & 0xFF); diff --git a/drivers/staging/fbtft/fb_s6d1121.c b/drivers/staging/fbtft/fb_s6d1121.c index 0cdde022804a..10916bafe676 100644 --- a/drivers/staging/fbtft/fb_s6d1121.c +++ b/drivers/staging/fbtft/fb_s6d1121.c @@ -82,8 +82,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); switch (par->info->var.rotate) { /* R20h = Horizontal GRAM Start Address */ /* R21h = Vertical GRAM Start Address */ diff --git a/drivers/staging/fbtft/fb_ssd1289.c b/drivers/staging/fbtft/fb_ssd1289.c index c5f996e9b460..d602aecff67f 100644 --- a/drivers/staging/fbtft/fb_ssd1289.c +++ b/drivers/staging/fbtft/fb_ssd1289.c @@ -80,9 +80,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - switch (par->info->var.rotate) { /* R4Eh - Set GDDRAM X address counter */ /* R4Fh - Set GDDRAM Y address counter */ diff --git a/drivers/staging/fbtft/fb_ssd1306.c b/drivers/staging/fbtft/fb_ssd1306.c index fed5961219c7..171fac438845 100644 --- a/drivers/staging/fbtft/fb_ssd1306.c +++ b/drivers/staging/fbtft/fb_ssd1306.c @@ -128,9 +128,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Set Lower Column Start Address for Page Addressing Mode */ write_reg(par, 0x00 | 0x0); /* Set Higher Column Start Address for Page Addressing Mode */ diff --git a/drivers/staging/fbtft/fb_ssd1331.c b/drivers/staging/fbtft/fb_ssd1331.c index 5bb741046c85..a880ff6e713a 100644 --- a/drivers/staging/fbtft/fb_ssd1331.c +++ b/drivers/staging/fbtft/fb_ssd1331.c @@ -54,9 +54,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - write_reg(par, 0x15, xs, xe); write_reg(par, 0x75, ys, ye); } diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index dff5809b551e..ecd378e4d0d4 100644 --- a/drivers/staging/fbtft/fb_ssd1351.c +++ b/drivers/staging/fbtft/fb_ssd1351.c @@ -61,9 +61,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - write_reg(par, 0x15, xs, xe); write_reg(par, 0x75, ys, ye); write_reg(par, 0x5c); diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c index 9b5cea937411..5cba98c137ca 100644 --- a/drivers/staging/fbtft/fb_st7735r.c +++ b/drivers/staging/fbtft/fb_st7735r.c @@ -92,9 +92,6 @@ static int default_init_sequence[] = { static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Column address */ write_reg(par, 0x2A, xs >> 8, xs & 0xFF, xe >> 8, xe & 0xFF); diff --git a/drivers/staging/fbtft/fb_tinylcd.c b/drivers/staging/fbtft/fb_tinylcd.c index 78dfb3a19bac..f159bbc2731e 100644 --- a/drivers/staging/fbtft/fb_tinylcd.c +++ b/drivers/staging/fbtft/fb_tinylcd.c @@ -60,9 +60,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Column address */ write_reg(par, 0x2A, xs >> 8, xs & 0xFF, xe >> 8, xe & 0xFF); diff --git a/drivers/staging/fbtft/fb_tls8204.c b/drivers/staging/fbtft/fb_tls8204.c index b4b80d7de13c..2e3f9148dfd0 100644 --- a/drivers/staging/fbtft/fb_tls8204.c +++ b/drivers/staging/fbtft/fb_tls8204.c @@ -82,10 +82,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", - __func__, xs, ys, xe, ye); - /* H=0 Set X address of RAM */ write_reg(par, 0x80); /* 7:1 1 6-0: X[6:0] - 0x00 diff --git a/drivers/staging/fbtft/fb_uc1611.c b/drivers/staging/fbtft/fb_uc1611.c index 32f3a9d921d6..14a8734bc415 100644 --- a/drivers/staging/fbtft/fb_uc1611.c +++ b/drivers/staging/fbtft/fb_uc1611.c @@ -115,10 +115,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", - __func__, xs, ys, xe, ye); - switch (par->info->var.rotate) { case 90: case 270: diff --git a/drivers/staging/fbtft/fb_uc1701.c b/drivers/staging/fbtft/fb_uc1701.c index 90a840823c72..d40d0a839496 100644 --- a/drivers/staging/fbtft/fb_uc1701.c +++ b/drivers/staging/fbtft/fb_uc1701.c @@ -127,8 +127,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* goto address */ /* LCD_PAGE_ADDRESS | ((page) & 0x1F), (((col)+SHIFT_ADDR_NORMAL) & 0x0F), diff --git a/drivers/staging/fbtft/fb_upd161704.c b/drivers/staging/fbtft/fb_upd161704.c index 04802af9814d..b480563a21f0 100644 --- a/drivers/staging/fbtft/fb_upd161704.c +++ b/drivers/staging/fbtft/fb_upd161704.c @@ -127,8 +127,6 @@ static int init_display(struct fbtft_par *par) static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); switch (par->info->var.rotate) { /* R20h = Horizontal GRAM Start Address */ /* R21h = Vertical GRAM Start Address */ diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index d2f547e0ddbe..56a3a7f07637 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -324,9 +324,6 @@ EXPORT_SYMBOL(fbtft_unregister_backlight); static void fbtft_set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); - /* Column address set */ write_reg(par, 0x2A, (xs >> 8) & 0xFF, xs & 0xFF, (xe >> 8) & 0xFF, xe & 0xFF); diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index ee43ad289230..7730e107c416 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -1197,8 +1197,6 @@ static int write_gpio16_wr_slow(struct fbtft_par *par, void *buf, size_t len) static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, xs, ys, xe, ye); write_reg(par, 0x2A, 0, xs + 2, 0, xe + 2); write_reg(par, 0x2B, 0, ys + 1, 0, ye + 1); write_reg(par, 0x2C); diff --git a/drivers/staging/fbtft/flexfb.c b/drivers/staging/fbtft/flexfb.c index c763efc5de7d..b7ed7b11b564 100644 --- a/drivers/staging/fbtft/flexfb.c +++ b/drivers/staging/fbtft/flexfb.c @@ -233,8 +233,6 @@ static const struct flexfb_lcd_controller flexfb_chip_table[] = { static void flexfb_set_addr_win_1(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", - __func__, xs, ys, xe, ye); switch (par->info->var.rotate) { /* R20h = Horizontal GRAM Start Address */ /* R21h = Vertical GRAM Start Address */ @@ -262,10 +260,6 @@ static void flexfb_set_addr_win_1(struct fbtft_par *par, static void flexfb_set_addr_win_2(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", - __func__, xs, ys, xe, ye); - switch (par->info->var.rotate) { /* R4Eh - Set GDDRAM X address counter */ /* R4Fh - Set GDDRAM Y address counter */ @@ -295,10 +289,6 @@ static void flexfb_set_addr_win_2(struct fbtft_par *par, static void set_addr_win_3(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par, - "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", __func__, - xs, ys, xe, ye); - write_reg(par, 0x15, xs, xe); write_reg(par, 0x75, ys, ye); write_reg(par, 0x5C); From c3eeca503db189422ee22bbad7ca52e1febbe276 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:35 -0700 Subject: [PATCH 0177/2431] staging/fbtft : Remove unicode characters Remove stray unicode quotes around name Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_agm1264k-fl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index bfe01f02b586..1eba1a0653a0 100644 --- a/drivers/staging/fbtft/fb_agm1264k-fl.c +++ b/drivers/staging/fbtft/fb_agm1264k-fl.c @@ -42,7 +42,7 @@ #define CS1 gpio.aux[1] -/* diffusing error (“Floyd-Steinberg”) */ +/* diffusing error (Floyd-Steinberg) */ #define DIFFUSING_MATRIX_WIDTH 2 #define DIFFUSING_MATRIX_HEIGHT 2 From 1014c2ce082241db728e0528dd5f1bfb04fd0b06 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:36 -0700 Subject: [PATCH 0178/2431] staging/fbtft : Fix multiple/missing blank line issues Remove or add blank lines as recommended by checkpatch.pl Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_agm1264k-fl.c | 3 +-- drivers/staging/fbtft/fb_bd663474.c | 1 + drivers/staging/fbtft/fb_hx8340bn.c | 4 +--- drivers/staging/fbtft/fb_hx8347d.c | 3 +-- drivers/staging/fbtft/fb_hx8353d.c | 2 +- drivers/staging/fbtft/fb_hx8357d.c | 2 +- drivers/staging/fbtft/fb_ili9320.c | 4 +--- drivers/staging/fbtft/fb_ili9325.c | 4 +--- drivers/staging/fbtft/fb_ili9340.c | 3 +-- drivers/staging/fbtft/fb_ili9341.c | 3 +-- drivers/staging/fbtft/fb_ili9481.c | 1 + drivers/staging/fbtft/fb_ili9486.c | 3 +-- drivers/staging/fbtft/fb_pcd8544.c | 3 +-- drivers/staging/fbtft/fb_ra8875.c | 1 + drivers/staging/fbtft/fb_s6d02a1.c | 1 + drivers/staging/fbtft/fb_s6d1121.c | 2 +- drivers/staging/fbtft/fb_ssd1289.c | 3 +-- drivers/staging/fbtft/fb_ssd1306.c | 3 --- drivers/staging/fbtft/fb_ssd1331.c | 2 -- drivers/staging/fbtft/fb_ssd1351.c | 3 --- drivers/staging/fbtft/fb_st7735r.c | 3 +-- drivers/staging/fbtft/fb_tinylcd.c | 3 +-- drivers/staging/fbtft/fb_tls8204.c | 2 +- drivers/staging/fbtft/fb_uc1701.c | 3 +-- drivers/staging/fbtft/fb_upd161704.c | 1 + drivers/staging/fbtft/fb_watterott.c | 3 +-- drivers/staging/fbtft/fbtft-bus.c | 6 ------ drivers/staging/fbtft/fbtft-core.c | 5 ----- drivers/staging/fbtft/fbtft-sysfs.c | 2 -- drivers/staging/fbtft/fbtft.h | 5 ----- drivers/staging/fbtft/fbtft_device.c | 1 - 31 files changed, 23 insertions(+), 62 deletions(-) diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 1eba1a0653a0..8eb5e696fa9a 100644 --- a/drivers/staging/fbtft/fb_agm1264k-fl.c +++ b/drivers/staging/fbtft/fb_agm1264k-fl.c @@ -41,7 +41,6 @@ #define CS0 gpio.aux[0] #define CS1 gpio.aux[1] - /* diffusing error (Floyd-Steinberg) */ #define DIFFUSING_MATRIX_WIDTH 2 #define DIFFUSING_MATRIX_HEIGHT 2 @@ -416,7 +415,6 @@ static int write(struct fbtft_par *par, void *buf, size_t len) gpio_set_value(par->RW, 0); /* set write mode */ - while (len--) { u8 i, data; @@ -452,6 +450,7 @@ static struct fbtft_display display = { .write_vmem = write_vmem, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "displaytronic,fb_agm1264k-fl", &display); MODULE_ALIAS("platform:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_bd663474.c b/drivers/staging/fbtft/fb_bd663474.c index e3e9ece3f52f..ea013e9d45e6 100644 --- a/drivers/staging/fbtft/fb_bd663474.c +++ b/drivers/staging/fbtft/fb_bd663474.c @@ -175,6 +175,7 @@ static struct fbtft_display display = { .set_var = set_var, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "hitachi,bd663474", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c index d6dd034f32ef..ff3be1278fd3 100644 --- a/drivers/staging/fbtft/fb_hx8340bn.c +++ b/drivers/staging/fbtft/fb_hx8340bn.c @@ -35,12 +35,10 @@ #define DEFAULT_GAMMA "1 3 0E 5 0 2 09 0 6 1 7 1 0 2 2\n" \ "3 3 17 8 4 7 05 7 6 0 3 1 6 0 0 " - static bool emulate; module_param(emulate, bool, 0); MODULE_PARM_DESC(emulate, "Force emulation in 9-bit mode"); - static int init_display(struct fbtft_par *par) { par->fbtftops.reset(par); @@ -188,7 +186,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) } #undef CURVE - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -204,6 +201,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "himax,hx8340bn", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c index 00dd9d1bf877..996af1acff89 100644 --- a/drivers/staging/fbtft/fb_hx8347d.c +++ b/drivers/staging/fbtft/fb_hx8347d.c @@ -29,7 +29,6 @@ #define DEFAULT_GAMMA "0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" \ "0 0 0 0 0 0 0 0 0 0 0 0 0 0" - static int init_display(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); @@ -147,7 +146,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) } #undef CURVE - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -161,6 +159,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "himax,hx8347d", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_hx8353d.c b/drivers/staging/fbtft/fb_hx8353d.c index a8b0ae6807b5..b36f6e1f6fbe 100644 --- a/drivers/staging/fbtft/fb_hx8353d.c +++ b/drivers/staging/fbtft/fb_hx8353d.c @@ -132,7 +132,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) return 0; } - static struct fbtft_display display = { .regwidth = 8, .width = 128, @@ -147,6 +146,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "himax,hx8353d", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_hx8357d.c b/drivers/staging/fbtft/fb_hx8357d.c index 4188bab711d2..3a28a36904bc 100644 --- a/drivers/staging/fbtft/fb_hx8357d.c +++ b/drivers/staging/fbtft/fb_hx8357d.c @@ -30,7 +30,6 @@ #define WIDTH 320 #define HEIGHT 480 - static int init_display(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); @@ -204,6 +203,7 @@ static struct fbtft_display display = { .set_var = set_var, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "himax,hx8357d", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ili9320.c b/drivers/staging/fbtft/fb_ili9320.c index 9bc2a718cef8..3164b2b0b635 100644 --- a/drivers/staging/fbtft/fb_ili9320.c +++ b/drivers/staging/fbtft/fb_ili9320.c @@ -29,7 +29,6 @@ #define DEFAULT_GAMMA "07 07 6 0 0 0 5 5 4 0\n" \ "07 08 4 7 5 1 2 0 7 7" - static unsigned read_devicecode(struct fbtft_par *par) { int ret; @@ -92,7 +91,6 @@ static int init_display(struct fbtft_par *par) /* RGB interface polarity */ write_reg(par, 0x000F, 0x0000); - /* ***********Power On sequence *************** */ /* SAP, BT[3:0], AP, DSTB, SLP, STB */ write_reg(par, 0x0010, 0x0000); @@ -258,7 +256,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) } #undef CURVE - static struct fbtft_display display = { .regwidth = 16, .width = WIDTH, @@ -273,6 +270,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "ilitek,ili9320", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ili9325.c b/drivers/staging/fbtft/fb_ili9325.c index 80f0462b4597..92398a0a7e95 100644 --- a/drivers/staging/fbtft/fb_ili9325.c +++ b/drivers/staging/fbtft/fb_ili9325.c @@ -32,7 +32,6 @@ #define DEFAULT_GAMMA "0F 00 7 2 0 0 6 5 4 1\n" \ "04 16 2 7 6 3 2 1 7 7" - static unsigned bt = 6; /* VGL=Vci*4 , VGH=Vci*4 */ module_param(bt, uint, 0); MODULE_PARM_DESC(bt, "Sets the factor used in the step-up circuits"); @@ -56,7 +55,6 @@ static unsigned vcm = 0x0a; /* VCOMH=VREG1OUT*0.735 */ module_param(vcm, uint, 0); MODULE_PARM_DESC(vcm, "Set the internal VcomH voltage"); - /* Verify that this configuration is within the Voltage limits @@ -255,7 +253,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) } #undef CURVE - static struct fbtft_display display = { .regwidth = 16, .width = WIDTH, @@ -272,6 +269,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "ilitek,ili9325", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ili9340.c b/drivers/staging/fbtft/fb_ili9340.c index 1bb1abda9306..7efd8bc1201b 100644 --- a/drivers/staging/fbtft/fb_ili9340.c +++ b/drivers/staging/fbtft/fb_ili9340.c @@ -26,7 +26,6 @@ #define WIDTH 240 #define HEIGHT 320 - /* Init sequence taken from: Arduino Library for the Adafruit 2.2" display */ static int init_display(struct fbtft_par *par) { @@ -133,7 +132,6 @@ static int set_var(struct fbtft_par *par) return 0; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -144,6 +142,7 @@ static struct fbtft_display display = { .set_var = set_var, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "ilitek,ili9340", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ili9341.c b/drivers/staging/fbtft/fb_ili9341.c index b78d481d74a8..6629de352571 100644 --- a/drivers/staging/fbtft/fb_ili9341.c +++ b/drivers/staging/fbtft/fb_ili9341.c @@ -34,7 +34,6 @@ #define DEFAULT_GAMMA "1F 1A 18 0A 0F 06 45 87 32 0A 07 02 07 05 00\n" \ "00 25 27 05 10 09 3A 78 4D 05 18 0D 38 3A 1F" - static int init_display(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); @@ -144,7 +143,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) } #undef CURVE - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -160,6 +158,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "ilitek,ili9341", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ili9481.c b/drivers/staging/fbtft/fb_ili9481.c index 8c5581d05a1c..85387f01d254 100644 --- a/drivers/staging/fbtft/fb_ili9481.c +++ b/drivers/staging/fbtft/fb_ili9481.c @@ -98,6 +98,7 @@ static struct fbtft_display display = { .set_var = set_var, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "ilitek,ili9481", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ili9486.c b/drivers/staging/fbtft/fb_ili9486.c index e9d553c9f73e..10068b0d1de9 100644 --- a/drivers/staging/fbtft/fb_ili9486.c +++ b/drivers/staging/fbtft/fb_ili9486.c @@ -24,7 +24,6 @@ #define WIDTH 320 #define HEIGHT 480 - /* this init sequence matches PiScreen */ static int default_init_sequence[] = { /* Interface Mode Control */ @@ -91,7 +90,6 @@ static int set_var(struct fbtft_par *par) return 0; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -102,6 +100,7 @@ static struct fbtft_display display = { .set_var = set_var, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "ilitek,ili9486", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_pcd8544.c b/drivers/staging/fbtft/fb_pcd8544.c index 897e2d5e93a2..dea698a016fa 100644 --- a/drivers/staging/fbtft/fb_pcd8544.c +++ b/drivers/staging/fbtft/fb_pcd8544.c @@ -40,7 +40,6 @@ static unsigned bs = 4; module_param(bs, uint, 0); MODULE_PARM_DESC(bs, "BS[2:0] Bias voltage level: 0-7 (default: 4)"); - static int init_display(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); @@ -155,7 +154,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) return 0; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -172,6 +170,7 @@ static struct fbtft_display display = { }, .backlight = 1, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "philips,pdc8544", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c index 65e4fe2d9b6e..62ab7fac59df 100644 --- a/drivers/staging/fbtft/fb_ra8875.c +++ b/drivers/staging/fbtft/fb_ra8875.c @@ -305,6 +305,7 @@ static struct fbtft_display display = { .write = write_spi, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "raio,ra8875", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_s6d02a1.c b/drivers/staging/fbtft/fb_s6d02a1.c index 06e94f165531..0ae5bc6c53a6 100644 --- a/drivers/staging/fbtft/fb_s6d02a1.c +++ b/drivers/staging/fbtft/fb_s6d02a1.c @@ -149,6 +149,7 @@ static struct fbtft_display display = { .set_var = set_var, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "samsung,s6d02a1", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_s6d1121.c b/drivers/staging/fbtft/fb_s6d1121.c index 10916bafe676..e97d1c5d7b3f 100644 --- a/drivers/staging/fbtft/fb_s6d1121.c +++ b/drivers/staging/fbtft/fb_s6d1121.c @@ -171,7 +171,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) } #undef CURVE - static struct fbtft_display display = { .regwidth = 16, .width = WIDTH, @@ -188,6 +187,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "samsung,s6d1121", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ssd1289.c b/drivers/staging/fbtft/fb_ssd1289.c index d602aecff67f..96039b4e5505 100644 --- a/drivers/staging/fbtft/fb_ssd1289.c +++ b/drivers/staging/fbtft/fb_ssd1289.c @@ -33,7 +33,6 @@ static unsigned reg11 = 0x6040; module_param(reg11, uint, 0); MODULE_PARM_DESC(reg11, "Register 11h value"); - static int init_display(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); @@ -171,7 +170,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) } #undef CURVE - static struct fbtft_display display = { .regwidth = 16, .width = WIDTH, @@ -186,6 +184,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "solomon,ssd1289", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ssd1306.c b/drivers/staging/fbtft/fb_ssd1306.c index 171fac438845..6013b68362c0 100644 --- a/drivers/staging/fbtft/fb_ssd1306.c +++ b/drivers/staging/fbtft/fb_ssd1306.c @@ -26,7 +26,6 @@ #define WIDTH 128 #define HEIGHT 64 - /* write_reg() caveat: @@ -192,7 +191,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) return ret; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -209,7 +207,6 @@ static struct fbtft_display display = { }, }; - FBTFT_REGISTER_DRIVER(DRVNAME, "solomon,ssd1306", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_ssd1331.c b/drivers/staging/fbtft/fb_ssd1331.c index a880ff6e713a..9ac75f6822a9 100644 --- a/drivers/staging/fbtft/fb_ssd1331.c +++ b/drivers/staging/fbtft/fb_ssd1331.c @@ -123,7 +123,6 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...) : Setting of GS63 has to be > Setting of GS62 +1 - */ static int set_gamma(struct fbtft_par *par, unsigned long *curves) { @@ -173,7 +172,6 @@ static int blank(struct fbtft_par *par, bool on) return 0; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index ecd378e4d0d4..7e3762d5aa2a 100644 --- a/drivers/staging/fbtft/fb_ssd1351.c +++ b/drivers/staging/fbtft/fb_ssd1351.c @@ -120,7 +120,6 @@ static int set_var(struct fbtft_par *par) : Setting of GS63 has to be > Setting of GS62 +1 - */ static int set_gamma(struct fbtft_par *par, unsigned long *curves) { @@ -170,7 +169,6 @@ static int blank(struct fbtft_par *par, bool on) return 0; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -236,7 +234,6 @@ static void register_onboard_backlight(struct fbtft_par *par) static void register_onboard_backlight(struct fbtft_par *par) { }; #endif - FBTFT_REGISTER_DRIVER(DRVNAME, "solomon,ssd1351", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c index 5cba98c137ca..d7a716de8006 100644 --- a/drivers/staging/fbtft/fb_st7735r.c +++ b/drivers/staging/fbtft/fb_st7735r.c @@ -24,7 +24,6 @@ #define DEFAULT_GAMMA "0F 1A 0F 18 2F 28 20 22 1F 1B 23 37 00 07 02 10\n" \ "0F 1B 0F 17 33 2C 29 2E 30 30 39 3F 00 07 03 10" - static int default_init_sequence[] = { /* SWRESET - Software reset */ -1, 0x01, @@ -161,7 +160,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) } #undef CURVE - static struct fbtft_display display = { .regwidth = 8, .width = 128, @@ -176,6 +174,7 @@ static struct fbtft_display display = { .set_gamma = set_gamma, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "sitronix,st7735r", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_tinylcd.c b/drivers/staging/fbtft/fb_tinylcd.c index f159bbc2731e..04d1e344a3a0 100644 --- a/drivers/staging/fbtft/fb_tinylcd.c +++ b/drivers/staging/fbtft/fb_tinylcd.c @@ -25,7 +25,6 @@ #define WIDTH 320 #define HEIGHT 480 - static int init_display(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); @@ -96,7 +95,6 @@ static int set_var(struct fbtft_par *par) return 0; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -107,6 +105,7 @@ static struct fbtft_display display = { .set_var = set_var, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "neosec,tinylcd", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_tls8204.c b/drivers/staging/fbtft/fb_tls8204.c index 2e3f9148dfd0..e7dd41ffe2fe 100644 --- a/drivers/staging/fbtft/fb_tls8204.c +++ b/drivers/staging/fbtft/fb_tls8204.c @@ -147,7 +147,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) return 0; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -164,6 +163,7 @@ static struct fbtft_display display = { }, .backlight = 1, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "teralane,tls8204", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_uc1701.c b/drivers/staging/fbtft/fb_uc1701.c index d40d0a839496..e94ecd683c43 100644 --- a/drivers/staging/fbtft/fb_uc1701.c +++ b/drivers/staging/fbtft/fb_uc1701.c @@ -69,7 +69,6 @@ /* column offset for bottom view orientation */ #define SHIFT_ADDR_TOPVIEW 30 - static int init_display(struct fbtft_par *par) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); @@ -183,7 +182,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) return ret; } - static struct fbtft_display display = { .regwidth = 8, .width = WIDTH, @@ -195,6 +193,7 @@ static struct fbtft_display display = { }, .backlight = 1, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "UltraChip,uc1701", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_upd161704.c b/drivers/staging/fbtft/fb_upd161704.c index b480563a21f0..f0011ee9868b 100644 --- a/drivers/staging/fbtft/fb_upd161704.c +++ b/drivers/staging/fbtft/fb_upd161704.c @@ -188,6 +188,7 @@ static struct fbtft_display display = { .set_var = set_var, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "nec,upd161704", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c index 3000f75783a9..01126a5f8648 100644 --- a/drivers/staging/fbtft/fb_watterott.c +++ b/drivers/staging/fbtft/fb_watterott.c @@ -39,7 +39,6 @@ #define COLOR_RGB233 10 #define COLOR_RGB565 16 - static short mode = 565; module_param(mode, short, 0); MODULE_PARM_DESC(mode, "RGB color transfer mode: 332, 565 (default)"); @@ -286,7 +285,6 @@ static void register_chip_backlight(struct fbtft_par *par) #define register_chip_backlight NULL #endif - static struct fbtft_display display = { .regwidth = 8, .buswidth = 8, @@ -304,6 +302,7 @@ static struct fbtft_display display = { .register_backlight = register_chip_backlight, }, }; + FBTFT_REGISTER_DRIVER(DRVNAME, "watterott,openlcd", &display); MODULE_ALIAS("spi:" DRVNAME); diff --git a/drivers/staging/fbtft/fbtft-bus.c b/drivers/staging/fbtft/fbtft-bus.c index 912c6328fb87..0e0def4be563 100644 --- a/drivers/staging/fbtft/fbtft-bus.c +++ b/drivers/staging/fbtft/fbtft-bus.c @@ -4,9 +4,6 @@ #include #include "fbtft.h" - - - /***************************************************************************** * * void (*write_reg)(struct fbtft_par *par, int len, ...); @@ -117,9 +114,6 @@ void fbtft_write_reg8_bus9(struct fbtft_par *par, int len, ...) } EXPORT_SYMBOL(fbtft_write_reg8_bus9); - - - /***************************************************************************** * * int (*write_vmem)(struct fbtft_par *par); diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 56a3a7f07637..fa813999aca7 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -49,7 +49,6 @@ module_param(dma, bool, 0); MODULE_PARM_DESC(dma, "Use DMA buffer"); #endif - void fbtft_dbg_hex(const struct device *dev, int groupsize, void *buf, size_t len, const char *fmt, ...) { @@ -336,7 +335,6 @@ static void fbtft_set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, write_reg(par, 0x2C); } - static void fbtft_reset(struct fbtft_par *par) { if (par->gpio.reset == -1) @@ -348,7 +346,6 @@ static void fbtft_reset(struct fbtft_par *par) mdelay(120); } - static void fbtft_update_display(struct fbtft_par *par, unsigned start_line, unsigned end_line) { @@ -427,7 +424,6 @@ static void fbtft_update_display(struct fbtft_par *par, unsigned start_line, } } - static void fbtft_mkdirty(struct fb_info *info, int y, int height) { struct fbtft_par *par = info->par; @@ -489,7 +485,6 @@ static void fbtft_deferred_io(struct fb_info *info, struct list_head *pagelist) dirty_lines_start, dirty_lines_end); } - static void fbtft_fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fbtft-sysfs.c index c4cc452f9f2b..73c7ec6de077 100644 --- a/drivers/staging/fbtft/fbtft-sysfs.c +++ b/drivers/staging/fbtft/fbtft-sysfs.c @@ -149,7 +149,6 @@ static struct device_attribute gamma_device_attrs[] = { __ATTR(gamma, 0660, show_gamma_curve, store_gamma_curve), }; - void fbtft_expand_debug_value(unsigned long *debug) { switch (*debug & 0x7) { @@ -205,7 +204,6 @@ static ssize_t show_debug(struct device *device, static struct device_attribute debug_device_attr = \ __ATTR(debug, 0660, show_debug, store_debug); - void fbtft_sysfs_init(struct fbtft_par *par) { device_create_file(par->info->dev, &debug_device_attr); diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h index 379f6623088f..6dd42b28d594 100644 --- a/drivers/staging/fbtft/fbtft.h +++ b/drivers/staging/fbtft/fbtft.h @@ -20,7 +20,6 @@ #include #include - #define FBTFT_NOP 0x00 #define FBTFT_SWRESET 0x01 #define FBTFT_RDDID 0x04 @@ -291,7 +290,6 @@ void fbtft_write_reg8_bus9(struct fbtft_par *par, int len, ...); void fbtft_write_reg16_bus8(struct fbtft_par *par, int len, ...); void fbtft_write_reg16_bus16(struct fbtft_par *par, int len, ...); - #define FBTFT_REGISTER_DRIVER(_name, _compatible, _display) \ \ static int fbtft_driver_probe_spi(struct spi_device *spi) \ @@ -365,7 +363,6 @@ static void __exit fbtft_driver_module_exit(void) \ module_init(fbtft_driver_module_init); \ module_exit(fbtft_driver_module_exit); - /* Debug macros */ /* shorthand debug levels */ @@ -411,7 +408,6 @@ module_exit(fbtft_driver_module_exit); #define DEBUG_REQUEST_GPIOS_MATCH (1<<30) #define DEBUG_VERIFY_GPIOS (1<<31) - #define fbtft_init_dbg(dev, format, arg...) \ do { \ if (unlikely((dev)->platform_data && \ @@ -425,7 +421,6 @@ do { \ dev_info(par->info->device, format, ##arg); \ } while (0) - #define fbtft_par_dbg_hex(level, par, dev, type, buf, num, format, arg...) \ do { \ if (unlikely(par->debug & level)) \ diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 7730e107c416..e9c2040b0129 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -111,7 +111,6 @@ module_param(verbose, uint, 0); MODULE_PARM_DESC(verbose, "0 silent, >0 show gpios, >1 show devices, >2 show devices before (default=3)"); - struct fbtft_device_display { char *name; struct spi_board_info *spi; From 94c0a5442708dbc4226f8aabcf9163caac179a92 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:37 -0700 Subject: [PATCH 0179/2431] staging/fbtft : Add missing whitespace around operators Add blank spaces around operators where recommended by checkpatch.pl Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_hx8340bn.c | 2 +- drivers/staging/fbtft/fb_hx8347d.c | 2 +- drivers/staging/fbtft/fb_ili9163.c | 4 ++-- drivers/staging/fbtft/fb_ili9320.c | 4 ++-- drivers/staging/fbtft/fb_ili9325.c | 4 ++-- drivers/staging/fbtft/fb_ili9341.c | 4 ++-- drivers/staging/fbtft/fb_pcd8544.c | 7 ++++--- drivers/staging/fbtft/fb_ra8875.c | 8 ++++---- drivers/staging/fbtft/fb_s6d1121.c | 4 ++-- drivers/staging/fbtft/fb_ssd1289.c | 4 ++-- drivers/staging/fbtft/fb_ssd1306.c | 7 +++++-- drivers/staging/fbtft/fb_st7735r.c | 2 +- drivers/staging/fbtft/fb_tls8204.c | 6 +++--- drivers/staging/fbtft/fb_uc1701.c | 10 ++++++---- drivers/staging/fbtft/fbtft-bus.c | 7 ++++--- drivers/staging/fbtft/fbtft-core.c | 10 +++++----- drivers/staging/fbtft/fbtft-sysfs.c | 4 ++-- drivers/staging/fbtft/fbtft_device.c | 4 ++-- 18 files changed, 50 insertions(+), 43 deletions(-) diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c index ff3be1278fd3..e1ed177f9184 100644 --- a/drivers/staging/fbtft/fb_hx8340bn.c +++ b/drivers/staging/fbtft/fb_hx8340bn.c @@ -139,7 +139,7 @@ static int set_var(struct fbtft_par *par) OP0 OP1 CP0 CP1 CP2 CP3 CP4 MP0 MP1 MP2 MP3 MP4 MP5 CGM0 CGM1 ON0 ON1 CN0 CN1 CN2 CN3 CN4 MN0 MN1 MN2 MN3 MN4 MN5 XXXX GC */ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int set_gamma(struct fbtft_par *par, unsigned long *curves) { unsigned long mask[] = { diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c index 996af1acff89..8b3ee2460b8c 100644 --- a/drivers/staging/fbtft/fb_hx8347d.c +++ b/drivers/staging/fbtft/fb_hx8347d.c @@ -103,7 +103,7 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) VRP0 VRP1 VRP2 VRP3 VRP4 VRP5 PRP0 PRP1 PKP0 PKP1 PKP2 PKP3 PKP4 CGM VRN0 VRN1 VRN2 VRN3 VRN4 VRN5 PRN0 PRN1 PKN0 PKN1 PKN2 PKN3 PKN4 CGM */ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int set_gamma(struct fbtft_par *par, unsigned long *curves) { unsigned long mask[] = { diff --git a/drivers/staging/fbtft/fb_ili9163.c b/drivers/staging/fbtft/fb_ili9163.c index 799283f52ba1..d166ca905d97 100644 --- a/drivers/staging/fbtft/fb_ili9163.c +++ b/drivers/staging/fbtft/fb_ili9163.c @@ -227,7 +227,7 @@ static int set_var(struct fbtft_par *par) } #ifdef GAMMA_ADJ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int gamma_adj(struct fbtft_par *par, unsigned long *curves) { unsigned long mask[] = { @@ -240,7 +240,7 @@ static int gamma_adj(struct fbtft_par *par, unsigned long *curves) for (i = 0; i < GAMMA_NUM; i++) for (j = 0; j < GAMMA_LEN; j++) - CURVE(i, j) &= mask[i*par->gamma.num_values + j]; + CURVE(i, j) &= mask[i * par->gamma.num_values + j]; write_reg(par, CMD_PGAMMAC, CURVE(0, 0), diff --git a/drivers/staging/fbtft/fb_ili9320.c b/drivers/staging/fbtft/fb_ili9320.c index 3164b2b0b635..30bed2c674c9 100644 --- a/drivers/staging/fbtft/fb_ili9320.c +++ b/drivers/staging/fbtft/fb_ili9320.c @@ -224,7 +224,7 @@ static int set_var(struct fbtft_par *par) VRP0 VRP1 RP0 RP1 KP0 KP1 KP2 KP3 KP4 KP5 VRN0 VRN1 RN0 RN1 KN0 KN1 KN2 KN3 KN4 KN5 */ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int set_gamma(struct fbtft_par *par, unsigned long *curves) { unsigned long mask[] = { @@ -238,7 +238,7 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) /* apply mask */ for (i = 0; i < 2; i++) for (j = 0; j < 10; j++) - CURVE(i, j) &= mask[i*par->gamma.num_values + j]; + CURVE(i, j) &= mask[i * par->gamma.num_values + j]; write_reg(par, 0x0030, CURVE(0, 5) << 8 | CURVE(0, 4)); write_reg(par, 0x0031, CURVE(0, 7) << 8 | CURVE(0, 6)); diff --git a/drivers/staging/fbtft/fb_ili9325.c b/drivers/staging/fbtft/fb_ili9325.c index 92398a0a7e95..25e5a11d451e 100644 --- a/drivers/staging/fbtft/fb_ili9325.c +++ b/drivers/staging/fbtft/fb_ili9325.c @@ -221,7 +221,7 @@ static int set_var(struct fbtft_par *par) VRP0 VRP1 RP0 RP1 KP0 KP1 KP2 KP3 KP4 KP5 VRN0 VRN1 RN0 RN1 KN0 KN1 KN2 KN3 KN4 KN5 */ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int set_gamma(struct fbtft_par *par, unsigned long *curves) { unsigned long mask[] = { @@ -235,7 +235,7 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) /* apply mask */ for (i = 0; i < 2; i++) for (j = 0; j < 10; j++) - CURVE(i, j) &= mask[i*par->gamma.num_values + j]; + CURVE(i, j) &= mask[i * par->gamma.num_values + j]; write_reg(par, 0x0030, CURVE(0, 5) << 8 | CURVE(0, 4)); write_reg(par, 0x0031, CURVE(0, 7) << 8 | CURVE(0, 6)); diff --git a/drivers/staging/fbtft/fb_ili9341.c b/drivers/staging/fbtft/fb_ili9341.c index 6629de352571..d07a312ad293 100644 --- a/drivers/staging/fbtft/fb_ili9341.c +++ b/drivers/staging/fbtft/fb_ili9341.c @@ -105,7 +105,7 @@ static int set_var(struct fbtft_par *par) break; case 270: write_reg(par, 0x36, - (1<bgr << MEM_BGR)); + (1 << MEM_V) | (1 << MEM_L) | (par->bgr << MEM_BGR)); break; case 180: write_reg(par, 0x36, (1 << MEM_Y) | (par->bgr << MEM_BGR)); @@ -124,7 +124,7 @@ static int set_var(struct fbtft_par *par) Positive: Par1 Par2 [...] Par15 Negative: Par1 Par2 [...] Par15 */ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int set_gamma(struct fbtft_par *par, unsigned long *curves) { int i; diff --git a/drivers/staging/fbtft/fb_pcd8544.c b/drivers/staging/fbtft/fb_pcd8544.c index dea698a016fa..7ba220f07d01 100644 --- a/drivers/staging/fbtft/fb_pcd8544.c +++ b/drivers/staging/fbtft/fb_pcd8544.c @@ -29,7 +29,7 @@ #define DRVNAME "fb_pcd8544" #define WIDTH 84 #define HEIGHT 48 -#define TXBUFLEN (84*6) +#define TXBUFLEN (84 * 6) #define DEFAULT_GAMMA "40" /* gamma controls the contrast in this driver */ static unsigned tc; @@ -125,14 +125,15 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) for (y = 0; y < 6; y++) { *buf = 0x00; for (i = 0; i < 8; i++) - *buf |= (vmem16[(y*8+i)*84+x] ? 1 : 0) << i; + *buf |= (vmem16[(y * 8 + i) * 84 + x] ? + 1 : 0) << i; buf++; } } /* Write data */ gpio_set_value(par->gpio.dc, 1); - ret = par->fbtftops.write(par, par->txbuf.buf, 6*84); + ret = par->fbtftops.write(par, par->txbuf.buf, 6 * 84); if (ret < 0) dev_err(par->info->device, "write failed and returned: %d\n", ret); diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c index 62ab7fac59df..5c1d93d425d0 100644 --- a/drivers/staging/fbtft/fb_ra8875.c +++ b/drivers/staging/fbtft/fb_ra8875.c @@ -186,10 +186,10 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) write_reg(par, 0x31, (xs & 0xFF00) >> 8); write_reg(par, 0x32, ys & 0x00FF); write_reg(par, 0x33, (ys & 0xFF00) >> 8); - write_reg(par, 0x34, (xs+xe) & 0x00FF); - write_reg(par, 0x35, ((xs+xe) & 0xFF00) >> 8); - write_reg(par, 0x36, (ys+ye) & 0x00FF); - write_reg(par, 0x37, ((ys+ye) & 0xFF00) >> 8); + write_reg(par, 0x34, (xs + xe) & 0x00FF); + write_reg(par, 0x35, ((xs + xe) & 0xFF00) >> 8); + write_reg(par, 0x36, (ys + ye) & 0x00FF); + write_reg(par, 0x37, ((ys + ye) & 0xFF00) >> 8); /* Set_Memory_Write_Cursor */ write_reg(par, 0x46, xs & 0xff); diff --git a/drivers/staging/fbtft/fb_s6d1121.c b/drivers/staging/fbtft/fb_s6d1121.c index e97d1c5d7b3f..9ee8d56cd569 100644 --- a/drivers/staging/fbtft/fb_s6d1121.c +++ b/drivers/staging/fbtft/fb_s6d1121.c @@ -133,7 +133,7 @@ static int set_var(struct fbtft_par *par) PKP0 PKP1 PKP2 PKP3 PKP4 PKP5 PKP6 PKP7 PKP8 PKP9 PKP10 PKP11 VRP0 VRP1 PKN0 PKN1 PKN2 PKN3 PKN4 PKN5 PKN6 PKN7 PRN8 PRN9 PRN10 PRN11 VRN0 VRN1 */ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int set_gamma(struct fbtft_par *par, unsigned long *curves) { unsigned long mask[] = { @@ -148,7 +148,7 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) /* apply mask */ for (i = 0; i < 2; i++) for (j = 0; j < 14; j++) - CURVE(i, j) &= mask[i*par->gamma.num_values + j]; + CURVE(i, j) &= mask[i * par->gamma.num_values + j]; write_reg(par, 0x0030, CURVE(0, 1) << 8 | CURVE(0, 0)); write_reg(par, 0x0031, CURVE(0, 3) << 8 | CURVE(0, 2)); diff --git a/drivers/staging/fbtft/fb_ssd1289.c b/drivers/staging/fbtft/fb_ssd1289.c index 96039b4e5505..e6804524a47b 100644 --- a/drivers/staging/fbtft/fb_ssd1289.c +++ b/drivers/staging/fbtft/fb_ssd1289.c @@ -139,7 +139,7 @@ static int set_var(struct fbtft_par *par) VRP0 VRP1 PRP0 PRP1 PKP0 PKP1 PKP2 PKP3 PKP4 PKP5 VRN0 VRN1 PRN0 PRN1 PKN0 PKN1 PKN2 PKN3 PKN4 PKN5 */ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int set_gamma(struct fbtft_par *par, unsigned long *curves) { unsigned long mask[] = { @@ -153,7 +153,7 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) /* apply mask */ for (i = 0; i < 2; i++) for (j = 0; j < 10; j++) - CURVE(i, j) &= mask[i*par->gamma.num_values + j]; + CURVE(i, j) &= mask[i * par->gamma.num_values + j]; write_reg(par, 0x0030, CURVE(0, 5) << 8 | CURVE(0, 4)); write_reg(par, 0x0031, CURVE(0, 7) << 8 | CURVE(0, 6)); diff --git a/drivers/staging/fbtft/fb_ssd1306.c b/drivers/staging/fbtft/fb_ssd1306.c index 6013b68362c0..4fe899ba68cf 100644 --- a/drivers/staging/fbtft/fb_ssd1306.c +++ b/drivers/staging/fbtft/fb_ssd1306.c @@ -175,7 +175,9 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) for (y = 0; y < par->info->var.yres/8; y++) { *buf = 0x00; for (i = 0; i < 8; i++) - *buf |= (vmem16[(y*8+i)*par->info->var.xres+x] ? 1 : 0) << i; + *buf |= (vmem16[(y * 8 + i) * + par->info->var.xres + x] ? + 1 : 0) << i; buf++; } } @@ -183,7 +185,8 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) /* Write data */ gpio_set_value(par->gpio.dc, 1); ret = par->fbtftops.write(par, par->txbuf.buf, - par->info->var.xres*par->info->var.yres/8); + par->info->var.xres * par->info->var.yres / + 8); if (ret < 0) dev_err(par->info->device, "write failed and returned: %d\n", ret); diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c index d7a716de8006..e249bbfe5e89 100644 --- a/drivers/staging/fbtft/fb_st7735r.c +++ b/drivers/staging/fbtft/fb_st7735r.c @@ -137,7 +137,7 @@ static int set_var(struct fbtft_par *par) VRF0P VOS0P PK0P PK1P PK2P PK3P PK4P PK5P PK6P PK7P PK8P PK9P SELV0P SELV1P SELV62P SELV63P VRF0N VOS0N PK0N PK1N PK2N PK3N PK4N PK5N PK6N PK7N PK8N PK9N SELV0N SELV1N SELV62N SELV63N */ -#define CURVE(num, idx) curves[num*par->gamma.num_values + idx] +#define CURVE(num, idx) curves[num * par->gamma.num_values + idx] static int set_gamma(struct fbtft_par *par, unsigned long *curves) { int i, j; diff --git a/drivers/staging/fbtft/fb_tls8204.c b/drivers/staging/fbtft/fb_tls8204.c index e7dd41ffe2fe..1225ba9f8b1b 100644 --- a/drivers/staging/fbtft/fb_tls8204.c +++ b/drivers/staging/fbtft/fb_tls8204.c @@ -102,7 +102,7 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - for (y = 0; y < HEIGHT/8; y++) { + for (y = 0; y < HEIGHT / 8; y++) { u8 *buf = par->txbuf.buf; /* The display is 102x68 but the LCD is 84x48. Set the write pointer at the start of each row. */ @@ -113,9 +113,9 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) for (x = 0; x < WIDTH; x++) { u8 ch = 0; - for (i = 0; i < 8*WIDTH; i += WIDTH) { + for (i = 0; i < 8 * WIDTH; i += WIDTH) { ch >>= 1; - if (vmem16[(y*8*WIDTH)+i+x]) + if (vmem16[(y * 8 * WIDTH) + i + x]) ch |= 0x80; } *buf++ = ch; diff --git a/drivers/staging/fbtft/fb_uc1701.c b/drivers/staging/fbtft/fb_uc1701.c index e94ecd683c43..e0d4d36047cc 100644 --- a/drivers/staging/fbtft/fb_uc1701.c +++ b/drivers/staging/fbtft/fb_uc1701.c @@ -29,7 +29,7 @@ #define DRVNAME "fb_uc1701" #define WIDTH 102 #define HEIGHT 64 -#define PAGES (HEIGHT/8) +#define PAGES (HEIGHT / 8) /* 1: Display on/off */ #define LCD_DISPLAY_ENABLE 0xAE @@ -116,7 +116,7 @@ static int init_display(struct fbtft_par *par) /* advanced program control */ write_reg(par, LCD_ADV_PROG_CTRL); - write_reg(par, LCD_ADV_PROG_CTRL2|LCD_TEMPCOMP_HIGH); + write_reg(par, LCD_ADV_PROG_CTRL2 | LCD_TEMPCOMP_HIGH); /* enable display */ write_reg(par, LCD_DISPLAY_ENABLE | 1); @@ -155,13 +155,15 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) for (x = 0; x < WIDTH; x++) { *buf = 0x00; for (i = 0; i < 8; i++) - *buf |= (vmem16[((y*8*WIDTH)+(i*WIDTH))+x] ? 1 : 0) << i; + *buf |= (vmem16[((y * 8 * WIDTH) + + (i * WIDTH)) + x] ? + 1 : 0) << i; buf++; } /* LCD_PAGE_ADDRESS | ((page) & 0x1F), (((col)+SHIFT_ADDR_NORMAL) & 0x0F), LCD_COL_ADDRESS | ((((col)+SHIFT_ADDR_NORMAL)>>4) & 0x0F) */ - write_reg(par, LCD_PAGE_ADDRESS|(u8)y); + write_reg(par, LCD_PAGE_ADDRESS | (u8)y); /* LCD_PAGE_ADDRESS | ((page) & 0x1F), (((col)+SHIFT_ADDR_NORMAL) & 0x0F), LCD_COL_ADDRESS | ((((col)+SHIFT_ADDR_NORMAL)>>4) & 0x0F) */ diff --git a/drivers/staging/fbtft/fbtft-bus.c b/drivers/staging/fbtft/fbtft-bus.c index 0e0def4be563..97129241cab9 100644 --- a/drivers/staging/fbtft/fbtft-bus.c +++ b/drivers/staging/fbtft/fbtft-bus.c @@ -38,7 +38,7 @@ void func(struct fbtft_par *par, int len, ...) \ *buf = modifier((type)va_arg(args, unsigned int)); \ if (par->gpio.dc != -1) \ gpio_set_value(par->gpio.dc, 0); \ - ret = par->fbtftops.write(par, par->buf, sizeof(type)+offset); \ + ret = par->fbtftops.write(par, par->buf, sizeof(type) + offset); \ if (ret < 0) { \ va_end(args); \ dev_err(par->info->device, "%s: write() failed and returned %d\n", __func__, ret); \ @@ -56,7 +56,8 @@ void func(struct fbtft_par *par, int len, ...) \ } \ if (par->gpio.dc != -1) \ gpio_set_value(par->gpio.dc, 1); \ - ret = par->fbtftops.write(par, par->buf, len * (sizeof(type)+offset)); \ + ret = par->fbtftops.write(par, par->buf, \ + len * (sizeof(type) + offset)); \ if (ret < 0) { \ va_end(args); \ dev_err(par->info->device, "%s: write() failed and returned %d\n", __func__, ret); \ @@ -214,7 +215,7 @@ int fbtft_write_vmem16_bus9(struct fbtft_par *par, size_t offset, size_t len) txbuf16[i] = 0x0100 | ioread8(vmem8 + i); #endif vmem8 = vmem8 + to_copy; - ret = par->fbtftops.write(par, par->txbuf.buf, to_copy*2); + ret = par->fbtftops.write(par, par->txbuf.buf, to_copy * 2); if (ret < 0) return ret; remain -= to_copy; diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index fa813999aca7..293fcbb3b064 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -385,7 +385,7 @@ static void fbtft_update_display(struct fbtft_par *par, unsigned start_line, if (par->fbtftops.set_addr_win) par->fbtftops.set_addr_win(par, 0, start_line, - par->info->var.xres-1, end_line); + par->info->var.xres - 1, end_line); offset = start_line * par->info->fix.line_length; len = (end_line - start_line + 1) * par->info->fix.line_length; @@ -785,7 +785,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display, info->fix.xpanstep = 0; info->fix.ypanstep = 0; info->fix.ywrapstep = 0; - info->fix.line_length = width*bpp/8; + info->fix.line_length = width * bpp / 8; info->fix.accel = FB_ACCEL_NONE; info->fix.smem_len = vmem_size; @@ -981,12 +981,12 @@ int fbtft_register_framebuffer(struct fb_info *fb_info) par->txbuf.len >> 10, par->txbuf.dma ? "DMA " : ""); if (spi) sprintf(text2, ", spi%d.%d at %d MHz", spi->master->bus_num, - spi->chip_select, spi->max_speed_hz/1000000); + spi->chip_select, spi->max_speed_hz / 1000000); dev_info(fb_info->dev, "%s frame buffer, %dx%d, %d KiB video memory%s, fps=%lu%s\n", fb_info->fix.id, fb_info->var.xres, fb_info->var.yres, fb_info->fix.smem_len >> 10, text1, - HZ/fb_info->fbdefio->delay, text2); + HZ / fb_info->fbdefio->delay, text2); #ifdef CONFIG_FB_BACKLIGHT /* Turn on backlight if available */ @@ -1168,7 +1168,7 @@ int fbtft_init_display(struct fbtft_par *par) "missing delimiter at position %d\n", i); return -EINVAL; } - if (par->init_sequence[i+1] < 0) { + if (par->init_sequence[i + 1] < 0) { dev_err(par->info->device, "missing value after delimiter %d at position %d\n", par->init_sequence[i], i); diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fbtft-sysfs.c index 73c7ec6de077..8d8bd12b90a1 100644 --- a/drivers/staging/fbtft/fbtft-sysfs.c +++ b/drivers/staging/fbtft/fbtft-sysfs.c @@ -103,8 +103,8 @@ sprintf_gamma(struct fbtft_par *par, unsigned long *curves, char *buf) for (i = 0; i < par->gamma.num_curves; i++) { for (j = 0; j < par->gamma.num_values; j++) len += scnprintf(&buf[len], PAGE_SIZE, - "%04lx ", curves[i*par->gamma.num_values + j]); - buf[len-1] = '\n'; + "%04lx ", curves[i * par->gamma.num_values + j]); + buf[len - 1] = '\n'; } mutex_unlock(&par->gamma.lock); diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index e9c2040b0129..0483d33b2638 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -1202,7 +1202,7 @@ static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par, } /* used if gpios parameter is present */ -static struct fbtft_gpio fbtft_device_param_gpios[MAX_GPIOS+1] = { }; +static struct fbtft_gpio fbtft_device_param_gpios[MAX_GPIOS + 1] = { }; static void fbtft_device_pdev_release(struct device *dev) { @@ -1216,7 +1216,7 @@ static int spi_device_found(struct device *dev, void *data) struct spi_device *spi = container_of(dev, struct spi_device, dev); pr_info(DRVNAME": %s %s %dkHz %d bits mode=0x%02X\n", - spi->modalias, dev_name(dev), spi->max_speed_hz/1000, + spi->modalias, dev_name(dev), spi->max_speed_hz / 1000, spi->bits_per_word, spi->mode); return 0; From 1e498d4b40120899f1477b106677f3fa2cc7bb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:19 +0200 Subject: [PATCH 0180/2431] staging: mt29f_spinand: Export OF module alias information The SPI core always reports the MODALIAS uevent as "spi:" regardless of the mechanism that was used to register the device (i.e: OF or board code) and the table that is used later to match the driver with the device (i.e: SPI id table or OF match table). So drivers needs to export the SPI id table and this be built into the module or udev won't have the necessary information to autoload the needed driver module when the device is added. But this means that OF-only drivers needs to have both OF and SPI id tables that have to be kept in sync and also the dev node compatible manufacturer prefix is stripped when reporting the MODALIAS. Which can lead to issues if two vendors use the same SPI device name for example. To avoid the above, the SPI core behavior may be changed in the future to not require an SPI device table for OF-only drivers and report the OF module alias. So, it's better to also export the OF table even when is unused now to prevent breaking module loading when the core changes. Signed-off-by: Javier Martinez Canillas Signed-off-by: Greg Kroah-Hartman --- drivers/staging/mt29f_spinand/mt29f_spinand.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index ad30ce4206ef..1aa449e5fecf 100644 --- a/drivers/staging/mt29f_spinand/mt29f_spinand.c +++ b/drivers/staging/mt29f_spinand/mt29f_spinand.c @@ -941,6 +941,7 @@ static const struct of_device_id spinand_dt[] = { { .compatible = "spinand,mt29f", }, {} }; +MODULE_DEVICE_TABLE(of, spinand_dt); /* * Device name structure description From 1972308bf580ad092c315ad21700946320ab54f7 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 3 Sep 2015 13:13:51 +0200 Subject: [PATCH 0181/2431] staging: octeon-usb: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon-usb/octeon-hcd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/octeon-usb/octeon-hcd.c b/drivers/staging/octeon-usb/octeon-hcd.c index 9bd73ea5a1fa..61940284311c 100644 --- a/drivers/staging/octeon-usb/octeon-hcd.c +++ b/drivers/staging/octeon-usb/octeon-hcd.c @@ -3743,6 +3743,7 @@ static const struct of_device_id octeon_usb_match[] = { }, {}, }; +MODULE_DEVICE_TABLE(of, octeon_usb_match); static struct platform_driver octeon_usb_driver = { .driver = { From 8c17893c2fe2e0a506ef07eda486ebc9aa709da7 Mon Sep 17 00:00:00 2001 From: Nayeemahmed Badebade Date: Thu, 27 Aug 2015 21:02:46 +0530 Subject: [PATCH 0182/2431] staging: panel: panel.c: Fixed coding style issues Fixed warnings reported by checkpatch.pl: - Block comments use a trailing */ on a separate line - Block comments use * on subsequent lines Signed-off-by: Nayeemahmed Badebade Acked-by: Willy Tarreau Signed-off-by: Greg Kroah-Hartman --- drivers/staging/panel/panel.c | 63 +++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index 3e9ee7ee6be2..498d6233648f 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c @@ -909,8 +909,10 @@ static void lcd_gotoxy(void) { lcd_write_cmd(LCD_CMD_SET_DDRAM_ADDR | (lcd.addr.y ? lcd.hwidth : 0) - /* we force the cursor to stay at the end of the - line if it wants to go farther */ + /* + * we force the cursor to stay at the end of the + * line if it wants to go farther + */ | ((lcd.addr.x < lcd.bwidth) ? lcd.addr.x & (lcd.hwidth - 1) : lcd.bwidth - 1)); } @@ -1294,8 +1296,10 @@ static inline int handle_lcd_special_code(void) if (lcd.flags & (LCD_FLAG_L)) lcd_backlight(1); else if (lcd.light_tempo == 0) - /* switch off the light only when the tempo - lighting is gone */ + /* + * switch off the light only when the tempo + * lighting is gone + */ lcd_backlight(0); } } @@ -1323,8 +1327,10 @@ static void lcd_write_char(char c) case '\b': /* go back one char and clear it */ if (lcd.addr.x > 0) { - /* check if we're not at the - end of the line */ + /* + * check if we're not at the + * end of the line + */ if (lcd.addr.x < lcd.bwidth) /* back one char */ lcd_write_cmd(LCD_CMD_SHIFT); @@ -1340,8 +1346,10 @@ static void lcd_write_char(char c) lcd_clear_fast(); break; case '\n': - /* flush the remainder of the current line and - go to the beginning of the next line */ + /* + * flush the remainder of the current line and + * go to the beginning of the next line + */ for (; lcd.addr.x < lcd.bwidth; lcd.addr.x++) lcd_write_data(' '); lcd.addr.x = 0; @@ -1364,8 +1372,10 @@ static void lcd_write_char(char c) } } - /* now we'll see if we're in an escape mode and if the current - escape sequence can be understood. */ + /* + * now we'll see if we're in an escape mode and if the current + * escape sequence can be understood. + */ if (lcd.esc_seq.len >= 2) { int processed = 0; @@ -1388,8 +1398,10 @@ static void lcd_write_char(char c) } /* LCD special escape codes */ - /* flush the escape sequence if it's been processed - or if it is getting too long. */ + /* + * flush the escape sequence if it's been processed + * or if it is getting too long. + */ if (processed || (lcd.esc_seq.len >= LCD_ESCAPE_LEN)) lcd.esc_seq.len = -1; } /* escape codes */ @@ -1403,8 +1415,10 @@ static ssize_t lcd_write(struct file *file, for (; count-- > 0; (*ppos)++, tmp++) { if (!in_interrupt() && (((count + 1) & 0x1f) == 0)) - /* let's be a little nice with other processes - that need some CPU */ + /* + * let's be a little nice with other processes + * that need some CPU + */ schedule(); if (get_user(c, tmp)) @@ -1459,8 +1473,10 @@ static void panel_lcd_print(const char *s) if (lcd.enabled && lcd.initialized) { for (; count-- > 0; tmp++) { if (!in_interrupt() && (((count + 1) & 0x1f) == 0)) - /* let's be a little nice with other processes - that need some CPU */ + /* + * let's be a little nice with other processes + * that need some CPU + */ schedule(); lcd_write_char(*tmp); @@ -1634,9 +1650,11 @@ static void lcd_init(void) pin_to_bits(lcd.pins.da, lcd_bits[LCD_PORT_D][LCD_BIT_DA], lcd_bits[LCD_PORT_C][LCD_BIT_DA]); - /* before this line, we must NOT send anything to the display. + /* + * before this line, we must NOT send anything to the display. * Since lcd_init_display() needs to write data, we have to - * enable mark the LCD initialized just before. */ + * enable mark the LCD initialized just before. + */ lcd.initialized = true; lcd_init_display(); @@ -1770,7 +1788,8 @@ static void phys_scan_contacts(void) phys_read |= (pmask_t) gndmask << 40; if (bitmask != gndmask) { - /* since clearing the outputs changed some inputs, we know + /* + * since clearing the outputs changed some inputs, we know * that some input signals are currently tied to some outputs. * So we'll scan them. */ @@ -1786,8 +1805,10 @@ static void phys_scan_contacts(void) } w_dtr(pprt, oldval); /* disable all outputs */ } - /* this is easy: use old bits when they are flapping, - * use new ones when stable */ + /* + * this is easy: use old bits when they are flapping, + * use new ones when stable + */ phys_curr = (phys_prev & (phys_read ^ phys_read_prev)) | (phys_read & ~(phys_read ^ phys_read_prev)); } From 0b190f34f7b535171ed5a1c09e6a7603b0a8d3ef Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 22 Aug 2015 16:28:11 +0530 Subject: [PATCH 0183/2431] Staging: rtl8192e: rtl_core.c: Remove unused variable This patch discards the variable ResetThreshold as it is not used anywhere throughout the kernel. Build tested it. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index d6b46dfd01e1..52e1e27cb7b0 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1131,7 +1131,6 @@ static enum reset_type rtl819x_TxCheckStuck(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 QueueID; - u8 ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE; bool bCheckFwTxCnt = false; struct rtl8192_tx_ring *ring = NULL; struct sk_buff *skb = NULL; @@ -1140,13 +1139,10 @@ static enum reset_type rtl819x_TxCheckStuck(struct net_device *dev) switch (priv->rtllib->ps) { case RTLLIB_PS_DISABLED: - ResetThreshold = NIC_SEND_HANG_THRESHOLD_NORMAL; break; case (RTLLIB_PS_MBCAST|RTLLIB_PS_UNICAST): - ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE; break; default: - ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE; break; } spin_lock_irqsave(&priv->irq_th_lock, flags); From afeeff07440650bb03a659de8ef4c8eb5328d5d7 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 22 Aug 2015 16:28:14 +0530 Subject: [PATCH 0184/2431] Staging: rtl8723au: core: Remove unused variable This patch discards the variable as it is not used anywhere throughout the kernel. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_security.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_security.c b/drivers/staging/rtl8723au/core/rtw_security.c index 3d40bab1d9c8..82518cd3433a 100644 --- a/drivers/staging/rtl8723au/core/rtw_security.c +++ b/drivers/staging/rtl8723au/core/rtw_security.c @@ -608,7 +608,6 @@ int rtw_tkip_encrypt23a(struct rtw_adapter *padapter, u8 hw_hdr_offset = 0; struct arc4context mycontext; int curfragnum, length; - u32 prwskeylen; u8 *pframe, *payload, *iv, *prwskey; union pn48 dot11txpn; struct sta_info *stainfo; @@ -655,8 +654,6 @@ int rtw_tkip_encrypt23a(struct rtw_adapter *padapter, else prwskey = &stainfo->dot118021x_UncstKey.skey[0]; - prwskeylen = 16; - /* 4 start to encrypt each fragment */ for (curfragnum = 0; curfragnum < pattrib->nr_frags; curfragnum++) { iv = pframe + pattrib->hdrlen; @@ -719,7 +716,6 @@ int rtw_tkip_decrypt23a(struct rtw_adapter *padapter, u32 actual_crc, expected_crc; struct arc4context mycontext; int length; - u32 prwskeylen; u8 *pframe, *payload, *iv, *prwskey; union pn48 dot11txpn; struct sta_info *stainfo; @@ -749,12 +745,10 @@ int rtw_tkip_decrypt23a(struct rtw_adapter *padapter, goto exit; } prwskey = psecuritypriv->dot118021XGrpKey[prxattrib->key_index].skey; - prwskeylen = 16; } else { RT_TRACE(_module_rtl871x_security_c_, _drv_err_, "%s: stainfo!= NULL!!!\n", __func__); prwskey = &stainfo->dot118021x_UncstKey.skey[0]; - prwskeylen = 16; } iv = pframe + prxattrib->hdrlen; @@ -1288,7 +1282,6 @@ int rtw_aes_encrypt23a(struct rtw_adapter *padapter, { /* exclude ICV */ /* Intermediate Buffers */ int curfragnum, length; - u32 prwskeylen; u8 *pframe, *prwskey; u8 hw_hdr_offset = 0; struct sta_info *stainfo; @@ -1335,8 +1328,6 @@ int rtw_aes_encrypt23a(struct rtw_adapter *padapter, else prwskey = &stainfo->dot118021x_UncstKey.skey[0]; - prwskeylen = 16; - for (curfragnum = 0; curfragnum < pattrib->nr_frags; curfragnum++) { /* 4 the last fragment */ if ((curfragnum + 1) == pattrib->nr_frags) { From d40d3e117a82650423944182477b4027a7e45d72 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 22 Aug 2015 16:28:13 +0530 Subject: [PATCH 0185/2431] Staging: rtl819u: ieee80211: Remove unused variable This patch discards the variable count as it is not used anywhere throughout the kernel. Build tested it. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 3e502520648e..3445fd4a94cb 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -308,7 +308,6 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) HT_EXTCHNL_OFFSET chan_offset=0; HT_CHANNEL_WIDTH bandwidth=0; int b40M = 0; - static int count; chan = ieee->current_network.channel; netif_carrier_off(ieee->dev); @@ -357,7 +356,6 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) ieee80211_start_send_beacons(ieee); netif_carrier_on(ieee->dev); - count = 0; up(&ieee->wx_sem); } From f740474bbf8b2e1e0ccf0a45d929b219aabbc95a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 22 Aug 2015 16:28:12 +0530 Subject: [PATCH 0186/2431] Staging: rtl8192e: r8192E_dev.c: Remove unused variable This patch discards the variable as it is not used anywhere throughout the kernel. Build tested it. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index c28cabc23fc0..353e3fedb79e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -108,7 +108,6 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val) case HW_VAR_MEDIA_STATUS: { enum rt_op_mode OpMode = *((enum rt_op_mode *)(val)); - enum led_ctl_mode LedAction = LED_CTL_NO_LINK; u8 btMsr = rtl92e_readb(dev, MSR); btMsr &= 0xfc; @@ -116,7 +115,6 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val) switch (OpMode) { case RT_OP_MODE_INFRASTRUCTURE: btMsr |= MSR_INFRA; - LedAction = LED_CTL_LINK; break; case RT_OP_MODE_IBSS: @@ -125,7 +123,6 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val) case RT_OP_MODE_AP: btMsr |= MSR_AP; - LedAction = LED_CTL_LINK; break; default: From 2f0c1424f0663fedd8f38b00088f2d4fdeb03b09 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Fri, 28 Aug 2015 00:57:45 +0200 Subject: [PATCH 0187/2431] staging: rtl8723au: remove unimplemented function declarations Signed-off-by: Luca Ceresoli Acked-by: Jes Sorensen Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/include/rtw_cmd.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/rtl8723au/include/rtw_cmd.h b/drivers/staging/rtl8723au/include/rtw_cmd.h index 4dcc9253be51..d1fa95d28904 100644 --- a/drivers/staging/rtl8723au/include/rtw_cmd.h +++ b/drivers/staging/rtl8723au/include/rtw_cmd.h @@ -725,11 +725,9 @@ void rtw_disassoc_cmd23a_callback(struct rtw_adapter *padapter, struct cmd_obj void rtw_joinbss_cmd23a_callback(struct rtw_adapter *padapter, struct cmd_obj *pcmd); void rtw_createbss_cmd23a_callback(struct rtw_adapter *padapter, struct cmd_obj *pcmd); void rtw_getbbrfreg_cmdrsp_callback23a(struct rtw_adapter *padapter, struct cmd_obj *pcmd); -void rtw_readtssi_cmdrsp_callback(struct rtw_adapter* padapter, struct cmd_obj *pcmd); void rtw_setstaKey_cmdrsp_callback23a(struct rtw_adapter *padapter, struct cmd_obj *pcmd); void rtw_setassocsta_cmdrsp_callback23a(struct rtw_adapter *padapter, struct cmd_obj *pcmd); -void rtw_getrttbl_cmdrsp_callback(struct rtw_adapter *padapter, struct cmd_obj *pcmd); struct _cmd_callback { u32 cmd_code; From 2503426cfbb3fa48606d51aec3525d3d1680d304 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sun, 30 Aug 2015 23:52:13 +0200 Subject: [PATCH 0188/2431] Staging: ste_rmi4: Remove unnecessary MODULE_ALIAS() The driver has a I2C device id table that is used to create the modaliases which already contains "synaptics_rmi4_ts". So the alias is not needed. Signed-off-by: Javier Martinez Canillas Signed-off-by: Greg Kroah-Hartman --- drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c b/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c index 1f9ba8beb061..824d460911ec 100644 --- a/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c +++ b/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c @@ -1138,4 +1138,3 @@ module_i2c_driver(synaptics_rmi4_driver); MODULE_LICENSE("GPL v2"); MODULE_AUTHOR("naveen.gaddipati@stericsson.com, js.ha@stericsson.com"); MODULE_DESCRIPTION("synaptics rmi4 i2c touch Driver"); -MODULE_ALIAS("i2c:synaptics_rmi4_ts"); From 9c76f012702d71b85567ae3bd1bed47c570b4eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= Date: Wed, 2 Sep 2015 01:35:00 +0200 Subject: [PATCH 0189/2431] staging: rtl8723au: remove unnecessary le32_to_cpu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The values passed to le32_to_cpu are already in the correct byte order. This fixes four "cast to restricted __le32" sparse warnings. Signed-off-by: MichaÅ‚ Bartoszkiewicz Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_security.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_security.c b/drivers/staging/rtl8723au/core/rtw_security.c index 82518cd3433a..038b57b3afe2 100644 --- a/drivers/staging/rtl8723au/core/rtw_security.c +++ b/drivers/staging/rtl8723au/core/rtw_security.c @@ -245,8 +245,8 @@ void rtw_wep_decrypt23a(struct rtw_adapter *padapter, arcfour_encrypt(&mycontext, payload, payload, length); /* calculate icv and compare the icv */ - actual_crc = le32_to_cpu(getcrc32(payload, length - 4)); - expected_crc = le32_to_cpu(get_unaligned_le32(&payload[length - 4])); + actual_crc = getcrc32(payload, length - 4); + expected_crc = get_unaligned_le32(&payload[length - 4]); if (actual_crc != expected_crc) { RT_TRACE(_module_rtl871x_security_c_, _drv_err_, @@ -767,8 +767,8 @@ int rtw_tkip_decrypt23a(struct rtw_adapter *padapter, arcfour_init(&mycontext, rc4key, 16); arcfour_encrypt(&mycontext, payload, payload, length); - actual_crc = le32_to_cpu(getcrc32(payload, length - 4)); - expected_crc = le32_to_cpu(get_unaligned_le32(&payload[length - 4])); + actual_crc = getcrc32(payload, length - 4); + expected_crc = get_unaligned_le32(&payload[length - 4]); if (actual_crc != expected_crc) { RT_TRACE(_module_rtl871x_security_c_, _drv_err_, From 10d7108466f91edac408c568defd0863965d34ea Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Wed, 2 Sep 2015 22:41:19 +0530 Subject: [PATCH 0190/2431] staging: goldfish: Fix NULL comparison style Fixed NULL comparison style as suggested by checkpatch.pl with --strict option. Signed-off-by: Ravi Teja Darbha Signed-off-by: Greg Kroah-Hartman --- drivers/staging/goldfish/goldfish_nand.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/goldfish/goldfish_nand.c b/drivers/staging/goldfish/goldfish_nand.c index 66ae48fcc2b2..623353db5a08 100644 --- a/drivers/staging/goldfish/goldfish_nand.c +++ b/drivers/staging/goldfish/goldfish_nand.c @@ -48,7 +48,7 @@ static u32 goldfish_nand_cmd_with_params(struct mtd_info *mtd, struct cmd_params *cps = nand->cmd_params; unsigned char __iomem *base = nand->base; - if (cps == NULL) + if (!cps) return -1; switch (cmd) { @@ -379,7 +379,7 @@ static int goldfish_nand_probe(struct platform_device *pdev) unsigned char __iomem *base; r = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (r == NULL) + if (!r) return -ENODEV; base = devm_ioremap(&pdev->dev, r->start, PAGE_SIZE); From 768e66bd0b2ab33f294fec51c3a0820c616ae283 Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Thu, 3 Sep 2015 01:31:30 +0530 Subject: [PATCH 0191/2431] staging: goldfish: Prefer kernel type u32 over uint32_t Prefer kernel type u32 over uint32_t to maintain uniformity. Signed-off-by: Ravi Teja Darbha Signed-off-by: Greg Kroah-Hartman --- drivers/staging/goldfish/goldfish_nand_reg.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/goldfish/goldfish_nand_reg.h b/drivers/staging/goldfish/goldfish_nand_reg.h index fe7f47c7a5c8..43aeba3a4c8f 100644 --- a/drivers/staging/goldfish/goldfish_nand_reg.h +++ b/drivers/staging/goldfish/goldfish_nand_reg.h @@ -66,11 +66,11 @@ enum nand_reg { }; struct cmd_params { - uint32_t dev; - uint32_t addr_low; - uint32_t addr_high; - uint32_t transfer_size; + u32 dev; + u32 addr_low; + u32 addr_high; + u32 transfer_size; unsigned long data; - uint32_t result; + u32 result; }; #endif From 6b32fccc104da1e9673bb461035c1dbcb5a2962e Mon Sep 17 00:00:00 2001 From: Nayeemahmed Badebade Date: Thu, 3 Sep 2015 23:14:35 +0530 Subject: [PATCH 0192/2431] staging: comedi: kcomedilib: Fixed coding style issue Fixed checkpatch.pl warning in kcomedilib_main.c: - Block comments use * on subsequent lines Signed-off-by: Nayeemahmed Badebade Signed-off-by: Greg Kroah-Hartman --- .../comedi/kcomedilib/kcomedilib_main.c | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/staging/comedi/kcomedilib/kcomedilib_main.c b/drivers/staging/comedi/kcomedilib/kcomedilib_main.c index 76bf5619fdd5..d0a8a28edd36 100644 --- a/drivers/staging/comedi/kcomedilib/kcomedilib_main.c +++ b/drivers/staging/comedi/kcomedilib/kcomedilib_main.c @@ -1,20 +1,20 @@ /* - kcomedilib/kcomedilib.c - a comedlib interface for kernel modules - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 1997-2000 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ + * kcomedilib/kcomedilib.c + * a comedlib interface for kernel modules + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 1997-2000 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ #include From 76f966e79560ab0bcf20a48e8a0a3d51b3618bc5 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 20:50:51 +0300 Subject: [PATCH 0193/2431] staging: ft1000_pcmcia: staticize local functions in ft1000_dnld.c Several functions in ft1000_dnld.c are not used outside that file, make them static Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- .../ft1000/ft1000-pcmcia/ft1000_dnld.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c index 83683e9a1451..612ac0bd3756 100644 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c @@ -82,13 +82,6 @@ #define STATE_DONE_PROV 0x06 #define STATE_DONE_FILE 0x07 -u16 get_handshake(struct net_device *dev, u16 expected_value); -void put_handshake(struct net_device *dev, u16 handshake_value); -u16 get_request_type(struct net_device *dev); -long get_request_value(struct net_device *dev); -void put_request_value(struct net_device *dev, long lvalue); -u16 hdr_checksum(struct pseudo_hdr *pHdr); - struct dsp_file_hdr { u32 version_id; /* Version ID of this image format. */ u32 package_id; /* Package ID of code release. */ @@ -146,7 +139,7 @@ void card_bootload(struct net_device *dev) spin_unlock_irqrestore(&info->dpram_lock, flags); } -u16 get_handshake(struct net_device *dev, u16 expected_value) +static u16 get_handshake(struct net_device *dev, u16 expected_value) { struct ft1000_info *info = netdev_priv(dev); u16 handshake; @@ -180,7 +173,7 @@ u16 get_handshake(struct net_device *dev, u16 expected_value) } -void put_handshake(struct net_device *dev, u16 handshake_value) +static void put_handshake(struct net_device *dev, u16 handshake_value) { struct ft1000_info *info = netdev_priv(dev); u32 tempx; @@ -196,7 +189,7 @@ void put_handshake(struct net_device *dev, u16 handshake_value) } } -u16 get_request_type(struct net_device *dev) +static u16 get_request_type(struct net_device *dev) { struct ft1000_info *info = netdev_priv(dev); u16 request_type; @@ -215,7 +208,7 @@ u16 get_request_type(struct net_device *dev) } -long get_request_value(struct net_device *dev) +static long get_request_value(struct net_device *dev) { struct ft1000_info *info = netdev_priv(dev); long value; @@ -244,7 +237,7 @@ long get_request_value(struct net_device *dev) } -void put_request_value(struct net_device *dev, long lvalue) +static void put_request_value(struct net_device *dev, long lvalue) { struct ft1000_info *info = netdev_priv(dev); u16 size; @@ -271,7 +264,7 @@ void put_request_value(struct net_device *dev, long lvalue) } -u16 hdr_checksum(struct pseudo_hdr *pHdr) +static u16 hdr_checksum(struct pseudo_hdr *pHdr) { u16 *usPtr = (u16 *)pHdr; u16 chksum; From 310a28fd34d77e6dca246cd13b1e52018d3af819 Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Fri, 4 Sep 2015 00:48:14 +0600 Subject: [PATCH 0194/2431] staging/wilc1000: Use %pM format specifier to print mac address printk() supports %pM format specifier for printing 6-byte MAC/FDDI addresses in hex notation small buffers, let's use it intead of %x:%x... Signed-off-by: Alexander Kuleshov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/linux_wlan.c | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 17fa2997b1e7..c853f82b8b09 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -851,7 +851,7 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetMacAdd strWID.enuWIDtype = WID_STR; strWID.ps8WidVal = mac_buf; strWID.s32ValueSize = ETH_ALEN; - PRINT_D(GENERIC_DBG, "mac addr = :%x:%x:%x:%x:%x:%x\n", strWID.ps8WidVal[0], strWID.ps8WidVal[1], strWID.ps8WidVal[2], strWID.ps8WidVal[3], strWID.ps8WidVal[4], strWID.ps8WidVal[5]); + PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.ps8WidVal); /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); if (s32Error) { @@ -1948,8 +1948,8 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps if (pstrHostIFconnectAttr->pu8bssid != NULL) { memcpy(u8ConnectedSSID, pstrHostIFconnectAttr->pu8bssid, ETH_ALEN); - PRINT_D(GENERIC_DBG, "save Bssid = %x:%x:%x:%x:%x:%x\n", (pstrHostIFconnectAttr->pu8bssid[0]), (pstrHostIFconnectAttr->pu8bssid[1]), (pstrHostIFconnectAttr->pu8bssid[2]), (pstrHostIFconnectAttr->pu8bssid[3]), (pstrHostIFconnectAttr->pu8bssid[4]), (pstrHostIFconnectAttr->pu8bssid[5])); - PRINT_D(GENERIC_DBG, "save bssid = %x:%x:%x:%x:%x:%x\n", (u8ConnectedSSID[0]), (u8ConnectedSSID[1]), (u8ConnectedSSID[2]), (u8ConnectedSSID[3]), (u8ConnectedSSID[4]), (u8ConnectedSSID[5])); + PRINT_D(GENERIC_DBG, "save Bssid = %pM\n", pstrHostIFconnectAttr->pu8bssid); + PRINT_D(GENERIC_DBG, "save bssid = %pM\n", u8ConnectedSSID); } s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, (u32)pstrWFIDrv); diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 4f7f3b71d142..1e0b1d5f05bc 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2013,8 +2013,7 @@ int mac_open(struct net_device *ndev) Set_machw_change_vir_if(false); host_int_get_MacAddress(priv->hWILCWFIDrv, mac_add); - PRINT_D(INIT_DBG, "Mac address: %x:%x:%x:%x:%x:%x\n", mac_add[0], mac_add[1], mac_add[2], - mac_add[3], mac_add[4], mac_add[5]); + PRINT_D(INIT_DBG, "Mac address: %pM\n", mac_add); /* loop through the NUM of supported devices and set the MAC address */ for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { From b2952d62bab9a0c1d7c22ef427785886a0104f40 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 11:49:13 +0300 Subject: [PATCH 0195/2431] staging: lustre: fix whitespace errors reported by checkpatch.pl Added/removed spaces and replaced '+1' with '1' in several places to eliminate SPACING and POINTER_LOCATION errors reported by checkpatch.pl Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- .../lustre/lnet/klnds/socklnd/socklnd_cb.c | 4 +- drivers/staging/lustre/lnet/selftest/conrpc.h | 4 +- .../staging/lustre/lnet/selftest/console.c | 16 +- .../staging/lustre/lnet/selftest/selftest.h | 2 +- .../staging/lustre/lustre/include/cl_object.h | 14 +- .../staging/lustre/lustre/include/lu_object.h | 16 +- .../lustre/lustre/include/lustre/lustre_idl.h | 12 +- .../lustre/include/lustre/lustre_user.h | 4 +- .../lustre/lustre/include/lustre_capa.h | 2 +- .../lustre/lustre/include/lustre_disk.h | 2 +- .../lustre/lustre/include/lustre_dlm.h | 6 +- .../lustre/lustre/include/lustre_dlm_flags.h | 152 +++++++++--------- .../lustre/lustre/include/lustre_lib.h | 6 +- .../lustre/lustre/include/lustre_net.h | 2 +- drivers/staging/lustre/lustre/include/obd.h | 2 +- .../lustre/lustre/include/obd_support.h | 2 +- .../staging/lustre/lustre/libcfs/tracefile.c | 4 +- .../lustre/lustre/llite/llite_internal.h | 2 +- .../staging/lustre/lustre/llite/lproc_llite.c | 2 +- drivers/staging/lustre/lustre/llite/rw.c | 6 +- .../staging/lustre/lustre/llite/statahead.c | 4 +- drivers/staging/lustre/lustre/llite/vvp_io.c | 2 +- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 2 +- drivers/staging/lustre/lustre/lov/lov_obd.c | 4 +- .../staging/lustre/lustre/obdclass/cl_io.c | 10 +- .../staging/lustre/lustre/obdclass/cl_lock.c | 6 +- .../lustre/lustre/obdclass/cl_object.c | 2 +- .../lustre/lustre/obdclass/class_obd.c | 4 +- .../staging/lustre/lustre/obdclass/genops.c | 6 +- drivers/staging/lustre/lustre/obdclass/llog.c | 4 +- .../lustre/lustre/obdclass/obd_config.c | 2 +- .../staging/lustre/lustre/osc/osc_request.c | 6 +- .../lustre/lustre/ptlrpc/lproc_ptlrpc.c | 2 +- 33 files changed, 157 insertions(+), 157 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index ffdc06cbd18e..d0c79d1bb9f6 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c @@ -714,7 +714,7 @@ ksocknal_queue_tx_locked (ksock_tx_t *tx, ksock_conn_t *conn) LASSERT(tx->tx_resid == tx->tx_nob); CDEBUG (D_NET, "Packet %p type %d, nob %d niov %d nkiov %d\n", - tx, (tx->tx_lnetmsg != NULL) ? tx->tx_lnetmsg->msg_hdr.type: + tx, (tx->tx_lnetmsg != NULL) ? tx->tx_lnetmsg->msg_hdr.type : KSOCK_MSG_NOOP, tx->tx_nob, tx->tx_niov, tx->tx_nkiov); @@ -1092,7 +1092,7 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip) conn->ksnc_rx_iov[niov].iov_len = nob; niov++; skipped += nob; - nob_to_skip -=nob; + nob_to_skip -= nob; } while (nob_to_skip != 0 && /* mustn't overflow conn's rx iov */ niov < sizeof(conn->ksnc_rx_iov_space) / sizeof (struct iovec)); diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.h b/drivers/staging/lustre/lnet/selftest/conrpc.h index 7d33cf9e9d99..ae7ed75573b9 100644 --- a/drivers/staging/lustre/lnet/selftest/conrpc.h +++ b/drivers/staging/lustre/lnet/selftest/conrpc.h @@ -105,8 +105,8 @@ typedef struct lstcon_rpc_trans { #define LST_TRANS_STATQRY 0x21 -typedef int (* lstcon_rpc_cond_func_t)(int, struct lstcon_node *, void *); -typedef int (* lstcon_rpc_readent_func_t)(int, srpc_msg_t *, lstcon_rpc_ent_t *); +typedef int (*lstcon_rpc_cond_func_t)(int, struct lstcon_node *, void *); +typedef int (*lstcon_rpc_readent_func_t)(int, srpc_msg_t *, lstcon_rpc_ent_t *); int lstcon_sesrpc_prep(struct lstcon_node *nd, int transop, unsigned version, lstcon_rpc_t **crpc); diff --git a/drivers/staging/lustre/lnet/selftest/console.c b/drivers/staging/lustre/lnet/selftest/console.c index f47c8f27f975..5c624e19eaa1 100644 --- a/drivers/staging/lustre/lnet/selftest/console.c +++ b/drivers/staging/lustre/lnet/selftest/console.c @@ -308,7 +308,7 @@ lstcon_group_ndlink_release(lstcon_group_t *grp, lstcon_ndlink_t *ndl) { list_del_init(&ndl->ndl_link); lstcon_ndlink_release(ndl); - grp->grp_nnode --; + grp->grp_nnode--; } static void @@ -320,7 +320,7 @@ lstcon_group_ndlink_move(lstcon_group_t *old, list_del(&ndl->ndl_hlink); list_del(&ndl->ndl_link); - old->grp_nnode --; + old->grp_nnode--; list_add_tail(&ndl->ndl_hlink, &new->grp_ndl_hash[idx]); list_add_tail(&ndl->ndl_link, &new->grp_ndl_list); @@ -527,7 +527,7 @@ lstcon_group_add(char *name) lstcon_group_t *grp; int rc; - rc = (lstcon_group_find(name, &grp) == 0)? -EEXIST: 0; + rc = (lstcon_group_find(name, &grp) == 0) ? -EEXIST : 0; if (rc != 0) { /* find a group with same name */ lstcon_group_put(grp); @@ -816,7 +816,7 @@ lstcon_group_info(char *name, lstcon_ndlist_ent_t *gents_p, LST_NODE_STATE_COUNTER(ndl->ndl_node, gentp); rc = copy_to_user(gents_p, gentp, - sizeof(lstcon_ndlist_ent_t)) ? -EFAULT: 0; + sizeof(lstcon_ndlist_ent_t)) ? -EFAULT : 0; LIBCFS_FREE(gentp, sizeof(lstcon_ndlist_ent_t)); @@ -847,7 +847,7 @@ lstcon_batch_add(char *name) int i; int rc; - rc = (lstcon_batch_find(name, &bat) == 0)? -EEXIST: 0; + rc = (lstcon_batch_find(name, &bat) == 0) ? -EEXIST : 0; if (rc != 0) { CDEBUG(D_NET, "Batch %s already exists\n", name); return rc; @@ -911,7 +911,7 @@ lstcon_batch_list(int index, int len, char *name_up) list_for_each_entry(bat, &console_session.ses_bat_list, bat_link) { if (index-- == 0) { return copy_to_user(name_up, bat->bat_name, len) ? - -EFAULT: 0; + -EFAULT : 0; } } @@ -956,7 +956,7 @@ lstcon_batch_info(char *name, lstcon_test_batch_ent_t *ent_up, int server, &test->tes_dst_grp->grp_ndl_list; if (dents_up != NULL) { - rc = lstcon_nodes_getent((server ? srvlst: clilst), + rc = lstcon_nodes_getent((server ? srvlst : clilst), index_p, ndent_p, dents_up); return rc; } @@ -1683,7 +1683,7 @@ int lstcon_session_match(lst_sid_t sid) { return (console_session.ses_id.ses_nid == sid.ses_nid && - console_session.ses_id.ses_stamp == sid.ses_stamp) ? 1: 0; + console_session.ses_id.ses_stamp == sid.ses_stamp) ? 1 : 0; } static void diff --git a/drivers/staging/lustre/lnet/selftest/selftest.h b/drivers/staging/lustre/lnet/selftest/selftest.h index 7939e4e04d90..dfe3342750e9 100644 --- a/drivers/staging/lustre/lnet/selftest/selftest.h +++ b/drivers/staging/lustre/lnet/selftest/selftest.h @@ -562,7 +562,7 @@ static inline const char * swi_state2str (int state) { #define STATE2STR(x) case x: return #x - switch(state) { + switch (state) { default: LBUG(); STATE2STR(SWI_STATE_NEWBORN); diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index d56c8bea89c4..04dcb5111756 100644 --- a/drivers/staging/lustre/lustre/include/cl_object.h +++ b/drivers/staging/lustre/lustre/include/cl_object.h @@ -1095,7 +1095,7 @@ do { \ \ if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM)) { \ cl_page_print(env, &msgdata, lu_cdebug_printer, page); \ - CDEBUG(mask, format , ## __VA_ARGS__); \ + CDEBUG(mask, format, ## __VA_ARGS__); \ } \ } while (0) @@ -1108,7 +1108,7 @@ do { \ \ if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM)) { \ cl_page_header_print(env, &msgdata, lu_cdebug_printer, page); \ - CDEBUG(mask, format , ## __VA_ARGS__); \ + CDEBUG(mask, format, ## __VA_ARGS__); \ } \ } while (0) @@ -1475,13 +1475,13 @@ enum cl_lock_flags { * lock has been cancelled. This flag is never cleared once set (by * cl_lock_cancel0()). */ - CLF_CANCELLED = 1 << 0, + CLF_CANCELLED = 1 << 0, /** cancellation is pending for this lock. */ - CLF_CANCELPEND = 1 << 1, + CLF_CANCELPEND = 1 << 1, /** destruction is pending for this lock. */ - CLF_DOOMED = 1 << 2, + CLF_DOOMED = 1 << 2, /** from enqueue RPC reply upcall. */ - CLF_FROM_UPCALL= 1 << 3, + CLF_FROM_UPCALL = 1 << 3, }; /** @@ -1833,7 +1833,7 @@ do { \ \ if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM)) { \ cl_lock_print(env, &msgdata, lu_cdebug_printer, lock); \ - CDEBUG(mask, format , ## __VA_ARGS__); \ + CDEBUG(mask, format, ## __VA_ARGS__); \ } \ } while (0) diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index e1d72a7a5c2d..a16c9ea98373 100644 --- a/drivers/staging/lustre/lustre/include/lu_object.h +++ b/drivers/staging/lustre/lustre/include/lu_object.h @@ -790,7 +790,7 @@ do { \ \ if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM)) { \ lu_object_print(env, &msgdata, lu_cdebug_printer, object);\ - CDEBUG(mask, format , ## __VA_ARGS__); \ + CDEBUG(mask, format, ## __VA_ARGS__); \ } \ } while (0) @@ -805,7 +805,7 @@ do { \ lu_object_header_print(env, &msgdata, lu_cdebug_printer,\ (object)->lo_header); \ lu_cdebug_printer(env, &msgdata, "\n"); \ - CDEBUG(mask, format , ## __VA_ARGS__); \ + CDEBUG(mask, format, ## __VA_ARGS__); \ } \ } while (0) @@ -1131,7 +1131,7 @@ struct lu_context_key { \ return value; \ } \ - struct __##mod##__dummy_init {;} /* semicolon catcher */ + struct __##mod##__dummy_init {; } /* semicolon catcher */ #define LU_KEY_FINI(mod, type) \ static void mod##_key_fini(const struct lu_context *ctx, \ @@ -1141,7 +1141,7 @@ struct lu_context_key { \ OBD_FREE_PTR(info); \ } \ - struct __##mod##__dummy_fini {;} /* semicolon catcher */ + struct __##mod##__dummy_fini {; } /* semicolon catcher */ #define LU_KEY_INIT_FINI(mod, type) \ LU_KEY_INIT(mod, type); \ @@ -1193,28 +1193,28 @@ void lu_context_key_revive (struct lu_context_key *key); mod##_key_init_generic(__VA_ARGS__, NULL); \ return lu_context_key_register_many(__VA_ARGS__, NULL); \ } \ - struct __##mod##_dummy_type_init {;} + struct __##mod##_dummy_type_init {; } #define LU_TYPE_FINI(mod, ...) \ static void mod##_type_fini(struct lu_device_type *t) \ { \ lu_context_key_degister_many(__VA_ARGS__, NULL); \ } \ - struct __##mod##_dummy_type_fini {;} + struct __##mod##_dummy_type_fini {; } #define LU_TYPE_START(mod, ...) \ static void mod##_type_start(struct lu_device_type *t) \ { \ lu_context_key_revive_many(__VA_ARGS__, NULL); \ } \ - struct __##mod##_dummy_type_start {;} + struct __##mod##_dummy_type_start {; } #define LU_TYPE_STOP(mod, ...) \ static void mod##_type_stop(struct lu_device_type *t) \ { \ lu_context_key_quiesce_many(__VA_ARGS__, NULL); \ } \ - struct __##mod##_dummy_type_stop {;} + struct __##mod##_dummy_type_stop {; } diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index ac78dbc38b9f..e79af19ce853 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -827,7 +827,7 @@ static inline int lu_fid_eq(const struct lu_fid *f0, const struct lu_fid *f1) typeof(val0) __val0 = (val0); \ typeof(val1) __val1 = (val1); \ \ - (__val0 == __val1 ? 0 : __val0 > __val1 ? +1 : -1); \ + (__val0 == __val1 ? 0 : __val0 > __val1 ? 1 : -1); \ }) static inline int lu_fid_cmp(const struct lu_fid *f0, @@ -1404,9 +1404,9 @@ void lustre_swab_connect(struct obd_connect_data *ocd); * algorithm and also the OBD_FL_CKSUM* flags. */ typedef enum { - OBD_CKSUM_CRC32 = 0x00000001, - OBD_CKSUM_ADLER = 0x00000002, - OBD_CKSUM_CRC32C= 0x00000004, + OBD_CKSUM_CRC32 = 0x00000001, + OBD_CKSUM_ADLER = 0x00000002, + OBD_CKSUM_CRC32C = 0x00000004, } cksum_type_t; /* @@ -1444,7 +1444,7 @@ enum obdo_flags { OBD_FL_DELORPHAN = 0x00000004, /* if set in o_flags delete orphans */ OBD_FL_NORPC = 0x00000008, /* set in o_flags do in OSC not OST */ OBD_FL_IDONLY = 0x00000010, /* set in o_flags only adjust obj id*/ - OBD_FL_RECREATE_OBJS= 0x00000020, /* recreate missing obj */ + OBD_FL_RECREATE_OBJS = 0x00000020, /* recreate missing obj */ OBD_FL_DEBUG_CHECK = 0x00000040, /* echo client/server debug check */ OBD_FL_NO_USRQUOTA = 0x00000100, /* the object's owner is over quota */ OBD_FL_NO_GRPQUOTA = 0x00000200, /* the object's group is over quota */ @@ -3574,7 +3574,7 @@ struct link_ea_entry { unsigned char lee_reclen[2]; unsigned char lee_parent_fid[sizeof(struct lu_fid)]; char lee_name[0]; -}__attribute__((packed)); +} __attribute__((packed)); /** fid2path request/reply structure */ struct getinfo_fid2path { diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index 144afbed4d65..e9925ef1dbee 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -799,14 +799,14 @@ struct changelog_ext_rec { static inline int changelog_rec_size(struct changelog_rec *rec) { - return CHANGELOG_REC_EXTENDED(rec) ? sizeof(struct changelog_ext_rec): + return CHANGELOG_REC_EXTENDED(rec) ? sizeof(struct changelog_ext_rec) : sizeof(*rec); } static inline char *changelog_rec_name(struct changelog_rec *rec) { return CHANGELOG_REC_EXTENDED(rec) ? - ((struct changelog_ext_rec *)rec)->cr_name: rec->cr_name; + ((struct changelog_ext_rec *)rec)->cr_name : rec->cr_name; } static inline int changelog_rec_snamelen(struct changelog_ext_rec *rec) diff --git a/drivers/staging/lustre/lustre/include/lustre_capa.h b/drivers/staging/lustre/lustre/include/lustre_capa.h index fe19534ebd8f..11bcdb935443 100644 --- a/drivers/staging/lustre/lustre/include/lustre_capa.h +++ b/drivers/staging/lustre/lustre/include/lustre_capa.h @@ -171,7 +171,7 @@ CDEBUG(level, fmt " capability key@%p seq %llu keyid %u\n", \ ##args, k, capa_key_seq(k), capa_key_keyid(k)); \ } while (0) -typedef int (* renew_capa_cb_t)(struct obd_capa *, struct lustre_capa *); +typedef int (*renew_capa_cb_t)(struct obd_capa *, struct lustre_capa *); /* obdclass/capa.c */ extern struct list_head capa_list[]; diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 9b2833131744..131985d3081a 100644 --- a/drivers/staging/lustre/lustre/include/lustre_disk.h +++ b/drivers/staging/lustre/lustre/include/lustre_disk.h @@ -365,7 +365,7 @@ static inline void check_lcd(char *obd_name, int index, struct lsd_client_data *lcd) { int length = sizeof(lcd->lcd_uuid); - if (strnlen((char*)lcd->lcd_uuid, length) == length) { + if (strnlen((char *)lcd->lcd_uuid, length) == length) { lcd->lcd_uuid[length - 1] = '\0'; LCONSOLE_ERROR("the client UUID (%s) on %s for exports stored in last_rcvd(index = %d) is bad!\n", diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 355254689dee..92b24be7c21e 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1025,7 +1025,7 @@ char *ldlm_it2str(int it); * with a debugging message that is ldlm-related */ #define LDLM_DEBUG_NOLOCK(format, a...) \ - CDEBUG(D_DLMTRACE, "### " format "\n" , ##a) + CDEBUG(D_DLMTRACE, "### " format "\n", ##a) /** * Support function for lock information printing into debug logs. @@ -1051,7 +1051,7 @@ void _ldlm_lock_debug(struct ldlm_lock *lock, #define LDLM_DEBUG_LIMIT(mask, lock, fmt, a...) do { \ static struct cfs_debug_limit_state _ldlm_cdls; \ LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, mask, &_ldlm_cdls); \ - ldlm_lock_debug(&msgdata, mask, &_ldlm_cdls, lock, "### " fmt , ##a);\ + ldlm_lock_debug(&msgdata, mask, &_ldlm_cdls, lock, "### " fmt, ##a);\ } while (0) #define LDLM_ERROR(lock, fmt, a...) LDLM_DEBUG_LIMIT(D_ERROR, lock, fmt, ## a) @@ -1062,7 +1062,7 @@ void _ldlm_lock_debug(struct ldlm_lock *lock, if (likely(lock != NULL)) { \ LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, D_DLMTRACE, NULL); \ ldlm_lock_debug(&msgdata, D_DLMTRACE, NULL, lock, \ - "### " fmt , ##a); \ + "### " fmt, ##a); \ } else { \ LDLM_DEBUG_NOLOCK("no dlm lock: " fmt, ##a); \ } \ diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h b/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h index d4cc09635271..d27bdae0b373 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h @@ -51,58 +51,58 @@ /** extent, mode, or resource changed */ #define LDLM_FL_LOCK_CHANGED 0x0000000000000001ULL // bit 0 -#define ldlm_is_lock_changed(_l) LDLM_TEST_FLAG(( _l), 1ULL << 0) -#define ldlm_set_lock_changed(_l) LDLM_SET_FLAG(( _l), 1ULL << 0) +#define ldlm_is_lock_changed(_l) LDLM_TEST_FLAG((_l), 1ULL << 0) +#define ldlm_set_lock_changed(_l) LDLM_SET_FLAG((_l), 1ULL << 0) #define ldlm_clear_lock_changed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 0) /** * Server placed lock on granted list, or a recovering client wants the * lock added to the granted list, no questions asked. */ #define LDLM_FL_BLOCK_GRANTED 0x0000000000000002ULL // bit 1 -#define ldlm_is_block_granted(_l) LDLM_TEST_FLAG(( _l), 1ULL << 1) -#define ldlm_set_block_granted(_l) LDLM_SET_FLAG(( _l), 1ULL << 1) +#define ldlm_is_block_granted(_l) LDLM_TEST_FLAG((_l), 1ULL << 1) +#define ldlm_set_block_granted(_l) LDLM_SET_FLAG((_l), 1ULL << 1) #define ldlm_clear_block_granted(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 1) /** * Server placed lock on conv list, or a recovering client wants the lock * added to the conv list, no questions asked. */ #define LDLM_FL_BLOCK_CONV 0x0000000000000004ULL // bit 2 -#define ldlm_is_block_conv(_l) LDLM_TEST_FLAG(( _l), 1ULL << 2) -#define ldlm_set_block_conv(_l) LDLM_SET_FLAG(( _l), 1ULL << 2) +#define ldlm_is_block_conv(_l) LDLM_TEST_FLAG((_l), 1ULL << 2) +#define ldlm_set_block_conv(_l) LDLM_SET_FLAG((_l), 1ULL << 2) #define ldlm_clear_block_conv(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 2) /** * Server placed lock on wait list, or a recovering client wants the lock * added to the wait list, no questions asked. */ #define LDLM_FL_BLOCK_WAIT 0x0000000000000008ULL // bit 3 -#define ldlm_is_block_wait(_l) LDLM_TEST_FLAG(( _l), 1ULL << 3) -#define ldlm_set_block_wait(_l) LDLM_SET_FLAG(( _l), 1ULL << 3) +#define ldlm_is_block_wait(_l) LDLM_TEST_FLAG((_l), 1ULL << 3) +#define ldlm_set_block_wait(_l) LDLM_SET_FLAG((_l), 1ULL << 3) #define ldlm_clear_block_wait(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 3) /** blocking or cancel packet was queued for sending. */ #define LDLM_FL_AST_SENT 0x0000000000000020ULL // bit 5 -#define ldlm_is_ast_sent(_l) LDLM_TEST_FLAG(( _l), 1ULL << 5) -#define ldlm_set_ast_sent(_l) LDLM_SET_FLAG(( _l), 1ULL << 5) +#define ldlm_is_ast_sent(_l) LDLM_TEST_FLAG((_l), 1ULL << 5) +#define ldlm_set_ast_sent(_l) LDLM_SET_FLAG((_l), 1ULL << 5) #define ldlm_clear_ast_sent(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 5) /** * Lock is being replayed. This could probably be implied by the fact that * one of BLOCK_{GRANTED,CONV,WAIT} is set, but that is pretty dangerous. */ #define LDLM_FL_REPLAY 0x0000000000000100ULL // bit 8 -#define ldlm_is_replay(_l) LDLM_TEST_FLAG(( _l), 1ULL << 8) -#define ldlm_set_replay(_l) LDLM_SET_FLAG(( _l), 1ULL << 8) +#define ldlm_is_replay(_l) LDLM_TEST_FLAG((_l), 1ULL << 8) +#define ldlm_set_replay(_l) LDLM_SET_FLAG((_l), 1ULL << 8) #define ldlm_clear_replay(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 8) /** Don't grant lock, just do intent. */ #define LDLM_FL_INTENT_ONLY 0x0000000000000200ULL // bit 9 -#define ldlm_is_intent_only(_l) LDLM_TEST_FLAG(( _l), 1ULL << 9) -#define ldlm_set_intent_only(_l) LDLM_SET_FLAG(( _l), 1ULL << 9) +#define ldlm_is_intent_only(_l) LDLM_TEST_FLAG((_l), 1ULL << 9) +#define ldlm_set_intent_only(_l) LDLM_SET_FLAG((_l), 1ULL << 9) #define ldlm_clear_intent_only(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 9) /** lock request has intent */ #define LDLM_FL_HAS_INTENT 0x0000000000001000ULL // bit 12 -#define ldlm_is_has_intent(_l) LDLM_TEST_FLAG(( _l), 1ULL << 12) -#define ldlm_set_has_intent(_l) LDLM_SET_FLAG(( _l), 1ULL << 12) +#define ldlm_is_has_intent(_l) LDLM_TEST_FLAG((_l), 1ULL << 12) +#define ldlm_set_has_intent(_l) LDLM_SET_FLAG((_l), 1ULL << 12) #define ldlm_clear_has_intent(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 12) /** flock deadlock detected */ @@ -113,28 +113,28 @@ /** discard (no writeback) on cancel */ #define LDLM_FL_DISCARD_DATA 0x0000000000010000ULL // bit 16 -#define ldlm_is_discard_data(_l) LDLM_TEST_FLAG(( _l), 1ULL << 16) -#define ldlm_set_discard_data(_l) LDLM_SET_FLAG(( _l), 1ULL << 16) +#define ldlm_is_discard_data(_l) LDLM_TEST_FLAG((_l), 1ULL << 16) +#define ldlm_set_discard_data(_l) LDLM_SET_FLAG((_l), 1ULL << 16) #define ldlm_clear_discard_data(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 16) /** Blocked by group lock - wait indefinitely */ #define LDLM_FL_NO_TIMEOUT 0x0000000000020000ULL // bit 17 -#define ldlm_is_no_timeout(_l) LDLM_TEST_FLAG(( _l), 1ULL << 17) -#define ldlm_set_no_timeout(_l) LDLM_SET_FLAG(( _l), 1ULL << 17) +#define ldlm_is_no_timeout(_l) LDLM_TEST_FLAG((_l), 1ULL << 17) +#define ldlm_set_no_timeout(_l) LDLM_SET_FLAG((_l), 1ULL << 17) #define ldlm_clear_no_timeout(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 17) /** * Server told not to wait if blocked. For AGL, OST will not send glimpse * callback. */ #define LDLM_FL_BLOCK_NOWAIT 0x0000000000040000ULL // bit 18 -#define ldlm_is_block_nowait(_l) LDLM_TEST_FLAG(( _l), 1ULL << 18) -#define ldlm_set_block_nowait(_l) LDLM_SET_FLAG(( _l), 1ULL << 18) +#define ldlm_is_block_nowait(_l) LDLM_TEST_FLAG((_l), 1ULL << 18) +#define ldlm_set_block_nowait(_l) LDLM_SET_FLAG((_l), 1ULL << 18) #define ldlm_clear_block_nowait(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 18) /** return blocking lock */ #define LDLM_FL_TEST_LOCK 0x0000000000080000ULL // bit 19 -#define ldlm_is_test_lock(_l) LDLM_TEST_FLAG(( _l), 1ULL << 19) -#define ldlm_set_test_lock(_l) LDLM_SET_FLAG(( _l), 1ULL << 19) +#define ldlm_is_test_lock(_l) LDLM_TEST_FLAG((_l), 1ULL << 19) +#define ldlm_set_test_lock(_l) LDLM_SET_FLAG((_l), 1ULL << 19) #define ldlm_clear_test_lock(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 19) /** @@ -143,81 +143,81 @@ * is for clients (like liblustre) that cannot be expected to reliably * response to blocking AST. */ #define LDLM_FL_CANCEL_ON_BLOCK 0x0000000000800000ULL // bit 23 -#define ldlm_is_cancel_on_block(_l) LDLM_TEST_FLAG(( _l), 1ULL << 23) -#define ldlm_set_cancel_on_block(_l) LDLM_SET_FLAG(( _l), 1ULL << 23) +#define ldlm_is_cancel_on_block(_l) LDLM_TEST_FLAG((_l), 1ULL << 23) +#define ldlm_set_cancel_on_block(_l) LDLM_SET_FLAG((_l), 1ULL << 23) #define ldlm_clear_cancel_on_block(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 23) /** * measure lock contention and return -EUSERS if locking contention is high */ #define LDLM_FL_DENY_ON_CONTENTION 0x0000000040000000ULL // bit 30 -#define ldlm_is_deny_on_contention(_l) LDLM_TEST_FLAG(( _l), 1ULL << 30) -#define ldlm_set_deny_on_contention(_l) LDLM_SET_FLAG(( _l), 1ULL << 30) +#define ldlm_is_deny_on_contention(_l) LDLM_TEST_FLAG((_l), 1ULL << 30) +#define ldlm_set_deny_on_contention(_l) LDLM_SET_FLAG((_l), 1ULL << 30) #define ldlm_clear_deny_on_contention(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 30) /** * These are flags that are mapped into the flags and ASTs of blocking * locks Add FL_DISCARD to blocking ASTs */ #define LDLM_FL_AST_DISCARD_DATA 0x0000000080000000ULL // bit 31 -#define ldlm_is_ast_discard_data(_l) LDLM_TEST_FLAG(( _l), 1ULL << 31) -#define ldlm_set_ast_discard_data(_l) LDLM_SET_FLAG(( _l), 1ULL << 31) +#define ldlm_is_ast_discard_data(_l) LDLM_TEST_FLAG((_l), 1ULL << 31) +#define ldlm_set_ast_discard_data(_l) LDLM_SET_FLAG((_l), 1ULL << 31) #define ldlm_clear_ast_discard_data(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 31) /** * Used for marking lock as a target for -EINTR while cp_ast sleep emulation * + race with upcoming bl_ast. */ #define LDLM_FL_FAIL_LOC 0x0000000100000000ULL // bit 32 -#define ldlm_is_fail_loc(_l) LDLM_TEST_FLAG(( _l), 1ULL << 32) -#define ldlm_set_fail_loc(_l) LDLM_SET_FLAG(( _l), 1ULL << 32) +#define ldlm_is_fail_loc(_l) LDLM_TEST_FLAG((_l), 1ULL << 32) +#define ldlm_set_fail_loc(_l) LDLM_SET_FLAG((_l), 1ULL << 32) #define ldlm_clear_fail_loc(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 32) /** * Used while processing the unused list to know that we have already * handled this lock and decided to skip it. */ #define LDLM_FL_SKIPPED 0x0000000200000000ULL // bit 33 -#define ldlm_is_skipped(_l) LDLM_TEST_FLAG(( _l), 1ULL << 33) -#define ldlm_set_skipped(_l) LDLM_SET_FLAG(( _l), 1ULL << 33) +#define ldlm_is_skipped(_l) LDLM_TEST_FLAG((_l), 1ULL << 33) +#define ldlm_set_skipped(_l) LDLM_SET_FLAG((_l), 1ULL << 33) #define ldlm_clear_skipped(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 33) /** this lock is being destroyed */ #define LDLM_FL_CBPENDING 0x0000000400000000ULL // bit 34 -#define ldlm_is_cbpending(_l) LDLM_TEST_FLAG(( _l), 1ULL << 34) -#define ldlm_set_cbpending(_l) LDLM_SET_FLAG(( _l), 1ULL << 34) +#define ldlm_is_cbpending(_l) LDLM_TEST_FLAG((_l), 1ULL << 34) +#define ldlm_set_cbpending(_l) LDLM_SET_FLAG((_l), 1ULL << 34) #define ldlm_clear_cbpending(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 34) /** not a real flag, not saved in lock */ #define LDLM_FL_WAIT_NOREPROC 0x0000000800000000ULL // bit 35 -#define ldlm_is_wait_noreproc(_l) LDLM_TEST_FLAG(( _l), 1ULL << 35) -#define ldlm_set_wait_noreproc(_l) LDLM_SET_FLAG(( _l), 1ULL << 35) +#define ldlm_is_wait_noreproc(_l) LDLM_TEST_FLAG((_l), 1ULL << 35) +#define ldlm_set_wait_noreproc(_l) LDLM_SET_FLAG((_l), 1ULL << 35) #define ldlm_clear_wait_noreproc(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 35) /** cancellation callback already run */ #define LDLM_FL_CANCEL 0x0000001000000000ULL // bit 36 -#define ldlm_is_cancel(_l) LDLM_TEST_FLAG(( _l), 1ULL << 36) -#define ldlm_set_cancel(_l) LDLM_SET_FLAG(( _l), 1ULL << 36) +#define ldlm_is_cancel(_l) LDLM_TEST_FLAG((_l), 1ULL << 36) +#define ldlm_set_cancel(_l) LDLM_SET_FLAG((_l), 1ULL << 36) #define ldlm_clear_cancel(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 36) /** whatever it might mean */ #define LDLM_FL_LOCAL_ONLY 0x0000002000000000ULL // bit 37 -#define ldlm_is_local_only(_l) LDLM_TEST_FLAG(( _l), 1ULL << 37) -#define ldlm_set_local_only(_l) LDLM_SET_FLAG(( _l), 1ULL << 37) +#define ldlm_is_local_only(_l) LDLM_TEST_FLAG((_l), 1ULL << 37) +#define ldlm_set_local_only(_l) LDLM_SET_FLAG((_l), 1ULL << 37) #define ldlm_clear_local_only(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 37) /** don't run the cancel callback under ldlm_cli_cancel_unused */ #define LDLM_FL_FAILED 0x0000004000000000ULL // bit 38 -#define ldlm_is_failed(_l) LDLM_TEST_FLAG(( _l), 1ULL << 38) -#define ldlm_set_failed(_l) LDLM_SET_FLAG(( _l), 1ULL << 38) +#define ldlm_is_failed(_l) LDLM_TEST_FLAG((_l), 1ULL << 38) +#define ldlm_set_failed(_l) LDLM_SET_FLAG((_l), 1ULL << 38) #define ldlm_clear_failed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 38) /** lock cancel has already been sent */ #define LDLM_FL_CANCELING 0x0000008000000000ULL // bit 39 -#define ldlm_is_canceling(_l) LDLM_TEST_FLAG(( _l), 1ULL << 39) -#define ldlm_set_canceling(_l) LDLM_SET_FLAG(( _l), 1ULL << 39) +#define ldlm_is_canceling(_l) LDLM_TEST_FLAG((_l), 1ULL << 39) +#define ldlm_set_canceling(_l) LDLM_SET_FLAG((_l), 1ULL << 39) #define ldlm_clear_canceling(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 39) /** local lock (ie, no srv/cli split) */ #define LDLM_FL_LOCAL 0x0000010000000000ULL // bit 40 -#define ldlm_is_local(_l) LDLM_TEST_FLAG(( _l), 1ULL << 40) -#define ldlm_set_local(_l) LDLM_SET_FLAG(( _l), 1ULL << 40) +#define ldlm_is_local(_l) LDLM_TEST_FLAG((_l), 1ULL << 40) +#define ldlm_set_local(_l) LDLM_SET_FLAG((_l), 1ULL << 40) #define ldlm_clear_local(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 40) /** @@ -233,8 +233,8 @@ * That change is pretty high-risk, though, and would need a lot more * testing. */ #define LDLM_FL_LVB_READY 0x0000020000000000ULL // bit 41 -#define ldlm_is_lvb_ready(_l) LDLM_TEST_FLAG(( _l), 1ULL << 41) -#define ldlm_set_lvb_ready(_l) LDLM_SET_FLAG(( _l), 1ULL << 41) +#define ldlm_is_lvb_ready(_l) LDLM_TEST_FLAG((_l), 1ULL << 41) +#define ldlm_set_lvb_ready(_l) LDLM_SET_FLAG((_l), 1ULL << 41) #define ldlm_clear_lvb_ready(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 41) /** @@ -245,28 +245,28 @@ * to know to exclude each other's locks from the calculation as they walk * the granted list. */ #define LDLM_FL_KMS_IGNORE 0x0000040000000000ULL // bit 42 -#define ldlm_is_kms_ignore(_l) LDLM_TEST_FLAG(( _l), 1ULL << 42) -#define ldlm_set_kms_ignore(_l) LDLM_SET_FLAG(( _l), 1ULL << 42) +#define ldlm_is_kms_ignore(_l) LDLM_TEST_FLAG((_l), 1ULL << 42) +#define ldlm_set_kms_ignore(_l) LDLM_SET_FLAG((_l), 1ULL << 42) #define ldlm_clear_kms_ignore(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 42) /** completion AST to be executed */ #define LDLM_FL_CP_REQD 0x0000080000000000ULL // bit 43 -#define ldlm_is_cp_reqd(_l) LDLM_TEST_FLAG(( _l), 1ULL << 43) -#define ldlm_set_cp_reqd(_l) LDLM_SET_FLAG(( _l), 1ULL << 43) +#define ldlm_is_cp_reqd(_l) LDLM_TEST_FLAG((_l), 1ULL << 43) +#define ldlm_set_cp_reqd(_l) LDLM_SET_FLAG((_l), 1ULL << 43) #define ldlm_clear_cp_reqd(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 43) /** cleanup_resource has already handled the lock */ #define LDLM_FL_CLEANED 0x0000100000000000ULL // bit 44 -#define ldlm_is_cleaned(_l) LDLM_TEST_FLAG(( _l), 1ULL << 44) -#define ldlm_set_cleaned(_l) LDLM_SET_FLAG(( _l), 1ULL << 44) +#define ldlm_is_cleaned(_l) LDLM_TEST_FLAG((_l), 1ULL << 44) +#define ldlm_set_cleaned(_l) LDLM_SET_FLAG((_l), 1ULL << 44) #define ldlm_clear_cleaned(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 44) /** * optimization hint: LDLM can run blocking callback from current context * w/o involving separate thread. in order to decrease cs rate */ #define LDLM_FL_ATOMIC_CB 0x0000200000000000ULL // bit 45 -#define ldlm_is_atomic_cb(_l) LDLM_TEST_FLAG(( _l), 1ULL << 45) -#define ldlm_set_atomic_cb(_l) LDLM_SET_FLAG(( _l), 1ULL << 45) +#define ldlm_is_atomic_cb(_l) LDLM_TEST_FLAG((_l), 1ULL << 45) +#define ldlm_set_atomic_cb(_l) LDLM_SET_FLAG((_l), 1ULL << 45) #define ldlm_clear_atomic_cb(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 45) /** @@ -282,14 +282,14 @@ * is used when ELC RPC is already prepared and is waiting for rpc_lock, * too late to send a separate CANCEL RPC. */ #define LDLM_FL_BL_AST 0x0000400000000000ULL // bit 46 -#define ldlm_is_bl_ast(_l) LDLM_TEST_FLAG(( _l), 1ULL << 46) -#define ldlm_set_bl_ast(_l) LDLM_SET_FLAG(( _l), 1ULL << 46) +#define ldlm_is_bl_ast(_l) LDLM_TEST_FLAG((_l), 1ULL << 46) +#define ldlm_set_bl_ast(_l) LDLM_SET_FLAG((_l), 1ULL << 46) #define ldlm_clear_bl_ast(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 46) /** whatever it might mean */ #define LDLM_FL_BL_DONE 0x0000800000000000ULL // bit 47 -#define ldlm_is_bl_done(_l) LDLM_TEST_FLAG(( _l), 1ULL << 47) -#define ldlm_set_bl_done(_l) LDLM_SET_FLAG(( _l), 1ULL << 47) +#define ldlm_is_bl_done(_l) LDLM_TEST_FLAG((_l), 1ULL << 47) +#define ldlm_set_bl_done(_l) LDLM_SET_FLAG((_l), 1ULL << 47) #define ldlm_clear_bl_done(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 47) /** @@ -297,8 +297,8 @@ * to aging. Used by MGC locks, they are cancelled only at unmount or * by callback. */ #define LDLM_FL_NO_LRU 0x0001000000000000ULL // bit 48 -#define ldlm_is_no_lru(_l) LDLM_TEST_FLAG(( _l), 1ULL << 48) -#define ldlm_set_no_lru(_l) LDLM_SET_FLAG(( _l), 1ULL << 48) +#define ldlm_is_no_lru(_l) LDLM_TEST_FLAG((_l), 1ULL << 48) +#define ldlm_set_no_lru(_l) LDLM_SET_FLAG((_l), 1ULL << 48) #define ldlm_clear_no_lru(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 48) /** @@ -306,8 +306,8 @@ * * Protected by lock and resource locks. */ #define LDLM_FL_FAIL_NOTIFIED 0x0002000000000000ULL // bit 49 -#define ldlm_is_fail_notified(_l) LDLM_TEST_FLAG(( _l), 1ULL << 49) -#define ldlm_set_fail_notified(_l) LDLM_SET_FLAG(( _l), 1ULL << 49) +#define ldlm_is_fail_notified(_l) LDLM_TEST_FLAG((_l), 1ULL << 49) +#define ldlm_set_fail_notified(_l) LDLM_SET_FLAG((_l), 1ULL << 49) #define ldlm_clear_fail_notified(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 49) /** @@ -317,14 +317,14 @@ * * Protected by lock and resource locks. */ #define LDLM_FL_DESTROYED 0x0004000000000000ULL // bit 50 -#define ldlm_is_destroyed(_l) LDLM_TEST_FLAG(( _l), 1ULL << 50) -#define ldlm_set_destroyed(_l) LDLM_SET_FLAG(( _l), 1ULL << 50) +#define ldlm_is_destroyed(_l) LDLM_TEST_FLAG((_l), 1ULL << 50) +#define ldlm_set_destroyed(_l) LDLM_SET_FLAG((_l), 1ULL << 50) #define ldlm_clear_destroyed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 50) /** flag whether this is a server namespace lock */ #define LDLM_FL_SERVER_LOCK 0x0008000000000000ULL // bit 51 -#define ldlm_is_server_lock(_l) LDLM_TEST_FLAG(( _l), 1ULL << 51) -#define ldlm_set_server_lock(_l) LDLM_SET_FLAG(( _l), 1ULL << 51) +#define ldlm_is_server_lock(_l) LDLM_TEST_FLAG((_l), 1ULL << 51) +#define ldlm_set_server_lock(_l) LDLM_SET_FLAG((_l), 1ULL << 51) #define ldlm_clear_server_lock(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 51) /** @@ -335,8 +335,8 @@ * because it works only for SMP so user needs to add extra macros like * LASSERT_SPIN_LOCKED for uniprocessor kernels. */ #define LDLM_FL_RES_LOCKED 0x0010000000000000ULL // bit 52 -#define ldlm_is_res_locked(_l) LDLM_TEST_FLAG(( _l), 1ULL << 52) -#define ldlm_set_res_locked(_l) LDLM_SET_FLAG(( _l), 1ULL << 52) +#define ldlm_is_res_locked(_l) LDLM_TEST_FLAG((_l), 1ULL << 52) +#define ldlm_set_res_locked(_l) LDLM_SET_FLAG((_l), 1ULL << 52) #define ldlm_clear_res_locked(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 52) /** @@ -345,14 +345,14 @@ * * Protected by lock and resource locks. */ #define LDLM_FL_WAITED 0x0020000000000000ULL // bit 53 -#define ldlm_is_waited(_l) LDLM_TEST_FLAG(( _l), 1ULL << 53) -#define ldlm_set_waited(_l) LDLM_SET_FLAG(( _l), 1ULL << 53) +#define ldlm_is_waited(_l) LDLM_TEST_FLAG((_l), 1ULL << 53) +#define ldlm_set_waited(_l) LDLM_SET_FLAG((_l), 1ULL << 53) #define ldlm_clear_waited(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 53) /** Flag whether this is a server namespace lock. */ #define LDLM_FL_NS_SRV 0x0040000000000000ULL // bit 54 -#define ldlm_is_ns_srv(_l) LDLM_TEST_FLAG(( _l), 1ULL << 54) -#define ldlm_set_ns_srv(_l) LDLM_SET_FLAG(( _l), 1ULL << 54) +#define ldlm_is_ns_srv(_l) LDLM_TEST_FLAG((_l), 1ULL << 54) +#define ldlm_set_ns_srv(_l) LDLM_SET_FLAG((_l), 1ULL << 54) #define ldlm_clear_ns_srv(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 54) /** Flag whether this lock can be reused. Used by exclusive open. */ diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index 43ee9f0eb4d4..2a4294d41b5a 100644 --- a/drivers/staging/lustre/lustre/include/lustre_lib.h +++ b/drivers/staging/lustre/lustre/include/lustre_lib.h @@ -313,7 +313,7 @@ static inline void obd_ioctl_freedata(char *buf, int len) #define OBD_IOC_CLIENT_RECOVER _IOW ('f', 133, OBD_IOC_DATA_TYPE) #define OBD_IOC_PING_TARGET _IOW ('f', 136, OBD_IOC_DATA_TYPE) -#define OBD_IOC_DEC_FS_USE_COUNT _IO ('f', 139 ) +#define OBD_IOC_DEC_FS_USE_COUNT _IO ('f', 139) #define OBD_IOC_NO_TRANSNO _IOW ('f', 140, OBD_IOC_DATA_TYPE) #define OBD_IOC_SET_READONLY _IOW ('f', 141, OBD_IOC_DATA_TYPE) #define OBD_IOC_ABORT_RECOVERY _IOR ('f', 142, OBD_IOC_DATA_TYPE) @@ -557,9 +557,9 @@ do { \ if (__timeout == 0) { \ schedule(); \ } else { \ - long interval = info->lwi_interval? \ + long interval = info->lwi_interval ? \ min_t(long, \ - info->lwi_interval,__timeout):\ + info->lwi_interval, __timeout) : \ __timeout; \ long remaining = schedule_timeout(interval);\ __timeout = cfs_time_sub(__timeout, \ diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 48ad60b22122..3341b5da6ac0 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2065,7 +2065,7 @@ struct ptlrpc_service_part { * rqbd list and incoming requests waiting for preprocess, * threads starting & stopping are also protected by this lock. */ - spinlock_t scp_lock __cfs_cacheline_aligned; + spinlock_t scp_lock __cfs_cacheline_aligned; /** total # req buffer descs allocated */ int scp_nrqbds_total; /** # posted request buffers for receiving */ diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 9ad8c268da10..76a2546e0f41 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -1300,7 +1300,7 @@ struct md_ops { const struct lu_fid *, struct ptlrpc_request **); int (*m_setattr)(struct obd_export *, struct md_op_data *, void *, - int , void *, int, struct ptlrpc_request **, + int, void *, int, struct ptlrpc_request **, struct md_open_data **mod); int (*m_sync)(struct obd_export *, const struct lu_fid *, struct obd_capa *, struct ptlrpc_request **); diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 18aec796a724..3986ca4cddaa 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -585,7 +585,7 @@ do { \ (!HAS_FAIL_ALLOC_FLAG || obd_alloc_fail_rate == 0 || \ !obd_alloc_fail(ptr, #ptr, "km", size, \ __FILE__, __LINE__) || \ - OBD_FREE_RTN0(ptr)))){ \ + OBD_FREE_RTN0(ptr)))) { \ OBD_ALLOC_POST(ptr, size, "kmalloced"); \ } \ } while (0) diff --git a/drivers/staging/lustre/lustre/libcfs/tracefile.c b/drivers/staging/lustre/lustre/libcfs/tracefile.c index effa2af58c13..5a2e5ea00570 100644 --- a/drivers/staging/lustre/lustre/libcfs/tracefile.c +++ b/drivers/staging/lustre/lustre/libcfs/tracefile.c @@ -124,7 +124,7 @@ int cfs_trace_refill_stock(struct cfs_trace_cpu_data *tcd, gfp_t gfp, * from here: this will lead to infinite recursion. */ - for (i = 0; i + tcd->tcd_cur_stock_pages < TCD_STOCK_PAGES ; ++ i) { + for (i = 0; i + tcd->tcd_cur_stock_pages < TCD_STOCK_PAGES ; ++i) { struct cfs_trace_page *tage; tage = cfs_tage_alloc(gfp); @@ -370,7 +370,7 @@ int libcfs_debug_vmsg2(struct libcfs_debug_msg_data *msgdata, /* indent message according to the nesting level */ while (depth-- > 0) { *(debug_buf++) = '.'; - ++ tage->used; + ++tage->used; } strcpy(debug_buf, file); diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index ec8fff463208..2de64c23383b 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -71,7 +71,7 @@ struct ll_dentry_data { struct rcu_head lld_rcu_head; }; -#define ll_d2d(de) ((struct ll_dentry_data*)((de)->d_fsdata)) +#define ll_d2d(de) ((struct ll_dentry_data *)((de)->d_fsdata)) #define LLI_INODE_MAGIC 0x111d0de5 #define LLI_INODE_DEAD 0xdeadd00d diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c index 486dca6077de..2fc24a946590 100644 --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c @@ -1325,7 +1325,7 @@ void ll_rw_stats_tally(struct ll_sb_info *sbi, pid_t pid, lprocfs_oh_clear(&io_extents->pp_extents[cur].pp_w_hist); } - for(i = 0; (count >= (1 << LL_HIST_START << i)) && + for (i = 0; (count >= (1 << LL_HIST_START << i)) && (i < (LL_HIST_MAX - 1)); i++); if (rw == 0) { io_extents->pp_extents[cur].pp_r_hist.oh_buckets[i]++; diff --git a/drivers/staging/lustre/lustre/llite/rw.c b/drivers/staging/lustre/lustre/llite/rw.c index 991d20c5065d..3e2825514f7e 100644 --- a/drivers/staging/lustre/lustre/llite/rw.c +++ b/drivers/staging/lustre/lustre/llite/rw.c @@ -656,7 +656,7 @@ static int ll_read_ahead_pages(const struct lu_env *env, page_idx, mapping); if (rc == 1) { (*reserved_pages)--; - count ++; + count++; } else if (rc == -ENOLCK) break; } else if (stride_ria) { @@ -890,7 +890,7 @@ static void ras_update_stride_detector(struct ll_readahead_state *ras, if (!stride_io_mode(ras) && (stride_gap != 0 || ras->ras_consecutive_stride_requests == 0)) { ras->ras_stride_pages = ras->ras_consecutive_pages; - ras->ras_stride_length = stride_gap +ras->ras_consecutive_pages; + ras->ras_stride_length = stride_gap+ras->ras_consecutive_pages; } LASSERT(ras->ras_request_index == 0); LASSERT(ras->ras_consecutive_stride_requests == 0); @@ -902,7 +902,7 @@ static void ras_update_stride_detector(struct ll_readahead_state *ras, } ras->ras_stride_pages = ras->ras_consecutive_pages; - ras->ras_stride_length = stride_gap +ras->ras_consecutive_pages; + ras->ras_stride_length = stride_gap+ras->ras_consecutive_pages; RAS_CDEBUG(ras); return; diff --git a/drivers/staging/lustre/lustre/llite/statahead.c b/drivers/staging/lustre/lustre/llite/statahead.c index f97371dd8539..8f4cca1ef109 100644 --- a/drivers/staging/lustre/lustre/llite/statahead.c +++ b/drivers/staging/lustre/lustre/llite/statahead.c @@ -659,7 +659,7 @@ static void ll_post_statahead(struct ll_statahead_info *sai) * revalidate. */ /* unlinked and re-created with the same name */ - if (unlikely(!lu_fid_eq(&minfo->mi_data.op_fid2, &body->fid1))){ + if (unlikely(!lu_fid_eq(&minfo->mi_data.op_fid2, &body->fid1))) { entry->se_inode = NULL; iput(child); child = NULL; @@ -1215,7 +1215,7 @@ do_it: while (1) { l_wait_event(thread->t_ctl_waitq, !sa_received_empty(sai) || - sai->sai_sent == sai->sai_replied|| + sai->sai_sent == sai->sai_replied || !thread_is_running(thread), &lwi); diff --git a/drivers/staging/lustre/lustre/llite/vvp_io.c b/drivers/staging/lustre/lustre/llite/vvp_io.c index a659962e09c8..75a8ea21bc24 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_io.c +++ b/drivers/staging/lustre/lustre/llite/vvp_io.c @@ -698,7 +698,7 @@ static int vvp_io_fault_start(const struct lu_env *env, /* return +1 to stop cl_io_loop() and ll_fault() will catch * and retry. */ - result = +1; + result = 1; goto out; } diff --git a/drivers/staging/lustre/lustre/lmv/lmv_obd.c b/drivers/staging/lustre/lustre/lmv/lmv_obd.c index c9e0536e9f2a..f8146acd883d 100644 --- a/drivers/staging/lustre/lustre/lmv/lmv_obd.c +++ b/drivers/staging/lustre/lustre/lmv/lmv_obd.c @@ -1849,7 +1849,7 @@ static int lmv_early_cancel(struct obd_export *exp, struct md_op_data *op_data, struct obd_device *obd = exp->exp_obd; struct lmv_obd *lmv = &obd->u.lmv; struct lmv_tgt_desc *tgt; - ldlm_policy_data_t policy = {{0}}; + ldlm_policy_data_t policy = { {0} }; int rc = 0; if (!fid_is_sane(fid)) diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index c5c67d982ef2..2a2fd8de055d 100644 --- a/drivers/staging/lustre/lustre/lov/lov_obd.c +++ b/drivers/staging/lustre/lustre/lov/lov_obd.c @@ -1672,7 +1672,7 @@ static int fiemap_calc_last_stripe(struct lov_stripe_md *lsm, u64 fm_start, break; } *stripe_count = j; - last_stripe = (start_stripe + j - 1) %lsm->lsm_stripe_count; + last_stripe = (start_stripe + j - 1) % lsm->lsm_stripe_count; } return last_stripe; @@ -1862,7 +1862,7 @@ static int lov_fiemap(struct lov_obd *lov, __u32 keylen, void *key, fm_local->fm_start = lun_start; fm_local->fm_flags &= ~FIEMAP_FLAG_DEVICE_ORDER; memcpy(&fm_key->fiemap, fm_local, sizeof(*fm_local)); - *vallen=fiemap_count_to_size(fm_local->fm_extent_count); + *vallen = fiemap_count_to_size(fm_local->fm_extent_count); rc = obd_get_info(NULL, lov->lov_tgts[ost_index]->ltd_exp, keylen, key, vallen, fm_local, lsm); diff --git a/drivers/staging/lustre/lustre/obdclass/cl_io.c b/drivers/staging/lustre/lustre/obdclass/cl_io.c index fd1a4c5421e8..da0066a20fa0 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_io.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_io.c @@ -307,7 +307,7 @@ static void cl_io_locks_sort(struct cl_io *io) */ default: LBUG(); - case +1: + case 1: list_move_tail(&curr->cill_linkage, &prev->cill_linkage); done = 0; @@ -335,7 +335,7 @@ int cl_queue_match(const struct list_head *queue, list_for_each_entry(scan, queue, cill_linkage) { if (cl_lock_descr_match(&scan->cill_descr, need)) - return +1; + return 1; } return 0; } @@ -353,7 +353,7 @@ static int cl_queue_merge(const struct list_head *queue, CDEBUG(D_VFSTRACE, "lock: %d: [%lu, %lu]\n", scan->cill_descr.cld_mode, scan->cill_descr.cld_start, scan->cill_descr.cld_end); - return +1; + return 1; } return 0; @@ -600,7 +600,7 @@ int cl_io_lock_add(const struct lu_env *env, struct cl_io *io, int result; if (cl_lockset_merge(&io->ci_lockset, &link->cill_descr)) - result = +1; + result = 1; else { list_add(&link->cill_linkage, &io->ci_lockset.cls_todo); result = 0; @@ -918,7 +918,7 @@ int cl_io_submit_sync(const struct lu_env *env, struct cl_io *io, */ cl_page_list_for_each(pg, &queue->c2_qin) { pg->cp_sync_io = NULL; - cl_sync_io_note(anchor, +1); + cl_sync_io_note(anchor, 1); } /* wait for the IO to be finished. */ diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index b081167f9767..7c6583a2e884 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c @@ -2027,7 +2027,7 @@ static struct cl_lock *cl_lock_hold_mutex(const struct lu_env *env, cl_lock_mutex_get(env, lock); if (lock->cll_state < CLS_FREEING && !(lock->cll_flags & CLF_CANCELLED)) { - cl_lock_hold_mod(env, lock, +1); + cl_lock_hold_mod(env, lock, 1); lu_ref_add(&lock->cll_holders, scope, source); lu_ref_add(&lock->cll_reference, scope, source); break; @@ -2115,7 +2115,7 @@ void cl_lock_hold_add(const struct lu_env *env, struct cl_lock *lock, LINVRNT(cl_lock_invariant(env, lock)); LASSERT(lock->cll_state != CLS_FREEING); - cl_lock_hold_mod(env, lock, +1); + cl_lock_hold_mod(env, lock, 1); cl_lock_get(lock); lu_ref_add(&lock->cll_holders, scope, source); lu_ref_add(&lock->cll_reference, scope, source); @@ -2157,7 +2157,7 @@ void cl_lock_user_add(const struct lu_env *env, struct cl_lock *lock) LINVRNT(cl_lock_is_mutexed(lock)); LINVRNT(cl_lock_invariant(env, lock)); - cl_lock_used_mod(env, lock, +1); + cl_lock_used_mod(env, lock, 1); } EXPORT_SYMBOL(cl_lock_user_add); diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index 8f17d7c4f28e..9d1a3befb4f9 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -662,7 +662,7 @@ static int cl_env_store_init(void) CFS_HASH_MAX_THETA, &cl_env_hops, CFS_HASH_RW_BKTLOCK); - return cl_env_hash != NULL ? 0 :-ENOMEM; + return cl_env_hash != NULL ? 0 : -ENOMEM; } static void cl_env_store_fini(void) diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index 20a7cd9fb4f1..b1511547444a 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -138,7 +138,7 @@ int obd_alloc_fail(const void *ptr, const char *name, const char *type, if (ptr == NULL || (cfs_rand() & OBD_ALLOC_FAIL_MASK) < obd_alloc_fail_rate) { CERROR("%s%salloc of %s (%llu bytes) failed at %s:%d\n", - ptr ? "force " :"", type, name, (__u64)size, file, + ptr ? "force " : "", type, name, (__u64)size, file, line); CERROR("%llu total bytes and %llu total pages" " (%llu bytes) allocated by Lustre\n", @@ -470,7 +470,7 @@ int obd_init_checks(void) return -EOVERFLOW; } if (do_div(div64val, 256) != (u64val & 255)) { - CERROR("do_div(%#llx,256) != %llu\n", u64val, u64val &255); + CERROR("do_div(%#llx,256) != %llu\n", u64val, u64val & 255); return -EOVERFLOW; } if (u64val >> 8 != div64val) { diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 0ca730948f7a..bc614dce70c6 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -545,7 +545,7 @@ struct obd_device *class_find_client_obd(struct obd_uuid *tgt_uuid, strlen(typ_name)) == 0)) { if (obd_uuid_equals(tgt_uuid, &obd->u.cli.cl_target_uuid) && - ((grp_uuid)? obd_uuid_equals(grp_uuid, + ((grp_uuid) ? obd_uuid_equals(grp_uuid, &obd->obd_uuid) : 1)) { read_unlock(&obd_dev_lock); return obd; @@ -1078,7 +1078,7 @@ void __class_export_add_lock_ref(struct obd_export *exp, struct ldlm_lock *lock) LCONSOLE_WARN("setting export %p for lock %p which already has export %p\n", exp, lock, lock->l_exp_refs_target); } - if ((lock->l_exp_refs_nr ++) == 0) { + if ((lock->l_exp_refs_nr++) == 0) { list_add(&lock->l_exp_refs_link, &exp->exp_locks_list); lock->l_exp_refs_target = exp; } @@ -1488,7 +1488,7 @@ int obd_export_evict_by_uuid(struct obd_device *obd, const char *uuid) EXPORT_SYMBOL(obd_export_evict_by_uuid); #if LUSTRE_TRACKS_LOCK_EXP_REFS -void (*class_export_dump_hook)(struct obd_export*) = NULL; +void (*class_export_dump_hook)(struct obd_export *) = NULL; EXPORT_SYMBOL(class_export_dump_hook); #endif diff --git a/drivers/staging/lustre/lustre/obdclass/llog.c b/drivers/staging/lustre/lustre/obdclass/llog.c index facc8351fcea..78d92269aab6 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog.c +++ b/drivers/staging/lustre/lustre/obdclass/llog.c @@ -326,7 +326,7 @@ repeat: * swabbing is done at the beginning of the loop. */ for (rec = (struct llog_rec_hdr *)buf; (char *)rec < buf + LLOG_CHUNK_SIZE; - rec = (struct llog_rec_hdr *)((char *)rec + rec->lrh_len)){ + rec = (struct llog_rec_hdr *)((char *)rec + rec->lrh_len)) { CDEBUG(D_OTHER, "processing rec 0x%p type %#x\n", rec, rec->lrh_type); @@ -522,7 +522,7 @@ int llog_reverse_process(const struct lu_env *env, rec = (void *)rec + rec->lrh_len; if (LLOG_REC_HDR_NEEDS_SWABBING(rec)) lustre_swab_llog_rec(rec); - idx ++; + idx++; } LASSERT(idx == index); tail = (void *)rec + rec->lrh_len - sizeof(*tail); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 7b2b4c84208d..d399cae2059e 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -1451,7 +1451,7 @@ int class_config_llog_handler(const struct lu_env *env, lustre_cfg_bufs_init(&bufs, lcfg); if (clli && clli->cfg_instance && - LUSTRE_CFG_BUFLEN(lcfg, 0) > 0){ + LUSTRE_CFG_BUFLEN(lcfg, 0) > 0) { inst = 1; inst_len = LUSTRE_CFG_BUFLEN(lcfg, 0) + sizeof(clli->cfg_instance) * 2 + 4; diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 12113dfd87b8..cf2739ccbc04 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -1586,7 +1586,7 @@ static int osc_brw_fini_request(struct ptlrpc_request *req, int rc) char *router; cksum_type_t cksum_type; - cksum_type = cksum_type_unpack(body->oa.o_valid &OBD_MD_FLFLAGS? + cksum_type = cksum_type_unpack(body->oa.o_valid&OBD_MD_FLFLAGS ? body->oa.o_flags : 0); client_cksum = osc_checksum_bulk(rc, aa->aa_page_count, aa->aa_ppga, OST_READ, @@ -1654,7 +1654,7 @@ static int osc_brw_redo_request(struct ptlrpc_request *request, "redo for recoverable error %d", rc); rc = osc_brw_prep_request(lustre_msg_get_opc(request->rq_reqmsg) == - OST_WRITE ? OBD_BRW_WRITE :OBD_BRW_READ, + OST_WRITE ? OBD_BRW_WRITE : OBD_BRW_READ, aa->aa_cli, aa->aa_oa, NULL /* lsm unused by osc currently */, aa->aa_page_count, aa->aa_ppga, @@ -3101,7 +3101,7 @@ static int osc_import_event(struct obd_device *obd, /* See bug 7198 */ if (ocd->ocd_connect_flags & OBD_CONNECT_REQPORTAL) - imp->imp_client->cli_request_portal =OST_REQUEST_PORTAL; + imp->imp_client->cli_request_portal = OST_REQUEST_PORTAL; rc = obd_notify_observer(obd, obd, OBD_NOTIFY_OCD, NULL); break; diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 53f9af1f2f3e..84eb3da5a9c9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -54,7 +54,7 @@ static struct ll_rpc_opcode { { OST_SETATTR, "ost_setattr" }, { OST_READ, "ost_read" }, { OST_WRITE, "ost_write" }, - { OST_CREATE , "ost_create" }, + { OST_CREATE, "ost_create" }, { OST_DESTROY, "ost_destroy" }, { OST_GET_INFO, "ost_get_info" }, { OST_CONNECT, "ost_connect" }, From 927ac9d54eca5ce36fc3fe3c43a162f45d404bd9 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 18:44:19 -0700 Subject: [PATCH 0196/2431] staging: wilc1000: remove wilc_exported_buf.c The config option, CONFIG_WILC1000_PREALLOCATE_DURING_SYSTEM_BOOT, was never able to be set, so this file was never being built. Also, as WILC_PREALLOC_AT_BOOT was never being set in the build system, remove all code framed by that symbol. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 5 -- drivers/staging/wilc1000/wilc_exported_buf.c | 79 -------------------- drivers/staging/wilc1000/wilc_wlan.c | 37 --------- 3 files changed, 121 deletions(-) delete mode 100644 drivers/staging/wilc1000/wilc_exported_buf.c diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index 6be8a920706a..3b6bc7bbc229 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -1,6 +1,4 @@ obj-$(CONFIG_WILC1000) += wilc1000.o -obj-$(CONFIG_WILC1000_PREALLOCATE_DURING_SYSTEM_BOOT) += wilc_exported_buf.o - ccflags-$(CONFIG_WILC1000_SDIO) += -DWILC_SDIO -DCOMPLEMENT_BOOT ccflags-$(CONFIG_WILC1000_HW_OOB_INTR) += -DWILC_SDIO_IRQ_GPIO @@ -16,9 +14,6 @@ ccflags-y += -I$(src)/ -D__CHECK_ENDIAN__ -DWILC_ASIC_A0 \ -Wno-unused-function -DUSE_WIRELESS -DWILC_DEBUGFS #ccflags-y += -DTCP_ACK_FILTER -ccflags-$(CONFIG_WILC1000_PREALLOCATE_DURING_SYSTEM_BOOT) += -DMEMORY_STATIC \ - -DWILC_PREALLOC_AT_BOOT - ccflags-$(CONFIG_WILC1000_PREALLOCATE_AT_LOADING_DRIVER) += -DMEMORY_STATIC \ -DWILC_PREALLOC_AT_INSMOD diff --git a/drivers/staging/wilc1000/wilc_exported_buf.c b/drivers/staging/wilc1000/wilc_exported_buf.c deleted file mode 100644 index e617b7715600..000000000000 --- a/drivers/staging/wilc1000/wilc_exported_buf.c +++ /dev/null @@ -1,79 +0,0 @@ -#include -#include -#include -#include -#include - -#define LINUX_RX_SIZE (96 * 1024) -#define LINUX_TX_SIZE (64 * 1024) -#define WILC1000_FW_SIZE (4 * 1024) - -/* - * Add necessary buffer pointers - */ -void *exported_g_tx_buf; -void *exported_g_rx_buf; -void *exported_g_fw_buf; - -void *get_tx_buffer(void) -{ - return exported_g_tx_buf; -} -EXPORT_SYMBOL(get_tx_buffer); - -void *get_rx_buffer(void) -{ - return exported_g_rx_buf; -} -EXPORT_SYMBOL(get_rx_buffer); - -void *get_fw_buffer(void) -{ - return exported_g_fw_buf; -} -EXPORT_SYMBOL(get_fw_buffer); - -static int __init wilc_module_init(void) -{ - printk("wilc_module_init\n"); - /* - * alloc necessary memory - */ - exported_g_tx_buf = kmalloc(LINUX_TX_SIZE, GFP_KERNEL); - if (!exported_g_tx_buf) - return -ENOMEM; - - exported_g_rx_buf = kmalloc(LINUX_RX_SIZE, GFP_KERNEL); - if (!exported_g_rx_buf) - goto free_g_tx_buf; - - exported_g_fw_buf = kmalloc(WILC1000_FW_SIZE, GFP_KERNEL); - if (!exported_g_fw_buf) - goto free_g_rx_buf; - - return 0; - -free_g_rx_buf: - kfree(exported_g_rx_buf); - exported_g_rx_buf = NULL; - -free_g_tx_buf: - kfree(exported_g_tx_buf); - exported_g_tx_buf = NULL; - - return -ENOMEM; -} - -static void __exit wilc_module_deinit(void) -{ - printk("wilc_module_deinit\n"); - kfree(exported_g_tx_buf); - kfree(exported_g_rx_buf); - kfree(exported_g_fw_buf); -} - -MODULE_LICENSE("Dual BSD/GPL"); -MODULE_AUTHOR("Tony Cho"); -MODULE_DESCRIPTION("WILC1xxx Memory Manager"); -pure_initcall(wilc_module_init); -module_exit(wilc_module_deinit); diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index c48fe4ad10ad..e0da7b446435 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1517,15 +1517,7 @@ static int wilc_wlan_firmware_download(const uint8_t *buffer, uint32_t buffer_si blksz = (1ul << 12); /* Bug 4703: 4KB Good enough size for most platforms = PAGE_SIZE. */ /* Allocate a DMA coherent buffer. */ -#if (defined WILC_PREALLOC_AT_BOOT) - { - extern void *get_fw_buffer(void); - dma_buffer = (uint8_t *)get_fw_buffer(); - PRINT_D(TX_DBG, "fw_buffer = 0x%x\n", dma_buffer); - } -#else dma_buffer = (uint8_t *)g_wlan.os_func.os_malloc(blksz); -#endif if (dma_buffer == NULL) { /*EIO 5*/ ret = -5; @@ -1575,12 +1567,8 @@ static int wilc_wlan_firmware_download(const uint8_t *buffer, uint32_t buffer_si _fail_: -#if (defined WILC_PREALLOC_AT_BOOT) - -#else if (dma_buffer) g_wlan.os_func.os_free(dma_buffer); -#endif _fail_1: @@ -1829,9 +1817,6 @@ static void wilc_wlan_cleanup(void) * clean up buffer **/ -#if (defined WILC_PREALLOC_AT_BOOT) - -#else #ifdef MEMORY_STATIC if (p->rx_buffer) { p->os_func.os_free(p->rx_buffer); @@ -1842,7 +1827,6 @@ static void wilc_wlan_cleanup(void) p->os_func.os_free(p->tx_buffer); p->tx_buffer = NULL; } -#endif acquire_bus(ACQUIRE_AND_WAKEUP); @@ -2189,21 +2173,8 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * alloc tx, rx buffer **/ -#if (defined WILC_PREALLOC_AT_BOOT) - extern void *get_tx_buffer(void); - extern void *get_rx_buffer(void); - - PRINT_D(TX_DBG, "malloc before, g_wlan.tx_buffer = 0x%x, g_wlan.rx_buffer = 0x%x\n", g_wlan.tx_buffer, g_wlan.rx_buffer); -#endif - - - if (g_wlan.tx_buffer == NULL) -#if (defined WILC_PREALLOC_AT_BOOT) - g_wlan.tx_buffer = (uint8_t *)get_tx_buffer(); -#else g_wlan.tx_buffer = (uint8_t *)g_wlan.os_func.os_malloc(g_wlan.tx_buffer_size); -#endif PRINT_D(TX_DBG, "g_wlan.tx_buffer = %p\n", g_wlan.tx_buffer); if (g_wlan.tx_buffer == NULL) { @@ -2216,11 +2187,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /* rx_buffer is not used unless we activate USE_MEM STATIC which is not applicable, allocating such memory is useless*/ #if defined (MEMORY_STATIC) if (g_wlan.rx_buffer == NULL) - #if (defined WILC_PREALLOC_AT_BOOT) - g_wlan.rx_buffer = (uint8_t *)get_rx_buffer(); - #else g_wlan.rx_buffer = (uint8_t *)g_wlan.os_func.os_malloc(g_wlan.rx_buffer_size); - #endif PRINT_D(TX_DBG, "g_wlan.rx_buffer =%p\n", g_wlan.rx_buffer); if (g_wlan.rx_buffer == NULL) { /* ENOBUFS 105 */ @@ -2272,9 +2239,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) _fail_: -#if (defined WILC_PREALLOC_AT_BOOT) - -#else #ifdef MEMORY_STATIC if (g_wlan.rx_buffer) { g_wlan.os_func.os_free(g_wlan.rx_buffer); @@ -2285,7 +2249,6 @@ _fail_: g_wlan.os_func.os_free(g_wlan.tx_buffer); g_wlan.tx_buffer = NULL; } -#endif #if defined(PLAT_RK3026_TCHIP) /* AMR : 0422 RK3026 Crash issue */ if (!g_wilc_initialized) From f019b9d91d84cb62bfa22fccf15bd4457d4acb2f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 18:50:27 -0700 Subject: [PATCH 0197/2431] staging: wilc1000: remove pointless kmalloc wrapper just call kmalloc directly, don't use an indirect pointer to a wrapper function. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 10 ---------- drivers/staging/wilc1000/wilc_wlan.c | 10 +++++----- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 1e0b1d5f05bc..903fc7c9fd4d 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -559,15 +559,6 @@ static void *linux_wlan_malloc_atomic(uint32_t sz) return (void *)pntr; } -static void *linux_wlan_malloc(uint32_t sz) -{ - char *pntr = NULL; - - pntr = kmalloc(sz, GFP_KERNEL); - PRINT_D(MEM_DBG, "Allocating %d bytes at address %p\n", sz, pntr); - return (void *)pntr; -} - void linux_wlan_free(void *vp) { if (vp != NULL) { @@ -1498,7 +1489,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_func.os_sleep = linux_wlan_msleep; nwi->os_func.os_atomic_sleep = linux_wlan_atomic_msleep; nwi->os_func.os_debug = linux_wlan_dbg; - nwi->os_func.os_malloc = linux_wlan_malloc; nwi->os_func.os_malloc_atomic = linux_wlan_malloc_atomic; nwi->os_func.os_free = linux_wlan_free; nwi->os_func.os_lock = linux_wlan_lock; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index e0da7b446435..c5fd55a4989c 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1414,7 +1414,7 @@ static void wilc_wlan_handle_isr_ext(uint32_t int_status) } #else - buffer = p->os_func.os_malloc(size); + buffer = kmalloc(size, GFP_KERNEL); if (buffer == NULL) { wilc_debug(N_ERR, "[wilc isr]: fail alloc host memory...drop the packets (%d)\n", size); usleep_range(100 * 1000, 100 * 1000); @@ -1448,7 +1448,7 @@ _end_: /** * add to rx queue **/ - rqe = (struct rxq_entry_t *)p->os_func.os_malloc(sizeof(struct rxq_entry_t)); + rqe = kmalloc(sizeof(struct rxq_entry_t), GFP_KERNEL); if (rqe != NULL) { rqe->buffer = buffer; rqe->buffer_size = size; @@ -1517,7 +1517,7 @@ static int wilc_wlan_firmware_download(const uint8_t *buffer, uint32_t buffer_si blksz = (1ul << 12); /* Bug 4703: 4KB Good enough size for most platforms = PAGE_SIZE. */ /* Allocate a DMA coherent buffer. */ - dma_buffer = (uint8_t *)g_wlan.os_func.os_malloc(blksz); + dma_buffer = kmalloc(blksz, GFP_KERNEL); if (dma_buffer == NULL) { /*EIO 5*/ ret = -5; @@ -2174,7 +2174,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) * alloc tx, rx buffer **/ if (g_wlan.tx_buffer == NULL) - g_wlan.tx_buffer = (uint8_t *)g_wlan.os_func.os_malloc(g_wlan.tx_buffer_size); + g_wlan.tx_buffer = kmalloc(g_wlan.tx_buffer_size, GFP_KERNEL); PRINT_D(TX_DBG, "g_wlan.tx_buffer = %p\n", g_wlan.tx_buffer); if (g_wlan.tx_buffer == NULL) { @@ -2187,7 +2187,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /* rx_buffer is not used unless we activate USE_MEM STATIC which is not applicable, allocating such memory is useless*/ #if defined (MEMORY_STATIC) if (g_wlan.rx_buffer == NULL) - g_wlan.rx_buffer = (uint8_t *)g_wlan.os_func.os_malloc(g_wlan.rx_buffer_size); + g_wlan.rx_buffer = kmalloc(g_wlan.rx_buffer_size, GFP_KERNEL); PRINT_D(TX_DBG, "g_wlan.rx_buffer =%p\n", g_wlan.rx_buffer); if (g_wlan.rx_buffer == NULL) { /* ENOBUFS 105 */ diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 5cf74e4c4a70..b5aa83c61e1a 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -87,7 +87,6 @@ typedef struct { void (*os_sleep)(uint32_t); void (*os_atomic_sleep)(uint32_t); void (*os_debug)(uint8_t *); - void *(*os_malloc)(uint32_t); void *(*os_malloc_atomic)(uint32_t); void (*os_free)(void *); void (*os_lock)(void *); From 47c632d829c6aea524cb57114ceef5c07bcf8d2c Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 18:55:43 -0700 Subject: [PATCH 0198/2431] staging: wilc1000: remove another pointless kmalloc wrapper Call kmalloc directly, don't make a special "atomic" function pointer to call it instead. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 10 ---------- drivers/staging/wilc1000/wilc_wlan.c | 8 ++++---- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 903fc7c9fd4d..a9aefa50e59b 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -550,15 +550,6 @@ static void linux_wlan_dbg(uint8_t *buff) PRINT_D(INIT_DBG, "%d\n", *buff); } -static void *linux_wlan_malloc_atomic(uint32_t sz) -{ - char *pntr = NULL; - - pntr = kmalloc(sz, GFP_ATOMIC); - PRINT_D(MEM_DBG, "Allocating %d bytes at address %p\n", sz, pntr); - return (void *)pntr; - -} void linux_wlan_free(void *vp) { if (vp != NULL) { @@ -1489,7 +1480,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_func.os_sleep = linux_wlan_msleep; nwi->os_func.os_atomic_sleep = linux_wlan_atomic_msleep; nwi->os_func.os_debug = linux_wlan_dbg; - nwi->os_func.os_malloc_atomic = linux_wlan_malloc_atomic; nwi->os_func.os_free = linux_wlan_free; nwi->os_func.os_lock = linux_wlan_lock; nwi->os_func.os_unlock = linux_wlan_unlock; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index c5fd55a4989c..970f6a9cc043 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -511,7 +511,7 @@ static int wilc_wlan_txq_add_cfg_pkt(uint8_t *buffer, uint32_t buffer_size) return 0; } - tqe = (struct txq_entry_t *)p->os_func.os_malloc_atomic(sizeof(struct txq_entry_t)); + tqe = kmalloc(sizeof(struct txq_entry_t), GFP_ATOMIC); if (tqe == NULL) { PRINT_ER("Failed to allocate memory\n"); return 0; @@ -544,7 +544,7 @@ static int wilc_wlan_txq_add_net_pkt(void *priv, uint8_t *buffer, uint32_t buffe if (p->quit) return 0; - tqe = (struct txq_entry_t *)p->os_func.os_malloc_atomic(sizeof(struct txq_entry_t)); + tqe = kmalloc(sizeof(struct txq_entry_t), GFP_ATOMIC); if (tqe == NULL) return 0; @@ -577,7 +577,7 @@ int wilc_wlan_txq_add_mgmt_pkt(void *priv, uint8_t *buffer, uint32_t buffer_size if (p->quit) return 0; - tqe = (struct txq_entry_t *)p->os_func.os_malloc_atomic(sizeof(struct txq_entry_t)); + tqe = kmalloc(sizeof(struct txq_entry_t), GFP_KERNEL); if (tqe == NULL) return 0; @@ -603,7 +603,7 @@ int wilc_FH_wlan_txq_add_net_pkt(void *priv, uint8_t *buffer, uint32_t buffer_si if (p->quit) return 0; - tqe = (struct txq_entry_t *)p->os_func.os_malloc_atomic(sizeof(struct txq_entry_t)); + tqe = kmalloc(sizeof(struct txq_entry_t), GFP_ATOMIC); if (tqe == NULL) return 0; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index b5aa83c61e1a..ed1ed00dd581 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -87,7 +87,6 @@ typedef struct { void (*os_sleep)(uint32_t); void (*os_atomic_sleep)(uint32_t); void (*os_debug)(uint8_t *); - void *(*os_malloc_atomic)(uint32_t); void (*os_free)(void *); void (*os_lock)(void *); void (*os_unlock)(void *); From d5df379784bdb3e88c2644972a576e2a74b90ce3 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 18:59:07 -0700 Subject: [PATCH 0199/2431] staging: wilc1000: remove another useless kmalloc wrapper A static function that just calls kmalloc(), and only used in one place. It's obvious that the wrappers on wrappers in this driver have never actually been reviewed... Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index a9aefa50e59b..b576d02242bf 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -152,7 +152,6 @@ void linux_wlan_unlock(void *vp); extern void WILC_WFI_monitor_rx(uint8_t *buff, uint32_t size); extern void WILC_WFI_p2p_rx(struct net_device *dev, uint8_t *buff, uint32_t size); -static void *internal_alloc(uint32_t size, uint32_t flag); static void linux_wlan_tx_complete(void *priv, int status); void frmw_to_linux(uint8_t *buff, uint32_t size, uint32_t pkt_offset); static int mac_init_fn(struct net_device *ndev); @@ -558,15 +557,6 @@ void linux_wlan_free(void *vp) } } -static void *internal_alloc(uint32_t size, uint32_t flag) -{ - char *pntr = NULL; - - pntr = kmalloc(size, flag); - PRINT_D(MEM_DBG, "Allocating %d bytes at address %p\n", size, pntr); - return (void *)pntr; -} - static void linux_wlan_init_lock(char *lockName, void *plock, int count) { sema_init((struct semaphore *)plock, count); @@ -2145,7 +2135,7 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) return 0; } - tx_data = (struct tx_complete_data *)internal_alloc(sizeof(struct tx_complete_data), GFP_ATOMIC); + tx_data = kmalloc(sizeof(struct tx_complete_data), GFP_ATOMIC); if (tx_data == NULL) { PRINT_ER("Failed to allocate memory for tx_data structure\n"); dev_kfree_skb(skb); From a18dd63047a86e0dc1c927232a526bda6d770bff Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:04:19 -0700 Subject: [PATCH 0200/2431] staging: wilc1000: remove pointless kfree wrapper It isn't needed, and we were checking if a buffer was not NULL multiple times, no one had ever looked at the code :( Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 11 +----- drivers/staging/wilc1000/wilc_wlan.c | 45 +++++++++---------------- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 17 insertions(+), 40 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index b576d02242bf..c1289e0ac10d 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -549,14 +549,6 @@ static void linux_wlan_dbg(uint8_t *buff) PRINT_D(INIT_DBG, "%d\n", *buff); } -void linux_wlan_free(void *vp) -{ - if (vp != NULL) { - PRINT_D(MEM_DBG, "Freeing %p\n", vp); - kfree(vp); - } -} - static void linux_wlan_init_lock(char *lockName, void *plock, int count) { sema_init((struct semaphore *)plock, count); @@ -1470,7 +1462,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_func.os_sleep = linux_wlan_msleep; nwi->os_func.os_atomic_sleep = linux_wlan_atomic_msleep; nwi->os_func.os_debug = linux_wlan_dbg; - nwi->os_func.os_free = linux_wlan_free; nwi->os_func.os_lock = linux_wlan_lock; nwi->os_func.os_unlock = linux_wlan_unlock; nwi->os_func.os_wait = linux_wlan_lock_timeout; @@ -2112,7 +2103,7 @@ static void linux_wlan_tx_complete(void *priv, int status) PRINT_D(TX_DBG, "Couldn't send packet - Size = %d - Address = %p - SKB = %p\n", pv_data->size, pv_data->buff, pv_data->skb); /* Free the SK Buffer, its work is done */ dev_kfree_skb(pv_data->skb); - linux_wlan_free(pv_data); + kfree(pv_data); } int mac_xmit(struct sk_buff *skb, struct net_device *ndev) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 970f6a9cc043..95897bf16626 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -459,7 +459,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) tqe->status = 1; /* mark the packet send */ if (tqe->tx_complete_func) tqe->tx_complete_func(tqe->priv, tqe->status); - p->os_func.os_free(tqe); + kfree(tqe); Dropped++; } } @@ -1160,7 +1160,7 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) Pending_Acks_info[tqe->tcp_PendingAck_index].txqe = NULL; } #endif - p->os_func.os_free(tqe); + kfree(tqe); } else { break; } @@ -1321,11 +1321,9 @@ static void wilc_wlan_handle_rxq(void) #ifndef MEMORY_STATIC - if (buffer != NULL) - p->os_func.os_free((void *)buffer); + kfree(buffer); #endif - if (rqe != NULL) - p->os_func.os_free((void *)rqe); + kfree(rqe); if (has_packet) { if (p->net_func.rx_complete) @@ -1458,8 +1456,7 @@ _end_: } } else { #ifndef MEMORY_STATIC - if (buffer != NULL) - p->os_func.os_free(buffer); + kfree(buffer); #endif } } @@ -1567,8 +1564,7 @@ static int wilc_wlan_firmware_download(const uint8_t *buffer, uint32_t buffer_si _fail_: - if (dma_buffer) - g_wlan.os_func.os_free(dma_buffer); + kfree(dma_buffer); _fail_1: @@ -1800,7 +1796,7 @@ static void wilc_wlan_cleanup(void) break; if (tqe->tx_complete_func) tqe->tx_complete_func(tqe->priv, 0); - p->os_func.os_free((void *)tqe); + kfree(tqe); } while (1); do { @@ -1808,9 +1804,9 @@ static void wilc_wlan_cleanup(void) if (rqe == NULL) break; #ifdef MEMORY_DYNAMIC - p->os_func.os_free((void *)tqe->buffer); + kfree(tqe->buffer); #endif - p->os_func.os_free((void *)rqe); + kfree(rqe); } while (1); /** @@ -1818,15 +1814,10 @@ static void wilc_wlan_cleanup(void) **/ #ifdef MEMORY_STATIC - if (p->rx_buffer) { - p->os_func.os_free(p->rx_buffer); - p->rx_buffer = NULL; - } + kfree(p->rx_buffer); + p->rx_buffer = NULL; #endif - if (p->tx_buffer) { - p->os_func.os_free(p->tx_buffer); - p->tx_buffer = NULL; - } + kfree(p->tx_buffer); acquire_bus(ACQUIRE_AND_WAKEUP); @@ -2240,15 +2231,11 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) _fail_: #ifdef MEMORY_STATIC - if (g_wlan.rx_buffer) { - g_wlan.os_func.os_free(g_wlan.rx_buffer); - g_wlan.rx_buffer = NULL; - } + kfree(g_wlan.rx_buffer); + g_wlan.rx_buffer = NULL; #endif - if (g_wlan.tx_buffer) { - g_wlan.os_func.os_free(g_wlan.tx_buffer); - g_wlan.tx_buffer = NULL; - } + kfree(g_wlan.tx_buffer); + g_wlan.tx_buffer = NULL; #if defined(PLAT_RK3026_TCHIP) /* AMR : 0422 RK3026 Crash issue */ if (!g_wilc_initialized) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index ed1ed00dd581..5a01d34f6419 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -87,7 +87,6 @@ typedef struct { void (*os_sleep)(uint32_t); void (*os_atomic_sleep)(uint32_t); void (*os_debug)(uint8_t *); - void (*os_free)(void *); void (*os_lock)(void *); void (*os_unlock)(void *); int (*os_wait)(void *, u32); From c2e4c0f19a6bbcb4f5f7c8991614c1b1dfaf9683 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:09:50 -0700 Subject: [PATCH 0201/2431] staging: wilc1000: remove mdelay wrapper Just call the function, no need for a pointer to a function that calls the function. turtles, all the way down... Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 5 ----- drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c1289e0ac10d..734cabe698cb 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -540,10 +540,6 @@ static void linux_wlan_msleep(uint32_t msc) } } -static void linux_wlan_atomic_msleep(uint32_t msc) -{ - mdelay(msc); -} static void linux_wlan_dbg(uint8_t *buff) { PRINT_D(INIT_DBG, "%d\n", *buff); @@ -1460,7 +1456,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event; nwi->os_func.os_sleep = linux_wlan_msleep; - nwi->os_func.os_atomic_sleep = linux_wlan_atomic_msleep; nwi->os_func.os_debug = linux_wlan_dbg; nwi->os_func.os_lock = linux_wlan_lock; nwi->os_func.os_unlock = linux_wlan_unlock; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 95897bf16626..6bf1f4544adc 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1352,12 +1352,12 @@ static void wilc_pllupdate_isr_ext(uint32_t int_stats) g_wlan.hif_func.hif_clear_int_ext(PLL_INT_CLR); /* Waiting for PLL */ - g_wlan.os_func.os_atomic_sleep(WILC_PLL_TO); + mdelay(WILC_PLL_TO); /* poll till read a valid data */ while (!(ISWILC1000(wilc_get_chipid(true)) && --trials)) { PRINT_D(TX_DBG, "PLL update retrying\n"); - g_wlan.os_func.os_atomic_sleep(1); + mdelay(1); } } diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 5a01d34f6419..7787e8f803ee 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -85,7 +85,6 @@ typedef struct { typedef struct { void (*os_sleep)(uint32_t); - void (*os_atomic_sleep)(uint32_t); void (*os_debug)(uint8_t *); void (*os_lock)(void *); void (*os_unlock)(void *); From 5e150b52a5fadbf3ef27ce2eaa7c79b4b1436342 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:32:11 -0700 Subject: [PATCH 0202/2431] staging: wilc1000: remove mutex_lock/unlock wrappers Just call the functions directly. Also fix the variable types to be correct, not void *, so we have a semblance of type safety happening now. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 43 +++---------------------- drivers/staging/wilc1000/wilc_wlan.c | 20 ++++++------ drivers/staging/wilc1000/wilc_wlan_if.h | 4 +-- 3 files changed, 15 insertions(+), 52 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 734cabe698cb..14ea61665a85 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -601,39 +601,6 @@ static void linux_wlan_deinit_mutex(void *plock) mutex_destroy((struct mutex *)plock); } -static void linux_wlan_lock_mutex(void *vp) -{ - PRINT_D(LOCK_DBG, "Locking mutex %p\n", vp); - if (vp != NULL) { - /* - * if(mutex_is_locked((struct mutex*)vp)) - * { - * //PRINT_ER("Mutex already locked - %p \n",vp); - * } - */ - mutex_lock((struct mutex *)vp); - - } else { - PRINT_ER("Failed, mutex is NULL\n"); - } -} - -static void linux_wlan_unlock_mutex(void *vp) -{ - PRINT_D(LOCK_DBG, "Unlocking mutex %p\n", vp); - if (vp != NULL) { - - if (mutex_is_locked((struct mutex *)vp)) { - mutex_unlock((struct mutex *)vp); - } else { - /* PRINT_ER("Mutex already unlocked - %p\n",vp); */ - } - - } else { - PRINT_ER("Failed, mutex is NULL\n"); - } -} - /*Added by Amr - BugID_4720*/ static void linux_wlan_init_spin_lock(char *lockName, void *plock, int count) { @@ -1297,9 +1264,9 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) #if defined(PLAT_ALLWINNER_A20) || defined(PLAT_ALLWINNER_A23) || defined(PLAT_ALLWINNER_A31) #else - linux_wlan_lock_mutex((void *)&g_linux_wlan->hif_cs); + mutex_lock(&g_linux_wlan->hif_cs); disable_sdio_interrupt(); - linux_wlan_unlock_mutex((void *)&g_linux_wlan->hif_cs); + mutex_unlock(&g_linux_wlan->hif_cs); #endif #endif @@ -1337,9 +1304,9 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) #if defined(PLAT_ALLWINNER_A20) || defined(PLAT_ALLWINNER_A23) || defined(PLAT_ALLWINNER_A31) PRINT_D(INIT_DBG, "Disabling IRQ 2\n"); - linux_wlan_lock_mutex((void *)&g_linux_wlan->hif_cs); + mutex_lock(&g_linux_wlan->hif_cs); disable_sdio_interrupt(); - linux_wlan_unlock_mutex((void *)&g_linux_wlan->hif_cs); + mutex_unlock(&g_linux_wlan->hif_cs); #endif #endif @@ -1461,8 +1428,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_func.os_unlock = linux_wlan_unlock; nwi->os_func.os_wait = linux_wlan_lock_timeout; nwi->os_func.os_signal = linux_wlan_unlock; - nwi->os_func.os_enter_cs = linux_wlan_lock_mutex; - nwi->os_func.os_leave_cs = linux_wlan_unlock_mutex; /*Added by Amr - BugID_4720*/ nwi->os_func.os_spin_lock = linux_wlan_spin_lock; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 6bf1f4544adc..e1b248d8ae78 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -43,7 +43,7 @@ typedef struct { * host interface functions **/ wilc_hif_func_t hif_func; - void *hif_lock; + struct mutex *hif_lock; /** * configuration interface functions @@ -89,7 +89,7 @@ typedef struct { /** * RX queue **/ - void *rxq_lock; + struct mutex *rxq_lock; struct rxq_entry_t *rxq_head; struct rxq_entry_t *rxq_tail; int rxq_entries; @@ -135,7 +135,7 @@ static CHIP_PS_STATE_T genuChipPSstate = CHIP_WAKEDUP; INLINE void acquire_bus(BUS_ACQUIRE_T acquire) { - g_wlan.os_func.os_enter_cs(g_wlan.hif_lock); + mutex_lock(g_wlan.hif_lock); #ifndef WILC_OPTIMIZE_SLEEP_INT if (genuChipPSstate != CHIP_WAKEDUP) #endif @@ -151,7 +151,7 @@ INLINE void release_bus(BUS_RELEASE_T release) if (release == RELEASE_ALLOW_SLEEP) chip_allow_sleep(); #endif - g_wlan.os_func.os_leave_cs(g_wlan.hif_lock); + mutex_unlock(g_wlan.hif_lock); } /******************************************** * @@ -659,7 +659,7 @@ static int wilc_wlan_rxq_add(struct rxq_entry_t *rqe) if (p->quit) return 0; - p->os_func.os_enter_cs(p->rxq_lock); + mutex_lock(p->rxq_lock); if (p->rxq_head == NULL) { PRINT_D(RX_DBG, "Add to Queue head\n"); rqe->next = NULL; @@ -673,7 +673,7 @@ static int wilc_wlan_rxq_add(struct rxq_entry_t *rqe) } p->rxq_entries += 1; PRINT_D(RX_DBG, "Number of queue entries: %d\n", p->rxq_entries); - p->os_func.os_leave_cs(p->rxq_lock); + mutex_unlock(p->rxq_lock); return p->rxq_entries; } @@ -685,12 +685,12 @@ static struct rxq_entry_t *wilc_wlan_rxq_remove(void) if (p->rxq_head) { struct rxq_entry_t *rqe; - p->os_func.os_enter_cs(p->rxq_lock); + mutex_lock(p->rxq_lock); rqe = p->rxq_head; p->rxq_head = p->rxq_head->next; p->rxq_entries -= 1; PRINT_D(RX_DBG, "RXQ entries decreased\n"); - p->os_func.os_leave_cs(p->rxq_lock); + mutex_unlock(p->rxq_lock); return rqe; } PRINT_D(RX_DBG, "Nothing to get from Q\n"); @@ -2253,7 +2253,7 @@ u16 Set_machw_change_vir_if(bool bValue) u32 reg; /*Reset WILC_CHANGING_VIR_IF register to allow adding futrue keys to CE H/W*/ - (&g_wlan)->os_func.os_enter_cs((&g_wlan)->hif_lock); + mutex_lock((&g_wlan)->hif_lock); ret = (&g_wlan)->hif_func.hif_read_reg(WILC_CHANGING_VIR_IF, ®); if (!ret) { PRINT_ER("Error while Reading reg WILC_CHANGING_VIR_IF\n"); @@ -2269,7 +2269,7 @@ u16 Set_machw_change_vir_if(bool bValue) if (!ret) { PRINT_ER("Error while writing reg WILC_CHANGING_VIR_IF\n"); } - (&g_wlan)->os_func.os_leave_cs((&g_wlan)->hif_lock); + mutex_unlock((&g_wlan)->hif_lock); return ret; } diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 7787e8f803ee..40050d7a991c 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -90,8 +90,6 @@ typedef struct { void (*os_unlock)(void *); int (*os_wait)(void *, u32); void (*os_signal)(void *); - void (*os_enter_cs)(void *); - void (*os_leave_cs)(void *); /*Added by Amr - BugID_4720*/ void (*os_spin_lock)(void *, unsigned long *); @@ -137,7 +135,7 @@ typedef struct { typedef struct { void *os_private; - void *hif_critical_section; + struct mutex *hif_critical_section; uint32_t tx_buffer_size; void *txq_critical_section; From b25a37b910dd9b0eda1cc3a55be2abf38dae21da Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:38:42 -0700 Subject: [PATCH 0203/2431] staging: wilc1000: remove wrapper around spin_lock_init() It's only called once, so just call the real function. Also remove the empty "deinit" function that didn't do anything. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 14ea61665a85..dace77e046b2 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -601,18 +601,6 @@ static void linux_wlan_deinit_mutex(void *plock) mutex_destroy((struct mutex *)plock); } -/*Added by Amr - BugID_4720*/ -static void linux_wlan_init_spin_lock(char *lockName, void *plock, int count) -{ - spin_lock_init((spinlock_t *)plock); - PRINT_D(SPIN_DEBUG, "Initializing mutex [%s][%p]\n", lockName, plock); - -} - -static void linux_wlan_deinit_spin_lock(void *plock) -{ - -} static void linux_wlan_spin_lock(void *vp, unsigned long *flags) { unsigned long lflags; @@ -1335,7 +1323,7 @@ int wlan_init_locks(linux_wlan_t *p_nic) linux_wlan_init_mutex("txq_lock/txq_cs", &g_linux_wlan->txq_cs, 1); /*Added by Amr - BugID_4720*/ - linux_wlan_init_spin_lock("txq_spin_lock/txq_cs", &g_linux_wlan->txq_spinlock, 1); + spin_lock_init(&g_linux_wlan->txq_spinlock); /*Added by Amr - BugID_4720*/ linux_wlan_init_lock("txq_add_to_head_lock/txq_cs", &g_linux_wlan->txq_add_to_head_cs, 1); @@ -1369,10 +1357,6 @@ static int wlan_deinit_locks(linux_wlan_t *nic) if (&g_linux_wlan->txq_cs != NULL) linux_wlan_deinit_mutex(&g_linux_wlan->txq_cs); - /*Added by Amr - BugID_4720*/ - if (&g_linux_wlan->txq_spinlock != NULL) - linux_wlan_deinit_spin_lock(&g_linux_wlan->txq_spinlock); - if (&g_linux_wlan->rxq_event != NULL) linux_wlan_deinit_lock(&g_linux_wlan->rxq_event); From 19a334890b11c5b622e35eca352728a42bfe4396 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:43:44 -0700 Subject: [PATCH 0204/2431] staging: wilc1000: remove mutex_init/destroy() wrappers Just call the real functions. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index dace77e046b2..7b68d123d270 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -589,18 +589,6 @@ void linux_wlan_unlock(void *vp) PRINT_ER("Failed, mutex is NULL\n"); } -static void linux_wlan_init_mutex(char *lockName, void *plock, int count) -{ - mutex_init((struct mutex *)plock); - PRINT_D(LOCK_DBG, "Initializing mutex [%s][%p]\n", lockName, plock); - -} - -static void linux_wlan_deinit_mutex(void *plock) -{ - mutex_destroy((struct mutex *)plock); -} - static void linux_wlan_spin_lock(void *vp, unsigned long *flags) { unsigned long lflags; @@ -1317,10 +1305,9 @@ int wlan_init_locks(linux_wlan_t *p_nic) PRINT_D(INIT_DBG, "Initializing Locks ...\n"); - /*initialize mutexes*/ - linux_wlan_init_mutex("hif_lock/hif_cs", &g_linux_wlan->hif_cs, 1); - linux_wlan_init_mutex("rxq_lock/rxq_cs", &g_linux_wlan->rxq_cs, 1); - linux_wlan_init_mutex("txq_lock/txq_cs", &g_linux_wlan->txq_cs, 1); + mutex_init(&g_linux_wlan->hif_cs); + mutex_init(&g_linux_wlan->rxq_cs); + mutex_init(&g_linux_wlan->txq_cs); /*Added by Amr - BugID_4720*/ spin_lock_init(&g_linux_wlan->txq_spinlock); @@ -1349,13 +1336,13 @@ static int wlan_deinit_locks(linux_wlan_t *nic) PRINT_D(INIT_DBG, "De-Initializing Locks\n"); if (&g_linux_wlan->hif_cs != NULL) - linux_wlan_deinit_mutex(&g_linux_wlan->hif_cs); + mutex_destroy(&g_linux_wlan->hif_cs); if (&g_linux_wlan->rxq_cs != NULL) - linux_wlan_deinit_mutex(&g_linux_wlan->rxq_cs); + mutex_destroy(&g_linux_wlan->rxq_cs); if (&g_linux_wlan->txq_cs != NULL) - linux_wlan_deinit_mutex(&g_linux_wlan->txq_cs); + mutex_destroy(&g_linux_wlan->txq_cs); if (&g_linux_wlan->rxq_event != NULL) linux_wlan_deinit_lock(&g_linux_wlan->rxq_event); From 642768eec5e5d8cd1e239828e3b5e23ae45b131a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:56:21 -0700 Subject: [PATCH 0205/2431] staging: wilc1000: remove wrappers around sema_init() Just call the function directly. Also remove a pointless "deinit" function that was empty to match the init function. This also fixes a bug where txq_add_to_head_cs was a mutex structure being used as a semaphore. See the fun things that happen when you use void pointers instead of "real" types? Amazing that this worked at all, someone got _very_ lucky. Whoever "Amr" is, they really didn't fix BugID_4720 correctly :( Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 55 +++---------------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 2 files changed, 10 insertions(+), 47 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 7b68d123d270..c3429774266c 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -545,18 +545,6 @@ static void linux_wlan_dbg(uint8_t *buff) PRINT_D(INIT_DBG, "%d\n", *buff); } -static void linux_wlan_init_lock(char *lockName, void *plock, int count) -{ - sema_init((struct semaphore *)plock, count); - PRINT_D(LOCK_DBG, "Initializing [%s][%p]\n", lockName, plock); - -} - -static void linux_wlan_deinit_lock(void *plock) -{ - /* mutex_destroy((struct mutex*)plock); */ -} - static void linux_wlan_lock(void *vp) { PRINT_D(LOCK_DBG, "Locking %p\n", vp); @@ -1311,21 +1299,19 @@ int wlan_init_locks(linux_wlan_t *p_nic) /*Added by Amr - BugID_4720*/ spin_lock_init(&g_linux_wlan->txq_spinlock); + sema_init(&g_linux_wlan->txq_add_to_head_cs, 1); - /*Added by Amr - BugID_4720*/ - linux_wlan_init_lock("txq_add_to_head_lock/txq_cs", &g_linux_wlan->txq_add_to_head_cs, 1); + sema_init(&g_linux_wlan->txq_event, 0); + sema_init(&g_linux_wlan->rxq_event, 0); - linux_wlan_init_lock("txq_wait/txq_event", &g_linux_wlan->txq_event, 0); - linux_wlan_init_lock("rxq_wait/rxq_event", &g_linux_wlan->rxq_event, 0); + sema_init(&g_linux_wlan->cfg_event, 0); + sema_init(&g_linux_wlan->sync_event, 0); - linux_wlan_init_lock("cfg_wait/cfg_event", &g_linux_wlan->cfg_event, 0); - linux_wlan_init_lock("sync_event", &g_linux_wlan->sync_event, 0); - - linux_wlan_init_lock("rxq_lock/rxq_started", &g_linux_wlan->rxq_thread_started, 0); - linux_wlan_init_lock("rxq_lock/txq_started", &g_linux_wlan->txq_thread_started, 0); + sema_init(&g_linux_wlan->rxq_thread_started, 0); + sema_init(&g_linux_wlan->txq_thread_started, 0); #if (RX_BH_TYPE == RX_BH_KTHREAD) - linux_wlan_init_lock("BH_SEM", &g_linux_wlan->rx_sem, 0); + sema_init(&g_linux_wlan->rx_sem, 0); #endif return 0; @@ -1344,28 +1330,6 @@ static int wlan_deinit_locks(linux_wlan_t *nic) if (&g_linux_wlan->txq_cs != NULL) mutex_destroy(&g_linux_wlan->txq_cs); - if (&g_linux_wlan->rxq_event != NULL) - linux_wlan_deinit_lock(&g_linux_wlan->rxq_event); - - if (&g_linux_wlan->txq_event != NULL) - linux_wlan_deinit_lock(&g_linux_wlan->txq_event); - - /*Added by Amr - BugID_4720*/ - if (&g_linux_wlan->txq_add_to_head_cs != NULL) - linux_wlan_deinit_lock(&g_linux_wlan->txq_add_to_head_cs); - - if (&g_linux_wlan->rxq_thread_started != NULL) - linux_wlan_deinit_lock(&g_linux_wlan->rxq_thread_started); - - if (&g_linux_wlan->txq_thread_started != NULL) - linux_wlan_deinit_lock(&g_linux_wlan->txq_thread_started); - - if (&g_linux_wlan->cfg_event != NULL) - linux_wlan_deinit_lock(&g_linux_wlan->cfg_event); - - if (&g_linux_wlan->sync_event != NULL) - linux_wlan_deinit_lock(&g_linux_wlan->sync_event); - return 0; } void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) @@ -2370,7 +2334,7 @@ int wilc_netdev_init(void) perInterface_wlan_t *nic; struct net_device *ndev; - linux_wlan_init_lock("close_exit_sync", &close_exit_sync, 0); + sema_init(&close_exit_sync, 0); /*create the common structure*/ g_linux_wlan = WILC_MALLOC(sizeof(linux_wlan_t)); @@ -2566,7 +2530,6 @@ static void __exit exit_wilc_driver(void) sdio_unregister_driver(&wilc_bus); #endif - linux_wlan_deinit_lock(&close_exit_sync); if (g_linux_wlan != NULL) { kfree(g_linux_wlan); g_linux_wlan = NULL; diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 77f320d125e8..d1de0321749a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -193,7 +193,7 @@ typedef struct { struct mutex txq_cs; /*Added by Amr - BugID_4720*/ - struct mutex txq_add_to_head_cs; + struct semaphore txq_add_to_head_cs; spinlock_t txq_spinlock; struct mutex rxq_cs; From 8990d856f55d42b56c0e940f42942e21f9c05e16 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 20:07:58 -0700 Subject: [PATCH 0206/2431] staging: wilc1000: remove wrappers around semaphore usage Just call up/down directly, no need for a wrapper function that hides what is really happening. Fix up some variable types to be the correct structure pointers, not void *. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 67 ++++++------------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 3 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 3 - drivers/staging/wilc1000/wilc_wlan.c | 20 +++--- drivers/staging/wilc1000/wilc_wlan_if.h | 5 +- 5 files changed, 32 insertions(+), 66 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c3429774266c..84bdfc195c9f 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -147,8 +147,6 @@ unsigned int int_clrd; static int wlan_deinit_locks(linux_wlan_t *nic); static void wlan_deinitialize_threads(linux_wlan_t *nic); -static void linux_wlan_lock(void *vp); -void linux_wlan_unlock(void *vp); extern void WILC_WFI_monitor_rx(uint8_t *buff, uint32_t size); extern void WILC_WFI_p2p_rx(struct net_device *dev, uint8_t *buff, uint32_t size); @@ -387,7 +385,7 @@ static irqreturn_t isr_uh_routine(int irq, void *user_data) schedule_work(&g_linux_wlan->rx_work_queue); return IRQ_HANDLED; #elif (RX_BH_TYPE == RX_BH_KTHREAD) - linux_wlan_unlock(&g_linux_wlan->rx_sem); + up(&g_linux_wlan->rx_sem); return IRQ_HANDLED; #elif (RX_BH_TYPE == RX_BH_THREADED_IRQ) return IRQ_WAKE_THREAD; @@ -441,7 +439,7 @@ static int isr_bh_routine(void *vp) nic = (linux_wlan_t *)vp; while (1) { - linux_wlan_lock(&nic->rx_sem); + down(&nic->rx_sem); if (g_linux_wlan->close) { while (!kthread_should_stop()) @@ -545,17 +543,6 @@ static void linux_wlan_dbg(uint8_t *buff) PRINT_D(INIT_DBG, "%d\n", *buff); } -static void linux_wlan_lock(void *vp) -{ - PRINT_D(LOCK_DBG, "Locking %p\n", vp); - if (vp != NULL) { - while (down_interruptible((struct semaphore *) vp)) - ; - } else { - PRINT_ER("Failed, mutex is NULL\n"); - } -} - static int linux_wlan_lock_timeout(void *vp, u32 timeout) { int error = -1; @@ -568,15 +555,6 @@ static int linux_wlan_lock_timeout(void *vp, u32 timeout) return error; } -void linux_wlan_unlock(void *vp) -{ - PRINT_D(LOCK_DBG, "Unlocking %p\n", vp); - if (vp != NULL) - up((struct semaphore *)vp); - else - PRINT_ER("Failed, mutex is NULL\n"); -} - static void linux_wlan_spin_lock(void *vp, unsigned long *flags) { unsigned long lflags; @@ -614,7 +592,7 @@ static void linux_wlan_mac_indicate(int flag) pd->oup.wlan_cfg_get_value(WID_STATUS, (unsigned char *)&status, 4); if (pd->mac_status == WILC_MAC_STATUS_INIT) { pd->mac_status = status; - linux_wlan_unlock(&pd->sync_event); + up(&pd->sync_event); } else { pd->mac_status = status; } @@ -695,14 +673,14 @@ static int linux_wlan_rxq_task(void *vp) { /* inform wilc1000_wlan_init that RXQ task is started. */ - linux_wlan_unlock(&g_linux_wlan->rxq_thread_started); + up(&g_linux_wlan->rxq_thread_started); while (1) { - linux_wlan_lock(&g_linux_wlan->rxq_event); + down(&g_linux_wlan->rxq_event); /* wait_for_completion(&g_linux_wlan->rxq_event); */ if (g_linux_wlan->close) { /*Unlock the mutex in the mac_close function to indicate the exiting of the RX thread */ - linux_wlan_unlock(&g_linux_wlan->rxq_thread_started); + up(&g_linux_wlan->rxq_thread_started); while (!kthread_should_stop()) schedule(); @@ -733,17 +711,17 @@ static int linux_wlan_txq_task(void *vp) #endif /* inform wilc1000_wlan_init that TXQ task is started. */ - linux_wlan_unlock(&g_linux_wlan->txq_thread_started); + up(&g_linux_wlan->txq_thread_started); while (1) { PRINT_D(TX_DBG, "txq_task Taking a nap :)\n"); - linux_wlan_lock(&g_linux_wlan->txq_event); + down(&g_linux_wlan->txq_event); /* wait_for_completion(&pd->txq_event); */ PRINT_D(TX_DBG, "txq_task Who waked me up :$\n"); if (g_linux_wlan->close) { /*Unlock the mutex in the mac_close function to indicate the exiting of the TX thread */ - linux_wlan_unlock(&g_linux_wlan->txq_thread_started); + up(&g_linux_wlan->txq_thread_started); while (!kthread_should_stop()) schedule(); @@ -1236,10 +1214,10 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) /* not sure if the following unlocks are needed or not*/ if (&g_linux_wlan->rxq_event != NULL) - linux_wlan_unlock(&g_linux_wlan->rxq_event); + up(&g_linux_wlan->rxq_event); if (&g_linux_wlan->txq_event != NULL) - linux_wlan_unlock(&g_linux_wlan->txq_event); + up(&g_linux_wlan->txq_event); #if (RX_BH_TYPE == RX_BH_WORK_QUEUE) /*Removing the work struct from the linux kernel workqueue*/ @@ -1248,7 +1226,7 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) #elif (RX_BH_TYPE == RX_BH_KTHREAD) /* if(&nic->rx_sem != NULL) */ - /* linux_wlan_unlock(&nic->rx_sem); */ + /* up(&nic->rx_sem); */ #endif PRINT_D(INIT_DBG, "Deinitializing Threads\n"); @@ -1359,10 +1337,7 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_func.os_sleep = linux_wlan_msleep; nwi->os_func.os_debug = linux_wlan_dbg; - nwi->os_func.os_lock = linux_wlan_lock; - nwi->os_func.os_unlock = linux_wlan_unlock; nwi->os_func.os_wait = linux_wlan_lock_timeout; - nwi->os_func.os_signal = linux_wlan_unlock; /*Added by Amr - BugID_4720*/ nwi->os_func.os_spin_lock = linux_wlan_spin_lock; @@ -1428,7 +1403,7 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) } /* wait for RXQ task to start. */ - linux_wlan_lock(&g_linux_wlan->rxq_thread_started); + down(&g_linux_wlan->rxq_thread_started); #endif @@ -1450,14 +1425,14 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) } #endif /* wait for TXQ task to start. */ - linux_wlan_lock(&g_linux_wlan->txq_thread_started); + down(&g_linux_wlan->txq_thread_started); return 0; _fail_2: /*De-Initialize 2nd thread*/ g_linux_wlan->close = 1; - linux_wlan_unlock(&g_linux_wlan->rxq_event); + up(&g_linux_wlan->rxq_event); kthread_stop(g_linux_wlan->rxq_thread); #ifndef TCP_ENHANCEMENTS @@ -1466,7 +1441,7 @@ _fail_1: #if (RX_BH_TYPE == RX_BH_KTHREAD) /*De-Initialize 1st thread*/ g_linux_wlan->close = 1; - linux_wlan_unlock(&g_linux_wlan->rx_sem); + up(&g_linux_wlan->rx_sem); kthread_stop(g_linux_wlan->rx_bh_thread); _fail_: #endif @@ -1480,7 +1455,7 @@ static void wlan_deinitialize_threads(linux_wlan_t *nic) g_linux_wlan->close = 1; PRINT_D(INIT_DBG, "Deinitializing Threads\n"); if (&g_linux_wlan->rxq_event != NULL) - linux_wlan_unlock(&g_linux_wlan->rxq_event); + up(&g_linux_wlan->rxq_event); if (g_linux_wlan->rxq_thread != NULL) { kthread_stop(g_linux_wlan->rxq_thread); @@ -1488,7 +1463,7 @@ static void wlan_deinitialize_threads(linux_wlan_t *nic) } if (&g_linux_wlan->txq_event != NULL) - linux_wlan_unlock(&g_linux_wlan->txq_event); + up(&g_linux_wlan->txq_event); if (g_linux_wlan->txq_thread != NULL) { kthread_stop(g_linux_wlan->txq_thread); @@ -1497,7 +1472,7 @@ static void wlan_deinitialize_threads(linux_wlan_t *nic) #if (RX_BH_TYPE == RX_BH_KTHREAD) if (&g_linux_wlan->rx_sem != NULL) - linux_wlan_unlock(&g_linux_wlan->rx_sem); + up(&g_linux_wlan->rx_sem); if (g_linux_wlan->rx_bh_thread != NULL) { kthread_stop(g_linux_wlan->rx_bh_thread); @@ -1919,7 +1894,7 @@ int mac_open(struct net_device *ndev) /* Start the network interface queue for this device */ PRINT_D(INIT_DBG, "Starting netifQ\n"); netif_start_queue(ndev); -/* linux_wlan_lock(&close_exit_sync); */ +/* down(&close_exit_sync); */ return 0; } #endif @@ -2133,7 +2108,7 @@ int mac_close(struct net_device *ndev) #endif } - linux_wlan_unlock(&close_exit_sync); + up(&close_exit_sync); nic->mac_opened = 0; return 0; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index ead1291c82fd..75e16878b961 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -23,7 +23,6 @@ #define GET_PKT_OFFSET(a) (((a) >> 22) & 0x1ff) extern int linux_wlan_get_firmware(perInterface_wlan_t *p_nic); -extern void linux_wlan_unlock(void *vp); extern u16 Set_machw_change_vir_if(bool bValue); extern int mac_open(struct net_device *ndev); @@ -2898,7 +2897,7 @@ static int WILC_WFI_change_virt_intf(struct wiphy *wiphy, struct net_device *dev /*BugID_5213*/ /*Eliminate host interface blocking state*/ - linux_wlan_unlock((void *)&g_linux_wlan->cfg_event); + up(&g_linux_wlan->cfg_event); wilc1000_wlan_deinit(g_linux_wlan); wilc1000_wlan_init(dev, nic); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index d1de0321749a..8047dd993280 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -199,13 +199,10 @@ typedef struct { struct mutex rxq_cs; struct mutex hif_cs; - /* struct mutex txq_event; */ struct semaphore rxq_event; struct semaphore cfg_event; struct semaphore sync_event; - struct semaphore txq_event; - /* struct completion txq_event; */ #if (RX_BH_TYPE == RX_BH_WORK_QUEUE) struct work_struct rx_work_queue; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index e1b248d8ae78..e34ce53a2319 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -76,7 +76,7 @@ typedef struct { void *txq_lock; /*Added by Amr - BugID_4720*/ - void *txq_add_to_head_lock; + struct semaphore *txq_add_to_head_lock; void *txq_spinlock; unsigned long txq_spinlock_flags; @@ -238,9 +238,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) **/ PRINT_D(TX_DBG, "Wake the txq_handling\n"); - p->os_func.os_signal(p->txq_wait); - - + up(p->txq_wait); } static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) @@ -269,13 +267,13 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) /*Added by Amr - BugID_4720*/ p->os_func.os_spin_unlock(p->txq_spinlock, &flags); - p->os_func.os_signal(p->txq_add_to_head_lock); + up(p->txq_add_to_head_lock); /** * wake up TX queue **/ - p->os_func.os_signal(p->txq_wait); + up(p->txq_wait); PRINT_D(TX_DBG, "Wake up the txq_handler\n"); /*Added by Amr - BugID_4720*/ @@ -507,7 +505,7 @@ static int wilc_wlan_txq_add_cfg_pkt(uint8_t *buffer, uint32_t buffer_size) PRINT_D(TX_DBG, "Adding config packet ...\n"); if (p->quit) { PRINT_D(TX_DBG, "Return due to clear function\n"); - p->os_func.os_signal(p->cfg_wait); + up(p->cfg_wait); return 0; } @@ -1193,7 +1191,7 @@ _end_: break; } while (0); /*Added by Amr - BugID_4720*/ - p->os_func.os_signal(p->txq_add_to_head_lock); + up(p->txq_add_to_head_lock); p->txq_exit = 1; PRINT_D(TX_DBG, "THREAD: Exiting txq\n"); @@ -1217,7 +1215,7 @@ static void wilc_wlan_handle_rxq(void) do { if (p->quit) { PRINT_D(RX_DBG, "exit 1st do-while due to Clean_UP function\n"); - p->os_func.os_signal(p->cfg_wait); + up(p->cfg_wait); break; } rqe = wilc_wlan_rxq_remove(); @@ -1298,7 +1296,7 @@ static void wilc_wlan_handle_rxq(void) **/ PRINT_D(RX_DBG, "p->cfg_seq_no = %d - rsp.seq_no = %d\n", p->cfg_seq_no, rsp.seq_no); if (p->cfg_seq_no == rsp.seq_no) { - p->os_func.os_signal(p->cfg_wait); + up(p->cfg_wait); } } else if (rsp.type == WILC_CFG_RSP_STATUS) { /** @@ -1452,7 +1450,7 @@ _end_: rqe->buffer_size = size; PRINT_D(RX_DBG, "rxq entery Size= %d - Address = %p\n", rqe->buffer_size, rqe->buffer); wilc_wlan_rxq_add(rqe); - p->os_func.os_signal(p->rxq_wait); + up(p->rxq_wait); } } else { #ifndef MEMORY_STATIC diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 40050d7a991c..3519b2280e20 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -86,10 +86,7 @@ typedef struct { typedef struct { void (*os_sleep)(uint32_t); void (*os_debug)(uint8_t *); - void (*os_lock)(void *); - void (*os_unlock)(void *); int (*os_wait)(void *, u32); - void (*os_signal)(void *); /*Added by Amr - BugID_4720*/ void (*os_spin_lock)(void *, unsigned long *); @@ -152,7 +149,7 @@ typedef struct { void *rxq_critical_section; void *rxq_wait_event; - void *cfg_wait_event; + struct semaphore *cfg_wait_event; } wilc_wlan_os_context_t; typedef struct { From 17c4d5d541e282f05b709885578d7c5ac18e49d8 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 20:17:31 -0700 Subject: [PATCH 0207/2431] staging: wilc1000: remove spinlock wrappers Just call the spinlock functions directly, no need for the indirection. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 29 ---------------------- drivers/staging/wilc1000/wilc_wlan.c | 32 ++++++++++++------------- drivers/staging/wilc1000/wilc_wlan_if.h | 5 ---- 3 files changed, 16 insertions(+), 50 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 84bdfc195c9f..c90c45907422 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -555,31 +555,6 @@ static int linux_wlan_lock_timeout(void *vp, u32 timeout) return error; } -static void linux_wlan_spin_lock(void *vp, unsigned long *flags) -{ - unsigned long lflags; - - PRINT_D(SPIN_DEBUG, "Lock spin %p\n", vp); - if (vp != NULL) { - spin_lock_irqsave((spinlock_t *)vp, lflags); - *flags = lflags; - } else { - PRINT_ER("Failed, spin lock is NULL\n"); - } -} -static void linux_wlan_spin_unlock(void *vp, unsigned long *flags) -{ - unsigned long lflags = *flags; - - PRINT_D(SPIN_DEBUG, "Unlock spin %p\n", vp); - if (vp != NULL) { - spin_unlock_irqrestore((spinlock_t *)vp, lflags); - *flags = lflags; - } else { - PRINT_ER("Failed, spin lock is NULL\n"); - } -} - static void linux_wlan_mac_indicate(int flag) { /*I have to do it that way becuase there is no mean to encapsulate device pointer @@ -1339,10 +1314,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_func.os_debug = linux_wlan_dbg; nwi->os_func.os_wait = linux_wlan_lock_timeout; - /*Added by Amr - BugID_4720*/ - nwi->os_func.os_spin_lock = linux_wlan_spin_lock; - nwi->os_func.os_spin_unlock = linux_wlan_spin_unlock; - #ifdef WILC_SDIO nwi->io_func.io_type = HIF_SDIO; nwi->io_func.io_init = linux_sdio_init; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index e34ce53a2319..248f3d90cd9c 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -189,7 +189,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - p->os_func.os_spin_lock(p->txq_spinlock, &flags); + spin_lock_irqsave(p->txq_spinlock, flags); if (p->txq_head) { tqe = p->txq_head; p->txq_head = tqe->next; @@ -205,7 +205,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) } else { tqe = NULL; } - p->os_func.os_spin_unlock(p->txq_spinlock, &flags); + spin_unlock_irqrestore(p->txq_spinlock, flags); return tqe; } @@ -214,7 +214,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; /*Added by Amr - BugID_4720*/ - p->os_func.os_spin_lock(p->txq_spinlock, &flags); + spin_lock_irqsave(p->txq_spinlock, flags); if (p->txq_head == NULL) { tqe->next = NULL; @@ -231,7 +231,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries); /*Added by Amr - BugID_4720*/ - p->os_func.os_spin_unlock(p->txq_spinlock, &flags); + spin_unlock_irqrestore(p->txq_spinlock, flags); /** * wake up TX queue @@ -249,7 +249,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT)) return -1; - p->os_func.os_spin_lock(p->txq_spinlock, &flags); + spin_lock_irqsave(p->txq_spinlock, flags); if (p->txq_head == NULL) { tqe->next = NULL; @@ -266,7 +266,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries); /*Added by Amr - BugID_4720*/ - p->os_func.os_spin_unlock(p->txq_spinlock, &flags); + spin_unlock_irqrestore(p->txq_spinlock, flags); up(p->txq_add_to_head_lock); @@ -368,9 +368,9 @@ static __inline int remove_TCP_related(void) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - p->os_func.os_spin_lock(p->txq_spinlock, &flags); + spin_lock_irqsave(p->txq_spinlock, flags); - p->os_func.os_spin_unlock(p->txq_spinlock, &flags); + spin_unlock_irqrestore(p->txq_spinlock, flags); return 0; } @@ -384,7 +384,7 @@ static __inline int tcp_process(struct txq_entry_t *tqe) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - p->os_func.os_spin_lock(p->txq_spinlock, &flags); + spin_lock_irqsave(p->txq_spinlock, flags); eth_hdr_ptr = &buffer[0]; h_proto = ntohs(*((unsigned short *)ð_hdr_ptr[12])); @@ -432,7 +432,7 @@ static __inline int tcp_process(struct txq_entry_t *tqe) } else { ret = 0; } - p->os_func.os_spin_unlock(p->txq_spinlock, &flags); + spin_unlock_irqrestore(p->txq_spinlock, flags); return ret; } @@ -444,7 +444,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) uint32_t Dropped = 0; wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - p->os_func.os_spin_lock(p->txq_spinlock, &p->txq_spinlock_flags); + spin_lock_irqsave(p->txq_spinlock, p->txq_spinlock_flags); for (i = PendingAcks_arrBase; i < (PendingAcks_arrBase + Pending_Acks); i++) { if (Pending_Acks_info[i].ack_num < Acks_keep_track_info[Pending_Acks_info[i].Session_index].Bigger_Ack_num) { struct txq_entry_t *tqe; @@ -471,7 +471,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) PendingAcks_arrBase = 0; - p->os_func.os_spin_unlock(p->txq_spinlock, &p->txq_spinlock_flags); + spin_unlock_irqrestore(p->txq_spinlock, p->txq_spinlock_flags); while (Dropped > 0) { /*consume the semaphore count of the removed packet*/ @@ -624,12 +624,12 @@ static struct txq_entry_t *wilc_wlan_txq_get_first(void) unsigned long flags; /*Added by Amr - BugID_4720*/ - p->os_func.os_spin_lock(p->txq_spinlock, &flags); + spin_lock_irqsave(p->txq_spinlock, flags); tqe = p->txq_head; /*Added by Amr - BugID_4720*/ - p->os_func.os_spin_unlock(p->txq_spinlock, &flags); + spin_unlock_irqrestore(p->txq_spinlock, flags); return tqe; @@ -640,11 +640,11 @@ static struct txq_entry_t *wilc_wlan_txq_get_next(struct txq_entry_t *tqe) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; /*Added by Amr - BugID_4720*/ - p->os_func.os_spin_lock(p->txq_spinlock, &flags); + spin_lock_irqsave(p->txq_spinlock, flags); tqe = tqe->next; /*Added by Amr - BugID_4720*/ - p->os_func.os_spin_unlock(p->txq_spinlock, &flags); + spin_unlock_irqrestore(p->txq_spinlock, flags); return tqe; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 3519b2280e20..8b8cf9ba75b4 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -87,11 +87,6 @@ typedef struct { void (*os_sleep)(uint32_t); void (*os_debug)(uint8_t *); int (*os_wait)(void *, u32); - - /*Added by Amr - BugID_4720*/ - void (*os_spin_lock)(void *, unsigned long *); - void (*os_spin_unlock)(void *, unsigned long *); - } wilc_wlan_os_func_t; typedef struct { From d42ab0838d040bb57b2368125aeb49a8bf1d2383 Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Thu, 20 Aug 2015 16:32:52 +0900 Subject: [PATCH 0208/2431] staging: wilc1000: use id value as argument The driver communicates with the chipset via the address of handlers to distinguish async data frame. The SendConfigPkt function gets the pointer address indicating the handlers as the last argument, but this requires redundant typecasting and does not support the 64 bit machine. This patch adds the function which assigns ID values instead of pointer representing the driver handler to the address and then uses the ID instead of pointer as the last argument of SendConfigPkt. The driver also gets the handler's address from the ID in the data frame when it receives them. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 241 +++++++++++++----- drivers/staging/wilc1000/host_interface.h | 1 + drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - 3 files changed, 176 insertions(+), 67 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c853f82b8b09..8458d8d40232 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -531,8 +531,8 @@ typedef enum { /* Global Variabls */ /* */ /*****************************************************************************/ - - +/* Zero is not used, because a zero ID means termination */ +static tstrWILC_WFIDrv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; tstrWILC_WFIDrv *terminated_handle; tstrWILC_WFIDrv *gWFiDrvHandle; #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP @@ -592,6 +592,56 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo); extern void chip_sleep_manually(u32 u32SleepTime); extern int linux_wlan_get_num_conn_ifcs(void); +static int add_handler_in_list(tstrWILC_WFIDrv *handler) +{ + int i; + + for (i = 1; i < ARRAY_SIZE(wfidrv_list); i++) { + if (!wfidrv_list[i]) { + wfidrv_list[i] = handler; + return 0; + } + } + + return -ENOBUFS; +} + +static int remove_handler_in_list(tstrWILC_WFIDrv *handler) +{ + int i; + + for (i = 1; i < ARRAY_SIZE(wfidrv_list); i++) { + if (wfidrv_list[i] == handler) { + wfidrv_list[i] = NULL; + return 0; + } + } + + return -EINVAL; +} + +static int get_id_from_handler(tstrWILC_WFIDrv *handler) +{ + int i; + + if (!handler) + return 0; + + for (i = 1; i < ARRAY_SIZE(wfidrv_list); i++) { + if (wfidrv_list[i] == handler) + return i; + } + + return 0; +} + +static tstrWILC_WFIDrv *get_handler_from_id(int id) +{ + if (id <= 0 || id > ARRAY_SIZE(wfidrv_list)) + return NULL; + return wfidrv_list[id]; +} + /** * @brief Handle_SetChannel * @details Sending config packet to firmware to set channel @@ -616,7 +666,8 @@ static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetChan *pst PRINT_D(HOSTINF_DBG, "Setting channel\n"); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set channel\n"); WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); @@ -654,8 +705,8 @@ static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); - + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + pstrHostIfSetDrvHandler->u32Address); if (pstrWFIDrv == NULL) up(&hSemDeinitDrvHandle); @@ -699,7 +750,8 @@ static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetOpe /*Sending Cfg*/ PRINT_INFO(HOSTINF_DBG, "pstrWFIDrv= %p\n", pstrWFIDrv); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if ((pstrHostIfSetOperationMode->u32Mode) == (u32)NULL) @@ -748,8 +800,8 @@ s32 Handle_set_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.ps8WidVal = (u8 *)pu8IPAddr; strWID.s32ValueSize = IP_ALEN; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); - + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); host_int_get_ipaddress(drvHandler, firmwareIPAddress, idx); @@ -792,7 +844,8 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.ps8WidVal = WILC_MALLOC(IP_ALEN); strWID.s32ValueSize = IP_ALEN; - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.ps8WidVal); @@ -853,7 +906,8 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetMacAdd strWID.s32ValueSize = ETH_ALEN; PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.ps8WidVal); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set mac address\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -891,7 +945,8 @@ static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfGetMacAdd strWID.s32ValueSize = ETH_ALEN; /*Sending Cfg*/ - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, false, (u32)drvHandler); + s32Error = SendConfigPkt(GET_CFG, &strWID, 1, false, + get_id_from_handler(drvHandler)); if (s32Error) { PRINT_ER("Failed to get mac address\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -1199,7 +1254,8 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * } u8WidCnt++; } - s32Error = SendConfigPkt(SET_CFG, strWIDList, u8WidCnt, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, strWIDList, u8WidCnt, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Error in setting CFG params\n"); @@ -1356,7 +1412,8 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHost else if (pstrWFIDrv->enuHostIFstate == HOST_IF_IDLE) gbScanWhileConnected = false; - s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send scan paramters config packet\n"); @@ -1433,7 +1490,8 @@ static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent) strWID.s32ValueSize = sizeof(char); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error != WILC_SUCCESS) { PRINT_ER("Failed to set abort running scan\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -1629,7 +1687,8 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps gu32WidConnRstHack = 0; /* ////////////////////// */ - s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Handle_Connect()] failed to send config packet\n"); WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); @@ -1952,7 +2011,8 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps PRINT_D(GENERIC_DBG, "save bssid = %pM\n", u8ConnectedSSID); } - s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Handle_Connect()] failed to send config packet\n"); WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); @@ -2081,7 +2141,8 @@ static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) #endif - s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, gu8FlushedJoinReqDrvHandler); + s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(gu8FlushedJoinReqDrvHandler)); if (s32Error) { PRINT_ER("Handle_Flush_Connect()] failed to send config packet\n"); WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); @@ -2166,7 +2227,8 @@ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send dissconect config packet\n"); @@ -2726,7 +2788,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF strWIDList[3].ps8WidVal = (s8 *)pu8keybuf; - s32Error = SendConfigPkt(SET_CFG, strWIDList, 4, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, strWIDList, 4, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2754,7 +2817,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); } else if (pstrHostIFkeyAttr->u8KeyAction & REMOVEKEY) { @@ -2766,7 +2830,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF strWID.ps8WidVal = s8idxarray; strWID.s32ValueSize = 1; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); } else { strWID.u16WIDid = (u16)WID_KEY_ID; strWID.enuWIDtype = WID_CHAR; @@ -2775,7 +2840,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF PRINT_D(HOSTINF_DBG, "Setting default key index\n"); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); } up(&(pstrWFIDrv->hSemTestKeyBlock)); break; @@ -2821,7 +2887,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = RX_MIC_KEY_MSG_LEN; - s32Error = SendConfigPkt(SET_CFG, strWIDList, 2, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, strWIDList, 2, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2867,7 +2934,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = RX_MIC_KEY_MSG_LEN; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2924,7 +2992,8 @@ _WPARxGtk_end_case_: strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = PTK_KEY_MSG_LEN + 1; - s32Error = SendConfigPkt(SET_CFG, strWIDList, 2, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, strWIDList, 2, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); /* ////////////////////////// */ @@ -2965,7 +3034,8 @@ _WPARxGtk_end_case_: strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = PTK_KEY_MSG_LEN; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); /* ////////////////////////// */ @@ -3004,7 +3074,8 @@ _WPAPtk_end_case_: strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); break; @@ -3053,7 +3124,8 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) memset(u8ConnectedSSID, 0, ETH_ALEN); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send dissconect config packet\n"); @@ -3166,7 +3238,8 @@ static s32 Switch_Log_Terminal(tstrWILC_WFIDrv *drvHandler) strWID.ps8WidVal = &dummy; strWID.s32ValueSize = sizeof(char); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { @@ -3211,7 +3284,8 @@ static s32 Handle_GetChnl(tstrWILC_WFIDrv *drvHandler) PRINT_D(HOSTINF_DBG, "Getting channel value\n"); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get channel number\n"); @@ -3255,7 +3329,8 @@ static void Handle_GetRssi(tstrWILC_WFIDrv *drvHandler) /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to get RSSI value\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -3286,7 +3361,8 @@ static void Handle_GetLinkspeed(tstrWILC_WFIDrv *drvHandler) /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to get LINKSPEED value\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -3336,7 +3412,8 @@ s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatis strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxFailureCount)); u32WidsCount++; - s32Error = SendConfigPkt(GET_CFG, strWIDList, u32WidsCount, false, (u32)drvHandler); + s32Error = SendConfigPkt(GET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(drvHandler)); if (s32Error) { PRINT_ER("Failed to send scan paramters config packet\n"); @@ -3384,7 +3461,8 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna PRINT_D(CFG80211_DBG, "SETING STA inactive time\n"); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to SET incative time\n"); @@ -3398,7 +3476,8 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna strWID.s32ValueSize = sizeof(u32); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get incative time\n"); @@ -3479,7 +3558,8 @@ static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetBeacon *p /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send add beacon config packet\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -3524,7 +3604,8 @@ static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelBeacon *p /* TODO: build del beacon message*/ /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send delete beacon config packet\n"); @@ -3620,7 +3701,8 @@ static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error != WILC_SUCCESS) { PRINT_ER("Failed to send add station config packet\n"); @@ -3677,7 +3759,8 @@ static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelAllSta *p } /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send add station config packet\n"); @@ -3724,7 +3807,8 @@ static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelSta *pst memcpy(pu8CurrByte, pstrDelStaParam->au8MacAddr, ETH_ALEN); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send add station config packet\n"); @@ -3767,7 +3851,8 @@ static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send edit station config packet\n"); @@ -3843,7 +3928,8 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh strWID.ps8WidVal[1] = (s8)pstrHostIfRemainOnChan->u16Channel; /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error != WILC_SUCCESS) PRINT_ER("Failed to set remain on channel\n"); @@ -3901,7 +3987,8 @@ static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, tstrHostIfRegisterF /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to frame register config packet\n"); WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); @@ -3952,7 +4039,8 @@ static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, tstrHostIfRema strWID.ps8WidVal[1] = FALSE_FRMWR_CHANNEL; /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error != WILC_SUCCESS) { PRINT_ER("Failed to set remain on channel\n"); goto _done_; @@ -4037,7 +4125,8 @@ static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, tstrHostIfPowerM PRINT_D(HOSTINF_DBG, "Handling Power Management\n"); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send power management config packet\n"); WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); @@ -4088,7 +4177,8 @@ static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, tstrHostIFSet memcpy(pu8CurrByte, gau8MulticastMacAddrList, ((strHostIfSetMulti->u32count) * ETH_ALEN)); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, (u32)drvHandler); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(drvHandler)); if (s32Error) { PRINT_ER("Failed to send setup multicast config packet\n"); WILC_ERRORREPORT(s32Error, WILC_FAIL); @@ -4156,7 +4246,8 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI /* Group Buffer Timeout */ *ptr++ = 0; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't open BA Session\n"); @@ -4180,7 +4271,8 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI *ptr++ = ((strHostIfBASessionInfo->u16SessionTimeout >> 16) & 0xFF); /*Ack-Policy */ *ptr++ = 3; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (strWID.ps8WidVal != NULL) kfree(strWID.ps8WidVal); @@ -4230,7 +4322,8 @@ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI /* Delba Reason */ *ptr++ = 32; /* Unspecific QOS reason */ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); @@ -4248,7 +4341,8 @@ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI /* TID*/ *ptr++ = strHostIfBASessionInfo->u8Ted; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (strWID.ps8WidVal != NULL) kfree(strWID.ps8WidVal); @@ -4299,7 +4393,8 @@ static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASe /* Delba Reason */ *ptr++ = 32; /* Unspecific QOS reason */ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); @@ -5326,7 +5421,8 @@ s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv, astrWIDList[1].ps8WidVal = ppu8RcvdSiteSurveyResults[1]; astrWIDList[1].s32ValueSize = u32MaxSiteSrvyFragLen; - s32Error = SendConfigPkt(GET_CFG, astrWIDList, 2, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(GET_CFG, astrWIDList, 2, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { @@ -5694,7 +5790,8 @@ s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, /* Sending Configuration packet */ - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send association response config packet\n"); *pu32RcvdAssocRespInfoLen = 0; @@ -5819,7 +5916,7 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_WFIDRV_HANDLER; - strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = u32address; + strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); strHostIFmsg.drvHandler = u32address; s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); @@ -5940,7 +6037,8 @@ s32 host_int_test_set_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 u32TestMemAddr) strWID.s32ValueSize = sizeof(u32); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Test Function: Failed to set wid value\n"); WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); @@ -6032,7 +6130,8 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) strWID.ps8WidVal = (s8 *)pu32TestMemAddr; strWID.s32ValueSize = sizeof(u32); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, (u32)pstrWFIDrv); + s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Test Function: Failed to get wid value\n"); @@ -6477,6 +6576,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) { s32 s32Error = WILC_SUCCESS; tstrWILC_WFIDrv *pstrWFIDrv; + int err; /*if(u32Intialized == 1) * { @@ -6504,6 +6604,11 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) /*return driver handle to user*/ *phWFIDrv = pstrWFIDrv; /*save into globl handle*/ + err = add_handler_in_list(pstrWFIDrv); + if (err) { + s32Error = WILC_FAIL; + goto _fail_timer_2; + } #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP @@ -6637,7 +6742,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = WILC_SUCCESS; tstrHostIFmsg strHostIFmsg; - + int ret; /*obtain driver handle*/ tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -6727,6 +6832,10 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) /*Setting the gloabl driver handler with NULL*/ u32Intialized = 0; /* gWFiDrvHandle = NULL; */ + ret = remove_handler_in_list(pstrWFIDrv); + if (ret) + s32Error = WILC_NOT_FOUND; + if (pstrWFIDrv != NULL) { kfree(pstrWFIDrv); /* pstrWFIDrv=NULL; */ @@ -6755,11 +6864,11 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = WILC_SUCCESS; tstrHostIFmsg strHostIFmsg; - u32 drvHandler; + int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; - drvHandler = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); - pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); + pstrWFIDrv = get_handler_from_id(id); @@ -6801,14 +6910,14 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = WILC_SUCCESS; tstrHostIFmsg strHostIFmsg; - u32 drvHandler; + int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; /*BugID_5348*/ down(&hSemHostIntDeinit); - drvHandler = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); - pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); + pstrWFIDrv = get_handler_from_id(id); PRINT_D(HOSTINF_DBG, "General asynchronous info packet received\n"); @@ -6862,11 +6971,11 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = WILC_SUCCESS; tstrHostIFmsg strHostIFmsg; - u32 drvHandler; + int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; - drvHandler = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); - pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); + pstrWFIDrv = get_handler_from_id(id); PRINT_D(GENERIC_DBG, "Scan notification received %p\n", pstrWFIDrv); diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index e66dee9af5da..349d5f5cd919 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -63,6 +63,7 @@ #define WILC_SUPP_MCS_SET_SIZE 16 #define WILC_ADD_STA_LENGTH 40 /* Not including the rates field cause it has variable length*/ #define SCAN_EVENT_DONE_ABORTED +#define NUM_CONCURRENT_IFC 2 /*****************************************************************************/ /* Data Types */ /*****************************************************************************/ diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 8047dd993280..27c692000771 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -172,7 +172,6 @@ typedef struct { } struct_frame_reg; -#define NUM_CONCURRENT_IFC 2 typedef struct { uint8_t aSrcAddress[ETH_ALEN]; uint8_t aBSSID[ETH_ALEN]; From 360e27a91dd25fb7cf3b2befa1e1a7b4f27828d2 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 15:34:15 +0530 Subject: [PATCH 0209/2431] staging: wilc1000: fix freeing of ERR_PTR If memdup_user() fails then it will return the error code in ERR_PTR. We were checking it with IS_ERR but then again trying to free it on the error path. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c90c45907422..020ed038130f 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2116,10 +2116,8 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd) if (size && wrq->u.data.pointer) { buff = memdup_user(wrq->u.data.pointer, wrq->u.data.length); - if (IS_ERR(buff)) { - s32Error = PTR_ERR(buff); - goto done; - } + if (IS_ERR(buff)) + return PTR_ERR(buff); if (strncasecmp(buff, "RSSI", length) == 0) { From 2b922cbef153359413ec328135f21165d5f04826 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 4 Sep 2015 09:30:51 -0700 Subject: [PATCH 0210/2431] staging: wilc1000: remove wrapper around usleep_range() Just call the function directly, no need for the indirection. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 12 ------------ drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 020ed038130f..afd670229834 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -527,17 +527,6 @@ static void deinit_irq(linux_wlan_t *nic) /* * OS functions */ -static void linux_wlan_msleep(uint32_t msc) -{ - if (msc <= 4000000) { - u32 u32Temp = msc * 1000; - - usleep_range(u32Temp, u32Temp); - } else { - msleep(msc); - } -} - static void linux_wlan_dbg(uint8_t *buff) { PRINT_D(INIT_DBG, "%d\n", *buff); @@ -1310,7 +1299,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.rxq_wait_event = (void *)&g_linux_wlan->rxq_event; nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event; - nwi->os_func.os_sleep = linux_wlan_msleep; nwi->os_func.os_debug = linux_wlan_dbg; nwi->os_func.os_wait = linux_wlan_lock_timeout; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 248f3d90cd9c..4b37de5390a1 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -999,7 +999,7 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) **/ PRINT_WRN(GENERIC_DBG, "[wilc txq]: warn, vmm table not clear yet, wait...\n"); release_bus(RELEASE_ALLOW_SLEEP); - p->os_func.os_sleep(3); /* wait 3 ms */ + usleep_range(3000, 3000); acquire_bus(ACQUIRE_AND_WAKEUP); } } while (!p->quit); @@ -1049,7 +1049,7 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) break; } else { release_bus(RELEASE_ALLOW_SLEEP); - p->os_func.os_sleep(3); /* wait 3 ms */ + usleep_range(3000, 3000); acquire_bus(ACQUIRE_AND_WAKEUP); PRINT_WRN(GENERIC_DBG, "Can't get VMM entery - reg = %2x\n", reg); } diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 8b8cf9ba75b4..021a2aab0ce8 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -84,7 +84,6 @@ typedef struct { } sdio_cmd53_t; typedef struct { - void (*os_sleep)(uint32_t); void (*os_debug)(uint8_t *); int (*os_wait)(void *, u32); } wilc_wlan_os_func_t; From 4629385e6a4c8f092555c45eea21f1d24887071b Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 4 Sep 2015 12:25:49 -0400 Subject: [PATCH 0211/2431] staging: unisys: documentation and TODO tweaks Update documentation (including TODO) to reflect the current state of the drivers. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../ABI/sysfs-platform-visorchipset | 2 + .../staging/unisys/Documentation/overview.txt | 438 +++++++++++++----- drivers/staging/unisys/TODO | 25 +- 3 files changed, 322 insertions(+), 143 deletions(-) diff --git a/drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset b/drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset index 28f8f1233fc6..b0498ff32405 100644 --- a/drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset +++ b/drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset @@ -1,3 +1,5 @@ +This file describes sysfs entries beneath /devices/platform/visorchipset. + What: install/error Date: 7/18/2014 KernelVersion: TBD diff --git a/drivers/staging/unisys/Documentation/overview.txt b/drivers/staging/unisys/Documentation/overview.txt index 8d078e4de3b8..25f93f2a1e33 100644 --- a/drivers/staging/unisys/Documentation/overview.txt +++ b/drivers/staging/unisys/Documentation/overview.txt @@ -1,76 +1,282 @@ +1. Overview +----------- -Overview - -This document describes the driver set for Unisys Secure Partitioning (s-Par®). +This document describes the driver set for Unisys Secure Partitioning +(s-Par(R)). s-Par is firmware that provides hardware partitioning capabilities for splitting large-scale Intel x86 servers into multiple isolated partitions. s-Par provides a set of para-virtualized device drivers to allow guest partitions on the same server to share devices that would -normally be unsharable; specifically, PCI network interfaces and host -bus adapters that do not support shared access via SR-IOV. The shared -device is owned and managed by a small, single-purpose service -partition, which communicates with each guest partition sharing that -device through an area of shared memory called a channel. Additional -drivers provide support interfaces for communicating with s-Par -services, logging and diagnostics, and accessing the Linux console -from the s-Par user interface. +normally be unsharable, specifically: -The driver stack consists of a set of support modules, a set of bus -modules, and a set of device driver modules. The support modules -handle a number of common functions across each of the other -drivers. The bus modules provide organization for the device driver -modules, which provide the shared device functionality. +* visornic - network interface +* visorhba - scsi disk adapter +* visorhid - keyboard and mouse -These drivers are for the Unisys virtual PCI hardware model where the -hypervisor need not intervene (other than normal interrupt handling) -in the interactions between the client drivers and the virtual adapter -firmware in the adapter service partition. +These drivers conform to the standard Linux bus/device model described +within Documentation/driver-model/, and utilize a driver named visorbus to +present the virtual busses involved. Drivers in the 'visor*' driver set are +commonly referred to as "guest drivers" or "client drivers". All drivers +except visorbus expose a device of a specific usable class to the Linux guest +environment (e.g., block, network, or input), and are collectively referred +to as "function drivers". -Driver Descriptions +The back-end for each device is owned and managed by a small, +single-purpose service partition in the s-Par firmware, which communicates +with each guest partition sharing that device through an area of shared memory +called a "channel". In s-Par nomenclature, the back-end is often referred to +as the "service partition", "IO partition" (for virtual network and scsi disk +devices), or "console partition" (for virtual keyboard and mouse devices). -Device Modules +Each virtual device requires exactly 1 dedicated channel, which the guest +driver and back-end use to communicate. The hypervisor need not intervene +(other than normal interrupt handling) in the interactions that occur across +this channel. -The modules in this section handle shared devices and the virtual -buses required to support them. These modules use functions in and -depend on the modules described in the support modules section. +NOT covered in this document: -visorchipset +* s-Par also supports sharing physical PCI adapters via SR-IOV, but + because this requires no specific support in the guest partitions, it will + not be discussed in this document. Shared SR-IOV devices should be used + wherever possible for highest performance. -The visorchipset module receives device creation and destruction -events from the Command service partition of s-Par, as well as -controlling registration of shared device drivers with the s-Par -driver core. The events received are used to populate other s-Par -modules with their assigned shared devices. Visorchipset is required -for shared device drivers to function properly. Visorchipset also -stores information for handling dump disk device creation during -kdump. +* Because the s-Par back-end provides a standard EFI framebuffer to each + guest, the already-existing efifb Linux driver is used to provide guest + video access. Thus, the only s-Par-unique support that is necessary to + provide a guest graphics console are for keyboard and mouse (via visorhid). -In operation, the visorchipset module processes device creation and -destruction messages sent by s-Par's Command service partition through -a channel. These messages result in creation (or destruction) of each -virtual bus and virtual device. Each bus and device is also associated -with a communication channel, which is used to communicate with one or -more IO service partitions to perform device IO on behalf of the -guest. -virthba +2. Driver Descriptions +---------------------- -The virthba module provides access to a shared SCSI host bus adapter -and one or more disk devices, by proxying SCSI commands between the -guest and the service partition that owns the shared SCSI adapter, -using a channel between the guest and the service partition. The disks -that appear on the shared bus are defined by the s-Par configuration -and enforced by the service partition, while the guest driver handles -sending commands and handling responses. Each disk is shared as a -whole to a guest. Sharing the bus adapter in this way provides -resiliency; should the device encounter an error, only the service +2.1. visorbus +------------- + +2.1.1. Overview +--------------- + +The visorbus driver handles the virtual busses on which all of the virtual +devices reside. It provides a registration function named +visorbus_register_visor_driver() that is called by each of the function +drivers at initialization time, which the function driver uses to tell +visorbus about the device classes (via specifying a list of device type +GUIDs) it wants to handle. For use by function drivers, visorbus provides +implementation for struct visor_driver and struct visor_device, as well +as utility functions for communicating with the back-end. + +visorbus is associated with ACPI id "PNP0A07" in modules.alias, so if built +as a module it will typically be loaded automatically via standard udev or +systemd (God help us) configurations. + +visorbus can similarly force auto-loading of function drivers for virtual +devices it discovers, as it includes a MODALIAS environment variable of this +form in the hotplug uevent environment when each virtual device is +discovered: + + visorbus: + +visorbus notifies each function driver when a device of its registered class +arrives and departs, by calling the function driver's probe() and remove() +methods. + +The actual struct device objects that correspond to each virtual bus and +each virtual device are created and owned by visorbus. These device objects +are created in response to messages from the s-Par back-end received on a +special control channel called the "controlvm channel" (each guest partition +has access to exactly 1 controlvm channel), and have a lifetime that is +independent of the function drivers that control them. + +2.1.2. "struct visor device" Function Driver Interfaces +------------------------------------------------------- + +The interface between visorbus and its function drivers is defined in +visorbus.h, and described below. + +When a visor function driver loads, it calls visorbus_register_visor_driver() +to register itself with visorbus. The significant information passed in this +exchange is as follows: + +* the GUID(s) of the channel type(s) that are handled by this driver, as + well as a "friendly name" identifying each (this will be published under + /sys/devices/visorbus/dev) + +* the addresses of callback functions to be called whenever a virtual + device/channel with the appropriate channel-type GUID(s) appears or + disappears + +* the address of a "channel_interrupt" function, which will be automatically + called at specific intervals to enable the driver to poll the device + channel for activity + +The following functions implemented within each function driver will be +called automatically by the visorbus driver at appropriate times: + +* The probe() function notifies about the creation of each new virtual + device/channel instance. + +* The remove() function notifies about the destruction of a virtual + device/channel instance. + +* The channel_interrupt() function is called at frequent intervals to + give the function driver an opportunity to poll the virtual device channel + for requests. Information is passed to this function to enable the + function driver to use the visorchannel_signalinsert() and + visorchannel_signalremove() functions to respond to and initiate activity + over the channel. (Note that since it is the visorbus driver that + determines when this is called, it is very easy to switch to + interrupt-driven mechanisms when available for particular virtual device + types.) + +* The pause() function is called should it ever be necessary to direct the + function driver to temporarily stop accessing the device channel. An + example of when this is needed is when the service partition implementing + the back-end of the virtual device needs to be recovered. After a + successful return of pause(), the function driver must not access the + device channel until a subsequent resume() occurs. + +* The resume() function is the "book-end" to pause(), and is described above. + +If/when a function driver creates a Linux device (that needs to be accessed +from usermode), it calls visorbus_registerdevnode(), passing the major and +minor number of the device. (Of course not all function drivers will need +to do this.) This simply creates the appropriate "devmajorminor" sysfs entry +described below, so that a hotplug script can use it to create a device node. + +2.1.3. sysfs Advertised Information +----------------------------------- + +Because visorbus is a standard Linux bus driver in the model described in +Documentation/driver-model/, the hierarchy of s-Par virtual devices is +published in the sysfs tree beneath /bus/visorbus/, e.g., +/sys/bus/visorbus/devices/ might look like: + + vbus1:dev1 -> ../../../devices/visorbus1/vbus1:dev1 + vbus1:dev2 -> ../../../devices/visorbus1/vbus1:dev2 + vbus1:dev3 -> ../../../devices/visorbus1/vbus1:dev3 + vbus2:dev0 -> ../../../devices/visorbus2/vbus2:dev0 + vbus2:dev1 -> ../../../devices/visorbus2/vbus2:dev1 + vbus2:dev2 -> ../../../devices/visorbus2/vbus2:dev2 + visorbus1 -> ../../../devices/visorbus1 + visorbus2 -> ../../../devices/visorbus2 + +visor_device notes: + +* Each visorbus entry denotes the existence of a struct visor_device + denoting virtual bus #. A unique s-Par channel exists for each such + virtual bus. + +* Virtual bus numbers uniquely identify s-Par back-end service partitions. + In this example, bus 1 corresponds to the s-Par console partition + (controls keyboard, video, and mouse), whereas bus 2 corresponds to the + s-Par IO partition (controls network and disk). + +* Each vbus:dev entry denotes the existence of a struct visor_device + denoting virtual device # outboard of virtual bus #. A unique s-Par + channel exists for each such virtual device. + +* If a function driver has loaded and claimed a particular device, the + bus/visorbus/devices/vbus:dev/driver symlink will indicate that + function driver. + +Every active visorbus device will have a sysfs subtree under: + + /sys/devices/visorbus/vbus:dev/ + +The following files exist under /sys/devices/visorbus/vbus:dev: + + subsystem link to sysfs tree that describes the + visorbus bus type; e.g.: + ../../../bus/visorbus + + driver link to sysfs tree that describes the + function driver controlling this device; + e.g.: + ../../../bus/visorbus/drivers/visorhba + Note that this "driver" link will not exist + if the appropriate function driver has not + been loaded yet. + + devmajorminor + + if applicable, each file here identifies (via + ... its file contents) the + ":" needed for a device node to + enable access from usermode. There is exactly + one file here for each different device node + that can be accessed (from usermode). Note + that this info is provided by a particular + function driver, so these will not exist + until AFTER the appropriate function driver + controlling this device class is loaded. + + channel properties of the device channel (all in + ascii text format) + + clientpartition handle identifying the guest (client) side + of this channel, e.g. 0x10000000. + + nbytes total size of this channel in bytes + + physaddr the guest physical address for the base of + the channel + + typeguid a GUID identifying the channel type, in + xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx notation + + typename a "friendly name" for this channel type, e.g., + "keyboard". Note that this name is provided by + a particular function driver, so "typename" + will return an empty string until AFTER the + appropriate function driver controlling this + channel type is loaded + + zoneguid a GUID identifying the channel zone, in + xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx notation + + +2.2. visorhba +------------- + +The visorhba driver registers with visorbus as the function driver to +handle virtual scsi disk devices, specified using the +SPAR_VHBA_CHANNEL_PROTOCOL_UUID type in the visorbus_register_visor_driver() +call. visorhba uses scsi_add_host() to expose a Linux block device +(e.g., /sys/block/) in the guest environment for each s-Par virtual device. + +visorhba provides access to a shared SCSI host bus adapter and one or more +disk devices, by proxying SCSI commands between the guest and the service +partition that owns the shared SCSI adapter, using a channel between the +guest and the service partition. The disks that appear on the shared bus +are defined by the s-Par configuration and enforced by the service partition, +while the guest driver handles sending commands and handling responses. Each +disk is shared as a whole to a guest. Sharing the bus adapter in this way +provides resiliency; should the device encounter an error, only the service partition is rebooted, and the device is reinitialized. This allows guests to continue running and to recover from the error. -virtnic +When compiled as a module, visorhba can be autoloaded by visorbus in +standard udev/systemd environments, as it includes the modules.alias +definition: -The virtnic module provides a paravirtualized network interface to a + "visorbus:"+SPAR_VHBA_CHANNEL_PROTOCOL_UUID_STR + +i.e.: + + alias visorbus:414815ed-c58c-11da-95a9-00e08161165f visorhba + + +2.3. visornic +------------- + +The visornic driver registers with visorbus as the function driver to +handle virtual network devices, specified using the +SPAR_VNIC_CHANNEL_PROTOCOL_UUID type in the visorbus_register_visor_driver() +call. visornic uses register_netdev() to expose a Linux device of class net +(e.g., /sys/class/net/) in the guest environment for each s-Par virtual +device. + +visornic provides a paravirtualized network interface to a guest by proxying buffer information between the guest and the service partition that owns the shared network interface, using a channel between the guest and the service partition. The connectivity of this @@ -79,96 +285,72 @@ partitions is defined by the s-Par configuration and enforced by the service partition; the guest driver handles communication and link status. -visorserial +When compiled as a module, visornic can be autoloaded by visorbus in +standard udev/systemd environments, as it includes the modules.alias +definition: -The visorserial module allows the console of the linux guest to be -accessed via the s-Par console serial channel. It creates devices in -/dev/visorserialclientX which behave like a serial terminal and are -connected to the diagnostics system in s-Par. By assigning a getty to -the terminal in the guest, a user could log into and access the guest -from the s-Par diagnostics SWITCH RUN terminal. + "visorbus:"+SPAR_VNIC_CHANNEL_PROTOCOL_UUID_STR -visorbus +i.e.: -The visorbus module handles the bus functions for most functional -drivers except visorserial, visordiag, virthba, and virtnic. It -maintains the sysfs subtree /sys/devices/visorbus*/. It is responsible -for device creation and destruction of the devices on its bus. + alias visorbus:8cd5994d-c58e-11da-95a9-00e08161165f visornic -visorclientbus -The visorclientbus module forwards the bus functions for virthba, and -virtnic to the virtpci driver. +2.4. visorhid +------------- -virtpci +The visorhid driver registers with visorbus as the function driver to +handle human input devices, specified using the +SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID and SPAR_MOUSE_CHANNEL_PROTOCOL_UUID +types in the visorbus_register_visor_driver() call. visorhid uses +input_register_device() to expose devices of class input +(e.g., /sys/class/input/) for virtual keyboard and virtual mouse devices. +A s-Par virtual keyboard device maps 1-to-1 with a Linux input device +named "visor Keyboard", while a s-Par virtual mouse device has 2 Linux input +devices created for it: 1 named "visor Wheel", and 1 named "visor Mouse". -The virtpci module handles the bus functions for virthba, and virtnic. +By registering as input class devices, modern versions of X will +automatically find and properly use s-Par virtual keyboard and mouse devices. +As the s-Par back-end reports keyboard and mouse activity via events on the +virtual device channel, the visorhid driver delivers the activity to the +Linux environment by calling input_report_key() and input_report_abs(). -s-Par Integration Modules +You can interact with the guest console using the usyscon Partition Desktop +(a.k.a., "pd") application, provided as part of s-Par. After installing the +usyscon Partition Desktop into a Linux environment via the +usyscon_partitiondesktop-*.rpm, or into a Windows environment via +PartitionDesktop.msi, you will be able to launch a console for your guest +Linux environment by clicking the console icon in the s-Par web UI. -The modules in this section provide integration with s-Par guest -partition services like diagnostics and remote desktop. These modules -depend on functions in the modules described in the support modules -section. +When compiled as a module, visorhid can be autoloaded by visorbus in +standard udev/systemd environments, as it includes the modules.alias +definition: -visorvideoclient + "visorbus:"+SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR + "visorbus:"+SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR -The visorvideoclient module provides functionality for video support -for the Unisys s-Par Partition Desktop application. The guest OS must -also have the UEFI GOP protocol enabled for the partition desktop to -function. visorconinclient The visorconinclient module provides -keyboard and mouse support for the Unisys s-Par Partition Desktop -application. +i.e.: -sparstop + alias visorbus:c73416d0-b0b8-44af-b304-9d2ae99f1b3d visorhid + alias visorbus:addf07d4-94a9-46e2-81c3-61abcdbdbd87 visorhid -The sparstop module handles requests from the Unisys s-Par platform to -shutdown the linux guest. It allows a program on the guest to perform -clean-up functions on the guest before the guest is shut down or -rebooted using ACPI. -visordiag +3. Minimum Required Driver Set +------------------------------ -This driver provides the ability for the guest to write information -into the s-Par diagnostics subsystem. It creates a set of devices -named /dev/visordiag.X which can be written to by the guest to add -text to the s-Par system log. +visorbus is required for every Linux guest running under s-Par. -Support Modules +visorhba is typically required for a Linux guest running under s-Par, as it +is required if your guest boot disk is a virtual device provided by the s-Par +back-end, which is the default configuration. However, for advanced +configurations where the Linux guest boots via an SR-IOV-provided HBA or +SAN disk for example, visorhba is not technically required. -The modules described in this section provide functions and -abstractions to support the modules described in the previous -sections, to avoid having duplicated functionality. +visornic is typically required for a Linux guest running under s-Par, as it +is required if your guest network interface is a virtual device provided by +the s-Par back-end, which is the default configuration. However, for +configurations where the Linux guest is provided with an SR-IOV NIC +for example, visornic is not technically required. -visornoop - -The visornoop module is a placeholder that responds to device -create/destroy messages that are currently not in use by linux guests. - -visoruislib - -The visoruislib module is a support library, used to handle requests -from virtpci. - -visorchannelstub - -The visorchannelstub module provides support routines for storing and -retrieving data from a channel. - -visorchannel - -The visorchannel module is a support library that abstracts reading -and writing a channel in memory. - -visorutil - -The visorutil module is a support library required by all other s-Par -driver modules. Among its features it abstracts reading, writing, and -manipulating a block of memory. - -Minimum Required Driver Set - -The drivers required to boot a Linux guest are visorchipset, visorbus, -visorvideoclient, visorconinclient, visoruislib, visorchannelstub, -visorchannel, and visorutil. The other drivers are required by the -product configurations that are currently being marketed. +visorhid is only required for a Linux guest running under s-Par if you +require graphics-mode access to your guest console. diff --git a/drivers/staging/unisys/TODO b/drivers/staging/unisys/TODO index 034ac61c44f2..d863f266bf76 100644 --- a/drivers/staging/unisys/TODO +++ b/drivers/staging/unisys/TODO @@ -1,19 +1,14 @@ TODO: - -checkpatch warnings - -move /proc entries to /sys - -proper major number(s) - -add other drivers needed for full functionality: - -visorclientbus - -visorbus - -visordiag - -virtnic - -visornoop - -visorserial - -visorvideoclient - -visorconinclient - -sparstop - -move individual drivers into proper driver subsystems - + - enhance visornic to use channel_interrupt() hook instead of a + kernel thread + - enhance visorhba to use channel_interrupt() hook instead of a + kernel thread + - teach visorbus to handle virtual interrupts triggered by s-Par + back-end, and call function driver's channel_interrupt() function + when they occur + - enhance debugfs interfaces (e.g., per device, etc.) + - upgrade/remove deprecated workqueue operations + - move individual drivers into proper driver subsystems Patches to: Greg Kroah-Hartman From b0183053e31a51f7814b5ea257db010b924b3857 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:02 +0530 Subject: [PATCH 0212/2431] staging: most: remove always true comparison channel->dev has already been checked for NULL and if it was NULL then we have returned with -EPIPE. So at this point it can not be NULL. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index b0a9a4a1225c..1a17e2af6a60 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -166,7 +166,7 @@ static ssize_t aim_write(struct file *filp, const char __user *buf, mbo = most_get_mbo(channel->iface, channel->channel_id); - if (!mbo && channel->dev) { + if (!mbo) { if ((filp->f_flags & O_NONBLOCK)) return -EAGAIN; if (wait_event_interruptible( From 9b532df0fc1eb0834261d9cfbeef0f346c817d7f Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:03 +0530 Subject: [PATCH 0213/2431] staging: most: return NULL instead of integer The return type of get_aim_dev() is a pointer but we were returning 0 incase of failure. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-v4l2/video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index d9687910e4a4..83332454974c 100644 --- a/drivers/staging/most/aim-v4l2/video.c +++ b/drivers/staging/most/aim-v4l2/video.c @@ -430,7 +430,7 @@ static struct most_video_dev *get_aim_dev( } } spin_unlock(&list_lock); - return 0; + return NULL; } static int aim_rx_data(struct mbo *mbo) From 983e83cc173894720b168fa603ccf82ca74e020d Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:04 +0530 Subject: [PATCH 0214/2431] staging: most: remove driver owner The platform driver core will set the owner value, we do not need to do it in the module. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hdm.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 5b0a588450ab..4481a0be15b9 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -923,7 +923,6 @@ static struct platform_driver dim2_driver = { .id_table = dim2_id, .driver = { .name = "hdm_dim2", - .owner = THIS_MODULE, }, }; From 0834be6c52367d397d75e185dad549e3da9be312 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:05 +0530 Subject: [PATCH 0215/2431] staging: most: remove unneeded NULL check The loop cursor of list_for_each_entry_safe() can never be NULL. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/mostcore/core.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 7bb16db42893..87f950fad9b4 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -190,8 +190,7 @@ static void flush_channel_fifos(struct most_c_obj *c) list_for_each_entry_safe(mbo, tmp, &c->fifo, list) { list_del(&mbo->list); spin_unlock_irqrestore(&c->fifo_lock, flags); - if (likely(mbo)) - most_free_mbo_coherent(mbo); + most_free_mbo_coherent(mbo); spin_lock_irqsave(&c->fifo_lock, flags); } spin_unlock_irqrestore(&c->fifo_lock, flags); @@ -200,8 +199,7 @@ static void flush_channel_fifos(struct most_c_obj *c) list_for_each_entry_safe(mbo, tmp, &c->halt_fifo, list) { list_del(&mbo->list); spin_unlock_irqrestore(&c->fifo_lock, hf_flags); - if (likely(mbo)) - most_free_mbo_coherent(mbo); + most_free_mbo_coherent(mbo); spin_lock_irqsave(&c->fifo_lock, hf_flags); } spin_unlock_irqrestore(&c->fifo_lock, hf_flags); From ec58d2a8727d34a2b51295895d51279abf9edd74 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:06 +0530 Subject: [PATCH 0216/2431] staging: most: style of bool comparison BOOLEAN tests do not need any comparison to TRUE or FALSE. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 10 +++++----- drivers/staging/most/mostcore/core.c | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 34843b0b495b..9bbefaaa0134 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -308,7 +308,7 @@ static int hdm_poison_channel(struct most_interface *iface, int channel) mutex_lock(&mdev->io_mutex); free_anchored_buffers(mdev, channel); - if (mdev->padding_active[channel] == true) + if (mdev->padding_active[channel]) mdev->padding_active[channel] = false; if (mdev->conf[channel].data_type == MOST_CH_ASYNC) { @@ -411,7 +411,7 @@ static void hdm_write_completion(struct urb *urb) dev = &mdev->usb_device->dev; if ((urb->status == -ENOENT) || (urb->status == -ECONNRESET) || - (mdev->is_channel_healthy[channel] == false)) { + (!mdev->is_channel_healthy[channel])) { complete(&anchor->urb_compl); return; } @@ -576,7 +576,7 @@ static void hdm_read_completion(struct urb *urb) dev = &mdev->usb_device->dev; if ((urb->status == -ENOENT) || (urb->status == -ECONNRESET) || - (mdev->is_channel_healthy[channel] == false)) { + (!mdev->is_channel_healthy[channel])) { complete(&anchor->urb_compl); return; } @@ -605,7 +605,7 @@ static void hdm_read_completion(struct urb *urb) } } else { mbo->processed_length = urb->actual_length; - if (mdev->padding_active[channel] == false) { + if (!mdev->padding_active[channel]) { mbo->status = MBO_SUCCESS; } else { if (hdm_remove_padding(mdev, channel, mbo)) { @@ -685,7 +685,7 @@ static int hdm_enqueue(struct most_interface *iface, int channel, struct mbo *mb list_add_tail(&anchor->list, &mdev->anchor_list[channel]); spin_unlock_irqrestore(&mdev->anchor_list_lock[channel], flags); - if ((mdev->padding_active[channel] == true) && + if ((mdev->padding_active[channel]) && (conf->direction & MOST_CH_TX)) if (hdm_add_padding(mdev, channel, mbo)) { retval = -EIO; diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 87f950fad9b4..eb4e15938875 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -1339,7 +1339,7 @@ static void most_write_completion(struct mbo *mbo) c = mbo->context; if (mbo->status == MBO_E_INVAL) pr_info("WARN: Tx MBO status: invalid\n"); - if (unlikely((c->is_poisoned == true) || (mbo->status == MBO_E_CLOSE))) + if (unlikely(c->is_poisoned || (mbo->status == MBO_E_CLOSE))) trash_mbo(mbo); else arm_mbo(mbo); @@ -1444,7 +1444,7 @@ static void most_read_completion(struct mbo *mbo) struct most_c_obj *c; c = mbo->context; - if (unlikely((c->is_poisoned == true) || (mbo->status == MBO_E_CLOSE))) + if (unlikely(c->is_poisoned || (mbo->status == MBO_E_CLOSE))) goto release_mbo; if (mbo->status == MBO_E_INVAL) { From 1f39e10872c0ca161146e253d3efa18b59d5d9a5 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 7 Sep 2015 19:09:29 +0900 Subject: [PATCH 0217/2431] staging: wilc1000: remove dead codes This patch removes the preprocessor definition from the codes, as shown in the following, which is not used anymore. - WILC_FULLY_HOSTING_AP Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_mon.c | 97 ------------------- drivers/staging/wilc1000/linux_wlan.c | 13 --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 48 --------- .../staging/wilc1000/wilc_wfi_cfgoperations.h | 5 - drivers/staging/wilc1000/wilc_wlan.c | 48 --------- drivers/staging/wilc1000/wilc_wlan.h | 7 -- drivers/staging/wilc1000/wilc_wlan_cfg.c | 28 ------ drivers/staging/wilc1000/wilc_wlan_if.h | 9 -- 8 files changed, 255 deletions(-) diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index b8d7d048439b..b5db23ffde6e 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -11,9 +11,6 @@ #include "wilc_wlan_if.h" #include "wilc_wlan.h" -#ifdef WILC_FULLY_HOSTING_AP -#include "wilc_host_ap.h" -#endif #ifdef WILC_AP_EXTERNAL_MLME struct wilc_wfi_radiotap_hdr { @@ -222,11 +219,9 @@ static void mgmt_tx_complete(void *priv, int status) * }*/ /* incase of fully hosting mode, the freeing will be done in response to the cfg packet */ - #ifndef WILC_FULLY_HOSTING_AP kfree(pv_data->buff); kfree(pv_data); - #endif } static int mon_mgmt_tx(struct net_device *dev, const u8 *buf, size_t len) { @@ -244,11 +239,6 @@ static int mon_mgmt_tx(struct net_device *dev, const u8 *buf, size_t len) return WILC_FAIL; } - #ifdef WILC_FULLY_HOSTING_AP - /* add space for the pointer to tx_complete_mon_data */ - len += sizeof(struct tx_complete_mon_data *); - #endif - mgmt_tx->buff = kmalloc(len, GFP_ATOMIC); if (mgmt_tx->buff == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx buff\n"); @@ -258,19 +248,7 @@ static int mon_mgmt_tx(struct net_device *dev, const u8 *buf, size_t len) mgmt_tx->size = len; - #ifndef WILC_FULLY_HOSTING_AP memcpy(mgmt_tx->buff, buf, len); - #else - memcpy(mgmt_tx->buff, buf, len - sizeof(struct tx_complete_mon_data *)); - memcpy((mgmt_tx->buff) + (len - sizeof(struct tx_complete_mon_data *)), &mgmt_tx, sizeof(struct tx_complete_mon_data *)); - - /* filter data frames to handle it's PS */ - if (filter_monitor_data_frames((mgmt_tx->buff), len) == true) { - return; - } - - #endif /* WILC_FULLY_HOSTING_AP */ - g_linux_wlan->oup.wlan_add_mgmt_to_tx_que(mgmt_tx, mgmt_tx->buff, mgmt_tx->size, mgmt_tx_complete); netif_wake_queue(dev); @@ -389,81 +367,6 @@ static const struct net_device_ops wilc_wfi_netdev_ops = { }; -#ifdef WILC_FULLY_HOSTING_AP -/* - * @brief WILC_mgm_HOSTAPD_ACK - * @details report the status of transmitted mgmt frames to HOSTAPD - * @param[in] priv : pointer to tx_complete_mon_data struct - * bStatus : status of transmission - * @author Abd Al-Rahman Diab - * @date 9 May 2013 - * @version 1.0 - */ -void WILC_mgm_HOSTAPD_ACK(void *priv, bool bStatus) -{ - struct sk_buff *skb; - struct wilc_wfi_radiotap_cb_hdr *cb_hdr; - - struct tx_complete_mon_data *pv_data = (struct tx_complete_mon_data *)priv; - u8 *buf = pv_data->buff; - - /* len of the original frame without the added pointer at the tail */ - u16 u16len = (pv_data->size) - sizeof(struct tx_complete_mon_data *); - - - /*if(bStatus == 1){ - * if(INFO || buf[0] == 0x10 || buf[0] == 0xb0) - * PRINT_D(HOSTAPD_DBG,"Packet sent successfully - Size = %d - Address = %p.\n",u16len,pv_data->buff); - * }else{ - * PRINT_D(HOSTAPD_DBG,"Couldn't send packet - Size = %d - Address = %p.\n",u16len,pv_data->buff); - * } - */ - - /* (skb->data[9] == 0x00 || skb->data[9] == 0xb0 || skb->data[9] == 0x40 || skb->data[9] == 0xd0 ) */ - { - skb = dev_alloc_skb(u16len + sizeof(struct wilc_wfi_radiotap_cb_hdr)); - - memcpy(skb_put(skb, u16len), pv_data->buff, u16len); - - cb_hdr = (struct wilc_wfi_radiotap_cb_hdr *) skb_push(skb, sizeof(*cb_hdr)); - memset(cb_hdr, 0, sizeof(struct wilc_wfi_radiotap_cb_hdr)); - - cb_hdr->hdr.it_version = 0; /* PKTHDR_RADIOTAP_VERSION; */ - - cb_hdr->hdr.it_len = cpu_to_le16(sizeof(struct wilc_wfi_radiotap_cb_hdr)); - - cb_hdr->hdr.it_present = cpu_to_le32( - (1 << IEEE80211_RADIOTAP_RATE) | - (1 << IEEE80211_RADIOTAP_TX_FLAGS)); - - cb_hdr->rate = 5; /* txrate->bitrate / 5; */ - - - if (bStatus) { - /* success */ - cb_hdr->tx_flags = IEEE80211_RADIOTAP_F_TX_RTS; - } else { - cb_hdr->tx_flags = IEEE80211_RADIOTAP_F_TX_FAIL; - } - - skb->dev = wilc_wfi_mon; - skb_set_mac_header(skb, 0); - skb->ip_summed = CHECKSUM_UNNECESSARY; - skb->pkt_type = PACKET_OTHERHOST; - skb->protocol = htons(ETH_P_802_2); - memset(skb->cb, 0, sizeof(skb->cb)); - - netif_rx(skb); - } - - /* incase of fully hosting mode, the freeing will be done in response to the cfg packet */ - kfree(pv_data->buff); - - kfree(pv_data); - -} -#endif /* WILC_FULLY_HOSTING_AP */ - /** * @brief WILC_WFI_mon_setup * @details diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index afd670229834..4187c7c8c6d0 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -39,10 +39,6 @@ #include "linux_wlan_spi.h" #endif -#ifdef WILC_FULLY_HOSTING_AP -#include "wilc_host_ap.h" -#endif - #ifdef STATIC_MACADDRESS /* brandy_0724 [[ */ #include #include @@ -1321,12 +1317,7 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) #endif /*for now - to be revised*/ - #ifdef WILC_FULLY_HOSTING_AP - /* incase of Fully hosted AP, all non cfg pkts are processed here*/ - nwi->net_func.rx_indicate = WILC_Process_rx_frame; - #else nwi->net_func.rx_indicate = frmw_to_linux; - #endif nwi->net_func.rx_complete = linux_wlan_rx_complete; nwi->indicate_func.mac_indicate = linux_wlan_mac_indicate; } @@ -1989,14 +1980,10 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) nic->netstats.tx_packets++; nic->netstats.tx_bytes += tx_data->size; tx_data->pBssid = g_linux_wlan->strInterfaceInfo[nic->u8IfIdx].aBSSID; - #ifndef WILC_FULLY_HOSTING_AP QueueCount = g_linux_wlan->oup.wlan_add_to_tx_que((void *)tx_data, tx_data->buff, tx_data->size, linux_wlan_tx_complete); - #else - QueueCount = WILC_Xmit_data((void *)tx_data, HOST_TO_WLAN); - #endif /* WILC_FULLY_HOSTING_AP */ if (QueueCount > FLOW_CONTROL_UPPER_THRESHOLD) { netif_stop_queue(g_linux_wlan->strInterfaceInfo[0].wilc_netdev); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 75e16878b961..663d0f818e4a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3236,19 +3236,11 @@ static int WILC_WFI_start_ap(struct wiphy *wiphy, struct net_device *dev, linux_wlan_set_bssid(dev, g_linux_wlan->strInterfaceInfo[0].aSrcAddress); - #ifndef WILC_FULLY_HOSTING_AP s32Error = host_int_add_beacon(priv->hWILCWFIDrv, settings->beacon_interval, settings->dtim_period, beacon->head_len, (u8 *)beacon->head, beacon->tail_len, (u8 *)beacon->tail); - #else - s32Error = host_add_beacon(priv->hWILCWFIDrv, - settings->beacon_interval, - settings->dtim_period, - beacon->head_len, (u8 *)beacon->head, - beacon->tail_len, (u8 *)beacon->tail); - #endif return s32Error; } @@ -3275,19 +3267,11 @@ static int WILC_WFI_change_beacon(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Setting beacon\n"); -#ifndef WILC_FULLY_HOSTING_AP s32Error = host_int_add_beacon(priv->hWILCWFIDrv, 0, 0, beacon->head_len, (u8 *)beacon->head, beacon->tail_len, (u8 *)beacon->tail); -#else - s32Error = host_add_beacon(priv->hWILCWFIDrv, - 0, - 0, - beacon->head_len, (u8 *)beacon->head, - beacon->tail_len, (u8 *)beacon->tail); -#endif return s32Error; } @@ -3317,11 +3301,7 @@ static int WILC_WFI_stop_ap(struct wiphy *wiphy, struct net_device *dev) /*BugID_5188*/ linux_wlan_set_bssid(dev, NullBssid); - #ifndef WILC_FULLY_HOSTING_AP s32Error = host_int_del_beacon(priv->hWILCWFIDrv); - #else - s32Error = host_del_beacon(priv->hWILCWFIDrv); - #endif WILC_ERRORCHECK(s32Error); @@ -3355,8 +3335,6 @@ static int WILC_WFI_add_station(struct wiphy *wiphy, struct net_device *dev, nic = netdev_priv(dev); if (nic->iftype == AP_MODE || nic->iftype == GO_MODE) { - #ifndef WILC_FULLY_HOSTING_AP - memcpy(strStaParams.au8BSSID, mac, ETH_ALEN); memcpy(priv->assoc_stainfo.au8Sta_AssociatedBss[params->aid], mac, ETH_ALEN); strStaParams.u16AssocID = params->aid; @@ -3396,18 +3374,6 @@ static int WILC_WFI_add_station(struct wiphy *wiphy, struct net_device *dev, s32Error = host_int_add_station(priv->hWILCWFIDrv, &strStaParams); WILC_ERRORCHECK(s32Error); - - #else - PRINT_D(CFG80211_DBG, "Adding station parameters %d\n", params->aid); - memcpy(priv->assoc_stainfo.au8Sta_AssociatedBss[params->aid], mac, ETH_ALEN); - - PRINT_D(CFG80211_DBG, "BSSID = %x%x%x%x%x%x\n", priv->assoc_stainfo.au8Sta_AssociatedBss[params->aid][0], priv->assoc_stainfo.au8Sta_AssociatedBss[params->aid][1], priv->assoc_stainfo.au8Sta_AssociatedBss[params->aid][2], priv->assoc_stainfo.au8Sta_AssociatedBss[params->aid][3], priv->assoc_stainfo.au8Sta_AssociatedBss[params->aid][4], - priv->assoc_stainfo.au8Sta_AssociatedBss[params->aid][5]); - - WILC_AP_AddSta(mac, params); - WILC_ERRORCHECK(s32Error); - #endif /* WILC_FULLY_HOSTING_AP */ - } WILC_CATCH(s32Error) @@ -3449,11 +3415,7 @@ static int WILC_WFI_del_station(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "With mac address: %x%x%x%x%x%x\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); } - #ifndef WILC_FULLY_HOSTING_AP s32Error = host_int_del_station(priv->hWILCWFIDrv, mac); - #else - WILC_AP_RemoveSta(mac); - #endif /* WILC_FULLY_HOSTING_AP */ WILC_ERRORCHECK(s32Error); } @@ -3489,8 +3451,6 @@ static int WILC_WFI_change_station(struct wiphy *wiphy, struct net_device *dev, nic = netdev_priv(dev); if (nic->iftype == AP_MODE || nic->iftype == GO_MODE) { - #ifndef WILC_FULLY_HOSTING_AP - memcpy(strStaParams.au8BSSID, mac, ETH_ALEN); strStaParams.u16AssocID = params->aid; strStaParams.u8NumRates = params->supported_rates_len; @@ -3528,12 +3488,6 @@ static int WILC_WFI_change_station(struct wiphy *wiphy, struct net_device *dev, s32Error = host_int_edit_station(priv->hWILCWFIDrv, &strStaParams); WILC_ERRORCHECK(s32Error); - - #else - WILC_AP_EditSta(mac, params); - WILC_ERRORCHECK(s32Error); - #endif /* WILC_FULLY_HOSTING_AP */ - } WILC_CATCH(s32Error) { @@ -3623,9 +3577,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .del_station = WILC_WFI_del_station, .change_station = WILC_WFI_change_station, #endif /* WILC_AP_EXTERNAL_MLME*/ - #ifndef WILC_FULLY_HOSTING_AP .get_station = WILC_WFI_get_station, - #endif .dump_station = WILC_WFI_dump_station, .change_bss = WILC_WFI_change_bss, .set_wiphy_params = WILC_WFI_set_wiphy_params, diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 97b663b7fd14..3c3571d8a369 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -10,11 +10,6 @@ #define NM_WFI_CFGOPERATIONS #include "wilc_wfi_netdevice.h" -#ifdef WILC_FULLY_HOSTING_AP -#include "wilc_host_ap.h" -#endif - - /* The following macros describe the bitfield map used by the firmware to determine its 11i mode */ #define NO_ENCRYPT 0 #define ENCRYPT_ENABLED (1 << 0) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 4b37de5390a1..b0ae09d0ce1b 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -591,31 +591,6 @@ int wilc_wlan_txq_add_mgmt_pkt(void *priv, uint8_t *buffer, uint32_t buffer_size wilc_wlan_txq_add_to_tail(tqe); return 1; } - -#ifdef WILC_FULLY_HOSTING_AP -int wilc_FH_wlan_txq_add_net_pkt(void *priv, uint8_t *buffer, uint32_t buffer_size, wilc_tx_complete_func_t func) -{ - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - struct txq_entry_t *tqe; - - if (p->quit) - return 0; - - tqe = kmalloc(sizeof(struct txq_entry_t), GFP_ATOMIC); - - if (tqe == NULL) - return 0; - tqe->type = WILC_FH_DATA_PKT; - tqe->buffer = buffer; - tqe->buffer_size = buffer_size; - tqe->tx_complete_func = func; - tqe->priv = priv; - PRINT_D(TX_DBG, "Adding mgmt packet at the Queue tail\n"); - wilc_wlan_txq_add_to_tail(tqe); - /*return number of itemes in the queue*/ - return p->txq_entries; -} -#endif /* WILC_FULLY_HOSTING_AP*/ #endif /*WILC_AP_EXTERNAL_MLME*/ static struct txq_entry_t *wilc_wlan_txq_get_first(void) { @@ -924,11 +899,6 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) else if (tqe->type == WILC_NET_PKT) { vmm_sz = ETH_ETHERNET_HDR_OFFSET; } -#ifdef WILC_FULLY_HOSTING_AP - else if (tqe->type == WILC_FH_DATA_PKT) { - vmm_sz = FH_TX_HOST_HDR_OFFSET; - } -#endif #ifdef WILC_AP_EXTERNAL_MLME else { vmm_sz = HOST_HDR_OFFSET; @@ -1138,11 +1108,6 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) /* copy the bssid at the sart of the buffer */ memcpy(&txb[offset + 4], pBSSID, 6); } -#ifdef WILC_FULLY_HOSTING_AP - else if (tqe->type == WILC_FH_DATA_PKT) { - buffer_offset = FH_TX_HOST_HDR_OFFSET; - } -#endif else { buffer_offset = HOST_HDR_OFFSET; } @@ -2204,10 +2169,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /*Bug3959: transmitting mgmt frames received from host*/ #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) oup->wlan_add_mgmt_to_tx_que = wilc_wlan_txq_add_mgmt_pkt; - - #ifdef WILC_FULLY_HOSTING_AP - oup->wlan_add_data_to_tx_que = wilc_FH_wlan_txq_add_net_pkt; - #endif #endif if (!init_chip()) { @@ -2271,12 +2232,3 @@ u16 Set_machw_change_vir_if(bool bValue) return ret; } - -#ifdef WILC_FULLY_HOSTING_AP -wilc_wlan_dev_t *Get_wlan_context(u16 *pu16size) -{ - *pu16size = sizeof(wilc_wlan_dev_t); - return &g_wlan; -} -#endif - diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 244f7108ae92..99e07de2d3ed 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -36,9 +36,6 @@ ETH_CONFIG_PKT_HDR_LEN) #define ACTION 0xD0 #define PROBE_REQ 0x40 -#ifdef WILC_FULLY_HOSTING_AP -#define FH_TX_HOST_HDR_OFFSET 24 -#endif /******************************************** * @@ -145,10 +142,6 @@ #ifdef WILC_AP_EXTERNAL_MLME #define WILC_MGMT_PKT 2 -#ifdef WILC_FULLY_HOSTING_AP -#define WILC_FH_DATA_PKT 4 -#endif - #endif /*WILC_AP_EXTERNAL_MLME*/ #define WILC_CFG_SET 1 #define WILC_CFG_QUERY 0 diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index c3f3aaf389f5..d5037992deb0 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -12,11 +12,6 @@ #include "wilc_wlan_cfg.h" #include "coreconfigurator.h" -#ifdef WILC_FULLY_HOSTING_AP -#include "wilc_host_ap.h" -void WILC_mgm_HOSTAPD_ACK(void *priv, bool bStatus); -#endif - /******************************************** * * Global Data @@ -514,17 +509,6 @@ static int wilc_wlan_cfg_indicate_rx(uint8_t *frame, int size, wilc_cfg_rsp_t *r int ret = 1; uint8_t msg_type; uint8_t msg_id; - #ifdef WILC_FULLY_HOSTING_AP - u32 *ptru32Frame; - bool bStatus = frame[2]; - - #ifdef BIG_ENDIAN - ptru32Frame = (frame[4] << 24) | (frame[5] << 16) | (frame[6] << 8) | frame[7]; - #else - ptru32Frame = (frame[7] << 24) | (frame[6] << 16) | (frame[5] << 8) | frame[4]; - #endif /* BIG_ENDIAN */ - - #endif /* WILC_FULLY_HOSTING_AP */ msg_type = frame[0]; msg_id = frame[1]; /* seq no */ @@ -571,18 +555,6 @@ static int wilc_wlan_cfg_indicate_rx(uint8_t *frame, int size, wilc_cfg_rsp_t *r host_int_ScanCompleteReceived(frame - 4, size + 4); break; -#ifdef WILC_FULLY_HOSTING_AP - case 'T': - PRINT_INFO(RX_DBG, "TBTT Notification Received\n"); - process_tbtt_isr(); - break; - - case 'A': - PRINT_INFO(RX_DBG, "HOSTAPD ACK Notification Received\n"); - WILC_mgm_HOSTAPD_ACK(ptru32Frame, bStatus); - break; -#endif - default: PRINT_INFO(RX_DBG, "Receive unknown message type[%d-%d-%d-%d-%d-%d-%d-%d]\n", frame[0], frame[1], frame[2], frame[3], frame[4], diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 021a2aab0ce8..9f9f4a97fa99 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -16,7 +16,6 @@ #define WILC_P2P #define TCP_ENHANCEMENTS /* #define MEMORY_STATIC */ -/* #define WILC_FULLY_HOSTING_AP */ /* #define USE_OLD_SPI_SW */ @@ -155,9 +154,6 @@ typedef struct { } wilc_wlan_inp_t; struct tx_complete_data { - #ifdef WILC_FULLY_HOSTING_AP - struct tx_complete_data *next; - #endif int size; void *buff; uint8_t *pBssid; @@ -184,11 +180,6 @@ typedef struct { /*Bug3959: transmitting mgmt frames received from host*/ #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) int (*wlan_add_mgmt_to_tx_que)(void *, uint8_t *, uint32_t, wilc_tx_complete_func_t); - - #ifdef WILC_FULLY_HOSTING_AP - int (*wlan_add_data_to_tx_que)(void *, uint8_t *, uint32_t, wilc_tx_complete_func_t); - #endif - #endif } wilc_wlan_oup_t; From 700db05372bf44eb44a6e0bbae749ef0d538b192 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 7 Sep 2015 19:09:30 +0900 Subject: [PATCH 0218/2431] staging: wilc1000: remove unused preprocessor definition This patch removes a preprocessor definition, SWITCH_LOG_TERMINAL, which is not used. Enabling this definition affects the performance. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 6 ------ drivers/staging/wilc1000/wilc_wlan_cfg.c | 8 -------- 2 files changed, 14 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 4187c7c8c6d0..59c9b441abf3 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -926,12 +926,6 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_PROT_MECH, c_val, 1, 0, 0)) goto _fail_; -#ifdef SWITCH_LOG_TERMINAL - c_val[0] = AUTO_PROT; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_LOGTerminal_Switch, c_val, 1, 0, 0)) - goto _fail_; -#endif - c_val[0] = ACTIVE_SCAN; if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_SCAN_TYPE, c_val, 1, 0, 0)) goto _fail_; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index d5037992deb0..21ed14d8bfe0 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -534,14 +534,6 @@ static int wilc_wlan_cfg_indicate_rx(uint8_t *frame, int size, wilc_cfg_rsp_t *r GnrlAsyncInfoReceived(frame - 4, size + 4); break; - case 'L': -#ifndef SWITCH_LOG_TERMINAL - PRINT_ER("Unexpected firmware log message received\n"); -#else - PRINT_D(FIRM_DBG, "\nFIRMWARE LOGS :\n<<\n%s\n>>\n", frame); - break; - -#endif #if 1 case 'N': NetworkInfoReceived(frame - 4, size + 4); From f638dd3918a4caa910ce62176d2d185203867876 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 7 Sep 2015 19:09:31 +0900 Subject: [PATCH 0219/2431] staging: wilc1000: fix potential memory leak This patch adds kfree(mgmt_tx) when memory allocation of mgmt_tx->buff fails in the second calls of kmalloc() to avoid the memory leak from mgmt_tx first allocated before the second calls of kmalloc(). Signed-off-by: Tony Cho Signed-off-by: Chris Park Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_mon.c | 1 + drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index b5db23ffde6e..dd8007141ea6 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -242,6 +242,7 @@ static int mon_mgmt_tx(struct net_device *dev, const u8 *buf, size_t len) mgmt_tx->buff = kmalloc(len, GFP_ATOMIC); if (mgmt_tx->buff == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx buff\n"); + kfree(mgmt_tx); return WILC_FAIL; } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 663d0f818e4a..cf76a337a336 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2533,6 +2533,7 @@ int WILC_WFI_mgmt_tx(struct wiphy *wiphy, mgmt_tx->buff = WILC_MALLOC(buf_len); if (mgmt_tx->buff == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx buff\n"); + kfree(mgmt_tx); return WILC_FAIL; } memcpy(mgmt_tx->buff, buf, len); From 8c589c240122e37d01997e665cd22bff9f11603c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 8 Sep 2015 00:36:35 +0900 Subject: [PATCH 0220/2431] staging: wilc1000: linux_wlan.c: use kzalloc instead of WILC_MALLOC This patch replaces WILC_MALLOC with kzalloc. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 59c9b441abf3..de82a90c2949 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2250,8 +2250,7 @@ int wilc_netdev_init(void) sema_init(&close_exit_sync, 0); /*create the common structure*/ - g_linux_wlan = WILC_MALLOC(sizeof(linux_wlan_t)); - memset(g_linux_wlan, 0, sizeof(linux_wlan_t)); + g_linux_wlan = kzalloc(sizeof(linux_wlan_t), GFP_KERNEL); /*Reset interrupt count debug*/ int_rcvdU = 0; From d9998a91fee33153dfddb86fa7301d2e26590dbe Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 8 Sep 2015 00:36:38 +0900 Subject: [PATCH 0221/2431] staging: wilc1000: wilc_msgqueue.c: use kmalloc with GFP_ATOMIC This patch use kmalloc with GFP_ATOMIC instead of WILC_MALLOC. It is inside the spin lock region. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 76d2e63dc2d5..41244ce942ba 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -72,7 +72,7 @@ int wilc_mq_send(WILC_MsgQueueHandle *pHandle, WILC_NULLCHECK(s32RetStatus, pstrMessage); pstrMessage->u32Length = u32SendBufferSize; pstrMessage->pstrNext = NULL; - pstrMessage->pvBuffer = WILC_MALLOC(u32SendBufferSize); + pstrMessage->pvBuffer = kmalloc(u32SendBufferSize, GFP_ATOMIC); WILC_NULLCHECK(s32RetStatus, pstrMessage->pvBuffer); memcpy(pstrMessage->pvBuffer, pvSendBuffer, u32SendBufferSize); From ac61ef86f971c3fd0d3aff59744423ff32c4fcca Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 8 Sep 2015 00:36:36 +0900 Subject: [PATCH 0222/2431] staging: wilc1000: linux_wlan.c: add kzalloc error check This patch adds error check if kzalloc is failed. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index de82a90c2949..d68b42cbd14c 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2251,6 +2251,8 @@ int wilc_netdev_init(void) /*create the common structure*/ g_linux_wlan = kzalloc(sizeof(linux_wlan_t), GFP_KERNEL); + if (!g_linux_wlan) + return -ENOMEM; /*Reset interrupt count debug*/ int_rcvdU = 0; From c590b9a4c0ec5e3a545887dc83e96466c493613e Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Tue, 8 Sep 2015 17:07:59 +0900 Subject: [PATCH 0223/2431] staging: wilc1000: define undefined operation mode This patch adds new define, IDLE_MODE to change comparison statement which is wrong due to typecasting to null. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8458d8d40232..80332054319d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -754,7 +754,7 @@ static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetOpe get_id_from_handler(pstrWFIDrv)); - if ((pstrHostIfSetOperationMode->u32Mode) == (u32)NULL) + if ((pstrHostIfSetOperationMode->u32Mode) == IDLE_MODE) up(&hSemDeinitDrvHandle); diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 349d5f5cd919..a107377ff6ec 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -23,6 +23,7 @@ #define BIT1 ((u32)(1 << 1)) #define BIT0 ((u32)(1 << 0)) +#define IDLE_MODE 0x00 #define AP_MODE 0x01 #define STATION_MODE 0x02 #define GO_MODE 0x03 From 3441847ee2f3993a3e6fae435431d507f211b1c6 Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Tue, 8 Sep 2015 17:08:00 +0900 Subject: [PATCH 0224/2431] staging: wilc1000: remove meaningless line The current driver is calling skb_reserve function to align memory in frmw_to_linux function. However, the wrong value is used as the input argument. Besides, the process is not necessary because the address already is algined in dev_alloc_skb function. So, this patch removes the line for dummy headroom. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d68b42cbd14c..b563c9e21376 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2161,8 +2161,6 @@ void frmw_to_linux(uint8_t *buff, uint32_t size, uint32_t pkt_offset) return; } - skb_reserve(skb, (unsigned int)skb->data & 0x3); - if (g_linux_wlan == NULL || wilc_netdev == NULL) PRINT_ER("wilc_netdev in g_linux_wlan is NULL"); skb->dev = wilc_netdev; From 06b548638b39c99f2e96effc80bbb5f33043d697 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 8 Sep 2015 17:08:01 +0900 Subject: [PATCH 0225/2431] staging: wilc1000: add maintainers for Atmel 802.11 driver This patch adds new maintainers who develops new design for Atmel 802.11 link controller and deletes Dean Lee who cannot maintain the wireless driver anymore. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- MAINTAINERS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 7ba7ab749c85..cf1a98da7564 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9975,8 +9975,10 @@ F: drivers/staging/vt665?/ STAGING - WILC1000 WIFI DRIVER M: Johnny Kim M: Rachel Kim -M: Dean Lee M: Chris Park +M: Tony Cho +M: Glen Lee +M: Leo Kim L: linux-wireless@vger.kernel.org S: Supported F: drivers/staging/wilc1000/ From e89419bc9cde142639acbe5c40791a43940896f1 Mon Sep 17 00:00:00 2001 From: "Kim, Leo" Date: Tue, 8 Sep 2015 17:08:02 +0900 Subject: [PATCH 0226/2431] staging: wilc1000: remove unused NM73131_0_BOARD This patch removes the preprocessor definition, NM73131_0_BOARD which is not used anymore. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 40 ---------- drivers/staging/wilc1000/linux_wlan_common.h | 7 +- drivers/staging/wilc1000/linux_wlan_sdio.c | 8 +- drivers/staging/wilc1000/linux_wlan_spi.c | 75 +------------------ drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 +- 5 files changed, 5 insertions(+), 129 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index b563c9e21376..74c70fc35478 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -471,8 +471,6 @@ static int init_irq(linux_wlan_t *p_nic) * * ex) nic->dev_irq_num = gpio_to_irq(GPIO_NUM); */ -#elif defined(NM73131_0_BOARD) - nic->dev_irq_num = IRQ_WILC1000; #elif defined(PANDA_BOARD) gpio_export(GPIO_NUM, 1); nic->dev_irq_num = OMAP_GPIO_IRQ(GPIO_NUM); @@ -1719,7 +1717,6 @@ _fail_locks_: * - this function will be called automatically by OS when module inserted. */ -#if !defined(NM73131_0_BOARD) int mac_init_fn(struct net_device *ndev) { @@ -1729,28 +1726,11 @@ int mac_init_fn(struct net_device *ndev) return 0; } -#else -int mac_init_fn(struct net_device *ndev) -{ - - unsigned char mac_add[] = {0x00, 0x50, 0xc2, 0x5e, 0x10, 0x00}; - /* TODO: get MAC address whenever the source is EPROM - hardcoded and copy it to ndev*/ - memcpy(ndev->dev_addr, mac_add, 6); - - if (!is_valid_ether_addr(ndev->dev_addr)) { - PRINT_ER("Error: Wrong MAC address\n"); - return -EINVAL; - } - - return 0; -} -#endif void WILC_WFI_frame_register(struct wiphy *wiphy, struct net_device *dev, u16 frame_type, bool reg); /* This fn is called, when this device is setup using ifconfig */ -#if !defined(NM73131_0_BOARD) int mac_open(struct net_device *ndev) { perInterface_wlan_t *nic; @@ -1822,26 +1802,6 @@ _err_: wilc1000_wlan_deinit(g_linux_wlan); return ret; } -#else -int mac_open(struct net_device *ndev) -{ - - linux_wlan_t *nic; - - nic = netdev_priv(ndev); - - /*initialize platform*/ - if (wilc1000_wlan_init(nic)) { - PRINT_ER("Failed to initialize platform\n"); - return 1; - } - /* Start the network interface queue for this device */ - PRINT_D(INIT_DBG, "Starting netifQ\n"); - netif_start_queue(ndev); -/* down(&close_exit_sync); */ - return 0; -} -#endif struct net_device_stats *mac_stats(struct net_device *dev) { diff --git a/drivers/staging/wilc1000/linux_wlan_common.h b/drivers/staging/wilc1000/linux_wlan_common.h index e6ebf3e89129..ea121f9b7fb0 100644 --- a/drivers/staging/wilc1000/linux_wlan_common.h +++ b/drivers/staging/wilc1000/linux_wlan_common.h @@ -135,12 +135,7 @@ extern atomic_t DEBUG_LEVEL; #define WILC_MULTICAST_TABLE_SIZE 8 -#if defined (NM73131_0_BOARD) - -#define MODALIAS "wilc_spi" -#define GPIO_NUM IRQ_WILC1000_GPIO - -#elif defined (BEAGLE_BOARD) +#if defined (BEAGLE_BOARD) #define SPI_CHANNEL 4 #if SPI_CHANNEL == 4 diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index 62e6b62abd82..1120a0f595d4 100644 --- a/drivers/staging/wilc1000/linux_wlan_sdio.c +++ b/drivers/staging/wilc1000/linux_wlan_sdio.c @@ -8,15 +8,9 @@ -#if defined (NM73131_0_BOARD) -#define SDIO_MODALIAS "wilc_sdio" -#else #define SDIO_MODALIAS "wilc1000_sdio" -#endif -#if defined (NM73131_0_BOARD) - #define MAX_SPEED 50000000 -#elif defined(CUSTOMER_PLATFORM) +#if defined(CUSTOMER_PLATFORM) /* TODO : User have to stable bus clock as user's environment. */ #ifdef MAX_BUS_SPEED #define MAX_SPEED MAX_BUS_SPEED diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index c5cdab76831d..8bcbed8efdb6 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -113,45 +113,7 @@ int linux_spi_init(void *vp) #define TXRX_PHASE_SIZE (4096) #endif -#if defined (NM73131_0_BOARD) - -int linux_spi_write(uint8_t *b, uint32_t len) -{ - - int ret; - - if (len > 0 && b != NULL) { - struct spi_message msg; - - PRINT_D(BUS_DBG, "Request writing %d bytes\n", len); - struct spi_transfer tr = { - .tx_buf = b, - .len = len, - .speed_hz = SPEED, - .delay_usecs = 0, - }; - - spi_message_init(&msg); - spi_message_add_tail(&tr, &msg); - ret = spi_sync(wilc_spi_dev, &msg); - if (ret < 0) { - PRINT_ER("SPI transaction failed\n"); - } - - } else { - PRINT_ER("can't write data with the following length: %d\n", len); - PRINT_ER("FAILED due to NULL buffer or ZERO length check the following length: %d\n", len); - ret = -1; - } - - /* change return value to match WILC interface */ - (ret < 0) ? (ret = 0) : (ret = 1); - - - return ret; -} - -#elif defined(TXRX_PHASE_SIZE) +#if defined(TXRX_PHASE_SIZE) int linux_spi_write(uint8_t *b, uint32_t len) { @@ -282,40 +244,7 @@ int linux_spi_write(uint8_t *b, uint32_t len) #endif -#if defined (NM73131_0_BOARD) - -int linux_spi_read(unsigned char *rb, unsigned long rlen) -{ - - int ret; - - if (rlen > 0) { - struct spi_message msg; - struct spi_transfer tr = { - .rx_buf = rb, - .len = rlen, - .speed_hz = SPEED, - .delay_usecs = 0, - - }; - - spi_message_init(&msg); - spi_message_add_tail(&tr, &msg); - ret = spi_sync(wilc_spi_dev, &msg); - if (ret < 0) { - PRINT_ER("SPI transaction failed\n"); - } - } else { - PRINT_ER("can't read data with the following length: %ld\n", rlen); - ret = -1; - } - /* change return value to match WILC interface */ - (ret < 0) ? (ret = 0) : (ret = 1); - - return ret; -} - -#elif defined(TXRX_PHASE_SIZE) +#if defined(TXRX_PHASE_SIZE) int linux_spi_read(unsigned char *rb, unsigned long rlen) { diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 27c692000771..e1caea9630af 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -80,9 +80,7 @@ struct WILC_WFI_stats { * LPC3131 which is important to get the MAC start status when you are blocked * inside linux_wlan_firmware_download() which blocks mac_open(). */ -#if defined(NM73131_0_BOARD) - #define RX_BH_TYPE RX_BH_KTHREAD -#elif defined(PANDA_BOARD) +#if defined(PANDA_BOARD) #define RX_BH_TYPE RX_BH_THREADED_IRQ #else #define RX_BH_TYPE RX_BH_KTHREAD From 721c9859478345d2c3593ce798af8c1c1dfdef68 Mon Sep 17 00:00:00 2001 From: "Kim, Leo" Date: Tue, 8 Sep 2015 17:08:03 +0900 Subject: [PATCH 0227/2431] staging: wilc1000: delete definition USE_WIRELESS The preprocessor definition, USE_WIRELESS is always in use. So, this patch deletes the definitions from the makefile and source codes. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/linux_mon.c | 8 ------- drivers/staging/wilc1000/linux_wlan.c | 33 --------------------------- drivers/staging/wilc1000/wilc_wlan.c | 4 ---- 4 files changed, 1 insertion(+), 46 deletions(-) diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index 3b6bc7bbc229..8336a8939cd7 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -11,7 +11,7 @@ ccflags-y += -DSTA_FIRMWARE=\"atmel/wilc1000_fw.bin\" \ ccflags-y += -I$(src)/ -D__CHECK_ENDIAN__ -DWILC_ASIC_A0 \ -DPLL_WORKAROUND -DCONNECT_DIRECT -DAGING_ALG \ -DWILC_PARSE_SCAN_IN_HOST -DDISABLE_PWRSAVE_AND_SCAN_DURING_IP \ - -Wno-unused-function -DUSE_WIRELESS -DWILC_DEBUGFS + -Wno-unused-function -DWILC_DEBUGFS #ccflags-y += -DTCP_ACK_FILTER ccflags-$(CONFIG_WILC1000_PREALLOCATE_AT_LOADING_DRIVER) += -DMEMORY_STATIC \ diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index dd8007141ea6..d87387719626 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -31,9 +31,7 @@ extern linux_wlan_t *g_linux_wlan; static struct net_device *wilc_wfi_mon; /* global monitor netdev */ -#if USE_WIRELESS extern int mac_xmit(struct sk_buff *skb, struct net_device *dev); -#endif u8 srcAdd[6]; @@ -346,7 +344,6 @@ static netdev_tx_t WILC_WFI_mon_xmit(struct sk_buff *skb, PRINT_INFO(HOSTAPD_DBG, "SKB netdevice name = %s\n", skb->dev->name); PRINT_INFO(HOSTAPD_DBG, "MONITOR real dev name = %s\n", mon_priv->real_ndev->name); - #if USE_WIRELESS /* Identify if Ethernet or MAC header (data or mgmt) */ memcpy(srcAdd, &skb->data[10], 6); memcpy(bssid, &skb->data[16], 6); @@ -357,7 +354,6 @@ static netdev_tx_t WILC_WFI_mon_xmit(struct sk_buff *skb, dev_kfree_skb(skb); } else ret = mac_xmit(skb, mon_priv->real_ndev); - #endif /* return NETDEV_TX_OK; */ return ret; @@ -388,7 +384,6 @@ static void WILC_WFI_mon_setup(struct net_device *dev) dev->type = ARPHRD_IEEE80211_RADIOTAP; eth_zero_addr(dev->dev_addr); - #ifdef USE_WIRELESS { /* u8 * mac_add; */ unsigned char mac_add[] = {0x00, 0x50, 0xc2, 0x5e, 0x10, 0x8f}; @@ -398,9 +393,6 @@ static void WILC_WFI_mon_setup(struct net_device *dev) /* mac_add[ETH_ALEN-1]+=1; */ memcpy(dev->dev_addr, mac_add, ETH_ALEN); } - #else - dev->dev_addr[0] = 0x12; - #endif } diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 74c70fc35478..335335a9cae3 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2,9 +2,7 @@ #include "linux_wlan_common.h" #include "wilc_wlan_if.h" #include "wilc_wlan.h" -#ifdef USE_WIRELESS #include "wilc_wfi_cfgoperations.h" -#endif #include "linux_wlan_common.h" @@ -947,12 +945,6 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n /* ( In BSS Station Set SSID to "" (null string) */ /* to enable Broadcast SSID suppport ) */ /* -------------------------------------------------------------- */ -#ifndef USE_WIRELESS - strcpy(c_val, "nwifi"); - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_SSID, c_val, (strlen(c_val) + 1), 0, 0)) - goto _fail_; -#endif - c_val[0] = 0; if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_BCAST_SSID, c_val, 1, 0, 0)) goto _fail_; @@ -1747,14 +1739,12 @@ int mac_open(struct net_device *ndev) priv = wiphy_priv(nic->wilc_netdev->ieee80211_ptr->wiphy); PRINT_D(INIT_DBG, "MAC OPEN[%p]\n", ndev); - #ifdef USE_WIRELESS ret = WILC_WFI_InitHostInt(ndev); if (ret < 0) { PRINT_ER("Failed to initialize host interface\n"); return ret; } - #endif /*initialize platform*/ PRINT_D(INIT_DBG, "*** re-init ***\n"); @@ -1992,20 +1982,16 @@ int mac_close(struct net_device *ndev) /* Stop the network interface queue */ netif_stop_queue(nic->wilc_netdev); - #ifdef USE_WIRELESS WILC_WFI_DeInitHostInt(nic->wilc_netdev); - #endif } if (g_linux_wlan->open_ifcs == 0) { PRINT_D(GENERIC_DBG, "Deinitializing wilc1000\n"); g_linux_wlan->close = 1; wilc1000_wlan_deinit(g_linux_wlan); - #ifdef USE_WIRELESS #ifdef WILC_AP_EXTERNAL_MLME WILC_WFI_deinit_mon_interface(); #endif - #endif } up(&close_exit_sync); @@ -2025,14 +2011,11 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd) s32 s32Error = WILC_SUCCESS; /* struct iwreq *wrq = (struct iwreq *) req; // tony moved to case SIOCSIWPRIV */ - #ifdef USE_WIRELESS nic = netdev_priv(ndev); if (!g_linux_wlan->wilc1000_initialized) return 0; - #endif - switch (cmd) { /* ]] 2013-06-24 */ @@ -2049,13 +2032,10 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd) return PTR_ERR(buff); if (strncasecmp(buff, "RSSI", length) == 0) { - - #ifdef USE_WIRELESS priv = wiphy_priv(nic->wilc_netdev->ieee80211_ptr->wiphy); s32Error = host_int_get_rssi(priv->hWILCWFIDrv, &(rssi)); if (s32Error) PRINT_ER("Failed to send get rssi param's message queue "); - #endif PRINT_INFO(GENERIC_DBG, "RSSI :%d\n", rssi); /*Rounding up the rssi negative value*/ @@ -2143,13 +2123,6 @@ void frmw_to_linux(uint8_t *buff, uint32_t size, uint32_t pkt_offset) /* nic = netdev_priv(wilc_netdev); */ -#ifdef USE_WIRELESS - /* if(nic->monitor_flag) - * { - * WILC_WFI_monitor_rx(nic->wilc_netdev,skb); - * return; - * }*/ -#endif skb->protocol = eth_type_trans(skb, wilc_netdev); #ifndef TCP_ENHANCEMENTS /*get source and dest ip addresses*/ @@ -2249,7 +2222,6 @@ int wilc_netdev_init(void) g_linux_wlan->u8NoIfcs++; ndev->netdev_ops = &wilc_netdev_ops; - #ifdef USE_WIRELESS { struct wireless_dev *wdev; /*Register WiFi*/ @@ -2275,7 +2247,6 @@ int wilc_netdev_init(void) nic->netstats.tx_bytes = 0; } - #endif if (register_netdev(ndev)) { PRINT_ER("Device couldn't be registered - %s\n", ndev->name); @@ -2376,20 +2347,16 @@ static void __exit exit_wilc_driver(void) for (i = 0; i < NUM_CONCURRENT_IFC; i++) { PRINT_D(INIT_DBG, "Unregistering netdev %p\n", g_linux_wlan->strInterfaceInfo[i].wilc_netdev); unregister_netdev(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); - #ifdef USE_WIRELESS PRINT_D(INIT_DBG, "Freeing Wiphy...\n"); WILC_WFI_WiphyFree(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); - #endif PRINT_D(INIT_DBG, "Freeing netdev...\n"); free_netdev(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); } } -#ifdef USE_WIRELESS #ifdef WILC_AP_EXTERNAL_MLME /* Bug 4600 : WILC_WFI_deinit_mon_interface was already called at mac_close */ /* WILC_WFI_deinit_mon_interface(); */ -#endif #endif /* if(g_linux_wlan->open_ifcs==0) */ diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index b0ae09d0ce1b..4c54ea7aa442 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1230,11 +1230,7 @@ static void wilc_wlan_handle_rxq(void) /* reset mgmt indicator bit, to use pkt_offeset in furthur calculations */ pkt_offset &= ~(IS_MANAGMEMENT | IS_MANAGMEMENT_CALLBACK | IS_MGMT_STATUS_SUCCES); -#ifdef USE_WIRELESS WILC_WFI_mgmt_rx(&buffer[offset + HOST_HDR_OFFSET], pkt_len); - -#endif - } /* BUG4530 fix */ else From 780eb03eba8491bd15c0e87334660f9181757a21 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 9 Sep 2015 16:08:13 +0900 Subject: [PATCH 0228/2431] staging: wilc1000: remove unused PLAT_RK3026_TCHIP This patch removes the preprocessor definition, PLAT_RK3026_TCHIP which is not used anymore. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 4c54ea7aa442..39716babf606 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -19,9 +19,6 @@ extern wilc_hif_func_t hif_sdio; extern wilc_hif_func_t hif_spi; extern wilc_cfg_func_t mac_cfg; -#if defined(PLAT_RK3026_TCHIP) -extern u8 g_wilc_initialized; /* AMR : 0422 RK3026 Crash issue */ -#endif extern void WILC_WFI_mgmt_rx(uint8_t *buff, uint32_t size); uint32_t wilc_get_chipid(uint8_t update); u16 Set_machw_change_vir_if(bool bValue); @@ -1943,11 +1940,7 @@ uint32_t init_chip(void) uint32_t chipid; uint32_t reg, ret = 0; -#if defined(PLAT_RK3026_TCHIP) - acquire_bus(ACQUIRE_AND_WAKEUP); /* AMR : 0422 RK3026 Crash issue */ -#else acquire_bus(ACQUIRE_ONLY); -#endif chipid = wilc_get_chipid(true); @@ -2077,13 +2070,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /*** * host interface init **/ -#if defined(PLAT_RK3026_TCHIP) /* AMR : 0422 RK3026 Crash issue */ - if (!g_wilc_initialized) { - custom_lock_bus(g_mac_open); - custom_wakeup(g_mac_open); - } -#endif - if ((inp->io_func.io_type & 0x1) == HIF_SDIO) { if (!hif_sdio.hif_init(inp, wilc_debug)) { /* EIO 5 */ @@ -2176,11 +2162,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) Init_TCP_tracking(); #endif -#if defined(PLAT_RK3026_TCHIP) /* AMR : 0422 RK3026 Crash issue */ - if (!g_wilc_initialized) - custom_unlock_bus(g_mac_open); -#endif - return 1; _fail_: @@ -2192,11 +2173,6 @@ _fail_: kfree(g_wlan.tx_buffer); g_wlan.tx_buffer = NULL; -#if defined(PLAT_RK3026_TCHIP) /* AMR : 0422 RK3026 Crash issue */ - if (!g_wilc_initialized) - custom_unlock_bus(g_mac_open); -#endif - return ret; } From a8fff8bf6b8376ec14f3176c0601f2c318650ba0 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:40 +0530 Subject: [PATCH 0229/2431] Staging: lustre: libcfs: Remove typedefs for struct The Linux kernel coding style guidelines suggest not using typedefs for structure and enum types. This patch gets rid of the typedefs for cfs_wi_sched_t. The following Coccinelle semantic patch detects the cases for struct type: @tn@ identifier i; type td; @@ -typedef struct i { ... } -td ; @@ type tn.td; identifier tn.i; @@ -td + struct i Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/libcfs/workitem.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/workitem.c b/drivers/staging/lustre/lustre/libcfs/workitem.c index 48009b775845..02d18f558fdf 100644 --- a/drivers/staging/lustre/lustre/libcfs/workitem.c +++ b/drivers/staging/lustre/lustre/libcfs/workitem.c @@ -45,7 +45,7 @@ #define CFS_WS_NAME_LEN 16 -typedef struct cfs_wi_sched { +struct cfs_wi_sched { struct list_head ws_list; /* chain on global list */ /** serialised workitems */ spinlock_t ws_lock; @@ -73,7 +73,7 @@ typedef struct cfs_wi_sched { unsigned int ws_starting:1; /** scheduler name */ char ws_name[CFS_WS_NAME_LEN]; -} cfs_wi_sched_t; +}; static struct cfs_workitem_data { /** serialize */ @@ -87,19 +87,19 @@ static struct cfs_workitem_data { } cfs_wi_data; static inline void -cfs_wi_sched_lock(cfs_wi_sched_t *sched) +cfs_wi_sched_lock(struct cfs_wi_sched *sched) { spin_lock(&sched->ws_lock); } static inline void -cfs_wi_sched_unlock(cfs_wi_sched_t *sched) +cfs_wi_sched_unlock(struct cfs_wi_sched *sched) { spin_unlock(&sched->ws_lock); } static inline int -cfs_wi_sched_cansleep(cfs_wi_sched_t *sched) +cfs_wi_sched_cansleep(struct cfs_wi_sched *sched) { cfs_wi_sched_lock(sched); if (sched->ws_stopping) { @@ -221,7 +221,7 @@ EXPORT_SYMBOL(cfs_wi_schedule); static int cfs_wi_scheduler (void *arg) { - struct cfs_wi_sched *sched = (cfs_wi_sched_t *)arg; + struct cfs_wi_sched *sched = (struct cfs_wi_sched *)arg; cfs_block_allsigs(); From 2de5855cf96a798bc95cb13f94b6ba7a142f2f1f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:41 +0530 Subject: [PATCH 0230/2431] Staging: lustre: obdclass: Remove typedefs for struct The Linux kernel coding style guidelines suggest not using typedefs for structure and enum types. This patch gets rid of the typedefs for lu_site_stats_t. The following Coccinelle semantic patch detects the cases for struct type: @tn@ identifier i; type td; @@ -typedef struct i { ... } -td ; @@ type tn.td; identifier tn.i; @@ -td + struct i Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/lu_object.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 55d4523b56ee..48d543682144 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -1784,15 +1784,15 @@ int lu_env_refill_by_tags(struct lu_env *env, __u32 ctags, EXPORT_SYMBOL(lu_env_refill_by_tags); -typedef struct lu_site_stats{ +struct lu_site_stats { unsigned lss_populated; unsigned lss_max_search; unsigned lss_total; unsigned lss_busy; -} lu_site_stats_t; +}; static void lu_site_stats_get(struct cfs_hash *hs, - lu_site_stats_t *stats, int populated) + struct lu_site_stats *stats, int populated) { struct cfs_hash_bd bd; int i; @@ -1841,7 +1841,7 @@ static void lu_site_stats_get(struct cfs_hash *hs, static unsigned long lu_cache_shrink_count(struct shrinker *sk, struct shrink_control *sc) { - lu_site_stats_t stats; + struct lu_site_stats stats; struct lu_site *s; struct lu_site *tmp; unsigned long cached = 0; @@ -2001,7 +2001,7 @@ static __u32 ls_stats_read(struct lprocfs_stats *stats, int idx) */ int lu_site_stats_print(const struct lu_site *s, struct seq_file *m) { - lu_site_stats_t stats; + struct lu_site_stats stats; memset(&stats, 0, sizeof(stats)); lu_site_stats_get(s->ls_obj_hash, &stats, 1); From 222a7e9166b90f7cfd683a192cc757181b95a34f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:42 +0530 Subject: [PATCH 0231/2431] Staging: lustre: obdclass: Use kasprintf instead of kzalloc and sprintf This patch uses kasprintf which combines kzalloc and sprintf. kasprintf also takes care of the size calculation. Semantic patch used is as follows: @@ expression a,flag; expression list args; statement S; @@ a = - \(kmalloc\|kzalloc\)(...,flag) + kasprintf (flag,args) <... when != a if (a == NULL || ...) S ...> - sprintf(a,args); Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/obd_config.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index d399cae2059e..7a5e87cec66e 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -1455,14 +1455,13 @@ int class_config_llog_handler(const struct lu_env *env, inst = 1; inst_len = LUSTRE_CFG_BUFLEN(lcfg, 0) + sizeof(clli->cfg_instance) * 2 + 4; - inst_name = kzalloc(inst_len, GFP_NOFS); + inst_name = kasprintf(GFP_NOFS, "%s-%p", + lustre_cfg_string(lcfg, 0), + clli->cfg_instance); if (!inst_name) { rc = -ENOMEM; goto out; } - sprintf(inst_name, "%s-%p", - lustre_cfg_string(lcfg, 0), - clli->cfg_instance); lustre_cfg_bufs_set_string(&bufs, 0, inst_name); CDEBUG(D_CONFIG, "cmd %x, instance name: %s\n", lcfg->lcfg_command, inst_name); From 91b4e64bfe5b2b2afe66ba5ec622c003d483f9e3 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:44 +0530 Subject: [PATCH 0232/2431] Staging: lustre: lnet: Remove useless cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index d0c79d1bb9f6..6d87731c539d 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c @@ -1313,7 +1313,7 @@ ksocknal_recv (lnet_ni_t *ni, void *private, lnet_msg_t *msg, int delayed, unsigned int niov, struct kvec *iov, lnet_kiov_t *kiov, unsigned int offset, unsigned int mlen, unsigned int rlen) { - ksock_conn_t *conn = (ksock_conn_t *)private; + ksock_conn_t *conn = private; ksock_sched_t *sched = conn->ksnc_scheduler; LASSERT(mlen <= rlen); From 3cf8e32d6d337e0c293cd1b192a970639291703e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:45 +0530 Subject: [PATCH 0233/2431] Staging: lustre: mdc: Remove useless cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c index bcb6c00c49ff..e6b3bf932a84 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_locks.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_locks.c @@ -826,7 +826,7 @@ resend: LASSERT(lmm && lmmsize == 0); LASSERTF(einfo->ei_type == LDLM_FLOCK, "lock type %d\n", einfo->ei_type); - policy = (ldlm_policy_data_t *)lmm; + policy = lmm; res_id.name[3] = LDLM_FLOCK; req = NULL; } else if (it->it_op & IT_OPEN) { From d4d34a5f5de5e5449bdf1ddd16ab42494d07af50 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:47 +0530 Subject: [PATCH 0234/2431] Staging: lustre: obdclass: Remove unnecessary return statements This patch removes return statement which are not required. The warning was detected by checkpatch.pl WARNING: void function return statements are not generally useful Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/genops.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index bc614dce70c6..a2a82e11ec51 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -523,7 +523,6 @@ void class_obd_list(void) atomic_read(&obd->obd_refcount)); } read_unlock(&obd_dev_lock); - return; } /* Search for a client OBD connected to tgt_uuid. If grp_uuid is From fd6f9a4b08dc534dfb34786739d8e8b2f0e281cd Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:48 +0530 Subject: [PATCH 0235/2431] Staging: lustre: obdclass: Insert blank line from declarations This patch fixes the checkpatch.pl warning WARNING: Missing a blank line after declarations Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/genops.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index a2a82e11ec51..efb433daa62e 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -442,6 +442,7 @@ EXPORT_SYMBOL(class_uuid2dev); struct obd_device *class_uuid2obd(struct obd_uuid *uuid) { int dev = class_uuid2dev(uuid); + if (dev < 0) return NULL; return class_num2obd(dev); @@ -489,6 +490,7 @@ int get_devices_count(void) read_lock(&obd_dev_lock); for (index = 0; index <= max_index; index++) { struct obd_device *obd = class_num2obd(index); + if (obd != NULL) dev_count++; } @@ -722,9 +724,11 @@ EXPORT_SYMBOL(class_exp2obd); struct obd_device *class_conn2obd(struct lustre_handle *conn) { struct obd_export *export; + export = class_conn2export(conn); if (export) { struct obd_device *obd = export->exp_obd; + class_export_put(export); return obd; } @@ -735,6 +739,7 @@ EXPORT_SYMBOL(class_conn2obd); struct obd_import *class_exp2cliimp(struct obd_export *exp) { struct obd_device *obd = exp->exp_obd; + if (obd == NULL) return NULL; return obd->u.cli.cl_import; @@ -744,6 +749,7 @@ EXPORT_SYMBOL(class_exp2cliimp); struct obd_import *class_conn2cliimp(struct lustre_handle *conn) { struct obd_device *obd = class_conn2obd(conn); + if (obd == NULL) return NULL; return obd->u.cli.cl_import; @@ -1000,6 +1006,7 @@ EXPORT_SYMBOL(class_import_put); static void init_imp_at(struct imp_at *at) { int i; + at_init(&at->iat_net_latency, 0, 0); for (i = 0; i < IMP_AT_MAX_PORTALS; i++) { /* max service estimates are tracked on the server side, so @@ -1114,6 +1121,7 @@ int class_connect(struct lustre_handle *conn, struct obd_device *obd, struct obd_uuid *cluuid) { struct obd_export *export; + LASSERT(conn != NULL); LASSERT(obd != NULL); LASSERT(cluuid != NULL); @@ -1225,6 +1233,7 @@ int class_connected_export(struct obd_export *exp) { if (exp) { int connected; + spin_lock(&exp->exp_lock); connected = exp->exp_conn_cnt > 0; spin_unlock(&exp->exp_lock); @@ -1544,6 +1553,7 @@ EXPORT_SYMBOL(dump_exports); void obd_exports_barrier(struct obd_device *obd) { int waited = 2; + LASSERT(list_empty(&obd->obd_exports)); spin_lock(&obd->obd_dev_lock); while (!list_empty(&obd->obd_unlinked_exports)) { @@ -1791,6 +1801,7 @@ EXPORT_SYMBOL(kuc_len); struct kuc_hdr *kuc_ptr(void *p) { struct kuc_hdr *lh = ((struct kuc_hdr *)p) - 1; + LASSERT(lh->kuc_magic == KUC_MAGIC); return lh; } @@ -1836,6 +1847,7 @@ EXPORT_SYMBOL(kuc_alloc); inline void kuc_free(void *p, int payload_len) { struct kuc_hdr *lh = kuc_ptr(p); + kfree(lh); } EXPORT_SYMBOL(kuc_free); From e72f36e22c4d54642edc7b807dc2ee13724c71a8 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:49 +0530 Subject: [PATCH 0236/2431] Staging: lustre: osc: Space prohibited between function name and open parenthesis This patch fixes the checkpatch.pl warning: WARNING: space prohibited between function name and open parenthesis '(' Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/osc_request.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index cf2739ccbc04..114c5508a0a0 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -433,7 +433,7 @@ int osc_setattr_async_base(struct obd_export *exp, struct obd_info *oinfo, req->rq_interpret_reply = (ptlrpc_interpterer_t)osc_setattr_interpret; - CLASSERT (sizeof(*sa) <= sizeof(req->rq_async_args)); + CLASSERT(sizeof(*sa) <= sizeof(req->rq_async_args)); sa = ptlrpc_req_async_args(req); sa->sa_oa = oinfo->oi_oa; sa->sa_upcall = upcall; @@ -575,7 +575,7 @@ int osc_punch_base(struct obd_export *exp, struct obd_info *oinfo, ptlrpc_request_set_replen(req); req->rq_interpret_reply = (ptlrpc_interpterer_t)osc_setattr_interpret; - CLASSERT (sizeof(*sa) <= sizeof(req->rq_async_args)); + CLASSERT(sizeof(*sa) <= sizeof(req->rq_async_args)); sa = ptlrpc_req_async_args(req); sa->sa_oa = oinfo->oi_oa; sa->sa_upcall = upcall; @@ -600,7 +600,7 @@ static int osc_sync_interpret(const struct lu_env *env, body = req_capsule_server_get(&req->rq_pill, &RMF_OST_BODY); if (body == NULL) { - CERROR ("can't unpack ost_body\n"); + CERROR("can't unpack ost_body\n"); rc = -EPROTO; goto out; } @@ -1100,7 +1100,7 @@ static void handle_short_read(int nob_read, u32 page_count, /* skip bytes read OK */ while (nob_read > 0) { - LASSERT (page_count > 0); + LASSERT(page_count > 0); if (pga[i]->count > nob_read) { /* EOF inside this page */ @@ -1571,7 +1571,7 @@ static int osc_brw_fini_request(struct ptlrpc_request *req, int rc) } if (rc != req->rq_bulk->bd_nob_transferred) { - CERROR ("Unexpected rc %d (%d transferred)\n", + CERROR("Unexpected rc %d (%d transferred)\n", rc, req->rq_bulk->bd_nob_transferred); return -EPROTO; } From 1b779d2e1b7244677917b521304257ee76045f6d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:20 +0530 Subject: [PATCH 0237/2431] Staging: lustre: ptlrpc: Remove braces for single statement blocks The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/client.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index 865c8a2dd1c9..1800db1e0797 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -1164,12 +1164,11 @@ static int ptlrpc_check_status(struct ptlrpc_request *req) return err < 0 ? err : -EINVAL; } - if (err < 0) { + if (err < 0) DEBUG_REQ(D_INFO, req, "status is %d", err); - } else if (err > 0) { + else if (err > 0) /* XXX: translate this error from net to host */ DEBUG_REQ(D_INFO, req, "status is %d", err); - } return err; } From bd2909f7591b4177b31f14d19b2e9c37e7e93675 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:21 +0530 Subject: [PATCH 0238/2431] Staging: lustre: libcfs: Remove braces for single statement blocks The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c index fbbc8a7e308d..328a27860411 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c @@ -71,13 +71,12 @@ static int cfs_crypto_hash_alloc(unsigned char alg_id, * Skip this function for digest, because we use shash logic at * cfs_crypto_hash_alloc. */ - if (key != NULL) { + if (key != NULL) err = crypto_hash_setkey(desc->tfm, key, key_len); - } else if ((*type)->cht_key != 0) { + else if ((*type)->cht_key != 0) err = crypto_hash_setkey(desc->tfm, (unsigned char *)&((*type)->cht_key), (*type)->cht_size); - } if (err != 0) { crypto_free_hash(desc->tfm); From 451a377d10728419b8730f427d68697d3eda3f0e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:22 +0530 Subject: [PATCH 0239/2431] Staging: lustre: obdclass: Remove braces for single statement blocks The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/dt_object.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/dt_object.c b/drivers/staging/lustre/lustre/obdclass/dt_object.c index b67b0feb03e0..6b645a15d7a5 100644 --- a/drivers/staging/lustre/lustre/obdclass/dt_object.c +++ b/drivers/staging/lustre/lustre/obdclass/dt_object.c @@ -778,7 +778,7 @@ int dt_index_walk(const struct lu_env *env, struct dt_object *obj, return PTR_ERR(it); rc = iops->load(env, it, rdpg->rp_hash); - if (rc == 0) { + if (rc == 0) /* * Iterator didn't find record with exactly the key requested. * @@ -790,9 +790,8 @@ int dt_index_walk(const struct lu_env *env, struct dt_object *obj, * state)---position it on the next item. */ rc = iops->next(env, it); - } else if (rc > 0) { + else if (rc > 0) rc = 0; - } /* Fill containers one after the other. There might be multiple * containers per physical page. From d9ec18cf14c6ceefe58e869ebd4104ca61328bfe Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:23 +0530 Subject: [PATCH 0240/2431] Staging: lustre: llite: llite_close.c: Remove unnecessary braces The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/llite_close.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_close.c b/drivers/staging/lustre/lustre/llite/llite_close.c index 7bdae723fedd..e31cad82d5af 100644 --- a/drivers/staging/lustre/lustre/llite/llite_close.c +++ b/drivers/staging/lustre/lustre/llite/llite_close.c @@ -293,14 +293,13 @@ static void ll_done_writing(struct inode *inode) goto out; rc = md_done_writing(ll_i2sbi(inode)->ll_md_exp, op_data, NULL); - if (rc == -EAGAIN) { + if (rc == -EAGAIN) /* MDS has instructed us to obtain Size-on-MDS attribute from * OSTs and send setattr to back to MDS. */ rc = ll_som_update(inode, op_data); - } else if (rc) { + else if (rc) CERROR("inode %lu mdc done_writing failed: rc = %d\n", inode->i_ino, rc); - } out: ll_finish_md_op_data(op_data); if (och) { From 9d927bc51b4f05ac9aebdf42037b4e55957ef42e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:24 +0530 Subject: [PATCH 0241/2431] Staging: lustre: llite: llite_lib.c: Remove unnecessary braces The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/llite_lib.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index fcad241a1537..c60eb46e9c7e 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1219,14 +1219,13 @@ static int ll_setattr_done_writing(struct inode *inode, ll_pack_inode2opdata(inode, op_data, NULL); rc = md_done_writing(ll_i2sbi(inode)->ll_md_exp, op_data, mod); - if (rc == -EAGAIN) { + if (rc == -EAGAIN) /* MDS has instructed us to obtain Size-on-MDS attribute * from OSTs and send setattr to back to MDS. */ rc = ll_som_update(inode, op_data); - } else if (rc) { + else if (rc) CERROR("inode %lu mdc truncate failed: rc = %d\n", inode->i_ino, rc); - } return rc; } From e03b80cfc2d43b1f3ee9e854450aa5691dc92a8a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:25 +0530 Subject: [PATCH 0242/2431] Staging: lustre: lnet: Remove braces for single statement blocks The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index a23a6d956a4d..345ed4d27cc6 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -253,11 +253,10 @@ kiblnd_handle_completion(kib_conn_t *conn, int txtype, int status, __u64 cookie) } if (tx->tx_status == 0) { /* success so far */ - if (status < 0) { /* failed? */ + if (status < 0) /* failed? */ tx->tx_status = status; - } else if (txtype == IBLND_MSG_GET_REQ) { + else if (txtype == IBLND_MSG_GET_REQ) lnet_set_reply_msg_len(ni, tx->tx_lntmsg[1], status); - } } tx->tx_waiting = 0; From ddb4e767437c75858e9ad556e1a9477c6fffbefb Mon Sep 17 00:00:00 2001 From: Matthew Needes Date: Sat, 5 Sep 2015 13:03:38 -0700 Subject: [PATCH 0243/2431] staging: lustre/obdclass/linux/linux-module.c Fixed sparse warning by removing unused variable "proc_version". Signed-off-by: Matthew Needes Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/linux/linux-module.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c b/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c index 6218ef34ee80..245ac2e9b2dd 100644 --- a/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c +++ b/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c @@ -73,8 +73,6 @@ #include "../../include/lustre_ver.h" #include "../../include/lustre/lustre_build_version.h" -int proc_version; - /* buffer MUST be at least the size of obd_ioctl_hdr */ int obd_ioctl_getdata(char **buf, int *len, void *arg) { From b45024edc44428888c41a8e186f4f0385c79b768 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Mon, 7 Sep 2015 16:05:15 +0300 Subject: [PATCH 0244/2431] staging: lustre: use linux/statfs.h instead of asm/statfs.h Fix the following checkpatch warning: drivers/staging/lustre/lustre/include/linux/lustre_lite.h:46: WARNING:INCLUDE_LINUX: Use #include instead of Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/linux/lustre_lite.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/include/linux/lustre_lite.h b/drivers/staging/lustre/lustre/include/linux/lustre_lite.h index 45651caf42cc..f5d83ebe2fdd 100644 --- a/drivers/staging/lustre/lustre/include/linux/lustre_lite.h +++ b/drivers/staging/lustre/lustre/include/linux/lustre_lite.h @@ -40,7 +40,7 @@ #endif -#include +#include #include #include From 2ced12a7f8bf4994d43209074587519d044d21a2 Mon Sep 17 00:00:00 2001 From: Anders Fridlund Date: Tue, 8 Sep 2015 00:56:48 +0200 Subject: [PATCH 0245/2431] staging: lustre: ptlrpc: include ptlrpc_internal.h Remove sparse warning "symbol 'sptlrpc_plain_init' was not declared" by including ptlrpc_internal.h, which includes sptlrpc_plain_init. Signed-off-by: Anders Fridlund Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/sec_plain.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c b/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c index a243db60f697..d905b77b758b 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c @@ -46,6 +46,7 @@ #include "../include/obd_class.h" #include "../include/lustre_net.h" #include "../include/lustre_sec.h" +#include "ptlrpc_internal.h" struct plain_sec { struct ptlrpc_sec pls_base; From d0f69b5a66c30350ed6e41eef72414ce8650face Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 8 Sep 2015 21:53:01 +0530 Subject: [PATCH 0246/2431] staging: lustre: lov: fix dereference of ERR_PTR If lov_sub_get() fails then it returns the error code in ERR_PTR, but here we were dereferencing sub without checking if lov_sub_get() has actually succeeded or not. And on error we can directly return the error code from lov_io_fault_start() as it return 0 on success and the error code on error. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lov/lov_io.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/lustre/lustre/lov/lov_io.c b/drivers/staging/lustre/lustre/lov/lov_io.c index bf3629151d68..b5b25803d4f1 100644 --- a/drivers/staging/lustre/lustre/lov/lov_io.c +++ b/drivers/staging/lustre/lustre/lov/lov_io.c @@ -729,6 +729,8 @@ static int lov_io_fault_start(const struct lu_env *env, fio = &ios->cis_io->u.ci_fault; lio = cl2lov_io(env, ios); sub = lov_sub_get(env, lio, lov_page_stripe(fio->ft_page)); + if (IS_ERR(sub)) + return PTR_ERR(sub); sub->sub_io->u.ci_fault.ft_nob = fio->ft_nob; lov_sub_put(sub); return lov_io_start(env, ios); From 4cba1972bb060cc4042b226ecb54d09ddfb9fb2d Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 8 Sep 2015 21:53:02 +0530 Subject: [PATCH 0247/2431] staging: lustre: lov: remove always false condition The member qc_idx of struct if_quotactl is unsigned and hence it can never be less than zero. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index 2a2fd8de055d..906503b05979 100644 --- a/drivers/staging/lustre/lustre/lov/lov_obd.c +++ b/drivers/staging/lustre/lustre/lov/lov_obd.c @@ -1487,7 +1487,7 @@ static int lov_iocontrol(unsigned int cmd, struct obd_export *exp, int len, struct obd_quotactl *oqctl; if (qctl->qc_valid == QC_OSTIDX) { - if (qctl->qc_idx < 0 || count <= qctl->qc_idx) + if (count <= qctl->qc_idx) return -EINVAL; tgt = lov->lov_tgts[qctl->qc_idx]; From 446be1b553c3cf03f2d581153777a4ce88f403fe Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Fri, 4 Sep 2015 13:29:52 +0530 Subject: [PATCH 0248/2431] staging: emxx_udc: Remove FSF mailing address FSF mailing address is no longer required to be specified. Hence removed. Signed-off-by: Ravi Teja Darbha Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 4 ---- drivers/staging/emxx_udc/emxx_udc.h | 4 ---- 2 files changed, 8 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index b6b76ff09657..a5b9e1e409b0 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. */ #include diff --git a/drivers/staging/emxx_udc/emxx_udc.h b/drivers/staging/emxx_udc/emxx_udc.h index 0db6b41333ea..5a53186d1d1e 100644 --- a/drivers/staging/emxx_udc/emxx_udc.h +++ b/drivers/staging/emxx_udc/emxx_udc.h @@ -11,10 +11,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. */ From b68ff8f61e9d10055092d6d8f35d72663b83e0ae Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Fri, 4 Sep 2015 13:46:32 +0530 Subject: [PATCH 0249/2431] staging: emxx_udc: Avoid using multiple blank lines Fixed multiple blank lines warning by checkpatch.pl Signed-off-by: Ravi Teja Darbha Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 9 --------- drivers/staging/emxx_udc/emxx_udc.h | 26 -------------------------- 2 files changed, 35 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index a5b9e1e409b0..d57a9ab323af 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -63,12 +63,10 @@ static void _nbu2ss_fifo_flush(struct nbu2ss_udc *, struct nbu2ss_ep *); #define _nbu2ss_zero_len_pkt(udc, epnum) \ _nbu2ss_ep_in_end(udc, epnum, 0, 0) - /*===========================================================================*/ /* Global */ struct nbu2ss_udc udc_controller; - /*-------------------------------------------------------------------------*/ /* Read */ static inline u32 _nbu2ss_readl(void *address) @@ -1394,7 +1392,6 @@ static void _nbu2ss_set_endpoint_stall( } } - /*-------------------------------------------------------------------------*/ /* Device Descriptor */ static struct usb_device_descriptor device_desc = { @@ -2195,7 +2192,6 @@ static void _nbu2ss_ep0_enable(struct nbu2ss_udc *udc) _nbu2ss_writel(&udc->p_regs->EP0_INT_ENA, EP0_INT_EN_BIT); } - /*-------------------------------------------------------------------------*/ static int _nbu2ss_nuke(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep, @@ -2331,7 +2327,6 @@ static int _nbu2ss_enable_controller(struct nbu2ss_udc *udc) return 0; } - /*-------------------------------------------------------------------------*/ static void _nbu2ss_reset_controller(struct nbu2ss_udc *udc) { @@ -2985,7 +2980,6 @@ static struct usb_ep_ops nbu2ss_ep_ops = { .fifo_flush = nbu2ss_ep_fifo_flush, }; - /*-------------------------------------------------------------------------*/ /* usb_gadget_ops */ @@ -3138,7 +3132,6 @@ static int nbu2ss_gad_ioctl( return 0; } - static const struct usb_gadget_ops nbu2ss_gadget_ops = { .get_frame = nbu2ss_gad_get_frame, .wakeup = nbu2ss_gad_wakeup, @@ -3403,7 +3396,6 @@ static int nbu2ss_drv_resume(struct platform_device *pdev) return 0; } - static struct platform_driver udc_driver = { .probe = nbu2ss_drv_probe, .shutdown = nbu2ss_drv_shutdown, @@ -3421,4 +3413,3 @@ MODULE_DESCRIPTION(DRIVER_DESC); MODULE_AUTHOR("Renesas Electronics Corporation"); MODULE_LICENSE("GPL"); - diff --git a/drivers/staging/emxx_udc/emxx_udc.h b/drivers/staging/emxx_udc/emxx_udc.h index 5a53186d1d1e..4a2cc38de7b3 100644 --- a/drivers/staging/emxx_udc/emxx_udc.h +++ b/drivers/staging/emxx_udc/emxx_udc.h @@ -13,14 +13,9 @@ * GNU General Public License for more details. */ - - - #ifndef _LINUX_EMXX_H #define _LINUX_EMXX_H - - /*---------------------------------------------------------------------------*/ /*----------------- Default undef */ #if 0 @@ -32,14 +27,11 @@ #define USE_DMA 1 #define USE_SUSPEND_WAIT 1 - - #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif - /*------------ Board dependence(Resource) */ #define VBUS_VALUE GPIO_VBUS @@ -54,15 +46,11 @@ /* DMA Abort wait time ms */ #define DMA_DISABLE_TIME 10 - - /*------------ Controller dependence */ #define NUM_ENDPOINTS 14 /* Endpoint */ #define REG_EP_NUM 15 /* Endpoint Register */ #define DMA_MAX_COUNT 256 /* DMA Block */ - - #define EPC_RST_DISABLE_TIME 1 /* 1 usec */ #define EPC_DIRPD_DISABLE_TIME 1 /* 1 msec */ #define EPC_PLL_LOCK_COUNT 1000 /* 1000 */ @@ -71,12 +59,10 @@ #define CHATGER_TIME 700 /* 700msec */ #define USB_SUSPEND_TIME 2000 /* 2 sec */ - /* U2F FLAG */ #define U2F_ENABLE 1 #define U2F_DISABLE 0 - /*------- BIT */ #define BIT00 0x00000001 #define BIT01 0x00000002 @@ -456,8 +442,6 @@ /*------- (0x1118:) EPnTADR Register */ #define EPn_TADR 0xFFFFFFFF /* RW */ - - /*===========================================================================*/ /* Struct */ /*------- ep_regs */ @@ -522,13 +506,6 @@ struct fc_regs { u8 Reserved1200[0x1000-0x200]; /* Reserved */ } __aligned(32); - - - - - - - #define EP0_PACKETSIZE 64 #define EP_PACKETSIZE 1024 @@ -539,10 +516,8 @@ struct fc_regs { #define D_FS_RAM_SIZE_BULK 64 #define D_HS_RAM_SIZE_BULK 512 - struct nbu2ss_udc; - enum ep0_state { EP0_IDLE, EP0_IN_DATA_PHASE, @@ -587,7 +562,6 @@ struct nbu2ss_ep { dma_addr_t phys_buf; }; - struct nbu2ss_udc { struct usb_gadget gadget; struct usb_gadget_driver *driver; From 706eb8cfb1f43953d7b7e85780e4ba720748ca00 Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Fri, 4 Sep 2015 13:48:22 +0530 Subject: [PATCH 0250/2431] staging: emxx_udc: Fix NULL comparison style Fixed NULL comparison style as suggested by checkpatch.pl Signed-off-by: Ravi Teja Darbha Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 62 ++++++++++++++--------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index d57a9ab323af..8cef08d91551 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -108,7 +108,7 @@ static void _nbu2ss_dump_register(struct nbu2ss_udc *udc) pr_info("=== %s()\n", __func__); - if (udc == NULL) { + if (!udc) { pr_err("%s udc == NULL\n", __func__); return; } @@ -149,7 +149,7 @@ static void _nbu2ss_ep0_complete(struct usb_ep *_ep, struct usb_request *_req) struct usb_ctrlrequest *p_ctrl; struct nbu2ss_udc *udc; - if ((_ep == NULL) || (_req == NULL)) + if ((!_ep) || (!_req)) return; udc = (struct nbu2ss_udc *)_req->context; @@ -1294,7 +1294,7 @@ static void _nbu2ss_restert_transfer(struct nbu2ss_ep *ep) else req = list_entry(ep->queue.next, struct nbu2ss_req, queue); - if (req == NULL) + if (!req) return; if (ep->epnum > 0) { @@ -1700,7 +1700,7 @@ static int std_req_set_configuration(struct nbu2ss_udc *udc) /*-------------------------------------------------------------------------*/ static inline void _nbu2ss_read_request_data(struct nbu2ss_udc *udc, u32 *pdata) { - if ((udc == NULL) && (pdata == NULL)) + if ((!udc) && (!pdata)) return; *pdata = _nbu2ss_readl(&udc->p_regs->SETUP_DATA0); @@ -1793,7 +1793,7 @@ static inline int _nbu2ss_ep0_in_data_stage(struct nbu2ss_udc *udc) else req = list_entry(ep->queue.next, struct nbu2ss_req, queue); - if (req == NULL) + if (!req) req = &udc->ep0_req; req->req.actual += req->div_len; @@ -1820,7 +1820,7 @@ static inline int _nbu2ss_ep0_out_data_stage(struct nbu2ss_udc *udc) else req = list_entry(ep->queue.next, struct nbu2ss_req, queue); - if (req == NULL) + if (!req) req = &udc->ep0_req; nret = _nbu2ss_ep0_out_transfer(udc, ep, req); @@ -1847,7 +1847,7 @@ static inline int _nbu2ss_ep0_status_stage(struct nbu2ss_udc *udc) else req = list_entry(ep->queue.next, struct nbu2ss_req, queue); - if (req == NULL) { + if (!req) { req = &udc->ep0_req; if (req->req.complete) req->req.complete(&ep->ep, &req->req); @@ -2154,7 +2154,7 @@ static inline void _nbu2ss_epn_int(struct nbu2ss_udc *udc, u32 epnum) else req = list_entry(ep->queue.next, struct nbu2ss_req, queue); - if (req == NULL) { + if (!req) { /* pr_warn("=== %s(%d) req == NULL\n", __func__, epnum); */ return; } @@ -2559,13 +2559,13 @@ static int nbu2ss_ep_enable( struct nbu2ss_ep *ep; struct nbu2ss_udc *udc; - if ((_ep == NULL) || (desc == NULL)) { + if ((!_ep) || (!desc)) { pr_err(" *** %s, bad param\n", __func__); return -EINVAL; } ep = container_of(_ep, struct nbu2ss_ep, ep); - if ((ep == NULL) || (ep->udc == NULL)) { + if ((!ep) || (!ep->udc)) { pr_err(" *** %s, ep == NULL !!\n", __func__); return -EINVAL; } @@ -2582,7 +2582,7 @@ static int nbu2ss_ep_enable( if (udc->vbus_active == 0) return -ESHUTDOWN; - if ((udc->driver == NULL) + if ((!udc->driver) || (udc->gadget.speed == USB_SPEED_UNKNOWN)) { dev_err(ep->udc->dev, " *** %s, udc !!\n", __func__); @@ -2619,13 +2619,13 @@ static int nbu2ss_ep_disable(struct usb_ep *_ep) struct nbu2ss_udc *udc; unsigned long flags; - if (_ep == NULL) { + if (!_ep) { pr_err(" *** %s, bad param\n", __func__); return -EINVAL; } ep = container_of(_ep, struct nbu2ss_ep, ep); - if ((ep == NULL) || (ep->udc == NULL)) { + if ((!ep) || (!ep->udc)) { pr_err("udc: *** %s, ep == NULL !!\n", __func__); return -EINVAL; } @@ -2667,7 +2667,7 @@ static void nbu2ss_ep_free_request( { struct nbu2ss_req *req; - if (_req != NULL) { + if (_req) { req = container_of(_req, struct nbu2ss_req, req); kfree(req); @@ -2688,11 +2688,11 @@ static int nbu2ss_ep_queue( int result = -EINVAL; /* catch various bogus parameters */ - if ((_ep == NULL) || (_req == NULL)) { - if (_ep == NULL) + if ((!_ep) || (!_req)) { + if (!_ep) pr_err("udc: %s --- _ep == NULL\n", __func__); - if (_req == NULL) + if (!_req) pr_err("udc: %s --- _req == NULL\n", __func__); return -EINVAL; @@ -2738,7 +2738,7 @@ static int nbu2ss_ep_queue( req->unaligned = FALSE; if (req->unaligned) { - if (ep->virt_buf == NULL) + if (!ep->virt_buf) ep->virt_buf = (u8 *)dma_alloc_coherent( NULL, PAGE_SIZE, &ep->phys_buf, GFP_ATOMIC | GFP_DMA); @@ -2794,7 +2794,7 @@ static int nbu2ss_ep_dequeue( unsigned long flags; /* catch various bogus parameters */ - if ((_ep == NULL) || (_req == NULL)) { + if ((!_ep) || (!_req)) { /* pr_err("%s, bad param(1)\n", __func__); */ return -EINVAL; } @@ -2806,7 +2806,7 @@ static int nbu2ss_ep_dequeue( } udc = ep->udc; - if (udc == NULL) + if (!udc) return -EINVAL; spin_lock_irqsave(&udc->lock, flags); @@ -2989,13 +2989,13 @@ static int nbu2ss_gad_get_frame(struct usb_gadget *pgadget) u32 data; struct nbu2ss_udc *udc; - if (pgadget == NULL) { + if (!pgadget) { pr_err("udc: %s, bad param\n", __func__); return -EINVAL; } udc = container_of(pgadget, struct nbu2ss_udc, gadget); - if (udc == NULL) { + if (!udc) { dev_err(&pgadget->dev, "%s, udc == NULL\n", __func__); return -EINVAL; } @@ -3017,13 +3017,13 @@ static int nbu2ss_gad_wakeup(struct usb_gadget *pgadget) struct nbu2ss_udc *udc; - if (pgadget == NULL) { + if (!pgadget) { pr_err("%s, bad param\n", __func__); return -EINVAL; } udc = container_of(pgadget, struct nbu2ss_udc, gadget); - if (udc == NULL) { + if (!udc) { dev_err(&pgadget->dev, "%s, udc == NULL\n", __func__); return -EINVAL; } @@ -3055,7 +3055,7 @@ static int nbu2ss_gad_set_selfpowered(struct usb_gadget *pgadget, struct nbu2ss_udc *udc; unsigned long flags; - if (pgadget == NULL) { + if (!pgadget) { pr_err("%s, bad param\n", __func__); return -EINVAL; } @@ -3081,7 +3081,7 @@ static int nbu2ss_gad_vbus_draw(struct usb_gadget *pgadget, unsigned mA) struct nbu2ss_udc *udc; unsigned long flags; - if (pgadget == NULL) { + if (!pgadget) { pr_err("%s, bad param\n", __func__); return -EINVAL; } @@ -3101,14 +3101,14 @@ static int nbu2ss_gad_pullup(struct usb_gadget *pgadget, int is_on) struct nbu2ss_udc *udc; unsigned long flags; - if (pgadget == NULL) { + if (!pgadget) { pr_err("%s, bad param\n", __func__); return -EINVAL; } udc = container_of(pgadget, struct nbu2ss_udc, gadget); - if (udc->driver == NULL) { + if (!udc->driver) { pr_warn("%s, Not Regist Driver\n", __func__); return -EINVAL; } @@ -3319,7 +3319,7 @@ static void nbu2ss_drv_shutdown(struct platform_device *pdev) struct nbu2ss_udc *udc; udc = platform_get_drvdata(pdev); - if (udc == NULL) + if (!udc) return; _nbu2ss_disable_controller(udc); @@ -3353,7 +3353,7 @@ static int nbu2ss_drv_suspend(struct platform_device *pdev, pm_message_t state) struct nbu2ss_udc *udc; udc = platform_get_drvdata(pdev); - if (udc == NULL) + if (!udc) return 0; if (udc->vbus_active) { @@ -3380,7 +3380,7 @@ static int nbu2ss_drv_resume(struct platform_device *pdev) struct nbu2ss_udc *udc; udc = platform_get_drvdata(pdev); - if (udc == NULL) + if (!udc) return 0; data = gpio_get_value(VBUS_VALUE); From c648a57ae5e1685ff5aee496b0014ae93b308975 Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Sat, 5 Sep 2015 01:08:29 +0530 Subject: [PATCH 0251/2431] staging: emxx_udc: Remove cleanup1 label The cleanup1 label does nothing but return. Better way is to return immediately instead of using goto. Hence, removed. Signed-off-by: Ravi Teja Darbha Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 8cef08d91551..ffb8a3dd1e12 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -3284,14 +3284,14 @@ static int nbu2ss_drv_probe(struct platform_device *pdev) /* USB Function Controller Interrupt */ if (status != 0) { dev_err(udc->dev, "request_irq(USB_UDC_IRQ_1) failed\n"); - goto cleanup1; + return status; } /* Driver Initialization */ status = nbu2ss_drv_contest_init(pdev, udc); if (status < 0) { /* Error */ - goto cleanup1; + return status; } /* VBUS Interrupt */ @@ -3304,13 +3304,10 @@ static int nbu2ss_drv_probe(struct platform_device *pdev) if (status != 0) { dev_err(udc->dev, "request_irq(INT_VBUS) failed\n"); - goto cleanup1; + return status; } return status; - -cleanup1: - return status; } /*-------------------------------------------------------------------------*/ From f2b29165c52dc1377824e6407a11ac786bef15d5 Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Tue, 8 Sep 2015 21:18:51 +0530 Subject: [PATCH 0252/2431] staging: emxx_udc: Remove unused parameter from function parameter list parameter list struct nbu2ss_ep *ep parameter in functions _nbu2ss_ep0_in_transfer() and _nbu2ss_ep0_out_transfer() is not used anywhere inside. Hence, removed. Signed-off-by: Ravi Teja Darbha Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index ffb8a3dd1e12..597b78df7c1a 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -685,7 +685,6 @@ static int EP0_receive_NULL(struct nbu2ss_udc *udc, bool pid_flag) /*-------------------------------------------------------------------------*/ static int _nbu2ss_ep0_in_transfer( struct nbu2ss_udc *udc, - struct nbu2ss_ep *ep, struct nbu2ss_req *req ) { @@ -743,7 +742,6 @@ static int _nbu2ss_ep0_in_transfer( /*-------------------------------------------------------------------------*/ static int _nbu2ss_ep0_out_transfer( struct nbu2ss_udc *udc, - struct nbu2ss_ep *ep, struct nbu2ss_req *req ) { @@ -1252,11 +1250,11 @@ static int _nbu2ss_start_transfer( /* EP0 */ switch (udc->ep0state) { case EP0_IN_DATA_PHASE: - nret = _nbu2ss_ep0_in_transfer(udc, ep, req); + nret = _nbu2ss_ep0_in_transfer(udc, req); break; case EP0_OUT_DATA_PHASE: - nret = _nbu2ss_ep0_out_transfer(udc, ep, req); + nret = _nbu2ss_ep0_out_transfer(udc, req); break; case EP0_IN_STATUS_PHASE: @@ -1628,7 +1626,7 @@ static int std_req_get_status(struct nbu2ss_udc *udc) if (result >= 0) { memcpy(udc->ep0_buf, &status_data, length); _nbu2ss_create_ep0_packet(udc, udc->ep0_buf, length); - _nbu2ss_ep0_in_transfer(udc, &udc->ep[0], &udc->ep0_req); + _nbu2ss_ep0_in_transfer(udc, &udc->ep0_req); } else { dev_err(udc->dev, " Error GET_STATUS\n"); @@ -1799,7 +1797,7 @@ static inline int _nbu2ss_ep0_in_data_stage(struct nbu2ss_udc *udc) req->req.actual += req->div_len; req->div_len = 0; - nret = _nbu2ss_ep0_in_transfer(udc, ep, req); + nret = _nbu2ss_ep0_in_transfer(udc, req); if (nret == 0) { udc->ep0state = EP0_OUT_STATUS_PAHSE; EP0_receive_NULL(udc, TRUE); @@ -1823,7 +1821,7 @@ static inline int _nbu2ss_ep0_out_data_stage(struct nbu2ss_udc *udc) if (!req) req = &udc->ep0_req; - nret = _nbu2ss_ep0_out_transfer(udc, ep, req); + nret = _nbu2ss_ep0_out_transfer(udc, req); if (nret == 0) { udc->ep0state = EP0_IN_STATUS_PHASE; EP0_send_NULL(udc, TRUE); From a2f9ff6c75ad2c3110ad8464c0dbaef4902c9400 Mon Sep 17 00:00:00 2001 From: Nayeemahmed Badebade Date: Fri, 4 Sep 2015 22:30:33 +0530 Subject: [PATCH 0253/2431] Staging: fsl-mc/bus: mc-bus.c: Fixed coding style issues Fixed coding style issues where kernel types u16,u64,u32 should be preferred over uint16_t,uint64_t,uint32_t Signed-off-by: Nayeemahmed Badebade Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-bus.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 766a65959b01..b3a60a032a17 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -209,7 +209,7 @@ EXPORT_SYMBOL_GPL(fsl_mc_driver_unregister); static int get_dprc_icid(struct fsl_mc_io *mc_io, int container_id, uint16_t *icid) { - uint16_t dprc_handle; + u16 dprc_handle; struct dprc_attributes attr; int error; @@ -234,7 +234,7 @@ common_cleanup: return error; } -static int translate_mc_addr(uint64_t mc_addr, phys_addr_t *phys_addr) +static int translate_mc_addr(u64 mc_addr, phys_addr_t *phys_addr) { int i; struct fsl_mc *mc = dev_get_drvdata(fsl_mc_bus_type.dev_root->parent); @@ -600,7 +600,7 @@ static int fsl_mc_bus_probe(struct platform_device *pdev) struct fsl_mc_io *mc_io = NULL; int container_id; phys_addr_t mc_portal_phys_addr; - uint32_t mc_portal_size; + u32 mc_portal_size; struct mc_version mc_version; struct resource res; From 242850f48a96ce0bf48e81fa20850792f27fd3ba Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Fri, 4 Sep 2015 14:00:30 -0700 Subject: [PATCH 0254/2431] staging/wlan-ng : Remove duplicated defines from p80211 ETH_ALEN/ETH_HLEN can be used instead of WLAN_ETHADDR_LEN & WLAN_ETHHDR_LEN, replace directly or use eth_addr* functions where applicable. Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wlan-ng/p80211conv.c | 50 ++++++++++++++-------------- drivers/staging/wlan-ng/p80211conv.h | 7 ++-- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/drivers/staging/wlan-ng/p80211conv.c b/drivers/staging/wlan-ng/p80211conv.c index 49f2ef88929d..1b02cdf9d1fa 100644 --- a/drivers/staging/wlan-ng/p80211conv.c +++ b/drivers/staging/wlan-ng/p80211conv.c @@ -135,7 +135,7 @@ int skb_ether_to_p80211(wlandevice_t *wlandev, u32 ethconv, /* it's 802.3, pass ether payload unchanged, */ /* trim off ethernet header */ - skb_pull(skb, WLAN_ETHHDR_LEN); + skb_pull(skb, ETH_HLEN); /* leave off any PAD octets. */ skb_trim(skb, proto); @@ -144,7 +144,7 @@ int skb_ether_to_p80211(wlandevice_t *wlandev, u32 ethconv, /* it's DIXII, time for some conversion */ /* trim off ethernet header */ - skb_pull(skb, WLAN_ETHHDR_LEN); + skb_pull(skb, ETH_HLEN); /* tack on SNAP */ e_snap = @@ -281,8 +281,8 @@ int skb_p80211_to_ether(wlandevice_t *wlandev, u32 ethconv, u16 fc; unsigned int payload_length; unsigned int payload_offset; - u8 daddr[WLAN_ETHADDR_LEN]; - u8 saddr[WLAN_ETHADDR_LEN]; + u8 daddr[ETH_ALEN]; + u8 saddr[ETH_ALEN]; union p80211_hdr *w_hdr; struct wlan_ethhdr *e_hdr; struct wlan_llc *e_llc; @@ -298,16 +298,16 @@ int skb_p80211_to_ether(wlandevice_t *wlandev, u32 ethconv, /* setup some vars for convenience */ fc = le16_to_cpu(w_hdr->a3.fc); if ((WLAN_GET_FC_TODS(fc) == 0) && (WLAN_GET_FC_FROMDS(fc) == 0)) { - memcpy(daddr, w_hdr->a3.a1, WLAN_ETHADDR_LEN); - memcpy(saddr, w_hdr->a3.a2, WLAN_ETHADDR_LEN); + ether_addr_copy(daddr, w_hdr->a3.a1); + ether_addr_copy(saddr, w_hdr->a3.a2); } else if ((WLAN_GET_FC_TODS(fc) == 0) && (WLAN_GET_FC_FROMDS(fc) == 1)) { - memcpy(daddr, w_hdr->a3.a1, WLAN_ETHADDR_LEN); - memcpy(saddr, w_hdr->a3.a3, WLAN_ETHADDR_LEN); + ether_addr_copy(daddr, w_hdr->a3.a1); + ether_addr_copy(saddr, w_hdr->a3.a3); } else if ((WLAN_GET_FC_TODS(fc) == 1) && (WLAN_GET_FC_FROMDS(fc) == 0)) { - memcpy(daddr, w_hdr->a3.a3, WLAN_ETHADDR_LEN); - memcpy(saddr, w_hdr->a3.a2, WLAN_ETHADDR_LEN); + ether_addr_copy(daddr, w_hdr->a3.a3); + ether_addr_copy(saddr, w_hdr->a3.a2); } else { payload_offset = WLAN_HDR_A4_LEN; if (payload_length < WLAN_HDR_A4_LEN - WLAN_HDR_A3_LEN) { @@ -315,8 +315,8 @@ int skb_p80211_to_ether(wlandevice_t *wlandev, u32 ethconv, return 1; } payload_length -= (WLAN_HDR_A4_LEN - WLAN_HDR_A3_LEN); - memcpy(daddr, w_hdr->a4.a3, WLAN_ETHADDR_LEN); - memcpy(saddr, w_hdr->a4.a4, WLAN_ETHADDR_LEN); + ether_addr_copy(daddr, w_hdr->a4.a3); + ether_addr_copy(saddr, w_hdr->a4.a4); } /* perform de-wep if necessary.. */ @@ -360,16 +360,16 @@ int skb_p80211_to_ether(wlandevice_t *wlandev, u32 ethconv, /* Test for the various encodings */ if ((payload_length >= sizeof(struct wlan_ethhdr)) && (e_llc->dsap != 0xaa || e_llc->ssap != 0xaa) && - ((memcmp(daddr, e_hdr->daddr, WLAN_ETHADDR_LEN) == 0) || - (memcmp(saddr, e_hdr->saddr, WLAN_ETHADDR_LEN) == 0))) { + ((!ether_addr_equal_unaligned(daddr, e_hdr->daddr)) || + (!ether_addr_equal_unaligned(saddr, e_hdr->saddr)))) { pr_debug("802.3 ENCAP len: %d\n", payload_length); /* 802.3 Encapsulated */ /* Test for an overlength frame */ - if (payload_length > (netdev->mtu + WLAN_ETHHDR_LEN)) { + if (payload_length > (netdev->mtu + ETH_HLEN)) { /* A bogus length ethfrm has been encap'd. */ /* Is someone trying an oflow attack? */ netdev_err(netdev, "ENCAP frame too large (%d > %d)\n", - payload_length, netdev->mtu + WLAN_ETHHDR_LEN); + payload_length, netdev->mtu + ETH_HLEN); return 1; } @@ -406,9 +406,9 @@ int skb_p80211_to_ether(wlandevice_t *wlandev, u32 ethconv, skb_pull(skb, payload_offset); /* create 802.3 header at beginning of skb. */ - e_hdr = (struct wlan_ethhdr *) skb_push(skb, WLAN_ETHHDR_LEN); - memcpy(e_hdr->daddr, daddr, WLAN_ETHADDR_LEN); - memcpy(e_hdr->saddr, saddr, WLAN_ETHADDR_LEN); + e_hdr = (struct wlan_ethhdr *)skb_push(skb, ETH_HLEN); + ether_addr_copy(e_hdr->daddr, daddr); + ether_addr_copy(e_hdr->saddr, saddr); e_hdr->type = htons(payload_length); /* chop off the 802.11 CRC */ @@ -446,10 +446,10 @@ int skb_p80211_to_ether(wlandevice_t *wlandev, u32 ethconv, skb_pull(skb, sizeof(struct wlan_snap)); /* create 802.3 header at beginning of skb. */ - e_hdr = (struct wlan_ethhdr *) skb_push(skb, WLAN_ETHHDR_LEN); + e_hdr = (struct wlan_ethhdr *)skb_push(skb, ETH_HLEN); e_hdr->type = e_snap->type; - memcpy(e_hdr->daddr, daddr, WLAN_ETHADDR_LEN); - memcpy(e_hdr->saddr, saddr, WLAN_ETHADDR_LEN); + ether_addr_copy(e_hdr->daddr, daddr); + ether_addr_copy(e_hdr->saddr, saddr); /* chop off the 802.11 CRC */ skb_trim(skb, skb->len - WLAN_CRC_LEN); @@ -473,9 +473,9 @@ int skb_p80211_to_ether(wlandevice_t *wlandev, u32 ethconv, skb_pull(skb, payload_offset); /* create 802.3 header at beginning of skb. */ - e_hdr = (struct wlan_ethhdr *) skb_push(skb, WLAN_ETHHDR_LEN); - memcpy(e_hdr->daddr, daddr, WLAN_ETHADDR_LEN); - memcpy(e_hdr->saddr, saddr, WLAN_ETHADDR_LEN); + e_hdr = (struct wlan_ethhdr *)skb_push(skb, ETH_HLEN); + ether_addr_copy(e_hdr->daddr, daddr); + ether_addr_copy(e_hdr->saddr, saddr); e_hdr->type = htons(payload_length); /* chop off the 802.11 CRC */ diff --git a/drivers/staging/wlan-ng/p80211conv.h b/drivers/staging/wlan-ng/p80211conv.h index e031a74d2ad4..8c10357bedf0 100644 --- a/drivers/staging/wlan-ng/p80211conv.h +++ b/drivers/staging/wlan-ng/p80211conv.h @@ -53,14 +53,11 @@ #ifndef _LINUX_P80211CONV_H #define _LINUX_P80211CONV_H -#define WLAN_ETHADDR_LEN 6 #define WLAN_IEEE_OUI_LEN 3 #define WLAN_ETHCONV_ENCAP 1 #define WLAN_ETHCONV_8021h 3 -#define WLAN_ETHHDR_LEN 14 - #define P80211CAPTURE_VERSION 0x80211001 #define P80211_FRMMETA_MAGIC 0x802110 @@ -131,8 +128,8 @@ struct p80211_metawep { /* local ether header type */ struct wlan_ethhdr { - u8 daddr[WLAN_ETHADDR_LEN]; - u8 saddr[WLAN_ETHADDR_LEN]; + u8 daddr[ETH_ALEN]; + u8 saddr[ETH_ALEN]; u16 type; } __packed; From 12d273767a819f7f1bfb90fb485b8caa959b6853 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:19 +0530 Subject: [PATCH 0255/2431] Staging: rtl8723au: hal: Remove braces for single statement blocks The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The error was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/hal/usb_halinit.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/usb_halinit.c b/drivers/staging/rtl8723au/hal/usb_halinit.c index 68156a13d00f..9926b0790e75 100644 --- a/drivers/staging/rtl8723au/hal/usb_halinit.c +++ b/drivers/staging/rtl8723au/hal/usb_halinit.c @@ -834,12 +834,11 @@ static void phy_SsPwrSwitch92CU(struct rtw_adapter *Adapter, rtl8723au_read32(Adapter, rOFDM0_TRxPathEnable); Adapter->pwrctrlpriv.PS_BBRegBackup[PSBBREG_RF2] = rtl8723au_read32(Adapter, rFPGA0_RFMOD); - if (pHalData->rf_type == RF_2T2R) { + if (pHalData->rf_type == RF_2T2R) PHY_SetBBReg(Adapter, rFPGA0_XAB_RFParameter, 0x380038, 0); - } else if (pHalData->rf_type == RF_1T1R) { + else if (pHalData->rf_type == RF_1T1R) PHY_SetBBReg(Adapter, rFPGA0_XAB_RFParameter, 0x38, 0); - } PHY_SetBBReg(Adapter, rOFDM0_TRxPathEnable, 0xf0, 0); PHY_SetBBReg(Adapter, rFPGA0_RFMOD, BIT(1), 1); From 7273773c2cecb647373c4180b159ba1669313681 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:26 +0530 Subject: [PATCH 0256/2431] Staging: android: Remove unnecessary braces. The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ashmem.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index d786ec17e400..f9318003bd0b 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -311,10 +311,9 @@ static ssize_t ashmem_read(struct file *file, char __user *buf, * ashmem_release is called. */ ret = __vfs_read(asma->file, buf, len, pos); - if (ret >= 0) { + if (ret >= 0) /** Update backing file pos, since f_ops->read() doesn't */ asma->file->f_pos = *pos; - } return ret; out_unlock: From ca0b6fe173a11219312bb3607d4d5a0faac1feb4 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:27 +0530 Subject: [PATCH 0257/2431] Staging: speakup: Remove braces for single statement blocks The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/speakup_dectlk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/speakup/speakup_dectlk.c b/drivers/staging/speakup/speakup_dectlk.c index b5a23d42f4d5..09063b82326f 100644 --- a/drivers/staging/speakup/speakup_dectlk.c +++ b/drivers/staging/speakup/speakup_dectlk.c @@ -291,10 +291,9 @@ static void do_catch_up(struct spk_synth *synth) static void synth_flush(struct spk_synth *synth) { - if (in_escape) { + if (in_escape) /* if in command output ']' so we don't get an error */ spk_serial_out(']'); - } in_escape = 0; is_flushing = 1; spk_serial_out(SYNTH_CLEAR); From e1b32e1e89ee69fd62e6d3bd781d017748889e00 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:28 +0530 Subject: [PATCH 0258/2431] Staging: rtl8192e: rtl_wx.c: Remove braces for single statement blocks The linux kernel coding style discourages use of braces for single statement blocks. This patch removes the unnecessary braces. The warning was detected using checkpatch.pl. Coccinelle was used to make the change. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 7e3ca7ef997b..7e5613774a52 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -334,10 +334,9 @@ static int rtl8192_wx_get_range(struct net_device *dev, /* ~130 Mb/s real (802.11n) */ range->throughput = 130 * 1000 * 1000; - if (priv->rf_set_sens != NULL) { + if (priv->rf_set_sens != NULL) /* signal level threshold range */ range->sensitivity = priv->max_sens; - } range->max_qual.qual = 100; range->max_qual.level = 0; From eb6a2dbf32a4ea2fa94f742f6494f661a807fb45 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 5 Sep 2015 19:13:43 +0530 Subject: [PATCH 0259/2431] staging: fbtft: use strncpy instead of strcpy Using strcpy() is a security risk as the destination buffer size is not checked and we may over-run the buffer. Use strncpy() instead, while mentioning the buffer size leaving place for the NULL termination. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft_device.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 0483d33b2638..3856c8873f63 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -1342,7 +1342,8 @@ static int __init fbtft_device_init(void) p_name, p_num); return -EINVAL; } - strcpy(fbtft_device_param_gpios[i].name, p_name); + strncpy(fbtft_device_param_gpios[i].name, p_name, + FBTFT_GPIO_NAME_SIZE - 1); fbtft_device_param_gpios[i++].gpio = (int) val; if (i == MAX_GPIOS) { pr_err(DRVNAME From fb7014df159bb8524341a0fdb8d467f6827b0770 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 5 Sep 2015 19:13:44 +0530 Subject: [PATCH 0260/2431] staging: fbtft: do not use magic numbers Using magic numbers are not good coding practise. Use FBTFT_GPIO_NAME_SIZE as defined in the header files. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 3856c8873f63..80ab918999a6 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -1375,7 +1375,7 @@ static int __init fbtft_device_init(void) } /* name=list lists all supported displays */ - if (strncmp(name, "list", 32) == 0) { + if (strncmp(name, "list", FBTFT_GPIO_NAME_SIZE) == 0) { pr_info(DRVNAME": Supported displays:\n"); for (i = 0; i < ARRAY_SIZE(displays); i++) From ea022df19395f0da090e9dcdf417d28326e15404 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Mon, 7 Sep 2015 18:08:21 +0530 Subject: [PATCH 0261/2431] staging: gdm72xx: fix memory leak We were successfully requesting the firmware but on error it was not being released. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm72xx/usb_boot.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/staging/gdm72xx/usb_boot.c b/drivers/staging/gdm72xx/usb_boot.c index 3ccc447730e8..50fbec3ecf1f 100644 --- a/drivers/staging/gdm72xx/usb_boot.c +++ b/drivers/staging/gdm72xx/usb_boot.c @@ -159,8 +159,10 @@ int usb_boot(struct usb_device *usbdev, u16 pid) } tx_buf = kmalloc(DOWNLOAD_SIZE, GFP_KERNEL); - if (tx_buf == NULL) + if (tx_buf == NULL) { + release_firmware(firm); return -ENOMEM; + } if (firm->size < sizeof(hdr)) { dev_err(&usbdev->dev, "Cannot read the image info.\n"); @@ -285,8 +287,10 @@ static int em_download_image(struct usb_device *usbdev, const char *img_name, } buf = kmalloc(DOWNLOAD_CHUCK + pad_size, GFP_KERNEL); - if (buf == NULL) + if (buf == NULL) { + release_firmware(firm); return -ENOMEM; + } strcpy(buf+pad_size, type_string); ret = gdm_wibro_send(usbdev, buf, strlen(type_string)+pad_size); From c32bb25ee1b396c8d04c4c797f826afe2167eb15 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Mon, 7 Sep 2015 18:08:22 +0530 Subject: [PATCH 0262/2431] staging: gdm72xx: NULL comparison style checkpatch complains if NULL comparison is done as if (var == NULL) Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm72xx/gdm_qos.c | 2 +- drivers/staging/gdm72xx/gdm_sdio.c | 20 ++++++++++---------- drivers/staging/gdm72xx/gdm_usb.c | 16 ++++++++-------- drivers/staging/gdm72xx/gdm_wimax.c | 4 ++-- drivers/staging/gdm72xx/sdio_boot.c | 4 ++-- drivers/staging/gdm72xx/usb_boot.c | 4 ++-- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/drivers/staging/gdm72xx/gdm_qos.c b/drivers/staging/gdm72xx/gdm_qos.c index 96bf2bf87ff4..72c0f7ef8f2b 100644 --- a/drivers/staging/gdm72xx/gdm_qos.c +++ b/drivers/staging/gdm72xx/gdm_qos.c @@ -190,7 +190,7 @@ static int get_qos_index(struct nic *nic, u8 *iph, u8 *tcpudph) int ip_ver, i; struct qos_cb_s *qcb = &nic->qos; - if (iph == NULL || tcpudph == NULL) + if (!iph || !tcpudph) return -1; ip_ver = (iph[0]>>4)&0xf; diff --git a/drivers/staging/gdm72xx/gdm_sdio.c b/drivers/staging/gdm72xx/gdm_sdio.c index a5fd0794842e..b0521da3c793 100644 --- a/drivers/staging/gdm72xx/gdm_sdio.c +++ b/drivers/staging/gdm72xx/gdm_sdio.c @@ -173,12 +173,12 @@ static int init_sdio(struct sdiowm_dev *sdev) spin_lock_init(&tx->lock); tx->sdu_buf = kmalloc(SDU_TX_BUF_SIZE, GFP_KERNEL); - if (tx->sdu_buf == NULL) + if (!tx->sdu_buf) goto fail; for (i = 0; i < MAX_NR_SDU_BUF; i++) { t = alloc_tx_struct(tx); - if (t == NULL) { + if (!t) { ret = -ENOMEM; goto fail; } @@ -192,7 +192,7 @@ static int init_sdio(struct sdiowm_dev *sdev) for (i = 0; i < MAX_NR_RX_BUF; i++) { r = alloc_rx_struct(rx); - if (r == NULL) { + if (!r) { ret = -ENOMEM; goto fail; } @@ -200,7 +200,7 @@ static int init_sdio(struct sdiowm_dev *sdev) } rx->rx_buf = kmalloc(RX_BUF_SIZE, GFP_KERNEL); - if (rx->rx_buf == NULL) + if (!rx->rx_buf) goto fail; return 0; @@ -359,7 +359,7 @@ static void do_tx(struct work_struct *work) is_sdu = 1; } - if (!is_sdu && t == NULL) { + if (!is_sdu && !t) { spin_unlock_irqrestore(&tx->lock, flags); return; } @@ -393,7 +393,7 @@ static int gdm_sdio_send(void *priv_dev, void *data, int len, cmd_evt = (pkt[0] << 8) | pkt[1]; if (cmd_evt == WIMAX_TX_SDU) { t = get_tx_struct(tx, &no_spc); - if (t == NULL) { + if (!t) { /* This case must not happen. */ spin_unlock_irqrestore(&tx->lock, flags); return -ENOSPC; @@ -407,7 +407,7 @@ static int gdm_sdio_send(void *priv_dev, void *data, int len, t->cb_data = cb_data; } else { t = alloc_tx_struct(tx); - if (t == NULL) { + if (!t) { spin_unlock_irqrestore(&tx->lock, flags); return -ENOMEM; } @@ -581,7 +581,7 @@ static int gdm_sdio_receive(void *priv_dev, spin_lock_irqsave(&rx->lock, flags); r = get_rx_struct(rx); - if (r == NULL) { + if (!r) { spin_unlock_irqrestore(&rx->lock, flags); return -ENOMEM; } @@ -615,12 +615,12 @@ static int sdio_wimax_probe(struct sdio_func *func, return ret; phy_dev = kzalloc(sizeof(*phy_dev), GFP_KERNEL); - if (phy_dev == NULL) { + if (!phy_dev) { ret = -ENOMEM; goto out; } sdev = kzalloc(sizeof(*sdev), GFP_KERNEL); - if (sdev == NULL) { + if (!sdev) { ret = -ENOMEM; goto out; } diff --git a/drivers/staging/gdm72xx/gdm_usb.c b/drivers/staging/gdm72xx/gdm_usb.c index eac2f3478bb9..16e497d9d0cf 100644 --- a/drivers/staging/gdm72xx/gdm_usb.c +++ b/drivers/staging/gdm72xx/gdm_usb.c @@ -139,7 +139,7 @@ static struct usb_rx *get_rx_struct(struct rx_cxt *rx) if (list_empty(&rx->free_list)) { r = alloc_rx_struct(rx); - if (r == NULL) + if (!r) return NULL; list_add(&r->list, &rx->free_list); @@ -224,7 +224,7 @@ static int init_usb(struct usbwm_dev *udev) spin_lock_irqsave(&tx->lock, flags); for (i = 0; i < MAX_NR_SDU_BUF; i++) { t = alloc_tx_struct(tx); - if (t == NULL) { + if (!t) { spin_unlock_irqrestore(&tx->lock, flags); ret = -ENOMEM; goto fail; @@ -234,7 +234,7 @@ static int init_usb(struct usbwm_dev *udev) spin_unlock_irqrestore(&tx->lock, flags); r = alloc_rx_struct(rx); - if (r == NULL) { + if (!r) { ret = -ENOMEM; goto fail; } @@ -313,7 +313,7 @@ static int gdm_usb_send(void *priv_dev, void *data, int len, cmd_evt = (pkt[0] << 8) | pkt[1]; if (cmd_evt == WIMAX_TX_SDU) { t = get_tx_struct(tx, &no_spc); - if (t == NULL) { + if (!t) { /* This case must not happen. */ spin_unlock_irqrestore(&tx->lock, flags); return -ENOSPC; @@ -321,7 +321,7 @@ static int gdm_usb_send(void *priv_dev, void *data, int len, list_add_tail(&t->list, &tx->sdu_list); } else { t = alloc_tx_struct(tx); - if (t == NULL) { + if (!t) { spin_unlock_irqrestore(&tx->lock, flags); return -ENOMEM; } @@ -478,7 +478,7 @@ static int gdm_usb_receive(void *priv_dev, r = get_rx_struct(rx); spin_unlock_irqrestore(&rx->lock, flags); - if (r == NULL) + if (!r) return -ENOMEM; r->callback = cb; @@ -558,12 +558,12 @@ static int gdm_usb_probe(struct usb_interface *intf, } phy_dev = kzalloc(sizeof(*phy_dev), GFP_KERNEL); - if (phy_dev == NULL) { + if (!phy_dev) { ret = -ENOMEM; goto out; } udev = kzalloc(sizeof(*udev), GFP_KERNEL); - if (udev == NULL) { + if (!udev) { ret = -ENOMEM; goto out; } diff --git a/drivers/staging/gdm72xx/gdm_wimax.c b/drivers/staging/gdm72xx/gdm_wimax.c index 08290d901b0c..6e8dbaf35445 100644 --- a/drivers/staging/gdm72xx/gdm_wimax.c +++ b/drivers/staging/gdm72xx/gdm_wimax.c @@ -62,7 +62,7 @@ static inline int gdm_wimax_header(struct sk_buff **pskb) struct sk_buff *skb2; skb2 = skb_realloc_headroom(skb, HCI_HEADER_SIZE); - if (skb2 == NULL) + if (!skb2) return -ENOMEM; if (skb->sk) skb_set_owner_w(skb2, skb->sk); @@ -397,7 +397,7 @@ static int gdm_wimax_ioctl_set_data(struct data_s *dst, struct data_s *src) if (!(dst->buf && dst->size == src->size)) { kdelete(&dst->buf); dst->buf = kmalloc(src->size, GFP_KERNEL); - if (dst->buf == NULL) + if (!dst->buf) return -ENOMEM; } diff --git a/drivers/staging/gdm72xx/sdio_boot.c b/drivers/staging/gdm72xx/sdio_boot.c index 2c02842ac5da..ba94b5f13bb2 100644 --- a/drivers/staging/gdm72xx/sdio_boot.c +++ b/drivers/staging/gdm72xx/sdio_boot.c @@ -72,7 +72,7 @@ static int download_image(struct sdio_func *func, const char *img_name) } buf = kmalloc(DOWNLOAD_SIZE + TYPE_A_HEADER_SIZE, GFP_KERNEL); - if (buf == NULL) + if (!buf) return -ENOMEM; img_len = firm->size; @@ -139,7 +139,7 @@ int sdio_boot(struct sdio_func *func) const char *rfs_name = FW_DIR FW_RFS; tx_buf = kmalloc(YMEM0_SIZE, GFP_KERNEL); - if (tx_buf == NULL) + if (!tx_buf) return -ENOMEM; ret = download_image(func, krn_name); diff --git a/drivers/staging/gdm72xx/usb_boot.c b/drivers/staging/gdm72xx/usb_boot.c index 50fbec3ecf1f..39ca34031a6b 100644 --- a/drivers/staging/gdm72xx/usb_boot.c +++ b/drivers/staging/gdm72xx/usb_boot.c @@ -159,7 +159,7 @@ int usb_boot(struct usb_device *usbdev, u16 pid) } tx_buf = kmalloc(DOWNLOAD_SIZE, GFP_KERNEL); - if (tx_buf == NULL) { + if (!tx_buf) { release_firmware(firm); return -ENOMEM; } @@ -287,7 +287,7 @@ static int em_download_image(struct usb_device *usbdev, const char *img_name, } buf = kmalloc(DOWNLOAD_CHUCK + pad_size, GFP_KERNEL); - if (buf == NULL) { + if (!buf) { release_firmware(firm); return -ENOMEM; } From 4e0407b453d082747c088fb6e704c85476bbf212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Sat, 5 Sep 2015 22:15:12 -0400 Subject: [PATCH 0263/2431] staging: rtl8192u: r8192U_core: fix use ether_addr_copy() over memcpy() code style issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2) The values used are stored as dev_addr in net_device (declared in include/linux/netdevice.h) and sa_data in sockaddr (declared in include/linux/socket.h). Both these elements are u16 aligned as shown by using pahole (position must be a multiple of sizeof(u16)): unsigned char * dev_addr; /* 888 8 */ char sa_data[14]; /* 2 14 */ It is thus safe to use ether_addr_copy() instead of memcpy() for that call, as it is already done in multiple files in the Linux kernel sources: drivers/net/ethernet/broadcom/genet/bcmgenet.c drivers/net/ethernet/brocade/bna/bnad.c drivers/net/ethernet/emulex/benet/be_main.c drivers/net/ethernet/ezchip/nps_enet.c drivers/net/ethernet/ibm/ibmveth.c drivers/net/ethernet/intel/fm10k/fm10k_netdev.c drivers/net/ethernet/intel/i40e/i40e_main.c drivers/net/ethernet/mellanox/mlx5/core/en_main.c drivers/net/usb/lan78xx.c net/8021q/vlan_dev.c net/batman-adv/soft-interface.c net/dsa/slave.c Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 76255cb09617..b143b36eb57d 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -3469,7 +3469,7 @@ static int r8192_set_mac_adr(struct net_device *dev, void *mac) down(&priv->wx_sem); - memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); + ether_addr_copy(dev->dev_addr, addr->sa_data); schedule_work(&priv->reset_wq); up(&priv->wx_sem); From a15adada1ca0f2b853d7876045e0580e831f91b5 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 7 Sep 2015 19:58:23 +0530 Subject: [PATCH 0264/2431] Staging: comedi: addi_apci_3120: Remove unnecessary if Remove the if condition, as the code inside the if condition is commented and does not have any FIXME or TODO comment. Signed-off-by: Shraddha Barke Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/addi_apci_3120.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c index 5bfd43d5c889..651b39319a3f 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3120.c +++ b/drivers/staging/comedi/drivers/addi_apci_3120.c @@ -502,11 +502,6 @@ static irqreturn_t apci3120_interrupt(int irq, void *d) if (int_amcc & TARGET_ABORT_INT) dev_err(dev->class_dev, "AMCC IRQ - TARGET DMA ABORT!\n"); - if ((status & APCI3120_STATUS_EOC_INT) == 0 && - (devpriv->mode & APCI3120_MODE_EOC_IRQ_ENA)) { - /* nothing to do... EOC mode is not currently used */ - } - if ((status & APCI3120_STATUS_EOS_INT) && (devpriv->mode & APCI3120_MODE_EOS_IRQ_ENA)) { unsigned short val; From 37b9d03039032008e244ec37030ef9b3d87f198a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Thu, 10 Sep 2015 11:59:11 +0900 Subject: [PATCH 0265/2431] staging: wilc1000: remove BROKEN status This patch removes BROKEN status from the Kconfig. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Kconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/Kconfig b/drivers/staging/wilc1000/Kconfig index 51bbf468fe45..59ccecc316df 100644 --- a/drivers/staging/wilc1000/Kconfig +++ b/drivers/staging/wilc1000/Kconfig @@ -1,6 +1,5 @@ config WILC1000 tristate "WILC1000 support (WiFi only)" - depends on BROKEN depends on !S390 depends on CFG80211 && WEXT_CORE && INET depends on MMC || SPI From f3052587e31ce8ac11c069d942a5cefb18025037 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 10 Sep 2015 12:03:04 +0900 Subject: [PATCH 0266/2431] staging: wilc1000: remove kmalloc wrapper This patch calls kmalloc() directly. No need to wrap kmalloc(). All is not holding a spin lock or in interrupt context. So use GFP_KERNEL flag for kmalloc. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 110 +++++++++--------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 38 +++--- 2 files changed, 74 insertions(+), 74 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 80332054319d..59a1a9d93d6a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -841,7 +841,7 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_IP_ADDRESS; strWID.enuWIDtype = WID_STR; - strWID.ps8WidVal = WILC_MALLOC(IP_ALEN); + strWID.ps8WidVal = kmalloc(IP_ALEN, GFP_KERNEL); strWID.s32ValueSize = IP_ALEN; s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, @@ -891,7 +891,7 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetMacAdd s32 s32Error = WILC_SUCCESS; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; - u8 *mac_buf = WILC_MALLOC(ETH_ALEN); + u8 *mac_buf = kmalloc(ETH_ALEN, GFP_KERNEL); if (mac_buf == NULL) { PRINT_ER("No buffer to send mac address\n"); @@ -1339,7 +1339,7 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHost for (i = 0; i < pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum; i++) valuesize += ((pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo[i].u8ssidlen) + 1); - pu8HdnNtwrksWidVal = WILC_MALLOC(valuesize + 1); + pu8HdnNtwrksWidVal = kmalloc(valuesize + 1, GFP_KERNEL); strWIDList[u32WidsCount].ps8WidVal = pu8HdnNtwrksWidVal; if (strWIDList[u32WidsCount].ps8WidVal != NULL) { pu8Buffer = strWIDList[u32WidsCount].ps8WidVal; @@ -1616,13 +1616,13 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n"); if (pstrHostIFconnectAttr->pu8bssid != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = WILC_MALLOC(6); + pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL); memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->pu8bssid, 6); } pstrWFIDrv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen; if (pstrHostIFconnectAttr->pu8ssid != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = WILC_MALLOC(pstrHostIFconnectAttr->ssidLen + 1); + pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssidLen + 1, GFP_KERNEL); memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->pu8ssid, pstrHostIFconnectAttr->ssidLen); pstrWFIDrv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssidLen] = '\0'; @@ -1630,7 +1630,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen; if (pstrHostIFconnectAttr->pu8IEs != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = WILC_MALLOC(pstrHostIFconnectAttr->IEsLen); + pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->pu8IEs, pstrHostIFconnectAttr->IEsLen); } @@ -1724,13 +1724,13 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps #endif /*WILC_PARSE_SCAN_IN_HOST*/ if (pstrHostIFconnectAttr->pu8bssid != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = WILC_MALLOC(6); + pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL); memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->pu8bssid, 6); } pstrWFIDrv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen; if (pstrHostIFconnectAttr->pu8ssid != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = WILC_MALLOC(pstrHostIFconnectAttr->ssidLen + 1); + pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssidLen + 1, GFP_KERNEL); memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->pu8ssid, pstrHostIFconnectAttr->ssidLen); pstrWFIDrv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssidLen] = '\0'; @@ -1738,7 +1738,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen; if (pstrHostIFconnectAttr->pu8IEs != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = WILC_MALLOC(pstrHostIFconnectAttr->IEsLen); + pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->pu8IEs, pstrHostIFconnectAttr->IEsLen); } @@ -1780,7 +1780,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { gu32FlushedInfoElemAsocSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; - gu8FlushedInfoElemAsoc = WILC_MALLOC(gu32FlushedInfoElemAsocSize); + gu8FlushedInfoElemAsoc = kmalloc(gu32FlushedInfoElemAsocSize, GFP_KERNEL); memcpy(gu8FlushedInfoElemAsoc, pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, gu32FlushedInfoElemAsocSize); } @@ -1825,7 +1825,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].enuWIDtype = WID_STR; strWIDList[u32WidsCount].s32ValueSize = MAX_SSID_LEN + 7; - strWIDList[u32WidsCount].ps8WidVal = WILC_MALLOC(strWIDList[u32WidsCount].s32ValueSize); + strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].s32ValueSize, GFP_KERNEL); if (strWIDList[u32WidsCount].ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -1857,12 +1857,12 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps /*Sending NoA attributes during connection*/ strWIDList[u32WidsCount].s32ValueSize = 112; /* 79; */ - strWIDList[u32WidsCount].ps8WidVal = WILC_MALLOC(strWIDList[u32WidsCount].s32ValueSize); + strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].s32ValueSize, GFP_KERNEL); /*BugID_5137*/ if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { gu32FlushedJoinReqSize = strWIDList[u32WidsCount].s32ValueSize; - gu8FlushedJoinReq = WILC_MALLOC(gu32FlushedJoinReqSize); + gu8FlushedJoinReq = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); } if (strWIDList[u32WidsCount].ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -2038,7 +2038,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps if (pstrHostIFconnectAttr->pu8IEs != NULL) { strConnectInfo.ReqIEsLen = pstrHostIFconnectAttr->IEsLen; - strConnectInfo.pu8ReqIEs = WILC_MALLOC(pstrHostIFconnectAttr->IEsLen); + strConnectInfo.pu8ReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, pstrHostIFconnectAttr->pu8IEs, pstrHostIFconnectAttr->IEsLen); @@ -2197,7 +2197,7 @@ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) if (pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { strConnectInfo.ReqIEsLen = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; - strConnectInfo.pu8ReqIEs = WILC_MALLOC(pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen); + strConnectInfo.pu8ReqIEs = kmalloc(pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen); @@ -2488,7 +2488,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy strConnectInfo.u16RespIEsLen = pstrConnectRespInfo->u16RespIEsLen; - strConnectInfo.pu8RespIEs = WILC_MALLOC(pstrConnectRespInfo->u16RespIEsLen); + strConnectInfo.pu8RespIEs = kmalloc(pstrConnectRespInfo->u16RespIEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8RespIEs, pstrConnectRespInfo->pu8RespIEs, pstrConnectRespInfo->u16RespIEsLen); } @@ -2532,7 +2532,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy if (pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { strConnectInfo.ReqIEsLen = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; - strConnectInfo.pu8ReqIEs = WILC_MALLOC(pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen); + strConnectInfo.pu8ReqIEs = kmalloc(pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen); @@ -2768,7 +2768,7 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF strWIDList[2].s32ValueSize = sizeof(char); - pu8keybuf = WILC_MALLOC(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen); + pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen, GFP_KERNEL); if (pu8keybuf == NULL) { @@ -2798,7 +2798,7 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); - pu8keybuf = WILC_MALLOC(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2); + pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send Key\n"); return -1; @@ -2849,7 +2849,7 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF case WPARxGtk: #ifdef WILC_AP_EXTERNAL_MLME if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { - pu8keybuf = WILC_MALLOC(RX_MIC_KEY_MSG_LEN); + pu8keybuf = kmalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send RxGTK Key\n"); ret = -1; @@ -2901,7 +2901,7 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling group key(Rx) function\n"); - pu8keybuf = WILC_MALLOC(RX_MIC_KEY_MSG_LEN); + pu8keybuf = kmalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send RxGTK Key\n"); ret = -1; @@ -2956,7 +2956,7 @@ _WPARxGtk_end_case_: if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { - pu8keybuf = WILC_MALLOC(PTK_KEY_MSG_LEN + 1); + pu8keybuf = kmalloc(PTK_KEY_MSG_LEN + 1, GFP_KERNEL); @@ -3004,7 +3004,7 @@ _WPARxGtk_end_case_: if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { - pu8keybuf = WILC_MALLOC(PTK_KEY_MSG_LEN); + pu8keybuf = kmalloc(PTK_KEY_MSG_LEN, GFP_KERNEL); @@ -3055,7 +3055,7 @@ _WPAPtk_end_case_: PRINT_D(HOSTINF_DBG, "Handling PMKSA key\n"); - pu8keybuf = WILC_MALLOC((pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1); + pu8keybuf = kmalloc((pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send PMKSA Key\n"); return -1; @@ -3451,7 +3451,7 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna strWID.u16WIDid = (u16)WID_SET_STA_MAC_INACTIVE_TIME; strWID.enuWIDtype = WID_STR; strWID.s32ValueSize = ETH_ALEN; - strWID.ps8WidVal = WILC_MALLOC(strWID.s32ValueSize); + strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); stamac = strWID.ps8WidVal; @@ -3522,7 +3522,7 @@ static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetBeacon *p strWID.u16WIDid = (u16)WID_ADD_BEACON; strWID.enuWIDtype = WID_BIN; strWID.s32ValueSize = pstrSetBeaconParam->u32HeadLen + pstrSetBeaconParam->u32TailLen + 16; - strWID.ps8WidVal = WILC_MALLOC(strWID.s32ValueSize); + strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -3693,7 +3693,7 @@ static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam strWID.enuWIDtype = WID_BIN; strWID.s32ValueSize = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; - strWID.ps8WidVal = WILC_MALLOC(strWID.s32ValueSize); + strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -3741,7 +3741,7 @@ static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelAllSta *p PRINT_D(HOSTINF_DBG, "Handling delete station\n"); - strWID.ps8WidVal = WILC_MALLOC((pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1); + strWID.ps8WidVal = kmalloc((pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1, GFP_KERNEL); if (strWID.ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -3798,7 +3798,7 @@ static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelSta *pst PRINT_D(HOSTINF_DBG, "Handling delete station\n"); - strWID.ps8WidVal = WILC_MALLOC(strWID.s32ValueSize); + strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -3843,7 +3843,7 @@ static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam strWID.s32ValueSize = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; PRINT_D(HOSTINF_DBG, "Handling edit station\n"); - strWID.ps8WidVal = WILC_MALLOC(strWID.s32ValueSize); + strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -3919,7 +3919,7 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh strWID.u16WIDid = (u16)WID_REMAIN_ON_CHAN; strWID.enuWIDtype = WID_STR; strWID.s32ValueSize = 2; - strWID.ps8WidVal = WILC_MALLOC(strWID.s32ValueSize); + strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -3972,7 +3972,7 @@ static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, tstrHostIfRegisterF /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_REGISTER_FRAME; strWID.enuWIDtype = WID_STR; - strWID.ps8WidVal = WILC_MALLOC(sizeof(u16) + 2); + strWID.ps8WidVal = kmalloc(sizeof(u16) + 2, GFP_KERNEL); if (strWID.ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -4030,7 +4030,7 @@ static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, tstrHostIfRema strWID.u16WIDid = (u16)WID_REMAIN_ON_CHAN; strWID.enuWIDtype = WID_STR; strWID.s32ValueSize = 2; - strWID.ps8WidVal = WILC_MALLOC(strWID.s32ValueSize); + strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) PRINT_ER("Failed to allocate memory\n"); @@ -4158,7 +4158,7 @@ static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, tstrHostIFSet strWID.u16WIDid = (u16)WID_SETUP_MULTICAST_FILTER; strWID.enuWIDtype = WID_BIN; strWID.s32ValueSize = sizeof(tstrHostIFSetMulti) + ((strHostIfSetMulti->u32count) * ETH_ALEN); - strWID.ps8WidVal = WILC_MALLOC(strWID.s32ValueSize); + strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); @@ -4220,7 +4220,7 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI strWID.u16WIDid = (u16)WID_11E_P_ACTION_REQ; strWID.enuWIDtype = WID_STR; - strWID.ps8WidVal = WILC_MALLOC(BLOCK_ACK_REQ_SIZE); + strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; ptr = strWID.ps8WidVal; /* *ptr++ = 0x14; */ @@ -4307,7 +4307,7 @@ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI strWID.u16WIDid = (u16)WID_11E_P_ACTION_REQ; strWID.enuWIDtype = WID_STR; - strWID.ps8WidVal = WILC_MALLOC(BLOCK_ACK_REQ_SIZE); + strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; ptr = strWID.ps8WidVal; /* *ptr++ = 0x14; */ @@ -4379,7 +4379,7 @@ static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASe strWID.u16WIDid = (u16)WID_DEL_ALL_RX_BA; strWID.enuWIDtype = WID_STR; - strWID.ps8WidVal = WILC_MALLOC(BLOCK_ACK_REQ_SIZE); + strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; ptr = strWID.ps8WidVal; *ptr++ = 0x14; @@ -4840,7 +4840,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. - uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = WILC_MALLOC(u8WepKeylen); + uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, pu8WepKey, u8WepKeylen); @@ -4909,7 +4909,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. - uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = WILC_MALLOC((u8WepKeylen)); + uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, @@ -4992,7 +4992,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. - uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = WILC_MALLOC(u8PtkKeylen); + uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, @@ -5078,7 +5078,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe u8KeyLen += TX_MIC_KEY_LEN; if (KeyRSC != NULL) { strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. - uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq = WILC_MALLOC(u32KeyRSClen); + uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, KeyRSC, u32KeyRSClen); @@ -5100,7 +5100,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. - uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = WILC_MALLOC(u8KeyLen); + uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pu8RxGtk, u8GtkKeylen); @@ -5556,14 +5556,14 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, strHostIFmsg.drvHandler = hWFIDrv; if (pu8bssid != NULL) { - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid = WILC_MALLOC(6); /* will be deallocated by the receiving thread */ + strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid, pu8bssid, 6); } if (pu8ssid != NULL) { strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.ssidLen = ssidLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid = WILC_MALLOC(ssidLen); /* will be deallocated by the receiving thread */ + strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid, pu8ssid, ssidLen); @@ -5571,7 +5571,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, if (pu8IEs != NULL) { strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.IEsLen = IEsLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs = WILC_MALLOC(IEsLen); /* will be deallocated by the receiving thread */ + strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs, pu8IEs, IEsLen); } @@ -6308,12 +6308,12 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pvUserArg = pvUserArg; strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.u8ChnlListLen = u8ChnlListLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList = WILC_MALLOC(u8ChnlListLen); /* will be deallocated by the receiving thread */ + strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList, pu8ChnlFreqList, u8ChnlListLen); strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.IEsLen = IEsLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs = WILC_MALLOC(IEsLen); /* will be deallocated by the receiving thread */ + strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs, pu8IEs, IEsLen); @@ -6593,7 +6593,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) /*Allocate host interface private structure*/ - pstrWFIDrv = WILC_MALLOC(sizeof(tstrWILC_WFIDrv)); + pstrWFIDrv = kmalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); if (pstrWFIDrv == NULL) { /* WILC_ERRORREPORT(s32Error,WILC_NO_MEM); */ s32Error = WILC_NO_MEM; @@ -6885,7 +6885,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) strHostIFmsg.drvHandler = pstrWFIDrv; strHostIFmsg.uniHostIFmsgBody.strRcvdNetworkInfo.u32Length = u32Length; - strHostIFmsg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer = WILC_MALLOC(u32Length); /* will be deallocated by the receiving thread */ + strHostIFmsg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ memcpy(strHostIFmsg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer, pu8Buffer, u32Length); @@ -6945,7 +6945,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) strHostIFmsg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.u32Length = u32Length; - strHostIFmsg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer = WILC_MALLOC(u32Length); /* will be deallocated by the receiving thread */ + strHostIFmsg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ memcpy(strHostIFmsg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer, pu8Buffer, u32Length); @@ -7191,7 +7191,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, pstrSetBeaconParam->u32Interval = u32Interval; pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; pstrSetBeaconParam->u32HeadLen = u32HeadLen; - pstrSetBeaconParam->pu8Head = WILC_MALLOC(u32HeadLen); + pstrSetBeaconParam->pu8Head = kmalloc(u32HeadLen, GFP_KERNEL); if (pstrSetBeaconParam->pu8Head == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); memcpy(pstrSetBeaconParam->pu8Head, pu8Head, u32HeadLen); @@ -7199,7 +7199,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, /* Bug 4599 : if tail length = 0 skip allocating & copying */ if (u32TailLen > 0) { - pstrSetBeaconParam->pu8Tail = WILC_MALLOC(u32TailLen); + pstrSetBeaconParam->pu8Tail = kmalloc(u32TailLen, GFP_KERNEL); if (pstrSetBeaconParam->pu8Tail == NULL) WILC_ERRORREPORT(s32Error, WILC_NO_MEM); memcpy(pstrSetBeaconParam->pu8Tail, pu8Tail, u32TailLen); @@ -7289,7 +7289,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta memcpy(pstrAddStationMsg, pstrStaParams, sizeof(tstrWILC_AddStaParam)); if (pstrAddStationMsg->u8NumRates > 0) { - u8 *rates = WILC_MALLOC(pstrAddStationMsg->u8NumRates); + u8 *rates = kmalloc(pstrAddStationMsg->u8NumRates, GFP_KERNEL); WILC_NULLCHECK(s32Error, rates); @@ -7444,7 +7444,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt memcpy(pstrAddStationMsg, pstrStaParams, sizeof(tstrWILC_AddStaParam)); if (pstrAddStationMsg->u8NumRates > 0) { - u8 *rates = WILC_MALLOC(pstrAddStationMsg->u8NumRates); + u8 *rates = kmalloc(pstrAddStationMsg->u8NumRates, GFP_KERNEL); WILC_NULLCHECK(s32Error, rates); memcpy(rates, pstrStaParams->pu8Rates, pstrAddStationMsg->u8NumRates); @@ -7561,7 +7561,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pu8IEs = ptstrNetworkInfo->pu8IEs; u16IEsLen = ptstrNetworkInfo->u16IEsLen; - pNewJoinBssParam = WILC_MALLOC(sizeof(tstrJoinBssParam)); + pNewJoinBssParam = kmalloc(sizeof(tstrJoinBssParam), GFP_KERNEL); if (pNewJoinBssParam != NULL) { memset(pNewJoinBssParam, 0, sizeof(tstrJoinBssParam)); pNewJoinBssParam->dtim_period = ptstrNetworkInfo->u8DtimPeriod; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index cf76a337a336..26412a597489 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -342,7 +342,7 @@ void add_network_to_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, vo if (ap_found != -1) kfree(astrLastScannedNtwrksShadow[ap_index].pu8IEs); astrLastScannedNtwrksShadow[ap_index].pu8IEs = - WILC_MALLOC(pstrNetworkInfo->u16IEsLen); /* will be deallocated by the WILC_WFI_CfgScan() function */ + kmalloc(pstrNetworkInfo->u16IEsLen, GFP_KERNEL); /* will be deallocated by the WILC_WFI_CfgScan() function */ memcpy(astrLastScannedNtwrksShadow[ap_index].pu8IEs, pstrNetworkInfo->pu8IEs, pstrNetworkInfo->u16IEsLen); @@ -763,7 +763,7 @@ static int WILC_WFI_CfgScan(struct wiphy *wiphy, struct cfg80211_scan_request *r if (request->n_ssids >= 1) { - strHiddenNetwork.pstrHiddenNetworkInfo = WILC_MALLOC(request->n_ssids * sizeof(tstrHiddenNetwork)); + strHiddenNetwork.pstrHiddenNetworkInfo = kmalloc(request->n_ssids * sizeof(tstrHiddenNetwork), GFP_KERNEL); strHiddenNetwork.u8ssidnum = request->n_ssids; @@ -771,7 +771,7 @@ static int WILC_WFI_CfgScan(struct wiphy *wiphy, struct cfg80211_scan_request *r for (i = 0; i < request->n_ssids; i++) { if (request->ssids[i].ssid != NULL && request->ssids[i].ssid_len != 0) { - strHiddenNetwork.pstrHiddenNetworkInfo[i].pu8ssid = WILC_MALLOC(request->ssids[i].ssid_len); + strHiddenNetwork.pstrHiddenNetworkInfo[i].pu8ssid = kmalloc(request->ssids[i].ssid_len, GFP_KERNEL); memcpy(strHiddenNetwork.pstrHiddenNetworkInfo[i].pu8ssid, request->ssids[i].ssid, request->ssids[i].ssid_len); strHiddenNetwork.pstrHiddenNetworkInfo[i].u8ssidlen = request->ssids[i].ssid_len; } else { @@ -927,7 +927,7 @@ static int WILC_WFI_CfgConnect(struct wiphy *wiphy, struct net_device *dev, /*BugID_5137*/ g_key_wep_params.key_len = sme->key_len; - g_key_wep_params.key = WILC_MALLOC(sme->key_len); + g_key_wep_params.key = kmalloc(sme->key_len, GFP_KERNEL); memcpy(g_key_wep_params.key, sme->key, sme->key_len); g_key_wep_params.key_idx = sme->key_idx; g_wep_keys_saved = true; @@ -945,7 +945,7 @@ static int WILC_WFI_CfgConnect(struct wiphy *wiphy, struct net_device *dev, /*BugID_5137*/ g_key_wep_params.key_len = sme->key_len; - g_key_wep_params.key = WILC_MALLOC(sme->key_len); + g_key_wep_params.key = kmalloc(sme->key_len, GFP_KERNEL); memcpy(g_key_wep_params.key, sme->key, sme->key_len); g_key_wep_params.key_idx = sme->key_idx; g_wep_keys_saved = true; @@ -1199,13 +1199,13 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, struct net_device *netdev, u8 k if (priv->wdev->iftype == NL80211_IFTYPE_AP || priv->wdev->iftype == NL80211_IFTYPE_P2P_GO) { if (priv->wilc_gtk[key_index] == NULL) { - priv->wilc_gtk[key_index] = WILC_MALLOC(sizeof(struct wilc_wfi_key)); + priv->wilc_gtk[key_index] = kmalloc(sizeof(struct wilc_wfi_key), GFP_KERNEL); priv->wilc_gtk[key_index]->key = NULL; priv->wilc_gtk[key_index]->seq = NULL; } if (priv->wilc_ptk[key_index] == NULL) { - priv->wilc_ptk[key_index] = WILC_MALLOC(sizeof(struct wilc_wfi_key)); + priv->wilc_ptk[key_index] = kmalloc(sizeof(struct wilc_wfi_key), GFP_KERNEL); priv->wilc_ptk[key_index]->key = NULL; priv->wilc_ptk[key_index]->seq = NULL; } @@ -1230,7 +1230,7 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, struct net_device *netdev, u8 k if (priv->wilc_gtk[key_index]->key) kfree(priv->wilc_gtk[key_index]->key); - priv->wilc_gtk[key_index]->key = WILC_MALLOC(params->key_len); + priv->wilc_gtk[key_index]->key = kmalloc(params->key_len, GFP_KERNEL); memcpy(priv->wilc_gtk[key_index]->key, params->key, params->key_len); /* if there has been previous allocation for the same index through its seq, free that memory and allocate again*/ @@ -1238,7 +1238,7 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, struct net_device *netdev, u8 k kfree(priv->wilc_gtk[key_index]->seq); if ((params->seq_len) > 0) { - priv->wilc_gtk[key_index]->seq = WILC_MALLOC(params->seq_len); + priv->wilc_gtk[key_index]->seq = kmalloc(params->seq_len, GFP_KERNEL); memcpy(priv->wilc_gtk[key_index]->seq, params->seq, params->seq_len); } @@ -1276,13 +1276,13 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, struct net_device *netdev, u8 k if (priv->wilc_ptk[key_index]->key) kfree(priv->wilc_ptk[key_index]->key); - priv->wilc_ptk[key_index]->key = WILC_MALLOC(params->key_len); + priv->wilc_ptk[key_index]->key = kmalloc(params->key_len, GFP_KERNEL); if (priv->wilc_ptk[key_index]->seq) kfree(priv->wilc_ptk[key_index]->seq); if ((params->seq_len) > 0) - priv->wilc_ptk[key_index]->seq = WILC_MALLOC(params->seq_len); + priv->wilc_ptk[key_index]->seq = kmalloc(params->seq_len, GFP_KERNEL); if (INFO) { for (i = 0; i < params->key_len; i++) @@ -1326,15 +1326,15 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, struct net_device *netdev, u8 k if (!mac_addr) { g_add_gtk_key_params.mac_addr = NULL; } else { - g_add_gtk_key_params.mac_addr = WILC_MALLOC(ETH_ALEN); + g_add_gtk_key_params.mac_addr = kmalloc(ETH_ALEN, GFP_KERNEL); memcpy(g_add_gtk_key_params.mac_addr, mac_addr, ETH_ALEN); } g_key_gtk_params.key_len = params->key_len; g_key_gtk_params.seq_len = params->seq_len; - g_key_gtk_params.key = WILC_MALLOC(params->key_len); + g_key_gtk_params.key = kmalloc(params->key_len, GFP_KERNEL); memcpy(g_key_gtk_params.key, params->key, params->key_len); if (params->seq_len > 0) { - g_key_gtk_params.seq = WILC_MALLOC(params->seq_len); + g_key_gtk_params.seq = kmalloc(params->seq_len, GFP_KERNEL); memcpy(g_key_gtk_params.seq, params->seq, params->seq_len); } g_key_gtk_params.cipher = params->cipher; @@ -1363,15 +1363,15 @@ static int WILC_WFI_add_key(struct wiphy *wiphy, struct net_device *netdev, u8 k if (!mac_addr) { g_add_ptk_key_params.mac_addr = NULL; } else { - g_add_ptk_key_params.mac_addr = WILC_MALLOC(ETH_ALEN); + g_add_ptk_key_params.mac_addr = kmalloc(ETH_ALEN, GFP_KERNEL); memcpy(g_add_ptk_key_params.mac_addr, mac_addr, ETH_ALEN); } g_key_ptk_params.key_len = params->key_len; g_key_ptk_params.seq_len = params->seq_len; - g_key_ptk_params.key = WILC_MALLOC(params->key_len); + g_key_ptk_params.key = kmalloc(params->key_len, GFP_KERNEL); memcpy(g_key_ptk_params.key, params->key, params->key_len); if (params->seq_len > 0) { - g_key_ptk_params.seq = WILC_MALLOC(params->seq_len); + g_key_ptk_params.seq = kmalloc(params->seq_len, GFP_KERNEL); memcpy(g_key_ptk_params.seq, params->seq, params->seq_len); } g_key_ptk_params.cipher = params->cipher; @@ -2525,12 +2525,12 @@ int WILC_WFI_mgmt_tx(struct wiphy *wiphy, if (ieee80211_is_mgmt(mgmt->frame_control)) { /*mgmt frame allocation*/ - mgmt_tx = WILC_MALLOC(sizeof(struct p2p_mgmt_data)); + mgmt_tx = kmalloc(sizeof(struct p2p_mgmt_data), GFP_KERNEL); if (mgmt_tx == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx structure\n"); return WILC_FAIL; } - mgmt_tx->buff = WILC_MALLOC(buf_len); + mgmt_tx->buff = kmalloc(buf_len, GFP_KERNEL); if (mgmt_tx->buff == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx buff\n"); kfree(mgmt_tx); From d36340917ae4a04d7e6322058e3209e37af50662 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 10 Sep 2015 12:03:05 +0900 Subject: [PATCH 0267/2431] staging: wilc1000: delete wilc_memory.c and wilc_memory.h The macro WILC_MALLOC is not used in the driver anymore, so just delete files. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/wilc_memory.c | 16 ------ drivers/staging/wilc1000/wilc_memory.h | 66 ----------------------- drivers/staging/wilc1000/wilc_msgqueue.h | 1 - drivers/staging/wilc1000/wilc_oswrapper.h | 4 -- 5 files changed, 1 insertion(+), 88 deletions(-) delete mode 100644 drivers/staging/wilc1000/wilc_memory.c delete mode 100644 drivers/staging/wilc1000/wilc_memory.h diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index 8336a8939cd7..bdeffea8db83 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -21,7 +21,7 @@ ccflags-$(CONFIG_WILC1000_DYNAMICALLY_ALLOCATE_MEMROY) += -DWILC_NORMAL_ALLOC wilc1000-objs := wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \ - wilc_memory.o wilc_msgqueue.o \ + wilc_msgqueue.o \ coreconfigurator.o host_interface.o \ wilc_sdio.o wilc_spi.o wilc_wlan_cfg.o wilc_debugfs.o diff --git a/drivers/staging/wilc1000/wilc_memory.c b/drivers/staging/wilc1000/wilc_memory.c deleted file mode 100644 index e90a95705a7d..000000000000 --- a/drivers/staging/wilc1000/wilc_memory.c +++ /dev/null @@ -1,16 +0,0 @@ - -#include "wilc_memory.h" - -/*! - * @author syounan - * @date 18 Aug 2010 - * @version 1.0 - */ -void *WILC_MemoryAlloc(u32 u32Size, tstrWILC_MemoryAttrs *strAttrs, - char *pcFileName, u32 u32LineNo) -{ - if (u32Size > 0) - return kmalloc(u32Size, GFP_ATOMIC); - else - return NULL; -} diff --git a/drivers/staging/wilc1000/wilc_memory.h b/drivers/staging/wilc1000/wilc_memory.h deleted file mode 100644 index f19cec11a69a..000000000000 --- a/drivers/staging/wilc1000/wilc_memory.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef __WILC_MEMORY_H__ -#define __WILC_MEMORY_H__ - -/*! - * @file wilc_memory.h - * @brief Memory OS wrapper functionality - * @author syounan - * @sa wilc_oswrapper.h top level OS wrapper file - * @date 16 Aug 2010 - * @version 1.0 - */ - -#include -#include - -/*! - * @struct tstrWILC_MemoryAttrs - * @brief Memory API options - * @author syounan - * @date 16 Aug 2010 - * @version 1.0 - */ -typedef struct { -} tstrWILC_MemoryAttrs; - -/*! - * @brief Allocates a given size of bytes - * @param[in] u32Size size of memory in bytes to be allocated - * @param[in] strAttrs Optional attributes, NULL for default - * if not NULL, pAllocationPool should point to the pool to use for - * this allocation. if NULL memory will be allocated directly from - * the system - * @param[in] pcFileName file name of the calling code for debugging - * @param[in] u32LineNo line number of the calling code for debugging - * @return The new allocated block, NULL if allocation fails - * @note It is recommended to use of of the wrapper macros instead of - * calling this function directly - * @sa sttrWILC_MemoryAttrs - * @sa WILC_MALLOC - * @sa WILC_MALLOC_EX - * @author syounan - * @date 16 Aug 2010 - * @version 1.0 - */ -void *WILC_MemoryAlloc(u32 u32Size, tstrWILC_MemoryAttrs *strAttrs, - char *pcFileName, u32 u32LineNo); - -/*! - * @brief standrad malloc wrapper with custom attributes - */ - #define WILC_MALLOC_EX(__size__, __attrs__) \ - (WILC_MemoryAlloc( \ - (__size__), __attrs__, NULL, 0)) - - -/*! - * @brief standrad malloc wrapper with default attributes - */ -#define WILC_MALLOC(__size__) \ - WILC_MALLOC_EX(__size__, NULL) - - - - - -#endif diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index fc65dfef2773..fb26463a001c 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -12,7 +12,6 @@ #include "wilc_platform.h" #include "wilc_errorsupport.h" -#include "wilc_memory.h" /*! * @brief Creates a new Message queue diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h index cb483253e788..68f6efebc00c 100644 --- a/drivers/staging/wilc1000/wilc_oswrapper.h +++ b/drivers/staging/wilc1000/wilc_oswrapper.h @@ -19,10 +19,6 @@ /* Error reporting and handling support */ #include "wilc_errorsupport.h" -/* Memory support */ -#include "wilc_memory.h" - - /* Message Queue */ #include "wilc_msgqueue.h" From 7f9eb1fbef1d151107e2ba598e40c47f3e11d474 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 09:03:01 +0530 Subject: [PATCH 0268/2431] Staging: wilc1000: Replace "#include " with "#include " Fix checkpatch.pl warning "Use #include instead of " Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan_spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 8bcbed8efdb6..3b3ba8a1c79e 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include From 73d4ee746d6159dd76cf89e7d0d44a90a3545edd Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Thu, 10 Sep 2015 18:26:26 +0900 Subject: [PATCH 0269/2431] staging: wilc1000: remove STATIC_MACADDRESS This patch removes unused definition, STATIC_MACADDRESS from the linux_wlan.c file. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 77 --------------------------- 1 file changed, 77 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 335335a9cae3..df5ee269ccae 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -37,13 +37,6 @@ #include "linux_wlan_spi.h" #endif -#ifdef STATIC_MACADDRESS /* brandy_0724 [[ */ -#include -#include -struct task_struct *wilc_mac_thread; -unsigned char mac_add[] = {0x00, 0x80, 0xC2, 0x5E, 0xa2, 0xb2}; -#endif /* brandy_0724 ]] */ - #if defined(CUSTOMER_PLATFORM) /* TODO : Write power control functions as customer platform. @@ -862,19 +855,15 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n { unsigned char c_val[64]; - #ifndef STATIC_MACADDRESS unsigned char mac_add[] = {0x00, 0x80, 0xC2, 0x5E, 0xa2, 0xff}; - #endif /*BugID_5077*/ struct WILC_WFI_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; PRINT_D(TX_DBG, "Start configuring Firmware\n"); - #ifndef STATIC_MACADDRESS get_random_bytes(&mac_add[5], 1); get_random_bytes(&mac_add[4], 1); - #endif priv = wiphy_priv(dev->ieee80211_ptr->wiphy); pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; PRINT_D(INIT_DBG, "Host = %p\n", pstrWFIDrv); @@ -1415,66 +1404,6 @@ static void wlan_deinitialize_threads(linux_wlan_t *nic) #endif } -#ifdef STATIC_MACADDRESS -const char *path_string[] = { - "/etc/wlan", - "/data/wlan", -}; - -static int linux_wlan_read_mac_addr(void *vp) -{ - int ret = 0; - struct file *fp = (struct file *)-ENOENT; - mm_segment_t old_fs; - loff_t pos = 0; - int index; - int array_size = ARRAY_SIZE(path_string); - - /* change to KERNEL_DS address limit */ - old_fs = get_fs(); - set_fs(KERNEL_DS); - - for (index = 0; index < array_size; index++) { - fp = filp_open(path_string[index], O_WRONLY, 0640); - if (!fp) { - ret = -1; - goto exit; - } - - /*No such file or directory */ - if (IS_ERR(fp) || !fp->f_op) { - get_random_bytes(&mac_add[3], 3); - /* open file to write */ - fp = filp_open(path_string[index], O_WRONLY | O_CREAT, 0640); - - if (!fp || IS_ERR(fp)) { - ret = -1; - continue; - } else { - /* write buf to file */ - fp->f_op->write(fp, mac_add, 6, &pos); - break; - } - } else { - /* read file to buf */ - fp->f_op->read(fp, mac_add, 6, &pos); - break; - } - } - - if (index == array_size) - PRINT_ER("random MAC\n"); - -exit: - if (fp && !IS_ERR(fp)) - filp_close(fp, NULL); - - set_fs(old_fs); - - return ret; -} -#endif - #ifdef COMPLEMENT_BOOT extern volatile int probe; @@ -1581,12 +1510,6 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) wlan_init_locks(g_linux_wlan); -#ifdef STATIC_MACADDRESS - wilc_mac_thread = kthread_run(linux_wlan_read_mac_addr, NULL, "wilc_mac_thread"); - if (wilc_mac_thread < 0) - PRINT_ER("couldn't create Mac addr thread\n"); -#endif - linux_to_wlan(&nwi, g_linux_wlan); ret = wilc_wlan_init(&nwi, &nwo); From 435ebabb305bdc09376297520095ec346a49de62 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Thu, 10 Sep 2015 18:26:27 +0900 Subject: [PATCH 0270/2431] staging: wilc1000: remove firmware definition This patch removes the firmware definitions, STA_FIRMWARE, AP_FIRMWARE, and P2P_CONCURRENCY_FIRMWARE from the linux_wlan.c file because they are defined in the Makefile. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index df5ee269ccae..8e19095babd9 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -101,18 +101,6 @@ static struct notifier_block g_dev_notifier = { if (g_linux_wlan->oup.wlan_cleanup != NULL) \ g_linux_wlan->oup.wlan_cleanup(); } -#ifndef STA_FIRMWARE -#define STA_FIRMWARE "wifi_firmware.bin" -#endif - -#ifndef AP_FIRMWARE -#define AP_FIRMWARE "wifi_firmware_ap.bin" -#endif - -#ifndef P2P_CONCURRENCY_FIRMWARE -#define P2P_CONCURRENCY_FIRMWARE "wifi_firmware_p2p_concurrency.bin" -#endif - typedef struct android_wifi_priv_cmd { char *buf; int used_len; From 7092b839e915583b3f518bf89f6053d9c757b292 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Thu, 10 Sep 2015 18:26:28 +0900 Subject: [PATCH 0271/2431] staging: wilc1000: remove unused global variables This patch removes the followings from the driver because they are in debugging purpose but not used anymore. - int_clrd - int_rcvdU - int_rcvdB - android_wifi_priv_cmd structure Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 17 ----------------- drivers/staging/wilc1000/wilc_sdio.c | 3 --- drivers/staging/wilc1000/wilc_spi.c | 3 --- 3 files changed, 23 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 8e19095babd9..63f44f81d9ed 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -101,12 +101,6 @@ static struct notifier_block g_dev_notifier = { if (g_linux_wlan->oup.wlan_cleanup != NULL) \ g_linux_wlan->oup.wlan_cleanup(); } -typedef struct android_wifi_priv_cmd { - char *buf; - int used_len; - int total_len; -} android_wifi_priv_cmd; - #define IRQ_WAIT 1 #define IRQ_NO_WAIT 0 /* @@ -116,9 +110,6 @@ typedef struct android_wifi_priv_cmd { * deinitialized from mdoule_exit */ static struct semaphore close_exit_sync; -unsigned int int_rcvdU; -unsigned int int_rcvdB; -unsigned int int_clrd; static int wlan_deinit_locks(linux_wlan_t *nic); static void wlan_deinitialize_threads(linux_wlan_t *nic); @@ -340,7 +331,6 @@ void linux_wlan_disable_irq(int wait) #if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) static irqreturn_t isr_uh_routine(int irq, void *user_data) { - int_rcvdU++; #if (RX_BH_TYPE != RX_BH_THREADED_IRQ) linux_wlan_disable_irq(IRQ_NO_WAIT); #endif @@ -395,7 +385,6 @@ static void isr_bh_routine(struct work_struct *work) #endif } - int_rcvdB++; PRINT_D(INT_DBG, "Interrupt received BH\n"); if (g_linux_wlan->oup.wlan_handle_rx_isr != 0) g_linux_wlan->oup.wlan_handle_rx_isr(); @@ -422,7 +411,6 @@ static int isr_bh_routine(void *vp) break; } - int_rcvdB++; PRINT_D(INT_DBG, "Interrupt received BH\n"); if (g_linux_wlan->oup.wlan_handle_rx_isr != 0) g_linux_wlan->oup.wlan_handle_rx_isr(); @@ -1792,7 +1780,6 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) nic = netdev_priv(ndev); - PRINT_D(INT_DBG, "\n========\n IntUH: %d - IntBH: %d - IntCld: %d\n========\n", int_rcvdU, int_rcvdB, int_clrd); PRINT_D(TX_DBG, "Sending packet just received from TCP/IP\n"); /* Stop the network interface queue */ @@ -2096,10 +2083,6 @@ int wilc_netdev_init(void) if (!g_linux_wlan) return -ENOMEM; - /*Reset interrupt count debug*/ - int_rcvdU = 0; - int_rcvdB = 0; - int_clrd = 0; #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP register_inetaddr_notifier(&g_dev_notifier); #endif diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index 5a18148a593e..79aa4a1b8f9f 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -32,7 +32,6 @@ static wilc_sdio_t g_sdio; static int sdio_write_reg(uint32_t addr, uint32_t data); static int sdio_read_reg(uint32_t addr, uint32_t *data); #endif -extern unsigned int int_clrd; /******************************************** * @@ -167,7 +166,6 @@ static int sdio_clear_int(void) cmd.address = 0x4; cmd.data = 0; g_sdio.sdio_cmd52(&cmd); - int_clrd++; return cmd.data; #else @@ -179,7 +177,6 @@ static int sdio_clear_int(void) } reg &= ~0x1; sdio_write_reg(WILC_HOST_RX_CTRL_0, reg); - int_clrd++; return 1; #endif diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index d7bb204c3e99..d9ccca916517 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -10,8 +10,6 @@ #include "wilc_wlan_if.h" #include "wilc_wlan.h" -extern unsigned int int_clrd; - /* * #include * #include @@ -1030,7 +1028,6 @@ static int spi_clear_int(void) } reg &= ~0x1; spi_write_reg(WILC_HOST_RX_CTRL_0, reg); - int_clrd++; return 1; } From a0462838c1c8c72ffdf81461d862a320c010e025 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 10 Sep 2015 18:26:29 +0900 Subject: [PATCH 0272/2431] staging: wilc1000: remove unused enum This patch removes a unused enum tenuFrameClass. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 188919525186..c67ab67e7f51 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -87,14 +87,6 @@ typedef enum { FRAME_SUBTYPE_FORCE_32BIT = 0xFFFFFFFF } tenuFrmSubtype; -/* Basic Frame Classes */ -typedef enum { - CLASS1_FRAME_TYPE = 0x00, - CLASS2_FRAME_TYPE = 0x01, - CLASS3_FRAME_TYPE = 0x02, - FRAME_CLASS_FORCE_32BIT = 0xFFFFFFFF -} tenuFrameClass; - /* Element ID of various Information Elements */ typedef enum { ISSID = 0, /* Service Set Identifier */ From 5da0a0706b4d2a591cf9dcb0e9bfe0100bf5a5b2 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 11 Sep 2015 12:04:20 +0900 Subject: [PATCH 0273/2431] staging: wilc1000: coreconfigurator.c: remove unused functions This patch removes following unused funtions which will not be used anymore. ascii_hex_to_dec get_hex_char extract_mac_addr create_mac_addr conv_ip_to_int conv_int_to_ip get_wid_type get_type CreateConfigPacket ConfigWaitResponse ConfigProvideResponse ConfigPktReceived ParseWriteResponse CreatePacketHeader ParseResponse ProcessBinWid ProcessAdrWid ProcessStrWid ProcessIPwid ProcessIntWid ProcessShortWid ProcessCharWid As a result, four global variable causes defined but not used compile warnings. So just remove unused varialbs g_seqno, g_wid_num, Res_Len and g_oper_mode. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 1051 ------------------- 1 file changed, 1051 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index c67ab67e7f51..544c12d6d963 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -162,14 +162,6 @@ static struct semaphore SemHandlePktResp; static tstrConfigPktInfo gstrConfigPktInfo; -static u8 g_seqno; - -static s16 g_wid_num = -1; - -static u16 Res_Len; - -static u8 g_oper_mode = SET_CFG; - /* WID Switches */ static tstrWID gastrWIDs[] = { {WID_FIRMWARE_VERSION, WID_STR}, @@ -306,160 +298,6 @@ u16 g_num_total_switches = (sizeof(gastrWIDs) / sizeof(tstrWID)); /*****************************************************************************/ /* Functions */ /*****************************************************************************/ -INLINE u8 ascii_hex_to_dec(u8 num) -{ - if ((num >= '0') && (num <= '9')) - return (num - '0'); - else if ((num >= 'A') && (num <= 'F')) - return (10 + (num - 'A')); - else if ((num >= 'a') && (num <= 'f')) - return (10 + (num - 'a')); - - return INVALID; -} - -INLINE u8 get_hex_char(u8 inp) -{ - u8 *d2htab = "0123456789ABCDEF"; - - return d2htab[inp & 0xF]; -} - -/* This function extracts the MAC address held in a string in standard format */ -/* into another buffer as integers. */ -INLINE u16 extract_mac_addr(char *str, u8 *buff) -{ - *buff = 0; - while (*str != '\0') { - if ((*str == ':') || (*str == '-')) - *(++buff) = 0; - else - *buff = (*buff << 4) + ascii_hex_to_dec(*str); - - str++; - } - - return MAC_ADDR_LEN; -} - -/* This function creates MAC address in standard format from a buffer of */ -/* integers. */ -INLINE void create_mac_addr(u8 *str, u8 *buff) -{ - u32 i = 0; - u32 j = 0; - - for (i = 0; i < MAC_ADDR_LEN; i++) { - str[j++] = get_hex_char((u8)((buff[i] >> 4) & 0x0F)); - str[j++] = get_hex_char((u8)(buff[i] & 0x0F)); - str[j++] = ':'; - } - str[--j] = '\0'; -} - -/* This function converts the IP address string in dotted decimal format to */ -/* unsigned integer. This functionality is similar to the library function */ -/* inet_addr() but is reimplemented here since I could not confirm that */ -/* inet_addr is platform independent. */ -/* ips=>IP Address String in dotted decimal format */ -/* ipn=>Pointer to IP Address in integer format */ -INLINE u8 conv_ip_to_int(u8 *ips, u32 *ipn) -{ - u8 i = 0; - u8 ipb = 0; - *ipn = 0; - /* Integer to string for each component */ - while (ips[i] != '\0') { - if (ips[i] == '.') { - *ipn = ((*ipn) << 8) | ipb; - ipb = 0; - } else { - ipb = ipb * 10 + ascii_hex_to_dec(ips[i]); - } - - i++; - } - - /* The last byte of the IP address is read in here */ - *ipn = ((*ipn) << 8) | ipb; - - return 0; -} - -/* This function converts the IP address from integer format to dotted */ -/* decimal string format. Alternative to std library fn inet_ntoa(). */ -/* ips=>Buffer to hold IP Address String dotted decimal format (Min 17B) */ -/* ipn=>IP Address in integer format */ -INLINE u8 conv_int_to_ip(u8 *ips, u32 ipn) -{ - u8 i = 0; - u8 ipb = 0; - u8 cnt = 0; - u8 ipbsize = 0; - - for (cnt = 4; cnt > 0; cnt--) { - ipb = (ipn >> (8 * (cnt - 1))) & 0xFF; - - if (ipb >= 100) - ipbsize = 2; - else if (ipb >= 10) - ipbsize = 1; - else - ipbsize = 0; - - switch (ipbsize) { - case 2: - ips[i++] = get_hex_char(ipb / 100); - ipb %= 100; - - case 1: - ips[i++] = get_hex_char(ipb / 10); - ipb %= 10; - - default: - ips[i++] = get_hex_char(ipb); - } - - if (cnt > 1) - ips[i++] = '.'; - } - - ips[i] = '\0'; - - return i; -} - -INLINE tenuWIDtype get_wid_type(u32 wid_num) -{ - /* Check for iconfig specific WID types first */ - if ((wid_num == WID_BSSID) || - (wid_num == WID_MAC_ADDR) || - (wid_num == WID_IP_ADDRESS) || - (wid_num == WID_HUT_DEST_ADDR)) { - return WID_ADR; - } - - if ((WID_1X_SERV_ADDR == wid_num) || - (WID_STACK_IP_ADDR == wid_num) || - (WID_STACK_NETMASK_ADDR == wid_num)) { - return WID_IP; - } - - /* Next check for standard WID types */ - if (wid_num < 0x1000) - return WID_CHAR; - else if (wid_num < 0x2000) - return WID_SHORT; - else if (wid_num < 0x3000) - return WID_INT; - else if (wid_num < 0x4000) - return WID_STR; - else if (wid_num < 0x5000) - return WID_BIN_DATA; - - return WID_UNDEF; -} - /* This function extracts the beacon period field from the beacon or probe */ /* response frame. */ @@ -499,14 +337,6 @@ INLINE u32 get_beacon_timestamp_hi(u8 *data) return time_stamp; } -/* This function extracts the 'frame type' bits from the MAC header of the */ -/* input frame. */ -/* Returns the value in the LSB of the returned value. */ -INLINE tenuBasicFrmType get_type(u8 *header) -{ - return ((tenuBasicFrmType)(header[0] & 0x0C)); -} - /* This function extracts the 'frame type and sub type' bits from the MAC */ /* header of the input frame. */ /* Returns the value in the LSB of the returned value. */ @@ -1057,887 +887,6 @@ s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults) } #endif -/*****************************************************************************/ -/* */ -/* Function Name : ProcessCharWid */ -/* */ -/* Description : This function processes a WID of type WID_CHAR and */ -/* updates the cfg packet with the supplied value. */ -/* */ -/* Inputs : 1) Pointer to WID cfg structure */ -/* 2) Value to set */ -/* */ -/* Globals : */ -/* */ -/* Processing : */ -/* */ -/* Outputs : None */ -/* */ -/* Returns : None */ -/* */ -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2008 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -void ProcessCharWid(char *pcPacket, s32 *ps32PktLen, - tstrWID *pstrWID, s8 *ps8WidVal) -{ - u8 *pu8val = (u8 *)ps8WidVal; - u8 u8val = 0; - s32 s32PktLen = *ps32PktLen; - - if (pstrWID == NULL) { - PRINT_WRN(CORECONFIG_DBG, "Can't set CHAR val 0x%x ,NULL structure\n", u8val); - return; - } - - /* WID */ - pcPacket[s32PktLen++] = (u8)(pstrWID->u16WIDid & 0xFF); - pcPacket[s32PktLen++] = (u8)(pstrWID->u16WIDid >> 8) & 0xFF; - if (g_oper_mode == SET_CFG) { - u8val = *pu8val; - - /* Length */ - pcPacket[s32PktLen++] = sizeof(u8); - - - /* Value */ - pcPacket[s32PktLen++] = u8val; - } - *ps32PktLen = s32PktLen; -} - -/*****************************************************************************/ -/* */ -/* Function Name : ProcessShortWid */ -/* */ -/* Description : This function processes a WID of type WID_SHORT and */ -/* updates the cfg packet with the supplied value. */ -/* */ -/* Inputs : 1) Pointer to WID cfg structure */ -/* 2) Value to set */ -/* */ -/* Globals : */ -/* */ -/* Processing : */ -/* */ -/* Outputs : None */ -/* */ -/* Returns : None */ -/* */ -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2008 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -void ProcessShortWid(char *pcPacket, s32 *ps32PktLen, - tstrWID *pstrWID, s8 *ps8WidVal) -{ - u16 *pu16val = (u16 *)ps8WidVal; - u16 u16val = 0; - s32 s32PktLen = *ps32PktLen; - - if (pstrWID == NULL) { - PRINT_WRN(CORECONFIG_DBG, "Can't set SHORT val 0x%x ,NULL structure\n", u16val); - return; - } - - /* WID */ - pcPacket[s32PktLen++] = (u8)(pstrWID->u16WIDid & 0xFF); - pcPacket[s32PktLen++] = (u8)((pstrWID->u16WIDid >> 8) & 0xFF); - - if (g_oper_mode == SET_CFG) { - u16val = *pu16val; - - /* Length */ - pcPacket[s32PktLen++] = sizeof(u16); - - /* Value */ - pcPacket[s32PktLen++] = (u8)(u16val & 0xFF); - pcPacket[s32PktLen++] = (u8)((u16val >> 8) & 0xFF); - } - *ps32PktLen = s32PktLen; -} - -/*****************************************************************************/ -/* */ -/* Function Name : ProcessIntWid */ -/* */ -/* Description : This function processes a WID of type WID_INT and */ -/* updates the cfg packet with the supplied value. */ -/* */ -/* Inputs : 1) Pointer to WID cfg structure */ -/* 2) Value to set */ -/* */ -/* Globals : */ -/* */ -/* Processing : */ -/* */ -/* Outputs : None */ -/* */ -/* Returns : None */ -/* */ -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2008 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -void ProcessIntWid(char *pcPacket, s32 *ps32PktLen, - tstrWID *pstrWID, s8 *ps8WidVal) -{ - u32 *pu32val = (u32 *)ps8WidVal; - u32 u32val = 0; - s32 s32PktLen = *ps32PktLen; - - if (pstrWID == NULL) { - PRINT_WRN(CORECONFIG_DBG, "Can't set INT val 0x%x , NULL structure\n", u32val); - return; - } - - /* WID */ - pcPacket[s32PktLen++] = (u8)(pstrWID->u16WIDid & 0xFF); - pcPacket[s32PktLen++] = (u8)((pstrWID->u16WIDid >> 8) & 0xFF); - - if (g_oper_mode == SET_CFG) { - u32val = *pu32val; - - /* Length */ - pcPacket[s32PktLen++] = sizeof(u32); - - /* Value */ - pcPacket[s32PktLen++] = (u8)(u32val & 0xFF); - pcPacket[s32PktLen++] = (u8)((u32val >> 8) & 0xFF); - pcPacket[s32PktLen++] = (u8)((u32val >> 16) & 0xFF); - pcPacket[s32PktLen++] = (u8)((u32val >> 24) & 0xFF); - } - *ps32PktLen = s32PktLen; -} - -/*****************************************************************************/ -/* */ -/* Function Name : ProcessIPwid */ -/* */ -/* Description : This function processes a WID of type WID_IP and */ -/* updates the cfg packet with the supplied value. */ -/* */ -/* Inputs : 1) Pointer to WID cfg structure */ -/* 2) Value to set */ -/* */ -/* Globals : */ -/* */ -/* */ -/* Processing : */ -/* */ -/* Outputs : None */ -/* */ -/* Returns : None */ -/* */ -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2008 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -void ProcessIPwid(char *pcPacket, s32 *ps32PktLen, - tstrWID *pstrWID, u8 *pu8ip) -{ - u32 u32val = 0; - s32 s32PktLen = *ps32PktLen; - - if (pstrWID == NULL) { - PRINT_WRN(CORECONFIG_DBG, "Can't set IP Addr , NULL structure\n"); - return; - } - - /* WID */ - pcPacket[s32PktLen++] = (u8)(pstrWID->u16WIDid & 0xFF); - pcPacket[s32PktLen++] = (u8)((pstrWID->u16WIDid >> 8) & 0xFF); - - if (g_oper_mode == SET_CFG) { - /* Length */ - pcPacket[s32PktLen++] = sizeof(u32); - - /* Convert the IP Address String to Integer */ - conv_ip_to_int(pu8ip, &u32val); - - /* Value */ - pcPacket[s32PktLen++] = (u8)(u32val & 0xFF); - pcPacket[s32PktLen++] = (u8)((u32val >> 8) & 0xFF); - pcPacket[s32PktLen++] = (u8)((u32val >> 16) & 0xFF); - pcPacket[s32PktLen++] = (u8)((u32val >> 24) & 0xFF); - } - *ps32PktLen = s32PktLen; -} - -/*****************************************************************************/ -/* */ -/* Function Name : ProcessStrWid */ -/* */ -/* Description : This function processes a WID of type WID_STR and */ -/* updates the cfg packet with the supplied value. */ -/* */ -/* Inputs : 1) Pointer to WID cfg structure */ -/* 2) Value to set */ -/* */ -/* Globals : */ -/* */ -/* Processing : */ -/* */ -/* Outputs : None */ -/* */ -/* Returns : None */ -/* */ -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2008 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -void ProcessStrWid(char *pcPacket, s32 *ps32PktLen, - tstrWID *pstrWID, u8 *pu8val, s32 s32ValueSize) -{ - u16 u16MsgLen = 0; - u16 idx = 0; - s32 s32PktLen = *ps32PktLen; - - if (pstrWID == NULL) { - PRINT_WRN(CORECONFIG_DBG, "Can't set STR val, NULL structure\n"); - return; - } - - /* WID */ - pcPacket[s32PktLen++] = (u8)(pstrWID->u16WIDid & 0xFF); - pcPacket[s32PktLen++] = (u8)((pstrWID->u16WIDid >> 8) & 0xFF); - - if (g_oper_mode == SET_CFG) { - /* Message Length */ - u16MsgLen = (u16)s32ValueSize; - - /* Length */ - pcPacket[s32PktLen++] = (u8)u16MsgLen; - - /* Value */ - for (idx = 0; idx < u16MsgLen; idx++) - pcPacket[s32PktLen++] = pu8val[idx]; - } - *ps32PktLen = s32PktLen; -} - -/*****************************************************************************/ -/* */ -/* Function Name : ProcessAdrWid */ -/* */ -/* Description : This function processes a WID of type WID_ADR and */ -/* updates the cfg packet with the supplied value. */ -/* */ -/* Inputs : 1) Pointer to WID cfg structure */ -/* 2) Value to set */ -/* */ -/* Globals : */ -/* */ -/* Processing : */ -/* */ -/* Outputs : None */ -/* */ -/* Returns : None */ -/* */ -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2008 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -void ProcessAdrWid(char *pcPacket, s32 *ps32PktLen, - tstrWID *pstrWID, u8 *pu8val) -{ - u16 u16MsgLen = 0; - s32 s32PktLen = *ps32PktLen; - - if (pstrWID == NULL) { - PRINT_WRN(CORECONFIG_DBG, "Can't set Addr WID, NULL structure\n"); - return; - } - - /* WID */ - pcPacket[s32PktLen++] = (u8)(pstrWID->u16WIDid & 0xFF); - pcPacket[s32PktLen++] = (u8)((pstrWID->u16WIDid >> 8) & 0xFF); - - if (g_oper_mode == SET_CFG) { - /* Message Length */ - u16MsgLen = MAC_ADDR_LEN; - - /* Length */ - pcPacket[s32PktLen++] = (u8)u16MsgLen; - - /* Value */ - extract_mac_addr(pu8val, pcPacket + s32PktLen); - s32PktLen += u16MsgLen; - } - *ps32PktLen = s32PktLen; -} - -/*****************************************************************************/ -/* */ -/* Function Name : ProcessBinWid */ -/* */ -/* Description : This function processes a WID of type WID_BIN_DATA and */ -/* updates the cfg packet with the supplied value. */ -/* */ -/* Inputs : 1) Pointer to WID cfg structure */ -/* 2) Name of file containing the binary data in text mode */ -/* */ -/* Globals : */ -/* */ -/* Processing : The binary data is expected to be supplied through a */ -/* file in text mode. This file is expected to be in the */ -/* finject format. It is parsed, converted to binary format */ -/* and copied into g_cfg_pkt for further processing. This */ -/* is obviously a round-about way of processing involving */ -/* multiple (re)conversions between bin & ascii formats. */ -/* But it is done nevertheless to retain uniformity and for */ -/* ease of debugging. */ -/* */ -/* Outputs : None */ -/* */ -/* Returns : None */ -/* */ - -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2008 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -void ProcessBinWid(char *pcPacket, s32 *ps32PktLen, - tstrWID *pstrWID, u8 *pu8val, s32 s32ValueSize) -{ - u16 u16MsgLen = 0; - u16 idx = 0; - s32 s32PktLen = *ps32PktLen; - u8 u8checksum = 0; - - if (pstrWID == NULL) { - PRINT_WRN(CORECONFIG_DBG, "Can't set BIN val, NULL structure\n"); - return; - } - - /* WID */ - pcPacket[s32PktLen++] = (u8)(pstrWID->u16WIDid & 0xFF); - pcPacket[s32PktLen++] = (u8)((pstrWID->u16WIDid >> 8) & 0xFF); - - if (g_oper_mode == SET_CFG) { - /* Message Length */ - u16MsgLen = (u16)s32ValueSize; - - /* Length */ - /* pcPacket[s32PktLen++] = (u8)u16MsgLen; */ - pcPacket[s32PktLen++] = (u8)(u16MsgLen & 0xFF); - pcPacket[s32PktLen++] = (u8)((u16MsgLen >> 8) & 0xFF); - - /* Value */ - for (idx = 0; idx < u16MsgLen; idx++) - pcPacket[s32PktLen++] = pu8val[idx]; - - /* checksum */ - for (idx = 0; idx < u16MsgLen; idx++) - u8checksum += pcPacket[MSG_HEADER_LEN + idx + 4]; - - pcPacket[s32PktLen++] = u8checksum; - } - *ps32PktLen = s32PktLen; -} - - -/*****************************************************************************/ -/* */ -/* Function Name : further_process_response */ -/* */ -/* Description : This function parses the response frame got from the */ -/* device. */ -/* */ -/* Inputs : 1) The received response frame */ -/* 2) WID */ -/* 3) WID Length */ -/* 4) Output file handle */ -/* 5) Process Wid Number(i.e wid from --widn switch) */ -/* 6) Index the array in the Global Wid Structure. */ -/* */ -/* Globals : g_wid_num, gastrWIDs */ -/* */ -/* Processing : This function parses the response of the device depending*/ -/* WID type and writes it to the output file in Hex or */ -/* decimal notation depending on the --getx or --get switch.*/ -/* */ -/* Outputs : None */ -/* */ -/* Returns : 0 on Success & -2 on Failure */ -/* */ -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2009 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -s32 further_process_response(u8 *resp, - u16 u16WIDid, - u16 cfg_len, - bool process_wid_num, - u32 cnt, - tstrWID *pstrWIDresult) -{ - u32 retval = 0; - u32 idx = 0; - u8 cfg_chr = 0; - u16 cfg_sht = 0; - u32 cfg_int = 0; - u8 cfg_str[256] = {0}; - tenuWIDtype enuWIDtype = WID_UNDEF; - - if (process_wid_num) - enuWIDtype = get_wid_type(g_wid_num); - else - enuWIDtype = gastrWIDs[cnt].enuWIDtype; - - - switch (enuWIDtype) { - case WID_CHAR: - cfg_chr = resp[idx]; - /*Set local copy of WID*/ - *(pstrWIDresult->ps8WidVal) = cfg_chr; - break; - - case WID_SHORT: - { - u16 *pu16val = (u16 *)(pstrWIDresult->ps8WidVal); - - cfg_sht = MAKE_WORD16(resp[idx], resp[idx + 1]); - /*Set local copy of WID*/ - /* pstrWIDresult->ps8WidVal = (s8*)(s32)cfg_sht; */ - *pu16val = cfg_sht; - break; - } - - case WID_INT: - { - u32 *pu32val = (u32 *)(pstrWIDresult->ps8WidVal); - - cfg_int = MAKE_WORD32( - MAKE_WORD16(resp[idx], resp[idx + 1]), - MAKE_WORD16(resp[idx + 2], resp[idx + 3]) - ); - /*Set local copy of WID*/ - /* pstrWIDresult->ps8WidVal = (s8*)cfg_int; */ - *pu32val = cfg_int; - break; - } - - case WID_STR: - memcpy(cfg_str, resp + idx, cfg_len); - /* cfg_str[cfg_len] = '\0'; //mostafa: no need currently for NULL termination */ - if (pstrWIDresult->s32ValueSize >= cfg_len) { - memcpy(pstrWIDresult->ps8WidVal, cfg_str, cfg_len); /* mostafa: no need currently for the extra NULL byte */ - pstrWIDresult->s32ValueSize = cfg_len; - } else { - PRINT_ER("allocated WID buffer length is smaller than the received WID Length\n"); - retval = -2; - } - - break; - - case WID_ADR: - create_mac_addr(cfg_str, resp + idx); - - strncpy(pstrWIDresult->ps8WidVal, cfg_str, strlen(cfg_str)); - pstrWIDresult->ps8WidVal[strlen(cfg_str)] = '\0'; - break; - - case WID_IP: - cfg_int = MAKE_WORD32( - MAKE_WORD16(resp[idx], resp[idx + 1]), - MAKE_WORD16(resp[idx + 2], resp[idx + 3]) - ); - conv_int_to_ip(cfg_str, cfg_int); - break; - - case WID_BIN_DATA: - if (pstrWIDresult->s32ValueSize >= cfg_len) { - memcpy(pstrWIDresult->ps8WidVal, resp + idx, cfg_len); - pstrWIDresult->s32ValueSize = cfg_len; - } else { - PRINT_ER("Allocated WID buffer length is smaller than the received WID Length Err(%d)\n", retval); - retval = -2; - } - break; - - default: - PRINT_ER("ERROR: Check config database: Error(%d)\n", retval); - retval = -2; - break; - } - - return retval; -} - -/*****************************************************************************/ -/* */ -/* Function Name : ParseResponse */ -/* */ -/* Description : This function parses the command-line options and */ -/* creates the config packets which can be sent to the WLAN */ -/* station. */ -/* */ -/* Inputs : 1) The received response frame */ -/* */ -/* Globals : g_opt_list, gastrWIDs */ -/* */ -/* Processing : This function parses the options and creates different */ -/* types of packets depending upon the WID-type */ -/* corresponding to the option. */ -/* */ -/* Outputs : None */ -/* */ -/* Returns : 0 on Success & -1 on Failure */ -/* */ -/* Issues : None */ -/* */ -/* Revision History: */ -/* */ -/* DD MM YYYY Author(s) Changes (Describe the changes made) */ -/* 08 01 2008 Ittiam Draft */ -/* */ -/*****************************************************************************/ - -s32 ParseResponse(u8 *resp, tstrWID *pstrWIDcfgResult) -{ - u16 u16RespLen = 0; - u16 u16WIDid = 0; - u16 cfg_len = 0; - tenuWIDtype enuWIDtype = WID_UNDEF; - bool num_wid_processed = false; - u32 cnt = 0; - u32 idx = 0; - u32 ResCnt = 0; - /* Check whether the received frame is a valid response */ - if (RESP_MSG_TYPE != resp[0]) { - PRINT_INFO(CORECONFIG_DBG, "Received Message format incorrect.\n"); - return -1; - } - - /* Extract Response Length */ - u16RespLen = MAKE_WORD16(resp[2], resp[3]); - Res_Len = u16RespLen; - - for (idx = MSG_HEADER_LEN; idx < u16RespLen; ) { - u16WIDid = MAKE_WORD16(resp[idx], resp[idx + 1]); - cfg_len = resp[idx + 2]; - /* Incase of Bin Type Wid, the length is given by two byte field */ - enuWIDtype = get_wid_type(u16WIDid); - if (WID_BIN_DATA == enuWIDtype) { - cfg_len |= ((u16)resp[idx + 3] << 8) & 0xFF00; - idx++; - } - idx += 3; - if ((u16WIDid == g_wid_num) && (!num_wid_processed)) { - num_wid_processed = true; - - if (-2 == further_process_response(&resp[idx], u16WIDid, cfg_len, true, 0, &pstrWIDcfgResult[ResCnt])) { - return -2; - } - ResCnt++; - } else { - for (cnt = 0; cnt < g_num_total_switches; cnt++) { - if (gastrWIDs[cnt].u16WIDid == u16WIDid) { - if (-2 == further_process_response(&resp[idx], u16WIDid, cfg_len, false, cnt, - &pstrWIDcfgResult[ResCnt])) { - return -2; - } - ResCnt++; - } - } - } - idx += cfg_len; - /* In case if BIN type Wid, The last byte of the Cfg packet is the */ - /* Checksum. The WID Length field does not accounts for the checksum. */ - /* The Checksum is discarded. */ - if (WID_BIN_DATA == enuWIDtype) { - idx++; - } - } - - return 0; -} - -/** - * @brief parses the write response [just detects its status: success or failure] - * @details - * @param[in] pu8RespBuffer The Response to be parsed - * @return Error code indicating Write Operation status: - * WRITE_RESP_SUCCESS (1) => Write Success. - * WILC_FAIL (-100) => Write Failure. - * @note - * @author Ittiam - * @date 11 Aug 2009 - * @version 1.0 - */ - -s32 ParseWriteResponse(u8 *pu8RespBuffer) -{ - s32 s32Error = WILC_FAIL; - u16 u16WIDtype = (u16)WID_NIL; - - /* Check whether the received frame is a valid response */ - if (RESP_MSG_TYPE != pu8RespBuffer[0]) { - PRINT_ER("Received Message format incorrect.\n"); - return WILC_FAIL; - } - - u16WIDtype = MAKE_WORD16(pu8RespBuffer[4], pu8RespBuffer[5]); - - /* Check for WID_STATUS ID and then check the length and status value */ - if ((u16WIDtype == WID_STATUS) && - (pu8RespBuffer[6] == 1) && - (pu8RespBuffer[7] == WRITE_RESP_SUCCESS)) { - s32Error = WRITE_RESP_SUCCESS; - return s32Error; - } - - /* If the length or status are not as expected return failure */ - s32Error = WILC_FAIL; - return s32Error; - -} - -/** - * @brief creates the header of the Configuration Packet - * @details - * @param[in,out] pcpacket The Configuration Packet - * @param[in,out] ps32PacketLength Length of the Configuration Packet - * @return Error code indicating success/failure - * @note - * @author aismail - * @date 18 Feb 2012 - * @version 1.0 - */ - -s32 CreatePacketHeader(char *pcpacket, s32 *ps32PacketLength) -{ - s32 s32Error = WILC_SUCCESS; - u16 u16MsgLen = (u16)(*ps32PacketLength); - u16 u16MsgInd = 0; - - /* The format of the message is: */ - /* +-------------------------------------------------------------------+ */ - /* | Message Type | Message ID | Message Length |Message body | */ - /* +-------------------------------------------------------------------+ */ - /* | 1 Byte | 1 Byte | 2 Bytes | Message Length - 4 | */ - /* +-------------------------------------------------------------------+ */ - - /* The format of a message body of a message type 'W' is: */ - /* +-------------------------------------------------------------------+ */ - /* | WID0 | WID0 Length | WID0 Value | ......................... | */ - /* +-------------------------------------------------------------------+ */ - /* | 2 Bytes | 1 Byte | WID0 Length | ......................... | */ - /* +-------------------------------------------------------------------+ */ - - - - /* Message Type */ - if (g_oper_mode == SET_CFG) - pcpacket[u16MsgInd++] = WRITE_MSG_TYPE; - else - pcpacket[u16MsgInd++] = QUERY_MSG_TYPE; - - /* Sequence Number */ - pcpacket[u16MsgInd++] = g_seqno++; - - /* Message Length */ - pcpacket[u16MsgInd++] = (u8)(u16MsgLen & 0xFF); - pcpacket[u16MsgInd++] = (u8)((u16MsgLen >> 8) & 0xFF); - - *ps32PacketLength = u16MsgLen; - - return s32Error; -} - -/** - * @brief creates Configuration packet based on the Input WIDs - * @details - * @param[in] pstrWIDs WIDs to be sent in the configuration packet - * @param[in] u32WIDsCount number of WIDs to be sent in the configuration packet - * @param[out] ps8packet The created Configuration Packet - * @param[out] ps32PacketLength Length of the created Configuration Packet - * @return Error code indicating success/failure - * @note - * @author - * @date 1 Mar 2012 - * @version 1.0 - */ - -s32 CreateConfigPacket(s8 *ps8packet, s32 *ps32PacketLength, - tstrWID *pstrWIDs, u32 u32WIDsCount) -{ - s32 s32Error = WILC_SUCCESS; - u32 u32idx = 0; - *ps32PacketLength = MSG_HEADER_LEN; - for (u32idx = 0; u32idx < u32WIDsCount; u32idx++) { - switch (pstrWIDs[u32idx].enuWIDtype) { - case WID_CHAR: - ProcessCharWid(ps8packet, ps32PacketLength, &pstrWIDs[u32idx], - pstrWIDs[u32idx].ps8WidVal); - break; - - case WID_SHORT: - ProcessShortWid(ps8packet, ps32PacketLength, &pstrWIDs[u32idx], - pstrWIDs[u32idx].ps8WidVal); - break; - - case WID_INT: - ProcessIntWid(ps8packet, ps32PacketLength, &pstrWIDs[u32idx], - pstrWIDs[u32idx].ps8WidVal); - break; - - case WID_STR: - ProcessStrWid(ps8packet, ps32PacketLength, &pstrWIDs[u32idx], - pstrWIDs[u32idx].ps8WidVal, pstrWIDs[u32idx].s32ValueSize); - break; - - case WID_IP: - ProcessIPwid(ps8packet, ps32PacketLength, &pstrWIDs[u32idx], - pstrWIDs[u32idx].ps8WidVal); - break; - - case WID_BIN_DATA: - ProcessBinWid(ps8packet, ps32PacketLength, &pstrWIDs[u32idx], - pstrWIDs[u32idx].ps8WidVal, pstrWIDs[u32idx].s32ValueSize); - break; - - default: - PRINT_ER("ERROR: Check Config database\n"); - } - } - - CreatePacketHeader(ps8packet, ps32PacketLength); - - return s32Error; -} - -s32 ConfigWaitResponse(char *pcRespBuffer, s32 s32MaxRespBuffLen, s32 *ps32BytesRead, - bool bRespRequired) -{ - s32 s32Error = WILC_SUCCESS; - /*bug 3878*/ - /*removed to caller function*/ - /*gstrConfigPktInfo.pcRespBuffer = pcRespBuffer; - * gstrConfigPktInfo.s32MaxRespBuffLen = s32MaxRespBuffLen; - * gstrConfigPktInfo.bRespRequired = bRespRequired;*/ - - - if (gstrConfigPktInfo.bRespRequired) { - down(&SemHandlePktResp); - - *ps32BytesRead = gstrConfigPktInfo.s32BytesRead; - } - - memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo)); - - return s32Error; -} - -s32 ConfigProvideResponse(char *pcRespBuffer, s32 s32RespLen) -{ - s32 s32Error = WILC_SUCCESS; - - if (gstrConfigPktInfo.bRespRequired) { - if (s32RespLen <= gstrConfigPktInfo.s32MaxRespBuffLen) { - memcpy(gstrConfigPktInfo.pcRespBuffer, pcRespBuffer, s32RespLen); - gstrConfigPktInfo.s32BytesRead = s32RespLen; - } else { - memcpy(gstrConfigPktInfo.pcRespBuffer, pcRespBuffer, gstrConfigPktInfo.s32MaxRespBuffLen); - gstrConfigPktInfo.s32BytesRead = gstrConfigPktInfo.s32MaxRespBuffLen; - PRINT_ER("BusProvideResponse() Response greater than the prepared Buffer Size\n"); - } - - up(&SemHandlePktResp); - } - - return s32Error; -} - -/** - * @brief writes the received packet pu8RxPacket in the global Rx FIFO buffer - * @details - * @param[in] pu8RxPacket The received packet - * @param[in] s32RxPacketLen Length of the received packet - * @return Error code indicating success/failure - * @note - * - * @author mabubakr - * @date 1 Mar 2012 - * @version 1.0 - */ - -s32 ConfigPktReceived(u8 *pu8RxPacket, s32 s32RxPacketLen) -{ - s32 s32Error = WILC_SUCCESS; - u8 u8MsgType = 0; - - u8MsgType = pu8RxPacket[0]; - - switch (u8MsgType) { - case 'R': - ConfigProvideResponse(pu8RxPacket, s32RxPacketLen); - - break; - - case 'N': - PRINT_INFO(CORECONFIG_DBG, "NetworkInfo packet received\n"); - NetworkInfoReceived(pu8RxPacket, s32RxPacketLen); - break; - - case 'I': - GnrlAsyncInfoReceived(pu8RxPacket, s32RxPacketLen); - break; - - case 'S': - host_int_ScanCompleteReceived(pu8RxPacket, s32RxPacketLen); - break; - - default: - PRINT_ER("ConfigPktReceived(): invalid received msg type at the Core Configurator\n"); - break; - } - - return s32Error; -} - /** * @brief Deinitializes the Core Configurator * @details From 5b8ffb5565a241c4cfddb15b5a7b2f28ce64dbf7 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:02:39 +0530 Subject: [PATCH 0274/2431] Staging: iio: cdc: Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro This was done with coccinelle: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/cdc/ad7746.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index e6e9eaa9eab5..10fa372a4182 100644 --- a/drivers/staging/iio/cdc/ad7746.c +++ b/drivers/staging/iio/cdc/ad7746.c @@ -46,10 +46,10 @@ #define AD7746_REG_VOLT_GAINL 18 /* Status Register Bit Designations (AD7746_REG_STATUS) */ -#define AD7746_STATUS_EXCERR (1 << 3) -#define AD7746_STATUS_RDY (1 << 2) -#define AD7746_STATUS_RDYVT (1 << 1) -#define AD7746_STATUS_RDYCAP (1 << 0) +#define AD7746_STATUS_EXCERR BIT(3) +#define AD7746_STATUS_RDY BIT(2) +#define AD7746_STATUS_RDYVT BIT(1) +#define AD7746_STATUS_RDYCAP BIT(0) /* Capacitive Channel Setup Register Bit Designations (AD7746_REG_CAP_SETUP) */ #define AD7746_CAPSETUP_CAPEN (1 << 7) From b4d8aceb63985cd504a368b49b26b3681a40379f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:30 +0530 Subject: [PATCH 0275/2431] Staging: iio: meter: Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro This was done with coccinelle: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/meter/ade7753.c | 8 ++++---- drivers/staging/iio/meter/ade7754.c | 6 +++--- drivers/staging/iio/meter/ade7758_core.c | 6 +++--- drivers/staging/iio/meter/ade7759.c | 8 ++++---- drivers/staging/iio/meter/ade7854.c | 6 +++--- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c index ffc7f0ddff14..3d2e50cfe9a3 100644 --- a/drivers/staging/iio/meter/ade7753.c +++ b/drivers/staging/iio/meter/ade7753.c @@ -219,7 +219,7 @@ static int ade7753_reset(struct device *dev) u16 val; ade7753_spi_read_reg_16(dev, ADE7753_MODE, &val); - val |= 1 << 6; /* Software Chip Reset */ + val |= BIT(6); /* Software Chip Reset */ return ade7753_spi_write_reg_16(dev, ADE7753_MODE, val); } @@ -328,10 +328,10 @@ static int ade7753_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 3; /* Enables an interrupt when a data is + irqen |= BIT(3); /* Enables an interrupt when a data is present in the waveform register */ else - irqen &= ~(1 << 3); + irqen &= ~BIT(3); ret = ade7753_spi_write_reg_8(dev, ADE7753_IRQEN, irqen); @@ -345,7 +345,7 @@ static int ade7753_stop_device(struct device *dev) u16 val; ade7753_spi_read_reg_16(dev, ADE7753_MODE, &val); - val |= 1 << 4; /* AD converters can be turned off */ + val |= BIT(4); /* AD converters can be turned off */ return ade7753_spi_write_reg_16(dev, ADE7753_MODE, val); } diff --git a/drivers/staging/iio/meter/ade7754.c b/drivers/staging/iio/meter/ade7754.c index f12b2e50329b..8552c76cbbe7 100644 --- a/drivers/staging/iio/meter/ade7754.c +++ b/drivers/staging/iio/meter/ade7754.c @@ -223,7 +223,7 @@ static int ade7754_reset(struct device *dev) if (ret < 0) return ret; - val |= 1 << 6; /* Software Chip Reset */ + val |= BIT(6); /* Software Chip Reset */ return ade7754_spi_write_reg_8(dev, ADE7754_OPMODE, val); } @@ -350,10 +350,10 @@ static int ade7754_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 14; /* Enables an interrupt when a data is + irqen |= BIT(14); /* Enables an interrupt when a data is present in the waveform register */ else - irqen &= ~(1 << 14); + irqen &= ~BIT(14); ret = ade7754_spi_write_reg_16(dev, ADE7754_IRQEN, irqen); if (ret) diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c index 77141ae1349d..38838085824f 100644 --- a/drivers/staging/iio/meter/ade7758_core.c +++ b/drivers/staging/iio/meter/ade7758_core.c @@ -308,7 +308,7 @@ static int ade7758_reset(struct device *dev) dev_err(dev, "Failed to read opmode reg\n"); return ret; } - val |= 1 << 6; /* Software Chip Reset */ + val |= BIT(6); /* Software Chip Reset */ ret = ade7758_spi_write_reg_8(dev, ADE7758_OPMODE, val); if (ret < 0) dev_err(dev, "Failed to write opmode reg\n"); @@ -426,10 +426,10 @@ int ade7758_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 16; /* Enables an interrupt when a data is + irqen |= BIT(16); /* Enables an interrupt when a data is present in the waveform register */ else - irqen &= ~(1 << 16); + irqen &= ~BIT(16); ret = ade7758_spi_write_reg_24(dev, ADE7758_MASK, irqen); if (ret) diff --git a/drivers/staging/iio/meter/ade7759.c b/drivers/staging/iio/meter/ade7759.c index dbceda1e67ea..23e739207027 100644 --- a/drivers/staging/iio/meter/ade7759.c +++ b/drivers/staging/iio/meter/ade7759.c @@ -224,7 +224,7 @@ static int ade7759_reset(struct device *dev) if (ret < 0) return ret; - val |= 1 << 6; /* Software Chip Reset */ + val |= BIT(6); /* Software Chip Reset */ return ade7759_spi_write_reg_16(dev, ADE7759_MODE, val); @@ -288,10 +288,10 @@ static int ade7759_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 3; /* Enables an interrupt when a data is + irqen |= BIT(3); /* Enables an interrupt when a data is present in the waveform register */ else - irqen &= ~(1 << 3); + irqen &= ~BIT(3); ret = ade7759_spi_write_reg_8(dev, ADE7759_IRQEN, irqen); @@ -314,7 +314,7 @@ static int ade7759_stop_device(struct device *dev) return ret; } - val |= 1 << 4; /* AD converters can be turned off */ + val |= BIT(4); /* AD converters can be turned off */ return ade7759_spi_write_reg_16(dev, ADE7759_MODE, val); } diff --git a/drivers/staging/iio/meter/ade7854.c b/drivers/staging/iio/meter/ade7854.c index d620bbd603a3..a83883596dbc 100644 --- a/drivers/staging/iio/meter/ade7854.c +++ b/drivers/staging/iio/meter/ade7854.c @@ -181,7 +181,7 @@ static int ade7854_reset(struct device *dev) u16 val; st->read_reg_16(dev, ADE7854_CONFIG, &val); - val |= 1 << 7; /* Software Chip Reset */ + val |= BIT(7); /* Software Chip Reset */ return st->write_reg_16(dev, ADE7854_CONFIG, val); } @@ -420,10 +420,10 @@ static int ade7854_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 17; /* 1: interrupt enabled when all periodical + irqen |= BIT(17); /* 1: interrupt enabled when all periodical (at 8 kHz rate) DSP computations finish. */ else - irqen &= ~(1 << 17); + irqen &= ~BIT(17); ret = st->write_reg_32(dev, ADE7854_MASK0, irqen); if (ret) From d832fb26416f599a92e1b41d8380b208de32c7c1 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:29 +0530 Subject: [PATCH 0276/2431] Staging: iio: addac: Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro. This was done with coccinelle: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/addac/adt7316.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/iio/addac/adt7316.c b/drivers/staging/iio/addac/adt7316.c index 5b11b42c0254..a1dd74525c10 100644 --- a/drivers/staging/iio/addac/adt7316.c +++ b/drivers/staging/iio/addac/adt7316.c @@ -1756,43 +1756,43 @@ static irqreturn_t adt7316_event_handler(int irq, void *private) stat1 &= 0x1F; time = iio_get_time_ns(); - if (stat1 & (1 << 0)) + if (stat1 & BIT(0)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_TEMP, 0, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING), time); - if (stat1 & (1 << 1)) + if (stat1 & BIT(1)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_TEMP, 0, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING), time); - if (stat1 & (1 << 2)) + if (stat1 & BIT(2)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_TEMP, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING), time); - if (stat1 & (1 << 3)) + if (stat1 & BIT(3)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_TEMP, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING), time); - if (stat1 & (1 << 5)) + if (stat1 & BIT(5)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_EITHER), time); - if (stat1 & (1 << 6)) + if (stat1 & BIT(6)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE, 2, IIO_EV_TYPE_THRESH, IIO_EV_DIR_EITHER), time); - if (stat1 & (1 << 7)) + if (stat1 & BIT(7)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE, 3, IIO_EV_TYPE_THRESH, From 913336ae09a3aaf13b8ace21569ac7ad40ff50db Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Wed, 9 Sep 2015 15:57:07 -0700 Subject: [PATCH 0277/2431] staging/rtl8188eu : Remove unused macro definitions. WLAN_ETHHDR_LEN/WLAN_ETHADDR_LEN/WLAN_ADDR_LEN are unused, duplicate or unnecessary, remove. Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/include/wifi.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/rtl8188eu/include/wifi.h b/drivers/staging/rtl8188eu/include/wifi.h index dba8af1ec41e..6e5fa735e800 100644 --- a/drivers/staging/rtl8188eu/include/wifi.h +++ b/drivers/staging/rtl8188eu/include/wifi.h @@ -27,11 +27,7 @@ #endif #define BIT(x) (1 << (x)) - -#define WLAN_ETHHDR_LEN 14 -#define WLAN_ETHADDR_LEN 6 #define WLAN_IEEE_OUI_LEN 3 -#define WLAN_ADDR_LEN 6 #define WLAN_CRC_LEN 4 #define WLAN_BSSID_LEN 6 #define WLAN_BSS_TS_LEN 8 @@ -47,7 +43,6 @@ #define WLAN_MIN_ETHFRM_LEN 60 #define WLAN_MAX_ETHFRM_LEN 1514 -#define WLAN_ETHHDR_LEN 14 #define P80211CAPTURE_VERSION 0x80211001 From 27934f362a90039b8cd9e48721ace549fd2ae417 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Wed, 9 Sep 2015 15:57:08 -0700 Subject: [PATCH 0278/2431] staging/rtl8712 : Remove unused macro definitions. WLAN_ETHHDR_LEN/WLAN_ETHADDR_LEN/WLAN_ADDR_LEN are unused, duplicate or unnecessary, remove. Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/wifi.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/rtl8712/wifi.h b/drivers/staging/rtl8712/wifi.h index 17f513122f48..67c6ebfaa1bb 100644 --- a/drivers/staging/rtl8712/wifi.h +++ b/drivers/staging/rtl8712/wifi.h @@ -33,10 +33,7 @@ #endif #define BIT(x) (1 << (x)) -#define WLAN_ETHHDR_LEN 14 -#define WLAN_ETHADDR_LEN 6 #define WLAN_IEEE_OUI_LEN 3 -#define WLAN_ADDR_LEN 6 #define WLAN_CRC_LEN 4 #define WLAN_BSSID_LEN 6 #define WLAN_BSS_TS_LEN 8 @@ -52,7 +49,6 @@ #define WLAN_MIN_ETHFRM_LEN 60 #define WLAN_MAX_ETHFRM_LEN 1514 -#define WLAN_ETHHDR_LEN 14 #define P80211CAPTURE_VERSION 0x80211001 From 4c021dc0b8722365e9aee06d7a2213b5d93075c7 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Wed, 9 Sep 2015 15:57:10 -0700 Subject: [PATCH 0279/2431] staging/rtl8712 : Remove duplicated BIT() definitions The BIT() macro is already defined in bitops.h, remove duplicate definitions. Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/osdep_service.h | 4 ---- drivers/staging/rtl8712/wifi.h | 5 ----- 2 files changed, 9 deletions(-) diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h index 0a7f58c59df5..076d5083c723 100644 --- a/drivers/staging/rtl8712/osdep_service.h +++ b/drivers/staging/rtl8712/osdep_service.h @@ -60,10 +60,6 @@ struct __queue { #define LIST_CONTAINOR(ptr, type, member) \ ((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member))) -#ifndef BIT - #define BIT(x) (1 << (x)) -#endif - static inline u32 _down_sema(struct semaphore *sema) { if (down_interruptible(sema)) diff --git a/drivers/staging/rtl8712/wifi.h b/drivers/staging/rtl8712/wifi.h index 67c6ebfaa1bb..7a352c45344f 100644 --- a/drivers/staging/rtl8712/wifi.h +++ b/drivers/staging/rtl8712/wifi.h @@ -28,11 +28,6 @@ #include -#ifdef BIT -#undef BIT -#endif -#define BIT(x) (1 << (x)) - #define WLAN_IEEE_OUI_LEN 3 #define WLAN_CRC_LEN 4 #define WLAN_BSSID_LEN 6 From 4e6aa99b87c3cd9e2487b275a7c47b37bee33fb5 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:31 +0530 Subject: [PATCH 0280/2431] Staging: lustre: libcfs: Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro This was done with coccinelle: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/libcfs/hash.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/hash.c b/drivers/staging/lustre/lustre/libcfs/hash.c index 08f0b48c97e4..286641bb1b41 100644 --- a/drivers/staging/lustre/lustre/libcfs/hash.c +++ b/drivers/staging/lustre/lustre/libcfs/hash.c @@ -588,13 +588,13 @@ EXPORT_SYMBOL(cfs_hash_bd_move_locked); enum { /** always set, for sanity (avoid ZERO intent) */ - CFS_HS_LOOKUP_MASK_FIND = 1 << 0, + CFS_HS_LOOKUP_MASK_FIND = BIT(0), /** return entry with a ref */ - CFS_HS_LOOKUP_MASK_REF = 1 << 1, + CFS_HS_LOOKUP_MASK_REF = BIT(1), /** add entry if not existing */ - CFS_HS_LOOKUP_MASK_ADD = 1 << 2, + CFS_HS_LOOKUP_MASK_ADD = BIT(2), /** delete entry, ignore other masks */ - CFS_HS_LOOKUP_MASK_DEL = 1 << 3, + CFS_HS_LOOKUP_MASK_DEL = BIT(3), }; typedef enum cfs_hash_lookup_intent { From 6876a1435390a1bcc59cea6e23b9e03ae727819d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:02:40 +0530 Subject: [PATCH 0281/2431] Staging: lustre: ptlrpc: Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro This was done with coccinelle: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/layout.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/layout.c b/drivers/staging/lustre/lustre/ptlrpc/layout.c index d14c20008850..5d19cfcfe7e9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/layout.c +++ b/drivers/staging/lustre/lustre/ptlrpc/layout.c @@ -789,17 +789,17 @@ enum rmf_flags { /** * The field is a string, must be NUL-terminated. */ - RMF_F_STRING = 1 << 0, + RMF_F_STRING = BIT(0), /** * The field's buffer size need not match the declared \a rmf_size. */ - RMF_F_NO_SIZE_CHECK = 1 << 1, + RMF_F_NO_SIZE_CHECK = BIT(1), /** * The field's buffer size must be a whole multiple of the declared \a * rmf_size and the \a rmf_swabber function must work on the declared \a * rmf_size worth of bytes. */ - RMF_F_STRUCT_ARRAY = 1 << 2 + RMF_F_STRUCT_ARRAY = BIT(2) }; struct req_capsule; From 60aff4ffba3336cd97789b60f086d47b1932147b Mon Sep 17 00:00:00 2001 From: Sakshi Vaid Date: Thu, 10 Sep 2015 22:35:10 +0530 Subject: [PATCH 0282/2431] staging: lustre: lustre: obdclass: Fixed space checkpatch Removed the space between function name and open parenthesis '('. Signed-off-by: Sakshi Vaid Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/cl_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index 9d1a3befb4f9..05e29f815b87 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -1075,7 +1075,7 @@ static struct lu_kmem_descr cl_object_caches[] = { { .ckd_cache = &cl_env_kmem, .ckd_name = "cl_env_kmem", - .ckd_size = sizeof (struct cl_env) + .ckd_size = sizeof(struct cl_env) }, { .ckd_cache = NULL From 39be6b8b0cc84b33cd17bc570e80a25126f87c9c Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 10 Sep 2015 17:24:58 +0530 Subject: [PATCH 0283/2431] staging: dgap: fix possible NULL dereference The return pointer from dgap_getword() is used in strcmp() where it is dereferenced. But dgap_getword() can return NULL. Lets put a check there and return 0 as error. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 9112dd2bf4d7..20ba258ffbdb 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -349,6 +349,8 @@ static int dgap_gettok(char **in) if (strstr(dgap_cword, "board")) { w = dgap_getword(in); + if (!w) + return 0; snprintf(dgap_cword, MAXCWORD, "%s", w); for (t = dgap_brdtype; t->token != 0; t++) { if (!strcmp(w, t->string)) From 045ec4123152e48b1047bb0e3ed316d924677e86 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 10 Sep 2015 17:24:59 +0530 Subject: [PATCH 0284/2431] staging: dgap: remove unused variable These variables were assigned some values but they were never used. Removed them but kept one call to ioread8() as it might affect the hardware. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 20ba258ffbdb..ee37938ea886 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -1866,7 +1866,6 @@ static int dgap_event(struct board_t *bd) int port; int reason; int modem; - int b1; if (!bd || bd->magic != DGAP_BOARD_MAGIC) return -EIO; @@ -1911,7 +1910,7 @@ static int dgap_event(struct board_t *bd) port = ioread8(event); reason = ioread8(event + 1); modem = ioread8(event + 2); - b1 = ioread8(event + 3); + ioread8(event + 3); /* * Make sure the interrupt is valid. @@ -4570,7 +4569,6 @@ static int dgap_tty_open(struct tty_struct *tty, struct file *file) */ static void dgap_tty_close(struct tty_struct *tty, struct file *file) { - struct ktermios *ts; struct board_t *bd; struct channel_t *ch; struct un_t *un; @@ -4591,8 +4589,6 @@ static void dgap_tty_close(struct tty_struct *tty, struct file *file) if (!bd || bd->magic != DGAP_BOARD_MAGIC) return; - ts = &tty->termios; - spin_lock_irqsave(&ch->ch_lock, lock_flags); /* From 7e25075e3e34cedf660c63e30bfcc7e385d40766 Mon Sep 17 00:00:00 2001 From: Junesung Lee Date: Sat, 12 Sep 2015 09:58:47 +0900 Subject: [PATCH 0285/2431] staging: android: fix typo 'syncrhronization' is wrong spell. 'synchronization' is correct. Signed-off-by: Junesung Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/android/Kconfig b/drivers/staging/android/Kconfig index 68307121c9c1..42b15126aa06 100644 --- a/drivers/staging/android/Kconfig +++ b/drivers/staging/android/Kconfig @@ -54,7 +54,7 @@ config SW_SYNC depends on SYNC ---help--- A sync object driver that uses a 32bit counter to coordinate - syncrhronization. Useful when there is no hardware primitive backing + synchronization. Useful when there is no hardware primitive backing the synchronization. config SW_SYNC_USER From b9f7f1d0846f15585b8af64435b6b706b25a5c0b Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Sat, 12 Sep 2015 00:22:15 +0600 Subject: [PATCH 0286/2431] staging/dgap: Use strpbrk() instead of dgap_sindex() The provides strpbrk() function that does the same that the dgap_sindex(). Let's use already defined function instead of writing custom. Signed-off-by: Alexander Kuleshov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index ee37938ea886..303d97023ccb 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -287,28 +287,6 @@ static struct toklist dgap_tlist[] = { { 0, NULL } }; - -/* - * dgap_sindex: much like index(), but it looks for a match of any character in - * the group, and returns that position. - */ -static char *dgap_sindex(char *string, char *group) -{ - char *ptr; - - if (!string || !group) - return NULL; - - for (; *string; string++) { - for (ptr = group; *ptr; ptr++) { - if (*ptr == *string) - return string; - } - } - - return NULL; -} - /* * get a word from the input stream, also keep track of current line number. * words are separated by whitespace. @@ -317,7 +295,7 @@ static char *dgap_getword(char **in) { char *ret_ptr = *in; - char *ptr = dgap_sindex(*in, " \t\n"); + char *ptr = strpbrk(*in, " \t\n"); /* If no word found, return null */ if (!ptr) From aecdac15d9b545099be42122aea3b98cac2c52e3 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 09:02:57 +0530 Subject: [PATCH 0287/2431] Staging: rtl8192u: ieee80211: Replace "#include " with "#include " Fix checkpatch.pl warning "Use #include instead of " Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c index fff8d583c62f..1ab0aead298b 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c @@ -48,7 +48,7 @@ #include #include #include -#include +#include #include #include "ieee80211.h" From 2245e1492e2bbeae61552b899e823a5b3af10141 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 09:02:59 +0530 Subject: [PATCH 0288/2431] Staging: rtl8192u: ieee80211: ieee80211_module.c: Replace "#include " with "#include " Fix checkpatch.pl warning "Use #include instead of " Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c index 31233d895ee9..425b2ddfc916 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c @@ -48,7 +48,7 @@ #include #include #include -#include +#include #include #include "ieee80211.h" From 03c7da4fe1c6903f6d05ce99b8f31a5ec0eb86aa Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 09:02:58 +0530 Subject: [PATCH 0289/2431] Staging: rtl8192u: ieee80211: ieee80211_softmac.c: Replace "#include " with "#include " Fix checkpatch.pl warning "Use #include instead of " Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index 39e9892c3fa6..e4624e886007 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include "dot11d.h" From 4fee29ba6f5c7df4bc61a8afa1a0d59b41980289 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 9 Sep 2015 23:16:13 -0800 Subject: [PATCH 0290/2431] Staging: rtl8192u: Space not allowed after & This is a change to ieee80211_softmac_wx.c to remove spaces after unary & operators. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 3445fd4a94cb..81d1c2a6627e 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -32,7 +32,7 @@ int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info union iwreq_data *wrqu, char *b) { int ret; - struct iw_freq *fwrq = & wrqu->freq; + struct iw_freq *fwrq = &wrqu->freq; down(&ieee->wx_sem); @@ -89,7 +89,7 @@ int ieee80211_wx_get_freq(struct ieee80211_device *ieee, struct iw_request_info *a, union iwreq_data *wrqu, char *b) { - struct iw_freq *fwrq = & wrqu->freq; + struct iw_freq *fwrq = &wrqu->freq; if (ieee->current_network.channel == 0) return -1; From c5ad7c0ece9f06558d56a823a4213d1d5d80e5fc Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 9 Sep 2015 23:16:21 -0800 Subject: [PATCH 0291/2431] Staging: rtl8192u: space required before open braces This is a change to add spaces before open braces to ieee80211_softmac_wx.c. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- .../rtl8192u/ieee80211/ieee80211_softmac_wx.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 81d1c2a6627e..e15a2d9cabeb 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -57,7 +57,7 @@ int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info } } - if (fwrq->e > 0 || fwrq->m > 14 || fwrq->m < 1 ){ + if (fwrq->e > 0 || fwrq->m > 14 || fwrq->m < 1 ) { ret = -EOPNOTSUPP; goto out; @@ -71,7 +71,7 @@ int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info ieee->set_chan(ieee->dev, ieee->current_network.channel); if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) - if(ieee->state == IEEE80211_LINKED){ + if(ieee->state == IEEE80211_LINKED) { ieee80211_stop_send_beacons(ieee); ieee80211_start_send_beacons(ieee); @@ -191,14 +191,14 @@ EXPORT_SYMBOL(ieee80211_wx_set_wap); spin_lock_irqsave(&ieee->lock, flags); if (ieee->current_network.ssid[0] == '\0' || - ieee->current_network.ssid_len == 0){ + ieee->current_network.ssid_len == 0) { ret = -1; goto out; } if (ieee->state != IEEE80211_LINKED && ieee->state != IEEE80211_LINKED_SCANNING && - ieee->ssid_set == 0){ + ieee->ssid_set == 0) { ret = -1; goto out; } @@ -280,16 +280,16 @@ int ieee80211_wx_set_mode(struct ieee80211_device *ieee, struct iw_request_info if (wrqu->mode == ieee->iw_mode) goto out; - if (wrqu->mode == IW_MODE_MONITOR){ + if (wrqu->mode == IW_MODE_MONITOR) { ieee->dev->type = ARPHRD_IEEE80211; - }else{ + }else { ieee->dev->type = ARPHRD_ETHER; } - if (!ieee->proto_started){ + if (!ieee->proto_started) { ieee->iw_mode = wrqu->mode; - }else{ + }else { ieee80211_stop_protocol(ieee); ieee->iw_mode = wrqu->mode; ieee80211_start_protocol(ieee); @@ -424,7 +424,7 @@ int ieee80211_wx_set_essid(struct ieee80211_device *ieee, ieee->current_network.ssid_len = len+1; ieee->ssid_set = 1; } - else{ + else { ieee->ssid_set = 0; ieee->current_network.ssid[0] = '\0'; ieee->current_network.ssid_len = 0; From a02c67382d0c0874ddd5cdb87ea8dc5428119ca1 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 9 Sep 2015 23:16:28 -0800 Subject: [PATCH 0292/2431] Staging: rtl8192u: space required after close braces This is a style change to insert spaces before closed braces in ieee80211_softmac_wx.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index e15a2d9cabeb..52818bdabf98 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -61,7 +61,7 @@ int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info ret = -EOPNOTSUPP; goto out; - }else { /* Set the channel */ + } else { /* Set the channel */ if (!(GET_DOT11D_INFO(ieee)->channel_map)[fwrq->m]) { ret = -EINVAL; @@ -283,13 +283,13 @@ int ieee80211_wx_set_mode(struct ieee80211_device *ieee, struct iw_request_info if (wrqu->mode == IW_MODE_MONITOR) { ieee->dev->type = ARPHRD_IEEE80211; - }else { + } else { ieee->dev->type = ARPHRD_ETHER; } if (!ieee->proto_started) { ieee->iw_mode = wrqu->mode; - }else { + } else { ieee80211_stop_protocol(ieee); ieee->iw_mode = wrqu->mode; ieee80211_start_protocol(ieee); From 077d4575c91928abc36a8963e1fe5f2c7118b328 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 9 Sep 2015 23:16:33 -0800 Subject: [PATCH 0293/2431] Staging: rtl8192u: space prohibited before close parenthesis This is a style change to remove whitespace before close parentheses in ieee80211_softmac_wx.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 52818bdabf98..5b6cf0b12d09 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -57,7 +57,7 @@ int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info } } - if (fwrq->e > 0 || fwrq->m > 14 || fwrq->m < 1 ) { + if (fwrq->e > 0 || fwrq->m > 14 || fwrq->m < 1) { ret = -EOPNOTSUPP; goto out; @@ -344,7 +344,7 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) ieee->state = IEEE80211_LINKED; ieee->link_change(ieee->dev); // To prevent the immediately calling watch_dog after scan. - if (ieee->LinkDetectInfo.NumRecvBcnInPeriod==0||ieee->LinkDetectInfo.NumRecvDataInPeriod==0 ) + if (ieee->LinkDetectInfo.NumRecvBcnInPeriod==0||ieee->LinkDetectInfo.NumRecvDataInPeriod==0) { ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1; ieee->LinkDetectInfo.NumRecvDataInPeriod= 1; From 412ef9933e403bb863ec6ac29e671dd832c4638b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:02:41 +0530 Subject: [PATCH 0294/2431] Staging: comedi: Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro This was done with coccinelle: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 30 ++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 0207b8edfcb4..8e9204150eb7 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -66,24 +66,24 @@ Configuration Options: #define MPC624_IRQ_MASK 6 /* IRQ masking enable/disable */ /* Register bits' names */ -#define MPC624_ADBUSY (1<<5) -#define MPC624_ADSDO (1<<4) -#define MPC624_ADFO (1<<3) -#define MPC624_ADCS (1<<2) -#define MPC624_ADSCK (1<<1) -#define MPC624_ADSDI (1<<0) +#define MPC624_ADBUSY BIT(5) +#define MPC624_ADSDO BIT(4) +#define MPC624_ADFO BIT(3) +#define MPC624_ADCS BIT(2) +#define MPC624_ADSCK BIT(1) +#define MPC624_ADSDI BIT(0) /* SDI Speed/Resolution Programming bits */ -#define MPC624_OSR4 (1<<31) -#define MPC624_OSR3 (1<<30) -#define MPC624_OSR2 (1<<29) -#define MPC624_OSR1 (1<<28) -#define MPC624_OSR0 (1<<27) +#define MPC624_OSR4 BIT(31) +#define MPC624_OSR3 BIT(30) +#define MPC624_OSR2 BIT(29) +#define MPC624_OSR1 BIT(28) +#define MPC624_OSR0 BIT(27) /* 32-bit output value bits' names */ -#define MPC624_EOC_BIT (1<<31) -#define MPC624_DMY_BIT (1<<30) -#define MPC624_SGN_BIT (1<<29) +#define MPC624_EOC_BIT BIT(31) +#define MPC624_DMY_BIT BIT(30) +#define MPC624_SGN_BIT BIT(29) /* Conversion speeds */ /* OSR4 OSR3 OSR2 OSR1 OSR0 Conversion rate RMS noise ENOB^ @@ -189,7 +189,7 @@ static int mpc624_ai_rinsn(struct comedi_device *dev, outb(0, dev->iobase + MPC624_ADC); udelay(1); - if (data_out & (1 << 31)) { /* the next bit is a 1 */ + if (data_out & BIT(31)) { /* the next bit is a 1 */ /* Set the ADSDI line (send to MPC624) */ outb(MPC624_ADSDI, dev->iobase + MPC624_ADC); udelay(1); From ff52fc380db676398fe92e2a3c802ecb41bc535e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:32:29 +0530 Subject: [PATCH 0295/2431] Staging: speakup: varhandlers.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/varhandlers.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/speakup/varhandlers.c b/drivers/staging/speakup/varhandlers.c index 75bf40c14c79..b2afec63a6dd 100644 --- a/drivers/staging/speakup/varhandlers.c +++ b/drivers/staging/speakup/varhandlers.c @@ -90,7 +90,7 @@ void speakup_register_var(struct var_t *var) struct st_var_header *p_header; BUG_ON(!var || var->var_id < 0 || var->var_id >= MAXVARS); - if (var_ptrs[0] == NULL) { + if (!var_ptrs[0]) { for (i = 0; i < MAXVARS; i++) { p_header = &var_headers[i]; var_ptrs[p_header->var_id] = p_header; @@ -130,7 +130,7 @@ struct st_var_header *spk_get_var_header(enum var_id_t var_id) if (var_id < 0 || var_id >= MAXVARS) return NULL; p_header = var_ptrs[var_id]; - if (p_header->data == NULL) + if (!p_header->data) return NULL; return p_header; } @@ -163,7 +163,7 @@ struct punc_var_t *spk_get_punc_var(enum var_id_t var_id) struct punc_var_t *where; where = punc_vars; - while ((where->var_id != -1) && (rv == NULL)) { + while ((where->var_id != -1) && (!rv)) { if (where->var_id == var_id) rv = where; else @@ -183,7 +183,7 @@ int spk_set_num_var(int input, struct st_var_header *var, int how) char *cp; struct var_t *var_data = var->data; - if (var_data == NULL) + if (!var_data) return -ENODATA; if (how == E_NEW_DEFAULT) { @@ -221,9 +221,9 @@ int spk_set_num_var(int input, struct st_var_header *var, int how) if (var_data->u.n.multiplier != 0) val *= var_data->u.n.multiplier; val += var_data->u.n.offset; - if (var->var_id < FIRST_SYNTH_VAR || synth == NULL) + if (var->var_id < FIRST_SYNTH_VAR || !synth) return ret; - if (synth->synth_adjust != NULL) { + if (synth->synth_adjust) { int status = synth->synth_adjust(var); return (status != 0) ? status : ret; @@ -247,7 +247,7 @@ int spk_set_string_var(const char *page, struct st_var_header *var, int len) { struct var_t *var_data = var->data; - if (var_data == NULL) + if (!var_data) return -ENODATA; if (len > MAXVARLEN) return -E2BIG; @@ -288,7 +288,7 @@ int spk_set_mask_bits(const char *input, const int which, const int how) if (*cp < SPACE) break; if (mask < PUNC) { - if (!(spk_chartab[*cp]&PUNC)) + if (!(spk_chartab[*cp] & PUNC)) break; } else if (spk_chartab[*cp]&B_NUM) break; @@ -313,7 +313,7 @@ char *spk_strlwr(char *s) { char *p; - if (s == NULL) + if (!s) return NULL; for (p = s; *p; p++) From 562c47982df0e46499042dfcc06b4dfa8324f63d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:32:26 +0530 Subject: [PATCH 0296/2431] Staging: speakup: devsynth.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/devsynth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/speakup/devsynth.c b/drivers/staging/speakup/devsynth.c index 71c728acf4ca..d1ffdf4c0c4b 100644 --- a/drivers/staging/speakup/devsynth.c +++ b/drivers/staging/speakup/devsynth.c @@ -22,7 +22,7 @@ static ssize_t speakup_file_write(struct file *fp, const char __user *buffer, unsigned long flags; u_char buf[256]; - if (synth == NULL) + if (!synth) return -ENODEV; while (count > 0) { bytes = min(count, sizeof(buf)); @@ -45,7 +45,7 @@ static ssize_t speakup_file_read(struct file *fp, char __user *buf, static int speakup_file_open(struct inode *ip, struct file *fp) { - if (synth == NULL) + if (!synth) return -ENODEV; if (xchg(&dev_opened, 1)) return -EBUSY; From 114885e08c0e7d55775373f5cea8fa3c0b1ef1e8 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:32:27 +0530 Subject: [PATCH 0297/2431] Staging: speakup: serialio.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/serialio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/speakup/serialio.c b/drivers/staging/speakup/serialio.c index 66ac999a0323..3b5835b28128 100644 --- a/drivers/staging/speakup/serialio.c +++ b/drivers/staging/speakup/serialio.c @@ -101,7 +101,7 @@ static void start_serial_interrupt(int irq) { int rv; - if (synth->read_buff_add == NULL) + if (!synth->read_buff_add) return; rv = request_irq(irq, synth_readbuf_handler, IRQF_SHARED, @@ -127,7 +127,7 @@ void spk_stop_serial_interrupt(void) if (speakup_info.port_tts == 0) return; - if (synth->read_buff_add == NULL) + if (!synth->read_buff_add) return; /* Turn off interrupts */ From a90624cf253cc74e9464b42d54aa4825575edefe Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:32:28 +0530 Subject: [PATCH 0298/2431] Staging: speakup: kobjects.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/kobjects.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/speakup/kobjects.c b/drivers/staging/speakup/kobjects.c index 958add4839bc..fdfeb42b2b8f 100644 --- a/drivers/staging/speakup/kobjects.c +++ b/drivers/staging/speakup/kobjects.c @@ -368,7 +368,7 @@ static ssize_t synth_show(struct kobject *kobj, struct kobj_attribute *attr, { int rv; - if (synth == NULL) + if (!synth) rv = sprintf(buf, "%s\n", "none"); else rv = sprintf(buf, "%s\n", synth->name); @@ -459,14 +459,14 @@ static ssize_t punc_show(struct kobject *kobj, struct kobj_attribute *attr, unsigned long flags; p_header = spk_var_header_by_name(attr->attr.name); - if (p_header == NULL) { + if (!p_header) { pr_warn("p_header is null, attr->attr.name is %s\n", attr->attr.name); return -EINVAL; } var = spk_get_punc_var(p_header->var_id); - if (var == NULL) { + if (!var) { pr_warn("var is null, p_header->var_id is %i\n", p_header->var_id); return -EINVAL; @@ -501,14 +501,14 @@ static ssize_t punc_store(struct kobject *kobj, struct kobj_attribute *attr, return -EINVAL; p_header = spk_var_header_by_name(attr->attr.name); - if (p_header == NULL) { + if (!p_header) { pr_warn("p_header is null, attr->attr.name is %s\n", attr->attr.name); return -EINVAL; } var = spk_get_punc_var(p_header->var_id); - if (var == NULL) { + if (!var) { pr_warn("var is null, p_header->var_id is %i\n", p_header->var_id); return -EINVAL; @@ -546,7 +546,7 @@ ssize_t spk_var_show(struct kobject *kobj, struct kobj_attribute *attr, unsigned long flags; param = spk_var_header_by_name(attr->attr.name); - if (param == NULL) + if (!param) return -EINVAL; spin_lock_irqsave(&speakup_info.spinlock, flags); @@ -622,9 +622,9 @@ ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr, unsigned long flags; param = spk_var_header_by_name(attr->attr.name); - if (param == NULL) + if (!param) return -EINVAL; - if (param->data == NULL) + if (!param->data) return 0; ret = 0; cp = (char *)buf; From a544f0edb25fa43c2807c3e21c86bb1f33a2e457 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:52 +0530 Subject: [PATCH 0299/2431] Staging: rtl8188eu: core: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c index b340e4a9d540..497fb068fdc8 100644 --- a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c +++ b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c @@ -273,7 +273,7 @@ u32 rtw_free_stainfo(struct adapter *padapter, struct sta_info *psta) struct sta_priv *pstapriv = &padapter->stapriv; - if (psta == NULL) + if (!psta) goto exit; pfree_sta_queue = &pstapriv->free_sta_queue; @@ -433,7 +433,7 @@ struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - if (hwaddr == NULL) + if (!hwaddr) return NULL; if (IS_MCAST(hwaddr)) @@ -473,7 +473,7 @@ u32 rtw_init_bcmc_stainfo(struct adapter *padapter) psta = rtw_alloc_stainfo(pstapriv, bcast_addr); - if (psta == NULL) { + if (!psta) { res = _FAIL; RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_err_, ("rtw_alloc_stainfo fail")); goto exit; From e3789b0c54442fef9cdb5541b89b677b76c8673a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:53 +0530 Subject: [PATCH 0300/2431] Staging: rtl8188eu: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c index 0a62bfa210fe..d5281409168d 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c @@ -467,7 +467,7 @@ static void SetFwRsvdPagePkt(struct adapter *adapt, bool bDLFinished) DBG_88E("%s\n", __func__); ReservedPagePacket = kzalloc(1000, GFP_KERNEL); - if (ReservedPagePacket == NULL) { + if (!ReservedPagePacket) { DBG_88E("%s: alloc ReservedPagePacket fail!\n", __func__); return; } @@ -537,7 +537,7 @@ static void SetFwRsvdPagePkt(struct adapter *adapt, bool bDLFinished) TotalPacketLen = BufIndex + QosNullLength; pmgntframe = alloc_mgtxmitframe(pxmitpriv); - if (pmgntframe == NULL) + if (!pmgntframe) goto exit; /* update attribute */ From 0ecacb4e43720009a01439605c127ac88e529833 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:09:23 +0530 Subject: [PATCH 0301/2431] Staging: lustre: libcfs: libcfs_lock.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/libcfs/libcfs_lock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c b/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c index 2c199c7259fe..29308ba85393 100644 --- a/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c +++ b/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c @@ -63,12 +63,12 @@ cfs_percpt_lock_alloc(struct cfs_cpt_table *cptab) /* NB: cptab can be NULL, pcl will be for HW CPUs on that case */ LIBCFS_ALLOC(pcl, sizeof(*pcl)); - if (pcl == NULL) + if (!pcl) return NULL; pcl->pcl_cptab = cptab; pcl->pcl_locks = cfs_percpt_alloc(cptab, sizeof(*lock)); - if (pcl->pcl_locks == NULL) { + if (!pcl->pcl_locks) { LIBCFS_FREE(pcl, sizeof(*pcl)); return NULL; } @@ -164,7 +164,7 @@ cfs_percpt_atomic_alloc(struct cfs_cpt_table *cptab, int init_val) int i; refs = cfs_percpt_alloc(cptab, sizeof(*ref)); - if (refs == NULL) + if (!refs) return NULL; cfs_percpt_for_each(ref, i, refs) From fdf21a324c0519dc6b0b74a438dbd018f956c49d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:09:24 +0530 Subject: [PATCH 0302/2431] Staging: lustre: libcfs: libcfs_mem.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/libcfs/libcfs_mem.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_mem.c b/drivers/staging/lustre/lustre/libcfs/libcfs_mem.c index 1debdda72e72..f4e08daba4d9 100644 --- a/drivers/staging/lustre/lustre/libcfs/libcfs_mem.c +++ b/drivers/staging/lustre/lustre/libcfs/libcfs_mem.c @@ -84,7 +84,7 @@ cfs_percpt_alloc(struct cfs_cpt_table *cptab, unsigned int size) count = cfs_cpt_number(cptab); LIBCFS_ALLOC(arr, offsetof(struct cfs_var_array, va_ptrs[count])); - if (arr == NULL) + if (!arr) return NULL; arr->va_size = size = L1_CACHE_ALIGN(size); @@ -93,7 +93,7 @@ cfs_percpt_alloc(struct cfs_cpt_table *cptab, unsigned int size) for (i = 0; i < count; i++) { LIBCFS_CPT_ALLOC(arr->va_ptrs[i], cptab, i, size); - if (arr->va_ptrs[i] == NULL) { + if (!arr->va_ptrs[i]) { cfs_percpt_free((void *)&arr->va_ptrs[0]); return NULL; } @@ -160,7 +160,7 @@ cfs_array_free(void *vars) arr = container_of(vars, struct cfs_var_array, va_ptrs[0]); for (i = 0; i < arr->va_count; i++) { - if (arr->va_ptrs[i] == NULL) + if (!arr->va_ptrs[i]) continue; LIBCFS_FREE(arr->va_ptrs[i], arr->va_size); @@ -182,7 +182,7 @@ cfs_array_alloc(int count, unsigned int size) int i; LIBCFS_ALLOC(arr, offsetof(struct cfs_var_array, va_ptrs[count])); - if (arr == NULL) + if (!arr) return NULL; arr->va_count = count; @@ -191,7 +191,7 @@ cfs_array_alloc(int count, unsigned int size) for (i = 0; i < count; i++) { LIBCFS_ALLOC(arr->va_ptrs[i], size); - if (arr->va_ptrs[i] == NULL) { + if (!arr->va_ptrs[i]) { cfs_array_free((void *)&arr->va_ptrs[0]); return NULL; } From dd550e40e1d1f09964b6c2fb0e52ce3e7229404f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:09:25 +0530 Subject: [PATCH 0303/2431] Staging: lustre: obdclass: obd_config.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/obdclass/obd_config.c | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 7a5e87cec66e..32b40eab8d8e 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -61,7 +61,7 @@ int class_find_param(char *buf, char *key, char **valp) return 1; ptr = strstr(buf, key); - if (ptr == NULL) + if (!ptr) return 1; if (valp) @@ -92,11 +92,11 @@ struct cfg_interop_param *class_find_old_param(const char *param, char *value = NULL; int name_len = 0; - if (param == NULL || ptr == NULL) + if (!param || !ptr) return NULL; value = strchr(param, '='); - if (value == NULL) + if (!value) name_len = strlen(param); else name_len = value - param; @@ -144,7 +144,7 @@ int class_get_next_param(char **params, char *copy) while (1) { q1 = strpbrk(str, " '\""); - if (q1 == NULL) { + if (!q1) { len = strlen(str); memcpy(copy, str, len); copy[len] = '\0'; @@ -165,7 +165,7 @@ int class_get_next_param(char **params, char *copy) /* search for the matching closing quote */ str = q1 + 1; q2 = strchr(str, *q1); - if (q2 == NULL) { + if (!q2) { CERROR("Unbalanced quota in parameters: \"%s\"\n", *params); return -EINVAL; @@ -243,7 +243,7 @@ static int class_parse_value(char *buf, int opc, void *value, char **endh, /* nid separators or end of nids */ endp = strpbrk(buf, ",: /"); - if (endp == NULL) + if (!endp) endp = buf + strlen(buf); tmp = *endp; @@ -841,14 +841,14 @@ int class_add_profile(int proflen, char *prof, int osclen, char *osc, LASSERT(proflen == (strlen(prof) + 1)); lprof->lp_profile = kmemdup(prof, proflen, GFP_NOFS); - if (lprof->lp_profile == NULL) { + if (!lprof->lp_profile) { err = -ENOMEM; goto free_lprof; } LASSERT(osclen == (strlen(osc) + 1)); lprof->lp_dt = kmemdup(osc, osclen, GFP_NOFS); - if (lprof->lp_dt == NULL) { + if (!lprof->lp_dt) { err = -ENOMEM; goto free_lp_profile; } @@ -856,7 +856,7 @@ int class_add_profile(int proflen, char *prof, int osclen, char *osc, if (mdclen > 0) { LASSERT(mdclen == (strlen(mdc) + 1)); lprof->lp_md = kmemdup(mdc, mdclen, GFP_NOFS); - if (lprof->lp_md == NULL) { + if (!lprof->lp_md) { err = -ENOMEM; goto free_lp_dt; } @@ -963,15 +963,15 @@ struct lustre_cfg *lustre_cfg_rename(struct lustre_cfg *cfg, int name_len = 0; int new_len = 0; - if (cfg == NULL || new_name == NULL) + if (!cfg || !new_name) return ERR_PTR(-EINVAL); param = lustre_cfg_string(cfg, 1); - if (param == NULL) + if (!param) return ERR_PTR(-EINVAL); value = strchr(param, '='); - if (value == NULL) + if (!value) name_len = strlen(param); else name_len = value - param; @@ -1000,7 +1000,7 @@ struct lustre_cfg *lustre_cfg_rename(struct lustre_cfg *cfg, kfree(new_param); kfree(bufs); - if (new_cfg == NULL) + if (!new_cfg) return ERR_PTR(-ENOMEM); new_cfg->lcfg_num = cfg->lcfg_num; @@ -1178,7 +1178,7 @@ int class_process_config(struct lustre_cfg *lcfg) } /* Commands that require a device */ obd = class_name2obd(lustre_cfg_string(lcfg, 0)); - if (obd == NULL) { + if (!obd) { if (!LUSTRE_CFG_BUFLEN(lcfg, 0)) CERROR("this lcfg command requires a device name\n"); else @@ -1481,7 +1481,7 @@ int class_config_llog_handler(const struct lu_env *env, * moving them to index [1] and [2], and insert MGC's * obdname at index [0]. */ - if (clli && clli->cfg_instance == NULL && + if (clli && !clli->cfg_instance && lcfg->lcfg_command == LCFG_SPTLRPC_CONF) { lustre_cfg_bufs_set(&bufs, 2, bufs.lcfg_buf[1], bufs.lcfg_buflen[1]); From 11d5c7894bfb24955ebc3f7675f93f9377c6e7ae Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:09:26 +0530 Subject: [PATCH 0304/2431] Staging: lustre: obdclass: genops.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/obdclass/genops.c | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index efb433daa62e..64af0abd970d 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -178,9 +178,9 @@ int class_register_type(struct obd_ops *dt_ops, struct md_ops *md_ops, type->typ_md_ops = kzalloc(sizeof(*type->typ_md_ops), GFP_NOFS); type->typ_name = kzalloc(strlen(name) + 1, GFP_NOFS); - if (type->typ_dt_ops == NULL || - type->typ_md_ops == NULL || - type->typ_name == NULL) + if (!type->typ_dt_ops || + !type->typ_md_ops || + !type->typ_name) goto failed; *(type->typ_dt_ops) = *dt_ops; @@ -293,13 +293,13 @@ struct obd_device *class_newdev(const char *type_name, const char *name) } type = class_get_type(type_name); - if (type == NULL) { + if (!type) { CERROR("OBD: unknown type: %s\n", type_name); return ERR_PTR(-ENODEV); } newdev = obd_device_alloc(); - if (newdev == NULL) { + if (!newdev) { result = ERR_PTR(-ENOMEM); goto out_type; } @@ -339,7 +339,7 @@ struct obd_device *class_newdev(const char *type_name, const char *name) } write_unlock(&obd_dev_lock); - if (result == NULL && i >= class_devno_max()) { + if (!result && i >= class_devno_max()) { CERROR("all %u OBD devices used, increase MAX_OBD_DEVICES\n", class_devno_max()); result = ERR_PTR(-EOVERFLOW); @@ -463,7 +463,7 @@ struct obd_device *class_num2obd(int num) if (num < class_devno_max()) { obd = obd_devs[num]; - if (obd == NULL) + if (!obd) return NULL; LASSERTF(obd->obd_magic == OBD_DEVICE_MAGIC, @@ -509,7 +509,7 @@ void class_obd_list(void) for (i = 0; i < class_devno_max(); i++) { struct obd_device *obd = class_num2obd(i); - if (obd == NULL) + if (!obd) continue; if (obd->obd_stopping) status = "ST"; @@ -540,7 +540,7 @@ struct obd_device *class_find_client_obd(struct obd_uuid *tgt_uuid, for (i = 0; i < class_devno_max(); i++) { struct obd_device *obd = class_num2obd(i); - if (obd == NULL) + if (!obd) continue; if ((strncmp(obd->obd_type->typ_name, typ_name, strlen(typ_name)) == 0)) { @@ -567,7 +567,7 @@ struct obd_device *class_devices_in_group(struct obd_uuid *grp_uuid, int *next) { int i; - if (next == NULL) + if (!next) i = 0; else if (*next >= 0 && *next < class_devno_max()) i = *next; @@ -578,10 +578,10 @@ struct obd_device *class_devices_in_group(struct obd_uuid *grp_uuid, int *next) for (; i < class_devno_max(); i++) { struct obd_device *obd = class_num2obd(i); - if (obd == NULL) + if (!obd) continue; if (obd_uuid_equals(grp_uuid, &obd->obd_uuid)) { - if (next != NULL) + if (next) *next = i+1; read_unlock(&obd_dev_lock); return obd; @@ -609,7 +609,7 @@ int class_notify_sptlrpc_conf(const char *fsname, int namelen) for (i = 0; i < class_devno_max(); i++) { obd = class_num2obd(i); - if (obd == NULL || obd->obd_set_up == 0 || obd->obd_stopping) + if (!obd || obd->obd_set_up == 0 || obd->obd_stopping) continue; /* only notify mdc, osc, mdt, ost */ @@ -659,27 +659,27 @@ void obd_cleanup_caches(void) int obd_init_caches(void) { - LASSERT(obd_device_cachep == NULL); + LASSERT(!obd_device_cachep); obd_device_cachep = kmem_cache_create("ll_obd_dev_cache", sizeof(struct obd_device), 0, 0, NULL); if (!obd_device_cachep) goto out; - LASSERT(obdo_cachep == NULL); + LASSERT(!obdo_cachep); obdo_cachep = kmem_cache_create("ll_obdo_cache", sizeof(struct obdo), 0, 0, NULL); if (!obdo_cachep) goto out; - LASSERT(import_cachep == NULL); + LASSERT(!import_cachep); import_cachep = kmem_cache_create("ll_import_cache", sizeof(struct obd_import), 0, 0, NULL); if (!import_cachep) goto out; - LASSERT(capa_cachep == NULL); + LASSERT(!capa_cachep); capa_cachep = kmem_cache_create("capa_cache", sizeof(struct obd_capa), 0, 0, NULL); if (!capa_cachep) @@ -740,7 +740,7 @@ struct obd_import *class_exp2cliimp(struct obd_export *exp) { struct obd_device *obd = exp->exp_obd; - if (obd == NULL) + if (!obd) return NULL; return obd->u.cli.cl_import; } @@ -750,7 +750,7 @@ struct obd_import *class_conn2cliimp(struct lustre_handle *conn) { struct obd_device *obd = class_conn2obd(conn); - if (obd == NULL) + if (!obd) return NULL; return obd->u.cli.cl_import; } @@ -875,7 +875,7 @@ struct obd_export *class_new_export(struct obd_device *obd, } hash = cfs_hash_getref(obd->obd_uuid_hash); - if (hash == NULL) { + if (!hash) { rc = -ENODEV; goto exit_unlock; } @@ -959,7 +959,7 @@ static void class_import_destroy(struct obd_import *imp) kfree(imp_conn); } - LASSERT(imp->imp_sec == NULL); + LASSERT(!imp->imp_sec); class_decref(imp->imp_obd, "import", imp); OBD_FREE_RCU(imp, sizeof(*imp), &imp->imp_handle); } @@ -1194,7 +1194,7 @@ int class_disconnect(struct obd_export *export) { int already_disconnected; - if (export == NULL) { + if (!export) { CWARN("attempting to free NULL export %p\n", export); return -EINVAL; } @@ -1343,7 +1343,7 @@ void class_disconnect_stale_exports(struct obd_device *obd, evicted++; CDEBUG(D_HA, "%s: disconnect stale client %s@%s\n", obd->obd_name, exp->exp_client_uuid.uuid, - exp->exp_connection == NULL ? "" : + !exp->exp_connection ? "" : libcfs_nid2str(exp->exp_connection->c_peer.nid)); print_export_data(exp, "EVICTING", 0); } @@ -1426,7 +1426,7 @@ int obd_export_evict_by_nid(struct obd_device *obd, const char *nid) do { doomed_exp = cfs_hash_lookup(nid_hash, &nid_key); - if (doomed_exp == NULL) + if (!doomed_exp) break; LASSERTF(doomed_exp->exp_connection->c_peer.nid == nid_key, @@ -1479,7 +1479,7 @@ int obd_export_evict_by_uuid(struct obd_device *obd, const char *uuid) doomed_exp = cfs_hash_lookup(uuid_hash, &doomed_uuid); - if (doomed_exp == NULL) { + if (!doomed_exp) { CERROR("%s: can't disconnect %s: no exports found\n", obd->obd_name, uuid); } else { @@ -1670,8 +1670,8 @@ static void obd_zombie_export_add(struct obd_export *exp) */ static void obd_zombie_import_add(struct obd_import *imp) { - LASSERT(imp->imp_sec == NULL); - LASSERT(imp->imp_rq_pool == NULL); + LASSERT(!imp->imp_sec); + LASSERT(!imp->imp_rq_pool); spin_lock(&obd_zombie_impexp_lock); LASSERT(list_empty(&imp->imp_zombie_chain)); zombies_count++; From 5228fb63a1060c4bb361df7d986f9bb025324e6e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:54 +0530 Subject: [PATCH 0305/2431] Staging: rtl8188eu: hal: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c b/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c index 06d1e654483e..d6d009aafcf0 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c @@ -43,7 +43,7 @@ int rtl8188eu_init_recv_priv(struct adapter *padapter) precvpriv->pallocated_recv_buf = kcalloc(NR_RECVBUFF, sizeof(struct recv_buf), GFP_KERNEL); - if (precvpriv->pallocated_recv_buf == NULL) { + if (!precvpriv->pallocated_recv_buf) { res = _FAIL; RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("alloc recv_buf fail!\n")); From cfd23644a87d9b6b0917c72418c5966520fd4e5a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:55 +0530 Subject: [PATCH 0306/2431] Staging: rtl8188eu: hal: Hal8188ERateAdaptive.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8188eu/hal/Hal8188ERateAdaptive.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c b/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c index 2633a13b4e58..a108e8032327 100644 --- a/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c +++ b/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c @@ -127,7 +127,7 @@ static int odm_RateDown_8188E(struct odm_dm_struct *dm_odm, ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_TRACE, ("=====>odm_RateDown_8188E()\n")); - if (NULL == pRaInfo) { + if (!pRaInfo) { ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_LOUD, ("odm_RateDown_8188E(): pRaInfo is NULL\n")); return -1; @@ -193,7 +193,7 @@ static int odm_RateUp_8188E( ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_TRACE, ("=====>odm_RateUp_8188E()\n")); - if (NULL == pRaInfo) { + if (!pRaInfo) { ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_LOUD, ("odm_RateUp_8188E(): pRaInfo is NULL\n")); return -1; @@ -624,7 +624,7 @@ int ODM_RAInfo_Init_all(struct odm_dm_struct *dm_odm) u8 ODM_RA_GetShortGI_8188E(struct odm_dm_struct *dm_odm, u8 macid) { - if ((NULL == dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) + if ((!dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) return 0; ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_TRACE, ("macid =%d SGI =%d\n", macid, dm_odm->RAInfo[macid].RateSGI)); @@ -635,7 +635,7 @@ u8 ODM_RA_GetDecisionRate_8188E(struct odm_dm_struct *dm_odm, u8 macid) { u8 DecisionRate = 0; - if ((NULL == dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) + if ((!dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) return 0; DecisionRate = dm_odm->RAInfo[macid].DecisionRate; ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_TRACE, @@ -647,7 +647,7 @@ u8 ODM_RA_GetHwPwrStatus_8188E(struct odm_dm_struct *dm_odm, u8 macid) { u8 PTStage = 5; - if ((NULL == dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) + if ((!dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) return 0; PTStage = dm_odm->RAInfo[macid].PTStage; ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_TRACE, @@ -659,7 +659,7 @@ void ODM_RA_UpdateRateInfo_8188E(struct odm_dm_struct *dm_odm, u8 macid, u8 Rate { struct odm_ra_info *pRaInfo = NULL; - if ((NULL == dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) + if ((!dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) return; ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_LOUD, ("macid =%d RateID = 0x%x RateMask = 0x%x SGIEnable =%d\n", @@ -676,7 +676,7 @@ void ODM_RA_SetRSSI_8188E(struct odm_dm_struct *dm_odm, u8 macid, u8 Rssi) { struct odm_ra_info *pRaInfo = NULL; - if ((NULL == dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) + if ((!dm_odm) || (macid >= ASSOCIATE_ENTRY_NUM)) return; ODM_RT_TRACE(dm_odm, ODM_COMP_RATE_ADAPTIVE, ODM_DBG_TRACE, (" macid =%d Rssi =%d\n", macid, Rssi)); From b210e0dc6056953f54bb539630c5e0db2b0b9026 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:56 +0530 Subject: [PATCH 0307/2431] Staging: rtl8188eu: hal: rtl8188eu_xmit.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c index 594c1da9db23..44335605f2f6 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c @@ -649,7 +649,7 @@ static s32 pre_xmitframe(struct adapter *adapt, struct xmit_frame *pxmitframe) goto enqueue; pxmitbuf = rtw_alloc_xmitbuf(pxmitpriv); - if (pxmitbuf == NULL) + if (!pxmitbuf) goto enqueue; spin_unlock_bh(&pxmitpriv->lock); From fc749a9a3d1801c8dee892816eb19d285e06fd41 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:57 +0530 Subject: [PATCH 0308/2431] Staging: rtl8188eu: os_dep: recv_linux.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/os_dep/recv_linux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8188eu/os_dep/recv_linux.c b/drivers/staging/rtl8188eu/os_dep/recv_linux.c index 3ebb8b206e46..d4734baffc8a 100644 --- a/drivers/staging/rtl8188eu/os_dep/recv_linux.c +++ b/drivers/staging/rtl8188eu/os_dep/recv_linux.c @@ -94,7 +94,7 @@ int rtw_recv_indicatepkt(struct adapter *padapter, pfree_recv_queue = &(precvpriv->free_recv_queue); skb = precv_frame->pkt; - if (skb == NULL) { + if (!skb) { RT_TRACE(_module_recv_osdep_c_, _drv_err_, ("rtw_recv_indicatepkt():skb == NULL something wrong!!!!\n")); goto _recv_indicatepkt_drop; From a08cd2b7d0c98047a09b91fc7e18f4ed13dd7753 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:58 +0530 Subject: [PATCH 0309/2431] Staging: rtl8188eu: os_dep: mlme_linux.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/os_dep/mlme_linux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8188eu/os_dep/mlme_linux.c b/drivers/staging/rtl8188eu/os_dep/mlme_linux.c index 218adaa574b5..eb8ecb7fbd16 100644 --- a/drivers/staging/rtl8188eu/os_dep/mlme_linux.c +++ b/drivers/staging/rtl8188eu/os_dep/mlme_linux.c @@ -152,7 +152,7 @@ void rtw_indicate_sta_assoc_event(struct adapter *padapter, struct sta_info *pst union iwreq_data wrqu; struct sta_priv *pstapriv = &padapter->stapriv; - if (psta == NULL) + if (!psta) return; if (psta->aid > NUM_STA) @@ -176,7 +176,7 @@ void rtw_indicate_sta_disassoc_event(struct adapter *padapter, struct sta_info * union iwreq_data wrqu; struct sta_priv *pstapriv = &padapter->stapriv; - if (psta == NULL) + if (!psta) return; if (psta->aid > NUM_STA) From b92ae1fd84ac24100db20fccd5a34cde1a53a857 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:59 +0530 Subject: [PATCH 0310/2431] Staging: rtl8188eu: os_dep: osdep_service.c: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form. Replacement done with coccinelle: @replace_rule@ expression e; @@ -e == NULL + !e Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/os_dep/osdep_service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8188eu/os_dep/osdep_service.c b/drivers/staging/rtl8188eu/os_dep/osdep_service.c index acb4eb120b76..466cd76fc1c4 100644 --- a/drivers/staging/rtl8188eu/os_dep/osdep_service.c +++ b/drivers/staging/rtl8188eu/os_dep/osdep_service.c @@ -52,7 +52,7 @@ void *rtw_malloc2d(int h, int w, int size) int j; void **a = kzalloc(h*sizeof(void *) + h*w*size, GFP_KERNEL); - if (a == NULL) { + if (!a) { pr_info("%s: alloc memory fail!\n", __func__); return NULL; } From 962539a068a5a9b9ab2729f4f3ae88ef85fecf4f Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 11 Sep 2015 18:28:51 +0530 Subject: [PATCH 0311/2431] staging: fbtft: use dev_* Use dev_* family of macros where we have a reference of a device. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft_device.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 80ab918999a6..95985726d2b3 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -1215,9 +1215,9 @@ static int spi_device_found(struct device *dev, void *data) { struct spi_device *spi = container_of(dev, struct spi_device, dev); - pr_info(DRVNAME": %s %s %dkHz %d bits mode=0x%02X\n", - spi->modalias, dev_name(dev), spi->max_speed_hz / 1000, - spi->bits_per_word, spi->mode); + dev_info(dev, "%s %s %dkHz %d bits mode=0x%02X\n", spi->modalias, + dev_name(dev), spi->max_speed_hz / 1000, spi->bits_per_word, + spi->mode); return 0; } @@ -1234,9 +1234,8 @@ static int p_device_found(struct device *dev, void *data) *pdev = container_of(dev, struct platform_device, dev); if (strstr(pdev->name, "fb")) - pr_info(DRVNAME": %s id=%d pdata? %s\n", - pdev->name, pdev->id, - pdev->dev.platform_data ? "yes" : "no"); + dev_info(dev, "%s id=%d pdata? %s\n", pdev->name, pdev->id, + pdev->dev.platform_data ? "yes" : "no"); return 0; } @@ -1258,7 +1257,7 @@ static void fbtft_device_spi_delete(struct spi_master *master, unsigned cs) dev = bus_find_device_by_name(&spi_bus_type, NULL, str); if (dev) { if (verbose) - pr_info(DRVNAME": Deleting %s\n", str); + dev_info(dev, "Deleting %s\n", str); device_del(dev); } } @@ -1278,7 +1277,7 @@ static int fbtft_device_spi_device_register(struct spi_board_info *spi) spi_device = spi_new_device(master, spi); put_device(&master->dev); if (!spi_device) { - pr_err(DRVNAME ": spi_new_device() returned NULL\n"); + dev_err(&master->dev, "spi_new_device() returned NULL\n"); return -EPERM; } return 0; From 805deadbc298939a7ade70443feadeb80e7d9e6d Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 11 Sep 2015 18:28:52 +0530 Subject: [PATCH 0312/2431] staging: fbtft: start using pr_fmt Instead of defining DRVNAME and using it in all calls to pr_* family of macros lets start using pr_fmt. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft_device.c | 67 ++++++++++++---------------- 1 file changed, 29 insertions(+), 38 deletions(-) diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 95985726d2b3..4071bf8327ac 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -13,6 +13,7 @@ * GNU General Public License for more details. */ +#define pr_fmt(fmt) "fbtft_device: " fmt #include #include #include @@ -21,8 +22,6 @@ #include "fbtft.h" -#define DRVNAME "fbtft_device" - #define MAX_GPIOS 32 static struct spi_device *spi_device; @@ -1224,7 +1223,7 @@ static int spi_device_found(struct device *dev, void *data) static void pr_spi_devices(void) { - pr_info(DRVNAME": SPI devices registered:\n"); + pr_info("SPI devices registered:\n"); bus_for_each_dev(&spi_bus_type, NULL, NULL, spi_device_found); } @@ -1242,7 +1241,7 @@ static int p_device_found(struct device *dev, void *data) static void pr_p_devices(void) { - pr_info(DRVNAME": 'fb' Platform devices registered:\n"); + pr_info("'fb' Platform devices registered:\n"); bus_for_each_dev(&platform_bus_type, NULL, NULL, p_device_found); } @@ -1268,8 +1267,8 @@ static int fbtft_device_spi_device_register(struct spi_board_info *spi) master = spi_busnum_to_master(spi->bus_num); if (!master) { - pr_err(DRVNAME ": spi_busnum_to_master(%d) returned NULL\n", - spi->bus_num); + pr_err("spi_busnum_to_master(%d) returned NULL\n", + spi->bus_num); return -EINVAL; } /* make sure it's available */ @@ -1300,11 +1299,11 @@ static int __init fbtft_device_init(void) long val; int ret = 0; - pr_debug("\n\n"DRVNAME": init\n"); + pr_debug("init\n"); if (name == NULL) { #ifdef MODULE - pr_err(DRVNAME": missing module parameter: 'name'\n"); + pr_err("missing module parameter: 'name'\n"); return -EINVAL; #else return 0; @@ -1312,42 +1311,37 @@ static int __init fbtft_device_init(void) } if (init_num > FBTFT_MAX_INIT_SEQUENCE) { - pr_err(DRVNAME - ": init parameter: exceeded max array size: %d\n", - FBTFT_MAX_INIT_SEQUENCE); + pr_err("init parameter: exceeded max array size: %d\n", + FBTFT_MAX_INIT_SEQUENCE); return -EINVAL; } /* parse module parameter: gpios */ while ((p_gpio = strsep(&gpios, ","))) { if (strchr(p_gpio, ':') == NULL) { - pr_err(DRVNAME - ": error: missing ':' in gpios parameter: %s\n", - p_gpio); + pr_err("error: missing ':' in gpios parameter: %s\n", + p_gpio); return -EINVAL; } p_num = p_gpio; p_name = strsep(&p_num, ":"); if (p_name == NULL || p_num == NULL) { - pr_err(DRVNAME - ": something bad happened parsing gpios parameter: %s\n", - p_gpio); + pr_err("something bad happened parsing gpios parameter: %s\n", + p_gpio); return -EINVAL; } ret = kstrtol(p_num, 10, &val); if (ret) { - pr_err(DRVNAME - ": could not parse number in gpios parameter: %s:%s\n", - p_name, p_num); + pr_err("could not parse number in gpios parameter: %s:%s\n", + p_name, p_num); return -EINVAL; } strncpy(fbtft_device_param_gpios[i].name, p_name, FBTFT_GPIO_NAME_SIZE - 1); fbtft_device_param_gpios[i++].gpio = (int) val; if (i == MAX_GPIOS) { - pr_err(DRVNAME - ": gpios parameter: exceeded max array size: %d\n", - MAX_GPIOS); + pr_err("gpios parameter: exceeded max array size: %d\n", + MAX_GPIOS); return -EINVAL; } } @@ -1360,7 +1354,7 @@ static int __init fbtft_device_init(void) if (verbose > 2) pr_p_devices(); /* print list of 'fb' platform devices */ - pr_debug(DRVNAME": name='%s', busnum=%d, cs=%d\n", name, busnum, cs); + pr_debug("name='%s', busnum=%d, cs=%d\n", name, busnum, cs); if (rotate > 0 && rotate < 4) { rotate = (4 - rotate) * 90; @@ -1375,10 +1369,10 @@ static int __init fbtft_device_init(void) /* name=list lists all supported displays */ if (strncmp(name, "list", FBTFT_GPIO_NAME_SIZE) == 0) { - pr_info(DRVNAME": Supported displays:\n"); + pr_info("Supported displays:\n"); for (i = 0; i < ARRAY_SIZE(displays); i++) - pr_info(DRVNAME": %s\n", displays[i].name); + pr_info("%s\n", displays[i].name); return -ECANCELED; } @@ -1409,7 +1403,7 @@ static int __init fbtft_device_init(void) p_device = displays[i].pdev; pdata = p_device->dev.platform_data; } else { - pr_err(DRVNAME": broken displays array\n"); + pr_err("broken displays array\n"); return -EINVAL; } @@ -1441,16 +1435,14 @@ static int __init fbtft_device_init(void) if (displays[i].spi) { ret = fbtft_device_spi_device_register(spi); if (ret) { - pr_err(DRVNAME - ": failed to register SPI device\n"); + pr_err("failed to register SPI device\n"); return ret; } } else { ret = platform_device_register(p_device); if (ret < 0) { - pr_err(DRVNAME - ": platform_device_register() returned %d\n", - ret); + pr_err("platform_device_register() returned %d\n", + ret); return ret; } } @@ -1460,22 +1452,21 @@ static int __init fbtft_device_init(void) } if (!found) { - pr_err(DRVNAME": display not supported: '%s'\n", name); + pr_err("display not supported: '%s'\n", name); return -EINVAL; } if (verbose && pdata && pdata->gpios) { gpio = pdata->gpios; - pr_info(DRVNAME": GPIOS used by '%s':\n", name); + pr_info("GPIOS used by '%s':\n", name); found = false; while (verbose && gpio->name[0]) { - pr_info(DRVNAME": '%s' = GPIO%d\n", - gpio->name, gpio->gpio); + pr_info("'%s' = GPIO%d\n", gpio->name, gpio->gpio); gpio++; found = true; } if (!found) - pr_info(DRVNAME": (none)\n"); + pr_info("(none)\n"); } if (spi_device && (verbose > 1)) @@ -1488,7 +1479,7 @@ static int __init fbtft_device_init(void) static void __exit fbtft_device_exit(void) { - pr_debug(DRVNAME" - exit\n"); + pr_debug("exit\n"); if (spi_device) { device_del(&spi_device->dev); From e714b7eab150a609b9c2bb1ae7605d882b2cceec Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 11 Sep 2015 18:28:53 +0530 Subject: [PATCH 0313/2431] staging: fbtft: change log level Reduce the log level of some of the pr_* calls and remove 2 pr_debug calls which just prints "init" and "exit". Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft_device.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 4071bf8327ac..a60f389122b0 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -1223,7 +1223,7 @@ static int spi_device_found(struct device *dev, void *data) static void pr_spi_devices(void) { - pr_info("SPI devices registered:\n"); + pr_debug("SPI devices registered:\n"); bus_for_each_dev(&spi_bus_type, NULL, NULL, spi_device_found); } @@ -1241,7 +1241,7 @@ static int p_device_found(struct device *dev, void *data) static void pr_p_devices(void) { - pr_info("'fb' Platform devices registered:\n"); + pr_debug("'fb' Platform devices registered:\n"); bus_for_each_dev(&platform_bus_type, NULL, NULL, p_device_found); } @@ -1299,8 +1299,6 @@ static int __init fbtft_device_init(void) long val; int ret = 0; - pr_debug("init\n"); - if (name == NULL) { #ifdef MODULE pr_err("missing module parameter: 'name'\n"); @@ -1479,8 +1477,6 @@ static int __init fbtft_device_init(void) static void __exit fbtft_device_exit(void) { - pr_debug("exit\n"); - if (spi_device) { device_del(&spi_device->dev); kfree(spi_device); From f9db385df2d337f11fd71eaffde62ff9678416d3 Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Sat, 12 Sep 2015 22:02:12 +0800 Subject: [PATCH 0314/2431] staging: wilc1000: Add terminating entry for wilc_sdio_ids The sdio_device_id table is supposed to be zero-terminated. Signed-off-by: Axel Lin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan_sdio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index 1120a0f595d4..b1c6b6fc0481 100644 --- a/drivers/staging/wilc1000/linux_wlan_sdio.c +++ b/drivers/staging/wilc1000/linux_wlan_sdio.c @@ -34,6 +34,7 @@ static unsigned int sdio_default_speed; static const struct sdio_device_id wilc_sdio_ids[] = { { SDIO_DEVICE(SDIO_VENDOR_ID_WILC, SDIO_DEVICE_ID_WILC) }, + { }, }; From 80785a9a82fc6a5979129a1aedb1260034c6927b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:01 +0900 Subject: [PATCH 0315/2431] staging: wilc1000: rename WILC_WFI_CfgSetChannel This patch replaces WILC_WFI_CfgSetChannel with set_channel to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 26412a597489..c2060ff91872 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -677,7 +677,7 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, /** - * @brief WILC_WFI_CfgSetChannel + * @brief set_channel * @details Set channel for a given wireless interface. Some devices * may support multi-channel operation (by channel hopping) so cfg80211 * doesn't verify much. Note, however, that the passed netdev may be @@ -689,8 +689,8 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_CfgSetChannel(struct wiphy *wiphy, - struct cfg80211_chan_def *chandef) +static int set_channel(struct wiphy *wiphy, + struct cfg80211_chan_def *chandef) { u32 channelnum = 0; @@ -3230,7 +3230,7 @@ static int WILC_WFI_start_ap(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Interval = %d\n DTIM period = %d\n Head length = %zu Tail length = %zu\n", settings->beacon_interval, settings->dtim_period, beacon->head_len, beacon->tail_len); - s32Error = WILC_WFI_CfgSetChannel(wiphy, &settings->chandef); + s32Error = set_channel(wiphy, &settings->chandef); if (s32Error != WILC_SUCCESS) PRINT_ER("Error in setting channel\n"); @@ -3558,7 +3558,7 @@ int WILC_WFI_del_virt_intf(struct wiphy *wiphy, struct wireless_dev *wdev) #endif /*WILC_AP_EXTERNAL_MLME*/ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { - .set_monitor_channel = WILC_WFI_CfgSetChannel, + .set_monitor_channel = set_channel, .scan = WILC_WFI_CfgScan, .connect = WILC_WFI_CfgConnect, .disconnect = WILC_WFI_disconnect, From 0e30d06d9bda25c0edc3dbb721a43a6f87036f24 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:02 +0900 Subject: [PATCH 0316/2431] staging: wilc1000: rename WILC_WFI_CfgScan This patch replaces WILC_WFI_CfgScan with scan to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c2060ff91872..2c391799972e 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -712,7 +712,7 @@ static int set_channel(struct wiphy *wiphy, } /** - * @brief WILC_WFI_CfgScan + * @brief scan * @details Request to do a scan. If returning zero, the scan request is given * the driver, and will be valid until passed to cfg80211_scan_done(). * For scan results, call cfg80211_inform_bss(); you can call this outside @@ -728,7 +728,7 @@ static int set_channel(struct wiphy *wiphy, * kernel version 3.8.8 supported * tony, sswd, WILC-KR, 2013-10-29 */ -static int WILC_WFI_CfgScan(struct wiphy *wiphy, struct cfg80211_scan_request *request) +static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) { struct WILC_WFI_priv *priv; u32 i; @@ -3559,7 +3559,7 @@ int WILC_WFI_del_virt_intf(struct wiphy *wiphy, struct wireless_dev *wdev) static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .set_monitor_channel = set_channel, - .scan = WILC_WFI_CfgScan, + .scan = scan, .connect = WILC_WFI_CfgConnect, .disconnect = WILC_WFI_disconnect, .add_key = WILC_WFI_add_key, From 4ffbcdb6de150c13f23eb6ef8746db70b07f08ff Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:03 +0900 Subject: [PATCH 0317/2431] staging: wilc1000: rename WILC_WFI_CfgConnect This patch replaces WILC_WFI_CfgConnect with connect to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 2c391799972e..7f1ca9536428 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -806,7 +806,7 @@ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) } /** - * @brief WILC_WFI_CfgConnect + * @brief connect * @details Connect to the ESS with the specified parameters. When connected, * call cfg80211_connect_result() with status code %WLAN_STATUS_SUCCESS. * If the connection fails for some reason, call cfg80211_connect_result() @@ -817,8 +817,8 @@ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_CfgConnect(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_connect_params *sme) +static int connect(struct wiphy *wiphy, struct net_device *dev, + struct cfg80211_connect_params *sme) { s32 s32Error = WILC_SUCCESS; u32 i; @@ -3560,7 +3560,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .set_monitor_channel = set_channel, .scan = scan, - .connect = WILC_WFI_CfgConnect, + .connect = connect, .disconnect = WILC_WFI_disconnect, .add_key = WILC_WFI_add_key, .del_key = WILC_WFI_del_key, From b027cde9504e87b6181328fb8c4ed5ccd87a0a55 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:04 +0900 Subject: [PATCH 0318/2431] staging: wilc1000: rename WILC_WFI_disconnect This patch replaces WILC_WFI_disconnect with disconnect to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 7f1ca9536428..1ebaaefaf0a9 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1064,7 +1064,7 @@ done: /** - * @brief WILC_WFI_disconnect + * @brief disconnect * @details Disconnect from the BSS/ESS. * @param[in] * @return int : Return 0 on Success @@ -1072,7 +1072,7 @@ done: * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_code) +static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_code) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3561,7 +3561,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .set_monitor_channel = set_channel, .scan = scan, .connect = connect, - .disconnect = WILC_WFI_disconnect, + .disconnect = disconnect, .add_key = WILC_WFI_add_key, .del_key = WILC_WFI_del_key, .get_key = WILC_WFI_get_key, From 953d417a0dc704169b507314e3e3bfde45948fe3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:05 +0900 Subject: [PATCH 0319/2431] staging: wilc1000: rename WILC_WFI_add_key This patch replaces WILC_WFI_add_key with add_key to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 1ebaaefaf0a9..b5e6176c5174 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1112,7 +1112,7 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co } /** - * @brief WILC_WFI_add_key + * @brief add_key * @details Add a key with the given parameters. @mac_addr will be %NULL * when adding a group key. * @param[in] key : key buffer; TKIP: 16-byte temporal key, 8-byte Tx Mic key, 8-byte Rx Mic Key @@ -1121,9 +1121,9 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, - bool pairwise, - const u8 *mac_addr, struct key_params *params) +static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, + bool pairwise, + const u8 *mac_addr, struct key_params *params) { s32 s32Error = WILC_SUCCESS, KeyLen = params->key_len; @@ -2933,19 +2933,19 @@ static int WILC_WFI_change_virt_intf(struct wiphy *wiphy, struct net_device *dev PRINT_D(CFG80211_DBG, "gtk %x %x %x\n", g_key_gtk_params.key[0], g_key_gtk_params.key[1], g_key_gtk_params.key[2]); - WILC_WFI_add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, - g_add_ptk_key_params.key_idx, - g_add_ptk_key_params.pairwise, - g_add_ptk_key_params.mac_addr, - (struct key_params *)(&g_key_ptk_params)); + add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + g_add_ptk_key_params.key_idx, + g_add_ptk_key_params.pairwise, + g_add_ptk_key_params.mac_addr, + (struct key_params *)(&g_key_ptk_params)); - WILC_WFI_add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, - g_add_gtk_key_params.key_idx, - g_add_gtk_key_params.pairwise, - g_add_gtk_key_params.mac_addr, - (struct key_params *)(&g_key_gtk_params)); + add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + g_add_gtk_key_params.key_idx, + g_add_gtk_key_params.pairwise, + g_add_gtk_key_params.mac_addr, + (struct key_params *)(&g_key_gtk_params)); } /*BugID_4847: registered frames in firmware are now*/ @@ -3019,19 +3019,19 @@ static int WILC_WFI_change_virt_intf(struct wiphy *wiphy, struct net_device *dev PRINT_D(CFG80211_DBG, "gtk %x %x %x\n", g_key_gtk_params.key[0], g_key_gtk_params.key[1], g_key_gtk_params.key[2]); - WILC_WFI_add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, - g_add_ptk_key_params.key_idx, - g_add_ptk_key_params.pairwise, - g_add_ptk_key_params.mac_addr, - (struct key_params *)(&g_key_ptk_params)); + add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + g_add_ptk_key_params.key_idx, + g_add_ptk_key_params.pairwise, + g_add_ptk_key_params.mac_addr, + (struct key_params *)(&g_key_ptk_params)); - WILC_WFI_add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, - g_add_gtk_key_params.key_idx, - g_add_gtk_key_params.pairwise, - g_add_gtk_key_params.mac_addr, - (struct key_params *)(&g_key_gtk_params)); + add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + g_add_gtk_key_params.key_idx, + g_add_gtk_key_params.pairwise, + g_add_gtk_key_params.mac_addr, + (struct key_params *)(&g_key_gtk_params)); } /*Refresh scan, to refresh the scan results to the wpa_supplicant. Set MachHw to false to enable further key installments*/ @@ -3150,19 +3150,19 @@ static int WILC_WFI_change_virt_intf(struct wiphy *wiphy, struct net_device *dev g_key_gtk_params.key[2], g_key_gtk_params.cipher); #if 1 - WILC_WFI_add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, - g_add_ptk_key_params.key_idx, - g_add_ptk_key_params.pairwise, - g_add_ptk_key_params.mac_addr, - (struct key_params *)(&g_key_ptk_params)); + add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + g_add_ptk_key_params.key_idx, + g_add_ptk_key_params.pairwise, + g_add_ptk_key_params.mac_addr, + (struct key_params *)(&g_key_ptk_params)); - WILC_WFI_add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, - g_add_gtk_key_params.key_idx, - g_add_gtk_key_params.pairwise, - g_add_gtk_key_params.mac_addr, - (struct key_params *)(&g_key_gtk_params)); + add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + g_add_gtk_key_params.key_idx, + g_add_gtk_key_params.pairwise, + g_add_gtk_key_params.mac_addr, + (struct key_params *)(&g_key_gtk_params)); #endif } #endif @@ -3562,7 +3562,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .scan = scan, .connect = connect, .disconnect = disconnect, - .add_key = WILC_WFI_add_key, + .add_key = add_key, .del_key = WILC_WFI_del_key, .get_key = WILC_WFI_get_key, .set_default_key = WILC_WFI_set_default_key, From 3044ba7e6f6b8916c87204737c7c266795147fff Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:06 +0900 Subject: [PATCH 0320/2431] staging: wilc1000: rename WILC_WFI_del_key This patch replaces WILC_WFI_del_key with del_key to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index b5e6176c5174..dfa9db3f9f15 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1403,7 +1403,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } /** - * @brief WILC_WFI_del_key + * @brief del_key * @details Remove a key given the @mac_addr (%NULL for a group key) * and @key_index, return -ENOENT if the key doesn't exist. * @param[in] @@ -1412,10 +1412,10 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_del_key(struct wiphy *wiphy, struct net_device *netdev, - u8 key_index, - bool pairwise, - const u8 *mac_addr) +static int del_key(struct wiphy *wiphy, struct net_device *netdev, + u8 key_index, + bool pairwise, + const u8 *mac_addr) { struct WILC_WFI_priv *priv; s32 s32Error = WILC_SUCCESS; @@ -3563,7 +3563,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .connect = connect, .disconnect = disconnect, .add_key = add_key, - .del_key = WILC_WFI_del_key, + .del_key = del_key, .get_key = WILC_WFI_get_key, .set_default_key = WILC_WFI_set_default_key, #ifdef WILC_AP_EXTERNAL_MLME From f4893dfc31f51a608911ce9f44cbd29058872034 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:07 +0900 Subject: [PATCH 0321/2431] staging: wilc1000: rename WILC_WFI_get_key This patch replaces WILC_WFI_get_key with get_key to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index dfa9db3f9f15..5794db3928be 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1511,7 +1511,7 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, } /** - * @brief WILC_WFI_get_key + * @brief get_key * @details Get information about the key with the given parameters. * @mac_addr will be %NULL when requesting information for a group * key. All pointers given to the @callback function need not be valid @@ -1523,9 +1523,9 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, - bool pairwise, - const u8 *mac_addr, void *cookie, void (*callback)(void *cookie, struct key_params *)) +static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, + bool pairwise, + const u8 *mac_addr, void *cookie, void (*callback)(void *cookie, struct key_params *)) { s32 s32Error = WILC_SUCCESS; @@ -3564,7 +3564,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .disconnect = disconnect, .add_key = add_key, .del_key = del_key, - .get_key = WILC_WFI_get_key, + .get_key = get_key, .set_default_key = WILC_WFI_set_default_key, #ifdef WILC_AP_EXTERNAL_MLME .add_virtual_intf = WILC_WFI_add_virt_intf, From 0f5b8ca323d56bfb22152af1dfd91f127278a91a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:08 +0900 Subject: [PATCH 0322/2431] staging: wilc1000: rename WILC_WFI_set_default_key This patch replaces WILC_WFI_set_default_key with set_default_key to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5794db3928be..f0065cb2fe8d 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1566,7 +1566,7 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } /** - * @brief WILC_WFI_set_default_key + * @brief set_default_key * @details Set the default management frame key on an interface * @param[in] * @return int : Return 0 on Success. @@ -1574,8 +1574,8 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, - bool unicast, bool multicast) +static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, + bool unicast, bool multicast) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3565,7 +3565,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .add_key = add_key, .del_key = del_key, .get_key = get_key, - .set_default_key = WILC_WFI_set_default_key, + .set_default_key = set_default_key, #ifdef WILC_AP_EXTERNAL_MLME .add_virtual_intf = WILC_WFI_add_virt_intf, .del_virtual_intf = WILC_WFI_del_virt_intf, From 69deb4c2a1ef214fe3d859ab913bb9a87d785db2 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:09 +0900 Subject: [PATCH 0323/2431] staging: wilc1000: rename WILC_WFI_add_virt_intf This patch replaces WILC_WFI_add_virt_intf with add_virtual_intf to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index f0065cb2fe8d..5ff81cf67016 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3498,7 +3498,7 @@ static int WILC_WFI_change_station(struct wiphy *wiphy, struct net_device *dev, /** - * @brief WILC_WFI_add_virt_intf + * @brief add_virtual_intf * @details * @param[in] * @return int : Return 0 on Success. @@ -3506,10 +3506,10 @@ static int WILC_WFI_change_station(struct wiphy *wiphy, struct net_device *dev, * @date 01 JUL 2012 * @version 1.0 */ -struct wireless_dev *WILC_WFI_add_virt_intf(struct wiphy *wiphy, const char *name, - unsigned char name_assign_type, - enum nl80211_iftype type, u32 *flags, - struct vif_params *params) +struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, const char *name, + unsigned char name_assign_type, + enum nl80211_iftype type, u32 *flags, + struct vif_params *params) { perInterface_wlan_t *nic; struct WILC_WFI_priv *priv; @@ -3567,7 +3567,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .get_key = get_key, .set_default_key = set_default_key, #ifdef WILC_AP_EXTERNAL_MLME - .add_virtual_intf = WILC_WFI_add_virt_intf, + .add_virtual_intf = add_virtual_intf, .del_virtual_intf = WILC_WFI_del_virt_intf, .change_virtual_intf = WILC_WFI_change_virt_intf, From b4a733558450583e143c9f1aa24bd0ef8f0c0046 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:10 +0900 Subject: [PATCH 0324/2431] staging: wilc1000: rename WILC_WFI_del_virt_intf This patch replaces WILC_WFI_del_virt_intf with del_virtual_intf to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5ff81cf67016..e85f91f2d482 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3539,7 +3539,7 @@ struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, const char *name, } /** - * @brief WILC_WFI_del_virt_intf + * @brief del_virtual_intf * @details * @param[in] * @return int : Return 0 on Success. @@ -3547,7 +3547,7 @@ struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, const char *name, * @date 01 JUL 2012 * @version 1.0 */ -int WILC_WFI_del_virt_intf(struct wiphy *wiphy, struct wireless_dev *wdev) /* tony for v3.8 support */ +int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) /* tony for v3.8 support */ { PRINT_D(HOSTAPD_DBG, "Deleting virtual interface\n"); return WILC_SUCCESS; @@ -3568,7 +3568,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .set_default_key = set_default_key, #ifdef WILC_AP_EXTERNAL_MLME .add_virtual_intf = add_virtual_intf, - .del_virtual_intf = WILC_WFI_del_virt_intf, + .del_virtual_intf = del_virtual_intf, .change_virtual_intf = WILC_WFI_change_virt_intf, .start_ap = WILC_WFI_start_ap, From 3615e9a36778317535134878382c014079d56042 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:11 +0900 Subject: [PATCH 0325/2431] staging: wilc1000: rename WILC_WFI_change_virt_intf This patch replaces WILC_WFI_change_virt_intf with change_virtual_intf to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e85f91f2d482..4197d74c2702 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2827,7 +2827,7 @@ int WILC_WFI_set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, } #ifdef WILC_AP_EXTERNAL_MLME /** - * @brief WILC_WFI_change_virt_intf + * @brief change_virtual_intf * @details Change type/configuration of virtual interface, * keep the struct wireless_dev's iftype updated. * @param[in] NONE @@ -2839,8 +2839,8 @@ int WILC_WFI_set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, void wilc1000_wlan_deinit(linux_wlan_t *nic); int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic); -static int WILC_WFI_change_virt_intf(struct wiphy *wiphy, struct net_device *dev, - enum nl80211_iftype type, u32 *flags, struct vif_params *params) +static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, + enum nl80211_iftype type, u32 *flags, struct vif_params *params) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3569,7 +3569,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { #ifdef WILC_AP_EXTERNAL_MLME .add_virtual_intf = add_virtual_intf, .del_virtual_intf = del_virtual_intf, - .change_virtual_intf = WILC_WFI_change_virt_intf, + .change_virtual_intf = change_virtual_intf, .start_ap = WILC_WFI_start_ap, .change_beacon = WILC_WFI_change_beacon, From a13168d75b30311ebe974042dd5ae658e7aece25 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:12 +0900 Subject: [PATCH 0326/2431] staging: wilc1000: rename WILC_WFI_start_ap This patch replaces WILC_WFI_start_ap with start_ap to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 4197d74c2702..38531133b130 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3206,7 +3206,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, */ /** - * @brief WILC_WFI_start_ap + * @brief start_ap * @details Add a beacon with given parameters, @head, @interval * and @dtim_period will be valid, @tail is optional. * @param[in] wiphy @@ -3217,8 +3217,8 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, * @date 23 JUL 2013 * @version 1.0 */ -static int WILC_WFI_start_ap(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_ap_settings *settings) +static int start_ap(struct wiphy *wiphy, struct net_device *dev, + struct cfg80211_ap_settings *settings) { struct cfg80211_beacon_data *beacon = &(settings->beacon); struct WILC_WFI_priv *priv; @@ -3571,7 +3571,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .del_virtual_intf = del_virtual_intf, .change_virtual_intf = change_virtual_intf, - .start_ap = WILC_WFI_start_ap, + .start_ap = start_ap, .change_beacon = WILC_WFI_change_beacon, .stop_ap = WILC_WFI_stop_ap, .add_station = WILC_WFI_add_station, From 2a4c84d7a04e607225170b29403af503b8e84805 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:13 +0900 Subject: [PATCH 0327/2431] staging: wilc1000: rename WILC_WFI_change_beacon This patch replaces WILC_WFI_change_beacon with change_beacon to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 38531133b130..936db602bef7 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3247,7 +3247,7 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, } /** - * @brief WILC_WFI_change_beacon + * @brief change_beacon * @details Add a beacon with given parameters, @head, @interval * and @dtim_period will be valid, @tail is optional. * @param[in] wiphy @@ -3258,8 +3258,8 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, * @date 23 JUL 2013 * @version 1.0 */ -static int WILC_WFI_change_beacon(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_beacon_data *beacon) +static int change_beacon(struct wiphy *wiphy, struct net_device *dev, + struct cfg80211_beacon_data *beacon) { struct WILC_WFI_priv *priv; s32 s32Error = WILC_SUCCESS; @@ -3572,7 +3572,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .change_virtual_intf = change_virtual_intf, .start_ap = start_ap, - .change_beacon = WILC_WFI_change_beacon, + .change_beacon = change_beacon, .stop_ap = WILC_WFI_stop_ap, .add_station = WILC_WFI_add_station, .del_station = WILC_WFI_del_station, From c8cddd7917d8a2f52bf1410ff48cb421b9e1f5ae Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:14 +0900 Subject: [PATCH 0328/2431] staging: wilc1000: rename WILC_WFI_stop_ap This patch replaces WILC_WFI_stop_ap with stop_ap to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 936db602bef7..0b5baecd94b0 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3278,7 +3278,7 @@ static int change_beacon(struct wiphy *wiphy, struct net_device *dev, } /** - * @brief WILC_WFI_stop_ap + * @brief stop_ap * @details Remove beacon configuration and stop sending the beacon. * @param[in] * @return int : Return 0 on Success. @@ -3286,7 +3286,7 @@ static int change_beacon(struct wiphy *wiphy, struct net_device *dev, * @date 23 JUL 2013 * @version 1.0 */ -static int WILC_WFI_stop_ap(struct wiphy *wiphy, struct net_device *dev) +static int stop_ap(struct wiphy *wiphy, struct net_device *dev) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3573,7 +3573,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .start_ap = start_ap, .change_beacon = change_beacon, - .stop_ap = WILC_WFI_stop_ap, + .stop_ap = stop_ap, .add_station = WILC_WFI_add_station, .del_station = WILC_WFI_del_station, .change_station = WILC_WFI_change_station, From ed26955ca0e81ba0b56302c896836e6a9d7d495a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:15 +0900 Subject: [PATCH 0329/2431] staging: wilc1000: rename WILC_WFI_add_station This patch replaces WILC_WFI_add_station with add_station to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 0b5baecd94b0..72bcdc976c6c 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3313,7 +3313,7 @@ static int stop_ap(struct wiphy *wiphy, struct net_device *dev) } /** - * @brief WILC_WFI_add_station + * @brief add_station * @details Add a new station. * @param[in] * @return int : Return 0 on Success. @@ -3321,8 +3321,8 @@ static int stop_ap(struct wiphy *wiphy, struct net_device *dev) * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_add_station(struct wiphy *wiphy, struct net_device *dev, - const u8 *mac, struct station_parameters *params) +static int add_station(struct wiphy *wiphy, struct net_device *dev, + const u8 *mac, struct station_parameters *params) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3574,7 +3574,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .start_ap = start_ap, .change_beacon = change_beacon, .stop_ap = stop_ap, - .add_station = WILC_WFI_add_station, + .add_station = add_station, .del_station = WILC_WFI_del_station, .change_station = WILC_WFI_change_station, #endif /* WILC_AP_EXTERNAL_MLME*/ From a0a8be95cc54b3d68b4cb45d74d23ffb7c5baae8 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:16 +0900 Subject: [PATCH 0330/2431] staging: wilc1000: rename WILC_WFI_del_station This patch replaces WILC_WFI_del_station with del_station to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 72bcdc976c6c..5bdd11129135 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3384,7 +3384,7 @@ static int add_station(struct wiphy *wiphy, struct net_device *dev, } /** - * @brief WILC_WFI_del_station + * @brief del_station * @details Remove a station; @mac may be NULL to remove all stations. * @param[in] * @return int : Return 0 on Success. @@ -3392,8 +3392,8 @@ static int add_station(struct wiphy *wiphy, struct net_device *dev, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_del_station(struct wiphy *wiphy, struct net_device *dev, - struct station_del_parameters *params) +static int del_station(struct wiphy *wiphy, struct net_device *dev, + struct station_del_parameters *params) { const u8 *mac = params->mac; s32 s32Error = WILC_SUCCESS; @@ -3575,7 +3575,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .change_beacon = change_beacon, .stop_ap = stop_ap, .add_station = add_station, - .del_station = WILC_WFI_del_station, + .del_station = del_station, .change_station = WILC_WFI_change_station, #endif /* WILC_AP_EXTERNAL_MLME*/ .get_station = WILC_WFI_get_station, From 14b420849bfe568940dbd391a5890c6aa3a9ab18 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:17 +0900 Subject: [PATCH 0331/2431] staging: wilc1000: rename WILC_WFI_change_station This patch replaces WILC_WFI_change_station with change_station to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5bdd11129135..d5365dee9cb0 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3427,7 +3427,7 @@ static int del_station(struct wiphy *wiphy, struct net_device *dev, } /** - * @brief WILC_WFI_change_station + * @brief change_station * @details Modify a given station. * @param[in] * @return int : Return 0 on Success. @@ -3435,8 +3435,8 @@ static int del_station(struct wiphy *wiphy, struct net_device *dev, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_change_station(struct wiphy *wiphy, struct net_device *dev, - const u8 *mac, struct station_parameters *params) +static int change_station(struct wiphy *wiphy, struct net_device *dev, + const u8 *mac, struct station_parameters *params) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3576,7 +3576,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .stop_ap = stop_ap, .add_station = add_station, .del_station = del_station, - .change_station = WILC_WFI_change_station, + .change_station = change_station, #endif /* WILC_AP_EXTERNAL_MLME*/ .get_station = WILC_WFI_get_station, .dump_station = WILC_WFI_dump_station, From f06f562dd144857325d8c1db38102bea3b946e77 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:18 +0900 Subject: [PATCH 0332/2431] staging: wilc1000: rename WILC_WFI_get_station This patch replaces WILC_WFI_get_station with get_station to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index d5365dee9cb0..c15bd7c4abd5 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1619,7 +1619,7 @@ static int WILC_WFI_dump_survey(struct wiphy *wiphy, struct net_device *netdev, /** - * @brief WILC_WFI_get_station + * @brief get_station * @details Get station information for the station identified by @mac * @param[in] NONE * @return int : Return 0 on Success. @@ -1628,8 +1628,8 @@ static int WILC_WFI_dump_survey(struct wiphy *wiphy, struct net_device *netdev, * @version 1.0 */ -static int WILC_WFI_get_station(struct wiphy *wiphy, struct net_device *dev, - const u8 *mac, struct station_info *sinfo) +static int get_station(struct wiphy *wiphy, struct net_device *dev, + const u8 *mac, struct station_info *sinfo) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3578,7 +3578,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .del_station = del_station, .change_station = change_station, #endif /* WILC_AP_EXTERNAL_MLME*/ - .get_station = WILC_WFI_get_station, + .get_station = get_station, .dump_station = WILC_WFI_dump_station, .change_bss = WILC_WFI_change_bss, .set_wiphy_params = WILC_WFI_set_wiphy_params, From bdb6338f6f5bc1fd2bb79a83357bfba2e1bc64a8 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:19 +0900 Subject: [PATCH 0333/2431] staging: wilc1000: rename WILC_WFI_dump_station This patch replaces WILC_WFI_dump_station with dump_station to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c15bd7c4abd5..e932e643b551 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2760,7 +2760,7 @@ static int WILC_WFI_set_cqm_rssi_config(struct wiphy *wiphy, } /** - * @brief WILC_WFI_dump_station + * @brief dump_station * @details Configure connection quality monitor RSSI threshold. * @param[in] struct wiphy *wiphy: * @param[in] struct net_device *dev @@ -2772,8 +2772,8 @@ static int WILC_WFI_set_cqm_rssi_config(struct wiphy *wiphy, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_dump_station(struct wiphy *wiphy, struct net_device *dev, - int idx, u8 *mac, struct station_info *sinfo) +static int dump_station(struct wiphy *wiphy, struct net_device *dev, + int idx, u8 *mac, struct station_info *sinfo) { struct WILC_WFI_priv *priv; @@ -3579,7 +3579,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .change_station = change_station, #endif /* WILC_AP_EXTERNAL_MLME*/ .get_station = get_station, - .dump_station = WILC_WFI_dump_station, + .dump_station = dump_station, .change_bss = WILC_WFI_change_bss, .set_wiphy_params = WILC_WFI_set_wiphy_params, From a5f7db6aaa20edae10f287c01b59ec65b944b692 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:20 +0900 Subject: [PATCH 0334/2431] staging: wilc1000: rename WILC_WFI_change_bss This patch replaces WILC_WFI_change_bss with change_bss to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e932e643b551..e1514db8dd93 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1710,7 +1710,7 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, /** - * @brief WILC_WFI_change_bss + * @brief change_bss * @details Modify parameters for a given BSS. * @param[in] * -use_cts_prot: Whether to use CTS protection @@ -1730,8 +1730,8 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_change_bss(struct wiphy *wiphy, struct net_device *dev, - struct bss_parameters *params) +static int change_bss(struct wiphy *wiphy, struct net_device *dev, + struct bss_parameters *params) { PRINT_D(CFG80211_DBG, "Changing Bss parametrs\n"); return 0; @@ -3580,7 +3580,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { #endif /* WILC_AP_EXTERNAL_MLME*/ .get_station = get_station, .dump_station = dump_station, - .change_bss = WILC_WFI_change_bss, + .change_bss = change_bss, .set_wiphy_params = WILC_WFI_set_wiphy_params, .set_pmksa = WILC_WFI_set_pmksa, From a76b63ef570cd771e973fe2c4d3f1b5efb8f685a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:21 +0900 Subject: [PATCH 0335/2431] staging: wilc1000: rename WILC_WFI_set_wiphy_params This patch replaces WILC_WFI_set_wiphy_params with set_wiphy_params to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e1514db8dd93..51ed89a6e098 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1802,7 +1802,7 @@ static int WILC_WFI_disassoc(struct wiphy *wiphy, struct net_device *dev, } /** - * @brief WILC_WFI_set_wiphy_params + * @brief set_wiphy_params * @details Notify that wiphy parameters have changed; * @param[in] Changed bitfield (see &enum wiphy_params_flags) describes which values * have changed. @@ -1811,7 +1811,7 @@ static int WILC_WFI_disassoc(struct wiphy *wiphy, struct net_device *dev, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_set_wiphy_params(struct wiphy *wiphy, u32 changed) +static int set_wiphy_params(struct wiphy *wiphy, u32 changed) { s32 s32Error = WILC_SUCCESS; tstrCfgParamVal pstrCfgParamVal; @@ -3581,7 +3581,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .get_station = get_station, .dump_station = dump_station, .change_bss = change_bss, - .set_wiphy_params = WILC_WFI_set_wiphy_params, + .set_wiphy_params = set_wiphy_params, .set_pmksa = WILC_WFI_set_pmksa, .del_pmksa = WILC_WFI_del_pmksa, From 4d46657a23cce98ef5a21cf42fc6ea4145fbeee7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:22 +0900 Subject: [PATCH 0336/2431] staging: wilc1000: rename WILC_WFI_set_pmksa This patch replaces WILC_WFI_set_pmksa with set_pmksa to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 51ed89a6e098..774897f03cfb 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1880,7 +1880,7 @@ static int WILC_WFI_set_bitrate_mask(struct wiphy *wiphy, } /** - * @brief WILC_WFI_set_pmksa + * @brief set_pmksa * @details Cache a PMKID for a BSSID. This is mostly useful for fullmac * devices running firmwares capable of generating the (re) association * RSN IE. It allows for faster roaming between WPA2 BSSIDs. @@ -1890,8 +1890,8 @@ static int WILC_WFI_set_bitrate_mask(struct wiphy *wiphy, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_set_pmksa(struct wiphy *wiphy, struct net_device *netdev, - struct cfg80211_pmksa *pmksa) +static int set_pmksa(struct wiphy *wiphy, struct net_device *netdev, + struct cfg80211_pmksa *pmksa) { u32 i; s32 s32Error = WILC_SUCCESS; @@ -3583,7 +3583,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .change_bss = change_bss, .set_wiphy_params = set_wiphy_params, - .set_pmksa = WILC_WFI_set_pmksa, + .set_pmksa = set_pmksa, .del_pmksa = WILC_WFI_del_pmksa, .flush_pmksa = WILC_WFI_flush_pmksa, #ifdef WILC_P2P From 1ff86d9605a2ed7142647e18c6da7f0cf8807292 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:23 +0900 Subject: [PATCH 0337/2431] staging: wilc1000: rename WILC_WFI_del_pmksa This patch replaces WILC_WFI_del_pmksa with del_pmksa to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 774897f03cfb..93d0c2a31ee4 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1932,7 +1932,7 @@ static int set_pmksa(struct wiphy *wiphy, struct net_device *netdev, } /** - * @brief WILC_WFI_del_pmksa + * @brief del_pmksa * @details Delete a cached PMKID. * @param[in] * @return int : Return 0 on Success @@ -1940,8 +1940,8 @@ static int set_pmksa(struct wiphy *wiphy, struct net_device *netdev, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_del_pmksa(struct wiphy *wiphy, struct net_device *netdev, - struct cfg80211_pmksa *pmksa) +static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, + struct cfg80211_pmksa *pmksa) { u32 i; @@ -3584,7 +3584,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .set_wiphy_params = set_wiphy_params, .set_pmksa = set_pmksa, - .del_pmksa = WILC_WFI_del_pmksa, + .del_pmksa = del_pmksa, .flush_pmksa = WILC_WFI_flush_pmksa, #ifdef WILC_P2P .remain_on_channel = WILC_WFI_remain_on_channel, From b33c39b1f3fa113e013b8d715a8373bda3e37e0f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:24 +0900 Subject: [PATCH 0338/2431] staging: wilc1000: rename WILC_WFI_flush_pmksa This patch replaces WILC_WFI_flush_pmksa with flush_pmksa to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 93d0c2a31ee4..c42503705d8f 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1981,7 +1981,7 @@ static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, } /** - * @brief WILC_WFI_flush_pmksa + * @brief flush_pmksa * @details Flush all cached PMKIDs. * @param[in] * @return int : Return 0 on Success @@ -1989,7 +1989,7 @@ static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_flush_pmksa(struct wiphy *wiphy, struct net_device *netdev) +static int flush_pmksa(struct wiphy *wiphy, struct net_device *netdev) { struct WILC_WFI_priv *priv = wiphy_priv(wiphy); @@ -3585,7 +3585,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .set_pmksa = set_pmksa, .del_pmksa = del_pmksa, - .flush_pmksa = WILC_WFI_flush_pmksa, + .flush_pmksa = flush_pmksa, #ifdef WILC_P2P .remain_on_channel = WILC_WFI_remain_on_channel, .cancel_remain_on_channel = WILC_WFI_cancel_remain_on_channel, From 6d19d695e091c2e32a1eac80ace52c4e8af13d10 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:25 +0900 Subject: [PATCH 0339/2431] staging: wilc1000: rename WILC_WFI_remain_on_channel This patch replaces WILC_WFI_remain_on_channel with remain_on_channel to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c42503705d8f..40bf7a501ed8 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2391,7 +2391,7 @@ static void WILC_WFI_RemainOnChannelExpired(void *pUserVoid, u32 u32SessionID) /** - * @brief WILC_WFI_remain_on_channel + * @brief remain_on_channel * @details Request the driver to remain awake on the specified * channel for the specified duration to complete an off-channel * operation (e.g., public action frame exchange). When the driver is @@ -2403,10 +2403,10 @@ static void WILC_WFI_RemainOnChannelExpired(void *pUserVoid, u32 u32SessionID) * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_remain_on_channel(struct wiphy *wiphy, - struct wireless_dev *wdev, - struct ieee80211_channel *chan, - unsigned int duration, u64 *cookie) +static int remain_on_channel(struct wiphy *wiphy, + struct wireless_dev *wdev, + struct ieee80211_channel *chan, + unsigned int duration, u64 *cookie) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3587,7 +3587,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .del_pmksa = del_pmksa, .flush_pmksa = flush_pmksa, #ifdef WILC_P2P - .remain_on_channel = WILC_WFI_remain_on_channel, + .remain_on_channel = remain_on_channel, .cancel_remain_on_channel = WILC_WFI_cancel_remain_on_channel, .mgmt_tx_cancel_wait = WILC_WFI_mgmt_tx_cancel_wait, .mgmt_tx = WILC_WFI_mgmt_tx, From 1dd5440b60ccc8875395b7f49546c38c59c7679a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:26 +0900 Subject: [PATCH 0340/2431] staging: wilc1000: rename WILC_WFI_cancel_remain_on_channel This patch replaces WILC_WFI_cancel_remain_on_channel with cancel_remain_on_channel to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 40bf7a501ed8..c7ac9674318f 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2444,7 +2444,7 @@ static int remain_on_channel(struct wiphy *wiphy, } /** - * @brief WILC_WFI_cancel_remain_on_channel + * @brief cancel_remain_on_channel * @details Cancel an on-going remain-on-channel operation. * This allows the operation to be terminated prior to timeout based on * the duration value. @@ -2456,9 +2456,9 @@ static int remain_on_channel(struct wiphy *wiphy, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_cancel_remain_on_channel(struct wiphy *wiphy, - struct wireless_dev *wdev, - u64 cookie) +static int cancel_remain_on_channel(struct wiphy *wiphy, + struct wireless_dev *wdev, + u64 cookie) { s32 s32Error = WILC_SUCCESS; struct WILC_WFI_priv *priv; @@ -3588,7 +3588,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .flush_pmksa = flush_pmksa, #ifdef WILC_P2P .remain_on_channel = remain_on_channel, - .cancel_remain_on_channel = WILC_WFI_cancel_remain_on_channel, + .cancel_remain_on_channel = cancel_remain_on_channel, .mgmt_tx_cancel_wait = WILC_WFI_mgmt_tx_cancel_wait, .mgmt_tx = WILC_WFI_mgmt_tx, .mgmt_frame_register = WILC_WFI_frame_register, From 4a2f9b38a5eada30826644e488af4114bb78a183 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:27 +0900 Subject: [PATCH 0341/2431] staging: wilc1000: rename WILC_WFI_mgmt_tx_cancel_wait This patch replaces WILC_WFI_mgmt_tx_cancel_wait with mgmt_tx_cancel_wait to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c7ac9674318f..627a25492d5b 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2652,9 +2652,9 @@ int WILC_WFI_mgmt_tx(struct wiphy *wiphy, return s32Error; } -int WILC_WFI_mgmt_tx_cancel_wait(struct wiphy *wiphy, - struct wireless_dev *wdev, - u64 cookie) +int mgmt_tx_cancel_wait(struct wiphy *wiphy, + struct wireless_dev *wdev, + u64 cookie) { struct WILC_WFI_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; @@ -3589,7 +3589,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { #ifdef WILC_P2P .remain_on_channel = remain_on_channel, .cancel_remain_on_channel = cancel_remain_on_channel, - .mgmt_tx_cancel_wait = WILC_WFI_mgmt_tx_cancel_wait, + .mgmt_tx_cancel_wait = mgmt_tx_cancel_wait, .mgmt_tx = WILC_WFI_mgmt_tx, .mgmt_frame_register = WILC_WFI_frame_register, .set_power_mgmt = WILC_WFI_set_power_mgmt, From 12a26a33fec9454781352f6268239e1ced83a60d Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:28 +0900 Subject: [PATCH 0342/2431] staging: wilc1000: rename WILC_WFI_mgmt_tx This patch replaces WILC_WFI_mgmt_tx with mgmt_tx to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 627a25492d5b..068e64860174 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2496,10 +2496,10 @@ void WILC_WFI_add_wilcvendorspec(u8 *buff) */ extern linux_wlan_t *g_linux_wlan; extern bool bEnablePS; -int WILC_WFI_mgmt_tx(struct wiphy *wiphy, - struct wireless_dev *wdev, - struct cfg80211_mgmt_tx_params *params, - u64 *cookie) +int mgmt_tx(struct wiphy *wiphy, + struct wireless_dev *wdev, + struct cfg80211_mgmt_tx_params *params, + u64 *cookie) { struct ieee80211_channel *chan = params->chan; unsigned int wait = params->wait; @@ -3590,7 +3590,7 @@ static struct cfg80211_ops WILC_WFI_cfg80211_ops = { .remain_on_channel = remain_on_channel, .cancel_remain_on_channel = cancel_remain_on_channel, .mgmt_tx_cancel_wait = mgmt_tx_cancel_wait, - .mgmt_tx = WILC_WFI_mgmt_tx, + .mgmt_tx = mgmt_tx, .mgmt_frame_register = WILC_WFI_frame_register, .set_power_mgmt = WILC_WFI_set_power_mgmt, .set_cqm_rssi_config = WILC_WFI_set_cqm_rssi_config, From 52a59cf1e74441d95174e607836ee76aa956e4cc Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 12 Sep 2015 15:04:35 +0530 Subject: [PATCH 0343/2431] Staging: ft1000: ft1000-usb: Use USB API functions rather than constants Introduce the use of the function usb_endpoint_is_bulk_in(). Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/ft1000/ft1000-usb/ft1000_usb.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c index fd255c62083f..d1ba0b827a55 100644 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c @@ -111,17 +111,13 @@ static int ft1000_probe(struct usb_interface *interface, pr_debug("endpoint %d\n", i); pr_debug("bEndpointAddress=%x, bmAttributes=%x\n", endpoint->bEndpointAddress, endpoint->bmAttributes); - if ((endpoint->bEndpointAddress & USB_DIR_IN) - && ((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == - USB_ENDPOINT_XFER_BULK)) { + if (usb_endpoint_is_bulk_in(endpoint)) { ft1000dev->bulk_in_endpointAddr = endpoint->bEndpointAddress; pr_debug("in: %d\n", endpoint->bEndpointAddress); } - if (!(endpoint->bEndpointAddress & USB_DIR_IN) - && ((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == - USB_ENDPOINT_XFER_BULK)) { + if (usb_endpoint_is_bulk_in(endpoint)) { ft1000dev->bulk_out_endpointAddr = endpoint->bEndpointAddress; pr_debug("out: %d\n", endpoint->bEndpointAddress); From 046225e79995482e96560c3b4390be4d83f490bf Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 13 Sep 2015 22:46:06 +0530 Subject: [PATCH 0344/2431] Staging: ft1000: use usleep_range() This patch fixes checkpatch.pl warning WARNING : msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/ft1000/ft1000-usb/ft1000_download.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c index 297b7aece506..cf850212f4b6 100644 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c @@ -131,7 +131,7 @@ static int check_usb_db(struct ft1000_usb *ft1000dev) break; } loopcnt++; - msleep(10); + usleep_range(10000, 11000); } @@ -142,7 +142,7 @@ static int check_usb_db(struct ft1000_usb *ft1000dev) pr_debug("Doorbell = 0x%x\n", temp); if (temp & 0x8000) { loopcnt++; - msleep(10); + usleep_range(10000, 11000); } else { pr_debug("door bell is cleared, return 0\n"); return 0; @@ -191,7 +191,7 @@ static u16 get_handshake(struct ft1000_usb *ft1000dev, u16 expected_value) return handshake; } loopcnt++; - msleep(10); + usleep_range(10000, 11000); } return HANDSHAKE_TIMEOUT_VALUE; @@ -254,7 +254,7 @@ static u16 get_handshake_usb(struct ft1000_usb *ft1000dev, u16 expected_value) } loopcnt++; - msleep(10); + usleep_range(10000, 11000); handshake = ntohs(handshake); if ((handshake == expected_value) || (handshake == HANDSHAKE_RESET_VALUE_USB)) From a05b98635b2abf22138ed4b0e6373447aa36758c Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 19:20:02 +0300 Subject: [PATCH 0345/2431] staging: lustre: fix switch-case identation errors Re-indent switch-case statements to fix SWITCH_CASE_INDENT_LEVEL errors reported by checkpatch.pl Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lnet/selftest/selftest.h | 20 ++++++++--------- .../lustre/libcfs/linux/linux-tracefile.c | 22 +++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/drivers/staging/lustre/lnet/selftest/selftest.h b/drivers/staging/lustre/lnet/selftest/selftest.h index dfe3342750e9..160d68ce6ffd 100644 --- a/drivers/staging/lustre/lnet/selftest/selftest.h +++ b/drivers/staging/lustre/lnet/selftest/selftest.h @@ -563,16 +563,16 @@ swi_state2str (int state) { #define STATE2STR(x) case x: return #x switch (state) { - default: - LBUG(); - STATE2STR(SWI_STATE_NEWBORN); - STATE2STR(SWI_STATE_REPLY_SUBMITTED); - STATE2STR(SWI_STATE_REPLY_SENT); - STATE2STR(SWI_STATE_REQUEST_SUBMITTED); - STATE2STR(SWI_STATE_REQUEST_SENT); - STATE2STR(SWI_STATE_REPLY_RECEIVED); - STATE2STR(SWI_STATE_BULK_STARTED); - STATE2STR(SWI_STATE_DONE); + default: + LBUG(); + STATE2STR(SWI_STATE_NEWBORN); + STATE2STR(SWI_STATE_REPLY_SUBMITTED); + STATE2STR(SWI_STATE_REPLY_SENT); + STATE2STR(SWI_STATE_REQUEST_SUBMITTED); + STATE2STR(SWI_STATE_REQUEST_SENT); + STATE2STR(SWI_STATE_REPLY_RECEIVED); + STATE2STR(SWI_STATE_BULK_STARTED); + STATE2STR(SWI_STATE_DONE); } #undef STATE2STR } diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c index eb10e3b478aa..87d844953522 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c @@ -212,12 +212,11 @@ static char * dbghdr_to_err_string(struct ptldebug_header *hdr) { switch (hdr->ph_subsys) { - - case S_LND: - case S_LNET: - return "LNetError"; - default: - return "LustreError"; + case S_LND: + case S_LNET: + return "LNetError"; + default: + return "LustreError"; } } @@ -225,12 +224,11 @@ static char * dbghdr_to_info_string(struct ptldebug_header *hdr) { switch (hdr->ph_subsys) { - - case S_LND: - case S_LNET: - return "LNet"; - default: - return "Lustre"; + case S_LND: + case S_LNET: + return "LNet"; + default: + return "Lustre"; } } From 910b551c85ae599201428e6ac110a222d0da4c50 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 19:20:03 +0300 Subject: [PATCH 0346/2431] staging: lustre: fix TRAILING_STATEMENTS checkpatch errors Move trailing statements to be on the next line to fix the TRAILING_STATEMENTS checkpatch error. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_support.h | 6 ++++-- drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c | 3 ++- drivers/staging/lustre/lustre/llite/lproc_llite.c | 3 ++- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 3 ++- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 6 ++++-- drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c | 3 ++- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 3986ca4cddaa..30f22d97efb3 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -655,8 +655,10 @@ do { \ #endif #ifdef POISON_BULK -#define POISON_PAGE(page, val) do { memset(kmap(page), val, PAGE_CACHE_SIZE); \ - kunmap(page); } while (0) +#define POISON_PAGE(page, val) do { \ + memset(kmap(page), val, PAGE_CACHE_SIZE); \ + kunmap(page); \ +} while (0) #else #define POISON_PAGE(page, val) do { } while (0) #endif diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c index f9262243f935..209736454d06 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c @@ -699,7 +699,8 @@ cfs_cpt_num_estimate(void) /* generate reasonable number of CPU partitions based on total number * of CPUs, Preferred N should be power2 and match this condition: * 2 * (N - 1)^2 < NCPUS <= 2 * N^2 */ - for (ncpt = 2; ncpu > 2 * ncpt * ncpt; ncpt <<= 1) {} + for (ncpt = 2; ncpu > 2 * ncpt * ncpt; ncpt <<= 1) + ; if (ncpt <= nnode) { /* fat numa system */ while (nnode > ncpt) diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c index 2fc24a946590..427a34b00e85 100644 --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c @@ -1326,7 +1326,8 @@ void ll_rw_stats_tally(struct ll_sb_info *sbi, pid_t pid, } for (i = 0; (count >= (1 << LL_HIST_START << i)) && - (i < (LL_HIST_MAX - 1)); i++); + (i < (LL_HIST_MAX - 1)); i++) + ; if (rw == 0) { io_extents->pp_extents[cur].pp_r_hist.oh_buckets[i]++; io_extents->pp_extents[LL_PROCESS_HIST_MAX].pp_r_hist.oh_buckets[i]++; diff --git a/drivers/staging/lustre/lustre/lmv/lmv_obd.c b/drivers/staging/lustre/lustre/lmv/lmv_obd.c index f8146acd883d..0fc0b61d9201 100644 --- a/drivers/staging/lustre/lustre/lmv/lmv_obd.c +++ b/drivers/staging/lustre/lustre/lmv/lmv_obd.c @@ -2099,7 +2099,8 @@ static void lmv_adjust_dirpages(struct page **pages, int ncfspgs, int nlupgs) while (--nlupgs > 0) { ent = lu_dirent_start(dp); for (end_dirent = ent; ent != NULL; - end_dirent = ent, ent = lu_dirent_next(ent)); + end_dirent = ent, ent = lu_dirent_next(ent)) + ; /* Advance dp to next lu_dirpage. */ dp = (struct lu_dirpage *)((char *)dp + LU_PAGE_SIZE); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index 7c5bab377f5c..3c66dbdbf076 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -929,7 +929,8 @@ static int lmd_parse_mgs(struct lustre_mount_data *lmd, char **ptr) int oldlen = 0; /* Find end of nidlist */ - while (class_parse_nid_quiet(tail, &nid, &tail) == 0) {} + while (class_parse_nid_quiet(tail, &nid, &tail) == 0) + ; length = tail - *ptr; if (length == 0) { LCONSOLE_ERROR_MSG(0x159, "Can't parse NID '%s'\n", *ptr); @@ -1117,7 +1118,8 @@ static int lmd_parse(char *options, struct lustre_mount_data *lmd) ++s1; lmd->lmd_flags |= LMD_FLG_CLIENT; /* Remove leading /s from fsname */ - while (*++s1 == '/') ; + while (*++s1 == '/') + ; /* Freed in lustre_free_lsi */ lmd->lmd_profile = kasprintf(GFP_NOFS, "%s-client", s1); if (!lmd->lmd_profile) diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c index ae99180d6036..9985fb61f630 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c @@ -143,7 +143,8 @@ cleanup: ptlrpc_hr_fini(); req_layout_fini(); /* Fall through */ - default: ; + default: + ; } return rc; From ce85ed4d15b44f6a3216f0e0b3ce464aecd44c3c Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sun, 13 Sep 2015 14:15:06 +0200 Subject: [PATCH 0347/2431] staging: lustre: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); @@ expression x; @@ -if (x != NULL) { \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); x = NULL; -} // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/super25.c | 16 ++++--------- .../staging/lustre/lustre/obdclass/genops.c | 24 +++++++------------ .../lustre/lustre/obdclass/lu_object.c | 6 ++--- 3 files changed, 14 insertions(+), 32 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/super25.c b/drivers/staging/lustre/lustre/llite/super25.c index e4020ce8cb7b..4cf7af226ad7 100644 --- a/drivers/staging/lustre/lustre/llite/super25.c +++ b/drivers/staging/lustre/lustre/llite/super25.c @@ -183,18 +183,10 @@ out_sysfs: out_debugfs: debugfs_remove(llite_root); out_cache: - if (ll_inode_cachep != NULL) - kmem_cache_destroy(ll_inode_cachep); - - if (ll_file_data_slab != NULL) - kmem_cache_destroy(ll_file_data_slab); - - if (ll_remote_perm_cachep != NULL) - kmem_cache_destroy(ll_remote_perm_cachep); - - if (ll_rmtperm_hash_cachep != NULL) - kmem_cache_destroy(ll_rmtperm_hash_cachep); - + kmem_cache_destroy(ll_inode_cachep); + kmem_cache_destroy(ll_file_data_slab); + kmem_cache_destroy(ll_remote_perm_cachep); + kmem_cache_destroy(ll_rmtperm_hash_cachep); return rc; } diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 64af0abd970d..370d5b4af19b 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -639,22 +639,14 @@ EXPORT_SYMBOL(class_notify_sptlrpc_conf); void obd_cleanup_caches(void) { - if (obd_device_cachep) { - kmem_cache_destroy(obd_device_cachep); - obd_device_cachep = NULL; - } - if (obdo_cachep) { - kmem_cache_destroy(obdo_cachep); - obdo_cachep = NULL; - } - if (import_cachep) { - kmem_cache_destroy(import_cachep); - import_cachep = NULL; - } - if (capa_cachep) { - kmem_cache_destroy(capa_cachep); - capa_cachep = NULL; - } + kmem_cache_destroy(obd_device_cachep); + obd_device_cachep = NULL; + kmem_cache_destroy(obdo_cachep); + obdo_cachep = NULL; + kmem_cache_destroy(import_cachep); + import_cachep = NULL; + kmem_cache_destroy(capa_cachep); + capa_cachep = NULL; } int obd_init_caches(void) diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 48d543682144..3111982f69c2 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -2052,10 +2052,8 @@ EXPORT_SYMBOL(lu_kmem_init); void lu_kmem_fini(struct lu_kmem_descr *caches) { for (; caches->ckd_cache != NULL; ++caches) { - if (*caches->ckd_cache != NULL) { - kmem_cache_destroy(*caches->ckd_cache); - *caches->ckd_cache = NULL; - } + kmem_cache_destroy(*caches->ckd_cache); + *caches->ckd_cache = NULL; } } EXPORT_SYMBOL(lu_kmem_fini); From 4579ec9af094361bef38f37005897d6de6cc7dcb Mon Sep 17 00:00:00 2001 From: Samuel Dominguez Lorenzo Date: Sun, 13 Sep 2015 16:18:33 +0100 Subject: [PATCH 0348/2431] staging: rtl8712: usb_ops_linux: fixed a comparison coding style issue Fixed a coding style issue where a comparison had the constant on the left side of the test instead of being on the right side of it. Signed-off-by: Samuel Dominguez Lorenzo Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/usb_ops_linux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index c3a4e3f26b40..9d0d0311a49e 100644 --- a/drivers/staging/rtl8712/usb_ops_linux.c +++ b/drivers/staging/rtl8712/usb_ops_linux.c @@ -268,7 +268,7 @@ u32 r8712_usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem) return _FAIL; if (!precvbuf->reuse == false || !precvbuf->pskb) { precvbuf->pskb = skb_dequeue(&precvpriv->free_recv_skb_queue); - if (NULL != precvbuf->pskb) + if (precvbuf->pskb != NULL) precvbuf->reuse = true; } if (precvbuf != NULL) { From 4ddc2f06c8384cc023b60d7bf8471d0737bba613 Mon Sep 17 00:00:00 2001 From: Anjali Menon Date: Sun, 13 Sep 2015 16:22:00 +0530 Subject: [PATCH 0349/2431] staging: dgnc: Fixed line over 80 characters long This is a patch that fixes line over 80 characters coding style warning detected by checkpatch.pl. WARNING: line over 80 characters Signed-off-by: Anjali Menon Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_mgmt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c index b13318a82fe1..81c793af9aba 100644 --- a/drivers/staging/dgnc/dgnc_mgmt.c +++ b/drivers/staging/dgnc/dgnc_mgmt.c @@ -148,7 +148,8 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) di.info_bdstate = dgnc_Board[brd]->dpastatus; di.info_ioport = 0; di.info_physaddr = (ulong) dgnc_Board[brd]->membase; - di.info_physsize = (ulong) dgnc_Board[brd]->membase - dgnc_Board[brd]->membase_end; + di.info_physsize = (ulong) dgnc_Board[brd]->membase + - dgnc_Board[brd]->membase_end; if (dgnc_Board[brd]->state != BOARD_FAILED) di.info_nports = dgnc_Board[brd]->nasync; else From 433c7f8fe2e086d037783d324cb2ddaf1e244787 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 13 Sep 2015 09:16:10 +0530 Subject: [PATCH 0350/2431] Staging: rtl8192u: Remove unnecessary printk This patch removes the commented printk inside else block as it is not needed. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index e4624e886007..f2d09feccfc3 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c @@ -277,7 +277,6 @@ inline void softmac_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *ieee printk("%s():insert to waitqueue!\n",__func__); skb_queue_tail(&ieee->skb_waitQ[tcb_desc->queue_index], skb); } else { - //printk("TX packet!\n"); ieee->softmac_hard_start_xmit(skb, ieee->dev); //dev_kfree_skb_any(skb);//edit by thomas } From c2c77eea18f24d847fc6dbbed5d6eaf29fb8de3e Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:28 +0100 Subject: [PATCH 0351/2431] staging: vt6655: vt6655_probe remove PCI debug info Remove unnecessary debug PCI info that can be obtained by lspci. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 46 ---------------------------- 1 file changed, 46 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 86c24a1ab4fa..2584d1786001 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -1692,52 +1692,6 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent) return -ENODEV; } -#ifdef DEBUG - dev_dbg(&pcid->dev, - "after get pci_info memaddr is %x, io addr is %x,io_size is %d\n", - priv->memaddr, priv->ioaddr, priv->io_size); - { - int i; - u32 bar, len; - u32 address[] = { - PCI_BASE_ADDRESS_0, - PCI_BASE_ADDRESS_1, - PCI_BASE_ADDRESS_2, - PCI_BASE_ADDRESS_3, - PCI_BASE_ADDRESS_4, - PCI_BASE_ADDRESS_5, - 0}; - for (i = 0; address[i]; i++) { - pci_read_config_dword(pcid, address[i], &bar); - - dev_dbg(&pcid->dev, "bar %d is %x\n", i, bar); - - if (!bar) { - dev_dbg(&pcid->dev, - "bar %d not implemented\n", i); - continue; - } - - if (bar & PCI_BASE_ADDRESS_SPACE_IO) { - /* This is IO */ - - len = bar & (PCI_BASE_ADDRESS_IO_MASK & 0xffff); - len = len & ~(len - 1); - - dev_dbg(&pcid->dev, - "IO space: len in IO %x, BAR %d\n", - len, i); - } else { - len = bar & 0xfffffff0; - len = ~len + 1; - - dev_dbg(&pcid->dev, - "len in MEM %x, BAR %d\n", len, i); - } - } - } -#endif - priv->PortOffset = ioremap(priv->memaddr & PCI_BASE_ADDRESS_MEM_MASK, priv->io_size); if (!priv->PortOffset) { From e77610a94c1fe0402979f58bee6933ffe18b15e3 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:29 +0100 Subject: [PATCH 0352/2431] staging: vt6655: remove get_chip_name and info message. This prints "VIA Networking Solomon-A/B/G Wireless LAN Adapter" which has already printed once in vt6655_probe. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 2584d1786001..99191d979dc5 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -168,16 +168,6 @@ static void device_free_rings(struct vnt_private *pDevice); /*--------------------- Export Functions --------------------------*/ -static char *get_chip_name(int chip_id) -{ - int i; - - for (i = 0; chip_info_table[i].name != NULL; i++) - if (chip_info_table[i].chip_id == chip_id) - break; - return chip_info_table[i].name; -} - static void vt6655_remove(struct pci_dev *pcid) { struct vnt_private *pDevice = pci_get_drvdata(pcid); @@ -447,8 +437,6 @@ static void device_init_registers(struct vnt_private *pDevice) static void device_print_info(struct vnt_private *pDevice) { - dev_info(&pDevice->pcid->dev, "%s\n", get_chip_name(pDevice->chip_id)); - dev_info(&pDevice->pcid->dev, "MAC=%pM IO=0x%lx Mem=0x%lx IRQ=%d\n", pDevice->abyCurrentNetAddr, (unsigned long)pDevice->ioaddr, (unsigned long)pDevice->PortOffset, pDevice->pcid->irq); From 319755a72226e8c433077b7839aa6064080917fc Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:30 +0100 Subject: [PATCH 0353/2431] staging: vt6655: Remove typedef struct __chip_info_tbl Only two values that are assigned from this table. DEVICE_FLAGS_TX_ALIGN and the value of io_size which is used as the size of ioremap which is 256. Remove all variables, DEVICE_FLAGS_TX_ALIGN check, apply io_size value and chip_info_table. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device.h | 12 --------- drivers/staging/vt6655/device_main.c | 40 ++++++++-------------------- 2 files changed, 11 insertions(+), 41 deletions(-) diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index d1917d04af30..be42e4472c84 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -157,14 +157,6 @@ #define PK_TYPE_11GB 2 #define PK_TYPE_11GA 3 -typedef struct __chip_info_tbl { - CHIP_TYPE chip_id; - char *name; - int io_size; - int nTxQueue; - u32 flags; -} CHIP_INFO, *PCHIP_INFO; - typedef enum { OWNED_BY_HOST = 0, OWNED_BY_NIC = 1 @@ -235,12 +227,9 @@ struct vnt_private { unsigned char *tx1_bufs; unsigned char *tx_beacon_bufs; - CHIP_TYPE chip_id; - void __iomem *PortOffset; u32 memaddr; u32 ioaddr; - u32 io_size; unsigned char byRevId; unsigned char byRxMode; @@ -249,7 +238,6 @@ struct vnt_private { spinlock_t lock; - int nTxQueues; volatile int iTDUsed[TYPE_MAXTD]; struct vnt_tx_desc *apCurrTD[TYPE_MAXTD]; diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 99191d979dc5..4bc9ba0b4b71 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -128,14 +128,8 @@ DEVICE_PARAM(BasebandType, "baseband type"); /* * Static vars definitions */ -static CHIP_INFO chip_info_table[] = { - { VT3253, "VIA Networking Solomon-A/B/G Wireless LAN Adapter ", - 256, 1, DEVICE_FLAGS_IP_ALIGN|DEVICE_FLAGS_TX_ALIGN }, - {0, NULL} -}; - static const struct pci_device_id vt6655_pci_id_table[] = { - { PCI_VDEVICE(VIA, 0x3253), (kernel_ulong_t)chip_info_table}, + { PCI_VDEVICE(VIA, 0x3253) }, { 0, } }; @@ -143,7 +137,7 @@ static const struct pci_device_id vt6655_pci_id_table[] = { static int vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent); static void vt6655_init_info(struct pci_dev *pcid, - struct vnt_private **ppDevice, PCHIP_INFO); + struct vnt_private **ppDevice); static void device_free_info(struct vnt_private *pDevice); static bool device_get_pci_info(struct vnt_private *, struct pci_dev *pcid); static void device_print_info(struct vnt_private *pDevice); @@ -443,15 +437,11 @@ static void device_print_info(struct vnt_private *pDevice) } static void vt6655_init_info(struct pci_dev *pcid, - struct vnt_private **ppDevice, - PCHIP_INFO pChip_info) + struct vnt_private **ppDevice) { memset(*ppDevice, 0, sizeof(**ppDevice)); (*ppDevice)->pcid = pcid; - (*ppDevice)->chip_id = pChip_info->chip_id; - (*ppDevice)->io_size = pChip_info->io_size; - (*ppDevice)->nTxQueues = pChip_info->nTxQueue; (*ppDevice)->multicast_limit = 32; spin_lock_init(&((*ppDevice)->lock)); @@ -695,10 +685,9 @@ static void device_init_td0_ring(struct vnt_private *pDevice) pDesc = &(pDevice->apTD0Rings[i]); pDesc->td_info = alloc_td_info(); - if (pDevice->flags & DEVICE_FLAGS_TX_ALIGN) { - pDesc->td_info->buf = pDevice->tx0_bufs + (i)*PKT_BUF_SZ; - pDesc->td_info->buf_dma = pDevice->tx_bufs_dma0 + (i)*PKT_BUF_SZ; - } + pDesc->td_info->buf = pDevice->tx0_bufs + i * PKT_BUF_SZ; + pDesc->td_info->buf_dma = pDevice->tx_bufs_dma0 + i * PKT_BUF_SZ; + pDesc->next = &(pDevice->apTD0Rings[(i+1) % pDevice->sOpts.nTxDescs[0]]); pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } @@ -721,10 +710,9 @@ static void device_init_td1_ring(struct vnt_private *pDevice) pDesc = &(pDevice->apTD1Rings[i]); pDesc->td_info = alloc_td_info(); - if (pDevice->flags & DEVICE_FLAGS_TX_ALIGN) { - pDesc->td_info->buf = pDevice->tx1_bufs + (i) * PKT_BUF_SZ; - pDesc->td_info->buf_dma = pDevice->tx_bufs_dma1 + (i) * PKT_BUF_SZ; - } + pDesc->td_info->buf = pDevice->tx1_bufs + i * PKT_BUF_SZ; + pDesc->td_info->buf_dma = pDevice->tx_bufs_dma1 + i * PKT_BUF_SZ; + pDesc->next = &(pDevice->apTD1Rings[(i + 1) % pDevice->sOpts.nTxDescs[1]]); pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } @@ -1640,7 +1628,6 @@ static int vnt_init(struct vnt_private *priv) static int vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent) { - PCHIP_INFO pChip_info = (PCHIP_INFO)ent->driver_data; struct vnt_private *priv; struct ieee80211_hw *hw; struct wiphy *wiphy; @@ -1660,7 +1647,7 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent) priv = hw->priv; - vt6655_init_info(pcid, &priv, pChip_info); + vt6655_init_info(pcid, &priv); priv->hw = hw; @@ -1681,7 +1668,7 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent) } priv->PortOffset = ioremap(priv->memaddr & PCI_BASE_ADDRESS_MEM_MASK, - priv->io_size); + 256); if (!priv->PortOffset) { dev_err(&pcid->dev, ": Failed to IO remapping ..\n"); device_free_info(priv); @@ -1721,11 +1708,6 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent) device_get_options(priv); device_set_options(priv); - /* Mask out the options cannot be set to the chip */ - priv->sOpts.flags &= pChip_info->flags; - - /* Enable the chip specified capabilities */ - priv->flags = priv->sOpts.flags | (pChip_info->flags & 0xff000000UL); wiphy = priv->hw->wiphy; From 73eb8a11275ecadf7f49ffc1e67f7cef35188182 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:31 +0100 Subject: [PATCH 0354/2431] staging: vt6655: remove unused multicast_limit. multicast_limit is assigned a vale that is never used. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device.h | 1 - drivers/staging/vt6655/device_main.c | 1 - 2 files changed, 2 deletions(-) diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index be42e4472c84..f020bb1522e0 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -256,7 +256,6 @@ struct vnt_private { u32 rx_buf_sz; u8 rx_rate; - int multicast_limit; u32 rx_bytes; diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 4bc9ba0b4b71..fcc4510f81b3 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -442,7 +442,6 @@ static void vt6655_init_info(struct pci_dev *pcid, memset(*ppDevice, 0, sizeof(**ppDevice)); (*ppDevice)->pcid = pcid; - (*ppDevice)->multicast_limit = 32; spin_lock_init(&((*ppDevice)->lock)); } From e577474f3b55ef368090ec7f29543fb8b5a712be Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:32 +0100 Subject: [PATCH 0355/2431] staging: vt6655: vt6655_init_info remove memset. vnt_private is allocated with kzalloc so is already zero. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index fcc4510f81b3..03cc52e3c0d3 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -439,8 +439,6 @@ static void device_print_info(struct vnt_private *pDevice) static void vt6655_init_info(struct pci_dev *pcid, struct vnt_private **ppDevice) { - memset(*ppDevice, 0, sizeof(**ppDevice)); - (*ppDevice)->pcid = pcid; spin_lock_init(&((*ppDevice)->lock)); From f31798266f23edf85d32b38f7b2a755684d399ef Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:33 +0100 Subject: [PATCH 0356/2431] staging: vt6655: remove and move vt6655_init_info move code to vt6655_probe. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 03cc52e3c0d3..ce2df3747faa 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -28,7 +28,6 @@ * * vt6655_probe - module initial (insmod) driver entry * vt6655_remove - module remove entry - * vt6655_init_info - device structure resource allocation function * device_free_info - device structure resource free function * device_get_pci_info - get allocated pci io/mem resource * device_print_info - print out resource @@ -136,8 +135,6 @@ static const struct pci_device_id vt6655_pci_id_table[] = { /*--------------------- Static Functions --------------------------*/ static int vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent); -static void vt6655_init_info(struct pci_dev *pcid, - struct vnt_private **ppDevice); static void device_free_info(struct vnt_private *pDevice); static bool device_get_pci_info(struct vnt_private *, struct pci_dev *pcid); static void device_print_info(struct vnt_private *pDevice); @@ -436,14 +433,6 @@ static void device_print_info(struct vnt_private *pDevice) (unsigned long)pDevice->PortOffset, pDevice->pcid->irq); } -static void vt6655_init_info(struct pci_dev *pcid, - struct vnt_private **ppDevice) -{ - (*ppDevice)->pcid = pcid; - - spin_lock_init(&((*ppDevice)->lock)); -} - static bool device_get_pci_info(struct vnt_private *pDevice, struct pci_dev *pcid) { @@ -1643,8 +1632,9 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent) } priv = hw->priv; + priv->pcid = pcid; - vt6655_init_info(pcid, &priv); + spin_lock_init(&priv->lock); priv->hw = hw; From 7a95f96108efc94cd79d46245a70c3b5bf9c0840 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:34 +0100 Subject: [PATCH 0357/2431] staging: vt6655: device_get_pci_info remove unused pci_read_config_* These values are read from pci but never used. Removing variables byRevId, SubSystemID, SubVendorID and pci_cmd. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device.h | 3 --- drivers/staging/vt6655/device_main.c | 9 --------- 2 files changed, 12 deletions(-) diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index f020bb1522e0..271a719fe7dd 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -231,10 +231,7 @@ struct vnt_private { u32 memaddr; u32 ioaddr; - unsigned char byRevId; unsigned char byRxMode; - unsigned short SubSystemID; - unsigned short SubVendorID; spinlock_t lock; diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index ce2df3747faa..1e660ccf200f 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -230,9 +230,6 @@ static void device_init_registers(struct vnt_private *pDevice) pDevice->byTopOFDMBasicRate = RATE_24M; pDevice->byTopCCKBasicRate = RATE_1M; - /* Target to IF pin while programming to RF chip. */ - pDevice->byRevId = 0; - /* init MAC */ MACvInitialize(pDevice->PortOffset); @@ -436,15 +433,9 @@ static void device_print_info(struct vnt_private *pDevice) static bool device_get_pci_info(struct vnt_private *pDevice, struct pci_dev *pcid) { - u16 pci_cmd; u8 b; unsigned int cis_addr; - pci_read_config_byte(pcid, PCI_REVISION_ID, &pDevice->byRevId); - pci_read_config_word(pcid, PCI_SUBSYSTEM_ID, &pDevice->SubSystemID); - pci_read_config_word(pcid, PCI_SUBSYSTEM_VENDOR_ID, &pDevice->SubVendorID); - pci_read_config_word(pcid, PCI_COMMAND, (u16 *)&(pci_cmd)); - pci_set_master(pcid); pDevice->memaddr = pci_resource_start(pcid, 0); From 2ef1571b13859ce56bf779ddaf3b7be44eacc5d7 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:35 +0100 Subject: [PATCH 0358/2431] staging: vt6655: device_get_pci_info remove variable cis_addr. cis_addr is never used remove its call to pci_resource_start. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 1e660ccf200f..17fa6aa30eae 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -434,15 +434,12 @@ static bool device_get_pci_info(struct vnt_private *pDevice, struct pci_dev *pcid) { u8 b; - unsigned int cis_addr; pci_set_master(pcid); pDevice->memaddr = pci_resource_start(pcid, 0); pDevice->ioaddr = pci_resource_start(pcid, 1); - cis_addr = pci_resource_start(pcid, 2); - pDevice->pcid = pcid; pci_read_config_byte(pcid, PCI_COMMAND, &b); From 41652a21b7c11322f4efa6daa43deb7935a052f9 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:36 +0100 Subject: [PATCH 0359/2431] staging: vt6655: device_get_pci_info remove call to set master. a call to PCI_COMMAND is used to set master. However, a call to pci_set_master earlier in function which does the same thing. So remove the calls and variable b. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 17fa6aa30eae..edda8360e8ba 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -433,8 +433,6 @@ static void device_print_info(struct vnt_private *pDevice) static bool device_get_pci_info(struct vnt_private *pDevice, struct pci_dev *pcid) { - u8 b; - pci_set_master(pcid); pDevice->memaddr = pci_resource_start(pcid, 0); @@ -442,9 +440,6 @@ static bool device_get_pci_info(struct vnt_private *pDevice, pDevice->pcid = pcid; - pci_read_config_byte(pcid, PCI_COMMAND, &b); - pci_write_config_byte(pcid, PCI_COMMAND, (b|PCI_COMMAND_MASTER)); - return true; } From 70d66a6a753b19a3de5ab167fe8b941eac32c079 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:37 +0100 Subject: [PATCH 0360/2431] staging: vt6655: device_get_pci_info pcid already assigned. pcid has already been assigned earlier in vt6655_probe. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index edda8360e8ba..add9cdf01255 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -438,8 +438,6 @@ static bool device_get_pci_info(struct vnt_private *pDevice, pDevice->memaddr = pci_resource_start(pcid, 0); pDevice->ioaddr = pci_resource_start(pcid, 1); - pDevice->pcid = pcid; - return true; } From a03b8b3e18969e10d5fdc732a06b5c58c247e842 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:38 +0100 Subject: [PATCH 0361/2431] staging: vt6655: Move code in device_get_pci_info Function always returns true and now only a few lines move to vt6655_probe. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index add9cdf01255..326bce31c9ca 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -29,7 +29,6 @@ * vt6655_probe - module initial (insmod) driver entry * vt6655_remove - module remove entry * device_free_info - device structure resource free function - * device_get_pci_info - get allocated pci io/mem resource * device_print_info - print out resource * device_rx_srv - rx service function * device_alloc_rx_buf - rx buffer pre-allocated function @@ -136,7 +135,6 @@ static const struct pci_device_id vt6655_pci_id_table[] = { static int vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent); static void device_free_info(struct vnt_private *pDevice); -static bool device_get_pci_info(struct vnt_private *, struct pci_dev *pcid); static void device_print_info(struct vnt_private *pDevice); static void device_init_rd0_ring(struct vnt_private *pDevice); @@ -430,17 +428,6 @@ static void device_print_info(struct vnt_private *pDevice) (unsigned long)pDevice->PortOffset, pDevice->pcid->irq); } -static bool device_get_pci_info(struct vnt_private *pDevice, - struct pci_dev *pcid) -{ - pci_set_master(pcid); - - pDevice->memaddr = pci_resource_start(pcid, 0); - pDevice->ioaddr = pci_resource_start(pcid, 1); - - return true; -} - static void device_free_info(struct vnt_private *pDevice) { if (!pDevice) @@ -1629,12 +1616,10 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent) dev_dbg(&pcid->dev, "Before get pci_info memaddr is %x\n", priv->memaddr); - if (!device_get_pci_info(priv, pcid)) { - dev_err(&pcid->dev, ": Failed to find PCI device.\n"); - device_free_info(priv); - return -ENODEV; - } + pci_set_master(pcid); + priv->memaddr = pci_resource_start(pcid, 0); + priv->ioaddr = pci_resource_start(pcid, 1); priv->PortOffset = ioremap(priv->memaddr & PCI_BASE_ADDRESS_MEM_MASK, 256); if (!priv->PortOffset) { From 19f70eaedba8f2575e757b3439ed08a0dad9511b Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:33 +0300 Subject: [PATCH 0362/2431] staging: sm750fb: rename hwI2CInit to sm750_hw_i2c_init Fix the checkpatch warning about CamelCase Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 2 +- drivers/staging/sm750fb/ddk750_hwi2c.h | 2 +- drivers/staging/sm750fb/ddk750_sii164.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 5ddac430aea2..7eb122e6ac1a 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -9,7 +9,7 @@ #define HWI2C_WAIT_TIMEOUT 0xF0000 -int hwI2CInit( +int sm750_hw_i2c_init( unsigned char busSpeedMode ) { diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.h b/drivers/staging/sm750fb/ddk750_hwi2c.h index 0b830ba65eec..11381eb99309 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.h +++ b/drivers/staging/sm750fb/ddk750_hwi2c.h @@ -2,7 +2,7 @@ #define DDK750_HWI2C_H__ /* hwi2c functions */ -int hwI2CInit(unsigned char busSpeedMode); +int sm750_hw_i2c_init(unsigned char busSpeedMode); void hwI2CClose(void); unsigned char hwI2CReadReg(unsigned char deviceAddress, unsigned char registerIndex); diff --git a/drivers/staging/sm750fb/ddk750_sii164.c b/drivers/staging/sm750fb/ddk750_sii164.c index 0bdf3db11df0..1803b74b6f9f 100644 --- a/drivers/staging/sm750fb/ddk750_sii164.c +++ b/drivers/staging/sm750fb/ddk750_sii164.c @@ -130,7 +130,7 @@ long sii164InitChip( /* Initialize the i2c bus */ #ifdef USE_HW_I2C /* Use fast mode. */ - hwI2CInit(1); + sm750_hw_i2c_init(1); #else swI2CInit(DEFAULT_I2C_SCL, DEFAULT_I2C_SDA); #endif From ed7042edaf0b515088e83c692a895dfbebaa4678 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:34 +0300 Subject: [PATCH 0363/2431] staging: sm750fb: rename hwI2CClose to sm750_hw_i2c_close Fix the checkpatch warning about CamelCase Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 2 +- drivers/staging/sm750fb/ddk750_hwi2c.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 7eb122e6ac1a..8aa83ab1b31a 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -40,7 +40,7 @@ unsigned char busSpeedMode } -void hwI2CClose(void) +void sm750_hw_i2c_close(void) { unsigned int value; diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.h b/drivers/staging/sm750fb/ddk750_hwi2c.h index 11381eb99309..a8d23d2e6955 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.h +++ b/drivers/staging/sm750fb/ddk750_hwi2c.h @@ -3,7 +3,7 @@ /* hwi2c functions */ int sm750_hw_i2c_init(unsigned char busSpeedMode); -void hwI2CClose(void); +void sm750_hw_i2c_close(void); unsigned char hwI2CReadReg(unsigned char deviceAddress, unsigned char registerIndex); int hwI2CWriteReg(unsigned char deviceAddress, unsigned char registerIndex, unsigned char data); From 5ccf7340036b4dd1abf60ecafe77d14ce094468f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:35 +0300 Subject: [PATCH 0364/2431] staging: sm750fb: rename hwI2CReadReg to sm750_hw_i2c_read_reg Fix the checkpatch warning about CamelCase Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 2 +- drivers/staging/sm750fb/ddk750_hwi2c.h | 2 +- drivers/staging/sm750fb/ddk750_sii164.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 8aa83ab1b31a..03da0a756a2b 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -219,7 +219,7 @@ static unsigned int hwI2CReadData( * Return Value: * Register value */ -unsigned char hwI2CReadReg( +unsigned char sm750_hw_i2c_read_reg( unsigned char deviceAddress, unsigned char registerIndex ) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.h b/drivers/staging/sm750fb/ddk750_hwi2c.h index a8d23d2e6955..70a6007e5e68 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.h +++ b/drivers/staging/sm750fb/ddk750_hwi2c.h @@ -5,6 +5,6 @@ int sm750_hw_i2c_init(unsigned char busSpeedMode); void sm750_hw_i2c_close(void); -unsigned char hwI2CReadReg(unsigned char deviceAddress, unsigned char registerIndex); +unsigned char sm750_hw_i2c_read_reg(unsigned char deviceAddress, unsigned char registerIndex); int hwI2CWriteReg(unsigned char deviceAddress, unsigned char registerIndex, unsigned char data); #endif diff --git a/drivers/staging/sm750fb/ddk750_sii164.c b/drivers/staging/sm750fb/ddk750_sii164.c index 1803b74b6f9f..20dbc05987c7 100644 --- a/drivers/staging/sm750fb/ddk750_sii164.c +++ b/drivers/staging/sm750fb/ddk750_sii164.c @@ -12,7 +12,7 @@ #ifdef USE_HW_I2C #define i2cWriteReg hwI2CWriteReg - #define i2cReadReg hwI2CReadReg + #define i2cReadReg sm750_hw_i2c_read_reg #else #define i2cWriteReg swI2CWriteReg #define i2cReadReg swI2CReadReg From 6bdbe62b9d1bd6cc7853992b26d093630416dd0f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:36 +0300 Subject: [PATCH 0365/2431] staging: sm750fb: rename hwI2CWriteReg to sm750_hw_i2c_write_reg Fix the checkpatch warning about CamelCase Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 2 +- drivers/staging/sm750fb/ddk750_hwi2c.h | 2 +- drivers/staging/sm750fb/ddk750_sii164.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 03da0a756a2b..e6d31db037e6 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -249,7 +249,7 @@ unsigned char sm750_hw_i2c_read_reg( * 0 - Success * -1 - Fail */ -int hwI2CWriteReg( +int sm750_hw_i2c_write_reg( unsigned char deviceAddress, unsigned char registerIndex, unsigned char data diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.h b/drivers/staging/sm750fb/ddk750_hwi2c.h index 70a6007e5e68..29ce48daaf08 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.h +++ b/drivers/staging/sm750fb/ddk750_hwi2c.h @@ -6,5 +6,5 @@ int sm750_hw_i2c_init(unsigned char busSpeedMode); void sm750_hw_i2c_close(void); unsigned char sm750_hw_i2c_read_reg(unsigned char deviceAddress, unsigned char registerIndex); -int hwI2CWriteReg(unsigned char deviceAddress, unsigned char registerIndex, unsigned char data); +int sm750_hw_i2c_write_reg(unsigned char deviceAddress, unsigned char registerIndex, unsigned char data); #endif diff --git a/drivers/staging/sm750fb/ddk750_sii164.c b/drivers/staging/sm750fb/ddk750_sii164.c index 20dbc05987c7..3d129aae6800 100644 --- a/drivers/staging/sm750fb/ddk750_sii164.c +++ b/drivers/staging/sm750fb/ddk750_sii164.c @@ -11,7 +11,7 @@ #define USE_HW_I2C #ifdef USE_HW_I2C - #define i2cWriteReg hwI2CWriteReg + #define i2cWriteReg sm750_hw_i2c_write_reg #define i2cReadReg sm750_hw_i2c_read_reg #else #define i2cWriteReg swI2CWriteReg From ac1189513f4c60adc4f350ff6abb01928dcccae2 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:37 +0300 Subject: [PATCH 0366/2431] staging: sm750fb: ddk750_hwi2c: rename CamelCase static functions Fix the checkpatch warning about CamelCase. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index e6d31db037e6..65c15461c2fe 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -60,7 +60,7 @@ void sm750_hw_i2c_close(void) } -static long hwI2CWaitTXDone(void) +static long hw_i2c_wait_tx_done(void) { unsigned int timeout; @@ -90,7 +90,7 @@ static long hwI2CWaitTXDone(void) * Return Value: * Total number of bytes those are actually written. */ -static unsigned int hwI2CWriteData( +static unsigned int hw_i2c_write_data( unsigned char deviceAddress, unsigned int length, unsigned char *pBuffer @@ -125,7 +125,7 @@ static unsigned int hwI2CWriteData( POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); /* Wait until the transfer is completed. */ - if (hwI2CWaitTXDone() != 0) + if (hw_i2c_wait_tx_done() != 0) break; /* Substract length */ @@ -156,7 +156,7 @@ static unsigned int hwI2CWriteData( * Return Value: * Total number of actual bytes read from the slave device */ -static unsigned int hwI2CReadData( +static unsigned int hw_i2c_read_data( unsigned char deviceAddress, unsigned int length, unsigned char *pBuffer @@ -187,7 +187,7 @@ static unsigned int hwI2CReadData( POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); /* Wait until transaction done. */ - if (hwI2CWaitTXDone() != 0) + if (hw_i2c_wait_tx_done() != 0) break; /* Save the data to the given buffer */ @@ -226,8 +226,8 @@ unsigned char sm750_hw_i2c_read_reg( { unsigned char value = (0xFF); - if (hwI2CWriteData(deviceAddress, 1, ®isterIndex) == 1) - hwI2CReadData(deviceAddress, 1, &value); + if (hw_i2c_write_data(deviceAddress, 1, ®isterIndex) == 1) + hw_i2c_read_data(deviceAddress, 1, &value); return value; } @@ -259,7 +259,7 @@ int sm750_hw_i2c_write_reg( value[0] = registerIndex; value[1] = data; - if (hwI2CWriteData(deviceAddress, 2, value) == 2) + if (hw_i2c_write_data(deviceAddress, 2, value) == 2) return 0; return (-1); From f2ea7733ddd741e0803015271573fec0c529ba27 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:38 +0300 Subject: [PATCH 0367/2431] staging: sm750fb: rename swI2CInit to sm750_sw_i2c_init Fix the checkpatch warning about CamelCase. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_sii164.c | 2 +- drivers/staging/sm750fb/ddk750_swi2c.c | 2 +- drivers/staging/sm750fb/ddk750_swi2c.h | 2 +- drivers/staging/sm750fb/sm750_hw.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_sii164.c b/drivers/staging/sm750fb/ddk750_sii164.c index 3d129aae6800..241b77b927ee 100644 --- a/drivers/staging/sm750fb/ddk750_sii164.c +++ b/drivers/staging/sm750fb/ddk750_sii164.c @@ -132,7 +132,7 @@ long sii164InitChip( /* Use fast mode. */ sm750_hw_i2c_init(1); #else - swI2CInit(DEFAULT_I2C_SCL, DEFAULT_I2C_SDA); + sm750_sw_i2c_init(DEFAULT_I2C_SCL, DEFAULT_I2C_SDA); #endif /* Check if SII164 Chip exists */ diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 5133bccf17bd..ecfd300d432f 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -386,7 +386,7 @@ static long swI2CInit_SM750LE(unsigned char i2cClkGPIO, * -1 - Fail to initialize the i2c * 0 - Success */ -long swI2CInit( +long sm750_sw_i2c_init( unsigned char i2cClkGPIO, unsigned char i2cDataGPIO ) diff --git a/drivers/staging/sm750fb/ddk750_swi2c.h b/drivers/staging/sm750fb/ddk750_swi2c.h index 4af2b7aa1f17..1e18b805e679 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.h +++ b/drivers/staging/sm750fb/ddk750_swi2c.h @@ -28,7 +28,7 @@ * -1 - Fail to initialize the i2c * 0 - Success */ -long swI2CInit( +long sm750_sw_i2c_init( unsigned char i2cClkGPIO, unsigned char i2cDataGPIO ); diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 7317ba9b7fe5..522736eafcd5 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -169,7 +169,7 @@ int hw_sm750_inithw(struct lynx_share *share, struct pci_dev *pdev) /* Set up GPIO for software I2C to program DVI chip in the Xilinx SP605 board, in order to have video signal. */ - swI2CInit(0, 1); + sm750_sw_i2c_init(0, 1); /* Customer may NOT use CH7301 DVI chip, which has to be From 288836b69f1a3fd96d742fdf9bc4a827f8f625e5 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:39 +0300 Subject: [PATCH 0368/2431] staging: sm750fb: rename swI2CReadReg to sm750_sw_i2c_read_reg Fix the checkpatch warning about CamelCase. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_swi2c.c | 2 +- drivers/staging/sm750fb/ddk750_swi2c.h | 2 +- drivers/staging/sm750fb/sm750_hw.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index ecfd300d432f..765edd628aff 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -443,7 +443,7 @@ long sm750_sw_i2c_init( * Return Value: * Register value */ -unsigned char swI2CReadReg( +unsigned char sm750_sw_i2c_read_reg( unsigned char deviceAddress, unsigned char registerIndex ) diff --git a/drivers/staging/sm750fb/ddk750_swi2c.h b/drivers/staging/sm750fb/ddk750_swi2c.h index 1e18b805e679..2e87a6371292 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.h +++ b/drivers/staging/sm750fb/ddk750_swi2c.h @@ -44,7 +44,7 @@ long sm750_sw_i2c_init( * Return Value: * Register value */ -unsigned char swI2CReadReg( +unsigned char sm750_sw_i2c_read_reg( unsigned char deviceAddress, unsigned char registerIndex ); diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 522736eafcd5..b8b5e000f62b 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -175,7 +175,7 @@ int hw_sm750_inithw(struct lynx_share *share, struct pci_dev *pdev) /* Customer may NOT use CH7301 DVI chip, which has to be initialized differently. */ - if (swI2CReadReg(0xec, 0x4a) == 0x95) { + if (sm750_sw_i2c_read_reg(0xec, 0x4a) == 0x95) { /* The following register values for CH7301 are from Chrontel app note and our experiment. */ From d33b42048ed97dfacc031707e3aefa63da631237 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:40 +0300 Subject: [PATCH 0369/2431] staging: sm750fb: rename swI2CWriteReg to sm750_sw_i2c_write_reg Fix the checkpatch warning about CamelCase. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_swi2c.c | 2 +- drivers/staging/sm750fb/ddk750_swi2c.h | 2 +- drivers/staging/sm750fb/sm750_hw.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 765edd628aff..e3f60ebe7d09 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -483,7 +483,7 @@ unsigned char sm750_sw_i2c_read_reg( * 0 - Success * -1 - Fail */ -long swI2CWriteReg( +long sm750_sw_i2c_write_reg( unsigned char deviceAddress, unsigned char registerIndex, unsigned char data diff --git a/drivers/staging/sm750fb/ddk750_swi2c.h b/drivers/staging/sm750fb/ddk750_swi2c.h index 2e87a6371292..37335dd50dff 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.h +++ b/drivers/staging/sm750fb/ddk750_swi2c.h @@ -62,7 +62,7 @@ unsigned char sm750_sw_i2c_read_reg( * 0 - Success * -1 - Fail */ -long swI2CWriteReg( +long sm750_sw_i2c_write_reg( unsigned char deviceAddress, unsigned char registerIndex, unsigned char data diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index b8b5e000f62b..de30429591bb 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -180,9 +180,9 @@ int hw_sm750_inithw(struct lynx_share *share, struct pci_dev *pdev) Chrontel app note and our experiment. */ pr_info("yes,CH7301 DVI chip found\n"); - swI2CWriteReg(0xec, 0x1d, 0x16); - swI2CWriteReg(0xec, 0x21, 0x9); - swI2CWriteReg(0xec, 0x49, 0xC0); + sm750_sw_i2c_write_reg(0xec, 0x1d, 0x16); + sm750_sw_i2c_write_reg(0xec, 0x21, 0x9); + sm750_sw_i2c_write_reg(0xec, 0x49, 0xC0); pr_info("okay,CH7301 DVI chip setup done\n"); } } From 01a64c4469acf6556c7e622e8874f84cb95a23bf Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:41 +0300 Subject: [PATCH 0370/2431] staging: sm750fb: ddk750_swi2c: staticize swI2C{SCL,SDA} swI2C{SCL,SDA} are not used outside ddk750_swi2c, make them static Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_swi2c.c | 4 ++-- drivers/staging/sm750fb/ddk750_swi2c.h | 21 --------------------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index e3f60ebe7d09..6a10ae3c142a 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -119,7 +119,7 @@ static void swI2CWait(void) * signal because the i2c will fail when other device try to drive the * signal due to SM50x will drive the signal to always high. */ -void swI2CSCL(unsigned char value) +static void swI2CSCL(unsigned char value) { unsigned long ulGPIOData; unsigned long ulGPIODirection; @@ -153,7 +153,7 @@ void swI2CSCL(unsigned char value) * signal because the i2c will fail when other device try to drive the * signal due to SM50x will drive the signal to always high. */ -void swI2CSDA(unsigned char value) +static void swI2CSDA(unsigned char value) { unsigned long ulGPIOData; unsigned long ulGPIODirection; diff --git a/drivers/staging/sm750fb/ddk750_swi2c.h b/drivers/staging/sm750fb/ddk750_swi2c.h index 37335dd50dff..27a04f3a6548 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.h +++ b/drivers/staging/sm750fb/ddk750_swi2c.h @@ -68,25 +68,4 @@ long sm750_sw_i2c_write_reg( unsigned char data ); -/* - * These two functions toggle the data on the SCL and SDA I2C lines. - * The use of these two functions is not recommended unless it is necessary. - */ - -/* - * This function set/reset the SCL GPIO pin - * - * Parameters: - * value - Bit value to set to the SCL or SDA (0 = low, 1 = high) - */ -void swI2CSCL(unsigned char value); - -/* - * This function set/reset the SDA GPIO pin - * - * Parameters: - * value - Bit value to set to the SCL or SDA (0 = low, 1 = high) - */ -void swI2CSDA(unsigned char value); - #endif /* _SWI2C_H_ */ From 6c78f4ce60437e5292202241c317bd2a9e05d3ac Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:42 +0300 Subject: [PATCH 0371/2431] staging: sm750fb: ddk750_swi2c: rename CamelCase static functions Fix the checkpatch warning about CamelCase. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_swi2c.c | 116 ++++++++++++------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 6a10ae3c142a..faaf85823a6a 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -82,7 +82,7 @@ static unsigned long g_i2cDataGPIODataDirReg = GPIO_DATA_DIRECTION; /* * This function puts a delay between command */ -static void swI2CWait(void) +static void sw_i2c_wait(void) { /* find a bug: * peekIO method works well before suspend/resume @@ -119,7 +119,7 @@ static void swI2CWait(void) * signal because the i2c will fail when other device try to drive the * signal due to SM50x will drive the signal to always high. */ -static void swI2CSCL(unsigned char value) +static void sw_i2c_scl(unsigned char value) { unsigned long ulGPIOData; unsigned long ulGPIODirection; @@ -153,7 +153,7 @@ static void swI2CSCL(unsigned char value) * signal because the i2c will fail when other device try to drive the * signal due to SM50x will drive the signal to always high. */ -static void swI2CSDA(unsigned char value) +static void sw_i2c_sda(unsigned char value) { unsigned long ulGPIOData; unsigned long ulGPIODirection; @@ -181,7 +181,7 @@ static void swI2CSDA(unsigned char value) * Return Value: * The SDA data bit sent by the Slave */ -static unsigned char swI2CReadSDA(void) +static unsigned char sw_i2c_read_sda(void) { unsigned long ulGPIODirection; unsigned long ulGPIOData; @@ -204,7 +204,7 @@ static unsigned char swI2CReadSDA(void) /* * This function sends ACK signal */ -static void swI2CAck(void) +static void sw_i2c_ack(void) { return; /* Single byte read is ok without it. */ } @@ -212,23 +212,23 @@ static void swI2CAck(void) /* * This function sends the start command to the slave device */ -static void swI2CStart(void) +static void sw_i2c_start(void) { /* Start I2C */ - swI2CSDA(1); - swI2CSCL(1); - swI2CSDA(0); + sw_i2c_sda(1); + sw_i2c_scl(1); + sw_i2c_sda(0); } /* * This function sends the stop command to the slave device */ -static void swI2CStop(void) +static void sw_i2c_stop(void) { /* Stop the I2C */ - swI2CSCL(1); - swI2CSDA(0); - swI2CSDA(1); + sw_i2c_scl(1); + sw_i2c_sda(0); + sw_i2c_sda(1); } /* @@ -241,7 +241,7 @@ static void swI2CStop(void) * 0 - Success * -1 - Fail to write byte */ -static long swI2CWriteByte(unsigned char data) +static long sw_i2c_write_byte(unsigned char data) { unsigned char value = data; int i; @@ -249,47 +249,47 @@ static long swI2CWriteByte(unsigned char data) /* Sending the data bit by bit */ for (i = 0; i < 8; i++) { /* Set SCL to low */ - swI2CSCL(0); + sw_i2c_scl(0); /* Send data bit */ if ((value & 0x80) != 0) - swI2CSDA(1); + sw_i2c_sda(1); else - swI2CSDA(0); + sw_i2c_sda(0); - swI2CWait(); + sw_i2c_wait(); /* Toggle clk line to one */ - swI2CSCL(1); - swI2CWait(); + sw_i2c_scl(1); + sw_i2c_wait(); /* Shift byte to be sent */ value = value << 1; } /* Set the SCL Low and SDA High (prepare to get input) */ - swI2CSCL(0); - swI2CSDA(1); + sw_i2c_scl(0); + sw_i2c_sda(1); /* Set the SCL High for ack */ - swI2CWait(); - swI2CSCL(1); - swI2CWait(); + sw_i2c_wait(); + sw_i2c_scl(1); + sw_i2c_wait(); /* Read SDA, until SDA==0 */ for (i = 0; i < 0xff; i++) { - if (!swI2CReadSDA()) + if (!sw_i2c_read_sda()) break; - swI2CSCL(0); - swI2CWait(); - swI2CSCL(1); - swI2CWait(); + sw_i2c_scl(0); + sw_i2c_wait(); + sw_i2c_scl(1); + sw_i2c_wait(); } /* Set the SCL Low and SDA High */ - swI2CSCL(0); - swI2CSDA(1); + sw_i2c_scl(0); + sw_i2c_sda(1); if (i < 0xff) return 0; @@ -307,31 +307,31 @@ static long swI2CWriteByte(unsigned char data) * Return Value: * One byte data read from the Slave device */ -static unsigned char swI2CReadByte(unsigned char ack) +static unsigned char sw_i2c_read_byte(unsigned char ack) { int i; unsigned char data = 0; for (i = 7; i >= 0; i--) { /* Set the SCL to Low and SDA to High (Input) */ - swI2CSCL(0); - swI2CSDA(1); - swI2CWait(); + sw_i2c_scl(0); + sw_i2c_sda(1); + sw_i2c_wait(); /* Set the SCL High */ - swI2CSCL(1); - swI2CWait(); + sw_i2c_scl(1); + sw_i2c_wait(); /* Read data bits from SDA */ - data |= (swI2CReadSDA() << i); + data |= (sw_i2c_read_sda() << i); } if (ack) - swI2CAck(); + sw_i2c_ack(); /* Set the SCL Low and SDA High */ - swI2CSCL(0); - swI2CSDA(1); + sw_i2c_scl(0); + sw_i2c_sda(1); return data; } @@ -347,7 +347,7 @@ static unsigned char swI2CReadByte(unsigned char ack) * -1 - Fail to initialize the i2c * 0 - Success */ -static long swI2CInit_SM750LE(unsigned char i2cClkGPIO, +static long sm750le_i2c_init(unsigned char i2cClkGPIO, unsigned char i2cDataGPIO) { int i; @@ -370,7 +370,7 @@ static long swI2CInit_SM750LE(unsigned char i2cClkGPIO, /* Clear the i2c lines. */ for (i = 0; i < 9; i++) - swI2CStop(); + sw_i2c_stop(); return 0; } @@ -398,7 +398,7 @@ long sm750_sw_i2c_init( return -1; if (getChipType() == SM750LE) - return swI2CInit_SM750LE(i2cClkGPIO, i2cDataGPIO); + return sm750le_i2c_init(i2cClkGPIO, i2cDataGPIO); /* Initialize the GPIO pin for the i2c Clock Register */ g_i2cClkGPIOMuxReg = GPIO_MUX; @@ -427,7 +427,7 @@ long sm750_sw_i2c_init( /* Clear the i2c lines. */ for (i = 0; i < 9; i++) - swI2CStop(); + sw_i2c_stop(); return 0; } @@ -451,21 +451,21 @@ unsigned char sm750_sw_i2c_read_reg( unsigned char data; /* Send the Start signal */ - swI2CStart(); + sw_i2c_start(); /* Send the device address */ - swI2CWriteByte(deviceAddress); + sw_i2c_write_byte(deviceAddress); /* Send the register index */ - swI2CWriteByte(registerIndex); + sw_i2c_write_byte(registerIndex); /* Get the bus again and get the data from the device read address */ - swI2CStart(); - swI2CWriteByte(deviceAddress + 1); - data = swI2CReadByte(1); + sw_i2c_start(); + sw_i2c_write_byte(deviceAddress + 1); + data = sw_i2c_read_byte(1); /* Stop swI2C and release the bus */ - swI2CStop(); + sw_i2c_stop(); return data; } @@ -492,19 +492,19 @@ long sm750_sw_i2c_write_reg( long returnValue = 0; /* Send the Start signal */ - swI2CStart(); + sw_i2c_start(); /* Send the device address and read the data. All should return success in order for the writing processed to be successful */ - if ((swI2CWriteByte(deviceAddress) != 0) || - (swI2CWriteByte(registerIndex) != 0) || - (swI2CWriteByte(data) != 0)) { + if ((sw_i2c_write_byte(deviceAddress) != 0) || + (sw_i2c_write_byte(registerIndex) != 0) || + (sw_i2c_write_byte(data) != 0)) { returnValue = -1; } /* Stop i2c and release the bus */ - swI2CStop(); + sw_i2c_stop(); return returnValue; } From a503da64fdde16b745f6465659fcc40e2ece8ee7 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:43 +0300 Subject: [PATCH 0372/2431] staging: sm750fb: ddk750_hw_i2c: rename busSpeedMode rename CamelCase parameter in sm750_hw_i2c_init() Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 4 ++-- drivers/staging/sm750fb/ddk750_hwi2c.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 65c15461c2fe..a35505dffa4e 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -10,7 +10,7 @@ int sm750_hw_i2c_init( -unsigned char busSpeedMode +unsigned char bus_speed_mode ) { unsigned int value; @@ -29,7 +29,7 @@ unsigned char busSpeedMode /* Enable the I2C Controller and set the bus speed mode */ value = PEEK32(I2C_CTRL); - if (busSpeedMode == 0) + if (bus_speed_mode == 0) value = FIELD_SET(value, I2C_CTRL, MODE, STANDARD); else value = FIELD_SET(value, I2C_CTRL, MODE, FAST); diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.h b/drivers/staging/sm750fb/ddk750_hwi2c.h index 29ce48daaf08..5872f9c0010c 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.h +++ b/drivers/staging/sm750fb/ddk750_hwi2c.h @@ -2,7 +2,7 @@ #define DDK750_HWI2C_H__ /* hwi2c functions */ -int sm750_hw_i2c_init(unsigned char busSpeedMode); +int sm750_hw_i2c_init(unsigned char bus_speed_mode); void sm750_hw_i2c_close(void); unsigned char sm750_hw_i2c_read_reg(unsigned char deviceAddress, unsigned char registerIndex); From 938ad7edf21b16f93e9309e3d859a1aa4685f164 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:44 +0300 Subject: [PATCH 0373/2431] staging: sm750fb: hw_i2c_{read,write}: rename CamelCase variables Rename longCamelCase variables deviceAddress and registerIndex to shorter addr and reg Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 16 ++++++++-------- drivers/staging/sm750fb/ddk750_hwi2c.h | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index a35505dffa4e..abac6ae6cae6 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -220,14 +220,14 @@ static unsigned int hw_i2c_read_data( * Register value */ unsigned char sm750_hw_i2c_read_reg( - unsigned char deviceAddress, - unsigned char registerIndex + unsigned char addr, + unsigned char reg ) { unsigned char value = (0xFF); - if (hw_i2c_write_data(deviceAddress, 1, ®isterIndex) == 1) - hw_i2c_read_data(deviceAddress, 1, &value); + if (hw_i2c_write_data(addr, 1, ®) == 1) + hw_i2c_read_data(addr, 1, &value); return value; } @@ -250,16 +250,16 @@ unsigned char sm750_hw_i2c_read_reg( * -1 - Fail */ int sm750_hw_i2c_write_reg( - unsigned char deviceAddress, - unsigned char registerIndex, + unsigned char addr, + unsigned char reg, unsigned char data ) { unsigned char value[2]; - value[0] = registerIndex; + value[0] = reg; value[1] = data; - if (hw_i2c_write_data(deviceAddress, 2, value) == 2) + if (hw_i2c_write_data(addr, 2, value) == 2) return 0; return (-1); diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.h b/drivers/staging/sm750fb/ddk750_hwi2c.h index 5872f9c0010c..2827865ce689 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.h +++ b/drivers/staging/sm750fb/ddk750_hwi2c.h @@ -5,6 +5,6 @@ int sm750_hw_i2c_init(unsigned char bus_speed_mode); void sm750_hw_i2c_close(void); -unsigned char sm750_hw_i2c_read_reg(unsigned char deviceAddress, unsigned char registerIndex); -int sm750_hw_i2c_write_reg(unsigned char deviceAddress, unsigned char registerIndex, unsigned char data); +unsigned char sm750_hw_i2c_read_reg(unsigned char addr, unsigned char reg); +int sm750_hw_i2c_write_reg(unsigned char addr, unsigned char reg, unsigned char data); #endif From b3696b797185396090da1f2661f242317a3cd795 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:45 +0300 Subject: [PATCH 0374/2431] staging: sm750fb: ddk750_hwi2c: reduce amount of CamelCase Rename camel case variables deviceAddress, pBuffer and totalBytes to addr, buf and total_bytes respectively in sm750_hw_i2c_{read,write}_data functions. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index abac6ae6cae6..8d06f486eef6 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -82,25 +82,25 @@ static long hw_i2c_wait_tx_done(void) * This function writes data to the i2c slave device registers. * * Parameters: - * deviceAddress - i2c Slave device address + * addr - i2c Slave device address * length - Total number of bytes to be written to the device - * pBuffer - The buffer that contains the data to be written to the + * buf - The buffer that contains the data to be written to the * i2c device. * * Return Value: * Total number of bytes those are actually written. */ static unsigned int hw_i2c_write_data( - unsigned char deviceAddress, + unsigned char addr, unsigned int length, - unsigned char *pBuffer + unsigned char *buf ) { unsigned char count, i; - unsigned int totalBytes = 0; + unsigned int total_bytes = 0; /* Set the Device Address */ - POKE32(I2C_SLAVE_ADDRESS, deviceAddress & ~0x01); + POKE32(I2C_SLAVE_ADDRESS, addr & ~0x01); /* Write data. * Note: @@ -119,7 +119,7 @@ static unsigned int hw_i2c_write_data( /* Move the data to the I2C data register */ for (i = 0; i <= count; i++) - POKE32(I2C_DATA0 + i, *pBuffer++); + POKE32(I2C_DATA0 + i, *buf++); /* Start the I2C */ POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); @@ -132,11 +132,11 @@ static unsigned int hw_i2c_write_data( length -= (count + 1); /* Total byte written */ - totalBytes += (count + 1); + total_bytes += (count + 1); } while (length > 0); - return totalBytes; + return total_bytes; } @@ -147,9 +147,9 @@ static unsigned int hw_i2c_write_data( * in the given buffer * * Parameters: - * deviceAddress - i2c Slave device address + * addr - i2c Slave device address * length - Total number of bytes to be read - * pBuffer - Pointer to a buffer to be filled with the data read + * buf - Pointer to a buffer to be filled with the data read * from the slave device. It has to be the same size as the * length to make sure that it can keep all the data read. * @@ -157,16 +157,16 @@ static unsigned int hw_i2c_write_data( * Total number of actual bytes read from the slave device */ static unsigned int hw_i2c_read_data( - unsigned char deviceAddress, + unsigned char addr, unsigned int length, - unsigned char *pBuffer + unsigned char *buf ) { unsigned char count, i; - unsigned int totalBytes = 0; + unsigned int total_bytes = 0; /* Set the Device Address */ - POKE32(I2C_SLAVE_ADDRESS, deviceAddress | 0x01); + POKE32(I2C_SLAVE_ADDRESS, addr | 0x01); /* Read data and save them to the buffer. * Note: @@ -192,17 +192,17 @@ static unsigned int hw_i2c_read_data( /* Save the data to the given buffer */ for (i = 0; i <= count; i++) - *pBuffer++ = PEEK32(I2C_DATA0 + i); + *buf++ = PEEK32(I2C_DATA0 + i); /* Substract length by 16 */ length -= (count + 1); /* Number of bytes read. */ - totalBytes += (count + 1); + total_bytes += (count + 1); } while (length > 0); - return totalBytes; + return total_bytes; } From 53bc6b6e1a8d7f6a2e16ef701b7c0ecfe627c396 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:46 +0300 Subject: [PATCH 0375/2431] staging: sm750fb: ddk750_swi2c: rename CamelCase static variables Rename static variables defining I2C GPIO pins and their control registers from CamelCase. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_swi2c.c | 96 +++++++++++++------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index faaf85823a6a..1d7e8f665e63 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -55,8 +55,8 @@ ******************************************************************/ /* GPIO pins used for this I2C. It ranges from 0 to 63. */ -static unsigned char g_i2cClockGPIO = DEFAULT_I2C_SCL; -static unsigned char g_i2cDataGPIO = DEFAULT_I2C_SDA; +static unsigned char sw_i2c_clk_gpio = DEFAULT_I2C_SCL; +static unsigned char sw_i2c_data_gpio = DEFAULT_I2C_SDA; /* * Below is the variable declaration for the GPIO pin register usage @@ -70,14 +70,14 @@ static unsigned char g_i2cDataGPIO = DEFAULT_I2C_SDA; */ /* i2c Clock GPIO Register usage */ -static unsigned long g_i2cClkGPIOMuxReg = GPIO_MUX; -static unsigned long g_i2cClkGPIODataReg = GPIO_DATA; -static unsigned long g_i2cClkGPIODataDirReg = GPIO_DATA_DIRECTION; +static unsigned long sw_i2c_clk_gpio_mux_reg = GPIO_MUX; +static unsigned long sw_i2c_clk_gpio_data_reg = GPIO_DATA; +static unsigned long sw_i2c_clk_gpio_data_dir_reg = GPIO_DATA_DIRECTION; /* i2c Data GPIO Register usage */ -static unsigned long g_i2cDataGPIOMuxReg = GPIO_MUX; -static unsigned long g_i2cDataGPIODataReg = GPIO_DATA; -static unsigned long g_i2cDataGPIODataDirReg = GPIO_DATA_DIRECTION; +static unsigned long sw_i2c_data_gpio_mux_reg = GPIO_MUX; +static unsigned long sw_i2c_data_gpio_data_reg = GPIO_DATA; +static unsigned long sw_i2c_data_gpio_data_dir_reg = GPIO_DATA_DIRECTION; /* * This function puts a delay between command @@ -124,20 +124,20 @@ static void sw_i2c_scl(unsigned char value) unsigned long ulGPIOData; unsigned long ulGPIODirection; - ulGPIODirection = PEEK32(g_i2cClkGPIODataDirReg); + ulGPIODirection = PEEK32(sw_i2c_clk_gpio_data_dir_reg); if (value) { /* High */ /* Set direction as input. This will automatically pull the signal up. */ - ulGPIODirection &= ~(1 << g_i2cClockGPIO); - POKE32(g_i2cClkGPIODataDirReg, ulGPIODirection); + ulGPIODirection &= ~(1 << sw_i2c_clk_gpio); + POKE32(sw_i2c_clk_gpio_data_dir_reg, ulGPIODirection); } else { /* Low */ /* Set the signal down */ - ulGPIOData = PEEK32(g_i2cClkGPIODataReg); - ulGPIOData &= ~(1 << g_i2cClockGPIO); - POKE32(g_i2cClkGPIODataReg, ulGPIOData); + ulGPIOData = PEEK32(sw_i2c_clk_gpio_data_reg); + ulGPIOData &= ~(1 << sw_i2c_clk_gpio); + POKE32(sw_i2c_clk_gpio_data_reg, ulGPIOData); /* Set direction as output */ - ulGPIODirection |= (1 << g_i2cClockGPIO); - POKE32(g_i2cClkGPIODataDirReg, ulGPIODirection); + ulGPIODirection |= (1 << sw_i2c_clk_gpio); + POKE32(sw_i2c_clk_gpio_data_dir_reg, ulGPIODirection); } } @@ -158,20 +158,20 @@ static void sw_i2c_sda(unsigned char value) unsigned long ulGPIOData; unsigned long ulGPIODirection; - ulGPIODirection = PEEK32(g_i2cDataGPIODataDirReg); + ulGPIODirection = PEEK32(sw_i2c_data_gpio_data_dir_reg); if (value) { /* High */ /* Set direction as input. This will automatically pull the signal up. */ - ulGPIODirection &= ~(1 << g_i2cDataGPIO); - POKE32(g_i2cDataGPIODataDirReg, ulGPIODirection); + ulGPIODirection &= ~(1 << sw_i2c_data_gpio); + POKE32(sw_i2c_data_gpio_data_dir_reg, ulGPIODirection); } else { /* Low */ /* Set the signal down */ - ulGPIOData = PEEK32(g_i2cDataGPIODataReg); - ulGPIOData &= ~(1 << g_i2cDataGPIO); - POKE32(g_i2cDataGPIODataReg, ulGPIOData); + ulGPIOData = PEEK32(sw_i2c_data_gpio_data_reg); + ulGPIOData &= ~(1 << sw_i2c_data_gpio); + POKE32(sw_i2c_data_gpio_data_reg, ulGPIOData); /* Set direction as output */ - ulGPIODirection |= (1 << g_i2cDataGPIO); - POKE32(g_i2cDataGPIODataDirReg, ulGPIODirection); + ulGPIODirection |= (1 << sw_i2c_data_gpio); + POKE32(sw_i2c_data_gpio_data_dir_reg, ulGPIODirection); } } @@ -187,15 +187,15 @@ static unsigned char sw_i2c_read_sda(void) unsigned long ulGPIOData; /* Make sure that the direction is input (High) */ - ulGPIODirection = PEEK32(g_i2cDataGPIODataDirReg); - if ((ulGPIODirection & (1 << g_i2cDataGPIO)) != (~(1 << g_i2cDataGPIO))) { - ulGPIODirection &= ~(1 << g_i2cDataGPIO); - POKE32(g_i2cDataGPIODataDirReg, ulGPIODirection); + ulGPIODirection = PEEK32(sw_i2c_data_gpio_data_dir_reg); + if ((ulGPIODirection & (1 << sw_i2c_data_gpio)) != (~(1 << sw_i2c_data_gpio))) { + ulGPIODirection &= ~(1 << sw_i2c_data_gpio); + POKE32(sw_i2c_data_gpio_data_dir_reg, ulGPIODirection); } /* Now read the SDA line */ - ulGPIOData = PEEK32(g_i2cDataGPIODataReg); - if (ulGPIOData & (1 << g_i2cDataGPIO)) + ulGPIOData = PEEK32(sw_i2c_data_gpio_data_reg); + if (ulGPIOData & (1 << sw_i2c_data_gpio)) return 1; else return 0; @@ -353,18 +353,18 @@ static long sm750le_i2c_init(unsigned char i2cClkGPIO, int i; /* Initialize the GPIO pin for the i2c Clock Register */ - g_i2cClkGPIODataReg = GPIO_DATA_SM750LE; - g_i2cClkGPIODataDirReg = GPIO_DATA_DIRECTION_SM750LE; + sw_i2c_clk_gpio_data_reg = GPIO_DATA_SM750LE; + sw_i2c_clk_gpio_data_dir_reg = GPIO_DATA_DIRECTION_SM750LE; /* Initialize the Clock GPIO Offset */ - g_i2cClockGPIO = i2cClkGPIO; + sw_i2c_clk_gpio = i2cClkGPIO; /* Initialize the GPIO pin for the i2c Data Register */ - g_i2cDataGPIODataReg = GPIO_DATA_SM750LE; - g_i2cDataGPIODataDirReg = GPIO_DATA_DIRECTION_SM750LE; + sw_i2c_data_gpio_data_reg = GPIO_DATA_SM750LE; + sw_i2c_data_gpio_data_dir_reg = GPIO_DATA_DIRECTION_SM750LE; /* Initialize the Data GPIO Offset */ - g_i2cDataGPIO = i2cDataGPIO; + sw_i2c_data_gpio = i2cDataGPIO; /* Note that SM750LE don't have GPIO MUX and power is always on */ @@ -401,26 +401,26 @@ long sm750_sw_i2c_init( return sm750le_i2c_init(i2cClkGPIO, i2cDataGPIO); /* Initialize the GPIO pin for the i2c Clock Register */ - g_i2cClkGPIOMuxReg = GPIO_MUX; - g_i2cClkGPIODataReg = GPIO_DATA; - g_i2cClkGPIODataDirReg = GPIO_DATA_DIRECTION; + sw_i2c_clk_gpio_mux_reg = GPIO_MUX; + sw_i2c_clk_gpio_data_reg = GPIO_DATA; + sw_i2c_clk_gpio_data_dir_reg = GPIO_DATA_DIRECTION; /* Initialize the Clock GPIO Offset */ - g_i2cClockGPIO = i2cClkGPIO; + sw_i2c_clk_gpio = i2cClkGPIO; /* Initialize the GPIO pin for the i2c Data Register */ - g_i2cDataGPIOMuxReg = GPIO_MUX; - g_i2cDataGPIODataReg = GPIO_DATA; - g_i2cDataGPIODataDirReg = GPIO_DATA_DIRECTION; + sw_i2c_data_gpio_mux_reg = GPIO_MUX; + sw_i2c_data_gpio_data_reg = GPIO_DATA; + sw_i2c_data_gpio_data_dir_reg = GPIO_DATA_DIRECTION; /* Initialize the Data GPIO Offset */ - g_i2cDataGPIO = i2cDataGPIO; + sw_i2c_data_gpio = i2cDataGPIO; /* Enable the GPIO pins for the i2c Clock and Data (GPIO MUX) */ - POKE32(g_i2cClkGPIOMuxReg, - PEEK32(g_i2cClkGPIOMuxReg) & ~(1 << g_i2cClockGPIO)); - POKE32(g_i2cDataGPIOMuxReg, - PEEK32(g_i2cDataGPIOMuxReg) & ~(1 << g_i2cDataGPIO)); + POKE32(sw_i2c_clk_gpio_mux_reg, + PEEK32(sw_i2c_clk_gpio_mux_reg) & ~(1 << sw_i2c_clk_gpio)); + POKE32(sw_i2c_data_gpio_mux_reg, + PEEK32(sw_i2c_data_gpio_mux_reg) & ~(1 << sw_i2c_data_gpio)); /* Enable GPIO power */ enableGPIO(1); From fe820044892de545b8cd8ad3ccdd864d78734b97 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:47 +0300 Subject: [PATCH 0376/2431] staging: sm750fb: ddk750_swi2c: further reduce CamelCase Rename remaining CamelCase variables Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_swi2c.c | 122 ++++++++++++------------- drivers/staging/sm750fb/ddk750_swi2c.h | 20 ++-- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 1d7e8f665e63..5cb1cf2182ba 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -98,11 +98,11 @@ static void sw_i2c_wait(void) */ while (peekIO(0x3ce, 0x61) & 0x10); #else - int i, Temp; + int i, tmp; for (i = 0; i < 600; i++) { - Temp = i; - Temp += i; + tmp = i; + tmp += i; } #endif } @@ -121,23 +121,23 @@ static void sw_i2c_wait(void) */ static void sw_i2c_scl(unsigned char value) { - unsigned long ulGPIOData; - unsigned long ulGPIODirection; + unsigned long gpio_data; + unsigned long gpio_dir; - ulGPIODirection = PEEK32(sw_i2c_clk_gpio_data_dir_reg); + gpio_dir = PEEK32(sw_i2c_clk_gpio_data_dir_reg); if (value) { /* High */ /* Set direction as input. This will automatically pull the signal up. */ - ulGPIODirection &= ~(1 << sw_i2c_clk_gpio); - POKE32(sw_i2c_clk_gpio_data_dir_reg, ulGPIODirection); + gpio_dir &= ~(1 << sw_i2c_clk_gpio); + POKE32(sw_i2c_clk_gpio_data_dir_reg, gpio_dir); } else { /* Low */ /* Set the signal down */ - ulGPIOData = PEEK32(sw_i2c_clk_gpio_data_reg); - ulGPIOData &= ~(1 << sw_i2c_clk_gpio); - POKE32(sw_i2c_clk_gpio_data_reg, ulGPIOData); + gpio_data = PEEK32(sw_i2c_clk_gpio_data_reg); + gpio_data &= ~(1 << sw_i2c_clk_gpio); + POKE32(sw_i2c_clk_gpio_data_reg, gpio_data); /* Set direction as output */ - ulGPIODirection |= (1 << sw_i2c_clk_gpio); - POKE32(sw_i2c_clk_gpio_data_dir_reg, ulGPIODirection); + gpio_dir |= (1 << sw_i2c_clk_gpio); + POKE32(sw_i2c_clk_gpio_data_dir_reg, gpio_dir); } } @@ -155,23 +155,23 @@ static void sw_i2c_scl(unsigned char value) */ static void sw_i2c_sda(unsigned char value) { - unsigned long ulGPIOData; - unsigned long ulGPIODirection; + unsigned long gpio_data; + unsigned long gpio_dir; - ulGPIODirection = PEEK32(sw_i2c_data_gpio_data_dir_reg); + gpio_dir = PEEK32(sw_i2c_data_gpio_data_dir_reg); if (value) { /* High */ /* Set direction as input. This will automatically pull the signal up. */ - ulGPIODirection &= ~(1 << sw_i2c_data_gpio); - POKE32(sw_i2c_data_gpio_data_dir_reg, ulGPIODirection); + gpio_dir &= ~(1 << sw_i2c_data_gpio); + POKE32(sw_i2c_data_gpio_data_dir_reg, gpio_dir); } else { /* Low */ /* Set the signal down */ - ulGPIOData = PEEK32(sw_i2c_data_gpio_data_reg); - ulGPIOData &= ~(1 << sw_i2c_data_gpio); - POKE32(sw_i2c_data_gpio_data_reg, ulGPIOData); + gpio_data = PEEK32(sw_i2c_data_gpio_data_reg); + gpio_data &= ~(1 << sw_i2c_data_gpio); + POKE32(sw_i2c_data_gpio_data_reg, gpio_data); /* Set direction as output */ - ulGPIODirection |= (1 << sw_i2c_data_gpio); - POKE32(sw_i2c_data_gpio_data_dir_reg, ulGPIODirection); + gpio_dir |= (1 << sw_i2c_data_gpio); + POKE32(sw_i2c_data_gpio_data_dir_reg, gpio_dir); } } @@ -183,19 +183,19 @@ static void sw_i2c_sda(unsigned char value) */ static unsigned char sw_i2c_read_sda(void) { - unsigned long ulGPIODirection; - unsigned long ulGPIOData; + unsigned long gpio_dir; + unsigned long gpio_data; /* Make sure that the direction is input (High) */ - ulGPIODirection = PEEK32(sw_i2c_data_gpio_data_dir_reg); - if ((ulGPIODirection & (1 << sw_i2c_data_gpio)) != (~(1 << sw_i2c_data_gpio))) { - ulGPIODirection &= ~(1 << sw_i2c_data_gpio); - POKE32(sw_i2c_data_gpio_data_dir_reg, ulGPIODirection); + gpio_dir = PEEK32(sw_i2c_data_gpio_data_dir_reg); + if ((gpio_dir & (1 << sw_i2c_data_gpio)) != (~(1 << sw_i2c_data_gpio))) { + gpio_dir &= ~(1 << sw_i2c_data_gpio); + POKE32(sw_i2c_data_gpio_data_dir_reg, gpio_dir); } /* Now read the SDA line */ - ulGPIOData = PEEK32(sw_i2c_data_gpio_data_reg); - if (ulGPIOData & (1 << sw_i2c_data_gpio)) + gpio_data = PEEK32(sw_i2c_data_gpio_data_reg); + if (gpio_data & (1 << sw_i2c_data_gpio)) return 1; else return 0; @@ -340,15 +340,15 @@ static unsigned char sw_i2c_read_byte(unsigned char ack) * This function initializes GPIO port for SW I2C communication. * * Parameters: - * i2cClkGPIO - The GPIO pin to be used as i2c SCL - * i2cDataGPIO - The GPIO pin to be used as i2c SDA + * clk_gpio - The GPIO pin to be used as i2c SCL + * data_gpio - The GPIO pin to be used as i2c SDA * * Return Value: * -1 - Fail to initialize the i2c * 0 - Success */ -static long sm750le_i2c_init(unsigned char i2cClkGPIO, - unsigned char i2cDataGPIO) +static long sm750le_i2c_init(unsigned char clk_gpio, + unsigned char data_gpio) { int i; @@ -357,14 +357,14 @@ static long sm750le_i2c_init(unsigned char i2cClkGPIO, sw_i2c_clk_gpio_data_dir_reg = GPIO_DATA_DIRECTION_SM750LE; /* Initialize the Clock GPIO Offset */ - sw_i2c_clk_gpio = i2cClkGPIO; + sw_i2c_clk_gpio = clk_gpio; /* Initialize the GPIO pin for the i2c Data Register */ sw_i2c_data_gpio_data_reg = GPIO_DATA_SM750LE; sw_i2c_data_gpio_data_dir_reg = GPIO_DATA_DIRECTION_SM750LE; /* Initialize the Data GPIO Offset */ - sw_i2c_data_gpio = i2cDataGPIO; + sw_i2c_data_gpio = data_gpio; /* Note that SM750LE don't have GPIO MUX and power is always on */ @@ -379,26 +379,26 @@ static long sm750le_i2c_init(unsigned char i2cClkGPIO, * This function initializes the i2c attributes and bus * * Parameters: - * i2cClkGPIO - The GPIO pin to be used as i2c SCL - * i2cDataGPIO - The GPIO pin to be used as i2c SDA + * clk_gpio - The GPIO pin to be used as i2c SCL + * data_gpio - The GPIO pin to be used as i2c SDA * * Return Value: * -1 - Fail to initialize the i2c * 0 - Success */ long sm750_sw_i2c_init( - unsigned char i2cClkGPIO, - unsigned char i2cDataGPIO + unsigned char clk_gpio, + unsigned char data_gpio ) { int i; /* Return 0 if the GPIO pins to be used is out of range. The range is only from [0..63] */ - if ((i2cClkGPIO > 31) || (i2cDataGPIO > 31)) + if ((clk_gpio > 31) || (data_gpio > 31)) return -1; if (getChipType() == SM750LE) - return sm750le_i2c_init(i2cClkGPIO, i2cDataGPIO); + return sm750le_i2c_init(clk_gpio, data_gpio); /* Initialize the GPIO pin for the i2c Clock Register */ sw_i2c_clk_gpio_mux_reg = GPIO_MUX; @@ -406,7 +406,7 @@ long sm750_sw_i2c_init( sw_i2c_clk_gpio_data_dir_reg = GPIO_DATA_DIRECTION; /* Initialize the Clock GPIO Offset */ - sw_i2c_clk_gpio = i2cClkGPIO; + sw_i2c_clk_gpio = clk_gpio; /* Initialize the GPIO pin for the i2c Data Register */ sw_i2c_data_gpio_mux_reg = GPIO_MUX; @@ -414,7 +414,7 @@ long sm750_sw_i2c_init( sw_i2c_data_gpio_data_dir_reg = GPIO_DATA_DIRECTION; /* Initialize the Data GPIO Offset */ - sw_i2c_data_gpio = i2cDataGPIO; + sw_i2c_data_gpio = data_gpio; /* Enable the GPIO pins for the i2c Clock and Data (GPIO MUX) */ POKE32(sw_i2c_clk_gpio_mux_reg, @@ -436,16 +436,16 @@ long sm750_sw_i2c_init( * This function reads the slave device's register * * Parameters: - * deviceAddress - i2c Slave device address which register + * addr - i2c Slave device address which register * to be read from - * registerIndex - Slave device's register to be read + * reg - Slave device's register to be read * * Return Value: * Register value */ unsigned char sm750_sw_i2c_read_reg( - unsigned char deviceAddress, - unsigned char registerIndex + unsigned char addr, + unsigned char reg ) { unsigned char data; @@ -454,14 +454,14 @@ unsigned char sm750_sw_i2c_read_reg( sw_i2c_start(); /* Send the device address */ - sw_i2c_write_byte(deviceAddress); + sw_i2c_write_byte(addr); /* Send the register index */ - sw_i2c_write_byte(registerIndex); + sw_i2c_write_byte(reg); /* Get the bus again and get the data from the device read address */ sw_i2c_start(); - sw_i2c_write_byte(deviceAddress + 1); + sw_i2c_write_byte(addr + 1); data = sw_i2c_read_byte(1); /* Stop swI2C and release the bus */ @@ -474,9 +474,9 @@ unsigned char sm750_sw_i2c_read_reg( * This function writes a value to the slave device's register * * Parameters: - * deviceAddress - i2c Slave device address which register + * addr - i2c Slave device address which register * to be written - * registerIndex - Slave device's register to be written + * reg - Slave device's register to be written * data - Data to be written to the register * * Result: @@ -484,12 +484,12 @@ unsigned char sm750_sw_i2c_read_reg( * -1 - Fail */ long sm750_sw_i2c_write_reg( - unsigned char deviceAddress, - unsigned char registerIndex, + unsigned char addr, + unsigned char reg, unsigned char data ) { - long returnValue = 0; + long ret = 0; /* Send the Start signal */ sw_i2c_start(); @@ -497,14 +497,14 @@ long sm750_sw_i2c_write_reg( /* Send the device address and read the data. All should return success in order for the writing processed to be successful */ - if ((sw_i2c_write_byte(deviceAddress) != 0) || - (sw_i2c_write_byte(registerIndex) != 0) || + if ((sw_i2c_write_byte(addr) != 0) || + (sw_i2c_write_byte(reg) != 0) || (sw_i2c_write_byte(data) != 0)) { - returnValue = -1; + ret = -1; } /* Stop i2c and release the bus */ sw_i2c_stop(); - return returnValue; + return ret; } diff --git a/drivers/staging/sm750fb/ddk750_swi2c.h b/drivers/staging/sm750fb/ddk750_swi2c.h index 27a04f3a6548..b53629cda095 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.h +++ b/drivers/staging/sm750fb/ddk750_swi2c.h @@ -29,33 +29,33 @@ * 0 - Success */ long sm750_sw_i2c_init( - unsigned char i2cClkGPIO, - unsigned char i2cDataGPIO + unsigned char clk_gpio, + unsigned char data_gpio ); /* * This function reads the slave device's register * * Parameters: - * deviceAddress - i2c Slave device address which register + * addr - i2c Slave device address which register * to be read from - * registerIndex - Slave device's register to be read + * reg - Slave device's register to be read * * Return Value: * Register value */ unsigned char sm750_sw_i2c_read_reg( - unsigned char deviceAddress, - unsigned char registerIndex + unsigned char addr, + unsigned char reg ); /* * This function writes a value to the slave device's register * * Parameters: - * deviceAddress - i2c Slave device address which register + * addr - i2c Slave device address which register * to be written - * registerIndex - Slave device's register to be written + * reg - Slave device's register to be written * data - Data to be written to the register * * Result: @@ -63,8 +63,8 @@ unsigned char sm750_sw_i2c_read_reg( * -1 - Fail */ long sm750_sw_i2c_write_reg( - unsigned char deviceAddress, - unsigned char registerIndex, + unsigned char addr, + unsigned char reg, unsigned char data ); From 987f202a344385c461b33f13eb39050e2a39fa22 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:48 +0300 Subject: [PATCH 0377/2431] staging: sm750fb: ddk750_*i2c: remove multiple blank lines Fix the checkpatch warning about multiple blank lines Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 16 ---------------- drivers/staging/sm750fb/ddk750_swi2c.c | 1 - 2 files changed, 17 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 8d06f486eef6..34b687b2dc2c 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -8,7 +8,6 @@ #define MAX_HWI2C_FIFO 16 #define HWI2C_WAIT_TIMEOUT 0xF0000 - int sm750_hw_i2c_init( unsigned char bus_speed_mode ) @@ -39,7 +38,6 @@ unsigned char bus_speed_mode return 0; } - void sm750_hw_i2c_close(void) { unsigned int value; @@ -59,7 +57,6 @@ void sm750_hw_i2c_close(void) POKE32(GPIO_MUX, value); } - static long hw_i2c_wait_tx_done(void) { unsigned int timeout; @@ -76,8 +73,6 @@ static long hw_i2c_wait_tx_done(void) return 0; } - - /* * This function writes data to the i2c slave device registers. * @@ -139,9 +134,6 @@ static unsigned int hw_i2c_write_data( return total_bytes; } - - - /* * This function reads data from the slave device and stores them * in the given buffer @@ -205,9 +197,6 @@ static unsigned int hw_i2c_read_data( return total_bytes; } - - - /* * This function reads the slave device's register * @@ -232,10 +221,6 @@ unsigned char sm750_hw_i2c_read_reg( return value; } - - - - /* * This function writes a value to the slave device's register * @@ -265,5 +250,4 @@ int sm750_hw_i2c_write_reg( return (-1); } - #endif diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 5cb1cf2182ba..ddbbeffcef3a 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -15,7 +15,6 @@ #include "ddk750_swi2c.h" #include "ddk750_power.h" - /******************************************************************* * I2C Software Master Driver: * =========================== From 9137f812e911fc8030e8b954b097e62e29691154 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:49 +0300 Subject: [PATCH 0378/2431] staging: sm750fb: ddk750_*i2c: shorten lines to under 80 characters Fix some checkpatch warnings about long lines Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_hwi2c.c | 19 ++++++++++++++----- drivers/staging/sm750fb/ddk750_hwi2c.h | 3 ++- drivers/staging/sm750fb/ddk750_swi2c.c | 22 ++++++++++++++++------ 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 34b687b2dc2c..7be2111284f4 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.c +++ b/drivers/staging/sm750fb/ddk750_hwi2c.c @@ -63,7 +63,8 @@ static long hw_i2c_wait_tx_done(void) /* Wait until the transfer is completed. */ timeout = HWI2C_WAIT_TIMEOUT; - while ((FIELD_GET(PEEK32(I2C_STATUS), I2C_STATUS, TX) != I2C_STATUS_TX_COMPLETED) && + while ((FIELD_GET(PEEK32(I2C_STATUS), + I2C_STATUS, TX) != I2C_STATUS_TX_COMPLETED) && (timeout != 0)) timeout--; @@ -102,7 +103,10 @@ static unsigned int hw_i2c_write_data( * Only 16 byte can be accessed per i2c start instruction. */ do { - /* Reset I2C by writing 0 to I2C_RESET register to clear the previous status. */ + /* + * Reset I2C by writing 0 to I2C_RESET register to + * clear the previous status. + */ POKE32(I2C_RESET, 0); /* Set the number of bytes to be written */ @@ -117,7 +121,8 @@ static unsigned int hw_i2c_write_data( POKE32(I2C_DATA0 + i, *buf++); /* Start the I2C */ - POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); + POKE32(I2C_CTRL, + FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); /* Wait until the transfer is completed. */ if (hw_i2c_wait_tx_done() != 0) @@ -165,7 +170,10 @@ static unsigned int hw_i2c_read_data( * Only 16 byte can be accessed per i2c start instruction. */ do { - /* Reset I2C by writing 0 to I2C_RESET register to clear all the status. */ + /* + * Reset I2C by writing 0 to I2C_RESET register to + * clear all the status. + */ POKE32(I2C_RESET, 0); /* Set the number of bytes to be read */ @@ -176,7 +184,8 @@ static unsigned int hw_i2c_read_data( POKE32(I2C_BYTE_COUNT, count); /* Start the I2C */ - POKE32(I2C_CTRL, FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); + POKE32(I2C_CTRL, + FIELD_SET(PEEK32(I2C_CTRL), I2C_CTRL, CTRL, START)); /* Wait until transaction done. */ if (hw_i2c_wait_tx_done() != 0) diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.h b/drivers/staging/sm750fb/ddk750_hwi2c.h index 2827865ce689..46e22dce2570 100644 --- a/drivers/staging/sm750fb/ddk750_hwi2c.h +++ b/drivers/staging/sm750fb/ddk750_hwi2c.h @@ -6,5 +6,6 @@ int sm750_hw_i2c_init(unsigned char bus_speed_mode); void sm750_hw_i2c_close(void); unsigned char sm750_hw_i2c_read_reg(unsigned char addr, unsigned char reg); -int sm750_hw_i2c_write_reg(unsigned char addr, unsigned char reg, unsigned char data); +int sm750_hw_i2c_write_reg(unsigned char addr, unsigned char reg, + unsigned char data); #endif diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index ddbbeffcef3a..37cdd5b5f19e 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -125,7 +125,10 @@ static void sw_i2c_scl(unsigned char value) gpio_dir = PEEK32(sw_i2c_clk_gpio_data_dir_reg); if (value) { /* High */ - /* Set direction as input. This will automatically pull the signal up. */ + /* + * Set direction as input. This will automatically + * pull the signal up. + */ gpio_dir &= ~(1 << sw_i2c_clk_gpio); POKE32(sw_i2c_clk_gpio_data_dir_reg, gpio_dir); } else { /* Low */ @@ -159,7 +162,10 @@ static void sw_i2c_sda(unsigned char value) gpio_dir = PEEK32(sw_i2c_data_gpio_data_dir_reg); if (value) { /* High */ - /* Set direction as input. This will automatically pull the signal up. */ + /* + * Set direction as input. This will automatically + * pull the signal up. + */ gpio_dir &= ~(1 << sw_i2c_data_gpio); POKE32(sw_i2c_data_gpio_data_dir_reg, gpio_dir); } else { /* Low */ @@ -184,10 +190,11 @@ static unsigned char sw_i2c_read_sda(void) { unsigned long gpio_dir; unsigned long gpio_data; + unsigned long dir_mask = 1 << sw_i2c_data_gpio; /* Make sure that the direction is input (High) */ gpio_dir = PEEK32(sw_i2c_data_gpio_data_dir_reg); - if ((gpio_dir & (1 << sw_i2c_data_gpio)) != (~(1 << sw_i2c_data_gpio))) { + if ((gpio_dir & dir_mask) != ~dir_mask) { gpio_dir &= ~(1 << sw_i2c_data_gpio); POKE32(sw_i2c_data_gpio_data_dir_reg, gpio_dir); } @@ -392,7 +399,10 @@ long sm750_sw_i2c_init( { int i; - /* Return 0 if the GPIO pins to be used is out of range. The range is only from [0..63] */ + /* + * Return 0 if the GPIO pins to be used is out of range. The + * range is only from [0..63] + */ if ((clk_gpio > 31) || (data_gpio > 31)) return -1; @@ -417,9 +427,9 @@ long sm750_sw_i2c_init( /* Enable the GPIO pins for the i2c Clock and Data (GPIO MUX) */ POKE32(sw_i2c_clk_gpio_mux_reg, - PEEK32(sw_i2c_clk_gpio_mux_reg) & ~(1 << sw_i2c_clk_gpio)); + PEEK32(sw_i2c_clk_gpio_mux_reg) & ~(1 << sw_i2c_clk_gpio)); POKE32(sw_i2c_data_gpio_mux_reg, - PEEK32(sw_i2c_data_gpio_mux_reg) & ~(1 << sw_i2c_data_gpio)); + PEEK32(sw_i2c_data_gpio_mux_reg) & ~(1 << sw_i2c_data_gpio)); /* Enable GPIO power */ enableGPIO(1); From 6dd19f19a5e2fb78681e5f33431200e2b5aec763 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Sun, 13 Sep 2015 22:00:44 -0700 Subject: [PATCH 0379/2431] staging/rtl8188eu : Remove duplicated BIT() definitions The BIT() macro is already defined in bitops.h, remove duplicate definitions. Users of BIT() macro are expecting unsigned int/u32, so add typecasts where this creates a build warning. Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 7 +++++-- drivers/staging/rtl8188eu/core/rtw_wlan_util.c | 6 ++++-- drivers/staging/rtl8188eu/include/rtl8188e_spec.h | 4 ---- drivers/staging/rtl8188eu/include/wifi.h | 7 ------- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index 5dae7de03327..dd820185110f 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c @@ -4177,10 +4177,13 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame) RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("+mgt_dispatcher: type(0x%x) subtype(0x%x)\n", - GetFrameType(pframe), GetFrameSubType(pframe))); + (unsigned int)GetFrameType(pframe), + (unsigned int)GetFrameSubType(pframe))); if (GetFrameType(pframe) != WIFI_MGT_TYPE) { - RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("mgt_dispatcher: type(0x%x) error!\n", GetFrameType(pframe))); + RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, + ("mgt_dispatcher: type(0x%x) error!\n", + (unsigned int)GetFrameType(pframe))); return; } diff --git a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c index 077b39a41c60..3bb40a7fe3ce 100644 --- a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c +++ b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c @@ -1414,13 +1414,15 @@ void update_IOT_info(struct adapter *padapter) pmlmeinfo->turboMode_cts2self = 0; pmlmeinfo->turboMode_rtsen = 1; /* disable high power */ - Switch_DM_Func(padapter, (~DYNAMIC_BB_DYNAMIC_TXPWR), false); + Switch_DM_Func(padapter, (u32)(~DYNAMIC_BB_DYNAMIC_TXPWR), + false); break; case HT_IOT_PEER_REALTEK: /* rtw_write16(padapter, 0x4cc, 0xffff); */ /* rtw_write16(padapter, 0x546, 0x01c0); */ /* disable high power */ - Switch_DM_Func(padapter, (~DYNAMIC_BB_DYNAMIC_TXPWR), false); + Switch_DM_Func(padapter, (u32)(~DYNAMIC_BB_DYNAMIC_TXPWR), + false); break; default: pmlmeinfo->turboMode_cts2self = 0; diff --git a/drivers/staging/rtl8188eu/include/rtl8188e_spec.h b/drivers/staging/rtl8188eu/include/rtl8188e_spec.h index 2c33eb30d31b..e99179a794af 100644 --- a/drivers/staging/rtl8188eu/include/rtl8188e_spec.h +++ b/drivers/staging/rtl8188eu/include/rtl8188e_spec.h @@ -19,10 +19,6 @@ #ifndef __RTL8188E_SPEC_H__ #define __RTL8188E_SPEC_H__ -#ifndef BIT -#define BIT(x) (1 << (x)) -#endif - #define BIT0 0x00000001 #define BIT1 0x00000002 #define BIT2 0x00000004 diff --git a/drivers/staging/rtl8188eu/include/wifi.h b/drivers/staging/rtl8188eu/include/wifi.h index 6e5fa735e800..6cb5beca1672 100644 --- a/drivers/staging/rtl8188eu/include/wifi.h +++ b/drivers/staging/rtl8188eu/include/wifi.h @@ -20,13 +20,6 @@ #ifndef _WIFI_H_ #define _WIFI_H_ - -#ifdef BIT -/* error "BIT define occurred earlier elsewhere!\n" */ -#undef BIT -#endif -#define BIT(x) (1 << (x)) - #define WLAN_IEEE_OUI_LEN 3 #define WLAN_CRC_LEN 4 #define WLAN_BSSID_LEN 6 From b03f395a3e9bf4874fb58f4fe6033866d3b9f105 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 14 Sep 2015 18:41:17 -0400 Subject: [PATCH 0380/2431] staging/lustre/lnet: Reenable lnet router debugfs It looks like router proc files were defined out, so I missed them during debugfs conversion. Reenable the code and move all the variables to debugfs. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/include/linux/libcfs/libcfs.h | 8 + .../lustre/include/linux/lnet/lib-lnet.h | 4 +- drivers/staging/lustre/lnet/lnet/api-ni.c | 4 +- .../staging/lustre/lnet/lnet/router_proc.c | 43 +--- drivers/staging/lustre/lustre/libcfs/module.c | 188 +++++++++--------- 5 files changed, 105 insertions(+), 142 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/libcfs.h index 01961d9e6c36..259a33658d3f 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs.h @@ -161,4 +161,12 @@ extern struct cfs_psdev_ops libcfs_psdev_ops; extern struct cfs_wi_sched *cfs_sched_rehash; +struct lnet_debugfs_symlink_def { + char *name; + char *target; +}; + +void lustre_insert_debugfs(struct ctl_table *table, + const struct lnet_debugfs_symlink_def *symlinks); + #endif /* _LIBCFS_H */ diff --git a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h index a9c9a077c77d..22d54b209528 100644 --- a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h +++ b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h @@ -443,8 +443,8 @@ int lnet_del_route(__u32 net, lnet_nid_t gw_nid); void lnet_destroy_routes(void); int lnet_get_route(int idx, __u32 *net, __u32 *hops, lnet_nid_t *gateway, __u32 *alive, __u32 *priority); -void lnet_proc_init(void); -void lnet_proc_fini(void); +void lnet_router_debugfs_init(void); +void lnet_router_debugfs_fini(void); int lnet_rtrpools_alloc(int im_a_router); void lnet_rtrpools_free(void); lnet_remotenet_t *lnet_find_net_locked(__u32 net); diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c index d14fe70a56df..7fab03bee1ea 100644 --- a/drivers/staging/lustre/lnet/lnet/api-ni.c +++ b/drivers/staging/lustre/lnet/lnet/api-ni.c @@ -1262,7 +1262,7 @@ LNetNIInit(lnet_pid_t requested_pid) if (rc != 0) goto failed4; - lnet_proc_init(); + lnet_router_debugfs_init(); goto out; failed4: @@ -1305,7 +1305,7 @@ LNetNIFini(void) } else { LASSERT(!the_lnet.ln_niinit_self); - lnet_proc_fini(); + lnet_router_debugfs_fini(); lnet_router_checker_stop(); lnet_ping_target_fini(); diff --git a/drivers/staging/lustre/lnet/lnet/router_proc.c b/drivers/staging/lustre/lnet/lnet/router_proc.c index 40f418b82960..a9f4cbf2fcfe 100644 --- a/drivers/staging/lustre/lnet/lnet/router_proc.c +++ b/drivers/staging/lustre/lnet/lnet/router_proc.c @@ -25,13 +25,9 @@ #include "../../include/linux/libcfs/libcfs.h" #include "../../include/linux/lnet/lib-lnet.h" -#if defined(LNET_ROUTER) - /* This is really lnet_proc.c. You might need to update sanity test 215 * if any file format is changed. */ -static struct ctl_table_header *lnet_table_header; - #define LNET_LOFFT_BITS (sizeof(loff_t) * 8) /* * NB: max allowed LNET_CPT_BITS is 8 on 64-bit system and 2 on 32-bit system @@ -914,44 +910,11 @@ static struct ctl_table lnet_table[] = { } }; -static struct ctl_table top_table[] = { - { - .procname = "lnet", - .mode = 0555, - .data = NULL, - .maxlen = 0, - .child = lnet_table, - }, - { - } -}; - -void -lnet_proc_init(void) +void lnet_router_debugfs_init(void) { - if (lnet_table_header == NULL) - lnet_table_header = register_sysctl_table(top_table); + lustre_insert_debugfs(lnet_table, NULL); } -void -lnet_proc_fini(void) -{ - if (lnet_table_header != NULL) - unregister_sysctl_table(lnet_table_header); - - lnet_table_header = NULL; -} - -#else - -void -lnet_proc_init(void) +void lnet_router_debugfs_fini(void) { } - -void -lnet_proc_fini(void) -{ -} - -#endif diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c index 806f9747a3a2..a19f5796b642 100644 --- a/drivers/staging/lustre/lustre/libcfs/module.c +++ b/drivers/staging/lustre/lustre/libcfs/module.c @@ -66,9 +66,6 @@ MODULE_AUTHOR("Peter J. Braam "); MODULE_DESCRIPTION("Portals v3.1"); MODULE_LICENSE("GPL"); -static void insert_debugfs(void); -static void remove_debugfs(void); - static struct dentry *lnet_debugfs_root; static void kportal_memhog_free(struct libcfs_device_userstate *ldu) @@ -349,90 +346,6 @@ struct cfs_psdev_ops libcfs_psdev_ops = { libcfs_ioctl }; -static int init_libcfs_module(void) -{ - int rc; - - libcfs_arch_init(); - libcfs_init_nidstrings(); - - rc = libcfs_debug_init(5 * 1024 * 1024); - if (rc < 0) { - pr_err("LustreError: libcfs_debug_init: %d\n", rc); - return rc; - } - - rc = cfs_cpu_init(); - if (rc != 0) - goto cleanup_debug; - - rc = misc_register(&libcfs_dev); - if (rc) { - CERROR("misc_register: error %d\n", rc); - goto cleanup_cpu; - } - - rc = cfs_wi_startup(); - if (rc) { - CERROR("initialize workitem: error %d\n", rc); - goto cleanup_deregister; - } - - /* max to 4 threads, should be enough for rehash */ - rc = min(cfs_cpt_weight(cfs_cpt_table, CFS_CPT_ANY), 4); - rc = cfs_wi_sched_create("cfs_rh", cfs_cpt_table, CFS_CPT_ANY, - rc, &cfs_sched_rehash); - if (rc != 0) { - CERROR("Startup workitem scheduler: error: %d\n", rc); - goto cleanup_deregister; - } - - rc = cfs_crypto_register(); - if (rc) { - CERROR("cfs_crypto_register: error %d\n", rc); - goto cleanup_wi; - } - - insert_debugfs(); - - CDEBUG(D_OTHER, "portals setup OK\n"); - return 0; - cleanup_wi: - cfs_wi_shutdown(); - cleanup_deregister: - misc_deregister(&libcfs_dev); -cleanup_cpu: - cfs_cpu_fini(); - cleanup_debug: - libcfs_debug_cleanup(); - return rc; -} - -static void exit_libcfs_module(void) -{ - int rc; - - remove_debugfs(); - - if (cfs_sched_rehash != NULL) { - cfs_wi_sched_destroy(cfs_sched_rehash); - cfs_sched_rehash = NULL; - } - - cfs_crypto_unregister(); - cfs_wi_shutdown(); - - misc_deregister(&libcfs_dev); - - cfs_cpu_fini(); - - rc = libcfs_debug_cleanup(); - if (rc) - pr_err("LustreError: libcfs_debug_cleanup: %d\n", rc); - - libcfs_arch_cleanup(); -} - static int proc_call_handler(void *data, int write, loff_t *ppos, void __user *buffer, size_t *lenp, int (*handler)(void *data, int write, @@ -700,11 +613,6 @@ static struct ctl_table lnet_table[] = { } }; -struct lnet_debugfs_symlink_def { - char *name; - char *target; -}; - static const struct lnet_debugfs_symlink_def lnet_debugfs_symlinks[] = { { "console_ratelimit", "/sys/module/libcfs/parameters/libcfs_console_ratelimit"}, @@ -756,11 +664,10 @@ static const struct file_operations lnet_debugfs_file_operations = { .llseek = default_llseek, }; -static void insert_debugfs(void) +void lustre_insert_debugfs(struct ctl_table *table, + const struct lnet_debugfs_symlink_def *symlinks) { - struct ctl_table *table; struct dentry *entry; - const struct lnet_debugfs_symlink_def *symlinks; if (lnet_debugfs_root == NULL) lnet_debugfs_root = debugfs_create_dir("lnet", NULL); @@ -769,19 +676,20 @@ static void insert_debugfs(void) if (IS_ERR_OR_NULL(lnet_debugfs_root)) return; - for (table = lnet_table; table->procname; table++) + for (; table->procname; table++) entry = debugfs_create_file(table->procname, table->mode, lnet_debugfs_root, table, &lnet_debugfs_file_operations); - for (symlinks = lnet_debugfs_symlinks; symlinks->name; symlinks++) + for (; symlinks && symlinks->name; symlinks++) entry = debugfs_create_symlink(symlinks->name, lnet_debugfs_root, symlinks->target); } +EXPORT_SYMBOL_GPL(lustre_insert_debugfs); -static void remove_debugfs(void) +static void lustre_remove_debugfs(void) { if (lnet_debugfs_root != NULL) debugfs_remove_recursive(lnet_debugfs_root); @@ -789,6 +697,90 @@ static void remove_debugfs(void) lnet_debugfs_root = NULL; } +static int init_libcfs_module(void) +{ + int rc; + + libcfs_arch_init(); + libcfs_init_nidstrings(); + + rc = libcfs_debug_init(5 * 1024 * 1024); + if (rc < 0) { + pr_err("LustreError: libcfs_debug_init: %d\n", rc); + return rc; + } + + rc = cfs_cpu_init(); + if (rc != 0) + goto cleanup_debug; + + rc = misc_register(&libcfs_dev); + if (rc) { + CERROR("misc_register: error %d\n", rc); + goto cleanup_cpu; + } + + rc = cfs_wi_startup(); + if (rc) { + CERROR("initialize workitem: error %d\n", rc); + goto cleanup_deregister; + } + + /* max to 4 threads, should be enough for rehash */ + rc = min(cfs_cpt_weight(cfs_cpt_table, CFS_CPT_ANY), 4); + rc = cfs_wi_sched_create("cfs_rh", cfs_cpt_table, CFS_CPT_ANY, + rc, &cfs_sched_rehash); + if (rc != 0) { + CERROR("Startup workitem scheduler: error: %d\n", rc); + goto cleanup_deregister; + } + + rc = cfs_crypto_register(); + if (rc) { + CERROR("cfs_crypto_register: error %d\n", rc); + goto cleanup_wi; + } + + lustre_insert_debugfs(lnet_table, lnet_debugfs_symlinks); + + CDEBUG(D_OTHER, "portals setup OK\n"); + return 0; + cleanup_wi: + cfs_wi_shutdown(); + cleanup_deregister: + misc_deregister(&libcfs_dev); +cleanup_cpu: + cfs_cpu_fini(); + cleanup_debug: + libcfs_debug_cleanup(); + return rc; +} + +static void exit_libcfs_module(void) +{ + int rc; + + lustre_remove_debugfs(); + + if (cfs_sched_rehash) { + cfs_wi_sched_destroy(cfs_sched_rehash); + cfs_sched_rehash = NULL; + } + + cfs_crypto_unregister(); + cfs_wi_shutdown(); + + misc_deregister(&libcfs_dev); + + cfs_cpu_fini(); + + rc = libcfs_debug_cleanup(); + if (rc) + pr_err("LustreError: libcfs_debug_cleanup: %d\n", rc); + + libcfs_arch_cleanup(); +} + MODULE_VERSION("1.0.0"); module_init(init_libcfs_module); From 6e580ab50a3d3344be5d410406967edcc691d8a0 Mon Sep 17 00:00:00 2001 From: Frank Zago Date: Mon, 14 Sep 2015 18:41:18 -0400 Subject: [PATCH 0381/2431] staging/lustre/obdclass: reorganize busy object accounting Due to some accounting bug, lsb_busy of a hash bucket can become larger than the total number of objects in said bucket. A busy object can be counted more than once. When that happens, a negative value is returned by the shrinker callback. Instead of trying (and failing) to count the busy objects, count the objects than are not busy, i.e. the objects that are present on the lsb_lru list. The number of busy objects is then the difference between the number of objects in the hash and the objects on the lsb_lru list. Signed-off-by: frank zago Reviewed-on: http://review.whamcloud.com/12468 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5722 Reviewed-by: Andreas Dilger Reviewed-by: Mike Pershin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lu_object.h | 4 +-- .../lustre/lustre/obdclass/lu_object.c | 35 ++++++++----------- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index a16c9ea98373..ea13a82ff887 100644 --- a/drivers/staging/lustre/lustre/include/lu_object.h +++ b/drivers/staging/lustre/lustre/include/lu_object.h @@ -554,9 +554,9 @@ struct fld; struct lu_site_bkt_data { /** - * number of busy object on this bucket + * number of object in this bucket on the lsb_lru list. */ - long lsb_busy; + long lsb_lru_len; /** * LRU list, updated on each access to object. Protected by * bucket lock of lu_site::ls_obj_hash. diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 3111982f69c2..4f7899f9a15c 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -113,8 +113,6 @@ void lu_object_put(const struct lu_env *env, struct lu_object *o) return; } - LASSERT(bkt->lsb_busy > 0); - bkt->lsb_busy--; /* * When last reference is released, iterate over object * layers, and notify them that object is no longer busy. @@ -127,6 +125,7 @@ void lu_object_put(const struct lu_env *env, struct lu_object *o) if (!lu_object_is_dying(top)) { LASSERT(list_empty(&top->loh_lru)); list_add_tail(&top->loh_lru, &bkt->lsb_lru); + bkt->lsb_lru_len++; cfs_hash_bd_unlock(site->ls_obj_hash, &bd, 1); return; } @@ -179,7 +178,13 @@ void lu_object_unhash(const struct lu_env *env, struct lu_object *o) struct cfs_hash_bd bd; cfs_hash_bd_get_and_lock(obj_hash, &top->loh_fid, &bd, 1); + if (!list_empty(&top->loh_lru)) { + struct lu_site_bkt_data *bkt; + list_del_init(&top->loh_lru); + bkt = cfs_hash_bd_extra_get(obj_hash, &bd); + bkt->lsb_lru_len--; + } cfs_hash_bd_del_locked(obj_hash, &bd, &top->loh_hash); cfs_hash_bd_unlock(obj_hash, &bd, 1); } @@ -349,6 +354,7 @@ int lu_site_purge(const struct lu_env *env, struct lu_site *s, int nr) cfs_hash_bd_del_locked(s->ls_obj_hash, &bd2, &h->loh_hash); list_move(&h->loh_lru, &dispose); + bkt->lsb_lru_len--; if (did_sth == 0) did_sth = 1; @@ -561,7 +567,10 @@ static struct lu_object *htable_lookup(struct lu_site *s, if (likely(!lu_object_is_dying(h))) { cfs_hash_get(s->ls_obj_hash, hnode); lprocfs_counter_incr(s->ls_stats, LU_SS_CACHE_HIT); + if (!list_empty(&h->loh_lru)) { list_del_init(&h->loh_lru); + bkt->lsb_lru_len--; + } return lu_object_top(h); } @@ -599,7 +608,6 @@ static struct lu_object *lu_object_new(const struct lu_env *env, struct lu_object *o; struct cfs_hash *hs; struct cfs_hash_bd bd; - struct lu_site_bkt_data *bkt; o = lu_object_alloc(env, dev, f, conf); if (IS_ERR(o)) @@ -607,9 +615,7 @@ static struct lu_object *lu_object_new(const struct lu_env *env, hs = dev->ld_site->ls_obj_hash; cfs_hash_bd_get_and_lock(hs, (void *)f, &bd, 1); - bkt = cfs_hash_bd_extra_get(hs, &bd); cfs_hash_bd_add_locked(hs, &bd, &o->lo_header->loh_hash); - bkt->lsb_busy++; cfs_hash_bd_unlock(hs, &bd, 1); return o; } @@ -675,11 +681,7 @@ static struct lu_object *lu_object_find_try(const struct lu_env *env, shadow = htable_lookup(s, &bd, f, waiter, &version); if (likely(PTR_ERR(shadow) == -ENOENT)) { - struct lu_site_bkt_data *bkt; - - bkt = cfs_hash_bd_extra_get(hs, &bd); cfs_hash_bd_add_locked(hs, &bd, &o->lo_header->loh_hash); - bkt->lsb_busy++; cfs_hash_bd_unlock(hs, &bd, 1); return o; } @@ -926,14 +928,7 @@ static void lu_obj_hop_get(struct cfs_hash *hs, struct hlist_node *hnode) struct lu_object_header *h; h = hlist_entry(hnode, struct lu_object_header, loh_hash); - if (atomic_add_return(1, &h->loh_ref) == 1) { - struct lu_site_bkt_data *bkt; - struct cfs_hash_bd bd; - - cfs_hash_bd_get(hs, &h->loh_fid, &bd); - bkt = cfs_hash_bd_extra_get(hs, &bd); - bkt->lsb_busy++; - } + atomic_inc(&h->loh_ref); } static void lu_obj_hop_put_locked(struct cfs_hash *hs, struct hlist_node *hnode) @@ -1802,7 +1797,8 @@ static void lu_site_stats_get(struct cfs_hash *hs, struct hlist_head *hhead; cfs_hash_bd_lock(hs, &bd, 1); - stats->lss_busy += bkt->lsb_busy; + stats->lss_busy += + cfs_hash_bd_count_get(&bd) - bkt->lsb_lru_len; stats->lss_total += cfs_hash_bd_count_get(&bd); stats->lss_max_search = max((int)stats->lss_max_search, cfs_hash_bd_depmax_get(&bd)); @@ -2067,7 +2063,6 @@ void lu_object_assign_fid(const struct lu_env *env, struct lu_object *o, { struct lu_site *s = o->lo_dev->ld_site; struct lu_fid *old = &o->lo_header->loh_fid; - struct lu_site_bkt_data *bkt; struct lu_object *shadow; wait_queue_t waiter; struct cfs_hash *hs; @@ -2082,9 +2077,7 @@ void lu_object_assign_fid(const struct lu_env *env, struct lu_object *o, /* supposed to be unique */ LASSERT(IS_ERR(shadow) && PTR_ERR(shadow) == -ENOENT); *old = *fid; - bkt = cfs_hash_bd_extra_get(hs, &bd); cfs_hash_bd_add_locked(hs, &bd, &o->lo_header->loh_hash); - bkt->lsb_busy++; cfs_hash_bd_unlock(hs, &bd, 1); } EXPORT_SYMBOL(lu_object_assign_fid); From 44ecac688986e96d6654a1f71ce07032a8f6c278 Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Mon, 14 Sep 2015 18:41:19 -0400 Subject: [PATCH 0382/2431] staging/lustre/llite: cleanup open handle for client open failure For open case, the client side open handling thread may hit error after the MDT grant the open. Under such case, the client should send close RPC to the MDT as cleanup; otherwise, the open handle on the MDT will be leaked there until the client umount or evicted. If the LFSCK marks LU_OBJECT_HEARD_BANSHEE on the MDT-object that is opened by others for repairing some inconsistency, such as repairing multiple-referenced OST-object, because the leaked open handle still references the MDT-object, then it will block the subsequent threads that want to locate such object via FID. Signed-off-by: Fan Yong Reviewed-on: http://review.whamcloud.com/13709 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6301 Reviewed-by: Andreas Dilger Reviewed-by: Lai Siyao Reviewed-by: Alex Zhuravlev Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/llite/llite_internal.h | 1 + .../staging/lustre/lustre/llite/llite_lib.c | 48 ++++++++++++++++++- drivers/staging/lustre/lustre/llite/namei.c | 14 ++++-- 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 2de64c23383b..8a3b03e36e3c 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -801,6 +801,7 @@ struct md_op_data *ll_prep_md_op_data(struct md_op_data *op_data, void ll_finish_md_op_data(struct md_op_data *op_data); int ll_get_obd_name(struct inode *inode, unsigned int cmd, unsigned long arg); char *ll_get_fsname(struct super_block *sb, char *buf, int buflen); +void ll_open_cleanup(struct super_block *sb, struct ptlrpc_request *open_req); /* llite/llite_nfs.c */ extern struct export_operations lustre_export_operations; diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index c60eb46e9c7e..725481d3916e 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1973,6 +1973,47 @@ int ll_remount_fs(struct super_block *sb, int *flags, char *data) return 0; } +/** + * Cleanup the open handle that is cached on MDT-side. + * + * For open case, the client side open handling thread may hit error + * after the MDT grant the open. Under such case, the client should + * send close RPC to the MDT as cleanup; otherwise, the open handle + * on the MDT will be leaked there until the client umount or evicted. + * + * In further, if someone unlinked the file, because the open handle + * holds the reference on such file/object, then it will block the + * subsequent threads that want to locate such object via FID. + * + * \param[in] sb super block for this file-system + * \param[in] open_req pointer to the original open request + */ +void ll_open_cleanup(struct super_block *sb, struct ptlrpc_request *open_req) +{ + struct mdt_body *body; + struct md_op_data *op_data; + struct ptlrpc_request *close_req = NULL; + struct obd_export *exp = ll_s2sbi(sb)->ll_md_exp; + + body = req_capsule_server_get(&open_req->rq_pill, &RMF_MDT_BODY); + OBD_ALLOC_PTR(op_data); + if (!op_data) { + CWARN("%s: cannot allocate op_data to release open handle for " + DFID "\n", + ll_get_fsname(sb, NULL, 0), PFID(&body->fid1)); + + return; + } + + op_data->op_fid1 = body->fid1; + op_data->op_ioepoch = body->ioepoch; + op_data->op_handle = body->handle; + op_data->op_mod_time = get_seconds(); + md_close(exp, op_data, NULL, &close_req); + ptlrpc_req_finished(close_req); + ll_finish_md_op_data(op_data); +} + int ll_prep_inode(struct inode **inode, struct ptlrpc_request *req, struct super_block *sb, struct lookup_intent *it) { @@ -1985,7 +2026,7 @@ int ll_prep_inode(struct inode **inode, struct ptlrpc_request *req, rc = md_get_lustre_md(sbi->ll_md_exp, req, sbi->ll_dt_exp, sbi->ll_md_exp, &md); if (rc) - return rc; + goto cleanup; if (*inode) { ll_update_inode(*inode, &md); @@ -2047,6 +2088,11 @@ out: if (md.lsm != NULL) obd_free_memmd(sbi->ll_dt_exp, &md.lsm); md_free_lustre_md(sbi->ll_md_exp, &md); + +cleanup: + if (rc != 0 && it && it->it_op & IT_OPEN) + ll_open_cleanup(sb ? sb : (*inode)->i_sb, req); + return rc; } diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index 05e7dc85989e..2635678e3d60 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@ -409,7 +409,7 @@ static int ll_lookup_it_finish(struct ptlrpc_request *request, { struct inode *inode = NULL; __u64 bits = 0; - int rc; + int rc = 0; /* NB 1 request reference will be taken away by ll_intent_lock() * when I return */ @@ -439,8 +439,10 @@ static int ll_lookup_it_finish(struct ptlrpc_request *request, struct dentry *alias; alias = ll_splice_alias(inode, *de); - if (IS_ERR(alias)) - return PTR_ERR(alias); + if (IS_ERR(alias)) { + rc = PTR_ERR(alias); + goto out; + } *de = alias; } else if (!it_disposition(it, DISP_LOOKUP_NEG) && !it_disposition(it, DISP_OPEN_CREATE)) { @@ -471,7 +473,11 @@ static int ll_lookup_it_finish(struct ptlrpc_request *request, } } - return 0; +out: + if (rc != 0 && it->it_op & IT_OPEN) + ll_open_cleanup((*de)->d_sb, request); + + return rc; } static struct dentry *ll_lookup_it(struct inode *parent, struct dentry *dentry, From 2742c75ec6f086dff1102f801fd0bff7a15ec3fd Mon Sep 17 00:00:00 2001 From: Bruno Faccini Date: Mon, 14 Sep 2015 18:41:20 -0400 Subject: [PATCH 0383/2431] staging/lustre/llite: strengthen checks for hsm flags and archive id Prior to this patch undefined flags bits and out of range archive id can be set. Signed-off-by: Bruno Faccini Reviewed-on: http://review.whamcloud.com/13337 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5757 Reviewed-by: frank zago Reviewed-by: Henri Doreau Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lustre/lustre_idl.h | 7 +++++++ drivers/staging/lustre/lustre/llite/file.c | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index e79af19ce853..9416d95702ba 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -365,6 +365,13 @@ static inline __u64 fid_ver_oid(const struct lu_fid *fid) return ((__u64)fid_ver(fid) << 32 | fid_oid(fid)); } +/* copytool uses a 32b bitmask field to encode archive-Ids during register + * with MDT thru kuc. + * archive num = 0 => all + * archive num from 1 to 32 + */ +#define LL_HSM_MAX_ARCHIVE (sizeof(__u32) * 8) + /** * Note that reserved SEQ numbers below 12 will conflict with ldiskfs * inodes in the IGIF namespace, so these reserved SEQ numbers can be diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index e332326011d1..b6100325723d 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -2118,12 +2118,21 @@ static int ll_hsm_state_set(struct inode *inode, struct hsm_state_set *hss) struct md_op_data *op_data; int rc; + /* Detect out-of range masks */ + if ((hss->hss_setmask | hss->hss_clearmask) & ~HSM_FLAGS_MASK) + return -EINVAL; + /* Non-root users are forbidden to set or clear flags which are * NOT defined in HSM_USER_MASK. */ if (((hss->hss_setmask | hss->hss_clearmask) & ~HSM_USER_MASK) && !capable(CFS_CAP_SYS_ADMIN)) return -EPERM; + /* Detect out-of range archive id */ + if ((hss->hss_valid & HSS_ARCHIVE_ID) && + (hss->hss_archive_id > LL_HSM_MAX_ARCHIVE)) + return -EINVAL; + op_data = ll_prep_md_op_data(NULL, inode, NULL, NULL, 0, 0, LUSTRE_OPC_ANY, hss); if (IS_ERR(op_data)) From 2e4fe2bde9028d4cd8090e08331305e51771c125 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Mon, 14 Sep 2015 18:41:21 -0400 Subject: [PATCH 0384/2431] staging/lustre/ptlrpc: remove LUSTRE_MSG_MAGIC_V1 support Remove the remains of LUSTRE_MSG_MAGIC_V1 support from ptlrpc. It has not been supported since 1.8 and is not functional since 2.0. In lustre_msg_check_version(), return an error for unsupported RPC versions so that the server will reject such RPCs early. Otherwise the server only prints an error message and continue on. Signed-off-by: Andreas Dilger Reviewed-on: http://review.whamcloud.com/14007 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6349 Reviewed-by: James Simmons Reviewed-by: Dmitry Eremin Reviewed-by: John L. Hammond Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre/lustre_idl.h | 3 - .../lustre/lustre/include/lustre_net.h | 2 - drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 3 +- .../lustre/lustre/ptlrpc/pack_generic.c | 96 +++++-------------- .../staging/lustre/lustre/ptlrpc/wiretest.c | 4 - 5 files changed, 24 insertions(+), 84 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 9416d95702ba..b0c4433ebc1c 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -154,10 +154,7 @@ #define PTL_RPC_MSG_REPLY 4713 /* DON'T use swabbed values of MAGIC as magic! */ -#define LUSTRE_MSG_MAGIC_V1 0x0BD00BD0 #define LUSTRE_MSG_MAGIC_V2 0x0BD00BD3 - -#define LUSTRE_MSG_MAGIC_V1_SWABBED 0xD00BD00B #define LUSTRE_MSG_MAGIC_V2_SWABBED 0xD30BD00B #define LUSTRE_MSG_MAGIC LUSTRE_MSG_MAGIC_V2 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 3341b5da6ac0..5df493e90040 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2610,7 +2610,6 @@ void lustre_msg_set_flags(struct lustre_msg *msg, int flags); void lustre_msg_clear_flags(struct lustre_msg *msg, int flags); __u32 lustre_msg_get_op_flags(struct lustre_msg *msg); void lustre_msg_add_op_flags(struct lustre_msg *msg, int flags); -void lustre_msg_set_op_flags(struct lustre_msg *msg, int flags); struct lustre_handle *lustre_msg_get_handle(struct lustre_msg *msg); __u32 lustre_msg_get_type(struct lustre_msg *msg); __u32 lustre_msg_get_version(struct lustre_msg *msg); @@ -2626,7 +2625,6 @@ void lustre_msg_set_slv(struct lustre_msg *msg, __u64 slv); void lustre_msg_set_limit(struct lustre_msg *msg, __u64 limit); int lustre_msg_get_status(struct lustre_msg *msg); __u32 lustre_msg_get_conn_cnt(struct lustre_msg *msg); -int lustre_msg_is_v1(struct lustre_msg *msg); __u32 lustre_msg_get_magic(struct lustre_msg *msg); __u32 lustre_msg_get_timeout(struct lustre_msg *msg); __u32 lustre_msg_get_service_time(struct lustre_msg *msg); diff --git a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c index 92c746b44462..22194c0ab970 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c +++ b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c @@ -337,9 +337,8 @@ static void ptlrpc_at_set_reply(struct ptlrpc_request *req, int flags) if (req->rq_reqmsg && !(lustre_msghdr_get_flags(req->rq_reqmsg) & MSGHDR_AT_SUPPORT)) { - CDEBUG(D_ADAPTTO, "No early reply support: flags=%#x req_flags=%#x magic=%d:%x/%x len=%d\n", + CDEBUG(D_ADAPTTO, "No early reply support: flags=%#x req_flags=%#x magic=%x/%x len=%d\n", flags, lustre_msg_get_flags(req->rq_reqmsg), - lustre_msg_is_v1(req->rq_reqmsg), lustre_msg_get_magic(req->rq_reqmsg), lustre_msg_get_magic(req->rq_repmsg), req->rq_replen); } diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index e9f8aa0df978..f1380613a4d1 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -103,6 +103,7 @@ static inline int lustre_msg_check_version_v2(struct lustre_msg_v2 *msg, int lustre_msg_check_version(struct lustre_msg *msg, __u32 version) { +#define LUSTRE_MSG_MAGIC_V1 0x0BD00BD0 switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V1: CERROR("msg v1 not supported - please upgrade you system\n"); @@ -113,6 +114,7 @@ int lustre_msg_check_version(struct lustre_msg *msg, __u32 version) CERROR("incorrect message magic: %08x\n", msg->lm_magic); return 0; } +#undef LUSTRE_MSG_MAGIC_V1 } EXPORT_SYMBOL(lustre_msg_check_version); @@ -433,7 +435,8 @@ void *lustre_msg_buf(struct lustre_msg *m, int n, int min_size) case LUSTRE_MSG_MAGIC_V2: return lustre_msg_buf_v2(m, n, min_size); default: - LASSERTF(0, "incorrect message magic: %08x(msg:%p)\n", m->lm_magic, m); + LASSERTF(0, "incorrect message magic: %08x (msg:%p)\n", + m->lm_magic, m); return NULL; } } @@ -802,14 +805,11 @@ static inline struct ptlrpc_body *lustre_msg_ptlrpc_body(struct lustre_msg *msg) __u32 lustre_msghdr_get_flags(struct lustre_msg *msg) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - case LUSTRE_MSG_MAGIC_V1_SWABBED: - return 0; case LUSTRE_MSG_MAGIC_V2: /* already in host endian */ return msg->lm_flags; default: - LASSERTF(0, "incorrect message magic: %08x\n", msg->lm_magic); + CERROR("incorrect message magic: %08x\n", msg->lm_magic); return 0; } } @@ -818,8 +818,6 @@ EXPORT_SYMBOL(lustre_msghdr_get_flags); void lustre_msghdr_set_flags(struct lustre_msg *msg, __u32 flags) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - return; case LUSTRE_MSG_MAGIC_V2: msg->lm_flags = flags; return; @@ -833,12 +831,12 @@ __u32 lustre_msg_get_flags(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); - if (!pb) { - CERROR("invalid msg %p: no ptlrpc body!\n", msg); - return 0; - } - return pb->pb_flags; + if (pb) + return pb->pb_flags; + + CERROR("invalid msg %p: no ptlrpc body!\n", msg); } + /* no break */ default: /* flags might be printed in debug code while message * uninitialized */ @@ -897,12 +895,12 @@ __u32 lustre_msg_get_op_flags(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); - if (!pb) { - CERROR("invalid msg %p: no ptlrpc body!\n", msg); - return 0; - } - return pb->pb_op_flags; + if (pb) + return pb->pb_op_flags; + + CERROR("invalid msg %p: no ptlrpc body!\n", msg); } + /* no break */ default: return 0; } @@ -924,21 +922,6 @@ void lustre_msg_add_op_flags(struct lustre_msg *msg, int flags) } EXPORT_SYMBOL(lustre_msg_add_op_flags); -void lustre_msg_set_op_flags(struct lustre_msg *msg, int flags) -{ - switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V2: { - struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); - LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); - pb->pb_op_flags |= flags; - return; - } - default: - LASSERTF(0, "incorrect message magic: %08x\n", msg->lm_magic); - } -} -EXPORT_SYMBOL(lustre_msg_set_op_flags); - struct lustre_handle *lustre_msg_get_handle(struct lustre_msg *msg) { switch (msg->lm_magic) { @@ -1020,8 +1003,8 @@ __u32 lustre_msg_get_opc(struct lustre_msg *msg) return pb->pb_opc; } default: - CERROR("incorrect message magic: %08x(msg:%p)\n", msg->lm_magic, msg); - LBUG(); + CERROR("incorrect message magic: %08x (msg:%p)\n", + msg->lm_magic, msg); return 0; } } @@ -1066,8 +1049,6 @@ EXPORT_SYMBOL(lustre_msg_get_last_committed); __u64 *lustre_msg_get_versions(struct lustre_msg *msg) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - return NULL; case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); if (!pb) { @@ -1106,12 +1087,12 @@ int lustre_msg_get_status(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); - if (!pb) { - CERROR("invalid msg %p: no ptlrpc body!\n", msg); - return -EINVAL; - } - return pb->pb_status; + if (pb) + return pb->pb_status; + + CERROR("invalid msg %p: no ptlrpc body!\n", msg); } + /* no break */ default: /* status might be printed in debug code while message * uninitialized */ @@ -1214,18 +1195,6 @@ __u32 lustre_msg_get_conn_cnt(struct lustre_msg *msg) } EXPORT_SYMBOL(lustre_msg_get_conn_cnt); -int lustre_msg_is_v1(struct lustre_msg *msg) -{ - switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - case LUSTRE_MSG_MAGIC_V1_SWABBED: - return 1; - default: - return 0; - } -} -EXPORT_SYMBOL(lustre_msg_is_v1); - __u32 lustre_msg_get_magic(struct lustre_msg *msg) { switch (msg->lm_magic) { @@ -1241,9 +1210,6 @@ EXPORT_SYMBOL(lustre_msg_get_magic); __u32 lustre_msg_get_timeout(struct lustre_msg *msg) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - case LUSTRE_MSG_MAGIC_V1_SWABBED: - return 0; case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); if (!pb) { @@ -1255,16 +1221,13 @@ __u32 lustre_msg_get_timeout(struct lustre_msg *msg) } default: CERROR("incorrect message magic: %08x\n", msg->lm_magic); - return 0; + return -EPROTO; } } __u32 lustre_msg_get_service_time(struct lustre_msg *msg) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - case LUSTRE_MSG_MAGIC_V1_SWABBED: - return 0; case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); if (!pb) { @@ -1283,9 +1246,6 @@ __u32 lustre_msg_get_service_time(struct lustre_msg *msg) char *lustre_msg_get_jobid(struct lustre_msg *msg) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - case LUSTRE_MSG_MAGIC_V1_SWABBED: - return NULL; case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_buf_v2(msg, MSG_PTLRPC_BODY_OFF, @@ -1409,8 +1369,6 @@ EXPORT_SYMBOL(lustre_msg_set_last_committed); void lustre_msg_set_versions(struct lustre_msg *msg, __u64 *versions) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - return; case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); @@ -1474,8 +1432,6 @@ EXPORT_SYMBOL(lustre_msg_set_conn_cnt); void lustre_msg_set_timeout(struct lustre_msg *msg, __u32 timeout) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - return; case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); @@ -1490,8 +1446,6 @@ void lustre_msg_set_timeout(struct lustre_msg *msg, __u32 timeout) void lustre_msg_set_service_time(struct lustre_msg *msg, __u32 service_time) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - return; case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); @@ -1506,8 +1460,6 @@ void lustre_msg_set_service_time(struct lustre_msg *msg, __u32 service_time) void lustre_msg_set_jobid(struct lustre_msg *msg, char *jobid) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - return; case LUSTRE_MSG_MAGIC_V2: { __u32 opc = lustre_msg_get_opc(msg); struct ptlrpc_body *pb; @@ -1537,8 +1489,6 @@ EXPORT_SYMBOL(lustre_msg_set_jobid); void lustre_msg_set_cksum(struct lustre_msg *msg, __u32 cksum) { switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - return; case LUSTRE_MSG_MAGIC_V2: msg->lm_cksum = cksum; return; diff --git a/drivers/staging/lustre/lustre/ptlrpc/wiretest.c b/drivers/staging/lustre/lustre/ptlrpc/wiretest.c index d6d92046c348..b2313afa81a6 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/wiretest.c +++ b/drivers/staging/lustre/lustre/ptlrpc/wiretest.c @@ -636,12 +636,8 @@ void lustre_assert_wire_constants(void) (long long)(int)offsetof(struct lustre_msg_v2, lm_buflens[0])); LASSERTF((int)sizeof(((struct lustre_msg_v2 *)0)->lm_buflens[0]) == 4, "found %lld\n", (long long)(int)sizeof(((struct lustre_msg_v2 *)0)->lm_buflens[0])); - LASSERTF(LUSTRE_MSG_MAGIC_V1 == 0x0BD00BD0, "found 0x%.8x\n", - LUSTRE_MSG_MAGIC_V1); LASSERTF(LUSTRE_MSG_MAGIC_V2 == 0x0BD00BD3, "found 0x%.8x\n", LUSTRE_MSG_MAGIC_V2); - LASSERTF(LUSTRE_MSG_MAGIC_V1_SWABBED == 0xD00BD00B, "found 0x%.8x\n", - LUSTRE_MSG_MAGIC_V1_SWABBED); LASSERTF(LUSTRE_MSG_MAGIC_V2_SWABBED == 0xD30BD00B, "found 0x%.8x\n", LUSTRE_MSG_MAGIC_V2_SWABBED); From ced41eba4111e954af6a67ff45e30072a89d6cc5 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 14 Sep 2015 18:41:22 -0400 Subject: [PATCH 0385/2431] staging/lustre/lmv: fix potential null pointer dereference In lmv_disconnect_mdc do procfs removal only if we actually know the name. Reviewed-on: http://review.whamcloud.com/14605 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6517 Reviewed-by: James Simmons Reviewed-by: John L. Hammond Reviewed-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/lmv/lmv_obd.c b/drivers/staging/lustre/lustre/lmv/lmv_obd.c index 0fc0b61d9201..cebbacfc5bee 100644 --- a/drivers/staging/lustre/lustre/lmv/lmv_obd.c +++ b/drivers/staging/lustre/lustre/lmv/lmv_obd.c @@ -593,11 +593,11 @@ static int lmv_disconnect_mdc(struct obd_device *obd, struct lmv_tgt_desc *tgt) mdc_obd->obd_force = obd->obd_force; mdc_obd->obd_fail = obd->obd_fail; mdc_obd->obd_no_recov = obd->obd_no_recov; - } - if (lmv->lmv_tgts_kobj) - sysfs_remove_link(lmv->lmv_tgts_kobj, - mdc_obd->obd_name); + if (lmv->lmv_tgts_kobj) + sysfs_remove_link(lmv->lmv_tgts_kobj, + mdc_obd->obd_name); + } rc = obd_fid_fini(tgt->ltd_exp->exp_obd); if (rc) From bbaa9c10328aa14615733c407b0c2f6d9c3df330 Mon Sep 17 00:00:00 2001 From: Niu Yawei Date: Mon, 14 Sep 2015 18:41:23 -0400 Subject: [PATCH 0386/2431] staging/lustre/llite: deny non-root user for changelog operations To avoid potential security problems, non-privileged users should have no permission to run 'lfs changelog' & 'lfs changelog_clear'. Signed-off-by: Niu Yawei Reviewed-on: http://review.whamcloud.com/14280 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6415 Reviewed-by: Lai Siyao Reviewed-by: Jinshan Xiong Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/dir.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c index d407fcc9904d..cc6f0f596ffe 100644 --- a/drivers/staging/lustre/lustre/llite/dir.c +++ b/drivers/staging/lustre/lustre/llite/dir.c @@ -1734,6 +1734,9 @@ out_quotactl: } case OBD_IOC_CHANGELOG_SEND: case OBD_IOC_CHANGELOG_CLEAR: + if (!capable(CFS_CAP_SYS_ADMIN)) + return -EPERM; + rc = copy_and_ioctl(cmd, sbi->ll_md_exp, (void *)arg, sizeof(struct ioc_changelog)); return rc; From 6fa3c577bb8d57a517445af1015035eb43a87a1f Mon Sep 17 00:00:00 2001 From: Liang Zhen Date: Mon, 14 Sep 2015 18:41:24 -0400 Subject: [PATCH 0387/2431] staging/lustre/o2iblnd: connection refcount fix for kiblnd_post_rx kiblnd_post_rx() can't refer to rx::rx_conn anymore after ib_post_recv() because this rx can be polled out by another thread which may drop this rx and destroy rx::rx_conn. This patch fixes this issue by taking an extra refcount on connection before calling ib_post_recv(). Signed-off-by: Liang Zhen Reviewed-on: http://review.whamcloud.com/12852 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5678 Reviewed-by: Isaac Huang Reviewed-by: Amir Shehata Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index 345ed4d27cc6..c0f568254c19 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -178,24 +178,28 @@ kiblnd_post_rx(kib_rx_t *rx, int credit) rx->rx_nob = -1; /* flag posted */ + /* NB: need an extra reference after ib_post_recv because we don't + * own this rx (and rx::rx_conn) anymore, LU-5678. + */ + kiblnd_conn_addref(conn); rc = ib_post_recv(conn->ibc_cmid->qp, &rx->rx_wrq, &bad_wrq); - if (rc != 0) { + if (unlikely(rc != 0)) { CERROR("Can't post rx for %s: %d, bad_wrq: %p\n", libcfs_nid2str(conn->ibc_peer->ibp_nid), rc, bad_wrq); rx->rx_nob = 0; } if (conn->ibc_state < IBLND_CONN_ESTABLISHED) /* Initial post */ - return rc; + goto out; - if (rc != 0) { + if (unlikely(rc != 0)) { kiblnd_close_conn(conn, rc); kiblnd_drop_rx(rx); /* No more posts for this rx */ - return rc; + goto out; } if (credit == IBLND_POSTRX_NO_CREDIT) - return 0; + goto out; spin_lock(&conn->ibc_lock); if (credit == IBLND_POSTRX_PEER_CREDIT) @@ -205,7 +209,9 @@ kiblnd_post_rx(kib_rx_t *rx, int credit) spin_unlock(&conn->ibc_lock); kiblnd_check_sends(conn); - return 0; +out: + kiblnd_conn_decref(conn); + return rc; } static kib_tx_t * From 0df83c184effeac5d05394b65ca7baef71f41178 Mon Sep 17 00:00:00 2001 From: Hiroya Nozaki Date: Mon, 14 Sep 2015 18:41:25 -0400 Subject: [PATCH 0388/2431] staging/lustre/osc: LBUG in osc_lru_reclaim LASSERT touches cl_client_cache->ccc_lru without any protection. So this patch the LASSERT moves to the section protected by cl_client_cache->ccc_lru_lock Signed-off-by: Hiroya Nozaki Reviewed-on: http://review.whamcloud.com/14901 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6624 Reviewed-by: Andreas Dilger Reviewed-by: James Simmons Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/osc_page.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/osc/osc_page.c b/drivers/staging/lustre/lustre/osc/osc_page.c index 856d859c385e..2af3232230ec 100644 --- a/drivers/staging/lustre/lustre/osc/osc_page.c +++ b/drivers/staging/lustre/lustre/osc/osc_page.c @@ -818,7 +818,6 @@ static int osc_lru_reclaim(struct client_obd *cli) int rc; LASSERT(cache != NULL); - LASSERT(!list_empty(&cache->ccc_lru)); rc = osc_lru_shrink(cli, lru_shrink_min); if (rc != 0) { @@ -835,6 +834,8 @@ static int osc_lru_reclaim(struct client_obd *cli) /* Reclaim LRU slots from other client_obd as it can't free enough * from its own. This should rarely happen. */ spin_lock(&cache->ccc_lru_lock); + LASSERT(!list_empty(&cache->ccc_lru)); + cache->ccc_lru_shrinkers++; list_move_tail(&cli->cl_lru_osc, &cache->ccc_lru); From 3a956d8c1939e2ad34047fde96d40d39ec2186cf Mon Sep 17 00:00:00 2001 From: Niu Yawei Date: Mon, 14 Sep 2015 18:41:26 -0400 Subject: [PATCH 0389/2431] staging/lustre/libcfs: minor fix in cfs_hash_for_each_relax() cfs_hash_for_each_relax() should break iteration when callback returns non-zero value. Signed-off-by: Niu Yawei Reviewed-on: http://review.whamcloud.com/14927 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6636 Reviewed-by: Bobi Jam Reviewed-by: Andreas Dilger Reviewed-by: Liang Zhen Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/libcfs/hash.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/staging/lustre/lustre/libcfs/hash.c b/drivers/staging/lustre/lustre/libcfs/hash.c index 286641bb1b41..6f4c7d47fa33 100644 --- a/drivers/staging/lustre/lustre/libcfs/hash.c +++ b/drivers/staging/lustre/lustre/libcfs/hash.c @@ -1623,8 +1623,12 @@ cfs_hash_for_each_relax(struct cfs_hash *hs, cfs_hash_for_each_cb_t func, if (rc) /* callback wants to break iteration */ break; } + if (rc) /* callback wants to break iteration */ + break; } cfs_hash_bd_unlock(hs, &bd, 0); + if (rc) /* callback wants to break iteration */ + break; } cfs_hash_unlock(hs, 0); From 4dcb710986aa3bbcee8172b2ea6387982d5455cc Mon Sep 17 00:00:00 2001 From: Liang Zhen Date: Mon, 14 Sep 2015 18:41:27 -0400 Subject: [PATCH 0390/2431] staging/lustre/lnet: fix deadloop in ksocknal_push ksocknal_push() should break the loop if it can't find matching peer Signed-off-by: Liang Zhen Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4423 Reviewed-on: http://review.whamcloud.com/10128 Reviewed-by: James Simmons Reviewed-by: Doug Oucharek Reviewed-by: Isaac Huang Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lnet/klnds/socklnd/socklnd.c | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index d8bfcadd184a..22f4cd0173c1 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c @@ -1874,52 +1874,51 @@ ksocknal_push_peer(ksock_peer_t *peer) } } -static int -ksocknal_push(lnet_ni_t *ni, lnet_process_id_t id) +static int ksocknal_push(lnet_ni_t *ni, lnet_process_id_t id) { - ksock_peer_t *peer; + struct list_head *start; + struct list_head *end; struct list_head *tmp; - int index; - int i; - int j; int rc = -ENOENT; + unsigned int hsize = ksocknal_data.ksnd_peer_hash_size; + + if (id.nid == LNET_NID_ANY) { + start = &ksocknal_data.ksnd_peers[0]; + end = &ksocknal_data.ksnd_peers[hsize - 1]; + } else { + start = end = ksocknal_nid2peerlist(id.nid); + } + + for (tmp = start; tmp <= end; tmp++) { + int peer_off; /* searching offset in peer hash table */ + + for (peer_off = 0; ; peer_off++) { + ksock_peer_t *peer; + int i = 0; - for (i = 0; i < ksocknal_data.ksnd_peer_hash_size; i++) { - for (j = 0; ; j++) { read_lock(&ksocknal_data.ksnd_global_lock); - - index = 0; - peer = NULL; - - list_for_each(tmp, &ksocknal_data.ksnd_peers[i]) { - peer = list_entry(tmp, ksock_peer_t, - ksnp_list); - + list_for_each_entry(peer, tmp, ksnp_list) { if (!((id.nid == LNET_NID_ANY || id.nid == peer->ksnp_id.nid) && (id.pid == LNET_PID_ANY || - id.pid == peer->ksnp_id.pid))) { - peer = NULL; + id.pid == peer->ksnp_id.pid))) continue; - } - if (index++ == j) { + if (i++ == peer_off) { ksocknal_peer_addref(peer); break; } } - read_unlock(&ksocknal_data.ksnd_global_lock); - if (peer != NULL) { - rc = 0; - ksocknal_push_peer(peer); - ksocknal_peer_decref(peer); - } + if (i == 0) /* no match */ + break; + + rc = 0; + ksocknal_push_peer(peer); + ksocknal_peer_decref(peer); } - } - return rc; } From 2f3622b90fb551d3672479ad1e4ab649d7fcdbad Mon Sep 17 00:00:00 2001 From: Isaac Huang Date: Mon, 14 Sep 2015 18:41:28 -0400 Subject: [PATCH 0391/2431] staging/lustre/o2iblnd: wrong uses of kib_tx_t::tx_nfrags The kib_tx_t::tx_nfrags field is the # entries in the kib_tx_t::tx_frags array, rather than # DMA mapped entries. So kiblnd_send/kiblnd_recv should use kib_rdma_desc_t::rd_nfrags instead. Signed-off-by: Isaac Huang Reviewed-on: http://review.whamcloud.com/12857 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5956 Reviewed-by: Liang Zhen Reviewed-by: James Simmons Reviewed-by: Doug Oucharek Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lnet/klnds/o2iblnd/o2iblnd.h | 3 -- .../lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 37 ++++++++++--------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h index 07e81cb4a12e..eb08400cc7d6 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h @@ -912,9 +912,6 @@ struct ib_mr *kiblnd_find_dma_mr(kib_hca_dev_t *hdev, __u64 addr, __u64 size); void kiblnd_map_rx_descs(kib_conn_t *conn); void kiblnd_unmap_rx_descs(kib_conn_t *conn); -int kiblnd_map_tx(lnet_ni_t *ni, kib_tx_t *tx, - kib_rdma_desc_t *rd, int nfrags); -void kiblnd_unmap_tx(lnet_ni_t *ni, kib_tx_t *tx); void kiblnd_pool_free_node(kib_pool_t *pool, struct list_head *node); struct list_head *kiblnd_pool_alloc_node(kib_poolset_t *ps); diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index c0f568254c19..8ab73eece620 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -40,6 +40,8 @@ #include "o2iblnd.h" +static void kiblnd_unmap_tx(lnet_ni_t *ni, kib_tx_t *tx); + static void kiblnd_tx_done(lnet_ni_t *ni, kib_tx_t *tx) { @@ -596,8 +598,7 @@ kiblnd_fmr_map_tx(kib_net_t *net, kib_tx_t *tx, kib_rdma_desc_t *rd, int nob) return 0; } -void -kiblnd_unmap_tx(lnet_ni_t *ni, kib_tx_t *tx) +static void kiblnd_unmap_tx(lnet_ni_t *ni, kib_tx_t *tx) { kib_net_t *net = ni->ni_data; @@ -615,9 +616,8 @@ kiblnd_unmap_tx(lnet_ni_t *ni, kib_tx_t *tx) } } -int -kiblnd_map_tx(lnet_ni_t *ni, kib_tx_t *tx, - kib_rdma_desc_t *rd, int nfrags) +static int kiblnd_map_tx(lnet_ni_t *ni, kib_tx_t *tx, kib_rdma_desc_t *rd, + int nfrags) { kib_hca_dev_t *hdev = tx->tx_pool->tpo_hdev; kib_net_t *net = ni->ni_data; @@ -1427,6 +1427,7 @@ kiblnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg) unsigned int payload_offset = lntmsg->msg_offset; unsigned int payload_nob = lntmsg->msg_len; kib_msg_t *ibmsg; + kib_rdma_desc_t *rd; kib_tx_t *tx; int nob; int rc; @@ -1470,16 +1471,14 @@ kiblnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg) } ibmsg = tx->tx_msg; - + rd = &ibmsg->ibm_u.get.ibgm_rd; if ((lntmsg->msg_md->md_options & LNET_MD_KIOV) == 0) - rc = kiblnd_setup_rd_iov(ni, tx, - &ibmsg->ibm_u.get.ibgm_rd, + rc = kiblnd_setup_rd_iov(ni, tx, rd, lntmsg->msg_md->md_niov, lntmsg->msg_md->md_iov.iov, 0, lntmsg->msg_md->md_length); else - rc = kiblnd_setup_rd_kiov(ni, tx, - &ibmsg->ibm_u.get.ibgm_rd, + rc = kiblnd_setup_rd_kiov(ni, tx, rd, lntmsg->msg_md->md_niov, lntmsg->msg_md->md_iov.kiov, 0, lntmsg->msg_md->md_length); @@ -1490,7 +1489,7 @@ kiblnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg) return -EIO; } - nob = offsetof(kib_get_msg_t, ibgm_rd.rd_frags[tx->tx_nfrags]); + nob = offsetof(kib_get_msg_t, ibgm_rd.rd_frags[rd->rd_nfrags]); ibmsg->ibm_u.get.ibgm_cookie = tx->tx_cookie; ibmsg->ibm_u.get.ibgm_hdr = *hdr; @@ -1655,7 +1654,6 @@ kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed, kib_msg_t *rxmsg = rx->rx_msg; kib_conn_t *conn = rx->rx_conn; kib_tx_t *tx; - kib_msg_t *txmsg; int nob; int post_credit = IBLND_POSTRX_PEER_CREDIT; int rc = 0; @@ -1692,7 +1690,10 @@ kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed, lnet_finalize(ni, lntmsg, 0); break; - case IBLND_MSG_PUT_REQ: + case IBLND_MSG_PUT_REQ: { + kib_msg_t *txmsg; + kib_rdma_desc_t *rd; + if (mlen == 0) { lnet_finalize(ni, lntmsg, 0); kiblnd_send_completion(rx->rx_conn, IBLND_MSG_PUT_NAK, 0, @@ -1710,13 +1711,12 @@ kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed, } txmsg = tx->tx_msg; + rd = &txmsg->ibm_u.putack.ibpam_rd; if (kiov == NULL) - rc = kiblnd_setup_rd_iov(ni, tx, - &txmsg->ibm_u.putack.ibpam_rd, + rc = kiblnd_setup_rd_iov(ni, tx, rd, niov, iov, offset, mlen); else - rc = kiblnd_setup_rd_kiov(ni, tx, - &txmsg->ibm_u.putack.ibpam_rd, + rc = kiblnd_setup_rd_kiov(ni, tx, rd, niov, kiov, offset, mlen); if (rc != 0) { CERROR("Can't setup PUT sink for %s: %d\n", @@ -1728,7 +1728,7 @@ kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed, break; } - nob = offsetof(kib_putack_msg_t, ibpam_rd.rd_frags[tx->tx_nfrags]); + nob = offsetof(kib_putack_msg_t, ibpam_rd.rd_frags[rd->rd_nfrags]); txmsg->ibm_u.putack.ibpam_src_cookie = rxmsg->ibm_u.putreq.ibprm_cookie; txmsg->ibm_u.putack.ibpam_dst_cookie = tx->tx_cookie; @@ -1741,6 +1741,7 @@ kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed, /* reposted buffer reserved for PUT_DONE */ post_credit = IBLND_POSTRX_NO_CREDIT; break; + } case IBLND_MSG_GET_REQ: if (lntmsg != NULL) { From 7f830d8d54d348783a7c23635fb985b40e5db963 Mon Sep 17 00:00:00 2001 From: Andrew Perepechko Date: Mon, 14 Sep 2015 18:41:29 -0400 Subject: [PATCH 0392/2431] staging/lustre/llite: ASSERTION( atomic_read(&d->ld_ref) == 0 ) failed ll_iget_for_nfs() can call unbalanced iput() causing memory leaks. This patch removes this iput() call. Also, avoid unhashing disconnected dentries in d_lustre_invalidate(), which is another source of memory leaks. One of the symptoms of the leak is the following crash pattern: LustreError: 14812:0:(lu_object.c:1251:lu_device_fini()) ASSERTION( atomic_read(&d->ld_ref) == 0 ) failed: Refcount is 1 LustreError: 14812:0:(lu_object.c:1251:lu_device_fini()) LBUG Pid: 14812, comm: umount Call Trace: [] libcfs_debug_dumpstack+0x55/0x80 [libcfs] [] lbug_with_loc+0x47/0xb0 [libcfs] [] lu_device_fini+0xb8/0xc0 [obdclass] [] lovsub_device_free+0x52/0x220 [lov] [] lu_stack_fini+0x7e/0xc0 [obdclass] [] cl_stack_fini+0xe/0x10 [obdclass] [] lov_device_fini+0x58/0x120 [lov] [] lu_stack_fini+0x49/0xc0 [obdclass] [] cl_stack_fini+0xe/0x10 [obdclass] [] cl_sb_fini+0x6d/0x190 [lustre] [] ll_put_super+0x1bc/0x11e0 [lustre] [] ? fsnotify_clear_marks_by_inode+0x32/0xf0 [] ? destroy_inode+0x2f/0x60 [] ? dispose_list+0xfc/0x120 [] ? invalidate_inodes+0xf6/0x190 [] generic_shutdown_super+0x5b/0xe0 [] kill_anon_super+0x16/0x60 [] lustre_kill_super+0x4a/0x60 [obdclass] [] deactivate_super+0x57/0x80 [] mntput_no_expire+0xbf/0x110 [] sys_umount+0x7b/0x3a0 [] system_call_fastpath+0x16/0x1b Signed-off-by: Andrew Perepechko Reviewed-on: http://review.whamcloud.com/15480 Xyratex-bug-id: MRP-2414 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6794 Reviewed-by: Lai Siyao Reviewed-by: Bobi Jam Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/llite_internal.h | 10 +++++++++- drivers/staging/lustre/lustre/llite/llite_nfs.c | 5 +---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 8a3b03e36e3c..37bf331be5c2 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -1466,7 +1466,15 @@ static inline void d_lustre_invalidate(struct dentry *dentry, int nested) spin_lock_nested(&dentry->d_lock, nested ? DENTRY_D_LOCK_NESTED : DENTRY_D_LOCK_NORMAL); __d_lustre_invalidate(dentry); - if (d_count(dentry) == 0) + /* + * We should be careful about dentries created by d_obtain_alias(). + * These dentries are not put in the dentry tree, instead they are + * linked to sb->s_anon through dentry->d_hash. + * shrink_dcache_for_umount() shrinks the tree and sb->s_anon list. + * If we unhashed such a dentry, unmount would not be able to find + * it and busy inodes would be reported. + */ + if (d_count(dentry) == 0 && !(dentry->d_flags & DCACHE_DISCONNECTED)) __d_drop(dentry); spin_unlock(&dentry->d_lock); } diff --git a/drivers/staging/lustre/lustre/llite/llite_nfs.c b/drivers/staging/lustre/lustre/llite/llite_nfs.c index 8d1c253d4669..400acacc3590 100644 --- a/drivers/staging/lustre/lustre/llite/llite_nfs.c +++ b/drivers/staging/lustre/lustre/llite/llite_nfs.c @@ -168,11 +168,8 @@ ll_iget_for_nfs(struct super_block *sb, struct lu_fid *fid, struct lu_fid *paren spin_unlock(&lli->lli_lock); } + /* N.B. d_obtain_alias() drops inode ref on error */ result = d_obtain_alias(inode); - if (IS_ERR(result)) { - iput(inode); - return result; - } return result; } From a0b8803a36f51e8ade88c64cbb5a768e575b1787 Mon Sep 17 00:00:00 2001 From: Ann Koehler Date: Mon, 14 Sep 2015 18:41:30 -0400 Subject: [PATCH 0393/2431] staging/lustre/obdclass: Eliminate hash bucket scans in lu_cache_shrink The lu_cache_shrink slab shrinker is too slow, accounting for > 90% of the time spent in shrink_slab when allocating huge pages. Most of its time is spent iterating over the buckets in each site's object hash table to compute the number of freeable objects. This iteration is eliminated by adding an lru length count to the lu_site struct. A percpu counter is used to maintain the lru length, so that the lu_site does not need to be locked when an object is accessed through the hash table. A counter is updated whenever an object is added to or deleted from any of the hash table buckets. The number of freeable objects is the sum of the counter values across all cpus. Signed-off-by: Ann Koehler Reviewed-on: http://review.whamcloud.com/14066 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6365 Reviewed-by: Mike Pershin Reviewed-by: Andreas Dilger Reviewed-by: Alex Zhuravlev Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lu_object.h | 1 + .../lustre/lustre/obdclass/lu_object.c | 66 ++++++++++++------- 2 files changed, 42 insertions(+), 25 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index ea13a82ff887..96e271d7df9a 100644 --- a/drivers/staging/lustre/lustre/include/lu_object.h +++ b/drivers/staging/lustre/lustre/include/lu_object.h @@ -584,6 +584,7 @@ enum { LU_SS_CACHE_RACE, LU_SS_CACHE_DEATH_RACE, LU_SS_LRU_PURGED, + LU_SS_LRU_LEN, /* # of objects in lsb_lru lists */ LU_SS_LAST_STAT }; diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 4f7899f9a15c..c892e8239e8d 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -59,6 +59,7 @@ #include static void lu_object_free(const struct lu_env *env, struct lu_object *o); +static __u32 ls_stats_read(struct lprocfs_stats *stats, int idx); /** * Decrease reference counter on object. If last reference is freed, return @@ -126,6 +127,9 @@ void lu_object_put(const struct lu_env *env, struct lu_object *o) LASSERT(list_empty(&top->loh_lru)); list_add_tail(&top->loh_lru, &bkt->lsb_lru); bkt->lsb_lru_len++; + lprocfs_counter_incr(site->ls_stats, LU_SS_LRU_LEN); + CDEBUG(D_INODE, "Add %p to site lru. hash: %p, bkt: %p, lru_len: %ld\n", + o, site->ls_obj_hash, bkt, bkt->lsb_lru_len); cfs_hash_bd_unlock(site->ls_obj_hash, &bd, 1); return; } @@ -174,16 +178,18 @@ void lu_object_unhash(const struct lu_env *env, struct lu_object *o) top = o->lo_header; set_bit(LU_OBJECT_HEARD_BANSHEE, &top->loh_flags); if (!test_and_set_bit(LU_OBJECT_UNHASHED, &top->loh_flags)) { - struct cfs_hash *obj_hash = o->lo_dev->ld_site->ls_obj_hash; + struct lu_site *site = o->lo_dev->ld_site; + struct cfs_hash *obj_hash = site->ls_obj_hash; struct cfs_hash_bd bd; cfs_hash_bd_get_and_lock(obj_hash, &top->loh_fid, &bd, 1); if (!list_empty(&top->loh_lru)) { struct lu_site_bkt_data *bkt; - list_del_init(&top->loh_lru); + list_del_init(&top->loh_lru); bkt = cfs_hash_bd_extra_get(obj_hash, &bd); bkt->lsb_lru_len--; + lprocfs_counter_decr(site->ls_stats, LU_SS_LRU_LEN); } cfs_hash_bd_del_locked(obj_hash, &bd, &top->loh_hash); cfs_hash_bd_unlock(obj_hash, &bd, 1); @@ -355,6 +361,7 @@ int lu_site_purge(const struct lu_env *env, struct lu_site *s, int nr) &bd2, &h->loh_hash); list_move(&h->loh_lru, &dispose); bkt->lsb_lru_len--; + lprocfs_counter_decr(s->ls_stats, LU_SS_LRU_LEN); if (did_sth == 0) did_sth = 1; @@ -568,8 +575,9 @@ static struct lu_object *htable_lookup(struct lu_site *s, cfs_hash_get(s->ls_obj_hash, hnode); lprocfs_counter_incr(s->ls_stats, LU_SS_CACHE_HIT); if (!list_empty(&h->loh_lru)) { - list_del_init(&h->loh_lru); + list_del_init(&h->loh_lru); bkt->lsb_lru_len--; + lprocfs_counter_decr(s->ls_stats, LU_SS_LRU_LEN); } return lu_object_top(h); } @@ -1029,6 +1037,12 @@ int lu_site_init(struct lu_site *s, struct lu_device *top) 0, "cache_death_race", "cache_death_race"); lprocfs_counter_init(s->ls_stats, LU_SS_LRU_PURGED, 0, "lru_purged", "lru_purged"); + /* + * Unlike other counters, lru_len can be decremented so + * need lc_sum instead of just lc_count + */ + lprocfs_counter_init(s->ls_stats, LU_SS_LRU_LEN, + LPROCFS_CNTR_AVGMINMAX, "lru_len", "lru_len"); INIT_LIST_HEAD(&s->ls_linkage); s->ls_top_dev = top; @@ -1817,27 +1831,21 @@ static void lu_site_stats_get(struct cfs_hash *hs, /* - * There exists a potential lock inversion deadlock scenario when using - * Lustre on top of ZFS. This occurs between one of ZFS's - * buf_hash_table.ht_lock's, and Lustre's lu_sites_guard lock. Essentially, - * thread A will take the lu_sites_guard lock and sleep on the ht_lock, - * while thread B will take the ht_lock and sleep on the lu_sites_guard - * lock. Obviously neither thread will wake and drop their respective hold - * on their lock. + * lu_cache_shrink_count returns the number of cached objects that are + * candidates to be freed by shrink_slab(). A counter, which tracks + * the number of items in the site's lru, is maintained in the per cpu + * stats of each site. The counter is incremented when an object is added + * to a site's lru and decremented when one is removed. The number of + * free-able objects is the sum of all per cpu counters for all sites. * - * To prevent this from happening we must ensure the lu_sites_guard lock is - * not taken while down this code path. ZFS reliably does not set the - * __GFP_FS bit in its code paths, so this can be used to determine if it - * is safe to take the lu_sites_guard lock. - * - * Ideally we should accurately return the remaining number of cached - * objects without taking the lu_sites_guard lock, but this is not - * possible in the current implementation. + * Using a per cpu counter is a compromise solution to concurrent access: + * lu_object_put() can update the counter without locking the site and + * lu_cache_shrink_count can sum the counters without locking each + * ls_obj_hash bucket. */ static unsigned long lu_cache_shrink_count(struct shrinker *sk, struct shrink_control *sc) { - struct lu_site_stats stats; struct lu_site *s; struct lu_site *tmp; unsigned long cached = 0; @@ -1847,14 +1855,14 @@ static unsigned long lu_cache_shrink_count(struct shrinker *sk, mutex_lock(&lu_sites_guard); list_for_each_entry_safe(s, tmp, &lu_sites, ls_linkage) { - memset(&stats, 0, sizeof(stats)); - lu_site_stats_get(s->ls_obj_hash, &stats, 0); - cached += stats.lss_total - stats.lss_busy; + cached += ls_stats_read(s->ls_stats, LU_SS_LRU_LEN); } mutex_unlock(&lu_sites_guard); cached = (cached / 100) * sysctl_vfs_cache_pressure; - CDEBUG(D_INODE, "%ld objects cached\n", cached); + CDEBUG(D_INODE, "%ld objects cached, cache pressure %d\n", + cached, sysctl_vfs_cache_pressure); + return cached; } @@ -1988,6 +1996,13 @@ static __u32 ls_stats_read(struct lprocfs_stats *stats, int idx) struct lprocfs_counter ret; lprocfs_stats_collect(stats, idx, &ret); + if (idx == LU_SS_LRU_LEN) + /* + * protect against counter on cpu A being decremented + * before counter is incremented on cpu B; unlikely + */ + return (__u32)((ret.lc_sum > 0) ? ret.lc_sum : 0); + return (__u32)ret.lc_count; } @@ -2002,7 +2017,7 @@ int lu_site_stats_print(const struct lu_site *s, struct seq_file *m) memset(&stats, 0, sizeof(stats)); lu_site_stats_get(s->ls_obj_hash, &stats, 1); - seq_printf(m, "%d/%d %d/%d %d %d %d %d %d %d %d\n", + seq_printf(m, "%d/%d %d/%d %d %d %d %d %d %d %d %d\n", stats.lss_busy, stats.lss_total, stats.lss_populated, @@ -2013,7 +2028,8 @@ int lu_site_stats_print(const struct lu_site *s, struct seq_file *m) ls_stats_read(s->ls_stats, LU_SS_CACHE_MISS), ls_stats_read(s->ls_stats, LU_SS_CACHE_RACE), ls_stats_read(s->ls_stats, LU_SS_CACHE_DEATH_RACE), - ls_stats_read(s->ls_stats, LU_SS_LRU_PURGED)); + ls_stats_read(s->ls_stats, LU_SS_LRU_PURGED), + ls_stats_read(s->ls_stats, LU_SS_LRU_LEN)); return 0; } EXPORT_SYMBOL(lu_site_stats_print); From ae9c46d12284ee339eefb915d7d5da83cad8933d Mon Sep 17 00:00:00 2001 From: Ben Evans Date: Mon, 14 Sep 2015 18:41:31 -0400 Subject: [PATCH 0394/2431] staging/lustre: Remove unused MAY_ constants Remove unused MAY_ constants from lustre_idl.h Signed-off-by: Ben Evans Reviewed-on: http://review.whamcloud.com/15398 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6450 Reviewed-by: John L. Hammond Reviewed-by: Dmitry Eremin Reviewed-by: James Simmons Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre/lustre_idl.h | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index b0c4433ebc1c..d20e199eb770 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -2370,23 +2370,6 @@ void lustre_swab_mdt_rec_setattr(struct mdt_rec_setattr *sa); */ #define MDS_OPEN_RELEASE 02000000000000ULL /* Open the file for HSM release */ -/* permission for create non-directory file */ -#define MAY_CREATE (1 << 7) -/* permission for create directory file */ -#define MAY_LINK (1 << 8) -/* permission for delete from the directory */ -#define MAY_UNLINK (1 << 9) -/* source's permission for rename */ -#define MAY_RENAME_SRC (1 << 10) -/* target's permission for rename */ -#define MAY_RENAME_TAR (1 << 11) -/* part (parent's) VTX permission check */ -#define MAY_VTX_PART (1 << 12) -/* full VTX permission check */ -#define MAY_VTX_FULL (1 << 13) -/* lfs rgetfacl permission check */ -#define MAY_RGETFACL (1 << 14) - enum mds_op_bias { MDS_CHECK_SPLIT = 1 << 0, MDS_CROSS_REF = 1 << 1, From aefd9d714d5dc65b748e4f226475537ba6e00e86 Mon Sep 17 00:00:00 2001 From: Li Xi Date: Mon, 14 Sep 2015 18:41:32 -0400 Subject: [PATCH 0395/2431] staging/lustre/osc: use global osc_rq_pool to reduce memory usage The per-osc request pools consume a lot of memory if there are hundreds of OSCs on one client. This will be a critical problem if the client doesn't have sufficient memory for both OSCs and applications. This patch replaces per-osc request pools with a global pool osc_rq_pool. The total memory usage is 5MB by default. And it can be set by a module parameter of OSC: "options osc osc_reqpool_mem_max=POOL_SIZE". The unit of POOL_SIZE is MB. If cl_max_rpcs_in_flight is the same for all OSCs, the memory usage of the OSC pool can be calculated as: Min(POOL_SIZE * 1M, (cl_max_rpcs_in_flight + 2) * OSC number * OST_MAXREQSIZE) Also, this patch changes the allocation logic of OSC write requests. The allocation from osc_rq_pool will only be tried after normal allocation failed. Signed-off-by: Wu Libin Signed-off-by: Wang Shilong Signed-off-by: Li Xi Reviewed-on: http://review.whamcloud.com/15422 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6770 Reviewed-by: Jinshan Xiong Reviewed-by: Andreas Dilger Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_import.h | 2 - .../lustre/lustre/include/lustre_net.h | 7 +- .../staging/lustre/lustre/include/obd_class.h | 4 - .../staging/lustre/lustre/obdclass/genops.c | 1 - drivers/staging/lustre/lustre/osc/lproc_osc.c | 17 +++- .../staging/lustre/lustre/osc/osc_internal.h | 4 + .../staging/lustre/lustre/osc/osc_request.c | 79 +++++++++++++++---- drivers/staging/lustre/lustre/ptlrpc/client.c | 21 ++--- 8 files changed, 94 insertions(+), 41 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 5a38f3d5e011..c8b89a359518 100644 --- a/drivers/staging/lustre/lustre/include/lustre_import.h +++ b/drivers/staging/lustre/lustre/include/lustre_import.h @@ -306,8 +306,6 @@ struct obd_import { __u32 imp_msg_magic; __u32 imp_msghdr_flags; /* adjusted based on server capability */ - struct ptlrpc_request_pool *imp_rq_pool; /* emergency request pool */ - struct imp_at imp_at; /* adaptive timeout data */ time_t imp_last_reply_time; /* for health check */ }; diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 5df493e90040..313a56c2bfa0 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -500,7 +500,7 @@ struct ptlrpc_request_pool { /** Maximum message size that would fit into a request from this pool */ int prp_rq_size; /** Function to allocate more requests for this pool */ - void (*prp_populate)(struct ptlrpc_request_pool *, int); + int (*prp_populate)(struct ptlrpc_request_pool *, int); }; struct lu_context; @@ -2381,11 +2381,11 @@ void ptlrpc_set_add_new_req(struct ptlrpcd_ctl *pc, struct ptlrpc_request *req); void ptlrpc_free_rq_pool(struct ptlrpc_request_pool *pool); -void ptlrpc_add_rqs_to_pool(struct ptlrpc_request_pool *pool, int num_rq); +int ptlrpc_add_rqs_to_pool(struct ptlrpc_request_pool *pool, int num_rq); struct ptlrpc_request_pool * ptlrpc_init_rq_pool(int, int, - void (*populate_pool)(struct ptlrpc_request_pool *, int)); + int (*populate_pool)(struct ptlrpc_request_pool *, int)); void ptlrpc_at_set_req_timeout(struct ptlrpc_request *req); struct ptlrpc_request *ptlrpc_request_alloc(struct obd_import *imp, @@ -2957,7 +2957,6 @@ void ptlrpc_lprocfs_brw(struct ptlrpc_request *req, int bytes); /* ptlrpc/llog_client.c */ extern struct llog_operations llog_client_ops; - /** @} net */ #endif diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 87bb2cedca7d..ce6fa55aded7 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -626,10 +626,6 @@ static inline void obd_cleanup_client_import(struct obd_device *obd) CDEBUG(D_CONFIG, "%s: client import never connected\n", obd->obd_name); ptlrpc_invalidate_import(imp); - if (imp->imp_rq_pool) { - ptlrpc_free_rq_pool(imp->imp_rq_pool); - imp->imp_rq_pool = NULL; - } client_destroy_import(imp); obd->u.cli.cl_import = NULL; } diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 370d5b4af19b..594955d359ec 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -1663,7 +1663,6 @@ static void obd_zombie_export_add(struct obd_export *exp) static void obd_zombie_import_add(struct obd_import *imp) { LASSERT(!imp->imp_sec); - LASSERT(!imp->imp_rq_pool); spin_lock(&obd_zombie_impexp_lock); LASSERT(list_empty(&imp->imp_zombie_chain)); zombies_count++; diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index ff6d2e2ffdab..c504d1503fda 100644 --- a/drivers/staging/lustre/lustre/osc/lproc_osc.c +++ b/drivers/staging/lustre/lustre/osc/lproc_osc.c @@ -96,9 +96,9 @@ static ssize_t max_rpcs_in_flight_store(struct kobject *kobj, struct obd_device *dev = container_of(kobj, struct obd_device, obd_kobj); struct client_obd *cli = &dev->u.cli; - struct ptlrpc_request_pool *pool = cli->cl_import->imp_rq_pool; int rc; unsigned long val; + int adding, added, req_count; rc = kstrtoul(buffer, 10, &val); if (rc) @@ -107,8 +107,19 @@ static ssize_t max_rpcs_in_flight_store(struct kobject *kobj, if (val < 1 || val > OSC_MAX_RIF_MAX) return -ERANGE; - if (pool && val > cli->cl_max_rpcs_in_flight) - pool->prp_populate(pool, val-cli->cl_max_rpcs_in_flight); + adding = val - cli->cl_max_rpcs_in_flight; + req_count = atomic_read(&osc_pool_req_count); + if (adding > 0 && req_count < osc_reqpool_maxreqcount) { + /* + * There might be some race which will cause over-limit + * allocation, but it is fine. + */ + if (req_count + adding > osc_reqpool_maxreqcount) + adding = osc_reqpool_maxreqcount - req_count; + + added = osc_rq_pool->prp_populate(osc_rq_pool, adding); + atomic_add(added, &osc_pool_req_count); + } client_obd_list_lock(&cli->cl_loi_list_lock); cli->cl_max_rpcs_in_flight = val; diff --git a/drivers/staging/lustre/lustre/osc/osc_internal.h b/drivers/staging/lustre/lustre/osc/osc_internal.h index 470698b0dd75..7d0a3e2db289 100644 --- a/drivers/staging/lustre/lustre/osc/osc_internal.h +++ b/drivers/staging/lustre/lustre/osc/osc_internal.h @@ -39,6 +39,10 @@ #define OAP_MAGIC 8675309 +extern atomic_t osc_pool_req_count; +extern unsigned int osc_reqpool_maxreqcount; +extern struct ptlrpc_request_pool *osc_rq_pool; + struct lu_env; enum async_flags { diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 114c5508a0a0..f41f762573f5 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -50,9 +50,18 @@ #include "../include/lustre_param.h" #include "../include/lustre_fid.h" #include "../include/obd_class.h" +#include "../include/obd.h" #include "osc_internal.h" #include "osc_cl_internal.h" +atomic_t osc_pool_req_count; +unsigned int osc_reqpool_maxreqcount; +struct ptlrpc_request_pool *osc_rq_pool; + +/* max memory used for request pool, unit is MB */ +static unsigned int osc_reqpool_mem_max = 5; +module_param(osc_reqpool_mem_max, uint, 0444); + struct osc_brw_async_args { struct obdo *aa_oa; int aa_requested_nob; @@ -1268,7 +1277,7 @@ static int osc_brw_prep_request(int cmd, struct client_obd *cli, if ((cmd & OBD_BRW_WRITE) != 0) { opc = OST_WRITE; req = ptlrpc_request_alloc_pool(cli->cl_import, - cli->cl_import->imp_rq_pool, + osc_rq_pool, &RQF_OST_BRW_WRITE); } else { opc = OST_READ; @@ -3163,6 +3172,9 @@ int osc_setup(struct obd_device *obd, struct lustre_cfg *lcfg) struct client_obd *cli = &obd->u.cli; void *handler; int rc; + int adding; + int added; + int req_count; rc = ptlrpcd_addref(); if (rc) @@ -3191,15 +3203,20 @@ int osc_setup(struct obd_device *obd, struct lustre_cfg *lcfg) ptlrpc_lprocfs_register_obd(obd); } - /* We need to allocate a few requests more, because - * brw_interpret tries to create new requests before freeing - * previous ones, Ideally we want to have 2x max_rpcs_in_flight - * reserved, but I'm afraid that might be too much wasted RAM - * in fact, so 2 is just my guess and still should work. */ - cli->cl_import->imp_rq_pool = - ptlrpc_init_rq_pool(cli->cl_max_rpcs_in_flight + 2, - OST_MAXREQSIZE, - ptlrpc_add_rqs_to_pool); + /* + * We try to control the total number of requests with a upper limit + * osc_reqpool_maxreqcount. There might be some race which will cause + * over-limit allocation, but it is fine. + */ + req_count = atomic_read(&osc_pool_req_count); + if (req_count < osc_reqpool_maxreqcount) { + adding = cli->cl_max_rpcs_in_flight + 2; + if (req_count + adding > osc_reqpool_maxreqcount) + adding = osc_reqpool_maxreqcount - req_count; + + added = ptlrpc_add_rqs_to_pool(osc_rq_pool, adding); + atomic_add(added, &osc_pool_req_count); + } INIT_LIST_HEAD(&cli->cl_grant_shrink_list); ns_register_cancel(obd->obd_namespace, osc_cancel_for_recovery); @@ -3339,6 +3356,8 @@ extern struct lock_class_key osc_ast_guard_class; static int __init osc_init(void) { struct lprocfs_static_vars lvars = { NULL }; + unsigned int reqpool_size; + unsigned int reqsize; int rc; /* print an address of _any_ initialized kernel symbol from this @@ -3354,14 +3373,45 @@ static int __init osc_init(void) rc = class_register_type(&osc_obd_ops, NULL, LUSTRE_OSC_NAME, &osc_device_type); - if (rc) { - lu_kmem_fini(osc_caches); - return rc; - } + if (rc) + goto out_kmem; spin_lock_init(&osc_ast_guard); lockdep_set_class(&osc_ast_guard, &osc_ast_guard_class); + /* This is obviously too much memory, only prevent overflow here */ + if (osc_reqpool_mem_max >= 1 << 12 || osc_reqpool_mem_max == 0) { + rc = -EINVAL; + goto out_type; + } + + reqpool_size = osc_reqpool_mem_max << 20; + + reqsize = 1; + while (reqsize < OST_MAXREQSIZE) + reqsize = reqsize << 1; + + /* + * We don't enlarge the request count in OSC pool according to + * cl_max_rpcs_in_flight. The allocation from the pool will only be + * tried after normal allocation failed. So a small OSC pool won't + * cause much performance degression in most of cases. + */ + osc_reqpool_maxreqcount = reqpool_size / reqsize; + + atomic_set(&osc_pool_req_count, 0); + osc_rq_pool = ptlrpc_init_rq_pool(0, OST_MAXREQSIZE, + ptlrpc_add_rqs_to_pool); + + if (osc_rq_pool) + return 0; + + rc = -ENOMEM; + +out_type: + class_unregister_type(LUSTRE_OSC_NAME); +out_kmem: + lu_kmem_fini(osc_caches); return rc; } @@ -3369,6 +3419,7 @@ static void /*__exit*/ osc_exit(void) { class_unregister_type(LUSTRE_OSC_NAME); lu_kmem_fini(osc_caches); + ptlrpc_free_rq_pool(osc_rq_pool); } MODULE_AUTHOR("Sun Microsystems, Inc. "); diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index 1800db1e0797..90b24fc584ab 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -446,7 +446,7 @@ EXPORT_SYMBOL(ptlrpc_free_rq_pool); /** * Allocates, initializes and adds \a num_rq requests to the pool \a pool */ -void ptlrpc_add_rqs_to_pool(struct ptlrpc_request_pool *pool, int num_rq) +int ptlrpc_add_rqs_to_pool(struct ptlrpc_request_pool *pool, int num_rq) { int i; int size = 1; @@ -468,11 +468,11 @@ void ptlrpc_add_rqs_to_pool(struct ptlrpc_request_pool *pool, int num_rq) spin_unlock(&pool->prp_lock); req = ptlrpc_request_cache_alloc(GFP_NOFS); if (!req) - return; + return i; msg = libcfs_kvzalloc(size, GFP_NOFS); if (!msg) { ptlrpc_request_cache_free(req); - return; + return i; } req->rq_reqbuf = msg; req->rq_reqbuf_len = size; @@ -481,6 +481,7 @@ void ptlrpc_add_rqs_to_pool(struct ptlrpc_request_pool *pool, int num_rq) list_add_tail(&req->rq_list, &pool->prp_req_list); } spin_unlock(&pool->prp_lock); + return num_rq; } EXPORT_SYMBOL(ptlrpc_add_rqs_to_pool); @@ -494,7 +495,7 @@ EXPORT_SYMBOL(ptlrpc_add_rqs_to_pool); */ struct ptlrpc_request_pool * ptlrpc_init_rq_pool(int num_rq, int msgsize, - void (*populate_pool)(struct ptlrpc_request_pool *, int)) + int (*populate_pool)(struct ptlrpc_request_pool *, int)) { struct ptlrpc_request_pool *pool; @@ -512,11 +513,6 @@ ptlrpc_init_rq_pool(int num_rq, int msgsize, populate_pool(pool, num_rq); - if (list_empty(&pool->prp_req_list)) { - /* have not allocated a single request for the pool */ - kfree(pool); - pool = NULL; - } return pool; } EXPORT_SYMBOL(ptlrpc_init_rq_pool); @@ -702,11 +698,10 @@ struct ptlrpc_request *__ptlrpc_request_alloc(struct obd_import *imp, { struct ptlrpc_request *request = NULL; - if (pool) - request = ptlrpc_prep_req_from_pool(pool); + request = ptlrpc_request_cache_alloc(GFP_NOFS); - if (!request) - request = ptlrpc_request_cache_alloc(GFP_NOFS); + if (!request && pool) + request = ptlrpc_prep_req_from_pool(pool); if (request) { LASSERTF((unsigned long)imp > 0x1000, "%p", imp); From 199a0cc08d8552b9683150ef49ebceb764e436eb Mon Sep 17 00:00:00 2001 From: Liang Zhen Date: Mon, 14 Sep 2015 18:41:33 -0400 Subject: [PATCH 0396/2431] staging/lustre/o2iblnd: leak cmid in kiblnd_dev_need_failover cmid created by kiblnd_dev_need_failover should always be destroyed, however it is not the case in current implementation and we will leak cmid when this function detected a device failover. Signed-off-by: Liang Zhen Reviewed-on: http://review.whamcloud.com/14603 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6480 Reviewed-by: Isaac Huang Reviewed-by: Andreas Dilger Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c index c29d2ced258c..faa70f0b9b1e 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c @@ -2228,13 +2228,10 @@ static int kiblnd_dev_need_failover(kib_dev_t *dev) return rc; } - if (dev->ibd_hdev->ibh_ibdev == cmid->device) { - /* don't need device failover */ - rdma_destroy_id(cmid); - return 0; - } + rc = dev->ibd_hdev->ibh_ibdev != cmid->device; /* true for failover */ + rdma_destroy_id(cmid); - return 1; + return rc; } int kiblnd_dev_failover(kib_dev_t *dev) From 69456a0377555c52bf0b69d9555a2a605b2aa1d3 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Mon, 14 Sep 2015 18:41:34 -0400 Subject: [PATCH 0397/2431] staging/lustre/libcfs: remove unused cfs_timer_done Remove the cfs_timer_done function in the libcfs kernel module since it is not used anywhere. Signed-off-by: James Simmons Signed-off-by: frank zago Reviewed-on: http://review.whamcloud.com/13917 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6245 Reviewed-by: John L. Hammond Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h | 1 - drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c | 6 ------ 2 files changed, 7 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h index 978d3e2f16d3..62ade0809264 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h @@ -49,7 +49,6 @@ void add_wait_queue_exclusive_head(wait_queue_head_t *, wait_queue_t *); void cfs_init_timer(struct timer_list *t); void cfs_timer_init(struct timer_list *t, cfs_timer_func_t *func, void *arg); -void cfs_timer_done(struct timer_list *t); void cfs_timer_arm(struct timer_list *t, unsigned long deadline); void cfs_timer_disarm(struct timer_list *t); int cfs_timer_is_armed(struct timer_list *t); diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c index 838f5f3bd6af..12b6af4cac3e 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c @@ -84,12 +84,6 @@ void cfs_timer_init(struct timer_list *t, cfs_timer_func_t *func, void *arg) } EXPORT_SYMBOL(cfs_timer_init); -void cfs_timer_done(struct timer_list *t) -{ - return; -} -EXPORT_SYMBOL(cfs_timer_done); - void cfs_timer_arm(struct timer_list *t, unsigned long deadline) { mod_timer(t, deadline); From c5c4c6fae0f754aa17180b411ad04c196f9798ee Mon Sep 17 00:00:00 2001 From: Olaf Weber Date: Mon, 14 Sep 2015 18:41:35 -0400 Subject: [PATCH 0398/2431] staging/lustre/ptlrpc: make ptlrpcd threads cpt-aware MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On NUMA systems, the placement of worker threads relative to the memory they use greatly affects performance. The CPT mechanism can be used to constrain a number of Lustre thread types, and this change makes it possible to configure the placement of ptlrpcd threads in a similar manner. To simplify the code changes, the global structures used to manage ptlrpcd threads are changed to one per CPT. In particular this means there will be one ptlrpcd recovery thread per CPT. To prevent ptlrpcd threads from wandering all over the system, all ptlrpcd thread are bound to a CPT. Note that some CPT configuration is always created, but the defaults are not likely to be correct for a NUMA system. After discussing the options with Liang Zhen we decided that we would not bind ptlrpcd threads to specific CPUs, and rather trust the kernel scheduler to migrate ptlrpcd threads. With all ptlrpcd threads bound to a CPT, but not to specific CPUs, the load policy mechanism can be radically simplified: - PDL_POLICY_LOCAL and PDL_POLICY_ROUND are currently identical. - PDL_POLICY_ROUND, if fully implemented, would cost us the locality we are trying to achieve, so most or all calls using this policy would have to be changed to PDL_POLICY_LOCAL. - PDL_POLICY_PREFERRED is not used, and cannot be implemented without binding ptlrpcd threads to individual CPUs. - PDL_POLICY_SAME is rarely used, and cannot be implemented without binding ptlrpcd threads to individual CPUs. The partner mechanism is also updated, because now all ptlrpcd threads are "bound" threads. The only difference between the various bind policies, PDB_POLICY_NONE, PDB_POLICY_FULL, PDB_POLICY_PAIR, and PDB_POLICY_NEIGHBOR, is the number of partner threads. The bind policy is replaced with a tunable that directly specifies the size of the groups of ptlrpcd partner threads. Ensure that the ptlrpc_request_set for a ptlrpcd thread is created on the same CPT that the thread will work on. When threads are bound to specific nodes and/or CPUs in a NUMA system, it pays to ensure that the datastructures used by these threads are also on the same node. Visible changes: * ptlrpcd thread names include the CPT number, for example "ptlrpcd_02_07". In this case the "07" is relative to the CPT, and not a CPU number. Tunables added: * ptlrpcd_cpts (string): A CPT string describing the CPU partitions that ptlrpcd threads should run on. Used to make ptlrpcd threads run on a subset of all CPTs. * ptlrpcd_per_cpt_max (int): The maximum number of ptlrpcd threads to run in a CPT. * ptlrpcd_partner_group_size (int): The desired number of threads in each ptlrpcd partner thread group. Default is 2, corresponding to the old PDB_POLICY_PAIR. A negative value makes all ptlrpcd threads in a CPT partners of each other. Tunables obsoleted: * max_ptlrpcds: The new ptlrcpd_per_cpt_max can be used to obtain the same effect. * ptlrpcd_bind_policy: The new ptlrpcd_partner_group_size can be used to obtain the same effect. Internal interface changes: * pdb_policy_t and related code have been removed. Groups of partner ptlrpcd threads are still created, and all threads in a partner group are bound on the same CPT. The ptlrpcd threads bound to a CPT are typically divided into several partner groups. The partner groups on a CPT all have an equal number of ptlrpcd threads. * pdl_policy_t and related code have been removed. Since ptlrpcd threads are not bound to a specific CPU, all the code that avoids scheduling on the current CPU (or attempts to do so) has been removed as non-functional. A simplified form of PDL_POLICY_LOCAL is kept as the only load policy. * LIOD_BIND and related code have been removed. All ptlrpcd threads are now bound to a CPT, and no additional binding policy is implemented. * ptlrpc_prep_set(): Changed to allocate a ptlrpc_request_set on the current CPT. * ptlrpcd(): If an error is encountered before entering the main loop store the error in pc_error before exiting. * ptlrpcd_start(): Check pc_error to verify that the ptlrpcd thread has successfully entered its main loop. * ptlrpcd_init(): Initialize the struct ptlrpcd_ctl for all threads for a CPT before starting any of them. This closes a race during startup where a partner thread could reference a non-initialized struct ptlrpcd_ctl. Signed-off-by: Olaf Weber Reviewed-on: http://review.whamcloud.com/13972 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6325 Reviewed-by: Grégoire Pichon Reviewed-by: Stephen Champion Reviewed-by: James Simmons Reviewed-by: Jinshan Xiong Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_net.h | 56 +- .../staging/lustre/lustre/ldlm/ldlm_request.c | 8 +- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 2 +- .../staging/lustre/lustre/mdc/mdc_request.c | 2 +- drivers/staging/lustre/lustre/osc/osc_cache.c | 28 +- .../lustre/lustre/osc/osc_cl_internal.h | 2 +- .../staging/lustre/lustre/osc/osc_internal.h | 2 +- .../staging/lustre/lustre/osc/osc_request.c | 41 +- drivers/staging/lustre/lustre/ptlrpc/client.c | 11 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 7 +- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 2 +- .../lustre/lustre/ptlrpc/ptlrpc_internal.h | 2 +- .../staging/lustre/lustre/ptlrpc/ptlrpcd.c | 724 +++++++++++------- 13 files changed, 498 insertions(+), 389 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 313a56c2bfa0..3b6a2d7759b4 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2190,22 +2190,30 @@ struct ptlrpcd_ctl { * Environment for request interpreters to run in. */ struct lu_env pc_env; + /** + * CPT the thread is bound on. + */ + int pc_cpt; /** * Index of ptlrpcd thread in the array. */ - int pc_index; - /** - * Number of the ptlrpcd's partners. - */ - int pc_npartners; + int pc_index; /** * Pointer to the array of partners' ptlrpcd_ctl structure. */ struct ptlrpcd_ctl **pc_partners; + /** + * Number of the ptlrpcd's partners. + */ + int pc_npartners; /** * Record the partner index to be processed next. */ int pc_cursor; + /** + * Error code if the thread failed to fully start. + */ + int pc_error; }; /* Bits for pc_flags */ @@ -2228,10 +2236,6 @@ enum ptlrpcd_ctl_flags { * This is a recovery ptlrpc thread. */ LIOD_RECOVERY = 1 << 3, - /** - * The ptlrpcd is bound to some CPU core. - */ - LIOD_BIND = 1 << 4, }; /** @@ -2903,43 +2907,11 @@ void ptlrpc_pinger_ir_down(void); /** @} */ int ptlrpc_pinger_suppress_pings(void); -/* ptlrpc daemon bind policy */ -typedef enum { - /* all ptlrpcd threads are free mode */ - PDB_POLICY_NONE = 1, - /* all ptlrpcd threads are bound mode */ - PDB_POLICY_FULL = 2, - /* ... */ - PDB_POLICY_PAIR = 3, - /* ... , - * means each ptlrpcd[X] has two partners: thread[X-1] and thread[X+1]. - * If kernel supports NUMA, pthrpcd threads are binded and - * grouped by NUMA node */ - PDB_POLICY_NEIGHBOR = 4, -} pdb_policy_t; - -/* ptlrpc daemon load policy - * It is caller's duty to specify how to push the async RPC into some ptlrpcd - * queue, but it is not enforced, affected by "ptlrpcd_bind_policy". If it is - * "PDB_POLICY_FULL", then the RPC will be processed by the selected ptlrpcd, - * Otherwise, the RPC may be processed by the selected ptlrpcd or its partner, - * depends on which is scheduled firstly, to accelerate the RPC processing. */ -typedef enum { - /* on the same CPU core as the caller */ - PDL_POLICY_SAME = 1, - /* within the same CPU partition, but not the same core as the caller */ - PDL_POLICY_LOCAL = 2, - /* round-robin on all CPU cores, but not the same core as the caller */ - PDL_POLICY_ROUND = 3, - /* the specified CPU core is preferred, but not enforced */ - PDL_POLICY_PREFERRED = 4, -} pdl_policy_t; - /* ptlrpc/ptlrpcd.c */ void ptlrpcd_stop(struct ptlrpcd_ctl *pc, int force); void ptlrpcd_free(struct ptlrpcd_ctl *pc); void ptlrpcd_wake(struct ptlrpc_request *req); -void ptlrpcd_add_req(struct ptlrpc_request *req, pdl_policy_t policy, int idx); +void ptlrpcd_add_req(struct ptlrpc_request *req); void ptlrpcd_add_rqset(struct ptlrpc_request_set *set); int ptlrpcd_addref(void); void ptlrpcd_decref(void); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index 6245a2c36a0f..b5ee9bd9875f 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -1212,12 +1212,12 @@ int ldlm_cli_cancel_req(struct obd_export *exp, struct list_head *cancels, ptlrpc_request_set_replen(req); if (flags & LCF_ASYNC) { - ptlrpcd_add_req(req, PDL_POLICY_LOCAL, -1); + ptlrpcd_add_req(req); sent = count; goto out; - } else { - rc = ptlrpc_queue_wait(req); } + + rc = ptlrpc_queue_wait(req); if (rc == LUSTRE_ESTALE) { CDEBUG(D_DLMTRACE, "client/server (nid %s) out of sync -- not fatal\n", libcfs_nid2str(req->rq_import-> @@ -2223,7 +2223,7 @@ static int replay_one_lock(struct obd_import *imp, struct ldlm_lock *lock) aa = ptlrpc_req_async_args(req); aa->lock_handle = body->lock_handle[0]; req->rq_interpret_reply = (ptlrpc_interpterer_t)replay_lock_interpret; - ptlrpcd_add_req(req, PDL_POLICY_LOCAL, -1); + ptlrpcd_add_req(req); return 0; } diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c index e6b3bf932a84..20da064c2c4a 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_locks.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_locks.c @@ -1307,7 +1307,7 @@ int mdc_intent_getattr_async(struct obd_export *exp, ga->ga_einfo = einfo; req->rq_interpret_reply = mdc_intent_getattr_async_interpret; - ptlrpcd_add_req(req, PDL_POLICY_LOCAL, -1); + ptlrpcd_add_req(req); return 0; } diff --git a/drivers/staging/lustre/lustre/mdc/mdc_request.c b/drivers/staging/lustre/lustre/mdc/mdc_request.c index 204d51262560..d32ae761c05f 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_request.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_request.c @@ -2639,7 +2639,7 @@ static int mdc_renew_capa(struct obd_export *exp, struct obd_capa *oc, ra->ra_oc = oc; ra->ra_cb = cb; req->rq_interpret_reply = mdc_interpret_renew_capa; - ptlrpcd_add_req(req, PDL_POLICY_LOCAL, -1); + ptlrpcd_add_req(req); return 0; } diff --git a/drivers/staging/lustre/lustre/osc/osc_cache.c b/drivers/staging/lustre/lustre/osc/osc_cache.c index c72035e048aa..62da06157665 100644 --- a/drivers/staging/lustre/lustre/osc/osc_cache.c +++ b/drivers/staging/lustre/lustre/osc/osc_cache.c @@ -1934,7 +1934,7 @@ static int get_write_extents(struct osc_object *obj, struct list_head *rpclist) static int osc_send_write_rpc(const struct lu_env *env, struct client_obd *cli, - struct osc_object *osc, pdl_policy_t pol) + struct osc_object *osc) { LIST_HEAD(rpclist); struct osc_extent *ext; @@ -1986,7 +1986,7 @@ osc_send_write_rpc(const struct lu_env *env, struct client_obd *cli, if (!list_empty(&rpclist)) { LASSERT(page_count > 0); - rc = osc_build_rpc(env, cli, &rpclist, OBD_BRW_WRITE, pol); + rc = osc_build_rpc(env, cli, &rpclist, OBD_BRW_WRITE); LASSERT(list_empty(&rpclist)); } @@ -2006,7 +2006,7 @@ osc_send_write_rpc(const struct lu_env *env, struct client_obd *cli, */ static int osc_send_read_rpc(const struct lu_env *env, struct client_obd *cli, - struct osc_object *osc, pdl_policy_t pol) + struct osc_object *osc) { struct osc_extent *ext; struct osc_extent *next; @@ -2033,7 +2033,7 @@ osc_send_read_rpc(const struct lu_env *env, struct client_obd *cli, osc_object_unlock(osc); LASSERT(page_count > 0); - rc = osc_build_rpc(env, cli, &rpclist, OBD_BRW_READ, pol); + rc = osc_build_rpc(env, cli, &rpclist, OBD_BRW_READ); LASSERT(list_empty(&rpclist)); osc_object_lock(osc); @@ -2079,8 +2079,7 @@ static struct osc_object *osc_next_obj(struct client_obd *cli) } /* called with the loi list lock held */ -static void osc_check_rpcs(const struct lu_env *env, struct client_obd *cli, - pdl_policy_t pol) +static void osc_check_rpcs(const struct lu_env *env, struct client_obd *cli) { struct osc_object *osc; int rc = 0; @@ -2109,7 +2108,7 @@ static void osc_check_rpcs(const struct lu_env *env, struct client_obd *cli, * do io on writes while there are cache waiters */ osc_object_lock(osc); if (osc_makes_rpc(cli, osc, OBD_BRW_WRITE)) { - rc = osc_send_write_rpc(env, cli, osc, pol); + rc = osc_send_write_rpc(env, cli, osc); if (rc < 0) { CERROR("Write request failed with %d\n", rc); @@ -2133,7 +2132,7 @@ static void osc_check_rpcs(const struct lu_env *env, struct client_obd *cli, } } if (osc_makes_rpc(cli, osc, OBD_BRW_READ)) { - rc = osc_send_read_rpc(env, cli, osc, pol); + rc = osc_send_read_rpc(env, cli, osc); if (rc < 0) CERROR("Read request failed with %d\n", rc); } @@ -2149,7 +2148,7 @@ static void osc_check_rpcs(const struct lu_env *env, struct client_obd *cli, } static int osc_io_unplug0(const struct lu_env *env, struct client_obd *cli, - struct osc_object *osc, pdl_policy_t pol, int async) + struct osc_object *osc, int async) { int rc = 0; @@ -2161,7 +2160,7 @@ static int osc_io_unplug0(const struct lu_env *env, struct client_obd *cli, * potential stack overrun problem. LU-2859 */ atomic_inc(&cli->cl_lru_shrinkers); client_obd_list_lock(&cli->cl_loi_list_lock); - osc_check_rpcs(env, cli, pol); + osc_check_rpcs(env, cli); client_obd_list_unlock(&cli->cl_loi_list_lock); atomic_dec(&cli->cl_lru_shrinkers); } else { @@ -2175,14 +2174,13 @@ static int osc_io_unplug0(const struct lu_env *env, struct client_obd *cli, static int osc_io_unplug_async(const struct lu_env *env, struct client_obd *cli, struct osc_object *osc) { - /* XXX: policy is no use actually. */ - return osc_io_unplug0(env, cli, osc, PDL_POLICY_ROUND, 1); + return osc_io_unplug0(env, cli, osc, 1); } void osc_io_unplug(const struct lu_env *env, struct client_obd *cli, - struct osc_object *osc, pdl_policy_t pol) + struct osc_object *osc) { - (void)osc_io_unplug0(env, cli, osc, pol, 0); + (void)osc_io_unplug0(env, cli, osc, 0); } int osc_prep_async_page(struct osc_object *osc, struct osc_page *ops, @@ -2922,7 +2920,7 @@ int osc_cache_writeback_range(const struct lu_env *env, struct osc_object *obj, } if (unplug) - osc_io_unplug(env, osc_cli(obj), obj, PDL_POLICY_ROUND); + osc_io_unplug(env, osc_cli(obj), obj); if (hp || discard) { int rc; diff --git a/drivers/staging/lustre/lustre/osc/osc_cl_internal.h b/drivers/staging/lustre/lustre/osc/osc_cl_internal.h index 365b2787b3c8..75bfda6e4ad3 100644 --- a/drivers/staging/lustre/lustre/osc/osc_cl_internal.h +++ b/drivers/staging/lustre/lustre/osc/osc_cl_internal.h @@ -454,7 +454,7 @@ int osc_cache_writeback_range(const struct lu_env *env, struct osc_object *obj, int osc_cache_wait_range(const struct lu_env *env, struct osc_object *obj, pgoff_t start, pgoff_t end); void osc_io_unplug(const struct lu_env *env, struct client_obd *cli, - struct osc_object *osc, pdl_policy_t pol); + struct osc_object *osc); void osc_object_set_contended (struct osc_object *obj); void osc_object_clear_contended(struct osc_object *obj); diff --git a/drivers/staging/lustre/lustre/osc/osc_internal.h b/drivers/staging/lustre/lustre/osc/osc_internal.h index 7d0a3e2db289..448fdf4b8939 100644 --- a/drivers/staging/lustre/lustre/osc/osc_internal.h +++ b/drivers/staging/lustre/lustre/osc/osc_internal.h @@ -132,7 +132,7 @@ int osc_sync_base(struct obd_export *exp, struct obd_info *oinfo, int osc_process_config_base(struct obd_device *obd, struct lustre_cfg *cfg); int osc_build_rpc(const struct lu_env *env, struct client_obd *cli, - struct list_head *ext_list, int cmd, pdl_policy_t p); + struct list_head *ext_list, int cmd); int osc_lru_shrink(struct client_obd *cli, int target); extern spinlock_t osc_ast_guard; diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index f41f762573f5..9f5362759f2f 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -437,7 +437,7 @@ int osc_setattr_async_base(struct obd_export *exp, struct obd_info *oinfo, /* do mds to ost setattr asynchronously */ if (!rqset) { /* Do not wait for response. */ - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); } else { req->rq_interpret_reply = (ptlrpc_interpterer_t)osc_setattr_interpret; @@ -449,7 +449,7 @@ int osc_setattr_async_base(struct obd_export *exp, struct obd_info *oinfo, sa->sa_cookie = cookie; if (rqset == PTLRPCD_SET) - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); else ptlrpc_set_add_req(rqset, req); } @@ -590,7 +590,7 @@ int osc_punch_base(struct obd_export *exp, struct obd_info *oinfo, sa->sa_upcall = upcall; sa->sa_cookie = cookie; if (rqset == PTLRPCD_SET) - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); else ptlrpc_set_add_req(rqset, req); @@ -657,7 +657,7 @@ int osc_sync_base(struct obd_export *exp, struct obd_info *oinfo, fa->fa_cookie = cookie; if (rqset == PTLRPCD_SET) - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); else ptlrpc_set_add_req(rqset, req); @@ -826,7 +826,7 @@ static int osc_destroy(const struct lu_env *env, struct obd_export *exp, } /* Do not wait for response */ - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); return 0; } @@ -1718,7 +1718,7 @@ static int osc_brw_redo_request(struct ptlrpc_request *request, * to add a series of BRW RPCs into a self-defined ptlrpc_request_set * and wait for all of them to be finished. We should inherit request * set from old request. */ - ptlrpcd_add_req(new_req, PDL_POLICY_SAME, -1); + ptlrpcd_add_req(new_req); DEBUG_REQ(D_INFO, new_req, "new request"); return 0; @@ -1859,7 +1859,7 @@ static int brw_interpret(const struct lu_env *env, osc_wake_cache_waiters(cli); client_obd_list_unlock(&cli->cl_loi_list_lock); - osc_io_unplug(env, cli, NULL, PDL_POLICY_SAME); + osc_io_unplug(env, cli, NULL); return rc; } @@ -1869,7 +1869,7 @@ static int brw_interpret(const struct lu_env *env, * Extents in the list must be in OES_RPC state. */ int osc_build_rpc(const struct lu_env *env, struct client_obd *cli, - struct list_head *ext_list, int cmd, pdl_policy_t pol) + struct list_head *ext_list, int cmd) { struct ptlrpc_request *req = NULL; struct osc_extent *ext; @@ -2043,19 +2043,7 @@ int osc_build_rpc(const struct lu_env *env, struct client_obd *cli, page_count, aa, cli->cl_r_in_flight, cli->cl_w_in_flight); - /* XXX: Maybe the caller can check the RPC bulk descriptor to - * see which CPU/NUMA node the majority of pages were allocated - * on, and try to assign the async RPC to the CPU core - * (PDL_POLICY_PREFERRED) to reduce cross-CPU memory traffic. - * - * But on the other hand, we expect that multiple ptlrpcd - * threads and the initial write sponsor can run in parallel, - * especially when data checksum is enabled, which is CPU-bound - * operation and single ptlrpcd thread cannot process in time. - * So more ptlrpcd threads sharing BRW load - * (with PDL_POLICY_ROUND) seems better. - */ - ptlrpcd_add_req(req, pol, -1); + ptlrpcd_add_req(req); rc = 0; out: @@ -2382,7 +2370,7 @@ int osc_enqueue_base(struct obd_export *exp, struct ldlm_res_id *res_id, req->rq_interpret_reply = (ptlrpc_interpterer_t)osc_enqueue_interpret; if (rqset == PTLRPCD_SET) - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); else ptlrpc_set_add_req(rqset, req); } else if (intent) { @@ -2997,8 +2985,9 @@ static int osc_set_info_async(const struct lu_env *env, struct obd_export *exp, LASSERT(set != NULL); ptlrpc_set_add_req(set, req); ptlrpc_check_set(NULL, set); - } else - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + } else { + ptlrpcd_add_req(req); + } return 0; } @@ -3090,7 +3079,7 @@ static int osc_import_event(struct obd_device *obd, cli = &obd->u.cli; /* all pages go to failing rpcs due to the invalid * import */ - osc_io_unplug(env, cli, NULL, PDL_POLICY_ROUND); + osc_io_unplug(env, cli, NULL); ldlm_namespace_cleanup(ns, LDLM_FL_LOCAL_ONLY); cl_env_put(env, &refcheck); @@ -3162,7 +3151,7 @@ static int brw_queue_work(const struct lu_env *env, void *data) CDEBUG(D_CACHE, "Run writeback work for client obd %p.\n", cli); - osc_io_unplug(env, cli, NULL, PDL_POLICY_SAME); + osc_io_unplug(env, cli, NULL); return 0; } diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index 90b24fc584ab..e1830fe4b2b3 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -844,14 +844,17 @@ ptlrpc_prep_req(struct obd_import *imp, __u32 version, int opcode, int count, EXPORT_SYMBOL(ptlrpc_prep_req); /** - * Allocate and initialize new request set structure. + * Allocate and initialize new request set structure on the current CPT. * Returns a pointer to the newly allocated set structure or NULL on error. */ struct ptlrpc_request_set *ptlrpc_prep_set(void) { struct ptlrpc_request_set *set; + int cpt; - set = kzalloc(sizeof(*set), GFP_NOFS); + cpt = cfs_cpt_current(cfs_cpt_table, 0); + set = kzalloc_node(sizeof(*set), GFP_NOFS, + cfs_cpt_spread_node(cfs_cpt_table, cpt)); if (!set) return NULL; atomic_set(&set->set_refcount, 1); @@ -2827,7 +2830,7 @@ int ptlrpc_replay_req(struct ptlrpc_request *req) atomic_inc(&req->rq_import->imp_replay_inflight); ptlrpc_request_addref(req); /* ptlrpcd needs a ref */ - ptlrpcd_add_req(req, PDL_POLICY_LOCAL, -1); + ptlrpcd_add_req(req); return 0; } EXPORT_SYMBOL(ptlrpc_replay_req); @@ -3033,7 +3036,7 @@ static void ptlrpcd_add_work_req(struct ptlrpc_request *req) req->rq_xid = ptlrpc_next_xid(); req->rq_import_generation = req->rq_import->imp_generation; - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); } static int work_interpreter(const struct lu_env *env, diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index f5b324539a07..c52ceef989d5 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -742,12 +742,11 @@ int ptlrpc_connect_import(struct obd_import *imp) DEBUG_REQ(D_RPCTRACE, request, "(re)connect request (timeout %d)", request->rq_timeout); - ptlrpcd_add_req(request, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(request); rc = 0; out: - if (rc != 0) { + if (rc != 0) IMPORT_SET_STATE(imp, LUSTRE_IMP_DISCON); - } return rc; } @@ -1257,7 +1256,7 @@ static int signal_completed_replay(struct obd_import *imp) req->rq_timeout *= 3; req->rq_interpret_reply = completed_replay_interpret; - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); return 0; } diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index f8edb791a998..d3aea4a85256 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pinger.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pinger.c @@ -105,7 +105,7 @@ static int ptlrpc_ping(struct obd_import *imp) DEBUG_REQ(D_INFO, req, "pinging %s->%s", imp->imp_obd->obd_uuid.uuid, obd2cli_tgt(imp->imp_obd)); - ptlrpcd_add_req(req, PDL_POLICY_ROUND, -1); + ptlrpcd_add_req(req); return 0; } diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h index 6dc3998dcd24..1d64ca71920c 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h @@ -50,7 +50,7 @@ extern struct mutex ptlrpc_all_services_mutex; int ptlrpc_start_thread(struct ptlrpc_service_part *svcpt, int wait); /* ptlrpcd.c */ -int ptlrpcd_start(int index, int max, const char *name, struct ptlrpcd_ctl *pc); +int ptlrpcd_start(struct ptlrpcd_ctl *pc); /* client.c */ struct ptlrpc_bulk_desc *ptlrpc_new_bulk(unsigned npages, unsigned max_brw, diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c b/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c index 17cc81d5074f..00efdbf40f46 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c @@ -67,22 +67,94 @@ #include "ptlrpc_internal.h" +/* One of these per CPT. */ struct ptlrpcd { int pd_size; int pd_index; + int pd_cpt; + int pd_cursor; int pd_nthreads; - struct ptlrpcd_ctl pd_thread_rcv; + int pd_groupsize; struct ptlrpcd_ctl pd_threads[0]; }; +/* + * max_ptlrpcds is obsolete, but retained to ensure that the kernel + * module will load on a system where it has been tuned. + * A value other than 0 implies it was tuned, in which case the value + * is used to derive a setting for ptlrpcd_per_cpt_max. + */ static int max_ptlrpcds; module_param(max_ptlrpcds, int, 0644); MODULE_PARM_DESC(max_ptlrpcds, "Max ptlrpcd thread count to be started."); -static int ptlrpcd_bind_policy = PDB_POLICY_PAIR; +/* + * ptlrpcd_bind_policy is obsolete, but retained to ensure that + * the kernel module will load on a system where it has been tuned. + * A value other than 0 implies it was tuned, in which case the value + * is used to derive a setting for ptlrpcd_partner_group_size. + */ +static int ptlrpcd_bind_policy; module_param(ptlrpcd_bind_policy, int, 0644); -MODULE_PARM_DESC(ptlrpcd_bind_policy, "Ptlrpcd threads binding mode."); -static struct ptlrpcd *ptlrpcds; +MODULE_PARM_DESC(ptlrpcd_bind_policy, + "Ptlrpcd threads binding mode (obsolete)."); + +/* + * ptlrpcd_per_cpt_max: The maximum number of ptlrpcd threads to run + * in a CPT. + */ +static int ptlrpcd_per_cpt_max; +module_param(ptlrpcd_per_cpt_max, int, 0644); +MODULE_PARM_DESC(ptlrpcd_per_cpt_max, + "Max ptlrpcd thread count to be started per cpt."); + +/* + * ptlrpcd_partner_group_size: The desired number of threads in each + * ptlrpcd partner thread group. Default is 2, corresponding to the + * old PDB_POLICY_PAIR. A negative value makes all ptlrpcd threads in + * a CPT partners of each other. + */ +static int ptlrpcd_partner_group_size; +module_param(ptlrpcd_partner_group_size, int, 0644); +MODULE_PARM_DESC(ptlrpcd_partner_group_size, + "Number of ptlrpcd threads in a partner group."); + +/* + * ptlrpcd_cpts: A CPT string describing the CPU partitions that + * ptlrpcd threads should run on. Used to make ptlrpcd threads run on + * a subset of all CPTs. + * + * ptlrpcd_cpts=2 + * ptlrpcd_cpts=[2] + * run ptlrpcd threads only on CPT 2. + * + * ptlrpcd_cpts=0-3 + * ptlrpcd_cpts=[0-3] + * run ptlrpcd threads on CPTs 0, 1, 2, and 3. + * + * ptlrpcd_cpts=[0-3,5,7] + * run ptlrpcd threads on CPTS 0, 1, 2, 3, 5, and 7. + */ +static char *ptlrpcd_cpts; +module_param(ptlrpcd_cpts, charp, 0644); +MODULE_PARM_DESC(ptlrpcd_cpts, + "CPU partitions ptlrpcd threads should run in"); + +/* ptlrpcds_cpt_idx maps cpt numbers to an index in the ptlrpcds array. */ +static int *ptlrpcds_cpt_idx; + +/* ptlrpcds_num is the number of entries in the ptlrpcds array. */ +static int ptlrpcds_num; +static struct ptlrpcd **ptlrpcds; + +/* + * In addition to the regular thread pool above, there is a single + * global recovery thread. Recovery isn't critical for performance, + * and doesn't block, but must always be able to proceed, and it is + * possible that all normal ptlrpcd threads are blocked. Hence the + * need for a dedicated thread. + */ +static struct ptlrpcd_ctl ptlrpcd_rcv; struct mutex ptlrpcd_mutex; static int ptlrpcd_users; @@ -98,45 +170,29 @@ void ptlrpcd_wake(struct ptlrpc_request *req) EXPORT_SYMBOL(ptlrpcd_wake); static struct ptlrpcd_ctl * -ptlrpcd_select_pc(struct ptlrpc_request *req, pdl_policy_t policy, int index) +ptlrpcd_select_pc(struct ptlrpc_request *req) { - int idx = 0; + struct ptlrpcd *pd; + int cpt; + int idx; if (req != NULL && req->rq_send_state != LUSTRE_IMP_FULL) - return &ptlrpcds->pd_thread_rcv; + return &ptlrpcd_rcv; + + cpt = cfs_cpt_current(cfs_cpt_table, 1); + if (!ptlrpcds_cpt_idx) + idx = cpt; + else + idx = ptlrpcds_cpt_idx[cpt]; + pd = ptlrpcds[idx]; - switch (policy) { - case PDL_POLICY_SAME: - idx = smp_processor_id() % ptlrpcds->pd_nthreads; - break; - case PDL_POLICY_LOCAL: - /* Before CPU partition patches available, process it the same - * as "PDL_POLICY_ROUND". */ -# ifdef CFS_CPU_MODE_NUMA -# warning "fix this code to use new CPU partition APIs" -# endif - /* Fall through to PDL_POLICY_ROUND until the CPU - * CPU partition patches are available. */ - index = -1; - case PDL_POLICY_PREFERRED: - if (index >= 0 && index < num_online_cpus()) { - idx = index % ptlrpcds->pd_nthreads; - break; - } - /* Fall through to PDL_POLICY_ROUND for bad index. */ - default: - /* Fall through to PDL_POLICY_ROUND for unknown policy. */ - case PDL_POLICY_ROUND: /* We do not care whether it is strict load balance. */ - idx = ptlrpcds->pd_index + 1; - if (idx == smp_processor_id()) - idx++; - idx %= ptlrpcds->pd_nthreads; - ptlrpcds->pd_index = idx; - break; - } + idx = pd->pd_cursor; + if (++idx == pd->pd_nthreads) + idx = 0; + pd->pd_cursor = idx; - return &ptlrpcds->pd_threads[idx]; + return &pd->pd_threads[idx]; } /** @@ -150,7 +206,7 @@ void ptlrpcd_add_rqset(struct ptlrpc_request_set *set) struct ptlrpc_request_set *new; int count, i; - pc = ptlrpcd_select_pc(NULL, PDL_POLICY_LOCAL, -1); + pc = ptlrpcd_select_pc(NULL); new = pc->pc_set; list_for_each_safe(pos, tmp, &set->set_requests) { @@ -212,7 +268,7 @@ static int ptlrpcd_steal_rqset(struct ptlrpc_request_set *des, * Requests that are added to the ptlrpcd queue are sent via * ptlrpcd_check->ptlrpc_check_set(). */ -void ptlrpcd_add_req(struct ptlrpc_request *req, pdl_policy_t policy, int idx) +void ptlrpcd_add_req(struct ptlrpc_request *req) { struct ptlrpcd_ctl *pc; @@ -242,7 +298,7 @@ void ptlrpcd_add_req(struct ptlrpc_request *req, pdl_policy_t policy, int idx) spin_unlock(&req->rq_lock); } - pc = ptlrpcd_select_pc(req, policy, idx); + pc = ptlrpcd_select_pc(req); DEBUG_REQ(D_INFO, req, "add req [%p] to pc [%s:%d]", req, pc->pc_name, pc->pc_index); @@ -372,25 +428,29 @@ static int ptlrpcd_check(struct lu_env *env, struct ptlrpcd_ctl *pc) static int ptlrpcd(void *arg) { struct ptlrpcd_ctl *pc = arg; - struct ptlrpc_request_set *set = pc->pc_set; + struct ptlrpc_request_set *set; struct lu_env env = { .le_ses = NULL }; - int rc, exit = 0; + int rc = 0; + int exit = 0; unshare_fs_struct(); -#if defined(CONFIG_SMP) - if (test_bit(LIOD_BIND, &pc->pc_flags)) { - int index = pc->pc_index; + if (cfs_cpt_bind(cfs_cpt_table, pc->pc_cpt) != 0) + CWARN("Failed to bind %s on CPT %d\n", pc->pc_name, pc->pc_cpt); - if (index >= 0 && index < num_possible_cpus()) { - while (!cpu_online(index)) { - if (++index >= num_possible_cpus()) - index = 0; - } - set_cpus_allowed_ptr(current, - cpumask_of_node(cpu_to_node(index))); - } + /* + * Allocate the request set after the thread has been bound + * above. This is safe because no requests will be queued + * until all ptlrpcd threads have confirmed that they have + * successfully started. + */ + set = ptlrpc_prep_set(); + if (!set) { + rc = -ENOMEM; + goto failed; } -#endif + spin_lock(&pc->pc_lock); + pc->pc_set = set; + spin_unlock(&pc->pc_lock); /* * XXX So far only "client" ptlrpcd uses an environment. In * the future, ptlrpcd thread (or a thread-set) has to given @@ -398,10 +458,10 @@ static int ptlrpcd(void *arg) */ rc = lu_context_init(&env.le_ctx, LCT_CL_THREAD|LCT_REMEMBER|LCT_NOREF); - complete(&pc->pc_starting); - if (rc != 0) - return rc; + goto failed; + + complete(&pc->pc_starting); /* * This mainloop strongly resembles ptlrpc_set_wait() except that our @@ -447,204 +507,119 @@ static int ptlrpcd(void *arg) complete(&pc->pc_finishing); return 0; -} - -/* XXX: We want multiple CPU cores to share the async RPC load. So we start many - * ptlrpcd threads. We also want to reduce the ptlrpcd overhead caused by - * data transfer cross-CPU cores. So we bind ptlrpcd thread to specified - * CPU core. But binding all ptlrpcd threads maybe cause response delay - * because of some CPU core(s) busy with other loads. - * - * For example: "ls -l", some async RPCs for statahead are assigned to - * ptlrpcd_0, and ptlrpcd_0 is bound to CPU_0, but CPU_0 may be quite busy - * with other non-ptlrpcd, like "ls -l" itself (we want to the "ls -l" - * thread, statahead thread, and ptlrpcd thread can run in parallel), under - * such case, the statahead async RPCs can not be processed in time, it is - * unexpected. If ptlrpcd_0 can be re-scheduled on other CPU core, it may - * be better. But it breaks former data transfer policy. - * - * So we shouldn't be blind for avoiding the data transfer. We make some - * compromise: divide the ptlrpcd threads pool into two parts. One part is - * for bound mode, each ptlrpcd thread in this part is bound to some CPU - * core. The other part is for free mode, all the ptlrpcd threads in the - * part can be scheduled on any CPU core. We specify some partnership - * between bound mode ptlrpcd thread(s) and free mode ptlrpcd thread(s), - * and the async RPC load within the partners are shared. - * - * It can partly avoid data transfer cross-CPU (if the bound mode ptlrpcd - * thread can be scheduled in time), and try to guarantee the async RPC - * processed ASAP (as long as the free mode ptlrpcd thread can be scheduled - * on any CPU core). - * - * As for how to specify the partnership between bound mode ptlrpcd - * thread(s) and free mode ptlrpcd thread(s), the simplest way is to use - * pair. In future, we can specify some more complex - * partnership based on the patches for CPU partition. But before such - * patches are available, we prefer to use the simplest one. - */ -# ifdef CFS_CPU_MODE_NUMA -# warning "fix ptlrpcd_bind() to use new CPU partition APIs" -# endif -static int ptlrpcd_bind(int index, int max) -{ - struct ptlrpcd_ctl *pc; - int rc = 0; -#if defined(CONFIG_NUMA) - cpumask_t mask; -#endif - - LASSERT(index <= max - 1); - pc = &ptlrpcds->pd_threads[index]; - switch (ptlrpcd_bind_policy) { - case PDB_POLICY_NONE: - pc->pc_npartners = -1; - break; - case PDB_POLICY_FULL: - pc->pc_npartners = 0; - set_bit(LIOD_BIND, &pc->pc_flags); - break; - case PDB_POLICY_PAIR: - LASSERT(max % 2 == 0); - pc->pc_npartners = 1; - break; - case PDB_POLICY_NEIGHBOR: -#if defined(CONFIG_NUMA) - { - int i; - cpumask_copy(&mask, cpumask_of_node(cpu_to_node(index))); - for (i = max; i < num_online_cpus(); i++) - cpumask_clear_cpu(i, &mask); - pc->pc_npartners = cpumask_weight(&mask) - 1; - set_bit(LIOD_BIND, &pc->pc_flags); - } -#else - LASSERT(max >= 3); - pc->pc_npartners = 2; -#endif - break; - default: - CERROR("unknown ptlrpcd bind policy %d\n", ptlrpcd_bind_policy); - rc = -EINVAL; - } - - if (rc == 0 && pc->pc_npartners > 0) { - pc->pc_partners = kcalloc(pc->pc_npartners, - sizeof(struct ptlrpcd_ctl *), - GFP_NOFS); - if (pc->pc_partners == NULL) { - pc->pc_npartners = 0; - rc = -ENOMEM; - } else { - switch (ptlrpcd_bind_policy) { - case PDB_POLICY_PAIR: - if (index & 0x1) { - set_bit(LIOD_BIND, &pc->pc_flags); - pc->pc_partners[0] = &ptlrpcds-> - pd_threads[index - 1]; - ptlrpcds->pd_threads[index - 1]. - pc_partners[0] = pc; - } - break; - case PDB_POLICY_NEIGHBOR: -#if defined(CONFIG_NUMA) - { - struct ptlrpcd_ctl *ppc; - int i, pidx; - /* partners are cores in the same NUMA node. - * setup partnership only with ptlrpcd threads - * that are already initialized - */ - for (pidx = 0, i = 0; i < index; i++) { - if (cpumask_test_cpu(i, &mask)) { - ppc = &ptlrpcds->pd_threads[i]; - pc->pc_partners[pidx++] = ppc; - ppc->pc_partners[ppc-> - pc_npartners++] = pc; - } - } - /* adjust number of partners to the number - * of partnership really setup */ - pc->pc_npartners = pidx; - } -#else - if (index & 0x1) - set_bit(LIOD_BIND, &pc->pc_flags); - if (index > 0) { - pc->pc_partners[0] = &ptlrpcds-> - pd_threads[index - 1]; - ptlrpcds->pd_threads[index - 1]. - pc_partners[1] = pc; - if (index == max - 1) { - pc->pc_partners[1] = - &ptlrpcds->pd_threads[0]; - ptlrpcds->pd_threads[0]. - pc_partners[0] = pc; - } - } -#endif - break; - } - } - } - +failed: + pc->pc_error = rc; + complete(&pc->pc_starting); return rc; } - -int ptlrpcd_start(int index, int max, const char *name, struct ptlrpcd_ctl *pc) +static void ptlrpcd_ctl_init(struct ptlrpcd_ctl *pc, int index, int cpt) { - int rc; + pc->pc_index = index; + pc->pc_cpt = cpt; + init_completion(&pc->pc_starting); + init_completion(&pc->pc_finishing); + spin_lock_init(&pc->pc_lock); + + if (index < 0) { + /* Recovery thread. */ + snprintf(pc->pc_name, sizeof(pc->pc_name), "ptlrpcd_rcv"); + } else { + /* Regular thread. */ + snprintf(pc->pc_name, sizeof(pc->pc_name), + "ptlrpcd_%02d_%02d", cpt, index); + } +} + +/* XXX: We want multiple CPU cores to share the async RPC load. So we + * start many ptlrpcd threads. We also want to reduce the ptlrpcd + * overhead caused by data transfer cross-CPU cores. So we bind + * all ptlrpcd threads to a CPT, in the expectation that CPTs + * will be defined in a way that matches these boundaries. Within + * a CPT a ptlrpcd thread can be scheduled on any available core. + * + * Each ptlrpcd thread has its own request queue. This can cause + * response delay if the thread is already busy. To help with + * this we define partner threads: these are other threads bound + * to the same CPT which will check for work in each other's + * request queues if they have no work to do. + * + * The desired number of partner threads can be tuned by setting + * ptlrpcd_partner_group_size. The default is to create pairs of + * partner threads. + */ +static int ptlrpcd_partners(struct ptlrpcd *pd, int index) +{ + struct ptlrpcd_ctl *pc; + struct ptlrpcd_ctl **ppc; + int first; + int i; + int rc = 0; + int size; + + LASSERT(index >= 0 && index < pd->pd_nthreads); + pc = &pd->pd_threads[index]; + pc->pc_npartners = pd->pd_groupsize - 1; + + if (pc->pc_npartners <= 0) + goto out; + + size = sizeof(struct ptlrpcd_ctl *) * pc->pc_npartners; + pc->pc_partners = kzalloc_node(size, GFP_NOFS, + cfs_cpt_spread_node(cfs_cpt_table, + pc->pc_cpt)); + if (!pc->pc_partners) { + pc->pc_npartners = 0; + rc = -ENOMEM; + goto out; + } + + first = index - index % pd->pd_groupsize; + ppc = pc->pc_partners; + for (i = first; i < first + pd->pd_groupsize; i++) { + if (i != index) + *ppc++ = &pd->pd_threads[i]; + } +out: + return rc; +} + +int ptlrpcd_start(struct ptlrpcd_ctl *pc) +{ + struct task_struct *task; + int rc = 0; /* * Do not allow start second thread for one pc. */ if (test_and_set_bit(LIOD_START, &pc->pc_flags)) { CWARN("Starting second thread (%s) for same pc %p\n", - name, pc); + pc->pc_name, pc); return 0; } - pc->pc_index = index; - init_completion(&pc->pc_starting); - init_completion(&pc->pc_finishing); - spin_lock_init(&pc->pc_lock); - strlcpy(pc->pc_name, name, sizeof(pc->pc_name)); - pc->pc_set = ptlrpc_prep_set(); - if (pc->pc_set == NULL) { - rc = -ENOMEM; - goto out; - } - /* * So far only "client" ptlrpcd uses an environment. In the future, * ptlrpcd thread (or a thread-set) has to be given an argument, * describing its "scope". */ rc = lu_context_init(&pc->pc_env.le_ctx, LCT_CL_THREAD|LCT_REMEMBER); + if (rc != 0) + goto out; + + task = kthread_run(ptlrpcd, pc, "%s", pc->pc_name); + if (IS_ERR(task)) { + rc = PTR_ERR(task); + goto out_set; + } + + wait_for_completion(&pc->pc_starting); + rc = pc->pc_error; if (rc != 0) goto out_set; - { - struct task_struct *task; - if (index >= 0) { - rc = ptlrpcd_bind(index, max); - if (rc < 0) - goto out_env; - } - - task = kthread_run(ptlrpcd, pc, "%s", pc->pc_name); - if (IS_ERR(task)) { - rc = PTR_ERR(task); - goto out_env; - } - - wait_for_completion(&pc->pc_starting); - } return 0; -out_env: - lu_context_fini(&pc->pc_env.le_ctx); - out_set: if (pc->pc_set != NULL) { struct ptlrpc_request_set *set = pc->pc_set; @@ -654,7 +629,7 @@ out_set: spin_unlock(&pc->pc_lock); ptlrpc_set_destroy(set); } - clear_bit(LIOD_BIND, &pc->pc_flags); + lu_context_fini(&pc->pc_env.le_ctx); out: clear_bit(LIOD_START, &pc->pc_flags); @@ -694,7 +669,6 @@ void ptlrpcd_free(struct ptlrpcd_ctl *pc) clear_bit(LIOD_START, &pc->pc_flags); clear_bit(LIOD_STOP, &pc->pc_flags); clear_bit(LIOD_FORCE, &pc->pc_flags); - clear_bit(LIOD_BIND, &pc->pc_flags); out: if (pc->pc_npartners > 0) { @@ -704,88 +678,262 @@ out: pc->pc_partners = NULL; } pc->pc_npartners = 0; + pc->pc_error = 0; } static void ptlrpcd_fini(void) { int i; + int j; if (ptlrpcds != NULL) { - for (i = 0; i < ptlrpcds->pd_nthreads; i++) - ptlrpcd_stop(&ptlrpcds->pd_threads[i], 0); - for (i = 0; i < ptlrpcds->pd_nthreads; i++) - ptlrpcd_free(&ptlrpcds->pd_threads[i]); - ptlrpcd_stop(&ptlrpcds->pd_thread_rcv, 0); - ptlrpcd_free(&ptlrpcds->pd_thread_rcv); + for (i = 0; i < ptlrpcds_num; i++) { + if (!ptlrpcds[i]) + break; + for (j = 0; j < ptlrpcds[i]->pd_nthreads; j++) + ptlrpcd_stop(&ptlrpcds[i]->pd_threads[j], 0); + for (j = 0; j < ptlrpcds[i]->pd_nthreads; j++) + ptlrpcd_free(&ptlrpcds[i]->pd_threads[j]); + kfree(ptlrpcds[i]); + ptlrpcds[i] = NULL; + } kfree(ptlrpcds); - ptlrpcds = NULL; } + ptlrpcds_num = 0; + + ptlrpcd_stop(&ptlrpcd_rcv, 0); + ptlrpcd_free(&ptlrpcd_rcv); + + kfree(ptlrpcds_cpt_idx); + ptlrpcds_cpt_idx = NULL; } static int ptlrpcd_init(void) { - int nthreads = num_online_cpus(); - char name[16]; - int size, i = -1, j, rc = 0; + int nthreads; + int groupsize; + int size; + int i; + int j; + int rc = 0; + struct cfs_cpt_table *cptable; + __u32 *cpts = NULL; + int ncpts; + int cpt; + struct ptlrpcd *pd; - if (max_ptlrpcds > 0 && max_ptlrpcds < nthreads) - nthreads = max_ptlrpcds; - if (nthreads < 2) - nthreads = 2; - if (nthreads < 3 && ptlrpcd_bind_policy == PDB_POLICY_NEIGHBOR) - ptlrpcd_bind_policy = PDB_POLICY_PAIR; - else if (nthreads % 2 != 0 && ptlrpcd_bind_policy == PDB_POLICY_PAIR) - nthreads &= ~1; /* make sure it is even */ + /* + * Determine the CPTs that ptlrpcd threads will run on. + */ + cptable = cfs_cpt_table; + ncpts = cfs_cpt_number(cptable); + if (ptlrpcd_cpts) { + struct cfs_expr_list *el; - size = offsetof(struct ptlrpcd, pd_threads[nthreads]); - ptlrpcds = kzalloc(size, GFP_NOFS); + size = ncpts * sizeof(ptlrpcds_cpt_idx[0]); + ptlrpcds_cpt_idx = kzalloc(size, GFP_KERNEL); + if (!ptlrpcds_cpt_idx) { + rc = -ENOMEM; + goto out; + } + + rc = cfs_expr_list_parse(ptlrpcd_cpts, + strlen(ptlrpcd_cpts), + 0, ncpts - 1, &el); + + if (rc != 0) { + CERROR("ptlrpcd_cpts: invalid CPT pattern string: %s", + ptlrpcd_cpts); + rc = -EINVAL; + goto out; + } + + rc = cfs_expr_list_values(el, ncpts, &cpts); + cfs_expr_list_free(el); + if (rc <= 0) { + CERROR("ptlrpcd_cpts: failed to parse CPT array %s: %d\n", + ptlrpcd_cpts, rc); + if (rc == 0) + rc = -EINVAL; + goto out; + } + + /* + * Create the cpt-to-index map. When there is no match + * in the cpt table, pick a cpt at random. This could + * be changed to take the topology of the system into + * account. + */ + for (cpt = 0; cpt < ncpts; cpt++) { + for (i = 0; i < rc; i++) + if (cpts[i] == cpt) + break; + if (i >= rc) + i = cpt % rc; + ptlrpcds_cpt_idx[cpt] = i; + } + + cfs_expr_list_values_free(cpts, rc); + ncpts = rc; + } + ptlrpcds_num = ncpts; + + size = ncpts * sizeof(ptlrpcds[0]); + ptlrpcds = kzalloc(size, GFP_KERNEL); if (!ptlrpcds) { rc = -ENOMEM; goto out; } - snprintf(name, sizeof(name), "ptlrpcd_rcv"); - set_bit(LIOD_RECOVERY, &ptlrpcds->pd_thread_rcv.pc_flags); - rc = ptlrpcd_start(-1, nthreads, name, &ptlrpcds->pd_thread_rcv); + /* + * The max_ptlrpcds parameter is obsolete, but do something + * sane if it has been tuned, and complain if + * ptlrpcd_per_cpt_max has also been tuned. + */ + if (max_ptlrpcds != 0) { + CWARN("max_ptlrpcds is obsolete.\n"); + if (ptlrpcd_per_cpt_max == 0) { + ptlrpcd_per_cpt_max = max_ptlrpcds / ncpts; + /* Round up if there is a remainder. */ + if (max_ptlrpcds % ncpts != 0) + ptlrpcd_per_cpt_max++; + CWARN("Setting ptlrpcd_per_cpt_max = %d\n", + ptlrpcd_per_cpt_max); + } else { + CWARN("ptlrpd_per_cpt_max is also set!\n"); + } + } + + /* + * The ptlrpcd_bind_policy parameter is obsolete, but do + * something sane if it has been tuned, and complain if + * ptlrpcd_partner_group_size is also tuned. + */ + if (ptlrpcd_bind_policy != 0) { + CWARN("ptlrpcd_bind_policy is obsolete.\n"); + if (ptlrpcd_partner_group_size == 0) { + switch (ptlrpcd_bind_policy) { + case 1: /* PDB_POLICY_NONE */ + case 2: /* PDB_POLICY_FULL */ + ptlrpcd_partner_group_size = 1; + break; + case 3: /* PDB_POLICY_PAIR */ + ptlrpcd_partner_group_size = 2; + break; + case 4: /* PDB_POLICY_NEIGHBOR */ +#ifdef CONFIG_NUMA + ptlrpcd_partner_group_size = -1; /* CPT */ +#else + ptlrpcd_partner_group_size = 3; /* Triplets */ +#endif + break; + default: /* Illegal value, use the default. */ + ptlrpcd_partner_group_size = 2; + break; + } + CWARN("Setting ptlrpcd_partner_group_size = %d\n", + ptlrpcd_partner_group_size); + } else { + CWARN("ptlrpcd_partner_group_size is also set!\n"); + } + } + + if (ptlrpcd_partner_group_size == 0) + ptlrpcd_partner_group_size = 2; + else if (ptlrpcd_partner_group_size < 0) + ptlrpcd_partner_group_size = -1; + else if (ptlrpcd_per_cpt_max > 0 && + ptlrpcd_partner_group_size > ptlrpcd_per_cpt_max) + ptlrpcd_partner_group_size = ptlrpcd_per_cpt_max; + + /* + * Start the recovery thread first. + */ + set_bit(LIOD_RECOVERY, &ptlrpcd_rcv.pc_flags); + ptlrpcd_ctl_init(&ptlrpcd_rcv, -1, CFS_CPT_ANY); + rc = ptlrpcd_start(&ptlrpcd_rcv); if (rc < 0) goto out; - /* XXX: We start nthreads ptlrpc daemons. Each of them can process any - * non-recovery async RPC to improve overall async RPC efficiency. - * - * But there are some issues with async I/O RPCs and async non-I/O - * RPCs processed in the same set under some cases. The ptlrpcd may - * be blocked by some async I/O RPC(s), then will cause other async - * non-I/O RPC(s) can not be processed in time. - * - * Maybe we should distinguish blocked async RPCs from non-blocked - * async RPCs, and process them in different ptlrpcd sets to avoid - * unnecessary dependency. But how to distribute async RPCs load - * among all the ptlrpc daemons becomes another trouble. */ - for (i = 0; i < nthreads; i++) { - snprintf(name, sizeof(name), "ptlrpcd_%d", i); - rc = ptlrpcd_start(i, nthreads, name, &ptlrpcds->pd_threads[i]); - if (rc < 0) + for (i = 0; i < ncpts; i++) { + if (!cpts) + cpt = i; + else + cpt = cpts[i]; + + nthreads = cfs_cpt_weight(cptable, cpt); + if (ptlrpcd_per_cpt_max > 0 && ptlrpcd_per_cpt_max < nthreads) + nthreads = ptlrpcd_per_cpt_max; + if (nthreads < 2) + nthreads = 2; + + if (ptlrpcd_partner_group_size <= 0) { + groupsize = nthreads; + } else if (nthreads <= ptlrpcd_partner_group_size) { + groupsize = nthreads; + } else { + groupsize = ptlrpcd_partner_group_size; + if (nthreads % groupsize != 0) + nthreads += groupsize - (nthreads % groupsize); + } + + size = offsetof(struct ptlrpcd, pd_threads[nthreads]); + pd = kzalloc_node(size, GFP_NOFS, + cfs_cpt_spread_node(cfs_cpt_table, cpt)); + if (!pd) { + rc = -ENOMEM; goto out; + } + pd->pd_size = size; + pd->pd_index = i; + pd->pd_cpt = cpt; + pd->pd_cursor = 0; + pd->pd_nthreads = nthreads; + pd->pd_groupsize = groupsize; + ptlrpcds[i] = pd; + + /* + * The ptlrpcd threads in a partner group can access + * each other's struct ptlrpcd_ctl, so these must be + * initialized before any thread is started. + */ + for (j = 0; j < nthreads; j++) { + ptlrpcd_ctl_init(&pd->pd_threads[j], j, cpt); + rc = ptlrpcd_partners(pd, j); + if (rc < 0) + goto out; + } + + /* XXX: We start nthreads ptlrpc daemons. + * Each of them can process any non-recovery + * async RPC to improve overall async RPC + * efficiency. + * + * But there are some issues with async I/O RPCs + * and async non-I/O RPCs processed in the same + * set under some cases. The ptlrpcd may be + * blocked by some async I/O RPC(s), then will + * cause other async non-I/O RPC(s) can not be + * processed in time. + * + * Maybe we should distinguish blocked async RPCs + * from non-blocked async RPCs, and process them + * in different ptlrpcd sets to avoid unnecessary + * dependency. But how to distribute async RPCs + * load among all the ptlrpc daemons becomes + * another trouble. + */ + for (j = 0; j < nthreads; j++) { + rc = ptlrpcd_start(&pd->pd_threads[j]); + if (rc < 0) + goto out; + } } - - ptlrpcds->pd_size = size; - ptlrpcds->pd_index = 0; - ptlrpcds->pd_nthreads = nthreads; - out: - if (rc != 0 && ptlrpcds != NULL) { - for (j = 0; j <= i; j++) - ptlrpcd_stop(&ptlrpcds->pd_threads[j], 0); - for (j = 0; j <= i; j++) - ptlrpcd_free(&ptlrpcds->pd_threads[j]); - ptlrpcd_stop(&ptlrpcds->pd_thread_rcv, 0); - ptlrpcd_free(&ptlrpcds->pd_thread_rcv); - kfree(ptlrpcds); - ptlrpcds = NULL; - } + if (rc != 0) + ptlrpcd_fini(); - return 0; + return rc; } int ptlrpcd_addref(void) From 3e36cf44798e0107f7e73edce098d0a5c233a79c Mon Sep 17 00:00:00 2001 From: Sakshi Vaid Date: Mon, 14 Sep 2015 20:59:24 +0530 Subject: [PATCH 0399/2431] Staging: lustre: lustre: lov: lov_dev.c: Added missing blank line line 158: WARNING: Missing a blank line after declarations line 183: WARNING: Missing a blank line after declarations Added a missing blank line after declartions. Signed-off-by: Sakshi Vaid Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lov/lov_dev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/lustre/lustre/lov/lov_dev.c b/drivers/staging/lustre/lustre/lov/lov_dev.c index 8c3bbe574723..10317e0c3150 100644 --- a/drivers/staging/lustre/lustre/lov/lov_dev.c +++ b/drivers/staging/lustre/lustre/lov/lov_dev.c @@ -155,6 +155,7 @@ static void lov_key_fini(const struct lu_context *ctx, struct lu_context_key *key, void *data) { struct lov_thread_info *info = data; + LINVRNT(list_empty(&info->lti_closure.clc_list)); OBD_SLAB_FREE_PTR(info, lov_thread_kmem); } @@ -180,6 +181,7 @@ static void lov_session_key_fini(const struct lu_context *ctx, struct lu_context_key *key, void *data) { struct lov_session *info = data; + OBD_SLAB_FREE_PTR(info, lov_session_kmem); } From 6de9a2e3d46969044e5fa3c4ca48362f1a3d9435 Mon Sep 17 00:00:00 2001 From: Lucas Georges Date: Mon, 14 Sep 2015 16:52:35 +0200 Subject: [PATCH 0400/2431] staging: ft1000: code style cleanup There was a stray '*' in a comment block. Signed-off-by: Lucas Georges Signed-off-by: Greg Kroah-Hartman --- drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c index 96209703ba25..9ea32cea2c03 100644 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c @@ -1546,7 +1546,7 @@ int ft1000_poll(void *dev_id) FT1000_REG_MAG_WATERMARK); /* ring doorbell to tell DSP that * ASIC is out of reset - * */ + */ status = ft1000_write_register(dev, FT1000_ASIC_RESET_DSP, FT1000_REG_DOORBELL); From 6ae9ac0b61a752fc95298820debde88c10bdb53e Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 15 Sep 2015 09:54:33 +0300 Subject: [PATCH 0401/2431] staging: wilc1000: off by one in get_handler_from_id() The > should be >= here or we read beyond the end of the array. Fixes: d42ab0838d04 ('staging: wilc1000: use id value as argument') Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 59a1a9d93d6a..621fd1867633 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -637,7 +637,7 @@ static int get_id_from_handler(tstrWILC_WFIDrv *handler) static tstrWILC_WFIDrv *get_handler_from_id(int id) { - if (id <= 0 || id > ARRAY_SIZE(wfidrv_list)) + if (id <= 0 || id >= ARRAY_SIZE(wfidrv_list)) return NULL; return wfidrv_list[id]; } From 0e04f3f381c6a3ab3a7ef0ec9ded709e95996527 Mon Sep 17 00:00:00 2001 From: Ronit Halder Date: Mon, 14 Sep 2015 11:03:34 +0530 Subject: [PATCH 0402/2431] Staging: wilc1000: Use NULL instead of zero This patch fixes the warning generated by sparse "Using plain integer as NULL pointer" by using NULL instead of zero. Signed-off-by: Ronit halder Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 14 +++++++------- drivers/staging/wilc1000/linux_wlan.c | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 544c12d6d963..8164a33c6732 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -525,7 +525,7 @@ u8 *get_tim_elm(u8 *pu8msa, u16 u16RxLen, u16 u16TagParamOffset) u16index += (IE_HDR_LEN + pu8msa[u16index + 1]); } - return 0; + return NULL; } /* This function gets the current channel information from @@ -587,7 +587,7 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) u16 u16WidID = (u16)WID_NIL; u16 u16WidLen = 0; - u8 *pu8WidVal = 0; + u8 *pu8WidVal = NULL; u8MsgType = pu8MsgBuffer[0]; @@ -614,10 +614,10 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) /* parse the WID value of the WID "WID_NEWORK_INFO" */ { - u8 *pu8msa = 0; + u8 *pu8msa = NULL; u16 u16RxLen = 0; - u8 *pu8TimElm = 0; - u8 *pu8IEs = 0; + u8 *pu8TimElm = NULL; + u8 *pu8IEs = NULL; u16 u16IEsLen = 0; u8 u8index = 0; u32 u32Tsf_Lo; @@ -670,7 +670,7 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) /* Get DTIM Period */ pu8TimElm = get_tim_elm(pu8msa, (u16RxLen + FCS_LEN), u8index); - if (pu8TimElm != 0) + if (pu8TimElm != NULL) pstrNetworkInfo->u8DtimPeriod = pu8TimElm[3]; pu8IEs = &pu8msa[MAC_HDR_LEN + TIME_STAMP_LEN + BEACON_INTERVAL_LEN + CAP_INFO_LEN]; u16IEsLen = u16RxLen - (MAC_HDR_LEN + TIME_STAMP_LEN + BEACON_INTERVAL_LEN + CAP_INFO_LEN); @@ -743,7 +743,7 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, s32 s32Error = WILC_SUCCESS; tstrConnectRespInfo *pstrConnectRespInfo = NULL; u16 u16AssocRespLen = 0; - u8 *pu8IEs = 0; + u8 *pu8IEs = NULL; u16 u16IEsLen = 0; pstrConnectRespInfo = kmalloc(sizeof(tstrConnectRespInfo), GFP_KERNEL); diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 63f44f81d9ed..d8f17c6f9b5f 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -412,7 +412,7 @@ static int isr_bh_routine(void *vp) break; } PRINT_D(INT_DBG, "Interrupt received BH\n"); - if (g_linux_wlan->oup.wlan_handle_rx_isr != 0) + if (g_linux_wlan->oup.wlan_handle_rx_isr != NULL) g_linux_wlan->oup.wlan_handle_rx_isr(); else PRINT_ER("wlan_handle_rx_isr() hasn't been initialized\n"); @@ -1284,7 +1284,7 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) #elif (RX_BH_TYPE == RX_BH_KTHREAD) PRINT_D(INIT_DBG, "Creating kthread for Rxq BH\n"); g_linux_wlan->rx_bh_thread = kthread_run(isr_bh_routine, (void *)g_linux_wlan, "K_RXQ_BH"); - if (g_linux_wlan->rx_bh_thread == 0) { + if (g_linux_wlan->rx_bh_thread == NULL) { PRINT_ER("couldn't create RX BH thread\n"); ret = -ENOBUFS; goto _fail_; @@ -1309,7 +1309,7 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) /* create tx task */ PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); g_linux_wlan->txq_thread = kthread_run(linux_wlan_txq_task, (void *)g_linux_wlan, "K_TXQ_TASK"); - if (g_linux_wlan->txq_thread == 0) { + if (g_linux_wlan->txq_thread == NULL) { PRINT_ER("couldn't create TXQ thread\n"); ret = -ENOBUFS; goto _fail_2; From 96d6a318370db07e004bd19bd1c17471b3bf5b52 Mon Sep 17 00:00:00 2001 From: Mike Dupuis Date: Sun, 13 Sep 2015 22:42:44 -0800 Subject: [PATCH 0403/2431] Staging: rtl8192u: space required before open parentheses This is a patch to add spaces where required before open parentheses in ieee80211_softmac_wx.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- .../rtl8192u/ieee80211/ieee80211_softmac_wx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 5b6cf0b12d09..45eb416bc2ad 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -70,8 +70,8 @@ int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info ieee->current_network.channel = fwrq->m; ieee->set_chan(ieee->dev, ieee->current_network.channel); - if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) - if(ieee->state == IEEE80211_LINKED) { + if (ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) + if (ieee->state == IEEE80211_LINKED) { ieee80211_stop_send_beacons(ieee); ieee80211_start_send_beacons(ieee); @@ -352,7 +352,7 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) if (ieee->data_hard_resume) ieee->data_hard_resume(ieee->dev); - if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) + if (ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) ieee80211_start_send_beacons(ieee); netif_carrier_on(ieee->dev); @@ -408,7 +408,7 @@ int ieee80211_wx_set_essid(struct ieee80211_device *ieee, goto out; } - if(proto_started) + if (proto_started) ieee80211_stop_protocol(ieee); @@ -459,7 +459,7 @@ EXPORT_SYMBOL(ieee80211_wx_get_mode); down(&ieee->wx_sem); - if(enable) + if (enable) ieee->raw_tx = 1; else ieee->raw_tx = 0; @@ -476,7 +476,7 @@ EXPORT_SYMBOL(ieee80211_wx_get_mode); netif_carrier_on(ieee->dev); } - if(prev && ieee->raw_tx == 1) + if (prev && ieee->raw_tx == 1) netif_carrier_off(ieee->dev); } From e9bcffdc77139e25e6632e774f978c1d3383aa43 Mon Sep 17 00:00:00 2001 From: Mike Dupuis Date: Sun, 13 Sep 2015 22:42:49 -0800 Subject: [PATCH 0404/2431] Staging: rtl8192u: suspect code indent for conditional statment This is a patch to correct an improperly indented block of code in ieee80211_softmac_wx.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 45eb416bc2ad..030077f7d59b 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -72,9 +72,8 @@ int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info if (ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER) if (ieee->state == IEEE80211_LINKED) { - - ieee80211_stop_send_beacons(ieee); - ieee80211_start_send_beacons(ieee); + ieee80211_stop_send_beacons(ieee); + ieee80211_start_send_beacons(ieee); } } From 1dfec545169e98b048e1fde0e7e16b6c29f09712 Mon Sep 17 00:00:00 2001 From: Mike Dupuis Date: Sun, 13 Sep 2015 22:42:53 -0800 Subject: [PATCH 0405/2431] Staging: rtl8192u: do not use C99 // comments This is a patch to convert C99-style comments to C89-style comments in ieee80211_softmac_wx.c. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- .../rtl8192u/ieee80211/ieee80211_softmac_wx.c | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 030077f7d59b..c4f3e07ed7cd 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -92,11 +92,11 @@ int ieee80211_wx_get_freq(struct ieee80211_device *ieee, if (ieee->current_network.channel == 0) return -1; - //NM 0.7.0 will not accept channel any more. + /* NM 0.7.0 will not accept channel any more. */ fwrq->m = ieee80211_wlan_frequencies[ieee->current_network.channel-1] * 100000; fwrq->e = 1; -// fwrq->m = ieee->current_network.channel; -// fwrq->e = 0; + /* fwrq->m = ieee->current_network.channel; */ + /* fwrq->e = 0; */ return 0; } @@ -140,7 +140,7 @@ int ieee80211_wx_set_wap(struct ieee80211_device *ieee, int ret = 0; unsigned long flags; - short ifup = ieee->proto_started;//dev->flags & IFF_UP; + short ifup = ieee->proto_started; /* dev->flags & IFF_UP; */ struct sockaddr *temp = (struct sockaddr *)awrq; ieee->sync_scan_hurryup = 1; @@ -222,7 +222,7 @@ int ieee80211_wx_set_rate(struct ieee80211_device *ieee, u32 target_rate = wrqu->bitrate.value; ieee->rate = target_rate/100000; - //FIXME: we might want to limit rate also in management protocols. + /* FIXME: we might want to limit rate also in management protocols. */ return 0; } EXPORT_SYMBOL(ieee80211_wx_set_rate); @@ -342,7 +342,7 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) ieee->InitialGainHandler(ieee->dev, IG_Restore); ieee->state = IEEE80211_LINKED; ieee->link_change(ieee->dev); - // To prevent the immediately calling watch_dog after scan. + /* To prevent the immediately calling watch_dog after scan. */ if (ieee->LinkDetectInfo.NumRecvBcnInPeriod==0||ieee->LinkDetectInfo.NumRecvDataInPeriod==0) { ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1; @@ -417,7 +417,7 @@ int ieee80211_wx_set_essid(struct ieee80211_device *ieee, spin_lock_irqsave(&ieee->lock, flags); if (wrqu->essid.flags && wrqu->essid.length) { - //first flush current network.ssid + /* first flush current network.ssid */ len = ((wrqu->essid.length-1) < IW_ESSID_MAX_SIZE) ? (wrqu->essid.length-1) : IW_ESSID_MAX_SIZE; strncpy(ieee->current_network.ssid, extra, len+1); ieee->current_network.ssid_len = len+1; @@ -524,15 +524,15 @@ int ieee80211_wx_set_power(struct ieee80211_device *ieee, goto exit; } if (wrqu->power.flags & IW_POWER_TIMEOUT) { - //ieee->ps_period = wrqu->power.value / 1000; + /* ieee->ps_period = wrqu->power.value / 1000; */ ieee->ps_timeout = wrqu->power.value / 1000; } if (wrqu->power.flags & IW_POWER_PERIOD) { - //ieee->ps_timeout = wrqu->power.value / 1000; + /* ieee->ps_timeout = wrqu->power.value / 1000; */ ieee->ps_period = wrqu->power.value / 1000; - //wrq->value / 1024; + /* wrq->value / 1024; */ } switch (wrqu->power.flags & IW_POWER_MODE) { @@ -547,7 +547,7 @@ int ieee80211_wx_set_power(struct ieee80211_device *ieee, break; case IW_POWER_ON: - // ieee->ps = IEEE80211_PS_DISABLED; + /* ieee->ps = IEEE80211_PS_DISABLED; */ break; default: @@ -580,11 +580,11 @@ int ieee80211_wx_get_power(struct ieee80211_device *ieee, wrqu->power.flags = IW_POWER_TIMEOUT; wrqu->power.value = ieee->ps_timeout * 1000; } else { -// ret = -EOPNOTSUPP; -// goto exit; + /* ret = -EOPNOTSUPP; */ + /* goto exit; */ wrqu->power.flags = IW_POWER_PERIOD; wrqu->power.value = ieee->ps_period * 1000; -//ieee->current_network.dtim_period * ieee->current_network.beacon_interval * 1024; + /* ieee->current_network.dtim_period * ieee->current_network.beacon_interval * 1024; */ } if ((ieee->ps & (IEEE80211_PS_MBCAST | IEEE80211_PS_UNICAST)) == (IEEE80211_PS_MBCAST | IEEE80211_PS_UNICAST)) From 70b49cd526c5b01679b5794272a160dad5c3205c Mon Sep 17 00:00:00 2001 From: Mike Dupuis Date: Sun, 13 Sep 2015 22:42:58 -0800 Subject: [PATCH 0406/2431] Staging: rlt8192u: Remove spaces at the start of lines This is a patch to remove spaces at the start of lines in ieee80211_softmac_wx.c. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index c4f3e07ed7cd..702671a66c5f 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -178,7 +178,7 @@ out: } EXPORT_SYMBOL(ieee80211_wx_set_wap); - int ieee80211_wx_get_essid(struct ieee80211_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b) +int ieee80211_wx_get_essid(struct ieee80211_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b) { int len, ret = 0; unsigned long flags; @@ -438,7 +438,7 @@ out: } EXPORT_SYMBOL(ieee80211_wx_set_essid); - int ieee80211_wx_get_mode(struct ieee80211_device *ieee, struct iw_request_info *a, +int ieee80211_wx_get_mode(struct ieee80211_device *ieee, struct iw_request_info *a, union iwreq_data *wrqu, char *b) { @@ -447,7 +447,7 @@ EXPORT_SYMBOL(ieee80211_wx_set_essid); } EXPORT_SYMBOL(ieee80211_wx_get_mode); - int ieee80211_wx_set_rawtx(struct ieee80211_device *ieee, +int ieee80211_wx_set_rawtx(struct ieee80211_device *ieee, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) { @@ -587,7 +587,7 @@ int ieee80211_wx_get_power(struct ieee80211_device *ieee, /* ieee->current_network.dtim_period * ieee->current_network.beacon_interval * 1024; */ } - if ((ieee->ps & (IEEE80211_PS_MBCAST | IEEE80211_PS_UNICAST)) == (IEEE80211_PS_MBCAST | IEEE80211_PS_UNICAST)) + if ((ieee->ps & (IEEE80211_PS_MBCAST | IEEE80211_PS_UNICAST)) == (IEEE80211_PS_MBCAST | IEEE80211_PS_UNICAST)) wrqu->power.flags |= IW_POWER_ALL_R; else if (ieee->ps & IEEE80211_PS_MBCAST) wrqu->power.flags |= IW_POWER_MULTICAST_R; From adad44d1322c6657a96fa1681ded9bb0c3bd56f0 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sun, 13 Sep 2015 14:15:04 +0200 Subject: [PATCH 0407/2431] hfi1: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); // Signed-off-by: Julia Lawall Cc: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/user_sdma.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/rdma/hfi1/user_sdma.c b/drivers/staging/rdma/hfi1/user_sdma.c index 55526613a522..66202625a58c 100644 --- a/drivers/staging/rdma/hfi1/user_sdma.c +++ b/drivers/staging/rdma/hfi1/user_sdma.c @@ -486,8 +486,7 @@ int hfi1_user_sdma_free_queues(struct hfi1_filedata *fd) } kfree(pq->reqs); } - if (pq->txreq_cache) - kmem_cache_destroy(pq->txreq_cache); + kmem_cache_destroy(pq->txreq_cache); kfree(pq); fd->pq = NULL; } From 978fdc22bae06ea7422d7660ac78ed1c1c9c3e2a Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 15 Sep 2015 13:35:25 +0300 Subject: [PATCH 0408/2431] IB/hfi1: fix copy_to/from_user() error handling copy_to/from_user() returns the number of bytes which we were not able to copy. It doesn't return an error code. Also a couple places had a printk() on error and I removed that because people can take advantage of it to fill /var/log/messages with spam. Signed-off-by: Dan Carpenter Cc: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/diag.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/staging/rdma/hfi1/diag.c b/drivers/staging/rdma/hfi1/diag.c index 6777d6b659cf..ce01deea834c 100644 --- a/drivers/staging/rdma/hfi1/diag.c +++ b/drivers/staging/rdma/hfi1/diag.c @@ -1012,11 +1012,10 @@ static long hfi1_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) case HFI1_SNOOP_IOCSETLINKSTATE_EXTRA: memset(&link_info, 0, sizeof(link_info)); - ret = copy_from_user(&link_info, + if (copy_from_user(&link_info, (struct hfi1_link_info __user *)arg, - sizeof(link_info)); - if (ret) - break; + sizeof(link_info))) + ret = -EFAULT; value = link_info.port_state; index = link_info.port_number; @@ -1080,9 +1079,10 @@ static long hfi1_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) case HFI1_SNOOP_IOCGETLINKSTATE_EXTRA: if (cmd == HFI1_SNOOP_IOCGETLINKSTATE_EXTRA) { memset(&link_info, 0, sizeof(link_info)); - ret = copy_from_user(&link_info, + if (copy_from_user(&link_info, (struct hfi1_link_info __user *)arg, - sizeof(link_info)); + sizeof(link_info))) + ret = -EFAULT; index = link_info.port_number; } else { ret = __get_user(index, (int __user *) arg); @@ -1114,9 +1114,10 @@ static long hfi1_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) ppd->link_speed_active; link_info.link_width_active = ppd->link_width_active; - ret = copy_to_user( + if (copy_to_user( (struct hfi1_link_info __user *)arg, - &link_info, sizeof(link_info)); + &link_info, sizeof(link_info))) + ret = -EFAULT; } else { ret = __put_user(value, (int __user *)arg); } @@ -1142,10 +1143,9 @@ static long hfi1_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) snoop_dbg("Setting filter"); /* just copy command structure */ argp = (unsigned long *)arg; - ret = copy_from_user(&filter_cmd, (void __user *)argp, - sizeof(filter_cmd)); - if (ret < 0) { - pr_alert("Error copying filter command\n"); + if (copy_from_user(&filter_cmd, (void __user *)argp, + sizeof(filter_cmd))) { + ret = -EFAULT; break; } if (filter_cmd.opcode >= HFI1_MAX_FILTERS) { @@ -1167,12 +1167,11 @@ static long hfi1_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) break; } /* copy remaining data from userspace */ - ret = copy_from_user((u8 *)filter_value, + if (copy_from_user((u8 *)filter_value, (void __user *)filter_cmd.value_ptr, - filter_cmd.length); - if (ret < 0) { + filter_cmd.length)) { kfree(filter_value); - pr_alert("Error copying filter data\n"); + ret = -EFAULT; break; } /* Drain packets first */ From 8fec2ee4fa58e57b835ab9bac67f04f091cf976d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 15 Sep 2015 11:53:35 +0900 Subject: [PATCH 0409/2431] staging: wilc1000: remove definition WILC_IS_ERR This patch removes the definition WILC_IS_ERR which is not used anymore. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_errorsupport.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index 6012ec4dfce0..8eb8150d5213 100644 --- a/drivers/staging/wilc1000/wilc_errorsupport.h +++ b/drivers/staging/wilc1000/wilc_errorsupport.h @@ -37,10 +37,9 @@ -#define WILC_IS_ERR(__status__) (__status__ < WILC_SUCCESS) #define WILC_ERRORCHECK(__status__) do { \ - if (WILC_IS_ERR(__status__)) { \ + if (__status__ < WILC_SUCCESS) { \ PRINT_ER("PRINT_ER(%d)\n", __status__); \ goto ERRORHANDLER; \ } \ @@ -60,6 +59,6 @@ #define WILC_CATCH(__status__) \ ERRORHANDLER: \ - if (WILC_IS_ERR(__status__)) \ + if (__status__ < WILC_SUCCESS) \ #endif From 7d05652c5ce812b4d1addd1a2733d20c912d528d Mon Sep 17 00:00:00 2001 From: Chandra S Gorentla Date: Tue, 15 Sep 2015 18:09:51 +0530 Subject: [PATCH 0410/2431] drivers: staging: wilc1000: Add check for SPI availability NULL pointer deference is observed in the wilc1000.ko module with bus type SPI and when SPI is not ready. Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d8f17c6f9b5f..9436eace44fa 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1634,6 +1634,12 @@ int mac_open(struct net_device *ndev) int i = 0; struct WILC_WFI_priv *priv; +#ifdef WILC_SPI + if (!g_linux_wlan || !g_linux_wlan->wilc_spidev) { + netdev_err(ndev, "wilc1000: SPI device not ready\n"); + return -ENODEV; + } +#endif nic = netdev_priv(ndev); priv = wiphy_priv(nic->wilc_netdev->ieee80211_ptr->wiphy); PRINT_D(INIT_DBG, "MAC OPEN[%p]\n", ndev); From 60eeb4102e9bccb07d4a0d4e79864c8058461847 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 15 Sep 2015 17:22:28 +0530 Subject: [PATCH 0411/2431] staging: rtl8192e: fix memory leak If the size of the firmware is not as expected then we are jumping to the error path but we missed releasing the firmware. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 5c527c419bc9..3c1b86cce8d6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -273,6 +273,7 @@ bool rtl92e_init_fw(struct net_device *dev) sizeof(pfirmware->firmware_buf[i])) { RT_TRACE(COMP_FIRMWARE, "img file size exceed the container struct buffer fail!\n"); + release_firmware(fw_entry); goto download_firmware_fail; } From 703b0d4bbb28f0d12389a13a49860e66c4f4b03b Mon Sep 17 00:00:00 2001 From: Nicolas Joseph Date: Tue, 15 Sep 2015 11:35:20 +0200 Subject: [PATCH 0412/2431] staging/rtl8192u: remove unused function Remove unused function N_DBPSOfRate. This function was only used by function ComputeTxTime that was removed in the previous commit 742728f97a99 ("staging: rtl8192u: remove unused function.") Signed-off-by: Nicolas Joseph Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 44 -------------------------- 1 file changed, 44 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index b143b36eb57d..80a6a4fcea92 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -1227,50 +1227,6 @@ inline u8 rtl8192_IsWirelessBMode(u16 rate) return 0; } -u16 N_DBPSOfRate(u16 DataRate) -{ - u16 N_DBPS = 24; - - switch (DataRate) { - case 60: - N_DBPS = 24; - break; - - case 90: - N_DBPS = 36; - break; - - case 120: - N_DBPS = 48; - break; - - case 180: - N_DBPS = 72; - break; - - case 240: - N_DBPS = 96; - break; - - case 360: - N_DBPS = 144; - break; - - case 480: - N_DBPS = 192; - break; - - case 540: - N_DBPS = 216; - break; - - default: - break; - } - - return N_DBPS; -} - short rtl819xU_tx_cmd(struct net_device *dev, struct sk_buff *skb) { struct r8192_priv *priv = ieee80211_priv(dev); From 23ced60f154122765fbb320a3eb9d16e4ed19ca5 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:11 +0900 Subject: [PATCH 0413/2431] staging: wilc1000: remove duplicated include wilc_wfi_cfgoperations.h and linux_wlan_common.h are included as duplicated in linux_wlan.c. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 9436eace44fa..09070ee22082 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2,9 +2,6 @@ #include "linux_wlan_common.h" #include "wilc_wlan_if.h" #include "wilc_wlan.h" -#include "wilc_wfi_cfgoperations.h" - -#include "linux_wlan_common.h" #include #include From 08241924d489dc8396c0916735941b1e906449e6 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:12 +0900 Subject: [PATCH 0414/2431] staging: wilc1000: rename WILC_WFI_cfg80211_ops This patch replaces WILC_WFI_cfg80211_ops with wilc_cfg80211_ops to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 068e64860174..59416968db64 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3556,7 +3556,7 @@ int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) /* ton #endif /*WILC_AP_EXTERNAL_MLME*/ -static struct cfg80211_ops WILC_WFI_cfg80211_ops = { +static struct cfg80211_ops wilc_cfg80211_ops = { .set_monitor_channel = set_channel, .scan = scan, @@ -3669,7 +3669,7 @@ struct wireless_dev *WILC_WFI_CfgAlloc(void) } /*Creating a new wiphy, linking wireless structure with the wiphy structure*/ - wdev->wiphy = wiphy_new(&WILC_WFI_cfg80211_ops, sizeof(struct WILC_WFI_priv)); + wdev->wiphy = wiphy_new(&wilc_cfg80211_ops, sizeof(struct WILC_WFI_priv)); if (!wdev->wiphy) { PRINT_ER("Cannot allocate wiphy\n"); goto _fail_mem_; From 2726887c5647b3799a568092ede0fecc418fce16 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:13 +0900 Subject: [PATCH 0415/2431] staging: wilc1000: rename WILC_WFI_priv This patch replaces WILC_WFI_priv with wilc_priv to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_mon.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 12 +-- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 90 +++++++++---------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 4 files changed, 53 insertions(+), 53 deletions(-) diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index d87387719626..6bee71051c0d 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -63,7 +63,7 @@ void WILC_WFI_monitor_rx(uint8_t *buff, uint32_t size) PRINT_INFO(HOSTAPD_DBG, "In monitor interface receive function\n"); - /* struct WILC_WFI_priv *priv = netdev_priv(dev); */ + /* struct wilc_priv *priv = netdev_priv(dev); */ /* priv = wiphy_priv(priv->dev->ieee80211_ptr->wiphy); */ diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 09070ee22082..f200d5fc76b8 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -200,7 +200,7 @@ static int DebuggingThreadTask(void *vp) static int dev_state_ev_handler(struct notifier_block *this, unsigned long event, void *ptr) { struct in_ifaddr *dev_iface = (struct in_ifaddr *)ptr; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; struct net_device *dev; u8 *pIP_Add_buff; @@ -831,7 +831,7 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n unsigned char mac_add[] = {0x00, 0x80, 0xC2, 0x5E, 0xa2, 0xff}; /*BugID_5077*/ - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; PRINT_D(TX_DBG, "Start configuring Firmware\n"); @@ -1629,7 +1629,7 @@ int mac_open(struct net_device *ndev) unsigned char mac_add[ETH_ALEN] = {0}; int ret = 0; int i = 0; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; #ifdef WILC_SPI if (!g_linux_wlan || !g_linux_wlan->wilc_spidev) { @@ -1707,7 +1707,7 @@ static void wilc_set_multicast_list(struct net_device *dev) { struct netdev_hw_addr *ha; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; int i = 0; @@ -1840,7 +1840,7 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) int mac_close(struct net_device *ndev) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; perInterface_wlan_t *nic; tstrWILC_WFIDrv *pstrWFIDrv; @@ -1908,7 +1908,7 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd) s8 rssi; u32 size = 0, length = 0; perInterface_wlan_t *nic; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; s32 s32Error = WILC_SUCCESS; /* struct iwreq *wrq = (struct iwreq *) req; // tony moved to case SIOCSIWPRIV */ diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 59416968db64..237be2b5215b 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -177,13 +177,13 @@ uint32_t get_rssi_avg(tstrNetworkInfo *pstrNetworkInfo) void refresh_scan(void *pUserVoid, uint8_t all, bool bDirectScan) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; struct wiphy *wiphy; struct cfg80211_bss *bss = NULL; int i; int rssi = 0; - priv = (struct WILC_WFI_priv *)pUserVoid; + priv = (struct wilc_priv *)pUserVoid; wiphy = priv->dev->ieee80211_ptr->wiphy; for (i = 0; i < u32LastScannedNtwrksCountShadow; i++) { @@ -371,14 +371,14 @@ void add_network_to_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, vo */ static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, void *pJoinParams) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; struct wiphy *wiphy; s32 s32Freq; struct ieee80211_channel *channel; s32 s32Error = WILC_SUCCESS; struct cfg80211_bss *bss = NULL; - priv = (struct WILC_WFI_priv *)pUserVoid; + priv = (struct wilc_priv *)pUserVoid; if (priv->bCfgScanning == true) { if (enuScanEvent == SCAN_EVENT_NETWORK_FOUND) { wiphy = priv->dev->ieee80211_ptr->wiphy; @@ -499,7 +499,7 @@ static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetwo * @date 01 MAR 2012 * @version 1.0 */ -int WILC_WFI_Set_PMKSA(u8 *bssid, struct WILC_WFI_priv *priv) +int WILC_WFI_Set_PMKSA(u8 *bssid, struct wilc_priv *priv) { u32 i; s32 s32Error = WILC_SUCCESS; @@ -550,7 +550,7 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, tstrDisconnectNotifInfo *pstrDisconnectNotifInfo, void *pUserVoid) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; struct net_device *dev; #ifdef WILC_P2P tstrWILC_WFIDrv *pstrWFIDrv; @@ -559,7 +559,7 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, connecting = 0; - priv = (struct WILC_WFI_priv *)pUserVoid; + priv = (struct wilc_priv *)pUserVoid; dev = priv->dev; #ifdef WILC_P2P pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; @@ -694,7 +694,7 @@ static int set_channel(struct wiphy *wiphy, { u32 channelnum = 0; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; s32 s32Error = WILC_SUCCESS; priv = wiphy_priv(wiphy); @@ -730,7 +730,7 @@ static int set_channel(struct wiphy *wiphy, */ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; u32 i; s32 s32Error = WILC_SUCCESS; u8 au8ScanChanList[MAX_NUM_SCANNED_NETWORKS]; @@ -828,7 +828,7 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, char *pccipher_group = NULL; char *pcwpa_version = NULL; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; tstrNetworkInfo *pstrNetworkInfo = NULL; @@ -1075,7 +1075,7 @@ done: static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_code) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; #ifdef WILC_P2P tstrWILC_WFIDrv *pstrWFIDrv; #endif @@ -1128,7 +1128,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, { s32 s32Error = WILC_SUCCESS, KeyLen = params->key_len; u32 i; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; const u8 *pu8RxMic = NULL; const u8 *pu8TxMic = NULL; u8 u8mode = NO_ENCRYPT; @@ -1417,7 +1417,7 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, bool pairwise, const u8 *mac_addr) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; s32 s32Error = WILC_SUCCESS; priv = wiphy_priv(wiphy); @@ -1530,7 +1530,7 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; struct key_params key_params; u32 i; @@ -1578,7 +1578,7 @@ static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 ke bool unicast, bool multicast) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; priv = wiphy_priv(wiphy); @@ -1632,7 +1632,7 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, const u8 *mac, struct station_info *sinfo) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; perInterface_wlan_t *nic; #ifdef WILC_AP_EXTERNAL_MLME u32 i = 0; @@ -1815,7 +1815,7 @@ static int set_wiphy_params(struct wiphy *wiphy, u32 changed) { s32 s32Error = WILC_SUCCESS; tstrCfgParamVal pstrCfgParamVal; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; priv = wiphy_priv(wiphy); @@ -1897,7 +1897,7 @@ static int set_pmksa(struct wiphy *wiphy, struct net_device *netdev, s32 s32Error = WILC_SUCCESS; u8 flag = 0; - struct WILC_WFI_priv *priv = wiphy_priv(wiphy); + struct wilc_priv *priv = wiphy_priv(wiphy); PRINT_D(CFG80211_DBG, "Setting PMKSA\n"); @@ -1948,7 +1948,7 @@ static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, u8 flag = 0; s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv = wiphy_priv(wiphy); + struct wilc_priv *priv = wiphy_priv(wiphy); PRINT_D(CFG80211_DBG, "Deleting PMKSA keys\n"); @@ -1991,7 +1991,7 @@ static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, */ static int flush_pmksa(struct wiphy *wiphy, struct net_device *netdev) { - struct WILC_WFI_priv *priv = wiphy_priv(wiphy); + struct wilc_priv *priv = wiphy_priv(wiphy); PRINT_D(CFG80211_DBG, "Flushing PMKID key values\n"); @@ -2201,7 +2201,7 @@ void WILC_WFI_CfgParseTxAction(u8 *buf, u32 len, bool bOperChan, u8 iftype) void WILC_WFI_p2p_rx (struct net_device *dev, uint8_t *buff, uint32_t size) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; u32 header, pkt_offset; tstrWILC_WFIDrv *pstrWFIDrv; u32 i = 0; @@ -2341,9 +2341,9 @@ static void WILC_WFI_mgmt_tx_complete(void *priv, int status) static void WILC_WFI_RemainOnChannelReady(void *pUserVoid) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; - priv = (struct WILC_WFI_priv *)pUserVoid; + priv = (struct wilc_priv *)pUserVoid; PRINT_D(HOSTINF_DBG, "Remain on channel ready\n"); @@ -2368,9 +2368,9 @@ static void WILC_WFI_RemainOnChannelReady(void *pUserVoid) static void WILC_WFI_RemainOnChannelExpired(void *pUserVoid, u32 u32SessionID) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; - priv = (struct WILC_WFI_priv *)pUserVoid; + priv = (struct wilc_priv *)pUserVoid; /*BugID_5477*/ if (u32SessionID == priv->strRemainOnChanParams.u32ListenSessionID) { @@ -2409,7 +2409,7 @@ static int remain_on_channel(struct wiphy *wiphy, unsigned int duration, u64 *cookie) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; priv = wiphy_priv(wiphy); @@ -2461,7 +2461,7 @@ static int cancel_remain_on_channel(struct wiphy *wiphy, u64 cookie) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; priv = wiphy_priv(wiphy); @@ -2507,7 +2507,7 @@ int mgmt_tx(struct wiphy *wiphy, size_t len = params->len; const struct ieee80211_mgmt *mgmt; struct p2p_mgmt_data *mgmt_tx; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; s32 s32Error = WILC_SUCCESS; tstrWILC_WFIDrv *pstrWFIDrv; u32 i; @@ -2656,7 +2656,7 @@ int mgmt_tx_cancel_wait(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; priv = wiphy_priv(wiphy); @@ -2694,7 +2694,7 @@ void WILC_WFI_frame_register(struct wiphy *wiphy, u16 frame_type, bool reg) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; perInterface_wlan_t *nic; @@ -2775,7 +2775,7 @@ static int WILC_WFI_set_cqm_rssi_config(struct wiphy *wiphy, static int dump_station(struct wiphy *wiphy, struct net_device *dev, int idx, u8 *mac, struct station_info *sinfo) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; PRINT_D(CFG80211_DBG, "Dumping station information\n"); @@ -2805,7 +2805,7 @@ static int dump_station(struct wiphy *wiphy, struct net_device *dev, int WILC_WFI_set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, bool enabled, int timeout) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; PRINT_D(CFG80211_DBG, " Power save Enabled= %d , TimeOut = %d\n", enabled, timeout); @@ -2843,7 +2843,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, enum nl80211_iftype type, u32 *flags, struct vif_params *params) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; perInterface_wlan_t *nic; u8 interface_type; u16 TID = 0; @@ -3221,7 +3221,7 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_ap_settings *settings) { struct cfg80211_beacon_data *beacon = &(settings->beacon); - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; s32 s32Error = WILC_SUCCESS; priv = wiphy_priv(wiphy); @@ -3261,7 +3261,7 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, static int change_beacon(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_beacon_data *beacon) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; s32 s32Error = WILC_SUCCESS; priv = wiphy_priv(wiphy); @@ -3289,7 +3289,7 @@ static int change_beacon(struct wiphy *wiphy, struct net_device *dev, static int stop_ap(struct wiphy *wiphy, struct net_device *dev) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; u8 NullBssid[ETH_ALEN] = {0}; @@ -3325,7 +3325,7 @@ static int add_station(struct wiphy *wiphy, struct net_device *dev, const u8 *mac, struct station_parameters *params) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; tstrWILC_AddStaParam strStaParams = { {0} }; perInterface_wlan_t *nic; @@ -3397,7 +3397,7 @@ static int del_station(struct wiphy *wiphy, struct net_device *dev, { const u8 *mac = params->mac; s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; perInterface_wlan_t *nic; WILC_NULLCHECK(s32Error, wiphy); @@ -3439,7 +3439,7 @@ static int change_station(struct wiphy *wiphy, struct net_device *dev, const u8 *mac, struct station_parameters *params) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; tstrWILC_AddStaParam strStaParams = { {0} }; perInterface_wlan_t *nic; @@ -3512,7 +3512,7 @@ struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, const char *name, struct vif_params *params) { perInterface_wlan_t *nic; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; struct net_device *new_ifc = NULL; priv = wiphy_priv(wiphy); @@ -3614,7 +3614,7 @@ static struct cfg80211_ops wilc_cfg80211_ops = { int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; priv = wiphy_priv(wiphy); #if 1 @@ -3669,7 +3669,7 @@ struct wireless_dev *WILC_WFI_CfgAlloc(void) } /*Creating a new wiphy, linking wireless structure with the wiphy structure*/ - wdev->wiphy = wiphy_new(&wilc_cfg80211_ops, sizeof(struct WILC_WFI_priv)); + wdev->wiphy = wiphy_new(&wilc_cfg80211_ops, sizeof(struct wilc_priv)); if (!wdev->wiphy) { PRINT_ER("Cannot allocate wiphy\n"); goto _fail_mem_; @@ -3707,7 +3707,7 @@ _fail_: */ struct wireless_dev *WILC_WFI_WiphyRegister(struct net_device *net) { - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; struct wireless_dev *wdev; s32 s32Error = WILC_SUCCESS; @@ -3793,7 +3793,7 @@ int WILC_WFI_InitHostInt(struct net_device *net) s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; PRINT_D(INIT_DBG, "Host[%p][%p]\n", net, net->ieee80211_ptr); priv = wdev_priv(net->ieee80211_ptr); @@ -3834,7 +3834,7 @@ int WILC_WFI_DeInitHostInt(struct net_device *net) { s32 s32Error = WILC_SUCCESS; - struct WILC_WFI_priv *priv; + struct wilc_priv *priv; priv = wdev_priv(net->ieee80211_ptr); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index e1caea9630af..30ca3e07c775 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -116,7 +116,7 @@ struct wilc_wfi_p2pListenParams { #endif /*WILC_P2P*/ -struct WILC_WFI_priv { +struct wilc_priv { struct wireless_dev *wdev; struct cfg80211_scan_request *pstrScanReq; From 51e825f70b67ee9eb6ebb4ee8a191b31ea18981e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:14 +0900 Subject: [PATCH 0416/2431] staging: wilc1000: use u8 instead of uint8_t This patch replaces uint8_t with u8 that is a preferred kernel type. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/linux_mon.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 30 +-- drivers/staging/wilc1000/linux_wlan_spi.c | 4 +- drivers/staging/wilc1000/linux_wlan_spi.h | 4 +- drivers/staging/wilc1000/wilc_sdio.c | 24 +-- drivers/staging/wilc1000/wilc_spi.c | 178 +++++++++--------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 14 +- .../staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 10 +- drivers/staging/wilc1000/wilc_wlan.c | 58 +++--- drivers/staging/wilc1000/wilc_wlan.h | 32 ++-- drivers/staging/wilc1000/wilc_wlan_cfg.c | 118 ++++++------ drivers/staging/wilc1000/wilc_wlan_cfg.h | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 26 +-- 15 files changed, 253 insertions(+), 253 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 621fd1867633..fdbd7e077f6c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -7460,7 +7460,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt return s32Error; } #endif /*WILC_AP_EXTERNAL_MLME*/ -uint32_t wilc_get_chipid(uint8_t); +uint32_t wilc_get_chipid(u8); s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Timeout) { diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index 6bee71051c0d..a38d29394ae7 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -54,7 +54,7 @@ u8 broadcast[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; #define IS_MGMT_STATUS_SUCCES 0x040 #define GET_PKT_OFFSET(a) (((a) >> 22) & 0x1ff) -void WILC_WFI_monitor_rx(uint8_t *buff, uint32_t size) +void WILC_WFI_monitor_rx(u8 *buff, uint32_t size) { uint32_t header, pkt_offset; struct sk_buff *skb = NULL; diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index f200d5fc76b8..459795739bad 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -110,11 +110,11 @@ static struct semaphore close_exit_sync; static int wlan_deinit_locks(linux_wlan_t *nic); static void wlan_deinitialize_threads(linux_wlan_t *nic); -extern void WILC_WFI_monitor_rx(uint8_t *buff, uint32_t size); -extern void WILC_WFI_p2p_rx(struct net_device *dev, uint8_t *buff, uint32_t size); +extern void WILC_WFI_monitor_rx(u8 *buff, uint32_t size); +extern void WILC_WFI_p2p_rx(struct net_device *dev, u8 *buff, uint32_t size); static void linux_wlan_tx_complete(void *priv, int status); -void frmw_to_linux(uint8_t *buff, uint32_t size, uint32_t pkt_offset); +void frmw_to_linux(u8 *buff, uint32_t size, uint32_t pkt_offset); static int mac_init_fn(struct net_device *ndev); int mac_xmit(struct sk_buff *skb, struct net_device *dev); int mac_open(struct net_device *ndev); @@ -485,7 +485,7 @@ static void deinit_irq(linux_wlan_t *nic) /* * OS functions */ -static void linux_wlan_dbg(uint8_t *buff) +static void linux_wlan_dbg(u8 *buff) { PRINT_D(INIT_DBG, "%d\n", *buff); } @@ -529,9 +529,9 @@ static void linux_wlan_mac_indicate(int flag) } -struct net_device *GetIfHandler(uint8_t *pMacHeader) +struct net_device *GetIfHandler(u8 *pMacHeader) { - uint8_t *Bssid, *Bssid1; + u8 *Bssid, *Bssid1; int i = 0; Bssid = pMacHeader + 10; @@ -559,7 +559,7 @@ struct net_device *GetIfHandler(uint8_t *pMacHeader) return NULL; } -int linux_wlan_set_bssid(struct net_device *wilc_netdev, uint8_t *pBSSID) +int linux_wlan_set_bssid(struct net_device *wilc_netdev, u8 *pBSSID) { int i = 0; int ret = -1; @@ -580,9 +580,9 @@ int linux_wlan_set_bssid(struct net_device *wilc_netdev, uint8_t *pBSSID) /*Function to get number of connected interfaces*/ int linux_wlan_get_num_conn_ifcs(void) { - uint8_t i = 0; - uint8_t null_bssid[6] = {0}; - uint8_t ret_val = 0; + u8 i = 0; + u8 null_bssid[6] = {0}; + u8 ret_val = 0; for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { if (memcmp(g_linux_wlan->strInterfaceInfo[i].aBSSID, null_bssid, 6)) @@ -1380,13 +1380,13 @@ static void wlan_deinitialize_threads(linux_wlan_t *nic) #ifdef COMPLEMENT_BOOT extern volatile int probe; -extern uint8_t core_11b_ready(void); +extern u8 core_11b_ready(void); #define READY_CHECK_THRESHOLD 30 extern void wilc_wlan_global_reset(void); -uint8_t wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, wilc_wlan_oup_t *nwo, linux_wlan_t *nic) +u8 wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, wilc_wlan_oup_t *nwo, linux_wlan_t *nic) { - uint8_t trials = 0; + u8 trials = 0; while ((core_11b_ready() && (READY_CHECK_THRESHOLD > (trials++)))) { PRINT_D(INIT_DBG, "11b core not ready yet: %u\n", trials); @@ -1969,7 +1969,7 @@ done: return s32Error; } -void frmw_to_linux(uint8_t *buff, uint32_t size, uint32_t pkt_offset) +void frmw_to_linux(u8 *buff, uint32_t size, uint32_t pkt_offset) { unsigned int frame_len = 0; @@ -2048,7 +2048,7 @@ void frmw_to_linux(uint8_t *buff, uint32_t size, uint32_t pkt_offset) #endif } -void WILC_WFI_mgmt_rx(uint8_t *buff, uint32_t size) +void WILC_WFI_mgmt_rx(u8 *buff, uint32_t size) { int i = 0; perInterface_wlan_t *nic; diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 3b3ba8a1c79e..d0802fd4d457 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -115,7 +115,7 @@ int linux_spi_init(void *vp) #if defined(TXRX_PHASE_SIZE) -int linux_spi_write(uint8_t *b, uint32_t len) +int linux_spi_write(u8 *b, uint32_t len) { int ret; @@ -194,7 +194,7 @@ int linux_spi_write(uint8_t *b, uint32_t len) } #else -int linux_spi_write(uint8_t *b, uint32_t len) +int linux_spi_write(u8 *b, uint32_t len) { int ret; diff --git a/drivers/staging/wilc1000/linux_wlan_spi.h b/drivers/staging/wilc1000/linux_wlan_spi.h index 0ecad477de1c..2b52738577c9 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.h +++ b/drivers/staging/wilc1000/linux_wlan_spi.h @@ -7,8 +7,8 @@ extern struct spi_driver wilc_bus; int linux_spi_init(void *vp); void linux_spi_deinit(void *vp); -int linux_spi_write(uint8_t *b, uint32_t len); -int linux_spi_read(uint8_t *rb, uint32_t rlen); +int linux_spi_write(u8 *b, uint32_t len); +int linux_spi_read(u8 *rb, uint32_t rlen); int linux_spi_write_read(unsigned char *wb, unsigned char *rb, unsigned int rlen); int linux_spi_set_max_speed(void); #endif diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index 79aa4a1b8f9f..fb0b894d367b 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -50,21 +50,21 @@ static int sdio_set_func0_csa_address(uint32_t adr) cmd.function = 0; cmd.raw = 0; cmd.address = 0x10c; - cmd.data = (uint8_t)adr; + cmd.data = (u8)adr; if (!g_sdio.sdio_cmd52(&cmd)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10c data...\n"); goto _fail_; } cmd.address = 0x10d; - cmd.data = (uint8_t)(adr >> 8); + cmd.data = (u8)(adr >> 8); if (!g_sdio.sdio_cmd52(&cmd)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10d data...\n"); goto _fail_; } cmd.address = 0x10e; - cmd.data = (uint8_t)(adr >> 16); + cmd.data = (u8)(adr >> 16); if (!g_sdio.sdio_cmd52(&cmd)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10e data...\n"); goto _fail_; @@ -86,7 +86,7 @@ static int sdio_set_func0_csa_address_byte0(uint32_t adr) cmd.function = 0; cmd.raw = 0; cmd.address = 0x10c; - cmd.data = (uint8_t)adr; + cmd.data = (u8)adr; if (!g_sdio.sdio_cmd52(&cmd)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10c data...\n"); goto _fail_; @@ -105,14 +105,14 @@ static int sdio_set_func0_block_size(uint32_t block_size) cmd.function = 0; cmd.raw = 0; cmd.address = 0x10; - cmd.data = (uint8_t)block_size; + cmd.data = (u8)block_size; if (!g_sdio.sdio_cmd52(&cmd)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10 data...\n"); goto _fail_; } cmd.address = 0x11; - cmd.data = (uint8_t)(block_size >> 8); + cmd.data = (u8)(block_size >> 8); if (!g_sdio.sdio_cmd52(&cmd)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x11 data...\n"); goto _fail_; @@ -137,13 +137,13 @@ static int sdio_set_func1_block_size(uint32_t block_size) cmd.function = 0; cmd.raw = 0; cmd.address = 0x110; - cmd.data = (uint8_t)block_size; + cmd.data = (u8)block_size; if (!g_sdio.sdio_cmd52(&cmd)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x110 data...\n"); goto _fail_; } cmd.address = 0x111; - cmd.data = (uint8_t)(block_size >> 8); + cmd.data = (u8)(block_size >> 8); if (!g_sdio.sdio_cmd52(&cmd)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x111 data...\n"); goto _fail_; @@ -276,7 +276,7 @@ static int sdio_write_reg(uint32_t addr, uint32_t data) cmd.block_mode = 0; cmd.increment = 1; cmd.count = 4; - cmd.buffer = (uint8_t *)&data; + cmd.buffer = (u8 *)&data; cmd.block_size = g_sdio.block_size; /* johnny : prevent it from setting unexpected value */ if (!g_sdio.sdio_cmd53(&cmd)) { @@ -292,7 +292,7 @@ _fail_: return 0; } -static int sdio_write(uint32_t addr, uint8_t *buf, uint32_t size) +static int sdio_write(uint32_t addr, u8 *buf, uint32_t size) { uint32_t block_size = g_sdio.block_size; sdio_cmd53_t cmd; @@ -402,7 +402,7 @@ static int sdio_read_reg(uint32_t addr, uint32_t *data) cmd.block_mode = 0; cmd.increment = 1; cmd.count = 4; - cmd.buffer = (uint8_t *)data; + cmd.buffer = (u8 *)data; cmd.block_size = g_sdio.block_size; /* johnny : prevent it from setting unexpected value */ @@ -423,7 +423,7 @@ _fail_: return 0; } -static int sdio_read(uint32_t addr, uint8_t *buf, uint32_t size) +static int sdio_read(uint32_t addr, u8 *buf, uint32_t size) { uint32_t block_size = g_sdio.block_size; sdio_cmd53_t cmd; diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index d9ccca916517..d600417c8865 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -16,9 +16,9 @@ */ typedef struct { void *os_context; - int (*spi_tx)(uint8_t *, uint32_t); - int (*spi_rx)(uint8_t *, uint32_t); - int (*spi_trx)(uint8_t *, uint8_t *, uint32_t); + int (*spi_tx)(u8 *, uint32_t); + int (*spi_rx)(u8 *, uint32_t); + int (*spi_trx)(u8 *, u8 *, uint32_t); int (*spi_max_speed)(void); wilc_debug_func dPrint; int crc_off; @@ -28,8 +28,8 @@ typedef struct { static wilc_spi_t g_spi; -static int spi_read(uint32_t, uint8_t *, uint32_t); -static int spi_write(uint32_t, uint8_t *, uint32_t); +static int spi_read(uint32_t, u8 *, uint32_t); +static int spi_write(uint32_t, u8 *, uint32_t); /******************************************** * @@ -37,7 +37,7 @@ static int spi_write(uint32_t, uint8_t *, uint32_t); * ********************************************/ -static const uint8_t crc7_syndrome_table[256] = { +static const u8 crc7_syndrome_table[256] = { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77, 0x19, 0x10, 0x0b, 0x02, 0x3d, 0x34, 0x2f, 0x26, @@ -72,12 +72,12 @@ static const uint8_t crc7_syndrome_table[256] = { 0x46, 0x4f, 0x54, 0x5d, 0x62, 0x6b, 0x70, 0x79 }; -static uint8_t crc7_byte(uint8_t crc, uint8_t data) +static u8 crc7_byte(u8 crc, u8 data) { return crc7_syndrome_table[(crc << 1) ^ data]; } -static uint8_t crc7(uint8_t crc, const uint8_t *buffer, uint32_t len) +static u8 crc7(u8 crc, const u8 *buffer, uint32_t len) { while (len--) crc = crc7_byte(crc, *buffer++); @@ -114,26 +114,26 @@ static uint8_t crc7(uint8_t crc, const uint8_t *buffer, uint32_t len) #define DATA_PKT_SZ_8K (8 * 1024) #define DATA_PKT_SZ DATA_PKT_SZ_8K -static int spi_cmd(uint8_t cmd, uint32_t adr, uint32_t data, uint32_t sz, uint8_t clockless) +static int spi_cmd(u8 cmd, uint32_t adr, uint32_t data, uint32_t sz, u8 clockless) { - uint8_t bc[9]; + u8 bc[9]; int len = 5; int result = N_OK; bc[0] = cmd; switch (cmd) { case CMD_SINGLE_READ: /* single word (4 bytes) read */ - bc[1] = (uint8_t)(adr >> 16); - bc[2] = (uint8_t)(adr >> 8); - bc[3] = (uint8_t)adr; + bc[1] = (u8)(adr >> 16); + bc[2] = (u8)(adr >> 8); + bc[3] = (u8)adr; len = 5; break; case CMD_INTERNAL_READ: /* internal register read */ - bc[1] = (uint8_t)(adr >> 8); + bc[1] = (u8)(adr >> 8); if (clockless) bc[1] |= (1 << 7); - bc[2] = (uint8_t)adr; + bc[2] = (u8)adr; bc[3] = 0x00; len = 5; break; @@ -161,45 +161,45 @@ static int spi_cmd(uint8_t cmd, uint32_t adr, uint32_t data, uint32_t sz, uint8_ case CMD_DMA_WRITE: /* dma write */ case CMD_DMA_READ: /* dma read */ - bc[1] = (uint8_t)(adr >> 16); - bc[2] = (uint8_t)(adr >> 8); - bc[3] = (uint8_t)adr; - bc[4] = (uint8_t)(sz >> 8); - bc[5] = (uint8_t)(sz); + bc[1] = (u8)(adr >> 16); + bc[2] = (u8)(adr >> 8); + bc[3] = (u8)adr; + bc[4] = (u8)(sz >> 8); + bc[5] = (u8)(sz); len = 7; break; case CMD_DMA_EXT_WRITE: /* dma extended write */ case CMD_DMA_EXT_READ: /* dma extended read */ - bc[1] = (uint8_t)(adr >> 16); - bc[2] = (uint8_t)(adr >> 8); - bc[3] = (uint8_t)adr; - bc[4] = (uint8_t)(sz >> 16); - bc[5] = (uint8_t)(sz >> 8); - bc[6] = (uint8_t)(sz); + bc[1] = (u8)(adr >> 16); + bc[2] = (u8)(adr >> 8); + bc[3] = (u8)adr; + bc[4] = (u8)(sz >> 16); + bc[5] = (u8)(sz >> 8); + bc[6] = (u8)(sz); len = 8; break; case CMD_INTERNAL_WRITE: /* internal register write */ - bc[1] = (uint8_t)(adr >> 8); + bc[1] = (u8)(adr >> 8); if (clockless) bc[1] |= (1 << 7); - bc[2] = (uint8_t)(adr); - bc[3] = (uint8_t)(data >> 24); - bc[4] = (uint8_t)(data >> 16); - bc[5] = (uint8_t)(data >> 8); - bc[6] = (uint8_t)(data); + bc[2] = (u8)(adr); + bc[3] = (u8)(data >> 24); + bc[4] = (u8)(data >> 16); + bc[5] = (u8)(data >> 8); + bc[6] = (u8)(data); len = 8; break; case CMD_SINGLE_WRITE: /* single word write */ - bc[1] = (uint8_t)(adr >> 16); - bc[2] = (uint8_t)(adr >> 8); - bc[3] = (uint8_t)(adr); - bc[4] = (uint8_t)(data >> 24); - bc[5] = (uint8_t)(data >> 16); - bc[6] = (uint8_t)(data >> 8); - bc[7] = (uint8_t)(data); + bc[1] = (u8)(adr >> 16); + bc[2] = (u8)(adr >> 8); + bc[3] = (u8)(adr); + bc[4] = (u8)(data >> 24); + bc[5] = (u8)(data >> 16); + bc[6] = (u8)(data >> 8); + bc[7] = (u8)(data); len = 9; break; @@ -210,7 +210,7 @@ static int spi_cmd(uint8_t cmd, uint32_t adr, uint32_t data, uint32_t sz, uint8_ if (result) { if (!g_spi.crc_off) - bc[len - 1] = (crc7(0x7f, (const uint8_t *)&bc[0], len - 1)) << 1; + bc[len - 1] = (crc7(0x7f, (const u8 *)&bc[0], len - 1)) << 1; else len -= 1; @@ -223,9 +223,9 @@ static int spi_cmd(uint8_t cmd, uint32_t adr, uint32_t data, uint32_t sz, uint8_ return result; } -static int spi_cmd_rsp(uint8_t cmd) +static int spi_cmd_rsp(u8 cmd) { - uint8_t rsp; + u8 rsp; int result = N_OK; /** @@ -271,29 +271,29 @@ _fail_: return result; } -static int spi_cmd_complete(uint8_t cmd, uint32_t adr, uint8_t *b, uint32_t sz, uint8_t clockless) +static int spi_cmd_complete(u8 cmd, uint32_t adr, u8 *b, uint32_t sz, u8 clockless) { - uint8_t wb[32], rb[32]; - uint8_t wix, rix; + u8 wb[32], rb[32]; + u8 wix, rix; uint32_t len2; - uint8_t rsp; + u8 rsp; int len = 0; int result = N_OK; wb[0] = cmd; switch (cmd) { case CMD_SINGLE_READ: /* single word (4 bytes) read */ - wb[1] = (uint8_t)(adr >> 16); - wb[2] = (uint8_t)(adr >> 8); - wb[3] = (uint8_t)adr; + wb[1] = (u8)(adr >> 16); + wb[2] = (u8)(adr >> 8); + wb[3] = (u8)adr; len = 5; break; case CMD_INTERNAL_READ: /* internal register read */ - wb[1] = (uint8_t)(adr >> 8); + wb[1] = (u8)(adr >> 8); if (clockless == 1) wb[1] |= (1 << 7); - wb[2] = (uint8_t)adr; + wb[2] = (u8)adr; wb[3] = 0x00; len = 5; break; @@ -321,30 +321,30 @@ static int spi_cmd_complete(uint8_t cmd, uint32_t adr, uint8_t *b, uint32_t sz, case CMD_DMA_WRITE: /* dma write */ case CMD_DMA_READ: /* dma read */ - wb[1] = (uint8_t)(adr >> 16); - wb[2] = (uint8_t)(adr >> 8); - wb[3] = (uint8_t)adr; - wb[4] = (uint8_t)(sz >> 8); - wb[5] = (uint8_t)(sz); + wb[1] = (u8)(adr >> 16); + wb[2] = (u8)(adr >> 8); + wb[3] = (u8)adr; + wb[4] = (u8)(sz >> 8); + wb[5] = (u8)(sz); len = 7; break; case CMD_DMA_EXT_WRITE: /* dma extended write */ case CMD_DMA_EXT_READ: /* dma extended read */ - wb[1] = (uint8_t)(adr >> 16); - wb[2] = (uint8_t)(adr >> 8); - wb[3] = (uint8_t)adr; - wb[4] = (uint8_t)(sz >> 16); - wb[5] = (uint8_t)(sz >> 8); - wb[6] = (uint8_t)(sz); + wb[1] = (u8)(adr >> 16); + wb[2] = (u8)(adr >> 8); + wb[3] = (u8)adr; + wb[4] = (u8)(sz >> 16); + wb[5] = (u8)(sz >> 8); + wb[6] = (u8)(sz); len = 8; break; case CMD_INTERNAL_WRITE: /* internal register write */ - wb[1] = (uint8_t)(adr >> 8); + wb[1] = (u8)(adr >> 8); if (clockless == 1) wb[1] |= (1 << 7); - wb[2] = (uint8_t)(adr); + wb[2] = (u8)(adr); wb[3] = b[3]; wb[4] = b[2]; wb[5] = b[1]; @@ -353,9 +353,9 @@ static int spi_cmd_complete(uint8_t cmd, uint32_t adr, uint8_t *b, uint32_t sz, break; case CMD_SINGLE_WRITE: /* single word write */ - wb[1] = (uint8_t)(adr >> 16); - wb[2] = (uint8_t)(adr >> 8); - wb[3] = (uint8_t)(adr); + wb[1] = (u8)(adr >> 16); + wb[2] = (u8)(adr >> 8); + wb[3] = (u8)(adr); wb[4] = b[3]; wb[5] = b[2]; wb[6] = b[1]; @@ -373,7 +373,7 @@ static int spi_cmd_complete(uint8_t cmd, uint32_t adr, uint8_t *b, uint32_t sz, } if (!g_spi.crc_off) - wb[len - 1] = (crc7(0x7f, (const uint8_t *)&wb[0], len - 1)) << 1; + wb[len - 1] = (crc7(0x7f, (const u8 *)&wb[0], len - 1)) << 1; else len -= 1; @@ -454,7 +454,7 @@ static int spi_cmd_complete(uint8_t cmd, uint32_t adr, uint8_t *b, uint32_t sz, || (cmd == CMD_DMA_READ) || (cmd == CMD_DMA_EXT_READ)) { int retry; /* uint16_t crc1, crc2; */ - uint8_t crc[2]; + u8 crc[2]; /** * Data Respnose header **/ @@ -610,12 +610,12 @@ _error_: return result; } -static int spi_data_read(uint8_t *b, uint32_t sz) +static int spi_data_read(u8 *b, uint32_t sz) { int retry, ix, nbytes; int result = N_OK; - uint8_t crc[2]; - uint8_t rsp; + u8 crc[2]; + u8 rsp; /** * Data @@ -678,12 +678,12 @@ static int spi_data_read(uint8_t *b, uint32_t sz) return result; } -static int spi_data_write(uint8_t *b, uint32_t sz) +static int spi_data_write(u8 *b, uint32_t sz) { int ix, nbytes; int result = 1; - uint8_t cmd, order, crc[2] = {0}; - /* uint8_t rsp; */ + u8 cmd, order, crc[2] = {0}; + /* u8 rsp; */ /** * Data @@ -778,7 +778,7 @@ static int spi_internal_write(uint32_t adr, uint32_t dat) #ifdef BIG_ENDIAN dat = BYTE_SWAP(dat); #endif - result = spi_cmd_complete(CMD_INTERNAL_WRITE, adr, (uint8_t *)&dat, 4, 0); + result = spi_cmd_complete(CMD_INTERNAL_WRITE, adr, (u8 *)&dat, 4, 0); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed internal write cmd...\n"); } @@ -807,13 +807,13 @@ static int spi_internal_read(uint32_t adr, uint32_t *data) /** * Data **/ - result = spi_data_read((uint8_t *)data, 4); + result = spi_data_read((u8 *)data, 4); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed internal read data...\n"); return 0; } #else - result = spi_cmd_complete(CMD_INTERNAL_READ, adr, (uint8_t *)data, 4, 0); + result = spi_cmd_complete(CMD_INTERNAL_READ, adr, (u8 *)data, 4, 0); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed internal read cmd...\n"); return 0; @@ -837,8 +837,8 @@ static int spi_internal_read(uint32_t adr, uint32_t *data) static int spi_write_reg(uint32_t addr, uint32_t data) { int result = N_OK; - uint8_t cmd = CMD_SINGLE_WRITE; - uint8_t clockless = 0; + u8 cmd = CMD_SINGLE_WRITE; + u8 clockless = 0; #if defined USE_OLD_SPI_SW @@ -867,7 +867,7 @@ static int spi_write_reg(uint32_t addr, uint32_t data) clockless = 1; } - result = spi_cmd_complete(cmd, addr, (uint8_t *)&data, 4, clockless); + result = spi_cmd_complete(cmd, addr, (u8 *)&data, 4, clockless); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed cmd, write reg (%08x)...\n", addr); } @@ -877,10 +877,10 @@ static int spi_write_reg(uint32_t addr, uint32_t data) } -static int spi_write(uint32_t addr, uint8_t *buf, uint32_t size) +static int spi_write(uint32_t addr, u8 *buf, uint32_t size) { int result; - uint8_t cmd = CMD_DMA_EXT_WRITE; + u8 cmd = CMD_DMA_EXT_WRITE; /** * has to be greated than 4 @@ -925,8 +925,8 @@ static int spi_write(uint32_t addr, uint8_t *buf, uint32_t size) static int spi_read_reg(uint32_t addr, uint32_t *data) { int result = N_OK; - uint8_t cmd = CMD_SINGLE_READ; - uint8_t clockless = 0; + u8 cmd = CMD_SINGLE_READ; + u8 clockless = 0; #if defined USE_OLD_SPI_SW result = spi_cmd(cmd, addr, 0, 4, 0); @@ -940,7 +940,7 @@ static int spi_read_reg(uint32_t addr, uint32_t *data) return 0; } - result = spi_data_read((uint8_t *)data, 4); + result = spi_data_read((u8 *)data, 4); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed data read...\n"); return 0; @@ -953,7 +953,7 @@ static int spi_read_reg(uint32_t addr, uint32_t *data) clockless = 1; } - result = spi_cmd_complete(cmd, addr, (uint8_t *)data, 4, clockless); + result = spi_cmd_complete(cmd, addr, (u8 *)data, 4, clockless); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed cmd, read reg (%08x)...\n", addr); return 0; @@ -968,9 +968,9 @@ static int spi_read_reg(uint32_t addr, uint32_t *data) return 1; } -static int spi_read(uint32_t addr, uint8_t *buf, uint32_t size) +static int spi_read(uint32_t addr, u8 *buf, uint32_t size) { - uint8_t cmd = CMD_DMA_EXT_READ; + u8 cmd = CMD_DMA_EXT_READ; int result; if (size <= 4) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 237be2b5215b..4126acd86722 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -164,9 +164,9 @@ void clear_shadow_scan(void *pUserVoid) uint32_t get_rssi_avg(tstrNetworkInfo *pstrNetworkInfo) { - uint8_t i; + u8 i; int rssi_v = 0; - uint8_t num_rssi = (pstrNetworkInfo->strRssi.u8Full) ? NUM_RSSI : (pstrNetworkInfo->strRssi.u8Index); + u8 num_rssi = (pstrNetworkInfo->strRssi.u8Full) ? NUM_RSSI : (pstrNetworkInfo->strRssi.u8Index); for (i = 0; i < num_rssi; i++) rssi_v += pstrNetworkInfo->strRssi.as8RSSI[i]; @@ -175,7 +175,7 @@ uint32_t get_rssi_avg(tstrNetworkInfo *pstrNetworkInfo) return rssi_v; } -void refresh_scan(void *pUserVoid, uint8_t all, bool bDirectScan) +void refresh_scan(void *pUserVoid, u8 all, bool bDirectScan) { struct wilc_priv *priv; struct wiphy *wiphy; @@ -302,7 +302,7 @@ void add_network_to_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, vo { int8_t ap_found = is_network_in_shadow(pstrNetworkInfo, pUserVoid); uint32_t ap_index = 0; - uint8_t rssi_index = 0; + u8 rssi_index = 0; if (u32LastScannedNtwrksCountShadow >= MAX_NUM_SCANNED_NETWORKS_SHADOW) { PRINT_D(CFG80211_DBG, "Shadow network reached its maximum limit\n"); @@ -525,7 +525,7 @@ int WILC_WFI_Set_PMKSA(u8 *bssid, struct wilc_priv *priv) } -int linux_wlan_set_bssid(struct net_device *wilc_netdev, uint8_t *pBSSID); +int linux_wlan_set_bssid(struct net_device *wilc_netdev, u8 *pBSSID); /** @@ -1079,7 +1079,7 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co #ifdef WILC_P2P tstrWILC_WFIDrv *pstrWFIDrv; #endif - uint8_t NullBssid[ETH_ALEN] = {0}; + u8 NullBssid[ETH_ALEN] = {0}; connecting = 0; priv = wiphy_priv(wiphy); @@ -2198,7 +2198,7 @@ void WILC_WFI_CfgParseTxAction(u8 *buf, u32 len, bool bOperChan, u8 iftype) * @version 1.0 */ -void WILC_WFI_p2p_rx (struct net_device *dev, uint8_t *buff, uint32_t size) +void WILC_WFI_p2p_rx (struct net_device *dev, u8 *buff, uint32_t size) { struct wilc_priv *priv; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 3c3571d8a369..eb160d5ebb48 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -111,7 +111,7 @@ void WILC_WFI_WiphyFree(struct net_device *net); int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed); int WILC_WFI_DeInitHostInt(struct net_device *net); int WILC_WFI_InitHostInt(struct net_device *net); -void WILC_WFI_monitor_rx(uint8_t *buff, uint32_t size); +void WILC_WFI_monitor_rx(u8 *buff, uint32_t size); int WILC_WFI_deinit_mon_interface(void); struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 30ca3e07c775..6ea5c87fe650 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -171,8 +171,8 @@ typedef struct { } struct_frame_reg; typedef struct { - uint8_t aSrcAddress[ETH_ALEN]; - uint8_t aBSSID[ETH_ALEN]; + u8 aSrcAddress[ETH_ALEN]; + u8 aBSSID[ETH_ALEN]; tstrWILC_WFIDrv *drvHandler; struct net_device *wilc_netdev; } tstrInterfaceInfo; @@ -184,9 +184,9 @@ typedef struct { #endif wilc_wlan_oup_t oup; int close; - uint8_t u8NoIfcs; + u8 u8NoIfcs; tstrInterfaceInfo strInterfaceInfo[NUM_CONCURRENT_IFC]; - uint8_t open_ifcs; + u8 open_ifcs; struct mutex txq_cs; /*Added by Amr - BugID_4720*/ @@ -229,7 +229,7 @@ typedef struct { } linux_wlan_t; typedef struct { - uint8_t u8IfIdx; + u8 u8IfIdx; u8 iftype; int monitor_flag; int mac_opened; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 39716babf606..c2873012e634 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -19,8 +19,8 @@ extern wilc_hif_func_t hif_sdio; extern wilc_hif_func_t hif_spi; extern wilc_cfg_func_t mac_cfg; -extern void WILC_WFI_mgmt_rx(uint8_t *buff, uint32_t size); -uint32_t wilc_get_chipid(uint8_t update); +extern void WILC_WFI_mgmt_rx(u8 *buff, uint32_t size); +uint32_t wilc_get_chipid(u8 update); u16 Set_machw_change_vir_if(bool bValue); @@ -57,14 +57,14 @@ typedef struct { **/ #ifdef MEMORY_STATIC uint32_t rx_buffer_size; - uint8_t *rx_buffer; + u8 *rx_buffer; uint32_t rx_buffer_offset; #endif /** * TX buffer **/ uint32_t tx_buffer_size; - uint8_t *tx_buffer; + u8 *tx_buffer; uint32_t tx_buffer_offset; /** @@ -374,8 +374,8 @@ static __inline int remove_TCP_related(void) static __inline int tcp_process(struct txq_entry_t *tqe) { int ret; - uint8_t *eth_hdr_ptr; - uint8_t *buffer = tqe->buffer; + u8 *eth_hdr_ptr; + u8 *buffer = tqe->buffer; unsigned short h_proto; int i; wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; @@ -386,15 +386,15 @@ static __inline int tcp_process(struct txq_entry_t *tqe) eth_hdr_ptr = &buffer[0]; h_proto = ntohs(*((unsigned short *)ð_hdr_ptr[12])); if (h_proto == 0x0800) { /* IP */ - uint8_t *ip_hdr_ptr; - uint8_t protocol; + u8 *ip_hdr_ptr; + u8 protocol; ip_hdr_ptr = &buffer[ETHERNET_HDR_LEN]; protocol = ip_hdr_ptr[9]; if (protocol == 0x06) { - uint8_t *tcp_hdr_ptr; + u8 *tcp_hdr_ptr; uint32_t IHL, Total_Length, Data_offset; tcp_hdr_ptr = &ip_hdr_ptr[IP_HDR_LEN]; @@ -494,7 +494,7 @@ bool is_TCP_ACK_Filter_Enabled(void) } #endif -static int wilc_wlan_txq_add_cfg_pkt(uint8_t *buffer, uint32_t buffer_size) +static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, uint32_t buffer_size) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; struct txq_entry_t *tqe; @@ -531,7 +531,7 @@ static int wilc_wlan_txq_add_cfg_pkt(uint8_t *buffer, uint32_t buffer_size) return 1; } -static int wilc_wlan_txq_add_net_pkt(void *priv, uint8_t *buffer, uint32_t buffer_size, wilc_tx_complete_func_t func) +static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, uint32_t buffer_size, wilc_tx_complete_func_t func) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; struct txq_entry_t *tqe; @@ -563,7 +563,7 @@ static int wilc_wlan_txq_add_net_pkt(void *priv, uint8_t *buffer, uint32_t buffe } /*Bug3959: transmitting mgmt frames received from host*/ #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) -int wilc_wlan_txq_add_mgmt_pkt(void *priv, uint8_t *buffer, uint32_t buffer_size, wilc_tx_complete_func_t func) +int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, uint32_t buffer_size, wilc_tx_complete_func_t func) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; @@ -856,7 +856,7 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) int i, entries = 0; uint32_t sum; uint32_t reg; - uint8_t *txb = p->tx_buffer; + u8 *txb = p->tx_buffer; uint32_t offset = 0; int vmm_sz = 0; struct txq_entry_t *tqe; @@ -981,7 +981,7 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) /** * write to vmm table **/ - ret = p->hif_func.hif_block_tx(WILC_VMM_TBL_RX_SHADOW_BASE, (uint8_t *)vmm_table, ((i + 1) * 4)); /* Bug 4477 fix */ + ret = p->hif_func.hif_block_tx(WILC_VMM_TBL_RX_SHADOW_BASE, (u8 *)vmm_table, ((i + 1) * 4)); /* Bug 4477 fix */ if (!ret) { wilc_debug(N_ERR, "ERR block TX of VMM table.\n"); break; @@ -1166,7 +1166,7 @@ static void wilc_wlan_handle_rxq(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; int offset = 0, size, has_packet = 0; - uint8_t *buffer; + u8 *buffer; struct rxq_entry_t *rqe; p->rxq_exit = 0; @@ -1331,7 +1331,7 @@ static void wilc_wlan_handle_isr_ext(uint32_t int_status) #ifdef MEMORY_STATIC uint32_t offset = p->rx_buffer_offset; #endif - uint8_t *buffer = NULL; + u8 *buffer = NULL; uint32_t size; uint32_t retries = 0; int ret = 0; @@ -1459,12 +1459,12 @@ void wilc_handle_isr(void) * Firmware download * ********************************************/ -static int wilc_wlan_firmware_download(const uint8_t *buffer, uint32_t buffer_size) +static int wilc_wlan_firmware_download(const u8 *buffer, uint32_t buffer_size) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; uint32_t offset; uint32_t addr, size, size2, blksz; - uint8_t *dma_buffer; + u8 *dma_buffer; int ret = 0; blksz = (1ul << 12); /* Bug 4703: 4KB Good enough size for most platforms = PAGE_SIZE. */ @@ -1667,7 +1667,7 @@ static int wilc_wlan_stop(void) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; uint32_t reg = 0; int ret; - uint8_t timeout = 10; + u8 timeout = 10; /** * TODO: stop the firmware, need a re-download **/ @@ -1815,12 +1815,12 @@ static int wilc_wlan_cfg_commit(int type, uint32_t drvHandler) cfg->wid_header[0] = 'Q'; } cfg->wid_header[1] = seq_no; /* sequence number */ - cfg->wid_header[2] = (uint8_t)total_len; - cfg->wid_header[3] = (uint8_t)(total_len >> 8); - cfg->wid_header[4] = (uint8_t)driver_handler; - cfg->wid_header[5] = (uint8_t)(driver_handler >> 8); - cfg->wid_header[6] = (uint8_t)(driver_handler >> 16); - cfg->wid_header[7] = (uint8_t)(driver_handler >> 24); + cfg->wid_header[2] = (u8)total_len; + cfg->wid_header[3] = (u8)(total_len >> 8); + cfg->wid_header[4] = (u8)driver_handler; + cfg->wid_header[5] = (u8)(driver_handler >> 8); + cfg->wid_header[6] = (u8)(driver_handler >> 16); + cfg->wid_header[7] = (u8)(driver_handler >> 24); p->cfg_seq_no = seq_no; /** @@ -1834,7 +1834,7 @@ static int wilc_wlan_cfg_commit(int type, uint32_t drvHandler) return 0; } -static int wilc_wlan_cfg_set(int start, uint32_t wid, uint8_t *buffer, uint32_t buffer_size, int commit, uint32_t drvHandler) +static int wilc_wlan_cfg_set(int start, uint32_t wid, u8 *buffer, uint32_t buffer_size, int commit, uint32_t drvHandler) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; uint32_t offset; @@ -1912,7 +1912,7 @@ static int wilc_wlan_cfg_get(int start, uint32_t wid, int commit, uint32_t drvHa return ret_size; } -static int wilc_wlan_cfg_get_val(uint32_t wid, uint8_t *buffer, uint32_t buffer_size) +static int wilc_wlan_cfg_get_val(uint32_t wid, u8 *buffer, uint32_t buffer_size) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; int ret; @@ -1980,7 +1980,7 @@ uint32_t init_chip(void) } -uint32_t wilc_get_chipid(uint8_t update) +uint32_t wilc_get_chipid(u8 update) { static uint32_t chipid; /* SDIO can't read into global variables */ @@ -2017,7 +2017,7 @@ _fail_: } #ifdef COMPLEMENT_BOOT -uint8_t core_11b_ready(void) +u8 core_11b_ready(void) { uint32_t reg_val; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 99e07de2d3ed..d7fd07bc11f1 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -240,7 +240,7 @@ struct txq_entry_t { struct txq_entry_t *prev; int type; int tcp_PendingAck_index; - uint8_t *buffer; + u8 *buffer; int buffer_size; void *priv; int status; @@ -249,7 +249,7 @@ struct txq_entry_t { struct rxq_entry_t { struct rxq_entry_t *next; - uint8_t *buffer; + u8 *buffer; int buffer_size; }; @@ -264,15 +264,15 @@ typedef struct { int (*hif_deinit)(void *); int (*hif_read_reg)(uint32_t, uint32_t *); int (*hif_write_reg)(uint32_t, uint32_t); - int (*hif_block_rx)(uint32_t, uint8_t *, uint32_t); - int (*hif_block_tx)(uint32_t, uint8_t *, uint32_t); + int (*hif_block_rx)(uint32_t, u8 *, uint32_t); + int (*hif_block_tx)(uint32_t, u8 *, uint32_t); int (*hif_sync)(void); int (*hif_clear_int)(void); int (*hif_read_int)(uint32_t *); int (*hif_clear_int_ext)(uint32_t); int (*hif_read_size)(uint32_t *); - int (*hif_block_tx_ext)(uint32_t, uint8_t *, uint32_t); - int (*hif_block_rx_ext)(uint32_t, uint8_t *, uint32_t); + int (*hif_block_tx_ext)(uint32_t, u8 *, uint32_t); + int (*hif_block_rx_ext)(uint32_t, u8 *, uint32_t); int (*hif_sync_ext)(int); void (*hif_set_max_bus_speed)(void); void (*hif_set_default_bus_speed)(void); @@ -287,15 +287,15 @@ typedef struct { #define MAX_CFG_FRAME_SIZE 1468 typedef struct { - uint8_t ether_header[14]; - uint8_t ip_header[20]; - uint8_t udp_header[8]; - uint8_t wid_header[8]; - uint8_t frame[MAX_CFG_FRAME_SIZE]; + u8 ether_header[14]; + u8 ip_header[20]; + u8 udp_header[8]; + u8 wid_header[8]; + u8 frame[MAX_CFG_FRAME_SIZE]; } wilc_cfg_frame_t; typedef struct { - int (*wlan_tx)(uint8_t *, uint32_t, wilc_tx_complete_func_t); + int (*wlan_tx)(u8 *, uint32_t, wilc_tx_complete_func_t); } wilc_wlan_cfg_func_t; typedef struct { @@ -304,10 +304,10 @@ typedef struct { } wilc_cfg_rsp_t; typedef struct { - int (*cfg_wid_set)(uint8_t *, uint32_t, uint16_t, uint8_t *, int); - int (*cfg_wid_get)(uint8_t *, uint32_t, uint16_t); - int (*cfg_wid_get_val)(uint16_t, uint8_t *, uint32_t); - int (*rx_indicate)(uint8_t *, int, wilc_cfg_rsp_t *); + int (*cfg_wid_set)(u8 *, uint32_t, uint16_t, u8 *, int); + int (*cfg_wid_get)(u8 *, uint32_t, uint16_t); + int (*cfg_wid_get_val)(uint16_t, u8 *, uint32_t); + int (*rx_indicate)(u8 *, int, wilc_cfg_rsp_t *); int (*cfg_init)(wilc_debug_func); } wilc_cfg_func_t; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index 21ed14d8bfe0..8223b5fa7a78 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -22,23 +22,23 @@ typedef struct { wilc_debug_func dPrint; int mac_status; - uint8_t mac_address[7]; - uint8_t ip_address[5]; - uint8_t bssid[7]; - uint8_t ssid[34]; - uint8_t firmware_version[129]; - uint8_t supp_rate[24]; - uint8_t wep_key[28]; - uint8_t i_psk[66]; - uint8_t hardwareProductVersion[33]; - uint8_t phyversion[17]; - uint8_t supp_username[21]; - uint8_t supp_password[64]; - uint8_t assoc_req[256]; - uint8_t assoc_rsp[256]; - uint8_t firmware_info[8]; - uint8_t scan_result[256]; - uint8_t scan_result1[256]; + u8 mac_address[7]; + u8 ip_address[5]; + u8 bssid[7]; + u8 ssid[34]; + u8 firmware_version[129]; + u8 supp_rate[24]; + u8 wep_key[28]; + u8 i_psk[66]; + u8 hardwareProductVersion[33]; + u8 phyversion[17]; + u8 supp_username[21]; + u8 supp_password[64]; + u8 assoc_req[256]; + u8 assoc_rsp[256]; + u8 firmware_info[8]; + u8 scan_result[256]; + u8 scan_result1[256]; } wilc_mac_cfg_t; static wilc_mac_cfg_t g_mac; @@ -160,72 +160,72 @@ static wilc_cfg_str_t g_cfg_str[] = { * ********************************************/ -static int wilc_wlan_cfg_set_byte(uint8_t *frame, uint32_t offset, uint16_t id, uint8_t val8) +static int wilc_wlan_cfg_set_byte(u8 *frame, uint32_t offset, uint16_t id, u8 val8) { - uint8_t *buf; + u8 *buf; if ((offset + 4) >= MAX_CFG_FRAME_SIZE) return 0; buf = &frame[offset]; - buf[0] = (uint8_t)id; - buf[1] = (uint8_t)(id >> 8); + buf[0] = (u8)id; + buf[1] = (u8)(id >> 8); buf[2] = 1; buf[3] = val8; return 4; } -static int wilc_wlan_cfg_set_hword(uint8_t *frame, uint32_t offset, uint16_t id, uint16_t val16) +static int wilc_wlan_cfg_set_hword(u8 *frame, uint32_t offset, uint16_t id, uint16_t val16) { - uint8_t *buf; + u8 *buf; if ((offset + 5) >= MAX_CFG_FRAME_SIZE) return 0; buf = &frame[offset]; - buf[0] = (uint8_t)id; - buf[1] = (uint8_t)(id >> 8); + buf[0] = (u8)id; + buf[1] = (u8)(id >> 8); buf[2] = 2; - buf[3] = (uint8_t)val16; - buf[4] = (uint8_t)(val16 >> 8); + buf[3] = (u8)val16; + buf[4] = (u8)(val16 >> 8); return 5; } -static int wilc_wlan_cfg_set_word(uint8_t *frame, uint32_t offset, uint16_t id, uint32_t val32) +static int wilc_wlan_cfg_set_word(u8 *frame, uint32_t offset, uint16_t id, uint32_t val32) { - uint8_t *buf; + u8 *buf; if ((offset + 7) >= MAX_CFG_FRAME_SIZE) return 0; buf = &frame[offset]; - buf[0] = (uint8_t)id; - buf[1] = (uint8_t)(id >> 8); + buf[0] = (u8)id; + buf[1] = (u8)(id >> 8); buf[2] = 4; - buf[3] = (uint8_t)val32; - buf[4] = (uint8_t)(val32 >> 8); - buf[5] = (uint8_t)(val32 >> 16); - buf[6] = (uint8_t)(val32 >> 24); + buf[3] = (u8)val32; + buf[4] = (u8)(val32 >> 8); + buf[5] = (u8)(val32 >> 16); + buf[6] = (u8)(val32 >> 24); return 7; } -static int wilc_wlan_cfg_set_str(uint8_t *frame, uint32_t offset, uint16_t id, uint8_t *str, uint32_t size) +static int wilc_wlan_cfg_set_str(u8 *frame, uint32_t offset, uint16_t id, u8 *str, uint32_t size) { - uint8_t *buf; + u8 *buf; if ((offset + size + 3) >= MAX_CFG_FRAME_SIZE) return 0; buf = &frame[offset]; - buf[0] = (uint8_t)id; - buf[1] = (uint8_t)(id >> 8); - buf[2] = (uint8_t)size; + buf[0] = (u8)id; + buf[1] = (u8)(id >> 8); + buf[2] = (u8)size; if ((str != NULL) && (size != 0)) memcpy(&buf[3], str, size); @@ -233,20 +233,20 @@ static int wilc_wlan_cfg_set_str(uint8_t *frame, uint32_t offset, uint16_t id, u return (size + 3); } -static int wilc_wlan_cfg_set_bin(uint8_t *frame, uint32_t offset, uint16_t id, uint8_t *b, uint32_t size) +static int wilc_wlan_cfg_set_bin(u8 *frame, uint32_t offset, uint16_t id, u8 *b, uint32_t size) { - uint8_t *buf; + u8 *buf; uint32_t i; - uint8_t checksum = 0; + u8 checksum = 0; if ((offset + size + 5) >= MAX_CFG_FRAME_SIZE) return 0; buf = &frame[offset]; - buf[0] = (uint8_t)id; - buf[1] = (uint8_t)(id >> 8); - buf[2] = (uint8_t)size; - buf[3] = (uint8_t)(size >> 8); + buf[0] = (u8)id; + buf[1] = (u8)(id >> 8); + buf[2] = (u8)size; + buf[3] = (u8)(size >> 8); if ((b != NULL) && (size != 0)) { memcpy(&buf[4], b, size); @@ -266,7 +266,7 @@ static int wilc_wlan_cfg_set_bin(uint8_t *frame, uint32_t offset, uint16_t id, u * ********************************************/ -static void wilc_wlan_parse_response_frame(uint8_t *info, int size) +static void wilc_wlan_parse_response_frame(u8 *info, int size) { uint32_t wid, len = 0, i = 0; static int seq; @@ -361,7 +361,7 @@ static void wilc_wlan_parse_response_frame(uint8_t *info, int size) } } -static int wilc_wlan_parse_info_frame(uint8_t *info, int size) +static int wilc_wlan_parse_info_frame(u8 *info, int size) { wilc_mac_cfg_t *pd = (wilc_mac_cfg_t *)&g_mac; uint32_t wid, len; @@ -385,9 +385,9 @@ static int wilc_wlan_parse_info_frame(uint8_t *info, int size) * ********************************************/ -static int wilc_wlan_cfg_set_wid(uint8_t *frame, uint32_t offset, uint16_t id, uint8_t *buf, int size) +static int wilc_wlan_cfg_set_wid(u8 *frame, uint32_t offset, uint16_t id, u8 *buf, int size) { - uint8_t type = (id >> 12) & 0xf; + u8 type = (id >> 12) & 0xf; int ret = 0; if (type == 0) { /* byte command */ @@ -410,22 +410,22 @@ static int wilc_wlan_cfg_set_wid(uint8_t *frame, uint32_t offset, uint16_t id, u return ret; } -static int wilc_wlan_cfg_get_wid(uint8_t *frame, uint32_t offset, uint16_t id) +static int wilc_wlan_cfg_get_wid(u8 *frame, uint32_t offset, uint16_t id) { - uint8_t *buf; + u8 *buf; if ((offset + 2) >= MAX_CFG_FRAME_SIZE) return 0; buf = &frame[offset]; - buf[0] = (uint8_t)id; - buf[1] = (uint8_t)(id >> 8); + buf[0] = (u8)id; + buf[1] = (u8)(id >> 8); return 2; } -static int wilc_wlan_cfg_get_wid_value(uint16_t wid, uint8_t *buffer, uint32_t buffer_size) +static int wilc_wlan_cfg_get_wid_value(uint16_t wid, u8 *buffer, uint32_t buffer_size) { uint32_t type = (wid >> 12) & 0xf; int i, ret = 0; @@ -504,11 +504,11 @@ static int wilc_wlan_cfg_get_wid_value(uint16_t wid, uint8_t *buffer, uint32_t b return ret; } -static int wilc_wlan_cfg_indicate_rx(uint8_t *frame, int size, wilc_cfg_rsp_t *rsp) +static int wilc_wlan_cfg_indicate_rx(u8 *frame, int size, wilc_cfg_rsp_t *rsp) { int ret = 1; - uint8_t msg_type; - uint8_t msg_id; + u8 msg_type; + u8 msg_id; msg_type = frame[0]; msg_id = frame[1]; /* seq no */ diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.h b/drivers/staging/wilc1000/wilc_wlan_cfg.h index 8906611b2930..bcff29c3cb26 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.h +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.h @@ -27,7 +27,7 @@ typedef struct { typedef struct { uint32_t id; - uint8_t *str; + u8 *str; } wilc_cfg_str_t; #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 9f9f4a97fa99..a29d48624115 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -78,12 +78,12 @@ typedef struct { uint32_t address: 17; uint32_t count: 9; /* } bit; */ - uint8_t *buffer; + u8 *buffer; uint32_t block_size; } sdio_cmd53_t; typedef struct { - void (*os_debug)(uint8_t *); + void (*os_debug)(u8 *); int (*os_wait)(void *, u32); } wilc_wlan_os_func_t; @@ -100,15 +100,15 @@ typedef struct { } sdio; struct { int (*spi_max_speed)(void); - int (*spi_tx)(uint8_t *, uint32_t); - int (*spi_rx)(uint8_t *, uint32_t); - int (*spi_trx)(uint8_t *, uint8_t *, uint32_t); + int (*spi_tx)(u8 *, uint32_t); + int (*spi_rx)(u8 *, uint32_t); + int (*spi_trx)(u8 *, u8 *, uint32_t); } spi; } u; } wilc_wlan_io_func_t; typedef struct { - void (*rx_indicate)(uint8_t *, uint32_t, uint32_t); + void (*rx_indicate)(u8 *, uint32_t, uint32_t); void (*rx_complete)(void); } wilc_wlan_net_func_t; @@ -156,7 +156,7 @@ typedef struct { struct tx_complete_data { int size; void *buff; - uint8_t *pBssid; + u8 *pBssid; struct sk_buff *skb; }; @@ -166,20 +166,20 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_firmware_download)(const uint8_t *, uint32_t); + int (*wlan_firmware_download)(const u8 *, uint32_t); int (*wlan_start)(void); int (*wlan_stop)(void); - int (*wlan_add_to_tx_que)(void *, uint8_t *, uint32_t, wilc_tx_complete_func_t); + int (*wlan_add_to_tx_que)(void *, u8 *, uint32_t, wilc_tx_complete_func_t); int (*wlan_handle_tx_que)(uint32_t *); void (*wlan_handle_rx_que)(void); void (*wlan_handle_rx_isr)(void); void (*wlan_cleanup)(void); - int (*wlan_cfg_set)(int, uint32_t, uint8_t *, uint32_t, int, uint32_t); + int (*wlan_cfg_set)(int, uint32_t, u8 *, uint32_t, int, uint32_t); int (*wlan_cfg_get)(int, uint32_t, int, uint32_t); - int (*wlan_cfg_get_value)(uint32_t, uint8_t *, uint32_t); + int (*wlan_cfg_get_value)(uint32_t, u8 *, uint32_t); /*Bug3959: transmitting mgmt frames received from host*/ #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) - int (*wlan_add_mgmt_to_tx_que)(void *, uint8_t *, uint32_t, wilc_tx_complete_func_t); + int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, uint32_t, wilc_tx_complete_func_t); #endif } wilc_wlan_oup_t; @@ -939,7 +939,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup); void wilc_bus_set_max_speed(void); void wilc_bus_set_default_speed(void); -uint32_t wilc_get_chipid(uint8_t update); +uint32_t wilc_get_chipid(u8 update); #endif From ec53adfe1ca0951f6e48b76b4e8682edde2feac0 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:15 +0900 Subject: [PATCH 0417/2431] staging: wilc1000: use u16 instead of uint16_t This patch replaces uint16_t with u16 that is preferred kernel type. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_spi.c | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 12 ++++++------ drivers/staging/wilc1000/wilc_wlan.h | 6 +++--- drivers/staging/wilc1000/wilc_wlan_cfg.c | 18 +++++++++--------- drivers/staging/wilc1000/wilc_wlan_cfg.h | 8 ++++---- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index d600417c8865..c31e17a25363 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -453,7 +453,7 @@ static int spi_cmd_complete(u8 cmd, uint32_t adr, u8 *b, uint32_t sz, u8 clockle if ((cmd == CMD_INTERNAL_READ) || (cmd == CMD_SINGLE_READ) || (cmd == CMD_DMA_READ) || (cmd == CMD_DMA_EXT_READ)) { int retry; - /* uint16_t crc1, crc2; */ + /* u16 crc1, crc2; */ u8 crc[2]; /** * Data Respnose header diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index c2873012e634..c76134af05f5 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -285,9 +285,9 @@ struct Ack_session_info; struct Ack_session_info { uint32_t Ack_seq_num; uint32_t Bigger_Ack_num; - uint16_t src_port; - uint16_t dst_port; - uint16_t status; + u16 src_port; + u16 dst_port; + u16 status; }; typedef struct { @@ -1848,7 +1848,7 @@ static int wilc_wlan_cfg_set(int start, uint32_t wid, u8 *buffer, uint32_t buffe p->cfg_frame_offset = 0; offset = p->cfg_frame_offset; - ret_size = p->cif_func.cfg_wid_set(p->cfg_frame.frame, offset, (uint16_t)wid, buffer, buffer_size); + ret_size = p->cif_func.cfg_wid_set(p->cfg_frame.frame, offset, (u16)wid, buffer, buffer_size); offset += ret_size; p->cfg_frame_offset = offset; @@ -1887,7 +1887,7 @@ static int wilc_wlan_cfg_get(int start, uint32_t wid, int commit, uint32_t drvHa p->cfg_frame_offset = 0; offset = p->cfg_frame_offset; - ret_size = p->cif_func.cfg_wid_get(p->cfg_frame.frame, offset, (uint16_t)wid); + ret_size = p->cif_func.cfg_wid_get(p->cfg_frame.frame, offset, (u16)wid); offset += ret_size; p->cfg_frame_offset = offset; @@ -1917,7 +1917,7 @@ static int wilc_wlan_cfg_get_val(uint32_t wid, u8 *buffer, uint32_t buffer_size) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; int ret; - ret = p->cif_func.cfg_wid_get_val((uint16_t)wid, buffer, buffer_size); + ret = p->cif_func.cfg_wid_get_val((u16)wid, buffer, buffer_size); return ret; } diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index d7fd07bc11f1..0f26c13db0d7 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -304,9 +304,9 @@ typedef struct { } wilc_cfg_rsp_t; typedef struct { - int (*cfg_wid_set)(u8 *, uint32_t, uint16_t, u8 *, int); - int (*cfg_wid_get)(u8 *, uint32_t, uint16_t); - int (*cfg_wid_get_val)(uint16_t, u8 *, uint32_t); + int (*cfg_wid_set)(u8 *, uint32_t, u16, u8 *, int); + int (*cfg_wid_get)(u8 *, uint32_t, u16); + int (*cfg_wid_get_val)(u16, u8 *, uint32_t); int (*rx_indicate)(u8 *, int, wilc_cfg_rsp_t *); int (*cfg_init)(wilc_debug_func); } wilc_cfg_func_t; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index 8223b5fa7a78..f5bbbe86a039 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -160,7 +160,7 @@ static wilc_cfg_str_t g_cfg_str[] = { * ********************************************/ -static int wilc_wlan_cfg_set_byte(u8 *frame, uint32_t offset, uint16_t id, u8 val8) +static int wilc_wlan_cfg_set_byte(u8 *frame, uint32_t offset, u16 id, u8 val8) { u8 *buf; @@ -176,7 +176,7 @@ static int wilc_wlan_cfg_set_byte(u8 *frame, uint32_t offset, uint16_t id, u8 va return 4; } -static int wilc_wlan_cfg_set_hword(u8 *frame, uint32_t offset, uint16_t id, uint16_t val16) +static int wilc_wlan_cfg_set_hword(u8 *frame, uint32_t offset, u16 id, u16 val16) { u8 *buf; @@ -194,7 +194,7 @@ static int wilc_wlan_cfg_set_hword(u8 *frame, uint32_t offset, uint16_t id, uint return 5; } -static int wilc_wlan_cfg_set_word(u8 *frame, uint32_t offset, uint16_t id, uint32_t val32) +static int wilc_wlan_cfg_set_word(u8 *frame, uint32_t offset, u16 id, uint32_t val32) { u8 *buf; @@ -214,7 +214,7 @@ static int wilc_wlan_cfg_set_word(u8 *frame, uint32_t offset, uint16_t id, uint3 return 7; } -static int wilc_wlan_cfg_set_str(u8 *frame, uint32_t offset, uint16_t id, u8 *str, uint32_t size) +static int wilc_wlan_cfg_set_str(u8 *frame, uint32_t offset, u16 id, u8 *str, uint32_t size) { u8 *buf; @@ -233,7 +233,7 @@ static int wilc_wlan_cfg_set_str(u8 *frame, uint32_t offset, uint16_t id, u8 *st return (size + 3); } -static int wilc_wlan_cfg_set_bin(u8 *frame, uint32_t offset, uint16_t id, u8 *b, uint32_t size) +static int wilc_wlan_cfg_set_bin(u8 *frame, uint32_t offset, u16 id, u8 *b, uint32_t size) { u8 *buf; uint32_t i; @@ -385,7 +385,7 @@ static int wilc_wlan_parse_info_frame(u8 *info, int size) * ********************************************/ -static int wilc_wlan_cfg_set_wid(u8 *frame, uint32_t offset, uint16_t id, u8 *buf, int size) +static int wilc_wlan_cfg_set_wid(u8 *frame, uint32_t offset, u16 id, u8 *buf, int size) { u8 type = (id >> 12) & 0xf; int ret = 0; @@ -395,7 +395,7 @@ static int wilc_wlan_cfg_set_wid(u8 *frame, uint32_t offset, uint16_t id, u8 *bu ret = wilc_wlan_cfg_set_byte(frame, offset, id, *buf); } else if (type == 1) { /* half word command */ if (size >= 2) - ret = wilc_wlan_cfg_set_hword(frame, offset, id, *((uint16_t *)buf)); + ret = wilc_wlan_cfg_set_hword(frame, offset, id, *((u16 *)buf)); } else if (type == 2) { /* word command */ if (size >= 4) ret = wilc_wlan_cfg_set_word(frame, offset, id, *((uint32_t *)buf)); @@ -410,7 +410,7 @@ static int wilc_wlan_cfg_set_wid(u8 *frame, uint32_t offset, uint16_t id, u8 *bu return ret; } -static int wilc_wlan_cfg_get_wid(u8 *frame, uint32_t offset, uint16_t id) +static int wilc_wlan_cfg_get_wid(u8 *frame, uint32_t offset, u16 id) { u8 *buf; @@ -425,7 +425,7 @@ static int wilc_wlan_cfg_get_wid(u8 *frame, uint32_t offset, uint16_t id) return 2; } -static int wilc_wlan_cfg_get_wid_value(uint16_t wid, u8 *buffer, uint32_t buffer_size) +static int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, uint32_t buffer_size) { uint32_t type = (wid >> 12) & 0xf; int i, ret = 0; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.h b/drivers/staging/wilc1000/wilc_wlan_cfg.h index bcff29c3cb26..5af06179c2e6 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.h +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.h @@ -11,13 +11,13 @@ #define WILC_WLAN_CFG_H typedef struct { - uint16_t id; - uint16_t val; + u16 id; + u16 val; } wilc_cfg_byte_t; typedef struct { - uint16_t id; - uint16_t val; + u16 id; + u16 val; } wilc_cfg_hword_t; typedef struct { From fbc2fe16afa3f3709f29a8f938fc680e30894b8f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:16 +0900 Subject: [PATCH 0418/2431] staging: wilc1000: use u32 instead of uint32_t This patch replaces uint32_t with u32 that is a preferred kernel type. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 +- drivers/staging/wilc1000/linux_mon.c | 4 +- drivers/staging/wilc1000/linux_wlan.c | 10 +- drivers/staging/wilc1000/linux_wlan_spi.c | 6 +- drivers/staging/wilc1000/linux_wlan_spi.h | 4 +- drivers/staging/wilc1000/wilc_sdio.c | 64 ++++---- drivers/staging/wilc1000/wilc_spi.c | 66 ++++---- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +- .../staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 148 +++++++++--------- drivers/staging/wilc1000/wilc_wlan.h | 30 ++-- drivers/staging/wilc1000/wilc_wlan_cfg.c | 30 ++-- drivers/staging/wilc1000/wilc_wlan_cfg.h | 6 +- drivers/staging/wilc1000/wilc_wlan_if.h | 52 +++--- 14 files changed, 216 insertions(+), 216 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fdbd7e077f6c..2574c4884c6d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -3380,7 +3380,7 @@ static void Handle_GetLinkspeed(tstrWILC_WFIDrv *drvHandler) s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatistics) { tstrWID strWIDList[5]; - uint32_t u32WidsCount = 0, s32Error = 0; + u32 u32WidsCount = 0, s32Error = 0; strWIDList[u32WidsCount].u16WIDid = WID_LINKSPEED; strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; @@ -7460,7 +7460,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt return s32Error; } #endif /*WILC_AP_EXTERNAL_MLME*/ -uint32_t wilc_get_chipid(u8); +u32 wilc_get_chipid(u8); s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Timeout) { diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index a38d29394ae7..01e8be1fc704 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -54,9 +54,9 @@ u8 broadcast[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; #define IS_MGMT_STATUS_SUCCES 0x040 #define GET_PKT_OFFSET(a) (((a) >> 22) & 0x1ff) -void WILC_WFI_monitor_rx(u8 *buff, uint32_t size) +void WILC_WFI_monitor_rx(u8 *buff, u32 size) { - uint32_t header, pkt_offset; + u32 header, pkt_offset; struct sk_buff *skb = NULL; struct wilc_wfi_radiotap_hdr *hdr; struct wilc_wfi_radiotap_cb_hdr *cb_hdr; diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 459795739bad..6ad8cd5a7661 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -110,11 +110,11 @@ static struct semaphore close_exit_sync; static int wlan_deinit_locks(linux_wlan_t *nic); static void wlan_deinitialize_threads(linux_wlan_t *nic); -extern void WILC_WFI_monitor_rx(u8 *buff, uint32_t size); -extern void WILC_WFI_p2p_rx(struct net_device *dev, u8 *buff, uint32_t size); +extern void WILC_WFI_monitor_rx(u8 *buff, u32 size); +extern void WILC_WFI_p2p_rx(struct net_device *dev, u8 *buff, u32 size); static void linux_wlan_tx_complete(void *priv, int status); -void frmw_to_linux(u8 *buff, uint32_t size, uint32_t pkt_offset); +void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); static int mac_init_fn(struct net_device *ndev); int mac_xmit(struct sk_buff *skb, struct net_device *dev); int mac_open(struct net_device *ndev); @@ -1969,7 +1969,7 @@ done: return s32Error; } -void frmw_to_linux(u8 *buff, uint32_t size, uint32_t pkt_offset) +void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset) { unsigned int frame_len = 0; @@ -2048,7 +2048,7 @@ void frmw_to_linux(u8 *buff, uint32_t size, uint32_t pkt_offset) #endif } -void WILC_WFI_mgmt_rx(u8 *buff, uint32_t size) +void WILC_WFI_mgmt_rx(u8 *buff, u32 size) { int i = 0; perInterface_wlan_t *nic; diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index d0802fd4d457..3e2425647018 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -38,7 +38,7 @@ #define MAX_SPEED 6000000 #endif /* WILC_ASIC_A0 */ -static uint32_t SPEED = MIN_SPEED; +static u32 SPEED = MIN_SPEED; struct spi_device *wilc_spi_dev; void linux_spi_deinit(void *vp); @@ -115,7 +115,7 @@ int linux_spi_init(void *vp) #if defined(TXRX_PHASE_SIZE) -int linux_spi_write(u8 *b, uint32_t len) +int linux_spi_write(u8 *b, u32 len) { int ret; @@ -194,7 +194,7 @@ int linux_spi_write(u8 *b, uint32_t len) } #else -int linux_spi_write(u8 *b, uint32_t len) +int linux_spi_write(u8 *b, u32 len) { int ret; diff --git a/drivers/staging/wilc1000/linux_wlan_spi.h b/drivers/staging/wilc1000/linux_wlan_spi.h index 2b52738577c9..d8eed0f52f8b 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.h +++ b/drivers/staging/wilc1000/linux_wlan_spi.h @@ -7,8 +7,8 @@ extern struct spi_driver wilc_bus; int linux_spi_init(void *vp); void linux_spi_deinit(void *vp); -int linux_spi_write(u8 *b, uint32_t len); -int linux_spi_read(u8 *rb, uint32_t rlen); +int linux_spi_write(u8 *b, u32 len); +int linux_spi_read(u8 *rb, u32 rlen); int linux_spi_write_read(unsigned char *wb, unsigned char *rb, unsigned int rlen); int linux_spi_set_max_speed(void); #endif diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index fb0b894d367b..820aac551a49 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -15,7 +15,7 @@ typedef struct { void *os_context; wilc_wlan_os_func_t os_func; - uint32_t block_size; + u32 block_size; int (*sdio_cmd52)(sdio_cmd52_t *); int (*sdio_cmd53)(sdio_cmd53_t *); int (*sdio_set_max_speed)(void); @@ -29,8 +29,8 @@ typedef struct { static wilc_sdio_t g_sdio; #ifdef WILC_SDIO_IRQ_GPIO -static int sdio_write_reg(uint32_t addr, uint32_t data); -static int sdio_read_reg(uint32_t addr, uint32_t *data); +static int sdio_write_reg(u32 addr, u32 data); +static int sdio_read_reg(u32 addr, u32 *data); #endif /******************************************** @@ -39,7 +39,7 @@ static int sdio_read_reg(uint32_t addr, uint32_t *data); * ********************************************/ -static int sdio_set_func0_csa_address(uint32_t adr) +static int sdio_set_func0_csa_address(u32 adr) { sdio_cmd52_t cmd; @@ -75,7 +75,7 @@ _fail_: return 0; } -static int sdio_set_func0_csa_address_byte0(uint32_t adr) +static int sdio_set_func0_csa_address_byte0(u32 adr) { sdio_cmd52_t cmd; @@ -97,7 +97,7 @@ _fail_: return 0; } -static int sdio_set_func0_block_size(uint32_t block_size) +static int sdio_set_func0_block_size(u32 block_size) { sdio_cmd52_t cmd; @@ -129,7 +129,7 @@ _fail_: * ********************************************/ -static int sdio_set_func1_block_size(uint32_t block_size) +static int sdio_set_func1_block_size(u32 block_size) { sdio_cmd52_t cmd; @@ -157,7 +157,7 @@ _fail_: static int sdio_clear_int(void) { #ifndef WILC_SDIO_IRQ_GPIO - /* uint32_t sts; */ + /* u32 sts; */ sdio_cmd52_t cmd; cmd.read_write = 0; @@ -169,7 +169,7 @@ static int sdio_clear_int(void) return cmd.data; #else - uint32_t reg; + u32 reg; if (!sdio_read_reg(WILC_HOST_RX_CTRL_0, ®)) { g_sdio.dPrint(N_ERR, "[wilc spi]: Failed read reg (%08x)...\n", WILC_HOST_RX_CTRL_0); @@ -182,9 +182,9 @@ static int sdio_clear_int(void) } -uint32_t sdio_xfer_cnt(void) +u32 sdio_xfer_cnt(void) { - uint32_t cnt = 0; + u32 cnt = 0; sdio_cmd52_t cmd; cmd.read_write = 0; @@ -243,7 +243,7 @@ _fail_: return 0; } -static int sdio_write_reg(uint32_t addr, uint32_t data) +static int sdio_write_reg(u32 addr, u32 data) { #ifdef BIG_ENDIAN data = BYTE_SWAP(data); @@ -292,9 +292,9 @@ _fail_: return 0; } -static int sdio_write(uint32_t addr, u8 *buf, uint32_t size) +static int sdio_write(u32 addr, u8 *buf, u32 size) { - uint32_t block_size = g_sdio.block_size; + u32 block_size = g_sdio.block_size; sdio_cmd53_t cmd; int nblk, nleft; @@ -376,7 +376,7 @@ _fail_: return 0; } -static int sdio_read_reg(uint32_t addr, uint32_t *data) +static int sdio_read_reg(u32 addr, u32 *data) { if ((addr >= 0xf0) && (addr <= 0xff)) { sdio_cmd52_t cmd; @@ -423,9 +423,9 @@ _fail_: return 0; } -static int sdio_read(uint32_t addr, u8 *buf, uint32_t size) +static int sdio_read(u32 addr, u8 *buf, u32 size) { - uint32_t block_size = g_sdio.block_size; + u32 block_size = g_sdio.block_size; sdio_cmd53_t cmd; int nblk, nleft; @@ -520,7 +520,7 @@ static int sdio_deinit(void *pv) static int sdio_sync(void) { - uint32_t reg; + u32 reg; /** * Disable power sequencer @@ -538,7 +538,7 @@ static int sdio_sync(void) #ifdef WILC_SDIO_IRQ_GPIO { - uint32_t reg; + u32 reg; int ret; /** @@ -580,7 +580,7 @@ static int sdio_init(wilc_wlan_inp_t *inp, wilc_debug_func func) { sdio_cmd52_t cmd; int loop; - uint32_t chipid; + u32 chipid; memset(&g_sdio, 0, sizeof(wilc_sdio_t)); @@ -712,10 +712,10 @@ static void sdio_set_default_speed(void) g_sdio.sdio_set_default_speed(); } -static int sdio_read_size(uint32_t *size) +static int sdio_read_size(u32 *size) { - uint32_t tmp; + u32 tmp; sdio_cmd52_t cmd; /** @@ -741,10 +741,10 @@ static int sdio_read_size(uint32_t *size) return 1; } -static int sdio_read_int(uint32_t *int_status) +static int sdio_read_int(u32 *int_status) { - uint32_t tmp; + u32 tmp; sdio_cmd52_t cmd; sdio_read_size(&tmp); @@ -784,7 +784,7 @@ static int sdio_read_int(uint32_t *int_status) } #else { - uint32_t irq_flags; + u32 irq_flags; cmd.read_write = 0; cmd.function = 0; @@ -803,16 +803,16 @@ static int sdio_read_int(uint32_t *int_status) return 1; } -static int sdio_clear_int_ext(uint32_t val) +static int sdio_clear_int_ext(u32 val) { int ret; if (g_sdio.has_thrpt_enh3) { - uint32_t reg; + u32 reg; #ifdef WILC_SDIO_IRQ_GPIO { - uint32_t flags; + u32 flags; flags = val & ((1 << MAX_NUN_INT_THRPT_ENH2) - 1); reg = flags; @@ -850,7 +850,7 @@ static int sdio_clear_int_ext(uint32_t val) { /* see below. has_thrpt_enh2 uses register 0xf8 to clear interrupts. */ /* Cannot clear multiple interrupts. Must clear each interrupt individually */ - uint32_t flags; + u32 flags; flags = val & ((1 << MAX_NUM_INT) - 1); if (flags) { @@ -890,7 +890,7 @@ static int sdio_clear_int_ext(uint32_t val) #endif /* WILC_SDIO_IRQ_GPIO */ { - uint32_t vmm_ctl; + u32 vmm_ctl; vmm_ctl = 0; /* select VMM table 0 */ @@ -927,7 +927,7 @@ _fail_: static int sdio_sync_ext(int nint /* how mant interrupts to enable. */) { - uint32_t reg; + u32 reg; if (nint > MAX_NUM_INT) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Too many interupts (%d)...\n", nint); @@ -956,7 +956,7 @@ static int sdio_sync_ext(int nint /* how mant interrupts to enable. */) #ifdef WILC_SDIO_IRQ_GPIO { - uint32_t reg; + u32 reg; int ret, i; /** diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index c31e17a25363..fd3ef97bd18a 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -16,9 +16,9 @@ */ typedef struct { void *os_context; - int (*spi_tx)(u8 *, uint32_t); - int (*spi_rx)(u8 *, uint32_t); - int (*spi_trx)(u8 *, u8 *, uint32_t); + int (*spi_tx)(u8 *, u32); + int (*spi_rx)(u8 *, u32); + int (*spi_trx)(u8 *, u8 *, u32); int (*spi_max_speed)(void); wilc_debug_func dPrint; int crc_off; @@ -28,8 +28,8 @@ typedef struct { static wilc_spi_t g_spi; -static int spi_read(uint32_t, u8 *, uint32_t); -static int spi_write(uint32_t, u8 *, uint32_t); +static int spi_read(u32, u8 *, u32); +static int spi_write(u32, u8 *, u32); /******************************************** * @@ -77,7 +77,7 @@ static u8 crc7_byte(u8 crc, u8 data) return crc7_syndrome_table[(crc << 1) ^ data]; } -static u8 crc7(u8 crc, const u8 *buffer, uint32_t len) +static u8 crc7(u8 crc, const u8 *buffer, u32 len) { while (len--) crc = crc7_byte(crc, *buffer++); @@ -114,7 +114,7 @@ static u8 crc7(u8 crc, const u8 *buffer, uint32_t len) #define DATA_PKT_SZ_8K (8 * 1024) #define DATA_PKT_SZ DATA_PKT_SZ_8K -static int spi_cmd(u8 cmd, uint32_t adr, uint32_t data, uint32_t sz, u8 clockless) +static int spi_cmd(u8 cmd, u32 adr, u32 data, u32 sz, u8 clockless) { u8 bc[9]; int len = 5; @@ -271,11 +271,11 @@ _fail_: return result; } -static int spi_cmd_complete(u8 cmd, uint32_t adr, u8 *b, uint32_t sz, u8 clockless) +static int spi_cmd_complete(u8 cmd, u32 adr, u8 *b, u32 sz, u8 clockless) { u8 wb[32], rb[32]; u8 wix, rix; - uint32_t len2; + u32 len2; u8 rsp; int len = 0; int result = N_OK; @@ -610,7 +610,7 @@ _error_: return result; } -static int spi_data_read(u8 *b, uint32_t sz) +static int spi_data_read(u8 *b, u32 sz) { int retry, ix, nbytes; int result = N_OK; @@ -678,7 +678,7 @@ static int spi_data_read(u8 *b, uint32_t sz) return result; } -static int spi_data_write(u8 *b, uint32_t sz) +static int spi_data_write(u8 *b, u32 sz) { int ix, nbytes; int result = 1; @@ -755,7 +755,7 @@ static int spi_data_write(u8 *b, uint32_t sz) * ********************************************/ -static int spi_internal_write(uint32_t adr, uint32_t dat) +static int spi_internal_write(u32 adr, u32 dat) { int result; @@ -787,7 +787,7 @@ static int spi_internal_write(uint32_t adr, uint32_t dat) return result; } -static int spi_internal_read(uint32_t adr, uint32_t *data) +static int spi_internal_read(u32 adr, u32 *data) { int result; @@ -834,7 +834,7 @@ static int spi_internal_read(uint32_t adr, uint32_t *data) * ********************************************/ -static int spi_write_reg(uint32_t addr, uint32_t data) +static int spi_write_reg(u32 addr, u32 data) { int result = N_OK; u8 cmd = CMD_SINGLE_WRITE; @@ -877,7 +877,7 @@ static int spi_write_reg(uint32_t addr, uint32_t data) } -static int spi_write(uint32_t addr, u8 *buf, uint32_t size) +static int spi_write(u32 addr, u8 *buf, u32 size) { int result; u8 cmd = CMD_DMA_EXT_WRITE; @@ -922,7 +922,7 @@ static int spi_write(uint32_t addr, u8 *buf, uint32_t size) return 1; } -static int spi_read_reg(uint32_t addr, uint32_t *data) +static int spi_read_reg(u32 addr, u32 *data) { int result = N_OK; u8 cmd = CMD_SINGLE_READ; @@ -968,7 +968,7 @@ static int spi_read_reg(uint32_t addr, uint32_t *data) return 1; } -static int spi_read(uint32_t addr, u8 *buf, uint32_t size) +static int spi_read(u32 addr, u8 *buf, u32 size) { u8 cmd = CMD_DMA_EXT_READ; int result; @@ -1020,7 +1020,7 @@ static int spi_read(uint32_t addr, u8 *buf, uint32_t size) static int spi_clear_int(void) { - uint32_t reg; + u32 reg; if (!spi_read_reg(WILC_HOST_RX_CTRL_0, ®)) { PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_HOST_RX_CTRL_0); @@ -1041,7 +1041,7 @@ static int spi_deinit(void *pv) static int spi_sync(void) { - uint32_t reg; + u32 reg; int ret; /** @@ -1079,8 +1079,8 @@ static int spi_sync(void) static int spi_init(wilc_wlan_inp_t *inp, wilc_debug_func func) { - uint32_t reg; - uint32_t chipid; + u32 reg; + u32 chipid; static int isinit; @@ -1165,7 +1165,7 @@ static void spi_default_bus_speed(void) { } -static int spi_read_size(uint32_t *size) +static int spi_read_size(u32 *size) { int ret; @@ -1173,8 +1173,8 @@ static int spi_read_size(uint32_t *size) ret = spi_internal_read(0xe840 - WILC_SPI_REG_BASE, size); *size = *size & IRQ_DMA_WD_CNT_MASK; } else { - uint32_t tmp; - uint32_t byte_cnt; + u32 tmp; + u32 byte_cnt; ret = spi_read_reg(WILC_VMM_TO_HOST_SIZE, &byte_cnt); if (!ret) { @@ -1193,15 +1193,15 @@ _fail_: -static int spi_read_int(uint32_t *int_status) +static int spi_read_int(u32 *int_status) { int ret; if (g_spi.has_thrpt_enh) { ret = spi_internal_read(0xe840 - WILC_SPI_REG_BASE, int_status); } else { - uint32_t tmp; - uint32_t byte_cnt; + u32 tmp; + u32 byte_cnt; ret = spi_read_reg(WILC_VMM_TO_HOST_SIZE, &byte_cnt); if (!ret) { @@ -1215,7 +1215,7 @@ static int spi_read_int(uint32_t *int_status) j = 0; do { - uint32_t irq_flags; + u32 irq_flags; happended = 0; @@ -1228,7 +1228,7 @@ static int spi_read_int(uint32_t *int_status) } { - uint32_t unkmown_mask; + u32 unkmown_mask; unkmown_mask = ~((1ul << g_spi.nint) - 1); @@ -1249,14 +1249,14 @@ _fail_: return ret; } -static int spi_clear_int_ext(uint32_t val) +static int spi_clear_int_ext(u32 val) { int ret; if (g_spi.has_thrpt_enh) { ret = spi_internal_write(0xe844 - WILC_SPI_REG_BASE, val); } else { - uint32_t flags; + u32 flags; flags = val & ((1 << MAX_NUM_INT) - 1); if (flags) { @@ -1283,7 +1283,7 @@ static int spi_clear_int_ext(uint32_t val) } { - uint32_t tbl_ctl; + u32 tbl_ctl; tbl_ctl = 0; /* select VMM table 0 */ @@ -1317,7 +1317,7 @@ _fail_: static int spi_sync_ext(int nint /* how mant interrupts to enable. */) { - uint32_t reg; + u32 reg; int ret, i; if (nint > MAX_NUM_INT) { diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 4126acd86722..2671cdf70d5e 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -162,7 +162,7 @@ void clear_shadow_scan(void *pUserVoid) } -uint32_t get_rssi_avg(tstrNetworkInfo *pstrNetworkInfo) +u32 get_rssi_avg(tstrNetworkInfo *pstrNetworkInfo) { u8 i; int rssi_v = 0; @@ -301,7 +301,7 @@ int8_t is_network_in_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid) void add_network_to_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, void *pJoinParams) { int8_t ap_found = is_network_in_shadow(pstrNetworkInfo, pUserVoid); - uint32_t ap_index = 0; + u32 ap_index = 0; u8 rssi_index = 0; if (u32LastScannedNtwrksCountShadow >= MAX_NUM_SCANNED_NETWORKS_SHADOW) { @@ -2198,7 +2198,7 @@ void WILC_WFI_CfgParseTxAction(u8 *buf, u32 len, bool bOperChan, u8 iftype) * @version 1.0 */ -void WILC_WFI_p2p_rx (struct net_device *dev, u8 *buff, uint32_t size) +void WILC_WFI_p2p_rx (struct net_device *dev, u8 *buff, u32 size) { struct wilc_priv *priv; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index eb160d5ebb48..51f9413ec803 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -111,7 +111,7 @@ void WILC_WFI_WiphyFree(struct net_device *net); int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed); int WILC_WFI_DeInitHostInt(struct net_device *net); int WILC_WFI_InitHostInt(struct net_device *net); -void WILC_WFI_monitor_rx(u8 *buff, uint32_t size); +void WILC_WFI_monitor_rx(u8 *buff, u32 size); int WILC_WFI_deinit_mon_interface(void); struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev); diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index c76134af05f5..7496c1face33 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -19,8 +19,8 @@ extern wilc_hif_func_t hif_sdio; extern wilc_hif_func_t hif_spi; extern wilc_cfg_func_t mac_cfg; -extern void WILC_WFI_mgmt_rx(u8 *buff, uint32_t size); -uint32_t wilc_get_chipid(u8 update); +extern void WILC_WFI_mgmt_rx(u8 *buff, u32 size); +u32 wilc_get_chipid(u8 update); u16 Set_machw_change_vir_if(bool bValue); @@ -48,7 +48,7 @@ typedef struct { wilc_cfg_func_t cif_func; int cfg_frame_in_use; wilc_cfg_frame_t cfg_frame; - uint32_t cfg_frame_offset; + u32 cfg_frame_offset; int cfg_seq_no; void *cfg_wait; @@ -56,16 +56,16 @@ typedef struct { * RX buffer **/ #ifdef MEMORY_STATIC - uint32_t rx_buffer_size; + u32 rx_buffer_size; u8 *rx_buffer; - uint32_t rx_buffer_offset; + u32 rx_buffer_offset; #endif /** * TX buffer **/ - uint32_t tx_buffer_size; + u32 tx_buffer_size; u8 *tx_buffer; - uint32_t tx_buffer_offset; + u32 tx_buffer_offset; /** * TX queue @@ -106,9 +106,9 @@ INLINE void chip_wakeup(void); * ********************************************/ -static uint32_t dbgflag = N_INIT | N_ERR | N_INTR | N_TXQ | N_RXQ; +static u32 dbgflag = N_INIT | N_ERR | N_INTR | N_TXQ | N_RXQ; -static void wilc_debug(uint32_t flag, char *fmt, ...) +static void wilc_debug(u32 flag, char *fmt, ...) { char buf[256]; va_list args; @@ -278,21 +278,21 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) } -uint32_t Statisitcs_totalAcks = 0, Statisitcs_DroppedAcks = 0; +u32 Statisitcs_totalAcks = 0, Statisitcs_DroppedAcks = 0; #ifdef TCP_ACK_FILTER struct Ack_session_info; struct Ack_session_info { - uint32_t Ack_seq_num; - uint32_t Bigger_Ack_num; + u32 Ack_seq_num; + u32 Bigger_Ack_num; u16 src_port; u16 dst_port; u16 status; }; typedef struct { - uint32_t ack_num; - uint32_t Session_index; + u32 ack_num; + u32 Session_index; struct txq_entry_t *txqe; } Pending_Acks_info_t /*Ack_info_t*/; @@ -312,9 +312,9 @@ struct Ack_session_info *Alloc_head; struct Ack_session_info Acks_keep_track_info[2 * MAX_TCP_SESSION]; Pending_Acks_info_t Pending_Acks_info[MAX_PENDING_ACKS]; -uint32_t PendingAcks_arrBase; -uint32_t Opened_TCP_session; -uint32_t Pending_Acks; +u32 PendingAcks_arrBase; +u32 Opened_TCP_session; +u32 Pending_Acks; @@ -324,7 +324,7 @@ static __inline int Init_TCP_tracking(void) return 0; } -static __inline int add_TCP_track_session(uint32_t src_prt, uint32_t dst_prt, uint32_t seq) +static __inline int add_TCP_track_session(u32 src_prt, u32 dst_prt, u32 seq) { Acks_keep_track_info[Opened_TCP_session].Ack_seq_num = seq; Acks_keep_track_info[Opened_TCP_session].Bigger_Ack_num = 0; @@ -336,7 +336,7 @@ static __inline int add_TCP_track_session(uint32_t src_prt, uint32_t dst_prt, ui return 0; } -static __inline int Update_TCP_track_session(uint32_t index, uint32_t Ack) +static __inline int Update_TCP_track_session(u32 index, u32 Ack) { if (Ack > Acks_keep_track_info[index].Bigger_Ack_num) { @@ -345,7 +345,7 @@ static __inline int Update_TCP_track_session(uint32_t index, uint32_t Ack) return 0; } -static __inline int add_TCP_Pending_Ack(uint32_t Ack, uint32_t Session_index, struct txq_entry_t *txqe) +static __inline int add_TCP_Pending_Ack(u32 Ack, u32 Session_index, struct txq_entry_t *txqe) { Statisitcs_totalAcks++; if (Pending_Acks < MAX_PENDING_ACKS) { @@ -395,18 +395,18 @@ static __inline int tcp_process(struct txq_entry_t *tqe) if (protocol == 0x06) { u8 *tcp_hdr_ptr; - uint32_t IHL, Total_Length, Data_offset; + u32 IHL, Total_Length, Data_offset; tcp_hdr_ptr = &ip_hdr_ptr[IP_HDR_LEN]; IHL = (ip_hdr_ptr[0] & 0xf) << 2; - Total_Length = (((uint32_t)ip_hdr_ptr[2]) << 8) + ((uint32_t)ip_hdr_ptr[3]); - Data_offset = (((uint32_t)tcp_hdr_ptr[12] & 0xf0) >> 2); + Total_Length = (((u32)ip_hdr_ptr[2]) << 8) + ((u32)ip_hdr_ptr[3]); + Data_offset = (((u32)tcp_hdr_ptr[12] & 0xf0) >> 2); if (Total_Length == (IHL + Data_offset)) { /*we want to recognize the clear Acks(packet only carry Ack infos not with data) so data size must be equal zero*/ - uint32_t seq_no, Ack_no; + u32 seq_no, Ack_no; - seq_no = (((uint32_t)tcp_hdr_ptr[4]) << 24) + (((uint32_t)tcp_hdr_ptr[5]) << 16) + (((uint32_t)tcp_hdr_ptr[6]) << 8) + ((uint32_t)tcp_hdr_ptr[7]); + seq_no = (((u32)tcp_hdr_ptr[4]) << 24) + (((u32)tcp_hdr_ptr[5]) << 16) + (((u32)tcp_hdr_ptr[6]) << 8) + ((u32)tcp_hdr_ptr[7]); - Ack_no = (((uint32_t)tcp_hdr_ptr[8]) << 24) + (((uint32_t)tcp_hdr_ptr[9]) << 16) + (((uint32_t)tcp_hdr_ptr[10]) << 8) + ((uint32_t)tcp_hdr_ptr[11]); + Ack_no = (((u32)tcp_hdr_ptr[8]) << 24) + (((u32)tcp_hdr_ptr[9]) << 16) + (((u32)tcp_hdr_ptr[10]) << 8) + ((u32)tcp_hdr_ptr[11]); for (i = 0; i < Opened_TCP_session; i++) { @@ -437,8 +437,8 @@ static __inline int tcp_process(struct txq_entry_t *tqe) static int wilc_wlan_txq_filter_dup_tcp_ack(void) { - uint32_t i = 0; - uint32_t Dropped = 0; + u32 i = 0; + u32 Dropped = 0; wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; spin_lock_irqsave(p->txq_spinlock, p->txq_spinlock_flags); @@ -494,7 +494,7 @@ bool is_TCP_ACK_Filter_Enabled(void) } #endif -static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, uint32_t buffer_size) +static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, u32 buffer_size) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; struct txq_entry_t *tqe; @@ -531,7 +531,7 @@ static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, uint32_t buffer_size) return 1; } -static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, uint32_t buffer_size, wilc_tx_complete_func_t func) +static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; struct txq_entry_t *tqe; @@ -563,7 +563,7 @@ static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, uint32_t buffer_siz } /*Bug3959: transmitting mgmt frames received from host*/ #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) -int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, uint32_t buffer_size, wilc_tx_complete_func_t func) +int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; @@ -680,7 +680,7 @@ static struct rxq_entry_t *wilc_wlan_rxq_remove(void) INLINE void chip_allow_sleep(void) { - uint32_t reg = 0; + u32 reg = 0; /* Clear bit 1 */ g_wlan.hif_func.hif_read_reg(0xf0, ®); @@ -690,8 +690,8 @@ INLINE void chip_allow_sleep(void) INLINE void chip_wakeup(void) { - uint32_t reg, clk_status_reg, trials = 0; - uint32_t sleep_time; + u32 reg, clk_status_reg, trials = 0; + u32 sleep_time; if ((g_wlan.io_func.io_type & 0x1) == HIF_SPI) { do { @@ -753,7 +753,7 @@ INLINE void chip_wakeup(void) if (wilc_get_chipid(false) >= 0x1002b0) { /* Enable PALDO back right after wakeup */ - uint32_t val32; + u32 val32; g_wlan.hif_func.hif_read_reg(0x1e1c, &val32); val32 |= (1 << 6); @@ -769,7 +769,7 @@ INLINE void chip_wakeup(void) #else INLINE void chip_wakeup(void) { - uint32_t reg, trials = 0; + u32 reg, trials = 0; do { if ((g_wlan.io_func.io_type & 0x1) == HIF_SPI) { @@ -810,7 +810,7 @@ INLINE void chip_wakeup(void) if (wilc_get_chipid(false) >= 0x1002b0) { /* Enable PALDO back right after wakeup */ - uint32_t val32; + u32 val32; g_wlan.hif_func.hif_read_reg(0x1e1c, &val32); val32 |= (1 << 6); @@ -850,20 +850,20 @@ void chip_sleep_manually(u32 u32SleepTime) * Tx, Rx queue handle functions * ********************************************/ -static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) +static int wilc_wlan_handle_txq(u32 *pu32TxqCount) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; int i, entries = 0; - uint32_t sum; - uint32_t reg; + u32 sum; + u32 reg; u8 *txb = p->tx_buffer; - uint32_t offset = 0; + u32 offset = 0; int vmm_sz = 0; struct txq_entry_t *tqe; int ret = 0; int counter; int timeout; - uint32_t vmm_table[WILC_VMM_TBL_SIZE]; + u32 vmm_table[WILC_VMM_TBL_SIZE]; p->txq_exit = 0; do { @@ -1071,7 +1071,7 @@ static int wilc_wlan_handle_txq(uint32_t *pu32TxqCount) do { tqe = wilc_wlan_txq_remove_from_head(); if (tqe != NULL && (vmm_table[i] != 0)) { - uint32_t header, buffer_offset; + u32 header, buffer_offset; #ifdef BIG_ENDIAN vmm_table[i] = BYTE_SWAP(vmm_table[i]); @@ -1193,8 +1193,8 @@ static void wilc_wlan_handle_rxq(void) do { - uint32_t header; - uint32_t pkt_len, pkt_offset, tp_len; + u32 header; + u32 pkt_len, pkt_offset, tp_len; int is_cfg_packet; PRINT_D(RX_DBG, "In the 2nd do-while\n"); @@ -1300,7 +1300,7 @@ static void wilc_unknown_isr_ext(void) { g_wlan.hif_func.hif_clear_int_ext(0); } -static void wilc_pllupdate_isr_ext(uint32_t int_stats) +static void wilc_pllupdate_isr_ext(u32 int_stats) { int trials = 10; @@ -1317,7 +1317,7 @@ static void wilc_pllupdate_isr_ext(uint32_t int_stats) } } -static void wilc_sleeptimer_isr_ext(uint32_t int_stats1) +static void wilc_sleeptimer_isr_ext(u32 int_stats1) { g_wlan.hif_func.hif_clear_int_ext(SLEEP_INT_CLR); #ifndef WILC_OPTIMIZE_SLEEP_INT @@ -1325,15 +1325,15 @@ static void wilc_sleeptimer_isr_ext(uint32_t int_stats1) #endif } -static void wilc_wlan_handle_isr_ext(uint32_t int_status) +static void wilc_wlan_handle_isr_ext(u32 int_status) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; #ifdef MEMORY_STATIC - uint32_t offset = p->rx_buffer_offset; + u32 offset = p->rx_buffer_offset; #endif u8 *buffer = NULL; - uint32_t size; - uint32_t retries = 0; + u32 size; + u32 retries = 0; int ret = 0; struct rxq_entry_t *rqe; @@ -1345,7 +1345,7 @@ static void wilc_wlan_handle_isr_ext(uint32_t int_status) size = ((int_status & 0x7fff) << 2); while (!size && retries < 10) { - uint32_t time = 0; + u32 time = 0; /*looping more secure*/ /*zero size make a crashe because the dma will not happen and that will block the firmware*/ wilc_debug(N_ERR, "RX Size equal zero ... Trying to read it again for %d time\n", time++); @@ -1423,7 +1423,7 @@ _end_: void wilc_handle_isr(void) { - uint32_t int_status; + u32 int_status; acquire_bus(ACQUIRE_AND_WAKEUP); g_wlan.hif_func.hif_read_int(&int_status); @@ -1459,11 +1459,11 @@ void wilc_handle_isr(void) * Firmware download * ********************************************/ -static int wilc_wlan_firmware_download(const u8 *buffer, uint32_t buffer_size) +static int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - uint32_t offset; - uint32_t addr, size, size2, blksz; + u32 offset; + u32 addr, size, size2, blksz; u8 *dma_buffer; int ret = 0; @@ -1535,9 +1535,9 @@ _fail_1: static int wilc_wlan_start(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - uint32_t reg = 0; + u32 reg = 0; int ret; - uint32_t chipid; + u32 chipid; /** * Set the host interface @@ -1665,7 +1665,7 @@ void wilc_wlan_global_reset(void) static int wilc_wlan_stop(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - uint32_t reg = 0; + u32 reg = 0; int ret; u8 timeout = 10; /** @@ -1742,7 +1742,7 @@ static void wilc_wlan_cleanup(void) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; struct txq_entry_t *tqe; struct rxq_entry_t *rqe; - uint32_t reg = 0; + u32 reg = 0; int ret; p->quit = 1; @@ -1797,7 +1797,7 @@ static void wilc_wlan_cleanup(void) } -static int wilc_wlan_cfg_commit(int type, uint32_t drvHandler) +static int wilc_wlan_cfg_commit(int type, u32 drvHandler) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; wilc_cfg_frame_t *cfg = &p->cfg_frame; @@ -1834,10 +1834,10 @@ static int wilc_wlan_cfg_commit(int type, uint32_t drvHandler) return 0; } -static int wilc_wlan_cfg_set(int start, uint32_t wid, u8 *buffer, uint32_t buffer_size, int commit, uint32_t drvHandler) +static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, int commit, u32 drvHandler) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - uint32_t offset; + u32 offset; int ret_size; @@ -1873,10 +1873,10 @@ static int wilc_wlan_cfg_set(int start, uint32_t wid, u8 *buffer, uint32_t buffe return ret_size; } -static int wilc_wlan_cfg_get(int start, uint32_t wid, int commit, uint32_t drvHandler) +static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - uint32_t offset; + u32 offset; int ret_size; @@ -1912,7 +1912,7 @@ static int wilc_wlan_cfg_get(int start, uint32_t wid, int commit, uint32_t drvHa return ret_size; } -static int wilc_wlan_cfg_get_val(uint32_t wid, u8 *buffer, uint32_t buffer_size) +static int wilc_wlan_cfg_get_val(u32 wid, u8 *buffer, u32 buffer_size) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; int ret; @@ -1935,10 +1935,10 @@ void wilc_bus_set_default_speed(void) /* Restore bus speed to default. */ g_wlan.hif_func.hif_set_default_bus_speed(); } -uint32_t init_chip(void) +u32 init_chip(void) { - uint32_t chipid; - uint32_t reg, ret = 0; + u32 chipid; + u32 reg, ret = 0; acquire_bus(ACQUIRE_ONLY); @@ -1980,13 +1980,13 @@ uint32_t init_chip(void) } -uint32_t wilc_get_chipid(u8 update) +u32 wilc_get_chipid(u8 update) { - static uint32_t chipid; + static u32 chipid; /* SDIO can't read into global variables */ /* Use this variable as a temp, then copy to the global */ - uint32_t tempchipid = 0; - uint32_t rfrevid; + u32 tempchipid = 0; + u32 rfrevid; if (chipid == 0 || update != 0) { g_wlan.hif_func.hif_read_reg(0x1000, &tempchipid); @@ -2019,7 +2019,7 @@ _fail_: #ifdef COMPLEMENT_BOOT u8 core_11b_ready(void) { - uint32_t reg_val; + u32 reg_val; acquire_bus(ACQUIRE_ONLY); g_wlan.hif_func.hif_write_reg(0x16082c, 1); diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 0f26c13db0d7..18bc11c3d4f0 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -227,7 +227,7 @@ * Debug Type * ********************************************/ -typedef void (*wilc_debug_func)(uint32_t, char *, ...); +typedef void (*wilc_debug_func)(u32, char *, ...); /******************************************** * @@ -262,17 +262,17 @@ struct rxq_entry_t { typedef struct { int (*hif_init)(wilc_wlan_inp_t *, wilc_debug_func); int (*hif_deinit)(void *); - int (*hif_read_reg)(uint32_t, uint32_t *); - int (*hif_write_reg)(uint32_t, uint32_t); - int (*hif_block_rx)(uint32_t, u8 *, uint32_t); - int (*hif_block_tx)(uint32_t, u8 *, uint32_t); + int (*hif_read_reg)(u32, u32 *); + int (*hif_write_reg)(u32, u32); + int (*hif_block_rx)(u32, u8 *, u32); + int (*hif_block_tx)(u32, u8 *, u32); int (*hif_sync)(void); int (*hif_clear_int)(void); - int (*hif_read_int)(uint32_t *); - int (*hif_clear_int_ext)(uint32_t); - int (*hif_read_size)(uint32_t *); - int (*hif_block_tx_ext)(uint32_t, u8 *, uint32_t); - int (*hif_block_rx_ext)(uint32_t, u8 *, uint32_t); + int (*hif_read_int)(u32 *); + int (*hif_clear_int_ext)(u32); + int (*hif_read_size)(u32 *); + int (*hif_block_tx_ext)(u32, u8 *, u32); + int (*hif_block_rx_ext)(u32, u8 *, u32); int (*hif_sync_ext)(int); void (*hif_set_max_bus_speed)(void); void (*hif_set_default_bus_speed)(void); @@ -295,18 +295,18 @@ typedef struct { } wilc_cfg_frame_t; typedef struct { - int (*wlan_tx)(u8 *, uint32_t, wilc_tx_complete_func_t); + int (*wlan_tx)(u8 *, u32, wilc_tx_complete_func_t); } wilc_wlan_cfg_func_t; typedef struct { int type; - uint32_t seq_no; + u32 seq_no; } wilc_cfg_rsp_t; typedef struct { - int (*cfg_wid_set)(u8 *, uint32_t, u16, u8 *, int); - int (*cfg_wid_get)(u8 *, uint32_t, u16); - int (*cfg_wid_get_val)(u16, u8 *, uint32_t); + int (*cfg_wid_set)(u8 *, u32, u16, u8 *, int); + int (*cfg_wid_get)(u8 *, u32, u16); + int (*cfg_wid_get_val)(u16, u8 *, u32); int (*rx_indicate)(u8 *, int, wilc_cfg_rsp_t *); int (*cfg_init)(wilc_debug_func); } wilc_cfg_func_t; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index f5bbbe86a039..473d7568cdbd 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -160,7 +160,7 @@ static wilc_cfg_str_t g_cfg_str[] = { * ********************************************/ -static int wilc_wlan_cfg_set_byte(u8 *frame, uint32_t offset, u16 id, u8 val8) +static int wilc_wlan_cfg_set_byte(u8 *frame, u32 offset, u16 id, u8 val8) { u8 *buf; @@ -176,7 +176,7 @@ static int wilc_wlan_cfg_set_byte(u8 *frame, uint32_t offset, u16 id, u8 val8) return 4; } -static int wilc_wlan_cfg_set_hword(u8 *frame, uint32_t offset, u16 id, u16 val16) +static int wilc_wlan_cfg_set_hword(u8 *frame, u32 offset, u16 id, u16 val16) { u8 *buf; @@ -194,7 +194,7 @@ static int wilc_wlan_cfg_set_hword(u8 *frame, uint32_t offset, u16 id, u16 val16 return 5; } -static int wilc_wlan_cfg_set_word(u8 *frame, uint32_t offset, u16 id, uint32_t val32) +static int wilc_wlan_cfg_set_word(u8 *frame, u32 offset, u16 id, u32 val32) { u8 *buf; @@ -214,7 +214,7 @@ static int wilc_wlan_cfg_set_word(u8 *frame, uint32_t offset, u16 id, uint32_t v return 7; } -static int wilc_wlan_cfg_set_str(u8 *frame, uint32_t offset, u16 id, u8 *str, uint32_t size) +static int wilc_wlan_cfg_set_str(u8 *frame, u32 offset, u16 id, u8 *str, u32 size) { u8 *buf; @@ -233,10 +233,10 @@ static int wilc_wlan_cfg_set_str(u8 *frame, uint32_t offset, u16 id, u8 *str, ui return (size + 3); } -static int wilc_wlan_cfg_set_bin(u8 *frame, uint32_t offset, u16 id, u8 *b, uint32_t size) +static int wilc_wlan_cfg_set_bin(u8 *frame, u32 offset, u16 id, u8 *b, u32 size) { u8 *buf; - uint32_t i; + u32 i; u8 checksum = 0; if ((offset + size + 5) >= MAX_CFG_FRAME_SIZE) @@ -268,7 +268,7 @@ static int wilc_wlan_cfg_set_bin(u8 *frame, uint32_t offset, u16 id, u8 *b, uint static void wilc_wlan_parse_response_frame(u8 *info, int size) { - uint32_t wid, len = 0, i = 0; + u32 wid, len = 0, i = 0; static int seq; while (size > 0) { @@ -364,7 +364,7 @@ static void wilc_wlan_parse_response_frame(u8 *info, int size) static int wilc_wlan_parse_info_frame(u8 *info, int size) { wilc_mac_cfg_t *pd = (wilc_mac_cfg_t *)&g_mac; - uint32_t wid, len; + u32 wid, len; int type = WILC_CFG_RSP_STATUS; wid = info[0] | (info[1] << 8); @@ -385,7 +385,7 @@ static int wilc_wlan_parse_info_frame(u8 *info, int size) * ********************************************/ -static int wilc_wlan_cfg_set_wid(u8 *frame, uint32_t offset, u16 id, u8 *buf, int size) +static int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size) { u8 type = (id >> 12) & 0xf; int ret = 0; @@ -398,7 +398,7 @@ static int wilc_wlan_cfg_set_wid(u8 *frame, uint32_t offset, u16 id, u8 *buf, in ret = wilc_wlan_cfg_set_hword(frame, offset, id, *((u16 *)buf)); } else if (type == 2) { /* word command */ if (size >= 4) - ret = wilc_wlan_cfg_set_word(frame, offset, id, *((uint32_t *)buf)); + ret = wilc_wlan_cfg_set_word(frame, offset, id, *((u32 *)buf)); } else if (type == 3) { /* string command */ ret = wilc_wlan_cfg_set_str(frame, offset, id, buf, size); } else if (type == 4) { /* binary command */ @@ -410,7 +410,7 @@ static int wilc_wlan_cfg_set_wid(u8 *frame, uint32_t offset, u16 id, u8 *buf, in return ret; } -static int wilc_wlan_cfg_get_wid(u8 *frame, uint32_t offset, u16 id) +static int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id) { u8 *buf; @@ -425,13 +425,13 @@ static int wilc_wlan_cfg_get_wid(u8 *frame, uint32_t offset, u16 id) return 2; } -static int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, uint32_t buffer_size) +static int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, u32 buffer_size) { - uint32_t type = (wid >> 12) & 0xf; + u32 type = (wid >> 12) & 0xf; int i, ret = 0; if (wid == WID_STATUS) { - *((uint32_t *)buffer) = g_mac.mac_status; + *((u32 *)buffer) = g_mac.mac_status; return 4; } @@ -478,7 +478,7 @@ static int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, uint32_t buffer_size break; if (g_cfg_str[i].id == wid) { - uint32_t size = g_cfg_str[i].str[0]; + u32 size = g_cfg_str[i].str[0]; if (buffer_size >= size) { if (g_cfg_str[i].id == WID_SITE_SURVEY_RESULTS) { diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.h b/drivers/staging/wilc1000/wilc_wlan_cfg.h index 5af06179c2e6..ef8835804afb 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.h +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.h @@ -21,12 +21,12 @@ typedef struct { } wilc_cfg_hword_t; typedef struct { - uint32_t id; - uint32_t val; + u32 id; + u32 val; } wilc_cfg_word_t; typedef struct { - uint32_t id; + u32 id; u8 *str; } wilc_cfg_str_t; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index a29d48624115..b64f93a3684a 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -62,24 +62,24 @@ ********************************************/ typedef struct { - uint32_t read_write: 1; - uint32_t function: 3; - uint32_t raw: 1; - uint32_t address: 17; - uint32_t data: 8; + u32 read_write: 1; + u32 function: 3; + u32 raw: 1; + u32 address: 17; + u32 data: 8; } sdio_cmd52_t; typedef struct { /* struct { */ - uint32_t read_write: 1; - uint32_t function: 3; - uint32_t block_mode: 1; - uint32_t increment: 1; - uint32_t address: 17; - uint32_t count: 9; + u32 read_write: 1; + u32 function: 3; + u32 block_mode: 1; + u32 increment: 1; + u32 address: 17; + u32 count: 9; /* } bit; */ u8 *buffer; - uint32_t block_size; + u32 block_size; } sdio_cmd53_t; typedef struct { @@ -100,15 +100,15 @@ typedef struct { } sdio; struct { int (*spi_max_speed)(void); - int (*spi_tx)(u8 *, uint32_t); - int (*spi_rx)(u8 *, uint32_t); - int (*spi_trx)(u8 *, u8 *, uint32_t); + int (*spi_tx)(u8 *, u32); + int (*spi_rx)(u8 *, u32); + int (*spi_trx)(u8 *, u8 *, u32); } spi; } u; } wilc_wlan_io_func_t; typedef struct { - void (*rx_indicate)(u8 *, uint32_t, uint32_t); + void (*rx_indicate)(u8 *, u32, u32); void (*rx_complete)(void); } wilc_wlan_net_func_t; @@ -127,7 +127,7 @@ typedef struct { struct mutex *hif_critical_section; - uint32_t tx_buffer_size; + u32 tx_buffer_size; void *txq_critical_section; /*Added by Amr - BugID_4720*/ @@ -137,7 +137,7 @@ typedef struct { void *txq_wait_event; #if defined(MEMORY_STATIC) - uint32_t rx_buffer_size; + u32 rx_buffer_size; #endif void *rxq_critical_section; void *rxq_wait_event; @@ -166,20 +166,20 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_firmware_download)(const u8 *, uint32_t); + int (*wlan_firmware_download)(const u8 *, u32); int (*wlan_start)(void); int (*wlan_stop)(void); - int (*wlan_add_to_tx_que)(void *, u8 *, uint32_t, wilc_tx_complete_func_t); - int (*wlan_handle_tx_que)(uint32_t *); + int (*wlan_add_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); + int (*wlan_handle_tx_que)(u32 *); void (*wlan_handle_rx_que)(void); void (*wlan_handle_rx_isr)(void); void (*wlan_cleanup)(void); - int (*wlan_cfg_set)(int, uint32_t, u8 *, uint32_t, int, uint32_t); - int (*wlan_cfg_get)(int, uint32_t, int, uint32_t); - int (*wlan_cfg_get_value)(uint32_t, u8 *, uint32_t); + int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32); + int (*wlan_cfg_get)(int, u32, int, u32); + int (*wlan_cfg_get_value)(u32, u8 *, u32); /*Bug3959: transmitting mgmt frames received from host*/ #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) - int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, uint32_t, wilc_tx_complete_func_t); + int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); #endif } wilc_wlan_oup_t; @@ -939,7 +939,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup); void wilc_bus_set_max_speed(void); void wilc_bus_set_default_speed(void); -uint32_t wilc_get_chipid(u8 update); +u32 wilc_get_chipid(u8 update); #endif From 766cecaffdcc424868cc136a8f2c139b41bcadfd Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:17 +0900 Subject: [PATCH 0419/2431] staging: wilc1000: remove commented codes This patch removes commented codes. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 13 ----- drivers/staging/wilc1000/linux_mon.c | 59 ----------------------- drivers/staging/wilc1000/wilc_sdio.c | 2 - drivers/staging/wilc1000/wilc_spi.c | 4 -- 4 files changed, 78 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index a107377ff6ec..dfc210a1b08a 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -65,14 +65,6 @@ #define WILC_ADD_STA_LENGTH 40 /* Not including the rates field cause it has variable length*/ #define SCAN_EVENT_DONE_ABORTED #define NUM_CONCURRENT_IFC 2 -/*****************************************************************************/ -/* Data Types */ -/*****************************************************************************/ -/* typedef unsigned char uint8; */ -/* typedef signed char int8; */ -/* typedef unsigned short uint16; */ -/* typedef unsigned long uint32; */ -/* typedef uint32 Bool; */ typedef struct { u16 cfg_wid; @@ -192,7 +184,6 @@ typedef enum { typedef enum { WEP, WPARxGtk, - /* WPATxGtk, */ WPAPtk, PMKSA, } tenuKeyType; @@ -350,8 +341,6 @@ typedef struct { tenuHostIFstate enuHostIFstate; - /* bool bPendingConnRequest; */ - #ifndef CONNECT_DIRECT u32 u32SurveyResultsCount; wid_site_survey_reslts_s astrSurveyResults[MAX_NUM_SCANNED_NETWORKS]; @@ -414,8 +403,6 @@ typedef struct { u16 u16FlagsSet; /*dev->ieee80211_ptr->wiphy); */ - /* Bug 4601 */ if (wilc_wfi_mon == NULL) return; @@ -124,30 +118,19 @@ void WILC_WFI_monitor_rx(u8 *buff, u32 size) return; } - /* skb = skb_copy_expand(tx_skb, sizeof(*hdr), 0, GFP_ATOMIC); */ - /* if (skb == NULL) */ - /* return; */ - memcpy(skb_put(skb, size), buff, size); hdr = (struct wilc_wfi_radiotap_hdr *) skb_push(skb, sizeof(*hdr)); memset(hdr, 0, sizeof(struct wilc_wfi_radiotap_hdr)); hdr->hdr.it_version = 0; /* PKTHDR_RADIOTAP_VERSION; */ - /* hdr->hdr.it_pad = 0; */ hdr->hdr.it_len = cpu_to_le16(sizeof(struct wilc_wfi_radiotap_hdr)); PRINT_INFO(HOSTAPD_DBG, "Radiotap len %d\n", hdr->hdr.it_len); hdr->hdr.it_present = cpu_to_le32 (1 << IEEE80211_RADIOTAP_RATE); /* | */ - /* (1 << IEEE80211_RADIOTAP_CHANNEL)); */ PRINT_INFO(HOSTAPD_DBG, "Presentflags %d\n", hdr->hdr.it_present); hdr->rate = 5; /* txrate->bitrate / 5; */ } -/* if(INFO || if(skb->data[9] == 0x00 || skb->data[9] == 0xb0)) - * { - * for(i=0;ilen;i++) - * PRINT_INFO(HOSTAPD_DBG,"Mon RxData[%d] = %02x\n",i,skb->data[i]); - * }*/ skb->dev = wilc_wfi_mon; @@ -170,9 +153,6 @@ struct tx_complete_mon_data { static void mgmt_tx_complete(void *priv, int status) { - /* struct sk_buff *skb2; */ - /* struct wilc_wfi_radiotap_cb_hdr *cb_hdr; */ - struct tx_complete_mon_data *pv_data = (struct tx_complete_mon_data *)priv; u8 *buf = pv_data->buff; @@ -186,35 +166,6 @@ static void mgmt_tx_complete(void *priv, int status) } -/* //(skb->data[9] == 0x00 || skb->data[9] == 0xb0 || skb->data[9] == 0x40 || skb->data[9] == 0xd0 ) - * { - * skb2 = dev_alloc_skb(pv_data->size+sizeof(struct wilc_wfi_radiotap_cb_hdr)); - * - * memcpy(skb_put(skb2,pv_data->size),pv_data->buff, pv_data->size); - * - * cb_hdr = (struct wilc_wfi_radiotap_cb_hdr *) skb_push(skb2, sizeof(*cb_hdr)); - * memset(cb_hdr, 0, sizeof(struct wilc_wfi_radiotap_cb_hdr)); - * - * cb_hdr->hdr.it_version = 0;//PKTHDR_RADIOTAP_VERSION; - * - * cb_hdr->hdr.it_len = cpu_to_le16(sizeof(struct wilc_wfi_radiotap_cb_hdr)); - * - * cb_hdr->hdr.it_present = cpu_to_le32( - * (1 << IEEE80211_RADIOTAP_RATE) | - * (1 << IEEE80211_RADIOTAP_TX_FLAGS)); - * - * cb_hdr->rate = 5;//txrate->bitrate / 5; - * cb_hdr->tx_flags = 0x0004; - * - * skb2->dev = wilc_wfi_mon; - * skb_set_mac_header(skb2, 0); - * skb2->ip_summed = CHECKSUM_UNNECESSARY; - * skb2->pkt_type = PACKET_OTHERHOST; - * skb2->protocol = htons(ETH_P_802_2); - * memset(skb2->cb, 0, sizeof(skb2->cb)); - * - * netif_rx(skb2); - * }*/ /* incase of fully hosting mode, the freeing will be done in response to the cfg packet */ kfree(pv_data->buff); @@ -276,8 +227,6 @@ static netdev_tx_t WILC_WFI_mon_xmit(struct sk_buff *skb, if (wilc_wfi_mon == NULL) return WILC_FAIL; - /* if(skb->data[3] == 0x10 || skb->data[3] == 0xb0) */ - mon_priv = netdev_priv(wilc_wfi_mon); if (mon_priv == NULL) { @@ -355,7 +304,6 @@ static netdev_tx_t WILC_WFI_mon_xmit(struct sk_buff *skb, } else ret = mac_xmit(skb, mon_priv->real_ndev); - /* return NETDEV_TX_OK; */ return ret; } @@ -377,7 +325,6 @@ static void WILC_WFI_mon_setup(struct net_device *dev) { dev->netdev_ops = &wilc_wfi_netdev_ops; - /* dev->destructor = free_netdev; */ PRINT_INFO(CORECONFIG_DBG, "In Ethernet setup function\n"); ether_setup(dev); dev->priv_flags |= IFF_NO_QUEUE; @@ -385,12 +332,7 @@ static void WILC_WFI_mon_setup(struct net_device *dev) eth_zero_addr(dev->dev_addr); { - /* u8 * mac_add; */ unsigned char mac_add[] = {0x00, 0x50, 0xc2, 0x5e, 0x10, 0x8f}; - /* priv = wiphy_priv(priv->dev->ieee80211_ptr->wiphy); */ - /* mac_add = (u8*)WILC_MALLOC(ETH_ALEN); */ - /* status = host_int_get_MacAddress(priv->hWILCWFIDrv,mac_add); */ - /* mac_add[ETH_ALEN-1]+=1; */ memcpy(dev->dev_addr, mac_add, ETH_ALEN); } @@ -467,7 +409,6 @@ int WILC_WFI_deinit_mon_interface(void) } PRINT_D(HOSTAPD_DBG, "Unregister netdev\n"); unregister_netdev(wilc_wfi_mon); - /* free_netdev(wilc_wfi_mon); */ if (rollback_lock) { rtnl_lock(); diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index 820aac551a49..48834c6846c8 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -753,9 +753,7 @@ static int sdio_read_int(u32 *int_status) * Read IRQ flags **/ #ifndef WILC_SDIO_IRQ_GPIO - /* cmd.read_write = 0; */ cmd.function = 1; - /* cmd.raw = 0; */ cmd.address = 0x04; cmd.data = 0; g_sdio.sdio_cmd52(&cmd); diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index fd3ef97bd18a..8426641197ca 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -10,10 +10,6 @@ #include "wilc_wlan_if.h" #include "wilc_wlan.h" -/* - * #include - * #include - */ typedef struct { void *os_context; int (*spi_tx)(u8 *, u32); From 77c19f3a9c2e49dbec3b6572a926e411c0ec32af Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:18 +0900 Subject: [PATCH 0420/2431] staging: wilc1000: remove useless extern declarations This patch removes useless extern declarations. This function is not existed in the driver. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2574c4884c6d..563063ce6ba0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1,8 +1,6 @@ #include "host_interface.h" #include "coreconfigurator.h" -extern s32 TransportInit(void); -extern s32 TransportDeInit(void); extern u8 connecting; #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP From f57fb215442314af2512721c0b7304bad0077214 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:19 +0900 Subject: [PATCH 0421/2431] staging: wilc1000: use BIT macro This patch replaces bit shift with BIT(x) macro. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 51f9413ec803..edf5ec0adf2a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -11,14 +11,14 @@ #include "wilc_wfi_netdevice.h" /* The following macros describe the bitfield map used by the firmware to determine its 11i mode */ -#define NO_ENCRYPT 0 -#define ENCRYPT_ENABLED (1 << 0) -#define WEP (1 << 1) -#define WEP_EXTENDED (1 << 2) -#define WPA (1 << 3) -#define WPA2 (1 << 4) -#define AES (1 << 5) -#define TKIP (1 << 6) +#define NO_ENCRYPT 0 +#define ENCRYPT_ENABLED BIT(0) +#define WEP BIT(1) +#define WEP_EXTENDED BIT(2) +#define WPA BIT(3) +#define WPA2 BIT(4) +#define AES BIT(5) +#define TKIP BIT(6) #ifdef WILC_P2P /* #define USE_SUPPLICANT_GO_INTENT */ From af080e04caee06689a5df23c17a407b95c3b3994 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:20 +0900 Subject: [PATCH 0422/2431] staging: wilc1000: remove bit shift macro that is custom defined This patch remove bit shift macro that is custom defined, then it is replaced BIT(x) macro. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index dfc210a1b08a..a4321a4e9734 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -19,10 +19,6 @@ #define IP_ALEN 4 -#define BIT2 ((u32)(1 << 2)) -#define BIT1 ((u32)(1 << 1)) -#define BIT0 ((u32)(1 << 0)) - #define IDLE_MODE 0x00 #define AP_MODE 0x01 #define STATION_MODE 0x02 @@ -36,9 +32,9 @@ #define MIN_SCAN_TIME 10 #define MAX_SCAN_TIME 1200 #define DEFAULT_SCAN 0 -#define USER_SCAN BIT0 -#define OBSS_PERIODIC_SCAN BIT1 -#define OBSS_ONETIME_SCAN BIT2 +#define USER_SCAN BIT(0) +#define OBSS_PERIODIC_SCAN BIT(1) +#define OBSS_ONETIME_SCAN BIT(2) #define GTK_RX_KEY_BUFF_LEN 24 #define ADDKEY 0x1 #define REMOVEKEY 0x2 From 90c604b2246b8135f27bdd5c0cc98fc881ecd12c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:21 +0900 Subject: [PATCH 0423/2431] staging: wilc1000: remove unused defines The macros are not used anywhere in this driver, so just delete it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index a4321a4e9734..f15a878b6e04 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -14,8 +14,6 @@ /*****************************************************************************/ /* Macros */ /*****************************************************************************/ -#define FAIL 0x0000 -#define SUCCESS 0x0001 #define IP_ALEN 4 From 568ab197c4d80b344884b32032ca445ea2b1594e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:22 +0900 Subject: [PATCH 0424/2431] staging: wilc1000: fix alignment of defines This patch fix alignment of defines. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 42 +++++++++++------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index f15a878b6e04..64bcd80feaae 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -20,11 +20,11 @@ #define IDLE_MODE 0x00 #define AP_MODE 0x01 #define STATION_MODE 0x02 -#define GO_MODE 0x03 +#define GO_MODE 0x03 #define CLIENT_MODE 0x04 -#define MAX_NUM_STA 9 +#define MAX_NUM_STA 9 #define ACTIVE_SCAN_TIME 10 #define PASSIVE_SCAN_TIME 1200 #define MIN_SCAN_TIME 10 @@ -34,31 +34,31 @@ #define OBSS_PERIODIC_SCAN BIT(1) #define OBSS_ONETIME_SCAN BIT(2) #define GTK_RX_KEY_BUFF_LEN 24 -#define ADDKEY 0x1 -#define REMOVEKEY 0x2 -#define DEFAULTKEY 0x4 -#define ADDKEY_AP 0x8 -#define MAX_NUM_SCANNED_NETWORKS 100 /* 30 // rachel */ -#define MAX_NUM_SCANNED_NETWORKS_SHADOW 130 -#define MAX_NUM_PROBED_SSID 10 /*One more than the number of scanned ssids*/ +#define ADDKEY 0x1 +#define REMOVEKEY 0x2 +#define DEFAULTKEY 0x4 +#define ADDKEY_AP 0x8 +#define MAX_NUM_SCANNED_NETWORKS 100 /* 30 // rachel */ +#define MAX_NUM_SCANNED_NETWORKS_SHADOW 130 +#define MAX_NUM_PROBED_SSID 10 /*One more than the number of scanned ssids*/ #define CHANNEL_SCAN_TIME 250 /* 250 */ #define TX_MIC_KEY_LEN 8 #define RX_MIC_KEY_LEN 8 -#define PTK_KEY_LEN 16 +#define PTK_KEY_LEN 16 #define TX_MIC_KEY_MSG_LEN 26 #define RX_MIC_KEY_MSG_LEN 48 #define PTK_KEY_MSG_LEN 39 #define PMKSA_KEY_LEN 22 -#define ETH_ALEN 6 -#define PMKID_LEN 16 -#define WILC_MAX_NUM_PMKIDS 16 -#define WILC_SUPP_MCS_SET_SIZE 16 -#define WILC_ADD_STA_LENGTH 40 /* Not including the rates field cause it has variable length*/ +#define ETH_ALEN 6 +#define PMKID_LEN 16 +#define WILC_MAX_NUM_PMKIDS 16 +#define WILC_SUPP_MCS_SET_SIZE 16 +#define WILC_ADD_STA_LENGTH 40 /* Not including the rates field cause it has variable length*/ #define SCAN_EVENT_DONE_ABORTED -#define NUM_CONCURRENT_IFC 2 +#define NUM_CONCURRENT_IFC 2 typedef struct { u16 cfg_wid; @@ -304,11 +304,11 @@ typedef struct { } tstrHostIfRegisterFrame; -#define ACTION 0xD0 -#define PROBE_REQ 0x40 -#define PROBE_RESP 0x50 -#define ACTION_FRM_IDX 0 -#define PROBE_REQ_IDX 1 +#define ACTION 0xD0 +#define PROBE_REQ 0x40 +#define PROBE_RESP 0x50 +#define ACTION_FRM_IDX 0 +#define PROBE_REQ_IDX 1 enum p2p_listen_state { From df94ed254bbc12111e038cbc4ad38c085fea47c0 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:23 +0900 Subject: [PATCH 0425/2431] staging: wilc1000: fix alignment of enum This patch fix alignment of enum. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 76 +++++++++++------------ 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 64bcd80feaae..e3e4b06c953f 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -77,13 +77,13 @@ typedef struct _tstrStatistics { typedef enum { - HOST_IF_IDLE = 0, - HOST_IF_SCANNING = 1, - HOST_IF_CONNECTING = 2, - HOST_IF_WAITING_CONN_RESP = 3, - HOST_IF_CONNECTED = 4, - HOST_IF_P2P_LISTEN = 5, - HOST_IF_FORCE_32BIT = 0xFFFFFFFF + HOST_IF_IDLE = 0, + HOST_IF_SCANNING = 1, + HOST_IF_CONNECTING = 2, + HOST_IF_WAITING_CONN_RESP = 3, + HOST_IF_CONNECTED = 4, + HOST_IF_P2P_LISTEN = 5, + HOST_IF_FORCE_32BIT = 0xFFFFFFFF } tenuHostIFstate; typedef struct _tstrHostIFpmkid { @@ -97,19 +97,19 @@ typedef struct _tstrHostIFpmkidAttr { } tstrHostIFpmkidAttr; typedef enum { - AUTORATE = 0, - MBPS_1 = 1, - MBPS_2 = 2, - MBPS_5_5 = 5, - MBPS_11 = 11, - MBPS_6 = 6, - MBPS_9 = 9, - MBPS_12 = 12, - MBPS_18 = 18, - MBPS_24 = 24, - MBPS_36 = 36, - MBPS_48 = 48, - MBPS_54 = 54 + AUTORATE = 0, + MBPS_1 = 1, + MBPS_2 = 2, + MBPS_5_5 = 5, + MBPS_11 = 11, + MBPS_6 = 6, + MBPS_9 = 9, + MBPS_12 = 12, + MBPS_18 = 18, + MBPS_24 = 24, + MBPS_36 = 36, + MBPS_48 = 48, + MBPS_54 = 54 } CURRENT_TX_RATE_T; typedef struct { @@ -140,23 +140,23 @@ typedef struct { typedef enum { RETRY_SHORT = 1 << 0, RETRY_LONG = 1 << 1, - FRAG_THRESHOLD = 1 << 2, - RTS_THRESHOLD = 1 << 3, - BSS_TYPE = 1 << 4, - AUTH_TYPE = 1 << 5, - AUTHEN_TIMEOUT = 1 << 6, - POWER_MANAGEMENT = 1 << 7, - PREAMBLE = 1 << 8, - SHORT_SLOT_ALLOWED = 1 << 9, - TXOP_PROT_DISABLE = 1 << 10, - BEACON_INTERVAL = 1 << 11, - DTIM_PERIOD = 1 << 12, - SITE_SURVEY = 1 << 13, - SITE_SURVEY_SCAN_TIME = 1 << 14, - ACTIVE_SCANTIME = 1 << 15, - PASSIVE_SCANTIME = 1 << 16, - CURRENT_TX_RATE = 1 << 17, - HT_ENABLE = 1 << 18, + FRAG_THRESHOLD = 1 << 2, + RTS_THRESHOLD = 1 << 3, + BSS_TYPE = 1 << 4, + AUTH_TYPE = 1 << 5, + AUTHEN_TIMEOUT = 1 << 6, + POWER_MANAGEMENT = 1 << 7, + PREAMBLE = 1 << 8, + SHORT_SLOT_ALLOWED = 1 << 9, + TXOP_PROT_DISABLE = 1 << 10, + BEACON_INTERVAL = 1 << 11, + DTIM_PERIOD = 1 << 12, + SITE_SURVEY = 1 << 13, + SITE_SURVEY_SCAN_TIME = 1 << 14, + ACTIVE_SCANTIME = 1 << 15, + PASSIVE_SCANTIME = 1 << 16, + CURRENT_TX_RATE = 1 << 17, + HT_ENABLE = 1 << 18, } tenuCfgParam; typedef struct { @@ -172,7 +172,7 @@ typedef enum {SCAN_EVENT_NETWORK_FOUND = 0, typedef enum { CONN_DISCONN_EVENT_CONN_RESP = 0, CONN_DISCONN_EVENT_DISCONN_NOTIF = 1, - CONN_DISCONN_EVENT_FORCE_32BIT = 0xFFFFFFFF + CONN_DISCONN_EVENT_FORCE_32BIT = 0xFFFFFFFF } tenuConnDisconnEvent; typedef enum { From b5c47a409d55f51963365a3e5e1b95c29b2d4a28 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:24 +0900 Subject: [PATCH 0426/2431] staging: wilc1000: remove USE_SUPPLICANT_GO_INTENT This patch removes USE_SUPPLICANT_GO_INTENT macro that is commented. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index edf5ec0adf2a..aac9e3f2e93b 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -21,7 +21,6 @@ #define TKIP BIT(6) #ifdef WILC_P2P -/* #define USE_SUPPLICANT_GO_INTENT */ /*Public action frame index IDs*/ #define FRAME_TYPE_ID 0 From 9cb8671553bc3ea1fd383ad7ed548d5476241af6 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:25 +0900 Subject: [PATCH 0427/2431] staging: wilc1000: remove if defined codes of USE_SUPPLICANT_GO_INTENT This patch removes if defined codes of USE_SUPPLICANT_GO_INTENT. This macro is deleted because it is commented out. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 66 ------------------- .../staging/wilc1000/wilc_wfi_cfgoperations.h | 9 --- 2 files changed, 75 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 2671cdf70d5e..c3e0892ef240 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2023,51 +2023,18 @@ void WILC_WFI_CfgParseRxAction(u8 *buf, u32 len) u32 i = 0, j = 0; /*BugID_5460*/ - #ifdef USE_SUPPLICANT_GO_INTENT - u8 intent; - u8 tie_breaker; - bool is_wilc_go = true; - #endif u8 op_channel_attr_index = 0; u8 channel_list_attr_index = 0; while (index < len) { if (buf[index] == GO_INTENT_ATTR_ID) { - #ifdef USE_SUPPLICANT_GO_INTENT - /*BugID_5460*/ - /*Case 1: If we are going to be p2p client, no need to modify channels attributes*/ - /*In negotiation frames, go intent attr value determines who will be GO*/ - intent = GET_GO_INTENT(buf[index + 3]); - tie_breaker = GET_TIE_BREAKER(buf[index + 3]); - if (intent > SUPPLICANT_GO_INTENT - || (intent == SUPPLICANT_GO_INTENT && tie_breaker == 1)) { - PRINT_D(GENERIC_DBG, "WILC will be client (intent %d tie breaker %d)\n", intent, tie_breaker); - is_wilc_go = false; - } else { - PRINT_D(GENERIC_DBG, "WILC will be GO (intent %d tie breaker %d)\n", intent, tie_breaker); - is_wilc_go = true; - } - - #else /* USE_SUPPLICANT_GO_INTENT */ #ifdef FORCE_P2P_CLIENT buf[index + 3] = (buf[index + 3] & 0x01) | (0x0f << 1); #else buf[index + 3] = (buf[index + 3] & 0x01) | (0x00 << 1); #endif - #endif /* USE_SUPPLICANT_GO_INTENT */ } - #ifdef USE_SUPPLICANT_GO_INTENT - /*Case 2: If group bssid attribute is present, no need to modify channels attributes*/ - /*In invitation req and rsp, group bssid attr presence determines who will be GO*/ - if (buf[index] == GROUP_BSSID_ATTR_ID) { - PRINT_D(GENERIC_DBG, "Group BSSID: %2x:%2x:%2x\n", buf[index + 3] - , buf[index + 4] - , buf[index + 5]); - is_wilc_go = false; - } - #endif /* USE_SUPPLICANT_GO_INTENT */ - if (buf[index] == CHANLIST_ATTR_ID) channel_list_attr_index = index; else if (buf[index] == OPERCHAN_ATTR_ID) @@ -2075,11 +2042,7 @@ void WILC_WFI_CfgParseRxAction(u8 *buf, u32 len) index += buf[index + 1] + 3; /* ID,Length byte */ } - #ifdef USE_SUPPLICANT_GO_INTENT - if (u8WLANChannel != INVALID_CHANNEL && is_wilc_go) - #else if (u8WLANChannel != INVALID_CHANNEL) - #endif { /*Modify channel list attribute*/ if (channel_list_attr_index) { @@ -2119,29 +2082,8 @@ void WILC_WFI_CfgParseTxAction(u8 *buf, u32 len, bool bOperChan, u8 iftype) u8 op_channel_attr_index = 0; u8 channel_list_attr_index = 0; - #ifdef USE_SUPPLICANT_GO_INTENT - bool is_wilc_go = false; - - /*BugID_5460*/ - /*Case 1: If we are already p2p client, no need to modify channels attributes*/ - /*This to handle the case of inviting a p2p peer to join an existing group which we are a member in*/ - if (iftype == CLIENT_MODE) - return; - #endif while (index < len) { - #ifdef USE_SUPPLICANT_GO_INTENT - /*Case 2: If group bssid attribute is present, no need to modify channels attributes*/ - /*In invitation req and rsp, group bssid attr presence determines who will be GO*/ - /*Note: If we are already p2p client, group bssid attr may also be present (handled in Case 1)*/ - if (buf[index] == GROUP_BSSID_ATTR_ID) { - PRINT_D(GENERIC_DBG, "Group BSSID: %2x:%2x:%2x\n", buf[index + 3] - , buf[index + 4] - , buf[index + 5]); - is_wilc_go = true; - } - - #else /* USE_SUPPLICANT_GO_INTENT */ if (buf[index] == GO_INTENT_ATTR_ID) { #ifdef FORCE_P2P_CLIENT buf[index + 3] = (buf[index + 3] & 0x01) | (0x00 << 1); @@ -2151,7 +2093,6 @@ void WILC_WFI_CfgParseTxAction(u8 *buf, u32 len, bool bOperChan, u8 iftype) break; } - #endif if (buf[index] == CHANLIST_ATTR_ID) channel_list_attr_index = index; @@ -2160,12 +2101,7 @@ void WILC_WFI_CfgParseTxAction(u8 *buf, u32 len, bool bOperChan, u8 iftype) index += buf[index + 1] + 3; /* ID,Length byte */ } - #ifdef USE_SUPPLICANT_GO_INTENT - /*No need to check bOperChan since only transmitted invitation frames are parsed*/ - if (u8WLANChannel != INVALID_CHANNEL && is_wilc_go) - #else if (u8WLANChannel != INVALID_CHANNEL && bOperChan) - #endif { /*Modify channel list attribute*/ if (channel_list_attr_index) { @@ -2605,10 +2541,8 @@ int mgmt_tx(struct wiphy *wiphy, /*BugID_5460*/ /*If using supplicant go intent, no need at all*/ /*to parse transmitted negotiation frames*/ - #ifndef USE_SUPPLICANT_GO_INTENT else WILC_WFI_CfgParseTxAction(&mgmt_tx->buff[i + 6], len - (i + 6), false, nic->iftype); - #endif break; } } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index aac9e3f2e93b..15510f23b7d4 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -33,9 +33,6 @@ #define GO_INTENT_ATTR_ID 0x04 #define CHANLIST_ATTR_ID 0x0b #define OPERCHAN_ATTR_ID 0x11 -#ifdef USE_SUPPLICANT_GO_INTENT -#define GROUP_BSSID_ATTR_ID 0x07 -#endif #define PUB_ACTION_ATTR_ID 0x04 #define P2PELEM_ATTR_ID 0xdd @@ -50,14 +47,8 @@ #define GAS_INTIAL_RSP 0x0b #define INVALID_CHANNEL 0 -#ifdef USE_SUPPLICANT_GO_INTENT -#define SUPPLICANT_GO_INTENT 6 -#define GET_GO_INTENT(a) (((a) >> 1) & 0x0f) -#define GET_TIE_BREAKER(a) (((a)) & 0x01) -#else /* #define FORCE_P2P_CLIENT */ #endif -#endif #define nl80211_SCAN_RESULT_EXPIRE (3 * HZ) #define SCAN_RESULT_EXPIRE (40 * HZ) From f68fd661315383d2efde3addd316c9c63e83f707 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:26 +0900 Subject: [PATCH 0428/2431] staging: wilc1000: remove FORCE_P2P_CLIENT This patch removes FORCE_P2P_CLIENT that is commented. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 15510f23b7d4..28858daf97dd 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -47,7 +47,6 @@ #define GAS_INTIAL_RSP 0x0b #define INVALID_CHANNEL 0 -/* #define FORCE_P2P_CLIENT */ #endif #define nl80211_SCAN_RESULT_EXPIRE (3 * HZ) From 72d9af2a150bb5ed6f269616ba0e07fc5a029599 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:27 +0900 Subject: [PATCH 0429/2431] staging: wilc1000: remove if defined codes of FORCE_P2P_CLIENT This patch removes if defined codes of FORCE_P2P_CLIENT. This macro is deleted because it it commented out. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c3e0892ef240..3ecf5b1772d3 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2028,11 +2028,7 @@ void WILC_WFI_CfgParseRxAction(u8 *buf, u32 len) while (index < len) { if (buf[index] == GO_INTENT_ATTR_ID) { - #ifdef FORCE_P2P_CLIENT - buf[index + 3] = (buf[index + 3] & 0x01) | (0x0f << 1); - #else buf[index + 3] = (buf[index + 3] & 0x01) | (0x00 << 1); - #endif } if (buf[index] == CHANLIST_ATTR_ID) @@ -2085,11 +2081,7 @@ void WILC_WFI_CfgParseTxAction(u8 *buf, u32 len, bool bOperChan, u8 iftype) while (index < len) { if (buf[index] == GO_INTENT_ATTR_ID) { - #ifdef FORCE_P2P_CLIENT - buf[index + 3] = (buf[index + 3] & 0x01) | (0x00 << 1); - #else buf[index + 3] = (buf[index + 3] & 0x01) | (0x0f << 1); - #endif break; } From 1130feca0629678239d400c7ae03e62406c5e2c7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:28 +0900 Subject: [PATCH 0430/2431] staging: wilc1000: wilc_wfi_cfgoperations.h: align defines This patch fix alignment of some defines in wilc_wfi_cfgoperations.h Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.h | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 28858daf97dd..5fd0757b9205 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -23,34 +23,34 @@ #ifdef WILC_P2P /*Public action frame index IDs*/ -#define FRAME_TYPE_ID 0 -#define ACTION_CAT_ID 24 -#define ACTION_SUBTYPE_ID 25 -#define P2P_PUB_ACTION_SUBTYPE 30 +#define FRAME_TYPE_ID 0 +#define ACTION_CAT_ID 24 +#define ACTION_SUBTYPE_ID 25 +#define P2P_PUB_ACTION_SUBTYPE 30 /*Public action frame Attribute IDs*/ -#define ACTION_FRAME 0xd0 -#define GO_INTENT_ATTR_ID 0x04 -#define CHANLIST_ATTR_ID 0x0b -#define OPERCHAN_ATTR_ID 0x11 -#define PUB_ACTION_ATTR_ID 0x04 -#define P2PELEM_ATTR_ID 0xdd +#define ACTION_FRAME 0xd0 +#define GO_INTENT_ATTR_ID 0x04 +#define CHANLIST_ATTR_ID 0x0b +#define OPERCHAN_ATTR_ID 0x11 +#define PUB_ACTION_ATTR_ID 0x04 +#define P2PELEM_ATTR_ID 0xdd /*Public action subtype values*/ -#define GO_NEG_REQ 0x00 -#define GO_NEG_RSP 0x01 -#define GO_NEG_CONF 0x02 -#define P2P_INV_REQ 0x03 -#define P2P_INV_RSP 0x04 -#define PUBLIC_ACT_VENDORSPEC 0x09 -#define GAS_INTIAL_REQ 0x0a -#define GAS_INTIAL_RSP 0x0b +#define GO_NEG_REQ 0x00 +#define GO_NEG_RSP 0x01 +#define GO_NEG_CONF 0x02 +#define P2P_INV_REQ 0x03 +#define P2P_INV_RSP 0x04 +#define PUBLIC_ACT_VENDORSPEC 0x09 +#define GAS_INTIAL_REQ 0x0a +#define GAS_INTIAL_RSP 0x0b -#define INVALID_CHANNEL 0 +#define INVALID_CHANNEL 0 #endif #define nl80211_SCAN_RESULT_EXPIRE (3 * HZ) -#define SCAN_RESULT_EXPIRE (40 * HZ) +#define SCAN_RESULT_EXPIRE (40 * HZ) static const u32 cipher_suites[] = { WLAN_CIPHER_SUITE_WEP40, @@ -105,8 +105,8 @@ int WILC_WFI_deinit_mon_interface(void); struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev); #ifdef TCP_ENHANCEMENTS -#define TCP_ACK_FILTER_LINK_SPEED_THRESH 54 -#define DEFAULT_LINK_SPEED 72 +#define TCP_ACK_FILTER_LINK_SPEED_THRESH 54 +#define DEFAULT_LINK_SPEED 72 void Enable_TCP_ACK_Filter(bool value); #endif From 6fd57333deabe3a37f7e57b64841e46e1834a598 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:52 -0400 Subject: [PATCH 0431/2431] staging/lustre: Remove OBD_CPT_ALLOC_LARGE Remove OBD_CPT_ALLOC_LARGE define and convert the only user to libcfs_kvzalloc_cpt. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_support.h | 5 ----- drivers/staging/lustre/lustre/ptlrpc/service.c | 6 ++++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 30f22d97efb3..b7467632c4a2 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -634,11 +634,6 @@ do { \ ptr = libcfs_kvzalloc(size, GFP_NOFS); \ } while (0) -#define OBD_CPT_ALLOC_LARGE(ptr, cptab, cpt, size) \ -do { \ - ptr = libcfs_kvzalloc_cpt(cptab, cpt, size, GFP_NOFS); \ -} while (0) - #define OBD_FREE_LARGE(ptr, size) \ do { \ (void)(size); \ diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 003344ccfffc..40de622450ee 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -86,8 +86,10 @@ ptlrpc_alloc_rqbd(struct ptlrpc_service_part *svcpt) rqbd->rqbd_cbid.cbid_fn = request_in_callback; rqbd->rqbd_cbid.cbid_arg = rqbd; INIT_LIST_HEAD(&rqbd->rqbd_reqs); - OBD_CPT_ALLOC_LARGE(rqbd->rqbd_buffer, svc->srv_cptable, - svcpt->scp_cpt, svc->srv_buf_size); + rqbd->rqbd_buffer = libcfs_kvzalloc_cpt(svc->srv_cptable, + svcpt->scp_cpt, + svc->srv_buf_size, + GFP_KERNEL); if (rqbd->rqbd_buffer == NULL) { kfree(rqbd); return NULL; From 8800d8cf7edaa80f17b1a03c39e0d13ffa34565f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:53 -0400 Subject: [PATCH 0432/2431] staging/lustre: Remove unused OBD_VMALLOC These macros are not used anymore, so let's remove them, also __OBD_VMALLOC_VEROBSE and OBD_CPT_VMALLOC Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/obd_support.h | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index b7467632c4a2..f58d142660e7 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -608,27 +608,6 @@ do { \ #define OBD_CPT_ALLOC_PTR(ptr, cptab, cpt) \ OBD_CPT_ALLOC(ptr, cptab, cpt, sizeof(*(ptr))) -# define __OBD_VMALLOC_VEROBSE(ptr, cptab, cpt, size) \ -do { \ - (ptr) = cptab == NULL ? \ - vzalloc(size) : \ - vzalloc_node(size, cfs_cpt_spread_node(cptab, cpt)); \ - if (unlikely((ptr) == NULL)) { \ - CERROR("vmalloc of '" #ptr "' (%d bytes) failed\n", \ - (int)(size)); \ - CERROR("%llu total bytes allocated by Lustre\n", \ - obd_memory_sum()); \ - } else { \ - OBD_ALLOC_POST(ptr, size, "vmalloced"); \ - } \ -} while (0) - -# define OBD_VMALLOC(ptr, size) \ - __OBD_VMALLOC_VEROBSE(ptr, NULL, 0, size) -# define OBD_CPT_VMALLOC(ptr, cptab, cpt, size) \ - __OBD_VMALLOC_VEROBSE(ptr, cptab, cpt, size) - - #define OBD_ALLOC_LARGE(ptr, size) \ do { \ ptr = libcfs_kvzalloc(size, GFP_NOFS); \ @@ -677,14 +656,6 @@ do { \ POISON_PTR(ptr); \ } while (0) - -#define OBD_VFREE(ptr, size) \ - do { \ - OBD_FREE_PRE(ptr, size, "vfreed"); \ - vfree(ptr); \ - POISON_PTR(ptr); \ - } while (0) - /* we memset() the slab object to 0 when allocation succeeds, so DO NOT * HAVE A CTOR THAT DOES ANYTHING. its work will be cleared here. we'd * love to assert on that, but slab.c keeps kmem_cache_s all to itself. */ From f6173fe0be3257067203a559a2290489a7664101 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:54 -0400 Subject: [PATCH 0433/2431] staging/lustre: Remove unused OBD_CPT_ALLOC* macros OBD_CPT_ALLOC and friends are no longer used, so remove them. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_support.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index f58d142660e7..5ae35fa42557 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -599,15 +599,6 @@ do { \ #define OBD_ALLOC_PTR(ptr) OBD_ALLOC(ptr, sizeof(*(ptr))) #define OBD_ALLOC_PTR_WAIT(ptr) OBD_ALLOC_WAIT(ptr, sizeof(*(ptr))) -#define OBD_CPT_ALLOC_GFP(ptr, cptab, cpt, size, gfp_mask) \ - __OBD_MALLOC_VERBOSE(ptr, cptab, cpt, size, gfp_mask) - -#define OBD_CPT_ALLOC(ptr, cptab, cpt, size) \ - OBD_CPT_ALLOC_GFP(ptr, cptab, cpt, size, GFP_NOFS) - -#define OBD_CPT_ALLOC_PTR(ptr, cptab, cpt) \ - OBD_CPT_ALLOC(ptr, cptab, cpt, sizeof(*(ptr))) - #define OBD_ALLOC_LARGE(ptr, size) \ do { \ ptr = libcfs_kvzalloc(size, GFP_NOFS); \ From fca5ba8a1d047b4eddc1774d64eccdf9724a9577 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:55 -0400 Subject: [PATCH 0434/2431] staging/lustre: Remove users of OBD_ALLOC/FREE_PTR lu_object.h These are converted to regular kzalloc/kfree calls. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lu_object.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index 96e271d7df9a..77560085082a 100644 --- a/drivers/staging/lustre/lustre/include/lu_object.h +++ b/drivers/staging/lustre/lustre/include/lu_object.h @@ -1126,7 +1126,7 @@ struct lu_context_key { \ CLASSERT(PAGE_CACHE_SIZE >= sizeof (*value)); \ \ - OBD_ALLOC_PTR(value); \ + value = kzalloc(sizeof(*value), GFP_NOFS); \ if (value == NULL) \ value = ERR_PTR(-ENOMEM); \ \ @@ -1140,7 +1140,7 @@ struct lu_context_key { { \ type *info = data; \ \ - OBD_FREE_PTR(info); \ + kfree(info); \ } \ struct __##mod##__dummy_fini {; } /* semicolon catcher */ From af13af52e488ed2d2044924ea73ecb8589fc4d3b Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:56 -0400 Subject: [PATCH 0435/2431] staging/lustre/llite: Get rid of OBD_ALLOC/FREE_PTR The remaining users in ll_open_cleanup and obd_mod_alloc are converted to regular kzalloc/kfree. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd.h | 4 ++-- drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 76a2546e0f41..145c9be8fc5d 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -1408,7 +1408,7 @@ static inline struct md_open_data *obd_mod_alloc(void) { struct md_open_data *mod; - OBD_ALLOC_PTR(mod); + mod = kzalloc(sizeof(*mod), GFP_NOFS); if (mod == NULL) return NULL; atomic_set(&mod->mod_refcount, 1); @@ -1421,7 +1421,7 @@ static inline struct md_open_data *obd_mod_alloc(void) if (atomic_dec_and_test(&(mod)->mod_refcount)) { \ if ((mod)->mod_open_req) \ ptlrpc_req_finished((mod)->mod_open_req); \ - OBD_FREE_PTR(mod); \ + kfree(mod); \ } \ }) diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index 725481d3916e..aa68608c3cbd 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1996,7 +1996,7 @@ void ll_open_cleanup(struct super_block *sb, struct ptlrpc_request *open_req) struct obd_export *exp = ll_s2sbi(sb)->ll_md_exp; body = req_capsule_server_get(&open_req->rq_pill, &RMF_MDT_BODY); - OBD_ALLOC_PTR(op_data); + op_data = kzalloc(sizeof(*op_data), GFP_NOFS); if (!op_data) { CWARN("%s: cannot allocate op_data to release open handle for " DFID "\n", From d37c8781c0c1f7d52213b94a32c9b82f402845f0 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:57 -0400 Subject: [PATCH 0436/2431] staging/lustre/obdclass: replace OBD_ALLOC_GFP with kzalloc Part of getting rid of custom Lustre allocation macros. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/cl_page.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/cl_page.c b/drivers/staging/lustre/lustre/obdclass/cl_page.c index d5fb81f84cd4..e27062d38a45 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_page.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_page.c @@ -283,8 +283,7 @@ static struct cl_page *cl_page_alloc(const struct lu_env *env, struct cl_page *page; struct lu_object_header *head; - OBD_ALLOC_GFP(page, cl_object_header(o)->coh_page_bufsize, - GFP_NOFS); + page = kzalloc(cl_object_header(o)->coh_page_bufsize, GFP_NOFS); if (page != NULL) { int result = 0; From c0a2472fa8e3a00168640542f158cc6ba8f55aaa Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:58 -0400 Subject: [PATCH 0437/2431] staging/lustre: Remove references to OBD_ALLOC/FREE* in comments Since everything is now supposed to use regular kernel alloc and free functions. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_lib.h | 2 +- drivers/staging/lustre/lustre/include/lustre_net.h | 2 +- drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index 2a4294d41b5a..352e5244e686 100644 --- a/drivers/staging/lustre/lustre/include/lustre_lib.h +++ b/drivers/staging/lustre/lustre/include/lustre_lib.h @@ -453,7 +453,7 @@ static inline void obd_ioctl_freedata(char *buf, int len) * __wake_up_common(q, ...); (2.2) * spin_unlock(&q->lock, flags); (2.3) * - * OBD_FREE_PTR(obj); (3) + * kfree(obj); (3) * * As l_wait_event() may "short-cut" execution and return without taking * wait-queue spin-lock, some additional synchronization is necessary to diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 3b6a2d7759b4..c9c21d289e92 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -306,7 +306,7 @@ union ptlrpc_async_args { /** * Scratchpad for passing args to completion interpreter. Users * cast to the struct of their choosing, and CLASSERT that this is - * big enough. For _tons_ of context, OBD_ALLOC a struct and store + * big enough. For _tons_ of context, kmalloc a struct and store * a pointer to it here. The pointer_arg ensures this struct is at * least big enough for that. */ diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index b6100325723d..31ed2487377b 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -694,7 +694,7 @@ out_och_free: if (rc) { if (och_p && *och_p) { kfree(*och_p); - *och_p = NULL; /* OBD_FREE writes some magic there */ + *och_p = NULL; (*och_usecount)--; } mutex_unlock(&lli->lli_och_mutex); diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 84eb3da5a9c9..9a10baf711b0 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -1223,7 +1223,7 @@ int lprocfs_wr_evict_client(struct file *file, const char __user *buffer, return -ENOMEM; /* - * OBD_ALLOC() will zero kbuf, but we only copy BUFLEN - 1 + * kzalloc() will zero kbuf, but we only copy BUFLEN - 1 * bytes into kbuf, to ensure that the string is NUL-terminated. * UUID_MAX should include a trailing NUL already. */ From 3dc6f3252296f158764b110310124ec0e5eec6b0 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:59 -0400 Subject: [PATCH 0438/2431] staging/lustre/fld: Replace OBD_ALLOC_GFP with kzalloc Part of effort to get rid of custom Lustre allocation macros. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/fld/fld_cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/fld/fld_cache.c b/drivers/staging/lustre/lustre/fld/fld_cache.c index 1b1066b2461c..5eeb36dc988f 100644 --- a/drivers/staging/lustre/lustre/fld/fld_cache.c +++ b/drivers/staging/lustre/lustre/fld/fld_cache.c @@ -266,7 +266,7 @@ static void fld_cache_punch_hole(struct fld_cache *cache, const u64 new_end = range->lsr_end; struct fld_cache_entry *fldt; - OBD_ALLOC_GFP(fldt, sizeof(*fldt), GFP_ATOMIC); + fldt = kzalloc(sizeof(*fldt), GFP_ATOMIC); if (!fldt) { kfree(f_new); /* overlap is not allowed, so dont mess up list. */ From 781c848aa3e005415e03381640e2d886d4fd4f31 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:00 -0400 Subject: [PATCH 0439/2431] staging/lustre: Convert lustre_cfg_new/free to use kzalloc/kfree Part of effort of getting rid of custom Lustre allocation macros Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_cfg.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_cfg.h b/drivers/staging/lustre/lustre/include/lustre_cfg.h index 7b385b87261a..c80d78e5b30d 100644 --- a/drivers/staging/lustre/lustre/include/lustre_cfg.h +++ b/drivers/staging/lustre/lustre/include/lustre_cfg.h @@ -231,8 +231,8 @@ static inline struct lustre_cfg *lustre_cfg_new(int cmd, char *ptr; int i; - OBD_ALLOC(lcfg, lustre_cfg_len(bufs->lcfg_bufcount, - bufs->lcfg_buflen)); + lcfg = kzalloc(lustre_cfg_len(bufs->lcfg_bufcount, bufs->lcfg_buflen), + GFP_NOFS); if (!lcfg) return ERR_PTR(-ENOMEM); @@ -254,7 +254,7 @@ static inline void lustre_cfg_free(struct lustre_cfg *lcfg) len = lustre_cfg_len(lcfg->lcfg_bufcount, lcfg->lcfg_buflens); - OBD_FREE(lcfg, len); + kfree(lcfg); return; } From 1089175c9c99e5cd8378b19a5a90bc0076b9151f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:01 -0400 Subject: [PATCH 0440/2431] staging/lustre/ptlrpc: Replace OBD_FREE_PTR with kfree Part of effort of getting rid of custom Lustre alloc/free macros Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h index 1d64ca71920c..34c7e28afdaf 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h @@ -298,6 +298,6 @@ static inline void tgt_mod_exit(void) static inline void ptlrpc_reqset_put(struct ptlrpc_request_set *set) { if (atomic_dec_and_test(&set->set_refcount)) - OBD_FREE_PTR(set); + kfree(set); } #endif /* PTLRPC_INTERNAL_H */ From df29ca21143975d6ed11873fdf7e2248a6016ef0 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:02 -0400 Subject: [PATCH 0441/2431] staging/lustre: Replace last users of OBD_ALLOC/FREE_LARGE OBD_ALLOC_LARGE is now replaced with libcfs_kvzalloc and OBD_FREE_LARGE is now replaced with kvfree. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_lib.h | 2 +- drivers/staging/lustre/lustre/include/obd.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index 352e5244e686..b380359cadab 100644 --- a/drivers/staging/lustre/lustre/include/lustre_lib.h +++ b/drivers/staging/lustre/lustre/include/lustre_lib.h @@ -258,7 +258,7 @@ int obd_ioctl_popdata(void *arg, void *data, int len); static inline void obd_ioctl_freedata(char *buf, int len) { - OBD_FREE_LARGE(buf, len); + kvfree(buf); return; } diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 145c9be8fc5d..bafef4e6fe94 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -728,8 +728,8 @@ static inline void oti_alloc_cookies(struct obd_trans_info *oti, if (num_cookies == 1) oti->oti_logcookies = &oti->oti_onecookie; else - OBD_ALLOC_LARGE(oti->oti_logcookies, - num_cookies * sizeof(oti->oti_onecookie)); + oti->oti_logcookies = libcfs_kvzalloc(num_cookies * sizeof(oti->oti_onecookie), + GFP_NOFS); oti->oti_numcookies = num_cookies; } @@ -742,8 +742,8 @@ static inline void oti_free_cookies(struct obd_trans_info *oti) if (oti->oti_logcookies == &oti->oti_onecookie) LASSERT(oti->oti_numcookies == 1); else - OBD_FREE_LARGE(oti->oti_logcookies, - oti->oti_numcookies*sizeof(oti->oti_onecookie)); + kvfree(oti->oti_logcookies); + oti->oti_logcookies = NULL; oti->oti_numcookies = 0; } From 35eaf88724f7cc37c3b2c112d3333b98cddabaf5 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:03 -0400 Subject: [PATCH 0442/2431] staging/lustre: Remove stray bit of userland utils code The UTILS are userland and I see it's causing confusion with things beging already converted to kmalloc, so just remove it. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/obd_support.h | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 5ae35fa42557..d8feec7e478e 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -551,23 +551,6 @@ __u64 obd_pages_max(void); #define OBD_ALLOC_FAIL_MASK ((1 << OBD_ALLOC_FAIL_BITS) - 1) #define OBD_ALLOC_FAIL_MULT (OBD_ALLOC_FAIL_MASK / 100) -#if defined(LUSTRE_UTILS) /* this version is for utils only */ -#define __OBD_MALLOC_VERBOSE(ptr, cptab, cpt, size, flags) \ -do { \ - (ptr) = (cptab) == NULL ? \ - kmalloc(size, flags) : \ - kmalloc_node(size, flags, cfs_cpt_spread_node(cptab, cpt)); \ - if (unlikely((ptr) == NULL)) { \ - CERROR("kmalloc of '" #ptr "' (%d bytes) failed at %s:%d\n", \ - (int)(size), __FILE__, __LINE__); \ - } else { \ - memset(ptr, 0, size); \ - CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %d at %p\n", \ - (int)(size), ptr); \ - } \ -} while (0) - -#else /* this version is for the kernel and liblustre */ #define OBD_FREE_RTN0(ptr) \ ({ \ kfree(ptr); \ @@ -589,7 +572,6 @@ do { \ OBD_ALLOC_POST(ptr, size, "kmalloced"); \ } \ } while (0) -#endif #define OBD_ALLOC_GFP(ptr, size, gfp_mask) \ __OBD_MALLOC_VERBOSE(ptr, NULL, 0, size, gfp_mask) From e1708ad71433b01ed38fa5468bc0e8e95fc267fb Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:04 -0400 Subject: [PATCH 0443/2431] staging/lustre: Remove unused OBD_ALLOC* and OBD_FREE macros This removes now unused OBD_ALLOC, OBD_ALLOC_GFP, OBD_ALLOC_PTR, OBD_ALLOC_LARGE and supporting infrastructure. Also OBD_FREE, OBD_FREE_PTR, OBD_FREE_LARGE and supporting infrastructure. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/obd_support.h | 52 ------------------- 1 file changed, 52 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index d8feec7e478e..8a3323c2dc20 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -551,48 +551,6 @@ __u64 obd_pages_max(void); #define OBD_ALLOC_FAIL_MASK ((1 << OBD_ALLOC_FAIL_BITS) - 1) #define OBD_ALLOC_FAIL_MULT (OBD_ALLOC_FAIL_MASK / 100) -#define OBD_FREE_RTN0(ptr) \ -({ \ - kfree(ptr); \ - (ptr) = NULL; \ - 0; \ -}) - -#define __OBD_MALLOC_VERBOSE(ptr, cptab, cpt, size, flags) \ -do { \ - (ptr) = (cptab) == NULL ? \ - kmalloc(size, flags | __GFP_ZERO) : \ - kmalloc_node(size, flags | __GFP_ZERO, \ - cfs_cpt_spread_node(cptab, cpt)); \ - if (likely((ptr) != NULL && \ - (!HAS_FAIL_ALLOC_FLAG || obd_alloc_fail_rate == 0 || \ - !obd_alloc_fail(ptr, #ptr, "km", size, \ - __FILE__, __LINE__) || \ - OBD_FREE_RTN0(ptr)))) { \ - OBD_ALLOC_POST(ptr, size, "kmalloced"); \ - } \ -} while (0) - -#define OBD_ALLOC_GFP(ptr, size, gfp_mask) \ - __OBD_MALLOC_VERBOSE(ptr, NULL, 0, size, gfp_mask) - -#define OBD_ALLOC(ptr, size) OBD_ALLOC_GFP(ptr, size, GFP_NOFS) -#define OBD_ALLOC_WAIT(ptr, size) OBD_ALLOC_GFP(ptr, size, GFP_KERNEL) -#define OBD_ALLOC_PTR(ptr) OBD_ALLOC(ptr, sizeof(*(ptr))) -#define OBD_ALLOC_PTR_WAIT(ptr) OBD_ALLOC_WAIT(ptr, sizeof(*(ptr))) - -#define OBD_ALLOC_LARGE(ptr, size) \ -do { \ - ptr = libcfs_kvzalloc(size, GFP_NOFS); \ -} while (0) - -#define OBD_FREE_LARGE(ptr, size) \ -do { \ - (void)(size); \ - kvfree(ptr); \ -} while (0) - - #ifdef CONFIG_DEBUG_SLAB #define POISON(ptr, c, s) do {} while (0) #define POISON_PTR(ptr) ((void)0) @@ -610,14 +568,6 @@ do { \ #define POISON_PAGE(page, val) do { } while (0) #endif -#define OBD_FREE(ptr, size) \ -do { \ - OBD_FREE_PRE(ptr, size, "kfreed"); \ - kfree(ptr); \ - POISON_PTR(ptr); \ -} while (0) - - #define OBD_FREE_RCU(ptr, size, handle) \ do { \ struct portals_handle *__h = (handle); \ @@ -660,8 +610,6 @@ do { \ #define OBD_SLAB_CPT_ALLOC_GFP(ptr, slab, cptab, cpt, size, flags) \ __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, cptab, cpt, size, flags) -#define OBD_FREE_PTR(ptr) OBD_FREE(ptr, sizeof(*(ptr))) - #define OBD_SLAB_FREE(ptr, slab, size) \ do { \ OBD_FREE_PRE(ptr, size, "slab-freed"); \ From 543d5f3d280748558e6f187e1805a16164d59dac Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:05 -0400 Subject: [PATCH 0444/2431] staging/lustre: Remove memory allocation fault injection framework Lustre memory allocation wrappers also included a fault injection framework that's totally redundant, since in-kernel offering is actually superior to what we had. So let's remove it. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/obd_support.h | 20 +----------------- .../lustre/lustre/obdclass/class_obd.c | 21 ------------------- 2 files changed, 1 insertion(+), 40 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 8a3323c2dc20..3d92f19c0017 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -66,13 +66,8 @@ extern unsigned int obd_sync_filter; extern unsigned int obd_max_dirty_pages; extern atomic_t obd_dirty_pages; extern atomic_t obd_dirty_transit_pages; -extern unsigned int obd_alloc_fail_rate; extern char obd_jobid_var[]; -/* lvfs.c */ -int obd_alloc_fail(const void *ptr, const char *name, const char *type, - size_t size, const char *file, int line); - /* Some hash init argument constants */ #define HASH_POOLS_BKT_BITS 3 #define HASH_POOLS_CUR_BITS 3 @@ -428,8 +423,6 @@ int obd_alloc_fail(const void *ptr, const char *name, const char *type, #define OBD_FAIL_LPROC_REMOVE 0xB00 -#define OBD_FAIL_GENERAL_ALLOC 0xC00 - #define OBD_FAIL_SEQ 0x1000 #define OBD_FAIL_SEQ_QUERY_NET 0x1001 #define OBD_FAIL_SEQ_EXHAUST 0x1002 @@ -545,12 +538,6 @@ __u64 obd_pages_max(void); #endif /* !OBD_DEBUG_MEMUSAGE */ -#define HAS_FAIL_ALLOC_FLAG OBD_FAIL_CHECK(OBD_FAIL_GENERAL_ALLOC) - -#define OBD_ALLOC_FAIL_BITS 24 -#define OBD_ALLOC_FAIL_MASK ((1 << OBD_ALLOC_FAIL_BITS) - 1) -#define OBD_ALLOC_FAIL_MULT (OBD_ALLOC_FAIL_MASK / 100) - #ifdef CONFIG_DEBUG_SLAB #define POISON(ptr, c, s) do {} while (0) #define POISON_PTR(ptr) ((void)0) @@ -596,13 +583,8 @@ do { \ kmem_cache_alloc(slab, type | __GFP_ZERO) : \ kmem_cache_alloc_node(slab, type | __GFP_ZERO, \ cfs_cpt_spread_node(cptab, cpt)); \ - if (likely((ptr) != NULL && \ - (!HAS_FAIL_ALLOC_FLAG || obd_alloc_fail_rate == 0 || \ - !obd_alloc_fail(ptr, #ptr, "slab-", size, \ - __FILE__, __LINE__) || \ - OBD_SLAB_FREE_RTN0(ptr, slab)))) { \ + if (likely(ptr)) \ OBD_ALLOC_POST(ptr, size, "slab-alloced"); \ - } \ } while (0) #define OBD_SLAB_ALLOC_GFP(ptr, slab, size, flags) \ diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index b1511547444a..fb4138c2cd74 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -64,8 +64,6 @@ EXPORT_SYMBOL(obd_pages); static DEFINE_SPINLOCK(obd_updatemax_lock); /* The following are visible and mutable through /proc/sys/lustre/. */ -unsigned int obd_alloc_fail_rate; -EXPORT_SYMBOL(obd_alloc_fail_rate); unsigned int obd_debug_peer_on_timeout; EXPORT_SYMBOL(obd_debug_peer_on_timeout); unsigned int obd_dump_on_timeout; @@ -132,25 +130,6 @@ int lustre_get_jobid(char *jobid) } EXPORT_SYMBOL(lustre_get_jobid); -int obd_alloc_fail(const void *ptr, const char *name, const char *type, - size_t size, const char *file, int line) -{ - if (ptr == NULL || - (cfs_rand() & OBD_ALLOC_FAIL_MASK) < obd_alloc_fail_rate) { - CERROR("%s%salloc of %s (%llu bytes) failed at %s:%d\n", - ptr ? "force " : "", type, name, (__u64)size, file, - line); - CERROR("%llu total bytes and %llu total pages" - " (%llu bytes) allocated by Lustre\n", - obd_memory_sum(), - obd_pages_sum() << PAGE_CACHE_SHIFT, - obd_pages_sum()); - return 1; - } - return 0; -} -EXPORT_SYMBOL(obd_alloc_fail); - static inline void obd_data2conn(struct lustre_handle *conn, struct obd_ioctl_data *data) { From 9ea9d6652b1e8d8f9299ec4dcfb9e20499923b2f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:06 -0400 Subject: [PATCH 0445/2431] staging/lustre: Remove lustre used memory tracking framework Lustre memory allocation framework has a feature to track amount of allocated memory, but since it's not being used consistently anymore and is on the way out in general, just remove it. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/obd_support.h | 60 +---------------- .../lustre/lustre/obdclass/class_obd.c | 64 ------------------- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 2 - 3 files changed, 1 insertion(+), 125 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 3d92f19c0017..62d76b5031b6 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -494,50 +494,6 @@ extern char obd_jobid_var[]; #define OBD_FAIL_ONCE CFS_FAIL_ONCE #define OBD_FAILED CFS_FAILED -void obd_update_maxusage(void); - -#define obd_memory_add(size) \ - lprocfs_counter_add(obd_memory, OBD_MEMORY_STAT, (long)(size)) -#define obd_memory_sub(size) \ - lprocfs_counter_sub(obd_memory, OBD_MEMORY_STAT, (long)(size)) -#define obd_memory_sum() \ - lprocfs_stats_collector(obd_memory, OBD_MEMORY_STAT, \ - LPROCFS_FIELDS_FLAGS_SUM) -#define obd_pages_add(order) \ - lprocfs_counter_add(obd_memory, OBD_MEMORY_PAGES_STAT, \ - (long)(1 << (order))) -#define obd_pages_sub(order) \ - lprocfs_counter_sub(obd_memory, OBD_MEMORY_PAGES_STAT, \ - (long)(1 << (order))) -#define obd_pages_sum() \ - lprocfs_stats_collector(obd_memory, OBD_MEMORY_PAGES_STAT, \ - LPROCFS_FIELDS_FLAGS_SUM) - -__u64 obd_memory_max(void); -__u64 obd_pages_max(void); - -#define OBD_DEBUG_MEMUSAGE (1) - -#if OBD_DEBUG_MEMUSAGE -#define OBD_ALLOC_POST(ptr, size, name) \ - obd_memory_add(size); \ - CDEBUG(D_MALLOC, name " '" #ptr "': %d at %p.\n", \ - (int)(size), ptr) - -#define OBD_FREE_PRE(ptr, size, name) \ - LASSERT(ptr); \ - obd_memory_sub(size); \ - CDEBUG(D_MALLOC, name " '" #ptr "': %d at %p.\n", \ - (int)(size), ptr); \ - POISON(ptr, 0x5a, size) - -#else /* !OBD_DEBUG_MEMUSAGE */ - -#define OBD_ALLOC_POST(ptr, size, name) ((void)0) -#define OBD_FREE_PRE(ptr, size, name) ((void)0) - -#endif /* !OBD_DEBUG_MEMUSAGE */ - #ifdef CONFIG_DEBUG_SLAB #define POISON(ptr, c, s) do {} while (0) #define POISON_PTR(ptr) ((void)0) @@ -583,8 +539,6 @@ do { \ kmem_cache_alloc(slab, type | __GFP_ZERO) : \ kmem_cache_alloc_node(slab, type | __GFP_ZERO, \ cfs_cpt_spread_node(cptab, cpt)); \ - if (likely(ptr)) \ - OBD_ALLOC_POST(ptr, size, "slab-alloced"); \ } while (0) #define OBD_SLAB_ALLOC_GFP(ptr, slab, size, flags) \ @@ -594,7 +548,6 @@ do { \ #define OBD_SLAB_FREE(ptr, slab, size) \ do { \ - OBD_FREE_PRE(ptr, size, "slab-freed"); \ kmem_cache_free(slab, ptr); \ POISON_PTR(ptr); \ } while (0) @@ -629,17 +582,7 @@ do { \ (ptr) = (cptab) == NULL ? \ alloc_page(gfp_mask) : \ alloc_pages_node(cfs_cpt_spread_node(cptab, cpt), gfp_mask, 0);\ - if (unlikely((ptr) == NULL)) { \ - CERROR("alloc_pages of '" #ptr "' %d page(s) / %llu bytes "\ - "failed\n", (int)1, \ - (__u64)(1 << PAGE_CACHE_SHIFT)); \ - CERROR("%llu total bytes and %llu total pages " \ - "(%llu bytes) allocated by Lustre\n", \ - obd_memory_sum(), \ - obd_pages_sum() << PAGE_CACHE_SHIFT, \ - obd_pages_sum()); \ - } else { \ - obd_pages_add(0); \ + if (ptr) { \ CDEBUG(D_MALLOC, "alloc_pages '" #ptr "': %d page(s) / " \ "%llu bytes at %p.\n", \ (int)1, \ @@ -655,7 +598,6 @@ do { \ #define OBD_PAGE_FREE(ptr) \ do { \ LASSERT(ptr); \ - obd_pages_sub(0); \ CDEBUG(D_MALLOC, "free_pages '" #ptr "': %d page(s) / %llu bytes " \ "at %p.\n", \ (int)1, (__u64)(1 << PAGE_CACHE_SHIFT), \ diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index fb4138c2cd74..32daefb1c5fa 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -53,16 +53,6 @@ EXPORT_SYMBOL(obd_devs); struct list_head obd_types; DEFINE_RWLOCK(obd_dev_lock); -__u64 obd_max_pages; -EXPORT_SYMBOL(obd_max_pages); -__u64 obd_max_alloc; -EXPORT_SYMBOL(obd_max_alloc); -__u64 obd_alloc; -EXPORT_SYMBOL(obd_alloc); -__u64 obd_pages; -EXPORT_SYMBOL(obd_pages); -static DEFINE_SPINLOCK(obd_updatemax_lock); - /* The following are visible and mutable through /proc/sys/lustre/. */ unsigned int obd_debug_peer_on_timeout; EXPORT_SYMBOL(obd_debug_peer_on_timeout); @@ -572,54 +562,12 @@ static int __init init_obdclass(void) return err; } -void obd_update_maxusage(void) -{ - __u64 max1, max2; - - max1 = obd_pages_sum(); - max2 = obd_memory_sum(); - - spin_lock(&obd_updatemax_lock); - if (max1 > obd_max_pages) - obd_max_pages = max1; - if (max2 > obd_max_alloc) - obd_max_alloc = max2; - spin_unlock(&obd_updatemax_lock); -} -EXPORT_SYMBOL(obd_update_maxusage); - -__u64 obd_memory_max(void) -{ - __u64 ret; - - spin_lock(&obd_updatemax_lock); - ret = obd_max_alloc; - spin_unlock(&obd_updatemax_lock); - - return ret; -} -EXPORT_SYMBOL(obd_memory_max); - -__u64 obd_pages_max(void) -{ - __u64 ret; - - spin_lock(&obd_updatemax_lock); - ret = obd_max_pages; - spin_unlock(&obd_updatemax_lock); - - return ret; -} -EXPORT_SYMBOL(obd_pages_max); - /* liblustre doesn't call cleanup_obdclass, apparently. we carry on in this * ifdef to the end of the file to cover module and versioning goo.*/ static void cleanup_obdclass(void) { int i; int lustre_unregister_fs(void); - __u64 memory_leaked, pages_leaked; - __u64 memory_max, pages_max; lustre_unregister_fs(); @@ -645,19 +593,7 @@ static void cleanup_obdclass(void) class_exit_uuidlist(); obd_zombie_impexp_stop(); - memory_leaked = obd_memory_sum(); - pages_leaked = obd_pages_sum(); - - memory_max = obd_memory_max(); - pages_max = obd_pages_max(); - lprocfs_free_stats(&obd_memory); - CDEBUG((memory_leaked) ? D_ERROR : D_INFO, - "obd_memory max: %llu, leaked: %llu\n", - memory_max, memory_leaked); - CDEBUG((pages_leaked) ? D_ERROR : D_INFO, - "obd_memory_pages max: %llu, leaked: %llu\n", - pages_max, pages_leaked); } MODULE_AUTHOR("Sun Microsystems, Inc. "); diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index d3aea4a85256..6cd4cfa58c27 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pinger.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pinger.c @@ -266,8 +266,6 @@ static int ptlrpc_pinger_main(void *arg) ptlrpc_update_next_ping(imp, 0); } mutex_unlock(&pinger_mutex); - /* update memory usage info */ - obd_update_maxusage(); /* Wait until the next ping time, or until we're stopped. */ time_to_next_wake = pinger_check_timeout(this_ping); From bea5820d7ad868ba4e4096b259fd8d5a359f6feb Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:07 -0400 Subject: [PATCH 0446/2431] staging/lustre: remove obd_memory stats counter Now that we no longer track allocated memory, remove obd_memory statistics counter and all references to it everywhere Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/obd_support.h | 7 ------- .../staging/lustre/lustre/obdclass/class_obd.c | 18 ------------------ .../lustre/lustre/obdclass/lprocfs_counters.c | 9 --------- .../lustre/lustre/obdclass/lprocfs_status.c | 2 +- 4 files changed, 1 insertion(+), 35 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 62d76b5031b6..80ab85d7ec3c 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -43,13 +43,6 @@ #include "lprocfs_status.h" /* global variables */ -extern struct lprocfs_stats *obd_memory; -enum { - OBD_MEMORY_STAT = 0, - OBD_MEMORY_PAGES_STAT = 1, - OBD_STATS_NUM, -}; - extern unsigned int obd_debug_peer_on_timeout; extern unsigned int obd_dump_on_timeout; extern unsigned int obd_dump_on_eviction; diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index 32daefb1c5fa..39bf734e9298 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -487,22 +487,6 @@ static int __init init_obdclass(void) spin_lock_init(&obd_types_lock); obd_zombie_impexp_init(); - obd_memory = lprocfs_alloc_stats(OBD_STATS_NUM, - LPROCFS_STATS_FLAG_NONE | - LPROCFS_STATS_FLAG_IRQ_SAFE); - - if (obd_memory == NULL) { - CERROR("kmalloc of 'obd_memory' failed\n"); - return -ENOMEM; - } - - lprocfs_counter_init(obd_memory, OBD_MEMORY_STAT, - LPROCFS_CNTR_AVGMINMAX, - "memused", "bytes"); - lprocfs_counter_init(obd_memory, OBD_MEMORY_PAGES_STAT, - LPROCFS_CNTR_AVGMINMAX, - "pagesused", "pages"); - err = obd_init_checks(); if (err == -EOVERFLOW) return err; @@ -592,8 +576,6 @@ static void cleanup_obdclass(void) class_handle_cleanup(); class_exit_uuidlist(); obd_zombie_impexp_stop(); - - lprocfs_free_stats(&obd_memory); } MODULE_AUTHOR("Sun Microsystems, Inc. "); diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c index 1f0004c5554b..6acc4a10fde9 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_counters.c @@ -41,9 +41,6 @@ #include "../include/lprocfs_status.h" #include "../include/obd_support.h" -struct lprocfs_stats *obd_memory; -EXPORT_SYMBOL(obd_memory); - void lprocfs_counter_add(struct lprocfs_stats *stats, int idx, long amount) { struct lprocfs_counter *percpu_cntr; @@ -74,9 +71,6 @@ void lprocfs_counter_add(struct lprocfs_stats *stats, int idx, long amount) * ldlm_pool_shrink(), which calls lprocfs_counter_add(). * LU-1727. * - * Only obd_memory uses LPROCFS_STATS_FLAG_IRQ_SAFE - * flag, because it needs accurate counting lest memory leak - * check reports error. */ if (in_interrupt() && (stats->ls_flags & LPROCFS_STATS_FLAG_IRQ_SAFE) != 0) @@ -124,9 +118,6 @@ void lprocfs_counter_sub(struct lprocfs_stats *stats, int idx, long amount) * softirq context here, use separate counter for that. * bz20650. * - * Only obd_memory uses LPROCFS_STATS_FLAG_IRQ_SAFE - * flag, because it needs accurate counting lest memory leak - * check reports error. */ if (in_interrupt() && (stats->ls_flags & LPROCFS_STATS_FLAG_IRQ_SAFE) != 0) diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 08d1f0edf98d..8d2a523ea7cf 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -1082,7 +1082,7 @@ struct lprocfs_stats *lprocfs_alloc_stats(unsigned int num, goto fail; stats->ls_biggest_alloc_num = 1; } else if ((flags & LPROCFS_STATS_FLAG_IRQ_SAFE) != 0) { - /* alloc all percpu data, currently only obd_memory use this */ + /* alloc all percpu data */ for (i = 0; i < num_entry; ++i) if (lprocfs_stats_alloc_one(stats, i) < 0) goto fail; From 15b441cd9f7b802b38bf83c8bebabc7a69ec6fc5 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:08 -0400 Subject: [PATCH 0447/2431] staging/lustre: Remove IS_SERVER and all users Since the client can never be server, this is all dead code. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_disk.h | 2 - .../staging/lustre/lustre/mgc/mgc_request.c | 36 ++------ .../lustre/lustre/obdclass/obd_mount.c | 85 +++---------------- 3 files changed, 20 insertions(+), 103 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 131985d3081a..3f404a2edc76 100644 --- a/drivers/staging/lustre/lustre/include/lustre_disk.h +++ b/drivers/staging/lustre/lustre/include/lustre_disk.h @@ -180,8 +180,6 @@ struct lustre_disk_data { #define IS_MDT(data) ((data)->lsi_flags & LDD_F_SV_TYPE_MDT) #define IS_OST(data) ((data)->lsi_flags & LDD_F_SV_TYPE_OST) #define IS_MGS(data) ((data)->lsi_flags & LDD_F_SV_TYPE_MGS) -#define IS_SERVER(data) ((data)->lsi_flags & (LDD_F_SV_TYPE_MGS | \ - LDD_F_SV_TYPE_MDT | LDD_F_SV_TYPE_OST)) #define MT_STR(data) mt_str((data)->ldd_mount_type) /* Make the mdt/ost server obd name based on the filesystem name */ diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index 019ee2f256aa..f57d435e3a6b 100644 --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c +++ b/drivers/staging/lustre/lustre/mgc/mgc_request.c @@ -263,14 +263,8 @@ static struct config_llog_data *config_recover_log_add(struct obd_device *obd, * where only clients are notified if one of cmd server restarts */ LASSERT(strlen(fsname) < sizeof(logname) / 2); strcpy(logname, fsname); - if (IS_SERVER(lsi)) { /* mdt */ - LASSERT(lcfg.cfg_instance == NULL); - lcfg.cfg_instance = sb; - strcat(logname, "-mdtir"); - } else { - LASSERT(lcfg.cfg_instance != NULL); - strcat(logname, "-cliir"); - } + LASSERT(lcfg.cfg_instance); + strcat(logname, "-cliir"); cld = do_config_log_add(obd, logname, CONFIG_T_RECOVER, &lcfg, sb); return cld; @@ -899,12 +893,6 @@ static int mgc_enqueue(struct obd_export *exp, struct lov_stripe_md *lsm, req_capsule_set_size(&req->rq_pill, &RMF_DLM_LVB, RCL_SERVER, 0); ptlrpc_request_set_replen(req); - /* check if this is server or client */ - if (cld->cld_cfg.cfg_sb) { - struct lustre_sb_info *lsi = s2lsi(cld->cld_cfg.cfg_sb); - if (lsi && IS_SERVER(lsi)) - short_limit = 1; - } /* Limit how long we will wait for the enqueue to complete */ req->rq_delay_limit = short_limit ? 5 : MGC_ENQUEUE_LIMIT; rc = ldlm_cli_enqueue(exp, &req, &einfo, &cld->cld_resid, NULL, flags, @@ -1112,7 +1100,6 @@ static int mgc_apply_recover_logs(struct obd_device *mgc, void *data, int datalen, bool mne_swab) { struct config_llog_instance *cfg = &cld->cld_cfg; - struct lustre_sb_info *lsi = s2lsi(cfg->cfg_sb); struct mgs_nidtbl_entry *entry; struct lustre_cfg *lcfg; struct lustre_cfg_bufs bufs; @@ -1131,21 +1118,10 @@ static int mgc_apply_recover_logs(struct obd_device *mgc, if (!inst) return -ENOMEM; - if (!IS_SERVER(lsi)) { - pos = snprintf(inst, PAGE_CACHE_SIZE, "%p", cfg->cfg_instance); - if (pos >= PAGE_CACHE_SIZE) { - kfree(inst); - return -E2BIG; - } - } else { - LASSERT(IS_MDT(lsi)); - rc = server_name2svname(lsi->lsi_svname, inst, NULL, - PAGE_CACHE_SIZE); - if (rc) { - kfree(inst); - return -EINVAL; - } - pos = strlen(inst); + pos = snprintf(inst, PAGE_CACHE_SIZE, "%p", cfg->cfg_instance); + if (pos >= PAGE_CACHE_SIZE) { + kfree(inst); + return -E2BIG; } ++pos; diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index 3c66dbdbf076..1db4669262b0 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -216,29 +216,10 @@ int lustre_start_mgc(struct super_block *sb) LASSERT(lsi->lsi_lmd); - /* Find the first non-lo MGS nid for our MGC name */ - if (IS_SERVER(lsi)) { - /* mount -o mgsnode=nid */ - ptr = lsi->lsi_lmd->lmd_mgs; - if (lsi->lsi_lmd->lmd_mgs && - (class_parse_nid(lsi->lsi_lmd->lmd_mgs, &nid, &ptr) == 0)) { - i++; - } else if (IS_MGS(lsi)) { - lnet_process_id_t id; - while ((rc = LNetGetId(i++, &id)) != -ENOENT) { - if (LNET_NETTYP(LNET_NIDNET(id.nid)) == LOLND) - continue; - nid = id.nid; - i++; - break; - } - } - } else { /* client */ - /* Use nids from mount line: uml1,1@elan:uml2,2@elan:/lustre */ - ptr = lsi->lsi_lmd->lmd_dev; - if (class_parse_nid(ptr, &nid, &ptr) == 0) - i++; - } + /* Use nids from mount line: uml1,1@elan:uml2,2@elan:/lustre */ + ptr = lsi->lsi_lmd->lmd_dev; + if (class_parse_nid(ptr, &nid, &ptr) == 0) + i++; if (i == 0) { CERROR("No valid MGS nids found.\n"); return -EINVAL; @@ -326,45 +307,15 @@ int lustre_start_mgc(struct super_block *sb) /* Add the primary nids for the MGS */ i = 0; - if (IS_SERVER(lsi)) { - ptr = lsi->lsi_lmd->lmd_mgs; - if (IS_MGS(lsi)) { - /* Use local nids (including LO) */ - lnet_process_id_t id; - while ((rc = LNetGetId(i++, &id)) != -ENOENT) { - rc = do_lcfg(mgcname, id.nid, - LCFG_ADD_UUID, niduuid, - NULL, NULL, NULL); - } - } else { - /* Use mgsnode= nids */ - /* mount -o mgsnode=nid */ - if (lsi->lsi_lmd->lmd_mgs) { - ptr = lsi->lsi_lmd->lmd_mgs; - } else if (class_find_param(ptr, PARAM_MGSNODE, - &ptr) != 0) { - CERROR("No MGS nids given.\n"); - rc = -EINVAL; - goto out_free; - } - while (class_parse_nid(ptr, &nid, &ptr) == 0) { - rc = do_lcfg(mgcname, nid, - LCFG_ADD_UUID, niduuid, - NULL, NULL, NULL); - i++; - } - } - } else { /* client */ - /* Use nids from mount line: uml1,1@elan:uml2,2@elan:/lustre */ - ptr = lsi->lsi_lmd->lmd_dev; - while (class_parse_nid(ptr, &nid, &ptr) == 0) { - rc = do_lcfg(mgcname, nid, - LCFG_ADD_UUID, niduuid, NULL, NULL, NULL); - i++; - /* Stop at the first failover nid */ - if (*ptr == ':') - break; - } + /* Use nids from mount line: uml1,1@elan:uml2,2@elan:/lustre */ + ptr = lsi->lsi_lmd->lmd_dev; + while (class_parse_nid(ptr, &nid, &ptr) == 0) { + rc = do_lcfg(mgcname, nid, + LCFG_ADD_UUID, niduuid, NULL, NULL, NULL); + i++; + /* Stop at the first failover nid */ + if (*ptr == ':') + break; } if (i == 0) { CERROR("No valid MGS nids found.\n"); @@ -610,14 +561,6 @@ int lustre_put_lsi(struct super_block *sb) CDEBUG(D_MOUNT, "put %p %d\n", sb, atomic_read(&lsi->lsi_mounts)); if (atomic_dec_and_test(&lsi->lsi_mounts)) { - if (IS_SERVER(lsi) && lsi->lsi_osd_exp) { - lu_device_put(&lsi->lsi_dt_dev->dd_lu_dev); - lsi->lsi_osd_exp->exp_obd->obd_lvfs_ctxt.dt = NULL; - lsi->lsi_dt_dev = NULL; - obd_disconnect(lsi->lsi_osd_exp); - /* wait till OSD is gone */ - obd_zombie_barrier(); - } lustre_free_lsi(sb); return 1; } @@ -1267,7 +1210,7 @@ static void lustre_kill_super(struct super_block *sb) { struct lustre_sb_info *lsi = s2lsi(sb); - if (kill_super_cb && lsi && !IS_SERVER(lsi)) + if (kill_super_cb && lsi) (*kill_super_cb)(sb); kill_anon_super(sb); From aa2d3e81a47ebbba0738c039dcc9df5045168cd9 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:09 -0400 Subject: [PATCH 0448/2431] staging/lustre: remove IS_MDS|IS_OST|IS_MGS defines and users These could only happen on the server, so they make no sense on the client. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_disk.h | 3 --- drivers/staging/lustre/lustre/mgc/mgc_request.c | 8 -------- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 6 ------ 3 files changed, 17 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 3f404a2edc76..859007c69b56 100644 --- a/drivers/staging/lustre/lustre/include/lustre_disk.h +++ b/drivers/staging/lustre/lustre/include/lustre_disk.h @@ -177,9 +177,6 @@ struct lustre_disk_data { }; -#define IS_MDT(data) ((data)->lsi_flags & LDD_F_SV_TYPE_MDT) -#define IS_OST(data) ((data)->lsi_flags & LDD_F_SV_TYPE_OST) -#define IS_MGS(data) ((data)->lsi_flags & LDD_F_SV_TYPE_MGS) #define MT_STR(data) mt_str((data)->ldd_mount_type) /* Make the mdt/ost server obd name based on the filesystem name */ diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index f57d435e3a6b..9e36642b6ad2 100644 --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c +++ b/drivers/staging/lustre/lustre/mgc/mgc_request.c @@ -248,17 +248,9 @@ static struct config_llog_data *config_recover_log_add(struct obd_device *obd, struct super_block *sb) { struct config_llog_instance lcfg = *cfg; - struct lustre_sb_info *lsi = s2lsi(sb); struct config_llog_data *cld; char logname[32]; - if (IS_OST(lsi)) - return NULL; - - /* for osp-on-ost, see lustre_start_osp() */ - if (IS_MDT(lsi) && lcfg.cfg_instance) - return NULL; - /* we have to use different llog for clients and mdts for cmd * where only clients are notified if one of cmd server restarts */ LASSERT(strlen(fsname) < sizeof(logname) / 2); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index 1db4669262b0..16009a6867c9 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -281,12 +281,6 @@ int lustre_start_mgc(struct super_block *sb) } recov_bk = 0; - /* If we are restarting the MGS, don't try to keep the MGC's - old connection, or registration will fail. */ - if (IS_MGS(lsi)) { - CDEBUG(D_MOUNT, "New MGS with live MGC\n"); - recov_bk = 1; - } /* Try all connections, but only once (again). We don't want to block another target from starting From f1c4ad3a2e1fbd0ec0ae3ec16efe788df502adcd Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:10 -0400 Subject: [PATCH 0449/2431] staging/lustre: Remove server defines from lustre_disk.h Take initial stab at removing server-disk related defines that client does not need. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_disk.h | 137 ------------------ .../lustre/lustre/obdclass/llog_internal.h | 8 - 2 files changed, 145 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 859007c69b56..ec33259ca7df 100644 --- a/drivers/staging/lustre/lustre/include/lustre_disk.h +++ b/drivers/staging/lustre/lustre/include/lustre_disk.h @@ -52,24 +52,6 @@ #include "../../include/linux/lnet/types.h" #include -/****************** on-disk files *********************/ - -#define MDT_LOGS_DIR "LOGS" /* COMPAT_146 */ -#define MOUNT_CONFIGS_DIR "CONFIGS" -#define CONFIGS_FILE "mountdata" -/** Persistent mount data are stored on the disk in this file. */ -#define MOUNT_DATA_FILE MOUNT_CONFIGS_DIR"/"CONFIGS_FILE -#define LAST_RCVD "last_rcvd" -#define LOV_OBJID "lov_objid" -#define LOV_OBJSEQ "lov_objseq" -#define HEALTH_CHECK "health_check" -#define CAPA_KEYS "capa_keys" -#define CHANGELOG_USERS "changelog_users" -#define MGS_NIDTBL_DIR "NIDTBL_VERSIONS" -#define QMT_DIR "quota_master" -#define QSD_DIR "quota_slave" -#define HSM_ACTIONS "hsm_actions" - /****************** persistent mount data *********************/ #define LDD_F_SV_TYPE_MDT 0x0001 @@ -79,125 +61,6 @@ LDD_F_SV_TYPE_OST | \ LDD_F_SV_TYPE_MGS) #define LDD_F_SV_ALL 0x0008 -/** need an index assignment */ -#define LDD_F_NEED_INDEX 0x0010 -/** never registered */ -#define LDD_F_VIRGIN 0x0020 -/** update the config logs for this server */ -#define LDD_F_UPDATE 0x0040 -/** rewrite the LDD */ -#define LDD_F_REWRITE_LDD 0x0080 -/** regenerate config logs for this fs or server */ -#define LDD_F_WRITECONF 0x0100 -/** COMPAT_14 */ -#define LDD_F_UPGRADE14 0x0200 -/** process as lctl conf_param */ -#define LDD_F_PARAM 0x0400 -/** all nodes are specified as service nodes */ -#define LDD_F_NO_PRIMNODE 0x1000 -/** IR enable flag */ -#define LDD_F_IR_CAPABLE 0x2000 -/** the MGS refused to register the target. */ -#define LDD_F_ERROR 0x4000 -/** process at lctl conf_param */ -#define LDD_F_PARAM2 0x8000 - -/* opc for target register */ -#define LDD_F_OPC_REG 0x10000000 -#define LDD_F_OPC_UNREG 0x20000000 -#define LDD_F_OPC_READY 0x40000000 -#define LDD_F_OPC_MASK 0xf0000000 - -#define LDD_F_ONDISK_MASK (LDD_F_SV_TYPE_MASK) - -#define LDD_F_MASK 0xFFFF - -enum ldd_mount_type { - LDD_MT_EXT3 = 0, - LDD_MT_LDISKFS, - LDD_MT_SMFS, - LDD_MT_REISERFS, - LDD_MT_LDISKFS2, - LDD_MT_ZFS, - LDD_MT_LAST -}; - -static inline char *mt_str(enum ldd_mount_type mt) -{ - static char *mount_type_string[] = { - "ext3", - "ldiskfs", - "smfs", - "reiserfs", - "ldiskfs2", - "zfs", - }; - return mount_type_string[mt]; -} - -static inline char *mt_type(enum ldd_mount_type mt) -{ - static char *mount_type_string[] = { - "osd-ldiskfs", - "osd-ldiskfs", - "osd-smfs", - "osd-reiserfs", - "osd-ldiskfs", - "osd-zfs", - }; - return mount_type_string[mt]; -} - -#define LDD_INCOMPAT_SUPP 0 -#define LDD_ROCOMPAT_SUPP 0 - -#define LDD_MAGIC 0x1dd00001 - -/* On-disk configuration file. In host-endian order. */ -struct lustre_disk_data { - __u32 ldd_magic; - __u32 ldd_feature_compat; /* compatible feature flags */ - __u32 ldd_feature_rocompat;/* read-only compatible feature flags */ - __u32 ldd_feature_incompat;/* incompatible feature flags */ - - __u32 ldd_config_ver; /* config rewrite count - not used */ - __u32 ldd_flags; /* LDD_SV_TYPE */ - __u32 ldd_svindex; /* server index (0001), must match - svname */ - __u32 ldd_mount_type; /* target fs type LDD_MT_* */ - char ldd_fsname[64]; /* filesystem this server is part of, - MTI_NAME_MAXLEN */ - char ldd_svname[64]; /* this server's name (lustre-mdt0001)*/ - __u8 ldd_uuid[40]; /* server UUID (COMPAT_146) */ - -/*200*/ char ldd_userdata[1024 - 200]; /* arbitrary user string */ -/*1024*/__u8 ldd_padding[4096 - 1024]; -/*4096*/char ldd_mount_opts[4096]; /* target fs mount opts */ -/*8192*/char ldd_params[4096]; /* key=value pairs */ -}; - - -#define MT_STR(data) mt_str((data)->ldd_mount_type) - -/* Make the mdt/ost server obd name based on the filesystem name */ -static inline int server_make_name(__u32 flags, __u16 index, char *fs, - char *name) -{ - if (flags & (LDD_F_SV_TYPE_MDT | LDD_F_SV_TYPE_OST)) { - if (!(flags & LDD_F_SV_ALL)) - sprintf(name, "%.8s%c%s%04x", fs, - (flags & LDD_F_VIRGIN) ? ':' : - ((flags & LDD_F_WRITECONF) ? '=' : '-'), - (flags & LDD_F_SV_TYPE_MDT) ? "MDT" : "OST", - index); - } else if (flags & LDD_F_SV_TYPE_MGS) { - sprintf(name, "MGS"); - } else { - CERROR("unknown server type %#x\n", flags); - return 1; - } - return 0; -} /****************** mount command *********************/ diff --git a/drivers/staging/lustre/lustre/obdclass/llog_internal.h b/drivers/staging/lustre/lustre/obdclass/llog_internal.h index 5332131a2a2e..c99e658e5657 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_internal.h +++ b/drivers/staging/lustre/lustre/obdclass/llog_internal.h @@ -71,14 +71,6 @@ static inline struct llog_thread_info *llog_info(const struct lu_env *env) return lgi; } -static inline void -lustre_build_llog_lvfs_oid(struct llog_logid *logid, __u64 ino, __u32 gen) -{ - ostid_set_seq_llog(&logid->lgl_oi); - ostid_set_id(&logid->lgl_oi, ino); - logid->lgl_ogen = gen; -} - int llog_info_init(void); void llog_info_fini(void); From 59cfb96fcdcc53ead9ca2ef766e6bd91a09615eb Mon Sep 17 00:00:00 2001 From: Anjali Menon Date: Wed, 16 Sep 2015 17:12:21 +0530 Subject: [PATCH 0450/2431] staging: lustre: lnet: lnet: Removed a space Removed a space to fix the following coding style warning detected by checkpatch: WARNING: space prohibited between function name and open parenthesis '(' Signed-off-by: Anjali Menon Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/router.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c index 4fbae5ef44a9..75ff382b9342 100644 --- a/drivers/staging/lustre/lnet/lnet/router.c +++ b/drivers/staging/lustre/lnet/lnet/router.c @@ -1497,7 +1497,7 @@ lnet_notify(lnet_ni_t *ni, lnet_nid_t nid, int alive, unsigned long when) unsigned long now = cfs_time_current(); int cpt = lnet_cpt_of_nid(nid); - LASSERT(!in_interrupt ()); + LASSERT(!in_interrupt()); CDEBUG(D_NET, "%s notifying %s: %s\n", (ni == NULL) ? "userspace" : libcfs_nid2str(ni->ni_nid), From 2877f245cf13d4cc6be4dab149d3d2f239ce8cd6 Mon Sep 17 00:00:00 2001 From: Juston Li Date: Wed, 16 Sep 2015 19:51:56 -0700 Subject: [PATCH 0451/2431] staging/lustre: use __noreturn for lbug_with_loc fixes sparse error: drivers/staging/lustre/lustre/libcfs/linux/linux-debug.c:149:6: error: symbol 'lbug_with_loc'redeclared with different type (originally declared at drivers/staging/lustre/lustre/libcfs/linux/../../../include/linux/libcfs/libcfs_private.h:82) - different modifiers Use the __noreturn macro instead of __attribute__((noreturn)) The macro is exactly that but its usage seems more common and it is bit more readable. Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/include/linux/libcfs/libcfs_private.h | 2 +- drivers/staging/lustre/lustre/libcfs/linux/linux-debug.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_private.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_private.h index 9544860e3292..6af733de69ca 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_private.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_private.h @@ -79,7 +79,7 @@ do { \ #define KLASSERT(e) LASSERT(e) -void lbug_with_loc(struct libcfs_debug_msg_data *)__attribute__((noreturn)); +void __noreturn lbug_with_loc(struct libcfs_debug_msg_data *); #define LBUG() \ do { \ diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-debug.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-debug.c index 4545d54f71c6..8689ea757c99 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-debug.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-debug.c @@ -146,7 +146,7 @@ void libcfs_run_lbug_upcall(struct libcfs_debug_msg_data *msgdata) } /* coverity[+kill] */ -void lbug_with_loc(struct libcfs_debug_msg_data *msgdata) +void __noreturn lbug_with_loc(struct libcfs_debug_msg_data *msgdata) { libcfs_catastrophe = 1; libcfs_debug_msg(msgdata, "LBUG\n"); From efc0cfa1341b9718b8bf295641e2bf909fe215ba Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 15 Sep 2015 14:28:18 +0530 Subject: [PATCH 0452/2431] Staging: most: aim-network: Replace pr_info with netdev_info Use netdev_* family of macros when there is reference to a network device. dev->name is removed as netdev_info will print the device name Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-network/networking.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index a1e1bce16296..cbda189eba2f 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -186,7 +186,7 @@ static int most_nd_open(struct net_device *dev) { struct net_dev_context *nd = dev->ml_priv; - pr_info("open net device %s\n", dev->name); + netdev_info(dev, "open net device\n"); BUG_ON(nd->dev != dev); @@ -196,12 +196,12 @@ static int most_nd_open(struct net_device *dev) BUG_ON(!nd->tx.linked || !nd->rx.linked); if (most_start_channel(nd->iface, nd->rx.ch_id)) { - pr_err("most_start_channel() failed\n"); + netdev_err(dev, "most_start_channel() failed\n"); return -EBUSY; } if (most_start_channel(nd->iface, nd->tx.ch_id)) { - pr_err("most_start_channel() failed\n"); + netdev_err(dev, "most_start_channel() failed\n"); most_stop_channel(nd->iface, nd->rx.ch_id); return -EBUSY; } @@ -222,7 +222,7 @@ static int most_nd_stop(struct net_device *dev) { struct net_dev_context *nd = dev->ml_priv; - pr_info("stop net device %s\n", dev->name); + netdev_info(dev, "stop net device\n"); BUG_ON(nd->dev != dev); netif_stop_queue(dev); @@ -281,7 +281,7 @@ static const struct net_device_ops most_nd_ops = { static void most_nd_setup(struct net_device *dev) { - pr_info("setup net device %s\n", dev->name); + netdev_info(dev, "setup net device\n"); ether_setup(dev); dev->netdev_ops = &most_nd_ops; } From 2b4738c0b416b7578a09dde83ac02a1194b4d25f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 16 Sep 2015 10:43:46 +0900 Subject: [PATCH 0453/2431] staging: wilc1000: remove PANDA_BOARD This patch removes one of the platform dependencies, PANDA_BOARD from the driver codes. The device tree will provide the platform dependencies in the future commits. Signed-off-by: Tony Cho Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 4 ---- drivers/staging/wilc1000/linux_wlan_common.h | 3 --- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 ---- 3 files changed, 11 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 6ad8cd5a7661..bd77eb3682f0 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -435,10 +435,6 @@ static int init_irq(linux_wlan_t *p_nic) * * ex) nic->dev_irq_num = gpio_to_irq(GPIO_NUM); */ -#elif defined(PANDA_BOARD) - gpio_export(GPIO_NUM, 1); - nic->dev_irq_num = OMAP_GPIO_IRQ(GPIO_NUM); - irq_set_irq_type(nic->dev_irq_num, IRQ_TYPE_LEVEL_LOW); #else nic->dev_irq_num = gpio_to_irq(GPIO_NUM); #endif diff --git a/drivers/staging/wilc1000/linux_wlan_common.h b/drivers/staging/wilc1000/linux_wlan_common.h index ea121f9b7fb0..5d13c1519350 100644 --- a/drivers/staging/wilc1000/linux_wlan_common.h +++ b/drivers/staging/wilc1000/linux_wlan_common.h @@ -145,9 +145,6 @@ extern atomic_t DEBUG_LEVEL; #define MODALIAS "wilc_spi3" #define GPIO_NUM 133 #endif -#elif defined(PANDA_BOARD) - #define MODALIAS "WILC_SPI" - #define GPIO_NUM 139 #elif defined(PLAT_WMS8304) /* rachel */ #define MODALIAS "wilc_spi" #define GPIO_NUM 139 diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 6ea5c87fe650..904d9c3ba793 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -80,11 +80,7 @@ struct WILC_WFI_stats { * LPC3131 which is important to get the MAC start status when you are blocked * inside linux_wlan_firmware_download() which blocks mac_open(). */ -#if defined(PANDA_BOARD) - #define RX_BH_TYPE RX_BH_THREADED_IRQ -#else #define RX_BH_TYPE RX_BH_KTHREAD -#endif struct wilc_wfi_key { u8 *key; From d30244a032f2e05e5125b45f20648ebe7dec2798 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:47 +0900 Subject: [PATCH 0454/2431] staging: wilc1000: remove useless define PHY_802_11n The define PHY_802_11n is useless because wilc1000 support 802.11n as always. Remove PHY_802_11n and it related code. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 8164a33c6732..c46fe9f1bc88 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -17,7 +17,6 @@ /* Constants */ /*****************************************************************************/ #define INLINE static __inline -#define PHY_802_11n #define MAX_CFG_PKTLEN 1450 #define MSG_HEADER_LEN 4 #define QUERY_MSG_TYPE 'Q' @@ -551,7 +550,6 @@ u8 get_current_channel_802_11n(u8 *pu8msa, u16 u16RxLen) u8 get_current_channel(u8 *pu8msa, u16 u16RxLen) { -#ifdef PHY_802_11n #ifdef FIVE_GHZ_BAND /* Get the current channel as its not set in */ /* 802.11a beacons/probe response */ @@ -561,9 +559,6 @@ u8 get_current_channel(u8 *pu8msa, u16 u16RxLen) /* the beacon/probe response frame */ return get_current_channel_802_11n(pu8msa, u16RxLen); #endif /* FIVE_GHZ_BAND */ -#else - return 0; -#endif /* PHY_802_11n */ } /** From d52979b3bbe4622b799c29cf2647b1d1e20d5336 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:48 +0900 Subject: [PATCH 0455/2431] staging: wilc1000: remove unnecessary define FIVE_GHZ_BAND wilc1000 driver does not support five Ghz band. Remove FIVE_GHZ_BAND and it's related code. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index c46fe9f1bc88..ac3da8863064 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -550,15 +550,9 @@ u8 get_current_channel_802_11n(u8 *pu8msa, u16 u16RxLen) u8 get_current_channel(u8 *pu8msa, u16 u16RxLen) { -#ifdef FIVE_GHZ_BAND - /* Get the current channel as its not set in */ - /* 802.11a beacons/probe response */ - return (get_rf_channel() + 1); -#else /* FIVE_GHZ_BAND */ /* Extract current channel information from */ /* the beacon/probe response frame */ return get_current_channel_802_11n(pu8msa, u16RxLen); -#endif /* FIVE_GHZ_BAND */ } /** From 20f44491070376150a9e68860129786869eff4a6 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:49 +0900 Subject: [PATCH 0456/2431] staging: wilc1000: remove unused defines This patch removes follwing unused defines. MAX_CFG_PKTLEN MSG_HEADER_LEN QUERY_MSG_TYPE WRITE_MSG_TYPE RESP_MSG_TYPE WRITE_RESP_SUCCESS INVALID MAC_ADDR_LEN Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index ac3da8863064..a0b0d97ba777 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -17,14 +17,6 @@ /* Constants */ /*****************************************************************************/ #define INLINE static __inline -#define MAX_CFG_PKTLEN 1450 -#define MSG_HEADER_LEN 4 -#define QUERY_MSG_TYPE 'Q' -#define WRITE_MSG_TYPE 'W' -#define RESP_MSG_TYPE 'R' -#define WRITE_RESP_SUCCESS 1 -#define INVALID 255 -#define MAC_ADDR_LEN 6 #define TAG_PARAM_OFFSET (MAC_HDR_LEN + TIME_STAMP_LEN + \ BEACON_INTERVAL_LEN + CAP_INFO_LEN) From b701da39edeaa6f3f209f76b8f965700090ad60f Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:50 +0900 Subject: [PATCH 0457/2431] staging: wilc1000: remove unnecessary extern function declaration Function NetworkInfoReceived, GnrlAsyncInfoReceived and host_int_ScanCompleteReceived are declared in the header file already. Just removes the declaration and comments. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index a0b0d97ba777..b514d095f0b8 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -136,14 +136,6 @@ typedef struct { /* Extern Variable Declarations */ /*****************************************************************************/ - -/*****************************************************************************/ -/* Extern Function Declarations */ -/*****************************************************************************/ -extern s32 SendRawPacket(s8 *ps8Packet, s32 s32PacketLen); -extern void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length); -extern void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length); -extern void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length); /*****************************************************************************/ /* Global Variables */ /*****************************************************************************/ From dd33a8651e2cd248dfd9e519ebca535c5974be55 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:51 +0900 Subject: [PATCH 0458/2431] staging: wilc1000: delete unused global variables. gstrConfigPktInfo, SemHandleSendPkt and SemHandlePktResp are never used in the drivers. So just delete the variables and it's related code. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index b514d095f0b8..7936b49a1488 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -139,12 +139,6 @@ typedef struct { /*****************************************************************************/ /* Global Variables */ /*****************************************************************************/ -static struct semaphore SemHandleSendPkt; -static struct semaphore SemHandlePktResp; - - -static tstrConfigPktInfo gstrConfigPktInfo; - /* WID Switches */ static tstrWID gastrWIDs[] = { {WID_FIRMWARE_VERSION, WID_STR}, @@ -476,11 +470,6 @@ s32 CoreConfiguratorInit(void) PRINT_D(CORECONFIG_DBG, "CoreConfiguratorInit()\n"); - sema_init(&SemHandleSendPkt, 1); - sema_init(&SemHandlePktResp, 0); - - - memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo)); return s32Error; } From 496a77257c67035fd56bf0faeb1a8251fc0c942a Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:52 +0900 Subject: [PATCH 0459/2431] staging: wilc1000: remove unused variables Variable g_num_total_switches is never used so just remove it. gastrWIDs is also not used because g_num_total_switches is deleted. Remove gastrWIDs also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 127 -------------------- drivers/staging/wilc1000/coreconfigurator.h | 2 - 2 files changed, 129 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 7936b49a1488..87d32ae30bf4 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -139,133 +139,6 @@ typedef struct { /*****************************************************************************/ /* Global Variables */ /*****************************************************************************/ -/* WID Switches */ -static tstrWID gastrWIDs[] = { - {WID_FIRMWARE_VERSION, WID_STR}, - {WID_PHY_VERSION, WID_STR}, - {WID_HARDWARE_VERSION, WID_STR}, - {WID_BSS_TYPE, WID_CHAR}, - {WID_QOS_ENABLE, WID_CHAR}, - {WID_11I_MODE, WID_CHAR}, - {WID_CURRENT_TX_RATE, WID_CHAR}, - {WID_LINKSPEED, WID_CHAR}, - {WID_RTS_THRESHOLD, WID_SHORT}, - {WID_FRAG_THRESHOLD, WID_SHORT}, - {WID_SSID, WID_STR}, - {WID_BSSID, WID_ADR}, - {WID_BEACON_INTERVAL, WID_SHORT}, - {WID_POWER_MANAGEMENT, WID_CHAR}, - {WID_LISTEN_INTERVAL, WID_CHAR}, - {WID_DTIM_PERIOD, WID_CHAR}, - {WID_CURRENT_CHANNEL, WID_CHAR}, - {WID_TX_POWER_LEVEL_11A, WID_CHAR}, - {WID_TX_POWER_LEVEL_11B, WID_CHAR}, - {WID_PREAMBLE, WID_CHAR}, - {WID_11G_OPERATING_MODE, WID_CHAR}, - {WID_MAC_ADDR, WID_ADR}, - {WID_IP_ADDRESS, WID_ADR}, - {WID_ACK_POLICY, WID_CHAR}, - {WID_PHY_ACTIVE_REG, WID_CHAR}, - {WID_AUTH_TYPE, WID_CHAR}, - {WID_REKEY_POLICY, WID_CHAR}, - {WID_REKEY_PERIOD, WID_INT}, - {WID_REKEY_PACKET_COUNT, WID_INT}, - {WID_11I_PSK, WID_STR}, - {WID_1X_KEY, WID_STR}, - {WID_1X_SERV_ADDR, WID_IP}, - {WID_SUPP_USERNAME, WID_STR}, - {WID_SUPP_PASSWORD, WID_STR}, - {WID_USER_CONTROL_ON_TX_POWER, WID_CHAR}, - {WID_MEMORY_ADDRESS, WID_INT}, - {WID_MEMORY_ACCESS_32BIT, WID_INT}, - {WID_MEMORY_ACCESS_16BIT, WID_SHORT}, - {WID_MEMORY_ACCESS_8BIT, WID_CHAR}, - {WID_SITE_SURVEY_RESULTS, WID_STR}, - {WID_PMKID_INFO, WID_STR}, - {WID_ASSOC_RES_INFO, WID_STR}, - {WID_MANUFACTURER, WID_STR}, /* 4 Wids added for the CAPI tool*/ - {WID_MODEL_NAME, WID_STR}, - {WID_MODEL_NUM, WID_STR}, - {WID_DEVICE_NAME, WID_STR}, - {WID_SSID_PROBE_REQ, WID_STR}, - -#ifdef MAC_802_11N - {WID_11N_ENABLE, WID_CHAR}, - {WID_11N_CURRENT_TX_MCS, WID_CHAR}, - {WID_TX_POWER_LEVEL_11N, WID_CHAR}, - {WID_11N_OPERATING_MODE, WID_CHAR}, - {WID_11N_SMPS_MODE, WID_CHAR}, - {WID_11N_PROT_MECH, WID_CHAR}, - {WID_11N_ERP_PROT_TYPE, WID_CHAR}, - {WID_11N_HT_PROT_TYPE, WID_CHAR}, - {WID_11N_PHY_ACTIVE_REG_VAL, WID_INT}, - {WID_11N_PRINT_STATS, WID_CHAR}, - {WID_11N_AUTORATE_TABLE, WID_BIN_DATA}, - {WID_HOST_CONFIG_IF_TYPE, WID_CHAR}, - {WID_HOST_DATA_IF_TYPE, WID_CHAR}, - {WID_11N_SIG_QUAL_VAL, WID_SHORT}, - {WID_11N_IMMEDIATE_BA_ENABLED, WID_CHAR}, - {WID_11N_TXOP_PROT_DISABLE, WID_CHAR}, - {WID_11N_SHORT_GI_20MHZ_ENABLE, WID_CHAR}, - {WID_SHORT_SLOT_ALLOWED, WID_CHAR}, - {WID_11W_ENABLE, WID_CHAR}, - {WID_11W_MGMT_PROT_REQ, WID_CHAR}, - {WID_2040_ENABLE, WID_CHAR}, - {WID_2040_COEXISTENCE, WID_CHAR}, - {WID_USER_SEC_CHANNEL_OFFSET, WID_CHAR}, - {WID_2040_CURR_CHANNEL_OFFSET, WID_CHAR}, - {WID_2040_40MHZ_INTOLERANT, WID_CHAR}, - {WID_HUT_RESTART, WID_CHAR}, - {WID_HUT_NUM_TX_PKTS, WID_INT}, - {WID_HUT_FRAME_LEN, WID_SHORT}, - {WID_HUT_TX_FORMAT, WID_CHAR}, - {WID_HUT_BANDWIDTH, WID_CHAR}, - {WID_HUT_OP_BAND, WID_CHAR}, - {WID_HUT_STBC, WID_CHAR}, - {WID_HUT_ESS, WID_CHAR}, - {WID_HUT_ANTSET, WID_CHAR}, - {WID_HUT_HT_OP_MODE, WID_CHAR}, - {WID_HUT_RIFS_MODE, WID_CHAR}, - {WID_HUT_SMOOTHING_REC, WID_CHAR}, - {WID_HUT_SOUNDING_PKT, WID_CHAR}, - {WID_HUT_HT_CODING, WID_CHAR}, - {WID_HUT_TEST_DIR, WID_CHAR}, - {WID_HUT_TXOP_LIMIT, WID_SHORT}, - {WID_HUT_DEST_ADDR, WID_ADR}, - {WID_HUT_TX_PATTERN, WID_BIN_DATA}, - {WID_HUT_TX_TIME_TAKEN, WID_INT}, - {WID_HUT_PHY_TEST_MODE, WID_CHAR}, - {WID_HUT_PHY_TEST_RATE_HI, WID_CHAR}, - {WID_HUT_PHY_TEST_RATE_LO, WID_CHAR}, - {WID_HUT_TX_TEST_TIME, WID_INT}, - {WID_HUT_LOG_INTERVAL, WID_INT}, - {WID_HUT_DISABLE_RXQ_REPLENISH, WID_CHAR}, - {WID_HUT_TEST_ID, WID_STR}, - {WID_HUT_KEY_ORIGIN, WID_CHAR}, - {WID_HUT_BCST_PERCENT, WID_CHAR}, - {WID_HUT_GROUP_CIPHER_TYPE, WID_CHAR}, - {WID_HUT_STATS, WID_BIN_DATA}, - {WID_HUT_TSF_TEST_MODE, WID_CHAR}, - {WID_HUT_SIG_QUAL_AVG, WID_SHORT}, - {WID_HUT_SIG_QUAL_AVG_CNT, WID_SHORT}, - {WID_HUT_TSSI_VALUE, WID_CHAR}, - {WID_HUT_MGMT_PERCENT, WID_CHAR}, - {WID_HUT_MGMT_BCST_PERCENT, WID_CHAR}, - {WID_HUT_MGMT_ALLOW_HT, WID_CHAR}, - {WID_HUT_UC_MGMT_TYPE, WID_CHAR}, - {WID_HUT_BC_MGMT_TYPE, WID_CHAR}, - {WID_HUT_UC_MGMT_FRAME_LEN, WID_SHORT}, - {WID_HUT_BC_MGMT_FRAME_LEN, WID_SHORT}, - {WID_HUT_11W_MFP_REQUIRED_TX, WID_CHAR}, - {WID_HUT_11W_MFP_PEER_CAPABLE, WID_CHAR}, - {WID_HUT_11W_TX_IGTK_ID, WID_CHAR}, - {WID_HUT_FC_TXOP_MOD, WID_CHAR}, - {WID_HUT_FC_PROT_TYPE, WID_CHAR}, - {WID_HUT_SEC_CCA_ASSERT, WID_CHAR}, -#endif /* MAC_802_11N */ -}; - -u16 g_num_total_switches = (sizeof(gastrWIDs) / sizeof(tstrWID)); /*****************************************************************************/ /* Static Function Declarations */ /*****************************************************************************/ diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 3af193543cdb..d2a0a0b74f55 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -29,8 +29,6 @@ #define NUM_11N_HUT_SWITCHES 0 #endif /* MAC_802_11N */ -extern u16 g_num_total_switches; - #define MAC_HDR_LEN 24 /* No Address4 - non-ESS */ #define MAX_SSID_LEN 33 #define FCS_LEN 4 From be6c212a6fc0ceb942600176258b2cb2ff9cc1d1 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:53 +0900 Subject: [PATCH 0460/2431] staging: wilc1000: delete function declaration SendRawPacket SendRawpacket is declared but not implemented. It is not used also. So just delete it. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index d2a0a0b74f55..c2aee05f0934 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -180,7 +180,6 @@ s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZ s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults); #endif -s32 SendRawPacket(s8 *pspacket, s32 s32PacketLen); void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length); void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length); void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length); From 57c111a472106bf75a4ac8ae525a41356f003861 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:54 +0900 Subject: [PATCH 0461/2431] staging: wilc1000: coreconfigurator.h: remove unused defines The define MAX_PACKET_BUFF_SIZE and STATUS_MSG_LEN is not used in the driver. Delete two defines. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index c2aee05f0934..32e5b31a96a9 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -44,14 +44,11 @@ /* Operating Mode: GET */ #define GET_CFG 1 -#define MAX_PACKET_BUFF_SIZE 1596 - #define MAX_STRING_LEN 256 #define MAX_SURVEY_RESULT_FRAG_SIZE MAX_STRING_LEN #define SURVEY_RESULT_LENGTH 44 #define MAX_ASSOC_RESP_FRAME_SIZE MAX_STRING_LEN -#define STATUS_MSG_LEN 12 #define MAC_CONNECTED 1 #define MAC_DISCONNECTED 0 From c116299cff0c3bf67d0c3a7880dee95212d22227 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:55 +0900 Subject: [PATCH 0462/2431] staging: wilc1000: remove unused variable g_flushing_in_progress g_flushing_in_progress is never used so just delete it. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 3ecf5b1772d3..4151aae0eb97 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -132,7 +132,6 @@ struct wilc_wfi_key g_key_gtk_params; struct add_key_params g_add_ptk_key_params; struct wilc_wfi_key g_key_ptk_params; struct wilc_wfi_wep_key g_key_wep_params; -u8 g_flushing_in_progress; bool g_ptk_keys_saved; bool g_gtk_keys_saved; bool g_wep_keys_saved; From 7ae433631eacd0f0aaa749baef4c7f6baa5b3936 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:35:59 +0900 Subject: [PATCH 0463/2431] staging: wilc1000: remove a macro WILC_NULLCHECK This patch replaces WILC_NULLCHECK with the plain statements and then removes the macro WILC_NULLCHECK in wilc_errorsupport.h which is not used anymore. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 7 ++++-- drivers/staging/wilc1000/wilc_errorsupport.h | 6 ----- drivers/staging/wilc1000/wilc_msgqueue.c | 9 +++++-- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 24 ++++++++++++------- 4 files changed, 27 insertions(+), 19 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 563063ce6ba0..827758d71df0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -7289,7 +7289,8 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta if (pstrAddStationMsg->u8NumRates > 0) { u8 *rates = kmalloc(pstrAddStationMsg->u8NumRates, GFP_KERNEL); - WILC_NULLCHECK(s32Error, rates); + if (!rates) + return -ENOMEM; memcpy(rates, pstrStaParams->pu8Rates, pstrAddStationMsg->u8NumRates); pstrAddStationMsg->pu8Rates = rates; @@ -7444,7 +7445,9 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt if (pstrAddStationMsg->u8NumRates > 0) { u8 *rates = kmalloc(pstrAddStationMsg->u8NumRates, GFP_KERNEL); - WILC_NULLCHECK(s32Error, rates); + if (!rates) + return -ENOMEM; + memcpy(rates, pstrStaParams->pu8Rates, pstrAddStationMsg->u8NumRates); pstrAddStationMsg->pu8Rates = rates; } diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index 8eb8150d5213..42495d9e19d2 100644 --- a/drivers/staging/wilc1000/wilc_errorsupport.h +++ b/drivers/staging/wilc1000/wilc_errorsupport.h @@ -51,12 +51,6 @@ goto ERRORHANDLER; \ } while (0) -#define WILC_NULLCHECK(__status__, __ptr__) do { \ - if (__ptr__ == NULL) { \ - WILC_ERRORREPORT(__status__, WILC_NULL_PTR); \ - } \ -} while (0) - #define WILC_CATCH(__status__) \ ERRORHANDLER: \ if (__status__ < WILC_SUCCESS) \ diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 41244ce942ba..ac237365e3e9 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -1,6 +1,7 @@ #include "wilc_msgqueue.h" #include +#include /*! * @author syounan @@ -69,11 +70,15 @@ int wilc_mq_send(WILC_MsgQueueHandle *pHandle, /* construct a new message */ pstrMessage = kmalloc(sizeof(Message), GFP_ATOMIC); - WILC_NULLCHECK(s32RetStatus, pstrMessage); + if (!pstrMessage) + return -ENOMEM; pstrMessage->u32Length = u32SendBufferSize; pstrMessage->pstrNext = NULL; pstrMessage->pvBuffer = kmalloc(u32SendBufferSize, GFP_ATOMIC); - WILC_NULLCHECK(s32RetStatus, pstrMessage->pvBuffer); + if (!pstrMessage->pvBuffer) { + s32RetStatus = -ENOMEM; + goto ERRORHANDLER; + } memcpy(pstrMessage->pvBuffer, pvSendBuffer, u32SendBufferSize); /* add it to the message queue */ diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 4151aae0eb97..32fd54312659 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -15,7 +15,7 @@ #ifdef WILC_SDIO #include "linux_wlan_sdio.h" /* tony : for set_wiphy_dev() */ #endif - +#include #define IS_MANAGMEMENT 0x100 #define IS_MANAGMEMENT_CALLBACK 0x080 @@ -381,7 +381,10 @@ static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetwo if (priv->bCfgScanning == true) { if (enuScanEvent == SCAN_EVENT_NETWORK_FOUND) { wiphy = priv->dev->ieee80211_ptr->wiphy; - WILC_NULLCHECK(s32Error, wiphy); + + if (!wiphy) + return; + if (wiphy->signal_type == CFG80211_SIGNAL_TYPE_UNSPEC && ((((s32)pstrNetworkInfo->s8rssi) * 100) < 0 @@ -395,7 +398,8 @@ static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetwo s32Freq = ieee80211_channel_to_frequency((s32)pstrNetworkInfo->u8channel, IEEE80211_BAND_2GHZ); channel = ieee80211_get_channel(wiphy, s32Freq); - WILC_NULLCHECK(s32Error, channel); + if (!channel) + return; PRINT_INFO(CFG80211_DBG, "Network Info:: CHANNEL Frequency: %d, RSSI: %d, CapabilityInfo: %d," "BeaconPeriod: %d\n", channel->center_freq, (((s32)pstrNetworkInfo->s8rssi) * 100), @@ -3217,8 +3221,8 @@ static int stop_ap(struct wiphy *wiphy, struct net_device *dev) struct wilc_priv *priv; u8 NullBssid[ETH_ALEN] = {0}; - - WILC_NULLCHECK(s32Error, wiphy); + if (!wiphy) + return -EFAULT; priv = wiphy_priv(wiphy); @@ -3254,8 +3258,8 @@ static int add_station(struct wiphy *wiphy, struct net_device *dev, tstrWILC_AddStaParam strStaParams = { {0} }; perInterface_wlan_t *nic; - - WILC_NULLCHECK(s32Error, wiphy); + if (!wiphy) + return -EFAULT; priv = wiphy_priv(wiphy); nic = netdev_priv(dev); @@ -3325,7 +3329,8 @@ static int del_station(struct wiphy *wiphy, struct net_device *dev, struct wilc_priv *priv; perInterface_wlan_t *nic; - WILC_NULLCHECK(s32Error, wiphy); + if (!wiphy) + return -EFAULT; priv = wiphy_priv(wiphy); nic = netdev_priv(dev); @@ -3371,7 +3376,8 @@ static int change_station(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Change station paramters\n"); - WILC_NULLCHECK(s32Error, wiphy); + if (!wiphy) + return -EFAULT; priv = wiphy_priv(wiphy); nic = netdev_priv(dev); From 7dc1d0cc1ffa29aa11219ad7e31ae5f4dc443711 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:00 +0900 Subject: [PATCH 0464/2431] staging: wilc1000: remove the macro WILC_ERRORCHECK This patch removes the macro WILC_ERRORCHECK which is not used anymore by replacing it with the plain statements. This patch also removes the WILC_CATCH macros from some of functions not to make the build warnings. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 3 ++- drivers/staging/wilc1000/wilc_errorsupport.h | 7 ------ drivers/staging/wilc1000/wilc_msgqueue.c | 5 +++- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 24 +++++++------------ 4 files changed, 14 insertions(+), 25 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 827758d71df0..8ed1aaf3e71a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -7247,7 +7247,8 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); - WILC_ERRORCHECK(s32Error); + if (s32Error) + PRINT_ER("wilc_mq_send fail\n"); WILC_CATCH(s32Error) { diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index 42495d9e19d2..769cef0806a9 100644 --- a/drivers/staging/wilc1000/wilc_errorsupport.h +++ b/drivers/staging/wilc1000/wilc_errorsupport.h @@ -38,13 +38,6 @@ -#define WILC_ERRORCHECK(__status__) do { \ - if (__status__ < WILC_SUCCESS) { \ - PRINT_ER("PRINT_ER(%d)\n", __status__); \ - goto ERRORHANDLER; \ - } \ -} while (0) - #define WILC_ERRORREPORT(__status__, __err__) do { \ PRINT_ER("PRINT_ER(%d)\n", __err__); \ __status__ = __err__; \ diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index ac237365e3e9..53b6f07a60c2 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -145,7 +145,10 @@ int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); } else { /* other non-timeout scenarios */ - WILC_ERRORCHECK(s32RetStatus); + if (s32RetStatus) { + PRINT_ER("Non-timeout\n"); + return s32RetStatus; + } if (pHandle->bExiting) { WILC_ERRORREPORT(s32RetStatus, WILC_FAIL); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 32fd54312659..72fc1051af84 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3233,11 +3233,9 @@ static int stop_ap(struct wiphy *wiphy, struct net_device *dev) s32Error = host_int_del_beacon(priv->hWILCWFIDrv); - WILC_ERRORCHECK(s32Error); + if (s32Error) + PRINT_ER("Host delete beacon fail\n"); - WILC_CATCH(s32Error) - { - } return s32Error; } @@ -3303,12 +3301,10 @@ static int add_station(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Flag Set = %d\n", strStaParams.u16FlagsSet); s32Error = host_int_add_station(priv->hWILCWFIDrv, &strStaParams); - WILC_ERRORCHECK(s32Error); + if (s32Error) + PRINT_ER("Host add station fail\n"); } - WILC_CATCH(s32Error) - { - } return s32Error; } @@ -3348,10 +3344,8 @@ static int del_station(struct wiphy *wiphy, struct net_device *dev, s32Error = host_int_del_station(priv->hWILCWFIDrv, mac); - WILC_ERRORCHECK(s32Error); - } - WILC_CATCH(s32Error) - { + if (s32Error) + PRINT_ER("Host delete station fail\n"); } return s32Error; } @@ -3419,10 +3413,8 @@ static int change_station(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Flag Set = %d\n", strStaParams.u16FlagsSet); s32Error = host_int_edit_station(priv->hWILCWFIDrv, &strStaParams); - WILC_ERRORCHECK(s32Error); - } - WILC_CATCH(s32Error) - { + if (s32Error) + PRINT_ER("Host edit station fail\n"); } return s32Error; } From 24db713fe5325917690c2c793a6321aa0b11a0c8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:01 +0900 Subject: [PATCH 0465/2431] staging: wilc1000: remove the macro WILC_ERRORREPORT This patch removes the macro WILC_ERRORREPORT which is not used anymore by replacing it with the plain statements. The compiler complains the build warnings in some functions for WILC_CATCH and ERRORHANDLER as unused definitions. So, this patch also removes WILC_CATCH and ERRORHANDLER from some of functions. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 4 +- drivers/staging/wilc1000/host_interface.c | 869 +++++++----------- drivers/staging/wilc1000/wilc_errorsupport.h | 5 - drivers/staging/wilc1000/wilc_msgqueue.c | 104 +-- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 9 +- 5 files changed, 401 insertions(+), 590 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 87d32ae30bf4..96358a92aeb9 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -13,6 +13,7 @@ /* File Includes */ /*****************************************************************************/ #include "coreconfigurator.h" +#include /*****************************************************************************/ /* Constants */ /*****************************************************************************/ @@ -429,7 +430,7 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) /* Check whether the received message type is 'N' */ if ('N' != u8MsgType) { PRINT_ER("Received Message format incorrect.\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + return -EFAULT; } /* Extract message ID */ @@ -525,7 +526,6 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) *ppstrNetworkInfo = pstrNetworkInfo; -ERRORHANDLER: return s32Error; } diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8ed1aaf3e71a..8c6de4205197 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -668,11 +668,7 @@ static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetChan *pst get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set channel\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } - WILC_CATCH(s32Error) - { - + return -EINVAL; } return s32Error; @@ -712,11 +708,7 @@ static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, if (s32Error) { PRINT_ER("Failed to set driver handler\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } - WILC_CATCH(s32Error) - { - + return -EINVAL; } return s32Error; @@ -758,11 +750,7 @@ static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetOpe if (s32Error) { PRINT_ER("Failed to set driver handler\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } - WILC_CATCH(s32Error) - { - + return -EINVAL; } return s32Error; @@ -805,16 +793,11 @@ s32 Handle_set_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) host_int_get_ipaddress(drvHandler, firmwareIPAddress, idx); if (s32Error) { - PRINT_D(HOSTINF_DBG, "Failed to set IP address\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } else { - PRINT_INFO(HOSTINF_DBG, "IP address set\n"); + PRINT_ER("Failed to set IP address\n"); + return -EINVAL; } - WILC_CATCH(s32Error) - { - - } + PRINT_INFO(HOSTINF_DBG, "IP address set\n"); return s32Error; } @@ -857,17 +840,12 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) if (s32Error != WILC_SUCCESS) { PRINT_ER("Failed to get IP address\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } else { - PRINT_INFO(HOSTINF_DBG, "IP address retrieved:: u8IfIdx = %d\n", idx); - PRINT_INFO(HOSTINF_DBG, "%pI4\n", gs8GetIP[idx]); - PRINT_INFO(HOSTINF_DBG, "\n"); + return -EINVAL; } - WILC_CATCH(s32Error) - { - - } + PRINT_INFO(HOSTINF_DBG, "IP address retrieved:: u8IfIdx = %d\n", idx); + PRINT_INFO(HOSTINF_DBG, "%pI4\n", gs8GetIP[idx]); + PRINT_INFO(HOSTINF_DBG, "\n"); return s32Error; } @@ -908,13 +886,9 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetMacAdd get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set mac address\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + s32Error = -EFAULT; } - WILC_CATCH(s32Error) - { - - } kfree(mac_buf); return s32Error; } @@ -947,11 +921,7 @@ static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfGetMacAdd get_id_from_handler(drvHandler)); if (s32Error) { PRINT_ER("Failed to get mac address\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - WILC_CATCH(s32Error) - { - + s32Error = -EFAULT; } up(&hWaitResponse); @@ -995,7 +965,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("check value 6 over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1013,7 +985,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Impossible value \n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1026,7 +1000,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Range(1 ~ 65535) over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1045,7 +1021,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Invalide power mode\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1058,7 +1036,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Range(1~256) over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1072,7 +1052,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.long_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Range(1~256) over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1085,7 +1067,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Threshold Range fail\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1098,7 +1082,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Threshold Range fail\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1115,7 +1101,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.preamble_type = strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Preamle Range(0~2) over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1127,7 +1115,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Short slot(2) over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1143,7 +1133,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("TXOP prot disable\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1156,7 +1148,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Beacon interval(1~65535) fail\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1169,7 +1163,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.dtim_period = strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("DTIM range(1~255) fail\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1186,7 +1182,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Site survey disable\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1199,7 +1197,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Site survey scan time(1~65535) over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1212,7 +1212,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Active scan time(1~65535) over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1225,7 +1227,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Passive scan time(1~65535) over\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1248,7 +1252,9 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.curr_tx_rate = (u8)curr_tx_rate; } else { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("out of TX rate\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } u8WidCnt++; } @@ -1258,9 +1264,7 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr * if (s32Error) PRINT_ER("Error in setting CFG params\n"); - WILC_CATCH(s32Error) - { - } +ERRORHANDLER: up(&(pstrWFIDrv->gtOsCfgValuesSem)); return s32Error; } @@ -1316,13 +1320,17 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHost if ((pstrWFIDrv->enuHostIFstate >= HOST_IF_SCANNING) && (pstrWFIDrv->enuHostIFstate < HOST_IF_CONNECTED)) { /* here we either in HOST_IF_SCANNING, HOST_IF_WAITING_CONN_REQ or HOST_IF_WAITING_CONN_RESP */ PRINT_D(GENERIC_DBG, "Don't scan we are already in [%d] state\n", pstrWFIDrv->enuHostIFstate); - WILC_ERRORREPORT(s32Error, WILC_BUSY); + PRINT_ER("Already scan\n"); + s32Error = -EBUSY; + goto ERRORHANDLER; } #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP if (g_obtainingIP || connecting) { PRINT_D(GENERIC_DBG, "[handle_scan]: Don't do obss scan until IP adresss is obtained\n"); - WILC_ERRORREPORT(s32Error, WILC_BUSY); + PRINT_ER("Don't do obss scan\n"); + s32Error = -EBUSY; + goto ERRORHANDLER; } #endif @@ -1413,15 +1421,13 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHost s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, get_id_from_handler(pstrWFIDrv)); - if (s32Error) { + if (s32Error) PRINT_ER("Failed to send scan paramters config packet\n"); - WILC_ERRORREPORT(s32Error, s32Error); - } else { + else PRINT_D(HOSTINF_DBG, "Successfully sent SCAN params config packet\n"); - } - WILC_CATCH(s32Error) - { +ERRORHANDLER: + if (s32Error) { del_timer(&pstrWFIDrv->hScanTimer); /*if there is an ongoing scan request*/ Handle_ScanDone(drvHandler, SCAN_EVENT_ABORTED); @@ -1490,12 +1496,9 @@ static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent) /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, get_id_from_handler(pstrWFIDrv)); - if (s32Error != WILC_SUCCESS) { + if (s32Error) { PRINT_ER("Failed to set abort running scan\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - WILC_CATCH(s32Error) - { + s32Error = -EFAULT; } } @@ -1558,8 +1561,8 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps MAX_SURVEY_RESULT_FRAG_SIZE); if (s32Err) { PRINT_ER("Failed to get site survey results\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - + s32Error = -EFAULT; + goto ERRORHANDLER; } s32Err = ParseSurveyResults(gapu8RcvdSurveyResults, &pstrSurveyResults, &pstrWFIDrv->u32SurveyResultsCount); @@ -1575,8 +1578,9 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps DeallocateSurveyResults(pstrSurveyResults); } else { - WILC_ERRORREPORT(s32Error, WILC_FAIL); - PRINT_ER("ParseSurveyResults() Error(%d)\n", s32Err); + PRINT_ER("ParseSurveyResults() Error\n"); + s32Error = -EFAULT; + goto ERRORHANDLER; } @@ -1688,15 +1692,17 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, get_id_from_handler(pstrWFIDrv)); if (s32Error) { - PRINT_ER("Handle_Connect()] failed to send config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); + PRINT_ER("failed to send config packet\n"); + s32Error = -EINVAL; + goto ERRORHANDLER; } else { pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP; } } else { PRINT_ER("Required BSSID not found\n"); - WILC_ERRORREPORT(s32Error, WILC_NOT_FOUND); + s32Error = -ENOENT; + goto ERRORHANDLER; } #else @@ -1717,7 +1723,8 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps ptstrJoinBssParam = (tstrJoinBssParam *)pstrHostIFconnectAttr->pJoinParams; if (ptstrJoinBssParam == NULL) { PRINT_ER("Required BSSID not found\n"); - WILC_ERRORREPORT(s32Error, WILC_NOT_FOUND); + s32Error = -ENOENT; + goto ERRORHANDLER; } #endif /*WILC_PARSE_SCAN_IN_HOST*/ @@ -1825,8 +1832,10 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps strWIDList[u32WidsCount].s32ValueSize = MAX_SSID_LEN + 7; strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].s32ValueSize, GFP_KERNEL); - if (strWIDList[u32WidsCount].ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (strWIDList[u32WidsCount].ps8WidVal == NULL) { + s32Error = -EFAULT; + goto ERRORHANDLER; + } pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; @@ -1862,8 +1871,10 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps gu32FlushedJoinReqSize = strWIDList[u32WidsCount].s32ValueSize; gu8FlushedJoinReq = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); } - if (strWIDList[u32WidsCount].ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (strWIDList[u32WidsCount].ps8WidVal == NULL) { + s32Error = -EFAULT; + goto ERRORHANDLER; + } pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; @@ -2012,16 +2023,17 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, get_id_from_handler(pstrWFIDrv)); if (s32Error) { - PRINT_ER("Handle_Connect()] failed to send config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); + PRINT_ER("failed to send config packet\n"); + s32Error = -EFAULT; + goto ERRORHANDLER; } else { PRINT_D(GENERIC_DBG, "set HOST_IF_WAITING_CONN_RESP\n"); pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP; } #endif - WILC_CATCH(s32Error) - { +ERRORHANDLER: + if (s32Error) { tstrConnectInfo strConnectInfo; del_timer(&pstrWFIDrv->hConnectTimer); @@ -2142,13 +2154,8 @@ static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, get_id_from_handler(gu8FlushedJoinReqDrvHandler)); if (s32Error) { - PRINT_ER("Handle_Flush_Connect()] failed to send config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } - - WILC_CATCH(s32Error) - { - + PRINT_ER("failed to send config packet\n"); + s32Error = -EINVAL; } return s32Error; @@ -2296,7 +2303,9 @@ static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdNetworkInfo ParseNetworkInfo(pstrRcvdNetworkInfo->pu8Buffer, &pstrNetworkInfo); if ((pstrNetworkInfo == NULL) || (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult == NULL)) { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("driver is null\n"); + s32Error = -EINVAL; + goto done; } /* check whether this network is discovered before */ @@ -2363,12 +2372,6 @@ static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdNetworkInfo } } - - WILC_CATCH(s32Error) - { - - } - done: /* Deallocate pstrRcvdNetworkInfo->pu8Buffer which was prevoisuly allocated by the sending thread */ if (pstrRcvdNetworkInfo->pu8Buffer != NULL) { @@ -2422,7 +2425,8 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { if ((pstrRcvdGnrlAsyncInfo->pu8Buffer == NULL) || (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult == NULL)) { - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("driver is null\n"); + return -EINVAL; } u8MsgType = pstrRcvdGnrlAsyncInfo->pu8Buffer[0]; @@ -2430,7 +2434,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy /* Check whether the received message type is 'I' */ if ('I' != u8MsgType) { PRINT_ER("Received Message format incorrect.\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + return -EFAULT; } /* Extract message ID */ @@ -2702,11 +2706,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy } - WILC_CATCH(s32Error) - { - - } - /* Deallocate pstrRcvdGnrlAsyncInfo->pu8Buffer which was prevoisuly allocated by the sending thread */ if (pstrRcvdGnrlAsyncInfo->pu8Buffer != NULL) { kfree(pstrRcvdGnrlAsyncInfo->pu8Buffer); @@ -3127,7 +3126,6 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) if (s32Error) { PRINT_ER("Failed to send dissconect config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); } else { tstrDisconnectNotifInfo strDisconnectNotifInfo; @@ -3198,11 +3196,6 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) } - WILC_CATCH(s32Error) - { - - } - /* ////////////////////////// */ up(&(pstrWFIDrv->hSemTestDisconnectBlock)); /* ///////////////////////// */ @@ -3242,17 +3235,11 @@ static s32 Switch_Log_Terminal(tstrWILC_WFIDrv *drvHandler) if (s32Error) { PRINT_D(HOSTINF_DBG, "Failed to switch log terminal\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } else { - PRINT_INFO(HOSTINF_DBG, "MAC address set ::\n"); - - + PRINT_ER("Failed to switch log terminal\n"); + return -EINVAL; } - WILC_CATCH(s32Error) - { - - } + PRINT_INFO(HOSTINF_DBG, "MAC address set ::\n"); return s32Error; } @@ -3287,14 +3274,9 @@ static s32 Handle_GetChnl(tstrWILC_WFIDrv *drvHandler) /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get channel number\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + s32Error = -EFAULT; } - - WILC_CATCH(s32Error) - { - - } up(&(pstrWFIDrv->hSemGetCHNL)); return s32Error; @@ -3331,13 +3313,9 @@ static void Handle_GetRssi(tstrWILC_WFIDrv *drvHandler) get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to get RSSI value\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + s32Error = -EFAULT; } - WILC_CATCH(s32Error) - { - - } up(&(pstrWFIDrv->hSemGetRSSI)); @@ -3363,13 +3341,9 @@ static void Handle_GetLinkspeed(tstrWILC_WFIDrv *drvHandler) get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to get LINKSPEED value\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + s32Error = -EFAULT; } - WILC_CATCH(s32Error) - { - - } up(&(pstrWFIDrv->hSemGetLINKSPEED)); @@ -3413,10 +3387,9 @@ s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatis s32Error = SendConfigPkt(GET_CFG, strWIDList, u32WidsCount, false, get_id_from_handler(drvHandler)); - if (s32Error) { + if (s32Error) PRINT_ER("Failed to send scan paramters config packet\n"); - /* WILC_ERRORREPORT(s32Error, s32Error); */ - } + up(&hWaitResponse); return 0; @@ -3464,7 +3437,7 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to SET incative time\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + return -EFAULT; } @@ -3479,18 +3452,13 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get incative time\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + return -EFAULT; } PRINT_D(CFG80211_DBG, "Getting inactive time : %d\n", gu32InactiveTime); up(&(pstrWFIDrv->hSemInactiveTime)); - WILC_CATCH(s32Error) - { - - } - return s32Error; @@ -3522,7 +3490,7 @@ static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetBeacon *p strWID.s32ValueSize = pstrSetBeaconParam->u32HeadLen + pstrSetBeaconParam->u32TailLen + 16; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + goto ERRORHANDLER; pu8CurrByte = strWID.ps8WidVal; *pu8CurrByte++ = (pstrSetBeaconParam->u32Interval & 0xFF); @@ -3558,14 +3526,10 @@ static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetBeacon *p /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, get_id_from_handler(pstrWFIDrv)); - if (s32Error) { + if (s32Error) PRINT_ER("Failed to send add beacon config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - WILC_CATCH(s32Error) - { - } +ERRORHANDLER: kfree(strWID.ps8WidVal); kfree(pstrSetBeaconParam->pu8Head); kfree(pstrSetBeaconParam->pu8Tail); @@ -3594,7 +3558,7 @@ static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelBeacon *p strWID.ps8WidVal = &gu8DelBcn; if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + return; pu8CurrByte = strWID.ps8WidVal; @@ -3604,15 +3568,8 @@ static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelBeacon *p /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, get_id_from_handler(pstrWFIDrv)); - if (s32Error) { - + if (s32Error) PRINT_ER("Failed to send delete beacon config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - - WILC_CATCH(s32Error) - { - } } @@ -3693,7 +3650,7 @@ static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + goto ERRORHANDLER; pu8CurrByte = strWID.ps8WidVal; pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); @@ -3701,15 +3658,10 @@ static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, get_id_from_handler(pstrWFIDrv)); - if (s32Error != WILC_SUCCESS) { - + if (s32Error != WILC_SUCCESS) PRINT_ER("Failed to send add station config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - WILC_CATCH(s32Error) - { - } +ERRORHANDLER: kfree(pstrStationParam->pu8Rates); kfree(strWID.ps8WidVal); } @@ -3741,7 +3693,7 @@ static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelAllSta *p strWID.ps8WidVal = kmalloc((pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1, GFP_KERNEL); if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + goto ERRORHANDLER; pu8CurrByte = strWID.ps8WidVal; @@ -3759,15 +3711,10 @@ static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelAllSta *p /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, get_id_from_handler(pstrWFIDrv)); - if (s32Error) { - + if (s32Error) PRINT_ER("Failed to send add station config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - WILC_CATCH(s32Error) - { - } +ERRORHANDLER: kfree(strWID.ps8WidVal); up(&hWaitResponse); @@ -3798,7 +3745,7 @@ static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelSta *pst strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + goto ERRORHANDLER; pu8CurrByte = strWID.ps8WidVal; @@ -3807,15 +3754,10 @@ static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelSta *pst /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, get_id_from_handler(pstrWFIDrv)); - if (s32Error) { - + if (s32Error) PRINT_ER("Failed to send add station config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - WILC_CATCH(s32Error) - { - } +ERRORHANDLER: kfree(strWID.ps8WidVal); } @@ -3843,7 +3785,7 @@ static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam PRINT_D(HOSTINF_DBG, "Handling edit station\n"); strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + goto ERRORHANDLER; pu8CurrByte = strWID.ps8WidVal; pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); @@ -3851,15 +3793,10 @@ static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, get_id_from_handler(pstrWFIDrv)); - if (s32Error) { - + if (s32Error) PRINT_ER("Failed to send edit station config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - WILC_CATCH(s32Error) - { - } +ERRORHANDLER: kfree(pstrStationParam->pu8Rates); kfree(strWID.ps8WidVal); } @@ -3897,17 +3834,20 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while scanning return\n"); pstrWFIDrv->u8RemainOnChan_pendingreq = 1; - WILC_ERRORREPORT(s32Error, WILC_BUSY); + s32Error = -EBUSY; + goto ERRORHANDLER; } if (pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while connecting return\n"); - WILC_ERRORREPORT(s32Error, WILC_BUSY); + s32Error = -EBUSY; + goto ERRORHANDLER; } #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP if (g_obtainingIP || connecting) { PRINT_D(GENERIC_DBG, "[handle_scan]: Don't do obss scan until IP adresss is obtained\n"); - WILC_ERRORREPORT(s32Error, WILC_BUSY); + s32Error = -EBUSY; + goto ERRORHANDLER; } #endif @@ -3919,8 +3859,10 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh strWID.s32ValueSize = 2; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (strWID.ps8WidVal == NULL) { + s32Error = -ENOMEM; + goto ERRORHANDLER; + } strWID.ps8WidVal[0] = u8remain_on_chan_flag; strWID.ps8WidVal[1] = (s8)pstrHostIfRemainOnChan->u16Channel; @@ -3931,7 +3873,7 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh if (s32Error != WILC_SUCCESS) PRINT_ER("Failed to set remain on channel\n"); - WILC_CATCH(-1) +ERRORHANDLER: { P2P_LISTEN_STATE = 1; pstrWFIDrv->hRemainOnChannel.data = (unsigned long)pstrWFIDrv; @@ -3972,7 +3914,7 @@ static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, tstrHostIfRegisterF strWID.enuWIDtype = WID_STR; strWID.ps8WidVal = kmalloc(sizeof(u16) + 2, GFP_KERNEL); if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + return -ENOMEM; pu8CurrByte = strWID.ps8WidVal; @@ -3989,12 +3931,7 @@ static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, tstrHostIfRegisterF get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to frame register config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } - - - WILC_CATCH(s32Error) - { + s32Error = -EINVAL; } return s32Error; @@ -4085,11 +4022,7 @@ static void ListenTimerCB(unsigned long arg) /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - - } + PRINT_ER("wilc_mq_send fail\n"); } #endif @@ -4125,15 +4058,8 @@ static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, tstrHostIfPowerM /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, get_id_from_handler(pstrWFIDrv)); - if (s32Error) { + if (s32Error) PRINT_ER("Failed to send power management config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } - - WILC_CATCH(s32Error) - { - - } } /** @@ -4158,7 +4084,7 @@ static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, tstrHostIFSet strWID.s32ValueSize = sizeof(tstrHostIFSetMulti) + ((strHostIfSetMulti->u32count) * ETH_ALEN); strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + goto ERRORHANDLER; pu8CurrByte = strWID.ps8WidVal; *pu8CurrByte++ = (strHostIfSetMulti->bIsEnabled & 0xFF); @@ -4177,14 +4103,10 @@ static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, tstrHostIFSet /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, get_id_from_handler(drvHandler)); - if (s32Error) { + if (s32Error) PRINT_ER("Failed to send setup multicast config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - } - WILC_CATCH(s32Error) - { - } +ERRORHANDLER: kfree(strWID.ps8WidVal); } @@ -4718,8 +4640,11 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + s32Error = -EFAULT; + PRINT_ER("Failed to send setup multicast config packet\n"); + return s32Error; + } /* prepare the Remove Wep Key Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -4741,10 +4666,6 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -4767,8 +4688,11 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + s32Error = -EFAULT; + PRINT_ER("driver is null\n"); + return s32Error; + } /* prepare the Key Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -4789,11 +4713,6 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) PRINT_ER("Error in sending message queue : Default key index\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); - WILC_CATCH(s32Error) - { - - } - return s32Error; } @@ -4823,9 +4742,11 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); - + if (pstrWFIDrv == NULL) { + s32Error = -EFAULT; + PRINT_ER("driver is null\n"); + return s32Error; + } /* prepare the Key Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -4856,10 +4777,6 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, PRINT_ER("Error in sending message queue :WEP Key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -4889,9 +4806,11 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u tstrHostIFmsg strHostIFmsg; u8 i; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); - + if (pstrWFIDrv == NULL) { + s32Error = -EFAULT; + PRINT_ER("driver is null\n"); + return s32Error; + } /* prepare the Key Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -4932,10 +4851,6 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u PRINT_ER("Error in sending message queue :WEP Key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -4965,8 +4880,11 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, u8 u8KeyLen = u8PtkKeylen; u32 i; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + s32Error = -EFAULT; + PRINT_ER("driver is null\n"); + return s32Error; + } if (pu8RxMic != NULL) u8KeyLen += RX_MIC_KEY_LEN; if (pu8TxMic != NULL) @@ -5034,11 +4952,6 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, down(&(pstrWFIDrv->hSemTestKeyBlock)); /* /////// */ - WILC_CATCH(s32Error) - { - - } - return s32Error; } @@ -5064,8 +4977,11 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe tstrHostIFmsg strHostIFmsg; u8 u8KeyLen = u8GtkKeylen; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + s32Error = -EFAULT; + PRINT_ER("driver is null\n"); + return s32Error; + } /* prepare the Key Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -5134,10 +5050,6 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe down(&(pstrWFIDrv->hSemTestKeyBlock)); /* /////// */ - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -5169,8 +5081,11 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm u32 i; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + s32Error = -EFAULT; + PRINT_ER("driver is null\n"); + return s32Error; + } /* prepare the Key Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -5194,11 +5109,6 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm if (s32Error) PRINT_ER(" Error in sending messagequeue: PMKID Info\n"); - WILC_CATCH(s32Error) - { - - } - return s32Error; } @@ -5327,14 +5237,8 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) strHostIFmsg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); - if (s32Error) { + if (s32Error) PRINT_ER("Failed to send message queue: Set mac address\n"); - WILC_ERRORREPORT(s32Error, s32Error); - } - WILC_CATCH(s32Error) - { - - } return s32Error; @@ -5425,12 +5329,7 @@ s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv, /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to send config packet to get survey results\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); - } - - WILC_CATCH(s32Error) - { - + s32Error = -EINVAL; } return s32Error; @@ -5520,26 +5419,22 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, tstrHostIFmsg strHostIFmsg; tenuScanConnTimer enuScanConnTimer; - if (pstrWFIDrv == NULL || pfConnectResult == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL || pfConnectResult == NULL) { + s32Error = -EFAULT; + PRINT_ER("Driver is null\n"); + return s32Error; + } if (hWFIDrv == NULL) { - PRINT_ER("Driver not initialized: gWFiDrvHandle = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + PRINT_ER("Driver is null\n"); + return -EFAULT; } if (pJoinParams == NULL) { PRINT_ER("Unable to Join - JoinParams is NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - + return -EFAULT; } -/* - * if(gWFiDrvHandle->strWILC_UsrScanReq.u32RcvdChCount == 0) - * { - * PRINT_ER("No scan results exist: Scanning should be done\n"); - * WILC_ERRORREPORT(s32Error, WILC_FAIL); - * } - */ + /* prepare the Connect Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -5582,7 +5477,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send message queue: Set join request\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + return -EFAULT; } enuScanConnTimer = CONNECT_TIMER; @@ -5590,11 +5485,6 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, mod_timer(&pstrWFIDrv->hConnectTimer, jiffies + msecs_to_jiffies(HOST_IF_CONNECT_TIMEOUT)); - WILC_CATCH(s32Error) - { - - } - return s32Error; } @@ -5621,9 +5511,11 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) } - if (hWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); - + if (hWFIDrv == NULL) { + s32Error = -EFAULT; + PRINT_ER("Driver is null\n"); + return s32Error; + } strHostIFmsg.u16MsgId = HOST_IF_MSG_FLUSH_CONNECT; strHostIFmsg.drvHandler = hWFIDrv; @@ -5632,13 +5524,9 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send message queue: Flush join request\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + return -EFAULT; } - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -5660,13 +5548,8 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; if (pstrWFIDrv == NULL) { - PRINT_ER("Driver not initialized: pstrWFIDrv = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); - } - - if (pstrWFIDrv == NULL) { - PRINT_ER("gWFiDrvHandle = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + PRINT_ER("Driver is null\n"); + return -EFAULT; } /* prepare the Disconnect Message */ @@ -5683,11 +5566,6 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) down(&(pstrWFIDrv->hSemTestDisconnectBlock)); /* /////// */ - WILC_CATCH(s32Error) - { - - } - return s32Error; } @@ -5777,8 +5655,8 @@ s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; if (pstrWFIDrv == NULL) { - PRINT_ER("Driver not initialized: pstrWFIDrv = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("Driver is null\n"); + return -EFAULT; } strWID.u16WIDid = (u16)WID_ASSOC_RES_INFO; @@ -5791,17 +5669,13 @@ s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, get_id_from_handler(pstrWFIDrv)); if (s32Error) { - PRINT_ER("Failed to send association response config packet\n"); *pu32RcvdAssocRespInfoLen = 0; - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); + PRINT_ER("Failed to send association response config packet\n"); + return -EINVAL; } else { *pu32RcvdAssocRespInfoLen = strWID.s32ValueSize; } - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -5857,8 +5731,10 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } /* prepare the set channel message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -5867,11 +5743,9 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) strHostIFmsg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); - if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - + if (s32Error) { + PRINT_ER("wilc mq send fail\n"); + s32Error = -EINVAL; } return s32Error; @@ -5889,11 +5763,9 @@ s32 host_int_wait_msg_queue_idle(void) memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_Q_IDLE; s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); - if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - + if (s32Error) { + PRINT_ER("wilc mq send fail\n"); + s32Error = -EINVAL; } /* wait untill MSG Q is empty */ @@ -5918,11 +5790,9 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) strHostIFmsg.drvHandler = u32address; s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); - if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - + if (s32Error) { + PRINT_ER("wilc mq send fail\n"); + s32Error = -EINVAL; } return s32Error; @@ -5945,11 +5815,9 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) strHostIFmsg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); - if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - + if (s32Error) { + PRINT_ER("wilc mq send fail\n"); + s32Error = -EINVAL; } return s32Error; @@ -5977,8 +5845,8 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) tstrHostIFmsg strHostIFmsg; if (pstrWFIDrv == NULL) { - PRINT_ER("Driver not initialized: pstrWFIDrv = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("driver is null\n"); + return -EFAULT; } /* prepare the Get Channel Message */ @@ -5990,16 +5858,12 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - PRINT_ER("Failed to send get host channel param's message queue "); + PRINT_ER("wilc mq send fail\n"); down(&(pstrWFIDrv->hSemGetCHNL)); /* gu8Chnl = 11; */ *pu8ChNo = gu8Chnl; - WILC_CATCH(s32Error) - { - } - return s32Error; @@ -6024,8 +5888,8 @@ s32 host_int_test_set_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 u32TestMemAddr) if (pstrWFIDrv == NULL) { - PRINT_ER("Driver not initialized: pstrWFIDrv = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("driver is null\n"); + return -EFAULT; } /*prepare configuration packet*/ @@ -6038,17 +5902,13 @@ s32 host_int_test_set_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 u32TestMemAddr) s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, get_id_from_handler(pstrWFIDrv)); if (s32Error) { - PRINT_ER("Test Function: Failed to set wid value\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); + PRINT_ER("Failed to set wid value\n"); + return -EINVAL; } else { PRINT_D(HOSTINF_DBG, "Successfully set wid value\n"); } - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -6071,8 +5931,8 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 tstrHostIFmsg strHostIFmsg; if (pstrWFIDrv == NULL) { - PRINT_ER("Driver not initialized: pstrWFIDrv = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("driver is null\n"); + return -EFAULT; } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -6093,10 +5953,6 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 *pu32InactiveTime = gu32InactiveTime; - WILC_CATCH(s32Error) - { - } - return s32Error; } #endif @@ -6119,8 +5975,8 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) if (pstrWFIDrv == NULL) { - PRINT_ER("Driver not initialized: pstrWFIDrv = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("driver is null\n"); + return -EFAULT; } strWID.u16WIDid = (u16)WID_MEMORY_ADDRESS; @@ -6132,17 +5988,13 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { - PRINT_ER("Test Function: Failed to get wid value\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); + PRINT_ER("Failed to get wid value\n"); + return -EINVAL; } else { PRINT_D(HOSTINF_DBG, "Successfully got wid value\n"); } - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -6283,9 +6135,10 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, tstrHostIFmsg strHostIFmsg; tenuScanConnTimer enuScanConnTimer; - if (pstrWFIDrv == NULL || ScanResult == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); - + if (pstrWFIDrv == NULL || ScanResult == NULL) { + PRINT_ER("pstrWFIDrv or ScanResult = NULL\n"); + return -EFAULT; + } /* prepare the Scan Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -6318,8 +6171,8 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { - PRINT_ER("Error in sending message queue scanning parameters: Error(%d)\n", s32Error); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + PRINT_ER("Error in sending message queue\n"); + return -EINVAL; } enuScanConnTimer = SCAN_TIMER; @@ -6328,10 +6181,6 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, mod_timer(&pstrWFIDrv->hScanTimer, jiffies + msecs_to_jiffies(HOST_IF_SCAN_TIMEOUT)); - WILC_CATCH(s32Error) - { - - } return s32Error; } @@ -6355,8 +6204,10 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("pstrWFIDrv NULL\n"); + return -EFAULT; + } /* prepare the WiphyParams Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_CFG_PARAMS; @@ -6365,10 +6216,6 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); - WILC_CATCH(s32Error) - { - } - return s32Error; } @@ -6395,8 +6242,8 @@ s32 hif_get_cfg(tstrWILC_WFIDrv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value) down(&(pstrWFIDrv->gtOsCfgValuesSem)); if (pstrWFIDrv == NULL) { - PRINT_ER("Driver not initialized: pstrWFIDrv = NULL\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + PRINT_ER("pstrWFIDrv NULL\n"); + return -EFAULT; } PRINT_D(HOSTINF_DBG, "Getting configuration parameters\n"); switch (u16WID) { @@ -6479,9 +6326,6 @@ s32 hif_get_cfg(tstrWILC_WFIDrv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value) up(&(pstrWFIDrv->gtOsCfgValuesSem)); - WILC_CATCH(s32Error) - { - } return s32Error; } @@ -6593,7 +6437,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) /*Allocate host interface private structure*/ pstrWFIDrv = kmalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); if (pstrWFIDrv == NULL) { - /* WILC_ERRORREPORT(s32Error,WILC_NO_MEM); */ s32Error = WILC_NO_MEM; PRINT_ER("Failed to allocate memory\n"); goto _fail_timer_2; @@ -7030,8 +6873,10 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } /* prepare the remainonchan Message */ memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7048,11 +6893,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - - } + PRINT_ER("wilc mq send fail\n"); return s32Error; } @@ -7077,8 +6918,10 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } /*Stopping remain-on-channel timer*/ del_timer(&pstrWFIDrv->hRemainOnChannel); @@ -7091,11 +6934,8 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { + PRINT_ER("wilc mq send fail\n"); - } return s32Error; } @@ -7113,8 +6953,10 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7141,11 +6983,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - - } + PRINT_ER("wilc mq send fail\n"); return s32Error; @@ -7175,8 +7013,10 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, tstrHostIFmsg strHostIFmsg; tstrHostIFSetBeacon *pstrSetBeaconParam = &strHostIFmsg.uniHostIFmsgBody.strHostIFSetBeacon; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7190,16 +7030,20 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; pstrSetBeaconParam->u32HeadLen = u32HeadLen; pstrSetBeaconParam->pu8Head = kmalloc(u32HeadLen, GFP_KERNEL); - if (pstrSetBeaconParam->pu8Head == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (pstrSetBeaconParam->pu8Head == NULL) { + s32Error = -ENOMEM; + goto ERRORHANDLER; + } memcpy(pstrSetBeaconParam->pu8Head, pu8Head, u32HeadLen); pstrSetBeaconParam->u32TailLen = u32TailLen; /* Bug 4599 : if tail length = 0 skip allocating & copying */ if (u32TailLen > 0) { pstrSetBeaconParam->pu8Tail = kmalloc(u32TailLen, GFP_KERNEL); - if (pstrSetBeaconParam->pu8Tail == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (pstrSetBeaconParam->pu8Tail == NULL) { + s32Error = -ENOMEM; + goto ERRORHANDLER; + } memcpy(pstrSetBeaconParam->pu8Tail, pu8Tail, u32TailLen); } else { pstrSetBeaconParam->pu8Tail = NULL; @@ -7207,10 +7051,10 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); + PRINT_ER("wilc mq send fail\n"); - WILC_CATCH(s32Error) - { +ERRORHANDLER: + if (s32Error) { if (pstrSetBeaconParam->pu8Head != NULL) kfree(pstrSetBeaconParam->pu8Head); @@ -7238,8 +7082,10 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_BEACON; @@ -7250,9 +7096,6 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) if (s32Error) PRINT_ER("wilc_mq_send fail\n"); - WILC_CATCH(s32Error) - { - } return s32Error; } @@ -7274,8 +7117,10 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7300,11 +7145,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - - WILC_CATCH(s32Error) - { - } + PRINT_ER("wilc_mq_send fail\n"); return s32Error; } @@ -7324,8 +7165,10 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) tstrHostIFmsg strHostIFmsg; tstrHostIFDelSta *pstrDelStationMsg = &strHostIFmsg.uniHostIFmsgBody.strDelStaParam; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7345,11 +7188,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - - WILC_CATCH(s32Error) - { - } + PRINT_ER("wilc_mq_send fail\n"); return s32Error; } /** @@ -7372,8 +7211,10 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) u8 u8AssocNumb = 0; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7402,12 +7243,8 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); + PRINT_ER("wilc_mq_send fail\n"); - WILC_CATCH(s32Error) - { - - } down(&hWaitResponse); return s32Error; @@ -7430,8 +7267,10 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt tstrHostIFmsg strHostIFmsg; tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } PRINT_D(HOSTINF_DBG, "Setting editing station message queue params\n"); @@ -7455,10 +7294,8 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - } + PRINT_ER("wilc_mq_send fail\n"); + return s32Error; } #endif /*WILC_AP_EXTERNAL_MLME*/ @@ -7473,8 +7310,10 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti PRINT_INFO(HOSTINF_DBG, "\n\n>> Setting PS to %d <<\n\n", bIsEnabled); - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } PRINT_D(HOSTINF_DBG, "Setting Power management message queue params\n"); @@ -7491,10 +7330,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - } + PRINT_ER("wilc_mq_send fail\n"); return s32Error; } @@ -7507,8 +7343,10 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u tstrHostIFSetMulti *pstrMulticastFilterParam = &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMulti; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } PRINT_D(HOSTINF_DBG, "Setting Multicast Filter params\n"); @@ -7524,10 +7362,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - } + PRINT_ER("wilc_mq_send fail\n"); return s32Error; } @@ -7776,8 +7611,10 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI tstrHostIFmsg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7792,11 +7629,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - - } + PRINT_ER("wilc_mq_send fail\n"); return s32Error; } @@ -7809,8 +7642,10 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) tstrHostIFmsg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7823,11 +7658,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - - } + PRINT_ER("wilc_mq_send fail\n"); /*BugID_5222*/ down(&hWaitResponse); @@ -7842,8 +7673,10 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T tstrHostIFmsg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7856,11 +7689,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - - } + PRINT_ER("wilc_mq_send fail\n"); /*BugID_5222*/ down(&hWaitResponse); @@ -7885,8 +7714,10 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) /* TODO: Enable This feature on softap firmware */ return 0; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7899,11 +7730,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - - } + PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7924,8 +7751,10 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; - if (pstrWFIDrv == NULL) - WILC_ERRORREPORT(s32Error, WILC_INVALID_ARGUMENT); + if (pstrWFIDrv == NULL) { + PRINT_ER("driver is null\n"); + return -EFAULT; + } memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); @@ -7938,11 +7767,7 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); - WILC_CATCH(s32Error) - { - - } + PRINT_ER("wilc_mq_send fail\n"); return s32Error; diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index 769cef0806a9..99ded3dcb74c 100644 --- a/drivers/staging/wilc1000/wilc_errorsupport.h +++ b/drivers/staging/wilc1000/wilc_errorsupport.h @@ -38,11 +38,6 @@ -#define WILC_ERRORREPORT(__status__, __err__) do { \ - PRINT_ER("PRINT_ER(%d)\n", __err__); \ - __status__ = __err__; \ - goto ERRORHANDLER; \ -} while (0) #define WILC_CATCH(__status__) \ ERRORHANDLER: \ diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 53b6f07a60c2..01fd94b35164 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -59,11 +59,15 @@ int wilc_mq_send(WILC_MsgQueueHandle *pHandle, Message *pstrMessage = NULL; if ((!pHandle) || (u32SendBufferSize == 0) || (!pvSendBuffer)) { - WILC_ERRORREPORT(s32RetStatus, WILC_INVALID_ARGUMENT); + PRINT_ER("pHandle or pvSendBuffer is null\n"); + s32RetStatus = -EFAULT; + goto ERRORHANDLER; } if (pHandle->bExiting) { - WILC_ERRORREPORT(s32RetStatus, WILC_FAIL); + PRINT_ER("pHandle fail\n"); + s32RetStatus = -EFAULT; + goto ERRORHANDLER; } spin_lock_irqsave(&pHandle->strCriticalSection, flags); @@ -97,13 +101,11 @@ int wilc_mq_send(WILC_MsgQueueHandle *pHandle, up(&pHandle->hSem); - WILC_CATCH(s32RetStatus) - { - /* error occured, free any allocations */ - if (pstrMessage) { - kfree(pstrMessage->pvBuffer); - kfree(pstrMessage); - } +ERRORHANDLER: + /* error occured, free any allocations */ + if (pstrMessage) { + kfree(pstrMessage->pvBuffer); + kfree(pstrMessage); } return s32RetStatus; @@ -125,11 +127,13 @@ int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, if ((!pHandle) || (u32RecvBufferSize == 0) || (!pvRecvBuffer) || (!pu32ReceivedLength)) { - WILC_ERRORREPORT(s32RetStatus, WILC_INVALID_ARGUMENT); + PRINT_ER("pHandle or pvRecvBuffer is null\n"); + return -EINVAL; } if (pHandle->bExiting) { - WILC_ERRORREPORT(s32RetStatus, WILC_FAIL); + PRINT_ER("pHandle fail\n"); + return -EFAULT; } spin_lock_irqsave(&pHandle->strCriticalSection, flags); @@ -138,52 +142,44 @@ int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, down(&pHandle->hSem); - if (s32RetStatus == WILC_TIMEOUT) { - /* timed out, just exit without consumeing the message */ - spin_lock_irqsave(&pHandle->strCriticalSection, flags); - pHandle->u32ReceiversCount--; - spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); - } else { - /* other non-timeout scenarios */ - if (s32RetStatus) { - PRINT_ER("Non-timeout\n"); - return s32RetStatus; - } - - if (pHandle->bExiting) { - WILC_ERRORREPORT(s32RetStatus, WILC_FAIL); - } - - spin_lock_irqsave(&pHandle->strCriticalSection, flags); - - pstrMessage = pHandle->pstrMessageList; - if (!pstrMessage) { - spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); - WILC_ERRORREPORT(s32RetStatus, WILC_FAIL); - } - /* check buffer size */ - if (u32RecvBufferSize < pstrMessage->u32Length) { - spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); - up(&pHandle->hSem); - WILC_ERRORREPORT(s32RetStatus, WILC_BUFFER_OVERFLOW); - } - - /* consume the message */ - pHandle->u32ReceiversCount--; - memcpy(pvRecvBuffer, pstrMessage->pvBuffer, pstrMessage->u32Length); - *pu32ReceivedLength = pstrMessage->u32Length; - - pHandle->pstrMessageList = pstrMessage->pstrNext; - - kfree(pstrMessage->pvBuffer); - kfree(pstrMessage); - - spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); + /* other non-timeout scenarios */ + if (s32RetStatus) { + PRINT_ER("Non-timeout\n"); + return s32RetStatus; } - WILC_CATCH(s32RetStatus) - { + if (pHandle->bExiting) { + PRINT_ER("pHandle fail\n"); + return -EFAULT; } + spin_lock_irqsave(&pHandle->strCriticalSection, flags); + + pstrMessage = pHandle->pstrMessageList; + if (!pstrMessage) { + spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); + PRINT_ER("pstrMessage is null\n"); + return -EFAULT; + } + /* check buffer size */ + if (u32RecvBufferSize < pstrMessage->u32Length) { + spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); + up(&pHandle->hSem); + PRINT_ER("u32RecvBufferSize overflow\n"); + return -EOVERFLOW; + } + + /* consume the message */ + pHandle->u32ReceiversCount--; + memcpy(pvRecvBuffer, pstrMessage->pvBuffer, pstrMessage->u32Length); + *pu32ReceivedLength = pstrMessage->u32Length; + + pHandle->pstrMessageList = pstrMessage->pstrNext; + + kfree(pstrMessage->pvBuffer); + kfree(pstrMessage); + + spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); + return s32RetStatus; } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 72fc1051af84..48def8cb4318 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -374,7 +374,6 @@ static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetwo struct wiphy *wiphy; s32 s32Freq; struct ieee80211_channel *channel; - s32 s32Error = WILC_SUCCESS; struct cfg80211_bss *bss = NULL; priv = (struct wilc_priv *)pUserVoid; @@ -391,7 +390,8 @@ static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetwo || (((s32)pstrNetworkInfo->s8rssi) * 100) > 100) ) { - WILC_ERRORREPORT(s32Error, WILC_FAIL); + PRINT_ER("wiphy signal type fial\n"); + return; } if (pstrNetworkInfo != NULL) { @@ -485,11 +485,6 @@ static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetwo up(&(priv->hSemScanReq)); } } - - - WILC_CATCH(s32Error) - { - } } From 559e1a04e2888331dae5f648cc097dd9f30172c7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:02 +0900 Subject: [PATCH 0466/2431] staging: wilc1000: remove definitions unused Remove the definitions which are not used anywhere. - WILC_ALREADY_EXSIT - WILC_EMPTY - WILC_FULL - WILC_CANCELED - WILC_INVALID_FILE - WILC_UNSUPPORTED_VERSION - WILC_FILE_EOF Remove the definition which is not used anymore. - WILC_CATCH Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_errorsupport.h | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index 99ded3dcb74c..054ed7604388 100644 --- a/drivers/staging/wilc1000/wilc_errorsupport.h +++ b/drivers/staging/wilc1000/wilc_errorsupport.h @@ -12,9 +12,6 @@ #include "linux_wlan_common.h" -/* Psitive Numbers to indicate sucess with special status */ -#define WILC_ALREADY_EXSIT (+100) /** The requested object already exists */ - /* Generic success will return 0 */ #define WILC_SUCCESS 0 /** Generic success */ @@ -25,22 +22,8 @@ #define WILC_INVALID_STATE -103 /** An API request would violate the Driver state machine (i.e. to start PID while not camped)*/ #define WILC_BUFFER_OVERFLOW -104 /** In copy operations if the copied data is larger than the allocated buffer*/ #define WILC_NULL_PTR -105 /** null pointer is passed or used */ -#define WILC_EMPTY -107 -#define WILC_FULL -108 #define WILC_TIMEOUT -109 -#define WILC_CANCELED -110 /** The required operation have been canceled by the user*/ -#define WILC_INVALID_FILE -112 /** The Loaded file is corruped or having an invalid format */ #define WILC_NOT_FOUND -113 /** Cant find the file to load */ #define WILC_NO_MEM -114 -#define WILC_UNSUPPORTED_VERSION -115 -#define WILC_FILE_EOF -116 - - - - - -#define WILC_CATCH(__status__) \ -ERRORHANDLER: \ - if (__status__ < WILC_SUCCESS) \ #endif From e6e12661d8e123667afc03a58fc2e90cd95c5e5e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:03 +0900 Subject: [PATCH 0467/2431] staging: wilc1000: replace wilc error types with the generic error types This patch replaces the error types defined by wilc driver with the generic error types provided by the Linux kernel. - WILC_SUCCESS 0 - WILC_FAIL -EFAULT - WILC_BUSY -EBUSY - WILC_INVALID_ARGUMENT -EINVAL - WILC_INVALID_STATE -EINVAL - WILC_BUFFER_OVERFLOW -EOVERFLOW - WILC_NULL_PTR -EFAULT - WILC_TIMEOUT -ETIMEDOUT - WILC_NOT_FOUND -ENOENT - WILC_NO_MEM -ENOMEM After then removes all wilc definitions. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 24 +- drivers/staging/wilc1000/host_interface.c | 238 +++++++++--------- drivers/staging/wilc1000/linux_mon.c | 14 +- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_errorsupport.h | 14 -- drivers/staging/wilc1000/wilc_msgqueue.c | 8 +- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 76 +++--- 7 files changed, 181 insertions(+), 195 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 96358a92aeb9..aecaa033447b 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -340,7 +340,7 @@ INLINE u16 get_asoc_id(u8 *data) s32 CoreConfiguratorInit(void) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; PRINT_D(CORECONFIG_DBG, "CoreConfiguratorInit()\n"); @@ -415,7 +415,7 @@ u8 get_current_channel(u8 *pu8msa, u16 u16RxLen) */ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrNetworkInfo *pstrNetworkInfo = NULL; u8 u8MsgType = 0; u8 u8MsgID = 0; @@ -541,21 +541,21 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) */ s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; if (pstrNetworkInfo != NULL) { if (pstrNetworkInfo->pu8IEs != NULL) { kfree(pstrNetworkInfo->pu8IEs); pstrNetworkInfo->pu8IEs = NULL; } else { - s32Error = WILC_FAIL; + s32Error = -EFAULT; } kfree(pstrNetworkInfo); pstrNetworkInfo = NULL; } else { - s32Error = WILC_FAIL; + s32Error = -EFAULT; } return s32Error; @@ -575,7 +575,7 @@ s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo) s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, tstrConnectRespInfo **ppstrConnectRespInfo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrConnectRespInfo *pstrConnectRespInfo = NULL; u16 u16AssocRespLen = 0; u8 *pu8IEs = NULL; @@ -632,21 +632,21 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, */ s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; if (pstrConnectRespInfo != NULL) { if (pstrConnectRespInfo->pu8RespIEs != NULL) { kfree(pstrConnectRespInfo->pu8RespIEs); pstrConnectRespInfo->pu8RespIEs = NULL; } else { - s32Error = WILC_FAIL; + s32Error = -EFAULT; } kfree(pstrConnectRespInfo); pstrConnectRespInfo = NULL; } else { - s32Error = WILC_FAIL; + s32Error = -EFAULT; } return s32Error; @@ -657,7 +657,7 @@ s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZ wid_site_survey_reslts_s **ppstrSurveyResults, u32 *pu32SurveyResultsCount) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; wid_site_survey_reslts_s *pstrSurveyResults = NULL; u32 u32SurveyResultsCount = 0; u32 u32SurveyBytesLength = 0; @@ -712,7 +712,7 @@ ERRORHANDLER: s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; if (pstrSurveyResults != NULL) { kfree(pstrSurveyResults); @@ -734,7 +734,7 @@ s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults) s32 CoreConfiguratorDeInit(void) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; PRINT_D(CORECONFIG_DBG, "CoreConfiguratorDeInit()\n"); diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8c6de4205197..8d7a639e3e3e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -652,7 +652,7 @@ static tstrWILC_WFIDrv *get_handler_from_id(int id) static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetChan *pstrHostIFSetChan) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -686,7 +686,7 @@ static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetDrvHandler *pstrHostIfSetDrvHandler) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = drvHandler; @@ -726,7 +726,7 @@ static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetOperationMode *pstrHostIfSetOperationMode) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -768,7 +768,7 @@ static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetOpe s32 Handle_set_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; char firmwareIPAddress[4] = {0}; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -815,7 +815,7 @@ s32 Handle_set_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -838,7 +838,7 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) if (memcmp(gs8GetIP[idx], gs8SetIP[idx], IP_ALEN) != 0) host_int_setup_ipaddress(pstrWFIDrv, gs8SetIP[idx], idx); - if (s32Error != WILC_SUCCESS) { + if (s32Error != 0) { PRINT_ER("Failed to get IP address\n"); return -EINVAL; } @@ -864,14 +864,14 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetMacAddress *pstrHostIfSetMacAddress) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; u8 *mac_buf = kmalloc(ETH_ALEN, GFP_KERNEL); if (mac_buf == NULL) { PRINT_ER("No buffer to send mac address\n"); - return WILC_FAIL; + return -EFAULT; } memcpy(mac_buf, pstrHostIfSetMacAddress->u8MacAddress, ETH_ALEN); @@ -907,7 +907,7 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetMacAdd static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfGetMacAddress *pstrHostIfGetMacAddress) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /*prepare configuration packet*/ @@ -940,7 +940,7 @@ static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfGetMacAdd */ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr *strHostIFCfgParamAttr) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWIDList[32]; u8 u8WidCnt = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -1281,7 +1281,7 @@ ERRORHANDLER: */ static s32 Handle_wait_msg_q_empty(void) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; g_wilc_initialized = 0; up(&hWaitResponse); @@ -1299,7 +1299,7 @@ static s32 Handle_wait_msg_q_empty(void) */ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHostIFscanAttr) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWIDList[5]; u32 u32WidsCount = 0; u32 i; @@ -1472,7 +1472,7 @@ ERRORHANDLER: */ static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -1531,12 +1531,12 @@ u8 u8ConnectedSSID[6] = {0}; static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *pstrHostIFconnectAttr) { tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWIDList[8]; u32 u32WidsCount = 0, dummyval = 0; /* char passphrase[] = "12345678"; */ #ifndef CONNECT_DIRECT - s32 s32Err = WILC_SUCCESS; + s32 s32Err = 0; u32 i; u8 u8bssDscListIndex; wid_site_survey_reslts_s *pstrSurveyResults = NULL; @@ -1568,7 +1568,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps &pstrWFIDrv->u32SurveyResultsCount); - if (s32Err == WILC_SUCCESS) { + if (s32Err == 0) { /* use the parsed info in pstrSurveyResults, then deallocate it */ PRINT_D(HOSTINF_DBG, "Copying site survey results in global structure, then deallocate\n"); for (i = 0; i < pstrWFIDrv->u32SurveyResultsCount; i++) { @@ -1711,7 +1711,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps if (memcmp(pstrHostIFconnectAttr->pu8bssid, u8ConnectedSSID, ETH_ALEN) == 0) { - s32Error = WILC_SUCCESS; + s32Error = 0; PRINT_ER("Trying to connect to an already connected AP, Discard connect request\n"); return s32Error; } @@ -2109,7 +2109,7 @@ ERRORHANDLER: static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWIDList[5]; u32 u32WidsCount = 0; u8 *pu8CurrByte = NULL; @@ -2172,7 +2172,7 @@ static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) */ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrConnectInfo strConnectInfo; tstrWID strWID; u16 u16DummyReasonCode = 0; @@ -2286,7 +2286,7 @@ static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdNetworkInfo - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrNetworkInfo *pstrNetworkInfo = NULL; void *pJoinParams = NULL; @@ -2401,7 +2401,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy { /* TODO: mostafa: till now, this function just handles only the received mac status msg, */ /* which carries only 1 WID which have WID ID = WID_STATUS */ - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; u8 u8MsgType = 0; u8 u8MsgID = 0; u16 u16MsgLen = 0; @@ -2412,7 +2412,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy u8 u8MacStatusAdditionalInfo; tstrConnectInfo strConnectInfo; tstrDisconnectNotifInfo strDisconnectNotifInfo; - s32 s32Err = WILC_SUCCESS; + s32 s32Err = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; if (pstrWFIDrv == NULL) @@ -2726,7 +2726,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy */ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIFkeyAttr) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; #ifdef WILC_AP_EXTERNAL_MLME tstrWID strWIDList[5]; @@ -3099,7 +3099,7 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) { tstrWID strWID; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; u16 u16DummyReasonCode = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3219,7 +3219,7 @@ static s32 Switch_Log_Terminal(tstrWILC_WFIDrv *drvHandler) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; static char dummy = 9; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3257,7 +3257,7 @@ static s32 Switch_Log_Terminal(tstrWILC_WFIDrv *drvHandler) static s32 Handle_GetChnl(tstrWILC_WFIDrv *drvHandler) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3297,7 +3297,7 @@ static s32 Handle_GetChnl(tstrWILC_WFIDrv *drvHandler) */ static void Handle_GetRssi(tstrWILC_WFIDrv *drvHandler) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3324,7 +3324,7 @@ static void Handle_GetRssi(tstrWILC_WFIDrv *drvHandler) static void Handle_GetLinkspeed(tstrWILC_WFIDrv *drvHandler) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3413,7 +3413,7 @@ s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatis static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaInactiveT *strHostIfStaInactiveT) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; u8 *stamac; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3478,7 +3478,7 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna */ static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetBeacon *pstrSetBeaconParam) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3547,7 +3547,7 @@ ERRORHANDLER: */ static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelBeacon *pstrDelBeacon) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3638,7 +3638,7 @@ static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, tstrWILC_AddStaParam *pstrSta */ static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam *pstrStationParam) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3658,7 +3658,7 @@ static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, get_id_from_handler(pstrWFIDrv)); - if (s32Error != WILC_SUCCESS) + if (s32Error != 0) PRINT_ER("Failed to send add station config packet\n"); ERRORHANDLER: @@ -3677,7 +3677,7 @@ ERRORHANDLER: */ static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelAllSta *pstrDelAllStaParam) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; @@ -3732,7 +3732,7 @@ ERRORHANDLER: */ static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelSta *pstrDelStaParam) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3773,7 +3773,7 @@ ERRORHANDLER: */ static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam *pstrStationParam) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3814,7 +3814,7 @@ ERRORHANDLER: */ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnChan *pstrHostIfRemainOnChan) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; u8 u8remain_on_chan_flag; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; @@ -3870,7 +3870,7 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, get_id_from_handler(pstrWFIDrv)); - if (s32Error != WILC_SUCCESS) + if (s32Error != 0) PRINT_ER("Failed to set remain on channel\n"); ERRORHANDLER: @@ -3902,7 +3902,7 @@ ERRORHANDLER: */ static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, tstrHostIfRegisterFrame *pstrHostIfRegisterFrame) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -3952,7 +3952,7 @@ static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, tstrHostIfRema { u8 u8remain_on_chan_flag; tstrWID strWID; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; PRINT_D(HOSTINF_DBG, "CANCEL REMAIN ON CHAN\n"); @@ -3976,7 +3976,7 @@ static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, tstrHostIfRema /*Sending Cfg*/ s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, get_id_from_handler(pstrWFIDrv)); - if (s32Error != WILC_SUCCESS) { + if (s32Error != 0) { PRINT_ER("Failed to set remain on channel\n"); goto _done_; } @@ -3988,7 +3988,7 @@ static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, tstrHostIfRema P2P_LISTEN_STATE = 0; } else { PRINT_D(GENERIC_DBG, "Not in listen state\n"); - s32Error = WILC_FAIL; + s32Error = -EFAULT; } _done_: @@ -4007,7 +4007,7 @@ _done_: */ static void ListenTimerCB(unsigned long arg) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)arg; /*Stopping remain-on-channel timer*/ @@ -4038,7 +4038,7 @@ static void ListenTimerCB(unsigned long arg) */ static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, tstrHostIfPowerMgmtParam *strPowerMgmtParam) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; s8 s8PowerMode; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -4073,7 +4073,7 @@ static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, tstrHostIfPowerM */ static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetMulti *strHostIfSetMulti) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; @@ -4124,7 +4124,7 @@ ERRORHANDLER: */ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionInfo *strHostIfBASessionInfo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; int AddbaTimeout = 100; char *ptr = NULL; @@ -4214,7 +4214,7 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI */ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionInfo *strHostIfBASessionInfo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; char *ptr = NULL; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -4286,7 +4286,7 @@ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI */ static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionInfo *strHostIfBASessionInfo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; char *ptr = NULL; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; @@ -4606,7 +4606,7 @@ static void TimerCB_Connect(unsigned long arg) /* Check implementation in core adding 9 bytes to the input! */ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ @@ -4635,7 +4635,7 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) */ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -4683,7 +4683,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) */ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -4738,7 +4738,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -4801,7 +4801,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, AUTHTYPE_T tenuAuth_type) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; u8 i; @@ -4874,7 +4874,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, const u8 *mac_addr, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode, u8 u8Idx) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; u8 u8KeyLen = u8PtkKeylen; @@ -4972,7 +4972,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe u8 u8KeyIdx, u32 u32KeyRSClen, const u8 *KeyRSC, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; u8 u8KeyLen = u8GtkKeylen; @@ -5075,7 +5075,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe */ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8PmkidInfoArray) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; u32 i; @@ -5136,7 +5136,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm s32 host_int_get_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PmkidInfoArray, u32 u32PmkidInfoLen) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ @@ -5165,7 +5165,7 @@ s32 host_int_get_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PmkidInfoArray, s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /*validating psk length*/ @@ -5191,7 +5191,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPh */ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; @@ -5205,7 +5205,7 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send get mac address\n"); - return WILC_FAIL; + return -EFAULT; } down(&hWaitResponse); @@ -5225,7 +5225,7 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) */ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; PRINT_D(GENERIC_DBG, "mac addr = %x:%x:%x\n", pu8MacAddress[0], pu8MacAddress[1], pu8MacAddress[2]); @@ -5261,7 +5261,7 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ @@ -5309,7 +5309,7 @@ s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv, u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE], u32 u32MaxSiteSrvyFragLen) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID astrWIDList[2]; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -5353,7 +5353,7 @@ s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv, */ s32 host_int_set_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 scanSource) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ @@ -5383,7 +5383,7 @@ s32 host_int_set_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 scanSource) s32 host_int_get_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ScanSource) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ @@ -5414,7 +5414,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, u8 u8channel, void *pJoinParams) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tenuScanConnTimer enuScanConnTimer; @@ -5502,11 +5502,11 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; if (!gu8FlushedJoinReq) { - s32Error = WILC_FAIL; + s32Error = -EFAULT; return s32Error; } @@ -5543,7 +5543,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) */ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -5582,7 +5582,7 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) */ s32 host_int_disconnect_station(tstrWILC_WFIDrv *hWFIDrv, u8 assoc_id) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ @@ -5623,7 +5623,7 @@ s32 host_int_disconnect_station(tstrWILC_WFIDrv *hWFIDrv, u8 assoc_id) s32 host_int_get_assoc_req_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocReqInfo, u32 u32AssocReqInfoLen) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ @@ -5650,7 +5650,7 @@ s32 host_int_get_assoc_req_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocReqInfo, s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -5697,7 +5697,7 @@ s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, u32 u32RxPowerLevelLen) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ @@ -5727,7 +5727,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, */ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -5754,7 +5754,7 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) s32 host_int_wait_msg_queue_idle(void) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; @@ -5777,7 +5777,7 @@ s32 host_int_wait_msg_queue_idle(void) s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; @@ -5802,7 +5802,7 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; @@ -5840,7 +5840,7 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) */ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -5882,7 +5882,7 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) */ s32 host_int_test_set_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 u32TestMemAddr) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -5926,7 +5926,7 @@ s32 host_int_test_set_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 u32TestMemAddr) */ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu32InactiveTime) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -5969,7 +5969,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWID strWID; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -6014,7 +6014,7 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) */ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -6029,7 +6029,7 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); - return WILC_FAIL; + return -EFAULT; } down(&(pstrWFIDrv->hSemGetRSSI)); @@ -6037,7 +6037,7 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) if (ps8Rssi == NULL) { PRINT_ER("RSS pointer value is null"); - return WILC_FAIL; + return -EFAULT; } @@ -6050,7 +6050,7 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) { tstrHostIFmsg strHostIFmsg; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -6066,7 +6066,7 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send GET_LINKSPEED to message queue "); - return WILC_FAIL; + return -EFAULT; } down(&(pstrWFIDrv->hSemGetLINKSPEED)); @@ -6074,7 +6074,7 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) if (ps8lnkspd == NULL) { PRINT_ER("LINKSPEED pointer value is null"); - return WILC_FAIL; + return -EFAULT; } @@ -6086,7 +6086,7 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; @@ -6100,7 +6100,7 @@ s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatis s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); - return WILC_FAIL; + return -EFAULT; } down(&hWaitResponse); @@ -6130,7 +6130,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, size_t IEsLen, tWILCpfScanResult ScanResult, void *pvUserArg, tstrHiddenNetwork *pstrHiddenNetwork) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tenuScanConnTimer enuScanConnTimer; @@ -6198,7 +6198,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -6236,7 +6236,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) */ s32 hif_get_cfg(tstrWILC_WFIDrv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; down(&(pstrWFIDrv->gtOsCfgValuesSem)); @@ -6376,7 +6376,7 @@ static void GetPeriodicRSSI(unsigned long arg) } if (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; /* prepare the Get RSSI Message */ @@ -6416,7 +6416,7 @@ static u32 clients_count; s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv; int err; @@ -6437,7 +6437,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) /*Allocate host interface private structure*/ pstrWFIDrv = kmalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); if (pstrWFIDrv == NULL) { - s32Error = WILC_NO_MEM; + s32Error = -ENOMEM; PRINT_ER("Failed to allocate memory\n"); goto _fail_timer_2; } @@ -6447,7 +6447,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) /*save into globl handle*/ err = add_handler_in_list(pstrWFIDrv); if (err) { - s32Error = WILC_FAIL; + s32Error = -EFAULT; goto _fail_timer_2; } @@ -6489,7 +6489,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) HostIFthreadHandler = kthread_run(hostIFthread, NULL, "WILC_kthread"); if (IS_ERR(HostIFthreadHandler)) { PRINT_ER("Failed to creat Thread\n"); - s32Error = WILC_FAIL; + s32Error = -EFAULT; goto _fail_mq_; } setup_timer(&g_hPeriodicRSSI, GetPeriodicRSSI, @@ -6581,7 +6581,7 @@ _fail_: s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; int ret; @@ -6659,7 +6659,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); - if (s32Error != WILC_SUCCESS) + if (s32Error != 0) PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", s32Error); down(&hSemHostIFthrdEnd); @@ -6675,7 +6675,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) /* gWFiDrvHandle = NULL; */ ret = remove_handler_in_list(pstrWFIDrv); if (ret) - s32Error = WILC_NOT_FOUND; + s32Error = -ENOENT; if (pstrWFIDrv != NULL) { kfree(pstrWFIDrv); @@ -6703,7 +6703,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) */ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6749,7 +6749,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) */ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6810,7 +6810,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) */ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrHostIFmsg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6869,7 +6869,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) */ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, tWILCpfRemainOnChanExpired RemainOnChanExpired, tWILCpfRemainOnChanReady RemainOnChanReady, void *pvUserArg) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -6914,7 +6914,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u */ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -6949,7 +6949,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) * @version 1.0*/ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bReg) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -7008,7 +7008,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, u32 u32HeadLen, u8 *pu8Head, u32 u32TailLen, u8 *pu8Tail) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrHostIFSetBeacon *pstrSetBeaconParam = &strHostIFmsg.uniHostIFmsgBody.strHostIFSetBeacon; @@ -7078,7 +7078,7 @@ ERRORHANDLER: */ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -7111,7 +7111,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) */ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrStaParams) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; @@ -7160,7 +7160,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta */ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrHostIFDelSta *pstrDelStationMsg = &strHostIFmsg.uniHostIFmsgBody.strDelStaParam; @@ -7202,7 +7202,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) */ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrHostIFDelAllSta *pstrDelAllStationMsg = &strHostIFmsg.uniHostIFmsgBody.strHostIFDelAllSta; @@ -7262,7 +7262,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) */ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrStaParams) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; @@ -7303,7 +7303,7 @@ u32 wilc_get_chipid(u8); s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Timeout) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrHostIfPowerMgmtParam *pstrPowerMgmtParam = &strHostIFmsg.uniHostIFmsgBody.strPowerMgmtparam; @@ -7336,7 +7336,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32count) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -7606,7 +7606,7 @@ void host_int_freeJoinParams(void *pJoinParams) static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID, short int BufferSize, short int SessionTimeout, void *drvHandler) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; @@ -7637,7 +7637,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; @@ -7668,7 +7668,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; @@ -7707,7 +7707,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T * @version 1.0*/ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; @@ -7747,7 +7747,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) * @version 1.0*/ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; tstrHostIFmsg strHostIFmsg; diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index 6a27d5c12bd3..af5d0f5f065a 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -178,21 +178,21 @@ static int mon_mgmt_tx(struct net_device *dev, const u8 *buf, size_t len) if (dev == NULL) { PRINT_D(HOSTAPD_DBG, "ERROR: dev == NULL\n"); - return WILC_FAIL; + return -EFAULT; } netif_stop_queue(dev); mgmt_tx = kmalloc(sizeof(struct tx_complete_mon_data), GFP_ATOMIC); if (mgmt_tx == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx structure\n"); - return WILC_FAIL; + return -EFAULT; } mgmt_tx->buff = kmalloc(len, GFP_ATOMIC); if (mgmt_tx->buff == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx buff\n"); kfree(mgmt_tx); - return WILC_FAIL; + return -EFAULT; } @@ -225,13 +225,13 @@ static netdev_tx_t WILC_WFI_mon_xmit(struct sk_buff *skb, /* Bug 4601 */ if (wilc_wfi_mon == NULL) - return WILC_FAIL; + return -EFAULT; mon_priv = netdev_priv(wilc_wfi_mon); if (mon_priv == NULL) { PRINT_ER("Monitor interface private structure is NULL\n"); - return WILC_FAIL; + return -EFAULT; } @@ -351,7 +351,7 @@ struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_devi { - u32 ret = WILC_SUCCESS; + u32 ret = 0; struct WILC_WFI_mon_priv *priv; /*If monitor interface is already initialized, return it*/ @@ -416,7 +416,7 @@ int WILC_WFI_deinit_mon_interface(void) } wilc_wfi_mon = NULL; } - return WILC_SUCCESS; + return 0; } #endif /* WILC_AP_EXTERNAL_MLME */ diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index bd77eb3682f0..3477e09d9e53 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1905,7 +1905,7 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd) u32 size = 0, length = 0; perInterface_wlan_t *nic; struct wilc_priv *priv; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; /* struct iwreq *wrq = (struct iwreq *) req; // tony moved to case SIOCSIWPRIV */ nic = netdev_priv(ndev); diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index 054ed7604388..b0babbdfb1f7 100644 --- a/drivers/staging/wilc1000/wilc_errorsupport.h +++ b/drivers/staging/wilc1000/wilc_errorsupport.h @@ -12,18 +12,4 @@ #include "linux_wlan_common.h" -/* Generic success will return 0 */ -#define WILC_SUCCESS 0 /** Generic success */ - -/* Negative numbers to indicate failures */ -#define WILC_FAIL -100 /** Generic Fail */ -#define WILC_BUSY -101 /** Busy with another operation*/ -#define WILC_INVALID_ARGUMENT -102 /** A given argument is invalid*/ -#define WILC_INVALID_STATE -103 /** An API request would violate the Driver state machine (i.e. to start PID while not camped)*/ -#define WILC_BUFFER_OVERFLOW -104 /** In copy operations if the copied data is larger than the allocated buffer*/ -#define WILC_NULL_PTR -105 /** null pointer is passed or used */ -#define WILC_TIMEOUT -109 -#define WILC_NOT_FOUND -113 /** Cant find the file to load */ -#define WILC_NO_MEM -114 - #endif diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 01fd94b35164..94a2d3d7c9e4 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -16,7 +16,7 @@ int wilc_mq_create(WILC_MsgQueueHandle *pHandle) pHandle->pstrMessageList = NULL; pHandle->u32ReceiversCount = 0; pHandle->bExiting = false; - return WILC_SUCCESS; + return 0; } /*! @@ -42,7 +42,7 @@ int wilc_mq_destroy(WILC_MsgQueueHandle *pHandle) pHandle->pstrMessageList = pstrMessge; } - return WILC_SUCCESS; + return 0; } /*! @@ -54,7 +54,7 @@ int wilc_mq_destroy(WILC_MsgQueueHandle *pHandle) int wilc_mq_send(WILC_MsgQueueHandle *pHandle, const void *pvSendBuffer, u32 u32SendBufferSize) { - int s32RetStatus = WILC_SUCCESS; + int s32RetStatus = 0; unsigned long flags; Message *pstrMessage = NULL; @@ -122,7 +122,7 @@ int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, u32 *pu32ReceivedLength) { Message *pstrMessage; - int s32RetStatus = WILC_SUCCESS; + int s32RetStatus = 0; unsigned long flags; if ((!pHandle) || (u32RecvBufferSize == 0) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 48def8cb4318..f01260fb3a8d 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -500,7 +500,7 @@ static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetwo int WILC_WFI_Set_PMKSA(u8 *bssid, struct wilc_priv *priv) { u32 i; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; for (i = 0; i < priv->pmkid_list.numpmkid; i++) { @@ -512,7 +512,7 @@ int WILC_WFI_Set_PMKSA(u8 *bssid, struct wilc_priv *priv) /*If bssid is found, set the values*/ s32Error = host_int_set_pmkid_info(priv->hWILCWFIDrv, &priv->pmkid_list); - if (s32Error != WILC_SUCCESS) + if (s32Error != 0) PRINT_ER("Error in pmkid\n"); break; @@ -693,7 +693,7 @@ static int set_channel(struct wiphy *wiphy, u32 channelnum = 0; struct wilc_priv *priv; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; priv = wiphy_priv(wiphy); @@ -703,7 +703,7 @@ static int set_channel(struct wiphy *wiphy, u8CurrChannel = channelnum; s32Error = host_int_set_mac_chnl_num(priv->hWILCWFIDrv, channelnum); - if (s32Error != WILC_SUCCESS) + if (s32Error != 0) PRINT_ER("Error in setting channel %d\n", channelnum); return s32Error; @@ -730,7 +730,7 @@ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) { struct wilc_priv *priv; u32 i; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; u8 au8ScanChanList[MAX_NUM_SCANNED_NETWORKS]; tstrHiddenNetwork strHiddenNetwork; @@ -795,7 +795,7 @@ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) " channels\n"); } - if (s32Error != WILC_SUCCESS) { + if (s32Error != 0) { s32Error = -EBUSY; PRINT_WRN(CFG80211_DBG, "Device is busy: Error(%d)\n", s32Error); } @@ -818,7 +818,7 @@ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) static int connect(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_connect_params *sme) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; u32 i; u8 u8security = NO_ENCRYPT; AUTHTYPE_T tenuAuth_type = ANY; @@ -1049,7 +1049,7 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, CfgConnectResult, (void *)priv, u8security, tenuAuth_type, pstrNetworkInfo->u8channel, pstrNetworkInfo->pJoinParams); - if (s32Error != WILC_SUCCESS) { + if (s32Error != 0) { PRINT_ER("host_int_set_join_req(): Error(%d)\n", s32Error); s32Error = -ENOENT; goto done; @@ -1072,7 +1072,7 @@ done: */ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_code) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; #ifdef WILC_P2P tstrWILC_WFIDrv *pstrWFIDrv; @@ -1101,7 +1101,7 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co #endif s32Error = host_int_disconnect(priv->hWILCWFIDrv, reason_code); - if (s32Error != WILC_SUCCESS) { + if (s32Error != 0) { PRINT_ER("Error in disconnecting: Error(%d)\n", s32Error); s32Error = -EINVAL; } @@ -1124,7 +1124,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, const u8 *mac_addr, struct key_params *params) { - s32 s32Error = WILC_SUCCESS, KeyLen = params->key_len; + s32 s32Error = 0, KeyLen = params->key_len; u32 i; struct wilc_priv *priv; const u8 *pu8RxMic = NULL; @@ -1416,7 +1416,7 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac_addr) { struct wilc_priv *priv; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; priv = wiphy_priv(wiphy); @@ -1526,7 +1526,7 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, const u8 *mac_addr, void *cookie, void (*callback)(void *cookie, struct key_params *)) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; struct key_params key_params; @@ -1575,7 +1575,7 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool unicast, bool multicast) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; @@ -1603,7 +1603,7 @@ static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 ke static int WILC_WFI_dump_survey(struct wiphy *wiphy, struct net_device *netdev, int idx, struct survey_info *info) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; if (idx != 0) { @@ -1629,7 +1629,7 @@ static int WILC_WFI_dump_survey(struct wiphy *wiphy, struct net_device *netdev, static int get_station(struct wiphy *wiphy, struct net_device *dev, const u8 *mac, struct station_info *sinfo) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; perInterface_wlan_t *nic; #ifdef WILC_AP_EXTERNAL_MLME @@ -1811,7 +1811,7 @@ static int WILC_WFI_disassoc(struct wiphy *wiphy, struct net_device *dev, */ static int set_wiphy_params(struct wiphy *wiphy, u32 changed) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrCfgParamVal pstrCfgParamVal; struct wilc_priv *priv; @@ -1870,7 +1870,7 @@ static int WILC_WFI_set_bitrate_mask(struct wiphy *wiphy, struct net_device *dev, const u8 *peer, const struct cfg80211_bitrate_mask *mask) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; PRINT_D(CFG80211_DBG, "Setting Bitrate mask function\n"); return s32Error; @@ -1892,7 +1892,7 @@ static int set_pmksa(struct wiphy *wiphy, struct net_device *netdev, struct cfg80211_pmksa *pmksa) { u32 i; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; u8 flag = 0; struct wilc_priv *priv = wiphy_priv(wiphy); @@ -1944,7 +1944,7 @@ static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, u32 i; u8 flag = 0; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv = wiphy_priv(wiphy); @@ -2334,7 +2334,7 @@ static int remain_on_channel(struct wiphy *wiphy, struct ieee80211_channel *chan, unsigned int duration, u64 *cookie) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; priv = wiphy_priv(wiphy); @@ -2386,7 +2386,7 @@ static int cancel_remain_on_channel(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; priv = wiphy_priv(wiphy); @@ -2434,7 +2434,7 @@ int mgmt_tx(struct wiphy *wiphy, const struct ieee80211_mgmt *mgmt; struct p2p_mgmt_data *mgmt_tx; struct wilc_priv *priv; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv; u32 i; perInterface_wlan_t *nic; @@ -2454,13 +2454,13 @@ int mgmt_tx(struct wiphy *wiphy, mgmt_tx = kmalloc(sizeof(struct p2p_mgmt_data), GFP_KERNEL); if (mgmt_tx == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx structure\n"); - return WILC_FAIL; + return -EFAULT; } mgmt_tx->buff = kmalloc(buf_len, GFP_KERNEL); if (mgmt_tx->buff == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx buff\n"); kfree(mgmt_tx); - return WILC_FAIL; + return -EFAULT; } memcpy(mgmt_tx->buff, buf, len); mgmt_tx->size = len; @@ -2746,7 +2746,7 @@ int WILC_WFI_set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, host_int_set_power_mgmt(priv->hWILCWFIDrv, enabled, timeout); - return WILC_SUCCESS; + return 0; } #ifdef WILC_AP_EXTERNAL_MLME @@ -2766,7 +2766,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic); static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, enum nl80211_iftype type, u32 *flags, struct vif_params *params) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; perInterface_wlan_t *nic; u8 interface_type; @@ -3146,7 +3146,7 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, { struct cfg80211_beacon_data *beacon = &(settings->beacon); struct wilc_priv *priv; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; priv = wiphy_priv(wiphy); PRINT_D(HOSTAPD_DBG, "Starting ap\n"); @@ -3156,7 +3156,7 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, s32Error = set_channel(wiphy, &settings->chandef); - if (s32Error != WILC_SUCCESS) + if (s32Error != 0) PRINT_ER("Error in setting channel\n"); linux_wlan_set_bssid(dev, g_linux_wlan->strInterfaceInfo[0].aSrcAddress); @@ -3186,7 +3186,7 @@ static int change_beacon(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_beacon_data *beacon) { struct wilc_priv *priv; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; priv = wiphy_priv(wiphy); PRINT_D(HOSTAPD_DBG, "Setting beacon\n"); @@ -3212,7 +3212,7 @@ static int change_beacon(struct wiphy *wiphy, struct net_device *dev, */ static int stop_ap(struct wiphy *wiphy, struct net_device *dev) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; u8 NullBssid[ETH_ALEN] = {0}; @@ -3246,7 +3246,7 @@ static int stop_ap(struct wiphy *wiphy, struct net_device *dev) static int add_station(struct wiphy *wiphy, struct net_device *dev, const u8 *mac, struct station_parameters *params) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; tstrWILC_AddStaParam strStaParams = { {0} }; perInterface_wlan_t *nic; @@ -3316,7 +3316,7 @@ static int del_station(struct wiphy *wiphy, struct net_device *dev, struct station_del_parameters *params) { const u8 *mac = params->mac; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; perInterface_wlan_t *nic; @@ -3357,7 +3357,7 @@ static int del_station(struct wiphy *wiphy, struct net_device *dev, static int change_station(struct wiphy *wiphy, struct net_device *dev, const u8 *mac, struct station_parameters *params) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; tstrWILC_AddStaParam strStaParams = { {0} }; perInterface_wlan_t *nic; @@ -3468,7 +3468,7 @@ struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, const char *name, int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) /* tony for v3.8 support */ { PRINT_D(HOSTAPD_DBG, "Deleting virtual interface\n"); - return WILC_SUCCESS; + return 0; } @@ -3627,7 +3627,7 @@ struct wireless_dev *WILC_WFI_WiphyRegister(struct net_device *net) { struct wilc_priv *priv; struct wireless_dev *wdev; - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; PRINT_D(CFG80211_DBG, "Registering wifi device\n"); @@ -3709,7 +3709,7 @@ struct wireless_dev *WILC_WFI_WiphyRegister(struct net_device *net) int WILC_WFI_InitHostInt(struct net_device *net) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; @@ -3750,7 +3750,7 @@ int WILC_WFI_InitHostInt(struct net_device *net) */ int WILC_WFI_DeInitHostInt(struct net_device *net) { - s32 s32Error = WILC_SUCCESS; + s32 s32Error = 0; struct wilc_priv *priv; From 6569738ad547c6562c94254245a12aaaf2e375c4 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:04 +0900 Subject: [PATCH 0468/2431] staging: wilc1000: remove wilc_errorsupport.h This patch removes the wilc_errorsupport.h which is not used anymore and also deletes #include "wilc_errorsupport.h" from the source code. In addition, adds linux_wlan_common.h file in the wilc_msgqueue.c file in order to use PRINT macros defined in the linux_wlan_common.h file. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_errorsupport.h | 15 --------------- drivers/staging/wilc1000/wilc_msgqueue.c | 1 + drivers/staging/wilc1000/wilc_msgqueue.h | 1 - drivers/staging/wilc1000/wilc_oswrapper.h | 3 --- 4 files changed, 1 insertion(+), 19 deletions(-) delete mode 100644 drivers/staging/wilc1000/wilc_errorsupport.h diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h deleted file mode 100644 index b0babbdfb1f7..000000000000 --- a/drivers/staging/wilc1000/wilc_errorsupport.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __WILC_ERRORSUPPORT_H__ -#define __WILC_ERRORSUPPORT_H__ - -/*! - * @file wilc_errorsupport.h - * @brief Error reporting and handling support - * @author syounan - * @sa wilc_oswrapper.h top level OS wrapper file - * @date 10 Aug 2010 - * @version 1.0 - */ - -#include "linux_wlan_common.h" - -#endif diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 94a2d3d7c9e4..225bb99986a5 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -1,6 +1,7 @@ #include "wilc_msgqueue.h" #include +#include "linux_wlan_common.h" #include /*! diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index fb26463a001c..a3c0bba2cc88 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -11,7 +11,6 @@ */ #include "wilc_platform.h" -#include "wilc_errorsupport.h" /*! * @brief Creates a new Message queue diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h index 68f6efebc00c..9b5c23a458ad 100644 --- a/drivers/staging/wilc1000/wilc_oswrapper.h +++ b/drivers/staging/wilc1000/wilc_oswrapper.h @@ -16,9 +16,6 @@ /* Os Configuration File */ #include "wilc_platform.h" -/* Error reporting and handling support */ -#include "wilc_errorsupport.h" - /* Message Queue */ #include "wilc_msgqueue.h" From 108b3439b7dd51687983d42e66532b9dbd3204d1 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:20 +0900 Subject: [PATCH 0469/2431] staging: wilc1000: remove define WILC_AP_EXTERNAL_MLME and ifdef line This driver use WILC_AP_EXTERNAL_MLME define always. Delete define WILC_AP_EXTERNAL_MLME and ifdef line. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 30 ++----------------- drivers/staging/wilc1000/linux_mon.c | 2 -- drivers/staging/wilc1000/linux_wlan.c | 4 --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 21 +------------ drivers/staging/wilc1000/wilc_wlan.c | 12 +++----- drivers/staging/wilc1000/wilc_wlan.h | 2 -- drivers/staging/wilc1000/wilc_wlan_if.h | 5 +--- 7 files changed, 9 insertions(+), 67 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8d7a639e3e3e..41e80aad4d02 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -563,10 +563,8 @@ static s8 gs8lnkspd; static u8 gu8Chnl; static u8 gs8SetIP[2][4]; static u8 gs8GetIP[2][4]; -#ifdef WILC_AP_EXTERNAL_MLME static u32 gu32InactiveTime; static u8 gu8DelBcn; -#endif static u32 gu32WidConnRstHack; /*BugID_5137*/ @@ -2728,9 +2726,7 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF { s32 s32Error = 0; tstrWID strWID; - #ifdef WILC_AP_EXTERNAL_MLME tstrWID strWIDList[5]; - #endif u8 i; u8 *pu8keybuf; s8 s8idxarray[1]; @@ -2743,7 +2739,6 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF case WEP: -#ifdef WILC_AP_EXTERNAL_MLME if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); @@ -2791,7 +2786,6 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF } -#endif if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); @@ -2844,7 +2838,6 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF break; case WPARxGtk: - #ifdef WILC_AP_EXTERNAL_MLME if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { pu8keybuf = kmalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); if (pu8keybuf == NULL) { @@ -2894,7 +2887,6 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIF /* ///////////////////////// */ } - #endif if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling group key(Rx) function\n"); @@ -2949,7 +2941,6 @@ _WPARxGtk_end_case_: break; case WPAPtk: - #ifdef WILC_AP_EXTERNAL_MLME if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { @@ -2997,7 +2988,6 @@ _WPARxGtk_end_case_: up(&(pstrWFIDrv->hSemTestKeyBlock)); /* ///////////////////////// */ } - #endif if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { @@ -3395,10 +3385,6 @@ s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatis } - -#ifdef WILC_AP_EXTERNAL_MLME - - /** * @brief Handle_Get_InActiveTime * @details Sending config packet to set mac adddress for station and @@ -3800,7 +3786,6 @@ ERRORHANDLER: kfree(pstrStationParam->pu8Rates); kfree(strWID.ps8WidVal); } -#endif /*WILC_AP_EXTERNAL_MLME*/ #ifdef WILC_P2P /** @@ -4447,7 +4432,6 @@ static int hostIFthread(void *pvArg) Handle_GetChnl(strHostIFmsg.drvHandler); break; -#ifdef WILC_AP_EXTERNAL_MLME case HOST_IF_MSG_ADD_BEACON: Handle_AddBeacon(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFSetBeacon); break; @@ -4472,7 +4456,6 @@ static int hostIFthread(void *pvArg) Handle_Get_InActiveTime(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfStaInactiveT); break; -#endif /*WILC_AP_EXTERNAL_MLME*/ case HOST_IF_MSG_SCAN_TIMER_FIRED: PRINT_D(HOSTINF_DBG, "Scan Timeout\n"); @@ -4781,7 +4764,6 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, } -#ifdef WILC_AP_EXTERNAL_MLME /** * * @brief host_int_add_wep_key_bss_ap @@ -4854,7 +4836,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u return s32Error; } -#endif + /** * @brief adds ptk Key * @details @@ -4896,13 +4878,11 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPAPtk; - #ifdef WILC_AP_EXTERNAL_MLME if (mode == AP_MODE) { strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8Idx; } - #endif if (mode == STATION_MODE) strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; @@ -5003,12 +4983,10 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPARxGtk; strHostIFmsg.drvHandler = hWFIDrv; - #ifdef WILC_AP_EXTERNAL_MLME if (mode == AP_MODE) { strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; } - #endif if (mode == STATION_MODE) strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; @@ -5912,7 +5890,6 @@ s32 host_int_test_set_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 u32TestMemAddr) return s32Error; } -#ifdef WILC_AP_EXTERNAL_MLME /** * @brief host_int_get_inactive_time * @details @@ -5955,7 +5932,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 return s32Error; } -#endif + /** * @brief host_int_test_get_int_wid * @details Test function for getting wids @@ -6991,7 +6968,6 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe } #endif -#ifdef WILC_AP_EXTERNAL_MLME /** * @brief host_int_add_beacon * @details Setting add beacon params in message queue @@ -7298,7 +7274,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt return s32Error; } -#endif /*WILC_AP_EXTERNAL_MLME*/ + u32 wilc_get_chipid(u8); s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Timeout) diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index af5d0f5f065a..4c02b98cd58e 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -11,7 +11,6 @@ #include "wilc_wlan_if.h" #include "wilc_wlan.h" -#ifdef WILC_AP_EXTERNAL_MLME struct wilc_wfi_radiotap_hdr { struct ieee80211_radiotap_header hdr; @@ -419,4 +418,3 @@ int WILC_WFI_deinit_mon_interface(void) return 0; } -#endif /* WILC_AP_EXTERNAL_MLME */ diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 3477e09d9e53..bc9aae47d664 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1886,9 +1886,7 @@ int mac_close(struct net_device *ndev) PRINT_D(GENERIC_DBG, "Deinitializing wilc1000\n"); g_linux_wlan->close = 1; wilc1000_wlan_deinit(g_linux_wlan); - #ifdef WILC_AP_EXTERNAL_MLME WILC_WFI_deinit_mon_interface(); - #endif } up(&close_exit_sync); @@ -2247,10 +2245,8 @@ static void __exit exit_wilc_driver(void) } } -#ifdef WILC_AP_EXTERNAL_MLME /* Bug 4600 : WILC_WFI_deinit_mon_interface was already called at mac_close */ /* WILC_WFI_deinit_mon_interface(); */ -#endif /* if(g_linux_wlan->open_ifcs==0) */ { diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index f01260fb3a8d..cc61f265dc5d 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1130,11 +1130,9 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, const u8 *pu8RxMic = NULL; const u8 *pu8TxMic = NULL; u8 u8mode = NO_ENCRYPT; - #ifdef WILC_AP_EXTERNAL_MLME u8 u8gmode = NO_ENCRYPT; u8 u8pmode = NO_ENCRYPT; AUTHTYPE_T tenuAuth_type = ANY; - #endif priv = wiphy_priv(wiphy); @@ -1151,7 +1149,6 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, switch (params->cipher) { case WLAN_CIPHER_SUITE_WEP40: case WLAN_CIPHER_SUITE_WEP104: - #ifdef WILC_AP_EXTERNAL_MLME if (priv->wdev->iftype == NL80211_IFTYPE_AP) { priv->WILC_WFI_wep_default = key_index; @@ -1174,7 +1171,6 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, host_int_add_wep_key_bss_ap(priv->hWILCWFIDrv, params->key, params->key_len, key_index, u8mode, tenuAuth_type); break; } - #endif if (memcmp(params->key, priv->WILC_WFI_wep_key[key_index], params->key_len)) { priv->WILC_WFI_wep_default = key_index; priv->WILC_WFI_wep_key_len[key_index] = params->key_len; @@ -1193,7 +1189,6 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, case WLAN_CIPHER_SUITE_TKIP: case WLAN_CIPHER_SUITE_CCMP: - #ifdef WILC_AP_EXTERNAL_MLME if (priv->wdev->iftype == NL80211_IFTYPE_AP || priv->wdev->iftype == NL80211_IFTYPE_P2P_GO) { if (priv->wilc_gtk[key_index] == NULL) { @@ -1304,7 +1299,6 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } break; } - #endif { u8mode = 0; @@ -1435,7 +1429,6 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, /*freeing memory allocated by "wilc_gtk" and "wilc_ptk" in "WILC_WIFI_ADD_KEY"*/ - #ifdef WILC_AP_EXTERNAL_MLME if ((priv->wilc_gtk[key_index]) != NULL) { if (priv->wilc_gtk[key_index]->key != NULL) { @@ -1469,7 +1462,6 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, kfree(priv->wilc_ptk[key_index]); priv->wilc_ptk[key_index] = NULL; } - #endif /*Delete saved PTK and GTK keys params, if any*/ if (g_key_ptk_params.key != NULL) { @@ -1632,15 +1624,12 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, s32 s32Error = 0; struct wilc_priv *priv; perInterface_wlan_t *nic; - #ifdef WILC_AP_EXTERNAL_MLME u32 i = 0; u32 associatedsta = 0; u32 inactive_time = 0; - #endif priv = wiphy_priv(wiphy); nic = netdev_priv(dev); - #ifdef WILC_AP_EXTERNAL_MLME if (nic->iftype == AP_MODE || nic->iftype == GO_MODE) { PRINT_D(HOSTAPD_DBG, "Getting station parameters\n"); @@ -1669,7 +1658,6 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CFG80211_DBG, "Inactive time %d\n", sinfo->inactive_time); } - #endif if (nic->iftype == STATION_MODE) { tstrStatistics strStatistics; @@ -2749,7 +2737,7 @@ int WILC_WFI_set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, return 0; } -#ifdef WILC_AP_EXTERNAL_MLME + /** * @brief change_virtual_intf * @details Change type/configuration of virtual interface, @@ -3471,9 +3459,6 @@ int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) /* ton return 0; } - - -#endif /*WILC_AP_EXTERNAL_MLME*/ static struct cfg80211_ops wilc_cfg80211_ops = { .set_monitor_channel = set_channel, @@ -3484,7 +3469,6 @@ static struct cfg80211_ops wilc_cfg80211_ops = { .del_key = del_key, .get_key = get_key, .set_default_key = set_default_key, - #ifdef WILC_AP_EXTERNAL_MLME .add_virtual_intf = add_virtual_intf, .del_virtual_intf = del_virtual_intf, .change_virtual_intf = change_virtual_intf, @@ -3495,7 +3479,6 @@ static struct cfg80211_ops wilc_cfg80211_ops = { .add_station = add_station, .del_station = del_station, .change_station = change_station, - #endif /* WILC_AP_EXTERNAL_MLME*/ .get_station = get_station, .dump_station = dump_station, .change_bss = change_bss, @@ -3594,14 +3577,12 @@ struct wireless_dev *WILC_WFI_CfgAlloc(void) } - #ifdef WILC_AP_EXTERNAL_MLME /* enable 802.11n HT */ WILC_WFI_band_2ghz.ht_cap.ht_supported = 1; WILC_WFI_band_2ghz.ht_cap.cap |= (1 << IEEE80211_HT_CAP_RX_STBC_SHIFT); WILC_WFI_band_2ghz.ht_cap.mcs.rx_mask[0] = 0xff; WILC_WFI_band_2ghz.ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_8K; WILC_WFI_band_2ghz.ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_NONE; - #endif /*wiphy bands*/ wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &WILC_WFI_band_2ghz; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 7496c1face33..97aac506548c 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -562,7 +562,7 @@ static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wi return p->txq_entries; } /*Bug3959: transmitting mgmt frames received from host*/ -#if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) +#if defined(WILC_P2P) int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func) { @@ -588,7 +588,7 @@ int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_ wilc_wlan_txq_add_to_tail(tqe); return 1; } -#endif /*WILC_AP_EXTERNAL_MLME*/ +#endif /* WILC_P2P */ static struct txq_entry_t *wilc_wlan_txq_get_first(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; @@ -896,11 +896,9 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) else if (tqe->type == WILC_NET_PKT) { vmm_sz = ETH_ETHERNET_HDR_OFFSET; } -#ifdef WILC_AP_EXTERNAL_MLME else { vmm_sz = HOST_HDR_OFFSET; } -#endif vmm_sz += tqe->buffer_size; PRINT_D(TX_DBG, "VMM Size before alignment = %d\n", vmm_sz); if (vmm_sz & 0x3) { /* has to be word aligned */ @@ -1081,12 +1079,10 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) header = (tqe->type << 31) | (tqe->buffer_size << 15) | vmm_sz; /*Bug3959: transmitting mgmt frames received from host*/ /*setting bit 30 in the host header to indicate mgmt frame*/ -#ifdef WILC_AP_EXTERNAL_MLME if (tqe->type == WILC_MGMT_PKT) header |= (1 << 30); else header &= ~(1 << 30); -#endif #ifdef BIG_ENDIAN header = BYTE_SWAP(header); @@ -1217,7 +1213,7 @@ static void wilc_wlan_handle_rxq(void) } /*bug 3887: [AP] Allow Management frames to be passed to the host*/ - #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) + #if defined(WILC_P2P) #define IS_MANAGMEMENT 0x100 #define IS_MANAGMEMENT_CALLBACK 0x080 #define IS_MGMT_STATUS_SUCCES 0x040 @@ -2149,7 +2145,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) oup->wlan_cfg_get_value = wilc_wlan_cfg_get_val; /*Bug3959: transmitting mgmt frames received from host*/ - #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) + #if defined(WILC_P2P) oup->wlan_add_mgmt_to_tx_que = wilc_wlan_txq_add_mgmt_pkt; #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 18bc11c3d4f0..c6f15561bda8 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -139,10 +139,8 @@ #define WILC_CFG_PKT 1 #define WILC_NET_PKT 0 /*Bug3959: transmitting mgmt frames received from host*/ -#ifdef WILC_AP_EXTERNAL_MLME #define WILC_MGMT_PKT 2 -#endif /*WILC_AP_EXTERNAL_MLME*/ #define WILC_CFG_SET 1 #define WILC_CFG_QUERY 0 diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index b64f93a3684a..da37cff6066b 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -12,7 +12,6 @@ #define WILC_WLAN_IF_H /*bug 3887: [AP] Allow Management frames to be passed to the host*/ -#define WILC_AP_EXTERNAL_MLME #define WILC_P2P #define TCP_ENHANCEMENTS /* #define MEMORY_STATIC */ @@ -178,7 +177,7 @@ typedef struct { int (*wlan_cfg_get)(int, u32, int, u32); int (*wlan_cfg_get_value)(u32, u8 *, u32); /*Bug3959: transmitting mgmt frames received from host*/ - #if defined(WILC_AP_EXTERNAL_MLME) || defined(WILC_P2P) + #if defined(WILC_P2P) int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); #endif } wilc_wlan_oup_t; @@ -771,9 +770,7 @@ typedef enum { /* SCAN Complete notification WID*/ WID_SCAN_COMPLETE = 0x00C9, -#ifdef WILC_AP_EXTERNAL_MLME WID_DEL_BEACON = 0x00CA, -#endif WID_LOGTerminal_Switch = 0x00CD, /* EMAC Short WID list */ From fcc6ef9230373eeb0c6d897c22fef390378abc3b Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:21 +0900 Subject: [PATCH 0470/2431] staging: wilc1000: remove define WILC_P2P and ifdef line WILC_P2P is always used in the driver. So delete define WILC_P2P and ifdef line. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 2 - drivers/staging/wilc1000/coreconfigurator.h | 2 - drivers/staging/wilc1000/host_interface.c | 32 ---------------- drivers/staging/wilc1000/host_interface.h | 10 ----- drivers/staging/wilc1000/linux_wlan.c | 2 - .../staging/wilc1000/wilc_wfi_cfgoperations.c | 37 ------------------- .../staging/wilc1000/wilc_wfi_cfgoperations.h | 3 -- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 7 ---- drivers/staging/wilc1000/wilc_wlan.c | 8 +--- drivers/staging/wilc1000/wilc_wlan_if.h | 9 ----- 10 files changed, 2 insertions(+), 110 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index aecaa033447b..b7a4bffa10af 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -476,11 +476,9 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) /* Get the cap_info */ pstrNetworkInfo->u16CapInfo = get_cap_info(pu8msa); - #ifdef WILC_P2P /* Get time-stamp [Low only 32 bit] */ pstrNetworkInfo->u32Tsf = get_beacon_timestamp_lo(pu8msa); PRINT_D(CORECONFIG_DBG, "TSF :%x\n", pstrNetworkInfo->u32Tsf); - #endif /* Get full time-stamp [Low and High 64 bit] */ u32Tsf_Lo = get_beacon_timestamp_lo(pu8msa); diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 32e5b31a96a9..843906606f5c 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -111,9 +111,7 @@ typedef struct { #ifdef AGING_ALG u8 u8Found; #endif -#ifdef WILC_P2P u32 u32Tsf; /* time-stamp [Low only 32 bit] */ -#endif u8 *pu8IEs; u16 u16IEsLen; void *pJoinParams; diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 41e80aad4d02..6fdf392648e5 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -443,10 +443,8 @@ typedef union _tuniHostIFmsgBody { tstrHostIfSetMacAddress strHostIfSetMacAddress; tstrHostIfGetMacAddress strHostIfGetMacAddress; tstrHostIfBASessionInfo strHostIfBASessionInfo; - #ifdef WILC_P2P tstrHostIfRemainOnChan strHostIfRemainOnChan; tstrHostIfRegisterFrame strHostIfRegisterFrame; - #endif char *pUserData; tstrHostIFDelAllSta strHostIFDelAllSta; } tuniHostIFmsgBody; @@ -497,7 +495,6 @@ typedef struct _tstrJoinBssParam { u8 rsn_auth_policy[3]; u8 rsn_cap[2]; struct _tstrJoinParam *nextJoinBss; - #ifdef WILC_P2P u32 tsf; u8 u8NoaEnbaled; u8 u8OppEnable; @@ -507,7 +504,6 @@ typedef struct _tstrJoinBssParam { u8 au8Duration[4]; u8 au8Interval[4]; u8 au8StartTime[4]; - #endif } tstrJoinBssParam; /*Bug4218: Parsing Join Param*/ /*a linked list table containing needed join parameters entries for each AP found in most recent scan*/ @@ -1312,9 +1308,6 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHost pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult = pstrHostIFscanAttr->pfScanResult; pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid = pstrHostIFscanAttr->pvUserArg; - #ifdef WILC_P2P - #endif - if ((pstrWFIDrv->enuHostIFstate >= HOST_IF_SCANNING) && (pstrWFIDrv->enuHostIFstate < HOST_IF_CONNECTED)) { /* here we either in HOST_IF_SCANNING, HOST_IF_WAITING_CONN_REQ or HOST_IF_WAITING_CONN_RESP */ PRINT_D(GENERIC_DBG, "Don't scan we are already in [%d] state\n", pstrWFIDrv->enuHostIFstate); @@ -1953,7 +1946,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps /*BugID_5137*/ *(pu8CurrByte++) = REAL_JOIN_REQ; - #ifdef WILC_P2P *(pu8CurrByte++) = ptstrJoinBssParam->u8NoaEnbaled; if (ptstrJoinBssParam->u8NoaEnbaled) { PRINT_D(HOSTINF_DBG, "NOA present\n"); @@ -1986,8 +1978,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps } else PRINT_D(HOSTINF_DBG, "NOA not present\n"); - #endif - /* keep the buffer at the start of the allocated pointer to use it with the free*/ pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; @@ -3787,7 +3777,6 @@ ERRORHANDLER: kfree(strWID.ps8WidVal); } -#ifdef WILC_P2P /** * @brief Handle_RemainOnChan * @details Sending config packet to edit station @@ -4009,8 +3998,6 @@ static void ListenTimerCB(unsigned long arg) if (s32Error) PRINT_ER("wilc_mq_send fail\n"); } -#endif - /** * @brief Handle_EditStation @@ -4409,10 +4396,8 @@ static int hostIFthread(void *pvArg) Handle_ScanDone(strHostIFmsg.drvHandler, SCAN_EVENT_DONE); - #ifdef WILC_P2P if (pstrWFIDrv->u8RemainOnChan_pendingreq) Handle_RemainOnChan(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan); - #endif break; @@ -4500,7 +4485,6 @@ static int hostIFthread(void *pvArg) Handle_GetMacAddress(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfGetMacAddress); break; -#ifdef WILC_P2P case HOST_IF_MSG_REMAIN_ON_CHAN: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REMAIN_ON_CHAN\n"); Handle_RemainOnChan(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan); @@ -4515,7 +4499,6 @@ static int hostIFthread(void *pvArg) Handle_ListenStateExpired(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan); break; - #endif case HOST_IF_MSG_SET_MULTICAST_FILTER: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_MULTICAST_FILTER\n"); Handle_SetMulticastFilter(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMulti); @@ -6479,10 +6462,8 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) setup_timer(&pstrWFIDrv->hConnectTimer, TimerCB_Connect, 0); - #ifdef WILC_P2P /*Remain on channel timer*/ setup_timer(&pstrWFIDrv->hRemainOnChannel, ListenTimerCB, 0); - #endif sema_init(&(pstrWFIDrv->gtOsCfgValuesSem), 1); down(&(pstrWFIDrv->gtOsCfgValuesSem)); @@ -6498,13 +6479,8 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) pstrWFIDrv->strCfgValues.passive_scan_time = PASSIVE_SCAN_TIME; pstrWFIDrv->strCfgValues.curr_tx_rate = AUTORATE; - - #ifdef WILC_P2P - pstrWFIDrv->u64P2p_MgmtTimeout = 0; - #endif - PRINT_INFO(HOSTINF_DBG, "Initialization values, Site survey value: %d\n Scan source: %d\n Active scan time: %d\n Passive scan time: %d\nCurrent tx Rate = %d\n", pstrWFIDrv->strCfgValues.site_survey_enabled, pstrWFIDrv->strCfgValues.scan_source, @@ -6531,9 +6507,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) _fail_mem_: if (pstrWFIDrv != NULL) kfree(pstrWFIDrv); -#ifdef WILC_P2P del_timer_sync(&pstrWFIDrv->hRemainOnChannel); -#endif _fail_timer_2: up(&(pstrWFIDrv->gtOsCfgValuesSem)); del_timer_sync(&pstrWFIDrv->hConnectTimer); @@ -6601,10 +6575,8 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } - #ifdef WILC_P2P /*Destroy Remain-onchannel Timer*/ del_timer_sync(&pstrWFIDrv->hRemainOnChannel); - #endif host_int_set_wfi_drv_handler(NULL); down(&hSemDeinitDrvHandle); @@ -6829,7 +6801,6 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) } -#ifdef WILC_P2P /** * @brief host_int_remain_on_channel * @details @@ -6966,7 +6937,6 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe } -#endif /** * @brief host_int_add_beacon @@ -7446,7 +7416,6 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) index += pu8IEs[index + 1] + 2; continue; } - #ifdef WILC_P2P else if ((pu8IEs[index] == P2P_IE) && /* P2P Element ID */ (pu8IEs[index + 2] == 0x50) && (pu8IEs[index + 3] == 0x6f) && (pu8IEs[index + 4] == 0x9a) && /* OUI */ @@ -7483,7 +7452,6 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) continue; } - #endif else if ((pu8IEs[index] == RSN_IE) || ((pu8IEs[index] == WPA_IE) && (pu8IEs[index + 2] == 0x00) && (pu8IEs[index + 3] == 0x50) && (pu8IEs[index + 4] == 0xF2) && diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index e3e4b06c953f..fd5fa198db55 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -193,10 +193,8 @@ typedef void (*tWILCpfConnectResult)(tenuConnDisconnEvent, tstrDisconnectNotifInfo *, void *); -#ifdef WILC_P2P typedef void (*tWILCpfRemainOnChanExpired)(void *, u32); /*Remain on channel expiration callback function*/ typedef void (*tWILCpfRemainOnChanReady)(void *); /*Remain on channel callback function*/ -#endif /* typedef u32 WILC_WFIDrvHandle; */ typedef struct { @@ -284,7 +282,6 @@ typedef struct { u16 u16SessionTimeout; } tstrHostIfBASessionInfo; -#ifdef WILC_P2P typedef struct { u16 u16Channel; u32 u32duration; @@ -317,7 +314,6 @@ enum p2p_listen_state { P2P_GRP_FORMATION }; -#endif typedef struct { /* Scan user structure */ tstrWILC_UsrScanReq strWILC_UsrScanReq; @@ -325,13 +321,11 @@ typedef struct { /* Connect User structure */ tstrWILC_UsrConnReq strWILC_UsrConnReq; - #ifdef WILC_P2P /*Remain on channel struvture*/ tstrHostIfRemainOnChan strHostIfRemainOnChan; u8 u8RemainOnChan_pendingreq; u64 u64P2p_MgmtTimeout; u8 u8P2PConnect; - #endif tenuHostIFstate enuHostIFstate; @@ -354,9 +348,7 @@ typedef struct { /* timer handlers */ struct timer_list hScanTimer; struct timer_list hConnectTimer; - #ifdef WILC_P2P struct timer_list hRemainOnChannel; - #endif bool IFC_UP; } tstrWILC_WFIDrv; @@ -1194,7 +1186,6 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T */ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx); -#ifdef WILC_P2P /** * @brief host_int_remain_on_channel * @details @@ -1232,7 +1223,6 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID); * @version 1.0 */ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bReg); -#endif /** * @brief host_int_set_wfi_drv_handler * @details diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index bc9aae47d664..f79aa493ddd6 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2058,12 +2058,10 @@ void WILC_WFI_mgmt_rx(u8 *buff, u32 size) } } - #ifdef WILC_P2P nic = netdev_priv(g_linux_wlan->strInterfaceInfo[1].wilc_netdev); /* p2p0 */ if ((buff[0] == nic->g_struct_frame_reg[0].frame_type && nic->g_struct_frame_reg[0].reg) || (buff[0] == nic->g_struct_frame_reg[1].frame_type && nic->g_struct_frame_reg[1].reg)) WILC_WFI_p2p_rx(g_linux_wlan->strInterfaceInfo[1].wilc_netdev, buff, size); - #endif } int wilc_netdev_init(void) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index cc61f265dc5d..468b6325ae18 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -94,7 +94,6 @@ static struct ieee80211_rate WILC_WFI_rates[] = { RATETAB_ENT(540, 12, 0), }; -#ifdef WILC_P2P struct p2p_mgmt_data { int size; u8 *buff; @@ -111,7 +110,6 @@ u8 u8P2Plocalrandom = 0x01; u8 u8P2Precvrandom = 0x00; u8 u8P2P_vendorspec[] = {0xdd, 0x05, 0x00, 0x08, 0x40, 0x03}; bool bWilc_ie; -#endif static struct ieee80211_supported_band WILC_WFI_band_2ghz = { .channels = WILC_WFI_2ghz_channels, @@ -550,18 +548,14 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, { struct wilc_priv *priv; struct net_device *dev; - #ifdef WILC_P2P tstrWILC_WFIDrv *pstrWFIDrv; - #endif u8 NullBssid[ETH_ALEN] = {0}; connecting = 0; priv = (struct wilc_priv *)pUserVoid; dev = priv->dev; - #ifdef WILC_P2P pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; - #endif if (enuConnDisconnEvent == CONN_DISCONN_EVENT_CONN_RESP) { /*Initialization*/ @@ -581,10 +575,8 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, /*BugID_5457*/ /*Invalidate u8WLANChannel value on wlan0 disconnect*/ - #ifdef WILC_P2P if (!pstrWFIDrv->u8P2PConnect) u8WLANChannel = INVALID_CHANNEL; - #endif PRINT_ER("Unspecified failure: Connection status %d : MAC status = %d\n", u16ConnectStatus, u8MacStatus); } @@ -649,10 +641,8 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, /*BugID_5457*/ /*Invalidate u8WLANChannel value on wlan0 disconnect*/ - #ifdef WILC_P2P if (!pstrWFIDrv->u8P2PConnect) u8WLANChannel = INVALID_CHANNEL; - #endif /*BugID_5315*/ /*Incase "P2P CLIENT Connected" send deauthentication reason by 3 to force the WPA_SUPPLICANT to directly change * virtual interface to station*/ @@ -838,13 +828,11 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, host_int_set_wfi_drv_handler(priv->hWILCWFIDrv); PRINT_D(CFG80211_DBG, "Connecting to SSID [%s] on netdev [%p] host if [%p]\n", sme->ssid, dev, priv->hWILCWFIDrv); - #ifdef WILC_P2P if (!(strncmp(sme->ssid, "DIRECT-", 7))) { PRINT_D(CFG80211_DBG, "Connected to Direct network,OBSS disabled\n"); pstrWFIDrv->u8P2PConnect = 1; } else pstrWFIDrv->u8P2PConnect = 0; - #endif PRINT_INFO(CFG80211_DBG, "Required SSID = %s\n , AuthType = %d\n", sme->ssid, sme->auth_type); for (i = 0; i < u32LastScannedNtwrksCountShadow; i++) { @@ -1074,9 +1062,7 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co { s32 s32Error = 0; struct wilc_priv *priv; - #ifdef WILC_P2P tstrWILC_WFIDrv *pstrWFIDrv; - #endif u8 NullBssid[ETH_ALEN] = {0}; connecting = 0; @@ -1084,11 +1070,9 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co /*BugID_5457*/ /*Invalidate u8WLANChannel value on wlan0 disconnect*/ - #ifdef WILC_P2P pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; if (!pstrWFIDrv->u8P2PConnect) u8WLANChannel = INVALID_CHANNEL; - #endif linux_wlan_set_bssid(priv->dev, NullBssid); PRINT_D(CFG80211_DBG, "Disconnecting with reason code(%d)\n", reason_code); @@ -1096,9 +1080,7 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co u8P2Plocalrandom = 0x01; u8P2Precvrandom = 0x00; bWilc_ie = false; - #ifdef WILC_P2P pstrWFIDrv->u64P2p_MgmtTimeout = 0; - #endif s32Error = host_int_disconnect(priv->hWILCWFIDrv, reason_code); if (s32Error != 0) { @@ -1987,7 +1969,6 @@ static int flush_pmksa(struct wiphy *wiphy, struct net_device *netdev) return 0; } -#ifdef WILC_P2P /** * @brief WILC_WFI_CfgParseRxAction @@ -2650,7 +2631,6 @@ void WILC_WFI_frame_register(struct wiphy *wiphy, } -#endif /*WILC_P2P*/ /** * @brief WILC_WFI_set_cqm_rssi_config @@ -2759,9 +2739,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, perInterface_wlan_t *nic; u8 interface_type; u16 TID = 0; - #ifdef WILC_P2P u8 i; - #endif nic = netdev_priv(dev); priv = wiphy_priv(wiphy); @@ -2799,7 +2777,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*Remove the enteries of the previously connected clients*/ memset(priv->assoc_stainfo.au8Sta_AssociatedBss, 0, MAX_NUM_STA * ETH_ALEN); - #ifdef WILC_P2P interface_type = nic->iftype; nic->iftype = STATION_MODE; @@ -2875,7 +2852,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, bEnablePS = true; host_int_set_power_mgmt(priv->hWILCWFIDrv, 1, 0); } - #endif break; case NL80211_IFTYPE_P2P_CLIENT: @@ -2890,8 +2866,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, priv->wdev->iftype = type; nic->monitor_flag = 0; - #ifdef WILC_P2P - PRINT_D(HOSTAPD_DBG, "Downloading P2P_CONCURRENCY_FIRMWARE\n"); nic->iftype = CLIENT_MODE; @@ -2962,7 +2936,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, } } } - #endif break; case NL80211_IFTYPE_AP: @@ -2975,7 +2948,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Downloading AP firmware\n"); linux_wlan_get_firmware(nic); - #ifdef WILC_P2P /*If wilc is running, then close-open to actually get new firmware running (serves P2P)*/ if (g_linux_wlan->wilc1000_initialized) { nic->iftype = AP_MODE; @@ -2993,7 +2965,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, nic->g_struct_frame_reg[i].reg); } } - #endif break; case NL80211_IFTYPE_P2P_GO: @@ -3017,7 +2988,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CORECONFIG_DBG, "priv->hWILCWFIDrv[%p]\n", priv->hWILCWFIDrv); - #ifdef WILC_P2P PRINT_D(HOSTAPD_DBG, "Downloading P2P_CONCURRENCY_FIRMWARE\n"); @@ -3090,7 +3060,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, nic->g_struct_frame_reg[i].reg); } } - #endif break; default: @@ -3487,7 +3456,6 @@ static struct cfg80211_ops wilc_cfg80211_ops = { .set_pmksa = set_pmksa, .del_pmksa = del_pmksa, .flush_pmksa = flush_pmksa, -#ifdef WILC_P2P .remain_on_channel = remain_on_channel, .cancel_remain_on_channel = cancel_remain_on_channel, .mgmt_tx_cancel_wait = mgmt_tx_cancel_wait, @@ -3495,7 +3463,6 @@ static struct cfg80211_ops wilc_cfg80211_ops = { .mgmt_frame_register = WILC_WFI_frame_register, .set_power_mgmt = WILC_WFI_set_power_mgmt, .set_cqm_rssi_config = WILC_WFI_set_cqm_rssi_config, -#endif }; @@ -3643,15 +3610,11 @@ struct wireless_dev *WILC_WFI_WiphyRegister(struct net_device *net) /*Setting default managment types: for register action frame: */ wdev->wiphy->mgmt_stypes = wilc_wfi_cfg80211_mgmt_types; -#ifdef WILC_P2P wdev->wiphy->max_remain_on_channel_duration = 500; /*Setting the wiphy interfcae mode and type before registering the wiphy*/ wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_AP) | BIT(NL80211_IFTYPE_MONITOR) | BIT(NL80211_IFTYPE_P2P_GO) | BIT(NL80211_IFTYPE_P2P_CLIENT); wdev->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL; -#else - wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_AP) | BIT(NL80211_IFTYPE_MONITOR); -#endif wdev->iftype = NL80211_IFTYPE_STATION; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 5fd0757b9205..dff82653f9e5 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -20,8 +20,6 @@ #define AES BIT(5) #define TKIP BIT(6) -#ifdef WILC_P2P - /*Public action frame index IDs*/ #define FRAME_TYPE_ID 0 #define ACTION_CAT_ID 24 @@ -47,7 +45,6 @@ #define GAS_INTIAL_RSP 0x0b #define INVALID_CHANNEL 0 -#endif #define nl80211_SCAN_RESULT_EXPIRE (3 * HZ) #define SCAN_RESULT_EXPIRE (40 * HZ) diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 904d9c3ba793..27c9ccfadab5 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -100,7 +100,6 @@ struct sta_info { u8 au8Sta_AssociatedBss[MAX_NUM_STA][ETH_ALEN]; }; -#ifdef WILC_P2P /*Parameters needed for host interface for remaining on channel*/ struct wilc_wfi_p2pListenParams { struct ieee80211_channel *pstrListenChan; @@ -110,16 +109,12 @@ struct wilc_wfi_p2pListenParams { u32 u32ListenSessionID; }; -#endif /*WILC_P2P*/ - struct wilc_priv { struct wireless_dev *wdev; struct cfg80211_scan_request *pstrScanReq; - #ifdef WILC_P2P struct wilc_wfi_p2pListenParams strRemainOnChanParams; u64 u64tx_cookie; - #endif bool bCfgScanning; u32 u32RcvdChCount; @@ -229,9 +224,7 @@ typedef struct { u8 iftype; int monitor_flag; int mac_opened; - #ifdef WILC_P2P struct_frame_reg g_struct_frame_reg[num_reg_frame]; - #endif struct net_device *wilc_netdev; struct net_device_stats netstats; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 97aac506548c..54f30b2bec6c 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -561,8 +561,8 @@ static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wi /*return number of itemes in the queue*/ return p->txq_entries; } + /*Bug3959: transmitting mgmt frames received from host*/ -#if defined(WILC_P2P) int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func) { @@ -588,7 +588,7 @@ int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_ wilc_wlan_txq_add_to_tail(tqe); return 1; } -#endif /* WILC_P2P */ + static struct txq_entry_t *wilc_wlan_txq_get_first(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; @@ -1213,7 +1213,6 @@ static void wilc_wlan_handle_rxq(void) } /*bug 3887: [AP] Allow Management frames to be passed to the host*/ - #if defined(WILC_P2P) #define IS_MANAGMEMENT 0x100 #define IS_MANAGMEMENT_CALLBACK 0x080 #define IS_MGMT_STATUS_SUCCES 0x040 @@ -1227,7 +1226,6 @@ static void wilc_wlan_handle_rxq(void) } /* BUG4530 fix */ else - #endif { if (!is_cfg_packet) { @@ -2145,9 +2143,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) oup->wlan_cfg_get_value = wilc_wlan_cfg_get_val; /*Bug3959: transmitting mgmt frames received from host*/ - #if defined(WILC_P2P) oup->wlan_add_mgmt_to_tx_que = wilc_wlan_txq_add_mgmt_pkt; - #endif if (!init_chip()) { /* EIO 5 */ diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index da37cff6066b..d67718ff18dd 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -12,7 +12,6 @@ #define WILC_WLAN_IF_H /*bug 3887: [AP] Allow Management frames to be passed to the host*/ -#define WILC_P2P #define TCP_ENHANCEMENTS /* #define MEMORY_STATIC */ /* #define USE_OLD_SPI_SW */ @@ -177,9 +176,7 @@ typedef struct { int (*wlan_cfg_get)(int, u32, int, u32); int (*wlan_cfg_get_value)(u32, u8 *, u32); /*Bug3959: transmitting mgmt frames received from host*/ - #if defined(WILC_P2P) int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); - #endif } wilc_wlan_oup_t; /******************************************** @@ -201,9 +198,7 @@ typedef enum { RSN_IE = 48, WPA_IE = 221, WMM_IE = 221, - #ifdef WILC_P2P P2P_IE = 221, - #endif } BEACON_IE; #endif typedef enum { @@ -880,13 +875,9 @@ typedef enum { WID_HUT_TEST_ID = 0x3081, WID_PMKID_INFO = 0x3082, WID_FIRMWARE_INFO = 0x3083, - #ifdef WILC_P2P WID_REGISTER_FRAME = 0x3084, - #endif WID_DEL_ALL_STA = 0x3085, - #ifdef WILC_P2P WID_REMAIN_ON_CHAN = 0x3996, - #endif /*BugID_4156*/ WID_SSID_PROBE_REQ = 0x3997, /*BugID_4124 WID to trigger modified Join Request using SSID and BSSID instead of bssListIdx (used by WID_JOIN_REQ)*/ From 25a84832bb662fb2d9966b7d0f9301d93023a6cf Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:22 +0900 Subject: [PATCH 0471/2431] staging: wilc1000: remove define TCP_ENHANCEMENTS and it's related code TCP_ENHANCEMENTS is always in use. Remove define TCP_ENHANCEMENTS, ifdef line, ifndef line and codes inside ifndef. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 36 ------------------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 2 -- .../staging/wilc1000/wilc_wfi_cfgoperations.h | 2 -- drivers/staging/wilc1000/wilc_wlan.c | 8 +---- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 5 files changed, 1 insertion(+), 48 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index f79aa493ddd6..08d75abf6a88 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1284,21 +1284,6 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) } #endif -#ifndef TCP_ENHANCEMENTS - /* create rx task */ - PRINT_D(INIT_DBG, "Creating kthread for reception\n"); - g_linux_wlan->rxq_thread = kthread_run(linux_wlan_rxq_task, (void *)g_linux_wlan, "K_RXQ_TASK"); - if (g_linux_wlan->rxq_thread == 0) { - PRINT_ER("couldn't create RXQ thread\n"); - ret = -ENOBUFS; - goto _fail_1; - } - - /* wait for RXQ task to start. */ - down(&g_linux_wlan->rxq_thread_started); - -#endif - /* create tx task */ PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); g_linux_wlan->txq_thread = kthread_run(linux_wlan_txq_task, (void *)g_linux_wlan, "K_TXQ_TASK"); @@ -1327,9 +1312,6 @@ _fail_2: up(&g_linux_wlan->rxq_event); kthread_stop(g_linux_wlan->rxq_thread); -#ifndef TCP_ENHANCEMENTS -_fail_1: -#endif #if (RX_BH_TYPE == RX_BH_KTHREAD) /*De-Initialize 1st thread*/ g_linux_wlan->close = 1; @@ -1970,10 +1952,6 @@ void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset) int stats; unsigned char *buff_to_send = NULL; struct sk_buff *skb; -#ifndef TCP_ENHANCEMENTS - char *pu8UdpBuffer; - struct iphdr *ih; -#endif struct net_device *wilc_netdev; perInterface_wlan_t *nic; @@ -2019,16 +1997,6 @@ void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset) /* nic = netdev_priv(wilc_netdev); */ skb->protocol = eth_type_trans(skb, wilc_netdev); - #ifndef TCP_ENHANCEMENTS - /*get source and dest ip addresses*/ - ih = (struct iphdr *)(skb->data + sizeof(struct ethhdr)); - - pu8UdpBuffer = (char *)ih + sizeof(struct iphdr); - if (buff_to_send[35] == 67 && buff_to_send[37] == 68) - PRINT_D(RX_DBG, "DHCP Message received\n"); - if (buff_to_send[12] == 0x88 && buff_to_send[13] == 0x8e) - PRINT_D(GENERIC_DBG, "eapol received\n"); - #endif /* Send the packet to the stack by giving it to the bridge */ nic->netstats.rx_packets++; nic->netstats.rx_bytes += frame_len; @@ -2036,10 +2004,6 @@ void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset) stats = netif_rx(skb); PRINT_D(RX_DBG, "netif_rx ret value is: %d\n", stats); } - #ifndef TCP_ENHANCEMENTS - else - PRINT_ER("Discard sending packet with len = %d\n", size); - #endif } void WILC_WFI_mgmt_rx(u8 *buff, u32 size) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 468b6325ae18..a2c80dbf1cd5 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1663,12 +1663,10 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, sinfo->tx_failed = strStatistics.u32TxFailureCount; sinfo->txrate.legacy = strStatistics.u8LinkSpeed * 10; -#ifdef TCP_ENHANCEMENTS if ((strStatistics.u8LinkSpeed > TCP_ACK_FILTER_LINK_SPEED_THRESH) && (strStatistics.u8LinkSpeed != DEFAULT_LINK_SPEED)) Enable_TCP_ACK_Filter(true); else if (strStatistics.u8LinkSpeed != DEFAULT_LINK_SPEED) Enable_TCP_ACK_Filter(false); -#endif PRINT_D(CORECONFIG_DBG, "*** stats[%d][%d][%d][%d][%d]\n", sinfo->signal, sinfo->rx_packets, sinfo->tx_packets, sinfo->tx_failed, sinfo->txrate.legacy); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index dff82653f9e5..4d37c4e859e9 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -101,10 +101,8 @@ void WILC_WFI_monitor_rx(u8 *buff, u32 size); int WILC_WFI_deinit_mon_interface(void); struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev); -#ifdef TCP_ENHANCEMENTS #define TCP_ACK_FILTER_LINK_SPEED_THRESH 54 #define DEFAULT_LINK_SPEED 72 void Enable_TCP_ACK_Filter(bool value); -#endif #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 54f30b2bec6c..1db4cc8b164a 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -480,7 +480,6 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) } #endif -#ifdef TCP_ENHANCEMENTS bool EnableTCPAckFilter = false; void Enable_TCP_ACK_Filter(bool value) @@ -492,7 +491,6 @@ bool is_TCP_ACK_Filter_Enabled(void) { return EnableTCPAckFilter; } -#endif static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, u32 buffer_size) { @@ -552,10 +550,8 @@ static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wi PRINT_D(TX_DBG, "Adding mgmt packet at the Queue tail\n"); #ifdef TCP_ACK_FILTER tqe->tcp_PendingAck_index = NOT_TCP_ACK; -#ifdef TCP_ENHANCEMENTS if (is_TCP_ACK_Filter_Enabled()) -#endif - tcp_process(tqe); + tcp_process(tqe); #endif wilc_wlan_txq_add_to_tail(tqe); /*return number of itemes in the queue*/ @@ -1410,9 +1406,7 @@ _end_: #endif } } -#ifdef TCP_ENHANCEMENTS wilc_wlan_handle_rxq(); -#endif } void wilc_handle_isr(void) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index d67718ff18dd..3f5aa44b0696 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -12,7 +12,6 @@ #define WILC_WLAN_IF_H /*bug 3887: [AP] Allow Management frames to be passed to the host*/ -#define TCP_ENHANCEMENTS /* #define MEMORY_STATIC */ /* #define USE_OLD_SPI_SW */ From ce25267907e15c8f69d54ba3fa02ae39aca7667f Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:23 +0900 Subject: [PATCH 0472/2431] staging: wilc1000: remove function linux_wlan_rxq_task linux_wlan_rxq_task is not used in the driver. Just remove it. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 08d75abf6a88..de0477979e62 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -587,32 +587,6 @@ int linux_wlan_get_num_conn_ifcs(void) return ret_val; } -static int linux_wlan_rxq_task(void *vp) -{ - - /* inform wilc1000_wlan_init that RXQ task is started. */ - up(&g_linux_wlan->rxq_thread_started); - while (1) { - down(&g_linux_wlan->rxq_event); - /* wait_for_completion(&g_linux_wlan->rxq_event); */ - - if (g_linux_wlan->close) { - /*Unlock the mutex in the mac_close function to indicate the exiting of the RX thread */ - up(&g_linux_wlan->rxq_thread_started); - - while (!kthread_should_stop()) - schedule(); - - PRINT_D(RX_DBG, " RX thread stopped\n"); - break; - } - PRINT_D(RX_DBG, "Calling wlan_handle_rx_que()\n"); - - g_linux_wlan->oup.wlan_handle_rx_que(); - } - return 0; -} - #define USE_TX_BACKOFF_DELAY_IF_NO_BUFFERS static int linux_wlan_txq_task(void *vp) From 51f8a39911c3b7bf8466009eba87903d75d6192d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:24 +0900 Subject: [PATCH 0473/2431] staging: wilc1000: remove variable rxq_thread_started rxq_thread_started is initiallized but never used in the driver. Remove the variable and init code line. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - 2 files changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index de0477979e62..f104a23744e8 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1161,7 +1161,6 @@ int wlan_init_locks(linux_wlan_t *p_nic) sema_init(&g_linux_wlan->cfg_event, 0); sema_init(&g_linux_wlan->sync_event, 0); - sema_init(&g_linux_wlan->rxq_thread_started, 0); sema_init(&g_linux_wlan->txq_thread_started, 0); #if (RX_BH_TYPE == RX_BH_KTHREAD) diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 27c9ccfadab5..c68df360a362 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -198,7 +198,6 @@ typedef struct { struct task_struct *rx_bh_thread; struct semaphore rx_sem; #endif - struct semaphore rxq_thread_started; struct semaphore txq_thread_started; struct task_struct *rxq_thread; From 85718c2d6b7da8adc589889fae993e1aa4a4a9fa Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:25 +0900 Subject: [PATCH 0474/2431] staging: wilc1000: remove unused semaphore and it's related codes Variable rxq_event, rxq_wait_event and rxq_wait have the same pointer. nwi->os_context.rxq_wait_event = (void *)&g_linux_wlan->rxq_event; g_wlan.rxq_wait = inp->os_context.rxq_wait_event; They are never aquired(down) since down function was only called in linux_wlan_rxq_task which was deleted in a previous patch. So delete variable rxq_event, rxq_wait_event, rxq_wait and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 9 --------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - drivers/staging/wilc1000/wilc_wlan.c | 3 --- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 14 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index f104a23744e8..186e42e5c087 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1088,10 +1088,6 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) #endif #endif - /* not sure if the following unlocks are needed or not*/ - if (&g_linux_wlan->rxq_event != NULL) - up(&g_linux_wlan->rxq_event); - if (&g_linux_wlan->txq_event != NULL) up(&g_linux_wlan->txq_event); @@ -1156,7 +1152,6 @@ int wlan_init_locks(linux_wlan_t *p_nic) sema_init(&g_linux_wlan->txq_add_to_head_cs, 1); sema_init(&g_linux_wlan->txq_event, 0); - sema_init(&g_linux_wlan->rxq_event, 0); sema_init(&g_linux_wlan->cfg_event, 0); sema_init(&g_linux_wlan->sync_event, 0); @@ -1207,7 +1202,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.rx_buffer_size = LINUX_RX_SIZE; #endif nwi->os_context.rxq_critical_section = (void *)&g_linux_wlan->rxq_cs; - nwi->os_context.rxq_wait_event = (void *)&g_linux_wlan->rxq_event; nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event; nwi->os_func.os_debug = linux_wlan_dbg; @@ -1282,7 +1276,6 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) _fail_2: /*De-Initialize 2nd thread*/ g_linux_wlan->close = 1; - up(&g_linux_wlan->rxq_event); kthread_stop(g_linux_wlan->rxq_thread); #if (RX_BH_TYPE == RX_BH_KTHREAD) @@ -1301,8 +1294,6 @@ static void wlan_deinitialize_threads(linux_wlan_t *nic) g_linux_wlan->close = 1; PRINT_D(INIT_DBG, "Deinitializing Threads\n"); - if (&g_linux_wlan->rxq_event != NULL) - up(&g_linux_wlan->rxq_event); if (g_linux_wlan->rxq_thread != NULL) { kthread_stop(g_linux_wlan->rxq_thread); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index c68df360a362..c98eab68af2f 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -187,7 +187,6 @@ typedef struct { struct mutex rxq_cs; struct mutex hif_cs; - struct semaphore rxq_event; struct semaphore cfg_event; struct semaphore sync_event; struct semaphore txq_event; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 1db4cc8b164a..22310cc6c953 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -90,7 +90,6 @@ typedef struct { struct rxq_entry_t *rxq_head; struct rxq_entry_t *rxq_tail; int rxq_entries; - void *rxq_wait; int rxq_exit; @@ -1398,7 +1397,6 @@ _end_: rqe->buffer_size = size; PRINT_D(RX_DBG, "rxq entery Size= %d - Address = %p\n", rqe->buffer_size, rqe->buffer); wilc_wlan_rxq_add(rqe); - up(p->rxq_wait); } } else { #ifndef MEMORY_STATIC @@ -2049,7 +2047,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) g_wlan.rxq_lock = inp->os_context.rxq_critical_section; g_wlan.txq_wait = inp->os_context.txq_wait_event; - g_wlan.rxq_wait = inp->os_context.rxq_wait_event; g_wlan.cfg_wait = inp->os_context.cfg_wait_event; g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size; #if defined (MEMORY_STATIC) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 3f5aa44b0696..bccfcf9daf5a 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -137,7 +137,6 @@ typedef struct { u32 rx_buffer_size; #endif void *rxq_critical_section; - void *rxq_wait_event; struct semaphore *cfg_wait_event; } wilc_wlan_os_context_t; From d7ed06a3840c2db50094a7b377642202a6e71da5 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:27 +0900 Subject: [PATCH 0475/2431] staging: wilc1000: remove unused variable rxq_thread The rxq_thread never runs since it's kthread_run code was delete in a previous patch. Remove kthread_run and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 6 ------ drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - 2 files changed, 7 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 186e42e5c087..a4f43d2651e4 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1276,7 +1276,6 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) _fail_2: /*De-Initialize 2nd thread*/ g_linux_wlan->close = 1; - kthread_stop(g_linux_wlan->rxq_thread); #if (RX_BH_TYPE == RX_BH_KTHREAD) /*De-Initialize 1st thread*/ @@ -1295,11 +1294,6 @@ static void wlan_deinitialize_threads(linux_wlan_t *nic) g_linux_wlan->close = 1; PRINT_D(INIT_DBG, "Deinitializing Threads\n"); - if (g_linux_wlan->rxq_thread != NULL) { - kthread_stop(g_linux_wlan->rxq_thread); - g_linux_wlan->rxq_thread = NULL; - } - if (&g_linux_wlan->txq_event != NULL) up(&g_linux_wlan->txq_event); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index c98eab68af2f..aa96ef39d43f 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -199,7 +199,6 @@ typedef struct { #endif struct semaphore txq_thread_started; - struct task_struct *rxq_thread; struct task_struct *txq_thread; unsigned char eth_src_address[NUM_CONCURRENT_IFC][6]; From 50b51dac4a4f26b815289d6f879eac9b77e786c1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 16 Sep 2015 20:11:26 +0900 Subject: [PATCH 0476/2431] staging: wilc1000: wilc_wlan.c: use BIT(x) macro Remove bit shift macro that is custom defined, then replace BIT(x) macro. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 22310cc6c953..47c743b0c1e5 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -2160,7 +2160,6 @@ _fail_: } -#define BIT31 (1 << 31) u16 Set_machw_change_vir_if(bool bValue) { u16 ret; @@ -2174,9 +2173,9 @@ u16 Set_machw_change_vir_if(bool bValue) } if (bValue) - reg |= (BIT31); + reg |= BIT(31); else - reg &= ~(BIT31); + reg &= ~BIT(31); ret = (&g_wlan)->hif_func.hif_write_reg(WILC_CHANGING_VIR_IF, reg); From 9af382bca5bfab2891199c69447217a6aa3ededc Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 16 Sep 2015 20:11:27 +0900 Subject: [PATCH 0477/2431] staging: wilc1000: replace INLINE with static inline INLINE macro is defined as static __inline so that it is replaced by static inline. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 30 ++++++++++----------- drivers/staging/wilc1000/wilc_wlan.c | 16 +++++------ 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index b7a4bffa10af..2fa279087faa 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -152,7 +152,7 @@ typedef struct { /* This function extracts the beacon period field from the beacon or probe */ /* response frame. */ -INLINE u16 get_beacon_period(u8 *data) +static inline u16 get_beacon_period(u8 *data) { u16 bcn_per = 0; @@ -162,7 +162,7 @@ INLINE u16 get_beacon_period(u8 *data) return bcn_per; } -INLINE u32 get_beacon_timestamp_lo(u8 *data) +static inline u32 get_beacon_timestamp_lo(u8 *data) { u32 time_stamp = 0; u32 index = MAC_HDR_LEN; @@ -175,7 +175,7 @@ INLINE u32 get_beacon_timestamp_lo(u8 *data) return time_stamp; } -INLINE u32 get_beacon_timestamp_hi(u8 *data) +static inline u32 get_beacon_timestamp_hi(u8 *data) { u32 time_stamp = 0; u32 index = (MAC_HDR_LEN + 4); @@ -191,7 +191,7 @@ INLINE u32 get_beacon_timestamp_hi(u8 *data) /* This function extracts the 'frame type and sub type' bits from the MAC */ /* header of the input frame. */ /* Returns the value in the LSB of the returned value. */ -INLINE tenuFrmSubtype get_sub_type(u8 *header) +static inline tenuFrmSubtype get_sub_type(u8 *header) { return ((tenuFrmSubtype)(header[0] & 0xFC)); } @@ -199,7 +199,7 @@ INLINE tenuFrmSubtype get_sub_type(u8 *header) /* This function extracts the 'to ds' bit from the MAC header of the input */ /* frame. */ /* Returns the value in the LSB of the returned value. */ -INLINE u8 get_to_ds(u8 *header) +static inline u8 get_to_ds(u8 *header) { return (header[1] & 0x01); } @@ -207,28 +207,28 @@ INLINE u8 get_to_ds(u8 *header) /* This function extracts the 'from ds' bit from the MAC header of the input */ /* frame. */ /* Returns the value in the LSB of the returned value. */ -INLINE u8 get_from_ds(u8 *header) +static inline u8 get_from_ds(u8 *header) { return ((header[1] & 0x02) >> 1); } /* This function extracts the MAC Address in 'address1' field of the MAC */ /* header and updates the MAC Address in the allocated 'addr' variable. */ -INLINE void get_address1(u8 *pu8msa, u8 *addr) +static inline void get_address1(u8 *pu8msa, u8 *addr) { memcpy(addr, pu8msa + 4, 6); } /* This function extracts the MAC Address in 'address2' field of the MAC */ /* header and updates the MAC Address in the allocated 'addr' variable. */ -INLINE void get_address2(u8 *pu8msa, u8 *addr) +static inline void get_address2(u8 *pu8msa, u8 *addr) { memcpy(addr, pu8msa + 10, 6); } /* This function extracts the MAC Address in 'address3' field of the MAC */ /* header and updates the MAC Address in the allocated 'addr' variable. */ -INLINE void get_address3(u8 *pu8msa, u8 *addr) +static inline void get_address3(u8 *pu8msa, u8 *addr) { memcpy(addr, pu8msa + 16, 6); } @@ -236,7 +236,7 @@ INLINE void get_address3(u8 *pu8msa, u8 *addr) /* This function extracts the BSSID from the incoming WLAN packet based on */ /* the 'from ds' bit, and updates the MAC Address in the allocated 'addr' */ /* variable. */ -INLINE void get_BSSID(u8 *data, u8 *bssid) +static inline void get_BSSID(u8 *data, u8 *bssid) { if (get_from_ds(data) == 1) get_address2(data, bssid); @@ -247,7 +247,7 @@ INLINE void get_BSSID(u8 *data, u8 *bssid) } /* This function extracts the SSID from a beacon/probe response frame */ -INLINE void get_ssid(u8 *data, u8 *ssid, u8 *p_ssid_len) +static inline void get_ssid(u8 *data, u8 *ssid, u8 *p_ssid_len) { u8 len = 0; u8 i = 0; @@ -273,7 +273,7 @@ INLINE void get_ssid(u8 *data, u8 *ssid, u8 *p_ssid_len) /* This function extracts the capability info field from the beacon or probe */ /* response frame. */ -INLINE u16 get_cap_info(u8 *data) +static inline u16 get_cap_info(u8 *data) { u16 cap_info = 0; u16 index = MAC_HDR_LEN; @@ -294,7 +294,7 @@ INLINE u16 get_cap_info(u8 *data) /* This function extracts the capability info field from the Association */ /* response frame. */ -INLINE u16 get_assoc_resp_cap_info(u8 *data) +static inline u16 get_assoc_resp_cap_info(u8 *data) { u16 cap_info = 0; @@ -306,7 +306,7 @@ INLINE u16 get_assoc_resp_cap_info(u8 *data) /* This funcion extracts the association status code from the incoming */ /* association response frame and returns association status code */ -INLINE u16 get_asoc_status(u8 *data) +static inline u16 get_asoc_status(u8 *data) { u16 asoc_status = 0; @@ -318,7 +318,7 @@ INLINE u16 get_asoc_status(u8 *data) /* This function extracts association ID from the incoming association */ /* response frame */ -INLINE u16 get_asoc_id(u8 *data) +static inline u16 get_asoc_id(u8 *data) { u16 asoc_id = 0; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 47c743b0c1e5..788e706f1add 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -97,8 +97,8 @@ typedef struct { static wilc_wlan_dev_t g_wlan; -INLINE void chip_allow_sleep(void); -INLINE void chip_wakeup(void); +static inline void chip_allow_sleep(void); +static inline void chip_wakeup(void); /******************************************** * * Debug @@ -125,10 +125,10 @@ static void wilc_debug(u32 flag, char *fmt, ...) static CHIP_PS_STATE_T genuChipPSstate = CHIP_WAKEDUP; /*BugID_5213*/ -/*acquire_bus() and release_bus() are made INLINE functions*/ +/*acquire_bus() and release_bus() are made static inline functions*/ /*as a temporary workaround to fix a problem of receiving*/ /*unknown interrupt from FW*/ -INLINE void acquire_bus(BUS_ACQUIRE_T acquire) +static inline void acquire_bus(BUS_ACQUIRE_T acquire) { mutex_lock(g_wlan.hif_lock); @@ -141,7 +141,7 @@ INLINE void acquire_bus(BUS_ACQUIRE_T acquire) } } -INLINE void release_bus(BUS_RELEASE_T release) +static inline void release_bus(BUS_RELEASE_T release) { #ifdef WILC_OPTIMIZE_SLEEP_INT if (release == RELEASE_ALLOW_SLEEP) @@ -673,7 +673,7 @@ static struct rxq_entry_t *wilc_wlan_rxq_remove(void) #ifdef WILC_OPTIMIZE_SLEEP_INT -INLINE void chip_allow_sleep(void) +static inline void chip_allow_sleep(void) { u32 reg = 0; @@ -683,7 +683,7 @@ INLINE void chip_allow_sleep(void) g_wlan.hif_func.hif_write_reg(0xf0, reg & ~(1 << 0)); } -INLINE void chip_wakeup(void) +static inline void chip_wakeup(void) { u32 reg, clk_status_reg, trials = 0; u32 sleep_time; @@ -762,7 +762,7 @@ INLINE void chip_wakeup(void) genuChipPSstate = CHIP_WAKEDUP; } #else -INLINE void chip_wakeup(void) +static inline void chip_wakeup(void) { u32 reg, trials = 0; From 2602b2bf419c3e5a9fad74359bb553cb4f977953 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:26 +0900 Subject: [PATCH 0478/2431] staging: wicl1000: remove function pointer wlan_handle_rx_que The function pointer wlan_handle_rx_que is not called anywhere. Delete wlan_handle_rx_que and it's assignment code. But the function wilc_wlan_handle_rxq in assignment code is used. So leave it. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 2 files changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 788e706f1add..4c25179c2fec 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -2126,7 +2126,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) oup->wlan_stop = wilc_wlan_stop; oup->wlan_add_to_tx_que = wilc_wlan_txq_add_net_pkt; oup->wlan_handle_tx_que = wilc_wlan_handle_txq; - oup->wlan_handle_rx_que = wilc_wlan_handle_rxq; oup->wlan_handle_rx_isr = wilc_handle_isr; oup->wlan_cleanup = wilc_wlan_cleanup; oup->wlan_cfg_set = wilc_wlan_cfg_set; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index bccfcf9daf5a..cc92dc968c81 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -167,7 +167,6 @@ typedef struct { int (*wlan_stop)(void); int (*wlan_add_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); int (*wlan_handle_tx_que)(u32 *); - void (*wlan_handle_rx_que)(void); void (*wlan_handle_rx_isr)(void); void (*wlan_cleanup)(void); int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32); From 96a98aa1fc59c8fb0cb3bd6445111a35beed6e1f Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:44 -0400 Subject: [PATCH 0479/2431] staging: rtl8723au: Simplify eeprom content checking This eliminates the ugly Hal_EEValueCheck() function Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8723au/hal/rtl8723a_hal_init.c | 42 +++++-------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c index cf2388f4f6e7..cd014f7e6bc3 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c @@ -1497,29 +1497,6 @@ void Hal_EfuseParseIDCode(struct rtw_adapter *padapter, u8 *hwinfo) "EEPROM ID = 0x%04x\n", EEPROMId); } -static void Hal_EEValueCheck(u8 EEType, void *pInValue, void *pOutValue) -{ - switch (EEType) { - case EETYPE_TX_PWR: - { - u8 *pIn, *pOut; - pIn = (u8 *) pInValue; - pOut = (u8 *) pOutValue; - if (*pIn <= 63) - *pOut = *pIn; - else { - RT_TRACE(_module_hci_hal_init_c_, _drv_err_, - "EETYPE_TX_PWR, value =%d is invalid, set to default = 0x%x\n", - *pIn, EEPROM_Default_TxPowerLevel); - *pOut = EEPROM_Default_TxPowerLevel; - } - } - break; - default: - break; - } -} - static void Hal_ReadPowerValueFromPROM_8723A(struct txpowerinfo *pwrInfo, u8 *PROMContent, bool AutoLoadFail) @@ -1555,16 +1532,19 @@ Hal_ReadPowerValueFromPROM_8723A(struct txpowerinfo *pwrInfo, for (group = 0; group < MAX_CHNL_GROUP; group++) { eeAddr = EEPROM_CCK_TX_PWR_INX_8723A + (rfPath * 3) + group; - /* pwrInfo->CCKIndex[rfPath][group] = - PROMContent[eeAddr]; */ - Hal_EEValueCheck(EETYPE_TX_PWR, &PROMContent[eeAddr], - &pwrInfo->CCKIndex[rfPath][group]); + + pwrInfo->CCKIndex[rfPath][group] = PROMContent[eeAddr]; + if (pwrInfo->CCKIndex[rfPath][group] > 63) + pwrInfo->CCKIndex[rfPath][group] = + EEPROM_Default_TxPowerLevel; + eeAddr = EEPROM_HT40_1S_TX_PWR_INX_8723A + (rfPath * 3) + group; - /* pwrInfo->HT40_1SIndex[rfPath][group] = - PROMContent[eeAddr]; */ - Hal_EEValueCheck(EETYPE_TX_PWR, &PROMContent[eeAddr], - &pwrInfo->HT40_1SIndex[rfPath][group]); + pwrInfo->HT40_1SIndex[rfPath][group] = + PROMContent[eeAddr]; + if (pwrInfo->HT40_1SIndex[rfPath][group] > 63) + pwrInfo->HT40_1SIndex[rfPath][group] = + EEPROM_Default_TxPowerLevel; } } From 8b9283234e8f8f6195de37d38d4979900681e198 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:45 -0400 Subject: [PATCH 0480/2431] staging: rtl8723au: Eliminate dummy ccxPowerIndexCheck() Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c index 7fa97808b951..8764538f523c 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c @@ -773,11 +773,6 @@ static void getTxPowerIndex(struct rtw_adapter *Adapter, } } -static void ccxPowerIndexCheck(struct rtw_adapter *Adapter, u8 channel, - u8 *cckPowerLevel, u8 *ofdmPowerLevel) -{ -} - /*----------------------------------------------------------------------------- * Function: SetTxPowerLevel8723A() * @@ -803,9 +798,6 @@ void PHY_SetTxPowerLevel8723A(struct rtw_adapter *Adapter, u8 channel) getTxPowerIndex(Adapter, channel, &cckPowerLevel[0], &ofdmPowerLevel[0]); - ccxPowerIndexCheck(Adapter, channel, &cckPowerLevel[0], - &ofdmPowerLevel[0]); - rtl823a_phy_rf6052setccktxpower(Adapter, &cckPowerLevel[0]); rtl8723a_PHY_RF6052SetOFDMTxPower(Adapter, &ofdmPowerLevel[0], channel); } From e5241dc0198760e945aa94c9080e65aa49149aa4 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:46 -0400 Subject: [PATCH 0481/2431] staging: rtl8723au: Fold getTxPowerIndex() into PHY_SetTxPowerLevel8723A() Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8723au/hal/rtl8723a_phycfg.c | 46 ++++++++----------- 1 file changed, 19 insertions(+), 27 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c index 8764538f523c..26d7f408eb04 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c @@ -748,31 +748,6 @@ PHY_BBConfig8723A(struct rtw_adapter *Adapter) return rtStatus; } -static void getTxPowerIndex(struct rtw_adapter *Adapter, - u8 channel, u8 *cckPowerLevel, u8 *ofdmPowerLevel) -{ - struct hal_data_8723a *pHalData = GET_HAL_DATA(Adapter); - u8 index = (channel - 1); - /* 1. CCK */ - cckPowerLevel[RF_PATH_A] = pHalData->TxPwrLevelCck[RF_PATH_A][index]; - cckPowerLevel[RF_PATH_B] = pHalData->TxPwrLevelCck[RF_PATH_B][index]; - - /* 2. OFDM for 1S or 2S */ - if (GET_RF_TYPE(Adapter) == RF_1T2R || GET_RF_TYPE(Adapter) == RF_1T1R) { - /* Read HT 40 OFDM TX power */ - ofdmPowerLevel[RF_PATH_A] = - pHalData->TxPwrLevelHT40_1S[RF_PATH_A][index]; - ofdmPowerLevel[RF_PATH_B] = - pHalData->TxPwrLevelHT40_1S[RF_PATH_B][index]; - } else if (GET_RF_TYPE(Adapter) == RF_2T2R) { - /* Read HT 40 OFDM TX power */ - ofdmPowerLevel[RF_PATH_A] = - pHalData->TxPwrLevelHT40_2S[RF_PATH_A][index]; - ofdmPowerLevel[RF_PATH_B] = - pHalData->TxPwrLevelHT40_2S[RF_PATH_B][index]; - } -} - /*----------------------------------------------------------------------------- * Function: SetTxPowerLevel8723A() * @@ -791,12 +766,29 @@ void PHY_SetTxPowerLevel8723A(struct rtw_adapter *Adapter, u8 channel) { struct hal_data_8723a *pHalData = GET_HAL_DATA(Adapter); u8 cckPowerLevel[2], ofdmPowerLevel[2]; /* [0]:RF-A, [1]:RF-B */ + int index = channel - 1; if (pHalData->bTXPowerDataReadFromEEPORM == false) return; - getTxPowerIndex(Adapter, channel, &cckPowerLevel[0], - &ofdmPowerLevel[0]); + /* 1. CCK */ + cckPowerLevel[RF_PATH_A] = pHalData->TxPwrLevelCck[RF_PATH_A][index]; + cckPowerLevel[RF_PATH_B] = pHalData->TxPwrLevelCck[RF_PATH_B][index]; + + /* 2. OFDM for 1S or 2S */ + if (GET_RF_TYPE(Adapter) == RF_1T2R || GET_RF_TYPE(Adapter) == RF_1T1R) { + /* Read HT 40 OFDM TX power */ + ofdmPowerLevel[RF_PATH_A] = + pHalData->TxPwrLevelHT40_1S[RF_PATH_A][index]; + ofdmPowerLevel[RF_PATH_B] = + pHalData->TxPwrLevelHT40_1S[RF_PATH_B][index]; + } else if (GET_RF_TYPE(Adapter) == RF_2T2R) { + /* Read HT 40 OFDM TX power */ + ofdmPowerLevel[RF_PATH_A] = + pHalData->TxPwrLevelHT40_2S[RF_PATH_A][index]; + ofdmPowerLevel[RF_PATH_B] = + pHalData->TxPwrLevelHT40_2S[RF_PATH_B][index]; + } rtl823a_phy_rf6052setccktxpower(Adapter, &cckPowerLevel[0]); rtl8723a_PHY_RF6052SetOFDMTxPower(Adapter, &ofdmPowerLevel[0], channel); From 36708d00b16d608801c34cf660afafdec1fdea91 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:47 -0400 Subject: [PATCH 0482/2431] staging: rtl8723au: Tidy up SetTxPowerLevel8723A() Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8723au/hal/rtl8723a_phycfg.c | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c index 26d7f408eb04..06a6c3eeeb33 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c @@ -765,33 +765,30 @@ PHY_BBConfig8723A(struct rtw_adapter *Adapter) void PHY_SetTxPowerLevel8723A(struct rtw_adapter *Adapter, u8 channel) { struct hal_data_8723a *pHalData = GET_HAL_DATA(Adapter); - u8 cckPowerLevel[2], ofdmPowerLevel[2]; /* [0]:RF-A, [1]:RF-B */ - int index = channel - 1; + u8 cckpwr[2], ofdmpwr[2]; /* [0]:RF-A, [1]:RF-B */ + int i = channel - 1; if (pHalData->bTXPowerDataReadFromEEPORM == false) return; /* 1. CCK */ - cckPowerLevel[RF_PATH_A] = pHalData->TxPwrLevelCck[RF_PATH_A][index]; - cckPowerLevel[RF_PATH_B] = pHalData->TxPwrLevelCck[RF_PATH_B][index]; + cckpwr[RF_PATH_A] = pHalData->TxPwrLevelCck[RF_PATH_A][i]; + cckpwr[RF_PATH_B] = pHalData->TxPwrLevelCck[RF_PATH_B][i]; /* 2. OFDM for 1S or 2S */ - if (GET_RF_TYPE(Adapter) == RF_1T2R || GET_RF_TYPE(Adapter) == RF_1T1R) { + if (GET_RF_TYPE(Adapter) == RF_1T2R || + GET_RF_TYPE(Adapter) == RF_1T1R) { /* Read HT 40 OFDM TX power */ - ofdmPowerLevel[RF_PATH_A] = - pHalData->TxPwrLevelHT40_1S[RF_PATH_A][index]; - ofdmPowerLevel[RF_PATH_B] = - pHalData->TxPwrLevelHT40_1S[RF_PATH_B][index]; + ofdmpwr[RF_PATH_A] = pHalData->TxPwrLevelHT40_1S[RF_PATH_A][i]; + ofdmpwr[RF_PATH_B] = pHalData->TxPwrLevelHT40_1S[RF_PATH_B][i]; } else if (GET_RF_TYPE(Adapter) == RF_2T2R) { /* Read HT 40 OFDM TX power */ - ofdmPowerLevel[RF_PATH_A] = - pHalData->TxPwrLevelHT40_2S[RF_PATH_A][index]; - ofdmPowerLevel[RF_PATH_B] = - pHalData->TxPwrLevelHT40_2S[RF_PATH_B][index]; + ofdmpwr[RF_PATH_A] = pHalData->TxPwrLevelHT40_2S[RF_PATH_A][i]; + ofdmpwr[RF_PATH_B] = pHalData->TxPwrLevelHT40_2S[RF_PATH_B][i]; } - rtl823a_phy_rf6052setccktxpower(Adapter, &cckPowerLevel[0]); - rtl8723a_PHY_RF6052SetOFDMTxPower(Adapter, &ofdmPowerLevel[0], channel); + rtl823a_phy_rf6052setccktxpower(Adapter, &cckpwr[0]); + rtl8723a_PHY_RF6052SetOFDMTxPower(Adapter, &ofdmpwr[0], channel); } /*----------------------------------------------------------------------------- From 784e36838af091160b1f4917e8fc076ae0cf468e Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:48 -0400 Subject: [PATCH 0483/2431] staging: rtl8723au: TurboScanOff is always true Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8723au/hal/rtl8723a_rf6052.c | 32 +++++++------------ 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c b/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c index 11d635d2eac8..0ae525b80155 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c @@ -103,34 +103,24 @@ void rtl823a_phy_rf6052setccktxpower(struct rtw_adapter *Adapter, struct dm_priv *pdmpriv = &pHalData->dmpriv; struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; u32 TxAGC[2] = {0, 0}, tmpval = 0; - bool TurboScanOff = false; u8 idx1, idx2; u8 *ptr; - /* According to SD3 eechou's suggestion, we need to disable - turbo scan for RU. */ - /* Otherwise, external PA will be broken if power index > 0x20. */ - if (pHalData->EEPROMRegulatory != 0 || pHalData->ExternalPA) - TurboScanOff = true; - if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS) { TxAGC[RF_PATH_A] = 0x3f3f3f3f; TxAGC[RF_PATH_B] = 0x3f3f3f3f; - TurboScanOff = true;/* disable turbo scan */ - - if (TurboScanOff) { - for (idx1 = RF_PATH_A; idx1 <= RF_PATH_B; idx1++) { - TxAGC[idx1] = pPowerlevel[idx1] | - (pPowerlevel[idx1] << 8) | - (pPowerlevel[idx1] << 16) | - (pPowerlevel[idx1] << 24); - /* 2010/10/18 MH For external PA module. - We need to limit power index to be less - than 0x20. */ - if (TxAGC[idx1] > 0x20 && pHalData->ExternalPA) - TxAGC[idx1] = 0x20; - } + for (idx1 = RF_PATH_A; idx1 <= RF_PATH_B; idx1++) { + TxAGC[idx1] = pPowerlevel[idx1] | + (pPowerlevel[idx1] << 8) | + (pPowerlevel[idx1] << 16) | + (pPowerlevel[idx1] << 24); + /* + * 2010/10/18 MH For external PA module. We need + * to limit power index to be less than 0x20. + */ + if (TxAGC[idx1] > 0x20 && pHalData->ExternalPA) + TxAGC[idx1] = 0x20; } } else { /* 20100427 Joseph: Driver dynamic Tx power shall not affect Tx From b3083eb8fd7f6f72b67c7d7c99a15bfc37289a71 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:49 -0400 Subject: [PATCH 0484/2431] staging: rtl8723au: Clean up getPowerBase() Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c b/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c index 0ae525b80155..ce0d8d894787 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c @@ -184,7 +184,7 @@ static void getPowerBase(struct rtw_adapter *Adapter, u8 *pPowerLevel, u8 Channel, u32 *OfdmBase, u32 *MCSBase) { struct hal_data_8723a *pHalData = GET_HAL_DATA(Adapter); - u32 powerBase0, powerBase1; + u32 ofdm, mcs; u8 Legacy_pwrdiff = 0; s8 HT20_pwrdiff = 0; u8 i, powerlevel[2]; @@ -192,11 +192,10 @@ static void getPowerBase(struct rtw_adapter *Adapter, u8 *pPowerLevel, for (i = 0; i < 2; i++) { powerlevel[i] = pPowerLevel[i]; Legacy_pwrdiff = pHalData->TxPwrLegacyHtDiff[i][Channel-1]; - powerBase0 = powerlevel[i] + Legacy_pwrdiff; + ofdm = powerlevel[i] + Legacy_pwrdiff; - powerBase0 = powerBase0 << 24 | powerBase0 << 16 | - powerBase0 << 8 | powerBase0; - *(OfdmBase + i) = powerBase0; + ofdm = ofdm << 24 | ofdm << 16 | ofdm << 8 | ofdm; + *(OfdmBase + i) = ofdm; } for (i = 0; i < 2; i++) { @@ -205,10 +204,9 @@ static void getPowerBase(struct rtw_adapter *Adapter, u8 *pPowerLevel, HT20_pwrdiff = pHalData->TxPwrHt20Diff[i][Channel-1]; powerlevel[i] += HT20_pwrdiff; } - powerBase1 = powerlevel[i]; - powerBase1 = powerBase1 << 24 | powerBase1 << 16 | - powerBase1 << 8 | powerBase1; - *(MCSBase + i) = powerBase1; + mcs = powerlevel[i]; + mcs = mcs << 24 | mcs << 16 | mcs << 8 | mcs; + *(MCSBase + i) = mcs; } } From 50fbb884e1afdb8f650b10e86e5975ca4ec53e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Can=C3=A1n?= Date: Wed, 16 Sep 2015 17:48:57 -0300 Subject: [PATCH 0485/2431] staging: comedi: drivers: coding style: fixed block comment style MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a patch to the drivers.c file that fixes a block comment style. Signed-off-by: Marcos Canán Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index b03bc6639f79..387fac106084 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -1,20 +1,20 @@ /* - module/drivers.c - functions for manipulating drivers - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 1997-2000 David A. Schleef - Copyright (C) 2002 Frank Mori Hess - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + * module/drivers.c + * functions for manipulating drivers + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 1997-2000 David A. Schleef + * Copyright (C) 2002 Frank Mori Hess + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. */ #include From 0063fdfb12b4cafd98846a61ac600376dc1d2693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Fri, 11 Sep 2015 03:29:09 -0400 Subject: [PATCH 0486/2431] staging: rtl8192u: r8192U_core: fix comments lines over 80 characters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move, replace and reorganize comments to stay under 80 characters per line, as to follow the kernel code style. Some unuseful comments have been removed. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 232 ++++++++++++++++--------- 1 file changed, 153 insertions(+), 79 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 80a6a4fcea92..d243989c7d66 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -143,17 +143,28 @@ struct CHANNEL_LIST { }; static struct CHANNEL_LIST ChannelPlan[] = { - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 24}, /* FCC */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11}, /* IC */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 60, 64}, 21}, /* ETSI */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* Spain. Change to ETSI. */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* France. Change to ETSI. */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, /* MKK */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, /* MKK1 */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* Israel. */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, /* For 11a , TELEC */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, /* MIC */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14} /* For Global Domain. 1-11:active scan, 12-14 passive scan. */ + /* FCC */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 24}, + /* IC */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11}, + /* ETSI */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 60, 64}, 21}, + /* Spain. Change to ETSI. */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, + /* France. Change to ETSI. */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, + /* MKK */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, + /* MKK1 */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, + /* Israel. */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, + /* For 11a , TELEC */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, + /* MIC */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64}, 22}, + /* For Global Domain. 1-11:active scan, 12-14 passive scan. */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14} }; static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) @@ -194,7 +205,10 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) break; case COUNTRY_CODE_GLOBAL_DOMAIN: - GET_DOT11D_INFO(ieee)->bEnabled = 0; /* this flag enabled to follow 11d country IE setting, otherwise, it shall follow global domain settings. */ + /* this flag enabled to follow 11d country IE setting, + * otherwise, it shall follow global domain settings. + */ + GET_DOT11D_INFO(ieee)->bEnabled = 0; Dot11d_Reset(ieee); ieee->bGlobalDomain = true; break; @@ -210,9 +224,11 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) static void CamResetAllEntry(struct net_device *dev) { u32 ulcommand = 0; - /* 2004/02/11 In static WEP, OID_ADD_KEY or OID_ADD_WEP are set before STA associate to AP. - * However, ResetKey is called on OID_802_11_INFRASTRUCTURE_MODE and MlmeAssociateRequest - * In this condition, Cam can not be reset because upper layer will not set this static key again. + /* In static WEP, OID_ADD_KEY or OID_ADD_WEP are set before STA + * associate to AP. However, ResetKey is called on + * OID_802_11_INFRASTRUCTURE_MODE and MlmeAssociateRequest. In this + * condition, Cam can not be reset because upper layer will not set + * this static key again. */ ulcommand |= BIT31 | BIT30; write_nic_dword(dev, RWCAM, ulcommand); @@ -1039,8 +1055,9 @@ static void rtl8192_tx_isr(struct urb *tx_urb) * * Caution: * Handling the wait queue of command packets. - * For Tx command packets, we must not do TCB fragment because it is not handled right now. - * We must cut the packets to match the size of TX_CMD_PKT before we send it. + * For Tx command packets, we must not do TCB fragment because it is + * not handled right now. We must cut the packets to match the size of + * TX_CMD_PKT before we send it. */ /* Handle MPDU in wait queue. */ @@ -1169,9 +1186,10 @@ static void rtl8192_update_cap(struct net_device *dev, u16 cap) if (net->mode & (IEEE_G | IEEE_N_24G)) { u8 slot_time = 0; - if ((cap & WLAN_CAPABILITY_SHORT_SLOT) && (!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) /* short slot time */ + if ((cap & WLAN_CAPABILITY_SHORT_SLOT) && (!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) + /* short slot time */ slot_time = SHORT_SLOT_TIME; - else /* long slot time */ + else /* long slot time */ slot_time = NON_SHORT_SLOT_TIME; priv->slot_time = slot_time; write_nic_byte(dev, SLOT_TIME, slot_time); @@ -1253,9 +1271,9 @@ short rtl819xU_tx_cmd(struct net_device *dev, struct sk_buff *skb) pdesc->OWN = 1; pdesc->LINIP = tcb_desc->bLastIniPkt; - /*---------------------------------------------------------------------------- + /*--------------------------------------------------------------------- * Fill up USB_OUT_CONTEXT. - *---------------------------------------------------------------------------- + *--------------------------------------------------------------------- */ idx_pipe = 0x04; usb_fill_bulk_urb(tx_urb, priv->udev, usb_sndbulkpipe(priv->udev, idx_pipe), @@ -1305,7 +1323,7 @@ static u8 MapHwQueueToFirmwareQueue(u8 QueueID) QueueSelect = QSLT_BEACON; break; - /* TODO: 2006.10.30 mark other queue selection until we verify it is OK */ + /* TODO: mark other queue selection until we verify it is OK */ /* TODO: Remove Assertions */ case TXCMD_QUEUE: QueueSelect = QSLT_CMD; @@ -1507,7 +1525,8 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) { if (tcb_desc->bPacketBW) { tx_fwinfo->TxBandwidth = 1; - tx_fwinfo->TxSubCarrier = 0; /* use duplicated mode */ + /* use duplicated mode */ + tx_fwinfo->TxSubCarrier = 0; } else { tx_fwinfo->TxBandwidth = 0; tx_fwinfo->TxSubCarrier = priv->nCur40MhzPrimeSC; @@ -1558,7 +1577,9 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) tx_desc->DISFB = tcb_desc->bTxDisableRateFallBack; tx_desc->USERATE = tcb_desc->bTxUseDriverAssingedRate; - /* Fill fields that are required to be initialized in all of the descriptors */ + /* Fill fields that are required to be initialized in + * all of the descriptors + */ /* DWORD 0 */ tx_desc->FirstSeg = 1; tx_desc->LastSeg = 1; @@ -1794,9 +1815,13 @@ static void rtl8192_qos_activate(struct work_struct *work) if (priv->ieee80211->state != IEEE80211_LINKED) goto success; RT_TRACE(COMP_QOS, "qos active process with associate response received\n"); - /* It better set slot time at first */ - /* For we just support b/g mode at present, let the slot time at 9/20 selection */ - /* update the ac parameter to related registers */ + /* It better set slot time at first + * + * For we just support b/g mode at present, let the slot time at + * 9/20 selection + * + * update the ac parameter to related registers + */ for (i = 0; i < QOS_QUEUE_NUM; i++) { /* Mode G/A: slotTimeTimer = 9; Mode B: 20 */ u1bAIFS = qos_parameters->aifs[i] * ((mode & (IEEE_G | IEEE_N_24G)) ? 9 : 20) + aSifsTime; @@ -2071,7 +2096,10 @@ static void rtl8192_SetWirelessMode(struct net_device *dev, u8 wireless_mode) wireless_mode = WIRELESS_MODE_B; } } -#ifdef TO_DO_LIST /* TODO: this function doesn't work well at this time, we should wait for FPGA */ +#ifdef TO_DO_LIST + /* TODO: this function doesn't work well at this time, + * we should wait for FPGA + */ ActUpdateChannelAccessSetting(pAdapter, pHalData->CurrentWirelessMode, &pAdapter->MgntInfo.Info8185.ChannelAccessSetting); #endif priv->ieee80211->mode = wireless_mode; @@ -2109,7 +2137,8 @@ static void rtl8192_init_priv_variable(struct net_device *dev) priv->bDisableNormalResetCheck = false; priv->force_reset = false; - priv->ieee80211->FwRWRF = 0; /* we don't use FW read/write RF until stable firmware is available. */ + /* we don't use FW read/write RF until stable firmware is available. */ + priv->ieee80211->FwRWRF = 0; priv->ieee80211->current_network.beacon_interval = DEFAULT_BEACONINTERVAL; priv->ieee80211->softmac_features = IEEE_SOFTMAC_SCAN | IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ | @@ -2155,29 +2184,54 @@ static void rtl8192_init_priv_variable(struct net_device *dev) priv->EarlyRxThreshold = 7; priv->enable_gpio0 = 0; priv->TransmitConfig = - (TCR_MXDMA_2048 << TCR_MXDMA_OFFSET) | /* Max DMA Burst Size per Tx DMA Burst, 7: reserved. */ - (priv->ShortRetryLimit << TCR_SRL_OFFSET) | /* Short retry limit */ - (priv->LongRetryLimit << TCR_LRL_OFFSET) | /* Long retry limit */ - (false ? TCR_SAT : 0); /* FALSE: HW provides PLCP length and LENGEXT, TRUE: SW provides them */ + /* Max DMA Burst Size per Tx DMA Burst, 7: reserved. */ + (TCR_MXDMA_2048 << TCR_MXDMA_OFFSET) | + /* Short retry limit */ + (priv->ShortRetryLimit << TCR_SRL_OFFSET) | + /* Long retry limit */ + (priv->LongRetryLimit << TCR_LRL_OFFSET) | + /* FALSE: HW provides PLCP length and LENGEXT + * TRUE: SW provides them + */ + (false ? TCR_SAT : 0); #ifdef TO_DO_LIST if (Adapter->bInHctTest) pHalData->ReceiveConfig = pHalData->CSMethod | - RCR_AMF | RCR_ADF | /* accept management/data */ - RCR_ACF | /* accept control frame for SW AP needs PS-poll, 2005.07.07, by rcnjko. */ - RCR_AB | RCR_AM | RCR_APM | /* accept BC/MC/UC */ - RCR_AICV | RCR_ACRC32 | /* accept ICV/CRC error packet */ - ((u32)7 << RCR_MXDMA_OFFSET) | /* Max DMA Burst Size per Tx DMA Burst, 7: unlimited. */ - (pHalData->EarlyRxThreshold << RCR_FIFO_OFFSET) | /* Rx FIFO Threshold, 7: No Rx threshold. */ + /* accept management/data */ + RCR_AMF | RCR_ADF | + /* accept control frame for SW + * AP needs PS-poll + */ + RCR_ACF | + /* accept BC/MC/UC */ + RCR_AB | RCR_AM | RCR_APM | + /* accept ICV/CRC error + * packet + */ + RCR_AICV | RCR_ACRC32 | + /* Max DMA Burst Size per Tx + * DMA Burst, 7: unlimited. + */ + ((u32)7 << RCR_MXDMA_OFFSET) | + /* Rx FIFO Threshold, + * 7: No Rx threshold. + */ + (pHalData->EarlyRxThreshold << RCR_FIFO_OFFSET) | (pHalData->EarlyRxThreshold == 7 ? RCR_OnlyErlPkt : 0); else #endif priv->ReceiveConfig = - RCR_AMF | RCR_ADF | /* accept management/data */ - RCR_ACF | /* accept control frame for SW AP needs PS-poll, 2005.07.07, by rcnjko. */ - RCR_AB | RCR_AM | RCR_APM | /* accept BC/MC/UC */ - ((u32)7 << RCR_MXDMA_OFFSET) | /* Max DMA Burst Size per Rx DMA Burst, 7: unlimited. */ - (priv->EarlyRxThreshold << RX_FIFO_THRESHOLD_SHIFT) | /* Rx FIFO Threshold, 7: No Rx threshold. */ + /* accept management/data */ + RCR_AMF | RCR_ADF | + /* accept control frame for SW AP needs PS-poll */ + RCR_ACF | + /* accept BC/MC/UC */ + RCR_AB | RCR_AM | RCR_APM | + /* Max DMA Burst Size per Rx DMA Burst, 7: unlimited. */ + ((u32)7 << RCR_MXDMA_OFFSET) | + /* Rx FIFO Threshold, 7: No Rx threshold. */ + (priv->EarlyRxThreshold << RX_FIFO_THRESHOLD_SHIFT) | (priv->EarlyRxThreshold == 7 ? RCR_ONLYERLPKT : 0); priv->AcmControl = 0; @@ -2742,7 +2796,8 @@ static bool rtl8192_adapter_start(struct net_device *dev) */ for (eRFPath = 0; eRFPath < pHalData->NumTotalRFPath; eRFPath++) PHY_SetRFReg(Adapter, (RF90_RADIO_PATH_E)eRFPath, 0x4, 0xC00, 0x0); - } else if (pMgntInfo->RfOffReason > RF_CHANGE_BY_PS) { /* H/W or S/W RF OFF before sleep. */ + } else if (pMgntInfo->RfOffReason > RF_CHANGE_BY_PS) { + /* H/W or S/W RF OFF before sleep. */ RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RfOffReason(%d) ----------\n", pMgntInfo->RfOffReason)); MgntActSet_RF_State(Adapter, eRfOff, pMgntInfo->RfOffReason); } else { @@ -2951,17 +3006,18 @@ static RESET_TYPE RxCheckStuck(struct net_device *dev) /** -* This function is called by Checkforhang to check whether we should ask OS to reset driver -* -* \param pAdapter The adapter context for this miniport -* -* Note:NIC with USB interface sholud not call this function because we cannot scan descriptor -* to judge whether there is tx stuck. -* Note: This function may be required to be rewrite for Vista OS. -* <<>> -* -* 8185 and 8185b does not implement this function. This is added by Emily at 2006.11.24 -*/ + * This function is called by Checkforhang to check whether we should + * ask OS to reset driver + * + * \param pAdapter The adapter context for this miniport + * + * Note:NIC with USB interface sholud not call this function because we + * cannot scan descriptor to judge whether there is tx stuck. + * Note: This function may be required to be rewrite for Vista OS. + * <<>> + * + * 8185 and 8185b does not implement this function. + */ static RESET_TYPE rtl819x_ifcheck_resetornot(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); @@ -3242,9 +3298,10 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) ResetType = rtl819x_ifcheck_resetornot(dev); check_reset_cnt = 3; } + /* This is control by OID set in Pomelo */ if ((priv->force_reset) || (priv->ResetProgress == RESET_TYPE_NORESET && (priv->bForcedSilentReset || - (!priv->bDisableNormalResetCheck && ResetType == RESET_TYPE_SILENT)))) { /* This is control by OID set in Pomelo */ + (!priv->bDisableNormalResetCheck && ResetType == RESET_TYPE_SILENT)))) { RT_TRACE(COMP_RESET, "%s():priv->force_reset is %d,priv->ResetProgress is %d, priv->bForcedSilentReset is %d,priv->bDisableNormalResetCheck is %d,ResetType is %d\n", __func__, priv->force_reset, priv->ResetProgress, priv->bForcedSilentReset, priv->bDisableNormalResetCheck, ResetType); rtl819x_ifsilentreset(dev); } @@ -3507,11 +3564,16 @@ static int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) if (ieee->group_key_type) { setKey(dev, ipw->u.crypt.idx, - ipw->u.crypt.idx, /* KeyIndex */ - ieee->group_key_type, /* KeyType */ - broadcast_addr, /* MacAddr */ - 0, /* DefaultKey */ - key); /* KeyContent */ + /* KeyIndex */ + ipw->u.crypt.idx, + /* KeyType */ + ieee->group_key_type, + /* MacAddr */ + broadcast_addr, + /* DefaultKey */ + 0, + /* KeyContent */ + key); } } } @@ -3671,7 +3733,8 @@ static void UpdateRxPktTimeStamp8190(struct net_device *dev, } } -static long rtl819x_translate_todbm(u8 signal_strength_index) /* 0-100 index. */ +/* 0-100 index. */ +static long rtl819x_translate_todbm(u8 signal_strength_index) { long signal_power; /* in dBm. */ @@ -3808,7 +3871,8 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, if (pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) { - if (priv->undecorated_smoothed_pwdb < 0) /* initialize */ + if (priv->undecorated_smoothed_pwdb < 0) + /* initialize */ priv->undecorated_smoothed_pwdb = pprevious_stats->RxPWDBAll; if (pprevious_stats->RxPWDBAll > (u32)priv->undecorated_smoothed_pwdb) { priv->undecorated_smoothed_pwdb = @@ -3842,7 +3906,9 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, /* <1> Showed on UI for user, in percentage. */ tmp_val = priv->stats.slide_evm_total / slide_evm_statistics; priv->stats.signal_quality = tmp_val; - /* Showed on UI for user in Windows Vista, for Link quality. */ + /* Showed on UI for user in Windows Vista, + * for Link quality. + */ priv->stats.last_signal_strength_inpercent = tmp_val; } @@ -3873,11 +3939,6 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, * Output: NONE * * Return: 0-100 percentage - * - * Revised History: - * When Who Remark - * 05/26/2008 amy Create Version 0 porting from windows code. - * *---------------------------------------------------------------------------*/ static u8 rtl819x_query_rxpwrpercentage(char antpower) { @@ -4004,7 +4065,9 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, if (is_cck_rate) { /* (1)Hardware does not provide RSSI for CCK */ - /* (2)PWDB, Average PWDB cacluated by hardware (for rate adaptive) */ + /* (2)PWDB, Average PWDB cacluated by hardware + * (for rate adaptive) + */ u8 report; priv->stats.numqry_phystatusCCK++; @@ -4111,9 +4174,11 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, /* (3)EVM of HT rate */ if (pdrvinfo->RxHT && pdrvinfo->RxRate >= DESC90_RATEMCS8 && pdrvinfo->RxRate <= DESC90_RATEMCS15) - max_spatial_stream = 2; /* both spatial stream make sense */ + /* both spatial stream make sense */ + max_spatial_stream = 2; else - max_spatial_stream = 1; /* only spatial stream 1 makes sense */ + /* only spatial stream 1 makes sense */ + max_spatial_stream = 1; for (i = 0; i < max_spatial_stream; i++) { tmp_rxevm = pofdm_buf->rxevm_X[i]; @@ -4129,7 +4194,10 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, rx_evmX /= 2; /* dbm */ evm = rtl819x_evm_dbtopercentage(rx_evmX); - if (i == 0) /* Fill value in RFD, Get the first spatial stream only */ + if (i == 0) + /* Fill value in RFD, Get the first spatial + * stream only + */ pstats->SignalQuality = precord_stats->SignalQuality = (u8)(evm & 0xff); pstats->RxMIMOSignalQuality[i] = precord_stats->RxMIMOSignalQuality[i] = (u8)(evm & 0xff); } @@ -4243,9 +4311,11 @@ UpdateReceivedRateHistogramStatistics8190(struct net_device *dev, struct ieee80211_rx_stats *stats) { struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); - u32 rcvType = 1; /* 0: Total, 1:OK, 2:CRC, 3:ICV */ + /* 0: Total, 1:OK, 2:CRC, 3:ICV */ + u32 rcvType = 1; u32 rateIndex; - u32 preamble_guardinterval; /* 1: short preamble/GI, 0: long preamble/GI */ + /* 1: short preamble/GI, 0: long preamble/GI */ + u32 preamble_guardinterval; if (stats->bCRC) @@ -4405,7 +4475,8 @@ static void query_rxdesc_status(struct sk_buff *skb, */ stats->bHwError = 1; - stats->rate = MGN_1M; /* Set 1M rate by default */ + /* Set 1M rate by default */ + stats->rate = MGN_1M; } else { stats->rate = ret_rate; } @@ -4696,7 +4767,9 @@ fail: return ret; } -/* detach all the work and timer structure declared or inititialize in r8192U_init function. */ +/* detach all the work and timer structure declared or inititialize + * in r8192U_init function. + */ static void rtl8192_cancel_deferred_work(struct r8192_priv *priv) { @@ -4818,7 +4891,8 @@ void EnableHWSecurityConfig8192(struct net_device *dev) ieee->hwsec_active = 1; - if ((ieee->pHTInfo->IOTAction & HT_IOT_ACT_PURE_N_MODE) || !hwwep) { /* add hwsec_support flag to totol control hw_sec on/off */ + /* add hwsec_support flag to totol control hw_sec on/off */ + if ((ieee->pHTInfo->IOTAction & HT_IOT_ACT_PURE_N_MODE) || !hwwep) { ieee->hwsec_active = 0; SECR_value &= ~SCR_RxDecEnable; } From 18f05b529592e65470ff50a887b9387d7d71e724 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:42 +0900 Subject: [PATCH 0487/2431] staging: wilc1000: remove INLINE macro This patch removes INLINE macro that is used anymore. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 1 - drivers/staging/wilc1000/wilc_wlan.c | 1 - 2 files changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 2fa279087faa..14e8efc09baa 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -17,7 +17,6 @@ /*****************************************************************************/ /* Constants */ /*****************************************************************************/ -#define INLINE static __inline #define TAG_PARAM_OFFSET (MAC_HDR_LEN + TIME_STAMP_LEN + \ BEACON_INTERVAL_LEN + CAP_INFO_LEN) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 4c25179c2fec..47fa0f3d7f20 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -9,7 +9,6 @@ #include "wilc_wlan_if.h" #include "wilc_wlan.h" -#define INLINE static __inline /******************************************** * From fed16f2c912fbd1e8e866738e2a8fcd5d9c36c81 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:43 +0900 Subject: [PATCH 0488/2431] staging: wilc1000: replace __inline with inline This patch replaces __inline with inline. plain inline is more preferred than __inline. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 47fa0f3d7f20..1fe1ba53cf53 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -316,13 +316,13 @@ u32 Pending_Acks; -static __inline int Init_TCP_tracking(void) +static inline int Init_TCP_tracking(void) { return 0; } -static __inline int add_TCP_track_session(u32 src_prt, u32 dst_prt, u32 seq) +static inline int add_TCP_track_session(u32 src_prt, u32 dst_prt, u32 seq) { Acks_keep_track_info[Opened_TCP_session].Ack_seq_num = seq; Acks_keep_track_info[Opened_TCP_session].Bigger_Ack_num = 0; @@ -334,7 +334,7 @@ static __inline int add_TCP_track_session(u32 src_prt, u32 dst_prt, u32 seq) return 0; } -static __inline int Update_TCP_track_session(u32 index, u32 Ack) +static inline int Update_TCP_track_session(u32 index, u32 Ack) { if (Ack > Acks_keep_track_info[index].Bigger_Ack_num) { @@ -343,7 +343,7 @@ static __inline int Update_TCP_track_session(u32 index, u32 Ack) return 0; } -static __inline int add_TCP_Pending_Ack(u32 Ack, u32 Session_index, struct txq_entry_t *txqe) +static inline int add_TCP_Pending_Ack(u32 Ack, u32 Session_index, struct txq_entry_t *txqe) { Statisitcs_totalAcks++; if (Pending_Acks < MAX_PENDING_ACKS) { @@ -358,7 +358,7 @@ static __inline int add_TCP_Pending_Ack(u32 Ack, u32 Session_index, struct txq_e } return 0; } -static __inline int remove_TCP_related(void) +static inline int remove_TCP_related(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; @@ -369,7 +369,7 @@ static __inline int remove_TCP_related(void) return 0; } -static __inline int tcp_process(struct txq_entry_t *tqe) +static inline int tcp_process(struct txq_entry_t *tqe) { int ret; u8 *eth_hdr_ptr; From a0e5facedb4a1c7892a6f6f7a749eaf9b23fbbe1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:45 +0900 Subject: [PATCH 0489/2431] staging: wilc1000: linux_wlan_spi.c: fix kzalloc error check This patch fixes error check of kzalloc. If kzalloc is failed, return type is used as -ENOMEM. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan_spi.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 3e2425647018..51bbd969e96b 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -125,10 +125,8 @@ int linux_spi_write(u8 *b, u32 len) int remainder = len % TXRX_PHASE_SIZE; char *r_buffer = kzalloc(TXRX_PHASE_SIZE, GFP_KERNEL); - - if (!r_buffer) { - PRINT_ER("Failed to allocate memory for r_buffer\n"); - } + if (!r_buffer) + return -ENOMEM; if (blk) { while (i < blk) { @@ -208,10 +206,9 @@ int linux_spi_write(u8 *b, u32 len) .delay_usecs = 0, }; char *r_buffer = kzalloc(len, GFP_KERNEL); + if (!r_buffer) + return -ENOMEM; - if (!r_buffer) { - PRINT_ER("Failed to allocate memory for r_buffer\n"); - } tr.rx_buf = r_buffer; PRINT_D(BUS_DBG, "Request writing %d bytes\n", len); @@ -257,10 +254,8 @@ int linux_spi_read(unsigned char *rb, unsigned long rlen) int remainder = rlen % TXRX_PHASE_SIZE; char *t_buffer = kzalloc(TXRX_PHASE_SIZE, GFP_KERNEL); - - if (!t_buffer) { - PRINT_ER("Failed to allocate memory for t_buffer\n"); - } + if (!t_buffer) + return -ENOMEM; if (blk) { while (i < blk) { @@ -337,10 +332,9 @@ int linux_spi_read(unsigned char *rb, unsigned long rlen) }; char *t_buffer = kzalloc(rlen, GFP_KERNEL); + if (!t_buffer) + return -ENOMEM; - if (!t_buffer) { - PRINT_ER("Failed to allocate memory for t_buffer\n"); - } tr.tx_buf = t_buffer; memset(&msg, 0, sizeof(msg)); From 0097ac7b1d5e17c08fd555a3e97eae808a3d0be2 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:46 +0900 Subject: [PATCH 0490/2431] staging: wilc1000: remove unused defines This patch removes unused defines. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_platform.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h index 1e56973f2f93..5c867ecd5c77 100644 --- a/drivers/staging/wilc1000/wilc_platform.h +++ b/drivers/staging/wilc1000/wilc_platform.h @@ -41,8 +41,4 @@ typedef time_t WILC_Time; * others ********************************************************************/ -/* Generic printf function */ -#define __WILC_FILE__ __FILE__ -#define __WILC_FUNCTION__ __func__ -#define __WILC_LINE__ __LINE__ #endif From 62f463a892420f7e275a6e67af1c465b431a3ac1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:47 +0900 Subject: [PATCH 0491/2431] staging: wilc1000: remove WILC_TIME typedef This patch removes WILC_TIME typedef that is not used anymore. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_platform.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h index 5c867ecd5c77..b7636167f473 100644 --- a/drivers/staging/wilc1000/wilc_platform.h +++ b/drivers/staging/wilc1000/wilc_platform.h @@ -33,8 +33,6 @@ typedef struct __MessageQueue_struct { -/*Time represented in 64 bit format*/ -typedef time_t WILC_Time; /******************************************************************* From 5af6b85b9e65b81c1954cbfa18ad41d65f911c93 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:48 +0900 Subject: [PATCH 0492/2431] staging: wilc1000: remove useless comment This patch removes useless comment that is included "BugID_xxxx" Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 36 ---------------- drivers/staging/wilc1000/host_interface.h | 4 -- drivers/staging/wilc1000/linux_wlan.c | 8 ---- drivers/staging/wilc1000/linux_wlan_common.h | 1 - .../staging/wilc1000/wilc_wfi_cfgoperations.c | 42 ------------------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - drivers/staging/wilc1000/wilc_wlan.c | 26 +----------- drivers/staging/wilc1000/wilc_wlan.h | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 9 ---- 9 files changed, 2 insertions(+), 126 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6fdf392648e5..c63c5ee3f7d1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -7,7 +7,6 @@ extern u8 connecting; extern struct timer_list hDuringIpTimer; #endif -/*BugID_5137*/ extern u8 g_wilc_initialized; /*****************************************************************************/ /* Macros */ @@ -173,7 +172,6 @@ typedef struct _tstrHostIFscanAttr { size_t IEsLen; tWILCpfScanResult pfScanResult; void *pvUserArg; - /*BugID_4189*/ tstrHiddenNetwork strHiddenNetwork; } tstrHostIFscanAttr; @@ -563,7 +561,6 @@ static u32 gu32InactiveTime; static u8 gu8DelBcn; static u32 gu32WidConnRstHack; -/*BugID_5137*/ u8 *gu8FlushedJoinReq; u8 *gu8FlushedInfoElemAsoc; u8 gu8Flushed11iMode; @@ -888,7 +885,6 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetMacAdd } -/*BugID_5213*/ /** * @brief Handle_GetMacAddress * @details Getting mac address @@ -1330,7 +1326,6 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHost pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount = 0; - /*BugID_4189*/ strWIDList[u32WidsCount].u16WIDid = (u16)WID_SSID_PROBE_REQ; strWIDList[u32WidsCount].enuWIDtype = WID_STR; @@ -1474,7 +1469,6 @@ static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent) PRINT_D(HOSTINF_DBG, "in Handle_ScanDone()\n"); - /*BugID_4978*/ /*Ask FW to abort the running scan, if any*/ if (enuEvent == SCAN_EVENT_ABORTED) { PRINT_D(GENERIC_DBG, "Abort running scan\n"); @@ -1772,7 +1766,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps strWIDList[u32WidsCount].s32ValueSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; u32WidsCount++; - /*BugID_5137*/ if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { gu32FlushedInfoElemAsocSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; @@ -1787,7 +1780,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security)); u32WidsCount++; - /*BugID_5137*/ if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) gu8Flushed11iMode = pstrWFIDrv->strWILC_UsrConnReq.u8security; @@ -1800,7 +1792,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); u32WidsCount++; - /*BugID_5137*/ if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) gu8FlushedAuthType = (u8)pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type; @@ -1857,7 +1848,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps strWIDList[u32WidsCount].s32ValueSize = 112; /* 79; */ strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].s32ValueSize, GFP_KERNEL); - /*BugID_5137*/ if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { gu32FlushedJoinReqSize = strWIDList[u32WidsCount].s32ValueSize; gu8FlushedJoinReq = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); @@ -1943,7 +1933,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps memcpy(pu8CurrByte, ptstrJoinBssParam->rsn_cap, sizeof(ptstrJoinBssParam->rsn_cap)); pu8CurrByte += sizeof(ptstrJoinBssParam->rsn_cap); - /*BugID_5137*/ *(pu8CurrByte++) = REAL_JOIN_REQ; *(pu8CurrByte++) = ptstrJoinBssParam->u8NoaEnbaled; @@ -1993,7 +1982,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps gu32WidConnRstHack = 0; /* ////////////////////// */ - /*BugID_5137*/ if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { memcpy(gu8FlushedJoinReq, pu8CurrByte, gu32FlushedJoinReqSize); gu8FlushedJoinReqDrvHandler = pstrWFIDrv; @@ -2244,7 +2232,6 @@ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) } memset(u8ConnectedSSID, 0, ETH_ALEN); - /*BugID_5213*/ /*Freeing flushed join request params on connect timeout*/ if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedJoinReq); @@ -2666,7 +2653,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsy pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = NULL; } - /*BugID_5213*/ /*Freeing flushed join request params on receiving*/ /*MAC_DISCONNECTED while connected*/ if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { @@ -3125,7 +3111,6 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) if (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { - /*BugID_5193*/ /*Stop connect timer, if connection in progress*/ if (pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { PRINT_D(HOSTINF_DBG, "Upper layer requested termination of connection\n"); @@ -3164,7 +3149,6 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) } - /*BugID_5137*/ if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; @@ -3931,7 +3915,6 @@ static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, tstrHostIfRema PRINT_D(HOSTINF_DBG, "CANCEL REMAIN ON CHAN\n"); - /*BugID_5477*/ /*Make sure we are already in listen state*/ /*This is to handle duplicate expiry messages (listen timer fired and supplicant called cancel_remain_on_channel())*/ if (P2P_LISTEN_STATE) { @@ -4084,7 +4067,6 @@ ERRORHANDLER: } -/*BugID_5222*/ /** * @brief Handle_AddBASession * @details Add block ack session @@ -4174,7 +4156,6 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI } -/*BugID_5222*/ /** * @brief Handle_DelBASession * @details Delete block ack session @@ -4239,7 +4220,6 @@ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI if (strWID.ps8WidVal != NULL) kfree(strWID.ps8WidVal); - /*BugID_5222*/ up(&hWaitResponse); return s32Error; @@ -4294,7 +4274,6 @@ static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASe if (strWID.ps8WidVal != NULL) kfree(strWID.ps8WidVal); - /*BugID_5222*/ up(&hWaitResponse); return s32Error; @@ -4355,7 +4334,6 @@ static int hostIFthread(void *pvArg) Handle_Connect(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr); break; - /*BugID_5137*/ case HOST_IF_MSG_FLUSH_CONNECT: Handle_FlushConnect(strHostIFmsg.drvHandler); break; @@ -4389,7 +4367,6 @@ static int hostIFthread(void *pvArg) del_timer(&pstrWFIDrv->hScanTimer); PRINT_D(HOSTINF_DBG, "scan completed successfully\n"); - /*BugID_5213*/ /*Allow chip sleep, only if both interfaces are not connected*/ if (!linux_wlan_get_num_conn_ifcs()) chip_sleep_manually(INFINITE_SLEEP_TIME); @@ -4475,12 +4452,10 @@ static int hostIFthread(void *pvArg) Handle_get_IPAddress(strHostIFmsg.drvHandler, strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr, strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx); break; - /*BugID_5077*/ case HOST_IF_MSG_SET_MAC_ADDRESS: Handle_SetMacAddress(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMacAddress); break; - /*BugID_5213*/ case HOST_IF_MSG_GET_MAC_ADDRESS: Handle_GetMacAddress(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfGetMacAddress); break; @@ -4504,7 +4479,6 @@ static int hostIFthread(void *pvArg) Handle_SetMulticastFilter(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMulti); break; - /*BugID_5222*/ case HOST_IF_MSG_ADD_BA_SESSION: Handle_AddBASession(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo); break; @@ -6421,7 +6395,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) if (clients_count == 0) { sema_init(&hSemHostIFthrdEnd, 0); sema_init(&hSemDeinitDrvHandle, 0); - /*BugID_5348*/ sema_init(&hSemHostIntDeinit, 1); } @@ -6544,7 +6517,6 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) * return 0; * }*/ - /*BugID_5348*/ if (pstrWFIDrv == NULL) { PRINT_ER("pstrWFIDrv = NULL\n"); @@ -6556,7 +6528,6 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) terminated_handle = pstrWFIDrv; PRINT_D(HOSTINF_DBG, "De-initializing host interface for client %d\n", clients_count); - /*BugID_5348*/ /*Destroy all timers before acquiring hSemDeinitDrvHandle*/ /*to guarantee handling all messages befor proceeding*/ if (del_timer_sync(&pstrWFIDrv->hScanTimer)) { @@ -6703,7 +6674,6 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; - /*BugID_5348*/ down(&hSemHostIntDeinit); id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); @@ -6713,7 +6683,6 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) if (pstrWFIDrv == NULL || pstrWFIDrv == terminated_handle) { PRINT_D(HOSTINF_DBG, "Wifi driver handler is equal to NULL\n"); - /*BugID_5348*/ up(&hSemHostIntDeinit); return; } @@ -6721,7 +6690,6 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) if (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult == NULL) { /* received mac status is not needed when there is no current Connect Request */ PRINT_ER("Received mac status is not needed when there is no current Connect Reques\n"); - /*BugID_5348*/ up(&hSemHostIntDeinit); return; } @@ -6744,7 +6712,6 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) if (s32Error) PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); - /*BugID_5348*/ up(&hSemHostIntDeinit); } @@ -7126,7 +7093,6 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_STATION; strHostIFmsg.drvHandler = hWFIDrv; - /*BugID_4795: Handling situation of deleting all stations*/ if (pu8MacAddr == NULL) memset(pstrDelStationMsg->au8MacAddr, 255, ETH_ALEN); else @@ -7604,7 +7570,6 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) if (s32Error) PRINT_ER("wilc_mq_send fail\n"); - /*BugID_5222*/ down(&hWaitResponse); return s32Error; @@ -7635,7 +7600,6 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T if (s32Error) PRINT_ER("wilc_mq_send fail\n"); - /*BugID_5222*/ down(&hWaitResponse); return s32Error; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index fd5fa198db55..c1a9cce4d0b5 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -216,7 +216,6 @@ typedef struct _tstrRcvdNetworkInfo { u32 u32Length; } tstrRcvdNetworkInfo; -/*BugID_4156*/ typedef struct _tstrHiddenNetworkInfo { u8 *pu8ssid; u8 u8ssidlen; @@ -264,17 +263,14 @@ typedef struct { u32 u32Mode; } tstrHostIfSetOperationMode; -/*BugID_5077*/ typedef struct { u8 u8MacAddress[ETH_ALEN]; } tstrHostIfSetMacAddress; -/*BugID_5213*/ typedef struct { u8 *u8MacAddress; } tstrHostIfGetMacAddress; -/*BugID_5222*/ typedef struct { u8 au8Bssid[ETH_ALEN]; u8 u8Ted; diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index a4f43d2651e4..bb16518f2054 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -572,7 +572,6 @@ int linux_wlan_set_bssid(struct net_device *wilc_netdev, u8 *pBSSID) return ret; } -/*BugID_5213*/ /*Function to get number of connected interfaces*/ int linux_wlan_get_num_conn_ifcs(void) { @@ -679,7 +678,6 @@ int linux_wlan_get_firmware(perInterface_wlan_t *p_nic) else if (nic->iftype == STATION_MODE) firmware = STA_FIRMWARE; - /*BugID_5137*/ else { PRINT_D(INIT_DBG, "Get P2P_CONCURRENCY_FIRMWARE\n"); firmware = P2P_CONCURRENCY_FIRMWARE; @@ -800,7 +798,6 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n unsigned char c_val[64]; unsigned char mac_add[] = {0x00, 0x80, 0xC2, 0x5E, 0xa2, 0xff}; - /*BugID_5077*/ struct wilc_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; @@ -1147,7 +1144,6 @@ int wlan_init_locks(linux_wlan_t *p_nic) mutex_init(&g_linux_wlan->rxq_cs); mutex_init(&g_linux_wlan->txq_cs); - /*Added by Amr - BugID_4720*/ spin_lock_init(&g_linux_wlan->txq_spinlock); sema_init(&g_linux_wlan->txq_add_to_head_cs, 1); @@ -1190,10 +1186,8 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.tx_buffer_size = LINUX_TX_SIZE; nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs; - /*Added by Amr - BugID_4720*/ nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs; - /*Added by Amr - BugID_4720*/ nwi->os_context.txq_spin_lock = (void *)&g_linux_wlan->txq_spinlock; nwi->os_context.txq_wait_event = (void *)&g_linux_wlan->txq_event; @@ -1559,7 +1553,6 @@ int mac_open(struct net_device *ndev) { perInterface_wlan_t *nic; - /*BugID_5213*/ /*No need for setting mac address here anymore,*/ /*Just set it in init_test_config()*/ unsigned char mac_add[ETH_ALEN] = {0}; @@ -1969,7 +1962,6 @@ void WILC_WFI_mgmt_rx(u8 *buff, u32 size) int i = 0; perInterface_wlan_t *nic; - /*BugID_5450*/ /*Pass the frame on the monitor interface, if any.*/ /*Otherwise, pass it on p2p0 netdev, if registered on it*/ for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { diff --git a/drivers/staging/wilc1000/linux_wlan_common.h b/drivers/staging/wilc1000/linux_wlan_common.h index 5d13c1519350..9478e82c8e65 100644 --- a/drivers/staging/wilc1000/linux_wlan_common.h +++ b/drivers/staging/wilc1000/linux_wlan_common.h @@ -12,7 +12,6 @@ enum debug_region { RX_debug, Lock_debug, Tcp_enhance, - /*Added by amr - BugID_4720*/ Spin_debug, Init_debug, diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index a2c80dbf1cd5..5a95b959ef5b 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -37,7 +37,6 @@ struct timer_list hAgingTimer; static u8 op_ifcs; extern u8 u8ConnectedSSID[6]; -/*BugID_5137*/ u8 g_wilc_initialized = 1; extern linux_wlan_t *g_linux_wlan; #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP @@ -102,7 +101,6 @@ struct p2p_mgmt_data { /*Global variable used to state the current connected STA channel*/ u8 u8WLANChannel = INVALID_CHANNEL; -/*BugID_5442*/ u8 u8CurrChannel; u8 u8P2P_oui[] = {0x50, 0x6f, 0x9A, 0x09}; @@ -119,7 +117,6 @@ static struct ieee80211_supported_band WILC_WFI_band_2ghz = { }; -/*BugID_5137*/ struct add_key_params { u8 key_idx; bool pairwise; @@ -573,7 +570,6 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, linux_wlan_set_bssid(priv->dev, NullBssid); memset(u8ConnectedSSID, 0, ETH_ALEN); - /*BugID_5457*/ /*Invalidate u8WLANChannel value on wlan0 disconnect*/ if (!pstrWFIDrv->u8P2PConnect) u8WLANChannel = INVALID_CHANNEL; @@ -589,9 +585,6 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, pstrConnectInfo->au8bssid[1], pstrConnectInfo->au8bssid[2], pstrConnectInfo->au8bssid[3], pstrConnectInfo->au8bssid[4], pstrConnectInfo->au8bssid[5]); memcpy(priv->au8AssociatedBss, pstrConnectInfo->au8bssid, ETH_ALEN); - /* BugID_4209: if this network has expired in the scan results in the above nl80211 layer, refresh them here by calling - * cfg80211_inform_bss() with the last Scan results before calling cfg80211_connect_result() to avoid - * Linux kernel warning generated at the nl80211 layer */ for (i = 0; i < u32LastScannedNtwrksCountShadow; i++) { if (memcmp(astrLastScannedNtwrksShadow[i].au8bssid, @@ -608,7 +601,6 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, } if (bNeedScanRefresh) { - /*BugID_5418*/ /*Also, refrsh DIRECT- results if */ refresh_scan(priv, 1, true); @@ -639,17 +631,14 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, linux_wlan_set_bssid(priv->dev, NullBssid); memset(u8ConnectedSSID, 0, ETH_ALEN); - /*BugID_5457*/ /*Invalidate u8WLANChannel value on wlan0 disconnect*/ if (!pstrWFIDrv->u8P2PConnect) u8WLANChannel = INVALID_CHANNEL; - /*BugID_5315*/ /*Incase "P2P CLIENT Connected" send deauthentication reason by 3 to force the WPA_SUPPLICANT to directly change * virtual interface to station*/ if ((pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->strInterfaceInfo[1].wilc_netdev)) { pstrDisconnectNotifInfo->u16reason = 3; } - /*BugID_5315*/ /*Incase "P2P CLIENT during connection(not connected)" send deauthentication reason by 1 to force the WPA_SUPPLICANT * to scan again and retry the connection*/ else if ((!pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->strInterfaceInfo[1].wilc_netdev)) { @@ -755,7 +744,6 @@ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) strHiddenNetwork.u8ssidnum = request->n_ssids; - /*BugID_4156*/ for (i = 0; i < request->n_ssids; i++) { if (request->ssids[i].ssid != NULL && request->ssids[i].ssid_len != 0) { @@ -911,7 +899,6 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, priv->WILC_WFI_wep_key_len[sme->key_idx] = sme->key_len; memcpy(priv->WILC_WFI_wep_key[sme->key_idx], sme->key, sme->key_len); - /*BugID_5137*/ g_key_wep_params.key_len = sme->key_len; g_key_wep_params.key = kmalloc(sme->key_len, GFP_KERNEL); memcpy(g_key_wep_params.key, sme->key, sme->key_len); @@ -929,7 +916,6 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, priv->WILC_WFI_wep_key_len[sme->key_idx] = sme->key_len; memcpy(priv->WILC_WFI_wep_key[sme->key_idx], sme->key, sme->key_len); - /*BugID_5137*/ g_key_wep_params.key_len = sme->key_len; g_key_wep_params.key = kmalloc(sme->key_len, GFP_KERNEL); memcpy(g_key_wep_params.key, sme->key, sme->key_len); @@ -1023,7 +1009,6 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, PRINT_INFO(CFG80211_DBG, "Group encryption value = %s\n Cipher Group = %s\n WPA version = %s\n", pcgroup_encrypt_val, pccipher_group, pcwpa_version); - /*BugID_5442*/ u8CurrChannel = pstrNetworkInfo->u8channel; if (!pstrWFIDrv->u8P2PConnect) { @@ -1068,7 +1053,6 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co connecting = 0; priv = wiphy_priv(wiphy); - /*BugID_5457*/ /*Invalidate u8WLANChannel value on wlan0 disconnect*/ pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; if (!pstrWFIDrv->u8P2PConnect) @@ -1120,7 +1104,6 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, PRINT_D(CFG80211_DBG, "Adding key with cipher suite = %x\n", params->cipher); - /*BugID_5137*/ PRINT_D(CFG80211_DBG, "%p %p %d\n", wiphy, netdev, key_index); PRINT_D(CFG80211_DBG, "key %x %x %x\n", params->key[0], @@ -1292,7 +1275,6 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, KeyLen = params->key_len - 16; } - /*BugID_5137*/ /*save keys only on interface 0 (wifi interface)*/ if (!g_gtk_keys_saved && netdev == g_linux_wlan->strInterfaceInfo[0].wilc_netdev) { g_add_gtk_key_params.key_idx = key_index; @@ -1329,7 +1311,6 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, KeyLen = params->key_len - 16; } - /*BugID_5137*/ /*save keys only on interface 0 (wifi interface)*/ if (!g_ptk_keys_saved && netdev == g_linux_wlan->strInterfaceInfo[0].wilc_netdev) { g_add_ptk_key_params.key_idx = key_index; @@ -1396,7 +1377,6 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, priv = wiphy_priv(wiphy); - /*BugID_5137*/ /*delete saved keys, if any*/ if (netdev == g_linux_wlan->strInterfaceInfo[0].wilc_netdev) { g_ptk_keys_saved = false; @@ -1987,7 +1967,6 @@ void WILC_WFI_CfgParseRxAction(u8 *buf, u32 len) u32 index = 0; u32 i = 0, j = 0; - /*BugID_5460*/ u8 op_channel_attr_index = 0; u8 channel_list_attr_index = 0; @@ -2131,7 +2110,6 @@ void WILC_WFI_p2p_rx (struct net_device *dev, u8 *buff, u32 size) PRINT_D(GENERIC_DBG, "Rx Frame Type:%x\n", buff[FRAME_TYPE_ID]); - /*BugID_5442*/ /*Upper layer is informed that the frame is received on this freq*/ s32Freq = ieee80211_channel_to_frequency(u8CurrChannel, IEEE80211_BAND_2GHZ); @@ -2265,7 +2243,6 @@ static void WILC_WFI_RemainOnChannelExpired(void *pUserVoid, u32 u32SessionID) priv = (struct wilc_priv *)pUserVoid; - /*BugID_5477*/ if (u32SessionID == priv->strRemainOnChanParams.u32ListenSessionID) { PRINT_D(GENERIC_DBG, "Remain on channel expired\n"); @@ -2308,9 +2285,6 @@ static int remain_on_channel(struct wiphy *wiphy, PRINT_D(GENERIC_DBG, "Remaining on channel %d\n", chan->hw_value); - /*BugID_4800: if in AP mode, return.*/ - /*This check is to handle the situation when user*/ - /*requests "create group" during a running scan*/ if (wdev->iftype == NL80211_IFTYPE_AP) { PRINT_D(GENERIC_DBG, "Required remain-on-channel while in AP mode"); @@ -2443,9 +2417,7 @@ int mgmt_tx(struct wiphy *wiphy, PRINT_D(GENERIC_DBG, "ACTION FRAME:%x\n", (u16)mgmt->frame_control); - /*BugID_4847*/ if (buf[ACTION_CAT_ID] == PUB_ACTION_ATTR_ID) { - /*BugID_4847*/ /*Only set the channel, if not a negotiation confirmation frame * (If Negotiation confirmation frame, force it * to be transmitted on the same negotiation channel)*/ @@ -2495,7 +2467,6 @@ int mgmt_tx(struct wiphy *wiphy, if (buf[P2P_PUB_ACTION_SUBTYPE] == P2P_INV_REQ || buf[P2P_PUB_ACTION_SUBTYPE] == P2P_INV_RSP) WILC_WFI_CfgParseTxAction(&mgmt_tx->buff[i + 6], len - (i + 6), true, nic->iftype); - /*BugID_5460*/ /*If using supplicant go intent, no need at all*/ /*to parse transmitted negotiation frames*/ else @@ -2594,7 +2565,6 @@ void WILC_WFI_frame_register(struct wiphy *wiphy, - /*BugID_5137*/ if (!frame_type) return; @@ -2754,7 +2724,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, del_timer(&hDuringIpTimer); PRINT_D(GENERIC_DBG, "Changing virtual interface, enable scan\n"); #endif - /*BugID_5137*/ /*Set WILC_CHANGING_VIR_IF register to disallow adding futrue keys to CE H/W*/ if (g_ptk_keys_saved && g_gtk_keys_saved) { Set_machw_change_vir_if(true); @@ -2783,7 +2752,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); - /*BugID_5213*/ /*Eliminate host interface blocking state*/ up(&g_linux_wlan->cfg_event); @@ -2835,8 +2803,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, (struct key_params *)(&g_key_gtk_params)); } - /*BugID_4847: registered frames in firmware are now*/ - /*lost due to mac close. So re-register those frames*/ if (g_linux_wlan->wilc1000_initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, @@ -2922,8 +2888,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, refresh_scan(priv, 1, true); Set_machw_change_vir_if(false); - /*BugID_4847: registered frames in firmware are now lost - * due to mac close. So re-register those frames */ if (g_linux_wlan->wilc1000_initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, @@ -2953,8 +2917,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, mac_close(dev); mac_open(dev); - /*BugID_4847: registered frames in firmware are now lost - * due to mac close. So re-register those frames */ for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, nic->g_struct_frame_reg[i].reg); @@ -2973,7 +2935,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, mod_timer(&hDuringIpTimer, jiffies + msecs_to_jiffies(duringIP_TIME)); #endif host_int_set_power_mgmt(priv->hWILCWFIDrv, 0, 0); - /*BugID_5222*/ /*Delete block ack has to be the latest config packet*/ /*sent before downloading new FW. This is because it blocks on*/ /*hWaitResponse semaphore, which allows previous config*/ @@ -3047,8 +3008,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, } #endif - /*BugID_4847: registered frames in firmware are now*/ - /*lost due to mac close. So re-register those frames*/ if (g_linux_wlan->wilc1000_initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, @@ -3178,7 +3137,6 @@ static int stop_ap(struct wiphy *wiphy, struct net_device *dev) PRINT_D(HOSTAPD_DBG, "Deleting beacon\n"); - /*BugID_5188*/ linux_wlan_set_bssid(dev, NullBssid); s32Error = host_int_del_beacon(priv->hWILCWFIDrv); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index aa96ef39d43f..dddf28d7fbda 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -180,7 +180,6 @@ typedef struct { u8 open_ifcs; struct mutex txq_cs; - /*Added by Amr - BugID_4720*/ struct semaphore txq_add_to_head_cs; spinlock_t txq_spinlock; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 1fe1ba53cf53..e12dd01759f5 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -71,7 +71,6 @@ typedef struct { **/ void *txq_lock; - /*Added by Amr - BugID_4720*/ struct semaphore *txq_add_to_head_lock; void *txq_spinlock; unsigned long txq_spinlock_flags; @@ -123,7 +122,6 @@ static void wilc_debug(u32 flag, char *fmt, ...) static CHIP_PS_STATE_T genuChipPSstate = CHIP_WAKEDUP; -/*BugID_5213*/ /*acquire_bus() and release_bus() are made static inline functions*/ /*as a temporary workaround to fix a problem of receiving*/ /*unknown interrupt from FW*/ @@ -193,7 +191,6 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) } p->txq_entries -= 1; - /*Added by Amr - BugID_4720*/ @@ -208,7 +205,6 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - /*Added by Amr - BugID_4720*/ spin_lock_irqsave(p->txq_spinlock, flags); if (p->txq_head == NULL) { @@ -225,7 +221,6 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) p->txq_entries += 1; PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries); - /*Added by Amr - BugID_4720*/ spin_unlock_irqrestore(p->txq_spinlock, flags); /** @@ -240,7 +235,6 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - /*Added by Amr - BugID_4720*/ if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT)) return -1; @@ -260,7 +254,6 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) p->txq_entries += 1; PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries); - /*Added by Amr - BugID_4720*/ spin_unlock_irqrestore(p->txq_spinlock, flags); up(p->txq_add_to_head_lock); @@ -271,7 +264,6 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) up(p->txq_wait); PRINT_D(TX_DBG, "Wake up the txq_handler\n"); - /*Added by Amr - BugID_4720*/ return 0; } @@ -521,7 +513,6 @@ static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, u32 buffer_size) **/ PRINT_D(TX_DBG, "Adding the config packet at the Queue tail\n"); - /*Edited by Amr - BugID_4720*/ if (wilc_wlan_txq_add_to_head(tqe)) return 0; return 1; @@ -589,12 +580,10 @@ static struct txq_entry_t *wilc_wlan_txq_get_first(void) struct txq_entry_t *tqe; unsigned long flags; - /*Added by Amr - BugID_4720*/ spin_lock_irqsave(p->txq_spinlock, flags); tqe = p->txq_head; - /*Added by Amr - BugID_4720*/ spin_unlock_irqrestore(p->txq_spinlock, flags); @@ -605,11 +594,9 @@ static struct txq_entry_t *wilc_wlan_txq_get_next(struct txq_entry_t *tqe) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - /*Added by Amr - BugID_4720*/ spin_lock_irqsave(p->txq_spinlock, flags); tqe = tqe->next; - /*Added by Amr - BugID_4720*/ spin_unlock_irqrestore(p->txq_spinlock, flags); @@ -864,7 +851,6 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) if (p->quit) break; - /*Added by Amr - BugID_4720*/ p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT); #ifdef TCP_ACK_FILTER wilc_wlan_txq_filter_dup_tcp_ack(); @@ -1142,7 +1128,6 @@ _end_: if (ret != 1) break; } while (0); - /*Added by Amr - BugID_4720*/ up(p->txq_add_to_head_lock); p->txq_exit = 1; @@ -1581,13 +1566,11 @@ static int wilc_wlan_start(void) reg |= WILC_HAVE_LEGACY_RF_SETTINGS; -/*BugID_5257*/ /*Set oscillator frequency*/ #ifdef XTAL_24 reg |= WILC_HAVE_XTAL_24; #endif -/*BugID_5271*/ /*Enable/Disable GPIO configuration for FW logs*/ #ifdef DISABLE_WILC_UART reg |= WILC_HAVE_DISABLE_WILC_UART; @@ -1812,7 +1795,6 @@ static int wilc_wlan_cfg_commit(int type, u32 drvHandler) * Add to TX queue **/ - /*Edited by Amr - BugID_4720*/ if (!wilc_wlan_txq_add_cfg_pkt(&cfg->wid_header[0], total_len)) return -1; @@ -1842,9 +1824,8 @@ static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, in PRINT_D(RX_DBG, "Processing cfg_set()\n"); p->cfg_frame_in_use = 1; - /*Edited by Amr - BugID_4720*/ if (wilc_wlan_cfg_commit(WILC_CFG_SET, drvHandler)) - ret_size = 0; /* BugID_5213 */ + ret_size = 0; if (p->os_func.os_wait(p->cfg_wait, CFG_PKTS_TIMEOUT)) { PRINT_D(TX_DBG, "Set Timed Out\n"); @@ -1879,9 +1860,8 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) if (commit) { p->cfg_frame_in_use = 1; - /*Edited by Amr - BugID_4720*/ if (wilc_wlan_cfg_commit(WILC_CFG_QUERY, drvHandler)) - ret_size = 0; /* BugID_5213 */ + ret_size = 0; if (p->os_func.os_wait(p->cfg_wait, CFG_PKTS_TIMEOUT)) { @@ -2038,10 +2018,8 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) g_wlan.hif_lock = inp->os_context.hif_critical_section; g_wlan.txq_lock = inp->os_context.txq_critical_section; - /*Added by Amr - BugID_4720*/ g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section; - /*Added by Amr - BugID_4720*/ g_wlan.txq_spinlock = inp->os_context.txq_spin_lock; g_wlan.rxq_lock = inp->os_context.rxq_critical_section; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index c6f15561bda8..9f05b791a0aa 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -54,7 +54,6 @@ * ********************************************/ #define WILC_PERIPH_REG_BASE 0x1000 -/*BugID_5137*/ #define WILC_CHANGING_VIR_IF (0x108c) #define WILC_CHIPID (WILC_PERIPH_REG_BASE) #define WILC_GLB_RESET_0 (WILC_PERIPH_REG_BASE + 0x400) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index cc92dc968c81..0e2937b82e17 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -127,7 +127,6 @@ typedef struct { u32 tx_buffer_size; void *txq_critical_section; - /*Added by Amr - BugID_4720*/ void *txq_add_to_head_critical_section; void *txq_spin_lock; @@ -626,7 +625,6 @@ typedef enum { /* -------------------------------------------------------------------- */ WID_LINK_LOSS_THRESHOLD = 0x0037, - /*BugID_4978*/ WID_ABORT_RUNNING_SCAN = 0x003E, /* NMAC Character WID list */ @@ -875,12 +873,9 @@ typedef enum { WID_REGISTER_FRAME = 0x3084, WID_DEL_ALL_STA = 0x3085, WID_REMAIN_ON_CHAN = 0x3996, - /*BugID_4156*/ WID_SSID_PROBE_REQ = 0x3997, - /*BugID_4124 WID to trigger modified Join Request using SSID and BSSID instead of bssListIdx (used by WID_JOIN_REQ)*/ WID_JOIN_REQ_EXTENDED = 0x3998, - /* BugID 4951: WID toset IP address in firmware */ WID_IP_ADDRESS = 0x3999, @@ -900,19 +895,15 @@ typedef enum { WID_11N_AUTORATE_TABLE = 0x4080, - /*Added here by Amr - BugID 4134*/ WID_SCAN_CHANNEL_LIST = 0x4084, - /*BugID_3746 WID to add IE to be added in next probe request*/ WID_INFO_ELEMENT_PROBE = 0x4085, - /*BugID_3746 WID to add IE to be added in next associate request*/ WID_INFO_ELEMENT_ASSOCIATE = 0x4086, WID_ADD_STA = 0X4087, WID_REMOVE_STA = 0X4088, WID_EDIT_STA = 0X4089, WID_ADD_BEACON = 0x408a, - /* BugID 5108 */ WID_SETUP_MULTICAST_FILTER = 0x408b, /* Miscellaneous WIDs */ From 5366012de97bc1f6b53c79bd5f664b7a0ced769b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:49 +0900 Subject: [PATCH 0493/2431] staging: wilc1000: remove declaration of wilc_get_chipid This patch removes the declaration of wilc_get_chipid function. It is included wilc_wlan_if.h that has declaration of wilc_get_chipid. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c63c5ee3f7d1..703712e86b7e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1,5 +1,6 @@ #include "host_interface.h" #include "coreconfigurator.h" +#include "wilc_wlan_if.h" extern u8 connecting; @@ -7211,8 +7212,6 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt return s32Error; } -u32 wilc_get_chipid(u8); - s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Timeout) { s32 s32Error = 0; From a87d792b3594454c97c2c9e9693e7dd3bfcbb012 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 17 Sep 2015 17:47:24 +0900 Subject: [PATCH 0494/2431] staging: wilc1000: remove define RX_BH_TYPE This patch removes the preprocessor definition, RX_BH_TYPE and uses the request_threaded_irq instead of kernel thread to execute the interrupt handler. As a result, linux_wlan_enable_irq() and linux_wlan_disable_irq() are also removed from the linux_wlan.c file. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 139 ------------------ drivers/staging/wilc1000/linux_wlan_common.h | 3 - drivers/staging/wilc1000/wilc_wfi_netdevice.h | 15 -- drivers/staging/wilc1000/wilc_wlan.c | 3 - 4 files changed, 160 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index bb16518f2054..d3d785e5b317 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -297,89 +297,30 @@ static int dev_state_ev_handler(struct notifier_block *this, unsigned long event } #endif -/* - * Interrupt initialization and handling functions - */ - -void linux_wlan_enable_irq(void) -{ - -#if (RX_BH_TYPE != RX_BH_THREADED_IRQ) -#if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) - PRINT_D(INT_DBG, "Enabling IRQ ...\n"); - enable_irq(g_linux_wlan->dev_irq_num); -#endif -#endif -} - -void linux_wlan_disable_irq(int wait) -{ -#if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) - if (wait) { - PRINT_D(INT_DBG, "Disabling IRQ ...\n"); - disable_irq(g_linux_wlan->dev_irq_num); - } else { - PRINT_D(INT_DBG, "Disabling IRQ ...\n"); - disable_irq_nosync(g_linux_wlan->dev_irq_num); - } -#endif -} - #if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) static irqreturn_t isr_uh_routine(int irq, void *user_data) { -#if (RX_BH_TYPE != RX_BH_THREADED_IRQ) - linux_wlan_disable_irq(IRQ_NO_WAIT); -#endif PRINT_D(INT_DBG, "Interrupt received UH\n"); /*While mac is closing cacncel the handling of any interrupts received*/ if (g_linux_wlan->close) { PRINT_ER("Driver is CLOSING: Can't handle UH interrupt\n"); - #if (RX_BH_TYPE == RX_BH_THREADED_IRQ) return IRQ_HANDLED; - #else - return IRQ_NONE; - #endif - } -#if (RX_BH_TYPE == RX_BH_WORK_QUEUE) - schedule_work(&g_linux_wlan->rx_work_queue); - return IRQ_HANDLED; -#elif (RX_BH_TYPE == RX_BH_KTHREAD) - up(&g_linux_wlan->rx_sem); - return IRQ_HANDLED; -#elif (RX_BH_TYPE == RX_BH_THREADED_IRQ) return IRQ_WAKE_THREAD; -#endif - } #endif -#if (RX_BH_TYPE == RX_BH_WORK_QUEUE || RX_BH_TYPE == RX_BH_THREADED_IRQ) - -#if (RX_BH_TYPE == RX_BH_THREADED_IRQ) irqreturn_t isr_bh_routine(int irq, void *userdata) { linux_wlan_t *nic; nic = (linux_wlan_t *)userdata; -#else -static void isr_bh_routine(struct work_struct *work) -{ - perInterface_wlan_t *nic; - - nic = (perInterface_wlan_t *)container_of(work, linux_wlan_t, rx_work_queue); -#endif /*While mac is closing cacncel the handling of any interrupts received*/ if (g_linux_wlan->close) { PRINT_ER("Driver is CLOSING: Can't handle BH interrupt\n"); - #if (RX_BH_TYPE == RX_BH_THREADED_IRQ) return IRQ_HANDLED; - #else - return; - #endif } PRINT_D(INT_DBG, "Interrupt received BH\n"); @@ -388,36 +329,8 @@ static void isr_bh_routine(struct work_struct *work) else PRINT_ER("wlan_handle_rx_isr() hasn't been initialized\n"); -#if (RX_BH_TYPE == RX_BH_THREADED_IRQ) return IRQ_HANDLED; -#endif } -#elif (RX_BH_TYPE == RX_BH_KTHREAD) -static int isr_bh_routine(void *vp) -{ - linux_wlan_t *nic; - - nic = (linux_wlan_t *)vp; - - while (1) { - down(&nic->rx_sem); - if (g_linux_wlan->close) { - - while (!kthread_should_stop()) - schedule(); - - break; - } - PRINT_D(INT_DBG, "Interrupt received BH\n"); - if (g_linux_wlan->oup.wlan_handle_rx_isr != NULL) - g_linux_wlan->oup.wlan_handle_rx_isr(); - else - PRINT_ER("wlan_handle_rx_isr() hasn't been initialized\n"); - } - - return 0; -} -#endif #if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) static int init_irq(linux_wlan_t *p_nic) @@ -443,17 +356,10 @@ static int init_irq(linux_wlan_t *p_nic) PRINT_ER("could not obtain gpio for WILC_INTR\n"); } -#if (RX_BH_TYPE == RX_BH_THREADED_IRQ) if ((ret != -1) && (request_threaded_irq(nic->dev_irq_num, isr_uh_routine, isr_bh_routine, IRQF_TRIGGER_LOW | IRQF_ONESHOT, /*Without IRQF_ONESHOT the uh will remain kicked in and dont gave a chance to bh*/ "WILC_IRQ", nic)) < 0) { -#else - /*Request IRQ*/ - if ((ret != -1) && (request_irq(nic->dev_irq_num, isr_uh_routine, - IRQF_TRIGGER_LOW, "WILC_IRQ", nic) < 0)) { - -#endif PRINT_ER("Failed to request IRQ for GPIO: %d\n", GPIO_NUM); ret = -1; } else { @@ -1074,7 +980,6 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) PRINT_D(INIT_DBG, "Disabling IRQ\n"); #if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) - linux_wlan_disable_irq(IRQ_WAIT); #else #if defined(PLAT_ALLWINNER_A20) || defined(PLAT_ALLWINNER_A23) || defined(PLAT_ALLWINNER_A31) @@ -1088,16 +993,6 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) if (&g_linux_wlan->txq_event != NULL) up(&g_linux_wlan->txq_event); - #if (RX_BH_TYPE == RX_BH_WORK_QUEUE) - /*Removing the work struct from the linux kernel workqueue*/ - if (&g_linux_wlan->rx_work_queue != NULL) - flush_work(&g_linux_wlan->rx_work_queue); - - #elif (RX_BH_TYPE == RX_BH_KTHREAD) - /* if(&nic->rx_sem != NULL) */ - /* up(&nic->rx_sem); */ - #endif - PRINT_D(INIT_DBG, "Deinitializing Threads\n"); wlan_deinitialize_threads(nic); @@ -1154,10 +1049,6 @@ int wlan_init_locks(linux_wlan_t *p_nic) sema_init(&g_linux_wlan->txq_thread_started, 0); - #if (RX_BH_TYPE == RX_BH_KTHREAD) - sema_init(&g_linux_wlan->rx_sem, 0); - #endif - return 0; } @@ -1232,19 +1123,6 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) PRINT_D(INIT_DBG, "Initializing Threads ...\n"); -#if (RX_BH_TYPE == RX_BH_WORK_QUEUE) - /*Initialize rx work queue task*/ - INIT_WORK(&g_linux_wlan->rx_work_queue, isr_bh_routine); -#elif (RX_BH_TYPE == RX_BH_KTHREAD) - PRINT_D(INIT_DBG, "Creating kthread for Rxq BH\n"); - g_linux_wlan->rx_bh_thread = kthread_run(isr_bh_routine, (void *)g_linux_wlan, "K_RXQ_BH"); - if (g_linux_wlan->rx_bh_thread == NULL) { - PRINT_ER("couldn't create RX BH thread\n"); - ret = -ENOBUFS; - goto _fail_; - } -#endif - /* create tx task */ PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); g_linux_wlan->txq_thread = kthread_run(linux_wlan_txq_task, (void *)g_linux_wlan, "K_TXQ_TASK"); @@ -1271,13 +1149,6 @@ _fail_2: /*De-Initialize 2nd thread*/ g_linux_wlan->close = 1; - #if (RX_BH_TYPE == RX_BH_KTHREAD) - /*De-Initialize 1st thread*/ - g_linux_wlan->close = 1; - up(&g_linux_wlan->rx_sem); - kthread_stop(g_linux_wlan->rx_bh_thread); -_fail_: - #endif g_linux_wlan->close = 0; return ret; } @@ -1295,16 +1166,6 @@ static void wlan_deinitialize_threads(linux_wlan_t *nic) kthread_stop(g_linux_wlan->txq_thread); g_linux_wlan->txq_thread = NULL; } - - #if (RX_BH_TYPE == RX_BH_KTHREAD) - if (&g_linux_wlan->rx_sem != NULL) - up(&g_linux_wlan->rx_sem); - - if (g_linux_wlan->rx_bh_thread != NULL) { - kthread_stop(g_linux_wlan->rx_bh_thread); - g_linux_wlan->rx_bh_thread = NULL; - } - #endif } #ifdef COMPLEMENT_BOOT diff --git a/drivers/staging/wilc1000/linux_wlan_common.h b/drivers/staging/wilc1000/linux_wlan_common.h index 9478e82c8e65..8ef80c6ffbad 100644 --- a/drivers/staging/wilc1000/linux_wlan_common.h +++ b/drivers/staging/wilc1000/linux_wlan_common.h @@ -167,7 +167,4 @@ extern atomic_t DEBUG_LEVEL; #define MODALIAS "WILC_SPI" #define GPIO_NUM 0x44 #endif - - -void linux_wlan_enable_irq(void); #endif diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index dddf28d7fbda..ca9572814608 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -71,16 +71,7 @@ struct WILC_WFI_stats { * packets in and out, so there is place for a packet */ -#define RX_BH_KTHREAD 0 -#define RX_BH_WORK_QUEUE 1 -#define RX_BH_THREADED_IRQ 2 #define num_reg_frame 2 -/* - * If you use RX_BH_WORK_QUEUE on LPC3131: You may lose the first interrupt on - * LPC3131 which is important to get the MAC start status when you are blocked - * inside linux_wlan_firmware_download() which blocks mac_open(). - */ - #define RX_BH_TYPE RX_BH_KTHREAD struct wilc_wfi_key { u8 *key; @@ -190,12 +181,6 @@ typedef struct { struct semaphore sync_event; struct semaphore txq_event; -#if (RX_BH_TYPE == RX_BH_WORK_QUEUE) - struct work_struct rx_work_queue; -#elif (RX_BH_TYPE == RX_BH_KTHREAD) - struct task_struct *rx_bh_thread; - struct semaphore rx_sem; -#endif struct semaphore txq_thread_started; struct task_struct *txq_thread; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index e12dd01759f5..82b32a92c471 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1418,9 +1418,6 @@ void wilc_handle_isr(void) #endif wilc_unknown_isr_ext(); } -#if ((!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO)) - linux_wlan_enable_irq(); -#endif release_bus(RELEASE_ALLOW_SLEEP); } From d59177cb70bbfff07408de0ceed8dcdd91208b5e Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 17 Sep 2015 17:47:25 +0900 Subject: [PATCH 0495/2431] staging: wilc1000: remove do-nothing ifdef statement This patch removes do-nothing ifdef, else statement and add ifdef WILC_SDIO for disable_sdio_interrupt(). Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d3d785e5b317..6791012858c9 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -979,17 +979,11 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) #endif PRINT_D(INIT_DBG, "Disabling IRQ\n"); - #if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) - #else - #if defined(PLAT_ALLWINNER_A20) || defined(PLAT_ALLWINNER_A23) || defined(PLAT_ALLWINNER_A31) - - #else +#ifdef WILC_SDIO mutex_lock(&g_linux_wlan->hif_cs); disable_sdio_interrupt(); mutex_unlock(&g_linux_wlan->hif_cs); - #endif - #endif - +#endif if (&g_linux_wlan->txq_event != NULL) up(&g_linux_wlan->txq_event); From 0a0796eb16f387b01e0da968883ebce7faf17972 Mon Sep 17 00:00:00 2001 From: Jakub Sitnicki Date: Fri, 18 Sep 2015 08:13:00 +0200 Subject: [PATCH 0496/2431] staging: rtl8188eu: Introduce monitor interface for IEEE 802.11 frames This adds support for monitoring IEEE 802.11 Data and Management frames received or transmitted by a RTL8188EU-based device handled by this driver. The monitor interface is not enabled by default and will be registered only if monitor_enable module parameter is set to 1. When enabled it will show up as a monX network device, which can be used by the userspace programs for monitoring network traffic. It is intended as an exploratory/debugging tool for rtl8188eu driver. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/Makefile | 1 + drivers/staging/rtl8188eu/core/rtw_recv.c | 14 ++ drivers/staging/rtl8188eu/core/rtw_xmit.c | 4 + .../staging/rtl8188eu/hal/rtl8188eu_xmit.c | 4 + drivers/staging/rtl8188eu/include/drv_types.h | 2 + drivers/staging/rtl8188eu/include/mon.h | 36 ++++ drivers/staging/rtl8188eu/os_dep/mon.c | 194 ++++++++++++++++++ drivers/staging/rtl8188eu/os_dep/os_intfs.c | 5 + drivers/staging/rtl8188eu/os_dep/usb_intf.c | 10 + 9 files changed, 270 insertions(+) create mode 100644 drivers/staging/rtl8188eu/include/mon.h create mode 100644 drivers/staging/rtl8188eu/os_dep/mon.c diff --git a/drivers/staging/rtl8188eu/Makefile b/drivers/staging/rtl8188eu/Makefile index 31ac15961a00..ed723585b502 100644 --- a/drivers/staging/rtl8188eu/Makefile +++ b/drivers/staging/rtl8188eu/Makefile @@ -42,6 +42,7 @@ r8188eu-y := \ hal/usb_halinit.o \ os_dep/ioctl_linux.o \ os_dep/mlme_linux.o \ + os_dep/mon.o \ os_dep/os_intfs.o \ os_dep/osdep_service.o \ os_dep/recv_linux.o \ diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c b/drivers/staging/rtl8188eu/core/rtw_recv.c index 44eeb03213e6..cb90ad5f6143 100644 --- a/drivers/staging/rtl8188eu/core/rtw_recv.c +++ b/drivers/staging/rtl8188eu/core/rtw_recv.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -1329,6 +1330,19 @@ static int validate_recv_frame(struct adapter *adapter, break; } + /* + * This is the last moment before management and control frames get + * discarded. So we need to forward them to the monitor now or never. + * + * At the same time data frames can still be encrypted if software + * decryption is in use. However, decryption can occur not until later + * (see recv_func()). + * + * Hence forward the frame to the monitor anyway to preserve the order + * in which frames were received. + */ + rtl88eu_mon_recv_hook(adapter->pmondev, precv_frame); + exit: return retval; diff --git a/drivers/staging/rtl8188eu/core/rtw_xmit.c b/drivers/staging/rtl8188eu/core/rtw_xmit.c index 5dc0b90e8ab5..cabb810369bd 100644 --- a/drivers/staging/rtl8188eu/core/rtw_xmit.c +++ b/drivers/staging/rtl8188eu/core/rtw_xmit.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -1100,6 +1101,9 @@ s32 rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct memcpy(mem_start, pbuf_start + hw_hdr_offset, pattrib->hdrlen); } + /* Frame is about to be encrypted. Forward it to the monitor first. */ + rtl88eu_mon_xmit_hook(padapter->pmondev, pxmitframe, frg_len); + if (xmitframe_addmic(padapter, pxmitframe) == _FAIL) { RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("xmitframe_addmic(padapter, pxmitframe) == _FAIL\n")); DBG_88E("xmitframe_addmic(padapter, pxmitframe) == _FAIL\n"); diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c index 44335605f2f6..7c5086ecff17 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c @@ -20,6 +20,7 @@ #define _RTL8188E_XMIT_C_ #include #include +#include #include #include #include @@ -684,6 +685,9 @@ enqueue: s32 rtl8188eu_mgnt_xmit(struct adapter *adapt, struct xmit_frame *pmgntframe) { + struct xmit_priv *xmitpriv = &adapt->xmitpriv; + + rtl88eu_mon_xmit_hook(adapt->pmondev, pmgntframe, xmitpriv->frag_len); return rtw_dump_xframe(adapt, pmgntframe); } diff --git a/drivers/staging/rtl8188eu/include/drv_types.h b/drivers/staging/rtl8188eu/include/drv_types.h index bcc74dcd8207..0729bd40b02a 100644 --- a/drivers/staging/rtl8188eu/include/drv_types.h +++ b/drivers/staging/rtl8188eu/include/drv_types.h @@ -131,6 +131,7 @@ struct registry_priv { u8 if2name[16]; u8 notch_filter; + bool monitor_enable; }; /* For registry parameters */ @@ -209,6 +210,7 @@ struct adapter { void (*intf_start)(struct adapter *adapter); void (*intf_stop)(struct adapter *adapter); struct net_device *pnetdev; + struct net_device *pmondev; /* used by rtw_rereg_nd_name related function */ struct rereg_nd_name_data { diff --git a/drivers/staging/rtl8188eu/include/mon.h b/drivers/staging/rtl8188eu/include/mon.h new file mode 100644 index 000000000000..f31fa688e092 --- /dev/null +++ b/drivers/staging/rtl8188eu/include/mon.h @@ -0,0 +1,36 @@ +/* + * RTL8188EU monitor interface + * + * Copyright (C) 2015 Jakub Sitnicki + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + */ + +/* + * Monitor interface receives all transmitted and received IEEE 802.11 + * frames, both Data and Management, and passes them up to userspace + * preserving the WLAN headers. + */ + +#ifndef _MON_H_ +#define _MON_H_ + +struct net_device; +struct recv_frame; +struct xmit_frame; + +struct net_device *rtl88eu_mon_init(void); +void rtl88eu_mon_deinit(struct net_device *dev); + +void rtl88eu_mon_recv_hook(struct net_device *dev, struct recv_frame *frame); +void rtl88eu_mon_xmit_hook(struct net_device *dev, struct xmit_frame *frame, + uint frag_len); + +#endif /* _MON_H_ */ diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c b/drivers/staging/rtl8188eu/os_dep/mon.c new file mode 100644 index 000000000000..3dd3dc05fd53 --- /dev/null +++ b/drivers/staging/rtl8188eu/os_dep/mon.c @@ -0,0 +1,194 @@ +/* + * RTL8188EU monitor interface + * + * Copyright (C) 2015 Jakub Sitnicki + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + */ + +#include +#include +#include + +#include +#include +#include + +/** + * unprotect_frame() - unset Protected flag and strip off IV and ICV/MIC + */ +static void unprotect_frame(struct sk_buff *skb, int iv_len, int icv_len) +{ + struct ieee80211_hdr *hdr; + int hdr_len; + + hdr = (struct ieee80211_hdr *)skb->data; + hdr_len = ieee80211_hdrlen(hdr->frame_control); + + if (skb->len < hdr_len + iv_len + icv_len) + return; + if (!ieee80211_has_protected(hdr->frame_control)) + return; + + hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_PROTECTED); + + memmove(skb->data + iv_len, skb->data, hdr_len); + skb_pull(skb, iv_len); + skb_trim(skb, skb->len - icv_len); +} + +static void mon_recv_decrypted(struct net_device *dev, const u8 *data, + int data_len, int iv_len, int icv_len) +{ + struct sk_buff *skb; + + skb = netdev_alloc_skb(dev, data_len); + if (!skb) + return; + memcpy(skb_put(skb, data_len), data, data_len); + + /* + * Frame data is not encrypted. Strip off protection so + * userspace doesn't think that it is. + */ + unprotect_frame(skb, iv_len, icv_len); + + skb->ip_summed = CHECKSUM_UNNECESSARY; + skb->protocol = eth_type_trans(skb, dev); + netif_rx(skb); +} + +static void mon_recv_encrypted(struct net_device *dev, const u8 *data, + int data_len) +{ + if (net_ratelimit()) + netdev_info(dev, "Encrypted packets are not supported"); +} + +/** + * rtl88eu_mon_recv_hook() - forward received frame to the monitor interface + * + * Assumes that the frame contains an IV and an ICV/MIC, and that + * encrypt field in frame->attrib have been set accordingly. + */ +void rtl88eu_mon_recv_hook(struct net_device *dev, struct recv_frame *frame) +{ + struct rx_pkt_attrib *attr; + int iv_len, icv_len; + int data_len; + u8 *data; + + if (!dev || !frame) + return; + if (!netif_running(dev)) + return; + + attr = &frame->attrib; + data = frame->rx_data; + data_len = frame->len; + + /* Broadcast and multicast frames don't have attr->{iv,icv}_len set */ + SET_ICE_IV_LEN(iv_len, icv_len, attr->encrypt); + + if (attr->bdecrypted) + mon_recv_decrypted(dev, data, data_len, iv_len, icv_len); + else + mon_recv_encrypted(dev, data, data_len); +} + +/** + * rtl88eu_mon_xmit_hook() - forward trasmitted frame to the monitor interface + * + * Assumes that: + * - frame header contains an IV and frame->attrib.iv_len is set accordingly, + * - data is not encrypted and ICV/MIC has not been appended yet. + */ +void rtl88eu_mon_xmit_hook(struct net_device *dev, struct xmit_frame *frame, + uint frag_len) +{ + struct pkt_attrib *attr; + u8 *data; + int i, offset; + + if (!dev || !frame) + return; + if (!netif_running(dev)) + return; + + attr = &frame->attrib; + + offset = TXDESC_SIZE + frame->pkt_offset * PACKET_OFFSET_SZ; + data = frame->buf_addr + offset; + + for (i = 0; i < attr->nr_frags - 1; i++) { + mon_recv_decrypted(dev, data, frag_len, attr->iv_len, 0); + data += frag_len; + data = (u8 *)round_up((size_t)data, 4); + } + /* Last fragment has different length */ + mon_recv_decrypted(dev, data, attr->last_txcmdsz, attr->iv_len, 0); +} + +static netdev_tx_t mon_xmit(struct sk_buff *skb, struct net_device *dev) +{ + dev_kfree_skb(skb); + return NETDEV_TX_OK; +} + +static const struct net_device_ops mon_netdev_ops = { + .ndo_start_xmit = mon_xmit, + .ndo_change_mtu = eth_change_mtu, + .ndo_set_mac_address = eth_mac_addr, + .ndo_validate_addr = eth_validate_addr, +}; + +static void mon_setup(struct net_device *dev) +{ + dev->netdev_ops = &mon_netdev_ops; + dev->destructor = free_netdev; + ether_setup(dev); + dev->tx_queue_len = 0; + dev->type = ARPHRD_IEEE80211; + /* + * Use a locally administered address (IEEE 802) + * XXX: Copied from mac80211_hwsim driver. Revisit. + */ + eth_zero_addr(dev->dev_addr); + dev->dev_addr[0] = 0x12; +} + +struct net_device *rtl88eu_mon_init(void) +{ + struct net_device *dev; + int err; + + dev = alloc_netdev(0, "mon%d", NET_NAME_UNKNOWN, mon_setup); + if (!dev) + goto fail; + + err = register_netdev(dev); + if (err < 0) + goto fail_free_dev; + + return dev; + +fail_free_dev: + free_netdev(dev); +fail: + return NULL; +} + +void rtl88eu_mon_deinit(struct net_device *dev) +{ + if (!dev) + return; + + unregister_netdev(dev); +} diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c b/drivers/staging/rtl8188eu/os_dep/os_intfs.c index 2361bce480c3..d85647c07c6c 100644 --- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c +++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c @@ -185,6 +185,10 @@ MODULE_PARM_DESC(rtw_notch_filter, "0:Disable, 1:Enable, 2:Enable only for P2P") module_param_named(debug, rtw_debug, int, 0444); MODULE_PARM_DESC(debug, "Set debug level (1-9) (default 1)"); +static bool rtw_monitor_enable; +module_param_named(monitor_enable, rtw_monitor_enable, bool, 0444); +MODULE_PARM_DESC(monitor_enable, "Enable monitor inferface (default: false)"); + static int netdev_open(struct net_device *pnetdev); static int netdev_close(struct net_device *pnetdev); @@ -604,6 +608,7 @@ static void loadparam(struct adapter *padapter, struct net_device *pnetdev) snprintf(registry_par->ifname, 16, "%s", ifname); snprintf(registry_par->if2name, 16, "%s", if2name); registry_par->notch_filter = (u8)rtw_notch_filter; + registry_par->monitor_enable = rtw_monitor_enable; } static int rtw_net_set_mac_address(struct net_device *pnetdev, void *p) diff --git a/drivers/staging/rtl8188eu/os_dep/usb_intf.c b/drivers/staging/rtl8188eu/os_dep/usb_intf.c index 33bfe054f867..82a7c27c517f 100644 --- a/drivers/staging/rtl8188eu/os_dep/usb_intf.c +++ b/drivers/staging/rtl8188eu/os_dep/usb_intf.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -348,6 +349,7 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, { struct adapter *padapter = NULL; struct net_device *pnetdev = NULL; + struct net_device *pmondev; int status = _FAIL; padapter = (struct adapter *)vzalloc(sizeof(*padapter)); @@ -366,6 +368,13 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, SET_NETDEV_DEV(pnetdev, dvobj_to_dev(dvobj)); padapter = rtw_netdev_priv(pnetdev); + if (padapter->registrypriv.monitor_enable) { + pmondev = rtl88eu_mon_init(); + if (pmondev == NULL) + netdev_warn(pnetdev, "Failed to initialize monitor interface"); + padapter->pmondev = pmondev; + } + /* step 2. hook HalFunc, allocate HalData */ hal_set_hal_ops(padapter); @@ -458,6 +467,7 @@ static void rtw_usb_if1_deinit(struct adapter *if1) unregister_netdev(pnetdev); rtw_proc_remove_one(pnetdev); } + rtl88eu_mon_deinit(if1->pmondev); rtw_cancel_all_timer(if1); rtw_dev_unload(if1); From 78affe6522738ccda21c3f4e83bcaf08aab18d6e Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 17 Sep 2015 22:14:32 +0530 Subject: [PATCH 0497/2431] staging: slicoss: return status of slic_link_event_handler slic_link_event_handler() issues command READ_LINK_STATUS to be executed asynchronously, which is followed by UP configuration write command. But it can fail while setting up the command and in that case the link will not be up. Lets check the status and return it. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/slicoss/slicoss.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index 858597087ba7..b1a8b4b9e1a3 100644 --- a/drivers/staging/slicoss/slicoss.c +++ b/drivers/staging/slicoss/slicoss.c @@ -1717,14 +1717,14 @@ static u32 slic_rcvqueue_reinsert(struct adapter *adapter, struct sk_buff *skb) * will also complete asynchronously. * */ -static void slic_link_event_handler(struct adapter *adapter) +static int slic_link_event_handler(struct adapter *adapter) { int status; struct slic_shmem *pshmem; if (adapter->state != ADAPT_UP) { /* Adapter is not operational. Ignore. */ - return; + return -ENODEV; } pshmem = (struct slic_shmem *)(unsigned long)adapter->phys_shmem; @@ -1740,6 +1740,7 @@ static void slic_link_event_handler(struct adapter *adapter) (u32) &pshmem->linkstatus, /* no 4GB wrap guaranteed */ 0, 0, 0); #endif + return status; } static void slic_init_cleanup(struct adapter *adapter) From de4772aef38a4cba6e163913e92b2c874274b863 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 17 Sep 2015 22:14:33 +0530 Subject: [PATCH 0498/2431] staging: slicoss: use status in slic_if_init While initializing the interface if we are not able to setup the command to UP the link then we release everything and return the error code. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/slicoss/slicoss.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index b1a8b4b9e1a3..fb663c885544 100644 --- a/drivers/staging/slicoss/slicoss.c +++ b/drivers/staging/slicoss/slicoss.c @@ -2379,7 +2379,22 @@ static int slic_if_init(struct adapter *adapter, unsigned long *flags) slic_reg32_write(&slic_regs->slic_icr, ICR_INT_ON, FLUSH); slic_link_config(adapter, LINK_AUTOSPEED, LINK_AUTOD); - slic_link_event_handler(adapter); + rc = slic_link_event_handler(adapter); + if (rc) { + /* disable interrupts then clear pending events */ + slic_reg32_write(&slic_regs->slic_icr, ICR_INT_OFF, FLUSH); + slic_reg32_write(&slic_regs->slic_isr, 0, FLUSH); + if (adapter->pingtimerset) { + del_timer(&adapter->pingtimer); + adapter->pingtimerset = 0; + } + if (card->loadtimerset) { + del_timer(&card->loadtimer); + card->loadtimerset = 0; + } + adapter->state = ADAPT_DOWN; + slic_adapter_freeresources(adapter); + } err: return rc; From 4b8645d64375a82971cebb312a6f665dc586686f Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 17 Sep 2015 22:14:34 +0530 Subject: [PATCH 0499/2431] staging: slicoss: use status in slic_ioctl In the ioctl function if we are not able to UP the link after setting the new parameters then return an error code to the userspace. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/slicoss/slicoss.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index fb663c885544..6ff0b838db79 100644 --- a/drivers/staging/slicoss/slicoss.c +++ b/drivers/staging/slicoss/slicoss.c @@ -2624,7 +2624,8 @@ static int slic_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) else duplex = 0; slic_link_config(adapter, speed, duplex); - slic_link_event_handler(adapter); + if (slic_link_event_handler(adapter)) + return -EFAULT; } } return 0; From cbdc251d1153087f98b4e84f7d7d54357752b9d7 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 17 Sep 2015 22:14:35 +0530 Subject: [PATCH 0500/2431] staging: slicoss: use status in isr If we are not able to setup the LINK UP command then don't increment the interrupt count. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/slicoss/slicoss.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index 6ff0b838db79..2025b615a6c1 100644 --- a/drivers/staging/slicoss/slicoss.c +++ b/drivers/staging/slicoss/slicoss.c @@ -2110,7 +2110,8 @@ static void slic_interrupt_card_up(u32 isr, struct adapter *adapter, if (isr & ISR_LEVENT) { adapter->linkevent_interrupts++; - slic_link_event_handler(adapter); + if (slic_link_event_handler(adapter)) + adapter->linkevent_interrupts--; } if ((isr & ISR_UPC) || (isr & ISR_UPCERR) || From 63107ce85edc9296b518fa29f6fe80cc29cb9c68 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 18 Sep 2015 15:46:23 +0100 Subject: [PATCH 0501/2431] staging: comedi: comedi_fops.c: remove bogus kernel-doc for runflags The comment before the `COMEDI_SRF_...` macros starts with a kernel-doc mark but isn't valid kernel-doc. There isn't a kernel-doc template for a group of macro constants. These macros are all private anyway, so don't really need to be in kernel-doc. Just change it to a normal comment. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 0e8a45102933..47d16488cb26 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -43,15 +43,15 @@ #include "comedi_internal.h" -/** +/* * comedi_subdevice "runflags" - * @COMEDI_SRF_RT: DEPRECATED: command is running real-time - * @COMEDI_SRF_ERROR: indicates an COMEDI_CB_ERROR event has occurred + * COMEDI_SRF_RT: DEPRECATED: command is running real-time + * COMEDI_SRF_ERROR: indicates an COMEDI_CB_ERROR event has occurred * since the last command was started - * @COMEDI_SRF_RUNNING: command is running - * @COMEDI_SRF_FREE_SPRIV: free s->private on detach + * COMEDI_SRF_RUNNING: command is running + * COMEDI_SRF_FREE_SPRIV: free s->private on detach * - * @COMEDI_SRF_BUSY_MASK: runflags that indicate the subdevice is "busy" + * COMEDI_SRF_BUSY_MASK: runflags that indicate the subdevice is "busy" */ #define COMEDI_SRF_RT BIT(1) #define COMEDI_SRF_ERROR BIT(2) From 67dd5eb952032b07cf2cc6e04047c990714cb270 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Fri, 18 Sep 2015 18:11:03 +0900 Subject: [PATCH 0502/2431] staging: wilc1000: rename tstrHostIFmsg This patch changes the name, tstrHostIFmsg to host_if_msg not to use camelcase notation in the Linux. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 294 +++++++++++----------- 1 file changed, 147 insertions(+), 147 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 703712e86b7e..6d119c4b06da 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -449,7 +449,7 @@ typedef union _tuniHostIFmsgBody { } tuniHostIFmsgBody; /*! - * @struct tstrHostIFmsg + * @struct host_if_msg * @brief Host Interface message * @details * @todo @@ -458,11 +458,11 @@ typedef union _tuniHostIFmsgBody { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrHostIFmsg { +typedef struct _host_if_msg { u16 u16MsgId; /*!< Message ID */ tuniHostIFmsgBody uniHostIFmsgBody; /*!< Message body */ tstrWILC_WFIDrv *drvHandler; -} tstrHostIFmsg; +} host_if_msg; #ifdef CONNECT_DIRECT typedef struct _tstrWidJoinReqExt { @@ -3966,19 +3966,19 @@ _done_: static void ListenTimerCB(unsigned long arg) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)arg; /*Stopping remain-on-channel timer*/ del_timer(&pstrWFIDrv->hRemainOnChannel); /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; strHostIFmsg.drvHandler = pstrWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); } @@ -4293,13 +4293,13 @@ static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASe static int hostIFthread(void *pvArg) { u32 u32Ret; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv; - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); while (1) { - wilc_mq_recv(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg), &u32Ret); + wilc_mq_recv(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg), &u32Ret); pstrWFIDrv = (tstrWILC_WFIDrv *)strHostIFmsg.drvHandler; if (strHostIFmsg.u16MsgId == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); @@ -4311,13 +4311,13 @@ static int hostIFthread(void *pvArg) if ((!g_wilc_initialized)) { PRINT_D(GENERIC_DBG, "--WAIT--"); usleep_range(200 * 1000, 200 * 1000); - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); continue; } if (strHostIFmsg.u16MsgId == HOST_IF_MSG_CONNECT && pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_D(HOSTINF_DBG, "Requeue connect request till scan done received\n"); - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); usleep_range(2 * 1000, 2 * 1000); continue; } @@ -4506,29 +4506,29 @@ static int hostIFthread(void *pvArg) static void TimerCB_Scan(unsigned long arg) { void *pvArg = (void *)arg; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.drvHandler = pvArg; strHostIFmsg.u16MsgId = HOST_IF_MSG_SCAN_TIMER_FIRED; /* send the message */ - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); } static void TimerCB_Connect(unsigned long arg) { void *pvArg = (void *)arg; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.drvHandler = pvArg; strHostIFmsg.u16MsgId = HOST_IF_MSG_CONNECT_TIMER_FIRED; /* send the message */ - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); } @@ -4578,7 +4578,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { @@ -4588,7 +4588,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) } /* prepare the Remove Wep Key Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; @@ -4602,7 +4602,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8keyIdx; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4626,7 +4626,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { @@ -4636,7 +4636,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; @@ -4649,7 +4649,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Index; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Default key index\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4681,7 +4681,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { s32Error = -EFAULT; @@ -4690,7 +4690,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; @@ -4713,7 +4713,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4743,7 +4743,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; u8 i; if (pstrWFIDrv == NULL) { @@ -4753,7 +4753,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); if (INFO) { for (i = 0; i < u8WepKeylen; i++) @@ -4785,7 +4785,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type = tenuAuth_type; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); @@ -4816,7 +4816,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; u8 u8KeyLen = u8PtkKeylen; u32 i; @@ -4831,7 +4831,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, u8KeyLen += TX_MIC_KEY_LEN; /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; @@ -4881,7 +4881,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: PTK Key\n"); @@ -4912,7 +4912,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; u8 u8KeyLen = u8GtkKeylen; if (pstrWFIDrv == NULL) { @@ -4921,7 +4921,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe return s32Error; } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); if (pu8RxMic != NULL) @@ -4979,7 +4979,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: RX GTK\n"); /* ////////////// */ @@ -5013,7 +5013,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; u32 i; @@ -5024,7 +5024,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = PMKSA; @@ -5041,7 +5041,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm } /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER(" Error in sending messagequeue: PMKID Info\n"); @@ -5128,17 +5128,17 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPh s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* prepare the Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_MAC_ADDRESS; strHostIFmsg.uniHostIFmsgBody.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get mac address\n"); return -EFAULT; @@ -5162,17 +5162,17 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; PRINT_D(GENERIC_DBG, "mac addr = %x:%x:%x\n", pu8MacAddress[0], pu8MacAddress[1], pu8MacAddress[2]); /* prepare setting mac address message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_MAC_ADDRESS; memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: Set mac address\n"); @@ -5352,7 +5352,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tenuScanConnTimer enuScanConnTimer; if (pstrWFIDrv == NULL || pfConnectResult == NULL) { @@ -5372,7 +5372,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, } /* prepare the Connect Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_CONNECT; @@ -5410,7 +5410,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", pstrWFIDrv->enuHostIFstate); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Set join request\n"); return -EFAULT; @@ -5439,7 +5439,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (!gu8FlushedJoinReq) { s32Error = -EFAULT; @@ -5457,7 +5457,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Flush join request\n"); return -EFAULT; @@ -5480,7 +5480,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; if (pstrWFIDrv == NULL) { @@ -5489,13 +5489,13 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) } /* prepare the Disconnect Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_DISCONNECT; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: disconnect\n"); /* ////////////// */ @@ -5665,7 +5665,7 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -5673,12 +5673,12 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) } /* prepare the set channel message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_CHANNEL; strHostIFmsg.uniHostIFmsgBody.strHostIFSetChan.u8SetChan = u8ChNum; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5692,13 +5692,13 @@ s32 host_int_wait_msg_queue_idle(void) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_Q_IDLE; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5715,17 +5715,17 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_WFIDRV_HANDLER; strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); strHostIFmsg.drvHandler = u32address; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5740,17 +5740,17 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_OPERATION_MODE; strHostIFmsg.uniHostIFmsgBody.strHostIfSetOperationMode.u32Mode = u32mode; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5778,7 +5778,7 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -5786,13 +5786,13 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) } /* prepare the Get Channel Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_CHNL; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); down(&(pstrWFIDrv->hSemGetCHNL)); @@ -5863,14 +5863,14 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIfStaInactiveT.mac, @@ -5880,7 +5880,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Failed to send get host channel param's message queue "); @@ -5950,18 +5950,18 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_RSSI; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; @@ -5984,7 +5984,7 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) { - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -5992,13 +5992,13 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) /* prepare the Get LINKSPEED Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_LINKSPEED; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("Failed to send GET_LINKSPEED to message queue "); return -EFAULT; @@ -6022,17 +6022,17 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_STATISTICS; strHostIFmsg.uniHostIFmsgBody.pUserData = (char *)pstrStatistics; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; @@ -6067,7 +6067,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tenuScanConnTimer enuScanConnTimer; if (pstrWFIDrv == NULL || ScanResult == NULL) { @@ -6076,7 +6076,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, } /* prepare the Scan Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SCAN; @@ -6104,7 +6104,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, pu8IEs, IEsLen); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("Error in sending message queue\n"); return -EINVAL; @@ -6136,7 +6136,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { @@ -6144,12 +6144,12 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) return -EFAULT; } /* prepare the WiphyParams Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_CFG_PARAMS; strHostIFmsg.uniHostIFmsgBody.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); return s32Error; @@ -6312,16 +6312,16 @@ static void GetPeriodicRSSI(unsigned long arg) if (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_RSSI; strHostIFmsg.drvHandler = pstrWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return; @@ -6507,7 +6507,7 @@ _fail_: s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; int ret; /*obtain driver handle*/ @@ -6568,7 +6568,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) gbScanWhileConnected = false; - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); if (clients_count == 1) { if (del_timer_sync(&g_hPeriodicRSSI)) { @@ -6579,7 +6579,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error != 0) PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", s32Error); @@ -6625,7 +6625,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6641,7 +6641,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) } /* prepare the Asynchronous Network Info message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_NTWRK_INFO; strHostIFmsg.drvHandler = pstrWFIDrv; @@ -6652,7 +6652,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) pu8Buffer, u32Length); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending network info message queue message parameters: Error(%d)\n", s32Error); } @@ -6671,7 +6671,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6696,7 +6696,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) } /* prepare the General Asynchronous Info message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; @@ -6709,7 +6709,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) pu8Buffer, u32Length); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); @@ -6728,7 +6728,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6744,7 +6744,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) /*if there is an ongoing scan request*/ if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { /* prepare theScan Done message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_SCAN_COMPLETE; strHostIFmsg.drvHandler = pstrWFIDrv; @@ -6759,7 +6759,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) * pu8Buffer, u32Length); */ /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue scan complete parameters: Error(%d)\n", s32Error); } @@ -6787,7 +6787,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -6795,7 +6795,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u } /* prepare the remainonchan Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_REMAIN_ON_CHAN; @@ -6807,7 +6807,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6832,7 +6832,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -6843,12 +6843,12 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) del_timer(&pstrWFIDrv->hRemainOnChannel); /* prepare the timer fire Message */ - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6867,14 +6867,14 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_REGISTER_FRAME; @@ -6897,7 +6897,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe strHostIFmsg.uniHostIFmsgBody.strHostIfRegisterFrame.bReg = bReg; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6924,7 +6924,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrHostIFSetBeacon *pstrSetBeaconParam = &strHostIFmsg.uniHostIFmsgBody.strHostIFSetBeacon; if (pstrWFIDrv == NULL) { @@ -6932,7 +6932,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting adding beacon message queue params\n"); @@ -6963,7 +6963,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, pstrSetBeaconParam->pu8Tail = NULL; } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6994,7 +6994,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7006,7 +7006,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7027,7 +7027,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; @@ -7036,7 +7036,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting adding station message queue params\n"); @@ -7057,7 +7057,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7076,7 +7076,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrHostIFDelSta *pstrDelStationMsg = &strHostIFmsg.uniHostIFmsgBody.strDelStaParam; if (pstrWFIDrv == NULL) { @@ -7084,7 +7084,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting deleting station message queue params\n"); @@ -7099,7 +7099,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) else memcpy(pstrDelStationMsg->au8MacAddr, pu8MacAddr, ETH_ALEN); - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7117,7 +7117,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrHostIFDelAllSta *pstrDelAllStationMsg = &strHostIFmsg.uniHostIFmsgBody.strHostIFDelAllSta; u8 au8Zero_Buff[ETH_ALEN] = {0}; u32 i; @@ -7129,7 +7129,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting deauthenticating station message queue params\n"); @@ -7152,7 +7152,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) } pstrDelAllStationMsg->u8Num_AssocSta = u8AssocNumb; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) @@ -7177,7 +7177,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; if (pstrWFIDrv == NULL) { @@ -7187,7 +7187,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt PRINT_D(HOSTINF_DBG, "Setting editing station message queue params\n"); - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ @@ -7205,7 +7205,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt pstrAddStationMsg->pu8Rates = rates; } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7216,7 +7216,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrHostIfPowerMgmtParam *pstrPowerMgmtParam = &strHostIFmsg.uniHostIFmsgBody.strPowerMgmtparam; PRINT_INFO(HOSTINF_DBG, "\n\n>> Setting PS to %d <<\n\n", bIsEnabled); @@ -7228,7 +7228,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti PRINT_D(HOSTINF_DBG, "Setting Power management message queue params\n"); - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ @@ -7239,7 +7239,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti pstrPowerMgmtParam->u32Timeout = u32Timeout; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7250,7 +7250,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrHostIFSetMulti *pstrMulticastFilterParam = &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMulti; @@ -7261,7 +7261,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u PRINT_D(HOSTINF_DBG, "Setting Multicast Filter params\n"); - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ @@ -7271,7 +7271,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u pstrMulticastFilterParam->bIsEnabled = bIsEnabled; pstrMulticastFilterParam->u32count = u32count; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7517,7 +7517,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { @@ -7525,7 +7525,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_ADD_BA_SESSION; @@ -7536,7 +7536,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI pBASessionInfo->u16SessionTimeout = SessionTimeout; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7548,7 +7548,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { @@ -7556,7 +7556,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_BA_SESSION; @@ -7565,7 +7565,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) pBASessionInfo->u8Ted = TID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7578,7 +7578,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { @@ -7586,7 +7586,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS; @@ -7595,7 +7595,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T pBASessionInfo->u8Ted = TID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7616,7 +7616,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; /* TODO: Enable This feature on softap firmware */ return 0; @@ -7626,7 +7626,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_IPADDRESS; @@ -7635,7 +7635,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7656,14 +7656,14 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - tstrHostIFmsg strHostIFmsg; + host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg)); + memset(&strHostIFmsg, 0, sizeof(host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_IPADDRESS; @@ -7672,7 +7672,7 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); From 3a8c41b50aa2782f3ba926944a2374b957705f33 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Fri, 18 Sep 2015 18:11:04 +0900 Subject: [PATCH 0503/2431] staging: wilc1000: remove typedef from the struct The Linux kernel coding style does not recommend to use typedef for the structure. This patch removes typedef from the host_if_msg structure. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 294 +++++++++++----------- 1 file changed, 147 insertions(+), 147 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6d119c4b06da..fdb0b9b4094b 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -449,7 +449,7 @@ typedef union _tuniHostIFmsgBody { } tuniHostIFmsgBody; /*! - * @struct host_if_msg + * @struct struct host_if_msg * @brief Host Interface message * @details * @todo @@ -458,11 +458,11 @@ typedef union _tuniHostIFmsgBody { * @date 25 March 2012 * @version 1.0 */ -typedef struct _host_if_msg { +struct host_if_msg { u16 u16MsgId; /*!< Message ID */ tuniHostIFmsgBody uniHostIFmsgBody; /*!< Message body */ tstrWILC_WFIDrv *drvHandler; -} host_if_msg; +}; #ifdef CONNECT_DIRECT typedef struct _tstrWidJoinReqExt { @@ -3966,19 +3966,19 @@ _done_: static void ListenTimerCB(unsigned long arg) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)arg; /*Stopping remain-on-channel timer*/ del_timer(&pstrWFIDrv->hRemainOnChannel); /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; strHostIFmsg.drvHandler = pstrWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); } @@ -4293,13 +4293,13 @@ static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASe static int hostIFthread(void *pvArg) { u32 u32Ret; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv; - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); while (1) { - wilc_mq_recv(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg), &u32Ret); + wilc_mq_recv(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg), &u32Ret); pstrWFIDrv = (tstrWILC_WFIDrv *)strHostIFmsg.drvHandler; if (strHostIFmsg.u16MsgId == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); @@ -4311,13 +4311,13 @@ static int hostIFthread(void *pvArg) if ((!g_wilc_initialized)) { PRINT_D(GENERIC_DBG, "--WAIT--"); usleep_range(200 * 1000, 200 * 1000); - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); continue; } if (strHostIFmsg.u16MsgId == HOST_IF_MSG_CONNECT && pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_D(HOSTINF_DBG, "Requeue connect request till scan done received\n"); - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); usleep_range(2 * 1000, 2 * 1000); continue; } @@ -4506,29 +4506,29 @@ static int hostIFthread(void *pvArg) static void TimerCB_Scan(unsigned long arg) { void *pvArg = (void *)arg; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.drvHandler = pvArg; strHostIFmsg.u16MsgId = HOST_IF_MSG_SCAN_TIMER_FIRED; /* send the message */ - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); } static void TimerCB_Connect(unsigned long arg) { void *pvArg = (void *)arg; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.drvHandler = pvArg; strHostIFmsg.u16MsgId = HOST_IF_MSG_CONNECT_TIMER_FIRED; /* send the message */ - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); } @@ -4578,7 +4578,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { @@ -4588,7 +4588,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) } /* prepare the Remove Wep Key Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; @@ -4602,7 +4602,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8keyIdx; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4626,7 +4626,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { @@ -4636,7 +4636,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; @@ -4649,7 +4649,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Index; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Default key index\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4681,7 +4681,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { s32Error = -EFAULT; @@ -4690,7 +4690,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; @@ -4713,7 +4713,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4743,7 +4743,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; u8 i; if (pstrWFIDrv == NULL) { @@ -4753,7 +4753,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); if (INFO) { for (i = 0; i < u8WepKeylen; i++) @@ -4785,7 +4785,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type = tenuAuth_type; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); @@ -4816,7 +4816,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; u8 u8KeyLen = u8PtkKeylen; u32 i; @@ -4831,7 +4831,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, u8KeyLen += TX_MIC_KEY_LEN; /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; @@ -4881,7 +4881,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: PTK Key\n"); @@ -4912,7 +4912,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; u8 u8KeyLen = u8GtkKeylen; if (pstrWFIDrv == NULL) { @@ -4921,7 +4921,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe return s32Error; } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); if (pu8RxMic != NULL) @@ -4979,7 +4979,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: RX GTK\n"); /* ////////////// */ @@ -5013,7 +5013,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; u32 i; @@ -5024,7 +5024,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = PMKSA; @@ -5041,7 +5041,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm } /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER(" Error in sending messagequeue: PMKID Info\n"); @@ -5128,17 +5128,17 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPh s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* prepare the Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_MAC_ADDRESS; strHostIFmsg.uniHostIFmsgBody.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get mac address\n"); return -EFAULT; @@ -5162,17 +5162,17 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; PRINT_D(GENERIC_DBG, "mac addr = %x:%x:%x\n", pu8MacAddress[0], pu8MacAddress[1], pu8MacAddress[2]); /* prepare setting mac address message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_MAC_ADDRESS; memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: Set mac address\n"); @@ -5352,7 +5352,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tenuScanConnTimer enuScanConnTimer; if (pstrWFIDrv == NULL || pfConnectResult == NULL) { @@ -5372,7 +5372,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, } /* prepare the Connect Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_CONNECT; @@ -5410,7 +5410,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", pstrWFIDrv->enuHostIFstate); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Set join request\n"); return -EFAULT; @@ -5439,7 +5439,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (!gu8FlushedJoinReq) { s32Error = -EFAULT; @@ -5457,7 +5457,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Flush join request\n"); return -EFAULT; @@ -5480,7 +5480,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; if (pstrWFIDrv == NULL) { @@ -5489,13 +5489,13 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) } /* prepare the Disconnect Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_DISCONNECT; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: disconnect\n"); /* ////////////// */ @@ -5665,7 +5665,7 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -5673,12 +5673,12 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) } /* prepare the set channel message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_CHANNEL; strHostIFmsg.uniHostIFmsgBody.strHostIFSetChan.u8SetChan = u8ChNum; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5692,13 +5692,13 @@ s32 host_int_wait_msg_queue_idle(void) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_Q_IDLE; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5715,17 +5715,17 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_WFIDRV_HANDLER; strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); strHostIFmsg.drvHandler = u32address; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5740,17 +5740,17 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_OPERATION_MODE; strHostIFmsg.uniHostIFmsgBody.strHostIfSetOperationMode.u32Mode = u32mode; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5778,7 +5778,7 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -5786,13 +5786,13 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) } /* prepare the Get Channel Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_CHNL; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); down(&(pstrWFIDrv->hSemGetCHNL)); @@ -5863,14 +5863,14 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIfStaInactiveT.mac, @@ -5880,7 +5880,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send get host channel param's message queue "); @@ -5950,18 +5950,18 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_RSSI; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; @@ -5984,7 +5984,7 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) { - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -5992,13 +5992,13 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) /* prepare the Get LINKSPEED Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_LINKSPEED; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send GET_LINKSPEED to message queue "); return -EFAULT; @@ -6022,17 +6022,17 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_STATISTICS; strHostIFmsg.uniHostIFmsgBody.pUserData = (char *)pstrStatistics; strHostIFmsg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; @@ -6067,7 +6067,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tenuScanConnTimer enuScanConnTimer; if (pstrWFIDrv == NULL || ScanResult == NULL) { @@ -6076,7 +6076,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, } /* prepare the Scan Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_SCAN; @@ -6104,7 +6104,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, pu8IEs, IEsLen); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Error in sending message queue\n"); return -EINVAL; @@ -6136,7 +6136,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { @@ -6144,12 +6144,12 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) return -EFAULT; } /* prepare the WiphyParams Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_CFG_PARAMS; strHostIFmsg.uniHostIFmsgBody.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); return s32Error; @@ -6312,16 +6312,16 @@ static void GetPeriodicRSSI(unsigned long arg) if (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_RSSI; strHostIFmsg.drvHandler = pstrWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return; @@ -6507,7 +6507,7 @@ _fail_: s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; int ret; /*obtain driver handle*/ @@ -6568,7 +6568,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) gbScanWhileConnected = false; - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); if (clients_count == 1) { if (del_timer_sync(&g_hPeriodicRSSI)) { @@ -6579,7 +6579,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error != 0) PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", s32Error); @@ -6625,7 +6625,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6641,7 +6641,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) } /* prepare the Asynchronous Network Info message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_NTWRK_INFO; strHostIFmsg.drvHandler = pstrWFIDrv; @@ -6652,7 +6652,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) pu8Buffer, u32Length); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending network info message queue message parameters: Error(%d)\n", s32Error); } @@ -6671,7 +6671,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6696,7 +6696,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) } /* prepare the General Asynchronous Info message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; @@ -6709,7 +6709,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) pu8Buffer, u32Length); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); @@ -6728,7 +6728,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6744,7 +6744,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) /*if there is an ongoing scan request*/ if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { /* prepare theScan Done message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_SCAN_COMPLETE; strHostIFmsg.drvHandler = pstrWFIDrv; @@ -6759,7 +6759,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) * pu8Buffer, u32Length); */ /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue scan complete parameters: Error(%d)\n", s32Error); } @@ -6787,7 +6787,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -6795,7 +6795,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u } /* prepare the remainonchan Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_REMAIN_ON_CHAN; @@ -6807,7 +6807,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6832,7 +6832,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -6843,12 +6843,12 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) del_timer(&pstrWFIDrv->hRemainOnChannel); /* prepare the timer fire Message */ - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); strHostIFmsg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6867,14 +6867,14 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_REGISTER_FRAME; @@ -6897,7 +6897,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe strHostIFmsg.uniHostIFmsgBody.strHostIfRegisterFrame.bReg = bReg; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6924,7 +6924,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrHostIFSetBeacon *pstrSetBeaconParam = &strHostIFmsg.uniHostIFmsgBody.strHostIFSetBeacon; if (pstrWFIDrv == NULL) { @@ -6932,7 +6932,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting adding beacon message queue params\n"); @@ -6963,7 +6963,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, pstrSetBeaconParam->pu8Tail = NULL; } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6994,7 +6994,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7006,7 +7006,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) strHostIFmsg.drvHandler = hWFIDrv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7027,7 +7027,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; @@ -7036,7 +7036,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting adding station message queue params\n"); @@ -7057,7 +7057,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7076,7 +7076,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrHostIFDelSta *pstrDelStationMsg = &strHostIFmsg.uniHostIFmsgBody.strDelStaParam; if (pstrWFIDrv == NULL) { @@ -7084,7 +7084,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting deleting station message queue params\n"); @@ -7099,7 +7099,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) else memcpy(pstrDelStationMsg->au8MacAddr, pu8MacAddr, ETH_ALEN); - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7117,7 +7117,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrHostIFDelAllSta *pstrDelAllStationMsg = &strHostIFmsg.uniHostIFmsgBody.strHostIFDelAllSta; u8 au8Zero_Buff[ETH_ALEN] = {0}; u32 i; @@ -7129,7 +7129,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting deauthenticating station message queue params\n"); @@ -7152,7 +7152,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) } pstrDelAllStationMsg->u8Num_AssocSta = u8AssocNumb; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) @@ -7177,7 +7177,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; if (pstrWFIDrv == NULL) { @@ -7187,7 +7187,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt PRINT_D(HOSTINF_DBG, "Setting editing station message queue params\n"); - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ @@ -7205,7 +7205,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt pstrAddStationMsg->pu8Rates = rates; } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7216,7 +7216,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrHostIfPowerMgmtParam *pstrPowerMgmtParam = &strHostIFmsg.uniHostIFmsgBody.strPowerMgmtparam; PRINT_INFO(HOSTINF_DBG, "\n\n>> Setting PS to %d <<\n\n", bIsEnabled); @@ -7228,7 +7228,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti PRINT_D(HOSTINF_DBG, "Setting Power management message queue params\n"); - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ @@ -7239,7 +7239,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti pstrPowerMgmtParam->u32Timeout = u32Timeout; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7250,7 +7250,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrHostIFSetMulti *pstrMulticastFilterParam = &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMulti; @@ -7261,7 +7261,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u PRINT_D(HOSTINF_DBG, "Setting Multicast Filter params\n"); - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ @@ -7271,7 +7271,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u pstrMulticastFilterParam->bIsEnabled = bIsEnabled; pstrMulticastFilterParam->u32count = u32count; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7517,7 +7517,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { @@ -7525,7 +7525,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_ADD_BA_SESSION; @@ -7536,7 +7536,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI pBASessionInfo->u16SessionTimeout = SessionTimeout; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7548,7 +7548,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { @@ -7556,7 +7556,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_BA_SESSION; @@ -7565,7 +7565,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) pBASessionInfo->u8Ted = TID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7578,7 +7578,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { @@ -7586,7 +7586,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS; @@ -7595,7 +7595,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T pBASessionInfo->u8Ted = TID; strHostIFmsg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7616,7 +7616,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; /* TODO: Enable This feature on softap firmware */ return 0; @@ -7626,7 +7626,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_IPADDRESS; @@ -7635,7 +7635,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7656,14 +7656,14 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - host_if_msg strHostIFmsg; + struct host_if_msg strHostIFmsg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(host_if_msg)); + memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_IPADDRESS; @@ -7672,7 +7672,7 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) strHostIFmsg.drvHandler = hWFIDrv; strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); From 2e19202501a0362c6f2f73c6625d8fea42d5a2be Mon Sep 17 00:00:00 2001 From: Erik Arfvidson Date: Tue, 25 Aug 2015 17:52:35 -0400 Subject: [PATCH 0504/2431] staging: unisys: add visorhid driver This driver provides mouse and keyboard input to Unisys s-Par Partition Desktop application. This device is created by the visorbus device. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Tim Sell Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/Kconfig | 1 + drivers/staging/unisys/Makefile | 1 + drivers/staging/unisys/visorhid/Kconfig | 10 + drivers/staging/unisys/visorhid/Makefile | 7 + .../staging/unisys/visorhid/keyboardchannel.h | 32 + .../staging/unisys/visorhid/mousechannel.h | 33 + .../unisys/visorhid/ultrainputreport.h | 74 ++ drivers/staging/unisys/visorhid/visorhid.c | 668 ++++++++++++++++++ 8 files changed, 826 insertions(+) create mode 100644 drivers/staging/unisys/visorhid/Kconfig create mode 100644 drivers/staging/unisys/visorhid/Makefile create mode 100644 drivers/staging/unisys/visorhid/keyboardchannel.h create mode 100644 drivers/staging/unisys/visorhid/mousechannel.h create mode 100644 drivers/staging/unisys/visorhid/ultrainputreport.h create mode 100644 drivers/staging/unisys/visorhid/visorhid.c diff --git a/drivers/staging/unisys/Kconfig b/drivers/staging/unisys/Kconfig index 624abe66c20c..ca850a8b2f6b 100644 --- a/drivers/staging/unisys/Kconfig +++ b/drivers/staging/unisys/Kconfig @@ -13,5 +13,6 @@ if UNISYSSPAR source "drivers/staging/unisys/visorbus/Kconfig" source "drivers/staging/unisys/visornic/Kconfig" +source "drivers/staging/unisys/visorhid/Kconfig" endif # UNISYSSPAR diff --git a/drivers/staging/unisys/Makefile b/drivers/staging/unisys/Makefile index a515ebc4f8ec..d071094457fe 100644 --- a/drivers/staging/unisys/Makefile +++ b/drivers/staging/unisys/Makefile @@ -3,3 +3,4 @@ # obj-$(CONFIG_UNISYS_VISORBUS) += visorbus/ obj-$(CONFIG_UNISYS_VISORNIC) += visornic/ +obj-$(CONFIG_UNISYS_VISORHID) += visorhid/ diff --git a/drivers/staging/unisys/visorhid/Kconfig b/drivers/staging/unisys/visorhid/Kconfig new file mode 100644 index 000000000000..3b83e2cc2016 --- /dev/null +++ b/drivers/staging/unisys/visorhid/Kconfig @@ -0,0 +1,10 @@ +# +# Unisys visorhid configuration +# + +config UNISYS_VISORHID + tristate "Unisys visorhid driver" + depends on UNISYSSPAR && UNISYS_VISORBUS && FB + ---help--- + If you say Y here, you will enable the Unisys visorhid driver. + diff --git a/drivers/staging/unisys/visorhid/Makefile b/drivers/staging/unisys/visorhid/Makefile new file mode 100644 index 000000000000..e457bd14f7e8 --- /dev/null +++ b/drivers/staging/unisys/visorhid/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for Unisys visorhid +# + +obj-$(CONFIG_UNISYS_VISORHID) += visorhid.o + +ccflags-y += -Idrivers/staging/unisys/include diff --git a/drivers/staging/unisys/visorhid/keyboardchannel.h b/drivers/staging/unisys/visorhid/keyboardchannel.h new file mode 100644 index 000000000000..2ed2602b427c --- /dev/null +++ b/drivers/staging/unisys/visorhid/keyboardchannel.h @@ -0,0 +1,32 @@ +/* Copyright (C) 2010 - 2015 UNISYS CORPORATION + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + */ + +#ifndef __SPAR_KEYBOARDCHANNEL_H__ +#define __SPAR_KEYBOARDCHANNEL_H__ + +#include +#include + +#include "channel.h" +#include "ultrainputreport.h" + +/* {c73416d0-b0b8-44af-b304-9d2ae99f1b3d} */ +#define SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID \ + UUID_LE(0xc73416d0, 0xb0b8, 0x44af, \ + 0xb3, 0x4, 0x9d, 0x2a, 0xe9, 0x9f, 0x1b, 0x3d) +#define SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR "c73416d0-b0b8-44af-b304-9d2ae99f1b3d" +#define SPAR_KEYBOARD_CHANNEL_PROTOCOL_VERSIONID 1 +#define KEYBOARD_MAXINPUTREPORTS 50 + +#endif diff --git a/drivers/staging/unisys/visorhid/mousechannel.h b/drivers/staging/unisys/visorhid/mousechannel.h new file mode 100644 index 000000000000..256477ae6e5e --- /dev/null +++ b/drivers/staging/unisys/visorhid/mousechannel.h @@ -0,0 +1,33 @@ +/* Copyright (C) 2010 - 2015 UNISYS CORPORATION + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + */ + +#ifndef __SPAR_MOUSECHANNEL_H__ +#define __SPAR_MOUSECHANNEL_H__ + +#include +#include + +#include "channel.h" +#include "ultrainputreport.h" + +/* {addf07d4-94a9-46e2-81c3-61abcdbdbd87} */ +#define SPAR_MOUSE_CHANNEL_PROTOCOL_UUID \ + UUID_LE(0xaddf07d4, 0x94a9, 0x46e2, \ + 0x81, 0xc3, 0x61, 0xab, 0xcd, 0xbd, 0xbd, 0x87) +#define SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR \ + "addf07d4-94a9-46e2-81c3-61abcdbdbd87" +#define SPAR_MOUSE_CHANNEL_PROTOCOL_VERSIONID 1 +#define MOUSE_MAXINPUTREPORTS 50 + +#endif diff --git a/drivers/staging/unisys/visorhid/ultrainputreport.h b/drivers/staging/unisys/visorhid/ultrainputreport.h new file mode 100644 index 000000000000..3e6a52f4b6bf --- /dev/null +++ b/drivers/staging/unisys/visorhid/ultrainputreport.h @@ -0,0 +1,74 @@ +/* Copyright (C) 2010 - 2015 UNISYS CORPORATION + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + */ + +#ifndef __SPAR_ULTRAINPUTREPORT_H__ +#define __SPAR_ULTRAINPUTREPORT_H__ + +#include + +#include "ultrainputreport.h" + +/* Identifies mouse and keyboard activity which is specified by the firmware to + * the host using the cmsimpleinput protocol. @ingroup coretypes + */ +enum ultra_inputaction { + inputaction_none = 0, + inputaction_xy_motion = 1, /* only motion; arg1=x, arg2=y */ + inputaction_mouse_button_down = 2, /* arg1: 1=left,2=center,3=right */ + inputaction_mouse_button_up = 3, /* arg1: 1=left,2=center,3=right */ + inputaction_mouse_button_click = 4, /* arg1: 1=left,2=center,3=right */ + inputaction_mouse_button_dclick = 5, /* arg1: 1=left,2=center, + 3=right */ + inputaction_wheel_rotate_away = 6, /* arg1: wheel rotation away from + user */ + inputaction_wheel_rotate_toward = 7, /* arg1: wheel rotation toward + user */ + inputaction_set_max_xy = 8, /* set screen maxXY; arg1=x, arg2=y */ + inputaction_key_down = 64, /* arg1: scancode, as follows: + If arg1 <= 0xff, it's a 1-byte + scancode and arg1 is that scancode. + If arg1 > 0xff, it's a 2-byte + scanecode, with the 1st byte in the + low 8 bits, and the 2nd byte in the + high 8 bits. E.g., the right ALT key + would appear as x'38e0'. */ + inputaction_key_up = 65, /* arg1: scancode (in same format as + inputaction_keyDown) */ + inputaction_set_locking_key_state = 66, + /* arg1: scancode (in same format + as inputaction_keyDown); + MUST refer to one of the + locking keys, like capslock, + numlock, or scrolllock + arg2: 1 iff locking key should be + in the LOCKED position + (e.g., light is ON) */ + inputaction_key_down_up = 67, /* arg1: scancode (in same format + as inputaction_keyDown) */ + inputaction_last +}; + +struct ultra_inputactivity { + u16 action; + u16 arg1; + u16 arg2; + u16 arg3; +} __packed; + +struct ultra_inputreport { + u64 seq_no; + struct ultra_inputactivity activity; +} __packed; + +#endif diff --git a/drivers/staging/unisys/visorhid/visorhid.c b/drivers/staging/unisys/visorhid/visorhid.c new file mode 100644 index 000000000000..cca426b8f037 --- /dev/null +++ b/drivers/staging/unisys/visorhid/visorhid.c @@ -0,0 +1,668 @@ +/* visorhid.c + * + * Copyright (C) 2011 - 2015 UNISYS CORPORATION + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + */ + +/* This driver lives in a generic guest Linux partition, and registers to + * receive keyboard and mouse channels from the visorbus driver. It reads + * inputs from such channels, and delivers it to the Linux OS in the + * standard way the Linux expects for input drivers. + */ + +#include +#include +#include +#include +#include +#include + +#include "keyboardchannel.h" +#include "mousechannel.h" +#include "version.h" +#include "visorbus.h" + +#define PIXELS_ACROSS_DEFAULT 800 +#define PIXELS_DOWN_DEFAULT 600 + +static const uuid_le spar_keyboard_channel_protocol_uuid = + SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID; +static const uuid_le spar_mouse_channel_protocol_uuid = + SPAR_MOUSE_CHANNEL_PROTOCOL_UUID; +static int visorhid_probe(struct visor_device *dev); +static void visorhid_remove(struct visor_device *dev); +static void visorhid_channel_interrupt(struct visor_device *dev); +static int visorhid_pause(struct visor_device *dev, + visorbus_state_complete_func complete_func); +static int visorhid_resume(struct visor_device *dev, + visorbus_state_complete_func complete_func); +static struct input_dev *register_client_keyboard(void); +static struct input_dev *register_client_mouse(void); +static void unregister_client_input(struct input_dev *visorinput_dev); + +/* GUIDS for all channel types supported by this driver. */ +static struct visor_channeltype_descriptor visorhid_channel_types[] = { + { SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID, "keyboard"}, + { SPAR_MOUSE_CHANNEL_PROTOCOL_UUID, "mouse"}, + { NULL_UUID_LE, NULL } +}; +MODULE_DEVICE_TABLE(visorbus, visorhid_channel_types); +MODULE_ALIAS("visorbus:" SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR); +MODULE_ALIAS("visorbus:" SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR); + +/** This is used to tell the visor bus driver which types of visor devices + * we support, and what functions to call when a visor device that we support + * is attached or removed. + */ +static struct visor_driver visorhid_driver = { + .name = "visorhid", + .vertag = NULL, + .owner = THIS_MODULE, + .channel_types = visorhid_channel_types, + .probe = visorhid_probe, + .remove = visorhid_remove, + .channel_interrupt = visorhid_channel_interrupt, + .pause = visorhid_pause, + .resume = visorhid_resume, +}; + +enum visorhid_device_type { + visorhid_keyboard, + visorhid_mouse, +}; + +/* This is the private data that we store for each device. + * A pointer to this struct is maintained via + * dev_get_drvdata() / dev_set_drvdata() for each struct device. + */ +struct visorhid_devdata { + struct visor_device *dev; + /** lock for dev */ + struct rw_semaphore lock_visor_dev; + struct input_dev *visorinput_dev; + bool paused; +}; + +/* Borrowed from drivers/input/keyboard/atakbd.c */ +/* This maps 1-byte scancodes to keycodes. */ +static unsigned char visorkbd_keycode[256] = { /* American layout */ + [0] = KEY_GRAVE, + [1] = KEY_ESC, + [2] = KEY_1, + [3] = KEY_2, + [4] = KEY_3, + [5] = KEY_4, + [6] = KEY_5, + [7] = KEY_6, + [8] = KEY_7, + [9] = KEY_8, + [10] = KEY_9, + [11] = KEY_0, + [12] = KEY_MINUS, + [13] = KEY_EQUAL, + [14] = KEY_BACKSPACE, + [15] = KEY_TAB, + [16] = KEY_Q, + [17] = KEY_W, + [18] = KEY_E, + [19] = KEY_R, + [20] = KEY_T, + [21] = KEY_Y, + [22] = KEY_U, + [23] = KEY_I, + [24] = KEY_O, + [25] = KEY_P, + [26] = KEY_LEFTBRACE, + [27] = KEY_RIGHTBRACE, + [28] = KEY_ENTER, + [29] = KEY_LEFTCTRL, + [30] = KEY_A, + [31] = KEY_S, + [32] = KEY_D, + [33] = KEY_F, + [34] = KEY_G, + [35] = KEY_H, + [36] = KEY_J, + [37] = KEY_K, + [38] = KEY_L, + [39] = KEY_SEMICOLON, + [40] = KEY_APOSTROPHE, + [41] = KEY_GRAVE, /* FIXME, '#' */ + [42] = KEY_LEFTSHIFT, + [43] = KEY_BACKSLASH, /* FIXME, '~' */ + [44] = KEY_Z, + [45] = KEY_X, + [46] = KEY_C, + [47] = KEY_V, + [48] = KEY_B, + [49] = KEY_N, + [50] = KEY_M, + [51] = KEY_COMMA, + [52] = KEY_DOT, + [53] = KEY_SLASH, + [54] = KEY_RIGHTSHIFT, + [55] = KEY_KPASTERISK, + [56] = KEY_LEFTALT, + [57] = KEY_SPACE, + [58] = KEY_CAPSLOCK, + [59] = KEY_F1, + [60] = KEY_F2, + [61] = KEY_F3, + [62] = KEY_F4, + [63] = KEY_F5, + [64] = KEY_F6, + [65] = KEY_F7, + [66] = KEY_F8, + [67] = KEY_F9, + [68] = KEY_F10, + [69] = KEY_NUMLOCK, + [70] = KEY_SCROLLLOCK, + [71] = KEY_KP7, + [72] = KEY_KP8, + [73] = KEY_KP9, + [74] = KEY_KPMINUS, + [75] = KEY_KP4, + [76] = KEY_KP5, + [77] = KEY_KP6, + [78] = KEY_KPPLUS, + [79] = KEY_KP1, + [80] = KEY_KP2, + [81] = KEY_KP3, + [82] = KEY_KP0, + [83] = KEY_KPDOT, + [86] = KEY_102ND, /* enables UK backslash+pipe key, + * and FR lessthan+greaterthan key */ + [87] = KEY_F11, + [88] = KEY_F12, + [90] = KEY_KPLEFTPAREN, + [91] = KEY_KPRIGHTPAREN, + [92] = KEY_KPASTERISK, /* FIXME */ + [93] = KEY_KPASTERISK, + [94] = KEY_KPPLUS, + [95] = KEY_HELP, + [96] = KEY_KPENTER, + [97] = KEY_RIGHTCTRL, + [98] = KEY_KPSLASH, + [99] = KEY_KPLEFTPAREN, + [100] = KEY_KPRIGHTPAREN, + [101] = KEY_KPSLASH, + [102] = KEY_HOME, + [103] = KEY_UP, + [104] = KEY_PAGEUP, + [105] = KEY_LEFT, + [106] = KEY_RIGHT, + [107] = KEY_END, + [108] = KEY_DOWN, + [109] = KEY_PAGEDOWN, + [110] = KEY_INSERT, + [111] = KEY_DELETE, + [112] = KEY_MACRO, + [113] = KEY_MUTE +}; + +/* This maps the in extended scancodes of the form "0xE0 " into + * keycodes. + */ +static unsigned char ext_keycode[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */ + 0, 0, 0, 0, KEY_KPENTER, KEY_RIGHTCTRL, 0, 0, /* 0x18 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */ + KEY_RIGHTALT, 0, 0, 0, 0, 0, 0, 0, /* 0x28 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */ + 0, 0, 0, 0, 0, 0, 0, KEY_HOME, /* 0x40 */ + KEY_UP, KEY_PAGEUP, 0, KEY_LEFT, 0, KEY_RIGHT, 0, KEY_END, /* 0x48 */ + KEY_DOWN, KEY_PAGEDOWN, KEY_INSERT, KEY_DELETE, 0, 0, 0, 0, /* 0x50 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x58 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */ +}; + +static struct visorhid_devdata * +devdata_create(struct visor_device *dev, enum visorhid_device_type devtype) +{ + struct visorhid_devdata *devdata = NULL; + + devdata = kzalloc(sizeof(*devdata), GFP_KERNEL); + if (!devdata) + return NULL; + devdata->dev = dev; + + /* This is an input device in a client guest partition, + * so we need to create whatever gizmos are necessary to + * deliver our inputs to the guest OS. + */ + switch (devtype) { + case visorhid_keyboard: + devdata->visorinput_dev = register_client_keyboard(); + if (!devdata->visorinput_dev) + goto cleanups_register; + break; + case visorhid_mouse: + devdata->visorinput_dev = register_client_mouse(); + if (!devdata->visorinput_dev) + goto cleanups_register; + break; + } + + init_rwsem(&devdata->lock_visor_dev); + + return devdata; + +cleanups_register: + kfree(devdata); + return NULL; +} + +static int +visorhid_probe(struct visor_device *dev) +{ + struct visorhid_devdata *devdata = NULL; + uuid_le guid; + enum visorhid_device_type devtype; + + guid = visorchannel_get_uuid(dev->visorchannel); + if (uuid_le_cmp(guid, spar_mouse_channel_protocol_uuid) == 0) + devtype = visorhid_mouse; + else if (uuid_le_cmp(guid, spar_keyboard_channel_protocol_uuid) == 0) + devtype = visorhid_keyboard; + else + return -ENODEV; + devdata = devdata_create(dev, devtype); + if (!devdata) + return -ENOMEM; + dev_set_drvdata(&dev->device, devdata); + visorbus_enable_channel_interrupts(dev); + return 0; +} + +static void +visorhid_remove(struct visor_device *dev) +{ + struct visorhid_devdata *devdata = dev_get_drvdata(&dev->device); + + if (!devdata) + return; + + visorbus_disable_channel_interrupts(dev); + + /* due to above, at this time no thread of execution will be + * in visorhid_channel_interrupt() + */ + + down_write(&devdata->lock_visor_dev); + dev_set_drvdata(&dev->device, NULL); + unregister_client_input(devdata->visorinput_dev); + up_write(&devdata->lock_visor_dev); + kfree(devdata); +} + +static void +unregister_client_input(struct input_dev *visorinput_dev) +{ + if (visorinput_dev) + input_unregister_device(visorinput_dev); +} + +/* register_client_keyboard() initializes and returns a Linux gizmo that we + * can use to deliver keyboard inputs to Linux. We of course do this when + * we see keyboard inputs coming in on a keyboard channel. + */ +static struct input_dev * +register_client_keyboard(void) +{ + int i, error; + struct input_dev *visorinput_dev = NULL; + + visorinput_dev = input_allocate_device(); + if (!visorinput_dev) + return NULL; + + visorinput_dev->name = "visor Keyboard"; + visorinput_dev->phys = "visorkbd:input0"; + visorinput_dev->id.bustype = BUS_HOST; + visorinput_dev->id.vendor = 0x0001; + visorinput_dev->id.product = 0x0001; + visorinput_dev->id.version = 0x0100; + + visorinput_dev->evbit[0] = BIT_MASK(EV_KEY) | + BIT_MASK(EV_REP) | + BIT_MASK(EV_LED); + visorinput_dev->ledbit[0] = BIT_MASK(LED_CAPSL) | + BIT_MASK(LED_SCROLLL) | + BIT_MASK(LED_NUML); + visorinput_dev->keycode = visorkbd_keycode; + visorinput_dev->keycodesize = sizeof(unsigned char); + visorinput_dev->keycodemax = ARRAY_SIZE(visorkbd_keycode); + + for (i = 1; i < ARRAY_SIZE(visorkbd_keycode); i++) + set_bit(visorkbd_keycode[i], visorinput_dev->keybit); + + error = input_register_device(visorinput_dev); + if (error) { + input_free_device(visorinput_dev); + return NULL; + } + return visorinput_dev; +} + +static struct input_dev * +register_client_mouse(void) +{ + int error; + struct input_dev *visorinput_dev = NULL; + int xres, yres; + struct fb_info *fb0; + + visorinput_dev = input_allocate_device(); + if (!visorinput_dev) + return NULL; + + visorinput_dev->name = "visor Mouse"; + visorinput_dev->phys = "visormou:input0"; + visorinput_dev->id.bustype = BUS_HOST; + visorinput_dev->id.vendor = 0x0001; + visorinput_dev->id.product = 0x0002; + visorinput_dev->id.version = 0x0100; + + visorinput_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + set_bit(BTN_LEFT, visorinput_dev->keybit); + set_bit(BTN_RIGHT, visorinput_dev->keybit); + set_bit(BTN_MIDDLE, visorinput_dev->keybit); + + if (registered_fb[0]) { + fb0 = registered_fb[0]; + xres = fb0->var.xres_virtual; + yres = fb0->var.yres_virtual; + } else { + xres = PIXELS_ACROSS_DEFAULT; + yres = PIXELS_DOWN_DEFAULT; + } + input_set_abs_params(visorinput_dev, ABS_X, 0, xres, 0, 0); + input_set_abs_params(visorinput_dev, ABS_Y, 0, yres, 0, 0); + + error = input_register_device(visorinput_dev); + if (error) { + input_free_device(visorinput_dev); + return NULL; + } + + /* Sending top-left and bottom-right positions is ABSOLUTELY + * REQUIRED if we want X to move the mouse to the exact points + * we tell it. I have NO IDEA why. + */ + input_report_abs(visorinput_dev, ABS_X, 0); + input_report_abs(visorinput_dev, ABS_Y, 0); + input_sync(visorinput_dev); + input_report_abs(visorinput_dev, ABS_X, xres - 1); + input_report_abs(visorinput_dev, ABS_Y, yres - 1); + input_sync(visorinput_dev); + + input_set_capability(visorinput_dev, EV_REL, REL_WHEEL); + + return visorinput_dev; +} + +static void +do_key(struct input_dev *inpt, int keycode, int down) +{ + input_report_key(inpt, keycode, down); +} + +/* Make it so the current locking state of the locking key indicated by + * is as indicated by (1=locked, 0=unlocked). + */ +static void +handle_locking_key(struct input_dev *visorinput_dev, + int keycode, int desired_state) +{ + int led; + char *sled; + + switch (keycode) { + case KEY_CAPSLOCK: + led = LED_CAPSL; + sled = "CAP"; + break; + case KEY_SCROLLLOCK: + led = LED_SCROLLL; + sled = "SCR"; + break; + case KEY_NUMLOCK: + led = LED_NUML; + sled = "NUM"; + break; + default: + led = -1; + break; + } + if (led >= 0) { + int old_state = (test_bit(led, visorinput_dev->led) != 0); + + if (old_state != desired_state) { + do_key(visorinput_dev, keycode, 1); + input_sync(visorinput_dev); + do_key(visorinput_dev, keycode, 0); + input_sync(visorinput_dev); + __change_bit(led, visorinput_dev->led); + } + } +} + +/* is either a 1-byte scancode, or an extended 16-bit scancode + * with 0xE0 in the low byte and the extended scancode value in the next + * higher byte. + */ +static int +scancode_to_keycode(int scancode) +{ + int keycode; + + if (scancode > 0xff) + keycode = ext_keycode[(scancode >> 8) & 0xff]; + else + keycode = visorkbd_keycode[scancode]; + return keycode; +} + +static int +calc_button(int x) +{ + switch (x) { + case 1: + return BTN_LEFT; + case 2: + return BTN_MIDDLE; + case 3: + return BTN_RIGHT; + default: + return -1; + } +} + +/* This is used only when this driver is active as an input driver in the + * client guest partition. It is called periodically so we can obtain inputs + * from the channel, and deliver them to the guest OS. + */ +static void +visorhid_channel_interrupt(struct visor_device *dev) +{ + struct ultra_inputreport r; + int scancode, keycode; + struct input_dev *visorinput_dev; + int xmotion, ymotion, zmotion, button; + int i; + + struct visorhid_devdata *devdata = dev_get_drvdata(&dev->device); + + if (!devdata) + return; + + down_write(&devdata->lock_visor_dev); + if (devdata->paused) /* don't touch device/channel when paused */ + goto out_locked; + + visorinput_dev = devdata->visorinput_dev; + if (!visorinput_dev) + goto out_locked; + + while (visorchannel_signalremove(dev->visorchannel, 0, &r)) { + scancode = r.activity.arg1; + keycode = scancode_to_keycode(scancode); + switch (r.activity.action) { + case inputaction_key_down: + do_key(visorinput_dev, keycode, 1); + input_sync(visorinput_dev); + break; + case inputaction_key_up: + do_key(visorinput_dev, keycode, 0); + input_sync(visorinput_dev); + break; + case inputaction_key_down_up: + do_key(visorinput_dev, keycode, 1); + input_sync(visorinput_dev); + do_key(visorinput_dev, keycode, 0); + input_sync(visorinput_dev); + break; + case inputaction_set_locking_key_state: + handle_locking_key(visorinput_dev, keycode, + r.activity.arg2); + break; + case inputaction_xy_motion: + xmotion = r.activity.arg1; + ymotion = r.activity.arg2; + input_report_abs(visorinput_dev, ABS_X, xmotion); + input_report_abs(visorinput_dev, ABS_Y, ymotion); + input_sync(visorinput_dev); + break; + case inputaction_mouse_button_down: + button = calc_button(r.activity.arg1); + if (button < 0) + break; + input_report_key(visorinput_dev, button, 1); + input_sync(visorinput_dev); + break; + case inputaction_mouse_button_up: + button = calc_button(r.activity.arg1); + if (button < 0) + break; + input_report_key(visorinput_dev, button, 0); + input_sync(visorinput_dev); + break; + case inputaction_mouse_button_click: + button = calc_button(r.activity.arg1); + if (button < 0) + break; + input_report_key(visorinput_dev, button, 1); + + input_sync(visorinput_dev); + input_report_key(visorinput_dev, button, 0); + input_sync(visorinput_dev); + break; + case inputaction_mouse_button_dclick: + button = calc_button(r.activity.arg1); + if (button < 0) + break; + for (i = 0; i < 2; i++) { + input_report_key(visorinput_dev, button, 1); + input_sync(visorinput_dev); + input_report_key(visorinput_dev, button, 0); + input_sync(visorinput_dev); + } + break; + case inputaction_wheel_rotate_away: + zmotion = r.activity.arg1; + input_report_rel(visorinput_dev, REL_WHEEL, 1); + input_sync(visorinput_dev); + break; + case inputaction_wheel_rotate_toward: + zmotion = r.activity.arg1; + input_report_rel(visorinput_dev, REL_WHEEL, -1); + input_sync(visorinput_dev); + break; + } + } +out_locked: + up_write(&devdata->lock_visor_dev); +} + +static int +visorhid_pause(struct visor_device *dev, + visorbus_state_complete_func complete_func) +{ + int rc; + struct visorhid_devdata *devdata = dev_get_drvdata(&dev->device); + + if (!devdata) { + rc = -ENODEV; + goto out; + } + + down_write(&devdata->lock_visor_dev); + if (devdata->paused) { + rc = -EBUSY; + goto out_locked; + } + devdata->paused = true; + complete_func(dev, 0); + rc = 0; +out_locked: + up_write(&devdata->lock_visor_dev); +out: + return rc; +} + +static int +visorhid_resume(struct visor_device *dev, + visorbus_state_complete_func complete_func) +{ + int rc; + struct visorhid_devdata *devdata = dev_get_drvdata(&dev->device); + + if (!devdata) { + rc = -ENODEV; + goto out; + } + down_write(&devdata->lock_visor_dev); + if (!devdata->paused) { + rc = -EBUSY; + goto out_locked; + } + devdata->paused = false; + complete_func(dev, 0); + rc = 0; +out_locked: + up_write(&devdata->lock_visor_dev); +out: + return rc; +} + +static int +visorhid_init(void) +{ + return visorbus_register_visor_driver(&visorhid_driver); +} + +static void +visorhid_cleanup(void) +{ + visorbus_unregister_visor_driver(&visorhid_driver); +} + +module_init(visorhid_init); +module_exit(visorhid_cleanup); + +MODULE_AUTHOR("Unisys"); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("s-Par human input driver for guest Linux"); +MODULE_VERSION(VERSION); From 96da20a9a31a2acec0f9bd1c6681dce6c2c40096 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:08 +0900 Subject: [PATCH 0505/2431] staging: wilc1000: rename WILC_WFI_WiphyFree This patch replaces WILC_WFI_WiphyFree with wilc_free_wiphy to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 6791012858c9..ed6044ef5bc1 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -2006,7 +2006,7 @@ static void __exit exit_wilc_driver(void) PRINT_D(INIT_DBG, "Unregistering netdev %p\n", g_linux_wlan->strInterfaceInfo[i].wilc_netdev); unregister_netdev(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); PRINT_D(INIT_DBG, "Freeing Wiphy...\n"); - WILC_WFI_WiphyFree(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); + wilc_free_wiphy(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); PRINT_D(INIT_DBG, "Freeing netdev...\n"); free_netdev(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5a95b959ef5b..239d0fc921cf 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3689,7 +3689,7 @@ int WILC_WFI_DeInitHostInt(struct net_device *net) * @date 01 MAR 2012 * @version 1.0 */ -void WILC_WFI_WiphyFree(struct net_device *net) +void wilc_free_wiphy(struct net_device *net) { PRINT_D(CFG80211_DBG, "Unregistering wiphy\n"); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 4d37c4e859e9..67b8de3fd719 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -93,7 +93,7 @@ static const struct ieee80211_txrx_stypes struct wireless_dev *WILC_WFI_CfgAlloc(void); struct wireless_dev *WILC_WFI_WiphyRegister(struct net_device *net); -void WILC_WFI_WiphyFree(struct net_device *net); +void wilc_free_wiphy(struct net_device *net); int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed); int WILC_WFI_DeInitHostInt(struct net_device *net); int WILC_WFI_InitHostInt(struct net_device *net); From 8459fd54aa3ac145ba16a2b9cbc76ab5b99b4d32 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:09 +0900 Subject: [PATCH 0506/2431] staging: wilc1000: rename WILC_WFI_WiphyRegister This patch replaces WILC_WFI_WiphyRegister with wilc_create_wiphy to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index ed6044ef5bc1..4534fb927be8 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1883,7 +1883,7 @@ int wilc_netdev_init(void) { struct wireless_dev *wdev; /*Register WiFi*/ - wdev = WILC_WFI_WiphyRegister(ndev); + wdev = wilc_create_wiphy(ndev); #ifdef WILC_SDIO /* set netdev, tony */ diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 239d0fc921cf..e51745e74dc7 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3519,7 +3519,7 @@ _fail_: } /** - * @brief WILC_WFI_WiphyRegister + * @brief wilc_create_wiphy * @details Registering of the wiphy structure and interface modes * @param[in] NONE * @return NONE @@ -3527,7 +3527,7 @@ _fail_: * @date 01 MAR 2012 * @version 1.0 */ -struct wireless_dev *WILC_WFI_WiphyRegister(struct net_device *net) +struct wireless_dev *wilc_create_wiphy(struct net_device *net) { struct wilc_priv *priv; struct wireless_dev *wdev; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 67b8de3fd719..579bf2b129b1 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -92,7 +92,7 @@ static const struct ieee80211_txrx_stypes #define WILC_WFI_DWELL_ACTIVE 40 struct wireless_dev *WILC_WFI_CfgAlloc(void); -struct wireless_dev *WILC_WFI_WiphyRegister(struct net_device *net); +struct wireless_dev *wilc_create_wiphy(struct net_device *net); void wilc_free_wiphy(struct net_device *net); int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed); int WILC_WFI_DeInitHostInt(struct net_device *net); From 619837aea8fef3e3a08e4158f79b51118e552fec Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:10 +0900 Subject: [PATCH 0507/2431] staging: wilc1000: fix NULL comparison style This patch fixes NULL comparison style found by checkpatch.pl. CHECK: Comparison to NULL could be written "!net" CHECK: Comparison to NULL could be written "!net->ieee80211_ptr" CHECK: Comparison to NULL could be written "!net->ieee80211_ptr->wiphy" Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e51745e74dc7..af11af3f7ac2 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3694,17 +3694,17 @@ void wilc_free_wiphy(struct net_device *net) PRINT_D(CFG80211_DBG, "Unregistering wiphy\n"); - if (net == NULL) { + if (!net) { PRINT_D(INIT_DBG, "net_device is NULL\n"); return; } - if (net->ieee80211_ptr == NULL) { + if (!net->ieee80211_ptr) { PRINT_D(INIT_DBG, "ieee80211_ptr is NULL\n"); return; } - if (net->ieee80211_ptr->wiphy == NULL) { + if (!net->ieee80211_ptr->wiphy) { PRINT_D(INIT_DBG, "wiphy is NULL\n"); return; } From 855a771d59a41b37eb6848aeab5ae3c27302ae6e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:11 +0900 Subject: [PATCH 0508/2431] staging: wilc1000: remove blank line after an open brace '{' This patch removes blank line after an open brace '{' found by checkpatch.pl. CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index af11af3f7ac2..8107420e2cc6 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3691,7 +3691,6 @@ int WILC_WFI_DeInitHostInt(struct net_device *net) */ void wilc_free_wiphy(struct net_device *net) { - PRINT_D(CFG80211_DBG, "Unregistering wiphy\n"); if (!net) { From 1058cc32d13b9958f23b6a82271413ad0f11b680 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:12 +0900 Subject: [PATCH 0509/2431] staging: wilc1000: remove blank line before a close brace '{' This patch removes blank line before a close brace '{' found by checkpatch.pl CHECK: Blank lines aren't necessary before a close brace '}' Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 8107420e2cc6..fbe86439652b 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3713,5 +3713,4 @@ void wilc_free_wiphy(struct net_device *net) PRINT_D(INIT_DBG, "Freeing wiphy\n"); wiphy_free(net->ieee80211_ptr->wiphy); kfree(net->ieee80211_ptr); - } From c3ca63728ad87e65386ec53a904a623f85afe443 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:19 +0900 Subject: [PATCH 0510/2431] staging: wilc1000: remove useless comment This patch removes useless comment that is containing "BugXXXX" Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 14 -------------- drivers/staging/wilc1000/linux_mon.c | 2 -- drivers/staging/wilc1000/linux_wlan.c | 5 ++--- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 2 -- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 17 ++--------------- drivers/staging/wilc1000/wilc_wlan.h | 6 ++---- drivers/staging/wilc1000/wilc_wlan_cfg.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 4 ---- 9 files changed, 7 insertions(+), 46 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fdb0b9b4094b..0546f7a555a8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -244,7 +244,6 @@ typedef struct _tstrHostIFGetChan { u8 u8GetChan; } tstrHostIFGetChan; -/*bug3819: Add Scan acomplete notification to host*/ /*! * @struct tstrScanComplete * @brief hold received Async. Scan Complete message body @@ -472,7 +471,6 @@ typedef struct _tstrWidJoinReqExt { } tstrWidJoinReqExt; #endif -/*Bug4218: Parsing Join Param*/ #ifdef WILC_PARSE_SCAN_IN_HOST /*Struct containg joinParam of each AP*/ typedef struct _tstrJoinBssParam { @@ -504,7 +502,6 @@ typedef struct _tstrJoinBssParam { u8 au8Interval[4]; u8 au8StartTime[4]; } tstrJoinBssParam; -/*Bug4218: Parsing Join Param*/ /*a linked list table containing needed join parameters entries for each AP found in most recent scan*/ typedef struct _tstrBssTable { u8 u8noBssEntries; @@ -573,9 +570,7 @@ tstrWILC_WFIDrv *gu8FlushedJoinReqDrvHandler; #define FLUSHED_JOIN_REQ 1 #define FLUSHED_BYTE_POS 79 /* Position the byte indicating flushing in the flushed request */ -/*Bug4218: Parsing Join Param*/ #ifdef WILC_PARSE_SCAN_IN_HOST -/*Bug4218: Parsing Join Param*/ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo); #endif /*WILC_PARSE_SCAN_IN_HOST*/ @@ -843,7 +838,6 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) } -/*BugId_5077*/ /** * @brief Handle_SetMacAddress * @details Setting mac address @@ -1376,7 +1370,6 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHost strWIDList[u32WidsCount].u16WIDid = WID_SCAN_CHANNEL_LIST; strWIDList[u32WidsCount].enuWIDtype = WID_BIN_DATA; - /* Bug 4648: Convert channel numbers to start from 0 not 1. */ if (pstrHostIFscanAttr->pu8ChnlFreqList != NULL && pstrHostIFscanAttr->u8ChnlListLen > 0) { int i; @@ -1528,7 +1521,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps wid_site_survey_reslts_s *pstrSurveyResults = NULL; #else u8 *pu8CurrByte = NULL; - /*Bug4218: Parsing Join Param*/ #ifdef WILC_PARSE_SCAN_IN_HOST tstrJoinBssParam *ptstrJoinBssParam; #endif /*WILC_PARSE_SCAN_IN_HOST*/ @@ -1704,7 +1696,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n"); - /*Bug4218: Parsing Join Param*/ #ifdef WILC_PARSE_SCAN_IN_HOST ptstrJoinBssParam = (tstrJoinBssParam *)pstrHostIFconnectAttr->pJoinParams; if (ptstrJoinBssParam == NULL) { @@ -2325,7 +2316,6 @@ static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdNetworkInfo pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount++; pstrNetworkInfo->bNewNetwork = true; - /*Bug4218: Parsing Join Param*/ /* add new BSS to JoinBssTable */ #ifdef WILC_PARSE_SCAN_IN_HOST pJoinParams = host_int_ParseJoinBssParam(pstrNetworkInfo); @@ -3477,7 +3467,6 @@ static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetBeacon *p *pu8CurrByte++ = ((pstrSetBeaconParam->u32TailLen >> 16) & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->u32TailLen >> 24) & 0xFF); - /* Bug 4599 : if tail length = 0 skip copying */ if (pstrSetBeaconParam->pu8Tail > 0) memcpy(pu8CurrByte, pstrSetBeaconParam->pu8Tail, pstrSetBeaconParam->u32TailLen); pu8CurrByte += pstrSetBeaconParam->u32TailLen; @@ -6951,7 +6940,6 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, memcpy(pstrSetBeaconParam->pu8Head, pu8Head, u32HeadLen); pstrSetBeaconParam->u32TailLen = u32TailLen; - /* Bug 4599 : if tail length = 0 skip allocating & copying */ if (u32TailLen > 0) { pstrSetBeaconParam->pu8Tail = kmalloc(u32TailLen, GFP_KERNEL); if (pstrSetBeaconParam->pu8Tail == NULL) { @@ -7279,10 +7267,8 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u -/*Bug4218: Parsing Join Param*/ #ifdef WILC_PARSE_SCAN_IN_HOST -/*Bug4218: Parsing Join Param*/ /** * @brief host_int_ParseJoinBssParam * @details Parse Needed Join Parameters and save it in a new JoinBssParam entry diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index 4c02b98cd58e..b1af421178f2 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -60,7 +60,6 @@ void WILC_WFI_monitor_rx(u8 *buff, u32 size) PRINT_INFO(HOSTAPD_DBG, "In monitor interface receive function\n"); - /* Bug 4601 */ if (wilc_wfi_mon == NULL) return; @@ -222,7 +221,6 @@ static netdev_tx_t WILC_WFI_mon_xmit(struct sk_buff *skb, struct sk_buff *skb2; struct wilc_wfi_radiotap_cb_hdr *cb_hdr; - /* Bug 4601 */ if (wilc_wfi_mon == NULL) return -EFAULT; diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 4534fb927be8..7a33543ddcba 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -615,7 +615,7 @@ int linux_wlan_get_firmware(perInterface_wlan_t *p_nic) goto _fail_; } #endif - g_linux_wlan->wilc_firmware = wilc_firmware; /* Bug 4703 */ + g_linux_wlan->wilc_firmware = wilc_firmware; _fail_: @@ -736,7 +736,7 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_BSS_TYPE, c_val, 1, 0, 0)) goto _fail_; - /* c_val[0] = RATE_AUTO; / * bug 4275: Enable autorate and limit it to 24Mbps * / */ + /* c_val[0] = RATE_AUTO; */ c_val[0] = RATE_AUTO; if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_CURRENT_TX_RATE, c_val, 1, 0, 0)) goto _fail_; @@ -2012,7 +2012,6 @@ static void __exit exit_wilc_driver(void) } } - /* Bug 4600 : WILC_WFI_deinit_mon_interface was already called at mac_close */ /* WILC_WFI_deinit_mon_interface(); */ /* if(g_linux_wlan->open_ifcs==0) */ diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index fbe86439652b..0dc6302e0eea 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2529,8 +2529,6 @@ int mgmt_tx_cancel_wait(struct wiphy *wiphy, pstrWFIDrv->u64P2p_MgmtTimeout = jiffies; if (priv->bInP2PlistenState == false) { - /* Bug 5504: This is just to avoid connection failure when getting stuck when the supplicant - * considers the driver falsely that it is in Listen state */ cfg80211_remain_on_channel_expired(priv->wdev, priv->strRemainOnChanParams.u64ListenCookie, priv->strRemainOnChanParams.pstrListenChan, diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index ca9572814608..90fe1e274033 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -188,7 +188,7 @@ typedef struct { unsigned char eth_src_address[NUM_CONCURRENT_IFC][6]; /* unsigned char eth_dst_address[6]; */ - const struct firmware *wilc_firmware; /* Bug 4703 */ + const struct firmware *wilc_firmware; struct net_device *real_ndev; #ifdef WILC_SDIO diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 82b32a92c471..ba502f125d8a 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -547,7 +547,6 @@ static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wi return p->txq_entries; } -/*Bug3959: transmitting mgmt frames received from host*/ int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func) { @@ -870,9 +869,6 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) if (tqe->type == WILC_CFG_PKT) { vmm_sz = ETH_CONFIG_PKT_HDR_OFFSET; } - /*Bug3959: transmitting mgmt frames received from host*/ - /*vmm_sz will only be equal to tqe->buffer_size + 4 bytes (HOST_HDR_OFFSET)*/ - /* in other cases WILC_MGMT_PKT and WILC_DATA_PKT_MAC_HDR*/ else if (tqe->type == WILC_NET_PKT) { vmm_sz = ETH_ETHERNET_HDR_OFFSET; } @@ -959,7 +955,7 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) /** * write to vmm table **/ - ret = p->hif_func.hif_block_tx(WILC_VMM_TBL_RX_SHADOW_BASE, (u8 *)vmm_table, ((i + 1) * 4)); /* Bug 4477 fix */ + ret = p->hif_func.hif_block_tx(WILC_VMM_TBL_RX_SHADOW_BASE, (u8 *)vmm_table, ((i + 1) * 4)); if (!ret) { wilc_debug(N_ERR, "ERR block TX of VMM table.\n"); break; @@ -1057,8 +1053,6 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) vmm_sz = (vmm_table[i] & 0x3ff); /* in word unit */ vmm_sz *= 4; header = (tqe->type << 31) | (tqe->buffer_size << 15) | vmm_sz; - /*Bug3959: transmitting mgmt frames received from host*/ - /*setting bit 30 in the host header to indicate mgmt frame*/ if (tqe->type == WILC_MGMT_PKT) header |= (1 << 30); else @@ -1071,9 +1065,6 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) if (tqe->type == WILC_CFG_PKT) { buffer_offset = ETH_CONFIG_PKT_HDR_OFFSET; } - /*Bug3959: transmitting mgmt frames received from host*/ - /*buffer offset = HOST_HDR_OFFSET in other cases: WILC_MGMT_PKT*/ - /* and WILC_DATA_PKT_MAC_HDR*/ else if (tqe->type == WILC_NET_PKT) { char *pBSSID = ((struct tx_complete_data *)(tqe->priv))->pBssid; @@ -1434,7 +1425,7 @@ static int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size) u8 *dma_buffer; int ret = 0; - blksz = (1ul << 12); /* Bug 4703: 4KB Good enough size for most platforms = PAGE_SIZE. */ + blksz = (1ul << 12); /* Allocate a DMA coherent buffer. */ dma_buffer = kmalloc(blksz, GFP_KERNEL); @@ -1685,9 +1676,6 @@ static int wilc_wlan_stop(void) } while (timeout); #if 1 -/******************************************************************************/ -/* This was add at Bug 4595 to reset the chip while maintaining the bus state */ -/******************************************************************************/ reg = ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 8) | (1 << 9) | (1 << 26) | (1 << 29) | (1 << 30) | (1 << 31)); /**/ /**/ p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); /**/ @@ -2106,7 +2094,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) oup->wlan_cfg_get = wilc_wlan_cfg_get; oup->wlan_cfg_get_value = wilc_wlan_cfg_get_val; - /*Bug3959: transmitting mgmt frames received from host*/ oup->wlan_add_mgmt_to_tx_que = wilc_wlan_txq_add_mgmt_pkt; if (!init_chip()) { diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 9f05b791a0aa..60da18c9d938 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -22,7 +22,6 @@ #define ETH_ETHERNET_HDR_OFFSET (MAX_MAC_HDR_LEN + SUB_MSDU_HEADER_LENGTH + \ SNAP_HDR_LEN - ETHERNET_HDR_LEN + WORD_ALIGNMENT_PAD) -/*Bug3959: transmitting mgmt frames received from host*/ #define HOST_HDR_OFFSET 4 #define ETHERNET_HDR_LEN 14 #define IP_HDR_LEN 20 @@ -104,8 +103,8 @@ #define WILC_AHB_DATA_MEM_BASE 0x30000 #define WILC_AHB_SHARE_MEM_BASE 0xd0000 -#define WILC_VMM_TBL_RX_SHADOW_BASE WILC_AHB_SHARE_MEM_BASE /* Bug 4477 fix */ -#define WILC_VMM_TBL_RX_SHADOW_SIZE (256) /* Bug 4477 fix */ +#define WILC_VMM_TBL_RX_SHADOW_BASE WILC_AHB_SHARE_MEM_BASE +#define WILC_VMM_TBL_RX_SHADOW_SIZE (256) #define WILC_GP_REG_0 0x149c #define WILC_GP_REG_1 0x14a0 @@ -137,7 +136,6 @@ ********************************************/ #define WILC_CFG_PKT 1 #define WILC_NET_PKT 0 -/*Bug3959: transmitting mgmt frames received from host*/ #define WILC_MGMT_PKT 2 #define WILC_CFG_SET 1 diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index 473d7568cdbd..ce16775be25f 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -541,7 +541,6 @@ static int wilc_wlan_cfg_indicate_rx(u8 *frame, int size, wilc_cfg_rsp_t *rsp) break; #endif -/*bug3819:*/ case 'S': PRINT_INFO(RX_DBG, "Scan Notification Received\n"); host_int_ScanCompleteReceived(frame - 4, size + 4); diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 0e2937b82e17..5f68b6aea075 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -11,7 +11,6 @@ #ifndef WILC_WLAN_IF_H #define WILC_WLAN_IF_H -/*bug 3887: [AP] Allow Management frames to be passed to the host*/ /* #define MEMORY_STATIC */ /* #define USE_OLD_SPI_SW */ @@ -171,7 +170,6 @@ typedef struct { int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32); int (*wlan_cfg_get)(int, u32, int, u32); int (*wlan_cfg_get_value)(u32, u8 *, u32); - /*Bug3959: transmitting mgmt frames received from host*/ int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); } wilc_wlan_oup_t; @@ -235,7 +233,6 @@ typedef enum { #define MAC_CONNECTED 1 #define MAC_DISCONNECTED 0 -/*bug3819: */ #define SCAN_DONE TRUE typedef enum { PASSIVE_SCAN = 0, @@ -756,7 +753,6 @@ typedef enum { /* Custom Character WID list */ WID_PC_TEST_MODE = 0x00C8, - /*bug3819: */ /* SCAN Complete notification WID*/ WID_SCAN_COMPLETE = 0x00C9, From 967c606a90fc6f0fc6f1368a481fa906ab0aa54f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:20 +0900 Subject: [PATCH 0511/2431] staging: wilc1000: wilc_msgqueue.c: replace s32RetStatus with result This patch replaces s32RetStatus with result to avoid CamelCase in wilc_msgqueue.c Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 225bb99986a5..869736aab44d 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -55,19 +55,19 @@ int wilc_mq_destroy(WILC_MsgQueueHandle *pHandle) int wilc_mq_send(WILC_MsgQueueHandle *pHandle, const void *pvSendBuffer, u32 u32SendBufferSize) { - int s32RetStatus = 0; + int result = 0; unsigned long flags; Message *pstrMessage = NULL; if ((!pHandle) || (u32SendBufferSize == 0) || (!pvSendBuffer)) { PRINT_ER("pHandle or pvSendBuffer is null\n"); - s32RetStatus = -EFAULT; + result = -EFAULT; goto ERRORHANDLER; } if (pHandle->bExiting) { PRINT_ER("pHandle fail\n"); - s32RetStatus = -EFAULT; + result = -EFAULT; goto ERRORHANDLER; } @@ -81,7 +81,7 @@ int wilc_mq_send(WILC_MsgQueueHandle *pHandle, pstrMessage->pstrNext = NULL; pstrMessage->pvBuffer = kmalloc(u32SendBufferSize, GFP_ATOMIC); if (!pstrMessage->pvBuffer) { - s32RetStatus = -ENOMEM; + result = -ENOMEM; goto ERRORHANDLER; } memcpy(pstrMessage->pvBuffer, pvSendBuffer, u32SendBufferSize); @@ -109,7 +109,7 @@ ERRORHANDLER: kfree(pstrMessage); } - return s32RetStatus; + return result; } /*! @@ -123,7 +123,7 @@ int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, u32 *pu32ReceivedLength) { Message *pstrMessage; - int s32RetStatus = 0; + int result = 0; unsigned long flags; if ((!pHandle) || (u32RecvBufferSize == 0) @@ -144,9 +144,9 @@ int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, down(&pHandle->hSem); /* other non-timeout scenarios */ - if (s32RetStatus) { + if (result) { PRINT_ER("Non-timeout\n"); - return s32RetStatus; + return result; } if (pHandle->bExiting) { @@ -182,5 +182,5 @@ int wilc_mq_recv(WILC_MsgQueueHandle *pHandle, spin_unlock_irqrestore(&pHandle->strCriticalSection, flags); - return s32RetStatus; + return result; } From 244d31b572c6935f30d2e0b52c6316cd5528ba41 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:21 +0900 Subject: [PATCH 0512/2431] staging: wilc1000: remove useless #if 1 This patch removes #if 1, which is encapsulated some codes. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ---- drivers/staging/wilc1000/wilc_wlan.c | 2 -- drivers/staging/wilc1000/wilc_wlan_cfg.c | 2 -- 3 files changed, 8 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 0dc6302e0eea..7aff04a1eb08 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2948,7 +2948,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Downloading P2P_CONCURRENCY_FIRMWARE\n"); - #if 1 nic->iftype = GO_MODE; /* ensure that the message Q is empty */ @@ -2988,7 +2987,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, g_key_gtk_params.key[1], g_key_gtk_params.key[2], g_key_gtk_params.cipher); - #if 1 add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, g_linux_wlan->strInterfaceInfo[0].wilc_netdev, g_add_ptk_key_params.key_idx, @@ -3002,9 +3000,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, (struct key_params *)(&g_key_gtk_params)); - #endif } - #endif if (g_linux_wlan->wilc1000_initialized) { for (i = 0; i < num_reg_frame; i++) { diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index ba502f125d8a..0a930ecef554 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1675,7 +1675,6 @@ static int wilc_wlan_stop(void) } } while (timeout); -#if 1 reg = ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 8) | (1 << 9) | (1 << 26) | (1 << 29) | (1 << 30) | (1 << 31)); /**/ /**/ p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); /**/ @@ -1683,7 +1682,6 @@ static int wilc_wlan_stop(void) /**/ ret = p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); /**/ /******************************************************************************/ -#endif release_bus(RELEASE_ALLOW_SLEEP); diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index ce16775be25f..73a15082ac3f 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -534,13 +534,11 @@ static int wilc_wlan_cfg_indicate_rx(u8 *frame, int size, wilc_cfg_rsp_t *rsp) GnrlAsyncInfoReceived(frame - 4, size + 4); break; -#if 1 case 'N': NetworkInfoReceived(frame - 4, size + 4); rsp->type = 0; break; -#endif case 'S': PRINT_INFO(RX_DBG, "Scan Notification Received\n"); host_int_ScanCompleteReceived(frame - 4, size + 4); From f1fe9c435d048cba8dcb4f0515f016722e246f73 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:22 +0900 Subject: [PATCH 0513/2431] staging: wilc1000: remove braces for single statement blocks This patch removes braces for single if statement blocks found by checkpatch.pl WARNING: braces {} are not necessary for single statement blocks Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 7aff04a1eb08..f0bbd903e176 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3627,9 +3627,9 @@ int WILC_WFI_InitHostInt(struct net_device *net) sema_init(&(priv->hSemScanReq), 1); s32Error = host_int_init(&priv->hWILCWFIDrv); - if (s32Error) { + if (s32Error) PRINT_ER("Error while initializing hostinterface\n"); - } + return s32Error; } @@ -3667,9 +3667,9 @@ int WILC_WFI_DeInitHostInt(struct net_device *net) } #endif - if (s32Error) { + if (s32Error) PRINT_ER("Error while deintializing host interface\n"); - } + return s32Error; } From 1a8ccd85854c24963306c23382afb8a7fd3c046b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:23 +0900 Subject: [PATCH 0514/2431] staging: wilc1000: replace s32 with int This patch changes date type of s32Error as int. The return type of WILC_WFI_InitHostInt and WILC_WFI_DeInitHostInt is int so that data type of this variable is changed by int. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index f0bbd903e176..41dd1c3ed88e 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3603,7 +3603,7 @@ struct wireless_dev *wilc_create_wiphy(struct net_device *net) int WILC_WFI_InitHostInt(struct net_device *net) { - s32 s32Error = 0; + int s32Error = 0; struct wilc_priv *priv; @@ -3644,7 +3644,7 @@ int WILC_WFI_InitHostInt(struct net_device *net) */ int WILC_WFI_DeInitHostInt(struct net_device *net) { - s32 s32Error = 0; + int s32Error = 0; struct wilc_priv *priv; From a9a1682344107cfefa35cf6c14c1019c67288f88 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:24 +0900 Subject: [PATCH 0515/2431] staging: wilc1000: rename WILC_WFI_DeInitHostInt This patch replaces WILC_WFI_DeInitHostInt with wilc_deinit_host_int to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 6 +++--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 7a33543ddcba..6f0a74132e26 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1437,7 +1437,7 @@ int mac_open(struct net_device *ndev) ret = wilc1000_wlan_init(ndev, nic); if (ret < 0) { PRINT_ER("Failed to initialize wilc1000\n"); - WILC_WFI_DeInitHostInt(ndev); + wilc_deinit_host_int(ndev); return ret; } @@ -1474,7 +1474,7 @@ int mac_open(struct net_device *ndev) return 0; _err_: - WILC_WFI_DeInitHostInt(ndev); + wilc_deinit_host_int(ndev); wilc1000_wlan_deinit(g_linux_wlan); return ret; } @@ -1667,7 +1667,7 @@ int mac_close(struct net_device *ndev) /* Stop the network interface queue */ netif_stop_queue(nic->wilc_netdev); - WILC_WFI_DeInitHostInt(nic->wilc_netdev); + wilc_deinit_host_int(nic->wilc_netdev); } if (g_linux_wlan->open_ifcs == 0) { diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 41dd1c3ed88e..7222359a3839 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3642,7 +3642,7 @@ int WILC_WFI_InitHostInt(struct net_device *net) * @date 01 MAR 2012 * @version 1.0 */ -int WILC_WFI_DeInitHostInt(struct net_device *net) +int wilc_deinit_host_int(struct net_device *net) { int s32Error = 0; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 579bf2b129b1..91856732e2d8 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -95,7 +95,7 @@ struct wireless_dev *WILC_WFI_CfgAlloc(void); struct wireless_dev *wilc_create_wiphy(struct net_device *net); void wilc_free_wiphy(struct net_device *net); int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed); -int WILC_WFI_DeInitHostInt(struct net_device *net); +int wilc_deinit_host_int(struct net_device *net); int WILC_WFI_InitHostInt(struct net_device *net); void WILC_WFI_monitor_rx(u8 *buff, u32 size); int WILC_WFI_deinit_mon_interface(void); From dd4b6a832e4bef352a6038c07415c4eb4d1d6ee1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:25 +0900 Subject: [PATCH 0516/2431] staging: wilc1000: rename WILC_WFI_InitHostInt This patch replaces WILC_WFI_InitHostInt with wilc_init_host_int to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 6f0a74132e26..5b9c48abc228 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1425,7 +1425,7 @@ int mac_open(struct net_device *ndev) priv = wiphy_priv(nic->wilc_netdev->ieee80211_ptr->wiphy); PRINT_D(INIT_DBG, "MAC OPEN[%p]\n", ndev); - ret = WILC_WFI_InitHostInt(ndev); + ret = wilc_init_host_int(ndev); if (ret < 0) { PRINT_ER("Failed to initialize host interface\n"); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 7222359a3839..7874c9e3a654 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3600,7 +3600,7 @@ struct wireless_dev *wilc_create_wiphy(struct net_device *net) * @date 01 MAR 2012 * @version 1.0 */ -int WILC_WFI_InitHostInt(struct net_device *net) +int wilc_init_host_int(struct net_device *net) { int s32Error = 0; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 91856732e2d8..a6145fcaf6d3 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -96,7 +96,7 @@ struct wireless_dev *wilc_create_wiphy(struct net_device *net); void wilc_free_wiphy(struct net_device *net); int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed); int wilc_deinit_host_int(struct net_device *net); -int WILC_WFI_InitHostInt(struct net_device *net); +int wilc_init_host_int(struct net_device *net); void WILC_WFI_monitor_rx(u8 *buff, u32 size); int WILC_WFI_deinit_mon_interface(void); struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev); From 98a52483161d5a117e137b43874fd9182492f0e8 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Sun, 20 Sep 2015 16:55:29 +0530 Subject: [PATCH 0517/2431] Staging: rtl8712: Coding style warning fix for block comment This is a patch to mlme_linux.c that fixes up following warning reported by checkpatch.pl : -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/mlme_linux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/mlme_linux.c b/drivers/staging/rtl8712/mlme_linux.c index 8c5a475f05e7..6d253bf6021e 100644 --- a/drivers/staging/rtl8712/mlme_linux.c +++ b/drivers/staging/rtl8712/mlme_linux.c @@ -122,7 +122,8 @@ void r8712_os_indicate_disconnect(struct _adapter *adapter) r8712_use_tkipkey_handler, (unsigned long)adapter); /* Restore the PMK information to securitypriv structure - * for the following connection. */ + * for the following connection. + */ memcpy(&adapter->securitypriv.PMKIDList[0], &backupPMKIDList[0], sizeof(struct RT_PMKID_LIST) * NUM_PMKID_CACHE); From 069b3162590896352d3f3d55868667495a8ba9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Beamonte?= Date: Sun, 20 Sep 2015 13:14:13 -0400 Subject: [PATCH 0518/2431] staging: rtl8192u: r8192U_core: add line breaks to keep lines under 80 characters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add line breaks in multiple lines to keep them under 80 characters, as to follow the kernel code style. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 608 +++++++++++++++++-------- 1 file changed, 409 insertions(+), 199 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index d243989c7d66..28b54babf498 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -190,11 +190,14 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv) min_chan = 1; max_chan = 14; } else { - RT_TRACE(COMP_ERR, "unknown rf chip, can't set channel map in function:%s()\n", __func__); + RT_TRACE(COMP_ERR, + "unknown rf chip, can't set channel map in function:%s()\n", + __func__); } if (ChannelPlan[channel_plan].Len != 0) { /* Clear old channel map */ - memset(GET_DOT11D_INFO(ieee)->channel_map, 0, sizeof(GET_DOT11D_INFO(ieee)->channel_map)); + memset(GET_DOT11D_INFO(ieee)->channel_map, 0, + sizeof(GET_DOT11D_INFO(ieee)->channel_map)); /* Set new channel map */ for (i = 0; i < ChannelPlan[channel_plan].Len; i++) { if (ChannelPlan[channel_plan].Channel[i] < min_chan || ChannelPlan[channel_plan].Channel[i] > max_chan) @@ -262,7 +265,8 @@ void write_nic_byte_E(struct net_device *dev, int indx, u8 data) indx | 0xfe00, 0, &data, 1, HZ / 2); if (status < 0) - netdev_err(dev, "write_nic_byte_E TimeOut! status: %d\n", status); + netdev_err(dev, "write_nic_byte_E TimeOut! status: %d\n", + status); } int read_nic_byte_E(struct net_device *dev, int indx, u8 *data) @@ -292,7 +296,8 @@ void write_nic_byte(struct net_device *dev, int indx, u8 data) status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, - (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, &data, 1, HZ / 2); + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, + &data, 1, HZ / 2); if (status < 0) netdev_err(dev, "write_nic_byte TimeOut! status: %d\n", status); @@ -311,7 +316,8 @@ void write_nic_word(struct net_device *dev, int indx, u16 data) status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, - (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, &data, 2, HZ / 2); + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, + &data, 2, HZ / 2); if (status < 0) netdev_err(dev, "write_nic_word TimeOut! status: %d\n", status); @@ -329,11 +335,13 @@ void write_nic_dword(struct net_device *dev, int indx, u32 data) status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, - (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, &data, 4, HZ / 2); + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, + &data, 4, HZ / 2); if (status < 0) - netdev_err(dev, "write_nic_dword TimeOut! status: %d\n", status); + netdev_err(dev, "write_nic_dword TimeOut! status: %d\n", + status); } @@ -347,7 +355,8 @@ int read_nic_byte(struct net_device *dev, int indx, u8 *data) status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, - (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, data, 1, HZ / 2); + (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, + data, 1, HZ / 2); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); @@ -619,7 +628,8 @@ static void rtl8192_proc_init_one(struct net_device *dev) if (rtl8192_proc) { dir = proc_mkdir_data(dev->name, 0, rtl8192_proc, dev); if (!dir) { - RT_TRACE(COMP_ERR, "Unable to initialize /proc/net/rtl8192/%s\n", + RT_TRACE(COMP_ERR, + "Unable to initialize /proc/net/rtl8192/%s\n", dev->name); return; } @@ -732,7 +742,8 @@ static int rtl8192_rx_initiate(struct net_device *dev) break; } usb_fill_bulk_urb(entry, priv->udev, - usb_rcvbulkpipe(priv->udev, 3), skb_tail_pointer(skb), + usb_rcvbulkpipe(priv->udev, 3), + skb_tail_pointer(skb), RX_URB_SIZE, rtl8192_rx_isr, skb); info = (struct rtl8192_rx_info *)skb->cb; info->urb = entry; @@ -753,7 +764,8 @@ static int rtl8192_rx_initiate(struct net_device *dev) break; } usb_fill_bulk_urb(entry, priv->udev, - usb_rcvbulkpipe(priv->udev, 9), skb_tail_pointer(skb), + usb_rcvbulkpipe(priv->udev, 9), + skb_tail_pointer(skb), RX_URB_SIZE, rtl8192_rx_isr, skb); info = (struct rtl8192_rx_info *)skb->cb; info->urb = entry; @@ -924,7 +936,8 @@ static void rtl8192_rx_isr(struct urb *urb) } usb_fill_bulk_urb(urb, priv->udev, - usb_rcvbulkpipe(priv->udev, out_pipe), skb_tail_pointer(skb), + usb_rcvbulkpipe(priv->udev, out_pipe), + skb_tail_pointer(skb), RX_URB_SIZE, rtl8192_rx_isr, skb); info = (struct rtl8192_rx_info *)skb->cb; @@ -937,7 +950,9 @@ static void rtl8192_rx_isr(struct urb *urb) skb_queue_tail(&priv->rx_queue, skb); err = usb_submit_urb(urb, GFP_ATOMIC); if (err && err != EPERM) - netdev_err(dev, "can not submit rxurb, err is %x, URB status is %x\n", err, urb->status); + netdev_err(dev, + "can not submit rxurb, err is %x, URB status is %x\n", + err, urb->status); } static u32 rtl819xusb_rx_command_packet(struct net_device *dev, @@ -967,7 +982,8 @@ static void rtl8192_data_hard_resume(struct net_device *dev) /* this function TX data frames when the ieee80211 stack requires this. * It checks also if we need to stop the ieee tx queue, eventually do it */ -static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate) +static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, + int rate) { struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); int ret; @@ -1034,7 +1050,8 @@ static void rtl8192_tx_isr(struct urb *tx_urb) dev->trans_start = jiffies; priv->stats.txoktotal++; priv->ieee80211->LinkDetectInfo.NumTxOkInPeriod++; - priv->stats.txbytesunicast += (skb->len - priv->ieee80211->tx_headroom); + priv->stats.txbytesunicast += + (skb->len - priv->ieee80211->tx_headroom); } else { priv->ieee80211->stats.tx_errors++; /* TODO */ @@ -1067,7 +1084,8 @@ static void rtl8192_tx_isr(struct urb *tx_urb) (!(priv->ieee80211->queue_stop))) { skb = skb_dequeue(&(priv->ieee80211->skb_waitQ[queue_index])); if (skb) - priv->ieee80211->softmac_hard_start_xmit(skb, dev); + priv->ieee80211->softmac_hard_start_xmit(skb, + dev); return; /* avoid further processing AMSDU */ } @@ -1186,7 +1204,8 @@ static void rtl8192_update_cap(struct net_device *dev, u16 cap) if (net->mode & (IEEE_G | IEEE_N_24G)) { u8 slot_time = 0; - if ((cap & WLAN_CAPABILITY_SHORT_SLOT) && (!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) + if ((cap & WLAN_CAPABILITY_SHORT_SLOT) && + (!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) /* short slot time */ slot_time = SHORT_SLOT_TIME; else /* long slot time */ @@ -1276,7 +1295,8 @@ short rtl819xU_tx_cmd(struct net_device *dev, struct sk_buff *skb) *--------------------------------------------------------------------- */ idx_pipe = 0x04; - usb_fill_bulk_urb(tx_urb, priv->udev, usb_sndbulkpipe(priv->udev, idx_pipe), + usb_fill_bulk_urb(tx_urb, priv->udev, + usb_sndbulkpipe(priv->udev, idx_pipe), skb->data, skb->len, rtl8192_tx_isr, skb); status = usb_submit_urb(tx_urb, GFP_ATOMIC); @@ -1333,7 +1353,9 @@ static u8 MapHwQueueToFirmwareQueue(u8 QueueID) break; default: - RT_TRACE(COMP_ERR, "TransmitTCB(): Impossible Queue Selection: %d\n", QueueID); + RT_TRACE(COMP_ERR, + "TransmitTCB(): Impossible Queue Selection: %d\n", + QueueID); break; } return QueueSelect; @@ -1445,7 +1467,9 @@ static u8 QueryIsShort(u8 TxHT, u8 TxRate, cb_desc *tcb_desc) { u8 tmp_Short; - tmp_Short = (TxHT == 1) ? ((tcb_desc->bUseShortGI) ? 1 : 0) : ((tcb_desc->bUseShortPreamble) ? 1 : 0); + tmp_Short = (TxHT == 1) ? + ((tcb_desc->bUseShortGI) ? 1 : 0) : + ((tcb_desc->bUseShortPreamble) ? 1 : 0); if (TxHT == 1 && TxRate != DESC90_RATEMCS15) tmp_Short = 0; @@ -1467,7 +1491,8 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) struct r8192_priv *priv = ieee80211_priv(dev); cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); tx_desc_819x_usb *tx_desc = (tx_desc_819x_usb *)skb->data; - tx_fwinfo_819x_usb *tx_fwinfo = (tx_fwinfo_819x_usb *)(skb->data + USB_HWDESC_HEADER_LEN); + tx_fwinfo_819x_usb *tx_fwinfo = + (tx_fwinfo_819x_usb *)(skb->data + USB_HWDESC_HEADER_LEN); struct usb_device *udev = priv->udev; int pend; int status; @@ -1497,7 +1522,8 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) tx_fwinfo->TxHT = (tcb_desc->data_rate & 0x80) ? 1 : 0; tx_fwinfo->TxRate = MRateToHwRate8190Pci(tcb_desc->data_rate); tx_fwinfo->EnableCPUDur = tcb_desc->bTxEnableFwCalcDur; - tx_fwinfo->Short = QueryIsShort(tx_fwinfo->TxHT, tx_fwinfo->TxRate, tcb_desc); + tx_fwinfo->Short = QueryIsShort(tx_fwinfo->TxHT, tx_fwinfo->TxRate, + tcb_desc); if (tcb_desc->bAMPDUEnable) { /* AMPDU enabled */ tx_fwinfo->AllowAggregation = 1; /* DWORD 1 */ @@ -1614,15 +1640,19 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) if (bSend0Byte) { tx_urb_zero = usb_alloc_urb(0, GFP_ATOMIC); if (!tx_urb_zero) { - RT_TRACE(COMP_ERR, "can't alloc urb for zero byte\n"); + RT_TRACE(COMP_ERR, + "can't alloc urb for zero byte\n"); return -ENOMEM; } usb_fill_bulk_urb(tx_urb_zero, udev, - usb_sndbulkpipe(udev, idx_pipe), &zero, - 0, tx_zero_isr, dev); + usb_sndbulkpipe(udev, idx_pipe), + &zero, 0, tx_zero_isr, dev); status = usb_submit_urb(tx_urb_zero, GFP_ATOMIC); if (status) { - RT_TRACE(COMP_ERR, "Error TX URB for zero byte %d, error %d", atomic_read(&priv->tx_pending[tcb_desc->queue_index]), status); + RT_TRACE(COMP_ERR, + "Error TX URB for zero byte %d, error %d", + atomic_read(&priv->tx_pending[tcb_desc->queue_index]), + status); return -1; } } @@ -1631,7 +1661,8 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) return 0; } - RT_TRACE(COMP_ERR, "Error TX URB %d, error %d", atomic_read(&priv->tx_pending[tcb_desc->queue_index]), + RT_TRACE(COMP_ERR, "Error TX URB %d, error %d", + atomic_read(&priv->tx_pending[tcb_desc->queue_index]), status); return -1; } @@ -1650,7 +1681,8 @@ static short rtl8192_usb_initendpoints(struct net_device *dev) priv->rx_urb[i] = usb_alloc_urb(0, GFP_KERNEL); - priv->rx_urb[i]->transfer_buffer = kmalloc(RX_URB_SIZE, GFP_KERNEL); + priv->rx_urb[i]->transfer_buffer = + kmalloc(RX_URB_SIZE, GFP_KERNEL); priv->rx_urb[i]->transfer_buffer_length = RX_URB_SIZE; } @@ -1757,7 +1789,8 @@ static void rtl8192_link_change(struct net_device *dev) * way, but there is no chance to set this as wep will not set * group key in wext. */ - if ((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) + if (KEY_TYPE_WEP40 == ieee->pairwise_key_type || + KEY_TYPE_WEP104 == ieee->pairwise_key_type) EnableHWSecurityConfig8192(dev); } /*update timing params*/ @@ -1784,25 +1817,30 @@ static struct ieee80211_qos_parameters def_qos_parameters = { static void rtl8192_update_beacon(struct work_struct *work) { - struct r8192_priv *priv = container_of(work, struct r8192_priv, update_beacon_wq.work); + struct r8192_priv *priv = container_of(work, struct r8192_priv, + update_beacon_wq.work); struct net_device *dev = priv->ieee80211->dev; struct ieee80211_device *ieee = priv->ieee80211; struct ieee80211_network *net = &ieee->current_network; if (ieee->pHTInfo->bCurrentHTSupport) HTUpdateSelfAndPeerSetting(ieee, net); - ieee->pHTInfo->bCurrentRT2RTLongSlotTime = net->bssht.bdRT2RTLongSlotTime; + ieee->pHTInfo->bCurrentRT2RTLongSlotTime = + net->bssht.bdRT2RTLongSlotTime; rtl8192_update_cap(dev, net->capability); } /* * background support to run QoS activate functionality */ -static int WDCAPARA_ADD[] = {EDCAPARA_BE, EDCAPARA_BK, EDCAPARA_VI, EDCAPARA_VO}; +static int WDCAPARA_ADD[] = {EDCAPARA_BE, EDCAPARA_BK, + EDCAPARA_VI, EDCAPARA_VO}; static void rtl8192_qos_activate(struct work_struct *work) { - struct r8192_priv *priv = container_of(work, struct r8192_priv, qos_activate); + struct r8192_priv *priv = container_of(work, struct r8192_priv, + qos_activate); struct net_device *dev = priv->ieee80211->dev; - struct ieee80211_qos_parameters *qos_parameters = &priv->ieee80211->current_network.qos_data.parameters; + struct ieee80211_qos_parameters *qos_parameters = + &priv->ieee80211->current_network.qos_data.parameters; u8 mode = priv->ieee80211->current_network.mode; u32 u1bAIFS; u32 u4bAcParam; @@ -1814,7 +1852,8 @@ static void rtl8192_qos_activate(struct work_struct *work) mutex_lock(&priv->mutex); if (priv->ieee80211->state != IEEE80211_LINKED) goto success; - RT_TRACE(COMP_QOS, "qos active process with associate response received\n"); + RT_TRACE(COMP_QOS, + "qos active process with associate response received\n"); /* It better set slot time at first * * For we just support b/g mode at present, let the slot time at @@ -1874,7 +1913,8 @@ static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv, if ((network->qos_data.active == 1) && (active_network == 1)) { queue_work(priv->priv_wq, &priv->qos_activate); - RT_TRACE(COMP_QOS, "QoS was disabled call qos_activate\n"); + RT_TRACE(COMP_QOS, + "QoS was disabled call qos_activate\n"); } network->qos_data.active = 0; network->qos_data.supported = 0; @@ -1939,7 +1979,9 @@ static int rtl8192_qos_association_resp(struct r8192_priv *priv, spin_unlock_irqrestore(&priv->ieee80211->lock, flags); - RT_TRACE(COMP_QOS, "%s: network->flags = %d,%d\n", __func__, network->flags, priv->ieee80211->current_network.qos_data.active); + RT_TRACE(COMP_QOS, "%s: network->flags = %d,%d\n", __func__, + network->flags, + priv->ieee80211->current_network.qos_data.active); if (set_qos_param == 1) queue_work(priv->priv_wq, &priv->qos_activate); @@ -1948,9 +1990,10 @@ static int rtl8192_qos_association_resp(struct r8192_priv *priv, } -static int rtl8192_handle_assoc_response(struct net_device *dev, - struct ieee80211_assoc_response_frame *resp, - struct ieee80211_network *network) +static int rtl8192_handle_assoc_response( + struct net_device *dev, + struct ieee80211_assoc_response_frame *resp, + struct ieee80211_network *network) { struct r8192_priv *priv = ieee80211_priv(dev); @@ -1996,7 +2039,8 @@ static void rtl8192_update_ratr_table(struct net_device *dev) ratr_value &= 0x0FFFFFFF; if (ieee->pHTInfo->bCurTxBW40MHz && ieee->pHTInfo->bCurShortGI40MHz) ratr_value |= 0x80000000; - else if (!ieee->pHTInfo->bCurTxBW40MHz && ieee->pHTInfo->bCurShortGI20MHz) + else if (!ieee->pHTInfo->bCurTxBW40MHz && + ieee->pHTInfo->bCurShortGI20MHz) ratr_value |= 0x80000000; write_nic_dword(dev, RATR0 + rate_index * 4, ratr_value); write_nic_byte(dev, UFWP, 1); @@ -2017,7 +2061,9 @@ static bool GetNmodeSupportBySecCfg8192(struct net_device *dev) /* we use connecting AP's capability instead of only security config * on our driver to distinguish whether it should use N mode or G mode */ - encrypt = (network->capability & WLAN_CAPABILITY_PRIVACY) || (ieee->host_encrypt && crypt && crypt->ops && (0 == strcmp(crypt->ops->name, "WEP"))); + encrypt = (network->capability & WLAN_CAPABILITY_PRIVACY) || + (ieee->host_encrypt && crypt && crypt->ops && + (0 == strcmp(crypt->ops->name, "WEP"))); /* simply judge */ if (encrypt && (wpa_ie_len == 0)) { @@ -2049,8 +2095,10 @@ static void rtl8192_refresh_supportrate(struct r8192_priv *priv) /* We do not consider set support rate for ABG mode, only * HT MCS rate is set here. */ - if (ieee->mode == WIRELESS_MODE_N_24G || ieee->mode == WIRELESS_MODE_N_5G) - memcpy(ieee->Regdot11HTOperationalRateSet, ieee->RegHTSuppRateSet, 16); + if (ieee->mode == WIRELESS_MODE_N_24G || + ieee->mode == WIRELESS_MODE_N_5G) + memcpy(ieee->Regdot11HTOperationalRateSet, + ieee->RegHTSuppRateSet, 16); else memset(ieee->Regdot11HTOperationalRateSet, 0, 16); } @@ -2080,7 +2128,8 @@ static void rtl8192_SetWirelessMode(struct net_device *dev, u8 wireless_mode) struct r8192_priv *priv = ieee80211_priv(dev); u8 bSupportMode = rtl8192_getSupportedWireleeMode(dev); - if ((wireless_mode == WIRELESS_MODE_AUTO) || ((wireless_mode & bSupportMode) == 0)) { + if (wireless_mode == WIRELESS_MODE_AUTO || + (wireless_mode & bSupportMode) == 0) { if (bSupportMode & WIRELESS_MODE_N_24G) { wireless_mode = WIRELESS_MODE_N_24G; } else if (bSupportMode & WIRELESS_MODE_N_5G) { @@ -2092,7 +2141,9 @@ static void rtl8192_SetWirelessMode(struct net_device *dev, u8 wireless_mode) } else if ((bSupportMode & WIRELESS_MODE_B)) { wireless_mode = WIRELESS_MODE_B; } else { - RT_TRACE(COMP_ERR, "%s(), No valid wireless mode supported, SupportedWirelessMode(%x)!!!\n", __func__, bSupportMode); + RT_TRACE(COMP_ERR, + "%s(), No valid wireless mode supported, SupportedWirelessMode(%x)!!!\n", + __func__, bSupportMode); wireless_mode = WIRELESS_MODE_B; } } @@ -2100,11 +2151,14 @@ static void rtl8192_SetWirelessMode(struct net_device *dev, u8 wireless_mode) /* TODO: this function doesn't work well at this time, * we should wait for FPGA */ - ActUpdateChannelAccessSetting(pAdapter, pHalData->CurrentWirelessMode, &pAdapter->MgntInfo.Info8185.ChannelAccessSetting); + ActUpdateChannelAccessSetting( + pAdapter, pHalData->CurrentWirelessMode, + &pAdapter->MgntInfo.Info8185.ChannelAccessSetting); #endif priv->ieee80211->mode = wireless_mode; - if ((wireless_mode == WIRELESS_MODE_N_24G) || (wireless_mode == WIRELESS_MODE_N_5G)) + if (wireless_mode == WIRELESS_MODE_N_24G || + wireless_mode == WIRELESS_MODE_N_5G) priv->ieee80211->pHTInfo->bEnableHT = 1; else priv->ieee80211->pHTInfo->bEnableHT = 0; @@ -2139,14 +2193,16 @@ static void rtl8192_init_priv_variable(struct net_device *dev) /* we don't use FW read/write RF until stable firmware is available. */ priv->ieee80211->FwRWRF = 0; - priv->ieee80211->current_network.beacon_interval = DEFAULT_BEACONINTERVAL; + priv->ieee80211->current_network.beacon_interval = + DEFAULT_BEACONINTERVAL; priv->ieee80211->softmac_features = IEEE_SOFTMAC_SCAN | IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ | IEEE_SOFTMAC_PROBERS | IEEE_SOFTMAC_TX_QUEUE | IEEE_SOFTMAC_BEACONS; priv->ieee80211->active_scan = 1; - priv->ieee80211->modulation = IEEE80211_CCK_MODULATION | IEEE80211_OFDM_MODULATION; + priv->ieee80211->modulation = + IEEE80211_CCK_MODULATION | IEEE80211_OFDM_MODULATION; priv->ieee80211->host_encrypt = 1; priv->ieee80211->host_decrypt = 1; priv->ieee80211->start_send_beacons = NULL; @@ -2168,7 +2224,8 @@ static void rtl8192_init_priv_variable(struct net_device *dev) priv->ieee80211->handle_beacon = rtl8192_handle_beacon; priv->ieee80211->GetNmodeSupportBySecCfg = GetNmodeSupportBySecCfg8192; - priv->ieee80211->GetHalfNmodeSupportByAPsHandler = GetHalfNmodeSupportByAPs819xUsb; + priv->ieee80211->GetHalfNmodeSupportByAPsHandler = + GetHalfNmodeSupportByAPs819xUsb; priv->ieee80211->SetWirelessMode = rtl8192_SetWirelessMode; priv->ieee80211->InitialGainHandler = InitialGain819xUsb; @@ -2196,28 +2253,29 @@ static void rtl8192_init_priv_variable(struct net_device *dev) (false ? TCR_SAT : 0); #ifdef TO_DO_LIST if (Adapter->bInHctTest) - pHalData->ReceiveConfig = pHalData->CSMethod | - /* accept management/data */ - RCR_AMF | RCR_ADF | - /* accept control frame for SW - * AP needs PS-poll - */ - RCR_ACF | - /* accept BC/MC/UC */ - RCR_AB | RCR_AM | RCR_APM | - /* accept ICV/CRC error - * packet - */ - RCR_AICV | RCR_ACRC32 | - /* Max DMA Burst Size per Tx - * DMA Burst, 7: unlimited. - */ - ((u32)7 << RCR_MXDMA_OFFSET) | - /* Rx FIFO Threshold, - * 7: No Rx threshold. - */ - (pHalData->EarlyRxThreshold << RCR_FIFO_OFFSET) | - (pHalData->EarlyRxThreshold == 7 ? RCR_OnlyErlPkt : 0); + pHalData->ReceiveConfig = + pHalData->CSMethod | + /* accept management/data */ + RCR_AMF | RCR_ADF | + /* accept control frame for SW + * AP needs PS-poll + */ + RCR_ACF | + /* accept BC/MC/UC */ + RCR_AB | RCR_AM | RCR_APM | + /* accept ICV/CRC error + * packet + */ + RCR_AICV | RCR_ACRC32 | + /* Max DMA Burst Size per Tx + * DMA Burst, 7: unlimited. + */ + ((u32)7 << RCR_MXDMA_OFFSET) | + /* Rx FIFO Threshold, + * 7: No Rx threshold. + */ + (pHalData->EarlyRxThreshold << RCR_FIFO_OFFSET) | + (pHalData->EarlyRxThreshold == 7 ? RCR_OnlyErlPkt : 0); else #endif @@ -2274,11 +2332,16 @@ static void rtl8192_init_priv_task(struct net_device *dev) INIT_WORK(&priv->reset_wq, rtl8192_restart); - INIT_DELAYED_WORK(&priv->watch_dog_wq, rtl819x_watchdog_wqcallback); - INIT_DELAYED_WORK(&priv->txpower_tracking_wq, dm_txpower_trackingcallback); - INIT_DELAYED_WORK(&priv->rfpath_check_wq, dm_rf_pathcheck_workitemcallback); - INIT_DELAYED_WORK(&priv->update_beacon_wq, rtl8192_update_beacon); - INIT_DELAYED_WORK(&priv->initialgain_operate_wq, InitialGainOperateWorkItemCallBack); + INIT_DELAYED_WORK(&priv->watch_dog_wq, + rtl819x_watchdog_wqcallback); + INIT_DELAYED_WORK(&priv->txpower_tracking_wq, + dm_txpower_trackingcallback); + INIT_DELAYED_WORK(&priv->rfpath_check_wq, + dm_rf_pathcheck_workitemcallback); + INIT_DELAYED_WORK(&priv->update_beacon_wq, + rtl8192_update_beacon); + INIT_DELAYED_WORK(&priv->initialgain_operate_wq, + InitialGainOperateWorkItemCallBack); INIT_WORK(&priv->qos_activate, rtl8192_qos_activate); tasklet_init(&priv->irq_rx_tasklet, @@ -2293,10 +2356,13 @@ static void rtl8192_get_eeprom_size(struct net_device *dev) RT_TRACE(COMP_EPROM, "===========>%s()\n", __func__); read_nic_word_E(dev, EPROM_CMD, &curCR); - RT_TRACE(COMP_EPROM, "read from Reg EPROM_CMD(%x):%x\n", EPROM_CMD, curCR); + RT_TRACE(COMP_EPROM, + "read from Reg EPROM_CMD(%x):%x\n", EPROM_CMD, curCR); /* whether need I consider BIT5? */ - priv->epromtype = (curCR & Cmd9346CR_9356SEL) ? EPROM_93c56 : EPROM_93c46; - RT_TRACE(COMP_EPROM, "<===========%s(), epromtype:%d\n", __func__, priv->epromtype); + priv->epromtype = + (curCR & Cmd9346CR_9356SEL) ? EPROM_93c56 : EPROM_93c46; + RT_TRACE(COMP_EPROM, + "<===========%s(), epromtype:%d\n", __func__, priv->epromtype); } /* used to swap endian. as ntohl & htonl are not necessary @@ -2322,7 +2388,9 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) RT_TRACE(COMP_EPROM, "EEPROM ID is 0x%x\n", wEPROM_ID); if (wEPROM_ID != RTL8190_EEPROM_ID) - RT_TRACE(COMP_ERR, "EEPROM ID is invalid(is 0x%x(should be 0x%x)\n", wEPROM_ID, RTL8190_EEPROM_ID); + RT_TRACE(COMP_ERR, + "EEPROM ID is invalid(is 0x%x(should be 0x%x)\n", + wEPROM_ID, RTL8190_EEPROM_ID); else bLoad_From_EEPOM = true; @@ -2333,7 +2401,8 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) tmpValue = eprom_read(dev, EEPROM_ChannelPlan >> 1); priv->eeprom_ChannelPlan = (tmpValue & 0xff00) >> 8; priv->btxpowerdata_readfromEEPORM = true; - priv->eeprom_CustomerID = eprom_read(dev, (EEPROM_Customer_ID >> 1)) >> 8; + priv->eeprom_CustomerID = + eprom_read(dev, (EEPROM_Customer_ID >> 1)) >> 8; } else { priv->eeprom_vid = 0; priv->eeprom_pid = 0; @@ -2341,7 +2410,10 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) priv->eeprom_ChannelPlan = 0; priv->eeprom_CustomerID = 0; } - RT_TRACE(COMP_EPROM, "vid:0x%4x, pid:0x%4x, CustomID:0x%2x, ChanPlan:0x%x\n", priv->eeprom_vid, priv->eeprom_pid, priv->eeprom_CustomerID, priv->eeprom_ChannelPlan); + RT_TRACE(COMP_EPROM, + "vid:0x%4x, pid:0x%4x, CustomID:0x%2x, ChanPlan:0x%x\n", + priv->eeprom_vid, priv->eeprom_pid, priv->eeprom_CustomerID, + priv->eeprom_ChannelPlan); /* set channelplan from eeprom */ priv->ChannelPlan = priv->eeprom_ChannelPlan; if (bLoad_From_EEPOM) { @@ -2474,7 +2546,8 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) /* Antenna B gain offset to antenna A, bit0~3 */ priv->AntennaTxPwDiff[0] = (priv->EEPROMTxPowerDiff & 0xf); /* Antenna C gain offset to antenna A, bit4~7 */ - priv->AntennaTxPwDiff[1] = (priv->EEPROMTxPowerDiff & 0xf0) >> 4; + priv->AntennaTxPwDiff[1] = + (priv->EEPROMTxPowerDiff & 0xf0) >> 4; /* CrystalCap, bit12~15 */ priv->CrystalCap = priv->EEPROMCrystalCap; /* ThermalMeter, bit0~3 for RFIC1, bit4~7 for RFIC2 @@ -2533,7 +2606,8 @@ static short rtl8192_get_channel_map(struct net_device *dev) struct r8192_priv *priv = ieee80211_priv(dev); if (priv->ChannelPlan > COUNTRY_CODE_GLOBAL_DOMAIN) { - netdev_err(dev, "rtl8180_init: Error channel plan! Set to default.\n"); + netdev_err(dev, + "rtl8180_init: Error channel plan! Set to default.\n"); priv->ChannelPlan = 0; } RT_TRACE(COMP_INIT, "Channel plan is %d\n", priv->ChannelPlan); @@ -2622,7 +2696,8 @@ static void rtl8192_hwconfig(struct net_device *dev) #endif { regBwOpMode = BW_OPMODE_20MHZ; - regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; + regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | + RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; } break; @@ -2631,12 +2706,14 @@ static void rtl8192_hwconfig(struct net_device *dev) * out only when associated AP does not support it. */ regBwOpMode = BW_OPMODE_20MHZ; - regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; + regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | + RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG; break; case WIRELESS_MODE_N_5G: regBwOpMode = BW_OPMODE_5G; - regRATR = RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; + regRATR = RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | + RATE_ALL_OFDM_2SS; regRRSR = RATE_ALL_OFDM_AG; break; } @@ -2695,7 +2772,9 @@ static bool rtl8192_adapter_start(struct net_device *dev) else if (priv->pFirmware->firmware_status == FW_STATUS_5_READY) dwRegRead |= CPU_GEN_FIRMWARE_RESET; else - RT_TRACE(COMP_ERR, "ERROR in %s(): undefined firmware state(%d)\n", __func__, priv->pFirmware->firmware_status); + RT_TRACE(COMP_ERR, + "ERROR in %s(): undefined firmware state(%d)\n", + __func__, priv->pFirmware->firmware_status); write_nic_dword(dev, CPU_GEN, dwRegRead); /* config BB. */ @@ -2706,11 +2785,14 @@ static bool rtl8192_adapter_start(struct net_device *dev) read_nic_dword(dev, CPU_GEN, &dwRegRead); if (priv->LoopbackMode == RTL819xU_NO_LOOPBACK) - dwRegRead = (dwRegRead & CPU_GEN_NO_LOOPBACK_MSK) | CPU_GEN_NO_LOOPBACK_SET; + dwRegRead = (dwRegRead & CPU_GEN_NO_LOOPBACK_MSK) | + CPU_GEN_NO_LOOPBACK_SET; else if (priv->LoopbackMode == RTL819xU_MAC_LOOPBACK) dwRegRead |= CPU_CCK_LOOPBACK; else - RT_TRACE(COMP_ERR, "Serious error in %s(): wrong loopback mode setting(%d)\n", __func__, priv->LoopbackMode); + RT_TRACE(COMP_ERR, + "Serious error in %s(): wrong loopback mode setting(%d)\n", + __func__, priv->LoopbackMode); write_nic_dword(dev, CPU_GEN, dwRegRead); @@ -2735,14 +2817,17 @@ static bool rtl8192_adapter_start(struct net_device *dev) write_nic_dword(dev, RCR, priv->ReceiveConfig); /* Initialize Number of Reserved Pages in Firmware Queue */ - write_nic_dword(dev, RQPN1, NUM_OF_PAGE_IN_FW_QUEUE_BK << RSVD_FW_QUEUE_PAGE_BK_SHIFT | - NUM_OF_PAGE_IN_FW_QUEUE_BE << RSVD_FW_QUEUE_PAGE_BE_SHIFT | - NUM_OF_PAGE_IN_FW_QUEUE_VI << RSVD_FW_QUEUE_PAGE_VI_SHIFT | - NUM_OF_PAGE_IN_FW_QUEUE_VO << RSVD_FW_QUEUE_PAGE_VO_SHIFT); - write_nic_dword(dev, RQPN2, NUM_OF_PAGE_IN_FW_QUEUE_MGNT << RSVD_FW_QUEUE_PAGE_MGNT_SHIFT | - NUM_OF_PAGE_IN_FW_QUEUE_CMD << RSVD_FW_QUEUE_PAGE_CMD_SHIFT); - write_nic_dword(dev, RQPN3, APPLIED_RESERVED_QUEUE_IN_FW | - NUM_OF_PAGE_IN_FW_QUEUE_BCN << RSVD_FW_QUEUE_PAGE_BCN_SHIFT); + write_nic_dword(dev, RQPN1, + NUM_OF_PAGE_IN_FW_QUEUE_BK << RSVD_FW_QUEUE_PAGE_BK_SHIFT | + NUM_OF_PAGE_IN_FW_QUEUE_BE << RSVD_FW_QUEUE_PAGE_BE_SHIFT | + NUM_OF_PAGE_IN_FW_QUEUE_VI << RSVD_FW_QUEUE_PAGE_VI_SHIFT | + NUM_OF_PAGE_IN_FW_QUEUE_VO << RSVD_FW_QUEUE_PAGE_VO_SHIFT); + write_nic_dword(dev, RQPN2, + NUM_OF_PAGE_IN_FW_QUEUE_MGNT << RSVD_FW_QUEUE_PAGE_MGNT_SHIFT | + NUM_OF_PAGE_IN_FW_QUEUE_CMD << RSVD_FW_QUEUE_PAGE_CMD_SHIFT); + write_nic_dword(dev, RQPN3, + APPLIED_RESERVED_QUEUE_IN_FW | + NUM_OF_PAGE_IN_FW_QUEUE_BCN << RSVD_FW_QUEUE_PAGE_BCN_SHIFT); write_nic_dword(dev, RATR0 + 4 * 7, (RATE_ALL_OFDM_AG | RATE_ALL_CCK)); /* Set AckTimeout */ @@ -2781,7 +2866,8 @@ static bool rtl8192_adapter_start(struct net_device *dev) /* Firmware download */ init_status = init_firmware(dev); if (!init_status) { - RT_TRACE(COMP_ERR, "ERR!!! %s(): Firmware download is failed\n", __func__); + RT_TRACE(COMP_ERR, "ERR!!! %s(): Firmware download is failed\n", + __func__); return init_status; } RT_TRACE(COMP_INIT, "%s():after firmware download\n", __func__); @@ -2789,30 +2875,42 @@ static bool rtl8192_adapter_start(struct net_device *dev) #ifdef TO_DO_LIST if (Adapter->ResetProgress == RESET_TYPE_NORESET) { if (pMgntInfo->RegRfOff) { /* User disable RF via registry. */ - RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RegRfOff ----------\n")); + RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, + ("InitializeAdapter819xUsb(): Turn off RF for RegRfOff ----------\n")); MgntActSet_RF_State(Adapter, eRfOff, RF_CHANGE_BY_SW); /* Those actions will be discard in MgntActSet_RF_State * because of the same state */ for (eRFPath = 0; eRFPath < pHalData->NumTotalRFPath; eRFPath++) - PHY_SetRFReg(Adapter, (RF90_RADIO_PATH_E)eRFPath, 0x4, 0xC00, 0x0); + PHY_SetRFReg(Adapter, + (RF90_RADIO_PATH_E)eRFPath, + 0x4, 0xC00, 0x0); } else if (pMgntInfo->RfOffReason > RF_CHANGE_BY_PS) { /* H/W or S/W RF OFF before sleep. */ - RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RfOffReason(%d) ----------\n", pMgntInfo->RfOffReason)); - MgntActSet_RF_State(Adapter, eRfOff, pMgntInfo->RfOffReason); + RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, + ("InitializeAdapter819xUsb(): Turn off RF for RfOffReason(%d) ----------\n", + pMgntInfo->RfOffReason)); + MgntActSet_RF_State(Adapter, + eRfOff, + pMgntInfo->RfOffReason); } else { pHalData->eRFPowerState = eRfOn; pMgntInfo->RfOffReason = 0; - RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): RF is on ----------\n")); + RT_TRACE((COMP_INIT | COMP_RF), DBG_LOUD, + ("InitializeAdapter819xUsb(): RF is on ----------\n")); } } else { if (pHalData->eRFPowerState == eRfOff) { - MgntActSet_RF_State(Adapter, eRfOff, pMgntInfo->RfOffReason); + MgntActSet_RF_State(Adapter, + eRfOff, + pMgntInfo->RfOffReason); /* Those actions will be discard in MgntActSet_RF_State * because of the same state */ for (eRFPath = 0; eRFPath < pHalData->NumTotalRFPath; eRFPath++) - PHY_SetRFReg(Adapter, (RF90_RADIO_PATH_E)eRFPath, 0x4, 0xC00, 0x0); + PHY_SetRFReg(Adapter, + (RF90_RADIO_PATH_E)eRFPath, + 0x4, 0xC00, 0x0); } } #endif @@ -2851,18 +2949,24 @@ static bool rtl8192_adapter_start(struct net_device *dev) if (priv->bDcut) { u32 i, TempCCk; - u32 tmpRegA = rtl8192_QueryBBReg(dev, rOFDM0_XATxIQImbalance, bMaskDWord); + u32 tmpRegA = rtl8192_QueryBBReg(dev, + rOFDM0_XATxIQImbalance, + bMaskDWord); for (i = 0; i < TxBBGainTableLength; i++) { if (tmpRegA == priv->txbbgain_table[i].txbbgain_value) { priv->rfa_txpowertrackingindex = (u8)i; - priv->rfa_txpowertrackingindex_real = (u8)i; - priv->rfa_txpowertracking_default = priv->rfa_txpowertrackingindex; + priv->rfa_txpowertrackingindex_real = + (u8)i; + priv->rfa_txpowertracking_default = + priv->rfa_txpowertrackingindex; break; } } - TempCCk = rtl8192_QueryBBReg(dev, rCCK0_TxFilter1, bMaskByte2); + TempCCk = rtl8192_QueryBBReg(dev, + rCCK0_TxFilter1, + bMaskByte2); for (i = 0; i < CCKTxBBGainTableLength; i++) { @@ -2873,7 +2977,8 @@ static bool rtl8192_adapter_start(struct net_device *dev) } priv->cck_present_attentuation_40Mdefault = 0; priv->cck_present_attentuation_difference = 0; - priv->cck_present_attentuation = priv->cck_present_attentuation_20Mdefault; + priv->cck_present_attentuation = + priv->cck_present_attentuation_20Mdefault; } } @@ -2905,7 +3010,9 @@ static bool HalTxCheckStuck819xUsb(struct net_device *dev) bool bStuck = false; read_nic_word(dev, 0x128, &RegTxCounter); - RT_TRACE(COMP_RESET, "%s():RegTxCounter is %d,TxCounter is %d\n", __func__, RegTxCounter, priv->TxCounter); + RT_TRACE(COMP_RESET, + "%s():RegTxCounter is %d,TxCounter is %d\n", __func__, + RegTxCounter, priv->TxCounter); if (priv->TxCounter == RegTxCounter) bStuck = true; @@ -2936,7 +3043,8 @@ static RESET_TYPE TxCheckStuck(struct net_device *dev) } if (bCheckFwTxCnt) { if (HalTxCheckStuck819xUsb(dev)) { - RT_TRACE(COMP_RESET, "TxCheckStuck(): Fw indicates no Tx condition!\n"); + RT_TRACE(COMP_RESET, + "TxCheckStuck(): Fw indicates no Tx condition!\n"); return RESET_TYPE_SILENT; } } @@ -2951,7 +3059,9 @@ static bool HalRxCheckStuck819xUsb(struct net_device *dev) static u8 rx_chk_cnt; read_nic_word(dev, 0x130, &RegRxCounter); - RT_TRACE(COMP_RESET, "%s(): RegRxCounter is %d,RxCounter is %d\n", __func__, RegRxCounter, priv->RxCounter); + RT_TRACE(COMP_RESET, + "%s(): RegRxCounter is %d,RxCounter is %d\n", __func__, + RegRxCounter, priv->RxCounter); /* If rssi is small, we should check rx for long time because of bad rx. * or maybe it will continuous silent reset every 2 seconds. */ @@ -3044,9 +3154,11 @@ static RESET_TYPE rtl819x_ifcheck_resetornot(struct net_device *dev) */ RxResetType = RxCheckStuck(dev); } - if (TxResetType == RESET_TYPE_NORMAL || RxResetType == RESET_TYPE_NORMAL) { + if (TxResetType == RESET_TYPE_NORMAL || + RxResetType == RESET_TYPE_NORMAL) { return RESET_TYPE_NORMAL; - } else if (TxResetType == RESET_TYPE_SILENT || RxResetType == RESET_TYPE_SILENT) { + } else if (TxResetType == RESET_TYPE_SILENT || + RxResetType == RESET_TYPE_SILENT) { RT_TRACE(COMP_RESET, "%s():silent reset\n", __func__); return RESET_TYPE_SILENT; } else { @@ -3156,12 +3268,16 @@ RESET_START: priv->ResetProgress = RESET_TYPE_SILENT; down(&priv->wx_sem); if (priv->up == 0) { - RT_TRACE(COMP_ERR, "%s():the driver is not up! return\n", __func__); + RT_TRACE(COMP_ERR, + "%s():the driver is not up! return\n", + __func__); up(&priv->wx_sem); return; } priv->up = 0; - RT_TRACE(COMP_RESET, "%s():======>start to down the driver\n", __func__); + RT_TRACE(COMP_RESET, + "%s():======>start to down the driver\n", + __func__); rtl8192_rtx_disable(dev); rtl8192_cancel_deferred_work(priv); @@ -3183,28 +3299,40 @@ RESET_START: ieee80211_softmac_stop_protocol(priv->ieee80211); } up(&priv->wx_sem); - RT_TRACE(COMP_RESET, "%s():<==========down process is finished\n", __func__); - RT_TRACE(COMP_RESET, "%s():===========>start up the driver\n", __func__); + RT_TRACE(COMP_RESET, + "%s():<==========down process is finished\n", + __func__); + RT_TRACE(COMP_RESET, + "%s():===========>start up the driver\n", + __func__); reset_status = _rtl8192_up(dev); - RT_TRACE(COMP_RESET, "%s():<===========up process is finished\n", __func__); + RT_TRACE(COMP_RESET, + "%s():<===========up process is finished\n", + __func__); if (reset_status == -EAGAIN) { if (reset_times < 3) { reset_times++; goto RESET_START; } else { - RT_TRACE(COMP_ERR, " ERR!!! %s(): Reset Failed!!\n", __func__); + RT_TRACE(COMP_ERR, + " ERR!!! %s(): Reset Failed!!\n", + __func__); } } ieee->is_silent_reset = 1; EnableHWSecurityConfig8192(dev); - if (ieee->state == IEEE80211_LINKED && ieee->iw_mode == IW_MODE_INFRA) { - ieee->set_chan(ieee->dev, ieee->current_network.channel); + if (ieee->state == IEEE80211_LINKED && + ieee->iw_mode == IW_MODE_INFRA) { + ieee->set_chan(ieee->dev, + ieee->current_network.channel); queue_work(ieee->wq, &ieee->associate_complete_wq); - } else if (ieee->state == IEEE80211_LINKED && ieee->iw_mode == IW_MODE_ADHOC) { - ieee->set_chan(ieee->dev, ieee->current_network.channel); + } else if (ieee->state == IEEE80211_LINKED && + ieee->iw_mode == IW_MODE_ADHOC) { + ieee->set_chan(ieee->dev, + ieee->current_network.channel); ieee->link_change(ieee->dev); ieee80211_start_send_beacons(ieee); @@ -3224,7 +3352,9 @@ RESET_START: /* For test --> force write UFWP. */ write_nic_byte(dev, UFWP, 1); - RT_TRACE(COMP_RESET, "Reset finished!! ====>[%d]\n", priv->reset_count); + RT_TRACE(COMP_RESET, + "Reset finished!! ====>[%d]\n", + priv->reset_count); } } @@ -3237,9 +3367,12 @@ static void rtl819x_update_rxcounts(struct r8192_priv *priv, u32 *TotalRxBcnNum, *TotalRxBcnNum = 0; *TotalRxDataNum = 0; - SlotIndex = (priv->ieee80211->LinkDetectInfo.SlotIndex++) % (priv->ieee80211->LinkDetectInfo.SlotNum); - priv->ieee80211->LinkDetectInfo.RxBcnNum[SlotIndex] = priv->ieee80211->LinkDetectInfo.NumRecvBcnInPeriod; - priv->ieee80211->LinkDetectInfo.RxDataNum[SlotIndex] = priv->ieee80211->LinkDetectInfo.NumRecvDataInPeriod; + SlotIndex = (priv->ieee80211->LinkDetectInfo.SlotIndex++) % + (priv->ieee80211->LinkDetectInfo.SlotNum); + priv->ieee80211->LinkDetectInfo.RxBcnNum[SlotIndex] = + priv->ieee80211->LinkDetectInfo.NumRecvBcnInPeriod; + priv->ieee80211->LinkDetectInfo.RxDataNum[SlotIndex] = + priv->ieee80211->LinkDetectInfo.NumRecvDataInPeriod; for (i = 0; i < priv->ieee80211->LinkDetectInfo.SlotNum; i++) { *TotalRxBcnNum += priv->ieee80211->LinkDetectInfo.RxBcnNum[i]; *TotalRxDataNum += priv->ieee80211->LinkDetectInfo.RxDataNum[i]; @@ -3249,8 +3382,10 @@ static void rtl819x_update_rxcounts(struct r8192_priv *priv, u32 *TotalRxBcnNum, static void rtl819x_watchdog_wqcallback(struct work_struct *work) { - struct delayed_work *dwork = container_of(work, struct delayed_work, work); - struct r8192_priv *priv = container_of(dwork, struct r8192_priv, watch_dog_wq); + struct delayed_work *dwork = container_of(work, + struct delayed_work, work); + struct r8192_priv *priv = container_of(dwork, + struct r8192_priv, watch_dog_wq); struct net_device *dev = priv->ieee80211->dev; struct ieee80211_device *ieee = priv->ieee80211; RESET_TYPE ResetType = RESET_TYPE_NORESET; @@ -3274,7 +3409,8 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) ieee->LinkDetectInfo.bBusyTraffic = bBusyTraffic; } /* for AP roaming */ - if (priv->ieee80211->state == IEEE80211_LINKED && priv->ieee80211->iw_mode == IW_MODE_INFRA) { + if (priv->ieee80211->state == IEEE80211_LINKED && + priv->ieee80211->iw_mode == IW_MODE_INFRA) { rtl819x_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum); if ((TotalRxBcnNum + TotalRxDataNum) == 0) { @@ -3282,12 +3418,16 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) if (rfState == eRfOff) RT_TRACE(COMP_ERR, "========>%s()\n", __func__); #endif - netdev_dbg(dev, "===>%s(): AP is power off, connect another one\n", __func__); + netdev_dbg(dev, + "===>%s(): AP is power off, connect another one\n", + __func__); priv->ieee80211->state = IEEE80211_ASSOCIATING; notify_wx_assoc_event(priv->ieee80211); - RemovePeerTS(priv->ieee80211, priv->ieee80211->current_network.bssid); + RemovePeerTS(priv->ieee80211, + priv->ieee80211->current_network.bssid); priv->ieee80211->link_change(dev); - queue_work(priv->ieee80211->wq, &priv->ieee80211->associate_procedure_wq); + queue_work(priv->ieee80211->wq, + &priv->ieee80211->associate_procedure_wq); } } @@ -3302,7 +3442,11 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work) if ((priv->force_reset) || (priv->ResetProgress == RESET_TYPE_NORESET && (priv->bForcedSilentReset || (!priv->bDisableNormalResetCheck && ResetType == RESET_TYPE_SILENT)))) { - RT_TRACE(COMP_RESET, "%s():priv->force_reset is %d,priv->ResetProgress is %d, priv->bForcedSilentReset is %d,priv->bDisableNormalResetCheck is %d,ResetType is %d\n", __func__, priv->force_reset, priv->ResetProgress, priv->bForcedSilentReset, priv->bDisableNormalResetCheck, ResetType); + RT_TRACE(COMP_RESET, + "%s():priv->force_reset is %d,priv->ResetProgress is %d, priv->bForcedSilentReset is %d,priv->bDisableNormalResetCheck is %d,ResetType is %d\n", + __func__, priv->force_reset, priv->ResetProgress, + priv->bForcedSilentReset, + priv->bDisableNormalResetCheck, ResetType); rtl819x_ifsilentreset(dev); } priv->force_reset = false; @@ -3317,7 +3461,8 @@ static void watch_dog_timer_callback(unsigned long data) struct r8192_priv *priv = ieee80211_priv((struct net_device *)data); queue_delayed_work(priv->priv_wq, &priv->watch_dog_wq, 0); - mod_timer(&priv->watch_dog_timer, jiffies + MSECS(IEEE80211_WATCH_DOG_TIME)); + mod_timer(&priv->watch_dog_timer, + jiffies + MSECS(IEEE80211_WATCH_DOG_TIME)); } static int _rtl8192_up(struct net_device *dev) { @@ -3329,7 +3474,8 @@ static int _rtl8192_up(struct net_device *dev) RT_TRACE(COMP_INIT, "Bringing up iface"); init_status = rtl8192_adapter_start(dev); if (!init_status) { - RT_TRACE(COMP_ERR, "ERR!!! %s(): initialization failed!\n", __func__); + RT_TRACE(COMP_ERR, "ERR!!! %s(): initialization failed!\n", + __func__); priv->up = priv->ieee80211->ieee_up = 0; return -EAGAIN; } @@ -3422,7 +3568,8 @@ int rtl8192_down(struct net_device *dev) ieee80211_softmac_stop_protocol(priv->ieee80211); - memset(&priv->ieee80211->current_network, 0, offsetof(struct ieee80211_network, list)); + memset(&priv->ieee80211->current_network, 0, + offsetof(struct ieee80211_network, list)); RT_TRACE(COMP_DOWN, "<==========%s()\n", __func__); return 0; @@ -3450,7 +3597,8 @@ void rtl8192_commit(struct net_device *dev) static void rtl8192_restart(struct work_struct *work) { - struct r8192_priv *priv = container_of(work, struct r8192_priv, reset_wq); + struct r8192_priv *priv = container_of(work, struct r8192_priv, + reset_wq); struct net_device *dev = priv->ieee80211->dev; down(&priv->wx_sem); @@ -3543,9 +3691,16 @@ static int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) * so we need index entry for its * default key serching! */ - setKey(dev, 4, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8 *)ieee->ap_mac_addr, 0, key); + setKey(dev, 4, ipw->u.crypt.idx, + ieee->pairwise_key_type, + (u8 *)ieee->ap_mac_addr, + 0, key); if (ieee->auth_mode != 2) - setKey(dev, ipw->u.crypt.idx, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8 *)ieee->ap_mac_addr, 0, key); + setKey(dev, ipw->u.crypt.idx, + ipw->u.crypt.idx, + ieee->pairwise_key_type, + (u8 *)ieee->ap_mac_addr, + 0, key); } } else { memcpy((u8 *)key, ipw->u.crypt.key, 16); @@ -3577,7 +3732,8 @@ static int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) } } } - ret = ieee80211_wpa_supplicant_ioctl(priv->ieee80211, &wrq->u.data); + ret = ieee80211_wpa_supplicant_ioctl(priv->ieee80211, + &wrq->u.data); break; default: @@ -3636,7 +3792,9 @@ static u8 HwRateToMRate90(bool bIsHT, u8 rate) default: ret_rate = 0xff; - RT_TRACE(COMP_RECV, "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", rate, bIsHT); + RT_TRACE(COMP_RECV, + "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", + rate, bIsHT); break; } @@ -3696,7 +3854,9 @@ static u8 HwRateToMRate90(bool bIsHT, u8 rate) default: ret_rate = 0xff; - RT_TRACE(COMP_RECV, "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", rate, bIsHT); + RT_TRACE(COMP_RECV, + "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", + rate, bIsHT); break; } } @@ -3762,7 +3922,8 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, static u32 slide_evm_index, slide_evm_statistics; static u32 last_rssi, last_evm; - static u32 slide_beacon_adc_pwdb_index, slide_beacon_adc_pwdb_statistics; + static u32 slide_beacon_adc_pwdb_index; + static u32 slide_beacon_adc_pwdb_statistics; static u32 last_beacon_adc_pwdb; struct rtl_80211_hdr_3addr *hdr; @@ -3789,7 +3950,8 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, } priv->stats.slide_rssi_total += pprevious_stats->SignalStrength; - priv->stats.slide_signal_strength[slide_rssi_index++] = pprevious_stats->SignalStrength; + priv->stats.slide_signal_strength[slide_rssi_index++] = + pprevious_stats->SignalStrength; if (slide_rssi_index >= PHY_RSSI_SLID_WIN_MAX) slide_rssi_index = 0; @@ -3821,13 +3983,16 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, /* <2> Showed on UI for engineering * hardware does not provide rssi information for each rf path in CCK */ - if (!pprevious_stats->bIsCCK && (pprevious_stats->bPacketToSelf || pprevious_stats->bToSelfBA)) { + if (!pprevious_stats->bIsCCK && + (pprevious_stats->bPacketToSelf || pprevious_stats->bToSelfBA)) { for (rfpath = RF90_PATH_A; rfpath < priv->NumTotalRFPath; rfpath++) { - if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, rfpath)) + if (!rtl8192_phy_CheckIsLegalRFPath( + priv->ieee80211->dev, rfpath)) continue; if (priv->stats.rx_rssi_percentage[rfpath] == 0) - priv->stats.rx_rssi_percentage[rfpath] = pprevious_stats->RxMIMOSignalStrength[rfpath]; + priv->stats.rx_rssi_percentage[rfpath] = + pprevious_stats->RxMIMOSignalStrength[rfpath]; if (pprevious_stats->RxMIMOSignalStrength[rfpath] > priv->stats.rx_rssi_percentage[rfpath]) { priv->stats.rx_rssi_percentage[rfpath] = ((priv->stats.rx_rssi_percentage[rfpath] * (Rx_Smooth_Factor - 1)) + @@ -3838,7 +4003,9 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, ((priv->stats.rx_rssi_percentage[rfpath] * (Rx_Smooth_Factor - 1)) + (pprevious_stats->RxMIMOSignalStrength[rfpath])) / (Rx_Smooth_Factor); } - RT_TRACE(COMP_DBG, "priv->stats.rx_rssi_percentage[rfPath] = %d\n", priv->stats.rx_rssi_percentage[rfpath]); + RT_TRACE(COMP_DBG, + "priv->stats.rx_rssi_percentage[rfPath] = %d\n", + priv->stats.rx_rssi_percentage[rfpath]); } } @@ -3870,10 +4037,13 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, pprevious_stats->RxPWDBAll); - if (pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) { + if (pprevious_stats->bPacketToSelf || + pprevious_stats->bPacketBeacon || + pprevious_stats->bToSelfBA) { if (priv->undecorated_smoothed_pwdb < 0) /* initialize */ - priv->undecorated_smoothed_pwdb = pprevious_stats->RxPWDBAll; + priv->undecorated_smoothed_pwdb = + pprevious_stats->RxPWDBAll; if (pprevious_stats->RxPWDBAll > (u32)priv->undecorated_smoothed_pwdb) { priv->undecorated_smoothed_pwdb = (((priv->undecorated_smoothed_pwdb) * (Rx_Smooth_Factor - 1)) + @@ -3890,21 +4060,26 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, /* Check EVM */ /* record the general EVM to the sliding window. */ if (pprevious_stats->SignalQuality) { - if (pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) { + if (pprevious_stats->bPacketToSelf || + pprevious_stats->bPacketBeacon || + pprevious_stats->bToSelfBA) { if (slide_evm_statistics++ >= PHY_RSSI_SLID_WIN_MAX) { slide_evm_statistics = PHY_RSSI_SLID_WIN_MAX; last_evm = priv->stats.slide_evm[slide_evm_index]; priv->stats.slide_evm_total -= last_evm; } - priv->stats.slide_evm_total += pprevious_stats->SignalQuality; + priv->stats.slide_evm_total += + pprevious_stats->SignalQuality; - priv->stats.slide_evm[slide_evm_index++] = pprevious_stats->SignalQuality; + priv->stats.slide_evm[slide_evm_index++] = + pprevious_stats->SignalQuality; if (slide_evm_index >= PHY_RSSI_SLID_WIN_MAX) slide_evm_index = 0; /* <1> Showed on UI for user, in percentage. */ - tmp_val = priv->stats.slide_evm_total / slide_evm_statistics; + tmp_val = priv->stats.slide_evm_total / + slide_evm_statistics; priv->stats.signal_quality = tmp_val; /* Showed on UI for user in Windows Vista, * for Link quality. @@ -3913,7 +4088,9 @@ static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, } /* <2> Showed on UI for engineering */ - if (pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) { + if (pprevious_stats->bPacketToSelf || + pprevious_stats->bPacketBeacon || + pprevious_stats->bToSelfBA) { for (nspatial_stream = 0; nspatial_stream < 2; nspatial_stream++) { /* 2 spatial stream */ if (pprevious_stats->RxMIMOSignalQuality[nspatial_stream] != -1) { if (priv->stats.rx_evm_percentage[nspatial_stream] == 0) /* initialize */ @@ -4025,15 +4202,15 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, phy_sts_ofdm_819xusb_t *pofdm_buf; phy_sts_cck_819xusb_t *pcck_buf; phy_ofdm_rx_status_rxsc_sgien_exintfflag *prxsc; - u8 *prxpkt; - u8 i, max_spatial_stream, tmp_rxsnr, tmp_rxevm, rxsc_sgien_exflg; - char rx_pwr[4], rx_pwr_all = 0; - char rx_snrX, rx_evmX; - u8 evm, pwdb_all; - u32 RSSI, total_rssi = 0; - u8 is_cck_rate = 0; - u8 rf_rx_num = 0; - u8 sq; + u8 *prxpkt; + u8 i, max_spatial_stream, tmp_rxsnr, tmp_rxevm, rxsc_sgien_exflg; + char rx_pwr[4], rx_pwr_all = 0; + char rx_snrX, rx_evmX; + u8 evm, pwdb_all; + u32 RSSI, total_rssi = 0; + u8 is_cck_rate = 0; + u8 rf_rx_num = 0; + u8 sq; priv->stats.numqry_phystatus++; @@ -4042,7 +4219,8 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, /* Record it for next packet processing */ memset(precord_stats, 0, sizeof(struct ieee80211_rx_stats)); - pstats->bPacketMatchBSSID = precord_stats->bPacketMatchBSSID = bpacket_match_bssid; + pstats->bPacketMatchBSSID = + precord_stats->bPacketMatchBSSID = bpacket_match_bssid; pstats->bPacketToSelf = precord_stats->bPacketToSelf = bpacket_toself; pstats->bIsCCK = precord_stats->bIsCCK = is_cck_rate; pstats->bPacketBeacon = precord_stats->bPacketBeacon = bPacketBeacon; @@ -4127,8 +4305,10 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, sq = ((64 - sq) * 100) / 44; } pstats->SignalQuality = precord_stats->SignalQuality = sq; - pstats->RxMIMOSignalQuality[0] = precord_stats->RxMIMOSignalQuality[0] = sq; - pstats->RxMIMOSignalQuality[1] = precord_stats->RxMIMOSignalQuality[1] = -1; + pstats->RxMIMOSignalQuality[0] = + precord_stats->RxMIMOSignalQuality[0] = sq; + pstats->RxMIMOSignalQuality[1] = + precord_stats->RxMIMOSignalQuality[1] = -1; } else { priv->stats.numqry_phystatusHT++; @@ -4141,10 +4321,12 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, else continue; - if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, i)) + if (!rtl8192_phy_CheckIsLegalRFPath( + priv->ieee80211->dev, i)) continue; - rx_pwr[i] = ((pofdm_buf->trsw_gain_X[i] & 0x3F) * 2) - 106; + rx_pwr[i] = + ((pofdm_buf->trsw_gain_X[i] & 0x3F) * 2) - 106; /* Get Rx snr value in DB */ tmp_rxsnr = pofdm_buf->rxsnr_X[i]; @@ -4198,14 +4380,19 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, /* Fill value in RFD, Get the first spatial * stream only */ - pstats->SignalQuality = precord_stats->SignalQuality = (u8)(evm & 0xff); - pstats->RxMIMOSignalQuality[i] = precord_stats->RxMIMOSignalQuality[i] = (u8)(evm & 0xff); + pstats->SignalQuality = + precord_stats->SignalQuality = + (u8)(evm & 0xff); + pstats->RxMIMOSignalQuality[i] = + precord_stats->RxMIMOSignalQuality[i] = + (u8)(evm & 0xff); } /* record rx statistics for debug */ rxsc_sgien_exflg = pofdm_buf->rxsc_sgien_exflg; - prxsc = (phy_ofdm_rx_status_rxsc_sgien_exintfflag *)&rxsc_sgien_exflg; + prxsc = (phy_ofdm_rx_status_rxsc_sgien_exintfflag *) + &rxsc_sgien_exflg; if (pdrvinfo->BW) /* 40M channel */ priv->stats.received_bwtype[1 + prxsc->rxsc]++; else /* 20M channel */ @@ -4217,16 +4404,22 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv, * GetValueFromBeaconOrProbeRsp(). */ if (is_cck_rate) { - pstats->SignalStrength = precord_stats->SignalStrength = (u8)(rtl819x_signal_scale_mapping((long)pwdb_all)); + pstats->SignalStrength = + precord_stats->SignalStrength = + (u8)(rtl819x_signal_scale_mapping((long)pwdb_all)); } else { /* We can judge RX path number now. */ - if (rf_rx_num != 0) - pstats->SignalStrength = precord_stats->SignalStrength = (u8)(rtl819x_signal_scale_mapping((long)(total_rssi /= rf_rx_num))); + if (rf_rx_num != 0) { + pstats->SignalStrength = + precord_stats->SignalStrength = + (u8)(rtl819x_signal_scale_mapping((long)(total_rssi /= rf_rx_num))); + } } } /* QueryRxPhyStatus8190Pci */ -static void rtl8192_record_rxdesc_forlateruse(struct ieee80211_rx_stats *psrc_stats, - struct ieee80211_rx_stats *ptarget_stats) +static void rtl8192_record_rxdesc_forlateruse( + struct ieee80211_rx_stats *psrc_stats, + struct ieee80211_rx_stats *ptarget_stats) { ptarget_stats->bIsAMPDU = psrc_stats->bIsAMPDU; ptarget_stats->bFirstMPDU = psrc_stats->bFirstMPDU; @@ -4267,7 +4460,8 @@ static void TranslateRxSignalStuff819xUsb(struct sk_buff *skb, bpacket_match_bssid = (IEEE80211_FTYPE_CTL != type) && (eqMacAddr(priv->ieee80211->current_network.bssid, (fc & IEEE80211_FCTL_TODS) ? hdr->addr1 : (fc & IEEE80211_FCTL_FROMDS) ? hdr->addr2 : hdr->addr3)) && (!pstats->bHwError) && (!pstats->bCRC) && (!pstats->bICV); - bpacket_toself = bpacket_match_bssid & (eqMacAddr(praddr, priv->ieee80211->dev->dev_addr)); + bpacket_toself = bpacket_match_bssid & + (eqMacAddr(praddr, priv->ieee80211->dev->dev_addr)); if (WLAN_FC_GET_FRAMETYPE(fc) == IEEE80211_STYPE_BEACON) bPacketBeacon = true; @@ -4287,7 +4481,9 @@ static void TranslateRxSignalStuff819xUsb(struct sk_buff *skb, * only, so driver should process phy information of previous packet */ rtl8192_process_phyinfo(priv, tmp_buf, &previous_stats, pstats); - rtl8192_query_rxphystatus(priv, pstats, pdrvinfo, &previous_stats, bpacket_match_bssid, bpacket_toself, bPacketBeacon, bToSelfBA); + rtl8192_query_rxphystatus(priv, pstats, pdrvinfo, &previous_stats, + bpacket_match_bssid, bpacket_toself, + bPacketBeacon, bToSelfBA); rtl8192_record_rxdesc_forlateruse(pstats, &previous_stats); } @@ -4460,14 +4656,18 @@ static void query_rxdesc_status(struct sk_buff *skb, * Driver info are written to the RxBuffer following rx desc */ if (stats->RxDrvInfoSize != 0) { - driver_info = (rx_drvinfo_819x_usb *)(skb->data + sizeof(rx_desc_819x_usb) + - stats->RxBufShift); + driver_info = (rx_drvinfo_819x_usb *)( + skb->data + + sizeof(rx_desc_819x_usb) + + stats->RxBufShift + ); /* unit: 0.5M */ /* TODO */ if (!stats->bHwError) { u8 ret_rate; - ret_rate = HwRateToMRate90(driver_info->RxHT, driver_info->RxRate); + ret_rate = HwRateToMRate90(driver_info->RxHT, + driver_info->RxRate); if (ret_rate == 0xff) { /* Abnormal Case: Receive CRC OK packet with Rx * descriptor indicating non supported rate. @@ -4490,14 +4690,16 @@ static void query_rxdesc_status(struct sk_buff *skb, UpdateReceivedRateHistogramStatistics8190(dev, stats); stats->bIsAMPDU = (driver_info->PartAggr == 1); - stats->bFirstMPDU = (driver_info->PartAggr == 1) && (driver_info->FirstAGGR == 1); + stats->bFirstMPDU = (driver_info->PartAggr == 1) && + (driver_info->FirstAGGR == 1); stats->TimeStampLow = driver_info->TSFL; UpdateRxPktTimeStamp8190(dev, stats); /* Rx A-MPDU */ if (driver_info->FirstAGGR == 1 || driver_info->PartAggr == 1) - RT_TRACE(COMP_RXDESC, "driver_info->FirstAGGR = %d, driver_info->PartAggr = %d\n", + RT_TRACE(COMP_RXDESC, + "driver_info->FirstAGGR = %d, driver_info->PartAggr = %d\n", driver_info->FirstAGGR, driver_info->PartAggr); } @@ -4566,8 +4768,9 @@ static void rtl8192_rx_nomal(struct sk_buff *skb) } -static void rtl819xusb_process_received_packet(struct net_device *dev, - struct ieee80211_rx_stats *pstats) +static void rtl819xusb_process_received_packet( + struct net_device *dev, + struct ieee80211_rx_stats *pstats) { u8 *frame; u16 frame_len = 0; @@ -4587,7 +4790,8 @@ static void rtl819xusb_process_received_packet(struct net_device *dev, * reason, ie. there may be a duration while sw switch is changed and * hw switch is being changed. */ - Adapter->HalFunc.GetHwRegHandler(Adapter, HW_VAR_RF_STATE, (u8 *)(&rtState)); + Adapter->HalFunc.GetHwRegHandler(Adapter, HW_VAR_RF_STATE, + (u8 *)(&rtState)); if (rtState == eRfOff) return; #endif @@ -4721,14 +4925,16 @@ static int rtl8192_usb_probe(struct usb_interface *intf, dev->netdev_ops = &rtl8192_netdev_ops; - dev->wireless_handlers = (struct iw_handler_def *)&r8192_wx_handlers_def; + dev->wireless_handlers = + (struct iw_handler_def *)&r8192_wx_handlers_def; dev->type = ARPHRD_ETHER; dev->watchdog_timeo = HZ * 3; if (dev_alloc_name(dev, ifname) < 0) { - RT_TRACE(COMP_INIT, "Oops: devname already taken! Trying wlan%%d...\n"); + RT_TRACE(COMP_INIT, + "Oops: devname already taken! Trying wlan%%d...\n"); ifname = "wlan%d"; dev_alloc_name(dev, ifname); } @@ -4788,7 +4994,8 @@ static void rtl8192_usb_disconnect(struct usb_interface *intf) if (dev) { unregister_netdev(dev); - RT_TRACE(COMP_DOWN, "=============>wlan driver to be removed\n"); + RT_TRACE(COMP_DOWN, + "=============>wlan driver to be removed\n"); rtl8192_proc_remove_one(dev); rtl8192_down(dev); @@ -4896,8 +5103,9 @@ void EnableHWSecurityConfig8192(struct net_device *dev) ieee->hwsec_active = 0; SECR_value &= ~SCR_RxDecEnable; } - RT_TRACE(COMP_SEC, "%s:, hwsec:%d, pairwise_key:%d, SECR_value:%x\n", __func__, - ieee->hwsec_active, ieee->pairwise_key_type, SECR_value); + RT_TRACE(COMP_SEC, "%s:, hwsec:%d, pairwise_key:%d, SECR_value:%x\n", + __func__, ieee->hwsec_active, ieee->pairwise_key_type, + SECR_value); write_nic_byte(dev, SECR, SECR_value); } @@ -4913,7 +5121,9 @@ void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, if (EntryNo >= TOTAL_CAM_ENTRY) RT_TRACE(COMP_ERR, "cam entry exceeds in setKey()\n"); - RT_TRACE(COMP_SEC, "====>to setKey(), dev:%p, EntryNo:%d, KeyIndex:%d, KeyType:%d, MacAddr%pM\n", dev, EntryNo, KeyIndex, KeyType, MacAddr); + RT_TRACE(COMP_SEC, + "====>to setKey(), dev:%p, EntryNo:%d, KeyIndex:%d, KeyType:%d, MacAddr%pM\n", + dev, EntryNo, KeyIndex, KeyType, MacAddr); if (DefaultKey) usConfig |= BIT15 | (KeyType << 2); From 143eb95abb4c4e59772681de749af8d2f71afac6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:32 +0900 Subject: [PATCH 0519/2431] staging: wilc1000: rename strHostIFmsg This patch changes the name, strHostIFmsg simply to msg because the camelcase notation is not recommended in Linux. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 792 +++++++++++----------- 1 file changed, 396 insertions(+), 396 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0546f7a555a8..e9ac3957462f 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -3955,19 +3955,19 @@ _done_: static void ListenTimerCB(unsigned long arg) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)arg; /*Stopping remain-on-channel timer*/ del_timer(&pstrWFIDrv->hRemainOnChannel); /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; - strHostIFmsg.drvHandler = pstrWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; + msg.drvHandler = pstrWFIDrv; + msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); } @@ -4282,15 +4282,15 @@ static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASe static int hostIFthread(void *pvArg) { u32 u32Ret; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; tstrWILC_WFIDrv *pstrWFIDrv; - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); while (1) { - wilc_mq_recv(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg), &u32Ret); - pstrWFIDrv = (tstrWILC_WFIDrv *)strHostIFmsg.drvHandler; - if (strHostIFmsg.u16MsgId == HOST_IF_MSG_EXIT) { + wilc_mq_recv(&gMsgQHostIF, &msg, sizeof(struct host_if_msg), &u32Ret); + pstrWFIDrv = (tstrWILC_WFIDrv *)msg.drvHandler; + if (msg.u16MsgId == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); break; } @@ -4300,57 +4300,57 @@ static int hostIFthread(void *pvArg) if ((!g_wilc_initialized)) { PRINT_D(GENERIC_DBG, "--WAIT--"); usleep_range(200 * 1000, 200 * 1000); - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); continue; } - if (strHostIFmsg.u16MsgId == HOST_IF_MSG_CONNECT && pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { + if (msg.u16MsgId == HOST_IF_MSG_CONNECT && pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_D(HOSTINF_DBG, "Requeue connect request till scan done received\n"); - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); usleep_range(2 * 1000, 2 * 1000); continue; } - switch (strHostIFmsg.u16MsgId) { + switch (msg.u16MsgId) { case HOST_IF_MSG_Q_IDLE: Handle_wait_msg_q_empty(); break; case HOST_IF_MSG_SCAN: - Handle_Scan(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr); + Handle_Scan(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFscanAttr); break; case HOST_IF_MSG_CONNECT: - Handle_Connect(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr); + Handle_Connect(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFconnectAttr); break; case HOST_IF_MSG_FLUSH_CONNECT: - Handle_FlushConnect(strHostIFmsg.drvHandler); + Handle_FlushConnect(msg.drvHandler); break; case HOST_IF_MSG_RCVD_NTWRK_INFO: - Handle_RcvdNtwrkInfo(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strRcvdNetworkInfo); + Handle_RcvdNtwrkInfo(msg.drvHandler, &msg.uniHostIFmsgBody.strRcvdNetworkInfo); break; case HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO: - Handle_RcvdGnrlAsyncInfo(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo); + Handle_RcvdGnrlAsyncInfo(msg.drvHandler, &msg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo); break; case HOST_IF_MSG_KEY: - Handle_Key(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr); + Handle_Key(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFkeyAttr); break; case HOST_IF_MSG_CFG_PARAMS: - Handle_CfgParam(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFCfgParamAttr); + Handle_CfgParam(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFCfgParamAttr); break; case HOST_IF_MSG_SET_CHANNEL: - Handle_SetChannel(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFSetChan); + Handle_SetChannel(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFSetChan); break; case HOST_IF_MSG_DISCONNECT: - Handle_Disconnect(strHostIFmsg.drvHandler); + Handle_Disconnect(msg.drvHandler); break; case HOST_IF_MSG_RCVD_SCAN_COMPLETE: @@ -4361,124 +4361,124 @@ static int hostIFthread(void *pvArg) if (!linux_wlan_get_num_conn_ifcs()) chip_sleep_manually(INFINITE_SLEEP_TIME); - Handle_ScanDone(strHostIFmsg.drvHandler, SCAN_EVENT_DONE); + Handle_ScanDone(msg.drvHandler, SCAN_EVENT_DONE); if (pstrWFIDrv->u8RemainOnChan_pendingreq) - Handle_RemainOnChan(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan); + Handle_RemainOnChan(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfRemainOnChan); break; case HOST_IF_MSG_GET_RSSI: - Handle_GetRssi(strHostIFmsg.drvHandler); + Handle_GetRssi(msg.drvHandler); break; case HOST_IF_MSG_GET_LINKSPEED: - Handle_GetLinkspeed(strHostIFmsg.drvHandler); + Handle_GetLinkspeed(msg.drvHandler); break; case HOST_IF_MSG_GET_STATISTICS: - Handle_GetStatistics(strHostIFmsg.drvHandler, (tstrStatistics *)strHostIFmsg.uniHostIFmsgBody.pUserData); + Handle_GetStatistics(msg.drvHandler, (tstrStatistics *)msg.uniHostIFmsgBody.pUserData); break; case HOST_IF_MSG_GET_CHNL: - Handle_GetChnl(strHostIFmsg.drvHandler); + Handle_GetChnl(msg.drvHandler); break; case HOST_IF_MSG_ADD_BEACON: - Handle_AddBeacon(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFSetBeacon); + Handle_AddBeacon(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFSetBeacon); break; case HOST_IF_MSG_DEL_BEACON: - Handle_DelBeacon(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFDelBeacon); + Handle_DelBeacon(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFDelBeacon); break; case HOST_IF_MSG_ADD_STATION: - Handle_AddStation(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strAddStaParam); + Handle_AddStation(msg.drvHandler, &msg.uniHostIFmsgBody.strAddStaParam); break; case HOST_IF_MSG_DEL_STATION: - Handle_DelStation(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strDelStaParam); + Handle_DelStation(msg.drvHandler, &msg.uniHostIFmsgBody.strDelStaParam); break; case HOST_IF_MSG_EDIT_STATION: - Handle_EditStation(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strEditStaParam); + Handle_EditStation(msg.drvHandler, &msg.uniHostIFmsgBody.strEditStaParam); break; case HOST_IF_MSG_GET_INACTIVETIME: - Handle_Get_InActiveTime(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfStaInactiveT); + Handle_Get_InActiveTime(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfStaInactiveT); break; case HOST_IF_MSG_SCAN_TIMER_FIRED: PRINT_D(HOSTINF_DBG, "Scan Timeout\n"); - Handle_ScanDone(strHostIFmsg.drvHandler, SCAN_EVENT_ABORTED); + Handle_ScanDone(msg.drvHandler, SCAN_EVENT_ABORTED); break; case HOST_IF_MSG_CONNECT_TIMER_FIRED: PRINT_D(HOSTINF_DBG, "Connect Timeout\n"); - Handle_ConnectTimeout(strHostIFmsg.drvHandler); + Handle_ConnectTimeout(msg.drvHandler); break; case HOST_IF_MSG_POWER_MGMT: - Handle_PowerManagement(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strPowerMgmtparam); + Handle_PowerManagement(msg.drvHandler, &msg.uniHostIFmsgBody.strPowerMgmtparam); break; case HOST_IF_MSG_SET_WFIDRV_HANDLER: - Handle_SetWfiDrvHandler(strHostIFmsg.drvHandler, - &strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler); + Handle_SetWfiDrvHandler(msg.drvHandler, + &msg.uniHostIFmsgBody.strHostIfSetDrvHandler); break; case HOST_IF_MSG_SET_OPERATION_MODE: - Handle_SetOperationMode(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfSetOperationMode); + Handle_SetOperationMode(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfSetOperationMode); break; case HOST_IF_MSG_SET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_set_IPAddress(strHostIFmsg.drvHandler, strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr, strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx); + Handle_set_IPAddress(msg.drvHandler, msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr, msg.uniHostIFmsgBody.strHostIfSetIP.idx); break; case HOST_IF_MSG_GET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_get_IPAddress(strHostIFmsg.drvHandler, strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr, strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx); + Handle_get_IPAddress(msg.drvHandler, msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr, msg.uniHostIFmsgBody.strHostIfSetIP.idx); break; case HOST_IF_MSG_SET_MAC_ADDRESS: - Handle_SetMacAddress(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMacAddress); + Handle_SetMacAddress(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfSetMacAddress); break; case HOST_IF_MSG_GET_MAC_ADDRESS: - Handle_GetMacAddress(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfGetMacAddress); + Handle_GetMacAddress(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfGetMacAddress); break; case HOST_IF_MSG_REMAIN_ON_CHAN: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REMAIN_ON_CHAN\n"); - Handle_RemainOnChan(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan); + Handle_RemainOnChan(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfRemainOnChan); break; case HOST_IF_MSG_REGISTER_FRAME: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REGISTER_FRAME\n"); - Handle_RegisterFrame(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfRegisterFrame); + Handle_RegisterFrame(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfRegisterFrame); break; case HOST_IF_MSG_LISTEN_TIMER_FIRED: - Handle_ListenStateExpired(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan); + Handle_ListenStateExpired(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfRemainOnChan); break; case HOST_IF_MSG_SET_MULTICAST_FILTER: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_MULTICAST_FILTER\n"); - Handle_SetMulticastFilter(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMulti); + Handle_SetMulticastFilter(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfSetMulti); break; case HOST_IF_MSG_ADD_BA_SESSION: - Handle_AddBASession(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo); + Handle_AddBASession(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfBASessionInfo); break; case HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS: - Handle_DelAllRxBASessions(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo); + Handle_DelAllRxBASessions(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfBASessionInfo); break; case HOST_IF_MSG_DEL_ALL_STA: - Handle_DelAllSta(strHostIFmsg.drvHandler, &strHostIFmsg.uniHostIFmsgBody.strHostIFDelAllSta); + Handle_DelAllSta(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFDelAllSta); break; default: @@ -4495,29 +4495,29 @@ static int hostIFthread(void *pvArg) static void TimerCB_Scan(unsigned long arg) { void *pvArg = (void *)arg; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.drvHandler = pvArg; - strHostIFmsg.u16MsgId = HOST_IF_MSG_SCAN_TIMER_FIRED; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.drvHandler = pvArg; + msg.u16MsgId = HOST_IF_MSG_SCAN_TIMER_FIRED; /* send the message */ - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); } static void TimerCB_Connect(unsigned long arg) { void *pvArg = (void *)arg; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* prepare the Timer Callback message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.drvHandler = pvArg; - strHostIFmsg.u16MsgId = HOST_IF_MSG_CONNECT_TIMER_FIRED; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.drvHandler = pvArg; + msg.u16MsgId = HOST_IF_MSG_CONNECT_TIMER_FIRED; /* send the message */ - wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); } @@ -4567,7 +4567,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -4577,21 +4577,21 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) } /* prepare the Remove Wep Key Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = REMOVEKEY; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_KEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = REMOVEKEY; + msg.drvHandler = hWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8keyIdx; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4615,7 +4615,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -4625,20 +4625,20 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = DEFAULTKEY; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_KEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = DEFAULTKEY; + msg.drvHandler = hWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Index; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Default key index\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4670,7 +4670,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { s32Error = -EFAULT; @@ -4679,30 +4679,30 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_KEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.drvHandler = hWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, pu8WepKey, u8WepKeylen); - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen = (u8WepKeylen); - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -4732,7 +4732,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; u8 i; if (pstrWFIDrv == NULL) { @@ -4742,39 +4742,39 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); if (INFO) { for (i = 0; i < u8WepKeylen; i++) PRINT_INFO(HOSTAPD_DBG, "KEY is %x\n", pu8WepKey[i]); } - strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_KEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; + msg.drvHandler = hWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, pu8WepKey, (u8WepKeylen)); - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen = (u8WepKeylen); - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8mode = u8mode; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type = tenuAuth_type; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); @@ -4805,7 +4805,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; u8 u8KeyLen = u8PtkKeylen; u32 i; @@ -4820,30 +4820,30 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, u8KeyLen += TX_MIC_KEY_LEN; /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPAPtk; + msg.u16MsgId = HOST_IF_MSG_KEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPAPtk; if (mode == AP_MODE) { - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8Idx; } if (mode == STATION_MODE) - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pu8Ptk, u8PtkKeylen); if (pu8RxMic != NULL) { - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < RX_MIC_KEY_LEN; i++) @@ -4852,7 +4852,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, } if (pu8TxMic != NULL) { - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < TX_MIC_KEY_LEN; i++) @@ -4860,17 +4860,17 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, } } - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen = u8KeyLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.pu8macaddr = mac_addr; - strHostIFmsg.drvHandler = hWFIDrv; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: PTK Key\n"); @@ -4901,7 +4901,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; u8 u8KeyLen = u8GtkKeylen; if (pstrWFIDrv == NULL) { @@ -4910,7 +4910,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe return s32Error; } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); if (pu8RxMic != NULL) @@ -4918,57 +4918,57 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe if (pu8TxMic != NULL) u8KeyLen += TX_MIC_KEY_LEN; if (KeyRSC != NULL) { - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, KeyRSC, u32KeyRSClen); } - strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPARxGtk; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_KEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPARxGtk; + msg.drvHandler = hWFIDrv; if (mode == AP_MODE) { - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; + msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; } if (mode == STATION_MODE) - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pu8RxGtk, u8GtkKeylen); if (pu8RxMic != NULL) { - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); } if (pu8TxMic != NULL) { - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); } - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8KeyIdx; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen = u8KeyLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.uniHostIFmsgBody.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8seqlen = u32KeyRSClen; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: RX GTK\n"); /* ////////////// */ @@ -5002,7 +5002,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; u32 i; @@ -5013,24 +5013,24 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm } /* prepare the Key Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_KEY; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = PMKSA; - strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_KEY; + msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = PMKSA; + msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.drvHandler = hWFIDrv; for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, ETH_ALEN); - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, + memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, PMKID_LEN); } /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER(" Error in sending messagequeue: PMKID Info\n"); @@ -5117,17 +5117,17 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPh s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* prepare the Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_MAC_ADDRESS; - strHostIFmsg.uniHostIFmsgBody.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_GET_MAC_ADDRESS; + msg.uniHostIFmsgBody.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get mac address\n"); return -EFAULT; @@ -5151,17 +5151,17 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; PRINT_D(GENERIC_DBG, "mac addr = %x:%x:%x\n", pu8MacAddress[0], pu8MacAddress[1], pu8MacAddress[2]); /* prepare setting mac address message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_MAC_ADDRESS; - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); - strHostIFmsg.drvHandler = hWFIDrv; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.u16MsgId = HOST_IF_MSG_SET_MAC_ADDRESS; + memcpy(msg.uniHostIFmsgBody.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: Set mac address\n"); @@ -5341,7 +5341,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; tenuScanConnTimer enuScanConnTimer; if (pstrWFIDrv == NULL || pfConnectResult == NULL) { @@ -5361,36 +5361,36 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, } /* prepare the Connect Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_CONNECT; + msg.u16MsgId = HOST_IF_MSG_CONNECT; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.u8security = u8security; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.tenuAuth_type = tenuAuth_type; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.u8channel = u8channel; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pfConnectResult = pfConnectResult; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pvUserArg = pvUserArg; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pJoinParams = pJoinParams; - strHostIFmsg.drvHandler = hWFIDrv; + msg.uniHostIFmsgBody.strHostIFconnectAttr.u8security = u8security; + msg.uniHostIFmsgBody.strHostIFconnectAttr.tenuAuth_type = tenuAuth_type; + msg.uniHostIFmsgBody.strHostIFconnectAttr.u8channel = u8channel; + msg.uniHostIFmsgBody.strHostIFconnectAttr.pfConnectResult = pfConnectResult; + msg.uniHostIFmsgBody.strHostIFconnectAttr.pvUserArg = pvUserArg; + msg.uniHostIFmsgBody.strHostIFconnectAttr.pJoinParams = pJoinParams; + msg.drvHandler = hWFIDrv; if (pu8bssid != NULL) { - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid, + msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid, pu8bssid, 6); } if (pu8ssid != NULL) { - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.ssidLen = ssidLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid, + msg.uniHostIFmsgBody.strHostIFconnectAttr.ssidLen = ssidLen; + msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid, pu8ssid, ssidLen); } if (pu8IEs != NULL) { - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.IEsLen = IEsLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs, + msg.uniHostIFmsgBody.strHostIFconnectAttr.IEsLen = IEsLen; + msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs, pu8IEs, IEsLen); } if (pstrWFIDrv->enuHostIFstate < HOST_IF_CONNECTING) @@ -5399,7 +5399,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", pstrWFIDrv->enuHostIFstate); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Set join request\n"); return -EFAULT; @@ -5428,7 +5428,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (!gu8FlushedJoinReq) { s32Error = -EFAULT; @@ -5442,11 +5442,11 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) return s32Error; } - strHostIFmsg.u16MsgId = HOST_IF_MSG_FLUSH_CONNECT; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_FLUSH_CONNECT; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Flush join request\n"); return -EFAULT; @@ -5469,7 +5469,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; if (pstrWFIDrv == NULL) { @@ -5478,13 +5478,13 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) } /* prepare the Disconnect Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_DISCONNECT; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_DISCONNECT; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: disconnect\n"); /* ////////////// */ @@ -5654,7 +5654,7 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -5662,12 +5662,12 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) } /* prepare the set channel message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_CHANNEL; - strHostIFmsg.uniHostIFmsgBody.strHostIFSetChan.u8SetChan = u8ChNum; - strHostIFmsg.drvHandler = hWFIDrv; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.u16MsgId = HOST_IF_MSG_SET_CHANNEL; + msg.uniHostIFmsgBody.strHostIFSetChan.u8SetChan = u8ChNum; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5681,13 +5681,13 @@ s32 host_int_wait_msg_queue_idle(void) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_Q_IDLE; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.u16MsgId = HOST_IF_MSG_Q_IDLE; + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5704,17 +5704,17 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_WFIDRV_HANDLER; - strHostIFmsg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); - strHostIFmsg.drvHandler = u32address; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.u16MsgId = HOST_IF_MSG_SET_WFIDRV_HANDLER; + msg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); + msg.drvHandler = u32address; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5729,17 +5729,17 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* prepare the set driver handler message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_OPERATION_MODE; - strHostIFmsg.uniHostIFmsgBody.strHostIfSetOperationMode.u32Mode = u32mode; - strHostIFmsg.drvHandler = hWFIDrv; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.u16MsgId = HOST_IF_MSG_SET_OPERATION_MODE; + msg.uniHostIFmsgBody.strHostIfSetOperationMode.u32Mode = u32mode; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); s32Error = -EINVAL; @@ -5767,7 +5767,7 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -5775,13 +5775,13 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) } /* prepare the Get Channel Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_CHNL; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_GET_CHNL; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); down(&(pstrWFIDrv->hSemGetCHNL)); @@ -5852,24 +5852,24 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIfStaInactiveT.mac, + memcpy(msg.uniHostIFmsgBody.strHostIfStaInactiveT.mac, mac, ETH_ALEN); - strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_INACTIVETIME; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_GET_INACTIVETIME; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send get host channel param's message queue "); @@ -5939,18 +5939,18 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_RSSI; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_GET_RSSI; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; @@ -5973,7 +5973,7 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) { - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -5981,13 +5981,13 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) /* prepare the Get LINKSPEED Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_LINKSPEED; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_GET_LINKSPEED; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send GET_LINKSPEED to message queue "); return -EFAULT; @@ -6011,17 +6011,17 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_STATISTICS; - strHostIFmsg.uniHostIFmsgBody.pUserData = (char *)pstrStatistics; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_GET_STATISTICS; + msg.uniHostIFmsgBody.pUserData = (char *)pstrStatistics; + msg.drvHandler = hWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; @@ -6056,7 +6056,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; tenuScanConnTimer enuScanConnTimer; if (pstrWFIDrv == NULL || ScanResult == NULL) { @@ -6065,35 +6065,35 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, } /* prepare the Scan Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_SCAN; + msg.u16MsgId = HOST_IF_MSG_SCAN; if (pstrHiddenNetwork != NULL) { - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.strHiddenNetwork.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.strHiddenNetwork.u8ssidnum = pstrHiddenNetwork->u8ssidnum; + msg.uniHostIFmsgBody.strHostIFscanAttr.strHiddenNetwork.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; + msg.uniHostIFmsgBody.strHostIFscanAttr.strHiddenNetwork.u8ssidnum = pstrHiddenNetwork->u8ssidnum; } else PRINT_D(HOSTINF_DBG, "pstrHiddenNetwork IS EQUAL TO NULL\n"); - strHostIFmsg.drvHandler = hWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.u8ScanSource = u8ScanSource; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.u8ScanType = u8ScanType; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pfScanResult = ScanResult; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pvUserArg = pvUserArg; + msg.drvHandler = hWFIDrv; + msg.uniHostIFmsgBody.strHostIFscanAttr.u8ScanSource = u8ScanSource; + msg.uniHostIFmsgBody.strHostIFscanAttr.u8ScanType = u8ScanType; + msg.uniHostIFmsgBody.strHostIFscanAttr.pfScanResult = ScanResult; + msg.uniHostIFmsgBody.strHostIFscanAttr.pvUserArg = pvUserArg; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.u8ChnlListLen = u8ChnlListLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList, + msg.uniHostIFmsgBody.strHostIFscanAttr.u8ChnlListLen = u8ChnlListLen; + msg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList, pu8ChnlFreqList, u8ChnlListLen); - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.IEsLen = IEsLen; - strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(strHostIFmsg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs, + msg.uniHostIFmsgBody.strHostIFscanAttr.IEsLen = IEsLen; + msg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs, pu8IEs, IEsLen); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Error in sending message queue\n"); return -EINVAL; @@ -6125,7 +6125,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -6133,12 +6133,12 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) return -EFAULT; } /* prepare the WiphyParams Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_CFG_PARAMS; - strHostIFmsg.uniHostIFmsgBody.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; - strHostIFmsg.drvHandler = hWFIDrv; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.u16MsgId = HOST_IF_MSG_CFG_PARAMS; + msg.uniHostIFmsgBody.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); return s32Error; @@ -6301,16 +6301,16 @@ static void GetPeriodicRSSI(unsigned long arg) if (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* prepare the Get RSSI Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_RSSI; - strHostIFmsg.drvHandler = pstrWFIDrv; + msg.u16MsgId = HOST_IF_MSG_GET_RSSI; + msg.drvHandler = pstrWFIDrv; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return; @@ -6496,7 +6496,7 @@ _fail_: s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; int ret; /*obtain driver handle*/ @@ -6557,18 +6557,18 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) gbScanWhileConnected = false; - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); if (clients_count == 1) { if (del_timer_sync(&g_hPeriodicRSSI)) { PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } - strHostIFmsg.u16MsgId = HOST_IF_MSG_EXIT; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_EXIT; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error != 0) PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", s32Error); @@ -6614,7 +6614,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6630,18 +6630,18 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) } /* prepare the Asynchronous Network Info message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_NTWRK_INFO; - strHostIFmsg.drvHandler = pstrWFIDrv; + msg.u16MsgId = HOST_IF_MSG_RCVD_NTWRK_INFO; + msg.drvHandler = pstrWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strRcvdNetworkInfo.u32Length = u32Length; - strHostIFmsg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(strHostIFmsg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer, + msg.uniHostIFmsgBody.strRcvdNetworkInfo.u32Length = u32Length; + msg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer, pu8Buffer, u32Length); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending network info message queue message parameters: Error(%d)\n", s32Error); } @@ -6660,7 +6660,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6685,20 +6685,20 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) } /* prepare the General Asynchronous Info message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; - strHostIFmsg.drvHandler = pstrWFIDrv; + msg.u16MsgId = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; + msg.drvHandler = pstrWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.u32Length = u32Length; - strHostIFmsg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(strHostIFmsg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer, + msg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.u32Length = u32Length; + msg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer, pu8Buffer, u32Length); /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); @@ -6717,7 +6717,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; int id; tstrWILC_WFIDrv *pstrWFIDrv = NULL; @@ -6733,22 +6733,22 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) /*if there is an ongoing scan request*/ if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { /* prepare theScan Done message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_RCVD_SCAN_COMPLETE; - strHostIFmsg.drvHandler = pstrWFIDrv; + msg.u16MsgId = HOST_IF_MSG_RCVD_SCAN_COMPLETE; + msg.drvHandler = pstrWFIDrv; /* will be deallocated by the receiving thread */ /*no need to send message body*/ - /*strHostIFmsg.uniHostIFmsgBody.strScanComplete.u32Length = u32Length; - * strHostIFmsg.uniHostIFmsgBody.strScanComplete.pu8Buffer = (u8*)WILC_MALLOC(u32Length); - * memcpy(strHostIFmsg.uniHostIFmsgBody.strScanComplete.pu8Buffer, + /*msg.uniHostIFmsgBody.strScanComplete.u32Length = u32Length; + * msg.uniHostIFmsgBody.strScanComplete.pu8Buffer = (u8*)WILC_MALLOC(u32Length); + * memcpy(msg.uniHostIFmsgBody.strScanComplete.pu8Buffer, * pu8Buffer, u32Length); */ /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue scan complete parameters: Error(%d)\n", s32Error); } @@ -6776,7 +6776,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -6784,19 +6784,19 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u } /* prepare the remainonchan Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_REMAIN_ON_CHAN; - strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u16Channel = chan; - strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.pRemainOnChanExpired = RemainOnChanExpired; - strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.pRemainOnChanReady = RemainOnChanReady; - strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.pVoid = pvUserArg; - strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32duration = u32duration; - strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_REMAIN_ON_CHAN; + msg.uniHostIFmsgBody.strHostIfRemainOnChan.u16Channel = chan; + msg.uniHostIFmsgBody.strHostIfRemainOnChan.pRemainOnChanExpired = RemainOnChanExpired; + msg.uniHostIFmsgBody.strHostIfRemainOnChan.pRemainOnChanReady = RemainOnChanReady; + msg.uniHostIFmsgBody.strHostIfRemainOnChan.pVoid = pvUserArg; + msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32duration = u32duration; + msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6821,7 +6821,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -6832,12 +6832,12 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) del_timer(&pstrWFIDrv->hRemainOnChannel); /* prepare the timer fire Message */ - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); - strHostIFmsg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; - strHostIFmsg.drvHandler = hWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; + memset(&msg, 0, sizeof(struct host_if_msg)); + msg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; + msg.drvHandler = hWFIDrv; + msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6856,37 +6856,37 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_REGISTER_FRAME; + msg.u16MsgId = HOST_IF_MSG_REGISTER_FRAME; switch (u16FrameType) { case ACTION: PRINT_D(HOSTINF_DBG, "ACTION\n"); - strHostIFmsg.uniHostIFmsgBody.strHostIfRegisterFrame.u8Regid = ACTION_FRM_IDX; + msg.uniHostIFmsgBody.strHostIfRegisterFrame.u8Regid = ACTION_FRM_IDX; break; case PROBE_REQ: PRINT_D(HOSTINF_DBG, "PROBE REQ\n"); - strHostIFmsg.uniHostIFmsgBody.strHostIfRegisterFrame.u8Regid = PROBE_REQ_IDX; + msg.uniHostIFmsgBody.strHostIfRegisterFrame.u8Regid = PROBE_REQ_IDX; break; default: PRINT_D(HOSTINF_DBG, "Not valid frame type\n"); break; } - strHostIFmsg.uniHostIFmsgBody.strHostIfRegisterFrame.u16FrameType = u16FrameType; - strHostIFmsg.uniHostIFmsgBody.strHostIfRegisterFrame.bReg = bReg; - strHostIFmsg.drvHandler = hWFIDrv; + msg.uniHostIFmsgBody.strHostIfRegisterFrame.u16FrameType = u16FrameType; + msg.uniHostIFmsgBody.strHostIfRegisterFrame.bReg = bReg; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6913,22 +6913,22 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrHostIFSetBeacon *pstrSetBeaconParam = &strHostIFmsg.uniHostIFmsgBody.strHostIFSetBeacon; + struct host_if_msg msg; + tstrHostIFSetBeacon *pstrSetBeaconParam = &msg.uniHostIFmsgBody.strHostIFSetBeacon; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting adding beacon message queue params\n"); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_ADD_BEACON; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_ADD_BEACON; + msg.drvHandler = hWFIDrv; pstrSetBeaconParam->u32Interval = u32Interval; pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; pstrSetBeaconParam->u32HeadLen = u32HeadLen; @@ -6951,7 +6951,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, pstrSetBeaconParam->pu8Tail = NULL; } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -6982,7 +6982,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -6990,11 +6990,11 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) } /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_BEACON; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_DEL_BEACON; + msg.drvHandler = hWFIDrv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7015,8 +7015,8 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; + struct host_if_msg msg; + tstrWILC_AddStaParam *pstrAddStationMsg = &msg.uniHostIFmsgBody.strAddStaParam; if (pstrWFIDrv == NULL) { @@ -7024,14 +7024,14 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting adding station message queue params\n"); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_ADD_STATION; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_ADD_STATION; + msg.drvHandler = hWFIDrv; memcpy(pstrAddStationMsg, pstrStaParams, sizeof(tstrWILC_AddStaParam)); if (pstrAddStationMsg->u8NumRates > 0) { @@ -7045,7 +7045,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7064,30 +7064,30 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrHostIFDelSta *pstrDelStationMsg = &strHostIFmsg.uniHostIFmsgBody.strDelStaParam; + struct host_if_msg msg; + tstrHostIFDelSta *pstrDelStationMsg = &msg.uniHostIFmsgBody.strDelStaParam; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting deleting station message queue params\n"); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_STATION; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_DEL_STATION; + msg.drvHandler = hWFIDrv; if (pu8MacAddr == NULL) memset(pstrDelStationMsg->au8MacAddr, 255, ETH_ALEN); else memcpy(pstrDelStationMsg->au8MacAddr, pu8MacAddr, ETH_ALEN); - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7105,8 +7105,8 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrHostIFDelAllSta *pstrDelAllStationMsg = &strHostIFmsg.uniHostIFmsgBody.strHostIFDelAllSta; + struct host_if_msg msg; + tstrHostIFDelAllSta *pstrDelAllStationMsg = &msg.uniHostIFmsgBody.strHostIFDelAllSta; u8 au8Zero_Buff[ETH_ALEN] = {0}; u32 i; u8 u8AssocNumb = 0; @@ -7117,13 +7117,13 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); PRINT_D(HOSTINF_DBG, "Setting deauthenticating station message queue params\n"); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_ALL_STA; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_DEL_ALL_STA; + msg.drvHandler = hWFIDrv; /* Handling situation of deauthenticing all associated stations*/ for (i = 0; i < MAX_NUM_STA; i++) { @@ -7140,7 +7140,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) } pstrDelAllStationMsg->u8Num_AssocSta = u8AssocNumb; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -7165,8 +7165,8 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrWILC_AddStaParam *pstrAddStationMsg = &strHostIFmsg.uniHostIFmsgBody.strAddStaParam; + struct host_if_msg msg; + tstrWILC_AddStaParam *pstrAddStationMsg = &msg.uniHostIFmsgBody.strAddStaParam; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7175,12 +7175,12 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt PRINT_D(HOSTINF_DBG, "Setting editing station message queue params\n"); - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_EDIT_STATION; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_EDIT_STATION; + msg.drvHandler = hWFIDrv; memcpy(pstrAddStationMsg, pstrStaParams, sizeof(tstrWILC_AddStaParam)); if (pstrAddStationMsg->u8NumRates > 0) { @@ -7193,7 +7193,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt pstrAddStationMsg->pu8Rates = rates; } - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7204,8 +7204,8 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrHostIfPowerMgmtParam *pstrPowerMgmtParam = &strHostIFmsg.uniHostIFmsgBody.strPowerMgmtparam; + struct host_if_msg msg; + tstrHostIfPowerMgmtParam *pstrPowerMgmtParam = &msg.uniHostIFmsgBody.strPowerMgmtparam; PRINT_INFO(HOSTINF_DBG, "\n\n>> Setting PS to %d <<\n\n", bIsEnabled); @@ -7216,18 +7216,18 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti PRINT_D(HOSTINF_DBG, "Setting Power management message queue params\n"); - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_POWER_MGMT; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_POWER_MGMT; + msg.drvHandler = hWFIDrv; pstrPowerMgmtParam->bIsEnabled = bIsEnabled; pstrPowerMgmtParam->u32Timeout = u32Timeout; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7238,8 +7238,8 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrHostIFSetMulti *pstrMulticastFilterParam = &strHostIFmsg.uniHostIFmsgBody.strHostIfSetMulti; + struct host_if_msg msg; + tstrHostIFSetMulti *pstrMulticastFilterParam = &msg.uniHostIFmsgBody.strHostIfSetMulti; if (pstrWFIDrv == NULL) { @@ -7249,17 +7249,17 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u PRINT_D(HOSTINF_DBG, "Setting Multicast Filter params\n"); - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_MULTICAST_FILTER; - strHostIFmsg.drvHandler = hWFIDrv; + msg.u16MsgId = HOST_IF_MSG_SET_MULTICAST_FILTER; + msg.drvHandler = hWFIDrv; pstrMulticastFilterParam->bIsEnabled = bIsEnabled; pstrMulticastFilterParam->u32count = u32count; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -7503,26 +7503,26 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; + struct host_if_msg msg; + tstrHostIfBASessionInfo *pBASessionInfo = &msg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_ADD_BA_SESSION; + msg.u16MsgId = HOST_IF_MSG_ADD_BA_SESSION; memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; pBASessionInfo->u16BufferSize = BufferSize; pBASessionInfo->u16SessionTimeout = SessionTimeout; - strHostIFmsg.drvHandler = hWFIDrv; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7534,24 +7534,24 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; + struct host_if_msg msg; + tstrHostIfBASessionInfo *pBASessionInfo = &msg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_BA_SESSION; + msg.u16MsgId = HOST_IF_MSG_DEL_BA_SESSION; memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; - strHostIFmsg.drvHandler = hWFIDrv; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7564,24 +7564,24 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; - tstrHostIfBASessionInfo *pBASessionInfo = &strHostIFmsg.uniHostIFmsgBody.strHostIfBASessionInfo; + struct host_if_msg msg; + tstrHostIfBASessionInfo *pBASessionInfo = &msg.uniHostIFmsgBody.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS; + msg.u16MsgId = HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS; memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; - strHostIFmsg.drvHandler = hWFIDrv; + msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7602,7 +7602,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; /* TODO: Enable This feature on softap firmware */ return 0; @@ -7612,16 +7612,16 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_SET_IPADDRESS; + msg.u16MsgId = HOST_IF_MSG_SET_IPADDRESS; - strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr = u16ipadd; - strHostIFmsg.drvHandler = hWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; + msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr = u16ipadd; + msg.drvHandler = hWFIDrv; + msg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -7642,23 +7642,23 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg strHostIFmsg; + struct host_if_msg msg; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); return -EFAULT; } - memset(&strHostIFmsg, 0, sizeof(struct host_if_msg)); + memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - strHostIFmsg.u16MsgId = HOST_IF_MSG_GET_IPADDRESS; + msg.u16MsgId = HOST_IF_MSG_GET_IPADDRESS; - strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr = u16ipadd; - strHostIFmsg.drvHandler = hWFIDrv; - strHostIFmsg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; + msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr = u16ipadd; + msg.drvHandler = hWFIDrv; + msg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); From a9f812a6d845d4511a711c7d5d84776b2f5aec8c Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:33 +0900 Subject: [PATCH 0520/2431] staging: wilc1000: rename u16MsgId This patch changes the name, u16MsgId simply to id to avoid the camelcase notation. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 102 +++++++++++----------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e9ac3957462f..26c44ce33503 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -458,7 +458,7 @@ typedef union _tuniHostIFmsgBody { * @version 1.0 */ struct host_if_msg { - u16 u16MsgId; /*!< Message ID */ + u16 id; /*!< Message ID */ tuniHostIFmsgBody uniHostIFmsgBody; /*!< Message body */ tstrWILC_WFIDrv *drvHandler; }; @@ -3962,7 +3962,7 @@ static void ListenTimerCB(unsigned long arg) /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; + msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; msg.drvHandler = pstrWFIDrv; msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; @@ -4290,7 +4290,7 @@ static int hostIFthread(void *pvArg) while (1) { wilc_mq_recv(&gMsgQHostIF, &msg, sizeof(struct host_if_msg), &u32Ret); pstrWFIDrv = (tstrWILC_WFIDrv *)msg.drvHandler; - if (msg.u16MsgId == HOST_IF_MSG_EXIT) { + if (msg.id == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); break; } @@ -4304,14 +4304,14 @@ static int hostIFthread(void *pvArg) continue; } - if (msg.u16MsgId == HOST_IF_MSG_CONNECT && pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { + if (msg.id == HOST_IF_MSG_CONNECT && pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_D(HOSTINF_DBG, "Requeue connect request till scan done received\n"); wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); usleep_range(2 * 1000, 2 * 1000); continue; } - switch (msg.u16MsgId) { + switch (msg.id) { case HOST_IF_MSG_Q_IDLE: Handle_wait_msg_q_empty(); break; @@ -4500,7 +4500,7 @@ static void TimerCB_Scan(unsigned long arg) /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.drvHandler = pvArg; - msg.u16MsgId = HOST_IF_MSG_SCAN_TIMER_FIRED; + msg.id = HOST_IF_MSG_SCAN_TIMER_FIRED; /* send the message */ wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4514,7 +4514,7 @@ static void TimerCB_Connect(unsigned long arg) /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.drvHandler = pvArg; - msg.u16MsgId = HOST_IF_MSG_CONNECT_TIMER_FIRED; + msg.id = HOST_IF_MSG_CONNECT_TIMER_FIRED; /* send the message */ wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4580,7 +4580,7 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_KEY; + msg.id = HOST_IF_MSG_KEY; msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = REMOVEKEY; msg.drvHandler = hWFIDrv; @@ -4628,7 +4628,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_KEY; + msg.id = HOST_IF_MSG_KEY; msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = DEFAULTKEY; msg.drvHandler = hWFIDrv; @@ -4682,7 +4682,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_KEY; + msg.id = HOST_IF_MSG_KEY; msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; msg.drvHandler = hWFIDrv; @@ -4748,7 +4748,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u for (i = 0; i < u8WepKeylen; i++) PRINT_INFO(HOSTAPD_DBG, "KEY is %x\n", pu8WepKey[i]); } - msg.u16MsgId = HOST_IF_MSG_KEY; + msg.id = HOST_IF_MSG_KEY; msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; msg.drvHandler = hWFIDrv; @@ -4823,7 +4823,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_KEY; + msg.id = HOST_IF_MSG_KEY; msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPAPtk; if (mode == AP_MODE) { msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; @@ -4926,7 +4926,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe } - msg.u16MsgId = HOST_IF_MSG_KEY; + msg.id = HOST_IF_MSG_KEY; msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPARxGtk; msg.drvHandler = hWFIDrv; @@ -5015,7 +5015,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm /* prepare the Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_KEY; + msg.id = HOST_IF_MSG_KEY; msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = PMKSA; msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; msg.drvHandler = hWFIDrv; @@ -5123,7 +5123,7 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) /* prepare the Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_GET_MAC_ADDRESS; + msg.id = HOST_IF_MSG_GET_MAC_ADDRESS; msg.uniHostIFmsgBody.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; msg.drvHandler = hWFIDrv; /* send the message */ @@ -5157,7 +5157,7 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) /* prepare setting mac address message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_SET_MAC_ADDRESS; + msg.id = HOST_IF_MSG_SET_MAC_ADDRESS; memcpy(msg.uniHostIFmsgBody.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); msg.drvHandler = hWFIDrv; @@ -5363,7 +5363,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, /* prepare the Connect Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_CONNECT; + msg.id = HOST_IF_MSG_CONNECT; msg.uniHostIFmsgBody.strHostIFconnectAttr.u8security = u8security; msg.uniHostIFmsgBody.strHostIFconnectAttr.tenuAuth_type = tenuAuth_type; @@ -5442,7 +5442,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) return s32Error; } - msg.u16MsgId = HOST_IF_MSG_FLUSH_CONNECT; + msg.id = HOST_IF_MSG_FLUSH_CONNECT; msg.drvHandler = hWFIDrv; /* send the message */ @@ -5480,7 +5480,7 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) /* prepare the Disconnect Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_DISCONNECT; + msg.id = HOST_IF_MSG_DISCONNECT; msg.drvHandler = hWFIDrv; /* send the message */ @@ -5663,7 +5663,7 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) /* prepare the set channel message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_SET_CHANNEL; + msg.id = HOST_IF_MSG_SET_CHANNEL; msg.uniHostIFmsgBody.strHostIFSetChan.u8SetChan = u8ChNum; msg.drvHandler = hWFIDrv; @@ -5686,7 +5686,7 @@ s32 host_int_wait_msg_queue_idle(void) /* prepare the set driver handler message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_Q_IDLE; + msg.id = HOST_IF_MSG_Q_IDLE; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("wilc mq send fail\n"); @@ -5710,7 +5710,7 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) /* prepare the set driver handler message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_SET_WFIDRV_HANDLER; + msg.id = HOST_IF_MSG_SET_WFIDRV_HANDLER; msg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); msg.drvHandler = u32address; @@ -5735,7 +5735,7 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) /* prepare the set driver handler message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_SET_OPERATION_MODE; + msg.id = HOST_IF_MSG_SET_OPERATION_MODE; msg.uniHostIFmsgBody.strHostIfSetOperationMode.u32Mode = u32mode; msg.drvHandler = hWFIDrv; @@ -5777,7 +5777,7 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) /* prepare the Get Channel Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_GET_CHNL; + msg.id = HOST_IF_MSG_GET_CHNL; msg.drvHandler = hWFIDrv; /* send the message */ @@ -5865,7 +5865,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 memcpy(msg.uniHostIFmsgBody.strHostIfStaInactiveT.mac, mac, ETH_ALEN); - msg.u16MsgId = HOST_IF_MSG_GET_INACTIVETIME; + msg.id = HOST_IF_MSG_GET_INACTIVETIME; msg.drvHandler = hWFIDrv; /* send the message */ @@ -5946,7 +5946,7 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) /* prepare the Get RSSI Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_GET_RSSI; + msg.id = HOST_IF_MSG_GET_RSSI; msg.drvHandler = hWFIDrv; /* send the message */ @@ -5983,7 +5983,7 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) /* prepare the Get LINKSPEED Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_GET_LINKSPEED; + msg.id = HOST_IF_MSG_GET_LINKSPEED; msg.drvHandler = hWFIDrv; /* send the message */ @@ -6017,7 +6017,7 @@ s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatis /* prepare the Get RSSI Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_GET_STATISTICS; + msg.id = HOST_IF_MSG_GET_STATISTICS; msg.uniHostIFmsgBody.pUserData = (char *)pstrStatistics; msg.drvHandler = hWFIDrv; /* send the message */ @@ -6067,7 +6067,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, /* prepare the Scan Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_SCAN; + msg.id = HOST_IF_MSG_SCAN; if (pstrHiddenNetwork != NULL) { msg.uniHostIFmsgBody.strHostIFscanAttr.strHiddenNetwork.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; @@ -6134,7 +6134,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) } /* prepare the WiphyParams Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_CFG_PARAMS; + msg.id = HOST_IF_MSG_CFG_PARAMS; msg.uniHostIFmsgBody.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; msg.drvHandler = hWFIDrv; @@ -6306,7 +6306,7 @@ static void GetPeriodicRSSI(unsigned long arg) /* prepare the Get RSSI Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_GET_RSSI; + msg.id = HOST_IF_MSG_GET_RSSI; msg.drvHandler = pstrWFIDrv; /* send the message */ @@ -6564,7 +6564,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } - msg.u16MsgId = HOST_IF_MSG_EXIT; + msg.id = HOST_IF_MSG_EXIT; msg.drvHandler = hWFIDrv; @@ -6632,7 +6632,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) /* prepare the Asynchronous Network Info message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_RCVD_NTWRK_INFO; + msg.id = HOST_IF_MSG_RCVD_NTWRK_INFO; msg.drvHandler = pstrWFIDrv; msg.uniHostIFmsgBody.strRcvdNetworkInfo.u32Length = u32Length; @@ -6688,7 +6688,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; + msg.id = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; msg.drvHandler = pstrWFIDrv; @@ -6735,7 +6735,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) /* prepare theScan Done message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_RCVD_SCAN_COMPLETE; + msg.id = HOST_IF_MSG_RCVD_SCAN_COMPLETE; msg.drvHandler = pstrWFIDrv; @@ -6787,7 +6787,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_REMAIN_ON_CHAN; + msg.id = HOST_IF_MSG_REMAIN_ON_CHAN; msg.uniHostIFmsgBody.strHostIfRemainOnChan.u16Channel = chan; msg.uniHostIFmsgBody.strHostIfRemainOnChan.pRemainOnChanExpired = RemainOnChanExpired; msg.uniHostIFmsgBody.strHostIfRemainOnChan.pRemainOnChanReady = RemainOnChanReady; @@ -6833,7 +6833,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) /* prepare the timer fire Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.u16MsgId = HOST_IF_MSG_LISTEN_TIMER_FIRED; + msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; msg.drvHandler = hWFIDrv; msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; @@ -6866,7 +6866,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_REGISTER_FRAME; + msg.id = HOST_IF_MSG_REGISTER_FRAME; switch (u16FrameType) { case ACTION: PRINT_D(HOSTINF_DBG, "ACTION\n"); @@ -6927,7 +6927,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_ADD_BEACON; + msg.id = HOST_IF_MSG_ADD_BEACON; msg.drvHandler = hWFIDrv; pstrSetBeaconParam->u32Interval = u32Interval; pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; @@ -6990,7 +6990,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) } /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_DEL_BEACON; + msg.id = HOST_IF_MSG_DEL_BEACON; msg.drvHandler = hWFIDrv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); @@ -7030,7 +7030,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_ADD_STATION; + msg.id = HOST_IF_MSG_ADD_STATION; msg.drvHandler = hWFIDrv; memcpy(pstrAddStationMsg, pstrStaParams, sizeof(tstrWILC_AddStaParam)); @@ -7079,7 +7079,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_DEL_STATION; + msg.id = HOST_IF_MSG_DEL_STATION; msg.drvHandler = hWFIDrv; if (pu8MacAddr == NULL) @@ -7122,7 +7122,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) PRINT_D(HOSTINF_DBG, "Setting deauthenticating station message queue params\n"); /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_DEL_ALL_STA; + msg.id = HOST_IF_MSG_DEL_ALL_STA; msg.drvHandler = hWFIDrv; /* Handling situation of deauthenticing all associated stations*/ @@ -7179,7 +7179,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_EDIT_STATION; + msg.id = HOST_IF_MSG_EDIT_STATION; msg.drvHandler = hWFIDrv; memcpy(pstrAddStationMsg, pstrStaParams, sizeof(tstrWILC_AddStaParam)); @@ -7220,7 +7220,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_POWER_MGMT; + msg.id = HOST_IF_MSG_POWER_MGMT; msg.drvHandler = hWFIDrv; pstrPowerMgmtParam->bIsEnabled = bIsEnabled; @@ -7253,7 +7253,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_SET_MULTICAST_FILTER; + msg.id = HOST_IF_MSG_SET_MULTICAST_FILTER; msg.drvHandler = hWFIDrv; pstrMulticastFilterParam->bIsEnabled = bIsEnabled; @@ -7514,7 +7514,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_ADD_BA_SESSION; + msg.id = HOST_IF_MSG_ADD_BA_SESSION; memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; @@ -7545,7 +7545,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_DEL_BA_SESSION; + msg.id = HOST_IF_MSG_DEL_BA_SESSION; memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; @@ -7575,7 +7575,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS; + msg.id = HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS; memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; @@ -7615,7 +7615,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_SET_IPADDRESS; + msg.id = HOST_IF_MSG_SET_IPADDRESS; msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr = u16ipadd; msg.drvHandler = hWFIDrv; @@ -7652,7 +7652,7 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) memset(&msg, 0, sizeof(struct host_if_msg)); /* prepare the WiphyParams Message */ - msg.u16MsgId = HOST_IF_MSG_GET_IPADDRESS; + msg.id = HOST_IF_MSG_GET_IPADDRESS; msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr = u16ipadd; msg.drvHandler = hWFIDrv; From dfc7663ba27f38be04095e3d4931f9df58b887fc Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:34 +0900 Subject: [PATCH 0521/2431] staging: wilc1000 remove typedef from the union This patch gets rid of typedef from the union and renames tuniHostIFmsgBody with simply message_body because the Linux coding style does not recommend camelcase notation and typedef for structure, enmu and also union. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 26c44ce33503..25f2ce068947 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -407,7 +407,7 @@ typedef struct { } tstrHostIfStaInactiveT; /**/ /*! - * @union tuniHostIFmsgBody + * @union message_body * @brief Message body for the Host Interface message_q * @details * @todo @@ -416,7 +416,7 @@ typedef struct { * @date 25 March 2012 * @version 1.0 */ -typedef union _tuniHostIFmsgBody { +union message_body { tstrHostIFscanAttr strHostIFscanAttr; /*!< Host IF Scan Request Attributes message body */ tstrHostIFconnectAttr strHostIFconnectAttr; /*!< Host IF Connect Request Attributes message body */ tstrRcvdNetworkInfo strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ @@ -445,7 +445,7 @@ typedef union _tuniHostIFmsgBody { tstrHostIfRegisterFrame strHostIfRegisterFrame; char *pUserData; tstrHostIFDelAllSta strHostIFDelAllSta; -} tuniHostIFmsgBody; +}; /*! * @struct struct host_if_msg @@ -459,7 +459,7 @@ typedef union _tuniHostIFmsgBody { */ struct host_if_msg { u16 id; /*!< Message ID */ - tuniHostIFmsgBody uniHostIFmsgBody; /*!< Message body */ + union message_body uniHostIFmsgBody; /*!< Message body */ tstrWILC_WFIDrv *drvHandler; }; From 410c248991430d8fbcba0230501c7e3666eb01a3 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:35 +0900 Subject: [PATCH 0522/2431] staging: wilc1000: rename uniHostIFmsgBody This patch changes the camelcase notation, uniHostIFmsgBody which is a member variable of structure host_if_msg to body in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 294 +++++++++++----------- 1 file changed, 147 insertions(+), 147 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 25f2ce068947..6bfb8b171cba 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -459,7 +459,7 @@ union message_body { */ struct host_if_msg { u16 id; /*!< Message ID */ - union message_body uniHostIFmsgBody; /*!< Message body */ + union message_body body; /*!< Message body */ tstrWILC_WFIDrv *drvHandler; }; @@ -3964,7 +3964,7 @@ static void ListenTimerCB(unsigned long arg) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; msg.drvHandler = pstrWFIDrv; - msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; + msg.body.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4317,11 +4317,11 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_SCAN: - Handle_Scan(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFscanAttr); + Handle_Scan(msg.drvHandler, &msg.body.strHostIFscanAttr); break; case HOST_IF_MSG_CONNECT: - Handle_Connect(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFconnectAttr); + Handle_Connect(msg.drvHandler, &msg.body.strHostIFconnectAttr); break; case HOST_IF_MSG_FLUSH_CONNECT: @@ -4329,24 +4329,24 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_RCVD_NTWRK_INFO: - Handle_RcvdNtwrkInfo(msg.drvHandler, &msg.uniHostIFmsgBody.strRcvdNetworkInfo); + Handle_RcvdNtwrkInfo(msg.drvHandler, &msg.body.strRcvdNetworkInfo); break; case HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO: - Handle_RcvdGnrlAsyncInfo(msg.drvHandler, &msg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo); + Handle_RcvdGnrlAsyncInfo(msg.drvHandler, &msg.body.strRcvdGnrlAsyncInfo); break; case HOST_IF_MSG_KEY: - Handle_Key(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFkeyAttr); + Handle_Key(msg.drvHandler, &msg.body.strHostIFkeyAttr); break; case HOST_IF_MSG_CFG_PARAMS: - Handle_CfgParam(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFCfgParamAttr); + Handle_CfgParam(msg.drvHandler, &msg.body.strHostIFCfgParamAttr); break; case HOST_IF_MSG_SET_CHANNEL: - Handle_SetChannel(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFSetChan); + Handle_SetChannel(msg.drvHandler, &msg.body.strHostIFSetChan); break; case HOST_IF_MSG_DISCONNECT: @@ -4364,7 +4364,7 @@ static int hostIFthread(void *pvArg) Handle_ScanDone(msg.drvHandler, SCAN_EVENT_DONE); if (pstrWFIDrv->u8RemainOnChan_pendingreq) - Handle_RemainOnChan(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfRemainOnChan); + Handle_RemainOnChan(msg.drvHandler, &msg.body.strHostIfRemainOnChan); break; @@ -4377,7 +4377,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_GET_STATISTICS: - Handle_GetStatistics(msg.drvHandler, (tstrStatistics *)msg.uniHostIFmsgBody.pUserData); + Handle_GetStatistics(msg.drvHandler, (tstrStatistics *)msg.body.pUserData); break; case HOST_IF_MSG_GET_CHNL: @@ -4385,27 +4385,27 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_ADD_BEACON: - Handle_AddBeacon(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFSetBeacon); + Handle_AddBeacon(msg.drvHandler, &msg.body.strHostIFSetBeacon); break; case HOST_IF_MSG_DEL_BEACON: - Handle_DelBeacon(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFDelBeacon); + Handle_DelBeacon(msg.drvHandler, &msg.body.strHostIFDelBeacon); break; case HOST_IF_MSG_ADD_STATION: - Handle_AddStation(msg.drvHandler, &msg.uniHostIFmsgBody.strAddStaParam); + Handle_AddStation(msg.drvHandler, &msg.body.strAddStaParam); break; case HOST_IF_MSG_DEL_STATION: - Handle_DelStation(msg.drvHandler, &msg.uniHostIFmsgBody.strDelStaParam); + Handle_DelStation(msg.drvHandler, &msg.body.strDelStaParam); break; case HOST_IF_MSG_EDIT_STATION: - Handle_EditStation(msg.drvHandler, &msg.uniHostIFmsgBody.strEditStaParam); + Handle_EditStation(msg.drvHandler, &msg.body.strEditStaParam); break; case HOST_IF_MSG_GET_INACTIVETIME: - Handle_Get_InActiveTime(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfStaInactiveT); + Handle_Get_InActiveTime(msg.drvHandler, &msg.body.strHostIfStaInactiveT); break; case HOST_IF_MSG_SCAN_TIMER_FIRED: @@ -4420,65 +4420,65 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_POWER_MGMT: - Handle_PowerManagement(msg.drvHandler, &msg.uniHostIFmsgBody.strPowerMgmtparam); + Handle_PowerManagement(msg.drvHandler, &msg.body.strPowerMgmtparam); break; case HOST_IF_MSG_SET_WFIDRV_HANDLER: Handle_SetWfiDrvHandler(msg.drvHandler, - &msg.uniHostIFmsgBody.strHostIfSetDrvHandler); + &msg.body.strHostIfSetDrvHandler); break; case HOST_IF_MSG_SET_OPERATION_MODE: - Handle_SetOperationMode(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfSetOperationMode); + Handle_SetOperationMode(msg.drvHandler, &msg.body.strHostIfSetOperationMode); break; case HOST_IF_MSG_SET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_set_IPAddress(msg.drvHandler, msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr, msg.uniHostIFmsgBody.strHostIfSetIP.idx); + Handle_set_IPAddress(msg.drvHandler, msg.body.strHostIfSetIP.au8IPAddr, msg.body.strHostIfSetIP.idx); break; case HOST_IF_MSG_GET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_get_IPAddress(msg.drvHandler, msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr, msg.uniHostIFmsgBody.strHostIfSetIP.idx); + Handle_get_IPAddress(msg.drvHandler, msg.body.strHostIfSetIP.au8IPAddr, msg.body.strHostIfSetIP.idx); break; case HOST_IF_MSG_SET_MAC_ADDRESS: - Handle_SetMacAddress(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfSetMacAddress); + Handle_SetMacAddress(msg.drvHandler, &msg.body.strHostIfSetMacAddress); break; case HOST_IF_MSG_GET_MAC_ADDRESS: - Handle_GetMacAddress(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfGetMacAddress); + Handle_GetMacAddress(msg.drvHandler, &msg.body.strHostIfGetMacAddress); break; case HOST_IF_MSG_REMAIN_ON_CHAN: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REMAIN_ON_CHAN\n"); - Handle_RemainOnChan(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfRemainOnChan); + Handle_RemainOnChan(msg.drvHandler, &msg.body.strHostIfRemainOnChan); break; case HOST_IF_MSG_REGISTER_FRAME: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REGISTER_FRAME\n"); - Handle_RegisterFrame(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfRegisterFrame); + Handle_RegisterFrame(msg.drvHandler, &msg.body.strHostIfRegisterFrame); break; case HOST_IF_MSG_LISTEN_TIMER_FIRED: - Handle_ListenStateExpired(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfRemainOnChan); + Handle_ListenStateExpired(msg.drvHandler, &msg.body.strHostIfRemainOnChan); break; case HOST_IF_MSG_SET_MULTICAST_FILTER: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_MULTICAST_FILTER\n"); - Handle_SetMulticastFilter(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfSetMulti); + Handle_SetMulticastFilter(msg.drvHandler, &msg.body.strHostIfSetMulti); break; case HOST_IF_MSG_ADD_BA_SESSION: - Handle_AddBASession(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfBASessionInfo); + Handle_AddBASession(msg.drvHandler, &msg.body.strHostIfBASessionInfo); break; case HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS: - Handle_DelAllRxBASessions(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIfBASessionInfo); + Handle_DelAllRxBASessions(msg.drvHandler, &msg.body.strHostIfBASessionInfo); break; case HOST_IF_MSG_DEL_ALL_STA: - Handle_DelAllSta(msg.drvHandler, &msg.uniHostIFmsgBody.strHostIFDelAllSta); + Handle_DelAllSta(msg.drvHandler, &msg.body.strHostIFDelAllSta); break; default: @@ -4581,13 +4581,13 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) msg.id = HOST_IF_MSG_KEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = REMOVEKEY; + msg.body.strHostIFkeyAttr.enuKeyType = WEP; + msg.body.strHostIFkeyAttr.u8KeyAction = REMOVEKEY; msg.drvHandler = hWFIDrv; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8keyIdx; /* send the message */ @@ -4629,12 +4629,12 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) msg.id = HOST_IF_MSG_KEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = DEFAULTKEY; + msg.body.strHostIFkeyAttr.enuKeyType = WEP; + msg.body.strHostIFkeyAttr.u8KeyAction = DEFAULTKEY; msg.drvHandler = hWFIDrv; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Index; /* send the message */ @@ -4683,22 +4683,22 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, msg.id = HOST_IF_MSG_KEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.body.strHostIFkeyAttr.enuKeyType = WEP; + msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY; msg.drvHandler = hWFIDrv; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, pu8WepKey, u8WepKeylen); - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen = (u8WepKeylen); - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; /* send the message */ @@ -4749,29 +4749,29 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u PRINT_INFO(HOSTAPD_DBG, "KEY is %x\n", pu8WepKey[i]); } msg.id = HOST_IF_MSG_KEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WEP; - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; + msg.body.strHostIFkeyAttr.enuKeyType = WEP; + msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; msg.drvHandler = hWFIDrv; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, pu8WepKey, (u8WepKeylen)); - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen = (u8WepKeylen); - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.u8mode = u8mode; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type = tenuAuth_type; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4824,26 +4824,26 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, msg.id = HOST_IF_MSG_KEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPAPtk; + msg.body.strHostIFkeyAttr.enuKeyType = WPAPtk; if (mode == AP_MODE) { - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8Idx; } if (mode == STATION_MODE) - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pu8Ptk, u8PtkKeylen); if (pu8RxMic != NULL) { - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < RX_MIC_KEY_LEN; i++) @@ -4852,7 +4852,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, } if (pu8TxMic != NULL) { - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < TX_MIC_KEY_LEN; i++) @@ -4860,12 +4860,12 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, } } - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen = u8KeyLen; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.pu8macaddr = mac_addr; msg.drvHandler = hWFIDrv; @@ -4918,51 +4918,51 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe if (pu8TxMic != NULL) u8KeyLen += TX_MIC_KEY_LEN; if (KeyRSC != NULL) { - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, KeyRSC, u32KeyRSClen); } msg.id = HOST_IF_MSG_KEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = WPARxGtk; + msg.body.strHostIFkeyAttr.enuKeyType = WPARxGtk; msg.drvHandler = hWFIDrv; if (mode == AP_MODE) { - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; - msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; + msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; + msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; } if (mode == STATION_MODE) - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pu8RxGtk, u8GtkKeylen); if (pu8RxMic != NULL) { - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); } if (pu8TxMic != NULL) { - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); } - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8KeyIdx; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen = u8KeyLen; - msg.uniHostIFmsgBody.strHostIFkeyAttr. + msg.body.strHostIFkeyAttr. uniHostIFkeyAttr.strHostIFwpaAttr.u8seqlen = u32KeyRSClen; @@ -5016,16 +5016,16 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_KEY; - msg.uniHostIFmsgBody.strHostIFkeyAttr.enuKeyType = PMKSA; - msg.uniHostIFmsgBody.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.body.strHostIFkeyAttr.enuKeyType = PMKSA; + msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY; msg.drvHandler = hWFIDrv; for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, ETH_ALEN); - memcpy(msg.uniHostIFmsgBody.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, + memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, PMKID_LEN); } @@ -5124,7 +5124,7 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_MAC_ADDRESS; - msg.uniHostIFmsgBody.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; + msg.body.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; msg.drvHandler = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5158,7 +5158,7 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) /* prepare setting mac address message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_MAC_ADDRESS; - memcpy(msg.uniHostIFmsgBody.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); + memcpy(msg.body.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5365,32 +5365,32 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, msg.id = HOST_IF_MSG_CONNECT; - msg.uniHostIFmsgBody.strHostIFconnectAttr.u8security = u8security; - msg.uniHostIFmsgBody.strHostIFconnectAttr.tenuAuth_type = tenuAuth_type; - msg.uniHostIFmsgBody.strHostIFconnectAttr.u8channel = u8channel; - msg.uniHostIFmsgBody.strHostIFconnectAttr.pfConnectResult = pfConnectResult; - msg.uniHostIFmsgBody.strHostIFconnectAttr.pvUserArg = pvUserArg; - msg.uniHostIFmsgBody.strHostIFconnectAttr.pJoinParams = pJoinParams; + msg.body.strHostIFconnectAttr.u8security = u8security; + msg.body.strHostIFconnectAttr.tenuAuth_type = tenuAuth_type; + msg.body.strHostIFconnectAttr.u8channel = u8channel; + msg.body.strHostIFconnectAttr.pfConnectResult = pfConnectResult; + msg.body.strHostIFconnectAttr.pvUserArg = pvUserArg; + msg.body.strHostIFconnectAttr.pJoinParams = pJoinParams; msg.drvHandler = hWFIDrv; if (pu8bssid != NULL) { - msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8bssid, + msg.body.strHostIFconnectAttr.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.strHostIFconnectAttr.pu8bssid, pu8bssid, 6); } if (pu8ssid != NULL) { - msg.uniHostIFmsgBody.strHostIFconnectAttr.ssidLen = ssidLen; - msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8ssid, + msg.body.strHostIFconnectAttr.ssidLen = ssidLen; + msg.body.strHostIFconnectAttr.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.strHostIFconnectAttr.pu8ssid, pu8ssid, ssidLen); } if (pu8IEs != NULL) { - msg.uniHostIFmsgBody.strHostIFconnectAttr.IEsLen = IEsLen; - msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.uniHostIFmsgBody.strHostIFconnectAttr.pu8IEs, + msg.body.strHostIFconnectAttr.IEsLen = IEsLen; + msg.body.strHostIFconnectAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.strHostIFconnectAttr.pu8IEs, pu8IEs, IEsLen); } if (pstrWFIDrv->enuHostIFstate < HOST_IF_CONNECTING) @@ -5664,7 +5664,7 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) /* prepare the set channel message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_CHANNEL; - msg.uniHostIFmsgBody.strHostIFSetChan.u8SetChan = u8ChNum; + msg.body.strHostIFSetChan.u8SetChan = u8ChNum; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5711,7 +5711,7 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_WFIDRV_HANDLER; - msg.uniHostIFmsgBody.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); + msg.body.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); msg.drvHandler = u32address; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5736,7 +5736,7 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_OPERATION_MODE; - msg.uniHostIFmsgBody.strHostIfSetOperationMode.u32Mode = u32mode; + msg.body.strHostIfSetOperationMode.u32Mode = u32mode; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5862,7 +5862,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 memset(&msg, 0, sizeof(struct host_if_msg)); - memcpy(msg.uniHostIFmsgBody.strHostIfStaInactiveT.mac, + memcpy(msg.body.strHostIfStaInactiveT.mac, mac, ETH_ALEN); msg.id = HOST_IF_MSG_GET_INACTIVETIME; @@ -6018,7 +6018,7 @@ s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatis memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_STATISTICS; - msg.uniHostIFmsgBody.pUserData = (char *)pstrStatistics; + msg.body.pUserData = (char *)pstrStatistics; msg.drvHandler = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6070,26 +6070,26 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, msg.id = HOST_IF_MSG_SCAN; if (pstrHiddenNetwork != NULL) { - msg.uniHostIFmsgBody.strHostIFscanAttr.strHiddenNetwork.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; - msg.uniHostIFmsgBody.strHostIFscanAttr.strHiddenNetwork.u8ssidnum = pstrHiddenNetwork->u8ssidnum; + msg.body.strHostIFscanAttr.strHiddenNetwork.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; + msg.body.strHostIFscanAttr.strHiddenNetwork.u8ssidnum = pstrHiddenNetwork->u8ssidnum; } else PRINT_D(HOSTINF_DBG, "pstrHiddenNetwork IS EQUAL TO NULL\n"); msg.drvHandler = hWFIDrv; - msg.uniHostIFmsgBody.strHostIFscanAttr.u8ScanSource = u8ScanSource; - msg.uniHostIFmsgBody.strHostIFscanAttr.u8ScanType = u8ScanType; - msg.uniHostIFmsgBody.strHostIFscanAttr.pfScanResult = ScanResult; - msg.uniHostIFmsgBody.strHostIFscanAttr.pvUserArg = pvUserArg; + msg.body.strHostIFscanAttr.u8ScanSource = u8ScanSource; + msg.body.strHostIFscanAttr.u8ScanType = u8ScanType; + msg.body.strHostIFscanAttr.pfScanResult = ScanResult; + msg.body.strHostIFscanAttr.pvUserArg = pvUserArg; - msg.uniHostIFmsgBody.strHostIFscanAttr.u8ChnlListLen = u8ChnlListLen; - msg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.uniHostIFmsgBody.strHostIFscanAttr.pu8ChnlFreqList, + msg.body.strHostIFscanAttr.u8ChnlListLen = u8ChnlListLen; + msg.body.strHostIFscanAttr.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.strHostIFscanAttr.pu8ChnlFreqList, pu8ChnlFreqList, u8ChnlListLen); - msg.uniHostIFmsgBody.strHostIFscanAttr.IEsLen = IEsLen; - msg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.uniHostIFmsgBody.strHostIFscanAttr.pu8IEs, + msg.body.strHostIFscanAttr.IEsLen = IEsLen; + msg.body.strHostIFscanAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.strHostIFscanAttr.pu8IEs, pu8IEs, IEsLen); /* send the message */ @@ -6135,7 +6135,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) /* prepare the WiphyParams Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_CFG_PARAMS; - msg.uniHostIFmsgBody.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; + msg.body.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6635,9 +6635,9 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.id = HOST_IF_MSG_RCVD_NTWRK_INFO; msg.drvHandler = pstrWFIDrv; - msg.uniHostIFmsgBody.strRcvdNetworkInfo.u32Length = u32Length; - msg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.uniHostIFmsgBody.strRcvdNetworkInfo.pu8Buffer, + msg.body.strRcvdNetworkInfo.u32Length = u32Length; + msg.body.strRcvdNetworkInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.strRcvdNetworkInfo.pu8Buffer, pu8Buffer, u32Length); /* send the message */ @@ -6692,9 +6692,9 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.drvHandler = pstrWFIDrv; - msg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.u32Length = u32Length; - msg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.uniHostIFmsgBody.strRcvdGnrlAsyncInfo.pu8Buffer, + msg.body.strRcvdGnrlAsyncInfo.u32Length = u32Length; + msg.body.strRcvdGnrlAsyncInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.strRcvdGnrlAsyncInfo.pu8Buffer, pu8Buffer, u32Length); /* send the message */ @@ -6742,9 +6742,9 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) /* will be deallocated by the receiving thread */ /*no need to send message body*/ - /*msg.uniHostIFmsgBody.strScanComplete.u32Length = u32Length; - * msg.uniHostIFmsgBody.strScanComplete.pu8Buffer = (u8*)WILC_MALLOC(u32Length); - * memcpy(msg.uniHostIFmsgBody.strScanComplete.pu8Buffer, + /*msg.body.strScanComplete.u32Length = u32Length; + * msg.body.strScanComplete.pu8Buffer = (u8*)WILC_MALLOC(u32Length); + * memcpy(msg.body.strScanComplete.pu8Buffer, * pu8Buffer, u32Length); */ /* send the message */ @@ -6788,12 +6788,12 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_REMAIN_ON_CHAN; - msg.uniHostIFmsgBody.strHostIfRemainOnChan.u16Channel = chan; - msg.uniHostIFmsgBody.strHostIfRemainOnChan.pRemainOnChanExpired = RemainOnChanExpired; - msg.uniHostIFmsgBody.strHostIfRemainOnChan.pRemainOnChanReady = RemainOnChanReady; - msg.uniHostIFmsgBody.strHostIfRemainOnChan.pVoid = pvUserArg; - msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32duration = u32duration; - msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; + msg.body.strHostIfRemainOnChan.u16Channel = chan; + msg.body.strHostIfRemainOnChan.pRemainOnChanExpired = RemainOnChanExpired; + msg.body.strHostIfRemainOnChan.pRemainOnChanReady = RemainOnChanReady; + msg.body.strHostIfRemainOnChan.pVoid = pvUserArg; + msg.body.strHostIfRemainOnChan.u32duration = u32duration; + msg.body.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6835,7 +6835,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; msg.drvHandler = hWFIDrv; - msg.uniHostIFmsgBody.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; + msg.body.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -6870,20 +6870,20 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe switch (u16FrameType) { case ACTION: PRINT_D(HOSTINF_DBG, "ACTION\n"); - msg.uniHostIFmsgBody.strHostIfRegisterFrame.u8Regid = ACTION_FRM_IDX; + msg.body.strHostIfRegisterFrame.u8Regid = ACTION_FRM_IDX; break; case PROBE_REQ: PRINT_D(HOSTINF_DBG, "PROBE REQ\n"); - msg.uniHostIFmsgBody.strHostIfRegisterFrame.u8Regid = PROBE_REQ_IDX; + msg.body.strHostIfRegisterFrame.u8Regid = PROBE_REQ_IDX; break; default: PRINT_D(HOSTINF_DBG, "Not valid frame type\n"); break; } - msg.uniHostIFmsgBody.strHostIfRegisterFrame.u16FrameType = u16FrameType; - msg.uniHostIFmsgBody.strHostIfRegisterFrame.bReg = bReg; + msg.body.strHostIfRegisterFrame.u16FrameType = u16FrameType; + msg.body.strHostIfRegisterFrame.bReg = bReg; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6914,7 +6914,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIFSetBeacon *pstrSetBeaconParam = &msg.uniHostIFmsgBody.strHostIFSetBeacon; + tstrHostIFSetBeacon *pstrSetBeaconParam = &msg.body.strHostIFSetBeacon; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7016,7 +7016,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrWILC_AddStaParam *pstrAddStationMsg = &msg.uniHostIFmsgBody.strAddStaParam; + tstrWILC_AddStaParam *pstrAddStationMsg = &msg.body.strAddStaParam; if (pstrWFIDrv == NULL) { @@ -7065,7 +7065,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIFDelSta *pstrDelStationMsg = &msg.uniHostIFmsgBody.strDelStaParam; + tstrHostIFDelSta *pstrDelStationMsg = &msg.body.strDelStaParam; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7106,7 +7106,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIFDelAllSta *pstrDelAllStationMsg = &msg.uniHostIFmsgBody.strHostIFDelAllSta; + tstrHostIFDelAllSta *pstrDelAllStationMsg = &msg.body.strHostIFDelAllSta; u8 au8Zero_Buff[ETH_ALEN] = {0}; u32 i; u8 u8AssocNumb = 0; @@ -7166,7 +7166,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrWILC_AddStaParam *pstrAddStationMsg = &msg.uniHostIFmsgBody.strAddStaParam; + tstrWILC_AddStaParam *pstrAddStationMsg = &msg.body.strAddStaParam; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7205,7 +7205,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIfPowerMgmtParam *pstrPowerMgmtParam = &msg.uniHostIFmsgBody.strPowerMgmtparam; + tstrHostIfPowerMgmtParam *pstrPowerMgmtParam = &msg.body.strPowerMgmtparam; PRINT_INFO(HOSTINF_DBG, "\n\n>> Setting PS to %d <<\n\n", bIsEnabled); @@ -7239,7 +7239,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIFSetMulti *pstrMulticastFilterParam = &msg.uniHostIFmsgBody.strHostIfSetMulti; + tstrHostIFSetMulti *pstrMulticastFilterParam = &msg.body.strHostIfSetMulti; if (pstrWFIDrv == NULL) { @@ -7504,7 +7504,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIfBASessionInfo *pBASessionInfo = &msg.uniHostIFmsgBody.strHostIfBASessionInfo; + tstrHostIfBASessionInfo *pBASessionInfo = &msg.body.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7535,7 +7535,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIfBASessionInfo *pBASessionInfo = &msg.uniHostIFmsgBody.strHostIfBASessionInfo; + tstrHostIfBASessionInfo *pBASessionInfo = &msg.body.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7565,7 +7565,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIfBASessionInfo *pBASessionInfo = &msg.uniHostIFmsgBody.strHostIfBASessionInfo; + tstrHostIfBASessionInfo *pBASessionInfo = &msg.body.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7617,9 +7617,9 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_SET_IPADDRESS; - msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr = u16ipadd; + msg.body.strHostIfSetIP.au8IPAddr = u16ipadd; msg.drvHandler = hWFIDrv; - msg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; + msg.body.strHostIfSetIP.idx = idx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -7654,9 +7654,9 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_GET_IPADDRESS; - msg.uniHostIFmsgBody.strHostIfSetIP.au8IPAddr = u16ipadd; + msg.body.strHostIfSetIP.au8IPAddr = u16ipadd; msg.drvHandler = hWFIDrv; - msg.uniHostIFmsgBody.strHostIfSetIP.idx = idx; + msg.body.strHostIfSetIP.idx = idx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) From c476feb8d3e51fe1775207b72102f48d6177b963 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:36 +0900 Subject: [PATCH 0523/2431] staging: wilc1000: remove typedef from the struct tstrHostIFscanAttr This patch removes typedef from the structure tstrHostIFscanAttr and changes the camelcase name, tstrHostIFscanAttr to scan_attr in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6bfb8b171cba..7c36924f7cec 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -155,7 +155,7 @@ typedef struct _tstrHostIFkeyAttr { /*! - * @struct tstrHostIFscanAttr + * @struct scan_attr * @brief Structure to hold Host IF Scan Attributes * @details * @todo @@ -164,7 +164,7 @@ typedef struct _tstrHostIFkeyAttr { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrHostIFscanAttr { +struct scan_attr { u8 u8ScanSource; u8 u8ScanType; u8 *pu8ChnlFreqList; @@ -174,8 +174,7 @@ typedef struct _tstrHostIFscanAttr { tWILCpfScanResult pfScanResult; void *pvUserArg; tstrHiddenNetwork strHiddenNetwork; - -} tstrHostIFscanAttr; +}; /*! * @struct tstrHostIFconnectAttr @@ -417,7 +416,7 @@ typedef struct { * @version 1.0 */ union message_body { - tstrHostIFscanAttr strHostIFscanAttr; /*!< Host IF Scan Request Attributes message body */ + struct scan_attr strHostIFscanAttr; /*!< Host IF Scan Request Attributes message body */ tstrHostIFconnectAttr strHostIFconnectAttr; /*!< Host IF Connect Request Attributes message body */ tstrRcvdNetworkInfo strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ tstrRcvdGnrlAsyncInfo strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ @@ -1276,13 +1275,14 @@ static s32 Handle_wait_msg_q_empty(void) /** * @brief Handle_Scan * @details Sending config packet to firmware to set the scan params - * @param[in] tstrHostIFscanAttr* pstrHostIFscanAttr + * @param[in] struct scan_attr *pstrHostIFscanAttr * @return Error code. * @author * @date * @version 1.0 */ -static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, tstrHostIFscanAttr *pstrHostIFscanAttr) +static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, + struct scan_attr *pstrHostIFscanAttr) { s32 s32Error = 0; tstrWID strWIDList[5]; From 120ae59385cc744c9ae6a2054f2b90cfdfb45f9e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:37 +0900 Subject: [PATCH 0524/2431] staging: wilc1000: remove typedef from the struct tstrHostIFconnectAttr This patch removes typedef from the struct tstrHostIFconnectAttr and renames it to connect_attr to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7c36924f7cec..2fb7d3e6fda4 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -177,7 +177,7 @@ struct scan_attr { }; /*! - * @struct tstrHostIFconnectAttr + * @struct connect_attr * @brief Structure to hold Host IF Connect Attributes * @details * @todo @@ -186,7 +186,7 @@ struct scan_attr { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrHostIFconnectAttr { +struct connect_attr { u8 *pu8bssid; u8 *pu8ssid; size_t ssidLen; @@ -198,7 +198,7 @@ typedef struct _tstrHostIFconnectAttr { AUTHTYPE_T tenuAuth_type; u8 u8channel; void *pJoinParams; -} tstrHostIFconnectAttr; +}; /*! * @struct tstrRcvdGnrlAsyncInfo @@ -417,7 +417,7 @@ typedef struct { */ union message_body { struct scan_attr strHostIFscanAttr; /*!< Host IF Scan Request Attributes message body */ - tstrHostIFconnectAttr strHostIFconnectAttr; /*!< Host IF Connect Request Attributes message body */ + struct connect_attr strHostIFconnectAttr; /*!< Host IF Connect Request Attributes message body */ tstrRcvdNetworkInfo strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ tstrRcvdGnrlAsyncInfo strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ tstrHostIFkeyAttr strHostIFkeyAttr; /*!<>*/ @@ -1500,14 +1500,15 @@ static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent) /** * @brief Handle_Connect * @details Sending config packet to firmware to starting connection - * @param[in] tstrHostIFconnectAttr* pstrHostIFconnectAttr + * @param[in] struct connect_attr *pstrHostIFconnectAttr * @return Error code. * @author * @date * @version 1.0 */ u8 u8ConnectedSSID[6] = {0}; -static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *pstrHostIFconnectAttr) +static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, + struct connect_attr *pstrHostIFconnectAttr) { tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; s32 s32Error = 0; From 3bbd59f5f5d8681f606ecad3fc6a06305a228b42 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:38 +0900 Subject: [PATCH 0525/2431] staging: wilc1000: remove typedef from the struct tstrRcvdNetworkInfo This patch removes typedef from the struct tstrRcvdNetworkInfo and renames it to rcvd_net_info in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 7 ++++--- drivers/staging/wilc1000/host_interface.h | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2fb7d3e6fda4..99b97664eadc 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -418,7 +418,7 @@ typedef struct { union message_body { struct scan_attr strHostIFscanAttr; /*!< Host IF Scan Request Attributes message body */ struct connect_attr strHostIFconnectAttr; /*!< Host IF Connect Request Attributes message body */ - tstrRcvdNetworkInfo strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ + struct rcvd_net_info strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ tstrRcvdGnrlAsyncInfo strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ tstrHostIFkeyAttr strHostIFkeyAttr; /*!<>*/ tstrHostIFCfgParamAttr strHostIFCfgParamAttr; /*! */ @@ -2241,13 +2241,14 @@ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) /** * @brief Handle_RcvdNtwrkInfo * @details Handling received network information - * @param[in] tstrRcvdNetworkInfo* pstrRcvdNetworkInfo + * @param[in] struct rcvd_net_info *pstrRcvdNetworkInfo * @return Error code. * @author * @date * @version 1.0 */ -static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdNetworkInfo *pstrRcvdNetworkInfo) +static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, + struct rcvd_net_info *pstrRcvdNetworkInfo) { u32 i; bool bNewNtwrkFound; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index c1a9cce4d0b5..537845e9d077 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -202,7 +202,7 @@ typedef struct { } *WILC_WFIDrvHandle; /*! - * @struct tstrRcvdNetworkInfo + * @struct rcvd_net_info * @brief Structure to hold Received Asynchronous Network info * @details * @todo @@ -211,10 +211,10 @@ typedef struct { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrRcvdNetworkInfo { +struct rcvd_net_info { u8 *pu8Buffer; u32 u32Length; -} tstrRcvdNetworkInfo; +}; typedef struct _tstrHiddenNetworkInfo { u8 *pu8ssid; From f23a9eabcbb0e1fb8648f9b86b22c6f8540e15dd Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:39 +0900 Subject: [PATCH 0526/2431] staging: wilc1000: remove typedef from the struct tstrRcvdGnrlAsyncInfo This patch removes typedef from the struct tstrRcvdGnrlAsyncInfo and renames it to rcvd_async_info in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 99b97664eadc..bc31271bd186 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -201,7 +201,7 @@ struct connect_attr { }; /*! - * @struct tstrRcvdGnrlAsyncInfo + * @struct rcvd_async_info * @brief Structure to hold Received General Asynchronous info * @details * @todo @@ -210,10 +210,10 @@ struct connect_attr { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrRcvdGnrlAsyncInfo { +struct rcvd_async_info { u8 *pu8Buffer; u32 u32Length; -} tstrRcvdGnrlAsyncInfo; +}; /*! * @struct tstrHostIFSetChan @@ -419,7 +419,7 @@ union message_body { struct scan_attr strHostIFscanAttr; /*!< Host IF Scan Request Attributes message body */ struct connect_attr strHostIFconnectAttr; /*!< Host IF Connect Request Attributes message body */ struct rcvd_net_info strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ - tstrRcvdGnrlAsyncInfo strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ + struct rcvd_async_info strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ tstrHostIFkeyAttr strHostIFkeyAttr; /*!<>*/ tstrHostIFCfgParamAttr strHostIFCfgParamAttr; /*! */ tstrHostIFSetChan strHostIFSetChan; @@ -2359,13 +2359,14 @@ done: /** * @brief Handle_RcvdGnrlAsyncInfo * @details Handling received asynchrous general network information - * @param[in] tstrRcvdGnrlAsyncInfo* pstrRcvdGnrlAsyncInfo + * @param[in] struct rcvd_async_info *pstrRcvdGnrlAsyncInfo * @return Error code. * @author * @date * @version 1.0 */ -static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrRcvdGnrlAsyncInfo *pstrRcvdGnrlAsyncInfo) +static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, + struct rcvd_async_info *pstrRcvdGnrlAsyncInfo) { /* TODO: mostafa: till now, this function just handles only the received mac status msg, */ /* which carries only 1 WID which have WID ID = WID_STATUS */ From c98387a5736e928273fbe306942b447afea964e6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:40 +0900 Subject: [PATCH 0527/2431] staging: wilc1000: remove typedef from the struct tstrHostIFkeyAttr This patch removes typedef from the struct tstrHostIFkeyAttr and renames it to key_attr in oder to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index bc31271bd186..12fd43dfeeef 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -136,7 +136,7 @@ typedef union _tuniHostIFkeyAttr { } tuniHostIFkeyAttr; /*! - * @struct tstrHostIFkeyAttr + * @struct key_attr * @brief Structure to hold Host IF Scan Attributes * @details * @todo @@ -145,11 +145,11 @@ typedef union _tuniHostIFkeyAttr { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrHostIFkeyAttr { +struct key_attr { tenuKeyType enuKeyType; u8 u8KeyAction; tuniHostIFkeyAttr uniHostIFkeyAttr; -} tstrHostIFkeyAttr; +}; @@ -420,7 +420,7 @@ union message_body { struct connect_attr strHostIFconnectAttr; /*!< Host IF Connect Request Attributes message body */ struct rcvd_net_info strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ struct rcvd_async_info strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ - tstrHostIFkeyAttr strHostIFkeyAttr; /*!<>*/ + struct key_attr strHostIFkeyAttr; /*!<>*/ tstrHostIFCfgParamAttr strHostIFCfgParamAttr; /*! */ tstrHostIFSetChan strHostIFSetChan; tstrHostIFGetChan strHostIFGetChan; @@ -2686,13 +2686,14 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, /** * @brief Handle_Key * @details Sending config packet to firmware to set key - * @param[in] tstrHostIFkeyAttr* pstrHostIFkeyAttr + * @param[in] struct key_attr *pstrHostIFkeyAttr * @return Error code. * @author * @date * @version 1.0 */ -static int Handle_Key(tstrWILC_WFIDrv *drvHandler, tstrHostIFkeyAttr *pstrHostIFkeyAttr) +static int Handle_Key(tstrWILC_WFIDrv *drvHandler, + struct key_attr *pstrHostIFkeyAttr) { s32 s32Error = 0; tstrWID strWID; From 361ff841ff1980427fce63ac99cfdec350bc83e9 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:41 +0900 Subject: [PATCH 0528/2431] staging: wilc1000: remove typedef from the struct tstrHostIFCfgParamAttr This patch removes typedef from the struct tstrHostIFCfgParamAttr and renames it to cfg_param_attr in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 12fd43dfeeef..78f3f76aca8e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -65,7 +65,7 @@ extern u8 g_wilc_initialized; /*****************************************************************************/ /*! - * @struct tstrHostIFCfgParamAttr + * @struct cfg_param_attr * @brief Structure to hold Host IF CFG Params Attributes * @details * @todo @@ -74,10 +74,9 @@ extern u8 g_wilc_initialized; * @date 02 April 2012 * @version 1.0 */ -typedef struct _tstrHostIFCfgParamAttr { +struct cfg_param_attr { tstrCfgParamVal pstrCfgParamVal; - -} tstrHostIFCfgParamAttr; +}; /*! * @struct tstrHostIFwpaAttr @@ -421,7 +420,7 @@ union message_body { struct rcvd_net_info strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ struct rcvd_async_info strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ struct key_attr strHostIFkeyAttr; /*!<>*/ - tstrHostIFCfgParamAttr strHostIFCfgParamAttr; /*! */ + struct cfg_param_attr strHostIFCfgParamAttr; /*! */ tstrHostIFSetChan strHostIFSetChan; tstrHostIFGetChan strHostIFGetChan; tstrHostIFSetBeacon strHostIFSetBeacon; /*!< Set beacon message body */ @@ -916,13 +915,14 @@ static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfGetMacAdd /** * @brief Handle_CfgParam * @details Sending config packet to firmware to set CFG params - * @param[in] tstrHostIFCfgParamAttr* strHostIFCfgParamAttr + * @param[in] struct cfg_param_attr *strHostIFCfgParamAttr * @return Error code. * @author * @date * @version 1.0 */ -static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, tstrHostIFCfgParamAttr *strHostIFCfgParamAttr) +static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, + struct cfg_param_attr *strHostIFCfgParamAttr) { s32 s32Error = 0; tstrWID strWIDList[32]; From 326b323d012b04ec8932b1135290e463bb120fad Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:42 +0900 Subject: [PATCH 0529/2431] staging: wilc1000: remove typedef from the struct tstrHostIFSetChan This patch removes typedef from the struct tstrHostIFSetChan and ranames it to set_channel in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 78f3f76aca8e..5d1b75a14f5e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -215,7 +215,7 @@ struct rcvd_async_info { }; /*! - * @struct tstrHostIFSetChan + * @struct set_channel * @brief Set Channel message body * @details * @todo @@ -224,9 +224,9 @@ struct rcvd_async_info { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrHostIFSetChan { +struct set_channel { u8 u8SetChan; -} tstrHostIFSetChan; +}; /*! * @struct tstrHostIFSetChan @@ -421,7 +421,7 @@ union message_body { struct rcvd_async_info strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ struct key_attr strHostIFkeyAttr; /*!<>*/ struct cfg_param_attr strHostIFCfgParamAttr; /*! */ - tstrHostIFSetChan strHostIFSetChan; + struct set_channel strHostIFSetChan; tstrHostIFGetChan strHostIFGetChan; tstrHostIFSetBeacon strHostIFSetBeacon; /*!< Set beacon message body */ tstrHostIFDelBeacon strHostIFDelBeacon; /*!< Del beacon message body */ @@ -628,13 +628,14 @@ static tstrWILC_WFIDrv *get_handler_from_id(int id) /** * @brief Handle_SetChannel * @details Sending config packet to firmware to set channel - * @param[in] tstrHostIFSetChan* pstrHostIFSetChan + * @param[in] struct set_channel *pstrHostIFSetChan * @return Error code. * @author * @date * @version 1.0 */ -static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetChan *pstrHostIFSetChan) +static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, + struct set_channel *pstrHostIFSetChan) { s32 s32Error = 0; From 29f84000740af55dfe3dc705a184cab3b04773c1 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:43 +0900 Subject: [PATCH 0530/2431] staging: wilc1000: remove typedef from the struct tstrHostIFGetChan This patch removes typedef from the struct tstrHostIFGetChan and renames it to get_channel in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5d1b75a14f5e..ead3185d1042 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -229,7 +229,7 @@ struct set_channel { }; /*! - * @struct tstrHostIFSetChan + * @struct get_channel * @brief Get Channel message body * @details * @todo @@ -238,9 +238,9 @@ struct set_channel { * @date 01 Jule 2012 * @version 1.0 */ -typedef struct _tstrHostIFGetChan { +struct get_channel { u8 u8GetChan; -} tstrHostIFGetChan; +}; /*! * @struct tstrScanComplete @@ -422,7 +422,7 @@ union message_body { struct key_attr strHostIFkeyAttr; /*!<>*/ struct cfg_param_attr strHostIFCfgParamAttr; /*! */ struct set_channel strHostIFSetChan; - tstrHostIFGetChan strHostIFGetChan; + struct get_channel strHostIFGetChan; tstrHostIFSetBeacon strHostIFSetBeacon; /*!< Set beacon message body */ tstrHostIFDelBeacon strHostIFDelBeacon; /*!< Del beacon message body */ tstrWILC_AddStaParam strAddStaParam; /*!< Add station message body */ From 902362b1f7f6e3afa01a3290f77a1ae448c3840f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:44 +0900 Subject: [PATCH 0531/2431] staging: wilc1000: remove typedef from the struct tstrHostIFSetBeacon This patch removes typedef from the struct tstrHostIFSetBeacon and renames it to set_beacon in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ead3185d1042..f7466acf5859 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -259,7 +259,7 @@ struct get_channel { * } tstrScanComplete;*/ /*! - * @struct tstrHostIFSetBeacon + * @struct set_beacon * @brief Set Beacon message body * @details * @todo @@ -268,7 +268,7 @@ struct get_channel { * @date 10 July 2012 * @version 1.0 */ -typedef struct _tstrHostIFSetBeacon { +struct set_beacon { u32 u32Interval; /*!< Beacon Interval. Period between two successive beacons on air */ u32 u32DTIMPeriod; /*!< DTIM Period. Indicates how many Beacon frames * (including the current frame) appear before the next DTIM */ @@ -278,7 +278,7 @@ typedef struct _tstrHostIFSetBeacon { u32 u32TailLen; /*!< Length of the tail buffer in bytes */ u8 *pu8Tail; /*!< Pointer to the beacon's tail buffer. Beacon's tail starts just * after the TIM inormation element */ -} tstrHostIFSetBeacon; +}; @@ -423,7 +423,7 @@ union message_body { struct cfg_param_attr strHostIFCfgParamAttr; /*! */ struct set_channel strHostIFSetChan; struct get_channel strHostIFGetChan; - tstrHostIFSetBeacon strHostIFSetBeacon; /*!< Set beacon message body */ + struct set_beacon strHostIFSetBeacon; /*!< Set beacon message body */ tstrHostIFDelBeacon strHostIFDelBeacon; /*!< Del beacon message body */ tstrWILC_AddStaParam strAddStaParam; /*!< Add station message body */ tstrHostIFDelSta strDelStaParam; /*!< Del Station message body */ @@ -3426,13 +3426,14 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna /** * @brief Handle_AddBeacon * @details Sending config packet to add beacon - * @param[in] tstrHostIFSetBeacon* pstrSetBeaconParam + * @param[in] struct set_beacon *pstrSetBeaconParam * @return NONE * @author * @date * @version 1.0 */ -static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetBeacon *pstrSetBeaconParam) +static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, + struct set_beacon *pstrSetBeaconParam) { s32 s32Error = 0; tstrWID strWID; @@ -6919,7 +6920,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIFSetBeacon *pstrSetBeaconParam = &msg.body.strHostIFSetBeacon; + struct set_beacon *pstrSetBeaconParam = &msg.body.strHostIFSetBeacon; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); From d0227fcbcc82fa68c637e70fde1153fa8ab850e6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:45 +0900 Subject: [PATCH 0532/2431] staging: wilc1000: remove typedef from the struct tstrHostIFDelBeacon This patch removes typedef from the struct tstrHostIFDelBeacon and renames it to del_beacon in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f7466acf5859..b2f04a50a662 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -283,7 +283,7 @@ struct set_beacon { /*! - * @struct tstrHostIFDelBeacon + * @struct del_beacon * @brief Del Beacon message body * @details * @todo @@ -292,9 +292,9 @@ struct set_beacon { * @date 15 July 2012 * @version 1.0 */ -typedef struct _tstrHostIFDelBeacon { +struct del_beacon { u8 u8dummy; -} tstrHostIFDelBeacon; +}; /*! * @struct tstrHostIFSetMulti @@ -424,7 +424,7 @@ union message_body { struct set_channel strHostIFSetChan; struct get_channel strHostIFGetChan; struct set_beacon strHostIFSetBeacon; /*!< Set beacon message body */ - tstrHostIFDelBeacon strHostIFDelBeacon; /*!< Del beacon message body */ + struct del_beacon strHostIFDelBeacon; /*!< Del beacon message body */ tstrWILC_AddStaParam strAddStaParam; /*!< Add station message body */ tstrHostIFDelSta strDelStaParam; /*!< Del Station message body */ tstrWILC_AddStaParam strEditStaParam; /*!< Edit station message body */ @@ -3495,13 +3495,14 @@ ERRORHANDLER: /** * @brief Handle_AddBeacon * @details Sending config packet to delete beacon - * @param[in] tstrHostIFDelBeacon* pstrDelBeacon + * @param[in] struct del_beacon *pstrDelBeacon * @return NONE * @author * @date * @version 1.0 */ -static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelBeacon *pstrDelBeacon) +static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, + struct del_beacon *pstrDelBeacon) { s32 s32Error = 0; tstrWID strWID; From 6a89ba9cee532e93098b014ea90d8efdebfc28c6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:46 +0900 Subject: [PATCH 0533/2431] staging: wilc1000: remove typedef from the struct tstrWILC_AddStaParam This patch removes typedef from the struct tstrWILC_AddStaParam and renames it to add_sta_param in oder to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 37 +++++++++++-------- drivers/staging/wilc1000/host_interface.h | 16 +++++--- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 4 +- 3 files changed, 33 insertions(+), 24 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b2f04a50a662..93c4d7a2f97c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -425,9 +425,9 @@ union message_body { struct get_channel strHostIFGetChan; struct set_beacon strHostIFSetBeacon; /*!< Set beacon message body */ struct del_beacon strHostIFDelBeacon; /*!< Del beacon message body */ - tstrWILC_AddStaParam strAddStaParam; /*!< Add station message body */ + struct add_sta_param strAddStaParam; /*!< Add station message body */ tstrHostIFDelSta strDelStaParam; /*!< Del Station message body */ - tstrWILC_AddStaParam strEditStaParam; /*!< Edit station message body */ + struct add_sta_param strEditStaParam; /*!< Edit station message body */ /* tstrScanComplete strScanComplete; / *Received Async. Scan Complete message body* / */ tstrTimerCb strTimerCb; /*!< Timer callback message body */ tstrHostIfPowerMgmtParam strPowerMgmtparam; /*!< Power Management message body */ @@ -3533,13 +3533,14 @@ static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, /** * @brief WILC_HostIf_PackStaParam * @details Handling packing of the station params in a buffer - * @param[in] u8* pu8Buffer, tstrWILC_AddStaParam* pstrStationParam + * @param[in] u8* pu8Buffer, struct add_sta_param *pstrStationParam * @return NONE * @author * @date * @version 1.0 */ -static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, tstrWILC_AddStaParam *pstrStationParam) +static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, + struct add_sta_param *pstrStationParam) { u8 *pu8CurrByte; @@ -3587,13 +3588,14 @@ static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, tstrWILC_AddStaParam *pstrSta /** * @brief Handle_AddStation * @details Sending config packet to add station - * @param[in] tstrWILC_AddStaParam* pstrStationParam + * @param[in] struct add_sta_param *pstrStationParam * @return NONE * @author * @date * @version 1.0 */ -static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam *pstrStationParam) +static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, + struct add_sta_param *pstrStationParam) { s32 s32Error = 0; tstrWID strWID; @@ -3722,13 +3724,14 @@ ERRORHANDLER: /** * @brief Handle_EditStation * @details Sending config packet to edit station - * @param[in] tstrWILC_AddStaParam* pstrStationParam + * @param[in] struct add_sta_param *pstrStationParam * @return NONE * @author * @date * @version 1.0 */ -static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, tstrWILC_AddStaParam *pstrStationParam) +static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, + struct add_sta_param *pstrStationParam) { s32 s32Error = 0; tstrWID strWID; @@ -7012,18 +7015,19 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) /** * @brief host_int_add_station * @details Setting add station params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, tstrWILC_AddStaParam* pstrStaParams + * @param[in] WILC_WFIDrvHandle hWFIDrv, struct add_sta_param *pstrStaParams * @return Error code. * @author * @date * @version 1.0 */ -s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrStaParams) +s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, + struct add_sta_param *pstrStaParams) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrWILC_AddStaParam *pstrAddStationMsg = &msg.body.strAddStaParam; + struct add_sta_param *pstrAddStationMsg = &msg.body.strAddStaParam; if (pstrWFIDrv == NULL) { @@ -7040,7 +7044,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSta msg.id = HOST_IF_MSG_ADD_STATION; msg.drvHandler = hWFIDrv; - memcpy(pstrAddStationMsg, pstrStaParams, sizeof(tstrWILC_AddStaParam)); + memcpy(pstrAddStationMsg, pstrStaParams, sizeof(struct add_sta_param)); if (pstrAddStationMsg->u8NumRates > 0) { u8 *rates = kmalloc(pstrAddStationMsg->u8NumRates, GFP_KERNEL); @@ -7162,18 +7166,19 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) /** * @brief host_int_edit_station * @details Setting edit station params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, tstrWILC_AddStaParam* pstrStaParams + * @param[in] WILC_WFIDrvHandle hWFIDrv, struct add_sta_param *pstrStaParams * @return Error code. * @author * @date * @version 1.0 */ -s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrStaParams) +s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, + struct add_sta_param *pstrStaParams) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrWILC_AddStaParam *pstrAddStationMsg = &msg.body.strAddStaParam; + struct add_sta_param *pstrAddStationMsg = &msg.body.strAddStaParam; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7189,7 +7194,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, tstrWILC_AddStaParam *pstrSt msg.id = HOST_IF_MSG_EDIT_STATION; msg.drvHandler = hWFIDrv; - memcpy(pstrAddStationMsg, pstrStaParams, sizeof(tstrWILC_AddStaParam)); + memcpy(pstrAddStationMsg, pstrStaParams, sizeof(struct add_sta_param)); if (pstrAddStationMsg->u8NumRates > 0) { u8 *rates = kmalloc(pstrAddStationMsg->u8NumRates, GFP_KERNEL); diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 537845e9d077..b24eeb6841cb 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -369,7 +369,7 @@ typedef enum { WILC_STA_FLAG_AUTHENTICATED /*!< station is authenticated*/ } tenuWILC_StaFlag; -typedef struct { +struct add_sta_param { u8 au8BSSID[ETH_ALEN]; u16 u16AssocID; u8 u8NumRates; @@ -383,7 +383,7 @@ typedef struct { u8 u8ASELCap; u16 u16FlagsMask; /**/ u16 u16FlagsSet; /* Date: Mon, 21 Sep 2015 12:16:47 +0900 Subject: [PATCH 0534/2431] staging: wilc1000: remove typedef from the struct tstrTimerCb This patch removes typedef from the tstrTimerCb and renames it to timer_cb in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 93c4d7a2f97c..b6d914931f16 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -344,7 +344,7 @@ typedef struct { } tstrHostIFDelSta; /*! - * @struct tstrTimerCb + * @struct timer_cb * @brief Timer callback message body * @details * @todo @@ -353,9 +353,9 @@ typedef struct { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrTimerCb { +struct timer_cb { void *pvUsrArg; /*!< Private data passed at timer start */ -} tstrTimerCb; +}; /*! * @struct tstrHostIfPowerMgmtParam @@ -429,7 +429,7 @@ union message_body { tstrHostIFDelSta strDelStaParam; /*!< Del Station message body */ struct add_sta_param strEditStaParam; /*!< Edit station message body */ /* tstrScanComplete strScanComplete; / *Received Async. Scan Complete message body* / */ - tstrTimerCb strTimerCb; /*!< Timer callback message body */ + struct timer_cb strTimerCb; /*!< Timer callback message body */ tstrHostIfPowerMgmtParam strPowerMgmtparam; /*!< Power Management message body */ tstrHostIfStaInactiveT strHostIfStaInactiveT; tstrHostIFSetIPAddr strHostIfSetIP; From 5a008f1cd3d47b054633a56f8823ce69b4d5ba7a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:48 +0900 Subject: [PATCH 0535/2431] staging: wilc1000: remove typedef from the struct tstrHostIfPowerMgmtParam This patch removes typedef from the struct tstrHostIfPowerMgmtParam and renames it to power_mgmt_param in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b6d914931f16..5710832b76c4 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -358,7 +358,7 @@ struct timer_cb { }; /*! - * @struct tstrHostIfPowerMgmtParam + * @struct power_mgmt_param * @brief Power management message body * @details * @todo @@ -367,11 +367,11 @@ struct timer_cb { * @date 24 November 2012 * @version 1.0 */ -typedef struct { +struct power_mgmt_param { bool bIsEnabled; u32 u32Timeout; -} tstrHostIfPowerMgmtParam; +}; /*! * @struct tstrHostIFSetIPAddr @@ -430,7 +430,7 @@ union message_body { struct add_sta_param strEditStaParam; /*!< Edit station message body */ /* tstrScanComplete strScanComplete; / *Received Async. Scan Complete message body* / */ struct timer_cb strTimerCb; /*!< Timer callback message body */ - tstrHostIfPowerMgmtParam strPowerMgmtparam; /*!< Power Management message body */ + struct power_mgmt_param strPowerMgmtparam; /*!< Power Management message body */ tstrHostIfStaInactiveT strHostIfStaInactiveT; tstrHostIFSetIPAddr strHostIfSetIP; tstrHostIfSetDrvHandler strHostIfSetDrvHandler; @@ -3991,7 +3991,8 @@ static void ListenTimerCB(unsigned long arg) * @date * @version 1.0 */ -static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, tstrHostIfPowerMgmtParam *strPowerMgmtParam) +static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, + struct power_mgmt_param *strPowerMgmtParam) { s32 s32Error = 0; tstrWID strWID; @@ -7217,7 +7218,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIfPowerMgmtParam *pstrPowerMgmtParam = &msg.body.strPowerMgmtparam; + struct power_mgmt_param *pstrPowerMgmtParam = &msg.body.strPowerMgmtparam; PRINT_INFO(HOSTINF_DBG, "\n\n>> Setting PS to %d <<\n\n", bIsEnabled); From 3d1eac048deeefc587c96fb2d950fe11b3b1cba4 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:49 +0900 Subject: [PATCH 0536/2431] staging: wilc1000: remove typedef from the struct tstrHostIfStaInactiveT This patch removes typedef from the struct tstrHostIfStaInactiveT and renames it to sta_inactive_t in oder to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5710832b76c4..52141eb05f78 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -390,7 +390,7 @@ typedef struct { } tstrHostIFSetIPAddr; /*! - * @struct tstrHostIfStaInactiveT + * @struct sta_inactive_t * @brief Get station message body * @details * @todo @@ -399,10 +399,9 @@ typedef struct { * @date 16 April 2013 * @version 1.0 */ -typedef struct { +struct sta_inactive_t { u8 mac[6]; - -} tstrHostIfStaInactiveT; +}; /**/ /*! * @union message_body @@ -431,7 +430,7 @@ union message_body { /* tstrScanComplete strScanComplete; / *Received Async. Scan Complete message body* / */ struct timer_cb strTimerCb; /*!< Timer callback message body */ struct power_mgmt_param strPowerMgmtparam; /*!< Power Management message body */ - tstrHostIfStaInactiveT strHostIfStaInactiveT; + struct sta_inactive_t strHostIfStaInactiveT; tstrHostIFSetIPAddr strHostIfSetIP; tstrHostIfSetDrvHandler strHostIfSetDrvHandler; tstrHostIFSetMulti strHostIfSetMulti; @@ -3366,7 +3365,8 @@ s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatis * @date * @version 1.0 */ -static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaInactiveT *strHostIfStaInactiveT) +static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, + struct sta_inactive_t *strHostIfStaInactiveT) { s32 s32Error = 0; From 15191eaf4ef2d705e9b529f24977a29de8ed0d2d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:50 +0900 Subject: [PATCH 0537/2431] staging: wilc1000: remove typedef from the struct tstrHostIFSetIPAddr This patch removes typedef from the struct tstrHostIFSetIPAddr and renames it to set_ip_addr in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 52141eb05f78..7b9f78a73169 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -374,7 +374,7 @@ struct power_mgmt_param { }; /*! - * @struct tstrHostIFSetIPAddr + * @struct set_ip_addr * @brief set IP Address message body * @details * @todo @@ -383,11 +383,10 @@ struct power_mgmt_param { * @date 30 August 2013 * @version 1.0 Description */ - -typedef struct { +struct set_ip_addr { u8 *au8IPAddr; u8 idx; -} tstrHostIFSetIPAddr; +}; /*! * @struct sta_inactive_t @@ -431,7 +430,7 @@ union message_body { struct timer_cb strTimerCb; /*!< Timer callback message body */ struct power_mgmt_param strPowerMgmtparam; /*!< Power Management message body */ struct sta_inactive_t strHostIfStaInactiveT; - tstrHostIFSetIPAddr strHostIfSetIP; + struct set_ip_addr strHostIfSetIP; tstrHostIfSetDrvHandler strHostIfSetDrvHandler; tstrHostIFSetMulti strHostIfSetMulti; tstrHostIfSetOperationMode strHostIfSetOperationMode; From 127f9d9497aa90b9006323b97f539dcca88df95b Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:51 +0900 Subject: [PATCH 0538/2431] staging: wilc1000: remove typedef from the struct tstrHostIfSetDrvHandler This patch removes typedef from the struct tstrHostIfSetDrvHandler and renames it to drv_handler in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 7 ++++--- drivers/staging/wilc1000/host_interface.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7b9f78a73169..64d614abc5ab 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -431,7 +431,7 @@ union message_body { struct power_mgmt_param strPowerMgmtparam; /*!< Power Management message body */ struct sta_inactive_t strHostIfStaInactiveT; struct set_ip_addr strHostIfSetIP; - tstrHostIfSetDrvHandler strHostIfSetDrvHandler; + struct drv_handler strHostIfSetDrvHandler; tstrHostIFSetMulti strHostIfSetMulti; tstrHostIfSetOperationMode strHostIfSetOperationMode; tstrHostIfSetMacAddress strHostIfSetMacAddress; @@ -660,14 +660,15 @@ static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, /** * @brief Handle_SetWfiDrvHandler * @details Sending config packet to firmware to set driver handler - * @param[in] void * drvHandler,tstrHostIfSetDrvHandler* pstrHostIfSetDrvHandler + * @param[in] void * drvHandler, + * struct drv_handler *pstrHostIfSetDrvHandler * @return Error code. * @author * @date * @version 1.0 */ static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, - tstrHostIfSetDrvHandler *pstrHostIfSetDrvHandler) + struct drv_handler *pstrHostIfSetDrvHandler) { s32 s32Error = 0; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index b24eeb6841cb..dc6fe73707c8 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -255,9 +255,9 @@ typedef struct { void *u32UserConnectPvoid; } tstrWILC_UsrConnReq; -typedef struct { +struct drv_handler { u32 u32Address; -} tstrHostIfSetDrvHandler; +}; typedef struct { u32 u32Mode; From 641210ac1b9c74b615e76efa33e01b1975e0849a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:52 +0900 Subject: [PATCH 0539/2431] staging: wilc1000: remove typedef from the struct tstrHostIFSetMulti This patch removes typedef from the struct tstrHostIFSetMulti and renames it to set_multicast in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 64d614abc5ab..05f8db9e44d6 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -297,7 +297,7 @@ struct del_beacon { }; /*! - * @struct tstrHostIFSetMulti + * @struct set_multicast * @brief set Multicast filter Address * @details * @todo @@ -307,10 +307,10 @@ struct del_beacon { * @version 1.0 Description */ -typedef struct { +struct set_multicast { bool bIsEnabled; u32 u32count; -} tstrHostIFSetMulti; +}; /*! * @struct tstrHostIFDelAllSta @@ -432,7 +432,7 @@ union message_body { struct sta_inactive_t strHostIfStaInactiveT; struct set_ip_addr strHostIfSetIP; struct drv_handler strHostIfSetDrvHandler; - tstrHostIFSetMulti strHostIfSetMulti; + struct set_multicast strHostIfSetMulti; tstrHostIfSetOperationMode strHostIfSetOperationMode; tstrHostIfSetMacAddress strHostIfSetMacAddress; tstrHostIfGetMacAddress strHostIfGetMacAddress; @@ -4021,13 +4021,14 @@ static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, /** * @brief Handle_SetMulticastFilter * @details Set Multicast filter in firmware - * @param[in] tstrHostIFSetMulti* strHostIfSetMulti + * @param[in] struct set_multicast *strHostIfSetMulti * @return NONE * @author asobhy * @date * @version 1.0 */ -static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, tstrHostIFSetMulti *strHostIfSetMulti) +static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, + struct set_multicast *strHostIfSetMulti) { s32 s32Error = 0; tstrWID strWID; @@ -4037,7 +4038,7 @@ static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, tstrHostIFSet strWID.u16WIDid = (u16)WID_SETUP_MULTICAST_FILTER; strWID.enuWIDtype = WID_BIN; - strWID.s32ValueSize = sizeof(tstrHostIFSetMulti) + ((strHostIfSetMulti->u32count) * ETH_ALEN); + strWID.s32ValueSize = sizeof(struct set_multicast) + ((strHostIfSetMulti->u32count) * ETH_ALEN); strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) goto ERRORHANDLER; @@ -7252,7 +7253,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIFSetMulti *pstrMulticastFilterParam = &msg.body.strHostIfSetMulti; + struct set_multicast *pstrMulticastFilterParam = &msg.body.strHostIfSetMulti; if (pstrWFIDrv == NULL) { From 801bee52a111c1c6957480d14326cd6a579c6f55 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:53 +0900 Subject: [PATCH 0540/2431] staging: wilc1000: remove typedef from the struct tstrHostIfSetOperationMode This patch removes typedef from the struct tstrHostIfSetOperationMode and renames it to op_mode in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 +++-- drivers/staging/wilc1000/host_interface.h | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 05f8db9e44d6..68df96bc3634 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -433,7 +433,7 @@ union message_body { struct set_ip_addr strHostIfSetIP; struct drv_handler strHostIfSetDrvHandler; struct set_multicast strHostIfSetMulti; - tstrHostIfSetOperationMode strHostIfSetOperationMode; + struct op_mode strHostIfSetOperationMode; tstrHostIfSetMacAddress strHostIfSetMacAddress; tstrHostIfGetMacAddress strHostIfGetMacAddress; tstrHostIfBASessionInfo strHostIfBASessionInfo; @@ -708,7 +708,8 @@ static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, * @date * @version 1.0 */ -static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetOperationMode *pstrHostIfSetOperationMode) +static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, + struct op_mode *pstrHostIfSetOperationMode) { s32 s32Error = 0; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index dc6fe73707c8..101e51f1920d 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -259,9 +259,9 @@ struct drv_handler { u32 u32Address; }; -typedef struct { +struct op_mode { u32 u32Mode; -} tstrHostIfSetOperationMode; +}; typedef struct { u8 u8MacAddress[ETH_ALEN]; From b7611a87a938ffc1aaff54b1d773e5f372ae2150 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:54 +0900 Subject: [PATCH 0541/2431] staging: wilc1000: remove typedef from the struct tstrHostIfSetMacAddress This patch removes typedef from the struct tstrHostIfSetMacAddress and renames it set_mac_addr in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 +++-- drivers/staging/wilc1000/host_interface.h | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 68df96bc3634..c1fc145cbdea 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -434,7 +434,7 @@ union message_body { struct drv_handler strHostIfSetDrvHandler; struct set_multicast strHostIfSetMulti; struct op_mode strHostIfSetOperationMode; - tstrHostIfSetMacAddress strHostIfSetMacAddress; + struct set_mac_addr strHostIfSetMacAddress; tstrHostIfGetMacAddress strHostIfGetMacAddress; tstrHostIfBASessionInfo strHostIfBASessionInfo; tstrHostIfRemainOnChan strHostIfRemainOnChan; @@ -846,7 +846,8 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) * @date November 2013 * @version 7.0 */ -static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfSetMacAddress *pstrHostIfSetMacAddress) +static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, + struct set_mac_addr *pstrHostIfSetMacAddress) { s32 s32Error = 0; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 101e51f1920d..fc7c521f46ee 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -263,9 +263,9 @@ struct op_mode { u32 u32Mode; }; -typedef struct { +struct set_mac_addr { u8 u8MacAddress[ETH_ALEN]; -} tstrHostIfSetMacAddress; +}; typedef struct { u8 *u8MacAddress; From fcd27c5f658b905bbd0abf55c7304a9cc4a3e90e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:55 +0900 Subject: [PATCH 0542/2431] staging: wilc1000: remove typedef from the struct tstrHostIfGetMacAddress This patch removes typedef from the struct tstrHostIfGetMacAddress and renames it get_mac_addr in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 +++-- drivers/staging/wilc1000/host_interface.h | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c1fc145cbdea..7c5b49c165ef 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -435,7 +435,7 @@ union message_body { struct set_multicast strHostIfSetMulti; struct op_mode strHostIfSetOperationMode; struct set_mac_addr strHostIfSetMacAddress; - tstrHostIfGetMacAddress strHostIfGetMacAddress; + struct get_mac_addr strHostIfGetMacAddress; tstrHostIfBASessionInfo strHostIfBASessionInfo; tstrHostIfRemainOnChan strHostIfRemainOnChan; tstrHostIfRegisterFrame strHostIfRegisterFrame; @@ -889,7 +889,8 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, * @date JAN 2013 * @version 8.0 */ -static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, tstrHostIfGetMacAddress *pstrHostIfGetMacAddress) +static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, + struct get_mac_addr *pstrHostIfGetMacAddress) { s32 s32Error = 0; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index fc7c521f46ee..c8b482fa3c2c 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -267,9 +267,9 @@ struct set_mac_addr { u8 u8MacAddress[ETH_ALEN]; }; -typedef struct { +struct get_mac_addr { u8 *u8MacAddress; -} tstrHostIfGetMacAddress; +}; typedef struct { u8 au8Bssid[ETH_ALEN]; From 54265472bf3e614252ea829e378977189b56717c Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:56 +0900 Subject: [PATCH 0543/2431] staging: wilc1000: remove typedef from the struct tstrHostIfBASessionInfo This patch removes typedef from the struct tstrHostIfBASessionInfo and renames it to ba_session_info in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 17 ++++++++++------- drivers/staging/wilc1000/host_interface.h | 4 ++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7c5b49c165ef..4ce981b39a49 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -436,7 +436,7 @@ union message_body { struct op_mode strHostIfSetOperationMode; struct set_mac_addr strHostIfSetMacAddress; struct get_mac_addr strHostIfGetMacAddress; - tstrHostIfBASessionInfo strHostIfBASessionInfo; + struct ba_session_info strHostIfBASessionInfo; tstrHostIfRemainOnChan strHostIfRemainOnChan; tstrHostIfRegisterFrame strHostIfRegisterFrame; char *pUserData; @@ -4081,7 +4081,8 @@ ERRORHANDLER: * @date Feb. 2014 * @version 9.0 */ -static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionInfo *strHostIfBASessionInfo) +static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, + struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; tstrWID strWID; @@ -4170,7 +4171,8 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI * @date Feb. 2013 * @version 9.0 */ -static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionInfo *strHostIfBASessionInfo) +static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, + struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; tstrWID strWID; @@ -4241,7 +4243,8 @@ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionI * @date Feb. 2013 * @version 9.0 */ -static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, tstrHostIfBASessionInfo *strHostIfBASessionInfo) +static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, + struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; tstrWID strWID; @@ -7521,7 +7524,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIfBASessionInfo *pBASessionInfo = &msg.body.strHostIfBASessionInfo; + struct ba_session_info *pBASessionInfo = &msg.body.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7552,7 +7555,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIfBASessionInfo *pBASessionInfo = &msg.body.strHostIfBASessionInfo; + struct ba_session_info *pBASessionInfo = &msg.body.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7582,7 +7585,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIfBASessionInfo *pBASessionInfo = &msg.body.strHostIfBASessionInfo; + struct ba_session_info *pBASessionInfo = &msg.body.strHostIfBASessionInfo; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index c8b482fa3c2c..aba00f115f44 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -271,12 +271,12 @@ struct get_mac_addr { u8 *u8MacAddress; }; -typedef struct { +struct ba_session_info { u8 au8Bssid[ETH_ALEN]; u8 u8Ted; u16 u16BufferSize; u16 u16SessionTimeout; -} tstrHostIfBASessionInfo; +}; typedef struct { u16 u16Channel; From fb93a1e1be67aa935903687d7d4972751b8adebc Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:57 +0900 Subject: [PATCH 0544/2431] staging: wilc1000: remove typedef from the struct tstrHostIFDelSta This patch removes typedef from the struct tstrHostIFDelSta and renames it del_sta in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4ce981b39a49..ae56fb49c80a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -329,7 +329,7 @@ typedef struct { } tstrHostIFDelAllSta; /*! - * @struct tstrHostIFDelSta + * @struct del_sta * @brief Delete station message body * @details * @todo @@ -338,10 +338,9 @@ typedef struct { * @date 15 July 2012 * @version 1.0 Description */ - -typedef struct { +struct del_sta { u8 au8MacAddr[ETH_ALEN]; -} tstrHostIFDelSta; +}; /*! * @struct timer_cb @@ -424,7 +423,7 @@ union message_body { struct set_beacon strHostIFSetBeacon; /*!< Set beacon message body */ struct del_beacon strHostIFDelBeacon; /*!< Del beacon message body */ struct add_sta_param strAddStaParam; /*!< Add station message body */ - tstrHostIFDelSta strDelStaParam; /*!< Del Station message body */ + struct del_sta strDelStaParam; /*!< Del Station message body */ struct add_sta_param strEditStaParam; /*!< Edit station message body */ /* tstrScanComplete strScanComplete; / *Received Async. Scan Complete message body* / */ struct timer_cb strTimerCb; /*!< Timer callback message body */ @@ -3686,13 +3685,14 @@ ERRORHANDLER: /** * @brief Handle_DelStation * @details Sending config packet to delete station - * @param[in] tstrHostIFDelSta* pstrDelStaParam + * @param[in] struct del_sta *pstrDelStaParam * @return NONE * @author * @date * @version 1.0 */ -static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelSta *pstrDelStaParam) +static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, + struct del_sta *pstrDelStaParam) { s32 s32Error = 0; tstrWID strWID; @@ -7084,7 +7084,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIFDelSta *pstrDelStationMsg = &msg.body.strDelStaParam; + struct del_sta *pstrDelStationMsg = &msg.body.strDelStaParam; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); From 2f9c03f5216f7cb752103a7cd84ea431c199db48 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:58 +0900 Subject: [PATCH 0545/2431] staging: wilc1000: remove typedef from the struct tstrHostIfRemainOnChan This patch removes typedef from the struct tstrHostIfRemainOnChan and renames it to remain_ch in order to comply with the Linux coding style Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 +++++--- drivers/staging/wilc1000/host_interface.h | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ae56fb49c80a..df0077e02a9c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -436,7 +436,7 @@ union message_body { struct set_mac_addr strHostIfSetMacAddress; struct get_mac_addr strHostIfGetMacAddress; struct ba_session_info strHostIfBASessionInfo; - tstrHostIfRemainOnChan strHostIfRemainOnChan; + struct remain_ch strHostIfRemainOnChan; tstrHostIfRegisterFrame strHostIfRegisterFrame; char *pUserData; tstrHostIFDelAllSta strHostIFDelAllSta; @@ -3773,7 +3773,8 @@ ERRORHANDLER: * @date * @version 1.0 */ -static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnChan *pstrHostIfRemainOnChan) +static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, + struct remain_ch *pstrHostIfRemainOnChan) { s32 s32Error = 0; u8 u8remain_on_chan_flag; @@ -3909,7 +3910,8 @@ static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, tstrHostIfRegisterF * @version 1.0 */ #define FALSE_FRMWR_CHANNEL 100 -static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnChan *pstrHostIfRemainOnChan) +static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, + struct remain_ch *pstrHostIfRemainOnChan) { u8 u8remain_on_chan_flag; tstrWID strWID; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index aba00f115f44..e0fc27ffe5ce 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -278,14 +278,14 @@ struct ba_session_info { u16 u16SessionTimeout; }; -typedef struct { +struct remain_ch { u16 u16Channel; u32 u32duration; tWILCpfRemainOnChanExpired pRemainOnChanExpired; tWILCpfRemainOnChanReady pRemainOnChanReady; void *pVoid; u32 u32ListenSessionID; -} tstrHostIfRemainOnChan; +}; typedef struct { @@ -318,7 +318,7 @@ typedef struct { tstrWILC_UsrConnReq strWILC_UsrConnReq; /*Remain on channel struvture*/ - tstrHostIfRemainOnChan strHostIfRemainOnChan; + struct remain_ch strHostIfRemainOnChan; u8 u8RemainOnChan_pendingreq; u64 u64P2p_MgmtTimeout; u8 u8P2PConnect; From bc37c5dfba7d32a41584c97a642dbfcb836f065d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:59 +0900 Subject: [PATCH 0546/2431] staging: wilc1000: remove typedef from the struct tstrHostIfRegisterFrame This patch removes typedef from the struct tstrHostIfRegisterFrame and renames it to reg_frame in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 +++-- drivers/staging/wilc1000/host_interface.h | 7 ++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index df0077e02a9c..2cc01dcb11d8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -437,7 +437,7 @@ union message_body { struct get_mac_addr strHostIfGetMacAddress; struct ba_session_info strHostIfBASessionInfo; struct remain_ch strHostIfRemainOnChan; - tstrHostIfRegisterFrame strHostIfRegisterFrame; + struct reg_frame strHostIfRegisterFrame; char *pUserData; tstrHostIFDelAllSta strHostIFDelAllSta; }; @@ -3862,7 +3862,8 @@ ERRORHANDLER: * @date * @version 1.0 */ -static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, tstrHostIfRegisterFrame *pstrHostIfRegisterFrame) +static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, + struct reg_frame *pstrHostIfRegisterFrame) { s32 s32Error = 0; tstrWID strWID; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index e0fc27ffe5ce..c96fff998e26 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -287,14 +287,11 @@ struct remain_ch { u32 u32ListenSessionID; }; -typedef struct { - +struct reg_frame { bool bReg; u16 u16FrameType; u8 u8Regid; - - -} tstrHostIfRegisterFrame; +}; #define ACTION 0xD0 From b4e644e48c391d3b0316afec6cecf870d83bafd3 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:17:00 +0900 Subject: [PATCH 0547/2431] staging: wilc1000: remove typedef from the struct tstrHostIFDelAllSta This patch removes typedef from the struct tstrHostIFDelAllSta and renames it to del_all_sta in order to comply with the Linux coding style. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2cc01dcb11d8..7b9de4c833fb 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -313,7 +313,7 @@ struct set_multicast { }; /*! - * @struct tstrHostIFDelAllSta + * @struct del_all_sta * @brief Deauth station message body * @details * @todo @@ -322,11 +322,10 @@ struct set_multicast { * @date 09 April 2014 * @version 1.0 Description */ - -typedef struct { +struct del_all_sta { u8 au8Sta_DelAllSta[MAX_NUM_STA][ETH_ALEN]; u8 u8Num_AssocSta; -} tstrHostIFDelAllSta; +}; /*! * @struct del_sta @@ -439,7 +438,7 @@ union message_body { struct remain_ch strHostIfRemainOnChan; struct reg_frame strHostIfRegisterFrame; char *pUserData; - tstrHostIFDelAllSta strHostIFDelAllSta; + struct del_all_sta strHostIFDelAllSta; }; /*! @@ -3636,7 +3635,8 @@ ERRORHANDLER: * @date * @version 1.0 */ -static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, tstrHostIFDelAllSta *pstrDelAllStaParam) +static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, + struct del_all_sta *pstrDelAllStaParam) { s32 s32Error = 0; @@ -7128,7 +7128,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - tstrHostIFDelAllSta *pstrDelAllStationMsg = &msg.body.strHostIFDelAllSta; + struct del_all_sta *pstrDelAllStationMsg = &msg.body.strHostIFDelAllSta; u8 au8Zero_Buff[ETH_ALEN] = {0}; u32 i; u8 u8AssocNumb = 0; From 6ddea59641605a6e494c7ad167111e47d513e741 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:17:01 +0900 Subject: [PATCH 0548/2431] staging: wilc1000: remove unnecessary global variable The global variable msgQ_created is removed because it is not necessary. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7b9de4c833fb..b92c96bf8207 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6356,7 +6356,6 @@ void host_int_send_network_info_to_host * @version 1.0 */ static u32 u32Intialized; -static u32 msgQ_created; static u32 clients_count; s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) @@ -6429,7 +6428,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) PRINT_ER("Failed to creat MQ\n"); goto _fail_; } - msgQ_created = 1; HostIFthreadHandler = kthread_run(hostIFthread, NULL, "WILC_kthread"); if (IS_ERR(HostIFthreadHandler)) { PRINT_ER("Failed to creat Thread\n"); @@ -6596,7 +6594,6 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) down(&hSemHostIFthrdEnd); wilc_mq_destroy(&gMsgQHostIF); - msgQ_created = 0; } down(&(pstrWFIDrv->gtOsCfgValuesSem)); From 903b4d31c81125cbf493bdd6b5ddaa50b0d3ed67 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:17:02 +0900 Subject: [PATCH 0549/2431] staging: wilc1000: remove u32Intialized which is unnecessary This patch removes the global variable, u32Intialized which is not necessary from the host_interface.c file. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b92c96bf8207..8f92ff01d29f 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6355,7 +6355,6 @@ void host_int_send_network_info_to_host * @date 8 March 2012 * @version 1.0 */ -static u32 u32Intialized; static u32 clients_count; s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) @@ -6364,12 +6363,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) tstrWILC_WFIDrv *pstrWFIDrv; int err; - /*if(u32Intialized == 1) - * { - * PRINT_D(HOSTINF_DBG,"Host interface is previously initialized\n"); - * *phWFIDrv = (WILC_WFIDrvHandle)gWFiDrvHandle; //Will be adjusted later for P2P - * return 0; - * } */ PRINT_D(HOSTINF_DBG, "Initializing host interface for client %d\n", clients_count + 1); gbScanWhileConnected = false; @@ -6480,7 +6473,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) goto _fail_mem_; } - u32Intialized = 1; clients_count++; /* increase number of created entities */ return s32Error; @@ -6520,12 +6512,6 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) /*obtain driver handle*/ tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - /*if(u32Intialized == 0) - * { - * PRINT_ER("Host Interface is not initialized\n"); - * return 0; - * }*/ - if (pstrWFIDrv == NULL) { PRINT_ER("pstrWFIDrv = NULL\n"); @@ -6599,7 +6585,6 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) down(&(pstrWFIDrv->gtOsCfgValuesSem)); /*Setting the gloabl driver handler with NULL*/ - u32Intialized = 0; /* gWFiDrvHandle = NULL; */ ret = remove_handler_in_list(pstrWFIDrv); if (ret) From a5a45ba2738723c62775f51aad4657f1606f3b7d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:17:03 +0900 Subject: [PATCH 0550/2431] staging: wilc1000: delete unnecessary comments and dead code The comments in union message_body are not essential and cross 80 ending line, so they are deleted and also a dead code commented out in the union is deleted. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 27 +++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8f92ff01d29f..62f4a8a08cde 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -411,22 +411,21 @@ struct sta_inactive_t { * @version 1.0 */ union message_body { - struct scan_attr strHostIFscanAttr; /*!< Host IF Scan Request Attributes message body */ - struct connect_attr strHostIFconnectAttr; /*!< Host IF Connect Request Attributes message body */ - struct rcvd_net_info strRcvdNetworkInfo; /*!< Received Asynchronous Network Info message body */ - struct rcvd_async_info strRcvdGnrlAsyncInfo; /*!< Received General Asynchronous Info message body */ - struct key_attr strHostIFkeyAttr; /*!<>*/ - struct cfg_param_attr strHostIFCfgParamAttr; /*! */ + struct scan_attr strHostIFscanAttr; + struct connect_attr strHostIFconnectAttr; + struct rcvd_net_info strRcvdNetworkInfo; + struct rcvd_async_info strRcvdGnrlAsyncInfo; + struct key_attr strHostIFkeyAttr; + struct cfg_param_attr strHostIFCfgParamAttr; struct set_channel strHostIFSetChan; struct get_channel strHostIFGetChan; - struct set_beacon strHostIFSetBeacon; /*!< Set beacon message body */ - struct del_beacon strHostIFDelBeacon; /*!< Del beacon message body */ - struct add_sta_param strAddStaParam; /*!< Add station message body */ - struct del_sta strDelStaParam; /*!< Del Station message body */ - struct add_sta_param strEditStaParam; /*!< Edit station message body */ - /* tstrScanComplete strScanComplete; / *Received Async. Scan Complete message body* / */ - struct timer_cb strTimerCb; /*!< Timer callback message body */ - struct power_mgmt_param strPowerMgmtparam; /*!< Power Management message body */ + struct set_beacon strHostIFSetBeacon; + struct del_beacon strHostIFDelBeacon; + struct add_sta_param strAddStaParam; + struct del_sta strDelStaParam; + struct add_sta_param strEditStaParam; + struct timer_cb strTimerCb; + struct power_mgmt_param strPowerMgmtparam; struct sta_inactive_t strHostIfStaInactiveT; struct set_ip_addr strHostIfSetIP; struct drv_handler strHostIfSetDrvHandler; From 12ec0bd63eb13d1c33fc02112b7ca91d5ebf070b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:15 +0900 Subject: [PATCH 0551/2431] staging: wilc1000: remove declaration of WILC_WFI_frame_register This patch removes function declaration of WILC_WFI_frame_register in linux_wlan.c file, then adds it in wilc_wfi_cfgoperations.h file. The compilation warning occurs because it is assigned to incorrect pointer type of second parameter of WILC_WFI_frame_register. It is assigned with struct wireless_dev pointer type. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 7 ++----- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 ++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5b9c48abc228..cf277491ac3f 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1400,9 +1400,6 @@ int mac_init_fn(struct net_device *ndev) return 0; } -void WILC_WFI_frame_register(struct wiphy *wiphy, struct net_device *dev, - u16 frame_type, bool reg); - /* This fn is called, when this device is setup using ifconfig */ int mac_open(struct net_device *ndev) { @@ -1464,9 +1461,9 @@ int mac_open(struct net_device *ndev) goto _err_; } - WILC_WFI_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev, + WILC_WFI_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev->ieee80211_ptr, nic->g_struct_frame_reg[0].frame_type, nic->g_struct_frame_reg[0].reg); - WILC_WFI_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev, + WILC_WFI_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev->ieee80211_ptr, nic->g_struct_frame_reg[1].frame_type, nic->g_struct_frame_reg[1].reg); netif_wake_queue(ndev); g_linux_wlan->open_ifcs++; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index a6145fcaf6d3..c32355597ab2 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -100,6 +100,8 @@ int wilc_init_host_int(struct net_device *net); void WILC_WFI_monitor_rx(u8 *buff, u32 size); int WILC_WFI_deinit_mon_interface(void); struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev); +void WILC_WFI_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, + u16 frame_type, bool reg); #define TCP_ACK_FILTER_LINK_SPEED_THRESH 54 #define DEFAULT_LINK_SPEED 72 From 8e0735c5e0a92d6a8e5b30cd485c2811d701e58b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:16 +0900 Subject: [PATCH 0552/2431] staging: wilc1000: rename WILC_WFI_frame_register This patch replaces WILC_WFI_frame_register with wilc_mgmt_frame_register to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 8 ++++---- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 9 ++++----- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 4 ++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index cf277491ac3f..7857ad2d2fa4 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1461,10 +1461,10 @@ int mac_open(struct net_device *ndev) goto _err_; } - WILC_WFI_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev->ieee80211_ptr, - nic->g_struct_frame_reg[0].frame_type, nic->g_struct_frame_reg[0].reg); - WILC_WFI_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev->ieee80211_ptr, - nic->g_struct_frame_reg[1].frame_type, nic->g_struct_frame_reg[1].reg); + wilc_mgmt_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev->ieee80211_ptr, + nic->g_struct_frame_reg[0].frame_type, nic->g_struct_frame_reg[0].reg); + wilc_mgmt_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev->ieee80211_ptr, + nic->g_struct_frame_reg[1].frame_type, nic->g_struct_frame_reg[1].reg); netif_wake_queue(ndev); g_linux_wlan->open_ifcs++; nic->mac_opened = 1; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index a51560f85ba9..de8c83d7d662 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2539,7 +2539,7 @@ int mgmt_tx_cancel_wait(struct wiphy *wiphy, } /** - * @brief WILC_WFI_frame_register + * @brief wilc_mgmt_frame_register * @details Notify driver that a management frame type was * registered. Note that this callback may not sleep, and cannot run * concurrently with itself. @@ -2549,9 +2549,8 @@ int mgmt_tx_cancel_wait(struct wiphy *wiphy, * @date 01 JUL 2012 * @version */ -void WILC_WFI_frame_register(struct wiphy *wiphy, - struct wireless_dev *wdev, - u16 frame_type, bool reg) +void wilc_mgmt_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, + u16 frame_type, bool reg) { struct wilc_priv *priv; @@ -3410,7 +3409,7 @@ static struct cfg80211_ops wilc_cfg80211_ops = { .cancel_remain_on_channel = cancel_remain_on_channel, .mgmt_tx_cancel_wait = mgmt_tx_cancel_wait, .mgmt_tx = mgmt_tx, - .mgmt_frame_register = WILC_WFI_frame_register, + .mgmt_frame_register = wilc_mgmt_frame_register, .set_power_mgmt = WILC_WFI_set_power_mgmt, .set_cqm_rssi_config = WILC_WFI_set_cqm_rssi_config, diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index c32355597ab2..b240a794957d 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -100,8 +100,8 @@ int wilc_init_host_int(struct net_device *net); void WILC_WFI_monitor_rx(u8 *buff, u32 size); int WILC_WFI_deinit_mon_interface(void); struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev); -void WILC_WFI_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, - u16 frame_type, bool reg); +void wilc_mgmt_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, + u16 frame_type, bool reg); #define TCP_ACK_FILTER_LINK_SPEED_THRESH 54 #define DEFAULT_LINK_SPEED 72 From 40220d8062ce5b333c0124388f7709c84c142074 Mon Sep 17 00:00:00 2001 From: Ting-Chih Hsiao Date: Mon, 21 Sep 2015 14:58:09 +0800 Subject: [PATCH 0553/2431] staging: lustre-mgc: make mgc_obd_ops static Fix sparse warnings of the following type: warning: symbol '....' was not declared. Should it be static? Signed-off-by: Ting-Chih Hsiao Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/mgc/mgc_request.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index 9e36642b6ad2..3e9cca026306 100644 --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c +++ b/drivers/staging/lustre/lustre/mgc/mgc_request.c @@ -1692,7 +1692,7 @@ out: return rc; } -struct obd_ops mgc_obd_ops = { +static struct obd_ops mgc_obd_ops = { .o_owner = THIS_MODULE, .o_setup = mgc_setup, .o_precleanup = mgc_precleanup, From 64ffdc383b18e66c3698fff05ea693f4346cfbf9 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 21 Sep 2015 18:57:10 +0530 Subject: [PATCH 0554/2431] Staging: fbtft: Remove debug messages Remove debug messages related to fbtft_par_dbg(DEBUG_INIT_DISPLAY.. ) as this info can be obtained using kernel function tracer Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_agm1264k-fl.c | 2 -- drivers/staging/fbtft/fb_bd663474.c | 4 ---- drivers/staging/fbtft/fb_hx8347d.c | 4 ---- drivers/staging/fbtft/fb_hx8353d.c | 6 ------ drivers/staging/fbtft/fb_hx8357d.c | 4 ---- drivers/staging/fbtft/fb_ili9163.c | 6 ------ drivers/staging/fbtft/fb_ili9320.c | 6 ------ drivers/staging/fbtft/fb_ili9325.c | 6 ------ drivers/staging/fbtft/fb_ili9340.c | 4 ---- drivers/staging/fbtft/fb_ili9341.c | 6 ------ drivers/staging/fbtft/fb_ili9481.c | 2 -- drivers/staging/fbtft/fb_ili9486.c | 2 -- drivers/staging/fbtft/fb_pcd8544.c | 4 ---- drivers/staging/fbtft/fb_s6d02a1.c | 2 -- drivers/staging/fbtft/fb_s6d1121.c | 6 ------ drivers/staging/fbtft/fb_ssd1289.c | 6 ------ drivers/staging/fbtft/fb_ssd1306.c | 4 ---- drivers/staging/fbtft/fb_ssd1331.c | 4 ---- drivers/staging/fbtft/fb_ssd1351.c | 6 ------ drivers/staging/fbtft/fb_st7735r.c | 4 ---- drivers/staging/fbtft/fb_tinylcd.c | 4 ---- drivers/staging/fbtft/fb_tls8204.c | 4 ---- drivers/staging/fbtft/fb_uc1611.c | 4 ---- drivers/staging/fbtft/fb_uc1701.c | 2 -- drivers/staging/fbtft/fb_upd161704.c | 4 ---- drivers/staging/fbtft/fb_watterott.c | 4 ---- drivers/staging/fbtft/fbtft-core.c | 4 ---- 27 files changed, 114 deletions(-) diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 8eb5e696fa9a..2a2d53c70501 100644 --- a/drivers/staging/fbtft/fb_agm1264k-fl.c +++ b/drivers/staging/fbtft/fb_agm1264k-fl.c @@ -74,8 +74,6 @@ static int init_display(struct fbtft_par *par) { u8 i; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); for (i = 0; i < 2; ++i) { diff --git a/drivers/staging/fbtft/fb_bd663474.c b/drivers/staging/fbtft/fb_bd663474.c index ea013e9d45e6..6010e6cbbd72 100644 --- a/drivers/staging/fbtft/fb_bd663474.c +++ b/drivers/staging/fbtft/fb_bd663474.c @@ -33,8 +33,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - if (par->gpio.cs != -1) gpio_set_value(par->gpio.cs, 0); /* Activate chip */ @@ -143,8 +141,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { /* AM: GRAM update direction */ case 0: diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c index 8b3ee2460b8c..6ff76e531a37 100644 --- a/drivers/staging/fbtft/fb_hx8347d.c +++ b/drivers/staging/fbtft/fb_hx8347d.c @@ -31,8 +31,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); /* driving ability */ @@ -113,8 +111,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) int i, j; int acc = 0; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ for (i = 0; i < par->gamma.num_curves; i++) for (j = 0; j < par->gamma.num_values; j++) { diff --git a/drivers/staging/fbtft/fb_hx8353d.c b/drivers/staging/fbtft/fb_hx8353d.c index b36f6e1f6fbe..8552411695fa 100644 --- a/drivers/staging/fbtft/fb_hx8353d.c +++ b/drivers/staging/fbtft/fb_hx8353d.c @@ -28,8 +28,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); mdelay(150); @@ -89,8 +87,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) #define mv BIT(5) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* madctl - memory data access control rgb/bgr: 1. mode selection pin srgb @@ -120,8 +116,6 @@ static int set_var(struct fbtft_par *par) */ static int set_gamma(struct fbtft_par *par, unsigned long *curves) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - write_reg(par, 0xE0, curves[0], curves[1], curves[2], curves[3], curves[4], curves[5], curves[6], curves[7], diff --git a/drivers/staging/fbtft/fb_hx8357d.c b/drivers/staging/fbtft/fb_hx8357d.c index 3a28a36904bc..a381dbcf5535 100644 --- a/drivers/staging/fbtft/fb_hx8357d.c +++ b/drivers/staging/fbtft/fb_hx8357d.c @@ -32,8 +32,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); /* Reset things like Gamma */ @@ -166,8 +164,6 @@ static int set_var(struct fbtft_par *par) { u8 val; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { case 270: val = HX8357D_MADCTL_MV | HX8357D_MADCTL_MX; diff --git a/drivers/staging/fbtft/fb_ili9163.c b/drivers/staging/fbtft/fb_ili9163.c index d166ca905d97..f31b3f4b9275 100644 --- a/drivers/staging/fbtft/fb_ili9163.c +++ b/drivers/staging/fbtft/fb_ili9163.c @@ -108,8 +108,6 @@ create setup for different displays. static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); if (par->gpio.cs != -1) @@ -201,8 +199,6 @@ static int set_var(struct fbtft_par *par) { u8 mactrl_data = 0; /* Avoid compiler warning */ - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { case 0: mactrl_data = 0x08; @@ -236,8 +232,6 @@ static int gamma_adj(struct fbtft_par *par, unsigned long *curves) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F}; int i, j; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - for (i = 0; i < GAMMA_NUM; i++) for (j = 0; j < GAMMA_LEN; j++) CURVE(i, j) &= mask[i * par->gamma.num_values + j]; diff --git a/drivers/staging/fbtft/fb_ili9320.c b/drivers/staging/fbtft/fb_ili9320.c index 30bed2c674c9..3ed50febe36f 100644 --- a/drivers/staging/fbtft/fb_ili9320.c +++ b/drivers/staging/fbtft/fb_ili9320.c @@ -43,8 +43,6 @@ static int init_display(struct fbtft_par *par) { unsigned devcode; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); devcode = read_devicecode(par); @@ -200,8 +198,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { case 0: write_reg(par, 0x3, (par->bgr << 12) | 0x30); @@ -233,8 +229,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) }; int i, j; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ for (i = 0; i < 2; i++) for (j = 0; j < 10; j++) diff --git a/drivers/staging/fbtft/fb_ili9325.c b/drivers/staging/fbtft/fb_ili9325.c index 25e5a11d451e..3b3a06d8a125 100644 --- a/drivers/staging/fbtft/fb_ili9325.c +++ b/drivers/staging/fbtft/fb_ili9325.c @@ -95,8 +95,6 @@ VCOMH - VCOML < 6.0 => 4.79 < 6.0 static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); if (par->gpio.cs != -1) @@ -195,8 +193,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { /* AM: GRAM update direction */ case 0: @@ -230,8 +226,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) }; int i, j; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ for (i = 0; i < 2; i++) for (j = 0; j < 10; j++) diff --git a/drivers/staging/fbtft/fb_ili9340.c b/drivers/staging/fbtft/fb_ili9340.c index 7efd8bc1201b..e0e253989271 100644 --- a/drivers/staging/fbtft/fb_ili9340.c +++ b/drivers/staging/fbtft/fb_ili9340.c @@ -29,8 +29,6 @@ /* Init sequence taken from: Arduino Library for the Adafruit 2.2" display */ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); write_reg(par, 0xEF, 0x03, 0x80, 0x02); @@ -110,8 +108,6 @@ static int set_var(struct fbtft_par *par) { u8 val; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { case 270: val = ILI9340_MADCTL_MV; diff --git a/drivers/staging/fbtft/fb_ili9341.c b/drivers/staging/fbtft/fb_ili9341.c index d07a312ad293..dcee0aff5875 100644 --- a/drivers/staging/fbtft/fb_ili9341.c +++ b/drivers/staging/fbtft/fb_ili9341.c @@ -36,8 +36,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); /* startup sequence for MI0283QT-9A */ @@ -97,8 +95,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) #define MEM_BGR (3) /* RGB-BGR Order */ static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { case 0: write_reg(par, 0x36, (1 << MEM_X) | (par->bgr << MEM_BGR)); @@ -129,8 +125,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) { int i; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - for (i = 0; i < par->gamma.num_curves; i++) write_reg(par, 0xE0 + i, CURVE(i, 0), CURVE(i, 1), CURVE(i, 2), diff --git a/drivers/staging/fbtft/fb_ili9481.c b/drivers/staging/fbtft/fb_ili9481.c index 85387f01d254..63684864f309 100644 --- a/drivers/staging/fbtft/fb_ili9481.c +++ b/drivers/staging/fbtft/fb_ili9481.c @@ -68,8 +68,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) #define ROWxCOL 0x20 static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { case 270: write_reg(par, 0x36, ROWxCOL | HFLIP | VFLIP | (par->bgr << 3)); diff --git a/drivers/staging/fbtft/fb_ili9486.c b/drivers/staging/fbtft/fb_ili9486.c index 10068b0d1de9..d9dfff68159b 100644 --- a/drivers/staging/fbtft/fb_ili9486.c +++ b/drivers/staging/fbtft/fb_ili9486.c @@ -68,8 +68,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { case 0: write_reg(par, 0x36, 0x80 | (par->bgr << 3)); diff --git a/drivers/staging/fbtft/fb_pcd8544.c b/drivers/staging/fbtft/fb_pcd8544.c index 7ba220f07d01..828174a566a3 100644 --- a/drivers/staging/fbtft/fb_pcd8544.c +++ b/drivers/staging/fbtft/fb_pcd8544.c @@ -42,8 +42,6 @@ MODULE_PARM_DESC(bs, "BS[2:0] Bias voltage level: 0-7 (default: 4)"); static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); /* Function set @@ -143,8 +141,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) static int set_gamma(struct fbtft_par *par, unsigned long *curves) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ curves[0] &= 0x7F; diff --git a/drivers/staging/fbtft/fb_s6d02a1.c b/drivers/staging/fbtft/fb_s6d02a1.c index 0ae5bc6c53a6..da85057eb3e0 100644 --- a/drivers/staging/fbtft/fb_s6d02a1.c +++ b/drivers/staging/fbtft/fb_s6d02a1.c @@ -113,8 +113,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) #define MV BIT(5) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* MADCTL - Memory data access control RGB/BGR: 1. Mode selection pin SRGB diff --git a/drivers/staging/fbtft/fb_s6d1121.c b/drivers/staging/fbtft/fb_s6d1121.c index 9ee8d56cd569..d6ae76b318ad 100644 --- a/drivers/staging/fbtft/fb_s6d1121.c +++ b/drivers/staging/fbtft/fb_s6d1121.c @@ -36,8 +36,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); if (par->gpio.cs != -1) @@ -107,8 +105,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { /* AM: GRAM update direction */ case 0: @@ -143,8 +139,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) }; int i, j; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ for (i = 0; i < 2; i++) for (j = 0; j < 14; j++) diff --git a/drivers/staging/fbtft/fb_ssd1289.c b/drivers/staging/fbtft/fb_ssd1289.c index e6804524a47b..1162c08613fa 100644 --- a/drivers/staging/fbtft/fb_ssd1289.c +++ b/drivers/staging/fbtft/fb_ssd1289.c @@ -35,8 +35,6 @@ MODULE_PARM_DESC(reg11, "Register 11h value"); static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); if (par->gpio.cs != -1) @@ -106,8 +104,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - if (par->fbtftops.init_display != init_display) { /* don't risk messing up register 11h */ fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, @@ -148,8 +144,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) }; int i, j; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ for (i = 0; i < 2; i++) for (j = 0; j < 10; j++) diff --git a/drivers/staging/fbtft/fb_ssd1306.c b/drivers/staging/fbtft/fb_ssd1306.c index 4fe899ba68cf..7568e943ec0a 100644 --- a/drivers/staging/fbtft/fb_ssd1306.c +++ b/drivers/staging/fbtft/fb_ssd1306.c @@ -40,8 +40,6 @@ /* Init sequence taken from the Adafruit SSD1306 Arduino library */ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); if (par->gamma.curves[0] == 0) { @@ -150,8 +148,6 @@ static int blank(struct fbtft_par *par, bool on) /* Gamma is used to control Contrast */ static int set_gamma(struct fbtft_par *par, unsigned long *curves) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ curves[0] &= 0xFF; diff --git a/drivers/staging/fbtft/fb_ssd1331.c b/drivers/staging/fbtft/fb_ssd1331.c index 9ac75f6822a9..53cb8e9847cf 100644 --- a/drivers/staging/fbtft/fb_ssd1331.c +++ b/drivers/staging/fbtft/fb_ssd1331.c @@ -23,8 +23,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); write_reg(par, 0xae); /* Display Off */ @@ -129,8 +127,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) unsigned long tmp[GAMMA_NUM * GAMMA_LEN]; int i, acc = 0; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - for (i = 0; i < 63; i++) { if (i > 0 && curves[i] < 2) { dev_err(par->info->device, diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index 7e3762d5aa2a..83867e1593f0 100644 --- a/drivers/staging/fbtft/fb_ssd1351.c +++ b/drivers/staging/fbtft/fb_ssd1351.c @@ -25,8 +25,6 @@ static void register_onboard_backlight(struct fbtft_par *par); static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - if (par->pdata && par->pdata->display.backlight == FBTFT_ONBOARD_BACKLIGHT) { /* module uses onboard GPIO for panel power */ @@ -70,8 +68,6 @@ static int set_var(struct fbtft_par *par) { unsigned remap; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - if (par->fbtftops.init_display != init_display) { /* don't risk messing up register A0h */ fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, @@ -126,8 +122,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) unsigned long tmp[GAMMA_NUM * GAMMA_LEN]; int i, acc = 0; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - for (i = 0; i < 63; i++) { if (i > 0 && curves[i] < 2) { dev_err(par->info->device, diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c index e249bbfe5e89..a92b0d071097 100644 --- a/drivers/staging/fbtft/fb_st7735r.c +++ b/drivers/staging/fbtft/fb_st7735r.c @@ -106,8 +106,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) #define MV BIT(5) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* MADCTL - Memory data access control RGB/BGR: 1. Mode selection pin SRGB @@ -142,8 +140,6 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) { int i, j; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ for (i = 0; i < par->gamma.num_curves; i++) for (j = 0; j < par->gamma.num_values; j++) diff --git a/drivers/staging/fbtft/fb_tinylcd.c b/drivers/staging/fbtft/fb_tinylcd.c index 04d1e344a3a0..caf263db436a 100644 --- a/drivers/staging/fbtft/fb_tinylcd.c +++ b/drivers/staging/fbtft/fb_tinylcd.c @@ -27,8 +27,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); write_reg(par, 0xB0, 0x80); @@ -71,8 +69,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { case 270: write_reg(par, 0xB6, 0x00, 0x02, 0x3B); diff --git a/drivers/staging/fbtft/fb_tls8204.c b/drivers/staging/fbtft/fb_tls8204.c index 1225ba9f8b1b..4e16ea763d78 100644 --- a/drivers/staging/fbtft/fb_tls8204.c +++ b/drivers/staging/fbtft/fb_tls8204.c @@ -41,8 +41,6 @@ MODULE_PARM_DESC(bs, "BS[2:0] Bias voltage level: 0-7 (default: 4)"); static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); /* Enter extended command mode */ @@ -135,8 +133,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) static int set_gamma(struct fbtft_par *par, unsigned long *curves) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* apply mask */ curves[0] &= 0x7F; diff --git a/drivers/staging/fbtft/fb_uc1611.c b/drivers/staging/fbtft/fb_uc1611.c index 14a8734bc415..5b836614afe8 100644 --- a/drivers/staging/fbtft/fb_uc1611.c +++ b/drivers/staging/fbtft/fb_uc1611.c @@ -72,8 +72,6 @@ static int init_display(struct fbtft_par *par) { int ret; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* Set CS active high */ par->spi->mode |= SPI_CS_HIGH; ret = par->spi->master->setup(par->spi); @@ -152,8 +150,6 @@ static int blank(struct fbtft_par *par, bool on) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* par->info->fix.visual = FB_VISUAL_PSEUDOCOLOR; */ par->info->var.grayscale = 1; par->info->var.red.offset = 0; diff --git a/drivers/staging/fbtft/fb_uc1701.c b/drivers/staging/fbtft/fb_uc1701.c index e0d4d36047cc..28b13cf16f1e 100644 --- a/drivers/staging/fbtft/fb_uc1701.c +++ b/drivers/staging/fbtft/fb_uc1701.c @@ -71,8 +71,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); /* softreset of LCD */ diff --git a/drivers/staging/fbtft/fb_upd161704.c b/drivers/staging/fbtft/fb_upd161704.c index f0011ee9868b..970b8430eccf 100644 --- a/drivers/staging/fbtft/fb_upd161704.c +++ b/drivers/staging/fbtft/fb_upd161704.c @@ -33,8 +33,6 @@ static int init_display(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - par->fbtftops.reset(par); if (par->gpio.cs != -1) @@ -153,8 +151,6 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int set_var(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - switch (par->info->var.rotate) { /* AM: GRAM update direction */ case 0: diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c index 01126a5f8648..c4800497169c 100644 --- a/drivers/staging/fbtft/fb_watterott.c +++ b/drivers/staging/fbtft/fb_watterott.c @@ -159,8 +159,6 @@ static int init_display(struct fbtft_par *par) unsigned version; u8 save_mode; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* enable SPI interface by having CS and MOSI low during reset */ save_mode = par->spi->mode; par->spi->mode |= SPI_CS_HIGH; @@ -200,8 +198,6 @@ static int set_var(struct fbtft_par *par) { u8 rotate; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* this controller rotates clock wise */ switch (par->info->var.rotate) { case 90: diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 293fcbb3b064..b318dafd5ce4 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -1050,8 +1050,6 @@ static int fbtft_init_display_dt(struct fbtft_par *par) u32 val; int buf[64], i, j; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - if (!node) return -EINVAL; @@ -1134,8 +1132,6 @@ int fbtft_init_display(struct fbtft_par *par) int i = 0; int j; - fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__); - /* sanity check */ if (!par->init_sequence) { dev_err(par->info->device, From d53dfb24e5772bd2a0cec16cf7b0edc5b5f2e7b2 Mon Sep 17 00:00:00 2001 From: "Amber N. Adams" Date: Sun, 20 Sep 2015 11:32:06 -0500 Subject: [PATCH 0555/2431] staging: skein: Adds * on subsequent lines in block comment This patch fixes the checkpatch.pl warning: WARNING: Block comments use * on subsequent lines +/* +Copyright (c) 2010 Werner Dittmann Signed-off-by: Amber N. Adams Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_api.h | 48 +++++++++++++++---------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/drivers/staging/skein/skein_api.h b/drivers/staging/skein/skein_api.h index 7da8b386a28c..5df7905825da 100644 --- a/drivers/staging/skein/skein_api.h +++ b/drivers/staging/skein/skein_api.h @@ -1,28 +1,28 @@ -/* -Copyright (c) 2010 Werner Dittmann +/** + * Copyright (c) 2010 Werner Dittmann + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -*/ + */ #ifndef SKEINAPI_H #define SKEINAPI_H From 60d6a21b1ec25629e93f11464fae3b2045c3370f Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Mon, 21 Sep 2015 21:59:41 +0530 Subject: [PATCH 0556/2431] Staging: rts5208: Coding style warnings fix for block comments This is patch to rtsx_chip.c that fixes up following warning reported by checkpatch.pl : -Block comments use * on subsequent lines Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rts5208/rtsx_chip.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/drivers/staging/rts5208/rtsx_chip.c b/drivers/staging/rts5208/rtsx_chip.c index 0df3b9d97134..c0ce659a5aa6 100644 --- a/drivers/staging/rts5208/rtsx_chip.c +++ b/drivers/staging/rts5208/rtsx_chip.c @@ -521,13 +521,14 @@ int rtsx_reset_chip(struct rtsx_chip *chip) } } - /* Disable cd_pwr_save (u_force_rst_core_en=0, u_cd_rst_core_en=0) - 0xFE5B - bit[1] u_cd_rst_core_en rst_value = 0 - bit[2] u_force_rst_core_en rst_value = 0 - bit[5] u_mac_phy_rst_n_dbg rst_value = 1 - bit[4] u_non_sticky_rst_n_dbg rst_value = 0 - */ + /* + * Disable cd_pwr_save (u_force_rst_core_en=0, u_cd_rst_core_en=0) + * 0xFE5B + * bit[1] u_cd_rst_core_en rst_value = 0 + * bit[2] u_force_rst_core_en rst_value = 0 + * bit[5] u_mac_phy_rst_n_dbg rst_value = 1 + * bit[4] u_non_sticky_rst_n_dbg rst_value = 0 + */ retval = rtsx_write_register(chip, CHANGE_LINK_STATE, 0x16, 0x10); if (retval) { rtsx_trace(chip); @@ -2153,12 +2154,13 @@ int rtsx_pre_handle_interrupt(struct rtsx_chip *chip) clear_bit(SD_NR, &chip->need_reset); } } else { - /* If multi-luns, it's possible that - when plugging/unplugging one card - there is another card which still - exists in the slot. In this case, - all existed cards should be reset. - */ + /* + * If multi-luns, it's possible that + * when plugging/unplugging one card + * there is another card which still + * exists in the slot. In this case, + * all existed cards should be reset. + */ if (exit_ss && (status & SD_EXIST)) set_bit(SD_NR, &chip->need_reinit); } From 72aa29ce0a59779dcda91e967600a0f8637945a6 Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Fri, 28 Aug 2015 17:27:52 +0300 Subject: [PATCH 0557/2431] iio: adc: hi8435: Holt HI-8435 threshold detector Add Holt threshold detector driver for HI-8435 chip Signed-off-by: Vladimir Barinov Signed-off-by: Jonathan Cameron --- Documentation/ABI/testing/sysfs-bus-iio | 1 + .../ABI/testing/sysfs-bus-iio-adc-hi8435 | 43 ++ drivers/iio/adc/Kconfig | 11 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/hi8435.c | 534 ++++++++++++++++++ 5 files changed, 590 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-hi8435 create mode 100644 drivers/iio/adc/hi8435.c diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 42d360fe66a5..20312a0e8197 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio @@ -581,6 +581,7 @@ What: /sys/.../iio:deviceX/events/in_voltageY_supply_thresh_rising_en What: /sys/.../iio:deviceX/events/in_voltageY_supply_thresh_falling_en What: /sys/.../iio:deviceX/events/in_voltageY_thresh_rising_en What: /sys/.../iio:deviceX/events/in_voltageY_thresh_falling_en +What: /sys/.../iio:deviceX/events/in_voltageY_thresh_either_en What: /sys/.../iio:deviceX/events/in_tempY_thresh_rising_en What: /sys/.../iio:deviceX/events/in_tempY_thresh_falling_en KernelVersion: 2.6.37 diff --git a/Documentation/ABI/testing/sysfs-bus-iio-adc-hi8435 b/Documentation/ABI/testing/sysfs-bus-iio-adc-hi8435 new file mode 100644 index 000000000000..f30b4c424fb6 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-iio-adc-hi8435 @@ -0,0 +1,43 @@ +What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_sensing_mode +Date: August 2015 +KernelVersion: 4.2.0 +Contact: source@cogentembedded.com +Description: + Program sensor type for threshold detector inputs. + Could be either "GND-Open" or "Supply-Open" mode. Y is a + threshold detector input channel. Channels 0..7, 8..15, 16..23 + and 24..31 has common sensor types. + +What: /sys/bus/iio/devices/iio:deviceX/events/in_voltageY_thresh_falling_value +Date: August 2015 +KernelVersion: 4.2.0 +Contact: source@cogentembedded.com +Description: + Channel Y low voltage threshold. If sensor input voltage goes lower then + this value then the threshold falling event is pushed. + Depending on in_voltageY_sensing_mode the low voltage threshold + is separately set for "GND-Open" and "Supply-Open" modes. + Channels 0..31 have common low threshold values, but could have different + sensing_modes. + The low voltage threshold range is between 2..21V. + Hysteresis between low and high thresholds can not be lower then 2 and + can not be odd. + If falling threshold results hysteresis to odd value then rising + threshold is automatically subtracted by one. + +What: /sys/bus/iio/devices/iio:deviceX/events/in_voltageY_thresh_rising_value +Date: August 2015 +KernelVersion: 4.2.0 +Contact: source@cogentembedded.com +Description: + Channel Y high voltage threshold. If sensor input voltage goes higher then + this value then the threshold rising event is pushed. + Depending on in_voltageY_sensing_mode the high voltage threshold + is separately set for "GND-Open" and "Supply-Open" modes. + Channels 0..31 have common high threshold values, but could have different + sensing_modes. + The high voltage threshold range is between 3..22V. + Hysteresis between low and high thresholds can not be lower then 2 and + can not be odd. + If rising threshold results hysteresis to odd value then falling + threshold is automatically appended by one. diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index 27531180d94b..7868c744fd4b 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -183,6 +183,17 @@ config EXYNOS_ADC To compile this driver as a module, choose M here: the module will be called exynos_adc. +config HI8435 + tristate "Holt Integrated Circuits HI-8435 threshold detector" + select IIO_TRIGGERED_EVENT + depends on SPI + help + If you say yes here you get support for Holt Integrated Circuits + HI-8435 chip. + + This driver can also be built as a module. If so, the module will be + called hi8435. + config LP8788_ADC tristate "LP8788 ADC driver" depends on MFD_LP8788 diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile index fa5723a5ed7c..99b37a963a1e 100644 --- a/drivers/iio/adc/Makefile +++ b/drivers/iio/adc/Makefile @@ -19,6 +19,7 @@ obj-$(CONFIG_BERLIN2_ADC) += berlin2-adc.o obj-$(CONFIG_CC10001_ADC) += cc10001_adc.o obj-$(CONFIG_DA9150_GPADC) += da9150-gpadc.o obj-$(CONFIG_EXYNOS_ADC) += exynos_adc.o +obj-$(CONFIG_HI8435) += hi8435.o obj-$(CONFIG_LP8788_ADC) += lp8788_adc.o obj-$(CONFIG_MAX1027) += max1027.o obj-$(CONFIG_MAX1363) += max1363.o diff --git a/drivers/iio/adc/hi8435.c b/drivers/iio/adc/hi8435.c new file mode 100644 index 000000000000..c73c6c62a6ac --- /dev/null +++ b/drivers/iio/adc/hi8435.c @@ -0,0 +1,534 @@ +/* + * Holt Integrated Circuits HI-8435 threshold detector driver + * + * Copyright (C) 2015 Zodiac Inflight Innovations + * Copyright (C) 2015 Cogent Embedded, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRV_NAME "hi8435" + +/* Register offsets for HI-8435 */ +#define HI8435_CTRL_REG 0x02 +#define HI8435_PSEN_REG 0x04 +#define HI8435_TMDATA_REG 0x1E +#define HI8435_GOCENHYS_REG 0x3A +#define HI8435_SOCENHYS_REG 0x3C +#define HI8435_SO7_0_REG 0x10 +#define HI8435_SO15_8_REG 0x12 +#define HI8435_SO23_16_REG 0x14 +#define HI8435_SO31_24_REG 0x16 +#define HI8435_SO31_0_REG 0x78 + +#define HI8435_WRITE_OPCODE 0x00 +#define HI8435_READ_OPCODE 0x80 + +/* CTRL register bits */ +#define HI8435_CTRL_TEST 0x01 +#define HI8435_CTRL_SRST 0x02 + +struct hi8435_priv { + struct spi_device *spi; + struct mutex lock; + + unsigned long event_scan_mask; /* soft mask/unmask channels events */ + unsigned int event_prev_val; + + unsigned threshold_lo[2]; /* GND-Open and Supply-Open thresholds */ + unsigned threshold_hi[2]; /* GND-Open and Supply-Open thresholds */ + u8 reg_buffer[3] ____cacheline_aligned; +}; + +static int hi8435_readb(struct hi8435_priv *priv, u8 reg, u8 *val) +{ + reg |= HI8435_READ_OPCODE; + return spi_write_then_read(priv->spi, ®, 1, val, 1); +} + +static int hi8435_readw(struct hi8435_priv *priv, u8 reg, u16 *val) +{ + int ret; + __be16 be_val; + + reg |= HI8435_READ_OPCODE; + ret = spi_write_then_read(priv->spi, ®, 1, &be_val, 2); + *val = be16_to_cpu(be_val); + + return ret; +} + +static int hi8435_readl(struct hi8435_priv *priv, u8 reg, u32 *val) +{ + int ret; + __be32 be_val; + + reg |= HI8435_READ_OPCODE; + ret = spi_write_then_read(priv->spi, ®, 1, &be_val, 4); + *val = be32_to_cpu(be_val); + + return ret; +} + +static int hi8435_writeb(struct hi8435_priv *priv, u8 reg, u8 val) +{ + priv->reg_buffer[0] = reg | HI8435_WRITE_OPCODE; + priv->reg_buffer[1] = val; + + return spi_write(priv->spi, priv->reg_buffer, 2); +} + +static int hi8435_writew(struct hi8435_priv *priv, u8 reg, u16 val) +{ + priv->reg_buffer[0] = reg | HI8435_WRITE_OPCODE; + priv->reg_buffer[1] = (val >> 8) & 0xff; + priv->reg_buffer[2] = val & 0xff; + + return spi_write(priv->spi, priv->reg_buffer, 3); +} + +static int hi8435_read_event_config(struct iio_dev *idev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir) +{ + struct hi8435_priv *priv = iio_priv(idev); + + return !!(priv->event_scan_mask & BIT(chan->channel)); +} + +static int hi8435_write_event_config(struct iio_dev *idev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, int state) +{ + struct hi8435_priv *priv = iio_priv(idev); + + priv->event_scan_mask &= ~BIT(chan->channel); + if (state) + priv->event_scan_mask |= BIT(chan->channel); + + return 0; +} + +static int hi8435_read_event_value(struct iio_dev *idev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + enum iio_event_info info, + int *val, int *val2) +{ + struct hi8435_priv *priv = iio_priv(idev); + int ret; + u8 mode, psen; + u16 reg; + + ret = hi8435_readb(priv, HI8435_PSEN_REG, &psen); + if (ret < 0) + return ret; + + /* Supply-Open or GND-Open sensing mode */ + mode = !!(psen & BIT(chan->channel / 8)); + + ret = hi8435_readw(priv, mode ? HI8435_SOCENHYS_REG : + HI8435_GOCENHYS_REG, ®); + if (ret < 0) + return ret; + + if (dir == IIO_EV_DIR_FALLING) + *val = ((reg & 0xff) - (reg >> 8)) / 2; + else if (dir == IIO_EV_DIR_RISING) + *val = ((reg & 0xff) + (reg >> 8)) / 2; + + return IIO_VAL_INT; +} + +static int hi8435_write_event_value(struct iio_dev *idev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + enum iio_event_info info, + int val, int val2) +{ + struct hi8435_priv *priv = iio_priv(idev); + int ret; + u8 mode, psen; + u16 reg; + + ret = hi8435_readb(priv, HI8435_PSEN_REG, &psen); + if (ret < 0) + return ret; + + /* Supply-Open or GND-Open sensing mode */ + mode = !!(psen & BIT(chan->channel / 8)); + + ret = hi8435_readw(priv, mode ? HI8435_SOCENHYS_REG : + HI8435_GOCENHYS_REG, ®); + if (ret < 0) + return ret; + + if (dir == IIO_EV_DIR_FALLING) { + /* falling threshold range 2..21V, hysteresis minimum 2V */ + if (val < 2 || val > 21 || (val + 2) > priv->threshold_hi[mode]) + return -EINVAL; + + if (val == priv->threshold_lo[mode]) + return 0; + + priv->threshold_lo[mode] = val; + + /* hysteresis must not be odd */ + if ((priv->threshold_hi[mode] - priv->threshold_lo[mode]) % 2) + priv->threshold_hi[mode]--; + } else if (dir == IIO_EV_DIR_RISING) { + /* rising threshold range 3..22V, hysteresis minimum 2V */ + if (val < 3 || val > 22 || val < (priv->threshold_lo[mode] + 2)) + return -EINVAL; + + if (val == priv->threshold_hi[mode]) + return 0; + + priv->threshold_hi[mode] = val; + + /* hysteresis must not be odd */ + if ((priv->threshold_hi[mode] - priv->threshold_lo[mode]) % 2) + priv->threshold_lo[mode]++; + } + + /* program thresholds */ + mutex_lock(&priv->lock); + + ret = hi8435_readw(priv, mode ? HI8435_SOCENHYS_REG : + HI8435_GOCENHYS_REG, ®); + if (ret < 0) { + mutex_unlock(&priv->lock); + return ret; + } + + /* hysteresis */ + reg = priv->threshold_hi[mode] - priv->threshold_lo[mode]; + reg <<= 8; + /* threshold center */ + reg |= (priv->threshold_hi[mode] + priv->threshold_lo[mode]); + + ret = hi8435_writew(priv, mode ? HI8435_SOCENHYS_REG : + HI8435_GOCENHYS_REG, reg); + + mutex_unlock(&priv->lock); + + return ret; +} + +static int hi8435_debugfs_reg_access(struct iio_dev *idev, + unsigned reg, unsigned writeval, + unsigned *readval) +{ + struct hi8435_priv *priv = iio_priv(idev); + int ret; + u8 val; + + if (readval != NULL) { + ret = hi8435_readb(priv, reg, &val); + *readval = val; + } else { + val = (u8)writeval; + ret = hi8435_writeb(priv, reg, val); + } + + return ret; +} + +static const struct iio_event_spec hi8435_events[] = { + { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_RISING, + .mask_separate = BIT(IIO_EV_INFO_VALUE), + }, { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_FALLING, + .mask_separate = BIT(IIO_EV_INFO_VALUE), + }, { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_EITHER, + .mask_separate = BIT(IIO_EV_INFO_ENABLE), + }, +}; + +static int hi8435_get_sensing_mode(struct iio_dev *idev, + const struct iio_chan_spec *chan) +{ + struct hi8435_priv *priv = iio_priv(idev); + int ret; + u8 reg; + + ret = hi8435_readb(priv, HI8435_PSEN_REG, ®); + if (ret < 0) + return ret; + + return !!(reg & BIT(chan->channel / 8)); +} + +static int hi8435_set_sensing_mode(struct iio_dev *idev, + const struct iio_chan_spec *chan, + unsigned int mode) +{ + struct hi8435_priv *priv = iio_priv(idev); + int ret; + u8 reg; + + mutex_lock(&priv->lock); + + ret = hi8435_readb(priv, HI8435_PSEN_REG, ®); + if (ret < 0) { + mutex_unlock(&priv->lock); + return ret; + } + + reg &= ~BIT(chan->channel / 8); + if (mode) + reg |= BIT(chan->channel / 8); + + ret = hi8435_writeb(priv, HI8435_PSEN_REG, reg); + + mutex_unlock(&priv->lock); + + return ret; +} + +static const char * const hi8435_sensing_modes[] = { "GND-Open", + "Supply-Open" }; + +static const struct iio_enum hi8435_sensing_mode = { + .items = hi8435_sensing_modes, + .num_items = ARRAY_SIZE(hi8435_sensing_modes), + .get = hi8435_get_sensing_mode, + .set = hi8435_set_sensing_mode, +}; + +static const struct iio_chan_spec_ext_info hi8435_ext_info[] = { + IIO_ENUM("sensing_mode", IIO_SEPARATE, &hi8435_sensing_mode), + {}, +}; + +#define HI8435_VOLTAGE_CHANNEL(num) \ +{ \ + .type = IIO_VOLTAGE, \ + .indexed = 1, \ + .channel = num, \ + .event_spec = hi8435_events, \ + .num_event_specs = ARRAY_SIZE(hi8435_events), \ + .ext_info = hi8435_ext_info, \ +} + +static const struct iio_chan_spec hi8435_channels[] = { + HI8435_VOLTAGE_CHANNEL(0), + HI8435_VOLTAGE_CHANNEL(1), + HI8435_VOLTAGE_CHANNEL(2), + HI8435_VOLTAGE_CHANNEL(3), + HI8435_VOLTAGE_CHANNEL(4), + HI8435_VOLTAGE_CHANNEL(5), + HI8435_VOLTAGE_CHANNEL(6), + HI8435_VOLTAGE_CHANNEL(7), + HI8435_VOLTAGE_CHANNEL(8), + HI8435_VOLTAGE_CHANNEL(9), + HI8435_VOLTAGE_CHANNEL(10), + HI8435_VOLTAGE_CHANNEL(11), + HI8435_VOLTAGE_CHANNEL(12), + HI8435_VOLTAGE_CHANNEL(13), + HI8435_VOLTAGE_CHANNEL(14), + HI8435_VOLTAGE_CHANNEL(15), + HI8435_VOLTAGE_CHANNEL(16), + HI8435_VOLTAGE_CHANNEL(17), + HI8435_VOLTAGE_CHANNEL(18), + HI8435_VOLTAGE_CHANNEL(19), + HI8435_VOLTAGE_CHANNEL(20), + HI8435_VOLTAGE_CHANNEL(21), + HI8435_VOLTAGE_CHANNEL(22), + HI8435_VOLTAGE_CHANNEL(23), + HI8435_VOLTAGE_CHANNEL(24), + HI8435_VOLTAGE_CHANNEL(25), + HI8435_VOLTAGE_CHANNEL(26), + HI8435_VOLTAGE_CHANNEL(27), + HI8435_VOLTAGE_CHANNEL(28), + HI8435_VOLTAGE_CHANNEL(29), + HI8435_VOLTAGE_CHANNEL(30), + HI8435_VOLTAGE_CHANNEL(31), + IIO_CHAN_SOFT_TIMESTAMP(32), +}; + +static const struct iio_info hi8435_info = { + .driver_module = THIS_MODULE, + .read_event_config = &hi8435_read_event_config, + .write_event_config = hi8435_write_event_config, + .read_event_value = &hi8435_read_event_value, + .write_event_value = &hi8435_write_event_value, + .debugfs_reg_access = &hi8435_debugfs_reg_access, +}; + +static void hi8435_iio_push_event(struct iio_dev *idev, unsigned int val) +{ + struct hi8435_priv *priv = iio_priv(idev); + enum iio_event_direction dir; + unsigned int i; + unsigned int status = priv->event_prev_val ^ val; + + if (!status) + return; + + for_each_set_bit(i, &priv->event_scan_mask, 32) { + if (status & BIT(i)) { + dir = val & BIT(i) ? IIO_EV_DIR_RISING : + IIO_EV_DIR_FALLING; + iio_push_event(idev, + IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE, i, + IIO_EV_TYPE_THRESH, dir), + iio_get_time_ns()); + } + } + + priv->event_prev_val = val; +} + +static irqreturn_t hi8435_trigger_handler(int irq, void *private) +{ + struct iio_poll_func *pf = private; + struct iio_dev *idev = pf->indio_dev; + struct hi8435_priv *priv = iio_priv(idev); + u32 val; + int ret; + + ret = hi8435_readl(priv, HI8435_SO31_0_REG, &val); + if (ret < 0) + goto err_read; + + hi8435_iio_push_event(idev, val); + +err_read: + iio_trigger_notify_done(idev->trig); + + return IRQ_HANDLED; +} + +static int hi8435_probe(struct spi_device *spi) +{ + struct iio_dev *idev; + struct hi8435_priv *priv; + struct gpio_desc *reset_gpio; + int ret; + + idev = devm_iio_device_alloc(&spi->dev, sizeof(*priv)); + if (!idev) + return -ENOMEM; + + priv = iio_priv(idev); + priv->spi = spi; + + reset_gpio = devm_gpiod_get(&spi->dev, NULL, GPIOD_OUT_LOW); + if (IS_ERR(reset_gpio)) { + /* chip s/w reset if h/w reset failed */ + hi8435_writeb(priv, HI8435_CTRL_REG, HI8435_CTRL_SRST); + hi8435_writeb(priv, HI8435_CTRL_REG, 0); + } else { + udelay(5); + gpiod_set_value(reset_gpio, 1); + } + + spi_set_drvdata(spi, idev); + mutex_init(&priv->lock); + + idev->dev.parent = &spi->dev; + idev->name = spi_get_device_id(spi)->name; + idev->modes = INDIO_DIRECT_MODE; + idev->info = &hi8435_info; + idev->channels = hi8435_channels; + idev->num_channels = ARRAY_SIZE(hi8435_channels); + + /* unmask all events */ + priv->event_scan_mask = ~(0); + /* + * There is a restriction in the chip - the hysteresis can not be odd. + * If the hysteresis is set to odd value then chip gets into lock state + * and not functional anymore. + * After chip reset the thresholds are in undefined state, so we need to + * initialize thresholds to some initial values and then prevent + * userspace setting odd hysteresis. + * + * Set threshold low voltage to 2V, threshold high voltage to 4V + * for both GND-Open and Supply-Open sensing modes. + */ + priv->threshold_lo[0] = priv->threshold_lo[1] = 2; + priv->threshold_hi[0] = priv->threshold_hi[1] = 4; + hi8435_writew(priv, HI8435_GOCENHYS_REG, 0x206); + hi8435_writew(priv, HI8435_SOCENHYS_REG, 0x206); + + ret = iio_triggered_event_setup(idev, NULL, hi8435_trigger_handler); + if (ret) + return ret; + + ret = iio_device_register(idev); + if (ret < 0) { + dev_err(&spi->dev, "unable to register device\n"); + goto unregister_triggered_event; + } + + return 0; + +unregister_triggered_event: + iio_triggered_event_cleanup(idev); + return ret; +} + +static int hi8435_remove(struct spi_device *spi) +{ + struct iio_dev *idev = spi_get_drvdata(spi); + + iio_device_unregister(idev); + iio_triggered_event_cleanup(idev); + + return 0; +} + +static const struct of_device_id hi8435_dt_ids[] = { + { .compatible = "holt,hi8435" }, + {}, +}; +MODULE_DEVICE_TABLE(of, hi8435_dt_ids); + +static const struct spi_device_id hi8435_id[] = { + { "hi8435", 0}, + { } +}; +MODULE_DEVICE_TABLE(spi, hi8435_id); + +static struct spi_driver hi8435_driver = { + .driver = { + .name = DRV_NAME, + .of_match_table = of_match_ptr(hi8435_dt_ids), + }, + .probe = hi8435_probe, + .remove = hi8435_remove, + .id_table = hi8435_id, +}; +module_spi_driver(hi8435_driver); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Vladimir Barinov"); +MODULE_DESCRIPTION("HI-8435 threshold detector"); From 7db75fd615a6d77230315c52f9c79b2102ef2bfe Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Fri, 28 Aug 2015 17:28:20 +0300 Subject: [PATCH 0558/2431] dt: Document Holt HI-8435 bindings These bindings can be used to register Holt HI-8435 threshold detector Signed-off-by: Vladimir Barinov Signed-off-by: Jonathan Cameron --- .../devicetree/bindings/iio/adc/hi8435.txt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/adc/hi8435.txt diff --git a/Documentation/devicetree/bindings/iio/adc/hi8435.txt b/Documentation/devicetree/bindings/iio/adc/hi8435.txt new file mode 100644 index 000000000000..3b0348c5e516 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/hi8435.txt @@ -0,0 +1,21 @@ +Holt Integrated Circuits HI-8435 threshold detector bindings + +Required properties: + - compatible: should be "holt,hi8435" + - reg: spi chip select number for the device + +Recommended properties: + - spi-max-frequency: definition as per + Documentation/devicetree/bindings/spi/spi-bus.txt + +Optional properties: + - gpios: GPIO used for controlling the reset pin + +Example: +sensor@0 { + compatible = "holt,hi8435"; + reg = <0>; + gpios = <&gpio6 1 0>; + + spi-max-frequency = <1000000>; +}; From 4839367d99e3b067d3c2e9404ae320c100d090c7 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 6 Sep 2015 13:27:39 -0700 Subject: [PATCH 0559/2431] iio: humidity: add HDC100x support Add support for the HDC100x temperature and humidity sensors including the resistive heater element. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- .../testing/sysfs-bus-iio-humidity-hdc100x | 9 + drivers/iio/humidity/Kconfig | 10 + drivers/iio/humidity/Makefile | 1 + drivers/iio/humidity/hdc100x.c | 319 ++++++++++++++++++ 4 files changed, 339 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-humidity-hdc100x create mode 100644 drivers/iio/humidity/hdc100x.c diff --git a/Documentation/ABI/testing/sysfs-bus-iio-humidity-hdc100x b/Documentation/ABI/testing/sysfs-bus-iio-humidity-hdc100x new file mode 100644 index 000000000000..b72bb62552cf --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-iio-humidity-hdc100x @@ -0,0 +1,9 @@ +What: /sys/bus/iio/devices/iio:deviceX/out_current_heater_raw +What: /sys/bus/iio/devices/iio:deviceX/out_current_heater_raw_available +KernelVersion: 4.3 +Contact: linux-iio@vger.kernel.org +Description: + Controls the heater device within the humidity sensor to get + rid of excess condensation. + + Valid control values are 0 = OFF, and 1 = ON. diff --git a/drivers/iio/humidity/Kconfig b/drivers/iio/humidity/Kconfig index 688c0d1cb47d..353ee9ade95d 100644 --- a/drivers/iio/humidity/Kconfig +++ b/drivers/iio/humidity/Kconfig @@ -12,6 +12,16 @@ config DHT11 Other sensors should work as well as long as they speak the same protocol. +config HDC100X + tristate "TI HDC100x relative humidity and temperature sensor" + depends on I2C + help + Say yes here to build support for the TI HDC100x series of + relative humidity and temperature sensors. + + To compile this driver as a module, choose M here: the module + will be called hdc100x. + config SI7005 tristate "SI7005 relative humidity and temperature sensor" depends on I2C diff --git a/drivers/iio/humidity/Makefile b/drivers/iio/humidity/Makefile index 86e2d26e9f4d..3e62c0a12d5e 100644 --- a/drivers/iio/humidity/Makefile +++ b/drivers/iio/humidity/Makefile @@ -3,5 +3,6 @@ # obj-$(CONFIG_DHT11) += dht11.o +obj-$(CONFIG_HDC100X) += hdc100x.o obj-$(CONFIG_SI7005) += si7005.o obj-$(CONFIG_SI7020) += si7020.o diff --git a/drivers/iio/humidity/hdc100x.c b/drivers/iio/humidity/hdc100x.c new file mode 100644 index 000000000000..28245782ecfb --- /dev/null +++ b/drivers/iio/humidity/hdc100x.c @@ -0,0 +1,319 @@ +/* + * hdc100x.c - Support for the TI HDC100x temperature + humidity sensors + * + * Copyright (C) 2015 Matt Ranostay + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include + +#include +#include + +#define HDC100X_REG_TEMP 0x00 +#define HDC100X_REG_HUMIDITY 0x01 + +#define HDC100X_REG_CONFIG 0x02 +#define HDC100X_REG_CONFIG_HEATER_EN BIT(13) + +struct hdc100x_data { + struct i2c_client *client; + struct mutex lock; + u16 config; + + /* integration time of the sensor */ + int adc_int_us[2]; +}; + +/* integration time in us */ +static const int hdc100x_int_time[][3] = { + { 6350, 3650, 0 }, /* IIO_TEMP channel*/ + { 6500, 3850, 2500 }, /* IIO_HUMIDITYRELATIVE channel */ +}; + +/* HDC100X_REG_CONFIG shift and mask values */ +static const struct { + int shift; + int mask; +} hdc100x_resolution_shift[2] = { + { /* IIO_TEMP channel */ + .shift = 10, + .mask = 1 + }, + { /* IIO_HUMIDITYRELATIVE channel */ + .shift = 8, + .mask = 2, + }, +}; + +static IIO_CONST_ATTR(temp_integration_time_available, + "0.00365 0.00635"); + +static IIO_CONST_ATTR(humidityrelative_integration_time_available, + "0.0025 0.00385 0.0065"); + +static IIO_CONST_ATTR(out_current_heater_raw_available, + "0 1"); + +static struct attribute *hdc100x_attributes[] = { + &iio_const_attr_temp_integration_time_available.dev_attr.attr, + &iio_const_attr_humidityrelative_integration_time_available.dev_attr.attr, + &iio_const_attr_out_current_heater_raw_available.dev_attr.attr, + NULL +}; + +static struct attribute_group hdc100x_attribute_group = { + .attrs = hdc100x_attributes, +}; + +static const struct iio_chan_spec hdc100x_channels[] = { + { + .type = IIO_TEMP, + .address = HDC100X_REG_TEMP, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | + BIT(IIO_CHAN_INFO_SCALE) | + BIT(IIO_CHAN_INFO_INT_TIME) | + BIT(IIO_CHAN_INFO_OFFSET), + }, + { + .type = IIO_HUMIDITYRELATIVE, + .address = HDC100X_REG_HUMIDITY, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | + BIT(IIO_CHAN_INFO_SCALE) | + BIT(IIO_CHAN_INFO_INT_TIME) + }, + { + .type = IIO_CURRENT, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), + .extend_name = "heater", + .output = 1, + }, +}; + +static int hdc100x_update_config(struct hdc100x_data *data, int mask, int val) +{ + int tmp = (~mask & data->config) | val; + int ret; + + ret = i2c_smbus_write_word_swapped(data->client, + HDC100X_REG_CONFIG, tmp); + if (!ret) + data->config = tmp; + + return ret; +} + +static int hdc100x_set_it_time(struct hdc100x_data *data, int chan, int val2) +{ + int shift = hdc100x_resolution_shift[chan].shift; + int ret = -EINVAL; + int i; + + for (i = 0; i < ARRAY_SIZE(hdc100x_int_time[chan]); i++) { + if (val2 && val2 == hdc100x_int_time[chan][i]) { + ret = hdc100x_update_config(data, + hdc100x_resolution_shift[chan].mask << shift, + i << shift); + if (!ret) + data->adc_int_us[chan] = val2; + break; + } + } + + return ret; +} + +static int hdc100x_get_measurement(struct hdc100x_data *data, + struct iio_chan_spec const *chan) +{ + struct i2c_client *client = data->client; + int delay = data->adc_int_us[chan->address]; + int ret; + int val; + + /* start measurement */ + ret = i2c_smbus_write_byte(client, chan->address); + if (ret < 0) { + dev_err(&client->dev, "cannot start measurement"); + return ret; + } + + /* wait for integration time to pass */ + usleep_range(delay, delay + 1000); + + /* + * i2c_smbus_read_word_data cannot() be used here due to the command + * value not being understood and causes NAKs preventing any reading + * from being accessed. + */ + ret = i2c_smbus_read_byte(client); + if (ret < 0) { + dev_err(&client->dev, "cannot read high byte measurement"); + return ret; + } + val = ret << 6; + + ret = i2c_smbus_read_byte(client); + if (ret < 0) { + dev_err(&client->dev, "cannot read low byte measurement"); + return ret; + } + val |= ret >> 2; + + return val; +} + +static int hdc100x_get_heater_status(struct hdc100x_data *data) +{ + return !!(data->config & HDC100X_REG_CONFIG_HEATER_EN); +} + +static int hdc100x_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, int *val, + int *val2, long mask) +{ + struct hdc100x_data *data = iio_priv(indio_dev); + + switch (mask) { + case IIO_CHAN_INFO_RAW: { + int ret; + + mutex_lock(&data->lock); + if (chan->type == IIO_CURRENT) { + *val = hdc100x_get_heater_status(data); + ret = IIO_VAL_INT; + } else { + ret = hdc100x_get_measurement(data, chan); + if (ret >= 0) { + *val = ret; + ret = IIO_VAL_INT; + } + } + mutex_unlock(&data->lock); + return ret; + } + case IIO_CHAN_INFO_INT_TIME: + *val = 0; + *val2 = data->adc_int_us[chan->address]; + return IIO_VAL_INT_PLUS_MICRO; + case IIO_CHAN_INFO_SCALE: + if (chan->type == IIO_TEMP) { + *val = 165; + *val2 = 65536 >> 2; + return IIO_VAL_FRACTIONAL; + } else { + *val = 0; + *val2 = 10000; + return IIO_VAL_INT_PLUS_MICRO; + } + break; + case IIO_CHAN_INFO_OFFSET: + *val = -40; + return IIO_VAL_INT; + default: + return -EINVAL; + } +} + +static int hdc100x_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct hdc100x_data *data = iio_priv(indio_dev); + int ret = -EINVAL; + + switch (mask) { + case IIO_CHAN_INFO_INT_TIME: + if (val != 0) + return -EINVAL; + + mutex_lock(&data->lock); + ret = hdc100x_set_it_time(data, chan->address, val2); + mutex_unlock(&data->lock); + return ret; + case IIO_CHAN_INFO_RAW: + if (chan->type != IIO_CURRENT || val2 != 0) + return -EINVAL; + + mutex_lock(&data->lock); + ret = hdc100x_update_config(data, HDC100X_REG_CONFIG_HEATER_EN, + val ? HDC100X_REG_CONFIG_HEATER_EN : 0); + mutex_unlock(&data->lock); + return ret; + default: + return -EINVAL; + } +} + +static const struct iio_info hdc100x_info = { + .read_raw = hdc100x_read_raw, + .write_raw = hdc100x_write_raw, + .attrs = &hdc100x_attribute_group, + .driver_module = THIS_MODULE, +}; + +static int hdc100x_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct iio_dev *indio_dev; + struct hdc100x_data *data; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WORD_DATA | I2C_FUNC_SMBUS_BYTE)) + return -ENODEV; + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); + if (!indio_dev) + return -ENOMEM; + + data = iio_priv(indio_dev); + i2c_set_clientdata(client, indio_dev); + data->client = client; + mutex_init(&data->lock); + + indio_dev->dev.parent = &client->dev; + indio_dev->name = dev_name(&client->dev); + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->info = &hdc100x_info; + + indio_dev->channels = hdc100x_channels; + indio_dev->num_channels = ARRAY_SIZE(hdc100x_channels); + + /* be sure we are in a known state */ + hdc100x_set_it_time(data, 0, hdc100x_int_time[0][0]); + hdc100x_set_it_time(data, 1, hdc100x_int_time[1][0]); + + return devm_iio_device_register(&client->dev, indio_dev); +} + +static const struct i2c_device_id hdc100x_id[] = { + { "hdc100x", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, hdc100x_id); + +static struct i2c_driver hdc100x_driver = { + .driver = { + .name = "hdc100x", + }, + .probe = hdc100x_probe, + .id_table = hdc100x_id, +}; +module_i2c_driver(hdc100x_driver); + +MODULE_AUTHOR("Matt Ranostay "); +MODULE_DESCRIPTION("TI HDC100x humidity and temperature sensor driver"); +MODULE_LICENSE("GPL"); From 01b721536b4128c1e17c596650198bfc36ad8c6c Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:30 +0530 Subject: [PATCH 0560/2431] Staging: iio: meter: Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro This was done with coccinelle: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Shraddha Barke Signed-off-by: Jonathan Cameron --- drivers/staging/iio/meter/ade7753.c | 8 ++++---- drivers/staging/iio/meter/ade7754.c | 6 +++--- drivers/staging/iio/meter/ade7758_core.c | 6 +++--- drivers/staging/iio/meter/ade7759.c | 8 ++++---- drivers/staging/iio/meter/ade7854.c | 6 +++--- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c index ffc7f0ddff14..3d2e50cfe9a3 100644 --- a/drivers/staging/iio/meter/ade7753.c +++ b/drivers/staging/iio/meter/ade7753.c @@ -219,7 +219,7 @@ static int ade7753_reset(struct device *dev) u16 val; ade7753_spi_read_reg_16(dev, ADE7753_MODE, &val); - val |= 1 << 6; /* Software Chip Reset */ + val |= BIT(6); /* Software Chip Reset */ return ade7753_spi_write_reg_16(dev, ADE7753_MODE, val); } @@ -328,10 +328,10 @@ static int ade7753_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 3; /* Enables an interrupt when a data is + irqen |= BIT(3); /* Enables an interrupt when a data is present in the waveform register */ else - irqen &= ~(1 << 3); + irqen &= ~BIT(3); ret = ade7753_spi_write_reg_8(dev, ADE7753_IRQEN, irqen); @@ -345,7 +345,7 @@ static int ade7753_stop_device(struct device *dev) u16 val; ade7753_spi_read_reg_16(dev, ADE7753_MODE, &val); - val |= 1 << 4; /* AD converters can be turned off */ + val |= BIT(4); /* AD converters can be turned off */ return ade7753_spi_write_reg_16(dev, ADE7753_MODE, val); } diff --git a/drivers/staging/iio/meter/ade7754.c b/drivers/staging/iio/meter/ade7754.c index f12b2e50329b..8552c76cbbe7 100644 --- a/drivers/staging/iio/meter/ade7754.c +++ b/drivers/staging/iio/meter/ade7754.c @@ -223,7 +223,7 @@ static int ade7754_reset(struct device *dev) if (ret < 0) return ret; - val |= 1 << 6; /* Software Chip Reset */ + val |= BIT(6); /* Software Chip Reset */ return ade7754_spi_write_reg_8(dev, ADE7754_OPMODE, val); } @@ -350,10 +350,10 @@ static int ade7754_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 14; /* Enables an interrupt when a data is + irqen |= BIT(14); /* Enables an interrupt when a data is present in the waveform register */ else - irqen &= ~(1 << 14); + irqen &= ~BIT(14); ret = ade7754_spi_write_reg_16(dev, ADE7754_IRQEN, irqen); if (ret) diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c index 77141ae1349d..38838085824f 100644 --- a/drivers/staging/iio/meter/ade7758_core.c +++ b/drivers/staging/iio/meter/ade7758_core.c @@ -308,7 +308,7 @@ static int ade7758_reset(struct device *dev) dev_err(dev, "Failed to read opmode reg\n"); return ret; } - val |= 1 << 6; /* Software Chip Reset */ + val |= BIT(6); /* Software Chip Reset */ ret = ade7758_spi_write_reg_8(dev, ADE7758_OPMODE, val); if (ret < 0) dev_err(dev, "Failed to write opmode reg\n"); @@ -426,10 +426,10 @@ int ade7758_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 16; /* Enables an interrupt when a data is + irqen |= BIT(16); /* Enables an interrupt when a data is present in the waveform register */ else - irqen &= ~(1 << 16); + irqen &= ~BIT(16); ret = ade7758_spi_write_reg_24(dev, ADE7758_MASK, irqen); if (ret) diff --git a/drivers/staging/iio/meter/ade7759.c b/drivers/staging/iio/meter/ade7759.c index dbceda1e67ea..23e739207027 100644 --- a/drivers/staging/iio/meter/ade7759.c +++ b/drivers/staging/iio/meter/ade7759.c @@ -224,7 +224,7 @@ static int ade7759_reset(struct device *dev) if (ret < 0) return ret; - val |= 1 << 6; /* Software Chip Reset */ + val |= BIT(6); /* Software Chip Reset */ return ade7759_spi_write_reg_16(dev, ADE7759_MODE, val); @@ -288,10 +288,10 @@ static int ade7759_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 3; /* Enables an interrupt when a data is + irqen |= BIT(3); /* Enables an interrupt when a data is present in the waveform register */ else - irqen &= ~(1 << 3); + irqen &= ~BIT(3); ret = ade7759_spi_write_reg_8(dev, ADE7759_IRQEN, irqen); @@ -314,7 +314,7 @@ static int ade7759_stop_device(struct device *dev) return ret; } - val |= 1 << 4; /* AD converters can be turned off */ + val |= BIT(4); /* AD converters can be turned off */ return ade7759_spi_write_reg_16(dev, ADE7759_MODE, val); } diff --git a/drivers/staging/iio/meter/ade7854.c b/drivers/staging/iio/meter/ade7854.c index d620bbd603a3..a83883596dbc 100644 --- a/drivers/staging/iio/meter/ade7854.c +++ b/drivers/staging/iio/meter/ade7854.c @@ -181,7 +181,7 @@ static int ade7854_reset(struct device *dev) u16 val; st->read_reg_16(dev, ADE7854_CONFIG, &val); - val |= 1 << 7; /* Software Chip Reset */ + val |= BIT(7); /* Software Chip Reset */ return st->write_reg_16(dev, ADE7854_CONFIG, val); } @@ -420,10 +420,10 @@ static int ade7854_set_irq(struct device *dev, bool enable) goto error_ret; if (enable) - irqen |= 1 << 17; /* 1: interrupt enabled when all periodical + irqen |= BIT(17); /* 1: interrupt enabled when all periodical (at 8 kHz rate) DSP computations finish. */ else - irqen &= ~(1 << 17); + irqen &= ~BIT(17); ret = st->write_reg_32(dev, ADE7854_MASK0, irqen); if (ret) From afc7da6e486c04244766da9fe2574d972125a602 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:29 +0530 Subject: [PATCH 0561/2431] Staging: iio: addac: Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro. This was done with coccinelle: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Shraddha Barke Signed-off-by: Jonathan Cameron --- drivers/staging/iio/addac/adt7316.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/iio/addac/adt7316.c b/drivers/staging/iio/addac/adt7316.c index 5b11b42c0254..a1dd74525c10 100644 --- a/drivers/staging/iio/addac/adt7316.c +++ b/drivers/staging/iio/addac/adt7316.c @@ -1756,43 +1756,43 @@ static irqreturn_t adt7316_event_handler(int irq, void *private) stat1 &= 0x1F; time = iio_get_time_ns(); - if (stat1 & (1 << 0)) + if (stat1 & BIT(0)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_TEMP, 0, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING), time); - if (stat1 & (1 << 1)) + if (stat1 & BIT(1)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_TEMP, 0, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING), time); - if (stat1 & (1 << 2)) + if (stat1 & BIT(2)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_TEMP, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING), time); - if (stat1 & (1 << 3)) + if (stat1 & BIT(3)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_TEMP, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING), time); - if (stat1 & (1 << 5)) + if (stat1 & BIT(5)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_EITHER), time); - if (stat1 & (1 << 6)) + if (stat1 & BIT(6)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE, 2, IIO_EV_TYPE_THRESH, IIO_EV_DIR_EITHER), time); - if (stat1 & (1 << 7)) + if (stat1 & BIT(7)) iio_push_event(indio_dev, IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE, 3, IIO_EV_TYPE_THRESH, From c3cdd6e48e35b7a02f28e301ef30a87ff3cd6527 Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:08 +0200 Subject: [PATCH 0562/2431] iio: mma8452: refactor for seperating chip specific data This adds a struct mma_chip_info to hold data that will remain specific to the chip in use. It is provided during probe() and linked in struct of_device_id. Also this suggests that the driver is called "mma8452" and now handles the MMA8452Q device, but is not limited to it. Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron --- drivers/iio/accel/mma8452.c | 183 ++++++++++++++++++++++++++---------- 1 file changed, 134 insertions(+), 49 deletions(-) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index b921d84c1be6..f28428faaf14 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -22,6 +22,7 @@ #include #include #include +#include #define MMA8452_STATUS 0x00 #define MMA8452_STATUS_DRDY (BIT(2) | BIT(1) | BIT(0)) @@ -74,6 +75,52 @@ struct mma8452_data { struct mutex lock; u8 ctrl_reg1; u8 data_cfg; + const struct mma_chip_info *chip_info; +}; + +/** + * struct mma_chip_info - chip specific data for Freescale's accelerometers + * @chip_id: WHO_AM_I register's value + * @channels: struct iio_chan_spec matching the device's + * capabilities + * @num_channels: number of channels + * @mma_scales: scale factors for converting register values + * to m/s^2; 3 modes: 2g, 4g, 8g; 2 integers + * per mode: m/s^2 and micro m/s^2 + * @ev_cfg: event config register address + * @ev_cfg_ele: latch bit in event config register + * @ev_cfg_chan_shift: number of the bit to enable events in X + * direction; in event config register + * @ev_src: event source register address + * @ev_src_xe: bit in event source register that indicates + * an event in X direction + * @ev_src_ye: bit in event source register that indicates + * an event in Y direction + * @ev_src_ze: bit in event source register that indicates + * an event in Z direction + * @ev_ths: event threshold register address + * @ev_ths_mask: mask for the threshold value + * @ev_count: event count (period) register address + * + * Since not all chips supported by the driver support comparing high pass + * filtered data for events (interrupts), different interrupt sources are + * used for different chips and the relevant registers are included here. + */ +struct mma_chip_info { + u8 chip_id; + const struct iio_chan_spec *channels; + int num_channels; + const int mma_scales[3][2]; + u8 ev_cfg; + u8 ev_cfg_ele; + u8 ev_cfg_chan_shift; + u8 ev_src; + u8 ev_src_xe; + u8 ev_src_ye; + u8 ev_src_ze; + u8 ev_ths; + u8 ev_ths_mask; + u8 ev_count; }; static int mma8452_drdy(struct mma8452_data *data) @@ -143,16 +190,6 @@ static const int mma8452_samp_freq[8][2] = { {6, 250000}, {1, 560000} }; -/* - * Hardware has fullscale of -2G, -4G, -8G corresponding to raw value -2048 - * The userspace interface uses m/s^2 and we declare micro units - * So scale factor is given by: - * g * N * 1000000 / 2048 for N = 2, 4, 8 and g = 9.80665 - */ -static const int mma8452_scales[3][2] = { - {0, 9577}, {0, 19154}, {0, 38307} -}; - /* Datasheet table 35 (step time vs sample frequency) */ static const int mma8452_transient_time_step_us[8] = { 1250, @@ -189,8 +226,11 @@ static ssize_t mma8452_show_scale_avail(struct device *dev, struct device_attribute *attr, char *buf) { - return mma8452_show_int_plus_micros(buf, mma8452_scales, - ARRAY_SIZE(mma8452_scales)); + struct mma8452_data *data = iio_priv(i2c_get_clientdata( + to_i2c_client(dev))); + + return mma8452_show_int_plus_micros(buf, data->chip_info->mma_scales, + ARRAY_SIZE(data->chip_info->mma_scales)); } static ssize_t mma8452_show_hp_cutoff_avail(struct device *dev, @@ -221,9 +261,8 @@ static int mma8452_get_samp_freq_index(struct mma8452_data *data, static int mma8452_get_scale_index(struct mma8452_data *data, int val, int val2) { - return mma8452_get_int_plus_micros_index(mma8452_scales, - ARRAY_SIZE(mma8452_scales), - val, val2); + return mma8452_get_int_plus_micros_index(data->chip_info->mma_scales, + ARRAY_SIZE(data->chip_info->mma_scales), val, val2); } static int mma8452_get_hp_filter_index(struct mma8452_data *data, @@ -270,14 +309,15 @@ static int mma8452_read_raw(struct iio_dev *indio_dev, if (ret < 0) return ret; - *val = sign_extend32(be16_to_cpu(buffer[chan->scan_index]) >> 4, - 11); + *val = sign_extend32(be16_to_cpu( + buffer[chan->scan_index]) >> chan->scan_type.shift, + chan->scan_type.realbits - 1); return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: i = data->data_cfg & MMA8452_DATA_CFG_FS_MASK; - *val = mma8452_scales[i][0]; - *val2 = mma8452_scales[i][1]; + *val = data->chip_info->mma_scales[i][0]; + *val2 = data->chip_info->mma_scales[i][1]; return IIO_VAL_INT_PLUS_MICRO; case IIO_CHAN_INFO_SAMP_FREQ: @@ -439,17 +479,17 @@ static int mma8452_read_thresh(struct iio_dev *indio_dev, switch (info) { case IIO_EV_INFO_VALUE: ret = i2c_smbus_read_byte_data(data->client, - MMA8452_TRANSIENT_THS); + data->chip_info->ev_ths); if (ret < 0) return ret; - *val = ret & MMA8452_TRANSIENT_THS_MASK; + *val = ret & data->chip_info->ev_ths_mask; return IIO_VAL_INT; case IIO_EV_INFO_PERIOD: ret = i2c_smbus_read_byte_data(data->client, - MMA8452_TRANSIENT_COUNT); + data->chip_info->ev_count); if (ret < 0) return ret; @@ -497,7 +537,8 @@ static int mma8452_write_thresh(struct iio_dev *indio_dev, if (val < 0 || val > MMA8452_TRANSIENT_THS_MASK) return -EINVAL; - return mma8452_change_config(data, MMA8452_TRANSIENT_THS, val); + return mma8452_change_config(data, data->chip_info->ev_ths, + val); case IIO_EV_INFO_PERIOD: steps = (val * USEC_PER_SEC + val2) / @@ -507,7 +548,7 @@ static int mma8452_write_thresh(struct iio_dev *indio_dev, if (steps < 0 || steps > 0xff) return -EINVAL; - return mma8452_change_config(data, MMA8452_TRANSIENT_COUNT, + return mma8452_change_config(data, data->chip_info->ev_count, steps); case IIO_EV_INFO_HIGH_PASS_FILTER_3DB: @@ -538,13 +579,15 @@ static int mma8452_read_event_config(struct iio_dev *indio_dev, enum iio_event_direction dir) { struct mma8452_data *data = iio_priv(indio_dev); + const struct mma_chip_info *chip = data->chip_info; int ret; - ret = i2c_smbus_read_byte_data(data->client, MMA8452_TRANSIENT_CFG); + ret = i2c_smbus_read_byte_data(data->client, + data->chip_info->ev_cfg); if (ret < 0) return ret; - return ret & MMA8452_TRANSIENT_CFG_CHAN(chan->scan_index) ? 1 : 0; + return !!(ret & BIT(chan->scan_index + chip->ev_cfg_chan_shift)); } static int mma8452_write_event_config(struct iio_dev *indio_dev, @@ -554,20 +597,21 @@ static int mma8452_write_event_config(struct iio_dev *indio_dev, int state) { struct mma8452_data *data = iio_priv(indio_dev); + const struct mma_chip_info *chip = data->chip_info; int val; - val = i2c_smbus_read_byte_data(data->client, MMA8452_TRANSIENT_CFG); + val = i2c_smbus_read_byte_data(data->client, chip->ev_cfg); if (val < 0) return val; if (state) - val |= MMA8452_TRANSIENT_CFG_CHAN(chan->scan_index); + val |= BIT(chan->scan_index + chip->ev_cfg_chan_shift); else - val &= ~MMA8452_TRANSIENT_CFG_CHAN(chan->scan_index); + val &= ~BIT(chan->scan_index + chip->ev_cfg_chan_shift); val |= MMA8452_TRANSIENT_CFG_ELE; - return mma8452_change_config(data, MMA8452_TRANSIENT_CFG, val); + return mma8452_change_config(data, chip->ev_cfg, val); } static void mma8452_transient_interrupt(struct iio_dev *indio_dev) @@ -576,25 +620,25 @@ static void mma8452_transient_interrupt(struct iio_dev *indio_dev) s64 ts = iio_get_time_ns(); int src; - src = i2c_smbus_read_byte_data(data->client, MMA8452_TRANSIENT_SRC); + src = i2c_smbus_read_byte_data(data->client, data->chip_info->ev_src); if (src < 0) return; - if (src & MMA8452_TRANSIENT_SRC_XTRANSE) + if (src & data->chip_info->ev_src_xe) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_X, IIO_EV_TYPE_MAG, IIO_EV_DIR_RISING), ts); - if (src & MMA8452_TRANSIENT_SRC_YTRANSE) + if (src & data->chip_info->ev_src_ye) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_Y, IIO_EV_TYPE_MAG, IIO_EV_DIR_RISING), ts); - if (src & MMA8452_TRANSIENT_SRC_ZTRANSE) + if (src & data->chip_info->ev_src_ze) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_Z, IIO_EV_TYPE_MAG, @@ -696,7 +740,7 @@ static struct attribute_group mma8452_event_attribute_group = { .name = "events", }; -#define MMA8452_CHANNEL(axis, idx) { \ +#define MMA8452_CHANNEL(axis, idx, bits) { \ .type = IIO_ACCEL, \ .modified = 1, \ .channel2 = IIO_MOD_##axis, \ @@ -708,9 +752,9 @@ static struct attribute_group mma8452_event_attribute_group = { .scan_index = idx, \ .scan_type = { \ .sign = 's', \ - .realbits = 12, \ + .realbits = (bits), \ .storagebits = 16, \ - .shift = 4, \ + .shift = 16 - (bits), \ .endianness = IIO_BE, \ }, \ .event_spec = mma8452_transient_event, \ @@ -718,12 +762,42 @@ static struct attribute_group mma8452_event_attribute_group = { } static const struct iio_chan_spec mma8452_channels[] = { - MMA8452_CHANNEL(X, 0), - MMA8452_CHANNEL(Y, 1), - MMA8452_CHANNEL(Z, 2), + MMA8452_CHANNEL(X, 0, 12), + MMA8452_CHANNEL(Y, 1, 12), + MMA8452_CHANNEL(Z, 2, 12), IIO_CHAN_SOFT_TIMESTAMP(3), }; +enum { + mma8452, +}; + +static const struct mma_chip_info mma_chip_info_table[] = { + [mma8452] = { + .chip_id = MMA8452_DEVICE_ID, + .channels = mma8452_channels, + .num_channels = ARRAY_SIZE(mma8452_channels), + /* + * Hardware has fullscale of -2G, -4G, -8G corresponding to + * raw value -2048 for 12 bit or -512 for 10 bit. + * The userspace interface uses m/s^2 and we declare micro units + * So scale factor for 12 bit here is given by: + * g * N * 1000000 / 2048 for N = 2, 4, 8 and g=9.80665 + */ + .mma_scales = { {0, 9577}, {0, 19154}, {0, 38307} }, + .ev_cfg = MMA8452_TRANSIENT_CFG, + .ev_cfg_ele = MMA8452_TRANSIENT_CFG_ELE, + .ev_cfg_chan_shift = 1, + .ev_src = MMA8452_TRANSIENT_SRC, + .ev_src_xe = MMA8452_TRANSIENT_SRC_XTRANSE, + .ev_src_ye = MMA8452_TRANSIENT_SRC_YTRANSE, + .ev_src_ze = MMA8452_TRANSIENT_SRC_ZTRANSE, + .ev_ths = MMA8452_TRANSIENT_THS, + .ev_ths_mask = MMA8452_TRANSIENT_THS_MASK, + .ev_count = MMA8452_TRANSIENT_COUNT, + }, +}; + static struct attribute *mma8452_attributes[] = { &iio_dev_attr_sampling_frequency_available.dev_attr.attr, &iio_dev_attr_in_accel_scale_available.dev_attr.attr, @@ -841,12 +915,19 @@ static int mma8452_reset(struct i2c_client *client) return -ETIMEDOUT; } +static const struct of_device_id mma8452_dt_ids[] = { + { .compatible = "fsl,mma8452", .data = &mma_chip_info_table[mma8452] }, + { } +}; +MODULE_DEVICE_TABLE(of, mma8452_dt_ids); + static int mma8452_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct mma8452_data *data; struct iio_dev *indio_dev; int ret; + const struct of_device_id *match; ret = i2c_smbus_read_byte_data(client, MMA8452_WHO_AM_I); if (ret < 0) @@ -854,6 +935,12 @@ static int mma8452_probe(struct i2c_client *client, if (ret != MMA8452_DEVICE_ID) return -ENODEV; + match = of_match_device(mma8452_dt_ids, &client->dev); + if (!match) { + dev_err(&client->dev, "unknown device model\n"); + return -ENODEV; + } + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); if (!indio_dev) return -ENOMEM; @@ -861,14 +948,18 @@ static int mma8452_probe(struct i2c_client *client, data = iio_priv(indio_dev); data->client = client; mutex_init(&data->lock); + data->chip_info = match->data; + + dev_info(&client->dev, "registering %s accelerometer; ID 0x%x\n", + match->compatible, data->chip_info->chip_id); i2c_set_clientdata(client, indio_dev); indio_dev->info = &mma8452_info; indio_dev->name = id->name; indio_dev->dev.parent = &client->dev; indio_dev->modes = INDIO_DIRECT_MODE; - indio_dev->channels = mma8452_channels; - indio_dev->num_channels = ARRAY_SIZE(mma8452_channels); + indio_dev->channels = data->chip_info->channels; + indio_dev->num_channels = data->chip_info->num_channels; indio_dev->available_scan_masks = mma8452_scan_masks; ret = mma8452_reset(client); @@ -987,17 +1078,11 @@ static SIMPLE_DEV_PM_OPS(mma8452_pm_ops, mma8452_suspend, mma8452_resume); #endif static const struct i2c_device_id mma8452_id[] = { - { "mma8452", 0 }, + { "mma8452", mma8452 }, { } }; MODULE_DEVICE_TABLE(i2c, mma8452_id); -static const struct of_device_id mma8452_dt_ids[] = { - { .compatible = "fsl,mma8452" }, - { } -}; -MODULE_DEVICE_TABLE(of, mma8452_dt_ids); - static struct i2c_driver mma8452_driver = { .driver = { .name = "mma8452", From c5ea1b58e8f51d8cd72e46cc398742988a614054 Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:09 +0200 Subject: [PATCH 0563/2431] iio: mma8452: add support for MMA8453Q accelerometer chip This adds support for the 10 bit version if Freescale's accelerometers of this series. The datasheet is available at Freescale's website: http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8453Q.pdf It creates a devicetree bindings file to document the new functionality and removes the driver from the trivial-devices list. Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron --- .../bindings/i2c/trivial-devices.txt | 1 - .../devicetree/bindings/iio/accel/mma8452.txt | 22 +++++++++++ drivers/iio/accel/Kconfig | 6 +-- drivers/iio/accel/mma8452.c | 37 +++++++++++++++++-- 4 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 Documentation/devicetree/bindings/iio/accel/mma8452.txt diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt index af1bc50ecfb1..e1c07dd8792d 100644 --- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt +++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt @@ -54,7 +54,6 @@ epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE fsl,mag3110 MAG3110: Xtrinsic High Accuracy, 3D Magnetometer fsl,mc13892 MC13892: Power Management Integrated Circuit (PMIC) for i.MX35/51 fsl,mma8450 MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer -fsl,mma8452 MMA8452Q: 3-axis 12-bit / 8-bit Digital Accelerometer fsl,mpr121 MPR121: Proximity Capacitive Touch Sensor Controller fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface diff --git a/Documentation/devicetree/bindings/iio/accel/mma8452.txt b/Documentation/devicetree/bindings/iio/accel/mma8452.txt new file mode 100644 index 000000000000..c3bc272e2030 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/accel/mma8452.txt @@ -0,0 +1,22 @@ +Freescale MMA8452Q or MMA8453Q triaxial accelerometer + +Required properties: + + - compatible: should contain one of + * "fsl,mma8452" + * "fsl,mma8453" + - reg: the I2C address of the chip + +Optional properties: + + - interrupt-parent: should be the phandle for the interrupt controller + - interrupts: interrupt mapping for GPIO IRQ + +Example: + + mma8453fc@1d { + compatible = "fsl,mma8453"; + reg = <0x1d>; + interrupt-parent = <&gpio1>; + interrupts = <5 0>; + }; diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index cd5cd246792d..fc53c29f060e 100644 --- a/drivers/iio/accel/Kconfig +++ b/drivers/iio/accel/Kconfig @@ -100,13 +100,13 @@ config KXCJK1013 be called kxcjk-1013. config MMA8452 - tristate "Freescale MMA8452Q Accelerometer Driver" + tristate "Freescale MMA8452Q and similar Accelerometers Driver" depends on I2C select IIO_BUFFER select IIO_TRIGGERED_BUFFER help - Say yes here to build support for the Freescale MMA8452Q 3-axis - accelerometer. + Say yes here to build support for the following Freescale 3-axis + accelerometers: MMA8452Q, MMA8453Q. To compile this driver as a module, choose M here: the module will be called mma8452. diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index f28428faaf14..7b2ab17dfe84 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -1,5 +1,8 @@ /* - * mma8452.c - Support for Freescale MMA8452Q 3-axis 12-bit accelerometer + * mma8452.c - Support for following Freescale 3-axis accelerometers: + * + * MMA8452Q (12 bit) + * MMA8453Q (10 bit) * * Copyright 2014 Peter Meerwald * @@ -26,7 +29,7 @@ #define MMA8452_STATUS 0x00 #define MMA8452_STATUS_DRDY (BIT(2) | BIT(1) | BIT(0)) -#define MMA8452_OUT_X 0x01 /* MSB first, 12-bit */ +#define MMA8452_OUT_X 0x01 /* MSB first */ #define MMA8452_OUT_Y 0x03 #define MMA8452_OUT_Z 0x05 #define MMA8452_INT_SRC 0x0c @@ -69,6 +72,7 @@ #define MMA8452_INT_TRANS BIT(5) #define MMA8452_DEVICE_ID 0x2a +#define MMA8453_DEVICE_ID 0x3a struct mma8452_data { struct i2c_client *client; @@ -768,8 +772,16 @@ static const struct iio_chan_spec mma8452_channels[] = { IIO_CHAN_SOFT_TIMESTAMP(3), }; +static const struct iio_chan_spec mma8453_channels[] = { + MMA8452_CHANNEL(X, 0, 10), + MMA8452_CHANNEL(Y, 1, 10), + MMA8452_CHANNEL(Z, 2, 10), + IIO_CHAN_SOFT_TIMESTAMP(3), +}; + enum { mma8452, + mma8453, }; static const struct mma_chip_info mma_chip_info_table[] = { @@ -796,6 +808,22 @@ static const struct mma_chip_info mma_chip_info_table[] = { .ev_ths_mask = MMA8452_TRANSIENT_THS_MASK, .ev_count = MMA8452_TRANSIENT_COUNT, }, + [mma8453] = { + .chip_id = MMA8453_DEVICE_ID, + .channels = mma8453_channels, + .num_channels = ARRAY_SIZE(mma8453_channels), + .mma_scales = { {0, 38307}, {0, 76614}, {0, 153228} }, + .ev_cfg = MMA8452_TRANSIENT_CFG, + .ev_cfg_ele = MMA8452_TRANSIENT_CFG_ELE, + .ev_cfg_chan_shift = 1, + .ev_src = MMA8452_TRANSIENT_SRC, + .ev_src_xe = MMA8452_TRANSIENT_SRC_XTRANSE, + .ev_src_ye = MMA8452_TRANSIENT_SRC_YTRANSE, + .ev_src_ze = MMA8452_TRANSIENT_SRC_ZTRANSE, + .ev_ths = MMA8452_TRANSIENT_THS, + .ev_ths_mask = MMA8452_TRANSIENT_THS_MASK, + .ev_count = MMA8452_TRANSIENT_COUNT, + }, }; static struct attribute *mma8452_attributes[] = { @@ -917,6 +945,7 @@ static int mma8452_reset(struct i2c_client *client) static const struct of_device_id mma8452_dt_ids[] = { { .compatible = "fsl,mma8452", .data = &mma_chip_info_table[mma8452] }, + { .compatible = "fsl,mma8453", .data = &mma_chip_info_table[mma8453] }, { } }; MODULE_DEVICE_TABLE(of, mma8452_dt_ids); @@ -932,7 +961,8 @@ static int mma8452_probe(struct i2c_client *client, ret = i2c_smbus_read_byte_data(client, MMA8452_WHO_AM_I); if (ret < 0) return ret; - if (ret != MMA8452_DEVICE_ID) + + if (ret != MMA8452_DEVICE_ID && ret != MMA8453_DEVICE_ID) return -ENODEV; match = of_match_device(mma8452_dt_ids, &client->dev); @@ -1079,6 +1109,7 @@ static SIMPLE_DEV_PM_OPS(mma8452_pm_ops, mma8452_suspend, mma8452_resume); static const struct i2c_device_id mma8452_id[] = { { "mma8452", mma8452 }, + { "mma8453", mma8453 }, { } }; MODULE_DEVICE_TABLE(i2c, mma8452_id); From 60f562e74e75716cc121cc7adb2dcb43c17709bf Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:10 +0200 Subject: [PATCH 0564/2431] iio: mma8452: add freefall / motion interrupt source This adds the freefall / motion interrupt source definitions to the driver. It is used in this series' next patch, for chips that don't support the transient interrupt source. Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron --- drivers/iio/accel/mma8452.c | 44 ++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 7b2ab17dfe84..6b1a8629505a 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -42,6 +42,16 @@ #define MMA8452_DATA_CFG_HPF_MASK BIT(4) #define MMA8452_HP_FILTER_CUTOFF 0x0f #define MMA8452_HP_FILTER_CUTOFF_SEL_MASK GENMASK(1, 0) +#define MMA8452_FF_MT_CFG 0x15 +#define MMA8452_FF_MT_CFG_OAE BIT(6) +#define MMA8452_FF_MT_CFG_ELE BIT(7) +#define MMA8452_FF_MT_SRC 0x16 +#define MMA8452_FF_MT_SRC_XHE BIT(1) +#define MMA8452_FF_MT_SRC_YHE BIT(3) +#define MMA8452_FF_MT_SRC_ZHE BIT(5) +#define MMA8452_FF_MT_THS 0x17 +#define MMA8452_FF_MT_THS_MASK 0x7f +#define MMA8452_FF_MT_COUNT 0x18 #define MMA8452_TRANSIENT_CFG 0x1d #define MMA8452_TRANSIENT_CFG_HPF_BYP BIT(0) #define MMA8452_TRANSIENT_CFG_CHAN(chan) BIT(chan + 1) @@ -69,6 +79,7 @@ #define MMA8452_MAX_REG 0x31 #define MMA8452_INT_DRDY BIT(0) +#define MMA8452_INT_FF_MT BIT(2) #define MMA8452_INT_TRANS BIT(5) #define MMA8452_DEVICE_ID 0x2a @@ -613,7 +624,8 @@ static int mma8452_write_event_config(struct iio_dev *indio_dev, else val &= ~BIT(chan->scan_index + chip->ev_cfg_chan_shift); - val |= MMA8452_TRANSIENT_CFG_ELE; + val |= chip->ev_cfg_ele; + val |= MMA8452_FF_MT_CFG_OAE; return mma8452_change_config(data, chip->ev_cfg, val); } @@ -654,6 +666,7 @@ static irqreturn_t mma8452_interrupt(int irq, void *p) { struct iio_dev *indio_dev = p; struct mma8452_data *data = iio_priv(indio_dev); + const struct mma_chip_info *chip = data->chip_info; int ret = IRQ_NONE; int src; @@ -666,7 +679,10 @@ static irqreturn_t mma8452_interrupt(int irq, void *p) ret = IRQ_HANDLED; } - if (src & MMA8452_INT_TRANS) { + if ((src & MMA8452_INT_TRANS && + chip->ev_src == MMA8452_TRANSIENT_SRC) || + (src & MMA8452_INT_FF_MT && + chip->ev_src == MMA8452_FF_MT_SRC)) { mma8452_transient_interrupt(indio_dev); ret = IRQ_HANDLED; } @@ -728,6 +744,16 @@ static const struct iio_event_spec mma8452_transient_event[] = { }, }; +static const struct iio_event_spec mma8452_motion_event[] = { + { + .type = IIO_EV_TYPE_MAG, + .dir = IIO_EV_DIR_RISING, + .mask_separate = BIT(IIO_EV_INFO_ENABLE), + .mask_shared_by_type = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_PERIOD) + }, +}; + /* * Threshold is configured in fixed 8G/127 steps regardless of * currently selected scale for measurement. @@ -1013,13 +1039,15 @@ static int mma8452_probe(struct i2c_client *client, if (client->irq) { /* - * Although we enable the transient interrupt source once and - * for all here the transient event detection itself is not - * enabled until userspace asks for it by - * mma8452_write_event_config() + * Although we enable the interrupt sources once and for + * all here the event detection itself is not enabled until + * userspace asks for it by mma8452_write_event_config() */ - int supported_interrupts = MMA8452_INT_DRDY | MMA8452_INT_TRANS; - int enabled_interrupts = MMA8452_INT_TRANS; + int supported_interrupts = MMA8452_INT_DRDY | + MMA8452_INT_TRANS | + MMA8452_INT_FF_MT; + int enabled_interrupts = MMA8452_INT_TRANS | + MMA8452_INT_FF_MT; /* Assume wired to INT1 pin */ ret = i2c_smbus_write_byte_data(client, From 417e008ba9db7ce4b4e48131c6f69829e9886b3e Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:11 +0200 Subject: [PATCH 0565/2431] iio: mma8452: add support for MMA8652FC and MMA8653FC MMA8652FC and MMA8653FC don't provide the transient interrupt source, so the motion interrupt source is used by providing a new iio_chan_spec definition, so that other supported devices are not affected by this. Datasheets for the newly supported devices are available at Freescale's website: http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8652FC.pdf http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8653FC.pdf Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron --- .../devicetree/bindings/iio/accel/mma8452.txt | 4 +- drivers/iio/accel/Kconfig | 2 +- drivers/iio/accel/mma8452.c | 98 +++++++++++++++++-- 3 files changed, 95 insertions(+), 9 deletions(-) diff --git a/Documentation/devicetree/bindings/iio/accel/mma8452.txt b/Documentation/devicetree/bindings/iio/accel/mma8452.txt index c3bc272e2030..e3c37467d7da 100644 --- a/Documentation/devicetree/bindings/iio/accel/mma8452.txt +++ b/Documentation/devicetree/bindings/iio/accel/mma8452.txt @@ -1,10 +1,12 @@ -Freescale MMA8452Q or MMA8453Q triaxial accelerometer +Freescale MMA8452Q, MMA8453Q, MMA8652FC or MMA8653FC triaxial accelerometer Required properties: - compatible: should contain one of * "fsl,mma8452" * "fsl,mma8453" + * "fsl,mma8652" + * "fsl,mma8653" - reg: the I2C address of the chip Optional properties: diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index fc53c29f060e..8172ae5c3d0d 100644 --- a/drivers/iio/accel/Kconfig +++ b/drivers/iio/accel/Kconfig @@ -106,7 +106,7 @@ config MMA8452 select IIO_TRIGGERED_BUFFER help Say yes here to build support for the following Freescale 3-axis - accelerometers: MMA8452Q, MMA8453Q. + accelerometers: MMA8452Q, MMA8453Q, MMA8652FC, MMA8653FC. To compile this driver as a module, choose M here: the module will be called mma8452. diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 6b1a8629505a..59b44558d9d0 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -3,6 +3,8 @@ * * MMA8452Q (12 bit) * MMA8453Q (10 bit) + * MMA8652FC (12 bit) + * MMA8653FC (10 bit) * * Copyright 2014 Peter Meerwald * @@ -84,6 +86,8 @@ #define MMA8452_DEVICE_ID 0x2a #define MMA8453_DEVICE_ID 0x3a +#define MMA8652_DEVICE_ID 0x4a +#define MMA8653_DEVICE_ID 0x5a struct mma8452_data { struct i2c_client *client; @@ -791,6 +795,26 @@ static struct attribute_group mma8452_event_attribute_group = { .num_event_specs = ARRAY_SIZE(mma8452_transient_event), \ } +#define MMA8652_CHANNEL(axis, idx, bits) { \ + .type = IIO_ACCEL, \ + .modified = 1, \ + .channel2 = IIO_MOD_##axis, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \ + BIT(IIO_CHAN_INFO_CALIBBIAS), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SAMP_FREQ) | \ + BIT(IIO_CHAN_INFO_SCALE), \ + .scan_index = idx, \ + .scan_type = { \ + .sign = 's', \ + .realbits = (bits), \ + .storagebits = 16, \ + .shift = 16 - (bits), \ + .endianness = IIO_BE, \ + }, \ + .event_spec = mma8452_motion_event, \ + .num_event_specs = ARRAY_SIZE(mma8452_motion_event), \ +} + static const struct iio_chan_spec mma8452_channels[] = { MMA8452_CHANNEL(X, 0, 12), MMA8452_CHANNEL(Y, 1, 12), @@ -805,9 +829,25 @@ static const struct iio_chan_spec mma8453_channels[] = { IIO_CHAN_SOFT_TIMESTAMP(3), }; +static const struct iio_chan_spec mma8652_channels[] = { + MMA8652_CHANNEL(X, 0, 12), + MMA8652_CHANNEL(Y, 1, 12), + MMA8652_CHANNEL(Z, 2, 12), + IIO_CHAN_SOFT_TIMESTAMP(3), +}; + +static const struct iio_chan_spec mma8653_channels[] = { + MMA8652_CHANNEL(X, 0, 10), + MMA8652_CHANNEL(Y, 1, 10), + MMA8652_CHANNEL(Z, 2, 10), + IIO_CHAN_SOFT_TIMESTAMP(3), +}; + enum { mma8452, mma8453, + mma8652, + mma8653, }; static const struct mma_chip_info mma_chip_info_table[] = { @@ -850,6 +890,38 @@ static const struct mma_chip_info mma_chip_info_table[] = { .ev_ths_mask = MMA8452_TRANSIENT_THS_MASK, .ev_count = MMA8452_TRANSIENT_COUNT, }, + [mma8652] = { + .chip_id = MMA8652_DEVICE_ID, + .channels = mma8652_channels, + .num_channels = ARRAY_SIZE(mma8652_channels), + .mma_scales = { {0, 9577}, {0, 19154}, {0, 38307} }, + .ev_cfg = MMA8452_FF_MT_CFG, + .ev_cfg_ele = MMA8452_FF_MT_CFG_ELE, + .ev_cfg_chan_shift = 3, + .ev_src = MMA8452_FF_MT_SRC, + .ev_src_xe = MMA8452_FF_MT_SRC_XHE, + .ev_src_ye = MMA8452_FF_MT_SRC_YHE, + .ev_src_ze = MMA8452_FF_MT_SRC_ZHE, + .ev_ths = MMA8452_FF_MT_THS, + .ev_ths_mask = MMA8452_FF_MT_THS_MASK, + .ev_count = MMA8452_FF_MT_COUNT, + }, + [mma8653] = { + .chip_id = MMA8653_DEVICE_ID, + .channels = mma8653_channels, + .num_channels = ARRAY_SIZE(mma8653_channels), + .mma_scales = { {0, 38307}, {0, 76614}, {0, 153228} }, + .ev_cfg = MMA8452_FF_MT_CFG, + .ev_cfg_ele = MMA8452_FF_MT_CFG_ELE, + .ev_cfg_chan_shift = 3, + .ev_src = MMA8452_FF_MT_SRC, + .ev_src_xe = MMA8452_FF_MT_SRC_XHE, + .ev_src_ye = MMA8452_FF_MT_SRC_YHE, + .ev_src_ze = MMA8452_FF_MT_SRC_ZHE, + .ev_ths = MMA8452_FF_MT_THS, + .ev_ths_mask = MMA8452_FF_MT_THS_MASK, + .ev_count = MMA8452_FF_MT_COUNT, + }, }; static struct attribute *mma8452_attributes[] = { @@ -972,6 +1044,8 @@ static int mma8452_reset(struct i2c_client *client) static const struct of_device_id mma8452_dt_ids[] = { { .compatible = "fsl,mma8452", .data = &mma_chip_info_table[mma8452] }, { .compatible = "fsl,mma8453", .data = &mma_chip_info_table[mma8453] }, + { .compatible = "fsl,mma8652", .data = &mma_chip_info_table[mma8652] }, + { .compatible = "fsl,mma8653", .data = &mma_chip_info_table[mma8653] }, { } }; MODULE_DEVICE_TABLE(of, mma8452_dt_ids); @@ -984,13 +1058,6 @@ static int mma8452_probe(struct i2c_client *client, int ret; const struct of_device_id *match; - ret = i2c_smbus_read_byte_data(client, MMA8452_WHO_AM_I); - if (ret < 0) - return ret; - - if (ret != MMA8452_DEVICE_ID && ret != MMA8453_DEVICE_ID) - return -ENODEV; - match = of_match_device(mma8452_dt_ids, &client->dev); if (!match) { dev_err(&client->dev, "unknown device model\n"); @@ -1006,6 +1073,21 @@ static int mma8452_probe(struct i2c_client *client, mutex_init(&data->lock); data->chip_info = match->data; + ret = i2c_smbus_read_byte_data(client, MMA8452_WHO_AM_I); + if (ret < 0) + return ret; + + switch (ret) { + case MMA8452_DEVICE_ID: + case MMA8453_DEVICE_ID: + case MMA8652_DEVICE_ID: + case MMA8653_DEVICE_ID: + if (ret == data->chip_info->chip_id) + break; + default: + return -ENODEV; + } + dev_info(&client->dev, "registering %s accelerometer; ID 0x%x\n", match->compatible, data->chip_info->chip_id); @@ -1138,6 +1220,8 @@ static SIMPLE_DEV_PM_OPS(mma8452_pm_ops, mma8452_suspend, mma8452_resume); static const struct i2c_device_id mma8452_id[] = { { "mma8452", mma8452 }, { "mma8453", mma8453 }, + { "mma8652", mma8652 }, + { "mma8653", mma8653 }, { } }; MODULE_DEVICE_TABLE(i2c, mma8452_id); From d6223c3737bd9680f1fb6c058bdfca41ee24e2da Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:12 +0200 Subject: [PATCH 0566/2431] iio: mma8452: add copyright notice comment Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron --- drivers/iio/accel/mma8452.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 59b44558d9d0..15d50c9845f9 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -6,6 +6,7 @@ * MMA8652FC (12 bit) * MMA8653FC (10 bit) * + * Copyright 2015 Martin Kepplinger * Copyright 2014 Peter Meerwald * * This file is subject to the terms and conditions of version 2 of From b2a768949c4906d87fd0c65b39752e599b5a1860 Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:13 +0200 Subject: [PATCH 0567/2431] iio: mma8452: leave sysfs namings to the iio core This doesn't actually change anything since the core names the sysfs folder for the iio event attributes "events" anyways. It only leaves the job to the core. Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron --- drivers/iio/accel/mma8452.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 15d50c9845f9..1eccc2dcf14c 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -772,7 +772,6 @@ static struct attribute *mma8452_event_attributes[] = { static struct attribute_group mma8452_event_attribute_group = { .attrs = mma8452_event_attributes, - .name = "events", }; #define MMA8452_CHANNEL(axis, idx, bits) { \ From e09f56f3f09638a0f0120be81352378ed1727431 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 17 Sep 2015 19:02:32 +0200 Subject: [PATCH 0568/2431] iio: dac: max5821: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Jonathan Cameron --- drivers/iio/dac/max5821.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/dac/max5821.c b/drivers/iio/dac/max5821.c index 28b8748ea824..86e9e112f554 100644 --- a/drivers/iio/dac/max5821.c +++ b/drivers/iio/dac/max5821.c @@ -387,6 +387,7 @@ static const struct of_device_id max5821_of_match[] = { { .compatible = "maxim,max5821" }, { } }; +MODULE_DEVICE_TABLE(of, max5821_of_match); static struct i2c_driver max5821_driver = { .driver = { From 0df5a5488b6d157eabfdc0747c87c08bd7431a56 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 17 Sep 2015 19:02:00 +0200 Subject: [PATCH 0569/2431] iio: adc: twl6030-gpadc: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Jonathan Cameron --- drivers/iio/adc/twl6030-gpadc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/adc/twl6030-gpadc.c b/drivers/iio/adc/twl6030-gpadc.c index df12c57e6ce0..becbb0aef232 100644 --- a/drivers/iio/adc/twl6030-gpadc.c +++ b/drivers/iio/adc/twl6030-gpadc.c @@ -875,6 +875,7 @@ static const struct of_device_id of_twl6030_match_tbl[] = { }, { /* end */ } }; +MODULE_DEVICE_TABLE(of, of_twl6030_match_tbl); static int twl6030_gpadc_probe(struct platform_device *pdev) { From 8ff6b3bc9493089247e012a9fcba7198e194b4a5 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 13 Sep 2015 20:26:11 -0700 Subject: [PATCH 0570/2431] iio: chemical: Add IIO_CONCENTRATION channel type There are air quality sensors that report data back in parts per million of VOC (Volatile Organic Compounds) which are usually indexed from CO2 or another common pollutant. This patchset adds an IIO_CONCENTRATION type that returns a percentage of substance because no other channels types fit this use case. Modifiers for IIO_MOD_CO2 and IIO_MOD_VOC gas types are defined. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- Documentation/ABI/testing/sysfs-bus-iio | 11 +++++++++++ drivers/iio/industrialio-core.c | 3 +++ include/uapi/linux/iio/types.h | 3 +++ 3 files changed, 17 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 20312a0e8197..08903b940957 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio @@ -1460,3 +1460,14 @@ Description: measurements and return the average value as output data. Each value resulted from [_name]_oversampling_ratio measurements is considered as one sample for [_name]_sampling_frequency. + +What: /sys/bus/iio/devices/iio:deviceX/in_concentration_raw +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_raw +What: /sys/bus/iio/devices/iio:deviceX/in_concentration_co2_raw +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_co2_raw +What: /sys/bus/iio/devices/iio:deviceX/in_concentration_voc_raw +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_voc_raw +KernelVersion: 4.3 +Contact: linux-iio@vger.kernel.org +Description: + Raw (unscaled no offset etc.) percentage reading of a substance. diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index bef690ed0480..ee09a945a2c7 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -75,6 +75,7 @@ static const char * const iio_chan_type_name_spec[] = { [IIO_ENERGY] = "energy", [IIO_DISTANCE] = "distance", [IIO_VELOCITY] = "velocity", + [IIO_CONCENTRATION] = "concentration", }; static const char * const iio_modifier_names[] = { @@ -111,6 +112,8 @@ static const char * const iio_modifier_names[] = { [IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z] = "sqrt(x^2+y^2+z^2)", [IIO_MOD_I] = "i", [IIO_MOD_Q] = "q", + [IIO_MOD_CO2] = "co2", + [IIO_MOD_VOC] = "voc", }; /* relies on pairs of these shared then separate */ diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h index 2f8b11722204..1e4c4e346ffb 100644 --- a/include/uapi/linux/iio/types.h +++ b/include/uapi/linux/iio/types.h @@ -35,6 +35,7 @@ enum iio_chan_type { IIO_ENERGY, IIO_DISTANCE, IIO_VELOCITY, + IIO_CONCENTRATION, }; enum iio_modifier { @@ -72,6 +73,8 @@ enum iio_modifier { IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z, IIO_MOD_I, IIO_MOD_Q, + IIO_MOD_CO2, + IIO_MOD_VOC, }; enum iio_event_type { From d38d54692d454e4dded125677e39f53514dc4277 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 13 Sep 2015 20:26:12 -0700 Subject: [PATCH 0571/2431] iio: resistance: add IIO_RESISTANCE channel type Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- Documentation/ABI/testing/sysfs-bus-iio | 8 ++++++++ drivers/iio/industrialio-core.c | 1 + include/uapi/linux/iio/types.h | 1 + 3 files changed, 10 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 08903b940957..8ce14c85156d 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio @@ -1471,3 +1471,11 @@ KernelVersion: 4.3 Contact: linux-iio@vger.kernel.org Description: Raw (unscaled no offset etc.) percentage reading of a substance. + +What: /sys/bus/iio/devices/iio:deviceX/in_resistance_raw +What: /sys/bus/iio/devices/iio:deviceX/in_resistanceX_raw +KernelVersion: 4.3 +Contact: linux-iio@vger.kernel.org +Description: + Raw (unscaled no offset etc.) resistance reading that can be processed + into an ohm value. diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index ee09a945a2c7..208358f9e7e3 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -76,6 +76,7 @@ static const char * const iio_chan_type_name_spec[] = { [IIO_DISTANCE] = "distance", [IIO_VELOCITY] = "velocity", [IIO_CONCENTRATION] = "concentration", + [IIO_RESISTANCE] = "resistance", }; static const char * const iio_modifier_names[] = { diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h index 1e4c4e346ffb..7c63bd67c36e 100644 --- a/include/uapi/linux/iio/types.h +++ b/include/uapi/linux/iio/types.h @@ -36,6 +36,7 @@ enum iio_chan_type { IIO_DISTANCE, IIO_VELOCITY, IIO_CONCENTRATION, + IIO_RESISTANCE, }; enum iio_modifier { From 9bff3131cfb30ef761adfad08c4a0a1b7faf1e20 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 13 Sep 2015 20:26:13 -0700 Subject: [PATCH 0572/2431] devicetree: add SGX Sensortech vendor id Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 341695b1eb2f..d5915611036b 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -183,6 +183,7 @@ sbs Smart Battery System schindler Schindler seagate Seagate Technology PLC semtech Semtech Corporation +sgx SGX Sensortech sil Silicon Image silabs Silicon Laboratories siliconmitus Silicon Mitus, Inc. From cd8d97774f23c601d0ed66b5035bcc77dd665b10 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 13 Sep 2015 20:26:14 -0700 Subject: [PATCH 0573/2431] iio: chemical: add SGX VZ89x VOC sensor support Add support for VZ89X sensors VOC and CO2 reporting channels in percentage which can be converted to part per million. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- .../ABI/testing/sysfs-bus-iio-chemical-vz89x | 7 + .../bindings/i2c/trivial-devices.txt | 1 + drivers/iio/Kconfig | 1 + drivers/iio/Makefile | 1 + drivers/iio/chemical/Kconfig | 15 ++ drivers/iio/chemical/Makefile | 6 + drivers/iio/chemical/vz89x.c | 237 ++++++++++++++++++ 7 files changed, 268 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-chemical-vz89x create mode 100644 drivers/iio/chemical/Kconfig create mode 100644 drivers/iio/chemical/Makefile create mode 100644 drivers/iio/chemical/vz89x.c diff --git a/Documentation/ABI/testing/sysfs-bus-iio-chemical-vz89x b/Documentation/ABI/testing/sysfs-bus-iio-chemical-vz89x new file mode 100644 index 000000000000..c0c1ea924535 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-iio-chemical-vz89x @@ -0,0 +1,7 @@ +What: /sys/bus/iio/devices/iio:deviceX/in_concentration_VOC_short_raw +Date: September 2015 +KernelVersion: 4.3 +Contact: Matt Ranostay +Description: + Get the raw calibration VOC value from the sensor. + This value has little application outside of calibration. diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt index e1c07dd8792d..ed7ef4684aa3 100644 --- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt +++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt @@ -88,6 +88,7 @@ ricoh,rs5c372b I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC ricoh,rv5c386 I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC ricoh,rv5c387a I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC samsung,24ad0xd1 S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power) +sgx,vz89x SGX Sensortech VZ89X Sensors sii,s35390a 2-wire CMOS real-time clock skyworks,sky81452 Skyworks SKY81452: Six-Channel White LED Driver with Touch Panel Bias Supply st-micro,24c256 i2c serial eeprom (24cxx) diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index 6fe0d6524c9c..119c94df2b9e 100644 --- a/drivers/iio/Kconfig +++ b/drivers/iio/Kconfig @@ -47,6 +47,7 @@ config IIO_TRIGGERED_EVENT source "drivers/iio/accel/Kconfig" source "drivers/iio/adc/Kconfig" source "drivers/iio/amplifiers/Kconfig" +source "drivers/iio/chemical/Kconfig" source "drivers/iio/common/Kconfig" source "drivers/iio/dac/Kconfig" source "drivers/iio/frequency/Kconfig" diff --git a/drivers/iio/Makefile b/drivers/iio/Makefile index 40995f366843..e2100554e3b4 100644 --- a/drivers/iio/Makefile +++ b/drivers/iio/Makefile @@ -13,6 +13,7 @@ obj-y += accel/ obj-y += adc/ obj-y += amplifiers/ obj-y += buffer/ +obj-y += chemical/ obj-y += common/ obj-y += dac/ obj-y += gyro/ diff --git a/drivers/iio/chemical/Kconfig b/drivers/iio/chemical/Kconfig new file mode 100644 index 000000000000..3061b7299f0f --- /dev/null +++ b/drivers/iio/chemical/Kconfig @@ -0,0 +1,15 @@ +# +# Chemical sensors +# + +menu "Chemical Sensors" + +config VZ89X + tristate "SGX Sensortech MiCS VZ89X VOC sensor" + depends on I2C + help + Say Y here to build I2C interface support for the SGX + Sensortech MiCS VZ89X VOC (Volatile Organic Compounds) + sensors + +endmenu diff --git a/drivers/iio/chemical/Makefile b/drivers/iio/chemical/Makefile new file mode 100644 index 000000000000..7292f2ded587 --- /dev/null +++ b/drivers/iio/chemical/Makefile @@ -0,0 +1,6 @@ +# +# Makefile for IIO chemical sensors +# + +# When adding new entries keep the list in alphabetical order +obj-$(CONFIG_VZ89X) += vz89x.o diff --git a/drivers/iio/chemical/vz89x.c b/drivers/iio/chemical/vz89x.c new file mode 100644 index 000000000000..b45420039ca2 --- /dev/null +++ b/drivers/iio/chemical/vz89x.c @@ -0,0 +1,237 @@ +/* + * vz89x.c - Support for SGX Sensortech MiCS VZ89X VOC sensors + * + * Copyright (C) 2015 Matt Ranostay + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include + +#include +#include + +#define VZ89X_REG_MEASUREMENT 0x09 +#define VZ89X_REG_MEASUREMENT_SIZE 6 + +#define VZ89X_VOC_CO2_IDX 0 +#define VZ89X_VOC_SHORT_IDX 1 +#define VZ89X_VOC_TVOC_IDX 2 +#define VZ89X_VOC_RESISTANCE_IDX 3 + +struct vz89x_data { + struct i2c_client *client; + struct mutex lock; + unsigned long last_update; + + u8 buffer[VZ89X_REG_MEASUREMENT_SIZE]; +}; + +static const struct iio_chan_spec vz89x_channels[] = { + { + .type = IIO_CONCENTRATION, + .channel2 = IIO_MOD_CO2, + .modified = 1, + .info_mask_separate = + BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_RAW), + .address = VZ89X_VOC_CO2_IDX, + }, + { + .type = IIO_CONCENTRATION, + .channel2 = IIO_MOD_VOC, + .modified = 1, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), + .address = VZ89X_VOC_SHORT_IDX, + .extend_name = "short", + }, + { + .type = IIO_CONCENTRATION, + .channel2 = IIO_MOD_VOC, + .modified = 1, + .info_mask_separate = + BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_RAW), + .address = VZ89X_VOC_TVOC_IDX, + }, + { + .type = IIO_RESISTANCE, + .info_mask_separate = + BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE), + .address = VZ89X_VOC_RESISTANCE_IDX, + }, +}; + +static IIO_CONST_ATTR(in_concentration_co2_scale, "0.00000698689"); +static IIO_CONST_ATTR(in_concentration_voc_scale, "0.00000000436681223"); + +static struct attribute *vz89x_attributes[] = { + &iio_const_attr_in_concentration_co2_scale.dev_attr.attr, + &iio_const_attr_in_concentration_voc_scale.dev_attr.attr, + NULL, +}; + +static const struct attribute_group vz89x_attrs_group = { + .attrs = vz89x_attributes, +}; + +static int vz89x_get_measurement(struct vz89x_data *data) +{ + int ret; + int i; + + /* sensor can only be polled once a second max per datasheet */ + if (!time_after(jiffies, data->last_update + HZ)) + return 0; + + ret = i2c_smbus_write_word_data(data->client, + VZ89X_REG_MEASUREMENT, 0); + if (ret < 0) + return ret; + + for (i = 0; i < VZ89X_REG_MEASUREMENT_SIZE; i++) { + ret = i2c_smbus_read_byte(data->client); + if (ret < 0) + return ret; + data->buffer[i] = ret; + } + + data->last_update = jiffies; + + return 0; +} + +static int vz89x_get_resistance_reading(struct vz89x_data *data) +{ + u8 *buf = &data->buffer[VZ89X_VOC_TVOC_IDX]; + + return buf[0] | (buf[1] << 8) | (buf[2] << 16); +} + +static int vz89x_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, int *val, + int *val2, long mask) +{ + struct vz89x_data *data = iio_priv(indio_dev); + int ret = -EINVAL; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + mutex_lock(&data->lock); + ret = vz89x_get_measurement(data); + mutex_unlock(&data->lock); + + if (ret) + return ret; + + switch (chan->address) { + case VZ89X_VOC_CO2_IDX: + case VZ89X_VOC_SHORT_IDX: + case VZ89X_VOC_TVOC_IDX: + *val = data->buffer[chan->address]; + return IIO_VAL_INT; + case VZ89X_VOC_RESISTANCE_IDX: + *val = vz89x_get_resistance_reading(data); + return IIO_VAL_INT; + default: + return -EINVAL; + } + break; + case IIO_CHAN_INFO_SCALE: + switch (chan->type) { + case IIO_RESISTANCE: + *val = 10; + return IIO_VAL_INT; + default: + return -EINVAL; + } + break; + case IIO_CHAN_INFO_OFFSET: + switch (chan->address) { + case VZ89X_VOC_CO2_IDX: + *val = 44; + *val2 = 250000; + return IIO_VAL_INT_PLUS_MICRO; + case VZ89X_VOC_TVOC_IDX: + *val = -13; + return IIO_VAL_INT; + default: + return -EINVAL; + } + } + + return ret; +} + +static const struct iio_info vz89x_info = { + .attrs = &vz89x_attrs_group, + .read_raw = vz89x_read_raw, + .driver_module = THIS_MODULE, +}; + +static int vz89x_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct iio_dev *indio_dev; + struct vz89x_data *data; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA | + I2C_FUNC_SMBUS_BYTE)) + return -ENODEV; + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); + if (!indio_dev) + return -ENOMEM; + + data = iio_priv(indio_dev); + i2c_set_clientdata(client, indio_dev); + data->client = client; + data->last_update = jiffies - HZ; + mutex_init(&data->lock); + + indio_dev->dev.parent = &client->dev; + indio_dev->info = &vz89x_info, + indio_dev->name = dev_name(&client->dev); + indio_dev->modes = INDIO_DIRECT_MODE; + + indio_dev->channels = vz89x_channels; + indio_dev->num_channels = ARRAY_SIZE(vz89x_channels); + + return devm_iio_device_register(&client->dev, indio_dev); +} + +static const struct i2c_device_id vz89x_id[] = { + { "vz89x", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, vz89x_id); + +static const struct of_device_id vz89x_dt_ids[] = { + { .compatible = "sgx,vz89x" }, + { } +}; +MODULE_DEVICE_TABLE(of, vz89x_dt_ids); + +static struct i2c_driver vz89x_driver = { + .driver = { + .name = "vz89x", + .of_match_table = of_match_ptr(vz89x_dt_ids), + }, + .probe = vz89x_probe, + .id_table = vz89x_id, +}; +module_i2c_driver(vz89x_driver); + +MODULE_AUTHOR("Matt Ranostay "); +MODULE_DESCRIPTION("SGX Sensortech MiCS VZ89X VOC sensors"); +MODULE_LICENSE("GPL v2"); From fd2bb310ca3d3621a0f201e018e1292dca95df6e Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Fri, 11 Sep 2015 16:59:30 +0300 Subject: [PATCH 0574/2431] Staging: iio: Move evgen interrupt generation to irq_work Enhance interrupt generation in the dummy driver and expand its usage by introducing the irq_work infrastructure to trigger an interrupt. This way, the irq_work_queue() wrapper permits calling both of the top half and threaded part from a hard irq context, unlike handle_nested_irq(), which only calls the threaded part. As an outcome, the driver succeeds in simulating real hardware interrupts, while keeping the normal interrupt flow. Signed-off-by: Cristina Opriceana Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron --- drivers/staging/iio/iio_dummy_evgen.c | 26 ++++++++++++++++++- drivers/staging/iio/iio_simple_dummy.h | 1 + drivers/staging/iio/iio_simple_dummy_events.c | 19 ++++++++++---- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/drivers/staging/iio/iio_dummy_evgen.c b/drivers/staging/iio/iio_dummy_evgen.c index 6d38854c38c8..86d8447ac08f 100644 --- a/drivers/staging/iio/iio_dummy_evgen.c +++ b/drivers/staging/iio/iio_dummy_evgen.c @@ -24,9 +24,21 @@ #include "iio_dummy_evgen.h" #include #include +#include /* Fiddly bit of faking and irq without hardware */ #define IIO_EVENTGEN_NO 10 + +/** + * struct iio_dummy_handle_irq - helper struct to simulate interrupt generation + * @work: irq_work used to run handlers from hardirq context + * @irq: fake irq line number to trigger an interrupt + */ +struct iio_dummy_handle_irq { + struct irq_work work; + int irq; +}; + /** * struct iio_dummy_evgen - evgen state * @chip: irq chip we are faking @@ -35,6 +47,7 @@ * @inuse: mask of which irqs are connected * @regs: irq regs we are faking * @lock: protect the evgen state + * @handler: helper for a 'hardware-like' interrupt simulation */ struct iio_dummy_eventgen { struct irq_chip chip; @@ -43,6 +56,7 @@ struct iio_dummy_eventgen { bool inuse[IIO_EVENTGEN_NO]; struct iio_dummy_regs regs[IIO_EVENTGEN_NO]; struct mutex lock; + struct iio_dummy_handle_irq handler; }; /* We can only ever have one instance of this 'device' */ @@ -67,6 +81,14 @@ static void iio_dummy_event_irqunmask(struct irq_data *d) evgen->enabled[d->irq - evgen->base] = true; } +static void iio_dummy_work_handler(struct irq_work *work) +{ + struct iio_dummy_handle_irq *irq_handler; + + irq_handler = container_of(work, struct iio_dummy_handle_irq, work); + handle_simple_irq(irq_handler->irq, irq_to_desc(irq_handler->irq)); +} + static int iio_dummy_evgen_create(void) { int ret, i; @@ -91,6 +113,7 @@ static int iio_dummy_evgen_create(void) IRQ_NOREQUEST | IRQ_NOAUTOEN, IRQ_NOPROBE); } + init_irq_work(&iio_evgen->handler.work, iio_dummy_work_handler); mutex_init(&iio_evgen->lock); return 0; } @@ -169,8 +192,9 @@ static ssize_t iio_evgen_poke(struct device *dev, iio_evgen->regs[this_attr->address].reg_id = this_attr->address; iio_evgen->regs[this_attr->address].reg_data = event; + iio_evgen->handler.irq = iio_evgen->base + this_attr->address; if (iio_evgen->enabled[this_attr->address]) - handle_nested_irq(iio_evgen->base + this_attr->address); + irq_work_queue(&iio_evgen->handler.work); return len; } diff --git a/drivers/staging/iio/iio_simple_dummy.h b/drivers/staging/iio/iio_simple_dummy.h index 8d00224e6fad..5c2f4d0401dc 100644 --- a/drivers/staging/iio/iio_simple_dummy.h +++ b/drivers/staging/iio/iio_simple_dummy.h @@ -46,6 +46,7 @@ struct iio_dummy_state { int event_irq; int event_val; bool event_en; + s64 event_timestamp; #endif /* CONFIG_IIO_SIMPLE_DUMMY_EVENTS */ }; diff --git a/drivers/staging/iio/iio_simple_dummy_events.c b/drivers/staging/iio/iio_simple_dummy_events.c index 73108baf80ad..bfbf1c56bd22 100644 --- a/drivers/staging/iio/iio_simple_dummy_events.c +++ b/drivers/staging/iio/iio_simple_dummy_events.c @@ -153,6 +153,15 @@ int iio_simple_dummy_write_event_value(struct iio_dev *indio_dev, return 0; } +static irqreturn_t iio_simple_dummy_get_timestamp(int irq, void *private) +{ + struct iio_dev *indio_dev = private; + struct iio_dummy_state *st = iio_priv(indio_dev); + + st->event_timestamp = iio_get_time_ns(); + return IRQ_HANDLED; +} + /** * iio_simple_dummy_event_handler() - identify and pass on event * @irq: irq of event line @@ -177,7 +186,7 @@ static irqreturn_t iio_simple_dummy_event_handler(int irq, void *private) IIO_EVENT_CODE(IIO_VOLTAGE, 0, 0, IIO_EV_DIR_RISING, IIO_EV_TYPE_THRESH, 0, 0, 0), - iio_get_time_ns()); + st->event_timestamp); break; case 1: if (st->activity_running > st->event_val) @@ -187,7 +196,7 @@ static irqreturn_t iio_simple_dummy_event_handler(int irq, void *private) IIO_EV_DIR_RISING, IIO_EV_TYPE_THRESH, 0, 0, 0), - iio_get_time_ns()); + st->event_timestamp); break; case 2: if (st->activity_walking < st->event_val) @@ -197,14 +206,14 @@ static irqreturn_t iio_simple_dummy_event_handler(int irq, void *private) IIO_EV_DIR_FALLING, IIO_EV_TYPE_THRESH, 0, 0, 0), - iio_get_time_ns()); + st->event_timestamp); break; case 3: iio_push_event(indio_dev, IIO_EVENT_CODE(IIO_STEPS, 0, IIO_NO_MOD, IIO_EV_DIR_NONE, IIO_EV_TYPE_CHANGE, 0, 0, 0), - iio_get_time_ns()); + st->event_timestamp); break; default: break; @@ -238,7 +247,7 @@ int iio_simple_dummy_events_register(struct iio_dev *indio_dev) st->regs = iio_dummy_evgen_get_regs(st->event_irq); ret = request_threaded_irq(st->event_irq, - NULL, + &iio_simple_dummy_get_timestamp, &iio_simple_dummy_event_handler, IRQF_ONESHOT, "iio_simple_event", From c14f8abe5304ba46b898cd381a0857fd61f87200 Mon Sep 17 00:00:00 2001 From: Adriana Reus Date: Wed, 16 Sep 2015 11:14:11 +0300 Subject: [PATCH 0575/2431] iio: light: Add support for UPISEMI uS5182d als and proximity sensor Add support for UPISEMI us5182d als and proximity sensor. Supports raw readings. Data sheet for this device can be found here: http://www.upi-semi.com/temp/uS5182D-DS-P0103-temp.pdf Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron --- drivers/iio/light/Kconfig | 10 + drivers/iio/light/Makefile | 1 + drivers/iio/light/us5182d.c | 507 ++++++++++++++++++++++++++++++++++++ 3 files changed, 518 insertions(+) create mode 100644 drivers/iio/light/us5182d.c diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig index 19b9a173fe61..cfd3df8416bb 100644 --- a/drivers/iio/light/Kconfig +++ b/drivers/iio/light/Kconfig @@ -300,6 +300,16 @@ config TSL4531 To compile this driver as a module, choose M here: the module will be called tsl4531. +config US5182D + tristate "UPISEMI light and proximity sensor" + depends on I2C + help + If you say yes here you get support for the UPISEMI US5182D + ambient light and proximity sensor. + + This driver can also be built as a module. If so, the module + will be called us5182d. + config VCNL4000 tristate "VCNL4000 combined ALS and proximity sensor" depends on I2C diff --git a/drivers/iio/light/Makefile b/drivers/iio/light/Makefile index 7b2244550747..b2c31053db0c 100644 --- a/drivers/iio/light/Makefile +++ b/drivers/iio/light/Makefile @@ -28,4 +28,5 @@ obj-$(CONFIG_STK3310) += stk3310.o obj-$(CONFIG_TCS3414) += tcs3414.o obj-$(CONFIG_TCS3472) += tcs3472.o obj-$(CONFIG_TSL4531) += tsl4531.o +obj-$(CONFIG_US5182D) += us5182d.o obj-$(CONFIG_VCNL4000) += vcnl4000.o diff --git a/drivers/iio/light/us5182d.c b/drivers/iio/light/us5182d.c new file mode 100644 index 000000000000..49dab3cb3e23 --- /dev/null +++ b/drivers/iio/light/us5182d.c @@ -0,0 +1,507 @@ +/* + * Copyright (c) 2015 Intel Corporation + * + * Driver for UPISEMI us5182d Proximity and Ambient Light Sensor. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * To do: Interrupt support. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define US5182D_REG_CFG0 0x00 +#define US5182D_CFG0_ONESHOT_EN BIT(6) +#define US5182D_CFG0_SHUTDOWN_EN BIT(7) +#define US5182D_CFG0_WORD_ENABLE BIT(0) + +#define US5182D_REG_CFG1 0x01 +#define US5182D_CFG1_ALS_RES16 BIT(4) +#define US5182D_CFG1_AGAIN_DEFAULT 0x00 + +#define US5182D_REG_CFG2 0x02 +#define US5182D_CFG2_PX_RES16 BIT(4) +#define US5182D_CFG2_PXGAIN_DEFAULT BIT(2) + +#define US5182D_REG_CFG3 0x03 +#define US5182D_CFG3_LED_CURRENT100 (BIT(4) | BIT(5)) + +#define US5182D_REG_CFG4 0x10 + +/* + * Registers for tuning the auto dark current cancelling feature. + * DARK_TH(reg 0x27,0x28) - threshold (counts) for auto dark cancelling. + * when ALS > DARK_TH --> ALS_Code = ALS - Upper(0x2A) * Dark + * when ALS < DARK_TH --> ALS_Code = ALS - Lower(0x29) * Dark + */ +#define US5182D_REG_UDARK_TH 0x27 +#define US5182D_REG_DARK_AUTO_EN 0x2b +#define US5182D_REG_AUTO_LDARK_GAIN 0x29 +#define US5182D_REG_AUTO_HDARK_GAIN 0x2a + +#define US5182D_OPMODE_ALS 0x01 +#define US5182D_OPMODE_PX 0x02 +#define US5182D_OPMODE_SHIFT 4 + +#define US5182D_REG_DARK_AUTO_EN_DEFAULT 0x80 +#define US5182D_REG_AUTO_LDARK_GAIN_DEFAULT 0x16 +#define US5182D_REG_AUTO_HDARK_GAIN_DEFAULT 0x00 + +#define US5182D_REG_ADL 0x0c +#define US5182D_REG_PDL 0x0e + +#define US5182D_REG_MODE_STORE 0x21 +#define US5182D_STORE_MODE 0x01 + +#define US5182D_REG_CHIPID 0xb2 + +#define US5182D_OPMODE_MASK GENMASK(5, 4) +#define US5182D_AGAIN_MASK 0x07 +#define US5182D_RESET_CHIP 0x01 + +#define US5182D_CHIPID 0x26 +#define US5182D_DRV_NAME "us5182d" + +#define US5182D_GA_RESOLUTION 1000 + +#define US5182D_READ_BYTE 1 +#define US5182D_READ_WORD 2 +#define US5182D_OPSTORE_SLEEP_TIME 20 /* ms */ + +/* Available ranges: [12354, 7065, 3998, 2202, 1285, 498, 256, 138] lux */ +static const int us5182d_scales[] = {188500, 107800, 61000, 33600, 19600, 7600, + 3900, 2100}; + +/* + * Experimental thresholds that work with US5182D sensor on evaluation board + * roughly between 12-32 lux + */ +static u16 us5182d_dark_ths_vals[] = {170, 200, 512, 512, 800, 2000, 4000, + 8000}; + +enum mode { + US5182D_ALS_PX, + US5182D_ALS_ONLY, + US5182D_PX_ONLY +}; + +struct us5182d_data { + struct i2c_client *client; + struct mutex lock; + + /* Glass attenuation factor */ + u32 ga; + + /* Dark gain tuning */ + u8 lower_dark_gain; + u8 upper_dark_gain; + u16 *us5182d_dark_ths; + + u8 opmode; +}; + +static IIO_CONST_ATTR(in_illuminance_scale_available, + "0.0021 0.0039 0.0076 0.0196 0.0336 0.061 0.1078 0.1885"); + +static struct attribute *us5182d_attrs[] = { + &iio_const_attr_in_illuminance_scale_available.dev_attr.attr, + NULL +}; + +static const struct attribute_group us5182d_attr_group = { + .attrs = us5182d_attrs, +}; + +static const struct { + u8 reg; + u8 val; +} us5182d_regvals[] = { + {US5182D_REG_CFG0, (US5182D_CFG0_SHUTDOWN_EN | + US5182D_CFG0_WORD_ENABLE)}, + {US5182D_REG_CFG1, US5182D_CFG1_ALS_RES16}, + {US5182D_REG_CFG2, (US5182D_CFG2_PX_RES16 | + US5182D_CFG2_PXGAIN_DEFAULT)}, + {US5182D_REG_CFG3, US5182D_CFG3_LED_CURRENT100}, + {US5182D_REG_MODE_STORE, US5182D_STORE_MODE}, + {US5182D_REG_CFG4, 0x00}, +}; + +static const struct iio_chan_spec us5182d_channels[] = { + { + .type = IIO_LIGHT, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | + BIT(IIO_CHAN_INFO_SCALE), + }, + { + .type = IIO_PROXIMITY, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), + } +}; + +static int us5182d_get_als(struct us5182d_data *data) +{ + int ret; + unsigned long result; + + ret = i2c_smbus_read_word_data(data->client, + US5182D_REG_ADL); + if (ret < 0) + return ret; + + result = ret * data->ga / US5182D_GA_RESOLUTION; + if (result > 0xffff) + result = 0xffff; + + return result; +} + +static int us5182d_set_opmode(struct us5182d_data *data, u8 mode) +{ + int ret; + + ret = i2c_smbus_read_byte_data(data->client, US5182D_REG_CFG0); + if (ret < 0) + return ret; + + /* + * In oneshot mode the chip will power itself down after taking the + * required measurement. + */ + ret = ret | US5182D_CFG0_ONESHOT_EN; + + /* update mode */ + ret = ret & ~US5182D_OPMODE_MASK; + ret = ret | (mode << US5182D_OPMODE_SHIFT); + + /* + * After updating the operating mode, the chip requires that + * the operation is stored, by writing 1 in the STORE_MODE + * register (auto-clearing). + */ + ret = i2c_smbus_write_byte_data(data->client, US5182D_REG_CFG0, ret); + if (ret < 0) + return ret; + + if (mode == data->opmode) + return 0; + + ret = i2c_smbus_write_byte_data(data->client, US5182D_REG_MODE_STORE, + US5182D_STORE_MODE); + if (ret < 0) + return ret; + + data->opmode = mode; + msleep(US5182D_OPSTORE_SLEEP_TIME); + + return 0; +} + +static int us5182d_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, int *val, + int *val2, long mask) +{ + struct us5182d_data *data = iio_priv(indio_dev); + int ret; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + switch (chan->type) { + case IIO_LIGHT: + mutex_lock(&data->lock); + ret = us5182d_set_opmode(data, US5182D_OPMODE_ALS); + if (ret < 0) + goto out_err; + + ret = us5182d_get_als(data); + if (ret < 0) + goto out_err; + mutex_unlock(&data->lock); + *val = ret; + return IIO_VAL_INT; + case IIO_PROXIMITY: + mutex_lock(&data->lock); + ret = us5182d_set_opmode(data, US5182D_OPMODE_PX); + if (ret < 0) + goto out_err; + + ret = i2c_smbus_read_word_data(data->client, + US5182D_REG_PDL); + if (ret < 0) + goto out_err; + mutex_unlock(&data->lock); + *val = ret; + return IIO_VAL_INT; + default: + return -EINVAL; + } + + case IIO_CHAN_INFO_SCALE: + ret = i2c_smbus_read_byte_data(data->client, US5182D_REG_CFG1); + if (ret < 0) + return ret; + + *val = 0; + *val2 = us5182d_scales[ret & US5182D_AGAIN_MASK]; + + return IIO_VAL_INT_PLUS_MICRO; + default: + return -EINVAL; + } + + return -EINVAL; +out_err: + mutex_unlock(&data->lock); + return ret; +} + +/** + * us5182d_update_dark_th - update Darh_Th registers + * @data us5182d_data structure + * @index index in us5182d_dark_ths array to use for the updated value + * + * Function needs to be called with a lock held because it needs two i2c write + * byte operations as these registers (0x27 0x28) don't work in word mode + * accessing. + */ +static int us5182d_update_dark_th(struct us5182d_data *data, int index) +{ + __be16 dark_th = cpu_to_be16(data->us5182d_dark_ths[index]); + int ret; + + ret = i2c_smbus_write_byte_data(data->client, US5182D_REG_UDARK_TH, + ((u8 *)&dark_th)[0]); + if (ret < 0) + return ret; + + return i2c_smbus_write_byte_data(data->client, US5182D_REG_UDARK_TH + 1, + ((u8 *)&dark_th)[1]); +} + +/** + * us5182d_apply_scale - update the ALS scale + * @data us5182d_data structure + * @index index in us5182d_scales array to use for the updated value + * + * Function needs to be called with a lock held as we're having more than one + * i2c operation. + */ +static int us5182d_apply_scale(struct us5182d_data *data, int index) +{ + int ret; + + ret = i2c_smbus_read_byte_data(data->client, US5182D_REG_CFG1); + if (ret < 0) + return ret; + + ret = ret & (~US5182D_AGAIN_MASK); + ret |= index; + + ret = i2c_smbus_write_byte_data(data->client, US5182D_REG_CFG1, ret); + if (ret < 0) + return ret; + + return us5182d_update_dark_th(data, index); +} + +static int us5182d_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, int val, + int val2, long mask) +{ + struct us5182d_data *data = iio_priv(indio_dev); + int ret, i; + + switch (mask) { + case IIO_CHAN_INFO_SCALE: + if (val != 0) + return -EINVAL; + for (i = 0; i < ARRAY_SIZE(us5182d_scales); i++) + if (val2 == us5182d_scales[i]) { + mutex_lock(&data->lock); + ret = us5182d_apply_scale(data, i); + mutex_unlock(&data->lock); + return ret; + } + break; + default: + return -EINVAL; + } + + return -EINVAL; +} + +static const struct iio_info us5182d_info = { + .driver_module = THIS_MODULE, + .read_raw = us5182d_read_raw, + .write_raw = us5182d_write_raw, + .attrs = &us5182d_attr_group, +}; + +static int us5182d_reset(struct iio_dev *indio_dev) +{ + struct us5182d_data *data = iio_priv(indio_dev); + + return i2c_smbus_write_byte_data(data->client, US5182D_REG_CFG3, + US5182D_RESET_CHIP); +} + +static int us5182d_init(struct iio_dev *indio_dev) +{ + struct us5182d_data *data = iio_priv(indio_dev); + int i, ret; + + ret = us5182d_reset(indio_dev); + if (ret < 0) + return ret; + + data->opmode = 0; + for (i = 0; i < ARRAY_SIZE(us5182d_regvals); i++) { + ret = i2c_smbus_write_byte_data(data->client, + us5182d_regvals[i].reg, + us5182d_regvals[i].val); + if (ret < 0) + return ret; + } + + return 0; +} + +static void us5182d_get_platform_data(struct iio_dev *indio_dev) +{ + struct us5182d_data *data = iio_priv(indio_dev); + + if (device_property_read_u32(&data->client->dev, "upisemi,glass-coef", + &data->ga)) + data->ga = US5182D_GA_RESOLUTION; + if (device_property_read_u16_array(&data->client->dev, + "upisemi,dark-ths", + data->us5182d_dark_ths, + ARRAY_SIZE(us5182d_dark_ths_vals))) + data->us5182d_dark_ths = us5182d_dark_ths_vals; + if (device_property_read_u8(&data->client->dev, + "upisemi,upper-dark-gain", + &data->upper_dark_gain)) + data->upper_dark_gain = US5182D_REG_AUTO_HDARK_GAIN_DEFAULT; + if (device_property_read_u8(&data->client->dev, + "upisemi,lower-dark-gain", + &data->lower_dark_gain)) + data->lower_dark_gain = US5182D_REG_AUTO_LDARK_GAIN_DEFAULT; +} + +static int us5182d_dark_gain_config(struct iio_dev *indio_dev) +{ + struct us5182d_data *data = iio_priv(indio_dev); + int ret; + + ret = us5182d_update_dark_th(data, US5182D_CFG1_AGAIN_DEFAULT); + if (ret < 0) + return ret; + + ret = i2c_smbus_write_byte_data(data->client, + US5182D_REG_AUTO_LDARK_GAIN, + data->lower_dark_gain); + if (ret < 0) + return ret; + + ret = i2c_smbus_write_byte_data(data->client, + US5182D_REG_AUTO_HDARK_GAIN, + data->upper_dark_gain); + if (ret < 0) + return ret; + + return i2c_smbus_write_byte_data(data->client, US5182D_REG_DARK_AUTO_EN, + US5182D_REG_DARK_AUTO_EN_DEFAULT); +} + +static int us5182d_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct us5182d_data *data; + struct iio_dev *indio_dev; + int ret; + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); + if (!indio_dev) + return -ENOMEM; + + data = iio_priv(indio_dev); + i2c_set_clientdata(client, indio_dev); + data->client = client; + + mutex_init(&data->lock); + + indio_dev->dev.parent = &client->dev; + indio_dev->info = &us5182d_info; + indio_dev->name = US5182D_DRV_NAME; + indio_dev->channels = us5182d_channels; + indio_dev->num_channels = ARRAY_SIZE(us5182d_channels); + indio_dev->modes = INDIO_DIRECT_MODE; + + ret = i2c_smbus_read_byte_data(data->client, US5182D_REG_CHIPID); + if (ret != US5182D_CHIPID) { + dev_err(&data->client->dev, + "Failed to detect US5182 light chip\n"); + return (ret < 0) ? ret : -ENODEV; + } + + us5182d_get_platform_data(indio_dev); + ret = us5182d_init(indio_dev); + if (ret < 0) + return ret; + + ret = us5182d_dark_gain_config(indio_dev); + if (ret < 0) + return ret; + + return iio_device_register(indio_dev); +} + +static int us5182d_remove(struct i2c_client *client) +{ + iio_device_unregister(i2c_get_clientdata(client)); + return i2c_smbus_write_byte_data(client, US5182D_REG_CFG0, + US5182D_CFG0_SHUTDOWN_EN); +} + +static const struct acpi_device_id us5182d_acpi_match[] = { + { "USD5182", 0}, + {} +}; + +MODULE_DEVICE_TABLE(acpi, us5182d_acpi_match); + +static const struct i2c_device_id us5182d_id[] = { + {"usd5182", 0}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, us5182d_id); + +static struct i2c_driver us5182d_driver = { + .driver = { + .name = US5182D_DRV_NAME, + .acpi_match_table = ACPI_PTR(us5182d_acpi_match), + }, + .probe = us5182d_probe, + .remove = us5182d_remove, + .id_table = us5182d_id, + +}; +module_i2c_driver(us5182d_driver); + +MODULE_AUTHOR("Adriana Reus "); +MODULE_DESCRIPTION("Driver for us5182d Proximity and Light Sensor"); +MODULE_LICENSE("GPL v2"); From 9214185b515ed550fe67c912ca446b4524f01603 Mon Sep 17 00:00:00 2001 From: Adriana Reus Date: Wed, 16 Sep 2015 11:14:12 +0300 Subject: [PATCH 0576/2431] devicetree: Add documentation for UPISEMI us5182d ALS and Proximity sensor Added entries in i2c/vendor-prefixes for the us5182d als and proximity sensor. Also added a documentation file for this sensor's properties. Signed-off-by: Adriana Reus Acked-by: Rob Herring Signed-off-by: Jonathan Cameron --- .../devicetree/bindings/iio/light/us5182d.txt | 34 +++++++++++++++++++ .../devicetree/bindings/vendor-prefixes.txt | 1 + 2 files changed, 35 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/light/us5182d.txt diff --git a/Documentation/devicetree/bindings/iio/light/us5182d.txt b/Documentation/devicetree/bindings/iio/light/us5182d.txt new file mode 100644 index 000000000000..6f0a530144fd --- /dev/null +++ b/Documentation/devicetree/bindings/iio/light/us5182d.txt @@ -0,0 +1,34 @@ +* UPISEMI us5182d I2C ALS and Proximity sensor + +Required properties: +- compatible: must be "upisemi,usd5182" +- reg: the I2C address of the device + +Optional properties: +- upisemi,glass-coef: glass attenuation factor - compensation factor of + resolution 1000 for material transmittance. +- upisemi,dark-ths: array of 8 elements containing 16-bit thresholds (adc + counts) corresponding to every scale. +- upisemi,upper-dark-gain: 8-bit dark gain compensation factor(4 int and 4 + fractional bits - Q4.4) applied when light > threshold +- upisemi,lower-dark-gain: 8-bit dark gain compensation factor(4 int and 4 + fractional bits - Q4.4) applied when light < threshold + +If the optional properties are not specified these factors will default to the +values in the below example. +The glass-coef defaults to no compensation for the covering material. +The threshold array defaults to experimental values that work with US5182D +sensor on evaluation board - roughly between 12-32 lux. +There will be no dark-gain compensation by default when ALS > thresh +(0 * dark-gain), and a 1.35 compensation factor when ALS < thresh. + +Example: + + usd5182@39 { + compatible = "upisemi,usd5182"; + reg = <0x39>; + upisemi,glass-coef = < 1000 >; + upisemi,dark-ths = /bits/ 16 <170 200 512 512 800 2000 4000 8000>; + upisemi,upper-dark-gain = /bits/ 8 <0x00>; + upisemi,lower-dark-gain = /bits/ 8 <0x16>; + }; diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index d5915611036b..f2b1d6fe0329 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -214,6 +214,7 @@ toshiba Toshiba Corporation toumaz Toumaz tplink TP-LINK Technologies Co., Ltd. truly Truly Semiconductors Limited +upisemi uPI Semiconductor Corp. usi Universal Scientific Industrial Co., Ltd. v3 V3 Semiconductor variscite Variscite Ltd. From 36736cc66bcedcd25b65faff43e352491409971f Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Tue, 22 Sep 2015 10:16:48 +0800 Subject: [PATCH 0577/2431] iio: adc: vf610: fix simple_return.cocci warnings drivers/iio/adc/vf610_adc.c:766:1-4: WARNING: end returns can be simpified and declaration on line 755 can be dropped Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci CC: Sanchayan Maity Signed-off-by: Fengguang Wu Signed-off-by: Jonathan Cameron --- drivers/iio/adc/vf610_adc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c index 635ccd86620e..599cde3d03a1 100644 --- a/drivers/iio/adc/vf610_adc.c +++ b/drivers/iio/adc/vf610_adc.c @@ -752,7 +752,7 @@ static int vf610_adc_buffer_predisable(struct iio_dev *indio_dev) { struct vf610_adc *info = iio_priv(indio_dev); unsigned int hc_cfg = 0; - int val, ret; + int val; val = readl(info->regs + VF610_REG_ADC_GC); val &= ~VF610_ADC_ADCON; @@ -763,11 +763,7 @@ static int vf610_adc_buffer_predisable(struct iio_dev *indio_dev) writel(hc_cfg, info->regs + VF610_REG_ADC_HC0); - ret = iio_triggered_buffer_predisable(indio_dev); - if (ret) - return ret; - - return 0; + return iio_triggered_buffer_predisable(indio_dev); } static const struct iio_buffer_setup_ops iio_triggered_buffer_setup_ops = { From ebe5c543cf8ed3010881a8d863e954b961013fea Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Tue, 22 Sep 2015 10:21:48 +0800 Subject: [PATCH 0578/2431] iio: apds9960: light: fix simple_return.cocci warnings drivers/iio/light/apds9960.c:986:1-4: WARNING: end returns can be simpified Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci CC: Matt Ranostay Signed-off-by: Fengguang Wu Signed-off-by: Jonathan Cameron --- drivers/iio/light/apds9960.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c index 27f415743733..8d7ce6a9296d 100644 --- a/drivers/iio/light/apds9960.c +++ b/drivers/iio/light/apds9960.c @@ -983,11 +983,7 @@ static int apds9960_chip_init(struct apds9960_data *data) if (ret) return ret; - ret = apds9960_set_powermode(data, 1); - if (ret) - return ret; - - return 0; + return apds9960_set_powermode(data, 1); } static int apds9960_probe(struct i2c_client *client, From 1d2f1e084b7386b4082ebc2490ce0ddc8efe5667 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Tue, 22 Sep 2015 10:21:48 +0800 Subject: [PATCH 0579/2431] iio: light: apds9960: fix platform_no_drv_owner.cocci warnings drivers/iio/light/apds9960.c:1125:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci CC: Matt Ranostay Signed-off-by: Fengguang Wu Signed-off-by: Jonathan Cameron --- drivers/iio/light/apds9960.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c index 8d7ce6a9296d..bf80ce47926b 100644 --- a/drivers/iio/light/apds9960.c +++ b/drivers/iio/light/apds9960.c @@ -1118,7 +1118,6 @@ static struct i2c_driver apds9960_driver = { .driver = { .name = APDS9960_DRV_NAME, .pm = &apds9960_pm_ops, - .owner = THIS_MODULE, }, .probe = apds9960_probe, .remove = apds9960_remove, From 234837decbffdb28325588f66811796698d68cf2 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 22 Sep 2015 14:34:43 +0900 Subject: [PATCH 0580/2431] staging: wilc1000: Modify null check routine This patch removes the potential faults which may happen when unexpectedly getting access to invalid pointer. Return error when the invalid memory is accessed. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 62f4a8a08cde..158d8b898b75 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -2384,8 +2384,10 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, s32 s32Err = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; - if (pstrWFIDrv == NULL) + if (!pstrWFIDrv) { PRINT_ER("Driver handler is NULL\n"); + return -ENODEV; + } PRINT_D(GENERIC_DBG, "Current State = %d,Received state = %d\n", pstrWFIDrv->enuHostIFstate, pstrRcvdGnrlAsyncInfo->pu8Buffer[7]); From 12dc9e4ea69df9cce45e90810b574990d2d90eba Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 22 Sep 2015 14:34:44 +0900 Subject: [PATCH 0581/2431] staging: wilc1000: wilc_wlan_if.h: remove warnings on the multiple blank lines This patch removes the warnings reported by checkpatch.pl for using multiple blank lines. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan_if.h | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 5f68b6aea075..e56014df4036 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -7,18 +7,15 @@ /* */ /* ///////////////////////////////////////////////////////////////////////// */ - #ifndef WILC_WLAN_IF_H #define WILC_WLAN_IF_H /* #define MEMORY_STATIC */ /* #define USE_OLD_SPI_SW */ - #include "wilc_oswrapper.h" #include "linux_wlan_common.h" - /******************************************** * * Debug Flags @@ -41,7 +38,6 @@ #define HIF_SPI BIT(0) #define HIF_SDIO_GPIO_IRQ BIT(2) - /******************************************** * * Tx/Rx Buffer Size Defines @@ -154,7 +150,6 @@ struct tx_complete_data { struct sk_buff *skb; }; - typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) @@ -388,7 +383,6 @@ typedef enum { typedef enum { WID_NIL = 0xffff, - /* BSS Type */ /* -------------------------------------------------------------- */ /* Configuration : Infrastructure Independent Access Point */ @@ -748,7 +742,6 @@ typedef enum { /* -------------------------------------------------------------- */ WID_11N_TXOP_PROT_DISABLE = 0x00B0, - WID_TX_POWER_LEVEL_11N = 0x00B1, /* Custom Character WID list */ @@ -821,7 +814,6 @@ typedef enum { WID_MEMORY_ACCESS_32BIT = 0x201F, WID_RF_REG_VAL = 0x2021, - /* NMAC Integer WID list */ WID_11N_PHY_ACTIVE_REG_VAL = 0x2080, @@ -874,8 +866,6 @@ typedef enum { WID_IP_ADDRESS = 0x3999, - - /* Custom String WID list */ /* EMAC Binary WID list */ @@ -890,7 +880,6 @@ typedef enum { /* NMAC Binary WID list */ WID_11N_AUTORATE_TABLE = 0x4080, - WID_SCAN_CHANNEL_LIST = 0x4084, WID_INFO_ELEMENT_PROBE = 0x4085, @@ -913,5 +902,4 @@ void wilc_bus_set_max_speed(void); void wilc_bus_set_default_speed(void); u32 wilc_get_chipid(u8 update); - #endif From d4cebe4d886f23a5666871f9980bbcc9cf769ea7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 22 Sep 2015 14:34:45 +0900 Subject: [PATCH 0582/2431] staging: wilc1000: wilc_wlan_if.h: remove warnings line over 80 characters This patch removes the warnings reported by checkpatch.pl for line over 80 characters. And also align comments which is not over 80 but to align with them. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan_if.h | 644 ++++++++++++++---------- 1 file changed, 369 insertions(+), 275 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index e56014df4036..0863592daecf 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -1,4 +1,4 @@ -/* ////////////////////////////////////////////////////////////////////////// */ +/* ///////////////////////////////////////////////////////////////////////// */ /* */ /* Copyright (c) Atmel Corporation. All rights reserved. */ /* */ @@ -165,7 +165,8 @@ typedef struct { int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32); int (*wlan_cfg_get)(int, u32, int, u32); int (*wlan_cfg_get_value)(u32, u8 *, u32); - int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); + int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, + wilc_tx_complete_func_t); } wilc_wlan_oup_t; /******************************************** @@ -213,16 +214,16 @@ typedef enum { } TX_RATE_T; typedef enum { - B_ONLY_MODE = 0, /* basic rate: 1, 2 Mbps, otherwise: 5, 11 Mbps */ - G_ONLY_MODE, /* basic rate: 6, 12, 24 Mbps, otherwise: 9, 18, 36, 48, 54 Mbps */ - G_MIXED_11B_1_MODE, /* basic rate: 1, 2, 5.5, 11 Mbps, otherwise: all on */ - G_MIXED_11B_2_MODE, /* basic rate: 1, 2, 5, 11, 6, 12, 24 Mbps, otherwise: all on */ + B_ONLY_MODE = 0, /* 1, 2 M, otherwise: 5, 11 M */ + G_ONLY_MODE, /* 6, 12, 24 M, otherwise: 9, 18, 36, 48, 54 M */ + G_MIXED_11B_1_MODE, /* 1, 2, 5.5, 11 M, otherwise: all on */ + G_MIXED_11B_2_MODE, /* 1, 2, 5, 11, 6, 12, 24 M, otherwise: all on */ } G_OPERATING_MODE_T; typedef enum { - G_SHORT_PREAMBLE = 0, /* Short Preamble */ - G_LONG_PREAMBLE = 1, /* Long Preamble */ - G_AUTO_PREAMBLE = 2, /* Auto Preamble Selection */ + G_SHORT_PREAMBLE = 0, /* Short Preamble */ + G_LONG_PREAMBLE = 1, /* Long Preamble */ + G_AUTO_PREAMBLE = 2, /* Auto Preamble Selection */ } G_PREAMBLE_T; #define MAC_CONNECTED 1 @@ -345,10 +346,10 @@ typedef enum { } N_OBSS_DETECTION_T; typedef enum { - RTS_CTS_NONHT_PROT = 0, /* RTS-CTS at non-HT rate */ - FIRST_FRAME_NONHT_PROT, /* First frame at non-HT rate */ - LSIG_TXOP_PROT, /* LSIG TXOP Protection */ - FIRST_FRAME_MIXED_PROT, /* First frame at Mixed format */ + RTS_CTS_NONHT_PROT = 0, /* RTS-CTS at non-HT rate */ + FIRST_FRAME_NONHT_PROT, /* First frame at non-HT rate */ + LSIG_TXOP_PROT, /* LSIG TXOP Protection */ + FIRST_FRAME_MIXED_PROT, /* First frame at Mixed format */ } N_PROTECTION_TYPE_T; typedef enum { @@ -383,237 +384,298 @@ typedef enum { typedef enum { WID_NIL = 0xffff, - /* BSS Type */ - /* -------------------------------------------------------------- */ - /* Configuration : Infrastructure Independent Access Point */ - /* Values to set : 0 1 2 */ - /* -------------------------------------------------------------- */ + /* + * BSS Type + * ----------------------------------------------------------- + * Configuration : Infrastructure Independent Access Point + * Values to set : 0 1 2 + * ----------------------------------------------------------- + */ WID_BSS_TYPE = 0x0000, - /* Transmit Rate */ - /* -------------------------------------------------------------- */ - /* Configuration : 1 2 5.5 11 6 9 12 18 24 36 48 54 */ - /* Values to set : 1 2 5 11 6 9 12 18 24 36 48 54 */ - /* -------------------------------------------------------------- */ + /* + * Transmit Rate + * ----------------------------------------------------------- + * Configuration : 1 2 5.5 11 6 9 12 18 24 36 48 54 + * Values to set : 1 2 5 11 6 9 12 18 24 36 48 54 + * ----------------------------------------------------------- + */ WID_CURRENT_TX_RATE = 0x0001, - /* Channel */ - /* ------------------------------------------------------------------- */ - /* Configuration(g) : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ - /* Values to set : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ - /* -------------------------------------------------------------------- */ + /* + * Channel + * ----------------------------------------------------------- + * Configuration(g) : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + * Values to set : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + * ----------------------------------------------------------- + */ WID_CURRENT_CHANNEL = 0x0002, - /* Preamble */ - /* -------------------------------------------------------------- */ - /* Configuration : short long Auto */ - /* Values to set : 0 1 2 */ - /* -------------------------------------------------------------- */ + /* + * Preamble + * ----------------------------------------------------------- + * Configuration : short long Auto + * Values to set : 0 1 2 + * ----------------------------------------------------------- + */ WID_PREAMBLE = 0x0003, - /* 11g operating mode (ignored if 11g not present) */ - /* -------------------------------------------------------------- */ - /* Configuration : HighPerf Compat(RSet #1) Compat(RSet #2) */ - /* Values to set : 1 2 3 */ - /* -------------------------------------------------------------- */ + /* + * 11g operating mode (ignored if 11g not present) + * ----------------------------------------------------------- + * Configuration : HighPerf Compat(RSet #1) Compat(RSet #2) + * Values to set : 1 2 3 + * ----------------------------------------------------------- + */ WID_11G_OPERATING_MODE = 0x0004, - /* Mac status (response only) */ - /* -------------------------------------------------------------- */ - /* Configuration : disconnect connect */ - /* Values to get : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * Mac status (response only) + * ----------------------------------------------------------- + * Configuration : disconnect connect + * Values to get : 0 1 + * ----------------------------------------------------------- + */ WID_STATUS = 0x0005, - /* Scan type */ - /* -------------------------------------------------------------- */ - /* Configuration : Passive Scanning Active Scanning */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * Scan type + * ----------------------------------------------------------- + * Configuration : Passive Scanning Active Scanning + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_SCAN_TYPE = 0x0007, - /* Key Id (WEP default key Id) */ - /* -------------------------------------------------------------- */ - /* Configuration : Any value between 0 to 3 */ - /* Values to set : Same value. Default is 0 */ - /* -------------------------------------------------------------- */ + /* + * Key Id (WEP default key Id) + * ----------------------------------------------------------- + * Configuration : Any value between 0 to 3 + * Values to set : Same value. Default is 0 + * ----------------------------------------------------------- + */ WID_KEY_ID = 0x0009, - /* QoS Enable */ - /* -------------------------------------------------------------- */ - /* Configuration : QoS Disable WMM Enable */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * QoS Enable + * ----------------------------------------------------------- + * Configuration : QoS Disable WMM Enable + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_QOS_ENABLE = 0x000A, - /* Power Management */ - /* ------------------------------------------------------------------ */ - /* Configuration : NO_POWERSAVE MIN_POWERSAVE MAX_POWERSAVE */ - /* Values to set : 0 1 2 */ - /* ------------------------------------------------------------------ */ + /* + * Power Management + * ----------------------------------------------------------- + * Configuration : NO_POWERSAVE MIN_POWERSAVE MAX_POWERSAVE + * Values to set : 0 1 2 + * ----------------------------------------------------------- + */ WID_POWER_MANAGEMENT = 0x000B, - /* WEP/802 11I Configuration */ - /* ------------------------------------------------------------------ */ - /* Configuration : Disable WP40 WP104 WPA-AES WPA-TKIP RSN-AES RSN-TKIP */ - /* Values (0x) : 00 03 07 29 49 31 51 */ - /* */ - /* Configuration : WPA-AES+TKIP RSN-AES+TKIP */ - /* Values (0x) : 69 71 */ - /* ------------------------------------------------------------------ */ + /* + * WEP/802 11I Configuration + * ----------------------------------------------------------- + * Configuration:Disable WP40 WP104 WPA-AES WPA-TKIP RSN-AES RSN-TKIP + * Values (0x) : 00 03 07 29 49 31 51 + * Configuration:WPA-AES+TKIP RSN-AES+TKIP + * Values (0x) : 69 71 + * ----------------------------------------------------------- + */ WID_11I_MODE = 0x000C, - /* WEP Configuration: Used in BSS STA mode only when WEP is enabled */ - /* ------------------------------------------------------------------ */ - /* Configuration : Open System Shared Key Any Type | 802.1x Auth */ - /* Values (0x) : 01 02 03 | BIT2 */ - /* ------------------------------------------------------------------ */ + /* + * WEP Configuration: Used in BSS STA mode only when WEP is enabled + * ----------------------------------------------------------- + * Configuration : Open System Shared Key Any Type | 802.1x Auth + * Values (0x) : 01 02 03 | BIT2 + * ----------------------------------------------------------- + */ WID_AUTH_TYPE = 0x000D, - /* Site Survey Type */ - /* -------------------------------------------------------------- */ - /* Configuration : Values to set */ - /* Survey 1 Channel : 0 */ - /* survey all Channels : 1 */ - /* Disable Site Survey : 2 */ - /* -------------------------------------------------------------- */ + /* + * Site Survey Type + * ----------------------------------------------------------- + * Configuration : Values to set + * Survey 1 Channel : 0 + * survey all Channels : 1 + * Disable Site Survey : 2 + * ----------------------------------------------------------- + */ WID_SITE_SURVEY = 0x000E, - /* Listen Interval */ - /* -------------------------------------------------------------- */ - /* Configuration : Any value between 1 to 255 */ - /* Values to set : Same value. Default is 3 */ - /* -------------------------------------------------------------- */ + /* + * Listen Interval + * ----------------------------------------------------------- + * Configuration : Any value between 1 to 255 + * Values to set : Same value. Default is 3 + * ----------------------------------------------------------- + */ WID_LISTEN_INTERVAL = 0x000F, - /* DTIM Period */ - /* -------------------------------------------------------------- */ - /* Configuration : Any value between 1 to 255 */ - /* Values to set : Same value. Default is 3 */ - /* -------------------------------------------------------------- */ + /* + * DTIM Period + * ----------------------------------------------------------- + * Configuration : Any value between 1 to 255 + * Values to set : Same value. Default is 3 + * ----------------------------------------------------------- + */ WID_DTIM_PERIOD = 0x0010, - /* ACK Policy */ - /* -------------------------------------------------------------- */ - /* Configuration : Normal Ack No Ack */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * ACK Policy + * ----------------------------------------------------------- + * Configuration : Normal Ack No Ack + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_ACK_POLICY = 0x0011, - /* Reset MAC (Set only) */ - /* -------------------------------------------------------------- */ - /* Configuration : Don't Reset Reset No Request */ - /* Values to set : 0 1 2 */ - /* -------------------------------------------------------------- */ + /* + * Reset MAC (Set only) + * ----------------------------------------------------------- + * Configuration : Don't Reset Reset No Request + * Values to set : 0 1 2 + * ----------------------------------------------------------- + */ WID_RESET = 0x0012, - /* Broadcast SSID Option: Setting this will adhere to "" SSID element */ - /* ------------------------------------------------------------------ */ - /* Configuration : Enable Disable */ - /* Values to set : 1 0 */ - /* ------------------------------------------------------------------ */ + /* + * Broadcast SSID Option: Setting this will adhere to "" SSID element + * ----------------------------------------------------------- + * Configuration : Enable Disable + * Values to set : 1 0 + * ----------------------------------------------------------- + */ WID_BCAST_SSID = 0x0015, - /* Disconnect (Station) */ - /* ------------------------------------------------------------------ */ - /* Configuration : Association ID */ - /* Values to set : Association ID */ - /* ------------------------------------------------------------------ */ + /* + * Disconnect (Station) + * ----------------------------------------------------------- + * Configuration : Association ID + * Values to set : Association ID + * ----------------------------------------------------------- + */ WID_DISCONNECT = 0x0016, - /* 11a Tx Power Level */ - /* -------------------------------------------------------------------- */ - /* Configuration : Sets TX Power (Higher the value greater the power) */ - /* Values to set : Any value between 0 and 63 (inclusive; Default is 48)*/ - /* -------------------------------------------------------------------- */ + /* + * 11a Tx Power Level + * ----------------------------------------------------------- + * Configuration : Sets TX Power (Higher the value greater the power) + * Values to set : Any value between 0 and 63 (inclusive Default 48) + * ----------------------------------------------------------- + */ WID_TX_POWER_LEVEL_11A = 0x0018, - /* Group Key Update Policy Selection */ - /* -------------------------------------------------------------------- */ - /* Configuration : Disabled timeBased packetBased timePacketBased */ - /* Values to set : 1 2 3 4 */ - /* -------------------------------------------------------------------- */ + /* + * Group Key Update Policy Selection + * ----------------------------------------------------------- + * Configuration : Disabled timeBased packetBased timePacketBased + * Values to set : 1 2 3 4 + * ----------------------------------------------------------- + */ WID_REKEY_POLICY = 0x0019, - /* Allow Short Slot */ - /* -------------------------------------------------------------- */ - /* Configuration : Disallow Short Slot Allow Short Slot */ - /* (Enable Only Long Slot) (Enable Short Slot if applicable)*/ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * Allow Short Slot + * ----------------------------------------------------------- + * Configuration : Disallow Short Slot Allow Short Slot + * (Enable Only Long Slot) (Enable Short Slot if applicable) + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_SHORT_SLOT_ALLOWED = 0x001A, WID_PHY_ACTIVE_REG = 0x001B, - /* 11b Tx Power Level */ - /* -------------------------------------------------------------------- */ - /* Configuration : Sets TX Power (Higher the value greater the power) */ - /* Values to set : Any value between 0 and 63 (inclusive; Default is 48)*/ - /* -------------------------------------------------------------------- */ + /* + * 11b Tx Power Level + * ----------------------------------------------------------- + * Configuration : Sets TX Power (Higher the value greater the power) + * Values to set : Any value between 0 and 63 (inclusive Default 48) + * ----------------------------------------------------------- + */ WID_TX_POWER_LEVEL_11B = 0x001D, - /* Scan Request */ - /* -------------------------------------------------------------------- */ - /* Configuration : Request default scan */ - /* Values to set : 0 */ - /* -------------------------------------------------------------------- */ + /* + * Scan Request + * ----------------------------------------------------------- + * Configuration : Request default scan + * Values to set : 0 + * ----------------------------------------------------------- + */ WID_START_SCAN_REQ = 0x001E, - /* Rssi (get only) */ - /* -------------------------------------------------------------------- */ - /* Configuration : */ - /* Values to get : Rssi value */ - /* -------------------------------------------------------------------- */ + /* + * Rssi (get only) + * ----------------------------------------------------------- + * Configuration : + * Values to get : Rssi value + * ----------------------------------------------------------- + */ WID_RSSI = 0x001F, - /* Join Request */ - /* -------------------------------------------------------------------- */ - /* Configuration : Request to join */ - /* Values to set : index of scan result */ - /* -------------------------------------------------------------------- */ + /* + * Join Request + * ----------------------------------------------------------- + * Configuration : Request to join + * Values to set : index of scan result + * ----------------------------------------------------------- + */ WID_JOIN_REQ = 0x0020, - WID_LINKSPEED = 0x0026, + WID_LINKSPEED = 0x0026, - /* Enable User Control of TX Power */ - /* -------------------------------------------------------------------- */ - /* Configuration : Disable Enable */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------------- */ + /* + * Enable User Control of TX Power + * ----------------------------------------------------------- + * Configuration : Disable Enable + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_USER_CONTROL_ON_TX_POWER = 0x0027, WID_MEMORY_ACCESS_8BIT = 0x0029, - /* Enable Auto RX Sensitivity feature */ - /* -------------------------------------------------------------------- */ - /* Configuration : Disable Enable */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------------- */ + /* + * Enable Auto RX Sensitivity feature + * ----------------------------------------------------------- + * Configuration : Disable Enable + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_AUTO_RX_SENSITIVITY = 0x0032, - /* Receive Buffer Based Ack */ - /* -------------------------------------------------------------------- */ - /* Configuration : Disable Enable */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------------- */ + /* + * Receive Buffer Based Ack + * ----------------------------------------------------------- + * Configuration : Disable Enable + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_DATAFLOW_CONTROL = 0x0033, - /* Scan Filter */ - /* -------------------------------------------------------------------- */ - /* Configuration : Class No filter AP only Station Only */ - /* Values to set : 0 1 2 */ - /* Configuration : Priority High Rssi Low Rssi Detect */ - /* Values to set : 0 0x4 0x08 */ - /* Configuration : Channel filter off filter on */ - /* Values to set : 0 0x10 */ - /* -------------------------------------------------------------------- */ + /* + * Scan Filter + * ----------------------------------------------------------- + * Configuration : Class No filter AP only Station Only + * Values to set : 0 1 2 + * Configuration : Priority High Rssi Low Rssi Detect + * Values to set : 0 0x4 0x0 + * Configuration : Channel filter off filter on + * Values to set : 0 0x10 + * ----------------------------------------------------------- + */ WID_SCAN_FILTER = 0x0036, - /* Link Loss Threshold (measure in the beacon period) */ - /* -------------------------------------------------------------------- */ - /* Configuration : Any value between 10 and 254 (Set to 255 to disable it) */ - /* Values to set : Same value. Default is 10 */ - /* -------------------------------------------------------------------- */ + /* + * Link Loss Threshold (measure in the beacon period) + * ----------------------------------------------------------- + * Configuration : Any value between 10 and 254(Set to 255 disable) + * Values to set : Same value. Default is 10 + * ----------------------------------------------------------- + */ WID_LINK_LOSS_THRESHOLD = 0x0037, WID_ABORT_RUNNING_SCAN = 0x003E, @@ -621,103 +683,127 @@ typedef enum { /* NMAC Character WID list */ WID_WPS_START = 0x0043, - /* Protection mode for MAC */ - /* -------------------------------------------------------------- */ - /* Configuration : Auto No protection ERP HT GF */ - /* Values to set : 0 1 2 3 4 */ - /* -------------------------------------------------------------- */ + /* + * Protection mode for MAC + * ----------------------------------------------------------- + * Configuration : Auto No protection ERP HT GF + * Values to set : 0 1 2 3 4 + * ----------------------------------------------------------- + */ WID_11N_PROT_MECH = 0x0080, - /* ERP Protection type for MAC */ - /* -------------------------------------------------------------- */ - /* Configuration : Self-CTS RTS-CTS */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * ERP Protection type for MAC + * ----------------------------------------------------------- + * Configuration : Self-CTS RTS-CTS + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_11N_ERP_PROT_TYPE = 0x0081, - /* HT Option Enable */ - /* -------------------------------------------------------------- */ - /* Configuration : HT Enable HT Disable */ - /* Values to set : 1 0 */ - /* -------------------------------------------------------------- */ + /* + * HT Option Enable + * ----------------------------------------------------------- + * Configuration : HT Enable HT Disable + * Values to set : 1 0 + * ----------------------------------------------------------- + */ WID_11N_ENABLE = 0x0082, - /* 11n Operating mode (Note that 11g operating mode will also be */ - /* used in addition to this, if this is set to HT Mixed mode) */ - /* -------------------------------------------------------------- */ - /* Configuration : HT Mixed HT Only-20MHz HT Only-20/40MHz */ - /* Values to set : 1 2 3 */ - /* -------------------------------------------------------------- */ + /* + * 11n Operating mode (Note that 11g operating mode will also be + * used in addition to this, if this is set to HT Mixed mode) + * ----------------------------------------------------------- + * Configuration : HT Mixed HT Only-20MHz HT Only-20/40MHz + * Values to set : 1 2 3 + * ----------------------------------------------------------- + */ WID_11N_OPERATING_MODE = 0x0083, - /* 11n OBSS non-HT STA Detection flag */ - /* -------------------------------------------------------------- */ - /* Configuration : Do not detect */ - /* Values to set : 0 */ - /* Configuration : Detect, do not protect or report */ - /* Values to set : 1 */ - /* Configuration : Detect, protect and do not report */ - /* Values to set : 2 */ - /* Configuration : Detect, protect and report to other BSS */ - /* Values to set : 3 */ - /* -------------------------------------------------------------- */ + /* + * 11n OBSS non-HT STA Detection flag + * ----------------------------------------------------------- + * Configuration : Do not detect + * Values to set : 0 + * Configuration : Detect, do not protect or report + * Values to set : 1 + * Configuration : Detect, protect and do not report + * Values to set : 2 + * Configuration : Detect, protect and report to other BSS + * Values to set : 3 + * ----------------------------------------------------------- + */ WID_11N_OBSS_NONHT_DETECTION = 0x0084, - /* 11n HT Protection Type */ - /* -------------------------------------------------------------- */ - /* Configuration : RTS-CTS First Frame Exchange at non-HT-rate */ - /* Values to set : 0 1 */ - /* Configuration : LSIG TXOP First Frame Exchange in Mixed Fmt */ - /* Values to set : 2 3 */ - /* -------------------------------------------------------------- */ + /* + * 11n HT Protection Type + * ----------------------------------------------------------- + * Configuration : RTS-CTS First Frame Exchange at non-HT-rate + * Values to set : 0 1 + * Configuration : LSIG TXOP First Frame Exchange in Mixed Fmt + * Values to set : 2 3 + * ----------------------------------------------------------- + */ WID_11N_HT_PROT_TYPE = 0x0085, - /* 11n RIFS Protection Enable Flag */ - /* -------------------------------------------------------------- */ - /* Configuration : Disable Enable */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * 11n RIFS Protection Enable Flag + * ----------------------------------------------------------- + * Configuration : Disable Enable + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_11N_RIFS_PROT_ENABLE = 0x0086, - /* SMPS Mode */ - /* -------------------------------------------------------------- */ - /* Configuration : Static Dynamic MIMO (Power Save Disabled) */ - /* Values to set : 1 2 3 */ - /* -------------------------------------------------------------- */ + /* + * SMPS Mode + * ----------------------------------------------------------- + * Configuration : Static Dynamic MIMO (Power Save Disabled) + * Values to set : 1 2 3 + * ----------------------------------------------------------- + */ WID_11N_SMPS_MODE = 0x0087, - /* Current transmit MCS */ - /* -------------------------------------------------------------- */ - /* Configuration : MCS Index for data rate */ - /* Values to set : 0 to 7 */ - /* -------------------------------------------------------------- */ + /* + * Current transmit MCS + * ----------------------------------------------------------- + * Configuration : MCS Index for data rate + * Values to set : 0 to 7 + * ----------------------------------------------------------- + */ WID_11N_CURRENT_TX_MCS = 0x0088, WID_11N_PRINT_STATS = 0x0089, - /* 11n Short GI Enable Flag */ - /* -------------------------------------------------------------- */ - /* Configuration : Disable Enable */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * 11n Short GI Enable Flag + * ----------------------------------------------------------- + * Configuration : Disable Enable + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_11N_SHORT_GI_ENABLE = 0x008D, - /* 11n RIFS Enable Flag */ - /* -------------------------------------------------------------- */ - /* Configuration : Disable Enable */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * 11n RIFS Enable Flag + * ----------------------------------------------------------- + * Configuration : Disable Enable + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_RIFS_MODE = 0x0094, - /* TX Abort Feature */ - /* -------------------------------------------------------------- */ - /* Configuration : Disable Self CTS Enable Self CTS */ - /* Values to set : 0 1 */ - /* Configuration : Disable TX Abort Enable TX Abort */ - /* Values to set : 2 3 */ - /* Configuration : Enable HW TX Abort Enable SW TX Abort */ - /* Values to set : 4 5 */ - /* -------------------------------------------------------------- */ + /* + * TX Abort Feature + * ----------------------------------------------------------- + * Configuration : Disable Self CTS Enable Self CTS + * Values to set : 0 1 + * Configuration : Disable TX Abort Enable TX Abort + * Values to set : 2 3 + * Configuration : Enable HW TX Abort Enable SW TX Abort + * Values to set : 4 5 + * ----------------------------------------------------------- + */ WID_TX_ABORT_CONFIG = 0x00A1, WID_REG_TSSI_11B_VALUE = 0x00A6, @@ -728,18 +814,22 @@ typedef enum { WID_DSCR_TSSI_11G_VALUE = 0x00AB, WID_DSCR_TSSI_11N_VALUE = 0x00AC, - /* Immediate Block-Ack Support */ - /* -------------------------------------------------------------- */ - /* Configuration : Disable Enable */ - /* Values to set : 0 1 */ - /* -------------------------------------------------------------- */ + /* + * Immediate Block-Ack Support + * ----------------------------------------------------------- + * Configuration : Disable Enable + * Values to set : 0 1 + * ----------------------------------------------------------- + */ WID_11N_IMMEDIATE_BA_ENABLED = 0x00AF, - /* TXOP Disable Flag */ - /* -------------------------------------------------------------- */ - /* Configuration : Disable Enable */ - /* Values to set : 1 0 */ - /* -------------------------------------------------------------- */ + /* + * TXOP Disable Flag + * ----------------------------------------------------------- + * Configuration : Disable Enable + * Values to set : 1 0 + * ----------------------------------------------------------- + */ WID_11N_TXOP_PROT_DISABLE = 0x00B0, WID_TX_POWER_LEVEL_11N = 0x00B1, @@ -752,19 +842,23 @@ typedef enum { WID_DEL_BEACON = 0x00CA, WID_LOGTerminal_Switch = 0x00CD, - /* EMAC Short WID list */ - /* RTS Threshold */ - /* -------------------------------------------------------------- */ - /* Configuration : Any value between 256 to 2347 */ - /* Values to set : Same value. Default is 2347 */ - /* -------------------------------------------------------------- */ + /* EMAC Short WID list */ + /* RTS Threshold */ + /* + * ----------------------------------------------------------- + * Configuration : Any value between 256 to 2347 + * Values to set : Same value. Default is 2347 + * ----------------------------------------------------------- + */ WID_RTS_THRESHOLD = 0x1000, - /* Fragmentation Threshold */ - /* -------------------------------------------------------------- */ - /* Configuration : Any value between 256 to 2346 */ - /* Values to set : Same value. Default is 2346 */ - /* -------------------------------------------------------------- */ + /* + * Fragmentation Threshold + * ----------------------------------------------------------- + * Configuration : Any value between 256 to 2346 + * Values to set : Same value. Default is 2346 + * ----------------------------------------------------------- + */ WID_FRAG_THRESHOLD = 0x1001, WID_SHORT_RETRY_LIMIT = 0x1002, @@ -849,9 +943,9 @@ typedef enum { WID_ASSOC_REQ_INFO = 0x301F, WID_ASSOC_RES_INFO = 0x3020, WID_MANUFACTURER = 0x3026, /*Added for CAPI tool */ - WID_MODEL_NAME = 0x3027, /*Added for CAPI tool */ + WID_MODEL_NAME = 0x3027, /*Added for CAPI tool */ WID_MODEL_NUM = 0x3028, /*Added for CAPI tool */ - WID_DEVICE_NAME = 0x3029, /*Added for CAPI tool */ + WID_DEVICE_NAME = 0x3029, /*Added for CAPI tool */ /* NMAC String WID list */ WID_11N_P_ACTION_REQ = 0x3080, From 531c7ceb934f709ce2b8847b1ace499727e11de1 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 22 Sep 2015 14:34:46 +0900 Subject: [PATCH 0583/2431] staging: wilc1000: wilc_wlan_if.h: align define, enum and structure This patch fix alignment of defines and items in enum and structure. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan_if.h | 578 ++++++++++++------------ 1 file changed, 289 insertions(+), 289 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 0863592daecf..7a1b9433ddaa 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -22,11 +22,11 @@ * ********************************************/ -#define N_INIT 0x00000001 -#define N_ERR 0x00000002 -#define N_TXQ 0x00000004 -#define N_INTR 0x00000008 -#define N_RXQ 0x00000010 +#define N_INIT 0x00000001 +#define N_ERR 0x00000002 +#define N_TXQ 0x00000004 +#define N_INTR 0x00000008 +#define N_RXQ 0x00000010 /******************************************** * @@ -34,9 +34,9 @@ * ********************************************/ -#define HIF_SDIO (0) -#define HIF_SPI BIT(0) -#define HIF_SDIO_GPIO_IRQ BIT(2) +#define HIF_SDIO (0) +#define HIF_SPI BIT(0) +#define HIF_SDIO_GPIO_IRQ BIT(2) /******************************************** * @@ -44,8 +44,8 @@ * ********************************************/ -#define CE_TX_BUFFER_SIZE (64 * 1024) -#define CE_RX_BUFFER_SIZE (384 * 1024) +#define CE_TX_BUFFER_SIZE (64 * 1024) +#define CE_RX_BUFFER_SIZE (384 * 1024) /******************************************** * @@ -54,21 +54,21 @@ ********************************************/ typedef struct { - u32 read_write: 1; - u32 function: 3; - u32 raw: 1; - u32 address: 17; - u32 data: 8; + u32 read_write: 1; + u32 function: 3; + u32 raw: 1; + u32 address: 17; + u32 data: 8; } sdio_cmd52_t; typedef struct { /* struct { */ - u32 read_write: 1; - u32 function: 3; - u32 block_mode: 1; - u32 increment: 1; - u32 address: 17; - u32 count: 9; + u32 read_write: 1; + u32 function: 3; + u32 block_mode: 1; + u32 increment: 1; + u32 address: 17; + u32 count: 9; /* } bit; */ u8 *buffer; u32 block_size; @@ -107,10 +107,10 @@ typedef struct { typedef struct { void (*mac_indicate)(int); } wilc_wlan_indicate_func_t; -#define WILC_MAC_INDICATE_STATUS 0x1 -#define WILC_MAC_STATUS_INIT -1 -#define WILC_MAC_STATUS_READY 0 -#define WILC_MAC_STATUS_CONNECT 1 +#define WILC_MAC_INDICATE_STATUS 0x1 +#define WILC_MAC_STATUS_INIT -1 +#define WILC_MAC_STATUS_READY 0 +#define WILC_MAC_STATUS_CONNECT 1 #define WILC_MAC_INDICATE_SCAN 0x2 @@ -152,7 +152,7 @@ struct tx_complete_data { typedef void (*wilc_tx_complete_func_t)(void *, int); -#define WILC_TX_ERR_NO_BUF (-2) +#define WILC_TX_ERR_NO_BUF (-2) typedef struct { int (*wlan_firmware_download)(const u8 *, u32); @@ -178,153 +178,153 @@ typedef struct { #define MAX_SSID_LEN 33 #define MAX_RATES_SUPPORTED 12 -#define INFINITE_SLEEP_TIME ((u32)0xFFFFFFFF) +#define INFINITE_SLEEP_TIME ((u32)0xFFFFFFFF) #ifdef WILC_PARSE_SCAN_IN_HOST typedef enum { - SUPP_RATES_IE = 1, - EXT_SUPP_RATES_IE = 50, - HT_CAPABILITY_IE = 45, - RSN_IE = 48, - WPA_IE = 221, - WMM_IE = 221, - P2P_IE = 221, + SUPP_RATES_IE = 1, + EXT_SUPP_RATES_IE = 50, + HT_CAPABILITY_IE = 45, + RSN_IE = 48, + WPA_IE = 221, + WMM_IE = 221, + P2P_IE = 221, } BEACON_IE; #endif typedef enum { - INFRASTRUCTURE = 0, + INFRASTRUCTURE = 0, INDEPENDENT, AP, } BSSTYPE_T; typedef enum { - RATE_AUTO = 0, - RATE_1MB = 1, - RATE_2MB = 2, - RATE_5MB = 5, - RATE_6MB = 6, - RATE_9MB = 9, - RATE_11MB = 11, - RATE_12MB = 12, - RATE_18MB = 18, - RATE_24MB = 24, - RATE_26MB = 36, - RATE_48MB = 48, - RATE_54MB = 54 + RATE_AUTO = 0, + RATE_1MB = 1, + RATE_2MB = 2, + RATE_5MB = 5, + RATE_6MB = 6, + RATE_9MB = 9, + RATE_11MB = 11, + RATE_12MB = 12, + RATE_18MB = 18, + RATE_24MB = 24, + RATE_26MB = 36, + RATE_48MB = 48, + RATE_54MB = 54 } TX_RATE_T; typedef enum { - B_ONLY_MODE = 0, /* 1, 2 M, otherwise: 5, 11 M */ - G_ONLY_MODE, /* 6, 12, 24 M, otherwise: 9, 18, 36, 48, 54 M */ - G_MIXED_11B_1_MODE, /* 1, 2, 5.5, 11 M, otherwise: all on */ - G_MIXED_11B_2_MODE, /* 1, 2, 5, 11, 6, 12, 24 M, otherwise: all on */ + B_ONLY_MODE = 0, /* 1, 2 M, otherwise 5, 11 M */ + G_ONLY_MODE, /* 6,12,24 otherwise 9,18,36,48,54 */ + G_MIXED_11B_1_MODE, /* 1,2,5.5,11 otherwise all on */ + G_MIXED_11B_2_MODE, /* 1,2,5,11,6,12,24 otherwise all on */ } G_OPERATING_MODE_T; typedef enum { - G_SHORT_PREAMBLE = 0, /* Short Preamble */ - G_LONG_PREAMBLE = 1, /* Long Preamble */ - G_AUTO_PREAMBLE = 2, /* Auto Preamble Selection */ + G_SHORT_PREAMBLE = 0, /* Short Preamble */ + G_LONG_PREAMBLE = 1, /* Long Preamble */ + G_AUTO_PREAMBLE = 2, /* Auto Preamble Selection */ } G_PREAMBLE_T; -#define MAC_CONNECTED 1 -#define MAC_DISCONNECTED 0 +#define MAC_CONNECTED 1 +#define MAC_DISCONNECTED 0 #define SCAN_DONE TRUE typedef enum { - PASSIVE_SCAN = 0, - ACTIVE_SCAN = 1, + PASSIVE_SCAN = 0, + ACTIVE_SCAN = 1, } SCANTYPE_T; typedef enum { - NO_POWERSAVE = 0, - MIN_FAST_PS = 1, - MAX_FAST_PS = 2, - MIN_PSPOLL_PS = 3, - MAX_PSPOLL_PS = 4 + NO_POWERSAVE = 0, + MIN_FAST_PS = 1, + MAX_FAST_PS = 2, + MIN_PSPOLL_PS = 3, + MAX_PSPOLL_PS = 4 } USER_PS_MODE_T; typedef enum { - CHIP_WAKEDUP = 0, + CHIP_WAKEDUP = 0, CHIP_SLEEPING_AUTO = 1, - CHIP_SLEEPING_MANUAL = 2 + CHIP_SLEEPING_MANUAL = 2 } CHIP_PS_STATE_T; typedef enum { - ACQUIRE_ONLY = 0, + ACQUIRE_ONLY = 0, ACQUIRE_AND_WAKEUP = 1, } BUS_ACQUIRE_T; typedef enum { - RELEASE_ONLY = 0, - RELEASE_ALLOW_SLEEP = 1, + RELEASE_ONLY = 0, + RELEASE_ALLOW_SLEEP = 1, } BUS_RELEASE_T; typedef enum { - NO_SECURITY = 0, - WEP_40 = 0x3, - WEP_104 = 0x7, - WPA_AES = 0x29, - WPA_TKIP = 0x49, - WPA_AES_TKIP = 0x69, /* Aes or Tkip */ - WPA2_AES = 0x31, - WPA2_TKIP = 0x51, - WPA2_AES_TKIP = 0x71, /* Aes or Tkip */ + NO_SECURITY = 0, + WEP_40 = 0x3, + WEP_104 = 0x7, + WPA_AES = 0x29, + WPA_TKIP = 0x49, + WPA_AES_TKIP = 0x69, /* Aes or Tkip */ + WPA2_AES = 0x31, + WPA2_TKIP = 0x51, + WPA2_AES_TKIP = 0x71, /* Aes or Tkip */ } SECURITY_T; typedef enum { - OPEN_SYSTEM = 1, - SHARED_KEY = 2, - ANY = 3, - IEEE8021 = 5 + OPEN_SYSTEM = 1, + SHARED_KEY = 2, + ANY = 3, + IEEE8021 = 5 } AUTHTYPE_T; typedef enum { - SITE_SURVEY_1CH = 0, - SITE_SURVEY_ALL_CH = 1, - SITE_SURVEY_OFF = 2 + SITE_SURVEY_1CH = 0, + SITE_SURVEY_ALL_CH = 1, + SITE_SURVEY_OFF = 2 } SITE_SURVEY_T; typedef enum { - NORMAL_ACK = 0, + NORMAL_ACK = 0, NO_ACK, } ACK_POLICY_T; typedef enum { - DONT_RESET = 0, - DO_RESET = 1, - NO_REQUEST = 2, + DONT_RESET = 0, + DO_RESET = 1, + NO_REQUEST = 2, } RESET_REQ_T; typedef enum { - REKEY_DISABLE = 1, + REKEY_DISABLE = 1, REKEY_TIME_BASE, REKEY_PKT_BASE, REKEY_TIME_PKT_BASE } RSNA_REKEY_POLICY_T; typedef enum { - FILTER_NO = 0x00, - FILTER_AP_ONLY = 0x01, - FILTER_STA_ONLY = 0x02 + FILTER_NO = 0x00, + FILTER_AP_ONLY = 0x01, + FILTER_STA_ONLY = 0x02 } SCAN_CLASS_FITLER_T; typedef enum { - PRI_HIGH_RSSI = 0x00, - PRI_LOW_RSSI = 0x04, - PRI_DETECT = 0x08 + PRI_HIGH_RSSI = 0x00, + PRI_LOW_RSSI = 0x04, + PRI_DETECT = 0x08 } SCAN_PRI_T; typedef enum { - CH_FILTER_OFF = 0x00, - CH_FILTER_ON = 0x10 + CH_FILTER_OFF = 0x00, + CH_FILTER_ON = 0x10 } CH_FILTER_T; typedef enum { - AUTO_PROT = 0, /* Auto */ - NO_PROT, /* Do not use any protection */ - ERP_PROT, /* Protect all ERP frame exchanges */ - HT_PROT, /* Protect all HT frame exchanges */ - GF_PROT, /* Protect all GF frame exchanges */ + AUTO_PROT = 0, /* Auto */ + NO_PROT, /* Do not use any protection */ + ERP_PROT, /* Protect all ERP frame exchanges */ + HT_PROT, /* Protect all HT frame exchanges */ + GF_PROT, /* Protect all GF frame exchanges */ } N_PROTECTION_MODE_T; typedef enum { @@ -333,29 +333,29 @@ typedef enum { } G_PROTECTION_MODE_T; typedef enum { - HT_MIXED_MODE = 1, + HT_MIXED_MODE = 1, HT_ONLY_20MHZ_MODE, HT_ONLY_20_40MHZ_MODE, } N_OPERATING_MODE_T; typedef enum { - NO_DETECT = 0, - DETECT_ONLY = 1, - DETECT_PROTECT = 2, - DETECT_PROTECT_REPORT = 3, + NO_DETECT = 0, + DETECT_ONLY = 1, + DETECT_PROTECT = 2, + DETECT_PROTECT_REPORT = 3, } N_OBSS_DETECTION_T; typedef enum { - RTS_CTS_NONHT_PROT = 0, /* RTS-CTS at non-HT rate */ - FIRST_FRAME_NONHT_PROT, /* First frame at non-HT rate */ - LSIG_TXOP_PROT, /* LSIG TXOP Protection */ - FIRST_FRAME_MIXED_PROT, /* First frame at Mixed format */ + RTS_CTS_NONHT_PROT = 0, /* RTS-CTS at non-HT rate */ + FIRST_FRAME_NONHT_PROT, /* First frame at non-HT rate */ + LSIG_TXOP_PROT, /* LSIG TXOP Protection */ + FIRST_FRAME_MIXED_PROT, /* First frame at Mixed format */ } N_PROTECTION_TYPE_T; typedef enum { - STATIC_MODE = 1, - DYNAMIC_MODE = 2, - MIMO_MODE = 3, /* power save disable */ + STATIC_MODE = 1, + DYNAMIC_MODE = 2, + MIMO_MODE = 3, /* power save disable */ } N_SMPS_MODE_T; typedef enum { @@ -368,21 +368,21 @@ typedef enum { } TX_ABORT_OPTION_T; typedef enum { - WID_CHAR = 0, - WID_SHORT = 1, - WID_INT = 2, - WID_STR = 3, - WID_BIN_DATA = 4, - WID_BIN = 5, - WID_IP = 6, - WID_ADR = 7, - WID_UNDEF = 8, - WID_TYPE_FORCE_32BIT = 0xFFFFFFFF + WID_CHAR = 0, + WID_SHORT = 1, + WID_INT = 2, + WID_STR = 3, + WID_BIN_DATA = 4, + WID_BIN = 5, + WID_IP = 6, + WID_ADR = 7, + WID_UNDEF = 8, + WID_TYPE_FORCE_32BIT = 0xFFFFFFFF } WID_TYPE_T, tenuWIDtype; typedef enum { - WID_NIL = 0xffff, + WID_NIL = 0xffff, /* * BSS Type @@ -391,7 +391,7 @@ typedef enum { * Values to set : 0 1 2 * ----------------------------------------------------------- */ - WID_BSS_TYPE = 0x0000, + WID_BSS_TYPE = 0x0000, /* * Transmit Rate @@ -400,7 +400,7 @@ typedef enum { * Values to set : 1 2 5 11 6 9 12 18 24 36 48 54 * ----------------------------------------------------------- */ - WID_CURRENT_TX_RATE = 0x0001, + WID_CURRENT_TX_RATE = 0x0001, /* * Channel @@ -409,7 +409,7 @@ typedef enum { * Values to set : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 * ----------------------------------------------------------- */ - WID_CURRENT_CHANNEL = 0x0002, + WID_CURRENT_CHANNEL = 0x0002, /* * Preamble @@ -418,7 +418,7 @@ typedef enum { * Values to set : 0 1 2 * ----------------------------------------------------------- */ - WID_PREAMBLE = 0x0003, + WID_PREAMBLE = 0x0003, /* * 11g operating mode (ignored if 11g not present) @@ -427,7 +427,7 @@ typedef enum { * Values to set : 1 2 3 * ----------------------------------------------------------- */ - WID_11G_OPERATING_MODE = 0x0004, + WID_11G_OPERATING_MODE = 0x0004, /* * Mac status (response only) @@ -436,7 +436,7 @@ typedef enum { * Values to get : 0 1 * ----------------------------------------------------------- */ - WID_STATUS = 0x0005, + WID_STATUS = 0x0005, /* * Scan type @@ -445,7 +445,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_SCAN_TYPE = 0x0007, + WID_SCAN_TYPE = 0x0007, /* * Key Id (WEP default key Id) @@ -454,7 +454,7 @@ typedef enum { * Values to set : Same value. Default is 0 * ----------------------------------------------------------- */ - WID_KEY_ID = 0x0009, + WID_KEY_ID = 0x0009, /* * QoS Enable @@ -463,7 +463,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_QOS_ENABLE = 0x000A, + WID_QOS_ENABLE = 0x000A, /* * Power Management @@ -472,7 +472,7 @@ typedef enum { * Values to set : 0 1 2 * ----------------------------------------------------------- */ - WID_POWER_MANAGEMENT = 0x000B, + WID_POWER_MANAGEMENT = 0x000B, /* * WEP/802 11I Configuration @@ -483,7 +483,7 @@ typedef enum { * Values (0x) : 69 71 * ----------------------------------------------------------- */ - WID_11I_MODE = 0x000C, + WID_11I_MODE = 0x000C, /* * WEP Configuration: Used in BSS STA mode only when WEP is enabled @@ -492,7 +492,7 @@ typedef enum { * Values (0x) : 01 02 03 | BIT2 * ----------------------------------------------------------- */ - WID_AUTH_TYPE = 0x000D, + WID_AUTH_TYPE = 0x000D, /* * Site Survey Type @@ -503,7 +503,7 @@ typedef enum { * Disable Site Survey : 2 * ----------------------------------------------------------- */ - WID_SITE_SURVEY = 0x000E, + WID_SITE_SURVEY = 0x000E, /* * Listen Interval @@ -512,7 +512,7 @@ typedef enum { * Values to set : Same value. Default is 3 * ----------------------------------------------------------- */ - WID_LISTEN_INTERVAL = 0x000F, + WID_LISTEN_INTERVAL = 0x000F, /* * DTIM Period @@ -521,7 +521,7 @@ typedef enum { * Values to set : Same value. Default is 3 * ----------------------------------------------------------- */ - WID_DTIM_PERIOD = 0x0010, + WID_DTIM_PERIOD = 0x0010, /* * ACK Policy @@ -530,7 +530,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_ACK_POLICY = 0x0011, + WID_ACK_POLICY = 0x0011, /* * Reset MAC (Set only) @@ -539,7 +539,7 @@ typedef enum { * Values to set : 0 1 2 * ----------------------------------------------------------- */ - WID_RESET = 0x0012, + WID_RESET = 0x0012, /* * Broadcast SSID Option: Setting this will adhere to "" SSID element @@ -548,7 +548,7 @@ typedef enum { * Values to set : 1 0 * ----------------------------------------------------------- */ - WID_BCAST_SSID = 0x0015, + WID_BCAST_SSID = 0x0015, /* * Disconnect (Station) @@ -557,7 +557,7 @@ typedef enum { * Values to set : Association ID * ----------------------------------------------------------- */ - WID_DISCONNECT = 0x0016, + WID_DISCONNECT = 0x0016, /* * 11a Tx Power Level @@ -566,7 +566,7 @@ typedef enum { * Values to set : Any value between 0 and 63 (inclusive Default 48) * ----------------------------------------------------------- */ - WID_TX_POWER_LEVEL_11A = 0x0018, + WID_TX_POWER_LEVEL_11A = 0x0018, /* * Group Key Update Policy Selection @@ -575,7 +575,7 @@ typedef enum { * Values to set : 1 2 3 4 * ----------------------------------------------------------- */ - WID_REKEY_POLICY = 0x0019, + WID_REKEY_POLICY = 0x0019, /* * Allow Short Slot @@ -585,9 +585,9 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_SHORT_SLOT_ALLOWED = 0x001A, + WID_SHORT_SLOT_ALLOWED = 0x001A, - WID_PHY_ACTIVE_REG = 0x001B, + WID_PHY_ACTIVE_REG = 0x001B, /* * 11b Tx Power Level @@ -596,7 +596,7 @@ typedef enum { * Values to set : Any value between 0 and 63 (inclusive Default 48) * ----------------------------------------------------------- */ - WID_TX_POWER_LEVEL_11B = 0x001D, + WID_TX_POWER_LEVEL_11B = 0x001D, /* * Scan Request @@ -605,7 +605,7 @@ typedef enum { * Values to set : 0 * ----------------------------------------------------------- */ - WID_START_SCAN_REQ = 0x001E, + WID_START_SCAN_REQ = 0x001E, /* * Rssi (get only) @@ -614,7 +614,7 @@ typedef enum { * Values to get : Rssi value * ----------------------------------------------------------- */ - WID_RSSI = 0x001F, + WID_RSSI = 0x001F, /* * Join Request @@ -623,7 +623,7 @@ typedef enum { * Values to set : index of scan result * ----------------------------------------------------------- */ - WID_JOIN_REQ = 0x0020, + WID_JOIN_REQ = 0x0020, WID_LINKSPEED = 0x0026, @@ -634,9 +634,9 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_USER_CONTROL_ON_TX_POWER = 0x0027, + WID_USER_CONTROL_ON_TX_POWER = 0x0027, - WID_MEMORY_ACCESS_8BIT = 0x0029, + WID_MEMORY_ACCESS_8BIT = 0x0029, /* * Enable Auto RX Sensitivity feature @@ -645,7 +645,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_AUTO_RX_SENSITIVITY = 0x0032, + WID_AUTO_RX_SENSITIVITY = 0x0032, /* * Receive Buffer Based Ack @@ -654,7 +654,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_DATAFLOW_CONTROL = 0x0033, + WID_DATAFLOW_CONTROL = 0x0033, /* * Scan Filter @@ -667,7 +667,7 @@ typedef enum { * Values to set : 0 0x10 * ----------------------------------------------------------- */ - WID_SCAN_FILTER = 0x0036, + WID_SCAN_FILTER = 0x0036, /* * Link Loss Threshold (measure in the beacon period) @@ -676,12 +676,12 @@ typedef enum { * Values to set : Same value. Default is 10 * ----------------------------------------------------------- */ - WID_LINK_LOSS_THRESHOLD = 0x0037, + WID_LINK_LOSS_THRESHOLD = 0x0037, - WID_ABORT_RUNNING_SCAN = 0x003E, + WID_ABORT_RUNNING_SCAN = 0x003E, /* NMAC Character WID list */ - WID_WPS_START = 0x0043, + WID_WPS_START = 0x0043, /* * Protection mode for MAC @@ -690,7 +690,7 @@ typedef enum { * Values to set : 0 1 2 3 4 * ----------------------------------------------------------- */ - WID_11N_PROT_MECH = 0x0080, + WID_11N_PROT_MECH = 0x0080, /* * ERP Protection type for MAC @@ -699,7 +699,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_11N_ERP_PROT_TYPE = 0x0081, + WID_11N_ERP_PROT_TYPE = 0x0081, /* * HT Option Enable @@ -708,7 +708,7 @@ typedef enum { * Values to set : 1 0 * ----------------------------------------------------------- */ - WID_11N_ENABLE = 0x0082, + WID_11N_ENABLE = 0x0082, /* * 11n Operating mode (Note that 11g operating mode will also be @@ -718,7 +718,7 @@ typedef enum { * Values to set : 1 2 3 * ----------------------------------------------------------- */ - WID_11N_OPERATING_MODE = 0x0083, + WID_11N_OPERATING_MODE = 0x0083, /* * 11n OBSS non-HT STA Detection flag @@ -733,7 +733,7 @@ typedef enum { * Values to set : 3 * ----------------------------------------------------------- */ - WID_11N_OBSS_NONHT_DETECTION = 0x0084, + WID_11N_OBSS_NONHT_DETECTION = 0x0084, /* * 11n HT Protection Type @@ -744,7 +744,7 @@ typedef enum { * Values to set : 2 3 * ----------------------------------------------------------- */ - WID_11N_HT_PROT_TYPE = 0x0085, + WID_11N_HT_PROT_TYPE = 0x0085, /* * 11n RIFS Protection Enable Flag @@ -753,7 +753,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_11N_RIFS_PROT_ENABLE = 0x0086, + WID_11N_RIFS_PROT_ENABLE = 0x0086, /* * SMPS Mode @@ -762,7 +762,7 @@ typedef enum { * Values to set : 1 2 3 * ----------------------------------------------------------- */ - WID_11N_SMPS_MODE = 0x0087, + WID_11N_SMPS_MODE = 0x0087, /* * Current transmit MCS @@ -771,9 +771,9 @@ typedef enum { * Values to set : 0 to 7 * ----------------------------------------------------------- */ - WID_11N_CURRENT_TX_MCS = 0x0088, + WID_11N_CURRENT_TX_MCS = 0x0088, - WID_11N_PRINT_STATS = 0x0089, + WID_11N_PRINT_STATS = 0x0089, /* * 11n Short GI Enable Flag @@ -782,7 +782,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_11N_SHORT_GI_ENABLE = 0x008D, + WID_11N_SHORT_GI_ENABLE = 0x008D, /* * 11n RIFS Enable Flag @@ -791,7 +791,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_RIFS_MODE = 0x0094, + WID_RIFS_MODE = 0x0094, /* * TX Abort Feature @@ -804,15 +804,15 @@ typedef enum { * Values to set : 4 5 * ----------------------------------------------------------- */ - WID_TX_ABORT_CONFIG = 0x00A1, + WID_TX_ABORT_CONFIG = 0x00A1, - WID_REG_TSSI_11B_VALUE = 0x00A6, - WID_REG_TSSI_11G_VALUE = 0x00A7, - WID_REG_TSSI_11N_VALUE = 0x00A8, - WID_TX_CALIBRATION = 0x00A9, - WID_DSCR_TSSI_11B_VALUE = 0x00AA, - WID_DSCR_TSSI_11G_VALUE = 0x00AB, - WID_DSCR_TSSI_11N_VALUE = 0x00AC, + WID_REG_TSSI_11B_VALUE = 0x00A6, + WID_REG_TSSI_11G_VALUE = 0x00A7, + WID_REG_TSSI_11N_VALUE = 0x00A8, + WID_TX_CALIBRATION = 0x00A9, + WID_DSCR_TSSI_11B_VALUE = 0x00AA, + WID_DSCR_TSSI_11G_VALUE = 0x00AB, + WID_DSCR_TSSI_11N_VALUE = 0x00AC, /* * Immediate Block-Ack Support @@ -821,7 +821,7 @@ typedef enum { * Values to set : 0 1 * ----------------------------------------------------------- */ - WID_11N_IMMEDIATE_BA_ENABLED = 0x00AF, + WID_11N_IMMEDIATE_BA_ENABLED = 0x00AF, /* * TXOP Disable Flag @@ -830,18 +830,18 @@ typedef enum { * Values to set : 1 0 * ----------------------------------------------------------- */ - WID_11N_TXOP_PROT_DISABLE = 0x00B0, + WID_11N_TXOP_PROT_DISABLE = 0x00B0, - WID_TX_POWER_LEVEL_11N = 0x00B1, + WID_TX_POWER_LEVEL_11N = 0x00B1, /* Custom Character WID list */ - WID_PC_TEST_MODE = 0x00C8, + WID_PC_TEST_MODE = 0x00C8, /* SCAN Complete notification WID*/ WID_SCAN_COMPLETE = 0x00C9, - WID_DEL_BEACON = 0x00CA, + WID_DEL_BEACON = 0x00CA, - WID_LOGTerminal_Switch = 0x00CD, + WID_LOGTerminal_Switch = 0x00CD, /* EMAC Short WID list */ /* RTS Threshold */ /* @@ -850,7 +850,7 @@ typedef enum { * Values to set : Same value. Default is 2347 * ----------------------------------------------------------- */ - WID_RTS_THRESHOLD = 0x1000, + WID_RTS_THRESHOLD = 0x1000, /* * Fragmentation Threshold @@ -859,135 +859,135 @@ typedef enum { * Values to set : Same value. Default is 2346 * ----------------------------------------------------------- */ - WID_FRAG_THRESHOLD = 0x1001, + WID_FRAG_THRESHOLD = 0x1001, - WID_SHORT_RETRY_LIMIT = 0x1002, - WID_LONG_RETRY_LIMIT = 0x1003, - WID_BEACON_INTERVAL = 0x1006, - WID_MEMORY_ACCESS_16BIT = 0x1008, - WID_RX_SENSE = 0x100B, - WID_ACTIVE_SCAN_TIME = 0x100C, - WID_PASSIVE_SCAN_TIME = 0x100D, + WID_SHORT_RETRY_LIMIT = 0x1002, + WID_LONG_RETRY_LIMIT = 0x1003, + WID_BEACON_INTERVAL = 0x1006, + WID_MEMORY_ACCESS_16BIT = 0x1008, + WID_RX_SENSE = 0x100B, + WID_ACTIVE_SCAN_TIME = 0x100C, + WID_PASSIVE_SCAN_TIME = 0x100D, - WID_SITE_SURVEY_SCAN_TIME = 0x100E, - WID_JOIN_START_TIMEOUT = 0x100F, - WID_AUTH_TIMEOUT = 0x1010, - WID_ASOC_TIMEOUT = 0x1011, - WID_11I_PROTOCOL_TIMEOUT = 0x1012, - WID_EAPOL_RESPONSE_TIMEOUT = 0x1013, + WID_SITE_SURVEY_SCAN_TIME = 0x100E, + WID_JOIN_START_TIMEOUT = 0x100F, + WID_AUTH_TIMEOUT = 0x1010, + WID_ASOC_TIMEOUT = 0x1011, + WID_11I_PROTOCOL_TIMEOUT = 0x1012, + WID_EAPOL_RESPONSE_TIMEOUT = 0x1013, /* NMAC Short WID list */ - WID_11N_SIG_QUAL_VAL = 0x1085, - WID_CCA_THRESHOLD = 0x1087, + WID_11N_SIG_QUAL_VAL = 0x1085, + WID_CCA_THRESHOLD = 0x1087, /* Custom Short WID list */ /* EMAC Integer WID list */ - WID_FAILED_COUNT = 0x2000, - WID_RETRY_COUNT = 0x2001, - WID_MULTIPLE_RETRY_COUNT = 0x2002, - WID_FRAME_DUPLICATE_COUNT = 0x2003, - WID_ACK_FAILURE_COUNT = 0x2004, - WID_RECEIVED_FRAGMENT_COUNT = 0x2005, - WID_MCAST_RECEIVED_FRAME_COUNT = 0x2006, - WID_FCS_ERROR_COUNT = 0x2007, - WID_SUCCESS_FRAME_COUNT = 0x2008, - WID_HUT_TX_COUNT = 0x200A, - WID_TX_FRAGMENT_COUNT = 0x200B, - WID_TX_MULTICAST_FRAME_COUNT = 0x200C, - WID_RTS_SUCCESS_COUNT = 0x200D, - WID_RTS_FAILURE_COUNT = 0x200E, - WID_WEP_UNDECRYPTABLE_COUNT = 0x200F, - WID_REKEY_PERIOD = 0x2010, - WID_REKEY_PACKET_COUNT = 0x2011, - WID_1X_SERV_ADDR = 0x2012, - WID_STACK_IP_ADDR = 0x2013, - WID_STACK_NETMASK_ADDR = 0x2014, - WID_HW_RX_COUNT = 0x2015, - WID_MEMORY_ADDRESS = 0x201E, - WID_MEMORY_ACCESS_32BIT = 0x201F, - WID_RF_REG_VAL = 0x2021, + WID_FAILED_COUNT = 0x2000, + WID_RETRY_COUNT = 0x2001, + WID_MULTIPLE_RETRY_COUNT = 0x2002, + WID_FRAME_DUPLICATE_COUNT = 0x2003, + WID_ACK_FAILURE_COUNT = 0x2004, + WID_RECEIVED_FRAGMENT_COUNT = 0x2005, + WID_MCAST_RECEIVED_FRAME_COUNT = 0x2006, + WID_FCS_ERROR_COUNT = 0x2007, + WID_SUCCESS_FRAME_COUNT = 0x2008, + WID_HUT_TX_COUNT = 0x200A, + WID_TX_FRAGMENT_COUNT = 0x200B, + WID_TX_MULTICAST_FRAME_COUNT = 0x200C, + WID_RTS_SUCCESS_COUNT = 0x200D, + WID_RTS_FAILURE_COUNT = 0x200E, + WID_WEP_UNDECRYPTABLE_COUNT = 0x200F, + WID_REKEY_PERIOD = 0x2010, + WID_REKEY_PACKET_COUNT = 0x2011, + WID_1X_SERV_ADDR = 0x2012, + WID_STACK_IP_ADDR = 0x2013, + WID_STACK_NETMASK_ADDR = 0x2014, + WID_HW_RX_COUNT = 0x2015, + WID_MEMORY_ADDRESS = 0x201E, + WID_MEMORY_ACCESS_32BIT = 0x201F, + WID_RF_REG_VAL = 0x2021, /* NMAC Integer WID list */ - WID_11N_PHY_ACTIVE_REG_VAL = 0x2080, + WID_11N_PHY_ACTIVE_REG_VAL = 0x2080, /* Custom Integer WID list */ - WID_GET_INACTIVE_TIME = 0x2084, - WID_SET_DRV_HANDLER = 0X2085, - WID_SET_OPERATION_MODE = 0X2086, + WID_GET_INACTIVE_TIME = 0x2084, + WID_SET_DRV_HANDLER = 0X2085, + WID_SET_OPERATION_MODE = 0X2086, /* EMAC String WID list */ - WID_SSID = 0x3000, - WID_FIRMWARE_VERSION = 0x3001, - WID_OPERATIONAL_RATE_SET = 0x3002, - WID_BSSID = 0x3003, - WID_WEP_KEY_VALUE = 0x3004, - WID_11I_PSK = 0x3008, - WID_11E_P_ACTION_REQ = 0x3009, - WID_1X_KEY = 0x300A, - WID_HARDWARE_VERSION = 0x300B, - WID_MAC_ADDR = 0x300C, - WID_HUT_DEST_ADDR = 0x300D, - WID_PHY_VERSION = 0x300F, - WID_SUPP_USERNAME = 0x3010, - WID_SUPP_PASSWORD = 0x3011, - WID_SITE_SURVEY_RESULTS = 0x3012, - WID_RX_POWER_LEVEL = 0x3013, - WID_DEL_ALL_RX_BA = 0x3014, - WID_SET_STA_MAC_INACTIVE_TIME = 0x3017, - WID_ADD_WEP_KEY = 0x3019, - WID_REMOVE_WEP_KEY = 0x301A, - WID_ADD_PTK = 0x301B, - WID_ADD_RX_GTK = 0x301C, - WID_ADD_TX_GTK = 0x301D, - WID_REMOVE_KEY = 0x301E, - WID_ASSOC_REQ_INFO = 0x301F, - WID_ASSOC_RES_INFO = 0x3020, - WID_MANUFACTURER = 0x3026, /*Added for CAPI tool */ - WID_MODEL_NAME = 0x3027, /*Added for CAPI tool */ - WID_MODEL_NUM = 0x3028, /*Added for CAPI tool */ - WID_DEVICE_NAME = 0x3029, /*Added for CAPI tool */ + WID_SSID = 0x3000, + WID_FIRMWARE_VERSION = 0x3001, + WID_OPERATIONAL_RATE_SET = 0x3002, + WID_BSSID = 0x3003, + WID_WEP_KEY_VALUE = 0x3004, + WID_11I_PSK = 0x3008, + WID_11E_P_ACTION_REQ = 0x3009, + WID_1X_KEY = 0x300A, + WID_HARDWARE_VERSION = 0x300B, + WID_MAC_ADDR = 0x300C, + WID_HUT_DEST_ADDR = 0x300D, + WID_PHY_VERSION = 0x300F, + WID_SUPP_USERNAME = 0x3010, + WID_SUPP_PASSWORD = 0x3011, + WID_SITE_SURVEY_RESULTS = 0x3012, + WID_RX_POWER_LEVEL = 0x3013, + WID_DEL_ALL_RX_BA = 0x3014, + WID_SET_STA_MAC_INACTIVE_TIME = 0x3017, + WID_ADD_WEP_KEY = 0x3019, + WID_REMOVE_WEP_KEY = 0x301A, + WID_ADD_PTK = 0x301B, + WID_ADD_RX_GTK = 0x301C, + WID_ADD_TX_GTK = 0x301D, + WID_REMOVE_KEY = 0x301E, + WID_ASSOC_REQ_INFO = 0x301F, + WID_ASSOC_RES_INFO = 0x3020, + WID_MANUFACTURER = 0x3026, /*Added for CAPI tool */ + WID_MODEL_NAME = 0x3027, /*Added for CAPI tool */ + WID_MODEL_NUM = 0x3028, /*Added for CAPI tool */ + WID_DEVICE_NAME = 0x3029, /*Added for CAPI tool */ /* NMAC String WID list */ - WID_11N_P_ACTION_REQ = 0x3080, - WID_HUT_TEST_ID = 0x3081, - WID_PMKID_INFO = 0x3082, - WID_FIRMWARE_INFO = 0x3083, - WID_REGISTER_FRAME = 0x3084, - WID_DEL_ALL_STA = 0x3085, - WID_REMAIN_ON_CHAN = 0x3996, - WID_SSID_PROBE_REQ = 0x3997, - WID_JOIN_REQ_EXTENDED = 0x3998, + WID_11N_P_ACTION_REQ = 0x3080, + WID_HUT_TEST_ID = 0x3081, + WID_PMKID_INFO = 0x3082, + WID_FIRMWARE_INFO = 0x3083, + WID_REGISTER_FRAME = 0x3084, + WID_DEL_ALL_STA = 0x3085, + WID_REMAIN_ON_CHAN = 0x3996, + WID_SSID_PROBE_REQ = 0x3997, + WID_JOIN_REQ_EXTENDED = 0x3998, - WID_IP_ADDRESS = 0x3999, + WID_IP_ADDRESS = 0x3999, /* Custom String WID list */ /* EMAC Binary WID list */ - WID_UAPSD_CONFIG = 0x4001, - WID_UAPSD_STATUS = 0x4002, - WID_WMM_AP_AC_PARAMS = 0x4003, - WID_WMM_STA_AC_PARAMS = 0x4004, - WID_NETWORK_INFO = 0x4005, - WID_STA_JOIN_INFO = 0x4006, - WID_CONNECTED_STA_LIST = 0x4007, + WID_UAPSD_CONFIG = 0x4001, + WID_UAPSD_STATUS = 0x4002, + WID_WMM_AP_AC_PARAMS = 0x4003, + WID_WMM_STA_AC_PARAMS = 0x4004, + WID_NETWORK_INFO = 0x4005, + WID_STA_JOIN_INFO = 0x4006, + WID_CONNECTED_STA_LIST = 0x4007, /* NMAC Binary WID list */ - WID_11N_AUTORATE_TABLE = 0x4080, + WID_11N_AUTORATE_TABLE = 0x4080, - WID_SCAN_CHANNEL_LIST = 0x4084, + WID_SCAN_CHANNEL_LIST = 0x4084, - WID_INFO_ELEMENT_PROBE = 0x4085, - WID_INFO_ELEMENT_ASSOCIATE = 0x4086, - WID_ADD_STA = 0X4087, - WID_REMOVE_STA = 0X4088, - WID_EDIT_STA = 0X4089, - WID_ADD_BEACON = 0x408a, + WID_INFO_ELEMENT_PROBE = 0x4085, + WID_INFO_ELEMENT_ASSOCIATE = 0x4086, + WID_ADD_STA = 0X4087, + WID_REMOVE_STA = 0X4088, + WID_EDIT_STA = 0X4089, + WID_ADD_BEACON = 0x408a, WID_SETUP_MULTICAST_FILTER = 0x408b, /* Miscellaneous WIDs */ - WID_ALL = 0x7FFE, - WID_MAX = 0xFFFF + WID_ALL = 0x7FFE, + WID_MAX = 0xFFFF } WID_T; int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup); From 4653067955726266b25123b86921af09ad275a5a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:46 +0900 Subject: [PATCH 0584/2431] staging: wilc1000: rename WILC_WFI_set_power_mgmt This patch replaces WILC_WFI_set_power_mgmt with set_power_mgmt. then makes set_power_mgmt static. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index de8c83d7d662..eaec88c5a2c6 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2651,7 +2651,7 @@ static int dump_station(struct wiphy *wiphy, struct net_device *dev, /** - * @brief WILC_WFI_set_power_mgmt + * @brief set_power_mgmt * @details * @param[in] * @return int : Return 0 on Success. @@ -2659,8 +2659,8 @@ static int dump_station(struct wiphy *wiphy, struct net_device *dev, * @date 01 JUL 2012 * @version 1.0WILC_WFI_set_cqmWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_config_rssi_config */ -int WILC_WFI_set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, - bool enabled, int timeout) +static int set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, + bool enabled, int timeout) { struct wilc_priv *priv; @@ -3410,7 +3410,7 @@ static struct cfg80211_ops wilc_cfg80211_ops = { .mgmt_tx_cancel_wait = mgmt_tx_cancel_wait, .mgmt_tx = mgmt_tx, .mgmt_frame_register = wilc_mgmt_frame_register, - .set_power_mgmt = WILC_WFI_set_power_mgmt, + .set_power_mgmt = set_power_mgmt, .set_cqm_rssi_config = WILC_WFI_set_cqm_rssi_config, }; From cdc9cba5fff5c67cd6093eb0578062e0f62d8482 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:47 +0900 Subject: [PATCH 0585/2431] staging: wilc1000: remove useless comment This patch removes useless comment. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index eaec88c5a2c6..58b1481a9eee 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -13,7 +13,7 @@ #include "wilc_wfi_cfgoperations.h" #include "wilc_wlan.c" #ifdef WILC_SDIO -#include "linux_wlan_sdio.h" /* tony : for set_wiphy_dev() */ +#include "linux_wlan_sdio.h" #endif #include @@ -701,10 +701,6 @@ static int set_channel(struct wiphy *wiphy, * @version 1.0 */ -/* - * kernel version 3.8.8 supported - * tony, sswd, WILC-KR, 2013-10-29 - */ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) { struct wilc_priv *priv; @@ -1626,11 +1622,6 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, host_int_get_statistics(priv->hWILCWFIDrv, &strStatistics); - /* - * tony: 2013-11-13 - * tx_failed introduced more than - * kernel version 3.0.0 - */ sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL) | BIT(NL80211_STA_INFO_RX_PACKETS) | BIT(NL80211_STA_INFO_TX_PACKETS) | @@ -2657,7 +2648,7 @@ static int dump_station(struct wiphy *wiphy, struct net_device *dev, * @return int : Return 0 on Success. * @author mdaftedar * @date 01 JUL 2012 - * @version 1.0WILC_WFI_set_cqmWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_config_rssi_config + * @version 1.0 */ static int set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, bool enabled, int timeout) @@ -3371,7 +3362,7 @@ struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, const char *name, * @date 01 JUL 2012 * @version 1.0 */ -int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) /* tony for v3.8 support */ +int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) { PRINT_D(HOSTAPD_DBG, "Deleting virtual interface\n"); return 0; @@ -3426,7 +3417,7 @@ static struct cfg80211_ops wilc_cfg80211_ops = { * @return int : Return 0 on Success. * @author mdaftedar * @date 01 MAR 2012 - * @version 1.0WILC_WFI_set_cqmWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_configWILC_WFI_set_cqm_rssi_config_rssi_config + * @version 1.0 */ int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed) { @@ -3573,7 +3564,7 @@ struct wireless_dev *wilc_create_wiphy(struct net_device *net) wdev->wiphy->interface_modes, wdev->iftype); #ifdef WILC_SDIO - set_wiphy_dev(wdev->wiphy, &local_sdio_func->dev); /* tony */ + set_wiphy_dev(wdev->wiphy, &local_sdio_func->dev); #endif /*Register wiphy structure*/ From a8047e26c799c8c426588677cd22ac657e970d04 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:48 +0900 Subject: [PATCH 0586/2431] staging: wilc1000: rename WILC_WFI_set_cqm_rssi_config This patch replaces WILC_WFI_set_cqm_rssi_config with set_cqm_rssi_config to avoid CamelCase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 58b1481a9eee..40fd3ca31663 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2589,7 +2589,7 @@ void wilc_mgmt_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, } /** - * @brief WILC_WFI_set_cqm_rssi_config + * @brief set_cqm_rssi_config * @details Configure connection quality monitor RSSI threshold. * @param[in] struct wiphy *wiphy: * @param[in] struct net_device *dev: @@ -2600,8 +2600,8 @@ void wilc_mgmt_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, * @date 01 MAR 2012 * @version 1.0 */ -static int WILC_WFI_set_cqm_rssi_config(struct wiphy *wiphy, - struct net_device *dev, s32 rssi_thold, u32 rssi_hyst) +static int set_cqm_rssi_config(struct wiphy *wiphy, struct net_device *dev, + s32 rssi_thold, u32 rssi_hyst) { PRINT_D(CFG80211_DBG, "Setting CQM RSSi Function\n"); return 0; @@ -3402,7 +3402,7 @@ static struct cfg80211_ops wilc_cfg80211_ops = { .mgmt_tx = mgmt_tx, .mgmt_frame_register = wilc_mgmt_frame_register, .set_power_mgmt = set_power_mgmt, - .set_cqm_rssi_config = WILC_WFI_set_cqm_rssi_config, + .set_cqm_rssi_config = set_cqm_rssi_config, }; From 956d7211970693ad211d22a8c17600d9482a883c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:49 +0900 Subject: [PATCH 0587/2431] staging: wilc1000: make del_virtual_intf static This patch makes del_virtual_intf static. This function is used only at wilc_wfi_cfgoperation.c file. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 40fd3ca31663..da04e500a536 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3362,7 +3362,7 @@ struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, const char *name, * @date 01 JUL 2012 * @version 1.0 */ -int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) +static int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) { PRINT_D(HOSTAPD_DBG, "Deleting virtual interface\n"); return 0; From 85c587a5483814b5a8ca19e0ee473fc0afa232e2 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:50 +0900 Subject: [PATCH 0588/2431] staging: wilc1000: make mgmt_tx_cancel_wait static This patch makes mgmt_tx_cancel_wait static. This function is used only at wilc_wfi_cfgoperation.c file. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index da04e500a536..0c72c5ec4864 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2505,9 +2505,9 @@ int mgmt_tx(struct wiphy *wiphy, return s32Error; } -int mgmt_tx_cancel_wait(struct wiphy *wiphy, - struct wireless_dev *wdev, - u64 cookie) +static int mgmt_tx_cancel_wait(struct wiphy *wiphy, + struct wireless_dev *wdev, + u64 cookie) { struct wilc_priv *priv; tstrWILC_WFIDrv *pstrWFIDrv; From c156032daf431d46a4520c42de7858747929eea4 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:51 +0900 Subject: [PATCH 0589/2431] staging: wilc1000: make mgmt_tx static This patch makes mgmt_tx static. This function is used only at wilc_wfi_cfgoperation.c file. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 0c72c5ec4864..0becefb8812e 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2354,10 +2354,10 @@ void WILC_WFI_add_wilcvendorspec(u8 *buff) */ extern linux_wlan_t *g_linux_wlan; extern bool bEnablePS; -int mgmt_tx(struct wiphy *wiphy, - struct wireless_dev *wdev, - struct cfg80211_mgmt_tx_params *params, - u64 *cookie) +static int mgmt_tx(struct wiphy *wiphy, + struct wireless_dev *wdev, + struct cfg80211_mgmt_tx_params *params, + u64 *cookie) { struct ieee80211_channel *chan = params->chan; unsigned int wait = params->wait; From 37316e81677fe2765d7711f856898863ec7a73b5 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:52 +0900 Subject: [PATCH 0590/2431] staging: wilc1000: make add_virtual_intf static This patch makes add_virtual_intf static. This function is used only at wilc_wfi_cfgoperation.c file. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 0becefb8812e..7d26ccd20390 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3321,10 +3321,12 @@ static int change_station(struct wiphy *wiphy, struct net_device *dev, * @date 01 JUL 2012 * @version 1.0 */ -struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, const char *name, - unsigned char name_assign_type, - enum nl80211_iftype type, u32 *flags, - struct vif_params *params) +static struct wireless_dev *add_virtual_intf(struct wiphy *wiphy, + const char *name, + unsigned char name_assign_type, + enum nl80211_iftype type, + u32 *flags, + struct vif_params *params) { perInterface_wlan_t *nic; struct wilc_priv *priv; From 109c4831279d4bb3f1fff885c5dc31132b03296e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:53 +0900 Subject: [PATCH 0591/2431] staging: wilc1000: remove CoreConfiguratorInit This patch removes CoreConfiguratorInit function, which is not doing anything else except printing a PRINT_D message and returing a s32Error. It is also removed the code that is calling this function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 19 ------------------- drivers/staging/wilc1000/coreconfigurator.h | 1 - drivers/staging/wilc1000/host_interface.c | 11 ----------- 3 files changed, 31 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 14e8efc09baa..e563c9bca8c4 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -327,25 +327,6 @@ static inline u16 get_asoc_id(u8 *data) return asoc_id; } -/** - * @brief initializes the Core Configurator - * @details - * @return Error code indicating success/failure - * @note - * @author mabubakr - * @date 1 Mar 2012 - * @version 1.0 - */ - -s32 CoreConfiguratorInit(void) -{ - s32 s32Error = 0; - - PRINT_D(CORECONFIG_DBG, "CoreConfiguratorInit()\n"); - - return s32Error; -} - u8 *get_tim_elm(u8 *pu8msa, u16 u16RxLen, u16 u16TagParamOffset) { u16 u16index = 0; diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 843906606f5c..88a697beee2d 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -156,7 +156,6 @@ typedef struct wid_site_survey_reslts { } wid_site_survey_reslts_s; #endif -s32 CoreConfiguratorInit(void); s32 CoreConfiguratorDeInit(void); s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs, diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 158d8b898b75..96d7f72d46f1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6467,22 +6467,11 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) up(&(pstrWFIDrv->gtOsCfgValuesSem)); /*TODO Code to setup simulation to be removed later*/ - /*Intialize configurator module*/ - s32Error = CoreConfiguratorInit(); - if (s32Error < 0) { - PRINT_ER("Failed to initialize core configurator\n"); - goto _fail_mem_; - } clients_count++; /* increase number of created entities */ return s32Error; - -_fail_mem_: - if (pstrWFIDrv != NULL) - kfree(pstrWFIDrv); - del_timer_sync(&pstrWFIDrv->hRemainOnChannel); _fail_timer_2: up(&(pstrWFIDrv->gtOsCfgValuesSem)); del_timer_sync(&pstrWFIDrv->hConnectTimer); From 67ec31b8c268bc912f1d5a437b75194692816d3f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:54 +0900 Subject: [PATCH 0592/2431] staging: wilc1000: host_int_init: remove meaningless comment This patch removes meaningless comment in host_int_init function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 96d7f72d46f1..e7b3af3ef468 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6380,9 +6380,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) goto _fail_timer_2; } memset(pstrWFIDrv, 0, sizeof(tstrWILC_WFIDrv)); - /*return driver handle to user*/ *phWFIDrv = pstrWFIDrv; - /*save into globl handle*/ err = add_handler_in_list(pstrWFIDrv); if (err) { s32Error = -EFAULT; @@ -6395,7 +6393,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) #endif PRINT_D(HOSTINF_DBG, "Global handle pointer value=%p\n", pstrWFIDrv); - /* /////////////////////////////////////// */ if (clients_count == 0) { sema_init(&hSemHostIFthrdEnd, 0); sema_init(&hSemDeinitDrvHandle, 0); @@ -6409,7 +6406,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) sema_init(&(pstrWFIDrv->hSemGetCHNL), 0); sema_init(&(pstrWFIDrv->hSemInactiveTime), 0); - /* /////////////////////////////////////// */ @@ -6466,8 +6462,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) up(&(pstrWFIDrv->gtOsCfgValuesSem)); - /*TODO Code to setup simulation to be removed later*/ - clients_count++; /* increase number of created entities */ return s32Error; From 27a82ebf920123978d74d51fe7ce94579e372f94 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:55 +0900 Subject: [PATCH 0593/2431] staging: wilc1000: host_int_init: replace kmalloc with kzalloc This patch replaces kmalloc with kzalloc in host_int_init. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e7b3af3ef468..3f922169d6e9 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6373,13 +6373,12 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) /*Allocate host interface private structure*/ - pstrWFIDrv = kmalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); + pstrWFIDrv = kzalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); if (pstrWFIDrv == NULL) { s32Error = -ENOMEM; PRINT_ER("Failed to allocate memory\n"); goto _fail_timer_2; } - memset(pstrWFIDrv, 0, sizeof(tstrWILC_WFIDrv)); *phWFIDrv = pstrWFIDrv; err = add_handler_in_list(pstrWFIDrv); if (err) { From 1604296d20a7d278f525a8134e2db1a727b2fdd1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:56 +0900 Subject: [PATCH 0594/2431] staging: wilc1000: host_int_init: fix kzalloc error check This patch fixes error check when kzalloc is failed. NULL comparison style is changed to use ! operator and PRINT_ER is also removed. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3f922169d6e9..6b744a2c1f96 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6374,9 +6374,8 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) /*Allocate host interface private structure*/ pstrWFIDrv = kzalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); - if (pstrWFIDrv == NULL) { + if (!pstrWFIDrv) { s32Error = -ENOMEM; - PRINT_ER("Failed to allocate memory\n"); goto _fail_timer_2; } *phWFIDrv = pstrWFIDrv; From 9dfcff4a42ef694c09adf8f2d7b6ceff8cbe21ec Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:57 +0900 Subject: [PATCH 0595/2431] staging: wilc1000: host_int_init: remove multiple blank lines This patch removes multiple blank lines in host_int_init function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6b744a2c1f96..2687e8165e0e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6370,8 +6370,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) sema_init(&hWaitResponse, 0); - - /*Allocate host interface private structure*/ pstrWFIDrv = kzalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); if (!pstrWFIDrv) { @@ -6404,9 +6402,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) sema_init(&(pstrWFIDrv->hSemGetCHNL), 0); sema_init(&(pstrWFIDrv->hSemInactiveTime), 0); - - - PRINT_D(HOSTINF_DBG, "INIT: CLIENT COUNT %d\n", clients_count); if (clients_count == 0) { @@ -6427,7 +6422,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) mod_timer(&g_hPeriodicRSSI, jiffies + msecs_to_jiffies(5000)); } - setup_timer(&pstrWFIDrv->hScanTimer, TimerCB_Scan, 0); setup_timer(&pstrWFIDrv->hConnectTimer, TimerCB_Connect, 0); @@ -6457,7 +6451,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) pstrWFIDrv->strCfgValues.active_scan_time, pstrWFIDrv->strCfgValues.passive_scan_time, pstrWFIDrv->strCfgValues.curr_tx_rate); - up(&(pstrWFIDrv->gtOsCfgValuesSem)); clients_count++; /* increase number of created entities */ @@ -6474,7 +6467,6 @@ _fail_mq_: _fail_: return s32Error; - } /** * @brief host_int_deinit From 3f4e0ce2b67fc556fcbfb615381e5441938256c7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:58 +0900 Subject: [PATCH 0596/2431] staging: wilc1000: host_int_init: remove commented code This patch removes commented code in host_int_init function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2687e8165e0e..c22d57aeb21e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6433,7 +6433,6 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) down(&(pstrWFIDrv->gtOsCfgValuesSem)); pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; - /* gWFiDrvHandle->bPendingConnRequest = false; */ /*Initialize CFG WIDS Defualt Values*/ From 5b09bd32a723f41fba91be8c83e0c9909646464e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:59 +0900 Subject: [PATCH 0597/2431] staging: wilc1000: host_int_init: replace s32Error with result This patch replaces s32Error with result in host_int_init function to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c22d57aeb21e..80e6eba16711 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6360,7 +6360,7 @@ static u32 clients_count; s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) { - s32 s32Error = 0; + s32 result = 0; tstrWILC_WFIDrv *pstrWFIDrv; int err; @@ -6373,13 +6373,13 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) /*Allocate host interface private structure*/ pstrWFIDrv = kzalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); if (!pstrWFIDrv) { - s32Error = -ENOMEM; + result = -ENOMEM; goto _fail_timer_2; } *phWFIDrv = pstrWFIDrv; err = add_handler_in_list(pstrWFIDrv); if (err) { - s32Error = -EFAULT; + result = -EFAULT; goto _fail_timer_2; } @@ -6405,16 +6405,16 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) PRINT_D(HOSTINF_DBG, "INIT: CLIENT COUNT %d\n", clients_count); if (clients_count == 0) { - s32Error = wilc_mq_create(&gMsgQHostIF); + result = wilc_mq_create(&gMsgQHostIF); - if (s32Error < 0) { + if (result < 0) { PRINT_ER("Failed to creat MQ\n"); goto _fail_; } HostIFthreadHandler = kthread_run(hostIFthread, NULL, "WILC_kthread"); if (IS_ERR(HostIFthreadHandler)) { PRINT_ER("Failed to creat Thread\n"); - s32Error = -EFAULT; + result = -EFAULT; goto _fail_mq_; } setup_timer(&g_hPeriodicRSSI, GetPeriodicRSSI, @@ -6454,7 +6454,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) clients_count++; /* increase number of created entities */ - return s32Error; + return result; _fail_timer_2: up(&(pstrWFIDrv->gtOsCfgValuesSem)); @@ -6464,7 +6464,7 @@ _fail_timer_2: _fail_mq_: wilc_mq_destroy(&gMsgQHostIF); _fail_: - return s32Error; + return result; } /** From 1d53eec391e988aea0a81618f35950a682e2daeb Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:35:00 +0900 Subject: [PATCH 0598/2431] staging: wilc1000: host_int_init: remove blank line before a close brace. This patch removes blank line before a close brace. CHECK: Blank lines aren't necessary before a close brace '}' Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 80e6eba16711..98fbd5c1f0f1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6465,7 +6465,6 @@ _fail_mq_: wilc_mq_destroy(&gMsgQHostIF); _fail_: return result; - } /** * @brief host_int_deinit From dddaba1a3b1b17a6945a973a1ac57358bab269ee Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:35:01 +0900 Subject: [PATCH 0599/2431] staging: wilc1000: host_int_init: remove unnecessary parentheses This patch removes unnecessary parentheses found by checkpatch.pl Unnecessary parentheses around pstrWFIDrv->hSemTestKeyBlock Unnecessary parentheses around pstrWFIDrv->hSemTestDisconnectBlock Unnecessary parentheses around pstrWFIDrv->hSemGetRSSI Unnecessary parentheses around pstrWFIDrv->hSemGetLINKSPEED Unnecessary parentheses around pstrWFIDrv->hSemGetCHNL Unnecessary parentheses around pstrWFIDrv->hSemInactiveTime Unnecessary parentheses around pstrWFIDrv->gtOsCfgValuesSem Unnecessary parentheses around pstrWFIDrv->gtOsCfgValuesSem Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 98fbd5c1f0f1..f7f4c8d75a32 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6395,12 +6395,12 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) sema_init(&hSemHostIntDeinit, 1); } - sema_init(&(pstrWFIDrv->hSemTestKeyBlock), 0); - sema_init(&(pstrWFIDrv->hSemTestDisconnectBlock), 0); - sema_init(&(pstrWFIDrv->hSemGetRSSI), 0); - sema_init(&(pstrWFIDrv->hSemGetLINKSPEED), 0); - sema_init(&(pstrWFIDrv->hSemGetCHNL), 0); - sema_init(&(pstrWFIDrv->hSemInactiveTime), 0); + sema_init(&pstrWFIDrv->hSemTestKeyBlock, 0); + sema_init(&pstrWFIDrv->hSemTestDisconnectBlock, 0); + sema_init(&pstrWFIDrv->hSemGetRSSI, 0); + sema_init(&pstrWFIDrv->hSemGetLINKSPEED, 0); + sema_init(&pstrWFIDrv->hSemGetCHNL, 0); + sema_init(&pstrWFIDrv->hSemInactiveTime, 0); PRINT_D(HOSTINF_DBG, "INIT: CLIENT COUNT %d\n", clients_count); @@ -6430,7 +6430,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) setup_timer(&pstrWFIDrv->hRemainOnChannel, ListenTimerCB, 0); sema_init(&(pstrWFIDrv->gtOsCfgValuesSem), 1); - down(&(pstrWFIDrv->gtOsCfgValuesSem)); + down(&pstrWFIDrv->gtOsCfgValuesSem); pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; @@ -6450,14 +6450,14 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) pstrWFIDrv->strCfgValues.active_scan_time, pstrWFIDrv->strCfgValues.passive_scan_time, pstrWFIDrv->strCfgValues.curr_tx_rate); - up(&(pstrWFIDrv->gtOsCfgValuesSem)); + up(&pstrWFIDrv->gtOsCfgValuesSem); clients_count++; /* increase number of created entities */ return result; _fail_timer_2: - up(&(pstrWFIDrv->gtOsCfgValuesSem)); + up(&pstrWFIDrv->gtOsCfgValuesSem); del_timer_sync(&pstrWFIDrv->hConnectTimer); del_timer_sync(&pstrWFIDrv->hScanTimer); kthread_stop(HostIFthreadHandler); From 6a27224f964d045cc8358f7c23dce3ab401f702d Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 22 Sep 2015 15:24:50 +0200 Subject: [PATCH 0600/2431] staging: wicl1000: fix dereference after free in wilc_wlan_cleanup() The wilc_wlan_cleanup() function iterates over the list of transmission buffers freeing all of them and then iterates over the receive buffers list to free all of them as well. But on the receive loop a pointer to struct txq_entry_t is dereferenced instead of the pointer to a struct rxq_entry_t. This not only causes a dereference to a pointer already freed but also leaks the memory in the struct rxq_entry_t buffer. Also, the buffer is allocated when MEMORY_STATIC is not defined no when MEMORY_DYNAMIC is defined. So use #ifndef MEMORY_STATIC instead as it's done in the rest of the driver to avoid leaking the buffer memory. Fixes: c5c77ba18ea6 ("staging: wilc1000: Add SDIO/SPI 802.11 driver") Signed-off-by: Javier Martinez Canillas Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 0a930ecef554..ddb03a82b0f9 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1710,8 +1710,8 @@ static void wilc_wlan_cleanup(void) rqe = wilc_wlan_rxq_remove(); if (rqe == NULL) break; -#ifdef MEMORY_DYNAMIC - kfree(tqe->buffer); +#ifndef MEMORY_STATIC + kfree(rqe->buffer); #endif kfree(rqe); } while (1); From c22dbd4bb8fd15faa800ef5daf1a81aa31896bf8 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:37 +0900 Subject: [PATCH 0601/2431] staging: wilc1000: remove CoreConfiguratorDeInit This patch removes CoreConfiguratorDeInit function, which is not doing anything else except printing a PRINT_D message and returning a s32Error. It is also removed the codes that is calling this function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 20 -------------------- drivers/staging/wilc1000/coreconfigurator.h | 2 -- drivers/staging/wilc1000/host_interface.c | 2 -- 3 files changed, 24 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index e563c9bca8c4..9676044f233b 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -700,26 +700,6 @@ s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults) } #endif -/** - * @brief Deinitializes the Core Configurator - * @details - * @return Error code indicating success/failure - * @note - * @author mabubakr - * @date 1 Mar 2012 - * @version 1.0 - */ - -s32 CoreConfiguratorDeInit(void) -{ - s32 s32Error = 0; - - PRINT_D(CORECONFIG_DBG, "CoreConfiguratorDeInit()\n"); - - - return s32Error; -} - /*Using the global handle of the driver*/ extern wilc_wlan_oup_t *gpstrWlanOps; /** diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 88a697beee2d..a255e45fa626 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -156,8 +156,6 @@ typedef struct wid_site_survey_reslts { } wid_site_survey_reslts_s; #endif -s32 CoreConfiguratorDeInit(void); - s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs, u32 u32WIDsCount, bool bRespRequired, u32 drvHandler); s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f7f4c8d75a32..e2ae9abed2fe 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6527,8 +6527,6 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult = NULL; } - /*deinit configurator and simulator*/ - CoreConfiguratorDeInit(); pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; From cf32c3c4230a8f1f513e77266d5e02bdc0e1f27d Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:38 +0900 Subject: [PATCH 0602/2431] staging: wilc1000: rename SendConfigPkt This patch replaces SendConfigPkt with send_config_pkt to aovid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 4 +- drivers/staging/wilc1000/coreconfigurator.h | 4 +- drivers/staging/wilc1000/host_interface.c | 204 ++++++++++---------- 3 files changed, 106 insertions(+), 106 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 9676044f233b..381376758898 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -717,8 +717,8 @@ extern wilc_wlan_oup_t *gpstrWlanOps; * @date 1 Mar 2012 * @version 1.0 */ -s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs, - u32 u32WIDsCount, bool bRespRequired, u32 drvHandler) +s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, + u32 u32WIDsCount, bool bRespRequired, u32 drvHandler) { s32 counter = 0, ret = 0; diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index a255e45fa626..7227c0f2115a 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -156,8 +156,8 @@ typedef struct wid_site_survey_reslts { } wid_site_survey_reslts_s; #endif -s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs, - u32 u32WIDsCount, bool bRespRequired, u32 drvHandler); +s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, + u32 u32WIDsCount, bool bRespRequired, u32 drvHandler); s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo); diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e2ae9abed2fe..4cbe72623bb4 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -645,8 +645,8 @@ static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, PRINT_D(HOSTINF_DBG, "Setting channel\n"); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set channel\n"); return -EINVAL; @@ -681,8 +681,8 @@ static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - pstrHostIfSetDrvHandler->u32Address); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + pstrHostIfSetDrvHandler->u32Address); if (pstrWFIDrv == NULL) up(&hSemDeinitDrvHandle); @@ -723,8 +723,8 @@ static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, /*Sending Cfg*/ PRINT_INFO(HOSTINF_DBG, "pstrWFIDrv= %p\n", pstrWFIDrv); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if ((pstrHostIfSetOperationMode->u32Mode) == IDLE_MODE) @@ -769,8 +769,8 @@ s32 Handle_set_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.ps8WidVal = (u8 *)pu8IPAddr; strWID.s32ValueSize = IP_ALEN; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); host_int_get_ipaddress(drvHandler, firmwareIPAddress, idx); @@ -808,8 +808,8 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.ps8WidVal = kmalloc(IP_ALEN, GFP_KERNEL); strWID.s32ValueSize = IP_ALEN; - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.ps8WidVal); @@ -865,8 +865,8 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, strWID.s32ValueSize = ETH_ALEN; PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.ps8WidVal); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set mac address\n"); s32Error = -EFAULT; @@ -900,8 +900,8 @@ static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, strWID.s32ValueSize = ETH_ALEN; /*Sending Cfg*/ - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, false, - get_id_from_handler(drvHandler)); + s32Error = send_config_pkt(GET_CFG, &strWID, 1, false, + get_id_from_handler(drvHandler)); if (s32Error) { PRINT_ER("Failed to get mac address\n"); s32Error = -EFAULT; @@ -1242,8 +1242,8 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, } u8WidCnt++; } - s32Error = SendConfigPkt(SET_CFG, strWIDList, u8WidCnt, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, strWIDList, u8WidCnt, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Error in setting CFG params\n"); @@ -1398,8 +1398,8 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, else if (pstrWFIDrv->enuHostIFstate == HOST_IF_IDLE) gbScanWhileConnected = false; - s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send scan paramters config packet\n"); @@ -1473,8 +1473,8 @@ static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent) strWID.s32ValueSize = sizeof(char); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set abort running scan\n"); s32Error = -EFAULT; @@ -1668,8 +1668,8 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, gu32WidConnRstHack = 0; /* ////////////////////// */ - s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("failed to send config packet\n"); s32Error = -EINVAL; @@ -1989,8 +1989,8 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, PRINT_D(GENERIC_DBG, "save bssid = %pM\n", u8ConnectedSSID); } - s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("failed to send config packet\n"); s32Error = -EFAULT; @@ -2120,8 +2120,8 @@ static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) #endif - s32Error = SendConfigPkt(SET_CFG, strWIDList, u32WidsCount, false, - get_id_from_handler(gu8FlushedJoinReqDrvHandler)); + s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(gu8FlushedJoinReqDrvHandler)); if (s32Error) { PRINT_ER("failed to send config packet\n"); s32Error = -EINVAL; @@ -2201,8 +2201,8 @@ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send dissconect config packet\n"); @@ -2753,8 +2753,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, strWIDList[3].ps8WidVal = (s8 *)pu8keybuf; - s32Error = SendConfigPkt(SET_CFG, strWIDList, 4, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, strWIDList, 4, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2781,8 +2781,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); } else if (pstrHostIFkeyAttr->u8KeyAction & REMOVEKEY) { @@ -2794,8 +2794,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, strWID.ps8WidVal = s8idxarray; strWID.s32ValueSize = 1; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); } else { strWID.u16WIDid = (u16)WID_KEY_ID; strWID.enuWIDtype = WID_CHAR; @@ -2804,8 +2804,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, PRINT_D(HOSTINF_DBG, "Setting default key index\n"); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); } up(&(pstrWFIDrv->hSemTestKeyBlock)); break; @@ -2850,8 +2850,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = RX_MIC_KEY_MSG_LEN; - s32Error = SendConfigPkt(SET_CFG, strWIDList, 2, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, strWIDList, 2, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2896,8 +2896,8 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = RX_MIC_KEY_MSG_LEN; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2953,8 +2953,8 @@ _WPARxGtk_end_case_: strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = PTK_KEY_MSG_LEN + 1; - s32Error = SendConfigPkt(SET_CFG, strWIDList, 2, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, strWIDList, 2, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); /* ////////////////////////// */ @@ -2994,8 +2994,8 @@ _WPARxGtk_end_case_: strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = PTK_KEY_MSG_LEN; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); /* ////////////////////////// */ @@ -3034,8 +3034,8 @@ _WPAPtk_end_case_: strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); break; @@ -3084,8 +3084,8 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) memset(u8ConnectedSSID, 0, ETH_ALEN); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to send dissconect config packet\n"); @@ -3190,8 +3190,8 @@ static s32 Switch_Log_Terminal(tstrWILC_WFIDrv *drvHandler) strWID.ps8WidVal = &dummy; strWID.s32ValueSize = sizeof(char); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { @@ -3230,8 +3230,8 @@ static s32 Handle_GetChnl(tstrWILC_WFIDrv *drvHandler) PRINT_D(HOSTINF_DBG, "Getting channel value\n"); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get channel number\n"); @@ -3270,8 +3270,8 @@ static void Handle_GetRssi(tstrWILC_WFIDrv *drvHandler) /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to get RSSI value\n"); s32Error = -EFAULT; @@ -3298,8 +3298,8 @@ static void Handle_GetLinkspeed(tstrWILC_WFIDrv *drvHandler) /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to get LINKSPEED value\n"); s32Error = -EFAULT; @@ -3345,8 +3345,8 @@ s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatis strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxFailureCount)); u32WidsCount++; - s32Error = SendConfigPkt(GET_CFG, strWIDList, u32WidsCount, false, - get_id_from_handler(drvHandler)); + s32Error = send_config_pkt(GET_CFG, strWIDList, u32WidsCount, false, + get_id_from_handler(drvHandler)); if (s32Error) PRINT_ER("Failed to send scan paramters config packet\n"); @@ -3390,8 +3390,8 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, PRINT_D(CFG80211_DBG, "SETING STA inactive time\n"); - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to SET incative time\n"); @@ -3405,8 +3405,8 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, strWID.s32ValueSize = sizeof(u32); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get incative time\n"); @@ -3482,8 +3482,8 @@ static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send add beacon config packet\n"); @@ -3525,8 +3525,8 @@ static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, /* TODO: build del beacon message*/ /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send delete beacon config packet\n"); } @@ -3617,8 +3617,8 @@ static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error != 0) PRINT_ER("Failed to send add station config packet\n"); @@ -3671,8 +3671,8 @@ static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, } /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send add station config packet\n"); @@ -3715,8 +3715,8 @@ static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, memcpy(pu8CurrByte, pstrDelStaParam->au8MacAddr, ETH_ALEN); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send add station config packet\n"); @@ -3755,8 +3755,8 @@ static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send edit station config packet\n"); @@ -3831,8 +3831,8 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, strWID.ps8WidVal[1] = (s8)pstrHostIfRemainOnChan->u16Channel; /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error != 0) PRINT_ER("Failed to set remain on channel\n"); @@ -3891,8 +3891,8 @@ static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to frame register config packet\n"); s32Error = -EINVAL; @@ -3938,8 +3938,8 @@ static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, strWID.ps8WidVal[1] = FALSE_FRMWR_CHANNEL; /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error != 0) { PRINT_ER("Failed to set remain on channel\n"); goto _done_; @@ -4019,8 +4019,8 @@ static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling Power Management\n"); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send power management config packet\n"); } @@ -4065,8 +4065,8 @@ static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, memcpy(pu8CurrByte, gau8MulticastMacAddrList, ((strHostIfSetMulti->u32count) * ETH_ALEN)); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, false, - get_id_from_handler(drvHandler)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + get_id_from_handler(drvHandler)); if (s32Error) PRINT_ER("Failed to send setup multicast config packet\n"); @@ -4130,8 +4130,8 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, /* Group Buffer Timeout */ *ptr++ = 0; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't open BA Session\n"); @@ -4155,8 +4155,8 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, *ptr++ = ((strHostIfBASessionInfo->u16SessionTimeout >> 16) & 0xFF); /*Ack-Policy */ *ptr++ = 3; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (strWID.ps8WidVal != NULL) kfree(strWID.ps8WidVal); @@ -4206,8 +4206,8 @@ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, /* Delba Reason */ *ptr++ = 32; /* Unspecific QOS reason */ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); @@ -4225,8 +4225,8 @@ static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, /* TID*/ *ptr++ = strHostIfBASessionInfo->u8Ted; - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (strWID.ps8WidVal != NULL) kfree(strWID.ps8WidVal); @@ -4277,8 +4277,8 @@ static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, /* Delba Reason */ *ptr++ = 32; /* Unspecific QOS reason */ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); @@ -5270,8 +5270,8 @@ s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv, astrWIDList[1].ps8WidVal = ppu8RcvdSiteSurveyResults[1]; astrWIDList[1].s32ValueSize = u32MaxSiteSrvyFragLen; - s32Error = SendConfigPkt(GET_CFG, astrWIDList, 2, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(GET_CFG, astrWIDList, 2, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { @@ -5613,8 +5613,8 @@ s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, /* Sending Configuration packet */ - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { *pu32RcvdAssocRespInfoLen = 0; PRINT_ER("Failed to send association response config packet\n"); @@ -5846,8 +5846,8 @@ s32 host_int_test_set_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 u32TestMemAddr) strWID.s32ValueSize = sizeof(u32); /*Sending Cfg*/ - s32Error = SendConfigPkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set wid value\n"); return -EINVAL; @@ -5930,8 +5930,8 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) strWID.ps8WidVal = (s8 *)pu32TestMemAddr; strWID.s32ValueSize = sizeof(u32); - s32Error = SendConfigPkt(GET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); + s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get wid value\n"); From ef154414b2e7ba2e20db932fc96262cc692e8621 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:39 +0900 Subject: [PATCH 0603/2431] staging: wilc1000: replace kmalloc with kzalloc This patch replaces kmalloc with kzalloc because it is initialized by 0 immediately after allcating memory. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 381376758898..d8b8c3d86be0 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -439,12 +439,10 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) u32 u32Tsf_Lo; u32 u32Tsf_Hi; - pstrNetworkInfo = kmalloc(sizeof(tstrNetworkInfo), GFP_KERNEL); + pstrNetworkInfo = kzalloc(sizeof(tstrNetworkInfo), GFP_KERNEL); if (!pstrNetworkInfo) return -ENOMEM; - memset((void *)(pstrNetworkInfo), 0, sizeof(tstrNetworkInfo)); - pstrNetworkInfo->s8rssi = pu8WidVal[0]; /* Assign a pointer to msa "Mac Header Start Address" */ @@ -559,12 +557,10 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, u8 *pu8IEs = NULL; u16 u16IEsLen = 0; - pstrConnectRespInfo = kmalloc(sizeof(tstrConnectRespInfo), GFP_KERNEL); + pstrConnectRespInfo = kzalloc(sizeof(tstrConnectRespInfo), GFP_KERNEL); if (!pstrConnectRespInfo) return -ENOMEM; - memset((void *)(pstrConnectRespInfo), 0, sizeof(tstrConnectRespInfo)); - /* u16AssocRespLen = pu8Buffer[0]; */ u16AssocRespLen = (u16)u32BufferLen; From 02cf299d0e281efc930bf1bd01479897d9ec483e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:40 +0900 Subject: [PATCH 0604/2431] staging: wilc1000: replace kmalloc/memcpy with kmemdup This patch replaces kmalloc followed by memset and memcpy with kmemdup. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index d8b8c3d86be0..875b769d95a9 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -488,13 +488,10 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) u16IEsLen = u16RxLen - (MAC_HDR_LEN + TIME_STAMP_LEN + BEACON_INTERVAL_LEN + CAP_INFO_LEN); if (u16IEsLen > 0) { - pstrNetworkInfo->pu8IEs = kmalloc(u16IEsLen, GFP_KERNEL); + pstrNetworkInfo->pu8IEs = kmemdup(pu8IEs, u16IEsLen, + GFP_KERNEL); if (!pstrNetworkInfo->pu8IEs) return -ENOMEM; - - memset((void *)(pstrNetworkInfo->pu8IEs), 0, u16IEsLen); - - memcpy(pstrNetworkInfo->pu8IEs, pu8IEs, u16IEsLen); } pstrNetworkInfo->u16IEsLen = u16IEsLen; @@ -578,13 +575,10 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, pu8IEs = &pu8Buffer[CAP_INFO_LEN + STATUS_CODE_LEN + AID_LEN]; u16IEsLen = u16AssocRespLen - (CAP_INFO_LEN + STATUS_CODE_LEN + AID_LEN); - pstrConnectRespInfo->pu8RespIEs = kmalloc(u16IEsLen, GFP_KERNEL); + pstrConnectRespInfo->pu8RespIEs = kmemdup(pu8IEs, u16IEsLen, GFP_KERNEL); if (!pstrConnectRespInfo->pu8RespIEs) return -ENOMEM; - memset((void *)(pstrConnectRespInfo->pu8RespIEs), 0, u16IEsLen); - - memcpy(pstrConnectRespInfo->pu8RespIEs, pu8IEs, u16IEsLen); pstrConnectRespInfo->u16RespIEsLen = u16IEsLen; } From d0a7fcc7e6978051fc38ae885ab5fd8bc9d6b281 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:41 +0900 Subject: [PATCH 0605/2431] staging: wilc1000: replace kmalloc_array/memset with kcalloc This patch replaces kmalloc_array followed by memset with kcalloc. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 875b769d95a9..8b56b92b5503 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -644,13 +644,11 @@ s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZ } } - pstrSurveyResults = kmalloc_array(u32SurveyResultsCount, - sizeof(wid_site_survey_reslts_s), GFP_KERNEL); + pstrSurveyResults = kcalloc(u32SurveyResultsCount, + sizeof(wid_site_survey_reslts_s), GFP_KERNEL); if (!pstrSurveyResults) return -ENOMEM; - memset((void *)(pstrSurveyResults), 0, u32SurveyResultsCount * sizeof(wid_site_survey_reslts_s)); - u32SurveyResultsCount = 0; for (i = 0; i < u32RcvdSurveyResultsNum; i++) { From 36cca3ba725c87c322dbef983d47a3fe72c6d9b4 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:42 +0900 Subject: [PATCH 0606/2431] staging: wilc1000: remove useless comment This patch removes useless comment in coreconfigurator.c Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 38 --------------------- drivers/staging/wilc1000/coreconfigurator.h | 29 +++++----------- 2 files changed, 8 insertions(+), 59 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 8b56b92b5503..47a37fa27099 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -9,26 +9,11 @@ */ -/*****************************************************************************/ -/* File Includes */ -/*****************************************************************************/ #include "coreconfigurator.h" #include -/*****************************************************************************/ -/* Constants */ -/*****************************************************************************/ #define TAG_PARAM_OFFSET (MAC_HDR_LEN + TIME_STAMP_LEN + \ BEACON_INTERVAL_LEN + CAP_INFO_LEN) -/*****************************************************************************/ -/* Function Macros */ -/*****************************************************************************/ - - -/*****************************************************************************/ -/* Type Definitions */ -/*****************************************************************************/ - /* Basic Frame Type Codes (2-bit) */ typedef enum { FRAME_TYPE_CONTROL = 0x04, @@ -130,25 +115,6 @@ typedef struct { bool bRespRequired; } tstrConfigPktInfo; - - -/*****************************************************************************/ -/* Extern Variable Declarations */ -/*****************************************************************************/ - -/*****************************************************************************/ -/* Global Variables */ -/*****************************************************************************/ -/*****************************************************************************/ -/* Static Function Declarations */ -/*****************************************************************************/ - - - -/*****************************************************************************/ -/* Functions */ -/*****************************************************************************/ - /* This function extracts the beacon period field from the beacon or probe */ /* response frame. */ static inline u16 get_beacon_period(u8 *data) @@ -688,7 +654,6 @@ s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults) } #endif -/*Using the global handle of the driver*/ extern wilc_wlan_oup_t *gpstrWlanOps; /** * @brief sends certain Configuration Packet based on the input WIDs pstrWIDs @@ -735,9 +700,6 @@ s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, break; } } - /** - * get the value - **/ counter = 0; for (counter = 0; counter < u32WIDsCount; counter++) { pstrWIDs[counter].s32ValueSize = gpstrWlanOps->wlan_cfg_get_value( diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 7227c0f2115a..e2b7b0942e50 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -12,10 +12,7 @@ #define CORECONFIGURATOR_H #include "wilc_wlan_if.h" -/*****************************************************************************/ -/* Constants */ -/*****************************************************************************/ -/* Number of WID Options Supported */ + #define NUM_BASIC_SWITCHES 45 #define NUM_FHSS_SWITCHES 0 @@ -24,12 +21,12 @@ #ifdef MAC_802_11N #define NUM_11N_BASIC_SWITCHES 25 #define NUM_11N_HUT_SWITCHES 47 -#else /* MAC_802_11N */ +#else #define NUM_11N_BASIC_SWITCHES 0 #define NUM_11N_HUT_SWITCHES 0 -#endif /* MAC_802_11N */ +#endif -#define MAC_HDR_LEN 24 /* No Address4 - non-ESS */ +#define MAC_HDR_LEN 24 #define MAX_SSID_LEN 33 #define FCS_LEN 4 #define TIME_STAMP_LEN 8 @@ -39,9 +36,7 @@ #define AID_LEN 2 #define IE_HDR_LEN 2 -/* Operating Mode: SET */ #define SET_CFG 0 -/* Operating Mode: GET */ #define GET_CFG 1 #define MAX_STRING_LEN 256 @@ -52,16 +47,9 @@ #define MAC_CONNECTED 1 #define MAC_DISCONNECTED 0 -/*****************************************************************************/ -/* Function Macros */ -/*****************************************************************************/ #define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb)) #define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw)) -/*****************************************************************************/ -/* Type Definitions */ -/*****************************************************************************/ -/* Status Codes for Authentication and Association Frames */ typedef enum { SUCCESSFUL_STATUSCODE = 0, UNSPEC_FAIL = 1, @@ -95,7 +83,7 @@ typedef struct { u8 u8Index; s8 as8RSSI[NUM_RSSI]; } tstrRSSI; -/* This structure is used to support parsing of the received 'N' message */ + typedef struct { s8 s8rssi; u16 u16CapInfo; @@ -105,21 +93,20 @@ typedef struct { u16 u16BeaconPeriod; u8 u8DtimPeriod; u8 u8channel; - unsigned long u32TimeRcvdInScanCached; /* of type unsigned long to be accepted by the linux kernel macro time_after() */ + unsigned long u32TimeRcvdInScanCached; unsigned long u32TimeRcvdInScan; bool bNewNetwork; #ifdef AGING_ALG u8 u8Found; #endif - u32 u32Tsf; /* time-stamp [Low only 32 bit] */ + u32 u32Tsf; u8 *pu8IEs; u16 u16IEsLen; void *pJoinParams; tstrRSSI strRssi; - u64 u64Tsf; /* time-stamp [Low and High 64 bit] */ + u64 u64Tsf; } tstrNetworkInfo; -/* This structure is used to support parsing of the received Association Response frame */ typedef struct { u16 u16capability; u16 u16ConnectStatus; From dd322576bdd4c3e529f5f6933dffe743ce78fadc Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:43 +0900 Subject: [PATCH 0607/2431] staging: wilc1000: remove extern declaration This patch removes extern declaration of *gpstrWlanOps in coreconfigurator.c file. It is defined extern declaration in wilc_wlan_if.h file and then is included in coreconfigurator.c file. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 47a37fa27099..bdf775a3131e 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -10,6 +10,7 @@ #include "coreconfigurator.h" +#include "wilc_wlan_if.h" #include #define TAG_PARAM_OFFSET (MAC_HDR_LEN + TIME_STAMP_LEN + \ BEACON_INTERVAL_LEN + CAP_INFO_LEN) @@ -654,7 +655,6 @@ s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults) } #endif -extern wilc_wlan_oup_t *gpstrWlanOps; /** * @brief sends certain Configuration Packet based on the input WIDs pstrWIDs * using driver config layer diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 7a1b9433ddaa..ff25b3a1ea5d 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -995,5 +995,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup); void wilc_bus_set_max_speed(void); void wilc_bus_set_default_speed(void); u32 wilc_get_chipid(u8 update); +extern wilc_wlan_oup_t *gpstrWlanOps; #endif From a1f7f64244aa15e76f794d1bd4f346c852882248 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:44 +0900 Subject: [PATCH 0608/2431] staging: wilc1000: rename ParseNetworkInfo This patch replaces ParseNetworkInfo with parse_network_info to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/host_interface.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index bdf775a3131e..3c71b9f008f6 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -360,7 +360,7 @@ u8 get_current_channel(u8 *pu8msa, u16 u16RxLen) * @date 1 Mar 2012 * @version 1.0 */ -s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) +s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) { s32 s32Error = 0; tstrNetworkInfo *pstrNetworkInfo = NULL; diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index e2b7b0942e50..c2bd6fc5f0ab 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -145,7 +145,7 @@ typedef struct wid_site_survey_reslts { s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, u32 u32WIDsCount, bool bRespRequired, u32 drvHandler); -s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); +s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo); s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4cbe72623bb4..abfcefffd7ef 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -2269,7 +2269,7 @@ static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, /*if there is a an ongoing scan request*/ if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { PRINT_D(HOSTINF_DBG, "State: Scanning, parsing network information received\n"); - ParseNetworkInfo(pstrRcvdNetworkInfo->pu8Buffer, &pstrNetworkInfo); + parse_network_info(pstrRcvdNetworkInfo->pu8Buffer, &pstrNetworkInfo); if ((pstrNetworkInfo == NULL) || (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult == NULL)) { PRINT_ER("driver is null\n"); From 74a443e0940a57ee8f360692dc3bfbc551dee6c0 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:45 +0900 Subject: [PATCH 0609/2431] staging: wilc1000: parse_network_info: remove s32Error s32Error is defined, but not used anywhere in this function. Then just delete it and return 0 at the end of this function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 3c71b9f008f6..68e3c7f223bb 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -362,7 +362,6 @@ u8 get_current_channel(u8 *pu8msa, u16 u16RxLen) */ s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) { - s32 s32Error = 0; tstrNetworkInfo *pstrNetworkInfo = NULL; u8 u8MsgType = 0; u8 u8MsgID = 0; @@ -466,7 +465,7 @@ s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) *ppstrNetworkInfo = pstrNetworkInfo; - return s32Error; + return 0; } /** From f446ebbeee224cc50c6e8a04916585b8ac5dd566 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 23 Sep 2015 16:10:52 +0900 Subject: [PATCH 0610/2431] staging: wilc1000: remove ifdef OLD_FPGA_BITFILE line OLD_FPGA_BITFILE is not used in the driver. Just delete ifdef line and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index ddb03a82b0f9..a3dd421b7f32 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1500,22 +1500,6 @@ static int wilc_wlan_start(void) /** * Set the host interface **/ -#ifdef OLD_FPGA_BITFILE - acquire_bus(ACQUIRE_ONLY); - ret = p->hif_func.hif_read_reg(WILC_VMM_CORE_CTL, ®); - if (!ret) { - wilc_debug(N_ERR, "[wilc start]: fail read reg vmm_core_ctl...\n"); - release_bus(RELEASE_ALLOW_SLEEP); - return ret; - } - reg |= (p->io_func.io_type << 2); - ret = p->hif_func.hif_write_reg(WILC_VMM_CORE_CTL, reg); - if (!ret) { - wilc_debug(N_ERR, "[wilc start]: fail write reg vmm_core_ctl...\n"); - release_bus(RELEASE_ONLY); - return ret; - } -#else if (p->io_func.io_type == HIF_SDIO) { reg = 0; reg |= (1 << 3); /* bug 4456 and 4557 */ @@ -1572,8 +1556,6 @@ static int wilc_wlan_start(void) ret = -5; return ret; } -#endif - /** * Bus related From 70f52debbed3d0c99d8b9b6ce32d8cf7f0cfe638 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 23 Sep 2015 16:10:53 +0900 Subject: [PATCH 0611/2431] staging: wilc1000: remove define DISABLE_PWRSAVE_AND_SCAN_DURING_IP The driver will use define DISABLE_PWRSAVE_AND_SCAN_DURING_IP always. So remove the ifdef line and define in Makefile. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/host_interface.c | 22 ------------------- drivers/staging/wilc1000/linux_wlan.c | 14 ------------ .../staging/wilc1000/wilc_wfi_cfgoperations.c | 16 -------------- 4 files changed, 1 insertion(+), 53 deletions(-) diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index bdeffea8db83..afae7d6464ae 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -10,7 +10,7 @@ ccflags-y += -DSTA_FIRMWARE=\"atmel/wilc1000_fw.bin\" \ ccflags-y += -I$(src)/ -D__CHECK_ENDIAN__ -DWILC_ASIC_A0 \ -DPLL_WORKAROUND -DCONNECT_DIRECT -DAGING_ALG \ - -DWILC_PARSE_SCAN_IN_HOST -DDISABLE_PWRSAVE_AND_SCAN_DURING_IP \ + -DWILC_PARSE_SCAN_IN_HOST \ -Wno-unused-function -DWILC_DEBUGFS #ccflags-y += -DTCP_ACK_FILTER diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index abfcefffd7ef..5993f3a5b42e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4,9 +4,7 @@ extern u8 connecting; -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP extern struct timer_list hDuringIpTimer; -#endif extern u8 g_wilc_initialized; /*****************************************************************************/ @@ -518,9 +516,7 @@ typedef enum { static tstrWILC_WFIDrv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; tstrWILC_WFIDrv *terminated_handle; tstrWILC_WFIDrv *gWFiDrvHandle; -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP bool g_obtainingIP = false; -#endif u8 P2P_LISTEN_STATE; static struct task_struct *HostIFthreadHandler; static WILC_MsgQueueHandle gMsgQHostIF; @@ -1307,14 +1303,12 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, goto ERRORHANDLER; } - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP if (g_obtainingIP || connecting) { PRINT_D(GENERIC_DBG, "[handle_scan]: Don't do obss scan until IP adresss is obtained\n"); PRINT_ER("Don't do obss scan\n"); s32Error = -EBUSY; goto ERRORHANDLER; } - #endif PRINT_D(HOSTINF_DBG, "Setting SCAN params\n"); @@ -2525,20 +2519,15 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, * else change state to IDLE */ if ((u8MacStatus == MAC_CONNECTED) && (strConnectInfo.u16ConnectStatus == SUCCESSFUL_STATUSCODE)) { - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP - host_int_set_power_mgmt(pstrWFIDrv, 0, 0); - #endif PRINT_D(HOSTINF_DBG, "MAC status : CONNECTED and Connect Status : Successful\n"); pstrWFIDrv->enuHostIFstate = HOST_IF_CONNECTED; - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP PRINT_D(GENERIC_DBG, "Obtaining an IP, Disable Scan\n"); g_obtainingIP = true; mod_timer(&hDuringIpTimer, jiffies + msecs_to_jiffies(10000)); - #endif #ifdef WILC_PARSE_SCAN_IN_HOST /* open a BA session if possible */ @@ -2601,11 +2590,8 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, strDisconnectNotifInfo.ie_len = 0; if (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP - g_obtainingIP = false; host_int_set_power_mgmt(pstrWFIDrv, 0, 0); - #endif pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_DISCONN_NOTIF, NULL, @@ -3076,11 +3062,8 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP - g_obtainingIP = false; host_int_set_power_mgmt(pstrWFIDrv, 0, 0); - #endif memset(u8ConnectedSSID, 0, ETH_ALEN); @@ -3806,13 +3789,11 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, goto ERRORHANDLER; } - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP if (g_obtainingIP || connecting) { PRINT_D(GENERIC_DBG, "[handle_scan]: Don't do obss scan until IP adresss is obtained\n"); s32Error = -EBUSY; goto ERRORHANDLER; } - #endif PRINT_D(HOSTINF_DBG, "Setting channel :%d\n", pstrHostIfRemainOnChan->u16Channel); @@ -6383,10 +6364,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) goto _fail_timer_2; } - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP - g_obtainingIP = false; - #endif PRINT_D(HOSTINF_DBG, "Global handle pointer value=%p\n", pstrWFIDrv); if (clients_count == 0) { diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 7857ad2d2fa4..1f1b34bf0ba3 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -17,9 +17,7 @@ #include #include -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP #include -#endif #include #include #include @@ -47,16 +45,12 @@ #define _linux_wlan_device_removal() {} #endif -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP extern bool g_obtainingIP; -#endif extern u16 Set_machw_change_vir_if(bool bValue); extern void resolve_disconnect_aberration(void *drvHandler); extern u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; void wilc1000_wlan_deinit(linux_wlan_t *nic); -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP extern struct timer_list hDuringIpTimer; -#endif static int linux_wlan_device_power(int on_off) { @@ -86,13 +80,11 @@ static int linux_wlan_device_detection(int on_off) return 0; } -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP static int dev_state_ev_handler(struct notifier_block *this, unsigned long event, void *ptr); static struct notifier_block g_dev_notifier = { .notifier_call = dev_state_ev_handler }; -#endif #define wilc_wlan_deinit(nic) { if (&g_linux_wlan->oup != NULL) \ if (g_linux_wlan->oup.wlan_cleanup != NULL) \ @@ -196,7 +188,6 @@ static int DebuggingThreadTask(void *vp) } #endif -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP static int dev_state_ev_handler(struct notifier_block *this, unsigned long event, void *ptr) { struct in_ifaddr *dev_iface = (struct in_ifaddr *)ptr; @@ -295,7 +286,6 @@ static int dev_state_ev_handler(struct notifier_block *this, unsigned long event return NOTIFY_DONE; } -#endif #if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) static irqreturn_t isr_uh_routine(int irq, void *user_data) @@ -1844,9 +1834,7 @@ int wilc_netdev_init(void) if (!g_linux_wlan) return -ENOMEM; - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP register_inetaddr_notifier(&g_dev_notifier); - #endif for (i = 0; i < NUM_CONCURRENT_IFC; i++) { /*allocate first ethernet device with perinterface_wlan_t as its private data*/ @@ -1970,9 +1958,7 @@ static void __exit exit_wilc_driver(void) if ((g_linux_wlan != NULL) && (((g_linux_wlan->strInterfaceInfo[0].wilc_netdev) != NULL) || ((g_linux_wlan->strInterfaceInfo[1].wilc_netdev) != NULL))) { - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP unregister_inetaddr_notifier(&g_dev_notifier); - #endif for (i = 0; i < NUM_CONCURRENT_IFC; i++) nic[i] = netdev_priv(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 7d26ccd20390..755a81710dc9 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -30,18 +30,14 @@ extern int mac_close(struct net_device *ndev); tstrNetworkInfo astrLastScannedNtwrksShadow[MAX_NUM_SCANNED_NETWORKS_SHADOW]; u32 u32LastScannedNtwrksCountShadow; -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP struct timer_list hDuringIpTimer; -#endif struct timer_list hAgingTimer; static u8 op_ifcs; extern u8 u8ConnectedSSID[6]; u8 g_wilc_initialized = 1; extern linux_wlan_t *g_linux_wlan; -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP extern bool g_obtainingIP; -#endif #define CHAN2G(_channel, _freq, _flags) { \ .band = IEEE80211_BAND_2GHZ, \ @@ -261,13 +257,11 @@ static void remove_network_from_shadow(unsigned long arg) } } -#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP static void clear_duringIP(unsigned long arg) { PRINT_D(GENERIC_DBG, "GO:IP Obtained , enable scan\n"); g_obtainingIP = false; } -#endif int8_t is_network_in_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid) { @@ -619,9 +613,7 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, u16ConnectStatus, GFP_KERNEL); /* TODO: mostafa: u16ConnectStatus to */ /* be replaced by pstrConnectInfo->u16ConnectStatus */ } else if (enuConnDisconnEvent == CONN_DISCONN_EVENT_DISCONN_NOTIF) { - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP g_obtainingIP = false; - #endif PRINT_ER("Received MAC_DISCONNECTED from firmware with reason %d on dev [%p]\n", pstrDisconnectNotifInfo->u16reason, priv->dev); u8P2Plocalrandom = 0x01; @@ -2707,11 +2699,9 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, bWilc_ie = false; - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP g_obtainingIP = false; del_timer(&hDuringIpTimer); PRINT_D(GENERIC_DBG, "Changing virtual interface, enable scan\n"); - #endif /*Set WILC_CHANGING_VIR_IF register to disallow adding futrue keys to CE H/W*/ if (g_ptk_keys_saved && g_gtk_keys_saved) { Set_machw_change_vir_if(true); @@ -2918,10 +2908,8 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, case NL80211_IFTYPE_P2P_GO: PRINT_D(GENERIC_DBG, "start duringIP timer\n"); - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP g_obtainingIP = true; mod_timer(&hDuringIpTimer, jiffies + msecs_to_jiffies(duringIP_TIME)); - #endif host_int_set_power_mgmt(priv->hWILCWFIDrv, 0, 0); /*Delete block ack has to be the latest config packet*/ /*sent before downloading new FW. This is because it blocks on*/ @@ -3603,9 +3591,7 @@ int wilc_init_host_int(struct net_device *net) priv = wdev_priv(net->ieee80211_ptr); if (op_ifcs == 0) { setup_timer(&hAgingTimer, remove_network_from_shadow, 0); - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP setup_timer(&hDuringIpTimer, clear_duringIP, 0); - #endif } op_ifcs++; if (s32Error < 0) { @@ -3652,12 +3638,10 @@ int wilc_deinit_host_int(struct net_device *net) /* Clear the Shadow scan */ clear_shadow_scan(priv); - #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP if (op_ifcs == 0) { PRINT_D(CORECONFIG_DBG, "destroy during ip\n"); del_timer_sync(&hDuringIpTimer); } - #endif if (s32Error) PRINT_ER("Error while deintializing host interface\n"); From 6e8c37df4cf101c7f4c051868c4dc2c33dbabf0d Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 23 Sep 2015 18:03:45 +0900 Subject: [PATCH 0612/2431] staging: wilc1000: move struct Message and WILC_MsgQueueHandle This patch moves struct Message and WILC_MsgQueueHandle from wilc_platform.h to wilc_msgqueue.h because those two structures are used only at wilc_msgqueue.c so that it is good to be defined at wilc_msgqueue.h Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.h | 15 +++++++++++++++ drivers/staging/wilc1000/wilc_platform.h | 14 -------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index a3c0bba2cc88..982628e570a3 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -12,6 +12,21 @@ #include "wilc_platform.h" +/* Message Queue type is a structure */ +typedef struct __Message_struct { + void *pvBuffer; + u32 u32Length; + struct __Message_struct *pstrNext; +} Message; + +typedef struct __MessageQueue_struct { + struct semaphore hSem; + spinlock_t strCriticalSection; + bool bExiting; + u32 u32ReceiversCount; + Message *pstrMessageList; +} WILC_MsgQueueHandle; + /*! * @brief Creates a new Message queue * @details Creates a new Message queue, if the feature diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h index b7636167f473..6ec1aa34617e 100644 --- a/drivers/staging/wilc1000/wilc_platform.h +++ b/drivers/staging/wilc1000/wilc_platform.h @@ -16,20 +16,6 @@ * OS specific types *******************************************************************/ -/* Message Queue type is a structure */ -typedef struct __Message_struct { - void *pvBuffer; - u32 u32Length; - struct __Message_struct *pstrNext; -} Message; - -typedef struct __MessageQueue_struct { - struct semaphore hSem; - spinlock_t strCriticalSection; - bool bExiting; - u32 u32ReceiversCount; - Message *pstrMessageList; -} WILC_MsgQueueHandle; From 947239070af5ce30c09de1f384cb605b9e6a3401 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 23 Sep 2015 18:03:46 +0900 Subject: [PATCH 0613/2431] staging: wilc1000: remove wilc_platform.h include file This patch removes wilc_platform.h include file that is defined in wilc_msgqueue.h file. After removing it, compilation error occurs so that it is included two header files as and at wilc_msgqueue.h and wilc_msgqueue.c Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 1 + drivers/staging/wilc1000/wilc_msgqueue.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 869736aab44d..d5ebd6d08db7 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -3,6 +3,7 @@ #include #include "linux_wlan_common.h" #include +#include /*! * @author syounan diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index 982628e570a3..d231c334ed93 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.h +++ b/drivers/staging/wilc1000/wilc_msgqueue.h @@ -10,7 +10,7 @@ * @version 1.0 */ -#include "wilc_platform.h" +#include /* Message Queue type is a structure */ typedef struct __Message_struct { From f23eb98b9429082644c2a08af12fbdbff646c406 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 23 Sep 2015 18:03:47 +0900 Subject: [PATCH 0614/2431] staging: wilc1000: move wilc_msgqueue.h include file This patch moves wilc_msgqueue.h include file from wilc_oswrapper.h to host_interface.c because message queue function as wilc_mq_create, wilc_mq_send, wilc_mq_recv and wilc_mq_destroy are used only at host_interface.c file. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1 + drivers/staging/wilc1000/wilc_oswrapper.h | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5993f3a5b42e..99de804a1da8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1,6 +1,7 @@ #include "host_interface.h" #include "coreconfigurator.h" #include "wilc_wlan_if.h" +#include "wilc_msgqueue.h" extern u8 connecting; diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h index 9b5c23a458ad..4f7bd89136ae 100644 --- a/drivers/staging/wilc1000/wilc_oswrapper.h +++ b/drivers/staging/wilc1000/wilc_oswrapper.h @@ -16,7 +16,5 @@ /* Os Configuration File */ #include "wilc_platform.h" -/* Message Queue */ -#include "wilc_msgqueue.h" #endif From 498767e336d0a0a3521ae9426177d82453555ab3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 23 Sep 2015 18:03:48 +0900 Subject: [PATCH 0615/2431] staging: wilc1000: remove WILC_OSW_INTERFACE_VER define This patch removes WILC_OSW_INTERFACE_VER define that is not used anywhere. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_oswrapper.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h index 4f7bd89136ae..5456c9674cc7 100644 --- a/drivers/staging/wilc1000/wilc_oswrapper.h +++ b/drivers/staging/wilc1000/wilc_oswrapper.h @@ -10,8 +10,6 @@ * @version 1.0 */ -/* OS Wrapper interface version */ -#define WILC_OSW_INTERFACE_VER 2 /* Os Configuration File */ #include "wilc_platform.h" From 6361167037a65d4a7a93873b2ff20548107ba6f3 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:52 +0900 Subject: [PATCH 0616/2431] staging: wilc1000: remove function pointer rx_indicate This patch removes function pointer rx_indicate and call the function frmw_to_linux directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 -- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + drivers/staging/wilc1000/wilc_wlan.c | 11 +++++------ drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 1f1b34bf0ba3..8119c4037fa7 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -106,7 +106,6 @@ extern void WILC_WFI_monitor_rx(u8 *buff, u32 size); extern void WILC_WFI_p2p_rx(struct net_device *dev, u8 *buff, u32 size); static void linux_wlan_tx_complete(void *priv, int status); -void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); static int mac_init_fn(struct net_device *ndev); int mac_xmit(struct sk_buff *skb, struct net_device *dev); int mac_open(struct net_device *ndev); @@ -1095,7 +1094,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) #endif /*for now - to be revised*/ - nwi->net_func.rx_indicate = frmw_to_linux; nwi->net_func.rx_complete = linux_wlan_rx_complete; nwi->indicate_func.mac_indicate = linux_wlan_mac_indicate; } diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 90fe1e274033..72220dfc6be0 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -216,5 +216,6 @@ struct WILC_WFI_mon_priv { }; extern struct net_device *WILC_WFI_devs[]; +void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index a3dd421b7f32..fe87c2b4f0c8 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1199,12 +1199,11 @@ static void wilc_wlan_handle_rxq(void) { if (!is_cfg_packet) { - - if (p->net_func.rx_indicate) { - if (pkt_len > 0) { - p->net_func.rx_indicate(&buffer[offset], pkt_len, pkt_offset); - has_packet = 1; - } + if (pkt_len > 0) { + frmw_to_linux(&buffer[offset], + pkt_len, + pkt_offset); + has_packet = 1; } } else { wilc_cfg_rsp_t rsp; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index ff25b3a1ea5d..d921f1cf890f 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -100,7 +100,6 @@ typedef struct { } wilc_wlan_io_func_t; typedef struct { - void (*rx_indicate)(u8 *, u32, u32); void (*rx_complete)(void); } wilc_wlan_net_func_t; From 4417d3daf8e45150b9121ee838f215431dc411dd Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:53 +0900 Subject: [PATCH 0617/2431] staging: wilc1000: remove function pointer mac_indicate No need for a pointer to a function. Just call linux_wlan_mac_indicate. Remove mac_indicate and also wilc_wlan_indicate_func_t since no members in it. Variable indicate_func is not used so delete it and related codes. Finally remove static from the function linux_wlan_mac_indicate. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + drivers/staging/wilc1000/wilc_wlan.c | 9 ++------- drivers/staging/wilc1000/wilc_wlan_if.h | 4 ---- 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 8119c4037fa7..9e099c36255d 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -393,7 +393,7 @@ static int linux_wlan_lock_timeout(void *vp, u32 timeout) return error; } -static void linux_wlan_mac_indicate(int flag) +void linux_wlan_mac_indicate(int flag) { /*I have to do it that way becuase there is no mean to encapsulate device pointer * as a parameter @@ -1095,7 +1095,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) /*for now - to be revised*/ nwi->net_func.rx_complete = linux_wlan_rx_complete; - nwi->indicate_func.mac_indicate = linux_wlan_mac_indicate; } int wlan_initialize_threads(perInterface_wlan_t *nic) diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 72220dfc6be0..5efbaf4d3ed7 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -217,5 +217,6 @@ struct WILC_WFI_mon_priv { extern struct net_device *WILC_WFI_devs[]; void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); +void linux_wlan_mac_indicate(int flag); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index fe87c2b4f0c8..a4d6120dca52 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -33,7 +33,6 @@ typedef struct { wilc_wlan_os_func_t os_func; wilc_wlan_io_func_t io_func; wilc_wlan_net_func_t net_func; - wilc_wlan_indicate_func_t indicate_func; /** * host interface functions @@ -1223,13 +1222,10 @@ static void wilc_wlan_handle_rxq(void) /** * Call back to indicate status... **/ - if (p->indicate_func.mac_indicate) { - p->indicate_func.mac_indicate(WILC_MAC_INDICATE_STATUS); - } + linux_wlan_mac_indicate(WILC_MAC_INDICATE_STATUS); } else if (rsp.type == WILC_CFG_RSP_SCAN) { - if (p->indicate_func.mac_indicate) - p->indicate_func.mac_indicate(WILC_MAC_INDICATE_SCAN); + linux_wlan_mac_indicate(WILC_MAC_INDICATE_SCAN); } } } @@ -1978,7 +1974,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t)); memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t)); memcpy((void *)&g_wlan.net_func, (void *)&inp->net_func, sizeof(wilc_wlan_net_func_t)); - memcpy((void *)&g_wlan.indicate_func, (void *)&inp->indicate_func, sizeof(wilc_wlan_net_func_t)); g_wlan.hif_lock = inp->os_context.hif_critical_section; g_wlan.txq_lock = inp->os_context.txq_critical_section; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index d921f1cf890f..5b7d732cdb8d 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -103,9 +103,6 @@ typedef struct { void (*rx_complete)(void); } wilc_wlan_net_func_t; -typedef struct { - void (*mac_indicate)(int); -} wilc_wlan_indicate_func_t; #define WILC_MAC_INDICATE_STATUS 0x1 #define WILC_MAC_STATUS_INIT -1 #define WILC_MAC_STATUS_READY 0 @@ -139,7 +136,6 @@ typedef struct { wilc_wlan_os_func_t os_func; wilc_wlan_io_func_t io_func; wilc_wlan_net_func_t net_func; - wilc_wlan_indicate_func_t indicate_func; } wilc_wlan_inp_t; struct tx_complete_data { From c0cadaa4ab48839459cfe6a31211453dcfd31eee Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:54 +0900 Subject: [PATCH 0618/2431] staging: wilc1000: remove function pointer rx_complete just call the function linux_wlan_rx_complete directly. No need for a pointer to the functions. Remove rx_complete, wilc_wlan_net_func_t and net_func which are not used anymore. Finally remove static from the function linux_wlan_rx_complete. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 5 +---- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + drivers/staging/wilc1000/wilc_wlan.c | 5 +---- drivers/staging/wilc1000/wilc_wlan_if.h | 5 ----- 4 files changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 9e099c36255d..7b76b22e80ce 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -555,7 +555,7 @@ static int linux_wlan_txq_task(void *vp) return 0; } -static void linux_wlan_rx_complete(void) +void linux_wlan_rx_complete(void) { PRINT_D(RX_DBG, "RX completed\n"); } @@ -1092,9 +1092,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->io_func.u.spi.spi_trx = linux_spi_write_read; nwi->io_func.u.spi.spi_max_speed = linux_spi_set_max_speed; #endif - - /*for now - to be revised*/ - nwi->net_func.rx_complete = linux_wlan_rx_complete; } int wlan_initialize_threads(perInterface_wlan_t *nic) diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 5efbaf4d3ed7..bda924462fcc 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -218,5 +218,6 @@ struct WILC_WFI_mon_priv { extern struct net_device *WILC_WFI_devs[]; void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); void linux_wlan_mac_indicate(int flag); +void linux_wlan_rx_complete(void); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index a4d6120dca52..1ad3d23a63a7 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -32,7 +32,6 @@ typedef struct { **/ wilc_wlan_os_func_t os_func; wilc_wlan_io_func_t io_func; - wilc_wlan_net_func_t net_func; /** * host interface functions @@ -1241,8 +1240,7 @@ static void wilc_wlan_handle_rxq(void) kfree(rqe); if (has_packet) { - if (p->net_func.rx_complete) - p->net_func.rx_complete(); + linux_wlan_rx_complete(); } } while (1); @@ -1973,7 +1971,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) **/ memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t)); memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t)); - memcpy((void *)&g_wlan.net_func, (void *)&inp->net_func, sizeof(wilc_wlan_net_func_t)); g_wlan.hif_lock = inp->os_context.hif_critical_section; g_wlan.txq_lock = inp->os_context.txq_critical_section; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 5b7d732cdb8d..ef0e0e8d1f8f 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -99,10 +99,6 @@ typedef struct { } u; } wilc_wlan_io_func_t; -typedef struct { - void (*rx_complete)(void); -} wilc_wlan_net_func_t; - #define WILC_MAC_INDICATE_STATUS 0x1 #define WILC_MAC_STATUS_INIT -1 #define WILC_MAC_STATUS_READY 0 @@ -135,7 +131,6 @@ typedef struct { wilc_wlan_os_context_t os_context; wilc_wlan_os_func_t os_func; wilc_wlan_io_func_t io_func; - wilc_wlan_net_func_t net_func; } wilc_wlan_inp_t; struct tx_complete_data { From ef2b784c3006575fb6ffd6faed41c0f2d09abfb4 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:55 +0900 Subject: [PATCH 0619/2431] staging: wilc1000: remove function pointer os_debug This patch removes os_debug and call linux_wlan_dbg function instead of os_debug. Delete static from the linux_wlan_dbg. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + drivers/staging/wilc1000/wilc_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 7b76b22e80ce..d2678a3f8961 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -376,7 +376,7 @@ static void deinit_irq(linux_wlan_t *nic) /* * OS functions */ -static void linux_wlan_dbg(u8 *buff) +void linux_wlan_dbg(u8 *buff) { PRINT_D(INIT_DBG, "%d\n", *buff); } @@ -1072,7 +1072,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.rxq_critical_section = (void *)&g_linux_wlan->rxq_cs; nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event; - nwi->os_func.os_debug = linux_wlan_dbg; nwi->os_func.os_wait = linux_wlan_lock_timeout; #ifdef WILC_SDIO diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index bda924462fcc..47e04c2d9607 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -219,5 +219,6 @@ extern struct net_device *WILC_WFI_devs[]; void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); void linux_wlan_mac_indicate(int flag); void linux_wlan_rx_complete(void); +void linux_wlan_dbg(u8 *buff); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 1ad3d23a63a7..5d93c7f94106 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -113,8 +113,7 @@ static void wilc_debug(u32 flag, char *fmt, ...) vsprintf(buf, fmt, args); va_end(args); - if (g_wlan.os_func.os_debug) - g_wlan.os_func.os_debug(buf); + linux_wlan_dbg(buf); } } diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index ef0e0e8d1f8f..b6fdb8a4b09f 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -75,7 +75,6 @@ typedef struct { } sdio_cmd53_t; typedef struct { - void (*os_debug)(u8 *); int (*os_wait)(void *, u32); } wilc_wlan_os_func_t; From 85e57567f2ae6ff89648f7073d1b74dcc5620dc9 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:56 +0900 Subject: [PATCH 0620/2431] staging: wilc1000: use g_linux_wlan->txq_spinlock not the pointer of it Use spinlock variable g_linux_wlan->txq_spinlock itself instead of g_wlan.txq_spinlock which is pointer of g_linux_wlan->txq_spinlock. Delete os_context.txq_spin_lock, g_wlan.txq_spinlock and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 - drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + drivers/staging/wilc1000/wilc_wlan.c | 37 +++++++++---------- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d2678a3f8961..d953ffe56ca6 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1062,8 +1062,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs; - nwi->os_context.txq_spin_lock = (void *)&g_linux_wlan->txq_spinlock; - nwi->os_context.txq_wait_event = (void *)&g_linux_wlan->txq_event; #if defined(MEMORY_STATIC) diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 47e04c2d9607..b24b9a99b890 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -215,6 +215,7 @@ struct WILC_WFI_mon_priv { struct net_device *real_ndev; }; +extern linux_wlan_t *g_linux_wlan; extern struct net_device *WILC_WFI_devs[]; void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); void linux_wlan_mac_indicate(int flag); diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 5d93c7f94106..d908fc8e05ce 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -70,7 +70,6 @@ typedef struct { void *txq_lock; struct semaphore *txq_add_to_head_lock; - void *txq_spinlock; unsigned long txq_spinlock_flags; struct txq_entry_t *txq_head; @@ -179,7 +178,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - spin_lock_irqsave(p->txq_spinlock, flags); + spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); if (p->txq_head) { tqe = p->txq_head; p->txq_head = tqe->next; @@ -194,7 +193,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) } else { tqe = NULL; } - spin_unlock_irqrestore(p->txq_spinlock, flags); + spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags); return tqe; } @@ -202,7 +201,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - spin_lock_irqsave(p->txq_spinlock, flags); + spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); if (p->txq_head == NULL) { tqe->next = NULL; @@ -218,7 +217,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) p->txq_entries += 1; PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries); - spin_unlock_irqrestore(p->txq_spinlock, flags); + spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags); /** * wake up TX queue @@ -235,7 +234,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT)) return -1; - spin_lock_irqsave(p->txq_spinlock, flags); + spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); if (p->txq_head == NULL) { tqe->next = NULL; @@ -251,7 +250,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) p->txq_entries += 1; PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries); - spin_unlock_irqrestore(p->txq_spinlock, flags); + spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags); up(p->txq_add_to_head_lock); @@ -352,9 +351,9 @@ static inline int remove_TCP_related(void) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - spin_lock_irqsave(p->txq_spinlock, flags); + spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); - spin_unlock_irqrestore(p->txq_spinlock, flags); + spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags); return 0; } @@ -368,7 +367,7 @@ static inline int tcp_process(struct txq_entry_t *tqe) wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - spin_lock_irqsave(p->txq_spinlock, flags); + spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); eth_hdr_ptr = &buffer[0]; h_proto = ntohs(*((unsigned short *)ð_hdr_ptr[12])); @@ -416,7 +415,7 @@ static inline int tcp_process(struct txq_entry_t *tqe) } else { ret = 0; } - spin_unlock_irqrestore(p->txq_spinlock, flags); + spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags); return ret; } @@ -428,7 +427,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) u32 Dropped = 0; wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - spin_lock_irqsave(p->txq_spinlock, p->txq_spinlock_flags); + spin_lock_irqsave(&g_linux_wlan->txq_spinlock, p->txq_spinlock_flags); for (i = PendingAcks_arrBase; i < (PendingAcks_arrBase + Pending_Acks); i++) { if (Pending_Acks_info[i].ack_num < Acks_keep_track_info[Pending_Acks_info[i].Session_index].Bigger_Ack_num) { struct txq_entry_t *tqe; @@ -455,7 +454,8 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) PendingAcks_arrBase = 0; - spin_unlock_irqrestore(p->txq_spinlock, p->txq_spinlock_flags); + spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, + p->txq_spinlock_flags); while (Dropped > 0) { /*consume the semaphore count of the removed packet*/ @@ -576,11 +576,11 @@ static struct txq_entry_t *wilc_wlan_txq_get_first(void) struct txq_entry_t *tqe; unsigned long flags; - spin_lock_irqsave(p->txq_spinlock, flags); + spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); tqe = p->txq_head; - spin_unlock_irqrestore(p->txq_spinlock, flags); + spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags); return tqe; @@ -588,12 +588,11 @@ static struct txq_entry_t *wilc_wlan_txq_get_first(void) static struct txq_entry_t *wilc_wlan_txq_get_next(struct txq_entry_t *tqe) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - spin_lock_irqsave(p->txq_spinlock, flags); + spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); tqe = tqe->next; - spin_unlock_irqrestore(p->txq_spinlock, flags); + spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags); return tqe; @@ -1975,8 +1974,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section; - g_wlan.txq_spinlock = inp->os_context.txq_spin_lock; - g_wlan.rxq_lock = inp->os_context.rxq_critical_section; g_wlan.txq_wait = inp->os_context.txq_wait_event; g_wlan.cfg_wait = inp->os_context.cfg_wait_event; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index b6fdb8a4b09f..db87811fa30f 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -114,7 +114,6 @@ typedef struct { void *txq_critical_section; void *txq_add_to_head_critical_section; - void *txq_spin_lock; void *txq_wait_event; From 645db60e47bbc26aef84e0110544ff34b7ecf454 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:57 +0900 Subject: [PATCH 0621/2431] staging: wilc1000: use g_linux_wlan->rxq_cs for function arguemnt Use mutex variable g_linux_wlan->rxq_cs instead of pointer varialbe. No need to make extra pointer variable for the mutex. Remove rxq_critical_section, rxq_lock and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan.c | 10 ++++------ drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d953ffe56ca6..71f996ca91dc 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1067,7 +1067,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) #if defined(MEMORY_STATIC) nwi->os_context.rx_buffer_size = LINUX_RX_SIZE; #endif - nwi->os_context.rxq_critical_section = (void *)&g_linux_wlan->rxq_cs; nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event; nwi->os_func.os_wait = linux_wlan_lock_timeout; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index d908fc8e05ce..911c922d17cd 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -81,7 +81,6 @@ typedef struct { /** * RX queue **/ - struct mutex *rxq_lock; struct rxq_entry_t *rxq_head; struct rxq_entry_t *rxq_tail; int rxq_entries; @@ -605,7 +604,7 @@ static int wilc_wlan_rxq_add(struct rxq_entry_t *rqe) if (p->quit) return 0; - mutex_lock(p->rxq_lock); + mutex_lock(&g_linux_wlan->rxq_cs); if (p->rxq_head == NULL) { PRINT_D(RX_DBG, "Add to Queue head\n"); rqe->next = NULL; @@ -619,7 +618,7 @@ static int wilc_wlan_rxq_add(struct rxq_entry_t *rqe) } p->rxq_entries += 1; PRINT_D(RX_DBG, "Number of queue entries: %d\n", p->rxq_entries); - mutex_unlock(p->rxq_lock); + mutex_unlock(&g_linux_wlan->rxq_cs); return p->rxq_entries; } @@ -631,12 +630,12 @@ static struct rxq_entry_t *wilc_wlan_rxq_remove(void) if (p->rxq_head) { struct rxq_entry_t *rqe; - mutex_lock(p->rxq_lock); + mutex_lock(&g_linux_wlan->rxq_cs); rqe = p->rxq_head; p->rxq_head = p->rxq_head->next; p->rxq_entries -= 1; PRINT_D(RX_DBG, "RXQ entries decreased\n"); - mutex_unlock(p->rxq_lock); + mutex_unlock(&g_linux_wlan->rxq_cs); return rqe; } PRINT_D(RX_DBG, "Nothing to get from Q\n"); @@ -1974,7 +1973,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section; - g_wlan.rxq_lock = inp->os_context.rxq_critical_section; g_wlan.txq_wait = inp->os_context.txq_wait_event; g_wlan.cfg_wait = inp->os_context.cfg_wait_event; g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index db87811fa30f..60943059d37a 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -120,7 +120,6 @@ typedef struct { #if defined(MEMORY_STATIC) u32 rx_buffer_size; #endif - void *rxq_critical_section; struct semaphore *cfg_wait_event; } wilc_wlan_os_context_t; From 5cd6363385d0fe1669b4bf0906939b08e77b031e Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:58 +0900 Subject: [PATCH 0622/2431] staging: wilc1000: remove pointer variable of g_linux_wlan->txq_event Remove variable txq_wait and txq_wait_event which are pointer varialbe of g_linux_wlan->txq_event. No need to have extra pointer varialbe. Just use g_linux_wlan->txq_event. Remove os_context.txq_wait_event, txq_wait and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 -- drivers/staging/wilc1000/wilc_wlan.c | 8 +++----- drivers/staging/wilc1000/wilc_wlan_if.h | 2 -- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 71f996ca91dc..5bec7f2a4148 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1062,8 +1062,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs; - nwi->os_context.txq_wait_event = (void *)&g_linux_wlan->txq_event; - #if defined(MEMORY_STATIC) nwi->os_context.rx_buffer_size = LINUX_RX_SIZE; #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 911c922d17cd..de36057c383c 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -75,7 +75,6 @@ typedef struct { struct txq_entry_t *txq_head; struct txq_entry_t *txq_tail; int txq_entries; - void *txq_wait; int txq_exit; /** @@ -223,7 +222,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) **/ PRINT_D(TX_DBG, "Wake the txq_handling\n"); - up(p->txq_wait); + up(&g_linux_wlan->txq_event); } static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) @@ -256,7 +255,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) /** * wake up TX queue **/ - up(p->txq_wait); + up(&g_linux_wlan->txq_event); PRINT_D(TX_DBG, "Wake up the txq_handler\n"); return 0; @@ -458,7 +457,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) while (Dropped > 0) { /*consume the semaphore count of the removed packet*/ - p->os_func.os_wait(p->txq_wait, 1); + p->os_func.os_wait(&g_linux_wlan->txq_event, 1); Dropped--; } @@ -1973,7 +1972,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section; - g_wlan.txq_wait = inp->os_context.txq_wait_event; g_wlan.cfg_wait = inp->os_context.cfg_wait_event; g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size; #if defined (MEMORY_STATIC) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 60943059d37a..e3b112c00a14 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -115,8 +115,6 @@ typedef struct { void *txq_add_to_head_critical_section; - void *txq_wait_event; - #if defined(MEMORY_STATIC) u32 rx_buffer_size; #endif From 6a3b94f71829bee2c2467870470e6d528f9ea46d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:59 +0900 Subject: [PATCH 0623/2431] staging: wilc1000: remove pointer varialbe cfg_wait and cfg_wait_event This patch removes cfg_wait and cfg_wait_event which are pointer of g_linux_wlan->cfg_event. No need to have pointer varialbe of it. Just use g_linux_wlan->cfg_event. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 -- drivers/staging/wilc1000/wilc_wlan.c | 14 +++++++------- drivers/staging/wilc1000/wilc_wlan_if.h | 2 -- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5bec7f2a4148..28937766c29b 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1065,8 +1065,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) #if defined(MEMORY_STATIC) nwi->os_context.rx_buffer_size = LINUX_RX_SIZE; #endif - nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event; - nwi->os_func.os_wait = linux_wlan_lock_timeout; #ifdef WILC_SDIO diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index de36057c383c..fe7382e65ff9 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -47,7 +47,6 @@ typedef struct { wilc_cfg_frame_t cfg_frame; u32 cfg_frame_offset; int cfg_seq_no; - void *cfg_wait; /** * RX buffer @@ -485,7 +484,7 @@ static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, u32 buffer_size) PRINT_D(TX_DBG, "Adding config packet ...\n"); if (p->quit) { PRINT_D(TX_DBG, "Return due to clear function\n"); - up(p->cfg_wait); + up(&g_linux_wlan->cfg_event); return 0; } @@ -1137,7 +1136,7 @@ static void wilc_wlan_handle_rxq(void) do { if (p->quit) { PRINT_D(RX_DBG, "exit 1st do-while due to Clean_UP function\n"); - up(p->cfg_wait); + up(&g_linux_wlan->cfg_event); break; } rqe = wilc_wlan_rxq_remove(); @@ -1211,7 +1210,7 @@ static void wilc_wlan_handle_rxq(void) **/ PRINT_D(RX_DBG, "p->cfg_seq_no = %d - rsp.seq_no = %d\n", p->cfg_seq_no, rsp.seq_no); if (p->cfg_seq_no == rsp.seq_no) { - up(p->cfg_wait); + up(&g_linux_wlan->cfg_event); } } else if (rsp.type == WILC_CFG_RSP_STATUS) { /** @@ -1781,7 +1780,8 @@ static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, in if (wilc_wlan_cfg_commit(WILC_CFG_SET, drvHandler)) ret_size = 0; - if (p->os_func.os_wait(p->cfg_wait, CFG_PKTS_TIMEOUT)) { + if (p->os_func.os_wait(&g_linux_wlan->cfg_event, + CFG_PKTS_TIMEOUT)) { PRINT_D(TX_DBG, "Set Timed Out\n"); ret_size = 0; } @@ -1818,7 +1818,8 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) ret_size = 0; - if (p->os_func.os_wait(p->cfg_wait, CFG_PKTS_TIMEOUT)) { + if (p->os_func.os_wait(&g_linux_wlan->cfg_event, + CFG_PKTS_TIMEOUT)) { PRINT_D(TX_DBG, "Get Timed Out\n"); ret_size = 0; } @@ -1972,7 +1973,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section; - g_wlan.cfg_wait = inp->os_context.cfg_wait_event; g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size; #if defined (MEMORY_STATIC) g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index e3b112c00a14..b1de65bbc80d 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -118,8 +118,6 @@ typedef struct { #if defined(MEMORY_STATIC) u32 rx_buffer_size; #endif - - struct semaphore *cfg_wait_event; } wilc_wlan_os_context_t; typedef struct { From d5a63a868b264ef7cf8b39394f9ab09391633a50 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:00 +0900 Subject: [PATCH 0624/2431] staging: wilc1000: remove pointer variables of txq_add_to_head_cs This patch removes txq_add_to_head_critical_section and txq_add_to_head_lock which are pointer of g_linux_wlan->txq_add_to_head_cs. Just use g_linux_wlan->txq_add_to_head_cs as argument of function. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 --- drivers/staging/wilc1000/wilc_wlan.c | 13 ++++++------- drivers/staging/wilc1000/wilc_wlan_if.h | 3 --- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 28937766c29b..61161b982541 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1059,9 +1059,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.os_private = (void *)nic; nwi->os_context.tx_buffer_size = LINUX_TX_SIZE; nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs; - - nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs; - #if defined(MEMORY_STATIC) nwi->os_context.rx_buffer_size = LINUX_RX_SIZE; #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index fe7382e65ff9..bfeb9768aac6 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -68,7 +68,6 @@ typedef struct { **/ void *txq_lock; - struct semaphore *txq_add_to_head_lock; unsigned long txq_spinlock_flags; struct txq_entry_t *txq_head; @@ -228,7 +227,8 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT)) + if (p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs, + CFG_PKTS_TIMEOUT)) return -1; spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); @@ -248,7 +248,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries); spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags); - up(p->txq_add_to_head_lock); + up(&g_linux_wlan->txq_add_to_head_cs); /** @@ -843,7 +843,8 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) if (p->quit) break; - p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT); + p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs, + CFG_PKTS_TIMEOUT); #ifdef TCP_ACK_FILTER wilc_wlan_txq_filter_dup_tcp_ack(); #endif @@ -1112,7 +1113,7 @@ _end_: if (ret != 1) break; } while (0); - up(p->txq_add_to_head_lock); + up(&g_linux_wlan->txq_add_to_head_cs); p->txq_exit = 1; PRINT_D(TX_DBG, "THREAD: Exiting txq\n"); @@ -1971,8 +1972,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) g_wlan.hif_lock = inp->os_context.hif_critical_section; g_wlan.txq_lock = inp->os_context.txq_critical_section; - g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section; - g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size; #if defined (MEMORY_STATIC) g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index b1de65bbc80d..93e9fbdf0882 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -112,9 +112,6 @@ typedef struct { u32 tx_buffer_size; void *txq_critical_section; - - void *txq_add_to_head_critical_section; - #if defined(MEMORY_STATIC) u32 rx_buffer_size; #endif From 187f1ef192e1d070843fbf9cc2693e66ca3d72b4 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:01 +0900 Subject: [PATCH 0625/2431] staging: wilc1000: remove pointer varialbes of hif_cs Remove hif_lock and hif_critical_section which are pointer of g_linux_wlan->hif_cs. Remove also it's related codes. Just use mutex varialbe g_linux_wlan->hif_cs. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan.c | 10 ++++------ drivers/staging/wilc1000/wilc_wlan_if.h | 3 --- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 61161b982541..5bb5588a9aa9 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1055,7 +1055,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) PRINT_D(INIT_DBG, "Linux to Wlan services ...\n"); - nwi->os_context.hif_critical_section = (void *)&g_linux_wlan->hif_cs; nwi->os_context.os_private = (void *)nic; nwi->os_context.tx_buffer_size = LINUX_TX_SIZE; nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index bfeb9768aac6..bd7c59dd1af0 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -37,7 +37,6 @@ typedef struct { * host interface functions **/ wilc_hif_func_t hif_func; - struct mutex *hif_lock; /** * configuration interface functions @@ -120,7 +119,7 @@ static CHIP_PS_STATE_T genuChipPSstate = CHIP_WAKEDUP; static inline void acquire_bus(BUS_ACQUIRE_T acquire) { - mutex_lock(g_wlan.hif_lock); + mutex_lock(&g_linux_wlan->hif_cs); #ifndef WILC_OPTIMIZE_SLEEP_INT if (genuChipPSstate != CHIP_WAKEDUP) #endif @@ -136,7 +135,7 @@ static inline void release_bus(BUS_RELEASE_T release) if (release == RELEASE_ALLOW_SLEEP) chip_allow_sleep(); #endif - mutex_unlock(g_wlan.hif_lock); + mutex_unlock(&g_linux_wlan->hif_cs); } /******************************************** * @@ -1969,7 +1968,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) **/ memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t)); memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t)); - g_wlan.hif_lock = inp->os_context.hif_critical_section; g_wlan.txq_lock = inp->os_context.txq_critical_section; g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size; @@ -2088,7 +2086,7 @@ u16 Set_machw_change_vir_if(bool bValue) u32 reg; /*Reset WILC_CHANGING_VIR_IF register to allow adding futrue keys to CE H/W*/ - mutex_lock((&g_wlan)->hif_lock); + mutex_lock(&g_linux_wlan->hif_cs); ret = (&g_wlan)->hif_func.hif_read_reg(WILC_CHANGING_VIR_IF, ®); if (!ret) { PRINT_ER("Error while Reading reg WILC_CHANGING_VIR_IF\n"); @@ -2104,7 +2102,7 @@ u16 Set_machw_change_vir_if(bool bValue) if (!ret) { PRINT_ER("Error while writing reg WILC_CHANGING_VIR_IF\n"); } - mutex_unlock((&g_wlan)->hif_lock); + mutex_unlock(&g_linux_wlan->hif_cs); return ret; } diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 93e9fbdf0882..74bfa6d36823 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -107,9 +107,6 @@ typedef struct { typedef struct { void *os_private; - - struct mutex *hif_critical_section; - u32 tx_buffer_size; void *txq_critical_section; #if defined(MEMORY_STATIC) From 7015b5db076a08f90e0e3015ba7708202fb2a916 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:02 +0900 Subject: [PATCH 0626/2431] staging: wilc1000: remove variable tx_buffer_size This patch removes unnecessary two variables tx_buffer_size and just use LINUX_TX_SIZE as argument. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan.c | 6 ++---- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5bb5588a9aa9..62ca83fa1551 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1056,7 +1056,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) PRINT_D(INIT_DBG, "Linux to Wlan services ...\n"); nwi->os_context.os_private = (void *)nic; - nwi->os_context.tx_buffer_size = LINUX_TX_SIZE; nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs; #if defined(MEMORY_STATIC) nwi->os_context.rx_buffer_size = LINUX_RX_SIZE; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index bd7c59dd1af0..9217b1864ed6 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -58,7 +58,6 @@ typedef struct { /** * TX buffer **/ - u32 tx_buffer_size; u8 *tx_buffer; u32 tx_buffer_offset; @@ -873,7 +872,7 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) if (vmm_sz & 0x3) { /* has to be word aligned */ vmm_sz = (vmm_sz + 4) & ~0x3; } - if ((sum + vmm_sz) > p->tx_buffer_size) { + if ((sum + vmm_sz) > LINUX_TX_SIZE) { break; } PRINT_D(TX_DBG, "VMM Size AFTER alignment = %d\n", vmm_sz); @@ -1970,7 +1969,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t)); g_wlan.txq_lock = inp->os_context.txq_critical_section; - g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size; #if defined (MEMORY_STATIC) g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size; #endif @@ -2017,7 +2015,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) * alloc tx, rx buffer **/ if (g_wlan.tx_buffer == NULL) - g_wlan.tx_buffer = kmalloc(g_wlan.tx_buffer_size, GFP_KERNEL); + g_wlan.tx_buffer = kmalloc(LINUX_TX_SIZE, GFP_KERNEL); PRINT_D(TX_DBG, "g_wlan.tx_buffer = %p\n", g_wlan.tx_buffer); if (g_wlan.tx_buffer == NULL) { diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 74bfa6d36823..1dfc673cd574 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -107,7 +107,6 @@ typedef struct { typedef struct { void *os_private; - u32 tx_buffer_size; void *txq_critical_section; #if defined(MEMORY_STATIC) u32 rx_buffer_size; From 03eb7266306659080776907498cbfe96f7771d12 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:03 +0900 Subject: [PATCH 0627/2431] staging: wilc1000: remove variable rx_buffer_size This patch removes two variables rx_buffer_size and use LINUX_RX_SIZE as argument. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 --- drivers/staging/wilc1000/wilc_wlan.c | 9 ++------- drivers/staging/wilc1000/wilc_wlan_if.h | 3 --- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 62ca83fa1551..519fb167726c 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1057,9 +1057,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) nwi->os_context.os_private = (void *)nic; nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs; -#if defined(MEMORY_STATIC) - nwi->os_context.rx_buffer_size = LINUX_RX_SIZE; -#endif nwi->os_func.os_wait = linux_wlan_lock_timeout; #ifdef WILC_SDIO diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 9217b1864ed6..46f96c332622 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -51,7 +51,6 @@ typedef struct { * RX buffer **/ #ifdef MEMORY_STATIC - u32 rx_buffer_size; u8 *rx_buffer; u32 rx_buffer_offset; #endif @@ -1308,7 +1307,7 @@ static void wilc_wlan_handle_isr_ext(u32 int_status) if (size > 0) { #ifdef MEMORY_STATIC - if (p->rx_buffer_size - offset < size) + if (LINUX_RX_SIZE - offset < size) offset = 0; if (p->rx_buffer) @@ -1968,10 +1967,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t)); memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t)); g_wlan.txq_lock = inp->os_context.txq_critical_section; - -#if defined (MEMORY_STATIC) - g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size; -#endif /*** * host interface init **/ @@ -2028,7 +2023,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /* rx_buffer is not used unless we activate USE_MEM STATIC which is not applicable, allocating such memory is useless*/ #if defined (MEMORY_STATIC) if (g_wlan.rx_buffer == NULL) - g_wlan.rx_buffer = kmalloc(g_wlan.rx_buffer_size, GFP_KERNEL); + g_wlan.rx_buffer = kmalloc(LINUX_RX_SIZE, GFP_KERNEL); PRINT_D(TX_DBG, "g_wlan.rx_buffer =%p\n", g_wlan.rx_buffer); if (g_wlan.rx_buffer == NULL) { /* ENOBUFS 105 */ diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 1dfc673cd574..e87d7cc38520 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -108,9 +108,6 @@ typedef struct { typedef struct { void *os_private; void *txq_critical_section; -#if defined(MEMORY_STATIC) - u32 rx_buffer_size; -#endif } wilc_wlan_os_context_t; typedef struct { From d2bfac009ca2ea75befe5adde9ba8fd46e409c91 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:04 +0900 Subject: [PATCH 0628/2431] staging: wilc1000: remove mutex txq_cs and it's related codes mutex txq_cs is never used in the driver. txq_cs, txq_critical_section and txq_lock have same pointer so just delete them and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 5 ----- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - drivers/staging/wilc1000/wilc_wlan.c | 2 -- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 9 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 519fb167726c..354775066fd1 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1020,7 +1020,6 @@ int wlan_init_locks(linux_wlan_t *p_nic) mutex_init(&g_linux_wlan->hif_cs); mutex_init(&g_linux_wlan->rxq_cs); - mutex_init(&g_linux_wlan->txq_cs); spin_lock_init(&g_linux_wlan->txq_spinlock); sema_init(&g_linux_wlan->txq_add_to_head_cs, 1); @@ -1045,9 +1044,6 @@ static int wlan_deinit_locks(linux_wlan_t *nic) if (&g_linux_wlan->rxq_cs != NULL) mutex_destroy(&g_linux_wlan->rxq_cs); - if (&g_linux_wlan->txq_cs != NULL) - mutex_destroy(&g_linux_wlan->txq_cs); - return 0; } void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) @@ -1056,7 +1052,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) PRINT_D(INIT_DBG, "Linux to Wlan services ...\n"); nwi->os_context.os_private = (void *)nic; - nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs; nwi->os_func.os_wait = linux_wlan_lock_timeout; #ifdef WILC_SDIO diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index b24b9a99b890..e8443064c068 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -169,7 +169,6 @@ typedef struct { u8 u8NoIfcs; tstrInterfaceInfo strInterfaceInfo[NUM_CONCURRENT_IFC]; u8 open_ifcs; - struct mutex txq_cs; struct semaphore txq_add_to_head_cs; spinlock_t txq_spinlock; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 46f96c332622..aa20f433b011 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -63,7 +63,6 @@ typedef struct { /** * TX queue **/ - void *txq_lock; unsigned long txq_spinlock_flags; @@ -1966,7 +1965,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) **/ memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t)); memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t)); - g_wlan.txq_lock = inp->os_context.txq_critical_section; /*** * host interface init **/ diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index e87d7cc38520..0a377e107fa9 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -107,7 +107,6 @@ typedef struct { typedef struct { void *os_private; - void *txq_critical_section; } wilc_wlan_os_context_t; typedef struct { From b002e20d53c80b4071b267e1be776bfccf9676de Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:05 +0900 Subject: [PATCH 0629/2431] staging: wilc1000: remove function pointer os_wait This patch removes function pointer os_wait which is pointer of linux_wlan_lock_timeout and just call the real name function directly. Remove also static from linux_wlan_lock_timeout declaration. As os_wait is deleted, structure wilc_wlan_os_func_t is useless. Delete wilc_wlan_os_func_t, os_func and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_sdio.c | 2 -- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + drivers/staging/wilc1000/wilc_wlan.c | 20 +++++++++---------- drivers/staging/wilc1000/wilc_wlan_if.h | 5 ----- 5 files changed, 11 insertions(+), 20 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 354775066fd1..701d3179c99a 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -381,7 +381,7 @@ void linux_wlan_dbg(u8 *buff) PRINT_D(INIT_DBG, "%d\n", *buff); } -static int linux_wlan_lock_timeout(void *vp, u32 timeout) +int linux_wlan_lock_timeout(void *vp, u32 timeout) { int error = -1; @@ -1052,7 +1052,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) PRINT_D(INIT_DBG, "Linux to Wlan services ...\n"); nwi->os_context.os_private = (void *)nic; - nwi->os_func.os_wait = linux_wlan_lock_timeout; #ifdef WILC_SDIO nwi->io_func.io_type = HIF_SDIO; diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index 48834c6846c8..c22b35e643c7 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -14,7 +14,6 @@ typedef struct { void *os_context; - wilc_wlan_os_func_t os_func; u32 block_size; int (*sdio_cmd52)(sdio_cmd52_t *); int (*sdio_cmd53)(sdio_cmd53_t *); @@ -586,7 +585,6 @@ static int sdio_init(wilc_wlan_inp_t *inp, wilc_debug_func func) g_sdio.dPrint = func; g_sdio.os_context = inp->os_context.os_private; - memcpy((void *)&g_sdio.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t)); if (inp->io_func.io_init) { if (!inp->io_func.io_init(g_sdio.os_context)) { diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index e8443064c068..af49c912558e 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -220,5 +220,6 @@ void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); void linux_wlan_mac_indicate(int flag); void linux_wlan_rx_complete(void); void linux_wlan_dbg(u8 *buff); +int linux_wlan_lock_timeout(void *vp, u32 timeout); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index aa20f433b011..963973be1370 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -30,7 +30,6 @@ typedef struct { /** * input interface functions **/ - wilc_wlan_os_func_t os_func; wilc_wlan_io_func_t io_func; /** @@ -223,8 +222,8 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; unsigned long flags; - if (p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs, - CFG_PKTS_TIMEOUT)) + if (linux_wlan_lock_timeout(&g_linux_wlan->txq_add_to_head_cs, + CFG_PKTS_TIMEOUT)) return -1; spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); @@ -452,7 +451,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) while (Dropped > 0) { /*consume the semaphore count of the removed packet*/ - p->os_func.os_wait(&g_linux_wlan->txq_event, 1); + linux_wlan_lock_timeout(&g_linux_wlan->txq_event, 1); Dropped--; } @@ -839,8 +838,8 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) if (p->quit) break; - p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs, - CFG_PKTS_TIMEOUT); + linux_wlan_lock_timeout(&g_linux_wlan->txq_add_to_head_cs, + CFG_PKTS_TIMEOUT); #ifdef TCP_ACK_FILTER wilc_wlan_txq_filter_dup_tcp_ack(); #endif @@ -1777,8 +1776,8 @@ static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, in if (wilc_wlan_cfg_commit(WILC_CFG_SET, drvHandler)) ret_size = 0; - if (p->os_func.os_wait(&g_linux_wlan->cfg_event, - CFG_PKTS_TIMEOUT)) { + if (linux_wlan_lock_timeout(&g_linux_wlan->cfg_event, + CFG_PKTS_TIMEOUT)) { PRINT_D(TX_DBG, "Set Timed Out\n"); ret_size = 0; } @@ -1815,8 +1814,8 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) ret_size = 0; - if (p->os_func.os_wait(&g_linux_wlan->cfg_event, - CFG_PKTS_TIMEOUT)) { + if (linux_wlan_lock_timeout(&g_linux_wlan->cfg_event, + CFG_PKTS_TIMEOUT)) { PRINT_D(TX_DBG, "Get Timed Out\n"); ret_size = 0; } @@ -1963,7 +1962,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * store the input **/ - memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t)); memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t)); /*** * host interface init diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 0a377e107fa9..2d6e0cef20d6 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -74,10 +74,6 @@ typedef struct { u32 block_size; } sdio_cmd53_t; -typedef struct { - int (*os_wait)(void *, u32); -} wilc_wlan_os_func_t; - typedef struct { int io_type; int (*io_init)(void *); @@ -111,7 +107,6 @@ typedef struct { typedef struct { wilc_wlan_os_context_t os_context; - wilc_wlan_os_func_t os_func; wilc_wlan_io_func_t io_func; } wilc_wlan_inp_t; From 1fea593f645c6375e24a74bef5f36f268679f8d2 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:06 +0900 Subject: [PATCH 0630/2431] staging: wilc1000: remove variable cif_func This patch removes variable cif_func and use mac_cfg directly. No need to have another pointer variable. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 963973be1370..54d0d7100b02 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -40,7 +40,6 @@ typedef struct { /** * configuration interface functions **/ - wilc_cfg_func_t cif_func; int cfg_frame_in_use; wilc_cfg_frame_t cfg_frame; u32 cfg_frame_offset; @@ -1199,7 +1198,7 @@ static void wilc_wlan_handle_rxq(void) - p->cif_func.rx_indicate(&buffer[pkt_offset + offset], pkt_len, &rsp); + mac_cfg.rx_indicate(&buffer[pkt_offset + offset], pkt_len, &rsp); if (rsp.type == WILC_CFG_RSP) { /** * wake up the waiting task... @@ -1764,7 +1763,8 @@ static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, in p->cfg_frame_offset = 0; offset = p->cfg_frame_offset; - ret_size = p->cif_func.cfg_wid_set(p->cfg_frame.frame, offset, (u16)wid, buffer, buffer_size); + ret_size = mac_cfg.cfg_wid_set(p->cfg_frame.frame, offset, (u16)wid, + buffer, buffer_size); offset += ret_size; p->cfg_frame_offset = offset; @@ -1803,7 +1803,7 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) p->cfg_frame_offset = 0; offset = p->cfg_frame_offset; - ret_size = p->cif_func.cfg_wid_get(p->cfg_frame.frame, offset, (u16)wid); + ret_size = mac_cfg.cfg_wid_get(p->cfg_frame.frame, offset, (u16)wid); offset += ret_size; p->cfg_frame_offset = offset; @@ -1830,10 +1830,9 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) static int wilc_wlan_cfg_get_val(u32 wid, u8 *buffer, u32 buffer_size) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; int ret; - ret = p->cif_func.cfg_wid_get_val((u16)wid, buffer, buffer_size); + ret = mac_cfg.cfg_wid_get_val((u16)wid, buffer, buffer_size); return ret; } @@ -1999,8 +1998,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) ret = -105; goto _fail_; } - memcpy((void *)&g_wlan.cif_func, &mac_cfg, sizeof(wilc_cfg_func_t)); - /** * alloc tx, rx buffer From 5cfe8c144524f7e1688b41c5dab46722be4a912b Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Fri, 25 Sep 2015 00:45:15 -0700 Subject: [PATCH 0631/2431] wilc1000 : Remove unused macro definitions Remove all unused TCP_*_MASK macro definitions Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 54d0d7100b02..be5e6f964d68 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -279,9 +279,6 @@ typedef struct { struct Ack_session_info *Free_head; struct Ack_session_info *Alloc_head; -#define TCP_FIN_MASK (1 << 0) -#define TCP_SYN_MASK (1 << 1) -#define TCP_Ack_MASK (1 << 4) #define NOT_TCP_ACK (-1) #define MAX_TCP_SESSION 25 From ec5c00afc2cab1c0e6692541302bc620437c8441 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:30 +0200 Subject: [PATCH 0632/2431] staging: most: change structure initialization By applying this patch the initialization of the most_aim structure is performed at compile time. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-network/networking.c | 14 ++++++++------ drivers/staging/most/aim-v4l2/video.c | 13 +++++++------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index cbda189eba2f..dd368721b727 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -79,7 +79,6 @@ struct net_dev_context { static struct list_head net_devices = LIST_HEAD_INIT(net_devices); static struct spinlock list_lock; -static struct most_aim aim; static int skb_to_mamac(const struct sk_buff *skb, struct mbo *mbo) @@ -491,15 +490,18 @@ out: return 0; } +static struct most_aim aim = { + .name = "networking", + .probe_channel = aim_probe_channel, + .disconnect_channel = aim_disconnect_channel, + .tx_completion = aim_resume_tx_channel, + .rx_completion = aim_rx_data, +}; + static int __init most_net_init(void) { pr_info("most_net_init()\n"); spin_lock_init(&list_lock); - aim.name = "networking"; - aim.probe_channel = aim_probe_channel; - aim.disconnect_channel = aim_disconnect_channel; - aim.tx_completion = aim_resume_tx_channel; - aim.rx_completion = aim_rx_data; return most_register_aim(&aim); } diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index 83332454974c..377bb107c94c 100644 --- a/drivers/staging/most/aim-v4l2/video.c +++ b/drivers/staging/most/aim-v4l2/video.c @@ -62,7 +62,6 @@ struct aim_fh { static struct list_head video_devices = LIST_HEAD_INIT(video_devices); static struct spinlock list_lock; -static struct most_aim aim_info; static inline bool data_ready(struct most_video_dev *mdev) @@ -590,14 +589,16 @@ static int aim_disconnect_channel(struct most_interface *iface, return 0; } +static struct most_aim aim_info = { + .name = "v4l", + .probe_channel = aim_probe_channel, + .disconnect_channel = aim_disconnect_channel, + .rx_completion = aim_rx_data, +}; + static int __init aim_init(void) { spin_lock_init(&list_lock); - - aim_info.name = "v4l"; - aim_info.probe_channel = aim_probe_channel; - aim_info.disconnect_channel = aim_disconnect_channel; - aim_info.rx_completion = aim_rx_data; return most_register_aim(&aim_info); } From bf358040c448af3fc6446bcf0d998d2fd420a7fc Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:31 +0200 Subject: [PATCH 0633/2431] staging: most: remove aim reset This patch partly reverts a modification of function most_stop_channel() that is trying to reset an established link between an AIM and an HDM in all suitable places. But since the function most_stop_channel() is stopping the data transfer it is the wrong place to do so. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/mostcore/core.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index eb4e15938875..5d996285fdee 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -1555,11 +1555,6 @@ int most_stop_channel(struct most_interface *iface, int id) if (!c->is_started) return 0; - /* FIXME: we need to know calling AIM to reset only one link */ - c->first_aim = NULL; - c->second_aim = NULL; - /* do not go into recursion calling aim->disconnect_channel */ - mutex_lock(&c->stop_task_mutex); if (c->hdm_enqueue_task) kthread_stop(c->hdm_enqueue_task); From 25ef42f3084df7b7511f1a9f72678a95d444f579 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:32 +0200 Subject: [PATCH 0634/2431] staging: most: fix race condition in AIM networking If the network device is being opened right after it has been registered via function register_netdev(), the device state is not yet consistent in the context of function ndo_open(). This patch cares about having the initialization done right, before the networking device is registered. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-network/networking.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index dd368721b727..761c4cbff3e1 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -356,10 +356,13 @@ static int aim_probe_channel(struct most_interface *iface, int channel_idx, } nd->dev = dev; + ch->ch_id = channel_idx; + ch->linked = true; dev->ml_priv = nd; if (register_netdev(dev)) { pr_err("registering net device failed\n"); + ch->linked = false; free_netdev(dev); return -EINVAL; } From 3032ab931bc81d56f6bd9a2a319afc66e4b03923 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:33 +0200 Subject: [PATCH 0635/2431] staging: most: remove shared IRQ request Since there is no way find out whether the INIC has generated an interrupt, the I2C interrupt must not be registered as a shared interrupt. Reported-by: PrasannaKumar Muralidharan Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-i2c/hdm_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 029ded3f250b..7e0c46154bb8 100644 --- a/drivers/staging/most/hdm-i2c/hdm_i2c.c +++ b/drivers/staging/most/hdm-i2c/hdm_i2c.c @@ -364,7 +364,7 @@ static int i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) dev->polling_mode = polling_req || client->irq <= 0; if (!dev->polling_mode) { pr_info("Requesting IRQ: %d\n", client->irq); - ret = request_irq(client->irq, most_irq_handler, IRQF_SHARED, + ret = request_irq(client->irq, most_irq_handler, 0, client->name, dev); if (ret) { pr_info("IRQ request failed: %d, " From 9161e9311c29e905c8b1cf9f10f5010239d49975 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:34 +0200 Subject: [PATCH 0636/2431] staging: most: fix USB babble on IN pipe This patch prevents the HDM USB from submitting an URB with a buffer size unaligned to 512 bytes to the USB subsystem. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 9bbefaaa0134..9006793aec64 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -711,7 +711,7 @@ static int hdm_enqueue(struct most_interface *iface, int channel, struct mbo *mb usb_rcvbulkpipe(mdev->usb_device, mdev->ep_address[channel]), virt_address, - length, + length + conf->extra_len, hdm_read_completion, mbo); } @@ -771,6 +771,7 @@ static int hdm_configure_channel(struct most_interface *iface, int channel, !((conf->data_type == MOST_CH_ISOC_AVP) && (conf->packets_per_xact != 0xFF))) { mdev->padding_active[channel] = false; + conf->extra_len = 0; goto exit; } From f13f6981bca3c79ba97c4092ab5ed6aed8b2ce99 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:35 +0200 Subject: [PATCH 0637/2431] staging: most: fix channel operation in multi-aim context This patch fixes the opening and closing process of a physical channel when used by different AIMs. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 5 +- drivers/staging/most/aim-network/networking.c | 11 +-- drivers/staging/most/aim-sound/sound.c | 5 +- drivers/staging/most/aim-v4l2/video.c | 5 +- drivers/staging/most/mostcore/core.c | 73 +++++++++++++------ drivers/staging/most/mostcore/mostcore.h | 6 +- 6 files changed, 68 insertions(+), 37 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 1a17e2af6a60..a8a7689231ac 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -27,6 +27,7 @@ static dev_t aim_devno; static struct class *aim_class; static struct ida minor_id; static unsigned int major; +static struct most_aim cdev_aim; struct aim_channel { wait_queue_head_t wq; @@ -96,7 +97,7 @@ static int aim_open(struct inode *inode, struct file *filp) return -EBUSY; } - ret = most_start_channel(channel->iface, channel->channel_id); + ret = most_start_channel(channel->iface, channel->channel_id, &cdev_aim); if (ret) atomic_dec(&channel->access_ref); return ret; @@ -134,7 +135,7 @@ static int aim_close(struct inode *inode, struct file *filp) most_put_mbo(mbo); if (channel->keep_mbo) most_put_mbo(channel->stacked_mbo); - ret = most_stop_channel(channel->iface, channel->channel_id); + ret = most_stop_channel(channel->iface, channel->channel_id, &cdev_aim); atomic_dec(&channel->access_ref); wake_up_interruptible(&channel->wq); return ret; diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index 761c4cbff3e1..c13bd89226d3 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -79,6 +79,7 @@ struct net_dev_context { static struct list_head net_devices = LIST_HEAD_INIT(net_devices); static struct spinlock list_lock; +static struct most_aim aim; static int skb_to_mamac(const struct sk_buff *skb, struct mbo *mbo) @@ -194,14 +195,14 @@ static int most_nd_open(struct net_device *dev) BUG_ON(!nd->tx.linked || !nd->rx.linked); - if (most_start_channel(nd->iface, nd->rx.ch_id)) { + if (most_start_channel(nd->iface, nd->rx.ch_id, &aim)) { netdev_err(dev, "most_start_channel() failed\n"); return -EBUSY; } - if (most_start_channel(nd->iface, nd->tx.ch_id)) { + if (most_start_channel(nd->iface, nd->tx.ch_id, &aim)) { netdev_err(dev, "most_start_channel() failed\n"); - most_stop_channel(nd->iface, nd->rx.ch_id); + most_stop_channel(nd->iface, nd->rx.ch_id, &aim); return -EBUSY; } @@ -227,8 +228,8 @@ static int most_nd_stop(struct net_device *dev) netif_stop_queue(dev); if (nd->channels_opened) { - most_stop_channel(nd->iface, nd->rx.ch_id); - most_stop_channel(nd->iface, nd->tx.ch_id); + most_stop_channel(nd->iface, nd->rx.ch_id, &aim); + most_stop_channel(nd->iface, nd->tx.ch_id, &aim); nd->channels_opened = false; } diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 27449d20328a..2d4732c10df4 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -26,6 +26,7 @@ #define DRIVER_NAME "sound" static struct list_head dev_list; +static struct most_aim audio_aim; /** * struct channel - private structure to keep channel specific data @@ -298,7 +299,7 @@ static int pcm_open(struct snd_pcm_substream *substream) return PTR_ERR(channel->playback_task); } - if (most_start_channel(channel->iface, channel->id)) { + if (most_start_channel(channel->iface, channel->id, &audio_aim)) { pr_err("most_start_channel() failed!\n"); if (cfg->direction == MOST_CH_TX) kthread_stop(channel->playback_task); @@ -333,7 +334,7 @@ static int pcm_close(struct snd_pcm_substream *substream) if (channel->cfg->direction == MOST_CH_TX) kthread_stop(channel->playback_task); - most_stop_channel(channel->iface, channel->id); + most_stop_channel(channel->iface, channel->id, &audio_aim); return 0; } diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index 377bb107c94c..345a82437311 100644 --- a/drivers/staging/most/aim-v4l2/video.c +++ b/drivers/staging/most/aim-v4l2/video.c @@ -32,6 +32,7 @@ #define V4L2_AIM_MAX_INPUT 1 +static struct most_aim aim_info; struct most_video_dev { struct most_interface *iface; @@ -107,7 +108,7 @@ static int aim_vdev_open(struct file *filp) v4l2_fh_add(&fh->fh); - ret = most_start_channel(mdev->iface, mdev->ch_idx); + ret = most_start_channel(mdev->iface, mdev->ch_idx, &aim_info); if (ret) { pr_err("most_start_channel() failed\n"); goto err_rm; @@ -151,7 +152,7 @@ static int aim_vdev_close(struct file *filp) spin_lock(&mdev->list_lock); } spin_unlock(&mdev->list_lock); - most_stop_channel(mdev->iface, mdev->ch_idx); + most_stop_channel(mdev->iface, mdev->ch_idx, &aim_info); mdev->mute = false; v4l2_fh_del(&fh->fh); diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 5d996285fdee..0053b8cc5363 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -44,7 +44,7 @@ struct most_c_obj { atomic_t mbo_nq_level; uint16_t channel_id; bool is_poisoned; - bool is_started; + struct mutex start_mutex; int is_starving; struct most_interface *iface; struct most_inst_obj *inst; @@ -57,6 +57,8 @@ struct most_c_obj { struct list_head list; struct most_aim *first_aim; struct most_aim *second_aim; + int first_aim_refs; + int second_aim_refs; struct list_head trash_fifo; struct task_struct *hdm_enqueue_task; struct mutex stop_task_mutex; @@ -1234,10 +1236,11 @@ static void arm_mbo(struct mbo *mbo) list_add_tail(&mbo->list, &c->fifo); spin_unlock_irqrestore(&c->fifo_lock, flags); - if (c->second_aim && c->second_aim->tx_completion) - c->second_aim->tx_completion(c->iface, c->channel_id); - if (c->first_aim && c->first_aim->tx_completion) + if (c->first_aim_refs && c->first_aim->tx_completion) c->first_aim->tx_completion(c->iface, c->channel_id); + + if (c->second_aim_refs && c->second_aim->tx_completion) + c->second_aim->tx_completion(c->iface, c->channel_id); } /** @@ -1441,11 +1444,12 @@ EXPORT_SYMBOL_GPL(most_put_mbo); */ static void most_read_completion(struct mbo *mbo) { - struct most_c_obj *c; + struct most_c_obj *c = mbo->context; - c = mbo->context; - if (unlikely(c->is_poisoned || (mbo->status == MBO_E_CLOSE))) - goto release_mbo; + if (unlikely(c->is_poisoned || (mbo->status == MBO_E_CLOSE))) { + trash_mbo(mbo); + return; + } if (mbo->status == MBO_E_INVAL) { nq_hdm_mbo(mbo); @@ -1458,16 +1462,15 @@ static void most_read_completion(struct mbo *mbo) c->is_starving = 1; } - if (c->first_aim && c->first_aim->rx_completion && + if (c->first_aim_refs && c->first_aim->rx_completion && c->first_aim->rx_completion(mbo) == 0) return; - if (c->second_aim && c->second_aim->rx_completion && + + if (c->second_aim_refs && c->second_aim->rx_completion && c->second_aim->rx_completion(mbo) == 0) return; - pr_info("WARN: no driver linked with this channel\n"); - mbo->status = MBO_E_CLOSE; -release_mbo: - trash_mbo(mbo); + + most_put_mbo(mbo); } /** @@ -1480,7 +1483,8 @@ release_mbo: * * Returns 0 on success or error code otherwise. */ -int most_start_channel(struct most_interface *iface, int id) +int most_start_channel(struct most_interface *iface, int id, + struct most_aim *aim) { int num_buffer; int ret; @@ -1489,11 +1493,13 @@ int most_start_channel(struct most_interface *iface, int id) if (unlikely(!c)) return -EINVAL; - if (c->is_started) - return -EBUSY; + mutex_lock(&c->start_mutex); + if (c->first_aim_refs + c->second_aim_refs > 0) + goto out; /* already started by other aim */ if (!try_module_get(iface->mod)) { pr_info("failed to acquire HDM lock\n"); + mutex_unlock(&c->start_mutex); return -ENOLCK; } modref++; @@ -1523,14 +1529,22 @@ int most_start_channel(struct most_interface *iface, int id) if (ret) goto error; - c->is_started = true; c->is_starving = 0; atomic_set(&c->mbo_ref, num_buffer); + +out: + if (aim == c->first_aim) + c->first_aim_refs++; + if (aim == c->second_aim) + c->second_aim_refs++; + mutex_unlock(&c->start_mutex); return 0; + error: if (iface->mod) module_put(iface->mod); modref--; + mutex_unlock(&c->start_mutex); return ret; } EXPORT_SYMBOL_GPL(most_start_channel); @@ -1540,7 +1554,8 @@ EXPORT_SYMBOL_GPL(most_start_channel); * @iface: pointer to interface instance * @id: channel ID */ -int most_stop_channel(struct most_interface *iface, int id) +int most_stop_channel(struct most_interface *iface, int id, + struct most_aim *aim) { struct most_c_obj *c; @@ -1552,8 +1567,9 @@ int most_stop_channel(struct most_interface *iface, int id) if (unlikely(!c)) return -EINVAL; - if (!c->is_started) - return 0; + mutex_lock(&c->start_mutex); + if (c->first_aim_refs + c->second_aim_refs >= 2) + goto out; mutex_lock(&c->stop_task_mutex); if (c->hdm_enqueue_task) @@ -1564,6 +1580,7 @@ int most_stop_channel(struct most_interface *iface, int id) mutex_lock(&deregister_mutex); if (atomic_read(&c->inst->tainted)) { mutex_unlock(&deregister_mutex); + mutex_unlock(&c->start_mutex); return -ENODEV; } mutex_unlock(&deregister_mutex); @@ -1577,6 +1594,7 @@ int most_stop_channel(struct most_interface *iface, int id) if (c->iface->poison_channel(c->iface, c->channel_id)) { pr_err("Cannot stop channel %d of mdev %s\n", c->channel_id, c->iface->description); + mutex_unlock(&c->start_mutex); return -EAGAIN; } flush_trash_fifo(c); @@ -1585,13 +1603,20 @@ int most_stop_channel(struct most_interface *iface, int id) #ifdef CMPL_INTERRUPTIBLE if (wait_for_completion_interruptible(&c->cleanup)) { pr_info("Interrupted while clean up ch %d\n", c->channel_id); + mutex_unlock(&c->start_mutex); return -EINTR; } #else wait_for_completion(&c->cleanup); #endif c->is_poisoned = false; - c->is_started = false; + +out: + if (aim == c->first_aim) + c->first_aim_refs--; + if (aim == c->second_aim) + c->second_aim_refs--; + mutex_unlock(&c->start_mutex); return 0; } EXPORT_SYMBOL_GPL(most_stop_channel); @@ -1725,7 +1750,6 @@ struct kobject *most_register_interface(struct most_interface *iface) c->keep_mbo = false; c->enqueue_halt = false; c->is_poisoned = false; - c->is_started = false; c->cfg.direction = 0; c->cfg.data_type = 0; c->cfg.num_buffers = 0; @@ -1738,6 +1762,7 @@ struct kobject *most_register_interface(struct most_interface *iface) INIT_LIST_HEAD(&c->halt_fifo); init_completion(&c->cleanup); atomic_set(&c->mbo_ref, 0); + mutex_init(&c->start_mutex); mutex_init(&c->stop_task_mutex); list_add_tail(&c->list, &inst->channel_list); } @@ -1784,7 +1809,7 @@ void most_deregister_interface(struct most_interface *iface) } list_for_each_entry(c, &i->channel_list, list) { - if (!c->is_started) + if (c->first_aim_refs + c->second_aim_refs <= 0) continue; mutex_lock(&c->stop_task_mutex); diff --git a/drivers/staging/most/mostcore/mostcore.h b/drivers/staging/most/mostcore/mostcore.h index 299c7d5aa73a..e23ad7c33249 100644 --- a/drivers/staging/most/mostcore/mostcore.h +++ b/drivers/staging/most/mostcore/mostcore.h @@ -309,8 +309,10 @@ int most_register_aim(struct most_aim *aim); int most_deregister_aim(struct most_aim *aim); struct mbo *most_get_mbo(struct most_interface *iface, int channel_idx); void most_put_mbo(struct mbo *mbo); -int most_start_channel(struct most_interface *iface, int channel_idx); -int most_stop_channel(struct most_interface *iface, int channel_idx); +int most_start_channel(struct most_interface *iface, int channel_idx, + struct most_aim *); +int most_stop_channel(struct most_interface *iface, int channel_idx, + struct most_aim *); #endif /* MOST_CORE_H_ */ From d6f7737d5a576f0625ebb2a5896d1b13e3c1c95c Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:36 +0200 Subject: [PATCH 0638/2431] staging: most: remove unnecessary field initialization Since conf->extra_len has already been reset in most_start_channel() when function hdm_configure_channel() gets called, it can safely be removed here. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 9006793aec64..61974dd5075d 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -771,7 +771,6 @@ static int hdm_configure_channel(struct most_interface *iface, int channel, !((conf->data_type == MOST_CH_ISOC_AVP) && (conf->packets_per_xact != 0xFF))) { mdev->padding_active[channel] = false; - conf->extra_len = 0; goto exit; } From a2cfae06acf9b7f142fbde4a5cc94c1423136390 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:37 +0200 Subject: [PATCH 0639/2431] staging: most: remove dead code The case where the channel type is neither synchronous nor isochronous is already covered by a previous condition. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 61974dd5075d..54c8c1ebe73e 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -777,12 +777,6 @@ static int hdm_configure_channel(struct most_interface *iface, int channel, mdev->padding_active[channel] = true; temp_size = conf->buffer_size; - if ((conf->data_type != MOST_CH_SYNC) && - (conf->data_type != MOST_CH_ISOC_AVP)) { - dev_warn(dev, "Unsupported data type\n"); - return -EINVAL; - } - frame_size = get_stream_frame_size(conf); if ((frame_size == 0) || (frame_size > USB_MTU)) { dev_warn(dev, "Misconfig: frame size wrong\n"); From d747e8ec1c9ce0cc6c4813ca1fce993db4001a38 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:38 +0200 Subject: [PATCH 0640/2431] staging: most: fix buffer synchronization request Revision D of OS81118 network interface controller have the internal buffer synchronization mechanism changed. This patch adapts the driver to this. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 41 +++++++------------------- 1 file changed, 10 insertions(+), 31 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 54c8c1ebe73e..3c731dac9709 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -59,6 +59,8 @@ #define DRCI_REG_HW_ADDR_HI 0x0145 #define DRCI_REG_HW_ADDR_MI 0x0146 #define DRCI_REG_HW_ADDR_LO 0x0147 +#define DRCI_REG_BASE 0x1100 +#define DRCI_COMMAND 0x02 #define DRCI_READ_REQ 0xA0 #define DRCI_WRITE_REQ 0xA1 @@ -136,36 +138,6 @@ static struct workqueue_struct *schedule_usb_work; static void wq_clear_halt(struct work_struct *wq_obj); static void wq_netinfo(struct work_struct *wq_obj); -/** - * trigger_resync_vr - Vendor request to trigger HW re-sync mechanism - * @dev: usb device - * - */ -static void trigger_resync_vr(struct usb_device *dev) -{ - int retval; - u8 request_type = USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_ENDPOINT; - int *data = kzalloc(sizeof(*data), GFP_KERNEL); - - if (!data) - goto error; - *data = HW_RESYNC; - retval = usb_control_msg(dev, - usb_sndctrlpipe(dev, 0), - 0, - request_type, - 0, - 0, - data, - 0, - 5 * HZ); - kfree(data); - if (retval >= 0) - return; -error: - dev_err(&dev->dev, "Vendor request \"stall\" failed\n"); -} - /** * drci_rd_reg - read a DCI register * @dev: usb device @@ -1239,6 +1211,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id) struct usb_host_interface *usb_iface_desc; struct usb_endpoint_descriptor *ep_desc; int ret = 0; + int err; usb_iface_desc = interface->cur_altsetting; usb_dev = interface_to_usbdev(interface); @@ -1319,6 +1292,13 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id) tmp_cap++; INIT_LIST_HEAD(&mdev->anchor_list[i]); spin_lock_init(&mdev->anchor_list_lock[i]); + err = drci_wr_reg(usb_dev, + DRCI_REG_BASE + DRCI_COMMAND + + ep_desc->bEndpointAddress * 16, + cpu_to_le16(1)); + if (err < 0) + pr_warn("DCI Sync for EP %02x failed", + ep_desc->bEndpointAddress); } dev_notice(dev, "claimed gadget: Vendor=%4.4x ProdID=%4.4x Bus=%02x Device=%02x\n", le16_to_cpu(usb_dev->descriptor.idVendor), @@ -1353,7 +1333,6 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id) kobject_uevent(&mdev->dci->kobj, KOBJ_ADD); mdev->dci->usb_device = mdev->usb_device; - trigger_resync_vr(usb_dev); } mutex_unlock(&mdev->io_mutex); return 0; From f1b9a84382045b693b28d7dce1b2af45b435bbe9 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:39 +0200 Subject: [PATCH 0641/2431] staging: most: remove macro cpu_to_le16 This patch removes the wrongly used macros cpu_to_le16 Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 3c731dac9709..a9da92f14b24 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -1077,7 +1077,7 @@ static ssize_t store_value(struct most_dci_obj *dci_obj, struct most_dci_attribute *attr, const char *buf, size_t count) { - u16 v16; + u16 val; u16 reg_addr; int err; @@ -1100,11 +1100,11 @@ static ssize_t store_value(struct most_dci_obj *dci_obj, else return -EIO; - err = kstrtou16(buf, 16, &v16); + err = kstrtou16(buf, 16, &val); if (err) return err; - err = drci_wr_reg(dci_obj->usb_device, reg_addr, cpu_to_le16(v16)); + err = drci_wr_reg(dci_obj->usb_device, reg_addr, val); if (err < 0) return err; @@ -1295,7 +1295,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id) err = drci_wr_reg(usb_dev, DRCI_REG_BASE + DRCI_COMMAND + ep_desc->bEndpointAddress * 16, - cpu_to_le16(1)); + 1); if (err < 0) pr_warn("DCI Sync for EP %02x failed", ep_desc->bEndpointAddress); From c31d9d12ef5b6937d8399fa9ede2bb11dc225363 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:40 +0200 Subject: [PATCH 0642/2431] staging: most: fix buffer size for DIM2 This patch reduces the DBR buffer size to prevent an overflow in the DIM2 module. It is needed, because the MediaLB hardware has problems with DBR buffers that exceed the size of 255 messages. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index e334206e2eb0..0e548301e3bc 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.c +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c @@ -766,14 +766,14 @@ u8 DIM_InitControl(struct dim_channel *ch, u8 is_tx, u16 ch_address, u16 max_buffer_size) { return init_ctrl_async(ch, CAT_CT_VAL_CONTROL, is_tx, ch_address, - max_buffer_size * 2); + max_buffer_size); } u8 DIM_InitAsync(struct dim_channel *ch, u8 is_tx, u16 ch_address, u16 max_buffer_size) { return init_ctrl_async(ch, CAT_CT_VAL_ASYNC, is_tx, ch_address, - max_buffer_size * 2); + max_buffer_size); } u8 DIM_InitIsoc(struct dim_channel *ch, u8 is_tx, u16 ch_address, From 1ea7e502c425605a7ae5417085f21e8a2b09297c Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:41 +0200 Subject: [PATCH 0643/2431] staging: most: fix MAC address representation This patch fixes the representation of the MAC address within the HDM USB module. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index a9da92f14b24..315abeca7e56 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -790,29 +790,37 @@ exit: static int hdm_update_netinfo(struct most_dev *mdev) { struct device *dev = &mdev->usb_device->dev; - int i; - u16 link; - u8 addr[6]; + u16 hi, mi, lo, link; if (!is_valid_ether_addr(mdev->hw_addr)) { if (0 > drci_rd_reg(mdev->usb_device, - DRCI_REG_HW_ADDR_HI, addr)) { + DRCI_REG_HW_ADDR_HI, &hi)) { dev_err(dev, "Vendor request \"hw_addr_hi\" failed\n"); return -1; } + le16_to_cpus(&hi); + if (0 > drci_rd_reg(mdev->usb_device, - DRCI_REG_HW_ADDR_MI, addr + 2)) { + DRCI_REG_HW_ADDR_MI, &mi)) { dev_err(dev, "Vendor request \"hw_addr_mid\" failed\n"); return -1; } + le16_to_cpus(&mi); + if (0 > drci_rd_reg(mdev->usb_device, - DRCI_REG_HW_ADDR_LO, addr + 4)) { + DRCI_REG_HW_ADDR_LO, &lo)) { dev_err(dev, "Vendor request \"hw_addr_low\" failed\n"); return -1; } + le16_to_cpus(&lo); + mutex_lock(&mdev->io_mutex); - for (i = 0; i < 6; i++) - mdev->hw_addr[i] = addr[i]; + mdev->hw_addr[0] = hi >> 8; + mdev->hw_addr[1] = hi; + mdev->hw_addr[2] = mi >> 8; + mdev->hw_addr[3] = mi; + mdev->hw_addr[4] = lo >> 8; + mdev->hw_addr[5] = lo; mutex_unlock(&mdev->io_mutex); } From cc8d9935134c0473ae536383586ec7b7becdd82d Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:42 +0200 Subject: [PATCH 0644/2431] staging: most: simplify code This patch simply rearranges code for better readability. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 315abeca7e56..01ea91b0c6c5 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -789,26 +789,24 @@ exit: */ static int hdm_update_netinfo(struct most_dev *mdev) { - struct device *dev = &mdev->usb_device->dev; + struct usb_device *usb_device = mdev->usb_device; + struct device *dev = &usb_device->dev; u16 hi, mi, lo, link; if (!is_valid_ether_addr(mdev->hw_addr)) { - if (0 > drci_rd_reg(mdev->usb_device, - DRCI_REG_HW_ADDR_HI, &hi)) { + if (drci_rd_reg(usb_device, DRCI_REG_HW_ADDR_HI, &hi) < 0) { dev_err(dev, "Vendor request \"hw_addr_hi\" failed\n"); return -1; } le16_to_cpus(&hi); - if (0 > drci_rd_reg(mdev->usb_device, - DRCI_REG_HW_ADDR_MI, &mi)) { + if (drci_rd_reg(usb_device, DRCI_REG_HW_ADDR_MI, &mi) < 0) { dev_err(dev, "Vendor request \"hw_addr_mid\" failed\n"); return -1; } le16_to_cpus(&mi); - if (0 > drci_rd_reg(mdev->usb_device, - DRCI_REG_HW_ADDR_LO, &lo)) { + if (drci_rd_reg(usb_device, DRCI_REG_HW_ADDR_LO, &lo) < 0) { dev_err(dev, "Vendor request \"hw_addr_low\" failed\n"); return -1; } @@ -822,13 +820,14 @@ static int hdm_update_netinfo(struct most_dev *mdev) mdev->hw_addr[4] = lo >> 8; mdev->hw_addr[5] = lo; mutex_unlock(&mdev->io_mutex); - } - if (0 > drci_rd_reg(mdev->usb_device, DRCI_REG_NI_STATE, &link)) { + + if (drci_rd_reg(usb_device, DRCI_REG_NI_STATE, &link) < 0) { dev_err(dev, "Vendor request \"link status\" failed\n"); return -1; } le16_to_cpus(&link); + mutex_lock(&mdev->io_mutex); mdev->link_stat = link; mutex_unlock(&mdev->io_mutex); From 26370228875b823b9a90562619c509461f9b91ae Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:43 +0200 Subject: [PATCH 0645/2431] staging: most: prevent DMA on stack This patch is needed to avoid having DMA on the stack. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 01ea91b0c6c5..7722212c8654 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -146,17 +146,23 @@ static void wq_netinfo(struct work_struct *wq_obj); * * This is reads data from INIC's direct register communication interface */ -static inline int drci_rd_reg(struct usb_device *dev, u16 reg, void *buf) +static inline int drci_rd_reg(struct usb_device *dev, u16 reg, u16 *buf) { - return usb_control_msg(dev, - usb_rcvctrlpipe(dev, 0), - DRCI_READ_REQ, - USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, - 0x0000, - reg, - buf, - 2, - 5 * HZ); + int retval; + u16 *dma_buf = kzalloc(sizeof(u16), GFP_KERNEL); + u8 req_type = USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE; + + if (!dma_buf) + return -ENOMEM; + + retval = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), + DRCI_READ_REQ, req_type, + 0x0000, + reg, dma_buf, sizeof(u16), 5 * HZ); + *buf = *dma_buf; + kfree(dma_buf); + + return retval; } /** From c81c9c3e0fd5170e7bede7d06202062338644e93 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:44 +0200 Subject: [PATCH 0646/2431] staging: most: consolidate code The function drci_rd_reg() always delivers little endian representation of the 16-bit DCI register. The value returned by this function must always be carefully converted from __le16 to u16 type. This patch moves all those conversions to the function itself. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 7722212c8654..fcd75590146f 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -159,7 +159,7 @@ static inline int drci_rd_reg(struct usb_device *dev, u16 reg, u16 *buf) DRCI_READ_REQ, req_type, 0x0000, reg, dma_buf, sizeof(u16), 5 * HZ); - *buf = *dma_buf; + *buf = le16_to_cpu(*dma_buf); kfree(dma_buf); return retval; @@ -804,19 +804,16 @@ static int hdm_update_netinfo(struct most_dev *mdev) dev_err(dev, "Vendor request \"hw_addr_hi\" failed\n"); return -1; } - le16_to_cpus(&hi); if (drci_rd_reg(usb_device, DRCI_REG_HW_ADDR_MI, &mi) < 0) { dev_err(dev, "Vendor request \"hw_addr_mid\" failed\n"); return -1; } - le16_to_cpus(&mi); if (drci_rd_reg(usb_device, DRCI_REG_HW_ADDR_LO, &lo) < 0) { dev_err(dev, "Vendor request \"hw_addr_low\" failed\n"); return -1; } - le16_to_cpus(&lo); mutex_lock(&mdev->io_mutex); mdev->hw_addr[0] = hi >> 8; @@ -832,7 +829,6 @@ static int hdm_update_netinfo(struct most_dev *mdev) dev_err(dev, "Vendor request \"link status\" failed\n"); return -1; } - le16_to_cpus(&link); mutex_lock(&mdev->io_mutex); mdev->link_stat = link; @@ -1083,7 +1079,7 @@ static ssize_t show_value(struct most_dci_obj *dci_obj, if (err < 0) return err; - return snprintf(buf, PAGE_SIZE, "%04x\n", le16_to_cpu(tmp_val)); + return snprintf(buf, PAGE_SIZE, "%04x\n", tmp_val); } static ssize_t store_value(struct most_dci_obj *dci_obj, From 71457d482751a38e78da32fde80e87b6f670c389 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:45 +0200 Subject: [PATCH 0647/2431] staging: most: add fair buffer distribution This patch ensures a fair distribution of buffers, when two AIMs share a single channel. The AIMs then won't be able to use more than half of all pre-allocated buffers of the linked channel. However, in case the channel is not shared, the AIM can exclusively use all available buffers. Signed-off-by: Andrey Shvetsov Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 5 ++-- drivers/staging/most/aim-network/networking.c | 2 +- drivers/staging/most/aim-sound/sound.c | 3 ++- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- drivers/staging/most/mostcore/core.c | 27 ++++++++++++++++++- drivers/staging/most/mostcore/mostcore.h | 4 ++- 6 files changed, 36 insertions(+), 7 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index a8a7689231ac..23c3f6e7340c 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -165,7 +165,7 @@ static ssize_t aim_write(struct file *filp, const char __user *buf, } mutex_unlock(&channel->io_mutex); - mbo = most_get_mbo(channel->iface, channel->channel_id); + mbo = most_get_mbo(channel->iface, channel->channel_id, &cdev_aim); if (!mbo) { if ((filp->f_flags & O_NONBLOCK)) @@ -173,7 +173,8 @@ static ssize_t aim_write(struct file *filp, const char __user *buf, if (wait_event_interruptible( channel->wq, (mbo = most_get_mbo(channel->iface, - channel->channel_id)) || + channel->channel_id, + &cdev_aim)) || (!channel->dev))) return -ERESTARTSYS; } diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index c13bd89226d3..f0d9a439544e 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -245,7 +245,7 @@ static netdev_tx_t most_nd_start_xmit(struct sk_buff *skb, BUG_ON(nd->dev != dev); - mbo = most_get_mbo(nd->iface, nd->tx.ch_id); + mbo = most_get_mbo(nd->iface, nd->tx.ch_id, &aim); if (!mbo) { netif_stop_queue(dev); diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 2d4732c10df4..0d7425b19f1e 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -251,7 +251,8 @@ static int playback_thread(void *data) wait_event_interruptible( channel->playback_waitq, kthread_should_stop() || - (mbo = most_get_mbo(channel->iface, channel->id))); + (mbo = most_get_mbo(channel->iface, channel->id, + &audio_aim))); if (!mbo) continue; diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 4481a0be15b9..1bb70b738155 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -669,7 +669,7 @@ static void request_netinfo(struct most_interface *most_iface, int ch_idx) return; } - mbo = most_get_mbo(&dev->most_iface, dev->atx_idx); + mbo = most_get_mbo(&dev->most_iface, dev->atx_idx, NULL); if (!mbo) return; diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 0053b8cc5363..4dfa0015f4b0 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -36,6 +36,7 @@ static struct class *most_class; static struct device *class_glue_dir; static struct ida mdev_id; static int modref; +static int dummy_num_buffers; struct most_c_obj { struct kobject kobj; @@ -59,6 +60,8 @@ struct most_c_obj { struct most_aim *second_aim; int first_aim_refs; int second_aim_refs; + int first_num_buffers; + int second_num_buffers; struct list_head trash_fifo; struct task_struct *hdm_enqueue_task; struct mutex stop_task_mutex; @@ -1233,6 +1236,7 @@ static void arm_mbo(struct mbo *mbo) } spin_lock_irqsave(&c->fifo_lock, flags); + ++*mbo->num_buffers_ptr; list_add_tail(&mbo->list, &c->fifo); spin_unlock_irqrestore(&c->fifo_lock, flags); @@ -1286,6 +1290,7 @@ static int arm_mbo_chain(struct most_c_obj *c, int dir, goto _error1; } mbo->complete = compl; + mbo->num_buffers_ptr = &dummy_num_buffers; if (dir == MOST_CH_RX) { nq_hdm_mbo(mbo); atomic_inc(&c->mbo_nq_level); @@ -1384,22 +1389,40 @@ most_c_obj *get_channel_by_iface(struct most_interface *iface, int id) * This attempts to get a free buffer out of the channel fifo. * Returns a pointer to MBO on success or NULL otherwise. */ -struct mbo *most_get_mbo(struct most_interface *iface, int id) +struct mbo *most_get_mbo(struct most_interface *iface, int id, + struct most_aim *aim) { struct mbo *mbo; struct most_c_obj *c; unsigned long flags; + int *num_buffers_ptr; c = get_channel_by_iface(iface, id); if (unlikely(!c)) return NULL; + + if (c->first_aim_refs && c->second_aim_refs && + ((aim == c->first_aim && c->first_num_buffers <= 0) || + (aim == c->second_aim && c->second_num_buffers <= 0))) + return NULL; + + if (aim == c->first_aim) + num_buffers_ptr = &c->first_num_buffers; + else if (aim == c->second_aim) + num_buffers_ptr = &c->second_num_buffers; + else + num_buffers_ptr = &dummy_num_buffers; + spin_lock_irqsave(&c->fifo_lock, flags); if (list_empty(&c->fifo)) { spin_unlock_irqrestore(&c->fifo_lock, flags); return NULL; } mbo = list_pop_mbo(&c->fifo); + --*num_buffers_ptr; spin_unlock_irqrestore(&c->fifo_lock, flags); + + mbo->num_buffers_ptr = num_buffers_ptr; mbo->buffer_length = c->cfg.buffer_size; return mbo; } @@ -1530,6 +1553,8 @@ int most_start_channel(struct most_interface *iface, int id, goto error; c->is_starving = 0; + c->first_num_buffers = c->cfg.num_buffers / 2; + c->second_num_buffers = c->cfg.num_buffers - c->first_num_buffers; atomic_set(&c->mbo_ref, num_buffer); out: diff --git a/drivers/staging/most/mostcore/mostcore.h b/drivers/staging/most/mostcore/mostcore.h index e23ad7c33249..3c6fb19aaa3b 100644 --- a/drivers/staging/most/mostcore/mostcore.h +++ b/drivers/staging/most/mostcore/mostcore.h @@ -190,6 +190,7 @@ struct mbo { void *priv; struct list_head list; struct most_interface *ifp; + int *num_buffers_ptr; u16 hdm_channel_id; void *virt_address; dma_addr_t bus_address; @@ -307,7 +308,8 @@ void most_stop_enqueue(struct most_interface *iface, int channel_idx); void most_resume_enqueue(struct most_interface *iface, int channel_idx); int most_register_aim(struct most_aim *aim); int most_deregister_aim(struct most_aim *aim); -struct mbo *most_get_mbo(struct most_interface *iface, int channel_idx); +struct mbo *most_get_mbo(struct most_interface *iface, int channel_idx, + struct most_aim *); void most_put_mbo(struct mbo *mbo); int most_start_channel(struct most_interface *iface, int channel_idx, struct most_aim *); From ccfbaee033abff6f4467c9874eb7b1b48aced739 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:46 +0200 Subject: [PATCH 0648/2431] staging: most: refactor channel structure The struct most_c_obj has the same set of attributes for each of two AIMs. This patch cleans up the code by introducing the new struct most_c_aim_obj hat contains those fields. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/mostcore/core.c | 108 ++++++++++++++------------- 1 file changed, 55 insertions(+), 53 deletions(-) diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 4dfa0015f4b0..ee6deb884aad 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -38,6 +38,12 @@ static struct ida mdev_id; static int modref; static int dummy_num_buffers; +struct most_c_aim_obj { + struct most_aim *ptr; + int refs; + int num_buffers; +}; + struct most_c_obj { struct kobject kobj; struct completion cleanup; @@ -56,12 +62,8 @@ struct most_c_obj { spinlock_t fifo_lock; struct list_head halt_fifo; struct list_head list; - struct most_aim *first_aim; - struct most_aim *second_aim; - int first_aim_refs; - int second_aim_refs; - int first_num_buffers; - int second_num_buffers; + struct most_c_aim_obj aim0; + struct most_c_aim_obj aim1; struct list_head trash_fifo; struct task_struct *hdm_enqueue_task; struct mutex stop_task_mutex; @@ -557,12 +559,12 @@ create_most_c_obj(const char *name, struct kobject *parent) */ static void destroy_most_c_obj(struct most_c_obj *c) { - if (c->first_aim) - c->first_aim->disconnect_channel(c->iface, c->channel_id); - if (c->second_aim) - c->second_aim->disconnect_channel(c->iface, c->channel_id); - c->first_aim = NULL; - c->second_aim = NULL; + if (c->aim0.ptr) + c->aim0.ptr->disconnect_channel(c->iface, c->channel_id); + if (c->aim1.ptr) + c->aim1.ptr->disconnect_channel(c->iface, c->channel_id); + c->aim0.ptr = NULL; + c->aim1.ptr = NULL; mutex_lock(&deregister_mutex); flush_trash_fifo(c); @@ -994,10 +996,10 @@ static ssize_t store_add_link(struct most_aim_obj *aim_obj, if (IS_ERR(c)) return -ENODEV; - if (!c->first_aim) - aim_ptr = &c->first_aim; - else if (!c->second_aim) - aim_ptr = &c->second_aim; + if (!c->aim0.ptr) + aim_ptr = &c->aim0.ptr; + else if (!c->aim1.ptr) + aim_ptr = &c->aim1.ptr; else return -ENOSPC; @@ -1051,10 +1053,10 @@ static ssize_t store_remove_link(struct most_aim_obj *aim_obj, if (IS_ERR(c)) return -ENODEV; - if (c->first_aim == aim_obj->driver) - c->first_aim = NULL; - if (c->second_aim == aim_obj->driver) - c->second_aim = NULL; + if (c->aim0.ptr == aim_obj->driver) + c->aim0.ptr = NULL; + if (c->aim1.ptr == aim_obj->driver) + c->aim1.ptr = NULL; if (aim_obj->driver->disconnect_channel(c->iface, c->channel_id)) return -EIO; return len; @@ -1240,11 +1242,11 @@ static void arm_mbo(struct mbo *mbo) list_add_tail(&mbo->list, &c->fifo); spin_unlock_irqrestore(&c->fifo_lock, flags); - if (c->first_aim_refs && c->first_aim->tx_completion) - c->first_aim->tx_completion(c->iface, c->channel_id); + if (c->aim0.refs && c->aim0.ptr->tx_completion) + c->aim0.ptr->tx_completion(c->iface, c->channel_id); - if (c->second_aim_refs && c->second_aim->tx_completion) - c->second_aim->tx_completion(c->iface, c->channel_id); + if (c->aim1.refs && c->aim1.ptr->tx_completion) + c->aim1.ptr->tx_completion(c->iface, c->channel_id); } /** @@ -1401,15 +1403,15 @@ struct mbo *most_get_mbo(struct most_interface *iface, int id, if (unlikely(!c)) return NULL; - if (c->first_aim_refs && c->second_aim_refs && - ((aim == c->first_aim && c->first_num_buffers <= 0) || - (aim == c->second_aim && c->second_num_buffers <= 0))) + if (c->aim0.refs && c->aim1.refs && + ((aim == c->aim0.ptr && c->aim0.num_buffers <= 0) || + (aim == c->aim1.ptr && c->aim1.num_buffers <= 0))) return NULL; - if (aim == c->first_aim) - num_buffers_ptr = &c->first_num_buffers; - else if (aim == c->second_aim) - num_buffers_ptr = &c->second_num_buffers; + if (aim == c->aim0.ptr) + num_buffers_ptr = &c->aim0.num_buffers; + else if (aim == c->aim1.ptr) + num_buffers_ptr = &c->aim1.num_buffers; else num_buffers_ptr = &dummy_num_buffers; @@ -1485,12 +1487,12 @@ static void most_read_completion(struct mbo *mbo) c->is_starving = 1; } - if (c->first_aim_refs && c->first_aim->rx_completion && - c->first_aim->rx_completion(mbo) == 0) + if (c->aim0.refs && c->aim0.ptr->rx_completion && + c->aim0.ptr->rx_completion(mbo) == 0) return; - if (c->second_aim_refs && c->second_aim->rx_completion && - c->second_aim->rx_completion(mbo) == 0) + if (c->aim1.refs && c->aim1.ptr->rx_completion && + c->aim1.ptr->rx_completion(mbo) == 0) return; most_put_mbo(mbo); @@ -1517,7 +1519,7 @@ int most_start_channel(struct most_interface *iface, int id, return -EINVAL; mutex_lock(&c->start_mutex); - if (c->first_aim_refs + c->second_aim_refs > 0) + if (c->aim0.refs + c->aim1.refs > 0) goto out; /* already started by other aim */ if (!try_module_get(iface->mod)) { @@ -1553,15 +1555,15 @@ int most_start_channel(struct most_interface *iface, int id, goto error; c->is_starving = 0; - c->first_num_buffers = c->cfg.num_buffers / 2; - c->second_num_buffers = c->cfg.num_buffers - c->first_num_buffers; + c->aim0.num_buffers = c->cfg.num_buffers / 2; + c->aim1.num_buffers = c->cfg.num_buffers - c->aim0.num_buffers; atomic_set(&c->mbo_ref, num_buffer); out: - if (aim == c->first_aim) - c->first_aim_refs++; - if (aim == c->second_aim) - c->second_aim_refs++; + if (aim == c->aim0.ptr) + c->aim0.refs++; + if (aim == c->aim1.ptr) + c->aim1.refs++; mutex_unlock(&c->start_mutex); return 0; @@ -1593,7 +1595,7 @@ int most_stop_channel(struct most_interface *iface, int id, return -EINVAL; mutex_lock(&c->start_mutex); - if (c->first_aim_refs + c->second_aim_refs >= 2) + if (c->aim0.refs + c->aim1.refs >= 2) goto out; mutex_lock(&c->stop_task_mutex); @@ -1637,10 +1639,10 @@ int most_stop_channel(struct most_interface *iface, int id, c->is_poisoned = false; out: - if (aim == c->first_aim) - c->first_aim_refs--; - if (aim == c->second_aim) - c->second_aim_refs--; + if (aim == c->aim0.ptr) + c->aim0.refs--; + if (aim == c->aim1.ptr) + c->aim1.refs--; mutex_unlock(&c->start_mutex); return 0; } @@ -1694,13 +1696,13 @@ int most_deregister_aim(struct most_aim *aim) } list_for_each_entry_safe(i, i_tmp, &instance_list, list) { list_for_each_entry_safe(c, tmp, &i->channel_list, list) { - if (c->first_aim == aim || c->second_aim == aim) + if (c->aim0.ptr == aim || c->aim1.ptr == aim) aim->disconnect_channel( c->iface, c->channel_id); - if (c->first_aim == aim) - c->first_aim = NULL; - if (c->second_aim == aim) - c->second_aim = NULL; + if (c->aim0.ptr == aim) + c->aim0.ptr = NULL; + if (c->aim1.ptr == aim) + c->aim1.ptr = NULL; } } list_del(&aim_obj->list); @@ -1834,7 +1836,7 @@ void most_deregister_interface(struct most_interface *iface) } list_for_each_entry(c, &i->channel_list, list) { - if (c->first_aim_refs + c->second_aim_refs <= 0) + if (c->aim0.refs + c->aim1.refs <= 0) continue; mutex_lock(&c->stop_task_mutex); From 8e4a0ef17fc8bf4503fb77f059d580a03e67b5f1 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:47 +0200 Subject: [PATCH 0649/2431] staging: most: add multi channel support to sound AIM This patch adds 5.1 surround configuration with subbuffer cross-check, when establishing a link to the core. For the sake of simplicity, only one specific channel configuration is allowed. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 27 ++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 0d7425b19f1e..88221f030325 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -75,7 +76,7 @@ static struct snd_pcm_hardware pcm_hardware_template = { .rate_min = 48000, .rate_max = 48000, .channels_min = 1, - .channels_max = 8, + .channels_max = 1, }; #define swap16(val) ( \ @@ -355,10 +356,18 @@ static int pcm_close(struct snd_pcm_substream *substream) static int pcm_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *hw_params) { + int ret; + pr_info("pcm_hw_params()\n"); - return snd_pcm_lib_alloc_vmalloc_buffer(substream, + if ((params_channels(hw_params) > pcm_hardware_template.channels_max) || + (params_channels(hw_params) < pcm_hardware_template.channels_min) || + !(params_format(hw_params) != pcm_hardware_template.formats)) + return -EINVAL; + ret = snd_pcm_lib_alloc_vmalloc_buffer(substream, params_buffer_bytes(hw_params)); + + return ret; } /** @@ -511,20 +520,34 @@ static int audio_set_pcm_format(char *pcm_format, if (cfg->subbuffer_size != 4) goto error; pr_info("PCM format is 16-bit stereo\n"); + pcm_hardware_template.channels_min = 2; + pcm_hardware_template.channels_max = 2; pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE; } else if (!strcmp(pcm_format, "2x24")) { if (cfg->subbuffer_size != 6) goto error; pr_info("PCM format is 24-bit stereo\n"); + pcm_hardware_template.channels_min = 2; + pcm_hardware_template.channels_max = 2; pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE; } else if (!strcmp(pcm_format, "2x32")) { if (cfg->subbuffer_size != 8) goto error; pr_info("PCM format is 32-bit stereo\n"); + pcm_hardware_template.channels_min = 2; + pcm_hardware_template.channels_max = 2; pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE; + } else if (!strcmp(pcm_format, "6x16")) { + if (cfg->subbuffer_size != 12) + goto error; + pr_info("PCM format is 16-bit 5.1 multi channel\n"); + pcm_hardware_template.channels_min = 6; + pcm_hardware_template.channels_max = 6; + pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S16_BE; } else { pr_err("PCM format %s not supported\n", pcm_format); return -EIO; From 9801345cd8edc2082eefed71cbd07ce2c4c51ea1 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:48 +0200 Subject: [PATCH 0650/2431] staging: most: include vendor in audio card's shortname This patch adds Microchip as vendor to the audio card's shortname to be displayed, when playback and capture devices are queried. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 88221f030325..c9b62c333136 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -629,7 +629,7 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id, channel->id = channel_id; snprintf(card->driver, sizeof(card->driver), "%s", DRIVER_NAME); - snprintf(card->shortname, sizeof(card->shortname), "MOST:%d", + snprintf(card->shortname, sizeof(card->shortname), "Microchip MOST:%d", card->number); snprintf(card->longname, sizeof(card->longname), "%s at %s, ch %d", card->shortname, iface->description, channel_id); From d801887248312f4279913963f501fd94670256ad Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:49 +0200 Subject: [PATCH 0651/2431] staging: most: make hardware parameters channel exclusive Since the PCM interface's hardware parameters are channel/substream exclusive, the struct snd_pcm_hardware needs to be embedded in the channel structure. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 68 ++++++++++++++------------ 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index c9b62c333136..30a289404834 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -46,6 +46,7 @@ static struct most_aim audio_aim; */ struct channel { struct snd_pcm_substream *substream; + struct snd_pcm_hardware pcm_hardware; struct most_interface *iface; struct most_channel_config *cfg; struct snd_card *card; @@ -70,13 +71,12 @@ struct channel { /** * Initialization of struct snd_pcm_hardware */ -static struct snd_pcm_hardware pcm_hardware_template = { - .info = MOST_PCM_INFO, - .rates = SNDRV_PCM_RATE_48000, - .rate_min = 48000, - .rate_max = 48000, - .channels_min = 1, - .channels_max = 1, +static void init_pcm_hardware(struct snd_pcm_hardware *pcm_hw) +{ + pcm_hw->info = MOST_PCM_INFO; + pcm_hw->rates = SNDRV_PCM_RATE_48000; + pcm_hw->rate_min = 48000; + pcm_hw->rate_max = 48000; }; #define swap16(val) ( \ @@ -308,7 +308,7 @@ static int pcm_open(struct snd_pcm_substream *substream) return -EBUSY; } - runtime->hw = pcm_hardware_template; + runtime->hw = channel->pcm_hardware; runtime->hw.buffer_bytes_max = cfg->num_buffers * cfg->buffer_size; runtime->hw.period_bytes_min = cfg->buffer_size; runtime->hw.period_bytes_max = cfg->buffer_size; @@ -357,15 +357,16 @@ static int pcm_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *hw_params) { int ret; + struct channel *channel = substream->private_data; pr_info("pcm_hw_params()\n"); - if ((params_channels(hw_params) > pcm_hardware_template.channels_max) || - (params_channels(hw_params) < pcm_hardware_template.channels_min) || - !(params_format(hw_params) != pcm_hardware_template.formats)) + if ((params_channels(hw_params) > channel->pcm_hardware.channels_max) || + (params_channels(hw_params) < channel->pcm_hardware.channels_min) || + !(params_format(hw_params) != channel->pcm_hardware.formats)) return -EINVAL; ret = snd_pcm_lib_alloc_vmalloc_buffer(substream, - params_buffer_bytes(hw_params)); + params_buffer_bytes(hw_params)); return ret; } @@ -508,46 +509,47 @@ static int split_arg_list(char *buf, char **card_name, char **pcm_format) return 0; } -static int audio_set_pcm_format(char *pcm_format, +static int audio_set_pcm_format(struct snd_pcm_hardware *pcm_hw, + char *pcm_format, struct most_channel_config *cfg) { if (!strcmp(pcm_format, "1x8")) { if (cfg->subbuffer_size != 1) goto error; pr_info("PCM format is 8-bit mono\n"); - pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S8; + pcm_hw->formats = SNDRV_PCM_FMTBIT_S8; } else if (!strcmp(pcm_format, "2x16")) { if (cfg->subbuffer_size != 4) goto error; pr_info("PCM format is 16-bit stereo\n"); - pcm_hardware_template.channels_min = 2; - pcm_hardware_template.channels_max = 2; - pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S16_LE | - SNDRV_PCM_FMTBIT_S16_BE; + pcm_hw->channels_min = 2; + pcm_hw->channels_max = 2; + pcm_hw->formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S16_BE; } else if (!strcmp(pcm_format, "2x24")) { if (cfg->subbuffer_size != 6) goto error; pr_info("PCM format is 24-bit stereo\n"); - pcm_hardware_template.channels_min = 2; - pcm_hardware_template.channels_max = 2; - pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S24_3LE | - SNDRV_PCM_FMTBIT_S24_3BE; + pcm_hw->channels_min = 2; + pcm_hw->channels_max = 2; + pcm_hw->formats = SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S24_3BE; } else if (!strcmp(pcm_format, "2x32")) { if (cfg->subbuffer_size != 8) goto error; pr_info("PCM format is 32-bit stereo\n"); - pcm_hardware_template.channels_min = 2; - pcm_hardware_template.channels_max = 2; - pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S32_LE | - SNDRV_PCM_FMTBIT_S32_BE; + pcm_hw->channels_min = 2; + pcm_hw->channels_max = 2; + pcm_hw->formats = SNDRV_PCM_FMTBIT_S32_LE | + SNDRV_PCM_FMTBIT_S32_BE; } else if (!strcmp(pcm_format, "6x16")) { if (cfg->subbuffer_size != 12) goto error; pr_info("PCM format is 16-bit 5.1 multi channel\n"); - pcm_hardware_template.channels_min = 6; - pcm_hardware_template.channels_max = 6; - pcm_hardware_template.formats = SNDRV_PCM_FMTBIT_S16_LE | - SNDRV_PCM_FMTBIT_S16_BE; + pcm_hw->channels_min = 6; + pcm_hw->channels_max = 6; + pcm_hw->formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S16_BE; } else { pr_err("PCM format %s not supported\n", pcm_format); return -EIO; @@ -614,8 +616,6 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id, pr_info("PCM format missing\n"); return ret; } - if (audio_set_pcm_format(pcm_format, cfg)) - return ret; ret = snd_card_new(NULL, -1, card_name, THIS_MODULE, sizeof(*channel), &card); @@ -627,6 +627,10 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id, channel->cfg = cfg; channel->iface = iface; channel->id = channel_id; + init_pcm_hardware(&channel->pcm_hardware); + + if (audio_set_pcm_format(&channel->pcm_hardware, pcm_format, cfg)) + goto err_free_card; snprintf(card->driver, sizeof(card->driver), "%s", DRIVER_NAME); snprintf(card->shortname, sizeof(card->shortname), "Microchip MOST:%d", From 19a1143fa4f0a144ee9891f2d2badef2ee74a123 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:50 +0200 Subject: [PATCH 0652/2431] staging: most: squash AIM sound This patch removes debug messages and prevents the sound AIM from being noisy in kernel log. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 30a289404834..73a133dcb320 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -242,8 +242,6 @@ static int playback_thread(void *data) { struct channel *const channel = data; - pr_info("playback thread started\n"); - while (!kthread_should_stop()) { struct mbo *mbo = NULL; bool period_elapsed = false; @@ -289,8 +287,6 @@ static int pcm_open(struct snd_pcm_substream *substream) struct snd_pcm_runtime *runtime = substream->runtime; struct most_channel_config *cfg = channel->cfg; - pr_info("pcm_open(), %s\n", substream->name); - channel->substream = substream; if (cfg->direction == MOST_CH_TX) { @@ -332,8 +328,6 @@ static int pcm_close(struct snd_pcm_substream *substream) { struct channel *channel = substream->private_data; - pr_info("pcm_close(), %s\n", substream->name); - if (channel->cfg->direction == MOST_CH_TX) kthread_stop(channel->playback_task); most_stop_channel(channel->iface, channel->id, &audio_aim); @@ -359,8 +353,6 @@ static int pcm_hw_params(struct snd_pcm_substream *substream, int ret; struct channel *channel = substream->private_data; - pr_info("pcm_hw_params()\n"); - if ((params_channels(hw_params) > channel->pcm_hardware.channels_max) || (params_channels(hw_params) < channel->pcm_hardware.channels_min) || !(params_format(hw_params) != channel->pcm_hardware.formats)) @@ -382,8 +374,6 @@ static int pcm_hw_params(struct snd_pcm_substream *substream, */ static int pcm_hw_free(struct snd_pcm_substream *substream) { - pr_info("pcm_hw_free()\n"); - return snd_pcm_lib_free_vmalloc_buffer(substream); } @@ -587,8 +577,6 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id, char *card_name; char *pcm_format; - pr_info("sound_probe_channel()\n"); - if (!iface) return -EINVAL; @@ -674,8 +662,6 @@ static int audio_disconnect_channel(struct most_interface *iface, { struct channel *channel; - pr_info("sound_disconnect_channel()\n"); - channel = get_channel(iface, channel_id); if (!channel) { pr_err("sound_disconnect_channel(), invalid channel %d\n", From b981abbb56ed57b2eda394955de99cbe7ca21fef Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:51 +0200 Subject: [PATCH 0653/2431] staging: most: purge unecessary variable This patch purges a temp. variable to store the functions return value. Since the content is never being evaluated, it can safely be removed. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 73a133dcb320..a579c5b8831c 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -350,17 +350,14 @@ static int pcm_close(struct snd_pcm_substream *substream) static int pcm_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *hw_params) { - int ret; struct channel *channel = substream->private_data; if ((params_channels(hw_params) > channel->pcm_hardware.channels_max) || (params_channels(hw_params) < channel->pcm_hardware.channels_min) || !(params_format(hw_params) != channel->pcm_hardware.formats)) return -EINVAL; - ret = snd_pcm_lib_alloc_vmalloc_buffer(substream, + return snd_pcm_lib_alloc_vmalloc_buffer(substream, params_buffer_bytes(hw_params)); - - return ret; } /** From 31e91e0f40547816f9256d5865d39d504706ad06 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:52 +0200 Subject: [PATCH 0654/2431] staging: most: add missing channel initialization This patch adds missing initialization of channel count for 8-bit mono audio resolution. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index a579c5b8831c..59e1294c31cb 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -504,6 +504,8 @@ static int audio_set_pcm_format(struct snd_pcm_hardware *pcm_hw, if (cfg->subbuffer_size != 1) goto error; pr_info("PCM format is 8-bit mono\n"); + pcm_hw->channels_min = 1; + pcm_hw->channels_max = 1; pcm_hw->formats = SNDRV_PCM_FMTBIT_S8; } else if (!strcmp(pcm_format, "2x16")) { if (cfg->subbuffer_size != 4) From fb0056a8aef0561727602c08951e9b4fd79a0e5f Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:53 +0200 Subject: [PATCH 0655/2431] staging: most: rename function This patch renames the function audio_set_pcm_format(). Since the function doesn't only set the PCM format anymore and to guard against misunderstandings, its name needs to be changed. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 59e1294c31cb..ee02273598d2 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -496,7 +496,7 @@ static int split_arg_list(char *buf, char **card_name, char **pcm_format) return 0; } -static int audio_set_pcm_format(struct snd_pcm_hardware *pcm_hw, +static int audio_set_hw_params(struct snd_pcm_hardware *pcm_hw, char *pcm_format, struct most_channel_config *cfg) { @@ -616,7 +616,7 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id, channel->id = channel_id; init_pcm_hardware(&channel->pcm_hardware); - if (audio_set_pcm_format(&channel->pcm_hardware, pcm_format, cfg)) + if (audio_set_hw_params(&channel->pcm_hardware, pcm_format, cfg)) goto err_free_card; snprintf(card->driver, sizeof(card->driver), "%s", DRIVER_NAME); From e569da2662505961499a4caf3dce07fe6492ceea Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:54 +0200 Subject: [PATCH 0656/2431] staging: most: move initialization code This pathch moves the initialization of the PCM middle layer hardware parameters to function audio_set_hw_params(). Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 28 +++++++++----------------- 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index ee02273598d2..dff8f74b6a0f 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -68,17 +68,6 @@ struct channel { SNDRV_PCM_INFO_INTERLEAVED | \ SNDRV_PCM_INFO_BLOCK_TRANSFER) -/** - * Initialization of struct snd_pcm_hardware - */ -static void init_pcm_hardware(struct snd_pcm_hardware *pcm_hw) -{ - pcm_hw->info = MOST_PCM_INFO; - pcm_hw->rates = SNDRV_PCM_RATE_48000; - pcm_hw->rate_min = 48000; - pcm_hw->rate_max = 48000; -}; - #define swap16(val) ( \ (((u16)(val) << 8) & (u16)0xFF00) | \ (((u16)(val) >> 8) & (u16)0x00FF)) @@ -305,12 +294,6 @@ static int pcm_open(struct snd_pcm_substream *substream) } runtime->hw = channel->pcm_hardware; - runtime->hw.buffer_bytes_max = cfg->num_buffers * cfg->buffer_size; - runtime->hw.period_bytes_min = cfg->buffer_size; - runtime->hw.period_bytes_max = cfg->buffer_size; - runtime->hw.periods_min = 1; - runtime->hw.periods_max = cfg->num_buffers; - return 0; } @@ -500,6 +483,16 @@ static int audio_set_hw_params(struct snd_pcm_hardware *pcm_hw, char *pcm_format, struct most_channel_config *cfg) { + pcm_hw->info = MOST_PCM_INFO; + pcm_hw->rates = SNDRV_PCM_RATE_48000; + pcm_hw->rate_min = 48000; + pcm_hw->rate_max = 48000; + pcm_hw->buffer_bytes_max = cfg->num_buffers * cfg->buffer_size; + pcm_hw->period_bytes_min = cfg->buffer_size; + pcm_hw->period_bytes_max = cfg->buffer_size; + pcm_hw->periods_min = 1; + pcm_hw->periods_max = cfg->num_buffers; + if (!strcmp(pcm_format, "1x8")) { if (cfg->subbuffer_size != 1) goto error; @@ -614,7 +607,6 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id, channel->cfg = cfg; channel->iface = iface; channel->id = channel_id; - init_pcm_hardware(&channel->pcm_hardware); if (audio_set_hw_params(&channel->pcm_hardware, pcm_format, cfg)) goto err_free_card; From 35c33721387afe2adda91936f163bb31ba3f0adf Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:55 +0200 Subject: [PATCH 0657/2431] staging: most: fix style problems This patch simply corrects style violations. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index dff8f74b6a0f..18c346a86bab 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -340,7 +340,7 @@ static int pcm_hw_params(struct snd_pcm_substream *substream, !(params_format(hw_params) != channel->pcm_hardware.formats)) return -EINVAL; return snd_pcm_lib_alloc_vmalloc_buffer(substream, - params_buffer_bytes(hw_params)); + params_buffer_bytes(hw_params)); } /** @@ -480,8 +480,8 @@ static int split_arg_list(char *buf, char **card_name, char **pcm_format) } static int audio_set_hw_params(struct snd_pcm_hardware *pcm_hw, - char *pcm_format, - struct most_channel_config *cfg) + char *pcm_format, + struct most_channel_config *cfg) { pcm_hw->info = MOST_PCM_INFO; pcm_hw->rates = SNDRV_PCM_RATE_48000; From 48ab5a339de2b1cd006b7783d1555e4711bf77e5 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:56 +0200 Subject: [PATCH 0658/2431] staging: most: remove audio resolution format check This patch removes the audio format cross-check, because the definitions are not compatible. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 18c346a86bab..df14ce5718f5 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -336,8 +336,7 @@ static int pcm_hw_params(struct snd_pcm_substream *substream, struct channel *channel = substream->private_data; if ((params_channels(hw_params) > channel->pcm_hardware.channels_max) || - (params_channels(hw_params) < channel->pcm_hardware.channels_min) || - !(params_format(hw_params) != channel->pcm_hardware.formats)) + (params_channels(hw_params) < channel->pcm_hardware.channels_min)) return -EINVAL; return snd_pcm_lib_alloc_vmalloc_buffer(substream, params_buffer_bytes(hw_params)); From aac997dfdd58eec1add02dae09030caeddc1abe6 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:57 +0200 Subject: [PATCH 0659/2431] staging: most: add poll syscall to AIM cdev This patch adds the implementation of the poll syscall to the AIM cdev. To have the full functionality, a helper function is needed in the core module to retrieve the instantaneous availability of tx buffers. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 26 ++++++++++++++++++++++++ drivers/staging/most/mostcore/core.c | 16 +++++++++++++++ drivers/staging/most/mostcore/mostcore.h | 1 + 3 files changed, 43 insertions(+) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 23c3f6e7340c..930ada0922f3 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -31,6 +32,7 @@ static struct most_aim cdev_aim; struct aim_channel { wait_queue_head_t wq; + wait_queue_head_t poll_wq; struct cdev cdev; struct device *dev; struct mutex io_mutex; @@ -271,6 +273,28 @@ start_copy: return retval; } +static inline bool __must_check IS_ERR_OR_FALSE(int x) +{ + return x <= 0; +} + +static unsigned int aim_poll(struct file *filp, poll_table *wait) +{ + struct aim_channel *c = filp->private_data; + unsigned int mask = 0; + + poll_wait(filp, &c->poll_wq, wait); + + if (c->cfg->direction == MOST_CH_RX) { + if (!kfifo_is_empty(&c->fifo)) + mask |= POLLIN | POLLRDNORM; + } else { + if (!IS_ERR_OR_FALSE(channel_has_mbo(c->iface, c->channel_id))) + mask |= POLLOUT | POLLWRNORM; + } + return mask; +} + /** * Initialization of struct file_operations */ @@ -280,6 +304,7 @@ static const struct file_operations channel_fops = { .write = aim_write, .open = aim_open, .release = aim_close, + .poll = aim_poll, }; /** @@ -434,6 +459,7 @@ static int aim_probe(struct most_interface *iface, int channel_id, goto error_alloc_kfifo; } init_waitqueue_head(&channel->wq); + init_waitqueue_head(&channel->poll_wq); mutex_init(&channel->io_mutex); spin_lock_irqsave(&ch_list_lock, cl_flags); list_add_tail(&channel->list, &channel_list); diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index ee6deb884aad..0045c10413eb 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -1383,6 +1383,22 @@ most_c_obj *get_channel_by_iface(struct most_interface *iface, int id) return i->channel[id]; } +int channel_has_mbo(struct most_interface *iface, int id) +{ + struct most_c_obj *c = get_channel_by_iface(iface, id); + unsigned long flags; + int empty; + + if (unlikely(!c)) + return -EINVAL; + + spin_lock_irqsave(&c->fifo_lock, flags); + empty = list_empty(&c->fifo); + spin_unlock_irqrestore(&c->fifo_lock, flags); + return !empty; +} +EXPORT_SYMBOL_GPL(channel_has_mbo); + /** * most_get_mbo - get pointer to an MBO of pool * @iface: pointer to interface instance diff --git a/drivers/staging/most/mostcore/mostcore.h b/drivers/staging/most/mostcore/mostcore.h index 3c6fb19aaa3b..9bd4c779f1b6 100644 --- a/drivers/staging/most/mostcore/mostcore.h +++ b/drivers/staging/most/mostcore/mostcore.h @@ -311,6 +311,7 @@ int most_deregister_aim(struct most_aim *aim); struct mbo *most_get_mbo(struct most_interface *iface, int channel_idx, struct most_aim *); void most_put_mbo(struct mbo *mbo); +int channel_has_mbo(struct most_interface *iface, int channel_idx); int most_start_channel(struct most_interface *iface, int channel_idx, struct most_aim *); int most_stop_channel(struct most_interface *iface, int channel_idx, From 5e8aa94e97790b4092f6694ab7f381e6791d3245 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:58 +0200 Subject: [PATCH 0660/2431] staging: most: fix pcm_write input/output error This patch keeps the process from sleeping after the PCM middle layer has stopped playback by calling the pcm trigger callback. The patch is needed to prevent aplay from causing a pcm_write Input/Output error. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index df14ce5718f5..f08545c56110 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -239,9 +239,9 @@ static int playback_thread(void *data) wait_event_interruptible( channel->playback_waitq, kthread_should_stop() || - (mbo = most_get_mbo(channel->iface, channel->id, - &audio_aim))); - + (channel->is_stream_running && + (mbo = most_get_mbo(channel->iface, channel->id, + &audio_aim)))); if (!mbo) continue; @@ -279,11 +279,12 @@ static int pcm_open(struct snd_pcm_substream *substream) channel->substream = substream; if (cfg->direction == MOST_CH_TX) { - init_waitqueue_head(&channel->playback_waitq); channel->playback_task = kthread_run(&playback_thread, channel, "most_audio_playback"); - if (IS_ERR(channel->playback_task)) + if (IS_ERR(channel->playback_task)) { + pr_err("Couldn't start thread\n"); return PTR_ERR(channel->playback_task); + } } if (most_start_channel(channel->iface, channel->id, &audio_aim)) { @@ -336,8 +337,10 @@ static int pcm_hw_params(struct snd_pcm_substream *substream, struct channel *channel = substream->private_data; if ((params_channels(hw_params) > channel->pcm_hardware.channels_max) || - (params_channels(hw_params) < channel->pcm_hardware.channels_min)) + (params_channels(hw_params) < channel->pcm_hardware.channels_min)) { + pr_err("Requested number of channels not supported.\n"); return -EINVAL; + } return snd_pcm_lib_alloc_vmalloc_buffer(substream, params_buffer_bytes(hw_params)); } @@ -422,6 +425,7 @@ static int pcm_trigger(struct snd_pcm_substream *substream, int cmd) switch (cmd) { case SNDRV_PCM_TRIGGER_START: channel->is_stream_running = true; + wake_up_interruptible(&channel->playback_waitq); return 0; case SNDRV_PCM_TRIGGER_STOP: @@ -606,6 +610,7 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id, channel->cfg = cfg; channel->iface = iface; channel->id = channel_id; + init_waitqueue_head(&channel->playback_waitq); if (audio_set_hw_params(&channel->pcm_hardware, pcm_format, cfg)) goto err_free_card; From db0700a18d7d8832e3f5f5c3a55f197258e257e5 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Thu, 17 Sep 2015 17:19:15 +0100 Subject: [PATCH 0661/2431] staging: comedi: drivers.c: remove irrelevant #includes Comedi's "drivers.c" doesn't use anything from these included headers, so remove them. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 387fac106084..e3b9957b7dc0 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -20,18 +20,10 @@ #include #include #include -#include #include -#include -#include #include -#include #include -#include /* for SuSE brokenness */ -#include -#include #include -#include #include #include From d35d893965a6d7efe995d7f8d66b2427c14bbc36 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Thu, 17 Sep 2015 17:19:16 +0100 Subject: [PATCH 0662/2431] staging: comedi: drivers.c: replace #include Comedi's "drivers.c" doesn't use anything from ``, but it does use `DMA_NONE` from ``, so replace the appropriate `#include` directive. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index e3b9957b7dc0..711811771bfc 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include From 9b34845ee3620ddf1329932edde00bd5b4b9d466 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Thu, 17 Sep 2015 17:19:17 +0100 Subject: [PATCH 0663/2431] staging: comedi: drivers.c: document exported functions Add missing kernel-doc to the low-level COMEDI driver API functions exported from "drivers.c" and tart up some of the existing kernel-doc comments for consistency. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers.c | 327 ++++++++++++++++++++++++------- 1 file changed, 258 insertions(+), 69 deletions(-) diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 711811771bfc..aae94815b593 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -34,6 +34,28 @@ struct comedi_driver *comedi_drivers; /* protects access to comedi_drivers */ DEFINE_MUTEX(comedi_drivers_list_lock); +/** + * comedi_set_hw_dev() - Set hardware device associated with COMEDI device + * @dev: COMEDI device. + * @hw_dev: Hardware device. + * + * For automatically configured COMEDI devices (resulting from a call to + * comedi_auto_config() or one of its wrappers from the low-level COMEDI + * driver), comedi_set_hw_dev() is called automatically by the COMEDI core + * to associate the COMEDI device with the hardware device. It can also be + * called directly by "legacy" low-level COMEDI drivers that rely on the + * %COMEDI_DEVCONFIG ioctl to configure the hardware as long as the hardware + * has a &struct device. + * + * If @dev->hw_dev is NULL, it gets a reference to @hw_dev and sets + * @dev->hw_dev, otherwise, it does nothing. Calling it multiple times + * with the same hardware device is not considered an error. If it gets + * a reference to the hardware device, it will be automatically 'put' when + * the device is detached from COMEDI. + * + * Returns 0 if @dev->hw_dev was NULL or the same as @hw_dev, otherwise + * returns -EEXIST. + */ int comedi_set_hw_dev(struct comedi_device *dev, struct device *hw_dev) { if (hw_dev == dev->hw_dev) @@ -52,9 +74,15 @@ static void comedi_clear_hw_dev(struct comedi_device *dev) } /** - * comedi_alloc_devpriv() - Allocate memory for the device private data. - * @dev: comedi_device struct - * @size: size of the memory to allocate + * comedi_alloc_devpriv() - Allocate memory for the device private data + * @dev: COMEDI device. + * @size: Size of the memory to allocate. + * + * The allocated memory is zero-filled. @dev->private points to it on + * return. The memory will be automatically freed when the COMEDI device is + * "detached". + * + * Returns a pointer to the allocated memory, or NULL on failure. */ void *comedi_alloc_devpriv(struct comedi_device *dev, size_t size) { @@ -63,6 +91,18 @@ void *comedi_alloc_devpriv(struct comedi_device *dev, size_t size) } EXPORT_SYMBOL_GPL(comedi_alloc_devpriv); +/** + * comedi_alloc_subdevices() - Allocate subdevices for COMEDI device + * @dev: COMEDI device. + * @num_subdevices: Number of subdevices to allocate. + * + * Allocates and initializes an array of &struct comedi_subdevice for the + * COMEDI device. If successful, sets @dev->subdevices to point to the + * first one and @dev->n_subdevices to the number. + * + * Returns 0 on success, -EINVAL if @num_subdevices is < 1, or -ENOMEM if + * failed to allocate the memory. + */ int comedi_alloc_subdevices(struct comedi_device *dev, int num_subdevices) { struct comedi_subdevice *s; @@ -90,8 +130,22 @@ int comedi_alloc_subdevices(struct comedi_device *dev, int num_subdevices) EXPORT_SYMBOL_GPL(comedi_alloc_subdevices); /** - * comedi_alloc_subdev_readback() - Allocate memory for the subdevice readback. - * @s: comedi_subdevice struct + * comedi_alloc_subdev_readback() - Allocate memory for the subdevice readback + * @s: COMEDI subdevice. + * + * This is called by low-level COMEDI drivers to allocate an array to record + * the last values written to a subdevice's analog output channels (at least + * by the %INSN_WRITE instruction), to allow them to be read back by an + * %INSN_READ instruction. It also provides a default handler for the + * %INSN_READ instruction unless one has already been set. + * + * On success, @s->readback points to the first element of the array, which + * is zero-filled. The low-level driver is responsible for updating its + * contents. @s->insn_read will be set to comedi_readback_insn_read() + * unless it is already non-NULL. + * + * Returns 0 on success, -EINVAL if the subdevice has no channels, or + * -ENOMEM on allocation failure. */ int comedi_alloc_subdev_readback(struct comedi_subdevice *s) { @@ -174,10 +228,20 @@ int insn_inval(struct comedi_device *dev, struct comedi_subdevice *s, /** * comedi_readback_insn_read() - A generic (*insn_read) for subdevice readback. - * @dev: comedi_device struct - * @s: comedi_subdevice struct - * @insn: comedi_insn struct - * @data: pointer to return the readback data + * @dev: COMEDI device. + * @s: COMEDI subdevice. + * @insn: COMEDI instruction. + * @data: Pointer to return the readback data. + * + * Handles the %INSN_READ instruction for subdevices that use the readback + * array allocated by comedi_alloc_subdev_readback(). It may be used + * directly as the subdevice's handler (@s->insn_read) or called via a + * wrapper. + * + * @insn->n is normally 1, which will read a single value. If higher, the + * same element of the readback array will be read multiple times. + * + * Returns @insn->n on success, or -EINVAL if @s->readback is NULL. */ int comedi_readback_insn_read(struct comedi_device *dev, struct comedi_subdevice *s, @@ -198,12 +262,21 @@ int comedi_readback_insn_read(struct comedi_device *dev, EXPORT_SYMBOL_GPL(comedi_readback_insn_read); /** - * comedi_timeout() - busy-wait for a driver condition to occur. - * @dev: comedi_device struct - * @s: comedi_subdevice struct - * @insn: comedi_insn struct - * @cb: callback to check for the condition - * @context: private context from the driver + * comedi_timeout() - Busy-wait for a driver condition to occur + * @dev: COMEDI device. + * @s: COMEDI subdevice. + * @insn: COMEDI instruction. + * @cb: Callback to check for the condition. + * @context: Private context from the driver. + * + * Busy-waits for up to a second (%COMEDI_TIMEOUT_MS) for the condition or + * some error (other than -EBUSY) to occur. The parameters @dev, @s, @insn, + * and @context are passed to the callback function, which returns -EBUSY to + * continue waiting or some other value to stop waiting (generally 0 if the + * condition occurred, or some error value). + * + * Returns -ETIMEDOUT if timed out, otherwise the return value from the + * callback function. */ int comedi_timeout(struct comedi_device *dev, struct comedi_subdevice *s, @@ -228,12 +301,30 @@ int comedi_timeout(struct comedi_device *dev, EXPORT_SYMBOL_GPL(comedi_timeout); /** - * comedi_dio_insn_config() - boilerplate (*insn_config) for DIO subdevices. - * @dev: comedi_device struct - * @s: comedi_subdevice struct - * @insn: comedi_insn struct - * @data: parameters for the @insn - * @mask: io_bits mask for grouped channels + * comedi_dio_insn_config() - Boilerplate (*insn_config) for DIO subdevices + * @dev: COMEDI device. + * @s: COMEDI subdevice. + * @insn: COMEDI instruction. + * @data: Instruction parameters and return data. + * @mask: io_bits mask for grouped channels, or 0 for single channel. + * + * If @mask is 0, it is replaced with a single-bit mask corresponding to the + * channel number specified by @insn->chanspec. Otherwise, @mask + * corresponds to a group of channels (which should include the specified + * channel) that are always configured together as inputs or outputs. + * + * Partially handles the %INSN_CONFIG_DIO_INPUT, %INSN_CONFIG_DIO_OUTPUTS, + * and %INSN_CONFIG_DIO_QUERY instructions. The first two update + * @s->io_bits to record the directions of the masked channels. The last + * one sets @data[1] to the current direction of the group of channels + * (%COMEDI_INPUT) or %COMEDI_OUTPUT) as recorded in @s->io_bits. + * + * The caller is responsible for updating the DIO direction in the hardware + * registers if this function returns 0. + * + * Returns 0 for a %INSN_CONFIG_DIO_INPUT or %INSN_CONFIG_DIO_OUTPUT + * instruction, @insn->n (> 0) for a %INSN_CONFIG_DIO_QUERY instruction, or + * -EINVAL for some other instruction. */ int comedi_dio_insn_config(struct comedi_device *dev, struct comedi_subdevice *s, @@ -268,9 +359,18 @@ int comedi_dio_insn_config(struct comedi_device *dev, EXPORT_SYMBOL_GPL(comedi_dio_insn_config); /** - * comedi_dio_update_state() - update the internal state of DIO subdevices. - * @s: comedi_subdevice struct - * @data: the channel mask and bits to update + * comedi_dio_update_state() - Update the internal state of DIO subdevices + * @s: COMEDI subdevice. + * @data: The channel mask and bits to update. + * + * Updates @s->state which holds the internal state of the outputs for DIO + * or DO subdevices (up to 32 channels). @data[0] contains a bit-mask of + * the channels to be updated. @data[1] contains a bit-mask of those + * channels to be set to '1'. The caller is responsible for updating the + * outputs in hardware according to @s->state. As a minimum, the channels + * in the returned bit-mask need to be updated. + * + * Returns @mask with non-existent channels removed. */ unsigned int comedi_dio_update_state(struct comedi_subdevice *s, unsigned int *data) @@ -290,17 +390,17 @@ unsigned int comedi_dio_update_state(struct comedi_subdevice *s, EXPORT_SYMBOL_GPL(comedi_dio_update_state); /** - * comedi_bytes_per_scan - get length of asynchronous command "scan" in bytes - * @s: comedi_subdevice struct + * comedi_bytes_per_scan() - Get length of asynchronous command "scan" in bytes + * @s: COMEDI subdevice. * * Determines the overall scan length according to the subdevice type and the * number of channels in the scan. * - * For digital input, output or input/output subdevices, samples for multiple - * channels are assumed to be packed into one or more unsigned short or - * unsigned int values according to the subdevice's SDF_LSAMPL flag. For other - * types of subdevice, samples are assumed to occupy a whole unsigned short or - * unsigned int according to the SDF_LSAMPL flag. + * For digital input, output or input/output subdevices, samples for + * multiple channels are assumed to be packed into one or more unsigned + * short or unsigned int values according to the subdevice's %SDF_LSAMPL + * flag. For other types of subdevice, samples are assumed to occupy a + * whole unsigned short or unsigned int according to the %SDF_LSAMPL flag. * * Returns the overall scan length in bytes. */ @@ -326,18 +426,18 @@ unsigned int comedi_bytes_per_scan(struct comedi_subdevice *s) EXPORT_SYMBOL_GPL(comedi_bytes_per_scan); /** - * comedi_nscans_left - return the number of scans left in the command - * @s: comedi_subdevice struct - * @nscans: the expected number of scans + * comedi_nscans_left() - Return the number of scans left in the command + * @s: COMEDI subdevice. + * @nscans: The expected number of scans or 0 for all available scans. * - * If nscans is 0, the number of scans available in the async buffer will be - * used. Otherwise the expected number of scans will be used. + * If @nscans is 0, it is set to the number of scans available in the + * async buffer. * - * If the async command has a stop_src of TRIG_COUNT, the nscans will be - * checked against the number of scans left in the command. + * If the async command has a stop_src of %TRIG_COUNT, the @nscans will be + * checked against the number of scans remaining to complete the command. * * The return value will then be either the expected number of scans or the - * number of scans remaining in the command. + * number of scans remaining to complete the command, whichever is fewer. */ unsigned int comedi_nscans_left(struct comedi_subdevice *s, unsigned int nscans) @@ -365,12 +465,12 @@ unsigned int comedi_nscans_left(struct comedi_subdevice *s, EXPORT_SYMBOL_GPL(comedi_nscans_left); /** - * comedi_nsamples_left - return the number of samples left in the command - * @s: comedi_subdevice struct - * @nsamples: the expected number of samples + * comedi_nsamples_left() - Return the number of samples left in the command + * @s: COMEDI subdevice. + * @nsamples: The expected number of samples. * - * Returns the expected number of samples of the number of samples remaining - * in the command. + * Returns the number of samples remaining to complete the command, or the + * specified expected number of samples (@nsamples), whichever is fewer. */ unsigned int comedi_nsamples_left(struct comedi_subdevice *s, unsigned int nsamples) @@ -399,14 +499,14 @@ unsigned int comedi_nsamples_left(struct comedi_subdevice *s, EXPORT_SYMBOL_GPL(comedi_nsamples_left); /** - * comedi_inc_scan_progress - update scan progress in asynchronous command - * @s: comedi_subdevice struct - * @num_bytes: amount of data in bytes to increment scan progress + * comedi_inc_scan_progress() - Update scan progress in asynchronous command + * @s: COMEDI subdevice. + * @num_bytes: Amount of data in bytes to increment scan progress. * - * Increments the scan progress by the number of bytes specified by num_bytes. + * Increments the scan progress by the number of bytes specified by @num_bytes. * If the scan progress reaches or exceeds the scan length in bytes, reduce * it modulo the scan length in bytes and set the "end of scan" asynchronous - * event flag to be processed later. + * event flag (%COMEDI_CB_EOS) to be processed later. */ void comedi_inc_scan_progress(struct comedi_subdevice *s, unsigned int num_bytes) @@ -437,12 +537,12 @@ void comedi_inc_scan_progress(struct comedi_subdevice *s, EXPORT_SYMBOL_GPL(comedi_inc_scan_progress); /** - * comedi_handle_events - handle events and possibly stop acquisition - * @dev: comedi_device struct - * @s: comedi_subdevice struct + * comedi_handle_events() - Handle events and possibly stop acquisition + * @dev: COMEDI device. + * @s: COMEDI subdevice. * * Handles outstanding asynchronous acquisition event flags associated - * with the subdevice. Call the subdevice's "->cancel()" handler if the + * with the subdevice. Call the subdevice's @s->cancel() handler if the * "end of acquisition", "error" or "overflow" event flags are set in order * to stop the acquisition at the driver level. * @@ -677,12 +777,19 @@ static void comedi_report_boards(struct comedi_driver *driv) } /** - * comedi_load_firmware() - Request and load firmware for a device. - * @dev: comedi_device struct - * @hw_device: device struct for the comedi_device - * @name: the name of the firmware image - * @cb: callback to the upload the firmware image - * @context: private context from the driver + * comedi_load_firmware() - Request and load firmware for a device + * @dev: COMEDI device. + * @device: Hardware device. + * @name: The name of the firmware image. + * @cb: Callback to the upload the firmware image. + * @context: Private context from the driver. + * + * Sends a firmware request for the hardware device and waits for it. Calls + * the callback function to upload the firmware to the device, them releases + * the firmware. + * + * Returns 0 on success, -EINVAL if @cb is NULL, or a negative error number + * from the firmware request or the callback function. */ int comedi_load_firmware(struct comedi_device *dev, struct device *device, @@ -709,10 +816,16 @@ int comedi_load_firmware(struct comedi_device *dev, EXPORT_SYMBOL_GPL(comedi_load_firmware); /** - * __comedi_request_region() - Request an I/O reqion for a legacy driver. - * @dev: comedi_device struct - * @start: base address of the I/O reqion - * @len: length of the I/O region + * __comedi_request_region() - Request an I/O region for a legacy driver + * @dev: COMEDI device. + * @start: Base address of the I/O region. + * @len: Length of the I/O region. + * + * Requests the specified I/O port region which must start at a non-zero + * address. + * + * Returns 0 on success, -EINVAL if @start is 0, or -EIO if the request + * fails. */ int __comedi_request_region(struct comedi_device *dev, unsigned long start, unsigned long len) @@ -735,10 +848,19 @@ int __comedi_request_region(struct comedi_device *dev, EXPORT_SYMBOL_GPL(__comedi_request_region); /** - * comedi_request_region() - Request an I/O reqion for a legacy driver. - * @dev: comedi_device struct - * @start: base address of the I/O reqion - * @len: length of the I/O region + * comedi_request_region() - Request an I/O region for a legacy driver + * @dev: COMEDI device. + * @start: Base address of the I/O region. + * @len: Length of the I/O region. + * + * Requests the specified I/O port region which must start at a non-zero + * address. + * + * On success, @dev->iobase is set to the base address of the region and + * @dev->iolen is set to its length. + * + * Returns 0 on success, -EINVAL if @start is 0, or -EIO if the request + * fails. */ int comedi_request_region(struct comedi_device *dev, unsigned long start, unsigned long len) @@ -756,8 +878,16 @@ int comedi_request_region(struct comedi_device *dev, EXPORT_SYMBOL_GPL(comedi_request_region); /** - * comedi_legacy_detach() - A generic (*detach) function for legacy drivers. - * @dev: comedi_device struct + * comedi_legacy_detach() - A generic (*detach) function for legacy drivers + * @dev: COMEDI device. + * + * This is a simple, generic 'detach' handler for legacy COMEDI devices that + * just use a single I/O port region and possibly an IRQ and that don't need + * any special clean-up for their private device or subdevice storage. It + * can also be called by a driver-specific 'detach' handler. + * + * If @dev->irq is non-zero, the IRQ will be freed. If @dev->iobase and + * @dev->iolen are both non-zero, the I/O port region will be released. */ void comedi_legacy_detach(struct comedi_device *dev) { @@ -831,6 +961,29 @@ out: return ret; } +/** + * comedi_auto_config() - Create a COMEDI device for a hardware device + * @hardware_device: Hardware device. + * @driver: COMEDI low-level driver for the hardware device. + * @context: Driver context for the auto_attach handler. + * + * Allocates a new COMEDI device for the hardware device and calls the + * low-level driver's 'auto_attach' handler to set-up the hardware and + * allocate the COMEDI subdevices. Additional "post-configuration" setting + * up is performed on successful return from the 'auto_attach' handler. + * If the 'auto_attach' handler fails, the low-level driver's 'detach' + * handler will be called as part of the clean-up. + * + * This is usually called from a wrapper function in a bus-specific COMEDI + * module, which in turn is usually called from a bus device 'probe' + * function in the low-level driver. + * + * Returns 0 on success, -EINVAL if the parameters are invalid or the + * post-configuration determines the driver has set the COMEDI device up + * incorrectly, -ENOMEM if failed to allocate memory, -EBUSY if run out of + * COMEDI minor device numbers, or some negative error number returned by + * the driver's 'auto_attach' handler. + */ int comedi_auto_config(struct device *hardware_device, struct comedi_driver *driver, unsigned long context) { @@ -888,6 +1041,22 @@ int comedi_auto_config(struct device *hardware_device, } EXPORT_SYMBOL_GPL(comedi_auto_config); +/** + * comedi_auto_unconfig() - Unconfigure auto-allocated COMEDI device + * @hardware_device: Hardware device previously passed to + * comedi_auto_config(). + * + * Cleans up and eventually destroys the COMEDI device allocated by + * comedi_auto_config() for the same hardware device. As part of this + * clean-up, the low-level COMEDI driver's 'detach' handler will be called. + * (The COMEDI device itself will persist in an unattached state if it is + * still open, until it is released, and any mmapped buffers will persist + * until they are munmapped.) + * + * This is usually called from a wrapper module in a bus-specific COMEDI + * module, which in turn is usually set as the bus device 'remove' function + * in the low-level COMEDI driver. + */ void comedi_auto_unconfig(struct device *hardware_device) { if (!hardware_device) @@ -896,6 +1065,17 @@ void comedi_auto_unconfig(struct device *hardware_device) } EXPORT_SYMBOL_GPL(comedi_auto_unconfig); +/** + * comedi_driver_register() - Register a low-level COMEDI driver + * @driver: Low-level COMEDI driver. + * + * The low-level COMEDI driver is added to the list of registered COMEDI + * drivers. This is used by the handler for the "/proc/comedi" file and is + * also used by the handler for the %COMEDI_DEVCONFIG ioctl to configure + * "legacy" COMEDI devices (for those low-level drivers that support it). + * + * Returns 0. + */ int comedi_driver_register(struct comedi_driver *driver) { mutex_lock(&comedi_drivers_list_lock); @@ -907,6 +1087,15 @@ int comedi_driver_register(struct comedi_driver *driver) } EXPORT_SYMBOL_GPL(comedi_driver_register); +/** + * comedi_driver_unregister() - Unregister a low-level COMEDI driver + * @driver: Low-level COMEDI driver. + * + * The low-level COMEDI driver is removed from the list of registered COMEDI + * drivers. Detaches any COMEDI devices attached to the driver, which will + * result in the low-level driver's 'detach' handler being called for those + * devices before this function returns. + */ void comedi_driver_unregister(struct comedi_driver *driver) { struct comedi_driver *prev; From 2750914363bff601fc812f8cb0ef56ffc8b0b27b Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:46 +0100 Subject: [PATCH 0664/2431] staging: comedi: comedidev.h: reformat copyright comment Use the preferred block comment style. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 28a5d3a037a1..097c3d5bb7a9 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -1,20 +1,20 @@ /* - include/linux/comedidev.h - header file for kernel-only structures, variables, and constants - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 1997-2000 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ + * comedidev.h + * header file for kernel-only structures, variables, and constants + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 1997-2000 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ #ifndef _COMEDIDEV_H #define _COMEDIDEV_H From 251a16ab67906c29cbc0b7aebc85fc0209f6770f Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:47 +0100 Subject: [PATCH 0665/2431] staging: comedi: comedidev.h: use enum for COMEDI_CB_... constants The existing constants `COMEDI_CB_EOS` etc. are in the form of macros and have a bogus kernel-doc comment. Change them to `enum` constants so they can be documented properly with kernel-doc. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 097c3d5bb7a9..76a1b93218cf 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -216,26 +216,27 @@ struct comedi_async { }; /** - * comedi_async callback "events" + * enum comedi_cb - &struct comedi_async callback "events" * @COMEDI_CB_EOS: end-of-scan * @COMEDI_CB_EOA: end-of-acquisition/output * @COMEDI_CB_BLOCK: data has arrived, wakes up read() / write() * @COMEDI_CB_EOBUF: DEPRECATED: end of buffer * @COMEDI_CB_ERROR: card error during acquisition * @COMEDI_CB_OVERFLOW: buffer overflow/underflow - * * @COMEDI_CB_ERROR_MASK: events that indicate an error has occurred * @COMEDI_CB_CANCEL_MASK: events that will cancel an async command */ -#define COMEDI_CB_EOS BIT(0) -#define COMEDI_CB_EOA BIT(1) -#define COMEDI_CB_BLOCK BIT(2) -#define COMEDI_CB_EOBUF BIT(3) -#define COMEDI_CB_ERROR BIT(4) -#define COMEDI_CB_OVERFLOW BIT(5) - -#define COMEDI_CB_ERROR_MASK (COMEDI_CB_ERROR | COMEDI_CB_OVERFLOW) -#define COMEDI_CB_CANCEL_MASK (COMEDI_CB_EOA | COMEDI_CB_ERROR_MASK) +enum comedi_cb { + COMEDI_CB_EOS = BIT(0), + COMEDI_CB_EOA = BIT(1), + COMEDI_CB_BLOCK = BIT(2), + COMEDI_CB_EOBUF = BIT(3), + COMEDI_CB_ERROR = BIT(4), + COMEDI_CB_OVERFLOW = BIT(5), + /* masks */ + COMEDI_CB_ERROR_MASK = (COMEDI_CB_ERROR | COMEDI_CB_OVERFLOW), + COMEDI_CB_CANCEL_MASK = (COMEDI_CB_EOA | COMEDI_CB_ERROR_MASK) +}; struct comedi_driver { struct comedi_driver *next; From a871773f23fb18f455e0a44717a8d091874aa1ba Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:48 +0100 Subject: [PATCH 0666/2431] staging: comedi: comedidev.h: tweak kernel-doc for struct comedi_async Tweak the formatting of the kernel-doc formatted comment for `struct comedi_async` in order to stop it generating bogus headings for text before a colon. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 76a1b93218cf..66081ff89e0f 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -136,31 +136,36 @@ struct comedi_buf_map { * * Think of the _Count values being integers of unlimited size, indexing * into a buffer of infinite length (though only an advancing portion - * of the buffer of fixed length prealloc_bufsz is accessible at any time). - * Then: + * of the buffer of fixed length prealloc_bufsz is accessible at any + * time). Then: * * Buf_Read_Count <= Buf_Read_Alloc_Count <= Munge_Count <= * Buf_Write_Count <= Buf_Write_Alloc_Count <= * (Buf_Read_Count + prealloc_bufsz) * - * (Those aren't the actual members, apart from prealloc_bufsz.) When - * the buffer is reset, those _Count values start at 0 and only increase - * in value, maintaining the above inequalities until the next time the - * buffer is reset. The buffer is divided into the following regions by - * the inequalities: + * (Those aren't the actual members, apart from prealloc_bufsz.) When the + * buffer is reset, those _Count values start at 0 and only increase in value, + * maintaining the above inequalities until the next time the buffer is + * reset. The buffer is divided into the following regions by the inequalities: * * [0, Buf_Read_Count): * old region no longer accessible + * * [Buf_Read_Count, Buf_Read_Alloc_Count): * filled and munged region allocated for reading but not yet read + * * [Buf_Read_Alloc_Count, Munge_Count): * filled and munged region not yet allocated for reading + * * [Munge_Count, Buf_Write_Count): * filled region not yet munged + * * [Buf_Write_Count, Buf_Write_Alloc_Count): * unfilled region allocated for writing but not yet written + * * [Buf_Write_Alloc_Count, Buf_Read_Count + prealloc_bufsz): * unfilled region not yet allocated for writing + * * [Buf_Read_Count + prealloc_bufsz, infinity): * unfilled region not yet accessible * From a3ed91f8757a6d2e6f8c6f61aa08761831e33feb Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:49 +0100 Subject: [PATCH 0667/2431] staging: comedi: comedidev.h: document struct comedi_driver Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 38 ++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 66081ff89e0f..782d1c5c0857 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -243,19 +243,47 @@ enum comedi_cb { COMEDI_CB_CANCEL_MASK = (COMEDI_CB_EOA | COMEDI_CB_ERROR_MASK) }; +/** + * struct comedi_driver - COMEDI driver registration + * @driver_name: Name of driver. + * @module: Owning module. + * @attach: The optional "attach" handler for manually configured COMEDI + * devices. + * @detach: The "detach" handler for deconfiguring COMEDI devices. + * @auto_attach: The optional "auto_attach" handler for automatically + * configured COMEDI devices. + * @num_names: Optional number of "board names" supported. + * @board_name: Optional pointer to a pointer to a board name. The pointer + * to a board name is embedded in an element of a driver-defined array + * of static, read-only board type information. + * @offset: Optional size of each element of the driver-defined array of + * static, read-only board type information, i.e. the offset between each + * pointer to a board name. + * + * This is used with comedi_driver_register() and comedi_driver_unregister() to + * register and unregister a low-level COMEDI driver with the COMEDI core. + * + * If @num_names is non-zero, @board_name should be non-NULL, and @offset + * should be at least sizeof(*board_name). These are used by the handler for + * the %COMEDI_DEVCONFIG ioctl to match a hardware device and its driver by + * board name. If @num_names is zero, the %COMEDI_DEVCONFIG ioctl matches a + * hardware device and its driver by driver name. This is only useful if the + * @attach handler is set. If @num_names is non-zero, the driver's @attach + * handler will be called with the COMEDI device structure's board_ptr member + * pointing to the matched pointer to a board name within the driver's private + * array of static, read-only board type information. + */ struct comedi_driver { - struct comedi_driver *next; - + /* private: */ + struct comedi_driver *next; /* Next in list of COMEDI drivers. */ + /* public: */ const char *driver_name; struct module *module; int (*attach)(struct comedi_device *, struct comedi_devconfig *); void (*detach)(struct comedi_device *); int (*auto_attach)(struct comedi_device *, unsigned long); - - /* number of elements in board_name and board_id arrays */ unsigned int num_names; const char *const *board_name; - /* offset in bytes from one board name pointer to the next */ int offset; }; From 9ac5b44fbed08758d4d09bf309700a46cef28035 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:50 +0100 Subject: [PATCH 0668/2431] staging: comedi: comedidev.h: document struct comedi_device Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 84 ++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 782d1c5c0857..6a30af2df2bd 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -287,6 +287,87 @@ struct comedi_driver { int offset; }; +/** + * struct comedi_device - Working data for a COMEDI device + * @use_count: Number of open file objects. + * @driver: Low-level COMEDI driver attached to this COMEDI device. + * @pacer: Optional pointer to a dynamically allocated acquisition pacer + * control. It is freed automatically after the COMEDI device is + * detached from the low-level driver. + * @private: Optional pointer to private data allocated by the low-level + * driver. It is freed automatically after the COMEDI device is + * detached from the low-level driver. + * @class_dev: Sysfs comediX device. + * @minor: Minor device number of COMEDI char device (0-47). + * @detach_count: Counter incremented every time the COMEDI device is detached. + * Used for checking a previous attachment is still valid. + * @hw_dev: Optional pointer to the low-level hardware &struct device. It is + * required for automatically configured COMEDI devices and optional for + * COMEDI devices configured by the %COMEDI_DEVCONFIG ioctl, although + * the bus-specific COMEDI functions only work if it is set correctly. + * It is also passed to dma_alloc_coherent() for COMEDI subdevices that + * have their 'async_dma_dir' member set to something other than + * %DMA_NONE. + * @board_name: Pointer to a COMEDI board name or a COMEDI driver name. When + * the low-level driver's "attach" handler is called by the handler for + * the %COMEDI_DEVCONFIG ioctl, it either points to a matched board name + * string if the 'num_names' member of the &struct comedi_driver is + * non-zero, otherwise it points to the low-level driver name string. + * When the low-lever driver's "auto_attach" handler is called for an + * automatically configured COMEDI device, it points to the low-level + * driver name string. The low-level driver is free to change it in its + * "attach" or "auto_attach" handler if it wishes. + * @board_ptr: Optional pointer to private, read-only board type information in + * the low-level driver. If the 'num_names' member of the &struct + * comedi_driver is non-zero, the handler for the %COMEDI_DEVCONFIG ioctl + * will point it to a pointer to a matched board name string within the + * driver's private array of static, read-only board type information when + * calling the driver's "attach" handler. The low-level driver is free to + * change it. + * @attached: Flag indicating that the COMEDI device is attached to a low-level + * driver. + * @ioenabled: Flag used to indicate that a PCI device has been enabled and + * its regions requested. + * @spinlock: Generic spin-lock for use by the low-level driver. + * @mutex: Generic mutex for use by the COMEDI core module. + * @attach_lock: &struct rw_semaphore used to guard against the COMEDI device + * being detached while an operation is in progress. The down_write() + * operation is only allowed while @mutex is held and is used when + * changing @attached and @detach_count and calling the low-level driver's + * "detach" handler. The down_read() operation is generally used without + * holding @mutex. + * @refcount: &struct kref reference counter for freeing COMEDI device. + * @n_subdevices: Number of COMEDI subdevices allocated by the low-level + * driver for this device. + * @subdevices: Dynamically allocated array of COMEDI subdevices. + * @mmio: Optional pointer to a remapped MMIO region set by the low-level + * driver. + * @iobase: Optional base of an I/O port region requested by the low-level + * driver. + * @iolen: Length of I/O port region requested at @iobase. + * @irq: Optional IRQ number requested by the low-level driver. + * @read_subdev: Optional pointer to a default COMEDI subdevice operated on by + * the read() file operation. Set by the low-level driver. + * @write_subdev: Optional pointer to a default COMEDI subdevice operated on by + * the write() file operation. Set by the low-level driver. + * @async_queue: Storage for fasync_helper(). + * @open: Optional pointer to a function set by the low-level driver to be + * called when @use_count changes from 0 to 1. + * @close: Optional pointer to a function set by the low-level driver to be + * called when @use_count changed from 1 to 0. + * + * This is the main control data structure for a COMEDI device (as far as the + * COMEDI core is concerned). There are two groups of COMEDI devices - + * "legacy" devices that are configured by the handler for the + * %COMEDI_DEVCONFIG ioctl, and automatically configured devices resulting + * from a call to comedi_auto_config() as a result of a bus driver probe in + * a low-level COMEDI driver. The "legacy" COMEDI devices are allocated + * during module initialization if the "comedi_num_legacy_minors" module + * parameter is non-zero and use minor device numbers from 0 to + * comedi_num_legacy_minors minus one. The automatically configured COMEDI + * devices are allocated on demand and use minor device numbers from + * comedi_num_legacy_minors to 47. + */ struct comedi_device { int use_count; struct comedi_driver *driver; @@ -296,9 +377,6 @@ struct comedi_device { struct device *class_dev; int minor; unsigned int detach_count; - /* hw_dev is passed to dma_alloc_coherent when allocating async buffers - * for subdevices that have async_dma_dir set to something other than - * DMA_NONE */ struct device *hw_dev; const char *board_name; From 0f952fa843397f9a08b937caf8fcc8126813d492 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:51 +0100 Subject: [PATCH 0669/2431] staging: comedi: comedidev.h: document struct comedi_subdevice Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 125 +++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 6a30af2df2bd..ccd761b7b150 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -34,6 +34,131 @@ #define COMEDI_NUM_BOARD_MINORS 0x30 +/** + * struct comedi_subdevice - Working data for a COMEDI subdevice + * @device: COMEDI device to which this subdevice belongs. (Initialized by + * comedi_alloc_subdevices().) + * @index: Index of this subdevice within device's array of subdevices. + * (Initialized by comedi_alloc_subdevices().) + * @type: Type of subdevice from &enum comedi_subdevice_type. (Initialized by + * the low-level driver.) + * @n_chan: Number of channels the subdevice supports. (Initialized by the + * low-level driver.) + * @subdev_flags: Various "SDF" flags indicating aspects of the subdevice to + * the COMEDI core and user application. (Initialized by the low-level + * driver.) + * @len_chanlist: Maximum length of a channel list if the subdevice supports + * asynchronous acquisition commands. (Optionally initialized by the + * low-level driver, or changed from 0 to 1 during post-configuration.) + * @private: Private data pointer which is either set by the low-level driver + * itself, or by a call to comedi_alloc_spriv() which allocates storage. + * In the latter case, the storage is automatically freed after the + * low-level driver's "detach" handler is called for the device. + * (Initialized by the low-level driver.) + * @async: Pointer to &struct comedi_async id the subdevice supports + * asynchronous acquisition commands. (Allocated and initialized during + * post-configuration if needed.) + * @lock: Pointer to a file object that performed a %COMEDI_LOCK ioctl on the + * subdevice. (Initially NULL.) + * @busy: Pointer to a file object that is performing an asynchronous + * acquisition command on the subdevice. (Initially NULL.) + * @runflags: Internal flags for use by COMEDI core, mostly indicating whether + * an asynchronous acquisition command is running. + * @spin_lock: Generic spin-lock for use by the COMEDI core and the low-level + * driver. (Initialized by comedi_alloc_subdevices().) + * @io_bits: Bit-mask indicating the channel directions for a DIO subdevice + * with no more than 32 channels. A '1' at a bit position indicates the + * corresponding channel is configured as an output. (Initialized by the + * low-level driver for a DIO subdevice. Forced to all-outputs during + * post-configuration for a digital output subdevice.) + * @maxdata: If non-zero, this is the maximum raw data value of each channel. + * If zero, the maximum data value is channel-specific. (Initialized by + * the low-level driver.) + * @maxdata_list: If the maximum data value is channel-specific, this points + * to an array of maximum data values indexed by channel index. + * (Initialized by the low-level driver.) + * @range_table: If non-NULL, this points to a COMEDI range table for the + * subdevice. If NULL, the range table is channel-specific. (Initialized + * by the low-level driver, will be set to an "invalid" range table during + * post-configuration if @range_table and @range_table_list are both + * NULL.) + * @range_table_list: If the COMEDI range table is channel-specific, this + * points to an array of pointers to COMEDI range tables indexed by + * channel number. (Initialized by the low-level driver.) + * @chanlist: Not used. + * @insn_read: Optional pointer to a handler for the %INSN_READ instruction. + * (Initialized by the low-level driver, or set to a default handler + * during post-configuration.) + * @insn_write: Optional pointer to a handler for the %INSN_WRITE instruction. + * (Initialized by the low-level driver, or set to a default handler + * during post-configuration.) + * @insn_bits: Optional pointer to a handler for the %INSN_BITS instruction + * for a digital input, digital output or digital input/output subdevice. + * (Initialized by the low-level driver, or set to a default handler + * during post-configuration.) + * @insn_config: Optional pointer to a handler for the %INSN_CONFIG + * instruction. (Initialized by the low-level driver, or set to a default + * handler during post-configuration.) + * @do_cmd: If the subdevice supports asynchronous acquisition commands, this + * points to a handler to set it up in hardware. (Initialized by the + * low-level driver.) + * @do_cmdtest: If the subdevice supports asynchronous acquisition commands, + * this points to a handler used to check and possibly tweak a prospective + * acquisition command without setting it up in hardware. (Initialized by + * the low-level driver.) + * @poll: If the subdevice supports asynchronous acquisition commands, this + * is an optional pointer to a handler for the %COMEDI_POLL ioctl which + * instructs the low-level driver to synchronize buffers. (Initialized by + * the low-level driver if needed.) + * @cancel: If the subdevice supports asynchronous acquisition commands, this + * points to a handler used to terminate a running command. (Initialized + * by the low-level driver.) + * @buf_change: If the subdevice supports asynchronous acquisition commands, + * this is an optional pointer to a handler that is called when the data + * buffer for handling asynchronous commands is allocated or reallocated. + * (Initialized by the low-level driver if needed.) + * @munge: If the subdevice supports asynchronous acquisition commands and + * uses DMA to transfer data from the hardware to the acquisition buffer, + * this points to a function used to "munge" the data values from the + * hardware into the format expected by COMEDI. (Initialized by the + * low-level driver if needed.) + * @async_dma_dir: If the subdevice supports asynchronous acquisition commands + * and uses DMA to transfer data from the hardware to the acquisition + * buffer, this sets the DMA direction for the buffer. (initialized to + * %DMA_NONE by comedi_alloc_subdevices() and changed by the low-level + * driver if necessary.) + * @state: Handy bit-mask indicating the output states for a DIO or digital + * output subdevice with no more than 32 channels. (Initialized by the + * low-level driver.) + * @class_dev: If the subdevice supports asynchronous acquisition commands, + * this points to a sysfs comediX_subdY device where X is the minor device + * number of the COMEDI device and Y is the subdevice number. The minor + * device number for the sysfs device is allocated dynamically in the + * range 48 to 255. This is used to allow the COMEDI device to be opened + * with a different default read or write subdevice. (Allocated during + * post-configuration if needed.) + * @minor: If @class_dev is set, this is its dynamically allocated minor + * device number. (Set during post-configuration if necessary.) + * @readback: Optional pointer to memory allocated by + * comedi_alloc_subdev_readback() used to hold the values written to + * analog output channels so they can be read back. The storage is + * automatically freed after the low-level driver's "detach" handler is + * called for the device. (Initialized by the low-level driver.) + * + * This is the main control structure for a COMEDI subdevice. If the subdevice + * supports asynchronous acquisition commands, additional information is stored + * in the &struct comedi_async pointed to by @async. + * + * Most of the subdevice is initialized by the low-level driver's "attach" or + * "auto_attach" handlers but parts of it are initialized by + * comedi_alloc_subdevices(), and other parts are initialized during + * post-configuration on return from that handler. + * + * A low-level driver that sets @insn_bits for a digital input, digital output, + * or DIO subdevice may leave @insn_read and @insn_write uninitialized, in + * which case they will be set to a default handler during post-configuration + * that uses @insn_bits to emulate the %INSN_READ and %INSN_WRITE instructions. + */ struct comedi_subdevice { struct comedi_device *device; int index; From 11a10830b6e1ed001e0d71594beb5eedc714e202 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:52 +0100 Subject: [PATCH 0670/2431] staging: comedi: comedidev.h: document struct comedi_buf_map Add kernel-doc for `struct comedi_buf_map` and the associated `struct comedi_buf_page`. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index ccd761b7b150..cfb7d520d82f 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -217,11 +217,40 @@ struct comedi_subdevice { unsigned int *readback; }; +/** + * struct comedi_buf_page - Describe a page of a COMEDI buffer + * @virt_addr: Kernel address of page. + * @dma_addr: DMA address of page if in DMA coherent memory. + */ struct comedi_buf_page { void *virt_addr; dma_addr_t dma_addr; }; +/** + * struct comedi_buf_map - Describe pages in a COMEDI buffer + * @dma_hw_dev: Low-level hardware &struct device pointer copied from the + * COMEDI device's hw_dev member. + * @page_list: Pointer to array of &struct comedi_buf_page, one for each + * page in the buffer. + * @n_pages: Number of pages in the buffer. + * @dma_dir: DMA direction used to allocate pages of DMA coherent memory, + * or %DMA_NONE if pages allocated from regular memory. + * @refcount: &struct kref reference counter used to free the buffer. + * + * A COMEDI data buffer is allocated as individual pages, either in + * conventional memory or DMA coherent memory, depending on the attached, + * low-level hardware device. (The buffer pages also get mapped into the + * kernel's contiguous virtual address space pointed to by the 'prealloc_buf' + * member of &struct comedi_async.) + * + * The buffer is normally freed when the COMEDI device is detached from the + * low-level driver (which may happen due to device removal), but if it happens + * to be mmapped at the time, the pages cannot be freed until the buffer has + * been munmapped. That is what the reference counter is for. (The virtual + * address space pointed by 'prealloc_buf' is freed when the COMEDI device is + * detached.) + */ struct comedi_buf_map { struct device *dma_hw_dev; struct comedi_buf_page *page_list; From 5459bc1281e628e6f57ee16c69eaf8a9622912e8 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:53 +0100 Subject: [PATCH 0671/2431] staging: comedi: comedidev.h: document struct comedi_lrange Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index cfb7d520d82f..195fa5791c13 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -606,6 +606,17 @@ extern const struct comedi_lrange range_unknown; #define GCC_ZERO_LENGTH_ARRAY 0 #endif +/** + * struct comedi_lrange - Describes a COMEDI range table + * @length: Number of entries in the range table. + * @range: Array of &struct comedi_krange, one for each range. + * + * Each element of @range[] describes the minimum and maximum physical range + * range and the type of units. Typically, the type of unit is %UNIT_volt + * (i.e. volts) and the minimum and maximum are in millionths of a volt. + * There may also be a flag that indicates the minimum and maximum are merely + * scale factors for an unknown, external reference. + */ struct comedi_lrange { int length; struct comedi_krange range[GCC_ZERO_LENGTH_ARRAY]; From 9f2f5d34e136741fb36fd33c3a6ffbf6c2f190da Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:54 +0100 Subject: [PATCH 0672/2431] staging: comedi: comedidev.h: tweak struct comedi_async documentation Make the kernel-doc layout for `struct comedi_async` more consistent with the documentation for the other COMEDI data types. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 50 +++++++++++++++--------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 195fa5791c13..9bec63977d28 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -260,31 +260,31 @@ struct comedi_buf_map { }; /** - * struct comedi_async - control data for asynchronous comedi commands - * @prealloc_buf: preallocated buffer - * @prealloc_bufsz: buffer size (in bytes) - * @buf_map: map of buffer pages - * @max_bufsize: maximum buffer size (in bytes) - * @buf_write_count: "write completed" count (in bytes, modulo 2**32) - * @buf_write_alloc_count: "allocated for writing" count (in bytes, - * modulo 2**32) - * @buf_read_count: "read completed" count (in bytes, modulo 2**32) - * @buf_read_alloc_count: "allocated for reading" count (in bytes, - * modulo 2**32) - * @buf_write_ptr: buffer position for writer - * @buf_read_ptr: buffer position for reader - * @cur_chan: current position in chanlist for scan (for those - * drivers that use it) - * @scans_done: the number of scans completed (COMEDI_CB_EOS) - * @scan_progress: amount received or sent for current scan (in bytes) - * @munge_chan: current position in chanlist for "munging" - * @munge_count: "munge" count (in bytes, modulo 2**32) - * @munge_ptr: buffer position for "munging" - * @events: bit-vector of events that have occurred - * @cmd: details of comedi command in progress - * @wait_head: task wait queue for file reader or writer - * @cb_mask: bit-vector of events that should wake waiting tasks - * @inttrig: software trigger function for command, or NULL + * struct comedi_async - Control data for asynchronous COMEDI commands + * @prealloc_buf: Kernel virtual address of allocated acquisition buffer. + * @prealloc_bufsz: Buffer size (in bytes). + * @buf_map: Map of buffer pages. + * @max_bufsize: Maximum allowed buffer size (in bytes). + * @buf_write_count: "Write completed" count (in bytes, modulo 2**32). + * @buf_write_alloc_count: "Allocated for writing" count (in bytes, + * modulo 2**32). + * @buf_read_count: "Read completed" count (in bytes, modulo 2**32). + * @buf_read_alloc_count: "Allocated for reading" count (in bytes, + * modulo 2**32). + * @buf_write_ptr: Buffer position for writer. + * @buf_read_ptr: Buffer position for reader. + * @cur_chan: Current position in chanlist for scan (for those drivers that + * use it). + * @scans_done: The number of scans completed. + * @scan_progress: Amount received or sent for current scan (in bytes). + * @munge_chan: Current position in chanlist for "munging". + * @munge_count: "Munge" count (in bytes, modulo 2**32). + * @munge_ptr: Buffer position for "munging". + * @events: Bit-vector of events that have occurred. + * @cmd: Details of comedi command in progress. + * @wait_head: Task wait queue for file reader or writer. + * @cb_mask: Bit-vector of events that should wake waiting tasks. + * @inttrig: Software trigger function for command, or NULL. * * Note about the ..._count and ..._ptr members: * From 8f78264cdd6caf0073f5fb09dce49f4c598927b9 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:55 +0100 Subject: [PATCH 0673/2431] staging: comedi: comedidev.h: tweak docs for inline functions Tweak the kernel-doc for already documented inline functions for consistency, and document their return values. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 92 +++++++++++++++++++----------- 1 file changed, 59 insertions(+), 33 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 9bec63977d28..600df7477dd7 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -669,13 +669,13 @@ static inline unsigned int comedi_offset_munge(struct comedi_subdevice *s, } /** - * comedi_bytes_per_sample - determine subdevice sample size - * @s: comedi_subdevice struct + * comedi_bytes_per_sample() - Determine subdevice sample size + * @s: COMEDI subdevice. * * The sample size will be 4 (sizeof int) or 2 (sizeof short) depending on - * whether the SDF_LSAMPL subdevice flag is set or not. + * whether the %SDF_LSAMPL subdevice flag is set or not. * - * Returns the subdevice sample size. + * Return: The subdevice sample size. */ static inline unsigned int comedi_bytes_per_sample(struct comedi_subdevice *s) { @@ -683,15 +683,15 @@ static inline unsigned int comedi_bytes_per_sample(struct comedi_subdevice *s) } /** - * comedi_sample_shift - determine log2 of subdevice sample size - * @s: comedi_subdevice struct + * comedi_sample_shift() - Determine log2 of subdevice sample size + * @s: COMEDI subdevice. * * The sample size will be 4 (sizeof int) or 2 (sizeof short) depending on - * whether the SDF_LSAMPL subdevice flag is set or not. The log2 of the + * whether the %SDF_LSAMPL subdevice flag is set or not. The log2 of the * sample size will be 2 or 1 and can be used as the right operand of a * bit-shift operator to multiply or divide something by the sample size. * - * Returns log2 of the subdevice sample size. + * Return: log2 of the subdevice sample size. */ static inline unsigned int comedi_sample_shift(struct comedi_subdevice *s) { @@ -699,11 +699,11 @@ static inline unsigned int comedi_sample_shift(struct comedi_subdevice *s) } /** - * comedi_bytes_to_samples - converts a number of bytes to a number of samples - * @s: comedi_subdevice struct - * @nbytes: number of bytes + * comedi_bytes_to_samples() - Convert a number of bytes to a number of samples + * @s: COMEDI subdevice. + * @nbytes: Number of bytes * - * Returns the number of bytes divided by the subdevice sample size. + * Return: The number of bytes divided by the subdevice sample size. */ static inline unsigned int comedi_bytes_to_samples(struct comedi_subdevice *s, unsigned int nbytes) @@ -712,12 +712,12 @@ static inline unsigned int comedi_bytes_to_samples(struct comedi_subdevice *s, } /** - * comedi_samples_to_bytes - converts a number of samples to a number of bytes - * @s: comedi_subdevice struct - * @nsamples: number of samples + * comedi_samples_to_bytes() - Convert a number of samples to a number of bytes + * @s: COMEDI subdevice. + * @nsamples: Number of samples. * - * Returns the number of samples multiplied by the subdevice sample size. - * Does not check for arithmetic overflow. + * Return: The number of samples multiplied by the subdevice sample size. + * (Does not check for arithmetic overflow.) */ static inline unsigned int comedi_samples_to_bytes(struct comedi_subdevice *s, unsigned int nsamples) @@ -726,14 +726,18 @@ static inline unsigned int comedi_samples_to_bytes(struct comedi_subdevice *s, } /** - * comedi_check_trigger_src() - trivially validate a comedi_cmd trigger source - * @src: pointer to the trigger source to validate - * @flags: bitmask of valid TRIG_* for the trigger + * comedi_check_trigger_src() - Trivially validate a comedi_cmd trigger source + * @src: Pointer to the trigger source to validate. + * @flags: Bitmask of valid %TRIG_* for the trigger. * * This is used in "step 1" of the do_cmdtest functions of comedi drivers - * to vaildate the comedi_cmd triggers. The mask of the @src against the + * to validate the comedi_cmd triggers. The mask of the @src against the * @flags allows the userspace comedilib to pass all the comedi_cmd - * triggers as TRIG_ANY and get back a bitmask of the valid trigger sources. + * triggers as %TRIG_ANY and get back a bitmask of the valid trigger sources. + * + * Return: + * 0 if trigger sources in *@src are all supported. + * -EINVAL if any trigger source in *@src is unsupported. */ static inline int comedi_check_trigger_src(unsigned int *src, unsigned int flags) @@ -747,8 +751,12 @@ static inline int comedi_check_trigger_src(unsigned int *src, } /** - * comedi_check_trigger_is_unique() - make sure a trigger source is unique - * @src: the trigger source to check + * comedi_check_trigger_is_unique() - Make sure a trigger source is unique + * @src: The trigger source to check. + * + * Return: + * 0 if no more than one trigger source is set. + * -EINVAL if more than one trigger source is set. */ static inline int comedi_check_trigger_is_unique(unsigned int src) { @@ -759,9 +767,15 @@ static inline int comedi_check_trigger_is_unique(unsigned int src) } /** - * comedi_check_trigger_arg_is() - trivially validate a trigger argument - * @arg: pointer to the trigger arg to validate - * @val: the value the argument should be + * comedi_check_trigger_arg_is() - Trivially validate a trigger argument + * @arg: Pointer to the trigger arg to validate. + * @val: The value the argument should be. + * + * Forces *@arg to be @val. + * + * Return: + * 0 if *@arg was already @val. + * -EINVAL if *@arg differed from @val. */ static inline int comedi_check_trigger_arg_is(unsigned int *arg, unsigned int val) @@ -774,9 +788,15 @@ static inline int comedi_check_trigger_arg_is(unsigned int *arg, } /** - * comedi_check_trigger_arg_min() - trivially validate a trigger argument - * @arg: pointer to the trigger arg to validate - * @val: the minimum value the argument should be + * comedi_check_trigger_arg_min() - Trivially validate a trigger argument min + * @arg: Pointer to the trigger arg to validate. + * @val: The minimum value the argument should be. + * + * Forces *@arg to be at least @val, setting it to @val if necessary. + * + * Return: + * 0 if *@arg was already at least @val. + * -EINVAL if *@arg was less than @val. */ static inline int comedi_check_trigger_arg_min(unsigned int *arg, unsigned int val) @@ -789,9 +809,15 @@ static inline int comedi_check_trigger_arg_min(unsigned int *arg, } /** - * comedi_check_trigger_arg_max() - trivially validate a trigger argument - * @arg: pointer to the trigger arg to validate - * @val: the maximum value the argument should be + * comedi_check_trigger_arg_max() - Trivially validate a trigger argument max + * @arg: Pointer to the trigger arg to validate. + * @val: The maximum value the argument should be. + * + * Forces *@arg to be no more than @val, setting it to @val if necessary. + * + * Return: + * 0 if*@arg was already no more than @val. + * -EINVAL if *@arg was greater than @val. */ static inline int comedi_check_trigger_arg_max(unsigned int *arg, unsigned int val) From 42e55839943a8303d6dd86814b8989d5add42cca Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:56 +0100 Subject: [PATCH 0674/2431] staging: comedi: comedidev.h: document remaining inline functions Add kernel-doc headers to the inline functions that do not have them yet. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 114 ++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 600df7477dd7..6062493a7146 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -622,24 +622,85 @@ struct comedi_lrange { struct comedi_krange range[GCC_ZERO_LENGTH_ARRAY]; }; +/** + * comedi_range_is_bipolar() - Test if subdevice range is bipolar + * @s: COMEDI subdevice. + * @range: Index of range within a range table. + * + * Tests whether a range is bipolar by checking whether its minimum value + * is negative. + * + * Assumes @range is valid. Does not work for subdevices using a + * channel-specific range table list. + * + * Return: + * %true if the range is bipolar. + * %false if the range is unipolar. + */ static inline bool comedi_range_is_bipolar(struct comedi_subdevice *s, unsigned int range) { return s->range_table->range[range].min < 0; } +/** + * comedi_range_is_unipolar() - Test if subdevice range is unipolar + * @s: COMEDI subdevice. + * @range: Index of range within a range table. + * + * Tests whether a range is unipolar by checking whether its minimum value + * is at least 0. + * + * Assumes @range is valid. Does not work for subdevices using a + * channel-specific range table list. + * + * Return: + * %true if the range is unipolar. + * %false if the range is bipolar. + */ static inline bool comedi_range_is_unipolar(struct comedi_subdevice *s, unsigned int range) { return s->range_table->range[range].min >= 0; } +/** + * comedi_range_is_external() - Test if subdevice range is external + * @s: COMEDI subdevice. + * @range: Index of range within a range table. + * + * Tests whether a range is externally reference by checking whether its + * %RF_EXTERNAL flag is set. + * + * Assumes @range is valid. Does not work for subdevices using a + * channel-specific range table list. + * + * Return: + * %true if the range is external. + * %false if the range is internal. + */ static inline bool comedi_range_is_external(struct comedi_subdevice *s, unsigned int range) { return !!(s->range_table->range[range].flags & RF_EXTERNAL); } +/** + * comedi_chan_range_is_bipolar() - Test if channel-specific range is bipolar + * @s: COMEDI subdevice. + * @chan: The channel number. + * @range: Index of range within a range table. + * + * Tests whether a range is bipolar by checking whether its minimum value + * is negative. + * + * Assumes @chan and @range are valid. Only works for subdevices with a + * channel-specific range table list. + * + * Return: + * %true if the range is bipolar. + * %false if the range is unipolar. + */ static inline bool comedi_chan_range_is_bipolar(struct comedi_subdevice *s, unsigned int chan, unsigned int range) @@ -647,6 +708,22 @@ static inline bool comedi_chan_range_is_bipolar(struct comedi_subdevice *s, return s->range_table_list[chan]->range[range].min < 0; } +/** + * comedi_chan_range_is_unipolar() - Test if channel-specific range is unipolar + * @s: COMEDI subdevice. + * @chan: The channel number. + * @range: Index of range within a range table. + * + * Tests whether a range is unipolar by checking whether its minimum value + * is at least 0. + * + * Assumes @chan and @range are valid. Only works for subdevices with a + * channel-specific range table list. + * + * Return: + * %true if the range is unipolar. + * %false if the range is bipolar. + */ static inline bool comedi_chan_range_is_unipolar(struct comedi_subdevice *s, unsigned int chan, unsigned int range) @@ -654,6 +731,22 @@ static inline bool comedi_chan_range_is_unipolar(struct comedi_subdevice *s, return s->range_table_list[chan]->range[range].min >= 0; } +/** + * comedi_chan_range_is_external() - Test if channel-specific range is external + * @s: COMEDI subdevice. + * @chan: The channel number. + * @range: Index of range within a range table. + * + * Tests whether a range is externally reference by checking whether its + * %RF_EXTERNAL flag is set. + * + * Assumes @chan and @range are valid. Only works for subdevices with a + * channel-specific range table list. + * + * Return: + * %true if the range is bipolar. + * %false if the range is unipolar. + */ static inline bool comedi_chan_range_is_external(struct comedi_subdevice *s, unsigned int chan, unsigned int range) @@ -661,7 +754,16 @@ static inline bool comedi_chan_range_is_external(struct comedi_subdevice *s, return !!(s->range_table_list[chan]->range[range].flags & RF_EXTERNAL); } -/* munge between offset binary and two's complement values */ +/** + * comedi_offset_munge() - Convert between offset binary and 2's complement + * @s: COMEDI subdevice. + * @val: Value to be converted. + * + * Toggles the highest bit of a sample value to toggle between offset binary + * and 2's complement. Assumes that @s->maxdata is a power of 2 minus 1. + * + * Return: The converted value. + */ static inline unsigned int comedi_offset_munge(struct comedi_subdevice *s, unsigned int val) { @@ -837,6 +939,16 @@ static inline int comedi_check_trigger_arg_max(unsigned int *arg, */ int comedi_set_hw_dev(struct comedi_device *dev, struct device *hw_dev); +/** + * comedi_buf_n_bytes_ready - Determine amount of unread data in buffer + * @s: COMEDI subdevice. + * + * Determines the number of bytes of unread data in the asynchronous + * acquisition data buffer for a subdevice. The data in question might not + * have been fully "munged" yet. + * + * Returns: The amount of unread data in bytes. + */ static inline unsigned int comedi_buf_n_bytes_ready(struct comedi_subdevice *s) { return s->async->buf_write_count - s->async->buf_read_count; From 67ecc3ddd3acb9095b171211b5516478c8b57764 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Tue, 22 Sep 2015 18:02:38 +0100 Subject: [PATCH 0675/2431] staging: comedi: comedi_buf.c: tweak existing kernel-doc Expand the kernel-doc descriptions of those exported functions that already have kernel-doc comments. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_buf.c | 37 ++++++++++++++++++----------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index 19e7b229d15e..63553d9dc051 100644 --- a/drivers/staging/comedi/comedi_buf.c +++ b/drivers/staging/comedi/comedi_buf.c @@ -469,15 +469,21 @@ static void comedi_buf_memcpy_from(struct comedi_subdevice *s, } /** - * comedi_buf_write_samples - write sample data to comedi buffer - * @s: comedi_subdevice struct - * @data: samples - * @nsamples: number of samples + * comedi_buf_write_samples() - Write sample data to COMEDI buffer + * @s: COMEDI subdevice. + * @data: Pointer to source samples. + * @nsamples: Number of samples to write. * - * Writes nsamples to the comedi buffer associated with the subdevice, marks - * it as written and updates the acquisition scan progress. + * Write up to @nsamples samples to the COMEDI acquisition data buffer + * associated with the subdevice, mark it as written and update the + * acquisition scan progress. If there is not enough room for the specified + * number of samples, the number of samples written is limited to the number + * that will fit and the %COMEDI_CB_OVERFLOW event flag is set to cause the + * acquisition to terminate with an overrun error. Set the %COMEDI_CB_BLOCK + * event flag if any samples are written to cause waiting tasks to be woken + * when the event flags are processed. * - * Returns the amount of data written in bytes. + * Return: The amount of data written in bytes. */ unsigned int comedi_buf_write_samples(struct comedi_subdevice *s, const void *data, unsigned int nsamples) @@ -513,15 +519,18 @@ unsigned int comedi_buf_write_samples(struct comedi_subdevice *s, EXPORT_SYMBOL_GPL(comedi_buf_write_samples); /** - * comedi_buf_read_samples - read sample data from comedi buffer - * @s: comedi_subdevice struct - * @data: destination - * @nsamples: maximum number of samples to read + * comedi_buf_read_samples() - Read sample data from COMEDI buffer + * @s: COMEDI subdevice. + * @data: Pointer to destination. + * @nsamples: Maximum number of samples to read. * - * Reads up to nsamples from the comedi buffer associated with the subdevice, - * marks it as read and updates the acquisition scan progress. + * Read up to @nsamples samples from the COMEDI acquisition data buffer + * associated with the subdevice, mark it as read and update the acquisition + * scan progress. Limit the number of samples read to the number available. + * Set the %COMEDI_CB_BLOCK event flag if any samples are read to cause waiting + * tasks to be woken when the event flags are processed. * - * Returns the amount of data read in bytes. + * Return: The amount of data read in bytes. */ unsigned int comedi_buf_read_samples(struct comedi_subdevice *s, void *data, unsigned int nsamples) From c240e20c73b2d3d4f27b9155bf4897db40af9b1e Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Tue, 22 Sep 2015 18:02:39 +0100 Subject: [PATCH 0676/2431] staging: comedi: comedi_buf.c: document remaining exported functions Add kernel-doc headers to the remaining functions marked for export. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_buf.c | 69 +++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index 63553d9dc051..d45a4b65e8d3 100644 --- a/drivers/staging/comedi/comedi_buf.c +++ b/drivers/staging/comedi/comedi_buf.c @@ -253,7 +253,17 @@ static unsigned int comedi_buf_write_n_available(struct comedi_subdevice *s) return free_end - async->buf_write_alloc_count; } -/* allocates chunk for the writer from free buffer space */ +/** + * comedi_buf_write_alloc() - Reserve buffer space for writing + * @s: COMEDI subdevice. + * @nbytes: Maximum space to reserve in bytes. + * + * Reserve up to @nbytes bytes of space to be written in the COMEDI acquisition + * data buffer associated with the subdevice. The amount reserved is limited + * by the space available. + * + * Return: The amount of space reserved in bytes. + */ unsigned int comedi_buf_write_alloc(struct comedi_subdevice *s, unsigned int nbytes) { @@ -329,7 +339,21 @@ unsigned int comedi_buf_write_n_allocated(struct comedi_subdevice *s) return async->buf_write_alloc_count - async->buf_write_count; } -/* transfers a chunk from writer to filled buffer space */ +/** + * comedi_buf_write_free() - Free buffer space after it is written + * @s: COMEDI subdevice. + * @nbytes: Maximum space to free in bytes. + * + * Free up to @nbytes bytes of space previously reserved for writing in the + * COMEDI acquisition data buffer associated with the subdevice. The amount of + * space freed is limited to the amount that was reserved. The freed space is + * assumed to have been filled with sample data by the writer. + * + * If the samples in the freed space need to be "munged", do so here. The + * freed space becomes available for allocation by the reader. + * + * Return: The amount of space freed in bytes. + */ unsigned int comedi_buf_write_free(struct comedi_subdevice *s, unsigned int nbytes) { @@ -349,6 +373,17 @@ unsigned int comedi_buf_write_free(struct comedi_subdevice *s, } EXPORT_SYMBOL_GPL(comedi_buf_write_free); +/** + * comedi_buf_read_n_available() - Determine amount of readable buffer space + * @s: COMEDI subdevice. + * + * Determine the amount of readable buffer space in the COMEDI acquisition data + * buffer associated with the subdevice. The readable buffer space is that + * which has been freed by the writer and "munged" to the sample data format + * expected by COMEDI if necessary. + * + * Return: The amount of readable buffer space. + */ unsigned int comedi_buf_read_n_available(struct comedi_subdevice *s) { struct comedi_async *async = s->async; @@ -369,7 +404,21 @@ unsigned int comedi_buf_read_n_available(struct comedi_subdevice *s) } EXPORT_SYMBOL_GPL(comedi_buf_read_n_available); -/* allocates a chunk for the reader from filled (and munged) buffer space */ +/** + * comedi_buf_read_alloc() - Reserve buffer space for reading + * @s: COMEDI subdevice. + * @nbytes: Maximum space to reserve in bytes. + * + * Reserve up to @nbytes bytes of previously written and "munged" buffer space + * for reading in the COMEDI acquisition data buffer associated with the + * subdevice. The amount reserved is limited to the space available. The + * reader can read from the reserved space and then free it. A reader is also + * allowed to read from the space before reserving it as long as it determines + * the amount of readable data available, but the space needs to be marked as + * reserved before it can be freed. + * + * Return: The amount of space reserved in bytes. + */ unsigned int comedi_buf_read_alloc(struct comedi_subdevice *s, unsigned int nbytes) { @@ -397,7 +446,19 @@ static unsigned int comedi_buf_read_n_allocated(struct comedi_async *async) return async->buf_read_alloc_count - async->buf_read_count; } -/* transfers control of a chunk from reader to free buffer space */ +/** + * comedi_buf_read_free() - Free buffer space after it has been read + * @s: COMEDI subdevice. + * @nbytes: Maximum space to free in bytes. + * + * Free up to @nbytes bytes of buffer space previously reserved for reading in + * the COMEDI acquisition data buffer associated with the subdevice. The + * amount of space freed is limited to the amount that was reserved. + * + * The freed space becomes available for allocation by the writer. + * + * Return: The amount of space freed in bytes. + */ unsigned int comedi_buf_read_free(struct comedi_subdevice *s, unsigned int nbytes) { From a3e399422f8c92b38ed2f95e56f0fa4c2eaecf5f Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 23 Sep 2015 16:33:27 +0100 Subject: [PATCH 0677/2431] staging: comedi: comedi_fops.c: Tweak kernel-doc for consistency Adjust the kernel-doc in this file for consistency of capitalization and punctuation. Make more use of the special kernel-doc markers for parameter names, constant names, etc. Use the correct kernel-doc tag for the return values sections. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 81 +++++++++++++++------------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 47d16488cb26..ef4b58b2f7ef 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -61,12 +61,12 @@ #define COMEDI_SRF_BUSY_MASK (COMEDI_SRF_ERROR | COMEDI_SRF_RUNNING) /** - * struct comedi_file - per-file private data for comedi device - * @dev: comedi_device struct - * @read_subdev: current "read" subdevice - * @write_subdev: current "write" subdevice - * @last_detach_count: last known detach count - * @last_attached: last known attached/detached state + * struct comedi_file - Per-file private data for COMEDI device + * @dev: COMEDI device. + * @read_subdev: Current "read" subdevice. + * @write_subdev: Current "write" subdevice. + * @last_detach_count: Last known detach count. + * @last_attached: Last known attached/detached state. */ struct comedi_file { struct comedi_device *dev; @@ -131,15 +131,15 @@ static void comedi_dev_kref_release(struct kref *kref) } /** - * comedi_dev_put - release a use of a comedi device structure - * @dev: comedi_device struct + * comedi_dev_put() - Release a use of a COMEDI device + * @dev: COMEDI device. * - * Must be called when a user of a comedi device is finished with it. - * When the last user of the comedi device calls this function, the - * comedi device is destroyed. + * Must be called when a user of a COMEDI device is finished with it. + * When the last user of the COMEDI device calls this function, the + * COMEDI device is destroyed. * - * Return 1 if the comedi device is destroyed by this call or dev is - * NULL, otherwise return 0. Callers must not assume the comedi + * Return: 1 if the COMEDI device is destroyed by this call or @dev is + * NULL, otherwise return 0. Callers must not assume the COMEDI * device is still valid if this function returns 0. */ int comedi_dev_put(struct comedi_device *dev) @@ -247,15 +247,15 @@ static struct comedi_device *comedi_dev_get_from_subdevice_minor(unsigned minor) } /** - * comedi_dev_get_from_minor - get comedi device by minor device number - * @minor: minor device number + * comedi_dev_get_from_minor() - Get COMEDI device by minor device number + * @minor: Minor device number. * - * Finds the comedi device associated by the minor device number, if any, - * and increments its reference count. The comedi device is prevented from + * Finds the COMEDI device associated with the minor device number, if any, + * and increments its reference count. The COMEDI device is prevented from * being freed until a matching call is made to comedi_dev_put(). * - * Return a pointer to the comedi device if it exists, with its usage - * reference incremented. Return NULL if no comedi device exists with the + * Return: A pointer to the COMEDI device if it exists, with its usage + * reference incremented. Return NULL if no COMEDI device exists with the * specified minor device number. */ struct comedi_device *comedi_dev_get_from_minor(unsigned minor) @@ -665,11 +665,11 @@ static bool comedi_is_runflags_in_error(unsigned runflags) } /** - * comedi_is_subdevice_running - check if async command running on subdevice - * @s: comedi_subdevice struct + * comedi_is_subdevice_running() - Check if async command running on subdevice + * @s: COMEDI subdevice. * - * Return true if an asynchronous comedi command is active on the comedi - * subdevice, else return false. + * Return: %true if an asynchronous COMEDI command is active on the + * subdevice, else %false. */ bool comedi_is_subdevice_running(struct comedi_subdevice *s) { @@ -701,11 +701,12 @@ bool comedi_can_auto_free_spriv(struct comedi_subdevice *s) } /** - * comedi_set_spriv_auto_free - mark subdevice private data as freeable - * @s: comedi_subdevice struct + * comedi_set_spriv_auto_free() - Mark subdevice private data as freeable + * @s: COMEDI subdevice. * * Mark the subdevice as having a pointer to private data that can be - * automatically freed by the comedi core during the detach. + * automatically freed when the COMEDI device is detached from the low-level + * driver. */ void comedi_set_spriv_auto_free(struct comedi_subdevice *s) { @@ -714,12 +715,16 @@ void comedi_set_spriv_auto_free(struct comedi_subdevice *s) EXPORT_SYMBOL_GPL(comedi_set_spriv_auto_free); /** - * comedi_alloc_spriv - Allocate memory for the subdevice private data. - * @s: comedi_subdevice struct - * @size: size of the memory to allocate + * comedi_alloc_spriv - Allocate memory for the subdevice private data + * @s: COMEDI subdevice. + * @size: Size of the memory to allocate. * - * This also sets the subdevice runflags to allow the core to automatically - * free the private data during the detach. + * Allocate memory for the subdevice private data and point @s->private + * to it. The memory will be freed automatically when the COMEDI device + * is detached from the low-level driver. + * + * Return: A pointer to the allocated memory @s->private on success. + * Return NULL on failure. */ void *comedi_alloc_spriv(struct comedi_subdevice *s, size_t size) { @@ -2686,15 +2691,15 @@ static const struct file_operations comedi_fops = { }; /** - * comedi_event - handle events for asynchronous comedi command - * @dev: comedi_device struct - * @s: comedi_subdevice struct associated with dev - * Context: interrupt (usually), s->spin_lock spin-lock not held + * comedi_event() - Handle events for asynchronous COMEDI command + * @dev: COMEDI device. + * @s: COMEDI subdevice. + * Context: in_interrupt() (usually), @s->spin_lock spin-lock not held. * - * If an asynchronous comedi command is active on the subdevice, process - * any COMEDI_CB_... event flags that have been set, usually by an + * If an asynchronous COMEDI command is active on the subdevice, process + * any %COMEDI_CB_... event flags that have been set, usually by an * interrupt handler. These may change the run state of the asynchronous - * command, wake a task, and/or send a SIGIO signal. + * command, wake a task, and/or send a %SIGIO signal. */ void comedi_event(struct comedi_device *dev, struct comedi_subdevice *s) { From 77d010ee4eda11ec21828d834ac190b127ede9b8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 23 Sep 2015 10:43:36 -0700 Subject: [PATCH 0678/2431] staging: comedi: rti800: prefer using the BIT macro Use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rti800.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/rti800.c b/drivers/staging/comedi/drivers/rti800.c index 340ac776e951..528e0697c9c7 100644 --- a/drivers/staging/comedi/drivers/rti800.c +++ b/drivers/staging/comedi/drivers/rti800.c @@ -57,14 +57,14 @@ * Register map */ #define RTI800_CSR 0x00 -#define RTI800_CSR_BUSY (1 << 7) -#define RTI800_CSR_DONE (1 << 6) -#define RTI800_CSR_OVERRUN (1 << 5) -#define RTI800_CSR_TCR (1 << 4) -#define RTI800_CSR_DMA_ENAB (1 << 3) -#define RTI800_CSR_INTR_TC (1 << 2) -#define RTI800_CSR_INTR_EC (1 << 1) -#define RTI800_CSR_INTR_OVRN (1 << 0) +#define RTI800_CSR_BUSY BIT(7) +#define RTI800_CSR_DONE BIT(6) +#define RTI800_CSR_OVERRUN BIT(5) +#define RTI800_CSR_TCR BIT(4) +#define RTI800_CSR_DMA_ENAB BIT(3) +#define RTI800_CSR_INTR_TC BIT(2) +#define RTI800_CSR_INTR_EC BIT(1) +#define RTI800_CSR_INTR_OVRN BIT(0) #define RTI800_MUXGAIN 0x01 #define RTI800_CONVERT 0x02 #define RTI800_ADCLO 0x03 From 5e2ec8f9f311caf006a077aea5e20f6608540b8b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 23 Sep 2015 10:43:37 -0700 Subject: [PATCH 0679/2431] staging: comedi: rti800: use comedi_offset_munge() Use the comedi_offset_munge() helper to do the two's complement to comedi offset binary and comedi offset binary to two's complement conversions. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rti800.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/rti800.c b/drivers/staging/comedi/drivers/rti800.c index 528e0697c9c7..cd61d2645af4 100644 --- a/drivers/staging/comedi/drivers/rti800.c +++ b/drivers/staging/comedi/drivers/rti800.c @@ -189,17 +189,21 @@ static int rti800_ai_insn_read(struct comedi_device *dev, } for (i = 0; i < insn->n; i++) { + unsigned int val; + outb(0, dev->iobase + RTI800_CONVERT); ret = comedi_timeout(dev, s, insn, rti800_ai_eoc, 0); if (ret) return ret; - data[i] = inb(dev->iobase + RTI800_ADCLO); - data[i] |= (inb(dev->iobase + RTI800_ADCHI) & 0xf) << 8; + val = inb(dev->iobase + RTI800_ADCLO); + val |= (inb(dev->iobase + RTI800_ADCHI) & 0xf) << 8; if (devpriv->adc_2comp) - data[i] ^= 0x800; + val = comedi_offset_munge(s, val); + + data[i] = val; } return insn->n; @@ -222,7 +226,7 @@ static int rti800_ao_insn_write(struct comedi_device *dev, s->readback[chan] = val; if (devpriv->dac_2comp[chan]) - val ^= 0x800; + val = comedi_offset_munge(s, val); outb(val & 0xff, dev->iobase + reg_lo); outb((val >> 8) & 0xff, dev->iobase + reg_hi); From 7a064fd13f44eb1acf2d525765fab55c7a3c3bf1 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 23 Sep 2015 19:35:56 +0100 Subject: [PATCH 0680/2431] staging: comedi: comedi_pci.c: improve function documentation Expand the descriptions of the functions and document the return values. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_pci.c | 108 ++++++++++++++++++++-------- 1 file changed, 80 insertions(+), 28 deletions(-) diff --git a/drivers/staging/comedi/comedi_pci.c b/drivers/staging/comedi/comedi_pci.c index 027f0f4e59c1..0601049d8923 100644 --- a/drivers/staging/comedi/comedi_pci.c +++ b/drivers/staging/comedi/comedi_pci.c @@ -22,8 +22,14 @@ #include "comedi_pci.h" /** - * comedi_to_pci_dev() - comedi_device pointer to pci_dev pointer. - * @dev: comedi_device struct + * comedi_to_pci_dev() - Return PCI device attached to COMEDI device + * @dev: COMEDI device. + * + * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a + * a &struct device embedded in a &struct pci_dev. + * + * Returns: Attached PCI device if @dev->hw_dev is non-%NULL. + * Returns %NULL if @dev->hw_dev is %NULL. */ struct pci_dev *comedi_to_pci_dev(struct comedi_device *dev) { @@ -32,8 +38,22 @@ struct pci_dev *comedi_to_pci_dev(struct comedi_device *dev) EXPORT_SYMBOL_GPL(comedi_to_pci_dev); /** - * comedi_pci_enable() - Enable the PCI device and request the regions. - * @dev: comedi_device struct + * comedi_pci_enable() - Enable the PCI device and request the regions + * @dev: COMEDI device. + * + * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a + * a &struct device embedded in a &struct pci_dev. Enable the PCI device + * and request its regions. Set @dev->ioenabled to %true if successful, + * otherwise undo what was done. + * + * Calls to comedi_pci_enable() and comedi_pci_disable() cannot be nested. + * + * Returns: + * 0 on success, + * -%ENODEV if @dev->hw_dev is %NULL, + * -%EBUSY if regions busy, + * or some negative error number if failed to enable PCI device. + * */ int comedi_pci_enable(struct comedi_device *dev) { @@ -58,8 +78,13 @@ int comedi_pci_enable(struct comedi_device *dev) EXPORT_SYMBOL_GPL(comedi_pci_enable); /** - * comedi_pci_disable() - Release the regions and disable the PCI device. - * @dev: comedi_device struct + * comedi_pci_disable() - Release the regions and disable the PCI device + * @dev: COMEDI device. + * + * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a + * a &struct device embedded in a &struct pci_dev. If the earlier call + * to comedi_pci_enable() was successful, release the PCI device's regions + * and disable it. Reset @dev->ioenabled back to %false. */ void comedi_pci_disable(struct comedi_device *dev) { @@ -74,8 +99,18 @@ void comedi_pci_disable(struct comedi_device *dev) EXPORT_SYMBOL_GPL(comedi_pci_disable); /** - * comedi_pci_detach() - A generic (*detach) function for PCI drivers. - * @dev: comedi_device struct + * comedi_pci_detach() - A generic "detach" handler for PCI COMEDI drivers + * @dev: COMEDI device. + * + * COMEDI drivers for PCI devices that need no special clean-up of private data + * and have no ioremapped regions other than that pointed to by @dev->mmio may + * use this function as its "detach" handler called by the COMEDI core when a + * COMEDI device is being detached from the low-level driver. It may be also + * called from a more specific "detach" handler that does additional clean-up. + * + * Free the IRQ if @dev->irq is non-zero, iounmap @dev->mmio if it is + * non-%NULL, and call comedi_pci_disable() to release the PCI device's regions + * and disable it. */ void comedi_pci_detach(struct comedi_device *dev) { @@ -97,12 +132,19 @@ void comedi_pci_detach(struct comedi_device *dev) EXPORT_SYMBOL_GPL(comedi_pci_detach); /** - * comedi_pci_auto_config() - Configure/probe a comedi PCI driver. - * @pcidev: pci_dev struct - * @driver: comedi_driver struct - * @context: driver specific data, passed to comedi_auto_config() + * comedi_pci_auto_config() - Configure/probe a PCI COMEDI device + * @pcidev: PCI device. + * @driver: Registered COMEDI driver. + * @context: Driver specific data, passed to comedi_auto_config(). * - * Typically called from the pci_driver (*probe) function. + * Typically called from the pci_driver (*probe) function. Auto-configure + * a COMEDI device, using the &struct device embedded in *@pcidev as the + * hardware device. The @context value gets passed through to @driver's + * "auto_attach" handler. The "auto_attach" handler may call + * comedi_to_pci_dev() on the passed in COMEDI device to recover @pcidev. + * + * Returns: The result of calling comedi_auto_config() (0 on success, or + * a negative error number on failure). */ int comedi_pci_auto_config(struct pci_dev *pcidev, struct comedi_driver *driver, @@ -113,10 +155,18 @@ int comedi_pci_auto_config(struct pci_dev *pcidev, EXPORT_SYMBOL_GPL(comedi_pci_auto_config); /** - * comedi_pci_auto_unconfig() - Unconfigure/remove a comedi PCI driver. - * @pcidev: pci_dev struct + * comedi_pci_auto_unconfig() - Unconfigure/remove a PCI COMEDI device + * @pcidev: PCI device. * - * Typically called from the pci_driver (*remove) function. + * Typically called from the pci_driver (*remove) function. Auto-unconfigure + * a COMEDI device attached to this PCI device, using a pointer to the + * &struct device embedded in *@pcidev as the hardware device. The COMEDI + * driver's "detach" handler will be called during unconfiguration of the + * COMEDI device. + * + * Note that the COMEDI device may have already been unconfigured using the + * %COMEDI_DEVCONFIG ioctl, in which case this attempt to unconfigure it + * again should be ignored. */ void comedi_pci_auto_unconfig(struct pci_dev *pcidev) { @@ -125,13 +175,15 @@ void comedi_pci_auto_unconfig(struct pci_dev *pcidev) EXPORT_SYMBOL_GPL(comedi_pci_auto_unconfig); /** - * comedi_pci_driver_register() - Register a comedi PCI driver. - * @comedi_driver: comedi_driver struct - * @pci_driver: pci_driver struct + * comedi_pci_driver_register() - Register a PCI COMEDI driver + * @comedi_driver: COMEDI driver to be registered. + * @pci_driver: PCI driver to be registered. * - * This function is used for the module_init() of comedi PCI drivers. - * Do not call it directly, use the module_comedi_pci_driver() helper - * macro instead. + * This function is called from the module_init() of PCI COMEDI driver modules + * to register the COMEDI driver and the PCI driver. Do not call it directly, + * use the module_comedi_pci_driver() helper macro instead. + * + * Returns: 0 on success, or a negative error number on failure. */ int comedi_pci_driver_register(struct comedi_driver *comedi_driver, struct pci_driver *pci_driver) @@ -153,13 +205,13 @@ int comedi_pci_driver_register(struct comedi_driver *comedi_driver, EXPORT_SYMBOL_GPL(comedi_pci_driver_register); /** - * comedi_pci_driver_unregister() - Unregister a comedi PCI driver. - * @comedi_driver: comedi_driver struct - * @pci_driver: pci_driver struct + * comedi_pci_driver_unregister() - Unregister a PCI COMEDI driver + * @comedi_driver: COMEDI driver to be unregistered. + * @pci_driver: PCI driver to be unregistered. * - * This function is used for the module_exit() of comedi PCI drivers. - * Do not call it directly, use the module_comedi_pci_driver() helper - * macro instead. + * This function is called from the module_exit() of PCI COMEDI driver modules + * to unregister the PCI driver and the COMEDI driver. Do not call it + * directly, use the module_comedi_pci_driver() helper macro instead. */ void comedi_pci_driver_unregister(struct comedi_driver *comedi_driver, struct pci_driver *pci_driver) From 267d2e0741f3e90d94dd1b69faa6a195d64484bf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:01 -0700 Subject: [PATCH 0681/2431] staging: comedi: rtd520: prefer using the BIT macro Use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 54 ++++++++++++------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 4c13f5eb0c84..9485e84c7442 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -106,39 +106,39 @@ */ #define LAS0_USER_IO 0x0008 /* User I/O */ #define LAS0_ADC 0x0010 /* FIFO Status/Software A/D Start */ -#define FS_DAC1_NOT_EMPTY (1 << 0) /* DAC1 FIFO not empty */ -#define FS_DAC1_HEMPTY (1 << 1) /* DAC1 FIFO half empty */ -#define FS_DAC1_NOT_FULL (1 << 2) /* DAC1 FIFO not full */ -#define FS_DAC2_NOT_EMPTY (1 << 4) /* DAC2 FIFO not empty */ -#define FS_DAC2_HEMPTY (1 << 5) /* DAC2 FIFO half empty */ -#define FS_DAC2_NOT_FULL (1 << 6) /* DAC2 FIFO not full */ -#define FS_ADC_NOT_EMPTY (1 << 8) /* ADC FIFO not empty */ -#define FS_ADC_HEMPTY (1 << 9) /* ADC FIFO half empty */ -#define FS_ADC_NOT_FULL (1 << 10) /* ADC FIFO not full */ -#define FS_DIN_NOT_EMPTY (1 << 12) /* DIN FIFO not empty */ -#define FS_DIN_HEMPTY (1 << 13) /* DIN FIFO half empty */ -#define FS_DIN_NOT_FULL (1 << 14) /* DIN FIFO not full */ +#define FS_DAC1_NOT_EMPTY BIT(0) /* DAC1 FIFO not empty */ +#define FS_DAC1_HEMPTY BIT(1) /* DAC1 FIFO half empty */ +#define FS_DAC1_NOT_FULL BIT(2) /* DAC1 FIFO not full */ +#define FS_DAC2_NOT_EMPTY BIT(4) /* DAC2 FIFO not empty */ +#define FS_DAC2_HEMPTY BIT(5) /* DAC2 FIFO half empty */ +#define FS_DAC2_NOT_FULL BIT(6) /* DAC2 FIFO not full */ +#define FS_ADC_NOT_EMPTY BIT(8) /* ADC FIFO not empty */ +#define FS_ADC_HEMPTY BIT(9) /* ADC FIFO half empty */ +#define FS_ADC_NOT_FULL BIT(10) /* ADC FIFO not full */ +#define FS_DIN_NOT_EMPTY BIT(12) /* DIN FIFO not empty */ +#define FS_DIN_HEMPTY BIT(13) /* DIN FIFO half empty */ +#define FS_DIN_NOT_FULL BIT(14) /* DIN FIFO not full */ #define LAS0_DAC1 0x0014 /* Software D/A1 Update (w) */ #define LAS0_DAC2 0x0018 /* Software D/A2 Update (w) */ #define LAS0_DAC 0x0024 /* Software Simultaneous Update (w) */ #define LAS0_PACER 0x0028 /* Software Pacer Start/Stop */ #define LAS0_TIMER 0x002c /* Timer Status/HDIN Software Trig. */ #define LAS0_IT 0x0030 /* Interrupt Status/Enable */ -#define IRQM_ADC_FIFO_WRITE (1 << 0) /* ADC FIFO Write */ -#define IRQM_CGT_RESET (1 << 1) /* Reset CGT */ -#define IRQM_CGT_PAUSE (1 << 3) /* Pause CGT */ -#define IRQM_ADC_ABOUT_CNT (1 << 4) /* About Counter out */ -#define IRQM_ADC_DELAY_CNT (1 << 5) /* Delay Counter out */ -#define IRQM_ADC_SAMPLE_CNT (1 << 6) /* ADC Sample Counter */ -#define IRQM_DAC1_UCNT (1 << 7) /* DAC1 Update Counter */ -#define IRQM_DAC2_UCNT (1 << 8) /* DAC2 Update Counter */ -#define IRQM_UTC1 (1 << 9) /* User TC1 out */ -#define IRQM_UTC1_INV (1 << 10) /* User TC1 out, inverted */ -#define IRQM_UTC2 (1 << 11) /* User TC2 out */ -#define IRQM_DIGITAL_IT (1 << 12) /* Digital Interrupt */ -#define IRQM_EXTERNAL_IT (1 << 13) /* External Interrupt */ -#define IRQM_ETRIG_RISING (1 << 14) /* Ext Trigger rising-edge */ -#define IRQM_ETRIG_FALLING (1 << 15) /* Ext Trigger falling-edge */ +#define IRQM_ADC_FIFO_WRITE BIT(0) /* ADC FIFO Write */ +#define IRQM_CGT_RESET BIT(1) /* Reset CGT */ +#define IRQM_CGT_PAUSE BIT(3) /* Pause CGT */ +#define IRQM_ADC_ABOUT_CNT BIT(4) /* About Counter out */ +#define IRQM_ADC_DELAY_CNT BIT(5) /* Delay Counter out */ +#define IRQM_ADC_SAMPLE_CNT BIT(6) /* ADC Sample Counter */ +#define IRQM_DAC1_UCNT BIT(7) /* DAC1 Update Counter */ +#define IRQM_DAC2_UCNT BIT(8) /* DAC2 Update Counter */ +#define IRQM_UTC1 BIT(9) /* User TC1 out */ +#define IRQM_UTC1_INV BIT(10) /* User TC1 out, inverted */ +#define IRQM_UTC2 BIT(11) /* User TC2 out */ +#define IRQM_DIGITAL_IT BIT(12) /* Digital Interrupt */ +#define IRQM_EXTERNAL_IT BIT(13) /* External Interrupt */ +#define IRQM_ETRIG_RISING BIT(14) /* Ext Trigger rising-edge */ +#define IRQM_ETRIG_FALLING BIT(15) /* Ext Trigger falling-edge */ #define LAS0_CLEAR 0x0034 /* Clear/Set Interrupt Clear Mask */ #define LAS0_OVERRUN 0x0038 /* Pending interrupts/Clear Overrun */ #define LAS0_PCLK 0x0040 /* Pacer Clock (24bit) */ From c3aea01259655b6dcf0e9665416d254177fe222b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:02 -0700 Subject: [PATCH 0682/2431] staging: comedi: rtd520: fix logical continuations Fix the checkpatch.pl issues about: CHECK: Logical continuations should be on the previous line Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 9485e84c7442..ea594e675b6e 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -959,8 +959,8 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) switch (cmd->stop_src) { case TRIG_COUNT: /* stop after N scans */ devpriv->ai_count = cmd->stop_arg * cmd->chanlist_len; - if ((devpriv->xfer_count > 0) - && (devpriv->xfer_count > devpriv->ai_count)) { + if ((devpriv->xfer_count > 0) && + (devpriv->xfer_count > devpriv->ai_count)) { devpriv->xfer_count = devpriv->ai_count; } break; @@ -1074,8 +1074,7 @@ static int rtd_ao_winsn(struct comedi_device *dev, /* VERIFY: comedi range and offset conversions */ - if ((range > 1) /* bipolar */ - && (data[i] < 2048)) { + if ((range > 1) && (data[i] < 2048)) { /* bipolar */ /* offset and sign extend */ val = (((int)data[i]) - 2048) << 3; } else { /* unipolor */ From 120bdac7376a36418eb1d55e0161dc0e660a45c3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:03 -0700 Subject: [PATCH 0683/2431] staging: comedi: rtd529: usleep_range is preferred over udelay Fix checkpatch issue: "CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt". `udelay()` is only used in the firmware upload process. Replace them with `usleep_range()` with a reasonable upper limit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index ea594e675b6e..49cbf48d1497 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -513,7 +513,7 @@ static int rtd520_probe_fifo_depth(struct comedi_device *dev) unsigned fifo_status; /* trigger conversion */ writew(0, dev->mmio + LAS0_ADC); - udelay(1); + usleep_range(1, 1000); fifo_status = readl(dev->mmio + LAS0_ADC); if ((fifo_status & FS_ADC_HEMPTY) == 0) { fifo_size = 2 * i; @@ -1142,7 +1142,7 @@ static void rtd_reset(struct comedi_device *dev) struct rtd_private *devpriv = dev->private; writel(0, dev->mmio + LAS0_BOARD_RESET); - udelay(100); /* needed? */ + usleep_range(100, 1000); /* needed? */ writel(0, devpriv->lcfg + PLX_INTRCS_REG); writew(0, dev->mmio + LAS0_IT); writew(~0, dev->mmio + LAS0_CLEAR); From fd62ef005839d8f82e46014cec6074aab2733abf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:04 -0700 Subject: [PATCH 0684/2431] staging: comedi: rtd520: rename rtd520Boards For aesthetics, rename this CamelCase array. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 49cbf48d1497..f93a6e32671f 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -352,7 +352,7 @@ struct rtd_boardinfo { const struct comedi_lrange *ai_range; }; -static const struct rtd_boardinfo rtd520Boards[] = { +static const struct rtd_boardinfo rtd520_boards[] = { [BOARD_DM7520] = { .name = "DM7520", .range_bip10 = 6, @@ -1195,8 +1195,8 @@ static int rtd_auto_attach(struct comedi_device *dev, struct comedi_subdevice *s; int ret; - if (context < ARRAY_SIZE(rtd520Boards)) - board = &rtd520Boards[context]; + if (context < ARRAY_SIZE(rtd520_boards)) + board = &rtd520_boards[context]; if (!board) return -ENODEV; dev->board_ptr = board; From e7211492e36145b2a39e20354bb615b6b196d25c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:05 -0700 Subject: [PATCH 0685/2431] staging: comedi: rtd520: move constants to right side of comparisons Fix the checkpatch.pl issues about: WARNING: Comparisons should place the constant on the right side of the test Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index f93a6e32671f..b4d8f591649d 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -608,7 +608,7 @@ static int ai_read_n(struct comedi_device *dev, struct comedi_subdevice *s, unsigned int range = CR_RANGE(cmd->chanlist[async->cur_chan]); unsigned short d; - if (0 == devpriv->ai_count) { /* done */ + if (devpriv->ai_count == 0) { /* done */ d = readw(devpriv->las1 + LAS1_ADC_FIFO); continue; } @@ -655,7 +655,7 @@ static irqreturn_t rtd_interrupt(int irq, void *d) status = readw(dev->mmio + LAS0_IT); /* if interrupt was not caused by our board, or handled above */ - if (0 == status) + if (status == 0) return IRQ_HANDLED; if (status & IRQM_ADC_ABOUT_CNT) { /* sample count -> read FIFO */ @@ -670,7 +670,7 @@ static irqreturn_t rtd_interrupt(int irq, void *d) if (ai_read_n(dev, s, devpriv->fifosz / 2) < 0) goto xfer_abort; - if (0 == devpriv->ai_count) + if (devpriv->ai_count == 0) goto xfer_done; } else if (devpriv->xfer_count > 0) { if (fifo_status & FS_ADC_NOT_EMPTY) { @@ -678,7 +678,7 @@ static irqreturn_t rtd_interrupt(int irq, void *d) if (ai_read_n(dev, s, devpriv->xfer_count) < 0) goto xfer_abort; - if (0 == devpriv->ai_count) + if (devpriv->ai_count == 0) goto xfer_done; } } @@ -760,7 +760,7 @@ static int rtd_ai_cmdtest(struct comedi_device *dev, if (cmd->scan_begin_src == TRIG_TIMER) { /* Note: these are time periods, not actual rates */ - if (1 == cmd->chanlist_len) { /* no scanning */ + if (cmd->chanlist_len == 1) { /* no scanning */ if (comedi_check_trigger_arg_min(&cmd->scan_begin_arg, RTD_MAX_SPEED_1)) { rtd_ns_to_timer(&cmd->scan_begin_arg, @@ -795,7 +795,7 @@ static int rtd_ai_cmdtest(struct comedi_device *dev, } if (cmd->convert_src == TRIG_TIMER) { - if (1 == cmd->chanlist_len) { /* no scanning */ + if (cmd->chanlist_len == 1) { /* no scanning */ if (comedi_check_trigger_arg_min(&cmd->convert_arg, RTD_MAX_SPEED_1)) { rtd_ns_to_timer(&cmd->convert_arg, @@ -907,7 +907,7 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) } writel((devpriv->fifosz / 2 - 1) & 0xffff, dev->mmio + LAS0_ACNT); - if (TRIG_TIMER == cmd->scan_begin_src) { + if (cmd->scan_begin_src == TRIG_TIMER) { /* scan_begin_arg is in nanoseconds */ /* find out how many samples to wait before transferring */ if (cmd->flags & CMDF_WAKE_EOS) { From 4ddf02bfd89e43dec940fa3f10c309f69888eda2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:06 -0700 Subject: [PATCH 0686/2431] staging: comedi: rtd520: remove unnecessary comments from rtd_ao_winsn() These comments are cut-and-paste from the old skeleton driver. Remove them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index b4d8f591649d..02dcb229c967 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -1067,8 +1067,6 @@ static int rtd_ao_winsn(struct comedi_device *dev, writew(range & 7, dev->mmio + ((chan == 0) ? LAS0_DAC1_CTRL : LAS0_DAC2_CTRL)); - /* Writing a list of values to an AO channel is probably not - * very useful, but that's how the interface is defined. */ for (i = 0; i < insn->n; ++i) { int val = data[i] << 3; @@ -1081,7 +1079,6 @@ static int rtd_ao_winsn(struct comedi_device *dev, val = data[i] << 3; } - /* a typical programming sequence */ writew(val, devpriv->las1 + ((chan == 0) ? LAS1_DAC1_FIFO : LAS1_DAC2_FIFO)); writew(0, dev->mmio + ((chan == 0) ? LAS0_DAC1 : LAS0_DAC2)); @@ -1093,7 +1090,6 @@ static int rtd_ao_winsn(struct comedi_device *dev, return ret; } - /* return the number of samples read/written */ return i; } From 78c1652c7eeac2dff6961678e60c3d792cbe83b5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:07 -0700 Subject: [PATCH 0687/2431] staging: comedi: rtd520: convert DAC register defines to macros For aesthetics, convert the defines for the various DAC registers into macros that take the comedi channel and return the correct offset. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 33 +++++++++---------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 02dcb229c967..5fe92c4b20a3 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -118,8 +118,7 @@ #define FS_DIN_NOT_EMPTY BIT(12) /* DIN FIFO not empty */ #define FS_DIN_HEMPTY BIT(13) /* DIN FIFO half empty */ #define FS_DIN_NOT_FULL BIT(14) /* DIN FIFO not full */ -#define LAS0_DAC1 0x0014 /* Software D/A1 Update (w) */ -#define LAS0_DAC2 0x0018 /* Software D/A2 Update (w) */ +#define LAS0_UPDATE_DAC(x) (0x0014 + ((x) * 0x4)) /* D/Ax Update (w) */ #define LAS0_DAC 0x0024 /* Software Simultaneous Update (w) */ #define LAS0_PACER 0x0028 /* Software Pacer Start/Stop */ #define LAS0_TIMER 0x002c /* Timer Status/HDIN Software Trig. */ @@ -177,16 +176,11 @@ #define LAS0_CGT_PAUSE 0x0144 /* Table Pause Enable */ #define LAS0_CGT_RESET 0x0148 /* Reset Channel Gain Table */ #define LAS0_CGT_CLEAR 0x014c /* Clear Channel Gain Table */ -#define LAS0_DAC1_CTRL 0x0150 /* D/A1 output type/range */ -#define LAS0_DAC1_SRC 0x0154 /* D/A1 update source */ -#define LAS0_DAC1_CYCLE 0x0158 /* D/A1 cycle mode */ -#define LAS0_DAC1_RESET 0x015c /* D/A1 FIFO reset */ -#define LAS0_DAC1_FIFO_CLEAR 0x0160 /* D/A1 FIFO clear */ -#define LAS0_DAC2_CTRL 0x0164 /* D/A2 output type/range */ -#define LAS0_DAC2_SRC 0x0168 /* D/A2 update source */ -#define LAS0_DAC2_CYCLE 0x016c /* D/A2 cycle mode */ -#define LAS0_DAC2_RESET 0x0170 /* D/A2 FIFO reset */ -#define LAS0_DAC2_FIFO_CLEAR 0x0174 /* D/A2 FIFO clear */ +#define LAS0_DAC_CTRL(x) (0x0150 + ((x) * 0x14)) /* D/Ax type/range */ +#define LAS0_DAC_SRC(x) (0x0154 + ((x) * 0x14)) /* D/Ax update source */ +#define LAS0_DAC_CYCLE(x) (0x0158 + ((x) * 0x14)) /* D/Ax cycle mode */ +#define LAS0_DAC_RESET(x) (0x015c + ((x) * 0x14)) /* D/Ax FIFO reset */ +#define LAS0_DAC_FIFO_CLEAR(x) (0x0160 + ((x) * 0x14)) /* D/Ax FIFO clear */ #define LAS0_ADC_SCNT_SRC 0x0178 /* A/D Sample Counter Source select */ #define LAS0_PACER_SELECT 0x0180 /* Pacer Clock select */ #define LAS0_SBUS0_SRC 0x0184 /* SyncBus 0 Source select */ @@ -213,8 +207,7 @@ */ #define LAS1_ADC_FIFO 0x0000 /* A/D FIFO (16bit) */ #define LAS1_HDIO_FIFO 0x0004 /* HiSpd DI FIFO (16bit) */ -#define LAS1_DAC1_FIFO 0x0008 /* D/A1 FIFO (16bit) */ -#define LAS1_DAC2_FIFO 0x000c /* D/A2 FIFO (16bit) */ +#define LAS1_DAC_FIFO(x) (0x0008 + ((x) * 0x4)) /* D/Ax FIFO (16bit) */ /*====================================================================== Driver specific stuff (tunable) @@ -1064,8 +1057,7 @@ static int rtd_ao_winsn(struct comedi_device *dev, int ret; /* Configure the output range (table index matches the range values) */ - writew(range & 7, - dev->mmio + ((chan == 0) ? LAS0_DAC1_CTRL : LAS0_DAC2_CTRL)); + writew(range & 7, dev->mmio + LAS0_DAC_CTRL(chan)); for (i = 0; i < insn->n; ++i) { int val = data[i] << 3; @@ -1079,9 +1071,8 @@ static int rtd_ao_winsn(struct comedi_device *dev, val = data[i] << 3; } - writew(val, devpriv->las1 + - ((chan == 0) ? LAS1_DAC1_FIFO : LAS1_DAC2_FIFO)); - writew(0, dev->mmio + ((chan == 0) ? LAS0_DAC1 : LAS0_DAC2)); + writew(val, devpriv->las1 + LAS1_DAC_FIFO(chan)); + writew(0, dev->mmio + LAS0_UPDATE_DAC(chan)); s->readback[chan] = data[i]; @@ -1156,8 +1147,8 @@ static void rtd_init_board(struct comedi_device *dev) writel(0, dev->mmio + LAS0_OVERRUN); writel(0, dev->mmio + LAS0_CGT_CLEAR); writel(0, dev->mmio + LAS0_ADC_FIFO_CLEAR); - writel(0, dev->mmio + LAS0_DAC1_RESET); - writel(0, dev->mmio + LAS0_DAC2_RESET); + writel(0, dev->mmio + LAS0_DAC_RESET(0)); + writel(0, dev->mmio + LAS0_DAC_RESET(1)); /* clear digital IO fifo */ writew(0, dev->mmio + LAS0_DIO_STATUS); writeb((0 << 6) | 0x30, dev->mmio + LAS0_UTC_CTRL); From 8e0768b184f361a30c640b7571d602f408744c13 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:08 -0700 Subject: [PATCH 0688/2431] staging: comedi: rtd520: fix rtd_ao_winsn() The "comedi range and offset conversions" in this function is incorrect. According to the hardware manual, the DAC registers are defined as: | D15 | D14-D03 | D02 | | D01 | D00 | | Sign | 12-bit data | (see manual) | The extended 'Sign' bit is only used for bipolar ranges to indicate negative 12-bit data values. The current code actually flips the sign for all bipolar data values instead of just munging the value to 2's complement and extending the sign bit. Fix the function to correctly munge the comedi offset binary values into 2's complement and extended the sign when bipolar ranges are specified. For aesthetics, rename this function and tidy it up a bit. Save the readback value after the conversion is complete. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 37 +++++++++++++------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 5fe92c4b20a3..e02ec519a89c 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -1046,42 +1046,43 @@ static int rtd_ao_eoc(struct comedi_device *dev, return -EBUSY; } -static int rtd_ao_winsn(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, - unsigned int *data) +static int rtd_ao_insn_write(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct rtd_private *devpriv = dev->private; - int i; - int chan = CR_CHAN(insn->chanspec); - int range = CR_RANGE(insn->chanspec); + unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int range = CR_RANGE(insn->chanspec); int ret; + int i; /* Configure the output range (table index matches the range values) */ writew(range & 7, dev->mmio + LAS0_DAC_CTRL(chan)); for (i = 0; i < insn->n; ++i) { - int val = data[i] << 3; + unsigned int val = data[i]; - /* VERIFY: comedi range and offset conversions */ - - if ((range > 1) && (data[i] < 2048)) { /* bipolar */ - /* offset and sign extend */ - val = (((int)data[i]) - 2048) << 3; - } else { /* unipolor */ - val = data[i] << 3; + /* bipolar uses 2's complement values with an extended sign */ + if (comedi_range_is_bipolar(s, range)) { + val = comedi_offset_munge(s, val); + val |= (val & ((s->maxdata + 1) >> 1)) << 1; } + /* shift the 12-bit data (+ sign) to match the register */ + val <<= 3; + writew(val, devpriv->las1 + LAS1_DAC_FIFO(chan)); writew(0, dev->mmio + LAS0_UPDATE_DAC(chan)); - s->readback[chan] = data[i]; - ret = comedi_timeout(dev, s, insn, rtd_ao_eoc, 0); if (ret) return ret; + + s->readback[chan] = data[i]; } - return i; + return insn->n; } static int rtd_dio_insn_bits(struct comedi_device *dev, @@ -1240,7 +1241,7 @@ static int rtd_auto_attach(struct comedi_device *dev, s->n_chan = 2; s->maxdata = 0x0fff; s->range_table = &rtd_ao_range; - s->insn_write = rtd_ao_winsn; + s->insn_write = rtd_ao_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) From 152eb6cc37c32aa1717e72a687979d8ed8e8b5fa Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:09 -0700 Subject: [PATCH 0689/2431] staging: comedi: rtd520: remove unnecessary function desc. block comments These function description comments are cut-and-paste cruft from the old skeleton driver. Remove them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 30 ------------------------- 1 file changed, 30 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index e02ec519a89c..9d978b921d54 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -583,12 +583,6 @@ static int rtd_ai_rinsn(struct comedi_device *dev, return n; } -/* - Get what we know is there.... Fast! - This uses 1/2 the bus cycles of read_dregs (below). - - The manual claims that we can do a lword read, but it doesn't work here. -*/ static int ai_read_n(struct comedi_device *dev, struct comedi_subdevice *s, int count) { @@ -623,12 +617,6 @@ static int ai_read_n(struct comedi_device *dev, struct comedi_subdevice *s, return 0; } -/* - Handle all rtd520 interrupts. - Runs atomically and is never re-entered. - This is a "slow handler"; other interrupts may be active. - The data conversion may someday happen in a "bottom half". -*/ static irqreturn_t rtd_interrupt(int irq, void *d) { struct comedi_device *dev = d; @@ -708,15 +696,6 @@ xfer_done: return IRQ_HANDLED; } -/* - cmdtest tests a particular command to see if it is valid. - Using the cmdtest ioctl, a user can create a valid cmd - and then have it executed by the cmd ioctl (asynchronously). - - cmdtest returns 1,2,3,4 or 0, depending on which tests - the command passes. -*/ - static int rtd_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) { @@ -859,12 +838,6 @@ static int rtd_ai_cmdtest(struct comedi_device *dev, return 0; } -/* - Execute a analog in command with many possible triggering options. - The data get stored in the async structure of the subdevice. - This is usually done by an interrupt handler. - Userland gets to the data using read calls. -*/ static int rtd_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) { struct rtd_private *devpriv = dev->private; @@ -1014,9 +987,6 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) return 0; } -/* - Stop a running data acquisition. -*/ static int rtd_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) { struct rtd_private *devpriv = dev->private; From 640da603179c425c23f1df95f346ae132f52ea98 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:10 -0700 Subject: [PATCH 0690/2431] staging: comedi: rtd520: tidy up block comments Use the preferred block command style. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 68 +++++++++++++------------ 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 9d978b921d54..e23a7b990513 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -209,12 +209,14 @@ #define LAS1_HDIO_FIFO 0x0004 /* HiSpd DI FIFO (16bit) */ #define LAS1_DAC_FIFO(x) (0x0008 + ((x) * 0x4)) /* D/Ax FIFO (16bit) */ -/*====================================================================== - Driver specific stuff (tunable) -======================================================================*/ +/* + * Driver specific stuff (tunable) + */ -/* We really only need 2 buffers. More than that means being much - smarter about knowing which ones are full. */ +/* + * We really only need 2 buffers. More than that means being much + * smarter about knowing which ones are full. + */ #define DMA_CHAIN_COUNT 2 /* max DMA segments/buffers in a ring (min 2) */ /* Target period for periodic transfers. This sets the user read latency. */ @@ -226,9 +228,9 @@ /* The board support a channel list up to the FIFO length (1K or 8K) */ #define RTD_MAX_CHANLIST 128 /* max channel list that we allow */ -/*====================================================================== - Board specific stuff -======================================================================*/ +/* + * Board specific stuff + */ #define RTD_CLOCK_RATE 8000000 /* 8Mhz onboard clock */ #define RTD_CLOCK_BASE 125 /* clock period in ns */ @@ -257,9 +259,9 @@ /* interrupt at end of block */ | PLX_INTR_TERM_COUNT \ /* from board to PCI */ | PLX_XFER_LOCAL_TO_PCI) -/*====================================================================== - Comedi specific stuff -======================================================================*/ +/* + * Comedi specific stuff + */ /* * The board has 3 input modes and the gains of 1,2,4,...32 (, 64, 128) @@ -377,11 +379,11 @@ struct rtd_private { #define DMA1_ACTIVE 0x04 /* DMA1 is active */ /* - Given a desired period and the clock period (both in ns), - return the proper counter value (divider-1). - Sets the original period to be the true value. - Note: you have to check if the value is larger than the counter range! -*/ + * Given a desired period and the clock period (both in ns), return the + * proper counter value (divider-1). Sets the original period to be the + * true value. + * Note: you have to check if the value is larger than the counter range! + */ static int rtd_ns_to_timer_base(unsigned int *nanosec, unsigned int flags, int base) { @@ -402,26 +404,26 @@ static int rtd_ns_to_timer_base(unsigned int *nanosec, if (divider < 2) divider = 2; /* min is divide by 2 */ - /* Note: we don't check for max, because different timers - have different ranges */ + /* + * Note: we don't check for max, because different timers + * have different ranges + */ *nanosec = base * divider; return divider - 1; /* countdown is divisor+1 */ } /* - Given a desired period (in ns), - return the proper counter value (divider-1) for the internal clock. - Sets the original period to be the true value. -*/ + * Given a desired period (in ns), return the proper counter value + * (divider-1) for the internal clock. Sets the original period to + * be the true value. + */ static int rtd_ns_to_timer(unsigned int *ns, unsigned int flags) { return rtd_ns_to_timer_base(ns, flags, RTD_CLOCK_BASE); } -/* - Convert a single comedi channel-gain entry to a RTD520 table entry -*/ +/* Convert a single comedi channel-gain entry to a RTD520 table entry */ static unsigned short rtd_convert_chan_gain(struct comedi_device *dev, unsigned int chanspec, int index) { @@ -466,9 +468,7 @@ static unsigned short rtd_convert_chan_gain(struct comedi_device *dev, return r; } -/* - Setup the channel-gain table from a comedi list -*/ +/* Setup the channel-gain table from a comedi list */ static void rtd_load_channelgain_list(struct comedi_device *dev, unsigned int n_chan, unsigned int *list) { @@ -488,8 +488,10 @@ static void rtd_load_channelgain_list(struct comedi_device *dev, } } -/* determine fifo size by doing adc conversions until the fifo half -empty status flag clears */ +/* + * Determine fifo size by doing adc conversions until the fifo half + * empty status flag clears. + */ static int rtd520_probe_fifo_depth(struct comedi_device *dev) { unsigned int chanspec = CR_PACK(0, 0, AREF_GROUND); @@ -972,8 +974,10 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) } /* end configuration */ - /* This doesn't seem to work. There is no way to clear an interrupt - that the priority controller has queued! */ + /* + * This doesn't seem to work. There is no way to clear an interrupt + * that the priority controller has queued! + */ writew(~0, dev->mmio + LAS0_CLEAR); readw(dev->mmio + LAS0_CLEAR); From da6877732d4d6f7264a6e719ddf50852bd33137a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:11 -0700 Subject: [PATCH 0691/2431] staging: comedi: rtd520: use DIV_ROUND_CLOSEST and DIV_ROUND_UP macros Use the macros to clarify the divisor calculations. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/rtd520.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index e23a7b990513..96c419374c9d 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -392,13 +392,13 @@ static int rtd_ns_to_timer_base(unsigned int *nanosec, switch (flags & CMDF_ROUND_MASK) { case CMDF_ROUND_NEAREST: default: - divider = (*nanosec + base / 2) / base; + divider = DIV_ROUND_CLOSEST(*nanosec, base); break; case CMDF_ROUND_DOWN: divider = (*nanosec) / base; break; case CMDF_ROUND_UP: - divider = (*nanosec + base - 1) / base; + divider = DIV_ROUND_UP(*nanosec, base); break; } if (divider < 2) From bc86e82d346320d036961da5a2f35a2cbc7e00cf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:12 -0700 Subject: [PATCH 0692/2431] staging: comedi: rtd520: hook up 8254 timer/counter subdevice There is a standard 8254 Timer/Counter device on the board. Hook up the subdevice for the user. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/Kconfig | 1 + drivers/staging/comedi/drivers/rtd520.c | 112 +++++++++++++++++++----- 2 files changed, 92 insertions(+), 21 deletions(-) diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index 682987eaf6e4..a5f2a3e45f26 100644 --- a/drivers/staging/comedi/Kconfig +++ b/drivers/staging/comedi/Kconfig @@ -1064,6 +1064,7 @@ config COMEDI_NI_PCIMIO config COMEDI_RTD520 tristate "Real Time Devices PCI4520/DM7520 support" + select COMEDI_8254 ---help--- Enable support for Real Time Devices PCI4520/DM7520 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 96c419374c9d..68ac02b68cb2 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -72,8 +72,6 @@ * As far as I can tell, the About interrupt doesn't work if Sample is * also enabled. It turns out that About really isn't needed, since * we always count down samples read. - * - * There was some timer/counter code, but it didn't follow the right API. */ /* @@ -99,6 +97,7 @@ #include "../comedi_pci.h" +#include "comedi_8254.h" #include "plx9080.h" /* @@ -148,10 +147,7 @@ #define LAS0_DCNT 0x0054 /* Delay counter (16 bit) */ #define LAS0_ACNT 0x0058 /* About counter (16 bit) */ #define LAS0_DAC_CLK 0x005c /* DAC clock (16bit) */ -#define LAS0_UTC0 0x0060 /* 8254 TC Counter 0 */ -#define LAS0_UTC1 0x0064 /* 8254 TC Counter 1 */ -#define LAS0_UTC2 0x0068 /* 8254 TC Counter 2 */ -#define LAS0_UTC_CTRL 0x006c /* 8254 TC Control */ +#define LAS0_8254_TIMER_BASE 0x0060 /* 8254 timer/counter base */ #define LAS0_DIO0 0x0070 /* Digital I/O Port 0 */ #define LAS0_DIO1 0x0074 /* Digital I/O Port 1 */ #define LAS0_DIO0_CTRL 0x0078 /* Digital I/O Control */ @@ -191,12 +187,8 @@ #define LAS0_SBUS2_ENABLE 0x019c /* SyncBus 2 enable */ #define LAS0_ETRG_POLARITY 0x01a4 /* Ext. Trigger polarity select */ #define LAS0_EINT_POLARITY 0x01a8 /* Ext. Interrupt polarity select */ -#define LAS0_UTC0_CLOCK 0x01ac /* UTC0 Clock select */ -#define LAS0_UTC0_GATE 0x01b0 /* UTC0 Gate select */ -#define LAS0_UTC1_CLOCK 0x01b4 /* UTC1 Clock select */ -#define LAS0_UTC1_GATE 0x01b8 /* UTC1 Gate select */ -#define LAS0_UTC2_CLOCK 0x01bc /* UTC2 Clock select */ -#define LAS0_UTC2_GATE 0x01c0 /* UTC2 Gate select */ +#define LAS0_8254_CLK_SEL(x) (0x01ac + ((x) * 0x8)) /* 8254 clock select */ +#define LAS0_8254_GATE_SEL(x) (0x01b0 + ((x) * 0x8)) /* 8254 gate select */ #define LAS0_UOUT0_SELECT 0x01c4 /* User Output 0 source select */ #define LAS0_UOUT1_SELECT 0x01c8 /* User Output 1 source select */ #define LAS0_DMA0_RESET 0x01cc /* DMA0 Request state machine reset */ @@ -371,6 +363,10 @@ struct rtd_private { int xfer_count; /* # to transfer data. 0->1/2FIFO */ int flags; /* flag event modes */ unsigned fifosz; + + /* 8254 Timer/Counter gate and clock sources */ + unsigned char timer_gate_src[3]; + unsigned char timer_clk_src[3]; }; /* bit defines for "flags" */ @@ -1099,6 +1095,81 @@ static int rtd_dio_insn_config(struct comedi_device *dev, return insn->n; } +static int rtd_counter_insn_config(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) +{ + struct rtd_private *devpriv = dev->private; + unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int max_src; + unsigned int src; + + switch (data[0]) { + case INSN_CONFIG_SET_GATE_SRC: + /* + * 8254 Timer/Counter gate sources: + * + * 0 = Not gated, free running (reset state) + * 1 = Gated, off + * 2 = Ext. TC Gate 1 + * 3 = Ext. TC Gate 2 + * 4 = Previous TC out (chan 1 and 2 only) + */ + src = data[2]; + max_src = (chan == 0) ? 3 : 4; + if (src > max_src) + return -EINVAL; + + devpriv->timer_gate_src[chan] = src; + writeb(src, dev->mmio + LAS0_8254_GATE_SEL(chan)); + break; + case INSN_CONFIG_GET_GATE_SRC: + data[2] = devpriv->timer_gate_src[chan]; + break; + case INSN_CONFIG_SET_CLOCK_SRC: + /* + * 8254 Timer/Counter clock sources: + * + * 0 = 8 MHz (reset state) + * 1 = Ext. TC Clock 1 + * 2 = Ext. TX Clock 2 + * 3 = Ext. Pacer Clock + * 4 = Previous TC out (chan 1 and 2 only) + * 5 = High-Speed Digital Input Sampling signal (chan 1 only) + */ + src = data[1]; + switch (chan) { + case 0: + max_src = 3; + break; + case 1: + max_src = 5; + break; + case 2: + max_src = 4; + break; + default: + return -EINVAL; + } + if (src > max_src) + return -EINVAL; + + devpriv->timer_clk_src[chan] = src; + writeb(src, dev->mmio + LAS0_8254_CLK_SEL(chan)); + break; + case INSN_CONFIG_GET_CLOCK_SRC: + src = devpriv->timer_clk_src[chan]; + data[1] = devpriv->timer_clk_src[chan]; + data[2] = (src == 0) ? RTD_CLOCK_BASE : 0; + break; + default: + return -EINVAL; + } + + return insn->n; +} + static void rtd_reset(struct comedi_device *dev) { struct rtd_private *devpriv = dev->private; @@ -1126,10 +1197,6 @@ static void rtd_init_board(struct comedi_device *dev) writel(0, dev->mmio + LAS0_DAC_RESET(1)); /* clear digital IO fifo */ writew(0, dev->mmio + LAS0_DIO_STATUS); - writeb((0 << 6) | 0x30, dev->mmio + LAS0_UTC_CTRL); - writeb((1 << 6) | 0x30, dev->mmio + LAS0_UTC_CTRL); - writeb((2 << 6) | 0x30, dev->mmio + LAS0_UTC_CTRL); - writeb((3 << 6) | 0x00, dev->mmio + LAS0_UTC_CTRL); /* TODO: set user out source ??? */ } @@ -1232,12 +1299,15 @@ static int rtd_auto_attach(struct comedi_device *dev, s->insn_bits = rtd_dio_insn_bits; s->insn_config = rtd_dio_insn_config; - /* timer/counter subdevices (not currently supported) */ + /* 8254 Timer/Counter subdevice */ s = &dev->subdevices[3]; - s->type = COMEDI_SUBD_COUNTER; - s->subdev_flags = SDF_READABLE | SDF_WRITABLE; - s->n_chan = 3; - s->maxdata = 0xffff; + dev->pacer = comedi_8254_mm_init(dev->mmio + LAS0_8254_TIMER_BASE, + RTD_CLOCK_BASE, I8254_IO8, 2); + if (!dev->pacer) + return -ENOMEM; + + comedi_8254_subdevice_init(s, dev->pacer); + dev->pacer->insn_config = rtd_counter_insn_config; rtd_init_board(dev); From 6bd5e8e0a2cc6bda6ed968a1a9385bc795c96e53 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:22 +0200 Subject: [PATCH 0693/2431] staging: rtl8192e: Rename rtl8192_init Use naming schema found in other rtlwifi devices. Rename rtl8192_init to _rtl92e_init. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 52e1e27cb7b0..63bb467f6581 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1063,7 +1063,7 @@ static short rtl8192_get_channel_map(struct net_device *dev) return 0; } -static short rtl8192_init(struct net_device *dev) +static short _rtl92e_init(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -2663,7 +2663,7 @@ static int rtl8192_pci_probe(struct pci_dev *pdev, } RT_TRACE(COMP_INIT, "Driver probe completed1\n"); - if (rtl8192_init(dev) != 0) { + if (_rtl92e_init(dev) != 0) { netdev_warn(dev, "Initialization failed"); goto err_free_irq; } From 6b2aaeaed490172390314ab41860c2911a711c51 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:23 +0200 Subject: [PATCH 0694/2431] staging: rtl8192e: Rename rtl8192_init_priv_constant Use naming schema found in other rtlwifi devices. Rename rtl8192_init_priv_constant to _rtl92e_init_priv_constant. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 63bb467f6581..fe01a90a2ff0 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -888,7 +888,7 @@ static void rtl8192_init_priv_handler(struct net_device *dev) priv->rtllib->ScanOperationBackupHandler = rtl92e_scan_op_backup; } -static void rtl8192_init_priv_constant(struct net_device *dev) +static void _rtl92e_init_priv_constant(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *) @@ -1070,7 +1070,7 @@ static short _rtl92e_init(struct net_device *dev) memset(&(priv->stats), 0, sizeof(struct rt_stats)); rtl8192_init_priv_handler(dev); - rtl8192_init_priv_constant(dev); + _rtl92e_init_priv_constant(dev); rtl8192_init_priv_variable(dev); rtl8192_init_priv_lock(priv); rtl8192_init_priv_task(dev); From b8d0dc3c272a051e4892e10a8a8158d5aaf65850 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:24 +0200 Subject: [PATCH 0695/2431] staging: rtl8192e: Rename rtl8192_init_priv_handler Use naming schema found in other rtlwifi devices. Rename rtl8192_init_priv_handler to _rtl92e_init_priv_handler. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index fe01a90a2ff0..b4bc44c7eccf 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -848,7 +848,7 @@ static int rtl8192_sta_down(struct net_device *dev, bool shutdownrf) return 0; } -static void rtl8192_init_priv_handler(struct net_device *dev) +static void _rtl92e_init_priv_handler(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1069,7 +1069,7 @@ static short _rtl92e_init(struct net_device *dev) memset(&(priv->stats), 0, sizeof(struct rt_stats)); - rtl8192_init_priv_handler(dev); + _rtl92e_init_priv_handler(dev); _rtl92e_init_priv_constant(dev); rtl8192_init_priv_variable(dev); rtl8192_init_priv_lock(priv); From 529c66c1f11805117498dffd2cad758a8c2b5ace Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:25 +0200 Subject: [PATCH 0696/2431] staging: rtl8192e: Rename rtl8192_init_priv_lock Use naming schema found in other rtlwifi devices. Rename rtl8192_init_priv_lock to _rtl92e_init_priv_lock. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index b4bc44c7eccf..c5c9f2cb533f 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -991,7 +991,7 @@ static void rtl8192_init_priv_variable(struct net_device *dev) skb_queue_head_init(&priv->rtllib->skb_aggQ[i]); } -static void rtl8192_init_priv_lock(struct r8192_priv *priv) +static void _rtl92e_init_priv_lock(struct r8192_priv *priv) { spin_lock_init(&priv->tx_lock); spin_lock_init(&priv->irq_th_lock); @@ -1072,7 +1072,7 @@ static short _rtl92e_init(struct net_device *dev) _rtl92e_init_priv_handler(dev); _rtl92e_init_priv_constant(dev); rtl8192_init_priv_variable(dev); - rtl8192_init_priv_lock(priv); + _rtl92e_init_priv_lock(priv); rtl8192_init_priv_task(dev); priv->ops->get_eeprom_size(dev); priv->ops->init_adapter_variable(dev); From 4ab2a8feae0ac4a473805881c75f9b99ef907c08 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:26 +0200 Subject: [PATCH 0697/2431] staging: rtl8192e: Rename rtl8192_init_priv_task Use naming schema found in other rtlwifi devices. Rename rtl8192_init_priv_task to _rtl92e_init_priv_task. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index c5c9f2cb533f..02609a472154 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1002,7 +1002,7 @@ static void _rtl92e_init_priv_lock(struct r8192_priv *priv) mutex_init(&priv->mutex); } -static void rtl8192_init_priv_task(struct net_device *dev) +static void _rtl92e_init_priv_task(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1073,7 +1073,7 @@ static short _rtl92e_init(struct net_device *dev) _rtl92e_init_priv_constant(dev); rtl8192_init_priv_variable(dev); _rtl92e_init_priv_lock(priv); - rtl8192_init_priv_task(dev); + _rtl92e_init_priv_task(dev); priv->ops->get_eeprom_size(dev); priv->ops->init_adapter_variable(dev); rtl8192_get_channel_map(dev); From 414f401f60e0b11f2fd81884125d5ca7e63a04ff Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:27 +0200 Subject: [PATCH 0698/2431] staging: rtl8192e: Rename rtl8192_init_priv_variable Use naming schema found in other rtlwifi devices. Rename rtl8192_init_priv_variable to _rtl92e_init_priv_variable. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 02609a472154..b755881eea90 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -898,7 +898,7 @@ static void _rtl92e_init_priv_constant(struct net_device *dev) } -static void rtl8192_init_priv_variable(struct net_device *dev) +static void _rtl92e_init_priv_variable(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 i; @@ -1071,7 +1071,7 @@ static short _rtl92e_init(struct net_device *dev) _rtl92e_init_priv_handler(dev); _rtl92e_init_priv_constant(dev); - rtl8192_init_priv_variable(dev); + _rtl92e_init_priv_variable(dev); _rtl92e_init_priv_lock(priv); _rtl92e_init_priv_task(dev); priv->ops->get_eeprom_size(dev); From 87e01f225000cd7a8a23d2d2132300123e304b5c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:28 +0200 Subject: [PATCH 0699/2431] staging: rtl8192e: Rename rtl8192_interrupt Use naming schema found in other rtlwifi devices. Rename rtl8192_interrupt to _rtl92e_irq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index b755881eea90..4fb280c295d1 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -76,7 +76,7 @@ MODULE_DEVICE_TABLE(pci, rtl8192_pci_id_tbl); static int rtl8192_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id); static void rtl8192_pci_disconnect(struct pci_dev *pdev); -static irqreturn_t rtl8192_interrupt(int irq, void *netdev); +static irqreturn_t _rtl92e_irq(int irq, void *netdev); static struct pci_driver rtl8192_pci_driver = { .name = DRV_NAME, /* Driver name */ @@ -1089,8 +1089,7 @@ static short _rtl92e_init(struct net_device *dev) (unsigned long)dev); rtl92e_irq_disable(dev); - if (request_irq(dev->irq, rtl8192_interrupt, IRQF_SHARED, - dev->name, dev)) { + if (request_irq(dev->irq, _rtl92e_irq, IRQF_SHARED, dev->name, dev)) { netdev_err(dev, "Error allocating IRQ %d", dev->irq); return -1; } @@ -2414,7 +2413,7 @@ out: } -static irqreturn_t rtl8192_interrupt(int irq, void *netdev) +static irqreturn_t _rtl92e_irq(int irq, void *netdev) { struct net_device *dev = (struct net_device *) netdev; struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); From 2940405b2bc47adcf8d4490f2ab7747d51014b09 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:29 +0200 Subject: [PATCH 0700/2431] staging: rtl8192e: Rename rtl8192_irq_rx_tasklet Use naming schema found in other rtlwifi devices. Rename rtl8192_irq_rx_tasklet to _rtl92e_irq_rx_tasklet. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 4fb280c295d1..7138f3285ce9 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -97,7 +97,7 @@ static void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb); static short rtl8192_tx(struct net_device *dev, struct sk_buff *skb); static short rtl8192_pci_initdescring(struct net_device *dev); static void rtl8192_irq_tx_tasklet(struct r8192_priv *priv); -static void rtl8192_irq_rx_tasklet(struct r8192_priv *priv); +static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv); static void rtl8192_cancel_deferred_work(struct r8192_priv *priv); static int _rtl8192_up(struct net_device *dev, bool is_silent_reset); static int rtl8192_up(struct net_device *dev); @@ -1024,7 +1024,7 @@ static void _rtl92e_init_priv_task(struct net_device *dev) INIT_DELAYED_WORK_RSL(&priv->rtllib->hw_sleep_wq, (void *) rtl92e_hw_sleep_wq, dev); tasklet_init(&priv->irq_rx_tasklet, - (void(*)(unsigned long))rtl8192_irq_rx_tasklet, + (void(*)(unsigned long))_rtl92e_irq_rx_tasklet, (unsigned long)priv); tasklet_init(&priv->irq_tx_tasklet, (void(*)(unsigned long))rtl8192_irq_tx_tasklet, @@ -2161,7 +2161,7 @@ static void rtl8192_irq_tx_tasklet(struct r8192_priv *priv) rtl8192_tx_resume(priv->rtllib->dev); } -static void rtl8192_irq_rx_tasklet(struct r8192_priv *priv) +static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv) { rtl8192_rx_normal(priv->rtllib->dev); From a2743b2cd662ff4f621ef2ab6693b90aa19b905d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:30 +0200 Subject: [PATCH 0701/2431] staging: rtl8192e: Rename rtl8192_irq_tx_tasklet Use naming schema found in other rtlwifi devices. Rename rtl8192_irq_tx_tasklet to _rtl92e_irq_tx_tasklet. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 7138f3285ce9..8a51d5f8970e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -96,7 +96,7 @@ static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); static void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb); static short rtl8192_tx(struct net_device *dev, struct sk_buff *skb); static short rtl8192_pci_initdescring(struct net_device *dev); -static void rtl8192_irq_tx_tasklet(struct r8192_priv *priv); +static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv); static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv); static void rtl8192_cancel_deferred_work(struct r8192_priv *priv); static int _rtl8192_up(struct net_device *dev, bool is_silent_reset); @@ -1027,7 +1027,7 @@ static void _rtl92e_init_priv_task(struct net_device *dev) (void(*)(unsigned long))_rtl92e_irq_rx_tasklet, (unsigned long)priv); tasklet_init(&priv->irq_tx_tasklet, - (void(*)(unsigned long))rtl8192_irq_tx_tasklet, + (void(*)(unsigned long))_rtl92e_irq_tx_tasklet, (unsigned long)priv); tasklet_init(&priv->irq_prepare_beacon_tasklet, (void(*)(unsigned long))rtl8192_prepare_beacon, @@ -2156,7 +2156,7 @@ static void rtl8192_tx_resume(struct net_device *dev) } } -static void rtl8192_irq_tx_tasklet(struct r8192_priv *priv) +static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv) { rtl8192_tx_resume(priv->rtllib->dev); } From 09c26de711311ed80c829f8e2c9b06f05b7657c3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:48 +0200 Subject: [PATCH 0702/2431] staging: rtl8192e: Rename rtl8192_ioctl Use naming schema found in other rtlwifi devices. Rename rtl8192_ioctl to _rtl92e_ioctl. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 8a51d5f8970e..df2104556323 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2290,7 +2290,7 @@ static int r8192_set_mac_adr(struct net_device *dev, void *mac) } /* based on ipw2200 driver */ -static int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) +static int _rtl92e_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); struct iwreq *wrq = (struct iwreq *)rq; @@ -2555,7 +2555,7 @@ static const struct net_device_ops rtl8192_netdev_ops = { .ndo_open = rtl8192_open, .ndo_stop = rtl8192_close, .ndo_tx_timeout = rtl8192_tx_timeout, - .ndo_do_ioctl = rtl8192_ioctl, + .ndo_do_ioctl = _rtl92e_ioctl, .ndo_set_rx_mode = r8192_set_multicast, .ndo_set_mac_address = r8192_set_mac_adr, .ndo_validate_addr = eth_validate_addr, From 27d673b0bc5bcd4c8e26ab81434af805e7650e02 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:49 +0200 Subject: [PATCH 0703/2431] staging: rtl8192e: Rename rtl8192_open Use naming schema found in other rtlwifi devices. Rename rtl8192_open to _rtl92e_open. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index df2104556323..7d9a2332deef 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2188,7 +2188,7 @@ static int _rtl8192_up(struct net_device *dev, bool is_silent_reset) return 0; } -static int rtl8192_open(struct net_device *dev) +static int _rtl92e_open(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); int ret; @@ -2552,7 +2552,7 @@ done: ---------------------------- PCI_STUFF--------------------------- *****************************************************************************/ static const struct net_device_ops rtl8192_netdev_ops = { - .ndo_open = rtl8192_open, + .ndo_open = _rtl92e_open, .ndo_stop = rtl8192_close, .ndo_tx_timeout = rtl8192_tx_timeout, .ndo_do_ioctl = _rtl92e_ioctl, From 27cbba60e045d3e71e726d6f0781ed3ec2b2ce5c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:50 +0200 Subject: [PATCH 0704/2431] staging: rtl8192e: Rename rtl8192_close Use naming schema found in other rtlwifi devices. Rename rtl8192_close to _rtl92e_close. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 7d9a2332deef..3862ebf4d54e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2210,7 +2210,7 @@ static int rtl8192_up(struct net_device *dev) } -static int rtl8192_close(struct net_device *dev) +static int _rtl92e_close(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); int ret; @@ -2553,7 +2553,7 @@ done: *****************************************************************************/ static const struct net_device_ops rtl8192_netdev_ops = { .ndo_open = _rtl92e_open, - .ndo_stop = rtl8192_close, + .ndo_stop = _rtl92e_close, .ndo_tx_timeout = rtl8192_tx_timeout, .ndo_do_ioctl = _rtl92e_ioctl, .ndo_set_rx_mode = r8192_set_multicast, From 33bec9bd9bd68c8c3fd99bbf0fadbe844e173762 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:51 +0200 Subject: [PATCH 0705/2431] staging: rtl8192e: Rename rtl8192_down Use naming schema found in other rtlwifi devices. Rename rtl8192_down to _rtl92e_down. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 3862ebf4d54e..4d6cf521477c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -101,7 +101,7 @@ static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv); static void rtl8192_cancel_deferred_work(struct r8192_priv *priv); static int _rtl8192_up(struct net_device *dev, bool is_silent_reset); static int rtl8192_up(struct net_device *dev); -static int rtl8192_down(struct net_device *dev, bool shutdownrf); +static int _rtl92e_down(struct net_device *dev, bool shutdownrf); static void rtl8192_restart(void *data); /**************************************************************************** @@ -2222,7 +2222,7 @@ static int _rtl92e_close(struct net_device *dev) down(&priv->wx_sem); - ret = rtl8192_down(dev, true); + ret = _rtl92e_down(dev, true); up(&priv->wx_sem); @@ -2230,7 +2230,7 @@ static int _rtl92e_close(struct net_device *dev) } -static int rtl8192_down(struct net_device *dev, bool shutdownrf) +static int _rtl92e_down(struct net_device *dev, bool shutdownrf) { if (rtl8192_sta_down(dev, shutdownrf) == -1) return -1; @@ -2708,7 +2708,7 @@ static void rtl8192_pci_disconnect(struct pci_dev *pdev) del_timer_sync(&priv->gpio_polling_timer); cancel_delayed_work(&priv->gpio_change_rf_wq); priv->polling_timer_on = 0; - rtl8192_down(dev, true); + _rtl92e_down(dev, true); rtl92e_dm_deinit(dev); if (priv->pFirmware) { vfree(priv->pFirmware); From 78e67df3f3d58ae5fced1cee24024d2c337e111b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:52 +0200 Subject: [PATCH 0706/2431] staging: rtl8192e: Rename rtl8192_restart Use naming schema found in other rtlwifi devices. Rename rtl8192_restart to _rtl92e_restart. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 4d6cf521477c..d625d8933427 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -102,7 +102,7 @@ static void rtl8192_cancel_deferred_work(struct r8192_priv *priv); static int _rtl8192_up(struct net_device *dev, bool is_silent_reset); static int rtl8192_up(struct net_device *dev); static int _rtl92e_down(struct net_device *dev, bool shutdownrf); -static void rtl8192_restart(void *data); +static void _rtl92e_restart(void *data); /**************************************************************************** -----------------------------IO STUFF------------------------- @@ -1007,7 +1007,7 @@ static void _rtl92e_init_priv_task(struct net_device *dev) struct r8192_priv *priv = rtllib_priv(dev); priv->priv_wq = create_workqueue(DRV_NAME); - INIT_WORK_RSL(&priv->reset_wq, (void *)rtl8192_restart, dev); + INIT_WORK_RSL(&priv->reset_wq, (void *)_rtl92e_restart, dev); INIT_WORK_RSL(&priv->rtllib->ips_leave_wq, (void *)rtl92e_ips_leave_wq, dev); INIT_DELAYED_WORK_RSL(&priv->watch_dog_wq, @@ -2250,7 +2250,7 @@ void rtl92e_commit(struct net_device *dev) _rtl8192_up(dev, false); } -static void rtl8192_restart(void *data) +static void _rtl92e_restart(void *data) { struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, reset_wq); From b1665a67be1d39a32c2a023f32c9f74279bd1508 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:53 +0200 Subject: [PATCH 0707/2431] staging: rtl8192e: Rename rtl8192_up Use naming schema found in other rtlwifi devices. Rename rtl8192_up to _rtl92e_try_up. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index d625d8933427..20f4daafd757 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -100,7 +100,7 @@ static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv); static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv); static void rtl8192_cancel_deferred_work(struct r8192_priv *priv); static int _rtl8192_up(struct net_device *dev, bool is_silent_reset); -static int rtl8192_up(struct net_device *dev); +static int _rtl92e_try_up(struct net_device *dev); static int _rtl92e_down(struct net_device *dev, bool shutdownrf); static void _rtl92e_restart(void *data); @@ -2194,13 +2194,13 @@ static int _rtl92e_open(struct net_device *dev) int ret; down(&priv->wx_sem); - ret = rtl8192_up(dev); + ret = _rtl92e_try_up(dev); up(&priv->wx_sem); return ret; } -static int rtl8192_up(struct net_device *dev) +static int _rtl92e_try_up(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From 81524bbc17ca25f5865f0e6d615d85ff29b8dfb0 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:54 +0200 Subject: [PATCH 0708/2431] staging: rtl8192e: Rename _rtl8192_up Use naming schema found in other rtlwifi devices. Rename _rtl8192_up to _rtl92e_up. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 20f4daafd757..14a343478227 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -99,7 +99,7 @@ static short rtl8192_pci_initdescring(struct net_device *dev); static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv); static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv); static void rtl8192_cancel_deferred_work(struct r8192_priv *priv); -static int _rtl8192_up(struct net_device *dev, bool is_silent_reset); +static int _rtl92e_up(struct net_device *dev, bool is_silent_reset); static int _rtl92e_try_up(struct net_device *dev); static int _rtl92e_down(struct net_device *dev, bool shutdownrf); static void _rtl92e_restart(void *data); @@ -1311,7 +1311,7 @@ RESET_START: RT_TRACE(COMP_RESET, "%s():<===========up process start\n", __func__); - reset_status = _rtl8192_up(dev, true); + reset_status = _rtl92e_up(dev, true); RT_TRACE(COMP_RESET, "%s():<===========up process is finished\n", __func__); @@ -2181,7 +2181,7 @@ static void rtl8192_cancel_deferred_work(struct r8192_priv *priv) cancel_work_sync(&priv->qos_activate); } -static int _rtl8192_up(struct net_device *dev, bool is_silent_reset) +static int _rtl92e_up(struct net_device *dev, bool is_silent_reset) { if (_rtl8192_sta_up(dev, is_silent_reset) == -1) return -1; @@ -2206,7 +2206,7 @@ static int _rtl92e_try_up(struct net_device *dev) if (priv->up == 1) return -1; - return _rtl8192_up(dev, false); + return _rtl92e_up(dev, false); } @@ -2247,7 +2247,7 @@ void rtl92e_commit(struct net_device *dev) rtllib_softmac_stop_protocol(priv->rtllib, 0, true); rtl92e_irq_disable(dev); priv->ops->stop_adapter(dev, true); - _rtl8192_up(dev, false); + _rtl92e_up(dev, false); } static void _rtl92e_restart(void *data) From 4a85182159f315753ac2cc418bca2530454b1add Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:55 +0200 Subject: [PATCH 0709/2431] staging: rtl8192e: Rename rtl8192_pci_disconnect Use naming schema found in other rtlwifi devices. Rename rtl8192_pci_disconnect to _rtl92e_pci_disconnect. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 14a343478227..e9f0e83e7f33 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -75,14 +75,14 @@ MODULE_DEVICE_TABLE(pci, rtl8192_pci_id_tbl); static int rtl8192_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id); -static void rtl8192_pci_disconnect(struct pci_dev *pdev); +static void _rtl92e_pci_disconnect(struct pci_dev *pdev); static irqreturn_t _rtl92e_irq(int irq, void *netdev); static struct pci_driver rtl8192_pci_driver = { .name = DRV_NAME, /* Driver name */ .id_table = rtl8192_pci_id_tbl, /* PCI_ID table */ .probe = rtl8192_pci_probe, /* probe fn */ - .remove = rtl8192_pci_disconnect, /* remove fn */ + .remove = _rtl92e_pci_disconnect, /* remove fn */ .suspend = rtl92e_suspend, /* PM suspend fn */ .resume = rtl92e_resume, /* PM resume fn */ }; @@ -2694,7 +2694,7 @@ err_pci_disable: return err; } -static void rtl8192_pci_disconnect(struct pci_dev *pdev) +static void _rtl92e_pci_disconnect(struct pci_dev *pdev) { struct net_device *dev = pci_get_drvdata(pdev); struct r8192_priv *priv; From 197917a89083acb45144bd6c203dbd2e645dc288 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:56 +0200 Subject: [PATCH 0710/2431] staging: rtl8192e: Rename rtl8192_pci_initdescring Use naming schema found in other rtlwifi devices. Rename rtl8192_pci_initdescring to _rtl92e_pci_initdescring. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index e9f0e83e7f33..ae0d00fa39c8 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -95,7 +95,7 @@ static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); static void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb); static short rtl8192_tx(struct net_device *dev, struct sk_buff *skb); -static short rtl8192_pci_initdescring(struct net_device *dev); +static short _rtl92e_pci_initdescring(struct net_device *dev); static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv); static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv); static void rtl8192_cancel_deferred_work(struct r8192_priv *priv); @@ -1097,7 +1097,7 @@ static short _rtl92e_init(struct net_device *dev) priv->irq = dev->irq; RT_TRACE(COMP_INIT, "IRQ %d\n", dev->irq); - if (rtl8192_pci_initdescring(dev) != 0) { + if (_rtl92e_pci_initdescring(dev) != 0) { netdev_err(dev, "Endopoints initialization failed"); free_irq(dev->irq, dev); return -1; @@ -1888,7 +1888,7 @@ static int rtl8192_alloc_tx_desc_ring(struct net_device *dev, return 0; } -static short rtl8192_pci_initdescring(struct net_device *dev) +static short _rtl92e_pci_initdescring(struct net_device *dev) { u32 ret; int i; From d96bde71d87651bd1ad243b50e5c9e6857d611e5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:57 +0200 Subject: [PATCH 0711/2431] staging: rtl8192e: Rename rtl8192_pci_module_exit Use naming schema found in other rtlwifi devices. Rename rtl8192_pci_module_exit to _rtl92e_pci_module_exit. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index ae0d00fa39c8..f5dbb494afd2 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2800,7 +2800,7 @@ static int __init rtl8192_pci_module_init(void) return 0; } -static void __exit rtl8192_pci_module_exit(void) +static void __exit _rtl92e_pci_module_exit(void) { pci_unregister_driver(&rtl8192_pci_driver); @@ -2823,7 +2823,7 @@ void rtl92e_check_rfctrl_gpio_timer(unsigned long data) ------------------- module init / exit stubs ---------------- ****************************************************************************/ module_init(rtl8192_pci_module_init); -module_exit(rtl8192_pci_module_exit); +module_exit(_rtl92e_pci_module_exit); MODULE_DESCRIPTION("Linux driver for Realtek RTL819x WiFi cards"); MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR); From e482fb542c3bf9059bcc75090b591997701fa1a2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:58 +0200 Subject: [PATCH 0712/2431] staging: rtl8192e: Rename rtl8192_pci_module_init Use naming schema found in other rtlwifi devices. Rename rtl8192_pci_module_init to _rtl92e_pci_module_init. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index f5dbb494afd2..521a911edd52 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2788,7 +2788,7 @@ bool rtl92e_disable_nic(struct net_device *dev) return true; } -static int __init rtl8192_pci_module_init(void) +static int __init _rtl92e_pci_module_init(void) { pr_info("\nLinux kernel driver for RTL8192E WLAN cards\n"); pr_info("Copyright (c) 2007-2008, Realsil Wlan Driver\n"); @@ -2822,7 +2822,7 @@ void rtl92e_check_rfctrl_gpio_timer(unsigned long data) /*************************************************************************** ------------------- module init / exit stubs ---------------- ****************************************************************************/ -module_init(rtl8192_pci_module_init); +module_init(_rtl92e_pci_module_init); module_exit(_rtl92e_pci_module_exit); MODULE_DESCRIPTION("Linux driver for Realtek RTL819x WiFi cards"); From 93cc57b5d492559c93674ec713b1f55186728a38 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:59 +0200 Subject: [PATCH 0713/2431] staging: rtl8192e: Rename rtl8192_pci_probe Use naming schema found in other rtlwifi devices. Rename rtl8192_pci_probe to _rtl92e_pci_probe. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 521a911edd52..19ba55ae5072 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -73,15 +73,15 @@ static struct pci_device_id rtl8192_pci_id_tbl[] = { MODULE_DEVICE_TABLE(pci, rtl8192_pci_id_tbl); -static int rtl8192_pci_probe(struct pci_dev *pdev, - const struct pci_device_id *id); +static int _rtl92e_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id); static void _rtl92e_pci_disconnect(struct pci_dev *pdev); static irqreturn_t _rtl92e_irq(int irq, void *netdev); static struct pci_driver rtl8192_pci_driver = { .name = DRV_NAME, /* Driver name */ .id_table = rtl8192_pci_id_tbl, /* PCI_ID table */ - .probe = rtl8192_pci_probe, /* probe fn */ + .probe = _rtl92e_pci_probe, /* probe fn */ .remove = _rtl92e_pci_disconnect, /* remove fn */ .suspend = rtl92e_suspend, /* PM suspend fn */ .resume = rtl92e_resume, /* PM resume fn */ @@ -2563,8 +2563,8 @@ static const struct net_device_ops rtl8192_netdev_ops = { .ndo_start_xmit = rtllib_xmit, }; -static int rtl8192_pci_probe(struct pci_dev *pdev, - const struct pci_device_id *id) +static int _rtl92e_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) { unsigned long ioaddr = 0; struct net_device *dev = NULL; From 9d148965ebe43feb7f70f60cadbc80cbc55d17f5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:00 +0200 Subject: [PATCH 0714/2431] staging: rtl8192e: Rename rtl8192_alloc_rx_desc_ring Use naming schema found in other rtlwifi devices. Rename rtl8192_alloc_rx_desc_ring to _rtl92e_alloc_rx_ring. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 19ba55ae5072..122373aa95e2 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1812,7 +1812,7 @@ static short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) return 0; } -static short rtl8192_alloc_rx_desc_ring(struct net_device *dev) +static short _rtl92e_alloc_rx_ring(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); struct rx_desc *entry = NULL; @@ -1894,7 +1894,7 @@ static short _rtl92e_pci_initdescring(struct net_device *dev) int i; struct r8192_priv *priv = rtllib_priv(dev); - ret = rtl8192_alloc_rx_desc_ring(dev); + ret = _rtl92e_alloc_rx_ring(dev); if (ret) return ret; From bf1ddf24d8a86c827fd079b164cba4694dcc47fc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:01 +0200 Subject: [PATCH 0715/2431] staging: rtl8192e: Rename rtl8192_alloc_tx_desc_ring Use naming schema found in other rtlwifi devices. Rename rtl8192_alloc_tx_desc_ring to _rtl92e_alloc_tx_ring. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 122373aa95e2..e456e189c0ac 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1860,8 +1860,8 @@ static short _rtl92e_alloc_rx_ring(struct net_device *dev) return 0; } -static int rtl8192_alloc_tx_desc_ring(struct net_device *dev, - unsigned int prio, unsigned int entries) +static int _rtl92e_alloc_tx_ring(struct net_device *dev, unsigned int prio, + unsigned int entries) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); struct tx_desc *ring; @@ -1899,7 +1899,7 @@ static short _rtl92e_pci_initdescring(struct net_device *dev) return ret; for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) { - ret = rtl8192_alloc_tx_desc_ring(dev, i, priv->txringcount); + ret = _rtl92e_alloc_tx_ring(dev, i, priv->txringcount); if (ret) goto err_free_rings; } From 694f9d30f7ec55e3b1f0b3418b4c472e4b7e38f8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:02 +0200 Subject: [PATCH 0716/2431] staging: rtl8192e: Rename rtl8192_free_rx_ring Use naming schema found in other rtlwifi devices. Rename rtl8192_free_rx_ring to _rtl92e_free_rx_ring. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index e456e189c0ac..7690577f5ede 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1574,7 +1574,7 @@ void rtl92e_tx_enable(struct net_device *dev) } -static void rtl8192_free_rx_ring(struct net_device *dev) +static void _rtl92e_free_rx_ring(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); int i, rx_queue_idx; @@ -1907,7 +1907,7 @@ static short _rtl92e_pci_initdescring(struct net_device *dev) return 0; err_free_rings: - rtl8192_free_rx_ring(dev); + _rtl92e_free_rx_ring(dev); for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) if (priv->tx_ring[i].desc) rtl8192_free_tx_ring(dev, i); @@ -2715,7 +2715,7 @@ static void _rtl92e_pci_disconnect(struct pci_dev *pdev) priv->pFirmware = NULL; } destroy_workqueue(priv->priv_wq); - rtl8192_free_rx_ring(dev); + _rtl92e_free_rx_ring(dev); for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) rtl8192_free_tx_ring(dev, i); From ebc36ecde07835b2455b4cf7af4139bcad3c4815 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:03 +0200 Subject: [PATCH 0717/2431] staging: rtl8192e: Rename rtl8192_free_tx_ring Use naming schema found in other rtlwifi devices. Rename rtl8192_free_tx_ring to _rtl92e_free_tx_ring. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 7690577f5ede..e6680c77b45a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1602,7 +1602,7 @@ static void _rtl92e_free_rx_ring(struct net_device *dev) } } -static void rtl8192_free_tx_ring(struct net_device *dev, unsigned int prio) +static void _rtl92e_free_tx_ring(struct net_device *dev, unsigned int prio) { struct r8192_priv *priv = rtllib_priv(dev); struct rtl8192_tx_ring *ring = &priv->tx_ring[prio]; @@ -1910,7 +1910,7 @@ err_free_rings: _rtl92e_free_rx_ring(dev); for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) if (priv->tx_ring[i].desc) - rtl8192_free_tx_ring(dev, i); + _rtl92e_free_tx_ring(dev, i); return 1; } @@ -2717,7 +2717,7 @@ static void _rtl92e_pci_disconnect(struct pci_dev *pdev) destroy_workqueue(priv->priv_wq); _rtl92e_free_rx_ring(dev); for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) - rtl8192_free_tx_ring(dev, i); + _rtl92e_free_tx_ring(dev, i); if (priv->irq) { dev_info(&pdev->dev, "Freeing irq %d\n", dev->irq); From 374a3c5a5d68cd88dd757e815c59edcb3baa56f3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:04 +0200 Subject: [PATCH 0718/2431] staging: rtl8192e: Rename rtl8192_tx Use naming schema found in other rtlwifi devices. Rename rtl8192_tx to _rtl92e_tx. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index e6680c77b45a..3adb406b7ee6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -94,7 +94,7 @@ static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate); static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); static void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb); -static short rtl8192_tx(struct net_device *dev, struct sk_buff *skb); +static short _rtl92e_tx(struct net_device *dev, struct sk_buff *skb); static short _rtl92e_pci_initdescring(struct net_device *dev); static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv); static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv); @@ -1643,7 +1643,7 @@ static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, memcpy((unsigned char *)(skb->cb), &dev, sizeof(dev)); skb_push(skb, priv->rtllib->tx_headroom); - ret = rtl8192_tx(dev, skb); + ret = _rtl92e_tx(dev, skb); if (ret != 0) kfree_skb(skb); @@ -1681,7 +1681,7 @@ static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) tcb_desc->bTxUseDriverAssingedRate = 1; tcb_desc->bTxEnableFwCalcDur = 1; skb_push(skb, priv->rtllib->tx_headroom); - ret = rtl8192_tx(dev, skb); + ret = _rtl92e_tx(dev, skb); if (ret != 0) kfree_skb(skb); return ret; @@ -1736,7 +1736,7 @@ static void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb) spin_unlock_irqrestore(&priv->irq_th_lock, flags); } -static short rtl8192_tx(struct net_device *dev, struct sk_buff *skb) +static short _rtl92e_tx(struct net_device *dev, struct sk_buff *skb) { struct r8192_priv *priv = rtllib_priv(dev); struct rtl8192_tx_ring *ring; From 98208f968c56e0918babab40f5f7a01645f1d7b6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:05 +0200 Subject: [PATCH 0719/2431] staging: rtl8192e: Rename rtl8192_tx_cmd Use naming schema found in other rtlwifi devices. Rename rtl8192_tx_cmd to _rtl92e_tx_cmd. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 3adb406b7ee6..7be85fa0122d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -93,7 +93,7 @@ static void watch_dog_timer_callback(unsigned long data); static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate); static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); -static void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb); +static void _rtl92e_tx_cmd(struct net_device *dev, struct sk_buff *skb); static short _rtl92e_tx(struct net_device *dev, struct sk_buff *skb); static short _rtl92e_pci_initdescring(struct net_device *dev); static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv); @@ -1672,7 +1672,7 @@ static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) memcpy((unsigned char *)(skb->cb), &dev, sizeof(dev)); if (queue_index == TXCMD_QUEUE) { - rtl8192_tx_cmd(dev, skb); + _rtl92e_tx_cmd(dev, skb); return 0; } @@ -1713,7 +1713,7 @@ static void rtl8192_tx_isr(struct net_device *dev, int prio) tasklet_schedule(&priv->irq_tx_tasklet); } -static void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb) +static void _rtl92e_tx_cmd(struct net_device *dev, struct sk_buff *skb) { struct r8192_priv *priv = rtllib_priv(dev); struct rtl8192_tx_ring *ring; From 7effc87bcb52d0b72a2763a247568b44025466d4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:06 +0200 Subject: [PATCH 0720/2431] staging: rtl8192e: Rename rtl8192_tx_isr Use naming schema found in other rtlwifi devices. Rename rtl8192_tx_isr to _rtl92e_tx_isr. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 7be85fa0122d..b90bfb88924c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1687,7 +1687,7 @@ static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) return ret; } -static void rtl8192_tx_isr(struct net_device *dev, int prio) +static void _rtl92e_tx_isr(struct net_device *dev, int prio) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); @@ -2464,7 +2464,7 @@ static irqreturn_t _rtl92e_irq(int irq, void *netdev) if (inta & IMR_MGNTDOK) { RT_TRACE(COMP_INTR, "Manage ok interrupt!\n"); priv->stats.txmanageokint++; - rtl8192_tx_isr(dev, MGNT_QUEUE); + _rtl92e_tx_isr(dev, MGNT_QUEUE); spin_unlock_irqrestore(&priv->irq_th_lock, flags); if (priv->rtllib->ack_tx_to_ieee) { if (rtl8192_is_tx_queue_empty(dev)) { @@ -2477,11 +2477,11 @@ static irqreturn_t _rtl92e_irq(int irq, void *netdev) if (inta & IMR_COMDOK) { priv->stats.txcmdpktokint++; - rtl8192_tx_isr(dev, TXCMD_QUEUE); + _rtl92e_tx_isr(dev, TXCMD_QUEUE); } if (inta & IMR_HIGHDOK) - rtl8192_tx_isr(dev, HIGH_QUEUE); + _rtl92e_tx_isr(dev, HIGH_QUEUE); if (inta & IMR_ROK) { priv->stats.rxint++; @@ -2515,28 +2515,28 @@ static irqreturn_t _rtl92e_irq(int irq, void *netdev) RT_TRACE(COMP_INTR, "BK Tx OK interrupt!\n"); priv->stats.txbkokint++; priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++; - rtl8192_tx_isr(dev, BK_QUEUE); + _rtl92e_tx_isr(dev, BK_QUEUE); } if (inta & IMR_BEDOK) { RT_TRACE(COMP_INTR, "BE TX OK interrupt!\n"); priv->stats.txbeokint++; priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++; - rtl8192_tx_isr(dev, BE_QUEUE); + _rtl92e_tx_isr(dev, BE_QUEUE); } if (inta & IMR_VIDOK) { RT_TRACE(COMP_INTR, "VI TX OK interrupt!\n"); priv->stats.txviokint++; priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++; - rtl8192_tx_isr(dev, VI_QUEUE); + _rtl92e_tx_isr(dev, VI_QUEUE); } if (inta & IMR_VODOK) { priv->stats.txvookint++; RT_TRACE(COMP_INTR, "Vo TX OK interrupt!\n"); priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++; - rtl8192_tx_isr(dev, VO_QUEUE); + _rtl92e_tx_isr(dev, VO_QUEUE); } spin_unlock_irqrestore(&priv->irq_th_lock, flags); From ac3926553248f23a46147f76d886c9e4a8b34c04 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:07 +0200 Subject: [PATCH 0721/2431] staging: rtl8192e: Rename rtl8192_tx_timeout Use naming schema found in other rtlwifi devices. Rename rtl8192_tx_timeout to _rtl92e_tx_timeout. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index b90bfb88924c..b3ebd1cbc7b3 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -282,7 +282,7 @@ static short rtl8192_check_nic_enough_desc(struct net_device *dev, int prio) return 0; } -static void rtl8192_tx_timeout(struct net_device *dev) +static void _rtl92e_tx_timeout(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -2554,7 +2554,7 @@ done: static const struct net_device_ops rtl8192_netdev_ops = { .ndo_open = _rtl92e_open, .ndo_stop = _rtl92e_close, - .ndo_tx_timeout = rtl8192_tx_timeout, + .ndo_tx_timeout = _rtl92e_tx_timeout, .ndo_do_ioctl = _rtl92e_ioctl, .ndo_set_rx_mode = r8192_set_multicast, .ndo_set_mac_address = r8192_set_mac_adr, From a67c79040e1000250b1389388be8f0b687e0e283 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:08 +0200 Subject: [PATCH 0722/2431] staging: rtl8192e: Rename rtl8192_tx_resume Use naming schema found in other rtlwifi devices. Rename rtl8192_tx_resume to _rtl92e_tx_resume. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index b3ebd1cbc7b3..cbc93b6a3821 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2139,7 +2139,7 @@ done: } -static void rtl8192_tx_resume(struct net_device *dev) +static void _rtl92e_tx_resume(struct net_device *dev) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); struct rtllib_device *ieee = priv->rtllib; @@ -2158,7 +2158,7 @@ static void rtl8192_tx_resume(struct net_device *dev) static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv) { - rtl8192_tx_resume(priv->rtllib->dev); + _rtl92e_tx_resume(priv->rtllib->dev); } static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv) From 6f8d4a7db6fecab916e6d81ae84b8a873a3f9047 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:09 +0200 Subject: [PATCH 0723/2431] staging: rtl8192e: Rename rtl8192_is_tx_queue_empty Use naming schema found in other rtlwifi devices. Rename rtl8192_is_tx_queue_empty to _rtl92e_is_tx_queue_empty. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index cbc93b6a3821..99aba40a5c24 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -87,7 +87,7 @@ static struct pci_driver rtl8192_pci_driver = { .resume = rtl92e_resume, /* PM resume fn */ }; -static short rtl8192_is_tx_queue_empty(struct net_device *dev); +static short _rtl92e_is_tx_queue_empty(struct net_device *dev); static void rtl819x_watchdog_wqcallback(void *data); static void watch_dog_timer_callback(unsigned long data); static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, @@ -869,7 +869,7 @@ static void _rtl92e_init_priv_handler(struct net_device *dev) priv->rtllib->sta_wake_up = rtl92e_hw_wakeup; priv->rtllib->enter_sleep_state = rtl92e_enter_sleep; - priv->rtllib->ps_is_queue_empty = rtl8192_is_tx_queue_empty; + priv->rtllib->ps_is_queue_empty = _rtl92e_is_tx_queue_empty; priv->rtllib->GetNmodeSupportBySecCfg = rtl92e_get_nmode_support_by_sec; priv->rtllib->GetHalfNmodeSupportByAPsHandler = @@ -1109,7 +1109,7 @@ static short _rtl92e_init(struct net_device *dev) /*************************************************************************** -------------------------------WATCHDOG STUFF--------------------------- ***************************************************************************/ -static short rtl8192_is_tx_queue_empty(struct net_device *dev) +static short _rtl92e_is_tx_queue_empty(struct net_device *dev) { int i = 0; struct r8192_priv *priv = rtllib_priv(dev); @@ -2467,7 +2467,7 @@ static irqreturn_t _rtl92e_irq(int irq, void *netdev) _rtl92e_tx_isr(dev, MGNT_QUEUE); spin_unlock_irqrestore(&priv->irq_th_lock, flags); if (priv->rtllib->ack_tx_to_ieee) { - if (rtl8192_is_tx_queue_empty(dev)) { + if (_rtl92e_is_tx_queue_empty(dev)) { priv->rtllib->ack_tx_to_ieee = 0; rtllib_ps_tx_ack(priv->rtllib, 1); } From c8d841917655f9ac978575b3c0357f1271e93e8c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:10 +0200 Subject: [PATCH 0724/2431] staging: rtl8192e: Rename rtl819x_TxCheckStuck Use naming schema found in other rtlwifi devices. Rename rtl819x_TxCheckStuck to _rtl92e_tx_check_stuck. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 99aba40a5c24..91cfbaaac522 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1126,7 +1126,7 @@ static short _rtl92e_is_tx_queue_empty(struct net_device *dev) return 1; } -static enum reset_type rtl819x_TxCheckStuck(struct net_device *dev) +static enum reset_type _rtl92e_tx_check_stuck(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 QueueID; @@ -1204,7 +1204,7 @@ static enum reset_type rtl819x_ifcheck_resetornot(struct net_device *dev) rfState = priv->rtllib->eRFPowerState; if (rfState == eRfOn) - TxResetType = rtl819x_TxCheckStuck(dev); + TxResetType = _rtl92e_tx_check_stuck(dev); if (rfState == eRfOn && (priv->rtllib->iw_mode == IW_MODE_INFRA) && From 0ba8f7c0d4aeabf2c206b2fdfd01cef28265127a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:11 +0200 Subject: [PATCH 0725/2431] staging: rtl8192e: Rename rtl8192_rx_normal Use naming schema found in other rtlwifi devices. Rename rtl8192_rx_normal to _rtl92e_rx_normal. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 91cfbaaac522..8678f95411de 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2033,7 +2033,7 @@ void rtl92e_copy_mpdu_stats(struct rtllib_rx_stats *psrc_stats, -static void rtl8192_rx_normal(struct net_device *dev) +static void _rtl92e_rx_normal(struct net_device *dev) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); struct rtllib_hdr_1addr *rtllib_hdr = NULL; @@ -2163,7 +2163,7 @@ static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv) static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv) { - rtl8192_rx_normal(priv->rtllib->dev); + _rtl92e_rx_normal(priv->rtllib->dev); rtl92e_writel(priv->rtllib->dev, INTA_MASK, rtl92e_readl(priv->rtllib->dev, INTA_MASK) | IMR_RDU); From ea2d7059f40139b39d87db2ec8a967a2fc410900 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:12 +0200 Subject: [PATCH 0726/2431] staging: rtl8192e: Rename rtl819x_RxCheckStuck Use naming schema found in other rtlwifi devices. Rename rtl819x_RxCheckStuck to _rtl92e_rx_check_stuck. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 8678f95411de..0e7a768040b9 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1182,7 +1182,7 @@ static enum reset_type _rtl92e_tx_check_stuck(struct net_device *dev) return RESET_TYPE_NORESET; } -static enum reset_type rtl819x_RxCheckStuck(struct net_device *dev) +static enum reset_type _rtl92e_rx_check_stuck(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1209,7 +1209,7 @@ static enum reset_type rtl819x_ifcheck_resetornot(struct net_device *dev) if (rfState == eRfOn && (priv->rtllib->iw_mode == IW_MODE_INFRA) && (priv->rtllib->state == RTLLIB_LINKED)) - RxResetType = rtl819x_RxCheckStuck(dev); + RxResetType = _rtl92e_rx_check_stuck(dev); if (TxResetType == RESET_TYPE_NORMAL || RxResetType == RESET_TYPE_NORMAL) { From 01d5f56691774b08aa04156ec2c57cfb5c34bbae Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:13 +0200 Subject: [PATCH 0727/2431] staging: rtl8192e: Rename HwRateToMRate90 Use naming schema found in other rtlwifi devices. Rename HwRateToMRate90 to _rtl92e_rate_hw_to_mgn. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 353e3fedb79e..a8530525e50a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1324,7 +1324,7 @@ void rtl92e_fill_tx_cmd_desc(struct net_device *dev, struct tx_desc_cmd *entry, entry->OWN = 1; } -static u8 HwRateToMRate90(bool bIsHT, u8 rate) +static u8 _rtl92e_rate_hw_to_mgn(bool bIsHT, u8 rate) { u8 ret_rate = 0x02; @@ -1369,7 +1369,7 @@ static u8 HwRateToMRate90(bool bIsHT, u8 rate) default: RT_TRACE(COMP_RECV, - "HwRateToMRate90(): Non supportedRate [%x], bIsHT = %d!!!\n", + "_rtl92e_rate_hw_to_mgn(): Non supportedRate [%x], bIsHT = %d!!!\n", rate, bIsHT); break; } @@ -1430,7 +1430,7 @@ static u8 HwRateToMRate90(bool bIsHT, u8 rate) default: RT_TRACE(COMP_RECV, - "HwRateToMRate90(): Non supported Rate [%x], bIsHT = %d!!!\n", + "_rtl92e_rate_hw_to_mgn(): Non supported Rate [%x], bIsHT = %d!!!\n", rate, bIsHT); break; } @@ -2054,8 +2054,8 @@ bool rtl92e_get_rx_stats(struct net_device *dev, struct rtllib_rx_stats *stats, pDrvInfo = (struct rx_fwinfo *)(skb->data + stats->RxBufShift); - stats->rate = HwRateToMRate90((bool)pDrvInfo->RxHT, - (u8)pDrvInfo->RxRate); + stats->rate = _rtl92e_rate_hw_to_mgn((bool)pDrvInfo->RxHT, + (u8)pDrvInfo->RxRate); stats->bShortPreamble = pDrvInfo->SPLCP; rtl8192_UpdateReceivedRateHistogramStatistics(dev, stats); From 615c8d8d534d58b3f0c35c28b9e6665c8227a54a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:14 +0200 Subject: [PATCH 0728/2431] staging: rtl8192e: Rename MRateToHwRate8190Pci Use naming schema found in other rtlwifi devices. Rename MRateToHwRate8190Pci to _rtl92e_rate_mgn_to_hw. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index a8530525e50a..d0a740c9dbde 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1033,7 +1033,7 @@ void rtl92e_set_monitor_mode(struct net_device *dev, bool bAllowAllDA, rtl92e_writel(dev, RCR, priv->ReceiveConfig); } -static u8 MRateToHwRate8190Pci(u8 rate) +static u8 _rtl92e_rate_mgn_to_hw(u8 rate) { u8 ret = DESC90_RATE1M; @@ -1195,7 +1195,7 @@ void rtl92e_fill_tx_desc(struct net_device *dev, struct tx_desc *pdesc, pTxFwInfo = (struct tx_fwinfo_8190pci *)skb->data; memset(pTxFwInfo, 0, sizeof(struct tx_fwinfo_8190pci)); pTxFwInfo->TxHT = (cb_desc->data_rate & 0x80) ? 1 : 0; - pTxFwInfo->TxRate = MRateToHwRate8190Pci((u8)cb_desc->data_rate); + pTxFwInfo->TxRate = _rtl92e_rate_mgn_to_hw((u8)cb_desc->data_rate); pTxFwInfo->EnableCPUDur = cb_desc->bTxEnableFwCalcDur; pTxFwInfo->Short = rtl8192_QueryIsShort(pTxFwInfo->TxHT, pTxFwInfo->TxRate, @@ -1217,7 +1217,7 @@ void rtl92e_fill_tx_desc(struct net_device *dev, struct tx_desc *pdesc, pTxFwInfo->CtsEnable = (cb_desc->bCTSEnable) ? 1 : 0; pTxFwInfo->RtsSTBC = (cb_desc->bRTSSTBC) ? 1 : 0; pTxFwInfo->RtsHT = (cb_desc->rts_rate&0x80) ? 1 : 0; - pTxFwInfo->RtsRate = MRateToHwRate8190Pci((u8)cb_desc->rts_rate); + pTxFwInfo->RtsRate = _rtl92e_rate_mgn_to_hw((u8)cb_desc->rts_rate); pTxFwInfo->RtsBandwidth = 0; pTxFwInfo->RtsSubcarrier = cb_desc->RTSSC; pTxFwInfo->RtsShort = (pTxFwInfo->RtsHT == 0) ? From d4ad6ef1ffecc1bca2d2530703b628b795993ebc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:15 +0200 Subject: [PATCH 0729/2431] staging: rtl8192e: Rename CPUcheck_firmware_ready Use naming schema found in other rtlwifi devices. Rename CPUcheck_firmware_ready to _rtl92e_is_fw_ready. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 3c1b86cce8d6..12a791ddfb8b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -149,7 +149,7 @@ CPUCheckMainCodeOKAndTurnOnCPU_Fail: return rt_status; } -static bool CPUcheck_firmware_ready(struct net_device *dev) +static bool _rtl92e_is_fw_ready(struct net_device *dev) { bool rt_status = true; @@ -205,12 +205,12 @@ static bool firmware_check_ready(struct net_device *dev, pfirmware->firmware_status = FW_STATUS_4_MOVE_DATA_CODE; mdelay(1); - rt_status = CPUcheck_firmware_ready(dev); + rt_status = _rtl92e_is_fw_ready(dev); if (rt_status) pfirmware->firmware_status = FW_STATUS_5_READY; else RT_TRACE(COMP_FIRMWARE, - "CPUcheck_firmware_ready fail(%d)!\n", + "_rtl92e_is_fw_ready fail(%d)!\n", rt_status); break; From 5f3cd6e50399f7709b2c05e02be8fd2087e34531 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:16 +0200 Subject: [PATCH 0730/2431] staging: rtl8192e: Rename CPUcheck_maincodeok_turnonCPU Use naming schema found in other rtlwifi devices. Rename CPUcheck_maincodeok_turnonCPU to _rtl92e_fw_boot_cpu. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 12a791ddfb8b..4881f89f6e47 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -101,7 +101,7 @@ static bool fw_download_code(struct net_device *dev, u8 *code_virtual_address, return true; } -static bool CPUcheck_maincodeok_turnonCPU(struct net_device *dev) +static bool _rtl92e_fw_boot_cpu(struct net_device *dev) { bool rt_status = true; u32 CPU_status = 0; @@ -192,12 +192,11 @@ static bool firmware_check_ready(struct net_device *dev, case FW_INIT_STEP1_MAIN: pfirmware->firmware_status = FW_STATUS_2_MOVE_MAIN_CODE; - rt_status = CPUcheck_maincodeok_turnonCPU(dev); + rt_status = _rtl92e_fw_boot_cpu(dev); if (rt_status) pfirmware->firmware_status = FW_STATUS_3_TURNON_CPU; else - RT_TRACE(COMP_FIRMWARE, - "CPUcheck_maincodeok_turnonCPU fail!\n"); + RT_TRACE(COMP_FIRMWARE, "_rtl92e_fw_boot_cpu fail!\n"); break; From a86fc527bf6ef0b7f824f78f48f2a6b96463a45c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:17 +0200 Subject: [PATCH 0731/2431] staging: rtl8192e: Rename fw_download_code Use naming schema found in other rtlwifi devices. Rename fw_download_code to _rtl92e_fw_download_code. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 4881f89f6e47..41fc0e244f83 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -32,8 +32,8 @@ void rtl92e_init_fw_param(struct net_device *dev) MAX_TRANSMIT_BUFFER_SIZE); } -static bool fw_download_code(struct net_device *dev, u8 *code_virtual_address, - u32 buffer_len) +static bool _rtl92e_fw_download_code(struct net_device *dev, + u8 *code_virtual_address, u32 buffer_len) { struct r8192_priv *priv = rtllib_priv(dev); u16 frag_threshold; @@ -299,7 +299,8 @@ bool rtl92e_init_fw(struct net_device *dev) mapped_file = pfirmware->firmware_buf[i]; file_length = pfirmware->firmware_buf_size[i]; - rt_status = fw_download_code(dev, mapped_file, file_length); + rt_status = _rtl92e_fw_download_code(dev, mapped_file, + file_length); if (!rt_status) goto download_firmware_fail; From 5269f55ddf5b9436cac76edc328346a6496a6789 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:18 +0200 Subject: [PATCH 0732/2431] staging: rtl8192e: Rename phy_FwRFSerialRead Use naming schema found in other rtlwifi devices. Rename phy_FwRFSerialRead to _rtl92e_phy_rf_fw_read. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 3a15a0f5b479..d227c0d9e00b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -46,9 +46,8 @@ static u32 RF_CHANNEL_TABLE_ZEBRA[] = { /*************************Define local function prototype**********************/ -static u32 phy_FwRFSerialRead(struct net_device *dev, - enum rf90_radio_path eRFPath, - u32 Offset); +static u32 _rtl92e_phy_rf_fw_read(struct net_device *dev, + enum rf90_radio_path eRFPath, u32 Offset); static void phy_FwRFSerialWrite(struct net_device *dev, enum rf90_radio_path eRFPath, u32 Offset, u32 Data); @@ -228,8 +227,8 @@ void rtl92e_set_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, RT_TRACE(COMP_PHY, "FW RF CTRL is not ready now\n"); if (priv->Rf_Mode == RF_OP_By_FW) { if (BitMask != bMask12Bits) { - Original_Value = phy_FwRFSerialRead(dev, eRFPath, - RegAddr); + Original_Value = _rtl92e_phy_rf_fw_read(dev, eRFPath, + RegAddr); BitShift = rtl8192_CalculateBitShift(BitMask); New_Value = (((Original_Value) & (~BitMask)) | (Data << BitShift)); @@ -266,7 +265,7 @@ u32 rtl92e_get_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, return 0; down(&priv->rf_sem); if (priv->Rf_Mode == RF_OP_By_FW) { - Original_Value = phy_FwRFSerialRead(dev, eRFPath, RegAddr); + Original_Value = _rtl92e_phy_rf_fw_read(dev, eRFPath, RegAddr); udelay(200); } else { Original_Value = rtl8192_phy_RFSerialRead(dev, eRFPath, @@ -278,8 +277,8 @@ u32 rtl92e_get_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, return Readback_Value; } -static u32 phy_FwRFSerialRead(struct net_device *dev, - enum rf90_radio_path eRFPath, u32 Offset) +static u32 _rtl92e_phy_rf_fw_read(struct net_device *dev, + enum rf90_radio_path eRFPath, u32 Offset) { u32 Data = 0; u8 time = 0; From f957076035ca986a6082f0ee5f45dba69dc99eab Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:19 +0200 Subject: [PATCH 0733/2431] staging: rtl8192e: Rename phy_FwRFSerialWrite Use naming schema found in other rtlwifi devices. Rename phy_FwRFSerialWrite to _rtl92e_phy_rf_fw_write. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index d227c0d9e00b..b8b20884497d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -48,9 +48,9 @@ static u32 RF_CHANNEL_TABLE_ZEBRA[] = { static u32 _rtl92e_phy_rf_fw_read(struct net_device *dev, enum rf90_radio_path eRFPath, u32 Offset); -static void phy_FwRFSerialWrite(struct net_device *dev, - enum rf90_radio_path eRFPath, - u32 Offset, u32 Data); +static void _rtl92e_phy_rf_fw_write(struct net_device *dev, + enum rf90_radio_path eRFPath, u32 Offset, + u32 Data); static u32 rtl8192_CalculateBitShift(u32 dwBitMask) { @@ -233,9 +233,10 @@ void rtl92e_set_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, New_Value = (((Original_Value) & (~BitMask)) | (Data << BitShift)); - phy_FwRFSerialWrite(dev, eRFPath, RegAddr, New_Value); + _rtl92e_phy_rf_fw_write(dev, eRFPath, RegAddr, + New_Value); } else - phy_FwRFSerialWrite(dev, eRFPath, RegAddr, Data); + _rtl92e_phy_rf_fw_write(dev, eRFPath, RegAddr, Data); udelay(200); } else { @@ -303,9 +304,9 @@ static u32 _rtl92e_phy_rf_fw_read(struct net_device *dev, } -static void phy_FwRFSerialWrite(struct net_device *dev, - enum rf90_radio_path eRFPath, - u32 Offset, u32 Data) +static void _rtl92e_phy_rf_fw_write(struct net_device *dev, + enum rf90_radio_path eRFPath, u32 Offset, + u32 Data) { u8 time = 0; From a059e47206d7f7ec62b5eaf82b411faeb8c51d8b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:20 +0200 Subject: [PATCH 0734/2431] staging: rtl8192e: Rename rtl8192_phyConfigBB Use naming schema found in other rtlwifi devices. Rename rtl8192_phyConfigBB to _rtl92e_phy_config_bb. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index b8b20884497d..0dae2c8c374f 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -355,7 +355,7 @@ void rtl92e_config_mac(struct net_device *dev) } -static void rtl8192_phyConfigBB(struct net_device *dev, u8 ConfigType) +static void _rtl92e_phy_config_bb(struct net_device *dev, u8 ConfigType) { int i; u32 *Rtl819XPHY_REGArray_Table = NULL; @@ -571,12 +571,12 @@ static bool rtl8192_BB_Config_ParaFile(struct net_device *dev) } } rtl92e_set_bb_reg(dev, rFPGA0_RFMOD, bCCKEn|bOFDMEn, 0x0); - rtl8192_phyConfigBB(dev, BaseBand_Config_PHY_REG); + _rtl92e_phy_config_bb(dev, BaseBand_Config_PHY_REG); dwRegValue = rtl92e_readl(dev, CPU_GEN); rtl92e_writel(dev, CPU_GEN, (dwRegValue|CPU_GEN_BB_RST)); - rtl8192_phyConfigBB(dev, BaseBand_Config_AGC_TAB); + _rtl92e_phy_config_bb(dev, BaseBand_Config_AGC_TAB); if (priv->IC_Cut > VERSION_8190_BD) { if (priv->rf_type == RF_2T4R) From 626687964adaa9c11b1954f79f7908a2aa8621e3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:21 +0200 Subject: [PATCH 0735/2431] staging: rtl8192e: Rename rtl8192_phy_FinishSwChnlNow Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_FinishSwChnlNow to _rtl92e_phy_switch_channel. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 0dae2c8c374f..eed3c0bb871d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -963,7 +963,7 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, return false; } -static void rtl8192_phy_FinishSwChnlNow(struct net_device *dev, u8 channel) +static void _rtl92e_phy_switch_channel(struct net_device *dev, u8 channel) { struct r8192_priv *priv = rtllib_priv(dev); u32 delay = 0; @@ -986,7 +986,7 @@ static void rtl8192_SwChnl_WorkItem(struct net_device *dev) RT_TRACE(COMP_TRACE, "=====>--%s(), set chan:%d, priv:%p\n", __func__, priv->chan, priv); - rtl8192_phy_FinishSwChnlNow(dev, priv->chan); + _rtl92e_phy_switch_channel(dev, priv->chan); RT_TRACE(COMP_TRACE, "<== SwChnlCallback819xUsbWorkItem()\n"); } From 6edb1763ca7a97148fb8c7ccb8311c442d941f6f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:22 +0200 Subject: [PATCH 0736/2431] staging: rtl8192e: Rename rtl8192_phy_RFSerialRead Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_RFSerialRead to _rtl92e_phy_rf_read. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index eed3c0bb871d..59d5f2a97854 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -105,8 +105,9 @@ u32 rtl92e_get_bb_reg(struct net_device *dev, u32 dwRegAddr, u32 dwBitMask) return Ret; } -static u32 rtl8192_phy_RFSerialRead(struct net_device *dev, - enum rf90_radio_path eRFPath, u32 Offset) + +static u32 _rtl92e_phy_rf_read(struct net_device *dev, + enum rf90_radio_path eRFPath, u32 Offset) { struct r8192_priv *priv = rtllib_priv(dev); u32 ret = 0; @@ -241,8 +242,8 @@ void rtl92e_set_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, } else { if (BitMask != bMask12Bits) { - Original_Value = rtl8192_phy_RFSerialRead(dev, eRFPath, - RegAddr); + Original_Value = _rtl92e_phy_rf_read(dev, eRFPath, + RegAddr); BitShift = rtl8192_CalculateBitShift(BitMask); New_Value = (((Original_Value) & (~BitMask)) | (Data << BitShift)); @@ -269,8 +270,7 @@ u32 rtl92e_get_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, Original_Value = _rtl92e_phy_rf_fw_read(dev, eRFPath, RegAddr); udelay(200); } else { - Original_Value = rtl8192_phy_RFSerialRead(dev, eRFPath, - RegAddr); + Original_Value = _rtl92e_phy_rf_read(dev, eRFPath, RegAddr); } BitShift = rtl8192_CalculateBitShift(BitMask); Readback_Value = (Original_Value & BitMask) >> BitShift; From 6c2d5aebe945d2104885210a834f8eb58cf6371b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:23 +0200 Subject: [PATCH 0737/2431] staging: rtl8192e: Rename rtl8192_phy_RFSerialWrite Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_RFSerialWrite to _rtl92e_phy_rf_write. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 59d5f2a97854..9a0a26dc3036 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -163,9 +163,9 @@ static u32 _rtl92e_phy_rf_read(struct net_device *dev, } -static void rtl8192_phy_RFSerialWrite(struct net_device *dev, - enum rf90_radio_path eRFPath, u32 Offset, - u32 Data) +static void _rtl92e_phy_rf_write(struct net_device *dev, + enum rf90_radio_path eRFPath, u32 Offset, + u32 Data) { struct r8192_priv *priv = rtllib_priv(dev); u32 DataAndAddr = 0, NewOffset = 0; @@ -248,10 +248,9 @@ void rtl92e_set_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, New_Value = (((Original_Value) & (~BitMask)) | (Data << BitShift)); - rtl8192_phy_RFSerialWrite(dev, eRFPath, RegAddr, - New_Value); + _rtl92e_phy_rf_write(dev, eRFPath, RegAddr, New_Value); } else - rtl8192_phy_RFSerialWrite(dev, eRFPath, RegAddr, Data); + _rtl92e_phy_rf_write(dev, eRFPath, RegAddr, Data); } } From 5b9484016734d6f635849e1a90e87038c2d73764 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:24 +0200 Subject: [PATCH 0738/2431] staging: rtl8192e: Rename rtl8192_phy_SetSwChnlCmdArray Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_SetSwChnlCmdArray to _rtl92e_phy_set_sw_chnl_cmd_array. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192e/rtl8192e/r8192E_phy.c | 74 +++++++++++-------- 1 file changed, 43 insertions(+), 31 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 9a0a26dc3036..d06131a660c5 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -795,11 +795,11 @@ static void rtl8192_SetTxPowerLevel(struct net_device *dev, u8 channel) } } -static u8 rtl8192_phy_SetSwChnlCmdArray(struct net_device *dev, - struct sw_chnl_cmd *CmdTable, - u32 CmdTableIdx, u32 CmdTableSz, - enum sw_chnl_cmd_id CmdID, - u32 Para1, u32 Para2, u32 msDelay) +static u8 _rtl92e_phy_set_sw_chnl_cmd_array(struct net_device *dev, + struct sw_chnl_cmd *CmdTable, + u32 CmdTableIdx, u32 CmdTableSz, + enum sw_chnl_cmd_id CmdID, + u32 Para1, u32 Para2, u32 msDelay) { struct sw_chnl_cmd *pCmd; @@ -842,19 +842,22 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, { PreCommonCmdCnt = 0; - rtl8192_phy_SetSwChnlCmdArray(dev, ieee->PreCommonCmd, - PreCommonCmdCnt++, - MAX_PRECMD_CNT, CmdID_SetTxPowerLevel, - 0, 0, 0); - rtl8192_phy_SetSwChnlCmdArray(dev, ieee->PreCommonCmd, - PreCommonCmdCnt++, - MAX_PRECMD_CNT, CmdID_End, 0, 0, 0); + _rtl92e_phy_set_sw_chnl_cmd_array(dev, ieee->PreCommonCmd, + PreCommonCmdCnt++, + MAX_PRECMD_CNT, + CmdID_SetTxPowerLevel, + 0, 0, 0); + _rtl92e_phy_set_sw_chnl_cmd_array(dev, ieee->PreCommonCmd, + PreCommonCmdCnt++, + MAX_PRECMD_CNT, CmdID_End, + 0, 0, 0); PostCommonCmdCnt = 0; - rtl8192_phy_SetSwChnlCmdArray(dev, ieee->PostCommonCmd, - PostCommonCmdCnt++, - MAX_POSTCMD_CNT, CmdID_End, 0, 0, 0); + _rtl92e_phy_set_sw_chnl_cmd_array(dev, ieee->PostCommonCmd, + PostCommonCmdCnt++, + MAX_POSTCMD_CNT, CmdID_End, + 0, 0, 0); RfDependCmdCnt = 0; switch (priv->rf_chip) { @@ -865,13 +868,19 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, channel); return false; } - rtl8192_phy_SetSwChnlCmdArray(dev, ieee->RfDependCmd, - RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, - CmdID_RF_WriteReg, rZebra1_Channel, - RF_CHANNEL_TABLE_ZEBRA[channel], 10); - rtl8192_phy_SetSwChnlCmdArray(dev, ieee->RfDependCmd, - RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, - CmdID_End, 0, 0, 0); + _rtl92e_phy_set_sw_chnl_cmd_array(dev, + ieee->RfDependCmd, + RfDependCmdCnt++, + MAX_RFDEPENDCMD_CNT, + CmdID_RF_WriteReg, + rZebra1_Channel, + RF_CHANNEL_TABLE_ZEBRA[channel], + 10); + _rtl92e_phy_set_sw_chnl_cmd_array(dev, + ieee->RfDependCmd, + RfDependCmdCnt++, + MAX_RFDEPENDCMD_CNT, + CmdID_End, 0, 0, 0); break; case RF_8256: @@ -881,15 +890,18 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, channel); return false; } - rtl8192_phy_SetSwChnlCmdArray(dev, ieee->RfDependCmd, - RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT, - CmdID_RF_WriteReg, rZebra1_Channel, channel, - 10); - rtl8192_phy_SetSwChnlCmdArray(dev, ieee->RfDependCmd, - - RfDependCmdCnt++, - MAX_RFDEPENDCMD_CNT, - CmdID_End, 0, 0, 0); + _rtl92e_phy_set_sw_chnl_cmd_array(dev, + ieee->RfDependCmd, + RfDependCmdCnt++, + MAX_RFDEPENDCMD_CNT, + CmdID_RF_WriteReg, + rZebra1_Channel, + channel, 10); + _rtl92e_phy_set_sw_chnl_cmd_array(dev, + ieee->RfDependCmd, + RfDependCmdCnt++, + MAX_RFDEPENDCMD_CNT, + CmdID_End, 0, 0, 0); break; case RF_8258: From 1d53a5efc83b4459e3bd41164a8d6442fe06c648 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:25 +0200 Subject: [PATCH 0739/2431] staging: rtl8192e: Rename rtl8192_phy_SwChnlStepByStep Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_SwChnlStepByStep to _rtl92e_phy_switch_channel_step. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index d06131a660c5..5681b2c9d894 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -821,8 +821,8 @@ static u8 _rtl92e_phy_set_sw_chnl_cmd_array(struct net_device *dev, return true; } -static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, - u8 *stage, u8 *step, u32 *delay) +static u8 _rtl92e_phy_switch_channel_step(struct net_device *dev, u8 channel, + u8 *stage, u8 *step, u32 *delay) { struct r8192_priv *priv = rtllib_priv(dev); struct rtllib_device *ieee = priv->rtllib; @@ -979,8 +979,9 @@ static void _rtl92e_phy_switch_channel(struct net_device *dev, u8 channel) struct r8192_priv *priv = rtllib_priv(dev); u32 delay = 0; - while (!rtl8192_phy_SwChnlStepByStep(dev, channel, &priv->SwChnlStage, - &priv->SwChnlStep, &delay)) { + while (!_rtl92e_phy_switch_channel_step(dev, channel, + &priv->SwChnlStage, + &priv->SwChnlStep, &delay)) { if (delay > 0) msleep(delay); if (!priv->up) From 87602255efc10e410fb7336388491b132bc6daf5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:26 +0200 Subject: [PATCH 0740/2431] staging: rtl8192e: Rename rtl8192_SwChnl_WorkItem Use naming schema found in other rtlwifi devices. Rename rtl8192_SwChnl_WorkItem to _rtl92e_phy_switch_channel_work_item. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 5681b2c9d894..e2f833d999b1 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -988,7 +988,8 @@ static void _rtl92e_phy_switch_channel(struct net_device *dev, u8 channel) break; } } -static void rtl8192_SwChnl_WorkItem(struct net_device *dev) + +static void _rtl92e_phy_switch_channel_work_item(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1055,7 +1056,7 @@ u8 rtl92e_set_channel(struct net_device *dev, u8 channel) priv->SwChnlStep = 0; if (priv->up) - rtl8192_SwChnl_WorkItem(dev); + _rtl92e_phy_switch_channel_work_item(dev); priv->SwChnlInProgress = false; return true; } From e009a8496ef4e24d16f9c978e923f7ad2ea305b9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:27 +0200 Subject: [PATCH 0741/2431] staging: rtl8192e: Rename rtl8192_prepare_beacon Use naming schema found in other rtlwifi devices. Rename rtl8192_prepare_beacon to _rtl92e_prepare_beacon. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 0e7a768040b9..1994d56a0c50 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -531,7 +531,7 @@ static int rtl8192_handle_assoc_response(struct net_device *dev, return 0; } -static void rtl8192_prepare_beacon(struct r8192_priv *priv) +static void _rtl92e_prepare_beacon(struct r8192_priv *priv) { struct net_device *dev = priv->rtllib->dev; struct sk_buff *pskb = NULL, *pnewskb = NULL; @@ -1030,7 +1030,7 @@ static void _rtl92e_init_priv_task(struct net_device *dev) (void(*)(unsigned long))_rtl92e_irq_tx_tasklet, (unsigned long)priv); tasklet_init(&priv->irq_prepare_beacon_tasklet, - (void(*)(unsigned long))rtl8192_prepare_beacon, + (void(*)(unsigned long))_rtl92e_prepare_beacon, (unsigned long)priv); } From ae1fe0db83e257a4709e36b6d1beeda06c506b56 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:28 +0200 Subject: [PATCH 0742/2431] staging: rtl8192e: Rename rtl8192_qos_activate Use naming schema found in other rtlwifi devices. Rename rtl8192_qos_activate to _rtl92e_qos_activate. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 1994d56a0c50..e05264e22f2d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -395,7 +395,7 @@ static void rtl8192_update_beacon(void *data) rtl8192_update_cap(dev, net->capability); } -static void rtl8192_qos_activate(void *data) +static void _rtl92e_qos_activate(void *data) { struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, qos_activate); @@ -1018,7 +1018,7 @@ static void _rtl92e_init_priv_task(struct net_device *dev) (void *)rtl92e_dm_rf_pathcheck_wq, dev); INIT_DELAYED_WORK_RSL(&priv->update_beacon_wq, (void *)rtl8192_update_beacon, dev); - INIT_WORK_RSL(&priv->qos_activate, (void *)rtl8192_qos_activate, dev); + INIT_WORK_RSL(&priv->qos_activate, (void *)_rtl92e_qos_activate, dev); INIT_DELAYED_WORK_RSL(&priv->rtllib->hw_wakeup_wq, (void *) rtl92e_hw_wakeup_wq, dev); INIT_DELAYED_WORK_RSL(&priv->rtllib->hw_sleep_wq, From 24bee78a3b4ca06891a7873fa4594c377f7beed8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:29 +0200 Subject: [PATCH 0743/2431] staging: rtl8192e: Rename rtl8192_qos_association_resp Use naming schema found in other rtlwifi devices. Rename rtl8192_qos_association_resp to _rtl92e_qos_assoc_resp. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index e05264e22f2d..369344a8c2c2 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -474,8 +474,8 @@ static int rtl8192_handle_beacon(struct net_device *dev, } -static int rtl8192_qos_association_resp(struct r8192_priv *priv, - struct rtllib_network *network) +static int _rtl92e_qos_assoc_resp(struct r8192_priv *priv, + struct rtllib_network *network) { unsigned long flags; u32 size = sizeof(struct rtllib_qos_parameters); @@ -527,7 +527,7 @@ static int rtl8192_handle_assoc_response(struct net_device *dev, { struct r8192_priv *priv = rtllib_priv(dev); - rtl8192_qos_association_resp(priv, network); + _rtl92e_qos_assoc_resp(priv, network); return 0; } From c5d0d6f5dba847478aeaaa059b13f9a5877b41da Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:30 +0200 Subject: [PATCH 0744/2431] staging: rtl8192e: Rename rtl8192_qos_handle_probe_response Use naming schema found in other rtlwifi devices. Rename rtl8192_qos_handle_probe_response to _rtl92e_qos_handle_probe_response. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 369344a8c2c2..2aadb6284eae 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -416,9 +416,9 @@ success: mutex_unlock(&priv->mutex); } -static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv, - int active_network, - struct rtllib_network *network) +static int _rtl92e_qos_handle_probe_response(struct r8192_priv *priv, + int active_network, + struct rtllib_network *network) { int ret = 0; u32 size = sizeof(struct rtllib_qos_parameters); @@ -467,7 +467,7 @@ static int rtl8192_handle_beacon(struct net_device *dev, { struct r8192_priv *priv = rtllib_priv(dev); - rtl8192_qos_handle_probe_response(priv, 1, network); + _rtl92e_qos_handle_probe_response(priv, 1, network); queue_delayed_work_rsl(priv->priv_wq, &priv->update_beacon_wq, 0); return 0; From 422c8bef062497377edef137531993776e2f4d52 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:31 +0200 Subject: [PATCH 0745/2431] staging: rtl8192e: Rename rtl8192_refresh_supportrate Use naming schema found in other rtlwifi devices. Rename rtl8192_refresh_supportrate to _rtl92e_refresh_support_rate. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 2aadb6284eae..35ccf4b90094 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -658,7 +658,7 @@ void rtl92e_config_rate(struct net_device *dev, u16 *rate_config) } } -static void rtl8192_refresh_supportrate(struct r8192_priv *priv) +static void _rtl92e_refresh_support_rate(struct r8192_priv *priv) { struct rtllib_device *ieee = priv->rtllib; @@ -739,7 +739,7 @@ void rtl92e_set_wireless_mode(struct net_device *dev, u8 wireless_mode) } RT_TRACE(COMP_INIT, "Current Wireless Mode is %x\n", wireless_mode); - rtl8192_refresh_supportrate(priv); + _rtl92e_refresh_support_rate(priv); } static int _rtl8192_sta_up(struct net_device *dev, bool is_silent_reset) From 5da06ad85740a3f3f300857da95c6a6de5762449 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:32 +0200 Subject: [PATCH 0746/2431] staging: rtl8192e: Rename rtl8192_set_chan Use naming schema found in other rtlwifi devices. Rename rtl8192_set_chan to _rtl92e_set_chan. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 35ccf4b90094..fac7c1feb152 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -308,7 +308,7 @@ void rtl92e_irq_disable(struct net_device *dev) priv->irq_enabled = 0; } -static void rtl8192_set_chan(struct net_device *dev, short ch) +static void _rtl92e_set_chan(struct net_device *dev, short ch) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); @@ -853,7 +853,7 @@ static void _rtl92e_init_priv_handler(struct net_device *dev) struct r8192_priv *priv = rtllib_priv(dev); priv->rtllib->softmac_hard_start_xmit = rtl8192_hard_start_xmit; - priv->rtllib->set_chan = rtl8192_set_chan; + priv->rtllib->set_chan = _rtl92e_set_chan; priv->rtllib->link_change = priv->ops->link_change; priv->rtllib->softmac_data_hard_start_xmit = rtl8192_hard_data_xmit; priv->rtllib->check_nic_enough_desc = rtl8192_check_nic_enough_desc; From 2b19e2221464100647009144278ce60bb800ab51 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:33 +0200 Subject: [PATCH 0747/2431] staging: rtl8192e: Rename rtl8192_sta_down Use naming schema found in other rtlwifi devices. Rename rtl8192_sta_down to _rtl92e_sta_down. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index fac7c1feb152..15078bb61d67 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -785,7 +785,7 @@ static int _rtl8192_sta_up(struct net_device *dev, bool is_silent_reset) return 0; } -static int rtl8192_sta_down(struct net_device *dev, bool shutdownrf) +static int _rtl92e_sta_down(struct net_device *dev, bool shutdownrf) { struct r8192_priv *priv = rtllib_priv(dev); unsigned long flags = 0; @@ -2232,7 +2232,7 @@ static int _rtl92e_close(struct net_device *dev) static int _rtl92e_down(struct net_device *dev, bool shutdownrf) { - if (rtl8192_sta_down(dev, shutdownrf) == -1) + if (_rtl92e_sta_down(dev, shutdownrf) == -1) return -1; return 0; From dba0e06f823033f8e67d32d945df0e81a8590019 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:34 +0200 Subject: [PATCH 0748/2431] staging: rtl8192e: Rename _rtl8192_sta_up Use naming schema found in other rtlwifi devices. Rename _rtl8192_sta_up to _rtl92e_sta_up. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 15078bb61d67..1aff44d778a4 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -742,7 +742,7 @@ void rtl92e_set_wireless_mode(struct net_device *dev, u8 wireless_mode) _rtl92e_refresh_support_rate(priv); } -static int _rtl8192_sta_up(struct net_device *dev, bool is_silent_reset) +static int _rtl92e_sta_up(struct net_device *dev, bool is_silent_reset) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *) @@ -2183,7 +2183,7 @@ static void rtl8192_cancel_deferred_work(struct r8192_priv *priv) static int _rtl92e_up(struct net_device *dev, bool is_silent_reset) { - if (_rtl8192_sta_up(dev, is_silent_reset) == -1) + if (_rtl92e_sta_up(dev, is_silent_reset) == -1) return -1; return 0; } From f2f08fc58f18978c88a064089e0f2aba72da06c4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:35 +0200 Subject: [PATCH 0749/2431] staging: rtl8192e: Rename rtl8192_stop_beacon Use naming schema found in other rtlwifi devices. Rename rtl8192_stop_beacon to _rtl92e_stop_beacon. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 1aff44d778a4..225118f115a8 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -561,7 +561,7 @@ static void _rtl92e_prepare_beacon(struct r8192_priv *priv) pdesc->OWN = 1; } -static void rtl8192_stop_beacon(struct net_device *dev) +static void _rtl92e_stop_beacon(struct net_device *dev) { } @@ -865,7 +865,7 @@ static void _rtl92e_init_priv_handler(struct net_device *dev) priv->rf_set_chan = rtl92e_set_channel; priv->rtllib->start_send_beacons = rtl92e_start_beacon; - priv->rtllib->stop_send_beacons = rtl8192_stop_beacon; + priv->rtllib->stop_send_beacons = _rtl92e_stop_beacon; priv->rtllib->sta_wake_up = rtl92e_hw_wakeup; priv->rtllib->enter_sleep_state = rtl92e_enter_sleep; From dc888405510dbaf4019cda7a6625f6e0721d113e Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:36 +0200 Subject: [PATCH 0750/2431] staging: rtl8192e: Rename rtl8192_update_beacon Use naming schema found in other rtlwifi devices. Rename rtl8192_update_beacon to _rtl92e_update_beacon. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 225118f115a8..17ec45bf38c6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -379,7 +379,7 @@ static struct rtllib_qos_parameters def_qos_parameters = { {0, 0, 0, 0} }; -static void rtl8192_update_beacon(void *data) +static void _rtl92e_update_beacon(void *data) { struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, update_beacon_wq.work); @@ -1017,7 +1017,7 @@ static void _rtl92e_init_priv_task(struct net_device *dev) INIT_DELAYED_WORK_RSL(&priv->rfpath_check_wq, (void *)rtl92e_dm_rf_pathcheck_wq, dev); INIT_DELAYED_WORK_RSL(&priv->update_beacon_wq, - (void *)rtl8192_update_beacon, dev); + (void *)_rtl92e_update_beacon, dev); INIT_WORK_RSL(&priv->qos_activate, (void *)_rtl92e_qos_activate, dev); INIT_DELAYED_WORK_RSL(&priv->rtllib->hw_wakeup_wq, (void *) rtl92e_hw_wakeup_wq, dev); From 9a99c563d16314cf9814ca174e1da430c5491fc2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:37 +0200 Subject: [PATCH 0751/2431] staging: rtl8192e: Rename rtl8192_update_cap Use naming schema found in other rtlwifi devices. Rename rtl8192_update_cap to _rtl92e_update_cap. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 17ec45bf38c6..54148e82409e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -322,7 +322,7 @@ static void _rtl92e_set_chan(struct net_device *dev, short ch) priv->rf_set_chan(dev, priv->chan); } -static void rtl8192_update_cap(struct net_device *dev, u16 cap) +static void _rtl92e_update_cap(struct net_device *dev, u16 cap) { struct r8192_priv *priv = rtllib_priv(dev); struct rtllib_network *net = &priv->rtllib->current_network; @@ -392,7 +392,7 @@ static void _rtl92e_update_beacon(void *data) ieee->pHTInfo->bCurrentRT2RTLongSlotTime = net->bssht.bdRT2RTLongSlotTime; ieee->pHTInfo->RT2RT_HT_Mode = net->bssht.RT2RT_HT_Mode; - rtl8192_update_cap(dev, net->capability); + _rtl92e_update_cap(dev, net->capability); } static void _rtl92e_qos_activate(void *data) From 79fbe932318e87ca2a51983bbfcca101e260b2c3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:38 +0200 Subject: [PATCH 0752/2431] staging: rtl8192e: Rename rtl819x_ifcheck_resetornot Use naming schema found in other rtlwifi devices. Rename rtl819x_ifcheck_resetornot to _rtl92e_if_check_reset. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 54148e82409e..55f870633a91 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1194,7 +1194,7 @@ static enum reset_type _rtl92e_rx_check_stuck(struct net_device *dev) return RESET_TYPE_NORESET; } -static enum reset_type rtl819x_ifcheck_resetornot(struct net_device *dev) +static enum reset_type _rtl92e_if_check_reset(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); enum reset_type TxResetType = RESET_TYPE_NORESET; @@ -1525,7 +1525,7 @@ static void rtl819x_watchdog_wqcallback(void *data) spin_lock_irqsave(&priv->tx_lock, flags); if ((check_reset_cnt++ >= 3) && (!ieee->is_roaming) && (!priv->RFChangeInProgress) && (!pPSC->bSwRfProcessing)) { - ResetType = rtl819x_ifcheck_resetornot(dev); + ResetType = _rtl92e_if_check_reset(dev); check_reset_cnt = 3; } spin_unlock_irqrestore(&priv->tx_lock, flags); From 5e177a9f4e3bf5416699dc1231e04599b773713b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:39 +0200 Subject: [PATCH 0753/2431] staging: rtl8192e: Rename rtl819x_ifsilentreset Use naming schema found in other rtlwifi devices. Rename rtl819x_ifsilentreset to _rtl92e_if_silent_reset. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 55f870633a91..a4fad3f07b6c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1231,7 +1231,7 @@ static void rtl819x_silentreset_mesh_bk(struct net_device *dev, u8 IsPortal) { } -static void rtl819x_ifsilentreset(struct net_device *dev) +static void _rtl92e_if_silent_reset(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 reset_times = 0; @@ -1538,7 +1538,7 @@ static void rtl819x_watchdog_wqcallback(void *data) if (((priv->force_reset) || (!priv->bDisableNormalResetCheck && ResetType == RESET_TYPE_SILENT))) - rtl819x_ifsilentreset(dev); + _rtl92e_if_silent_reset(dev); priv->force_reset = false; priv->bForcedSilentReset = false; priv->bResetInProgress = false; From cfe245bbb8c55b704a3faf7fc01921feb598faf3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:40 +0200 Subject: [PATCH 0754/2431] staging: rtl8192e: Rename rtl819x_silentreset_mesh_bk Use naming schema found in other rtlwifi devices. Rename rtl819x_silentreset_mesh_bk to _rtl92e_silent_reset_mesh. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index a4fad3f07b6c..fea0dffeec0f 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1227,7 +1227,7 @@ static enum reset_type _rtl92e_if_check_reset(struct net_device *dev) } -static void rtl819x_silentreset_mesh_bk(struct net_device *dev, u8 IsPortal) +static void _rtl92e_silent_reset_mesh(struct net_device *dev, u8 IsPortal) { } @@ -1352,7 +1352,7 @@ RESET_START: netif_carrier_on(ieee->dev); } else if (ieee->iw_mode == IW_MODE_MESH) { - rtl819x_silentreset_mesh_bk(dev, IsPortal); + _rtl92e_silent_reset_mesh(dev, IsPortal); } rtl92e_cam_restore(dev); From c3b481652f60249a847c10c8ce966189d9d71c98 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:41 +0200 Subject: [PATCH 0755/2431] staging: rtl8192e: Rename rtl819x_update_rxcounts Use naming schema found in other rtlwifi devices. Rename rtl819x_update_rxcounts to _rtl92e_update_rxcounts. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index fea0dffeec0f..9846f9a7b8d7 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1370,7 +1370,7 @@ END: } } -static void rtl819x_update_rxcounts(struct r8192_priv *priv, u32 *TotalRxBcnNum, +static void _rtl92e_update_rxcounts(struct r8192_priv *priv, u32 *TotalRxBcnNum, u32 *TotalRxDataNum) { u16 SlotIndex; @@ -1481,7 +1481,7 @@ static void rtl819x_watchdog_wqcallback(void *data) u32 TotalRxBcnNum = 0; u32 TotalRxDataNum = 0; - rtl819x_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum); + _rtl92e_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum); if ((TotalRxBcnNum+TotalRxDataNum) == 0) priv->check_roaming_cnt++; From 7e2d598ac3db434d812956d9d1aca51c51a04e02 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:42 +0200 Subject: [PATCH 0756/2431] staging: rtl8192e: Rename rtl819x_watchdog_wqcallback Use naming schema found in other rtlwifi devices. Rename rtl819x_watchdog_wqcallback to _rtl92e_watchdog_wq_cb. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 9846f9a7b8d7..08a99e95aef9 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -88,7 +88,7 @@ static struct pci_driver rtl8192_pci_driver = { }; static short _rtl92e_is_tx_queue_empty(struct net_device *dev); -static void rtl819x_watchdog_wqcallback(void *data); +static void _rtl92e_watchdog_wq_cb(void *data); static void watch_dog_timer_callback(unsigned long data); static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate); @@ -1011,7 +1011,7 @@ static void _rtl92e_init_priv_task(struct net_device *dev) INIT_WORK_RSL(&priv->rtllib->ips_leave_wq, (void *)rtl92e_ips_leave_wq, dev); INIT_DELAYED_WORK_RSL(&priv->watch_dog_wq, - (void *)rtl819x_watchdog_wqcallback, dev); + (void *)_rtl92e_watchdog_wq_cb, dev); INIT_DELAYED_WORK_RSL(&priv->txpower_tracking_wq, (void *)rtl92e_dm_txpower_tracking_wq, dev); INIT_DELAYED_WORK_RSL(&priv->rfpath_check_wq, @@ -1391,7 +1391,7 @@ static void _rtl92e_update_rxcounts(struct r8192_priv *priv, u32 *TotalRxBcnNum, } } -static void rtl819x_watchdog_wqcallback(void *data) +static void _rtl92e_watchdog_wq_cb(void *data) { struct r8192_priv *priv = container_of_dwork_rsl(data, struct r8192_priv, watch_dog_wq); From 2cfc37586a80abc79ebd0461151eb0209e5ef0c2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:43 +0200 Subject: [PATCH 0757/2431] staging: rtl8192e: Rename watch_dog_timer_callback Use naming schema found in other rtlwifi devices. Rename watch_dog_timer_callback to _rtl92e_watchdog_timer_cb. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 08a99e95aef9..f7cfd5a5f1b9 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -89,7 +89,7 @@ static struct pci_driver rtl8192_pci_driver = { static short _rtl92e_is_tx_queue_empty(struct net_device *dev); static void _rtl92e_watchdog_wq_cb(void *data); -static void watch_dog_timer_callback(unsigned long data); +static void _rtl92e_watchdog_timer_cb(unsigned long data); static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate); static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); @@ -775,7 +775,7 @@ static int _rtl92e_sta_up(struct net_device *dev, bool is_silent_reset) if (priv->rtllib->state != RTLLIB_LINKED) rtllib_softmac_start_protocol(priv->rtllib, 0); rtllib_reset_queue(priv->rtllib); - watch_dog_timer_callback((unsigned long) dev); + _rtl92e_watchdog_timer_cb((unsigned long)dev); if (!netif_queue_stopped(dev)) netif_start_queue(dev); @@ -1081,7 +1081,7 @@ static short _rtl92e_init(struct net_device *dev) rtl92e_dm_init(dev); setup_timer(&priv->watch_dog_timer, - watch_dog_timer_callback, + _rtl92e_watchdog_timer_cb, (unsigned long) dev); setup_timer(&priv->gpio_polling_timer, @@ -1545,7 +1545,7 @@ static void _rtl92e_watchdog_wq_cb(void *data) RT_TRACE(COMP_TRACE, " <==RtUsbCheckForHangWorkItemCallback()\n"); } -static void watch_dog_timer_callback(unsigned long data) +static void _rtl92e_watchdog_timer_cb(unsigned long data) { struct r8192_priv *priv = rtllib_priv((struct net_device *)data); From 66a5c29b33bee95f855ce76db23748caca9e63fb Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:44 +0200 Subject: [PATCH 0758/2431] staging: rtl8192e: Rename rtl8192_get_channel_map Use naming schema found in other rtlwifi devices. Rename rtl8192_get_channel_map to _rtl92e_get_channel_map. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index f7cfd5a5f1b9..51bae3e2c7de 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1034,7 +1034,7 @@ static void _rtl92e_init_priv_task(struct net_device *dev) (unsigned long)priv); } -static short rtl8192_get_channel_map(struct net_device *dev) +static short _rtl92e_get_channel_map(struct net_device *dev) { int i; @@ -1076,7 +1076,7 @@ static short _rtl92e_init(struct net_device *dev) _rtl92e_init_priv_task(dev); priv->ops->get_eeprom_size(dev); priv->ops->init_adapter_variable(dev); - rtl8192_get_channel_map(dev); + _rtl92e_get_channel_map(dev); rtl92e_dm_init(dev); From ee394a7f86cf3bacb76ebd18fbadd9eedb7672b8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:45 +0200 Subject: [PATCH 0759/2431] staging: rtl8192e: Rename rtl8192_getSupportedWireleeMode Use naming schema found in other rtlwifi devices. Rename rtl8192_getSupportedWireleeMode to _rtl92e_get_supported_wireless_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 51bae3e2c7de..a4ca32db5744 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -674,7 +674,7 @@ static void _rtl92e_refresh_support_rate(struct r8192_priv *priv) } } -static u8 rtl8192_getSupportedWireleeMode(struct net_device *dev) +static u8 _rtl92e_get_supported_wireless_mode(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 ret = 0; @@ -699,7 +699,7 @@ static u8 rtl8192_getSupportedWireleeMode(struct net_device *dev) void rtl92e_set_wireless_mode(struct net_device *dev, u8 wireless_mode) { struct r8192_priv *priv = rtllib_priv(dev); - u8 bSupportMode = rtl8192_getSupportedWireleeMode(dev); + u8 bSupportMode = _rtl92e_get_supported_wireless_mode(dev); if ((wireless_mode == WIRELESS_MODE_AUTO) || ((wireless_mode & bSupportMode) == 0)) { From 8b5a80317d99e7cff3a8a557e72a6f7b34027fef Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:46 +0200 Subject: [PATCH 0760/2431] staging: rtl8192e: Rename rtl8192_handle_assoc_response Use naming schema found in other rtlwifi devices. Rename rtl8192_handle_assoc_response to _rtl92e_handle_assoc_response. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index a4ca32db5744..c3ef493061df 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -521,7 +521,7 @@ static int _rtl92e_qos_assoc_resp(struct r8192_priv *priv, return 0; } -static int rtl8192_handle_assoc_response(struct net_device *dev, +static int _rtl92e_handle_assoc_response(struct net_device *dev, struct rtllib_assoc_response_frame *resp, struct rtllib_network *network) { @@ -857,7 +857,7 @@ static void _rtl92e_init_priv_handler(struct net_device *dev) priv->rtllib->link_change = priv->ops->link_change; priv->rtllib->softmac_data_hard_start_xmit = rtl8192_hard_data_xmit; priv->rtllib->check_nic_enough_desc = rtl8192_check_nic_enough_desc; - priv->rtllib->handle_assoc_response = rtl8192_handle_assoc_response; + priv->rtllib->handle_assoc_response = _rtl92e_handle_assoc_response; priv->rtllib->handle_beacon = rtl8192_handle_beacon; priv->rtllib->SetWirelessMode = rtl92e_set_wireless_mode; priv->rtllib->LeisurePSLeave = rtl92e_leisure_ps_leave; From 5341f07018bd124b987bf6eecb77f1a23e7db477 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:47 +0200 Subject: [PATCH 0761/2431] staging: rtl8192e: Rename rtl8192_handle_beacon Use naming schema found in other rtlwifi devices. Rename rtl8192_handle_beacon to _rtl92e_handle_beacon. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index c3ef493061df..51747a30a0e4 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -461,9 +461,9 @@ static int _rtl92e_qos_handle_probe_response(struct r8192_priv *priv, return 0; } -static int rtl8192_handle_beacon(struct net_device *dev, - struct rtllib_beacon *beacon, - struct rtllib_network *network) +static int _rtl92e_handle_beacon(struct net_device *dev, + struct rtllib_beacon *beacon, + struct rtllib_network *network) { struct r8192_priv *priv = rtllib_priv(dev); @@ -858,7 +858,7 @@ static void _rtl92e_init_priv_handler(struct net_device *dev) priv->rtllib->softmac_data_hard_start_xmit = rtl8192_hard_data_xmit; priv->rtllib->check_nic_enough_desc = rtl8192_check_nic_enough_desc; priv->rtllib->handle_assoc_response = _rtl92e_handle_assoc_response; - priv->rtllib->handle_beacon = rtl8192_handle_beacon; + priv->rtllib->handle_beacon = _rtl92e_handle_beacon; priv->rtllib->SetWirelessMode = rtl92e_set_wireless_mode; priv->rtllib->LeisurePSLeave = rtl92e_leisure_ps_leave; priv->rtllib->SetBWModeHandler = rtl92e_set_bw_mode; From 52a740454f0e417d5637b45ecbc46fe3edbf4d51 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:48 +0200 Subject: [PATCH 0762/2431] staging: rtl8192e: Rename rtl8192_hard_data_xmit Use naming schema found in other rtlwifi devices. Rename rtl8192_hard_data_xmit to _rtl92e_hard_data_xmit. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 51747a30a0e4..cf6e9643cfae 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -90,7 +90,7 @@ static struct pci_driver rtl8192_pci_driver = { static short _rtl92e_is_tx_queue_empty(struct net_device *dev); static void _rtl92e_watchdog_wq_cb(void *data); static void _rtl92e_watchdog_timer_cb(unsigned long data); -static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, +static void _rtl92e_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate); static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); static void _rtl92e_tx_cmd(struct net_device *dev, struct sk_buff *skb); @@ -855,7 +855,7 @@ static void _rtl92e_init_priv_handler(struct net_device *dev) priv->rtllib->softmac_hard_start_xmit = rtl8192_hard_start_xmit; priv->rtllib->set_chan = _rtl92e_set_chan; priv->rtllib->link_change = priv->ops->link_change; - priv->rtllib->softmac_data_hard_start_xmit = rtl8192_hard_data_xmit; + priv->rtllib->softmac_data_hard_start_xmit = _rtl92e_hard_data_xmit; priv->rtllib->check_nic_enough_desc = rtl8192_check_nic_enough_desc; priv->rtllib->handle_assoc_response = _rtl92e_handle_assoc_response; priv->rtllib->handle_beacon = _rtl92e_handle_beacon; @@ -1622,8 +1622,8 @@ static void _rtl92e_free_tx_ring(struct net_device *dev, unsigned int prio) ring->desc = NULL; } -static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, - int rate) +static void _rtl92e_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, + int rate) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); int ret; From 3e49f3eca24734c064a86575838bd89b3fd7a3a8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:49 +0200 Subject: [PATCH 0763/2431] staging: rtl8192e: Rename rtl8192_hard_start_xmit Use naming schema found in other rtlwifi devices. Rename rtl8192_hard_start_xmit to _rtl92e_hard_start_xmit. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index cf6e9643cfae..ec9d2c2d09ea 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -92,7 +92,7 @@ static void _rtl92e_watchdog_wq_cb(void *data); static void _rtl92e_watchdog_timer_cb(unsigned long data); static void _rtl92e_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate); -static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); +static int _rtl92e_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); static void _rtl92e_tx_cmd(struct net_device *dev, struct sk_buff *skb); static short _rtl92e_tx(struct net_device *dev, struct sk_buff *skb); static short _rtl92e_pci_initdescring(struct net_device *dev); @@ -852,7 +852,7 @@ static void _rtl92e_init_priv_handler(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); - priv->rtllib->softmac_hard_start_xmit = rtl8192_hard_start_xmit; + priv->rtllib->softmac_hard_start_xmit = _rtl92e_hard_start_xmit; priv->rtllib->set_chan = _rtl92e_set_chan; priv->rtllib->link_change = priv->ops->link_change; priv->rtllib->softmac_data_hard_start_xmit = _rtl92e_hard_data_xmit; @@ -1654,7 +1654,7 @@ static void _rtl92e_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, } } -static int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) +static int _rtl92e_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); int ret; From 6ded689376a2a53c6a2a6b7d3f3d584e0e391ef4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:50 +0200 Subject: [PATCH 0764/2431] staging: rtl8192e: Rename rtl8192e_update_msr Use naming schema found in other rtlwifi devices. Rename rtl8192e_update_msr to _rtl92e_update_msr. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index d0a740c9dbde..5e7a551d4f6a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -57,7 +57,7 @@ void rtl92e_start_beacon(struct net_device *dev) rtl92e_irq_enable(dev); } -static void rtl8192e_update_msr(struct net_device *dev) +static void _rtl92e_update_msr(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 msr; @@ -1001,7 +1001,7 @@ void rtl92e_link_change(struct net_device *dev) } else { rtl92e_writeb(dev, 0x173, 0); } - rtl8192e_update_msr(dev); + _rtl92e_update_msr(dev); if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC) { u32 reg = 0; From f588a2254fd4cd9c9ec8cb37712b1a12415f7e6a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:51 +0200 Subject: [PATCH 0765/2431] staging: rtl8192e: Rename rtl8192_hwconfig Use naming schema found in other rtlwifi devices. Rename rtl8192_hwconfig to _rtl92e_hwconfig. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 5e7a551d4f6a..61e8d1748f15 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -640,7 +640,7 @@ void rtl92e_get_eeprom_size(struct net_device *dev) rtl8192_read_eeprom_info(dev); } -static void rtl8192_hwconfig(struct net_device *dev) +static void _rtl92e_hwconfig(struct net_device *dev) { u32 regRATR = 0, regRRSR = 0; u8 regBwOpMode = 0, regTmp = 0; @@ -772,7 +772,7 @@ start: udelay(500); } - rtl8192_hwconfig(dev); + _rtl92e_hwconfig(dev); rtl92e_writeb(dev, CMDR, CR_RE | CR_TE); rtl92e_writeb(dev, PCIF, ((MXDMA2_NoLimit< Date: Sun, 20 Sep 2015 10:13:52 +0200 Subject: [PATCH 0766/2431] staging: rtl8192e: Rename rtl8192_MapHwQueueToFirmwareQueue Use naming schema found in other rtlwifi devices. Rename rtl8192_MapHwQueueToFirmwareQueue to _rtl92e_hw_queue_to_fw_queue. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 61e8d1748f15..67b2f9f4f16e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1131,8 +1131,8 @@ static u8 _rtl92e_rate_mgn_to_hw(u8 rate) return ret; } -static u8 rtl8192_MapHwQueueToFirmwareQueue(struct net_device *dev, u8 QueueID, - u8 priority) +static u8 _rtl92e_hw_queue_to_fw_queue(struct net_device *dev, u8 QueueID, + u8 priority) { u8 QueueSelect = 0x0; @@ -1278,9 +1278,9 @@ void rtl92e_fill_tx_desc(struct net_device *dev, struct tx_desc *pdesc, pdesc->PktId = 0x0; - pdesc->QueueSelect = rtl8192_MapHwQueueToFirmwareQueue(dev, - cb_desc->queue_index, - cb_desc->priority); + pdesc->QueueSelect = _rtl92e_hw_queue_to_fw_queue(dev, + cb_desc->queue_index, + cb_desc->priority); pdesc->TxFWInfoSize = sizeof(struct tx_fwinfo_8190pci); pdesc->DISFB = cb_desc->bTxDisableRateFallBack; From 479e2b8ca88d6a7d2ed4945a2fbe50b061c713dd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:53 +0200 Subject: [PATCH 0767/2431] staging: rtl8192e: Rename rtl8192_net_update Use naming schema found in other rtlwifi devices. Rename rtl8192_net_update to _rtl92e_net_update. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 67b2f9f4f16e..2100e43b7888 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -955,7 +955,7 @@ end: return rtStatus; } -static void rtl8192_net_update(struct net_device *dev) +static void _rtl92e_net_update(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -993,7 +993,7 @@ void rtl92e_link_change(struct net_device *dev) return; if (ieee->state == RTLLIB_LINKED) { - rtl8192_net_update(dev); + _rtl92e_net_update(dev); priv->ops->update_ratr_table(dev); if ((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) From 1325ba089c4337ef54970d4252c9c197a2a8f20c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:54 +0200 Subject: [PATCH 0768/2431] staging: rtl8192e: Rename rtl8192_process_phyinfo Use naming schema found in other rtlwifi devices. Rename rtl8192_process_phyinfo to _rtl92e_process_phyinfo. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 2100e43b7888..982101d4a041 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1690,7 +1690,7 @@ static void rtl8192_query_rxphystatus( } } -static void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, +static void _rtl92e_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct rtllib_rx_stats *prev_st, struct rtllib_rx_stats *curr_st) { @@ -1900,7 +1900,7 @@ static void rtl8192_TranslateRxSignalStuff(struct net_device *dev, priv->stats.numpacket_matchbssid++; if (bpacket_toself) priv->stats.numpacket_toself++; - rtl8192_process_phyinfo(priv, tmp_buf, &previous_stats, pstats); + _rtl92e_process_phyinfo(priv, tmp_buf, &previous_stats, pstats); rtl8192_query_rxphystatus(priv, pstats, pdesc, pdrvinfo, &previous_stats, bpacket_match_bssid, bpacket_toself, bPacketBeacon, bToSelfBA); From 45de428315f590d6a7ec7c7bd9b6a0d2adcaff67 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:55 +0200 Subject: [PATCH 0769/2431] staging: rtl8192e: Rename rtl8192_QueryIsShort Use naming schema found in other rtlwifi devices. Rename rtl8192_QueryIsShort to _rtl92e_query_is_short. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 982101d4a041..01e8509a257a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1172,7 +1172,7 @@ static u8 _rtl92e_hw_queue_to_fw_queue(struct net_device *dev, u8 QueueID, return QueueSelect; } -static u8 rtl8192_QueryIsShort(u8 TxHT, u8 TxRate, struct cb_desc *tcb_desc) +static u8 _rtl92e_query_is_short(u8 TxHT, u8 TxRate, struct cb_desc *tcb_desc) { u8 tmp_Short; @@ -1197,9 +1197,8 @@ void rtl92e_fill_tx_desc(struct net_device *dev, struct tx_desc *pdesc, pTxFwInfo->TxHT = (cb_desc->data_rate & 0x80) ? 1 : 0; pTxFwInfo->TxRate = _rtl92e_rate_mgn_to_hw((u8)cb_desc->data_rate); pTxFwInfo->EnableCPUDur = cb_desc->bTxEnableFwCalcDur; - pTxFwInfo->Short = rtl8192_QueryIsShort(pTxFwInfo->TxHT, - pTxFwInfo->TxRate, - cb_desc); + pTxFwInfo->Short = _rtl92e_query_is_short(pTxFwInfo->TxHT, + pTxFwInfo->TxRate, cb_desc); if (pci_dma_mapping_error(priv->pdev, mapping)) netdev_err(dev, "%s(): DMA Mapping error\n", __func__); From 410bfd1d8f1c16dafca2182f7391099a077806f5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:56 +0200 Subject: [PATCH 0770/2431] staging: rtl8192e: Rename rtl8192_query_rxphystatus Use naming schema found in other rtlwifi devices. Rename rtl8192_query_rxphystatus to _rtl92e_query_rxphystatus. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 01e8509a257a..e4c3e29bf93b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1474,7 +1474,7 @@ static long rtl8192_signal_scale_mapping(struct r8192_priv *priv, long currsig) _pdrvinfo->RxRate == DESC90_RATE11M) &&\ !_pdrvinfo->RxHT) -static void rtl8192_query_rxphystatus( +static void _rtl92e_query_rxphystatus( struct r8192_priv *priv, struct rtllib_rx_stats *pstats, struct rx_desc *pdesc, @@ -1900,7 +1900,7 @@ static void rtl8192_TranslateRxSignalStuff(struct net_device *dev, if (bpacket_toself) priv->stats.numpacket_toself++; _rtl92e_process_phyinfo(priv, tmp_buf, &previous_stats, pstats); - rtl8192_query_rxphystatus(priv, pstats, pdesc, pdrvinfo, + _rtl92e_query_rxphystatus(priv, pstats, pdesc, pdrvinfo, &previous_stats, bpacket_match_bssid, bpacket_toself, bPacketBeacon, bToSelfBA); rtl92e_copy_mpdu_stats(pstats, &previous_stats); From 676b8bae806ebf7e36d640ea64ac06116143fc5b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:57 +0200 Subject: [PATCH 0771/2431] staging: rtl8192e: Rename rtl8192_read_eeprom_info Use naming schema found in other rtlwifi devices. Rename rtl8192_read_eeprom_info to _rtl92e_read_eeprom_info. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index e4c3e29bf93b..ff0f99b0874d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -309,7 +309,7 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val) } -static void rtl8192_read_eeprom_info(struct net_device *dev) +static void _rtl92e_read_eeprom_info(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); const u8 bMac_Tmp_Addr[ETH_ALEN] = {0x00, 0xe0, 0x4c, 0x00, 0x00, 0x01}; @@ -318,7 +318,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) u16 i, usValue, IC_Version; u16 EEPROMId; - RT_TRACE(COMP_INIT, "====> rtl8192_read_eeprom_info\n"); + RT_TRACE(COMP_INIT, "====> _rtl92e_read_eeprom_info\n"); EEPROMId = rtl92e_eeprom_read(dev, 0); if (EEPROMId != RTL8190_EEPROM_ID) { @@ -637,7 +637,7 @@ void rtl92e_get_eeprom_size(struct net_device *dev) EEPROM_93C46; RT_TRACE(COMP_INIT, "<===========%s(), epromtype:%d\n", __func__, priv->epromtype); - rtl8192_read_eeprom_info(dev); + _rtl92e_read_eeprom_info(dev); } static void _rtl92e_hwconfig(struct net_device *dev) From af82349ab36835649dcb83287ee155879eb8a3d0 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:58 +0200 Subject: [PATCH 0772/2431] staging: rtl8192e: Rename rtl8192_signal_scale_mapping Use naming schema found in other rtlwifi devices. Rename rtl8192_signal_scale_mapping to _rtl92e_signal_scale_mapping. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index ff0f99b0874d..db3126b0858b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1438,7 +1438,7 @@ static u8 _rtl92e_rate_hw_to_mgn(bool bIsHT, u8 rate) return ret_rate; } -static long rtl8192_signal_scale_mapping(struct r8192_priv *priv, long currsig) +static long _rtl92e_signal_scale_mapping(struct r8192_priv *priv, long currsig) { long retsig; @@ -1678,13 +1678,13 @@ static void _rtl92e_query_rxphystatus( if (is_cck_rate) { pstats->SignalStrength = precord_stats->SignalStrength = - (u8)(rtl8192_signal_scale_mapping(priv, + (u8)(_rtl92e_signal_scale_mapping(priv, (long)pwdb_all)); } else { if (rf_rx_num != 0) pstats->SignalStrength = precord_stats->SignalStrength = - (u8)(rtl8192_signal_scale_mapping(priv, + (u8)(_rtl92e_signal_scale_mapping(priv, (long)(total_rssi /= rf_rx_num))); } } From 9d70ed838e28ef42bb2ba03447205335fb22a0c9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:59 +0200 Subject: [PATCH 0773/2431] staging: rtl8192e: Rename rtl8192_TranslateRxSignalStuff Use naming schema found in other rtlwifi devices. Rename rtl8192_TranslateRxSignalStuff to _rtl92e_translate_rx_signal_stats. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index db3126b0858b..2df986ea1ece 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1861,11 +1861,11 @@ static void _rtl92e_process_phyinfo(struct r8192_priv *priv, u8 *buffer, } } -static void rtl8192_TranslateRxSignalStuff(struct net_device *dev, - struct sk_buff *skb, - struct rtllib_rx_stats *pstats, - struct rx_desc *pdesc, - struct rx_fwinfo *pdrvinfo) +static void _rtl92e_translate_rx_signal_stats(struct net_device *dev, + struct sk_buff *skb, + struct rtllib_rx_stats *pstats, + struct rx_desc *pdesc, + struct rx_fwinfo *pdrvinfo) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); bool bpacket_match_bssid, bpacket_toself; @@ -2073,8 +2073,7 @@ bool rtl92e_get_rx_stats(struct net_device *dev, struct rtllib_rx_stats *stats, stats->RxIs40MHzPacket = pDrvInfo->BW; - rtl8192_TranslateRxSignalStuff(dev, skb, stats, pdesc, - pDrvInfo); + _rtl92e_translate_rx_signal_stats(dev, skb, stats, pdesc, pDrvInfo); if (pDrvInfo->FirstAGGR == 1 || pDrvInfo->PartAggr == 1) RT_TRACE(COMP_RXDESC, From 77055c56a71bccc57f64444e9b99296588bee0fd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:00 +0200 Subject: [PATCH 0774/2431] staging: rtl8192e: Rename rtl8192_UpdateReceivedRateHistogramStatistics Use naming schema found in other rtlwifi devices. Rename rtl8192_UpdateReceivedRateHistogramStatistics to _rtl92e_update_received_rate_histogram_stats. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 2df986ea1ece..dc8419d4ec76 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -1906,7 +1906,7 @@ static void _rtl92e_translate_rx_signal_stats(struct net_device *dev, rtl92e_copy_mpdu_stats(pstats, &previous_stats); } -static void rtl8192_UpdateReceivedRateHistogramStatistics( +static void _rtl92e_update_received_rate_histogram_stats( struct net_device *dev, struct rtllib_rx_stats *pstats) { @@ -2057,7 +2057,7 @@ bool rtl92e_get_rx_stats(struct net_device *dev, struct rtllib_rx_stats *stats, (u8)pDrvInfo->RxRate); stats->bShortPreamble = pDrvInfo->SPLCP; - rtl8192_UpdateReceivedRateHistogramStatistics(dev, stats); + _rtl92e_update_received_rate_histogram_stats(dev, stats); stats->bIsAMPDU = (pDrvInfo->PartAggr == 1); stats->bFirstMPDU = (pDrvInfo->PartAggr == 1) && From 81f5847da9ce10e656e02bc41341330600a75ec7 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:01 +0200 Subject: [PATCH 0775/2431] staging: rtl8192e: Rename CCK_Tx_Power_Track_BW_Switch Use naming schema found in other rtlwifi devices. Rename CCK_Tx_Power_Track_BW_Switch to _rtl92e_cck_tx_power_track_bw_switch. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index e2f833d999b1..2756ee399cc3 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -1156,7 +1156,7 @@ static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct net_device *dev) rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); } -static void CCK_Tx_Power_Track_BW_Switch(struct net_device *dev) +static void _rtl92e_cck_tx_power_track_bw_switch(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1215,7 +1215,7 @@ static void rtl8192_SetBWModeWorkItem(struct net_device *dev) rtl92e_writel(dev, rCCK0_TxFilter2, 0x090e1317); rtl92e_writel(dev, rCCK0_DebugPort, 0x00000204); } else { - CCK_Tx_Power_Track_BW_Switch(dev); + _rtl92e_cck_tx_power_track_bw_switch(dev); } rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, 0x00100000, 1); @@ -1230,7 +1230,7 @@ static void rtl8192_SetBWModeWorkItem(struct net_device *dev) rtl92e_writel(dev, rCCK0_TxFilter2, 0x121c252e); rtl92e_writel(dev, rCCK0_DebugPort, 0x00000409); } else { - CCK_Tx_Power_Track_BW_Switch(dev); + _rtl92e_cck_tx_power_track_bw_switch(dev); } rtl92e_set_bb_reg(dev, rCCK0_System, bCCKSideBand, From fca7024a047a7e413741d14fc25df6771f873bac Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:02 +0200 Subject: [PATCH 0776/2431] staging: rtl8192e: Rename CCK_Tx_Power_Track_BW_Switch_ThermalMeter Use naming schema found in other rtlwifi devices. Rename CCK_Tx_Power_Track_BW_Switch_ThermalMeter to _rtl92e_cck_tx_power_track_bw_switch_thermal. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 2756ee399cc3..44586137811c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -1125,7 +1125,7 @@ static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct net_device *dev) } } -static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct net_device *dev) +static void _rtl92e_cck_tx_power_track_bw_switch_thermal(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1142,14 +1142,14 @@ static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct net_device *dev) priv->Record_CCK_20Mindex = 6; priv->CCK_index = priv->Record_CCK_20Mindex; RT_TRACE(COMP_POWER_TRACKING, - "20MHz, CCK_Tx_Power_Track_BW_Switch_ThermalMeter(),CCK_index = %d\n", + "20MHz, _rtl92e_cck_tx_power_track_bw_switch_thermal(),CCK_index = %d\n", priv->CCK_index); break; case HT_CHANNEL_WIDTH_20_40: priv->CCK_index = priv->Record_CCK_40Mindex; RT_TRACE(COMP_POWER_TRACKING, - "40MHz, CCK_Tx_Power_Track_BW_Switch_ThermalMeter(), CCK_index = %d\n", + "40MHz, _rtl92e_cck_tx_power_track_bw_switch_thermal(), CCK_index = %d\n", priv->CCK_index); break; } @@ -1163,7 +1163,7 @@ static void _rtl92e_cck_tx_power_track_bw_switch(struct net_device *dev) if (priv->IC_Cut >= IC_VersionCut_D) CCK_Tx_Power_Track_BW_Switch_TSSI(dev); else - CCK_Tx_Power_Track_BW_Switch_ThermalMeter(dev); + _rtl92e_cck_tx_power_track_bw_switch_thermal(dev); } static void rtl8192_SetBWModeWorkItem(struct net_device *dev) From 6a2c58a2acd529340d2c9ed39720bb6c8024f9cd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:03 +0200 Subject: [PATCH 0777/2431] staging: rtl8192e: Rename CCK_Tx_Power_Track_BW_Switch_TSSI Use naming schema found in other rtlwifi devices. Rename CCK_Tx_Power_Track_BW_Switch_TSSI to _rtl92e_cck_tx_power_track_bw_switch_tssi. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 44586137811c..0de7eb6d76bc 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -1061,7 +1061,7 @@ u8 rtl92e_set_channel(struct net_device *dev, u8 channel) return true; } -static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct net_device *dev) +static void _rtl92e_cck_tx_power_track_bw_switch_tssi(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1161,7 +1161,7 @@ static void _rtl92e_cck_tx_power_track_bw_switch(struct net_device *dev) struct r8192_priv *priv = rtllib_priv(dev); if (priv->IC_Cut >= IC_VersionCut_D) - CCK_Tx_Power_Track_BW_Switch_TSSI(dev); + _rtl92e_cck_tx_power_track_bw_switch_tssi(dev); else _rtl92e_cck_tx_power_track_bw_switch_thermal(dev); } From 43af9f4a4e313f50ef69e1149d99ea84f2d1a8da Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:04 +0200 Subject: [PATCH 0778/2431] staging: rtl8192e: Rename rtl8192_BB_Config_ParaFile Use naming schema found in other rtlwifi devices. Rename rtl8192_BB_Config_ParaFile to _rtl92e_bb_config_para_file. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 0de7eb6d76bc..6238ded8f27a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -544,7 +544,7 @@ bool rtl92e_check_bb_and_rf(struct net_device *dev, enum hw90_block CheckBlock, return ret; } -static bool rtl8192_BB_Config_ParaFile(struct net_device *dev) +static bool _rtl92e_bb_config_para_file(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); bool rtStatus = true; @@ -598,7 +598,7 @@ static bool rtl8192_BB_Config_ParaFile(struct net_device *dev) bool rtl92e_config_bb(struct net_device *dev) { rtl8192_InitBBRFRegDef(dev); - return rtl8192_BB_Config_ParaFile(dev); + return _rtl92e_bb_config_para_file(dev); } void rtl92e_get_tx_power(struct net_device *dev) From e8411ff1d6be1b9400ac737535f77b6e026bbd4c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:05 +0200 Subject: [PATCH 0779/2431] staging: rtl8192e: Rename rtl8192_CalculateBitShift Use naming schema found in other rtlwifi devices. Rename rtl8192_CalculateBitShift to _rtl92e_calculate_bit_shift. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 6238ded8f27a..436f421375e8 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -52,7 +52,7 @@ static void _rtl92e_phy_rf_fw_write(struct net_device *dev, enum rf90_radio_path eRFPath, u32 Offset, u32 Data); -static u32 rtl8192_CalculateBitShift(u32 dwBitMask) +static u32 _rtl92e_calculate_bit_shift(u32 dwBitMask) { u32 i; @@ -87,7 +87,7 @@ void rtl92e_set_bb_reg(struct net_device *dev, u32 dwRegAddr, u32 dwBitMask, if (dwBitMask != bMaskDWord) { OriginalValue = rtl92e_readl(dev, dwRegAddr); - BitShift = rtl8192_CalculateBitShift(dwBitMask); + BitShift = _rtl92e_calculate_bit_shift(dwBitMask); NewValue = (((OriginalValue) & (~dwBitMask)) | (dwData << BitShift)); rtl92e_writel(dev, dwRegAddr, NewValue); @@ -100,7 +100,7 @@ u32 rtl92e_get_bb_reg(struct net_device *dev, u32 dwRegAddr, u32 dwBitMask) u32 Ret = 0, OriginalValue, BitShift; OriginalValue = rtl92e_readl(dev, dwRegAddr); - BitShift = rtl8192_CalculateBitShift(dwBitMask); + BitShift = _rtl92e_calculate_bit_shift(dwBitMask); Ret = (OriginalValue & dwBitMask) >> BitShift; return Ret; @@ -230,7 +230,7 @@ void rtl92e_set_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, if (BitMask != bMask12Bits) { Original_Value = _rtl92e_phy_rf_fw_read(dev, eRFPath, RegAddr); - BitShift = rtl8192_CalculateBitShift(BitMask); + BitShift = _rtl92e_calculate_bit_shift(BitMask); New_Value = (((Original_Value) & (~BitMask)) | (Data << BitShift)); @@ -244,7 +244,7 @@ void rtl92e_set_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, if (BitMask != bMask12Bits) { Original_Value = _rtl92e_phy_rf_read(dev, eRFPath, RegAddr); - BitShift = rtl8192_CalculateBitShift(BitMask); + BitShift = _rtl92e_calculate_bit_shift(BitMask); New_Value = (((Original_Value) & (~BitMask)) | (Data << BitShift)); @@ -271,7 +271,7 @@ u32 rtl92e_get_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath, } else { Original_Value = _rtl92e_phy_rf_read(dev, eRFPath, RegAddr); } - BitShift = rtl8192_CalculateBitShift(BitMask); + BitShift = _rtl92e_calculate_bit_shift(BitMask); Readback_Value = (Original_Value & BitMask) >> BitShift; up(&priv->rf_sem); return Readback_Value; From 003486fd3c910f381edd178db05ef925031265a3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:06 +0200 Subject: [PATCH 0780/2431] staging: rtl8192e: Rename rtl8192_InitBBRFRegDef Use naming schema found in other rtlwifi devices. Rename rtl8192_InitBBRFRegDef to _rtl92e_init_bb_rf_reg_def. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 436f421375e8..6b61f3227272 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -395,7 +395,7 @@ static void _rtl92e_phy_config_bb(struct net_device *dev, u8 ConfigType) } } -static void rtl8192_InitBBRFRegDef(struct net_device *dev) +static void _rtl92e_init_bb_rf_reg_def(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -597,7 +597,7 @@ static bool _rtl92e_bb_config_para_file(struct net_device *dev) } bool rtl92e_config_bb(struct net_device *dev) { - rtl8192_InitBBRFRegDef(dev); + _rtl92e_init_bb_rf_reg_def(dev); return _rtl92e_bb_config_para_file(dev); } From 7b54d76d1c4772ae0e311b98fc535eb71c55e760 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:07 +0200 Subject: [PATCH 0781/2431] staging: rtl8192e: Rename rtl8192_SetBWModeWorkItem Use naming schema found in other rtlwifi devices. Rename rtl8192_SetBWModeWorkItem to _rtl92e_set_bw_mode_work_item. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 6b61f3227272..0cc4e75f4a74 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -1166,14 +1166,14 @@ static void _rtl92e_cck_tx_power_track_bw_switch(struct net_device *dev) _rtl92e_cck_tx_power_track_bw_switch_thermal(dev); } -static void rtl8192_SetBWModeWorkItem(struct net_device *dev) +static void _rtl92e_set_bw_mode_work_item(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 regBwOpMode; RT_TRACE(COMP_SWBW, - "==>rtl8192_SetBWModeWorkItem() Switch to %s bandwidth\n", + "==>_rtl92e_set_bw_mode_work_item() Switch to %s bandwidth\n", priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 ? "20MHz" : "40MHz"); @@ -1294,7 +1294,7 @@ void rtl92e_set_bw_mode(struct net_device *dev, enum ht_channel_width Bandwidth, else priv->nCur40MhzPrimeSC = HAL_PRIME_CHNL_OFFSET_DONT_CARE; - rtl8192_SetBWModeWorkItem(dev); + _rtl92e_set_bw_mode_work_item(dev); } From 0e54431c65c598d33a9762c9464412b877ee8d65 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:08 +0200 Subject: [PATCH 0782/2431] staging: rtl8192e: Rename rtl8192_SetTxPowerLevel Use naming schema found in other rtlwifi devices. Rename rtl8192_SetTxPowerLevel to _rtl92e_set_tx_power_level. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 0cc4e75f4a74..d4756d094a66 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -772,7 +772,8 @@ u8 rtl92e_config_rf_path(struct net_device *dev, enum rf90_radio_path eRFPath) return 0; } -static void rtl8192_SetTxPowerLevel(struct net_device *dev, u8 channel) + +static void _rtl92e_set_tx_power_level(struct net_device *dev, u8 channel) { struct r8192_priv *priv = rtllib_priv(dev); u8 powerlevel = priv->TxPowerLevelCCK[channel-1]; @@ -939,7 +940,8 @@ static u8 _rtl92e_phy_switch_channel_step(struct net_device *dev, u8 channel, switch (CurrentCmd->CmdID) { case CmdID_SetTxPowerLevel: if (priv->IC_Cut > (u8)VERSION_8190_BD) - rtl8192_SetTxPowerLevel(dev, channel); + _rtl92e_set_tx_power_level(dev, + channel); break; case CmdID_WritePortUlong: rtl92e_writel(dev, CurrentCmd->Para1, From 64c6ee9e515b54da7e65ff104c4ec26479c1a050 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:09 +0200 Subject: [PATCH 0783/2431] staging: rtl8192e: Rename SetRFPowerState8190 Use naming schema found in other rtlwifi devices. Rename SetRFPowerState8190 to _rtl92e_set_rf_power_state. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index d4756d094a66..a9e6fbbee206 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -1424,8 +1424,8 @@ void rtl92e_set_rf_off(struct net_device *dev) } -static bool SetRFPowerState8190(struct net_device *dev, - enum rt_rf_power_state eRFPowerState) +static bool _rtl92e_set_rf_power_state(struct net_device *dev, + enum rt_rf_power_state eRFPowerState) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *) @@ -1436,14 +1436,15 @@ static bool SetRFPowerState8190(struct net_device *dev, if (priv->SetRFPowerStateInProgress) return false; - RT_TRACE(COMP_PS, "===========> SetRFPowerState8190()!\n"); + RT_TRACE(COMP_PS, "===========> _rtl92e_set_rf_power_state()!\n"); priv->SetRFPowerStateInProgress = true; switch (priv->rf_chip) { case RF_8256: switch (eRFPowerState) { case eRfOn: - RT_TRACE(COMP_PS, "SetRFPowerState8190() eRfOn!\n"); + RT_TRACE(COMP_PS, + "_rtl92e_set_rf_power_state() eRfOn!\n"); if ((priv->rtllib->eRFPowerState == eRfOff) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC)) { bool rtstatus = true; @@ -1510,7 +1511,7 @@ static bool SetRFPowerState8190(struct net_device *dev, if (i >= MAX_DOZE_WAITING_TIMES_9x) { RT_TRACE(COMP_POWER, - "\n\n\n TimeOut!! SetRFPowerState8190(): eRfOff: %d times TcbBusyQueue[%d] != 0 !!!\n", + "\n\n\n TimeOut!! _rtl92e_set_rf_power_state(): eRfOff: %d times TcbBusyQueue[%d] != 0 !!!\n", MAX_DOZE_WAITING_TIMES_9x, QueueID); break; @@ -1521,7 +1522,7 @@ static bool SetRFPowerState8190(struct net_device *dev, case eRfOff: RT_TRACE(COMP_PS, - "SetRFPowerState8190() eRfOff/Sleep !\n"); + "_rtl92e_set_rf_power_state() eRfOff/Sleep !\n"); for (QueueID = 0, i = 0; QueueID < MAX_TX_QUEUE; ) { ring = &priv->tx_ring[QueueID]; @@ -1586,7 +1587,8 @@ static bool SetRFPowerState8190(struct net_device *dev, } priv->SetRFPowerStateInProgress = false; - RT_TRACE(COMP_PS, "<=========== SetRFPowerState8190() bResult = %d!\n", + RT_TRACE(COMP_PS, + "<=========== _rtl92e_set_rf_power_state() bResult = %d!\n", bResult); return bResult; } @@ -1609,7 +1611,7 @@ bool rtl92e_set_rf_power_state(struct net_device *dev, return bResult; } - bResult = SetRFPowerState8190(dev, eRFPowerState); + bResult = _rtl92e_set_rf_power_state(dev, eRFPowerState); RT_TRACE(COMP_PS, "<--------- rtl92e_set_rf_power_state(): bResult(%d)\n", From 3ef7f1ee57c3f59f5a004551d1b4974ebaf572fe Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:10 +0200 Subject: [PATCH 0784/2431] staging: rtl8192e: Rename r8192_set_mac_adr Use naming schema found in other rtlwifi devices. Rename r8192_set_mac_adr to _rtl92e_set_mac_adr. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index ec9d2c2d09ea..2a264b7f8575 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2274,7 +2274,7 @@ static void r8192_set_multicast(struct net_device *dev) } -static int r8192_set_mac_adr(struct net_device *dev, void *mac) +static int _rtl92e_set_mac_adr(struct net_device *dev, void *mac) { struct r8192_priv *priv = rtllib_priv(dev); struct sockaddr *addr = mac; @@ -2557,7 +2557,7 @@ static const struct net_device_ops rtl8192_netdev_ops = { .ndo_tx_timeout = _rtl92e_tx_timeout, .ndo_do_ioctl = _rtl92e_ioctl, .ndo_set_rx_mode = r8192_set_multicast, - .ndo_set_mac_address = r8192_set_mac_adr, + .ndo_set_mac_address = _rtl92e_set_mac_adr, .ndo_validate_addr = eth_validate_addr, .ndo_change_mtu = eth_change_mtu, .ndo_start_xmit = rtllib_xmit, From 2002978d5454b89b1d3c1b533b06d0a18907c8ad Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:11 +0200 Subject: [PATCH 0785/2431] staging: rtl8192e: Rename r8192_set_multicast Use naming schema found in other rtlwifi devices. Rename r8192_set_multicast to _rtl92e_set_multicast. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 2a264b7f8575..2faa53a65c58 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2263,7 +2263,7 @@ static void _rtl92e_restart(void *data) up(&priv->wx_sem); } -static void r8192_set_multicast(struct net_device *dev) +static void _rtl92e_set_multicast(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); short promisc; @@ -2556,7 +2556,7 @@ static const struct net_device_ops rtl8192_netdev_ops = { .ndo_stop = _rtl92e_close, .ndo_tx_timeout = _rtl92e_tx_timeout, .ndo_do_ioctl = _rtl92e_ioctl, - .ndo_set_rx_mode = r8192_set_multicast, + .ndo_set_rx_mode = _rtl92e_set_multicast, .ndo_set_mac_address = _rtl92e_set_mac_adr, .ndo_validate_addr = eth_validate_addr, .ndo_change_mtu = eth_change_mtu, From 4dba03a28742cc3b290eb6579fa07d2b0a859f40 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:12 +0200 Subject: [PATCH 0786/2431] staging: rtl8192e: Rename rtl8192_cancel_deferred_work Use naming schema found in other rtlwifi devices. Rename rtl8192_cancel_deferred_work to _rtl92e_cancel_deferred_work. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 2faa53a65c58..0fcaf1bf925c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -98,7 +98,7 @@ static short _rtl92e_tx(struct net_device *dev, struct sk_buff *skb); static short _rtl92e_pci_initdescring(struct net_device *dev); static void _rtl92e_irq_tx_tasklet(struct r8192_priv *priv); static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv); -static void rtl8192_cancel_deferred_work(struct r8192_priv *priv); +static void _rtl92e_cancel_deferred_work(struct r8192_priv *priv); static int _rtl92e_up(struct net_device *dev, bool is_silent_reset); static int _rtl92e_try_up(struct net_device *dev); static int _rtl92e_down(struct net_device *dev, bool shutdownrf); @@ -816,7 +816,7 @@ static int _rtl92e_sta_down(struct net_device *dev, bool shutdownrf) rtl92e_irq_disable(dev); del_timer_sync(&priv->watch_dog_timer); - rtl8192_cancel_deferred_work(priv); + _rtl92e_cancel_deferred_work(priv); cancel_delayed_work(&priv->rtllib->hw_wakeup_wq); rtllib_softmac_stop_protocol(priv->rtllib, 0, true); @@ -1284,7 +1284,7 @@ RESET_START: rtl92e_irq_disable(dev); del_timer_sync(&priv->watch_dog_timer); - rtl8192_cancel_deferred_work(priv); + _rtl92e_cancel_deferred_work(priv); rtl92e_dm_deinit(dev); rtllib_stop_scan_syncro(ieee); @@ -2172,7 +2172,7 @@ static void _rtl92e_irq_rx_tasklet(struct r8192_priv *priv) /**************************************************************************** ---------------------------- NIC START/CLOSE STUFF--------------------------- *****************************************************************************/ -static void rtl8192_cancel_deferred_work(struct r8192_priv *priv) +static void _rtl92e_cancel_deferred_work(struct r8192_priv *priv) { cancel_delayed_work(&priv->watch_dog_wq); cancel_delayed_work(&priv->update_beacon_wq); @@ -2779,7 +2779,7 @@ bool rtl92e_disable_nic(struct net_device *dev) tmp_state = priv->rtllib->state; rtllib_softmac_stop_protocol(priv->rtllib, 0, false); priv->rtllib->state = tmp_state; - rtl8192_cancel_deferred_work(priv); + _rtl92e_cancel_deferred_work(priv); rtl92e_irq_disable(dev); priv->ops->stop_adapter(dev, false); From 288adaf5a6d5b81e2d2f169f94a6c3b5d9e80296 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:13 +0200 Subject: [PATCH 0787/2431] staging: rtl8192e: Rename rtl8192_check_nic_enough_desc Use naming schema found in other rtlwifi devices. Rename rtl8192_check_nic_enough_desc to _rtl92e_check_nic_enough_desc. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 0fcaf1bf925c..887ba0414e7d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -272,7 +272,7 @@ bool rtl92e_set_rf_state(struct net_device *dev, return bActionAllowed; } -static short rtl8192_check_nic_enough_desc(struct net_device *dev, int prio) +static short _rtl92e_check_nic_enough_desc(struct net_device *dev, int prio) { struct r8192_priv *priv = rtllib_priv(dev); struct rtl8192_tx_ring *ring = &priv->tx_ring[prio]; @@ -856,7 +856,7 @@ static void _rtl92e_init_priv_handler(struct net_device *dev) priv->rtllib->set_chan = _rtl92e_set_chan; priv->rtllib->link_change = priv->ops->link_change; priv->rtllib->softmac_data_hard_start_xmit = _rtl92e_hard_data_xmit; - priv->rtllib->check_nic_enough_desc = rtl8192_check_nic_enough_desc; + priv->rtllib->check_nic_enough_desc = _rtl92e_check_nic_enough_desc; priv->rtllib->handle_assoc_response = _rtl92e_handle_assoc_response; priv->rtllib->handle_beacon = _rtl92e_handle_beacon; priv->rtllib->SetWirelessMode = rtl92e_set_wireless_mode; From f4b27f60dc26db5ee34240fd5ecc7f66a93171a6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:14 +0200 Subject: [PATCH 0788/2431] staging: rtl8192e: Rename rtl819x_ethtool_get_drvinfo Use naming schema found in other rtlwifi devices. Rename rtl819x_ethtool_get_drvinfo to _rtl92e_ethtool_get_drvinfo. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c index 529ea54d1683..55ff519de4cc 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c @@ -29,8 +29,8 @@ #include "rtl_core.h" -static void rtl819x_ethtool_get_drvinfo(struct net_device *dev, - struct ethtool_drvinfo *info) +static void _rtl92e_ethtool_get_drvinfo(struct net_device *dev, + struct ethtool_drvinfo *info) { struct r8192_priv *priv = rtllib_priv(dev); @@ -48,6 +48,6 @@ static u32 rtl819x_ethtool_get_link(struct net_device *dev) } const struct ethtool_ops rtl819x_ethtool_ops = { - .get_drvinfo = rtl819x_ethtool_get_drvinfo, + .get_drvinfo = _rtl92e_ethtool_get_drvinfo, .get_link = rtl819x_ethtool_get_link, }; From 1153037d40327a7bfff655b94122d079d3140c6b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:15 +0200 Subject: [PATCH 0789/2431] staging: rtl8192e: Rename rtl819x_ethtool_get_link Use naming schema found in other rtlwifi devices. Rename rtl819x_ethtool_get_link to _rtl92e_ethtool_get_link. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c index 55ff519de4cc..1b83e9b2e484 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c @@ -39,7 +39,7 @@ static void _rtl92e_ethtool_get_drvinfo(struct net_device *dev, strlcpy(info->bus_info, pci_name(priv->pdev), sizeof(info->bus_info)); } -static u32 rtl819x_ethtool_get_link(struct net_device *dev) +static u32 _rtl92e_ethtool_get_link(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -49,5 +49,5 @@ static u32 rtl819x_ethtool_get_link(struct net_device *dev) const struct ethtool_ops rtl819x_ethtool_ops = { .get_drvinfo = _rtl92e_ethtool_get_drvinfo, - .get_link = rtl819x_ethtool_get_link, + .get_link = _rtl92e_ethtool_get_link, }; From ac9e5e733bbbbe5210ec60647ed09f3575f2d2f3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:16 +0200 Subject: [PATCH 0790/2431] staging: rtl8192e: Rename r8192_wx_adapter_power_status Use naming schema found in other rtlwifi devices. Rename r8192_wx_adapter_power_status to _rtl92e_wx_adapter_power_status. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 7e5613774a52..e25b0894813c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -174,9 +174,9 @@ static int r8192_wx_force_reset(struct net_device *dev, } -static int r8192_wx_adapter_power_status(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_adapter_power_status(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *) @@ -1197,7 +1197,7 @@ static iw_handler r8192_private_handler[] = { (iw_handler)r8192_wx_force_reset, (iw_handler)NULL, (iw_handler)NULL, - (iw_handler)r8192_wx_adapter_power_status, + (iw_handler)_rtl92e_wx_adapter_power_status, (iw_handler)NULL, (iw_handler)NULL, (iw_handler)NULL, From 042f05ebd5df26be499c970dba4d7a74cad87283 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:17 +0200 Subject: [PATCH 0791/2431] staging: rtl8192e: Rename r8192_wx_force_reset Use naming schema found in other rtlwifi devices. Rename r8192_wx_force_reset to _rtl92e_wx_force_reset. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index e25b0894813c..d53e885584f4 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -158,9 +158,9 @@ static int r8192_wx_set_rawtx(struct net_device *dev, } -static int r8192_wx_force_reset(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_force_reset(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1194,7 +1194,7 @@ static iw_handler r8192_private_handler[] = { (iw_handler)r8192_wx_set_debugflag, /*SIOCIWSECONDPRIV*/ (iw_handler)r8192_wx_set_scan_type, (iw_handler)r8192_wx_set_rawtx, - (iw_handler)r8192_wx_force_reset, + (iw_handler)_rtl92e_wx_force_reset, (iw_handler)NULL, (iw_handler)NULL, (iw_handler)_rtl92e_wx_adapter_power_status, From 00496b54d60e996e9c9de6b204ca0830d09c7933 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:42 +0200 Subject: [PATCH 0792/2431] staging: rtl8192e: Rename r8192_wx_get_enc Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_enc to _rtl92e_wx_get_enc. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index d53e885584f4..c95570b39bc3 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -667,9 +667,9 @@ static int r8192_wx_get_wap(struct net_device *dev, } -static int r8192_wx_get_enc(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *key) +static int _rtl92e_wx_get_enc(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1141,7 +1141,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWRETRY)] = r8192_wx_set_retry, [IW_IOCTL(SIOCGIWRETRY)] = r8192_wx_get_retry, [IW_IOCTL(SIOCSIWENCODE)] = r8192_wx_set_enc, - [IW_IOCTL(SIOCGIWENCODE)] = r8192_wx_get_enc, + [IW_IOCTL(SIOCGIWENCODE)] = _rtl92e_wx_get_enc, [IW_IOCTL(SIOCSIWPOWER)] = r8192_wx_set_power, [IW_IOCTL(SIOCGIWPOWER)] = r8192_wx_get_power, [IW_IOCTL(SIOCSIWGENIE)] = r8192_wx_set_gen_ie, From c630d42a14c7f6f8201fc49c7fb2f43aa25a1cfa Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:43 +0200 Subject: [PATCH 0793/2431] staging: rtl8192e: Rename r8192_wx_get_essid Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_essid to _rtl92e_wx_get_essid. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index c95570b39bc3..4ce772b7c08c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -523,9 +523,9 @@ static int r8192_wx_set_essid(struct net_device *dev, return ret; } -static int r8192_wx_get_essid(struct net_device *dev, - struct iw_request_info *a, - union iwreq_data *wrqu, char *b) +static int _rtl92e_wx_get_essid(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) { int ret; struct r8192_priv *priv = rtllib_priv(dev); @@ -1129,7 +1129,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWSCAN)] = r8192_wx_set_scan, [IW_IOCTL(SIOCGIWSCAN)] = r8192_wx_get_scan, [IW_IOCTL(SIOCSIWESSID)] = r8192_wx_set_essid, - [IW_IOCTL(SIOCGIWESSID)] = r8192_wx_get_essid, + [IW_IOCTL(SIOCGIWESSID)] = _rtl92e_wx_get_essid, [IW_IOCTL(SIOCSIWNICKN)] = r8192_wx_set_nick, [IW_IOCTL(SIOCGIWNICKN)] = r8192_wx_get_nick, [IW_IOCTL(SIOCSIWRATE)] = r8192_wx_set_rate, From bd2213daa0faa238cc1ba2457d49cd33f03d059c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:44 +0200 Subject: [PATCH 0794/2431] staging: rtl8192e: Rename r8192_wx_get_frag Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_frag to _rtl92e_wx_get_frag. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 4ce772b7c08c..82f71f27c224 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -621,9 +621,9 @@ static int r8192_wx_set_frag(struct net_device *dev, } -static int r8192_wx_get_frag(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_frag(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1137,7 +1137,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWRTS)] = r8192_wx_set_rts, [IW_IOCTL(SIOCGIWRTS)] = r8192_wx_get_rts, [IW_IOCTL(SIOCSIWFRAG)] = r8192_wx_set_frag, - [IW_IOCTL(SIOCGIWFRAG)] = r8192_wx_get_frag, + [IW_IOCTL(SIOCGIWFRAG)] = _rtl92e_wx_get_frag, [IW_IOCTL(SIOCSIWRETRY)] = r8192_wx_set_retry, [IW_IOCTL(SIOCGIWRETRY)] = r8192_wx_get_retry, [IW_IOCTL(SIOCSIWENCODE)] = r8192_wx_set_enc, From d1bae81aff1a555b9931b7a25598905b08446495 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:45 +0200 Subject: [PATCH 0795/2431] staging: rtl8192e: Rename r8192_wx_get_freq Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_freq to _rtl92e_wx_get_freq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 82f71f27c224..30a40a07559e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -31,9 +31,9 @@ static u32 rtl8192_rates[] = { #define ENETDOWN 1 #endif -static int r8192_wx_get_freq(struct net_device *dev, - struct iw_request_info *a, - union iwreq_data *wrqu, char *b) +static int _rtl92e_wx_get_freq(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1118,7 +1118,7 @@ static int r8192_wx_get_PromiscuousMode(struct net_device *dev, static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWNAME)] = r8192_wx_get_name, [IW_IOCTL(SIOCSIWFREQ)] = r8192_wx_set_freq, - [IW_IOCTL(SIOCGIWFREQ)] = r8192_wx_get_freq, + [IW_IOCTL(SIOCGIWFREQ)] = _rtl92e_wx_get_freq, [IW_IOCTL(SIOCSIWMODE)] = r8192_wx_set_mode, [IW_IOCTL(SIOCGIWMODE)] = r8192_wx_get_mode, [IW_IOCTL(SIOCSIWSENS)] = r8192_wx_set_sens, From d343ed7fa1845843be27d663bacb25a5345a6864 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:46 +0200 Subject: [PATCH 0796/2431] staging: rtl8192e: Rename r8192_wx_get_gen_ie Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_gen_ie to _rtl92e_wx_get_gen_ie. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 30a40a07559e..8e3c44231b62 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -1030,9 +1030,9 @@ static int r8192_wx_set_gen_ie(struct net_device *dev, return ret; } -static int r8192_wx_get_gen_ie(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *data, char *extra) +static int _rtl92e_wx_get_gen_ie(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *data, char *extra) { int ret = 0; struct r8192_priv *priv = rtllib_priv(dev); @@ -1145,7 +1145,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWPOWER)] = r8192_wx_set_power, [IW_IOCTL(SIOCGIWPOWER)] = r8192_wx_get_power, [IW_IOCTL(SIOCSIWGENIE)] = r8192_wx_set_gen_ie, - [IW_IOCTL(SIOCGIWGENIE)] = r8192_wx_get_gen_ie, + [IW_IOCTL(SIOCGIWGENIE)] = _rtl92e_wx_get_gen_ie, [IW_IOCTL(SIOCSIWMLME)] = r8192_wx_set_mlme, [IW_IOCTL(SIOCSIWAUTH)] = r8192_wx_set_auth, [IW_IOCTL(SIOCSIWENCODEEXT)] = r8192_wx_set_enc_ext, From 062cd9b4018c556e847631e98108e1e3af61ec57 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:47 +0200 Subject: [PATCH 0797/2431] staging: rtl8192e: Rename r8192_wx_get_mode Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_mode to _rtl92e_wx_get_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 8e3c44231b62..76ea3675982b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -41,8 +41,9 @@ static int _rtl92e_wx_get_freq(struct net_device *dev, } -static int r8192_wx_get_mode(struct net_device *dev, struct iw_request_info *a, - union iwreq_data *wrqu, char *b) +static int _rtl92e_wx_get_mode(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1120,7 +1121,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWFREQ)] = r8192_wx_set_freq, [IW_IOCTL(SIOCGIWFREQ)] = _rtl92e_wx_get_freq, [IW_IOCTL(SIOCSIWMODE)] = r8192_wx_set_mode, - [IW_IOCTL(SIOCGIWMODE)] = r8192_wx_get_mode, + [IW_IOCTL(SIOCGIWMODE)] = _rtl92e_wx_get_mode, [IW_IOCTL(SIOCSIWSENS)] = r8192_wx_set_sens, [IW_IOCTL(SIOCGIWSENS)] = r8192_wx_get_sens, [IW_IOCTL(SIOCGIWRANGE)] = rtl8192_wx_get_range, From 17bbe9866d3b96d943ebc98613d1563d8b26032d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:48 +0200 Subject: [PATCH 0798/2431] staging: rtl8192e: Rename r8192_wx_get_name Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_name to _rtl92e_wx_get_name. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 76ea3675982b..5a9f6b3f67aa 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -589,9 +589,9 @@ static int r8192_wx_set_freq(struct net_device *dev, struct iw_request_info *a, return ret; } -static int r8192_wx_get_name(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_name(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1117,7 +1117,7 @@ static int r8192_wx_get_PromiscuousMode(struct net_device *dev, #define IW_IOCTL(x) ((x) - SIOCSIWCOMMIT) static iw_handler r8192_wx_handlers[] = { - [IW_IOCTL(SIOCGIWNAME)] = r8192_wx_get_name, + [IW_IOCTL(SIOCGIWNAME)] = _rtl92e_wx_get_name, [IW_IOCTL(SIOCSIWFREQ)] = r8192_wx_set_freq, [IW_IOCTL(SIOCGIWFREQ)] = _rtl92e_wx_get_freq, [IW_IOCTL(SIOCSIWMODE)] = r8192_wx_set_mode, From 1341a077a24d270b3957538a16ff682497776811 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:49 +0200 Subject: [PATCH 0799/2431] staging: rtl8192e: Rename r8192_wx_get_nick Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_nick to _rtl92e_wx_get_nick. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 5a9f6b3f67aa..2312d01cf634 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -558,9 +558,9 @@ static int r8192_wx_set_nick(struct net_device *dev, } -static int r8192_wx_get_nick(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_nick(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1132,7 +1132,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWESSID)] = r8192_wx_set_essid, [IW_IOCTL(SIOCGIWESSID)] = _rtl92e_wx_get_essid, [IW_IOCTL(SIOCSIWNICKN)] = r8192_wx_set_nick, - [IW_IOCTL(SIOCGIWNICKN)] = r8192_wx_get_nick, + [IW_IOCTL(SIOCGIWNICKN)] = _rtl92e_wx_get_nick, [IW_IOCTL(SIOCSIWRATE)] = r8192_wx_set_rate, [IW_IOCTL(SIOCGIWRATE)] = r8192_wx_get_rate, [IW_IOCTL(SIOCSIWRTS)] = r8192_wx_set_rts, From b821768a77d5b43f05ad7a9316906a1c5a22cad6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:50 +0200 Subject: [PATCH 0800/2431] staging: rtl8192e: Rename r8192_wx_get_power Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_power to _rtl92e_wx_get_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 2312d01cf634..671664c5f4f4 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -130,9 +130,9 @@ static int r8192_wx_set_power(struct net_device *dev, return ret; } -static int r8192_wx_get_power(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_power(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1144,7 +1144,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWENCODE)] = r8192_wx_set_enc, [IW_IOCTL(SIOCGIWENCODE)] = _rtl92e_wx_get_enc, [IW_IOCTL(SIOCSIWPOWER)] = r8192_wx_set_power, - [IW_IOCTL(SIOCGIWPOWER)] = r8192_wx_get_power, + [IW_IOCTL(SIOCGIWPOWER)] = _rtl92e_wx_get_power, [IW_IOCTL(SIOCSIWGENIE)] = r8192_wx_set_gen_ie, [IW_IOCTL(SIOCGIWGENIE)] = _rtl92e_wx_get_gen_ie, [IW_IOCTL(SIOCSIWMLME)] = r8192_wx_set_mlme, From e792cf88de1942852b3c4de2451f6eadb5d7a99f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:51 +0200 Subject: [PATCH 0801/2431] staging: rtl8192e: Rename r8192_wx_get_PromiscuousMode Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_PromiscuousMode to _rtl92e_wx_get_promisc_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 671664c5f4f4..c8cbc81d4c4b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -1095,9 +1095,9 @@ static int r8192_wx_set_PromiscuousMode(struct net_device *dev, } -static int r8192_wx_get_PromiscuousMode(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_promisc_mode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); struct rtllib_device *ieee = priv->rtllib; @@ -1215,7 +1215,7 @@ static iw_handler r8192_private_handler[] = { (iw_handler)NULL, (iw_handler)NULL, (iw_handler)r8192_wx_set_PromiscuousMode, - (iw_handler)r8192_wx_get_PromiscuousMode, + (iw_handler)_rtl92e_wx_get_promisc_mode, }; static struct iw_statistics *r8192_get_wireless_stats(struct net_device *dev) From 5be1e1ff7cf649c538c85fd5dbbdce04220dde8b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:52 +0200 Subject: [PATCH 0802/2431] staging: rtl8192e: Rename r8192_wx_get_rate Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_rate to _rtl92e_wx_get_rate. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index c8cbc81d4c4b..e5d27ed718c5 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -50,9 +50,9 @@ static int _rtl92e_wx_get_mode(struct net_device *dev, return rtllib_wx_get_mode(priv->rtllib, a, wrqu, b); } -static int r8192_wx_get_rate(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_rate(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1134,7 +1134,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWNICKN)] = r8192_wx_set_nick, [IW_IOCTL(SIOCGIWNICKN)] = _rtl92e_wx_get_nick, [IW_IOCTL(SIOCSIWRATE)] = r8192_wx_set_rate, - [IW_IOCTL(SIOCGIWRATE)] = r8192_wx_get_rate, + [IW_IOCTL(SIOCGIWRATE)] = _rtl92e_wx_get_rate, [IW_IOCTL(SIOCSIWRTS)] = r8192_wx_set_rts, [IW_IOCTL(SIOCGIWRTS)] = r8192_wx_get_rts, [IW_IOCTL(SIOCSIWFRAG)] = r8192_wx_set_frag, From e0c2194574d8d174a1122d5daefb5b1ee0de3ffc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:53 +0200 Subject: [PATCH 0803/2431] staging: rtl8192e: Rename r8192_wx_get_retry Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_retry to _rtl92e_wx_get_retry. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index e5d27ed718c5..09e4a4d9af26 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -833,7 +833,7 @@ exit: return err; } -static int r8192_wx_get_retry(struct net_device *dev, +static int _rtl92e_wx_get_retry(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) { @@ -1140,7 +1140,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWFRAG)] = r8192_wx_set_frag, [IW_IOCTL(SIOCGIWFRAG)] = _rtl92e_wx_get_frag, [IW_IOCTL(SIOCSIWRETRY)] = r8192_wx_set_retry, - [IW_IOCTL(SIOCGIWRETRY)] = r8192_wx_get_retry, + [IW_IOCTL(SIOCGIWRETRY)] = _rtl92e_wx_get_retry, [IW_IOCTL(SIOCSIWENCODE)] = r8192_wx_set_enc, [IW_IOCTL(SIOCGIWENCODE)] = _rtl92e_wx_get_enc, [IW_IOCTL(SIOCSIWPOWER)] = r8192_wx_set_power, From e19794b1ffb9817716d386e59cb565c96ee25c68 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:54 +0200 Subject: [PATCH 0804/2431] staging: rtl8192e: Rename r8192_wx_get_rts Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_rts to _rtl92e_wx_get_rts. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 09e4a4d9af26..ecd024c0bc89 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -100,9 +100,9 @@ static int r8192_wx_set_rts(struct net_device *dev, return ret; } -static int r8192_wx_get_rts(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_rts(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1136,7 +1136,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWRATE)] = r8192_wx_set_rate, [IW_IOCTL(SIOCGIWRATE)] = _rtl92e_wx_get_rate, [IW_IOCTL(SIOCSIWRTS)] = r8192_wx_set_rts, - [IW_IOCTL(SIOCGIWRTS)] = r8192_wx_get_rts, + [IW_IOCTL(SIOCGIWRTS)] = _rtl92e_wx_get_rts, [IW_IOCTL(SIOCSIWFRAG)] = r8192_wx_set_frag, [IW_IOCTL(SIOCGIWFRAG)] = _rtl92e_wx_get_frag, [IW_IOCTL(SIOCSIWRETRY)] = r8192_wx_set_retry, From 4d7b35c724c00354a8991daac951c4cfaebc8562 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:55 +0200 Subject: [PATCH 0805/2431] staging: rtl8192e: Rename r8192_wx_get_scan Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_scan to _rtl92e_wx_get_scan. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index ecd024c0bc89..389299c5034a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -480,8 +480,9 @@ static int r8192_wx_set_scan(struct net_device *dev, struct iw_request_info *a, } -static int r8192_wx_get_scan(struct net_device *dev, struct iw_request_info *a, - union iwreq_data *wrqu, char *b) +static int _rtl92e_wx_get_scan(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) { int ret; @@ -1128,7 +1129,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWAP)] = r8192_wx_set_wap, [IW_IOCTL(SIOCGIWAP)] = r8192_wx_get_wap, [IW_IOCTL(SIOCSIWSCAN)] = r8192_wx_set_scan, - [IW_IOCTL(SIOCGIWSCAN)] = r8192_wx_get_scan, + [IW_IOCTL(SIOCGIWSCAN)] = _rtl92e_wx_get_scan, [IW_IOCTL(SIOCSIWESSID)] = r8192_wx_set_essid, [IW_IOCTL(SIOCGIWESSID)] = _rtl92e_wx_get_essid, [IW_IOCTL(SIOCSIWNICKN)] = r8192_wx_set_nick, From fbeb359403c4664ab1fefd7a9d0aa2462a4d14e8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:56 +0200 Subject: [PATCH 0806/2431] staging: rtl8192e: Rename r8192_wx_get_sens Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_sens to _rtl92e_wx_get_sens. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 389299c5034a..e7b270d89d9f 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -857,9 +857,9 @@ static int _rtl92e_wx_get_retry(struct net_device *dev, return 0; } -static int r8192_wx_get_sens(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_sens(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1124,7 +1124,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWMODE)] = r8192_wx_set_mode, [IW_IOCTL(SIOCGIWMODE)] = _rtl92e_wx_get_mode, [IW_IOCTL(SIOCSIWSENS)] = r8192_wx_set_sens, - [IW_IOCTL(SIOCGIWSENS)] = r8192_wx_get_sens, + [IW_IOCTL(SIOCGIWSENS)] = _rtl92e_wx_get_sens, [IW_IOCTL(SIOCGIWRANGE)] = rtl8192_wx_get_range, [IW_IOCTL(SIOCSIWAP)] = r8192_wx_set_wap, [IW_IOCTL(SIOCGIWAP)] = r8192_wx_get_wap, From 7cd40ae4fe3f2fdc2b74fc760eda3f826087ab98 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:57 +0200 Subject: [PATCH 0807/2431] staging: rtl8192e: Rename r8192_wx_get_wap Use naming schema found in other rtlwifi devices. Rename r8192_wx_get_wap to _rtl92e_wx_get_wap. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index e7b270d89d9f..8cca98aa423d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -659,9 +659,9 @@ static int r8192_wx_set_wap(struct net_device *dev, } -static int r8192_wx_get_wap(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_get_wap(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1127,7 +1127,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWSENS)] = _rtl92e_wx_get_sens, [IW_IOCTL(SIOCGIWRANGE)] = rtl8192_wx_get_range, [IW_IOCTL(SIOCSIWAP)] = r8192_wx_set_wap, - [IW_IOCTL(SIOCGIWAP)] = r8192_wx_get_wap, + [IW_IOCTL(SIOCGIWAP)] = _rtl92e_wx_get_wap, [IW_IOCTL(SIOCSIWSCAN)] = r8192_wx_set_scan, [IW_IOCTL(SIOCGIWSCAN)] = _rtl92e_wx_get_scan, [IW_IOCTL(SIOCSIWESSID)] = r8192_wx_set_essid, From 99f1859f8da099add02a89a03d37af11dd37c6a5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:58 +0200 Subject: [PATCH 0808/2431] staging: rtl8192e: Rename r8192_wx_set_auth Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_auth to _rtl92e_wx_set_auth. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 8cca98aa423d..3db1efaff560 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -980,9 +980,10 @@ end_hw_sec: return ret; } -static int r8192_wx_set_auth(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *data, char *extra) + +static int _rtl92e_wx_set_auth(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *data, char *extra) { int ret = 0; @@ -1149,7 +1150,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWGENIE)] = r8192_wx_set_gen_ie, [IW_IOCTL(SIOCGIWGENIE)] = _rtl92e_wx_get_gen_ie, [IW_IOCTL(SIOCSIWMLME)] = r8192_wx_set_mlme, - [IW_IOCTL(SIOCSIWAUTH)] = r8192_wx_set_auth, + [IW_IOCTL(SIOCSIWAUTH)] = _rtl92e_wx_set_auth, [IW_IOCTL(SIOCSIWENCODEEXT)] = r8192_wx_set_enc_ext, }; From d373a0cebb211031899913ce85d31e8c77b2eeb6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:59 +0200 Subject: [PATCH 0809/2431] staging: rtl8192e: Rename r8192_wx_set_debugflag Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_debugflag to _rtl92e_wx_set_debug. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 3db1efaff560..b0766b7210ef 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -240,9 +240,9 @@ static int r8192se_wx_set_force_lps(struct net_device *dev, } -static int r8192_wx_set_debugflag(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_debug(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); u8 c = *extra; @@ -1194,7 +1194,7 @@ static const struct iw_priv_args r8192_private_args[] = { }; static iw_handler r8192_private_handler[] = { - (iw_handler)r8192_wx_set_debugflag, /*SIOCIWSECONDPRIV*/ + (iw_handler)_rtl92e_wx_set_debug, /*SIOCIWSECONDPRIV*/ (iw_handler)r8192_wx_set_scan_type, (iw_handler)r8192_wx_set_rawtx, (iw_handler)_rtl92e_wx_force_reset, From e197821fb587155ccf2b1d4a573486b2605aadd9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:00 +0200 Subject: [PATCH 0810/2431] staging: rtl8192e: Rename r8192_wx_set_enc_ext Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_enc_ext to _rtl92e_wx_set_encode_ext. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index b0766b7210ef..43de413d7789 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -898,9 +898,9 @@ exit: return err; } -static int r8192_wx_set_enc_ext(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_encode_ext(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { int ret = 0; struct r8192_priv *priv = rtllib_priv(dev); @@ -1151,7 +1151,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWGENIE)] = _rtl92e_wx_get_gen_ie, [IW_IOCTL(SIOCSIWMLME)] = r8192_wx_set_mlme, [IW_IOCTL(SIOCSIWAUTH)] = _rtl92e_wx_set_auth, - [IW_IOCTL(SIOCSIWENCODEEXT)] = r8192_wx_set_enc_ext, + [IW_IOCTL(SIOCSIWENCODEEXT)] = _rtl92e_wx_set_encode_ext, }; /* the following rule need to be following, From 03550af0c4f2660a90ca680f05a4137c262aa1f9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:01 +0200 Subject: [PATCH 0811/2431] staging: rtl8192e: Rename r8192_wx_set_essid Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_essid to _rtl92e_wx_set_essid. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 43de413d7789..26d5cdc5e997 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -504,9 +504,9 @@ static int _rtl92e_wx_get_scan(struct net_device *dev, return ret; } -static int r8192_wx_set_essid(struct net_device *dev, - struct iw_request_info *a, - union iwreq_data *wrqu, char *b) +static int _rtl92e_wx_set_essid(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) { struct r8192_priv *priv = rtllib_priv(dev); int ret; @@ -1131,7 +1131,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWAP)] = _rtl92e_wx_get_wap, [IW_IOCTL(SIOCSIWSCAN)] = r8192_wx_set_scan, [IW_IOCTL(SIOCGIWSCAN)] = _rtl92e_wx_get_scan, - [IW_IOCTL(SIOCSIWESSID)] = r8192_wx_set_essid, + [IW_IOCTL(SIOCSIWESSID)] = _rtl92e_wx_set_essid, [IW_IOCTL(SIOCGIWESSID)] = _rtl92e_wx_get_essid, [IW_IOCTL(SIOCSIWNICKN)] = r8192_wx_set_nick, [IW_IOCTL(SIOCGIWNICKN)] = _rtl92e_wx_get_nick, From c9128ca2d67982a4c6b6738fd70b842360600b1b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:02 +0200 Subject: [PATCH 0812/2431] staging: rtl8192e: Rename r8192_wx_set_frag Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_frag to _rtl92e_wx_set_frag. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 26d5cdc5e997..040b3296e0ea 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -600,9 +600,9 @@ static int _rtl92e_wx_get_name(struct net_device *dev, } -static int r8192_wx_set_frag(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_frag(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1139,7 +1139,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWRATE)] = _rtl92e_wx_get_rate, [IW_IOCTL(SIOCSIWRTS)] = r8192_wx_set_rts, [IW_IOCTL(SIOCGIWRTS)] = _rtl92e_wx_get_rts, - [IW_IOCTL(SIOCSIWFRAG)] = r8192_wx_set_frag, + [IW_IOCTL(SIOCSIWFRAG)] = _rtl92e_wx_set_frag, [IW_IOCTL(SIOCGIWFRAG)] = _rtl92e_wx_get_frag, [IW_IOCTL(SIOCSIWRETRY)] = r8192_wx_set_retry, [IW_IOCTL(SIOCGIWRETRY)] = _rtl92e_wx_get_retry, From a1f1c8b0774f1c0d52c1857272708bf6525ae7a7 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:03 +0200 Subject: [PATCH 0813/2431] staging: rtl8192e: Rename r8192_wx_set_freq Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_freq to _rtl92e_wx_set_freq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 040b3296e0ea..f09e5229cf4b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -573,8 +573,9 @@ static int _rtl92e_wx_get_nick(struct net_device *dev, return 0; } -static int r8192_wx_set_freq(struct net_device *dev, struct iw_request_info *a, - union iwreq_data *wrqu, char *b) +static int _rtl92e_wx_set_freq(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) { int ret; struct r8192_priv *priv = rtllib_priv(dev); @@ -1120,7 +1121,7 @@ static int _rtl92e_wx_get_promisc_mode(struct net_device *dev, #define IW_IOCTL(x) ((x) - SIOCSIWCOMMIT) static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWNAME)] = _rtl92e_wx_get_name, - [IW_IOCTL(SIOCSIWFREQ)] = r8192_wx_set_freq, + [IW_IOCTL(SIOCSIWFREQ)] = _rtl92e_wx_set_freq, [IW_IOCTL(SIOCGIWFREQ)] = _rtl92e_wx_get_freq, [IW_IOCTL(SIOCSIWMODE)] = r8192_wx_set_mode, [IW_IOCTL(SIOCGIWMODE)] = _rtl92e_wx_get_mode, From 49d650e7ab29252b1bd7f175176ec85e553bdc02 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:04 +0200 Subject: [PATCH 0814/2431] staging: rtl8192e: Rename r8192_wx_set_gen_ie Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_gen_ie to _rtl92e_wx_set_gen_ie. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index f09e5229cf4b..1af6b282795c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -1017,9 +1017,9 @@ static int r8192_wx_set_mlme(struct net_device *dev, return ret; } -static int r8192_wx_set_gen_ie(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *data, char *extra) +static int _rtl92e_wx_set_gen_ie(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *data, char *extra) { int ret = 0; @@ -1148,7 +1148,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWENCODE)] = _rtl92e_wx_get_enc, [IW_IOCTL(SIOCSIWPOWER)] = r8192_wx_set_power, [IW_IOCTL(SIOCGIWPOWER)] = _rtl92e_wx_get_power, - [IW_IOCTL(SIOCSIWGENIE)] = r8192_wx_set_gen_ie, + [IW_IOCTL(SIOCSIWGENIE)] = _rtl92e_wx_set_gen_ie, [IW_IOCTL(SIOCGIWGENIE)] = _rtl92e_wx_get_gen_ie, [IW_IOCTL(SIOCSIWMLME)] = r8192_wx_set_mlme, [IW_IOCTL(SIOCSIWAUTH)] = _rtl92e_wx_set_auth, From cdd105f8bea1a2cf44494b9579919b4680c4c5bd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:05 +0200 Subject: [PATCH 0815/2431] staging: rtl8192e: Rename r8192_wx_set_mlme Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_mlme to _rtl92e_wx_set_mlme. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 1af6b282795c..d5c93aadce1c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -999,9 +999,9 @@ static int _rtl92e_wx_set_auth(struct net_device *dev, return ret; } -static int r8192_wx_set_mlme(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_mlme(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { int ret = 0; @@ -1150,7 +1150,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWPOWER)] = _rtl92e_wx_get_power, [IW_IOCTL(SIOCSIWGENIE)] = _rtl92e_wx_set_gen_ie, [IW_IOCTL(SIOCGIWGENIE)] = _rtl92e_wx_get_gen_ie, - [IW_IOCTL(SIOCSIWMLME)] = r8192_wx_set_mlme, + [IW_IOCTL(SIOCSIWMLME)] = _rtl92e_wx_set_mlme, [IW_IOCTL(SIOCSIWAUTH)] = _rtl92e_wx_set_auth, [IW_IOCTL(SIOCSIWENCODEEXT)] = _rtl92e_wx_set_encode_ext, }; From 89528d6c2cdfd5a2b12eebad043cac077d1cc502 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:06 +0200 Subject: [PATCH 0816/2431] staging: rtl8192e: Rename r8192_wx_set_mode Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_mode to _rtl92e_wx_set_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index d5c93aadce1c..6273928bd09d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -259,8 +259,9 @@ static int _rtl92e_wx_set_debug(struct net_device *dev, return 0; } -static int r8192_wx_set_mode(struct net_device *dev, struct iw_request_info *a, - union iwreq_data *wrqu, char *b) +static int _rtl92e_wx_set_mode(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) { struct r8192_priv *priv = rtllib_priv(dev); struct rtllib_device *ieee = netdev_priv_rsl(dev); @@ -1123,7 +1124,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWNAME)] = _rtl92e_wx_get_name, [IW_IOCTL(SIOCSIWFREQ)] = _rtl92e_wx_set_freq, [IW_IOCTL(SIOCGIWFREQ)] = _rtl92e_wx_get_freq, - [IW_IOCTL(SIOCSIWMODE)] = r8192_wx_set_mode, + [IW_IOCTL(SIOCSIWMODE)] = _rtl92e_wx_set_mode, [IW_IOCTL(SIOCGIWMODE)] = _rtl92e_wx_get_mode, [IW_IOCTL(SIOCSIWSENS)] = r8192_wx_set_sens, [IW_IOCTL(SIOCGIWSENS)] = _rtl92e_wx_get_sens, From 06a0b5c234ae11947fee804358ea050fdce057fd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:07 +0200 Subject: [PATCH 0817/2431] staging: rtl8192e: Rename r8192_wx_set_nick Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_nick to _rtl92e_wx_set_nick. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 6273928bd09d..970e4f6ee7d7 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -542,9 +542,9 @@ static int _rtl92e_wx_get_essid(struct net_device *dev, return ret; } -static int r8192_wx_set_nick(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_nick(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1135,7 +1135,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWSCAN)] = _rtl92e_wx_get_scan, [IW_IOCTL(SIOCSIWESSID)] = _rtl92e_wx_set_essid, [IW_IOCTL(SIOCGIWESSID)] = _rtl92e_wx_get_essid, - [IW_IOCTL(SIOCSIWNICKN)] = r8192_wx_set_nick, + [IW_IOCTL(SIOCSIWNICKN)] = _rtl92e_wx_set_nick, [IW_IOCTL(SIOCGIWNICKN)] = _rtl92e_wx_get_nick, [IW_IOCTL(SIOCSIWRATE)] = r8192_wx_set_rate, [IW_IOCTL(SIOCGIWRATE)] = _rtl92e_wx_get_rate, From f2e901857a970abd84ff26f7cc0e5d0f0c54efce Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:08 +0200 Subject: [PATCH 0818/2431] staging: rtl8192e: Rename r8192_wx_set_power Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_power to _rtl92e_wx_set_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 970e4f6ee7d7..6b6968bc3bfd 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -109,9 +109,9 @@ static int _rtl92e_wx_get_rts(struct net_device *dev, return rtllib_wx_get_rts(priv->rtllib, info, wrqu, extra); } -static int r8192_wx_set_power(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_power(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { int ret; struct r8192_priv *priv = rtllib_priv(dev); @@ -1147,7 +1147,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWRETRY)] = _rtl92e_wx_get_retry, [IW_IOCTL(SIOCSIWENCODE)] = r8192_wx_set_enc, [IW_IOCTL(SIOCGIWENCODE)] = _rtl92e_wx_get_enc, - [IW_IOCTL(SIOCSIWPOWER)] = r8192_wx_set_power, + [IW_IOCTL(SIOCSIWPOWER)] = _rtl92e_wx_set_power, [IW_IOCTL(SIOCGIWPOWER)] = _rtl92e_wx_get_power, [IW_IOCTL(SIOCSIWGENIE)] = _rtl92e_wx_set_gen_ie, [IW_IOCTL(SIOCGIWGENIE)] = _rtl92e_wx_get_gen_ie, From d987a158223554347b545f869c90a06c4f1b1532 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:09 +0200 Subject: [PATCH 0819/2431] staging: rtl8192e: Rename r8192_wx_set_PromiscuousMode Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_PromiscuousMode to _rtl92e_wx_set_promisc_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 6b6968bc3bfd..48667124300b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -1058,9 +1058,9 @@ static int _rtl92e_wx_get_gen_ie(struct net_device *dev, #define OID_RT_INTEL_PROMISCUOUS_MODE 0xFF0101F6 -static int r8192_wx_set_PromiscuousMode(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_promisc_mode(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); struct rtllib_device *ieee = priv->rtllib; @@ -1218,7 +1218,7 @@ static iw_handler r8192_private_handler[] = { (iw_handler)NULL, (iw_handler)NULL, (iw_handler)NULL, - (iw_handler)r8192_wx_set_PromiscuousMode, + (iw_handler)_rtl92e_wx_set_promisc_mode, (iw_handler)_rtl92e_wx_get_promisc_mode, }; From ad6a5412b06df81185503cf9184e684a761d4993 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:10 +0200 Subject: [PATCH 0820/2431] staging: rtl8192e: Rename r8192_wx_set_rate Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_rate to _rtl92e_wx_set_rate. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 48667124300b..b8f0d4a9b45d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -59,11 +59,9 @@ static int _rtl92e_wx_get_rate(struct net_device *dev, return rtllib_wx_get_rate(priv->rtllib, info, wrqu, extra); } - - -static int r8192_wx_set_rate(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_rate(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { int ret; struct r8192_priv *priv = rtllib_priv(dev); @@ -1137,7 +1135,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWESSID)] = _rtl92e_wx_get_essid, [IW_IOCTL(SIOCSIWNICKN)] = _rtl92e_wx_set_nick, [IW_IOCTL(SIOCGIWNICKN)] = _rtl92e_wx_get_nick, - [IW_IOCTL(SIOCSIWRATE)] = r8192_wx_set_rate, + [IW_IOCTL(SIOCSIWRATE)] = _rtl92e_wx_set_rate, [IW_IOCTL(SIOCGIWRATE)] = _rtl92e_wx_get_rate, [IW_IOCTL(SIOCSIWRTS)] = r8192_wx_set_rts, [IW_IOCTL(SIOCGIWRTS)] = _rtl92e_wx_get_rts, From 3118323435881185f11df71197e14bd9d486488c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:11 +0200 Subject: [PATCH 0821/2431] staging: rtl8192e: Rename r8192_wx_set_rawtx Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_rawtx to _rtl92e_wx_set_rawtx. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index b8f0d4a9b45d..fa3bee35faec 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -137,9 +137,9 @@ static int _rtl92e_wx_get_power(struct net_device *dev, return rtllib_wx_get_power(priv->rtllib, info, wrqu, extra); } -static int r8192_wx_set_rawtx(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_rawtx(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); int ret; @@ -1196,7 +1196,7 @@ static const struct iw_priv_args r8192_private_args[] = { static iw_handler r8192_private_handler[] = { (iw_handler)_rtl92e_wx_set_debug, /*SIOCIWSECONDPRIV*/ (iw_handler)r8192_wx_set_scan_type, - (iw_handler)r8192_wx_set_rawtx, + (iw_handler)_rtl92e_wx_set_rawtx, (iw_handler)_rtl92e_wx_force_reset, (iw_handler)NULL, (iw_handler)NULL, From f761ee68c90184b600f59d58697a95dac7654f8d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:12 +0200 Subject: [PATCH 0822/2431] staging: rtl8192e: Rename r8192_wx_set_retry Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_retry to _rtl92e_wx_set_retry. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index fa3bee35faec..a2d6297812f1 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -793,7 +793,7 @@ static int r8192_wx_set_scan_type(struct net_device *dev, #define R8192_MAX_RETRY 255 -static int r8192_wx_set_retry(struct net_device *dev, +static int _rtl92e_wx_set_retry(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) { @@ -1141,7 +1141,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWRTS)] = _rtl92e_wx_get_rts, [IW_IOCTL(SIOCSIWFRAG)] = _rtl92e_wx_set_frag, [IW_IOCTL(SIOCGIWFRAG)] = _rtl92e_wx_get_frag, - [IW_IOCTL(SIOCSIWRETRY)] = r8192_wx_set_retry, + [IW_IOCTL(SIOCSIWRETRY)] = _rtl92e_wx_set_retry, [IW_IOCTL(SIOCGIWRETRY)] = _rtl92e_wx_get_retry, [IW_IOCTL(SIOCSIWENCODE)] = r8192_wx_set_enc, [IW_IOCTL(SIOCGIWENCODE)] = _rtl92e_wx_get_enc, From c90ee2fcbe132c449c94278edc450145f998972a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:13 +0200 Subject: [PATCH 0823/2431] staging: rtl8192e: Rename r8192_wx_set_rts Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_rts to _rtl92e_wx_set_rts. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index a2d6297812f1..0aa9a7961e56 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -78,10 +78,9 @@ static int _rtl92e_wx_set_rate(struct net_device *dev, return ret; } - -static int r8192_wx_set_rts(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_rts(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { int ret; struct r8192_priv *priv = rtllib_priv(dev); @@ -1137,7 +1136,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWNICKN)] = _rtl92e_wx_get_nick, [IW_IOCTL(SIOCSIWRATE)] = _rtl92e_wx_set_rate, [IW_IOCTL(SIOCGIWRATE)] = _rtl92e_wx_get_rate, - [IW_IOCTL(SIOCSIWRTS)] = r8192_wx_set_rts, + [IW_IOCTL(SIOCSIWRTS)] = _rtl92e_wx_set_rts, [IW_IOCTL(SIOCGIWRTS)] = _rtl92e_wx_get_rts, [IW_IOCTL(SIOCSIWFRAG)] = _rtl92e_wx_set_frag, [IW_IOCTL(SIOCGIWFRAG)] = _rtl92e_wx_get_frag, From fe13d0105df026e0a954ffcd65aeaa6ec46a5e1f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:14 +0200 Subject: [PATCH 0824/2431] staging: rtl8192e: Rename r8192_wx_set_scan Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_scan to _rtl92e_wx_set_scan. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 0aa9a7961e56..e9166ed1cbac 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -389,8 +389,9 @@ static int rtl8192_wx_get_range(struct net_device *dev, return 0; } -static int r8192_wx_set_scan(struct net_device *dev, struct iw_request_info *a, - union iwreq_data *wrqu, char *b) +static int _rtl92e_wx_set_scan(struct net_device *dev, + struct iw_request_info *a, + union iwreq_data *wrqu, char *b) { struct r8192_priv *priv = rtllib_priv(dev); struct rtllib_device *ieee = priv->rtllib; @@ -1128,7 +1129,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWRANGE)] = rtl8192_wx_get_range, [IW_IOCTL(SIOCSIWAP)] = r8192_wx_set_wap, [IW_IOCTL(SIOCGIWAP)] = _rtl92e_wx_get_wap, - [IW_IOCTL(SIOCSIWSCAN)] = r8192_wx_set_scan, + [IW_IOCTL(SIOCSIWSCAN)] = _rtl92e_wx_set_scan, [IW_IOCTL(SIOCGIWSCAN)] = _rtl92e_wx_get_scan, [IW_IOCTL(SIOCSIWESSID)] = _rtl92e_wx_set_essid, [IW_IOCTL(SIOCGIWESSID)] = _rtl92e_wx_get_essid, From 11f24fd159fc0d1ce5895116942a496f9212321f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:15 +0200 Subject: [PATCH 0825/2431] staging: rtl8192e: Rename r8192_wx_set_scan_type Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_scan_type to _rtl92e_wx_set_scan_type. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index e9166ed1cbac..763b0dbcd853 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -774,9 +774,9 @@ end_hw_sec: return ret; } -static int r8192_wx_set_scan_type(struct net_device *dev, - struct iw_request_info *aa, - union iwreq_data *wrqu, char *p) +static int _rtl92e_wx_set_scan_type(struct net_device *dev, + struct iw_request_info *aa, + union iwreq_data *wrqu, char *p) { struct r8192_priv *priv = rtllib_priv(dev); int *parms = (int *)p; @@ -1195,7 +1195,7 @@ static const struct iw_priv_args r8192_private_args[] = { static iw_handler r8192_private_handler[] = { (iw_handler)_rtl92e_wx_set_debug, /*SIOCIWSECONDPRIV*/ - (iw_handler)r8192_wx_set_scan_type, + (iw_handler)_rtl92e_wx_set_scan_type, (iw_handler)_rtl92e_wx_set_rawtx, (iw_handler)_rtl92e_wx_force_reset, (iw_handler)NULL, From e7c821650f95afd857017f9bfcfd0f197f48d148 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:16 +0200 Subject: [PATCH 0826/2431] staging: rtl8192e: Rename r8192_wx_set_sens Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_sens to _rtl92e_wx_set_sens. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 763b0dbcd853..8e73aa5f1f7f 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -870,9 +870,9 @@ static int _rtl92e_wx_get_sens(struct net_device *dev, } -static int r8192_wx_set_sens(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_sens(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1124,7 +1124,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWFREQ)] = _rtl92e_wx_get_freq, [IW_IOCTL(SIOCSIWMODE)] = _rtl92e_wx_set_mode, [IW_IOCTL(SIOCGIWMODE)] = _rtl92e_wx_get_mode, - [IW_IOCTL(SIOCSIWSENS)] = r8192_wx_set_sens, + [IW_IOCTL(SIOCSIWSENS)] = _rtl92e_wx_set_sens, [IW_IOCTL(SIOCGIWSENS)] = _rtl92e_wx_get_sens, [IW_IOCTL(SIOCGIWRANGE)] = rtl8192_wx_get_range, [IW_IOCTL(SIOCSIWAP)] = r8192_wx_set_wap, From 291bf50d2348c13b7352f87ef5d0e8c866683941 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:17 +0200 Subject: [PATCH 0827/2431] staging: rtl8192e: Rename r8192_wx_set_wap Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_wap to _rtl92e_wx_set_wap. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 8e73aa5f1f7f..f11bcc296a77 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -637,10 +637,9 @@ static int _rtl92e_wx_get_frag(struct net_device *dev, } -static int r8192_wx_set_wap(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *awrq, - char *extra) +static int _rtl92e_wx_set_wap(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *awrq, char *extra) { int ret; struct r8192_priv *priv = rtllib_priv(dev); @@ -1127,7 +1126,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCSIWSENS)] = _rtl92e_wx_set_sens, [IW_IOCTL(SIOCGIWSENS)] = _rtl92e_wx_get_sens, [IW_IOCTL(SIOCGIWRANGE)] = rtl8192_wx_get_range, - [IW_IOCTL(SIOCSIWAP)] = r8192_wx_set_wap, + [IW_IOCTL(SIOCSIWAP)] = _rtl92e_wx_set_wap, [IW_IOCTL(SIOCGIWAP)] = _rtl92e_wx_get_wap, [IW_IOCTL(SIOCSIWSCAN)] = _rtl92e_wx_set_scan, [IW_IOCTL(SIOCGIWSCAN)] = _rtl92e_wx_get_scan, From a1252b09e9e191d1596a3a9c0dd0d4378dd7d8b6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:18 +0200 Subject: [PATCH 0828/2431] staging: rtl8192e: Rename rtl8192_wx_get_range Use naming schema found in other rtlwifi devices. Rename rtl8192_wx_get_range to _rtl92e_wx_get_range. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index f11bcc296a77..6bcc6362b5dc 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -318,7 +318,7 @@ struct iw_range_with_scan_capa { __u8 scan_capa; }; -static int rtl8192_wx_get_range(struct net_device *dev, +static int _rtl92e_wx_get_range(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) { @@ -1125,7 +1125,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWMODE)] = _rtl92e_wx_get_mode, [IW_IOCTL(SIOCSIWSENS)] = _rtl92e_wx_set_sens, [IW_IOCTL(SIOCGIWSENS)] = _rtl92e_wx_get_sens, - [IW_IOCTL(SIOCGIWRANGE)] = rtl8192_wx_get_range, + [IW_IOCTL(SIOCGIWRANGE)] = _rtl92e_wx_get_range, [IW_IOCTL(SIOCSIWAP)] = _rtl92e_wx_set_wap, [IW_IOCTL(SIOCGIWAP)] = _rtl92e_wx_get_wap, [IW_IOCTL(SIOCSIWSCAN)] = _rtl92e_wx_set_scan, From 440379c54b537021d519ccf3f5aab47d48fe07c6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:19 +0200 Subject: [PATCH 0829/2431] staging: rtl8192e: Rename rtl8192_parse_pci_configuration Use naming schema found in other rtlwifi devices. Rename rtl8192_parse_pci_configuration to _rtl92e_parse_pci_configuration. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c b/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c index 9fcb099e6edd..974c1ffe4560 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c @@ -25,7 +25,7 @@ #include "rtl_pci.h" #include "rtl_core.h" -static void rtl8192_parse_pci_configuration(struct pci_dev *pdev, +static void _rtl92e_parse_pci_configuration(struct pci_dev *pdev, struct net_device *dev) { struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev); @@ -92,7 +92,7 @@ bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev) return false; } - rtl8192_parse_pci_configuration(pdev, dev); + _rtl92e_parse_pci_configuration(pdev, dev); return true; } From fcc3df4f44d637f43ec4e04b2f3b8b692e0b3937 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:20 +0200 Subject: [PATCH 0830/2431] staging: rtl8192e: Rename InactivePsWorkItemCallback Use naming schema found in other rtlwifi devices. Rename InactivePsWorkItemCallback to _rtl92e_ps_update_rf_state. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c index f09560d60dc4..e1e4ab69772b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c @@ -122,21 +122,21 @@ void rtl92e_enter_sleep(struct net_device *dev, u64 time) spin_unlock_irqrestore(&priv->ps_lock, flags); } -static void InactivePsWorkItemCallback(struct net_device *dev) +static void _rtl92e_ps_update_rf_state(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *) &(priv->rtllib->PowerSaveControl); - RT_TRACE(COMP_PS, "InactivePsWorkItemCallback() --------->\n"); + RT_TRACE(COMP_PS, "_rtl92e_ps_update_rf_state() --------->\n"); pPSC->bSwRfProcessing = true; - RT_TRACE(COMP_PS, "InactivePsWorkItemCallback(): Set RF to %s.\n", + RT_TRACE(COMP_PS, "_rtl92e_ps_update_rf_state(): Set RF to %s.\n", pPSC->eInactivePowerState == eRfOff ? "OFF" : "ON"); rtl92e_set_rf_state(dev, pPSC->eInactivePowerState, RF_CHANGE_BY_IPS); pPSC->bSwRfProcessing = false; - RT_TRACE(COMP_PS, "InactivePsWorkItemCallback() <---------\n"); + RT_TRACE(COMP_PS, "_rtl92e_ps_update_rf_state() <---------\n"); } void rtl92e_ips_enter(struct net_device *dev) @@ -155,7 +155,7 @@ void rtl92e_ips_enter(struct net_device *dev) pPSC->eInactivePowerState = eRfOff; priv->isRFOff = true; priv->bInPowerSaveMode = true; - InactivePsWorkItemCallback(dev); + _rtl92e_ps_update_rf_state(dev); } } } @@ -174,7 +174,7 @@ void rtl92e_ips_leave(struct net_device *dev) RT_TRACE(COMP_PS, "rtl92e_ips_leave(): Turn on RF.\n"); pPSC->eInactivePowerState = eRfOn; priv->bInPowerSaveMode = false; - InactivePsWorkItemCallback(dev); + _rtl92e_ps_update_rf_state(dev); } } } From 79f387e710bcf19974345f26f13d253804684364 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:21 +0200 Subject: [PATCH 0831/2431] staging: rtl8192e: Rename MgntActSet_802_11_PowerSaveMode Use naming schema found in other rtlwifi devices. Rename MgntActSet_802_11_PowerSaveMode to _rtl92e_ps_set_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c index e1e4ab69772b..137b940ab706 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c @@ -222,8 +222,7 @@ void rtl92e_rtllib_ips_leave(struct net_device *dev) up(&priv->rtllib->ips_sem); } -static bool MgntActSet_802_11_PowerSaveMode(struct net_device *dev, - u8 rtPsMode) +static bool _rtl92e_ps_set_mode(struct net_device *dev, u8 rtPsMode) { struct r8192_priv *priv = rtllib_priv(dev); @@ -281,8 +280,7 @@ void rtl92e_leisure_ps_enter(struct net_device *dev) priv->rtllib->SetFwCmdHandler( dev, FW_CMD_LPS_ENTER); } - MgntActSet_802_11_PowerSaveMode(dev, - RTLLIB_PS_MBCAST | + _rtl92e_ps_set_mode(dev, RTLLIB_PS_MBCAST | RTLLIB_PS_UNICAST); } } else @@ -305,8 +303,7 @@ void rtl92e_leisure_ps_leave(struct net_device *dev) if (priv->rtllib->ps != RTLLIB_PS_DISABLED) { RT_TRACE(COMP_LPS, "rtl92e_leisure_ps_leave(): Busy Traffic , Leave 802.11 power save..\n"); - MgntActSet_802_11_PowerSaveMode(dev, - RTLLIB_PS_DISABLED); + _rtl92e_ps_set_mode(dev, RTLLIB_PS_DISABLED); if (!pPSC->bFwCtrlLPS) { if (priv->rtllib->SetFwCmdHandler) From 3831d405e43380bf11920958e9dc44f28cd53ef1 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:22 +0200 Subject: [PATCH 0832/2431] staging: rtl8192e: Rename rtl8192_hw_sleep_down Use naming schema found in other rtlwifi devices. Rename rtl8192_hw_sleep_down to _rtl92e_hw_sleep. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c index 137b940ab706..6fb590dbe70b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c @@ -30,7 +30,7 @@ #include "r8192E_cmdpkt.h" #include -static void rtl8192_hw_sleep_down(struct net_device *dev) +static void _rtl92e_hw_sleep(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); unsigned long flags = 0; @@ -39,7 +39,7 @@ static void rtl8192_hw_sleep_down(struct net_device *dev) if (priv->RFChangeInProgress) { spin_unlock_irqrestore(&priv->rf_ps_lock, flags); RT_TRACE(COMP_DBG, - "rtl8192_hw_sleep_down(): RF Change in progress!\n"); + "_rtl92e_hw_sleep(): RF Change in progress!\n"); return; } spin_unlock_irqrestore(&priv->rf_ps_lock, flags); @@ -54,7 +54,7 @@ void rtl92e_hw_sleep_wq(void *data) struct rtllib_device, hw_sleep_wq); struct net_device *dev = ieee->dev; - rtl8192_hw_sleep_down(dev); + _rtl92e_hw_sleep(dev); } void rtl92e_hw_wakeup(struct net_device *dev) From e830e0dc455625353844154f7d53f391467c16fc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:23 +0200 Subject: [PATCH 0833/2431] staging: rtl8192e: Rename r8192_get_wireless_stats Use naming schema found in other rtlwifi devices. Rename r8192_get_wireless_stats to _rtl92e_get_wireless_stats. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 6bcc6362b5dc..4bbb594245a3 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -1219,7 +1219,7 @@ static iw_handler r8192_private_handler[] = { (iw_handler)_rtl92e_wx_get_promisc_mode, }; -static struct iw_statistics *r8192_get_wireless_stats(struct net_device *dev) +static struct iw_statistics *_rtl92e_get_wireless_stats(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); struct rtllib_device *ieee = priv->rtllib; @@ -1254,6 +1254,6 @@ const struct iw_handler_def r8192_wx_handlers_def = { .num_private = ARRAY_SIZE(r8192_private_handler), .num_private_args = sizeof(r8192_private_args) / sizeof(struct iw_priv_args), - .get_wireless_stats = r8192_get_wireless_stats, + .get_wireless_stats = _rtl92e_get_wireless_stats, .private_args = (struct iw_priv_args *)r8192_private_args, }; From 84e4dc10939419b967355cbc8630983d0b93bbf0 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:24 +0200 Subject: [PATCH 0834/2431] staging: rtl8192e: Rename r8192se_wx_set_force_lps Use naming schema found in other rtlwifi devices. Rename r8192se_wx_set_force_lps to _rtl92e_wx_set_force_lps. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 4bbb594245a3..dd273e67630c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -220,9 +220,9 @@ static int r8192se_wx_set_lps_awake_interval(struct net_device *dev, return 0; } -static int r8192se_wx_set_force_lps(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_force_lps(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1204,7 +1204,7 @@ static iw_handler r8192_private_handler[] = { (iw_handler)NULL, (iw_handler)NULL, (iw_handler)r8192se_wx_set_lps_awake_interval, - (iw_handler)r8192se_wx_set_force_lps, + (iw_handler)_rtl92e_wx_set_force_lps, (iw_handler)NULL, (iw_handler)NULL, (iw_handler)NULL, From 0a263fcf0a23b826bd24dd0c500ba3f52728570e Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:25 +0200 Subject: [PATCH 0835/2431] staging: rtl8192e: Rename r8192se_wx_set_lps_awake_interval Use naming schema found in other rtlwifi devices. Rename r8192se_wx_set_lps_awake_interval to _rtl92e_wx_set_lps_awake_interval. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index dd273e67630c..641b0694b013 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -202,9 +202,10 @@ static int _rtl92e_wx_adapter_power_status(struct net_device *dev, return 0; } -static int r8192se_wx_set_lps_awake_interval(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) +static int _rtl92e_wx_set_lps_awake_interval(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, + char *extra) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *) @@ -1203,7 +1204,7 @@ static iw_handler r8192_private_handler[] = { (iw_handler)NULL, (iw_handler)NULL, (iw_handler)NULL, - (iw_handler)r8192se_wx_set_lps_awake_interval, + (iw_handler)_rtl92e_wx_set_lps_awake_interval, (iw_handler)_rtl92e_wx_set_force_lps, (iw_handler)NULL, (iw_handler)NULL, From d4244a0305d7b0ee37d18897204b03453650a7b9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:26 +0200 Subject: [PATCH 0836/2431] staging: rtl8192e: Rename dm_bandwidth_autoswitch Use naming schema found in other rtlwifi devices. Rename dm_bandwidth_autoswitch to _rtl92e_dm_bandwidth_autoswitch. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 1a0c690bfa07..f3ac822134b9 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -169,7 +169,7 @@ struct drx_path_sel DM_RxPathSelTable; static void dm_check_rate_adaptive(struct net_device *dev); static void dm_init_bandwidth_autoswitch(struct net_device *dev); -static void dm_bandwidth_autoswitch(struct net_device *dev); +static void _rtl92e_dm_bandwidth_autoswitch(struct net_device *dev); static void dm_check_txpower_tracking(struct net_device *dev); @@ -274,7 +274,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) dm_check_txpower_tracking(dev); dm_ctrl_initgain_byrssi(dev); - dm_bandwidth_autoswitch(dev); + _rtl92e_dm_bandwidth_autoswitch(dev); dm_check_rx_path_selection(dev); dm_check_fsync(dev); @@ -475,7 +475,7 @@ static void dm_init_bandwidth_autoswitch(struct net_device *dev) priv->rtllib->bandwidth_auto_switch.bautoswitch_enable = false; } -static void dm_bandwidth_autoswitch(struct net_device *dev) +static void _rtl92e_dm_bandwidth_autoswitch(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From 24a29bf819e397969385b6944daba636a06e0d3d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:27 +0200 Subject: [PATCH 0837/2431] staging: rtl8192e: Rename dm_bb_initialgain_backup Use naming schema found in other rtlwifi devices. Rename dm_bb_initialgain_backup to _rtl92e_dm_bb_initialgain_backup. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index f3ac822134b9..6c1061e0dd9e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -180,8 +180,7 @@ static void dm_check_txpower_tracking(struct net_device *dev); static void dm_bb_initialgain_restore(struct net_device *dev); - -static void dm_bb_initialgain_backup(struct net_device *dev); +static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev); static void dm_dig_init(struct net_device *dev); static void dm_ctrl_initgain_byrssi(struct net_device *dev); @@ -1262,12 +1261,12 @@ void rtl92e_dm_backup_state(struct net_device *dev) priv->bswitch_fsync = false; priv->bfsync_processing = false; - dm_bb_initialgain_backup(dev); + _rtl92e_dm_bb_initialgain_backup(dev); } -static void dm_bb_initialgain_backup(struct net_device *dev) +static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u32 bit_mask = bMaskByte0; From 90cc1250046ef2d36947e3be9368db557ad998b3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:28 +0200 Subject: [PATCH 0838/2431] staging: rtl8192e: Rename dm_bb_initialgain_restore Use naming schema found in other rtlwifi devices. Rename dm_bb_initialgain_restore to _rtl92e_dm_bb_initialgain_restore. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 6c1061e0dd9e..785eff6bc83a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -174,12 +174,7 @@ static void _rtl92e_dm_bandwidth_autoswitch(struct net_device *dev); static void dm_check_txpower_tracking(struct net_device *dev); - - - - -static void dm_bb_initialgain_restore(struct net_device *dev); - +static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev); static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev); static void dm_dig_init(struct net_device *dev); @@ -1215,11 +1210,11 @@ void rtl92e_dm_restore_state(struct net_device *dev) if (priv->btxpower_trackingInit && priv->btxpower_tracking) dm_txpower_reset_recovery(dev); - dm_bb_initialgain_restore(dev); + _rtl92e_dm_bb_initialgain_restore(dev); } -static void dm_bb_initialgain_restore(struct net_device *dev) +static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u32 bit_mask = 0x7f; From a50bc3f6cd47bb42c6cfd66b99050d6a719a7999 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:29 +0200 Subject: [PATCH 0839/2431] staging: rtl8192e: Rename dm_CCKTxPowerAdjust_ThermalMeter Use naming schema found in other rtlwifi devices. Rename dm_CCKTxPowerAdjust_ThermalMeter to _rtl92e_dm_cck_tx_power_adjust_thermal_meter. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 785eff6bc83a..175b8865c98e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -1091,8 +1091,8 @@ static void dm_CCKTxPowerAdjust_TSSI(struct net_device *dev, bool bInCH14) } } -static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, - bool bInCH14) +static void _rtl92e_dm_cck_tx_power_adjust_thermal_meter(struct net_device *dev, + bool bInCH14) { u32 TempVal; struct r8192_priv *priv = rtllib_priv(dev); @@ -1150,7 +1150,7 @@ void rtl92e_dm_cck_txpower_adjust(struct net_device *dev, bool binch14) if (priv->IC_Cut >= IC_VersionCut_D) dm_CCKTxPowerAdjust_TSSI(dev, binch14); else - dm_CCKTxPowerAdjust_ThermalMeter(dev, binch14); + _rtl92e_dm_cck_tx_power_adjust_thermal_meter(dev, binch14); } static void dm_txpower_reset_recovery(struct net_device *dev) From 52645a01225f3a8c459d4536da204af3f5a805da Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:30 +0200 Subject: [PATCH 0840/2431] staging: rtl8192e: Rename dm_CCKTxPowerAdjust_TSSI Use naming schema found in other rtlwifi devices. Rename dm_CCKTxPowerAdjust_TSSI to _rtl92e_dm_cck_tx_power_adjust_tssi. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 175b8865c98e..c71515b47f1a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -1053,7 +1053,8 @@ static void dm_check_txpower_tracking(struct net_device *dev) dm_CheckTXPowerTracking_ThermalMeter(dev); } -static void dm_CCKTxPowerAdjust_TSSI(struct net_device *dev, bool bInCH14) +static void _rtl92e_dm_cck_tx_power_adjust_tssi(struct net_device *dev, + bool bInCH14) { u32 TempVal; struct r8192_priv *priv = rtllib_priv(dev); @@ -1148,7 +1149,7 @@ void rtl92e_dm_cck_txpower_adjust(struct net_device *dev, bool binch14) struct r8192_priv *priv = rtllib_priv(dev); if (priv->IC_Cut >= IC_VersionCut_D) - dm_CCKTxPowerAdjust_TSSI(dev, binch14); + _rtl92e_dm_cck_tx_power_adjust_tssi(dev, binch14); else _rtl92e_dm_cck_tx_power_adjust_thermal_meter(dev, binch14); } From babb55f9db82896675275f1748f2d684fac13024 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:31 +0200 Subject: [PATCH 0841/2431] staging: rtl8192e: Rename dm_check_ac_dc_power Use naming schema found in other rtlwifi devices. Rename dm_check_ac_dc_power to _rtl92e_dm_check_ac_dc_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c71515b47f1a..9c69dfae2c35 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -203,7 +203,7 @@ static void dm_init_fsync(struct net_device *dev); static void dm_deInit_fsync(struct net_device *dev); static void dm_check_txrateandretrycount(struct net_device *dev); -static void dm_check_ac_dc_power(struct net_device *dev); +static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev); static void dm_check_fsync(struct net_device *dev); static void dm_CheckRfCtrlGPIO(void *data); static void dm_fsync_timer_callback(unsigned long data); @@ -257,7 +257,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) if (priv->being_init_adapter) return; - dm_check_ac_dc_power(dev); + _rtl92e_dm_check_ac_dc_power(dev); dm_check_pbc_gpio(dev); dm_check_txrateandretrycount(dev); @@ -277,7 +277,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) dm_ctstoself(dev); } -static void dm_check_ac_dc_power(struct net_device *dev) +static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); static char *ac_dc_script = "/etc/acpi/wireless-rtl-ac-dc-power.sh"; From f778eca7b98d4c48ce340c98d9193d599c8a0cd5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:32 +0200 Subject: [PATCH 0842/2431] staging: rtl8192e: Rename dm_check_edca_turbo Use naming schema found in other rtlwifi devices. Rename dm_check_edca_turbo to _rtl92e_dm_check_edca_turbo. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 9c69dfae2c35..9ff58873e0dc 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -189,7 +189,7 @@ static void dm_cs_ratio(struct net_device *dev); static void dm_init_ctstoself(struct net_device *dev); static void dm_Init_WA_Broadcom_IOT(struct net_device *dev); -static void dm_check_edca_turbo(struct net_device *dev); +static void _rtl92e_dm_check_edca_turbo(struct net_device *dev); static void dm_check_pbc_gpio(struct net_device *dev); @@ -261,7 +261,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) dm_check_pbc_gpio(dev); dm_check_txrateandretrycount(dev); - dm_check_edca_turbo(dev); + _rtl92e_dm_check_edca_turbo(dev); dm_check_rate_adaptive(dev); dm_dynamic_txpower(dev); @@ -1696,7 +1696,7 @@ void rtl92e_dm_init_edca_turbo(struct net_device *dev) priv->bis_cur_rdlstate = false; } -static void dm_check_edca_turbo(struct net_device *dev) +static void _rtl92e_dm_check_edca_turbo(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_hi_throughput *pHTInfo = priv->rtllib->pHTInfo; From e63b75613994511e3fd0657de421e1a62b0ca918 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:33 +0200 Subject: [PATCH 0843/2431] staging: rtl8192e: Rename dm_check_fsync Use naming schema found in other rtlwifi devices. Rename dm_check_fsync to _rtl92e_dm_check_fsync. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 9ff58873e0dc..aa4f180367d4 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -204,7 +204,7 @@ static void dm_deInit_fsync(struct net_device *dev); static void dm_check_txrateandretrycount(struct net_device *dev); static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev); -static void dm_check_fsync(struct net_device *dev); +static void _rtl92e_dm_check_fsync(struct net_device *dev); static void dm_CheckRfCtrlGPIO(void *data); static void dm_fsync_timer_callback(unsigned long data); @@ -271,7 +271,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_bandwidth_autoswitch(dev); dm_check_rx_path_selection(dev); - dm_check_fsync(dev); + _rtl92e_dm_check_fsync(dev); dm_send_rssi_tofw(dev); dm_ctstoself(dev); @@ -2361,7 +2361,7 @@ static void dm_StartSWFsync(struct net_device *dev) } -static void dm_check_fsync(struct net_device *dev) +static void _rtl92e_dm_check_fsync(struct net_device *dev) { #define RegC38_Default 0 #define RegC38_NonFsync_Other_AP 1 From 59c997ef14c9246847b0595b7e3742e08f3fb898 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:34 +0200 Subject: [PATCH 0844/2431] staging: rtl8192e: Rename dm_check_pbc_gpio Use naming schema found in other rtlwifi devices. Rename dm_check_pbc_gpio to _rtl92e_dm_check_pbc_gpio. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index aa4f180367d4..3d97b5ac5fcb 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -191,7 +191,7 @@ static void dm_Init_WA_Broadcom_IOT(struct net_device *dev); static void _rtl92e_dm_check_edca_turbo(struct net_device *dev); -static void dm_check_pbc_gpio(struct net_device *dev); +static void _rtl92e_dm_check_pbc_gpio(struct net_device *dev); static void dm_check_rx_path_selection(struct net_device *dev); @@ -259,7 +259,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_check_ac_dc_power(dev); - dm_check_pbc_gpio(dev); + _rtl92e_dm_check_pbc_gpio(dev); dm_check_txrateandretrycount(dev); _rtl92e_dm_check_edca_turbo(dev); @@ -1837,7 +1837,7 @@ static void dm_Init_WA_Broadcom_IOT(struct net_device *dev) pHTInfo->WAIotTH = WAIotTHVal; } -static void dm_check_pbc_gpio(struct net_device *dev) +static void _rtl92e_dm_check_pbc_gpio(struct net_device *dev) { } From 6e2721f9c20dac367ff486ddf3f481268cf54376 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:35 +0200 Subject: [PATCH 0845/2431] staging: rtl8192e: Rename dm_check_rate_adaptive Use naming schema found in other rtlwifi devices. Rename dm_check_rate_adaptive to _rtl92e_dm_check_rate_adaptive. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 3d97b5ac5fcb..f80c01d09d49 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -166,7 +166,7 @@ struct drx_path_sel DM_RxPathSelTable; /*---------------------Define local function prototype-----------------------*/ -static void dm_check_rate_adaptive(struct net_device *dev); +static void _rtl92e_dm_check_rate_adaptive(struct net_device *dev); static void dm_init_bandwidth_autoswitch(struct net_device *dev); static void _rtl92e_dm_bandwidth_autoswitch(struct net_device *dev); @@ -263,7 +263,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) dm_check_txrateandretrycount(dev); _rtl92e_dm_check_edca_turbo(dev); - dm_check_rate_adaptive(dev); + _rtl92e_dm_check_rate_adaptive(dev); dm_dynamic_txpower(dev); dm_check_txpower_tracking(dev); @@ -342,7 +342,7 @@ void rtl92e_init_adaptive_rate(struct net_device *dev) } -static void dm_check_rate_adaptive(struct net_device *dev) +static void _rtl92e_dm_check_rate_adaptive(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_hi_throughput *pHTInfo = priv->rtllib->pHTInfo; @@ -354,7 +354,7 @@ static void dm_check_rate_adaptive(struct net_device *dev) if (!priv->up) { RT_TRACE(COMP_RATE, - "<---- dm_check_rate_adaptive(): driver is going to unload\n"); + "<---- _rtl92e_dm_check_rate_adaptive(): driver is going to unload\n"); return; } From 0a1161264d20d3c9ed0c54aebfa097107467d3f9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:36 +0200 Subject: [PATCH 0846/2431] staging: rtl8192e: Rename dm_CheckRfCtrlGPIO Use naming schema found in other rtlwifi devices. Rename dm_CheckRfCtrlGPIO to _rtl92e_dm_check_rf_ctrl_gpio. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index f80c01d09d49..160c53f2c2b2 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -205,7 +205,7 @@ static void dm_deInit_fsync(struct net_device *dev); static void dm_check_txrateandretrycount(struct net_device *dev); static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev); static void _rtl92e_dm_check_fsync(struct net_device *dev); -static void dm_CheckRfCtrlGPIO(void *data); +static void _rtl92e_dm_check_rf_ctrl_gpio(void *data); static void dm_fsync_timer_callback(unsigned long data); /*---------------------Define local function prototype-----------------------*/ @@ -240,7 +240,7 @@ void rtl92e_dm_init(struct net_device *dev) dm_Init_WA_Broadcom_IOT(dev); INIT_DELAYED_WORK_RSL(&priv->gpio_change_rf_wq, - (void *)dm_CheckRfCtrlGPIO, dev); + (void *)_rtl92e_dm_check_rf_ctrl_gpio, dev); } void rtl92e_dm_deinit(struct net_device *dev) @@ -1841,7 +1841,7 @@ static void _rtl92e_dm_check_pbc_gpio(struct net_device *dev) { } -static void dm_CheckRfCtrlGPIO(void *data) +static void _rtl92e_dm_check_rf_ctrl_gpio(void *data) { struct r8192_priv *priv = container_of_dwork_rsl(data, struct r8192_priv, gpio_change_rf_wq); From 6ff542578c0ff760a36f815a6b18e0673da3ab80 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:37 +0200 Subject: [PATCH 0847/2431] staging: rtl8192e: Rename dm_check_rx_path_selection Use naming schema found in other rtlwifi devices. Rename dm_check_rx_path_selection to _rtl92e_dm_check_rx_path_selection. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 160c53f2c2b2..82ac5425a771 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -194,7 +194,7 @@ static void _rtl92e_dm_check_edca_turbo(struct net_device *dev); static void _rtl92e_dm_check_pbc_gpio(struct net_device *dev); -static void dm_check_rx_path_selection(struct net_device *dev); +static void _rtl92e_dm_check_rx_path_selection(struct net_device *dev); static void dm_init_rxpath_selection(struct net_device *dev); static void dm_rxpath_sel_byrssi(struct net_device *dev); @@ -270,7 +270,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) dm_ctrl_initgain_byrssi(dev); _rtl92e_dm_bandwidth_autoswitch(dev); - dm_check_rx_path_selection(dev); + _rtl92e_dm_check_rx_path_selection(dev); _rtl92e_dm_check_fsync(dev); dm_send_rssi_tofw(dev); @@ -2143,7 +2143,7 @@ static void dm_rxpath_sel_byrssi(struct net_device *dev) } } -static void dm_check_rx_path_selection(struct net_device *dev) +static void _rtl92e_dm_check_rx_path_selection(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From 3f3173c23f4234d5c0c272fad73e0b6c81c541fa Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:38 +0200 Subject: [PATCH 0848/2431] staging: rtl8192e: Rename dm_check_txpower_tracking Use naming schema found in other rtlwifi devices. Rename dm_check_txpower_tracking to _rtl92e_dm_check_tx_power_tracking. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 82ac5425a771..a9024828bec1 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -172,7 +172,7 @@ static void dm_init_bandwidth_autoswitch(struct net_device *dev); static void _rtl92e_dm_bandwidth_autoswitch(struct net_device *dev); -static void dm_check_txpower_tracking(struct net_device *dev); +static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev); static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev); static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev); @@ -265,7 +265,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_check_rate_adaptive(dev); dm_dynamic_txpower(dev); - dm_check_txpower_tracking(dev); + _rtl92e_dm_check_tx_power_tracking(dev); dm_ctrl_initgain_byrssi(dev); _rtl92e_dm_bandwidth_autoswitch(dev); @@ -1043,7 +1043,7 @@ static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev) } -static void dm_check_txpower_tracking(struct net_device *dev) +static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From 2c40c66a79d6bbe7151c49983400e1f51c3a9c4e Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:39 +0200 Subject: [PATCH 0849/2431] staging: rtl8192e: Rename dm_CheckTXPowerTracking_ThermalMeter Use naming schema found in other rtlwifi devices. Rename dm_CheckTXPowerTracking_ThermalMeter to _rtl92e_dm_check_tx_power_tracking_thermal. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index a9024828bec1..dd155a902b2b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -1009,7 +1009,8 @@ static void dm_CheckTXPowerTracking_TSSI(struct net_device *dev) } } -static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev) + +static void _rtl92e_dm_check_tx_power_tracking_thermal(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); static u8 TM_Trigger; @@ -1050,7 +1051,7 @@ static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev) if (priv->IC_Cut >= IC_VersionCut_D) dm_CheckTXPowerTracking_TSSI(dev); else - dm_CheckTXPowerTracking_ThermalMeter(dev); + _rtl92e_dm_check_tx_power_tracking_thermal(dev); } static void _rtl92e_dm_cck_tx_power_adjust_tssi(struct net_device *dev, From 7dfb646871e41206d7cf6083ec8fa84348203346 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:40 +0200 Subject: [PATCH 0850/2431] staging: rtl8192e: Rename dm_CheckTXPowerTracking_TSSI Use naming schema found in other rtlwifi devices. Rename dm_CheckTXPowerTracking_TSSI to _rtl92e_dm_check_tx_power_tracking_tssi. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index dd155a902b2b..078b285e1ad3 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -989,7 +989,7 @@ void rtl92e_dm_init_txpower_tracking(struct net_device *dev) dm_InitializeTXPowerTracking_ThermalMeter(dev); } -static void dm_CheckTXPowerTracking_TSSI(struct net_device *dev) +static void _rtl92e_dm_check_tx_power_tracking_tssi(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); static u32 tx_power_track_counter; @@ -1049,7 +1049,7 @@ static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev) struct r8192_priv *priv = rtllib_priv(dev); if (priv->IC_Cut >= IC_VersionCut_D) - dm_CheckTXPowerTracking_TSSI(dev); + _rtl92e_dm_check_tx_power_tracking_tssi(dev); else _rtl92e_dm_check_tx_power_tracking_thermal(dev); } From 0b230f92ba93076d7bdcf2ddc1b3b492c28e62f1 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:41 +0200 Subject: [PATCH 0851/2431] staging: rtl8192e: Rename dm_check_txrateandretrycount Use naming schema found in other rtlwifi devices. Rename dm_check_txrateandretrycount to _rtl92e_dm_check_txrateandretrycount. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 078b285e1ad3..c1b1e0c3a18b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -202,7 +202,7 @@ static void dm_rxpath_sel_byrssi(struct net_device *dev); static void dm_init_fsync(struct net_device *dev); static void dm_deInit_fsync(struct net_device *dev); -static void dm_check_txrateandretrycount(struct net_device *dev); +static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev); static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev); static void _rtl92e_dm_check_fsync(struct net_device *dev); static void _rtl92e_dm_check_rf_ctrl_gpio(void *data); @@ -260,7 +260,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_check_ac_dc_power(dev); _rtl92e_dm_check_pbc_gpio(dev); - dm_check_txrateandretrycount(dev); + _rtl92e_dm_check_txrateandretrycount(dev); _rtl92e_dm_check_edca_turbo(dev); _rtl92e_dm_check_rate_adaptive(dev); @@ -2550,7 +2550,7 @@ static void dm_dynamic_txpower(struct net_device *dev) } -static void dm_check_txrateandretrycount(struct net_device *dev) +static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); struct rtllib_device *ieee = priv->rtllib; From 552944e3e4e228c17954a5bfab56c9ea06babc10 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:42 +0200 Subject: [PATCH 0852/2431] staging: rtl8192e: Rename dm_cs_ratio Use naming schema found in other rtlwifi devices. Rename dm_cs_ratio to _rtl92e_dm_cs_ratio. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c1b1e0c3a18b..11ca8823c8e5 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -184,7 +184,7 @@ static void dm_ctrl_initgain_byrssi_by_driverrssi(struct net_device *dev); static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(struct net_device *dev); static void dm_initial_gain(struct net_device *dev); static void dm_pd_th(struct net_device *dev); -static void dm_cs_ratio(struct net_device *dev); +static void _rtl92e_dm_cs_ratio(struct net_device *dev); static void dm_init_ctstoself(struct net_device *dev); static void dm_Init_WA_Broadcom_IOT(struct net_device *dev); @@ -1382,7 +1382,7 @@ static void dm_ctrl_initgain_byrssi_by_driverrssi( dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; dm_initial_gain(dev); dm_pd_th(dev); - dm_cs_ratio(dev); + _rtl92e_dm_cs_ratio(dev); if (dm_digtable.dig_algorithm_switch) dm_digtable.dig_algorithm_switch = 0; dm_digtable.PreSTAConnectState = dm_digtable.CurSTAConnectState; @@ -1644,7 +1644,7 @@ static void dm_pd_th(struct net_device *dev) } } -static void dm_cs_ratio(struct net_device *dev) +static void _rtl92e_dm_cs_ratio(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); static u8 initialized, force_write; From 24ec800e8076eb73dde509cc15cb5787a85b3fa8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:43 +0200 Subject: [PATCH 0853/2431] staging: rtl8192e: Rename dm_ctrl_initgain_byrssi_by_driverrssi Use naming schema found in other rtlwifi devices. Rename dm_ctrl_initgain_byrssi_by_driverrssi to _rtl92e_dm_ctrl_initgain_byrssi_driver. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 11ca8823c8e5..26a61f38166a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -180,7 +180,7 @@ static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev); static void dm_dig_init(struct net_device *dev); static void dm_ctrl_initgain_byrssi(struct net_device *dev); static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); -static void dm_ctrl_initgain_byrssi_by_driverrssi(struct net_device *dev); +static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev); static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(struct net_device *dev); static void dm_initial_gain(struct net_device *dev); static void dm_pd_th(struct net_device *dev); @@ -1331,7 +1331,7 @@ static void dm_ctrl_initgain_byrssi(struct net_device *dev) if (dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) dm_ctrl_initgain_byrssi_by_fwfalse_alarm(dev); else if (dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI) - dm_ctrl_initgain_byrssi_by_driverrssi(dev); + _rtl92e_dm_ctrl_initgain_byrssi_driver(dev); else return; } @@ -1354,8 +1354,7 @@ static void dm_ctrl_initgain_byrssi(struct net_device *dev) * *---------------------------------------------------------------------------*/ -static void dm_ctrl_initgain_byrssi_by_driverrssi( - struct net_device *dev) +static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 i; From 7249a4b5118ab693d6e871fcea8edbdaeddfa3c5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:44 +0200 Subject: [PATCH 0854/2431] staging: rtl8192e: Rename dm_ctrl_initgain_byrssi_by_fwfalse_alarm Use naming schema found in other rtlwifi devices. Rename dm_ctrl_initgain_byrssi_by_fwfalse_alarm to _rtl92e_dm_ctrl_initgain_byrssi_false_alarm. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 26a61f38166a..2df6344fae22 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -181,7 +181,7 @@ static void dm_dig_init(struct net_device *dev); static void dm_ctrl_initgain_byrssi(struct net_device *dev); static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev); -static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(struct net_device *dev); +static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev); static void dm_initial_gain(struct net_device *dev); static void dm_pd_th(struct net_device *dev); static void _rtl92e_dm_cs_ratio(struct net_device *dev); @@ -1329,7 +1329,7 @@ static void dm_ctrl_initgain_byrssi(struct net_device *dev) return; if (dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) - dm_ctrl_initgain_byrssi_by_fwfalse_alarm(dev); + _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(dev); else if (dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI) _rtl92e_dm_ctrl_initgain_byrssi_driver(dev); else @@ -1388,8 +1388,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev) } -static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm( - struct net_device *dev) +static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); static u32 reset_cnt; From 2c696148c69bfc220d1debe9cd451d87f45526fa Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:45 +0200 Subject: [PATCH 0855/2431] staging: rtl8192e: Rename dm_ctrl_initgain_byrssi_highpwr Use naming schema found in other rtlwifi devices. Rename dm_ctrl_initgain_byrssi_highpwr to _rtl92e_dm_ctrl_initgain_byrssi_highpwr. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 2df6344fae22..37374d1d5c5b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -179,7 +179,7 @@ static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev); static void dm_dig_init(struct net_device *dev); static void dm_ctrl_initgain_byrssi(struct net_device *dev); -static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); +static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev); static void dm_initial_gain(struct net_device *dev); @@ -1441,7 +1441,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev) if (dm_digtable.dig_state == DM_STA_DIG_ON && (priv->reset_count == reset_cnt)) { - dm_ctrl_initgain_byrssi_highpwr(dev); + _rtl92e_dm_ctrl_initgain_byrssi_highpwr(dev); return; } if (priv->reset_count != reset_cnt) @@ -1472,11 +1472,11 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev) rtl92e_set_bb_reg(dev, UFWP, bMaskByte1, 0x1); } - dm_ctrl_initgain_byrssi_highpwr(dev); + _rtl92e_dm_ctrl_initgain_byrssi_highpwr(dev); } -static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev) +static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); static u32 reset_cnt_highpwr; From dab9eef4f2896a8bac28be9aa5c4344c4ec894a6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:46 +0200 Subject: [PATCH 0856/2431] staging: rtl8192e: Rename dm_ctstoself Use naming schema found in other rtlwifi devices. Rename dm_ctstoself to _rtl92e_dm_cts_to_self. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 37374d1d5c5b..88c1efc0617a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -215,7 +215,7 @@ static void dm_dynamic_txpower(struct net_device *dev); static void dm_send_rssi_tofw(struct net_device *dev); -static void dm_ctstoself(struct net_device *dev); +static void _rtl92e_dm_cts_to_self(struct net_device *dev); /*---------------------------Define function prototype------------------------*/ void rtl92e_dm_init(struct net_device *dev) @@ -274,7 +274,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_check_fsync(dev); dm_send_rssi_tofw(dev); - dm_ctstoself(dev); + _rtl92e_dm_cts_to_self(dev); } static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev) @@ -1800,7 +1800,7 @@ static void dm_init_ctstoself(struct net_device *dev) priv->rtllib->bCTSToSelfEnable = true; } -static void dm_ctstoself(struct net_device *dev) +static void _rtl92e_dm_cts_to_self(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); struct rt_hi_throughput *pHTInfo = priv->rtllib->pHTInfo; From b6bc343a522a733f7139acdec69648a2f1559f73 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:47 +0200 Subject: [PATCH 0857/2431] staging: rtl8192e: Rename dm_deInit_fsync Use naming schema found in other rtlwifi devices. Rename dm_deInit_fsync to _rtl92e_dm_deinit_fsync. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 88c1efc0617a..5de409b59d59 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -200,7 +200,7 @@ static void dm_rxpath_sel_byrssi(struct net_device *dev); static void dm_init_fsync(struct net_device *dev); -static void dm_deInit_fsync(struct net_device *dev); +static void _rtl92e_dm_deinit_fsync(struct net_device *dev); static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev); static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev); @@ -246,7 +246,7 @@ void rtl92e_dm_init(struct net_device *dev) void rtl92e_dm_deinit(struct net_device *dev) { - dm_deInit_fsync(dev); + _rtl92e_dm_deinit_fsync(dev); } @@ -2169,7 +2169,7 @@ static void dm_init_fsync(struct net_device *dev) } -static void dm_deInit_fsync(struct net_device *dev) +static void _rtl92e_dm_deinit_fsync(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From 832734bf7cee8751faa1be4b76bdcb56240a602f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:48 +0200 Subject: [PATCH 0858/2431] staging: rtl8192e: Rename dm_dig_init Use naming schema found in other rtlwifi devices. Rename dm_dig_init to _rtl92e_dm_dig_init. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 5de409b59d59..380c787bc72a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -177,7 +177,7 @@ static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev); static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev); static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev); -static void dm_dig_init(struct net_device *dev); +static void _rtl92e_dm_dig_init(struct net_device *dev); static void dm_ctrl_initgain_byrssi(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev); @@ -230,7 +230,7 @@ void rtl92e_dm_init(struct net_device *dev) rtl92e_init_adaptive_rate(dev); - dm_dig_init(dev); + _rtl92e_dm_dig_init(dev); rtl92e_dm_init_edca_turbo(dev); dm_init_bandwidth_autoswitch(dev); dm_init_fsync(dev); @@ -1292,7 +1292,7 @@ static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev) } -static void dm_dig_init(struct net_device *dev) +static void _rtl92e_dm_dig_init(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From b09dea2f279e131c5790339d24bb7bc34bb846d3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:49 +0200 Subject: [PATCH 0859/2431] staging: rtl8192e: Rename dm_dynamic_txpower Use naming schema found in other rtlwifi devices. Rename dm_dynamic_txpower to _rtl92e_dm_dynamic_tx_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 380c787bc72a..43fcdf734897 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -211,7 +211,7 @@ static void dm_fsync_timer_callback(unsigned long data); /*---------------------Define local function prototype-----------------------*/ static void dm_init_dynamic_txpower(struct net_device *dev); -static void dm_dynamic_txpower(struct net_device *dev); +static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev); static void dm_send_rssi_tofw(struct net_device *dev); @@ -264,7 +264,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_check_edca_turbo(dev); _rtl92e_dm_check_rate_adaptive(dev); - dm_dynamic_txpower(dev); + _rtl92e_dm_dynamic_tx_power(dev); _rtl92e_dm_check_tx_power_tracking(dev); dm_ctrl_initgain_byrssi(dev); @@ -2495,7 +2495,7 @@ static void dm_init_dynamic_txpower(struct net_device *dev) priv->bDynamicTxLowPower = false; } -static void dm_dynamic_txpower(struct net_device *dev) +static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); unsigned int txhipower_threshhold = 0; From 8a420d8f55a0146cd9c5767a817bca5ab3d33f31 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:50 +0200 Subject: [PATCH 0860/2431] staging: rtl8192e: Rename dm_EndHWFsync Use naming schema found in other rtlwifi devices. Rename dm_EndHWFsync to _rtl92e_dm_end_hw_fsync. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 43fcdf734897..f8a6820050da 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -2293,7 +2293,7 @@ static void dm_StartHWFsync(struct net_device *dev) rtl92e_writeb(dev, 0xc3b, 0x41); } -static void dm_EndHWFsync(struct net_device *dev) +static void _rtl92e_dm_end_hw_fsync(struct net_device *dev) { u8 rf_timing = 0xaa; struct r8192_priv *priv = rtllib_priv(dev); @@ -2404,7 +2404,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev) priv->rtllib->fsync_state = SW_Fsync; break; case HW_Fsync: - dm_EndHWFsync(dev); + _rtl92e_dm_end_hw_fsync(dev); dm_StartSWFsync(dev); priv->rtllib->fsync_state = SW_Fsync; break; @@ -2424,7 +2424,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev) } else { switch (priv->rtllib->fsync_state) { case HW_Fsync: - dm_EndHWFsync(dev); + _rtl92e_dm_end_hw_fsync(dev); priv->rtllib->fsync_state = Default_Fsync; break; case SW_Fsync: From f00afec854d473f74ea6d306a83ef7ef1438bdf3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:51 +0200 Subject: [PATCH 0861/2431] staging: rtl8192e: Rename dm_EndSWFsync Use naming schema found in other rtlwifi devices. Rename dm_EndSWFsync to _rtl92e_dm_end_sw_fsync. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index f8a6820050da..c9b28dfa0f2f 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -2305,7 +2305,7 @@ static void _rtl92e_dm_end_hw_fsync(struct net_device *dev) rtl92e_writeb(dev, 0xc3b, 0x49); } -static void dm_EndSWFsync(struct net_device *dev) +static void _rtl92e_dm_end_sw_fsync(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -2389,7 +2389,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev) priv->rtllib->fsync_state = HW_Fsync; break; case SW_Fsync: - dm_EndSWFsync(dev); + _rtl92e_dm_end_sw_fsync(dev); dm_StartHWFsync(dev); priv->rtllib->fsync_state = HW_Fsync; break; @@ -2428,7 +2428,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev) priv->rtllib->fsync_state = Default_Fsync; break; case SW_Fsync: - dm_EndSWFsync(dev); + _rtl92e_dm_end_sw_fsync(dev); priv->rtllib->fsync_state = Default_Fsync; break; case Default_Fsync: From c70d11cdcead2578b55d6c7bbf59b2b2e333edb1 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:52 +0200 Subject: [PATCH 0862/2431] staging: rtl8192e: Rename dm_fsync_timer_callback Use naming schema found in other rtlwifi devices. Rename dm_fsync_timer_callback to _rtl92e_dm_fsync_timer_callback. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c9b28dfa0f2f..4c3b2515f48c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -206,7 +206,7 @@ static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev); static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev); static void _rtl92e_dm_check_fsync(struct net_device *dev); static void _rtl92e_dm_check_rf_ctrl_gpio(void *data); -static void dm_fsync_timer_callback(unsigned long data); +static void _rtl92e_dm_fsync_timer_callback(unsigned long data); /*---------------------Define local function prototype-----------------------*/ @@ -2164,8 +2164,8 @@ static void dm_init_fsync(struct net_device *dev) priv->rtllib->fsync_state = Default_Fsync; priv->framesyncMonitor = 1; - setup_timer(&priv->fsync_timer, dm_fsync_timer_callback, - (unsigned long) dev); + setup_timer(&priv->fsync_timer, _rtl92e_dm_fsync_timer_callback, + (unsigned long)dev); } @@ -2176,7 +2176,7 @@ static void _rtl92e_dm_deinit_fsync(struct net_device *dev) del_timer_sync(&priv->fsync_timer); } -static void dm_fsync_timer_callback(unsigned long data) +static void _rtl92e_dm_fsync_timer_callback(unsigned long data) { struct net_device *dev = (struct net_device *)data; struct r8192_priv *priv = rtllib_priv((struct net_device *)data); From 26210305ab8ecc1233d09b01d3491d347d0763a2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:53 +0200 Subject: [PATCH 0863/2431] staging: rtl8192e: Rename dm_init_bandwidth_autoswitch Use naming schema found in other rtlwifi devices. Rename dm_init_bandwidth_autoswitch to _rtl92e_dm_init_bandwidth_autoswitch. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 4c3b2515f48c..0343109c5889 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -168,7 +168,7 @@ struct drx_path_sel DM_RxPathSelTable; /*---------------------Define local function prototype-----------------------*/ static void _rtl92e_dm_check_rate_adaptive(struct net_device *dev); -static void dm_init_bandwidth_autoswitch(struct net_device *dev); +static void _rtl92e_dm_init_bandwidth_autoswitch(struct net_device *dev); static void _rtl92e_dm_bandwidth_autoswitch(struct net_device *dev); @@ -232,7 +232,7 @@ void rtl92e_dm_init(struct net_device *dev) _rtl92e_dm_dig_init(dev); rtl92e_dm_init_edca_turbo(dev); - dm_init_bandwidth_autoswitch(dev); + _rtl92e_dm_init_bandwidth_autoswitch(dev); dm_init_fsync(dev); dm_init_rxpath_selection(dev); dm_init_ctstoself(dev); @@ -459,7 +459,7 @@ static void _rtl92e_dm_check_rate_adaptive(struct net_device *dev) } } -static void dm_init_bandwidth_autoswitch(struct net_device *dev) +static void _rtl92e_dm_init_bandwidth_autoswitch(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From 7dd6581129d281a7e5e3d04c57a0c189a4099c90 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:54 +0200 Subject: [PATCH 0864/2431] staging: rtl8192e: Rename dm_init_ctstoself Use naming schema found in other rtlwifi devices. Rename dm_init_ctstoself to _rtl92e_dm_init_cts_to_self. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 0343109c5889..5a1cf1795de6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -186,7 +186,7 @@ static void dm_initial_gain(struct net_device *dev); static void dm_pd_th(struct net_device *dev); static void _rtl92e_dm_cs_ratio(struct net_device *dev); -static void dm_init_ctstoself(struct net_device *dev); +static void _rtl92e_dm_init_cts_to_self(struct net_device *dev); static void dm_Init_WA_Broadcom_IOT(struct net_device *dev); static void _rtl92e_dm_check_edca_turbo(struct net_device *dev); @@ -235,7 +235,7 @@ void rtl92e_dm_init(struct net_device *dev) _rtl92e_dm_init_bandwidth_autoswitch(dev); dm_init_fsync(dev); dm_init_rxpath_selection(dev); - dm_init_ctstoself(dev); + _rtl92e_dm_init_cts_to_self(dev); if (IS_HARDWARE_TYPE_8192SE(dev)) dm_Init_WA_Broadcom_IOT(dev); @@ -1793,7 +1793,7 @@ dm_CheckEdcaTurbo_EXIT: lastRxOkCnt = priv->stats.rxbytesunicast; } -static void dm_init_ctstoself(struct net_device *dev) +static void _rtl92e_dm_init_cts_to_self(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); From 53f1c5b19c0316fdaac1142bd81d993ad0bd7113 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:55 +0200 Subject: [PATCH 0865/2431] staging: rtl8192e: Rename dm_init_dynamic_txpower Use naming schema found in other rtlwifi devices. Rename dm_init_dynamic_txpower to _rtl92e_dm_init_dynamic_tx_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 5a1cf1795de6..efd86da42001 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -210,10 +210,9 @@ static void _rtl92e_dm_fsync_timer_callback(unsigned long data); /*---------------------Define local function prototype-----------------------*/ -static void dm_init_dynamic_txpower(struct net_device *dev); +static void _rtl92e_dm_init_dynamic_tx_power(struct net_device *dev); static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev); - static void dm_send_rssi_tofw(struct net_device *dev); static void _rtl92e_dm_cts_to_self(struct net_device *dev); /*---------------------------Define function prototype------------------------*/ @@ -226,7 +225,7 @@ void rtl92e_dm_init(struct net_device *dev) priv->undecorated_smoothed_pwdb = -1; - dm_init_dynamic_txpower(dev); + _rtl92e_dm_init_dynamic_tx_power(dev); rtl92e_init_adaptive_rate(dev); @@ -2484,7 +2483,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev) } /*---------------------------Define function prototype------------------------*/ -static void dm_init_dynamic_txpower(struct net_device *dev) +static void _rtl92e_dm_init_dynamic_tx_power(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From e1f59c71b48581e9b584e2078279d1cecb4ce8ba Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:56 +0200 Subject: [PATCH 0866/2431] staging: rtl8192e: Rename dm_init_fsync Use naming schema found in other rtlwifi devices. Rename dm_init_fsync to _rtl92e_dm_init_fsync. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index efd86da42001..6f59eb714641 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -199,7 +199,7 @@ static void dm_init_rxpath_selection(struct net_device *dev); static void dm_rxpath_sel_byrssi(struct net_device *dev); -static void dm_init_fsync(struct net_device *dev); +static void _rtl92e_dm_init_fsync(struct net_device *dev); static void _rtl92e_dm_deinit_fsync(struct net_device *dev); static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev); @@ -232,7 +232,7 @@ void rtl92e_dm_init(struct net_device *dev) _rtl92e_dm_dig_init(dev); rtl92e_dm_init_edca_turbo(dev); _rtl92e_dm_init_bandwidth_autoswitch(dev); - dm_init_fsync(dev); + _rtl92e_dm_init_fsync(dev); dm_init_rxpath_selection(dev); _rtl92e_dm_init_cts_to_self(dev); if (IS_HARDWARE_TYPE_8192SE(dev)) @@ -2149,7 +2149,7 @@ static void _rtl92e_dm_check_rx_path_selection(struct net_device *dev) } -static void dm_init_fsync(struct net_device *dev) +static void _rtl92e_dm_init_fsync(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From 5578a5660ba805e9be482855b8f48b02f6f9a290 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:57 +0200 Subject: [PATCH 0867/2431] staging: rtl8192e: Rename dm_initial_gain Use naming schema found in other rtlwifi devices. Rename dm_initial_gain to _rtl92e_dm_initial_gain. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 6f59eb714641..c321bf320e53 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -182,7 +182,7 @@ static void dm_ctrl_initgain_byrssi(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev); -static void dm_initial_gain(struct net_device *dev); +static void _rtl92e_dm_initial_gain(struct net_device *dev); static void dm_pd_th(struct net_device *dev); static void _rtl92e_dm_cs_ratio(struct net_device *dev); @@ -1378,7 +1378,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev) dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; - dm_initial_gain(dev); + _rtl92e_dm_initial_gain(dev); dm_pd_th(dev); _rtl92e_dm_cs_ratio(dev); if (dm_digtable.dig_algorithm_switch) @@ -1516,7 +1516,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev) reset_cnt_highpwr = priv->reset_count; } -static void dm_initial_gain(struct net_device *dev) +static void _rtl92e_dm_initial_gain(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 initial_gain = 0; From 09de06c9e9d4370a39b5f1a177b2d32a9fd74f92 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:58 +0200 Subject: [PATCH 0868/2431] staging: rtl8192e: Rename dm_InitializeTXPowerTracking_ThermalMeter Use naming schema found in other rtlwifi devices. Rename dm_InitializeTXPowerTracking_ThermalMeter to _rtl92e_dm_init_tx_power_tracking_thermal. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c321bf320e53..0ab2d2b8511d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -963,7 +963,7 @@ static void dm_InitializeTXPowerTracking_TSSI(struct net_device *dev) } -static void dm_InitializeTXPowerTracking_ThermalMeter(struct net_device *dev) +static void _rtl92e_dm_init_tx_power_tracking_thermal(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -985,7 +985,7 @@ void rtl92e_dm_init_txpower_tracking(struct net_device *dev) if (priv->IC_Cut >= IC_VersionCut_D) dm_InitializeTXPowerTracking_TSSI(dev); else - dm_InitializeTXPowerTracking_ThermalMeter(dev); + _rtl92e_dm_init_tx_power_tracking_thermal(dev); } static void _rtl92e_dm_check_tx_power_tracking_tssi(struct net_device *dev) From 7b3625cde60f762abbfa22cf8c655389ba00356b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:59 +0200 Subject: [PATCH 0869/2431] staging: rtl8192e: Rename dm_init_rxpath_selection Use naming schema found in other rtlwifi devices. Rename dm_init_rxpath_selectio to _rtl92e_dm_init_rx_path_selection. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 0ab2d2b8511d..278357cf0154 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -195,7 +195,7 @@ static void _rtl92e_dm_check_pbc_gpio(struct net_device *dev); static void _rtl92e_dm_check_rx_path_selection(struct net_device *dev); -static void dm_init_rxpath_selection(struct net_device *dev); +static void _rtl92e_dm_init_rx_path_selection(struct net_device *dev); static void dm_rxpath_sel_byrssi(struct net_device *dev); @@ -233,7 +233,7 @@ void rtl92e_dm_init(struct net_device *dev) rtl92e_dm_init_edca_turbo(dev); _rtl92e_dm_init_bandwidth_autoswitch(dev); _rtl92e_dm_init_fsync(dev); - dm_init_rxpath_selection(dev); + _rtl92e_dm_init_rx_path_selection(dev); _rtl92e_dm_init_cts_to_self(dev); if (IS_HARDWARE_TYPE_8192SE(dev)) dm_Init_WA_Broadcom_IOT(dev); @@ -1915,7 +1915,7 @@ void rtl92e_dm_rf_pathcheck_wq(void *data) dm_rxpath_sel_byrssi(dev); } -static void dm_init_rxpath_selection(struct net_device *dev) +static void _rtl92e_dm_init_rx_path_selection(struct net_device *dev) { u8 i; struct r8192_priv *priv = rtllib_priv(dev); From 1078599cbf68219d8e893644dff4d7fd67ab9de5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:00 +0200 Subject: [PATCH 0870/2431] staging: rtl8192e: Rename dm_InitializeTXPowerTracking_TSSI Use naming schema found in other rtlwifi devices. Rename dm_InitializeTXPowerTracking_TSSI to _rtl92e_dm_initialize_tx_power_tracking_tssi. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 278357cf0154..35ff1abfdee5 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -952,7 +952,7 @@ void rtl92e_dm_txpower_tracking_wq(void *data) dm_TXPowerTrackingCallback_ThermalMeter(dev); } -static void dm_InitializeTXPowerTracking_TSSI(struct net_device *dev) +static void _rtl92e_dm_initialize_tx_power_tracking_tssi(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -983,7 +983,7 @@ void rtl92e_dm_init_txpower_tracking(struct net_device *dev) struct r8192_priv *priv = rtllib_priv(dev); if (priv->IC_Cut >= IC_VersionCut_D) - dm_InitializeTXPowerTracking_TSSI(dev); + _rtl92e_dm_initialize_tx_power_tracking_tssi(dev); else _rtl92e_dm_init_tx_power_tracking_thermal(dev); } From 199ab04fb1b0e0aaa9c4ba9cd90d5d4ef672df39 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:01 +0200 Subject: [PATCH 0871/2431] staging: rtl8192e: Rename dm_Init_WA_Broadcom_IOT Use naming schema found in other rtlwifi devices. Rename dm_Init_WA_Broadcom_IOT to _rtl92e_dm_init_wa_broadcom_iot. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 35ff1abfdee5..296263932405 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -187,7 +187,7 @@ static void dm_pd_th(struct net_device *dev); static void _rtl92e_dm_cs_ratio(struct net_device *dev); static void _rtl92e_dm_init_cts_to_self(struct net_device *dev); -static void dm_Init_WA_Broadcom_IOT(struct net_device *dev); +static void _rtl92e_dm_init_wa_broadcom_iot(struct net_device *dev); static void _rtl92e_dm_check_edca_turbo(struct net_device *dev); @@ -236,7 +236,7 @@ void rtl92e_dm_init(struct net_device *dev) _rtl92e_dm_init_rx_path_selection(dev); _rtl92e_dm_init_cts_to_self(dev); if (IS_HARDWARE_TYPE_8192SE(dev)) - dm_Init_WA_Broadcom_IOT(dev); + _rtl92e_dm_init_wa_broadcom_iot(dev); INIT_DELAYED_WORK_RSL(&priv->gpio_change_rf_wq, (void *)_rtl92e_dm_check_rf_ctrl_gpio, dev); @@ -1826,7 +1826,7 @@ static void _rtl92e_dm_cts_to_self(struct net_device *dev) } -static void dm_Init_WA_Broadcom_IOT(struct net_device *dev) +static void _rtl92e_dm_init_wa_broadcom_iot(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv((struct net_device *)dev); struct rt_hi_throughput *pHTInfo = priv->rtllib->pHTInfo; From 88a4b242ed1760c957e43a3f22a95398e304d0e4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:02 +0200 Subject: [PATCH 0872/2431] staging: rtl8192e: Rename dm_pd_th Use naming schema found in other rtlwifi devices. Rename dm_pd_th to _rtl92e_dm_pd_th. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 296263932405..33ee1a2c6051 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -183,7 +183,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev); static void _rtl92e_dm_initial_gain(struct net_device *dev); -static void dm_pd_th(struct net_device *dev); +static void _rtl92e_dm_pd_th(struct net_device *dev); static void _rtl92e_dm_cs_ratio(struct net_device *dev); static void _rtl92e_dm_init_cts_to_self(struct net_device *dev); @@ -1379,7 +1379,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev) dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; _rtl92e_dm_initial_gain(dev); - dm_pd_th(dev); + _rtl92e_dm_pd_th(dev); _rtl92e_dm_cs_ratio(dev); if (dm_digtable.dig_algorithm_switch) dm_digtable.dig_algorithm_switch = 0; @@ -1573,7 +1573,7 @@ static void _rtl92e_dm_initial_gain(struct net_device *dev) } } -static void dm_pd_th(struct net_device *dev) +static void _rtl92e_dm_pd_th(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); static u8 initialized, force_write; From 8c0510e7399ac6b07e6b82f789d68233c20cc9bc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:03 +0200 Subject: [PATCH 0873/2431] staging: rtl8192e: Rename dm_rxpath_sel_byrssi Use naming schema found in other rtlwifi devices. Rename dm_rxpath_sel_byrssi to _rtl92e_dm_rx_path_sel_byrssi. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 33ee1a2c6051..8dc73f1b518b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -196,7 +196,7 @@ static void _rtl92e_dm_check_pbc_gpio(struct net_device *dev); static void _rtl92e_dm_check_rx_path_selection(struct net_device *dev); static void _rtl92e_dm_init_rx_path_selection(struct net_device *dev); -static void dm_rxpath_sel_byrssi(struct net_device *dev); +static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev); static void _rtl92e_dm_init_fsync(struct net_device *dev); @@ -1912,7 +1912,7 @@ void rtl92e_dm_rf_pathcheck_wq(void *data) if (!DM_RxPathSelTable.Enable) return; - dm_rxpath_sel_byrssi(dev); + _rtl92e_dm_rx_path_sel_byrssi(dev); } static void _rtl92e_dm_init_rx_path_selection(struct net_device *dev) @@ -1938,7 +1938,7 @@ static void _rtl92e_dm_init_rx_path_selection(struct net_device *dev) #define PWDB_IN_RANGE ((cur_cck_pwdb < tmp_cck_max_pwdb) && \ (cur_cck_pwdb > tmp_cck_sec_pwdb)) -static void dm_rxpath_sel_byrssi(struct net_device *dev) +static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u8 i, max_rssi_index = 0, min_rssi_index = 0; From 500344fdc257b8563bb35e4d7db170b0a8c30895 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:04 +0200 Subject: [PATCH 0874/2431] staging: rtl8192e: Rename dm_send_rssi_tofw Use naming schema found in other rtlwifi devices. Rename dm_send_rssi_tofw to _rtl92e_dm_send_rssi_to_fw. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 8dc73f1b518b..eeb85943a7ab 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -213,7 +213,7 @@ static void _rtl92e_dm_fsync_timer_callback(unsigned long data); static void _rtl92e_dm_init_dynamic_tx_power(struct net_device *dev); static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev); -static void dm_send_rssi_tofw(struct net_device *dev); +static void _rtl92e_dm_send_rssi_to_fw(struct net_device *dev); static void _rtl92e_dm_cts_to_self(struct net_device *dev); /*---------------------------Define function prototype------------------------*/ @@ -272,7 +272,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_check_rx_path_selection(dev); _rtl92e_dm_check_fsync(dev); - dm_send_rssi_tofw(dev); + _rtl92e_dm_send_rssi_to_fw(dev); _rtl92e_dm_cts_to_self(dev); } @@ -2562,7 +2562,7 @@ static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev) Tx_Retry_Count_Reg); } -static void dm_send_rssi_tofw(struct net_device *dev) +static void _rtl92e_dm_send_rssi_to_fw(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); From 22b5e8cd712b08a9ce9e9b1839c8bd0de593cae9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:05 +0200 Subject: [PATCH 0875/2431] staging: rtl8192e: Rename dm_StartHWFsync Use naming schema found in other rtlwifi devices. Rename dm_StartHWFsync to _rtl92e_dm_start_hw_fsync. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index eeb85943a7ab..92f3f7018337 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -2280,7 +2280,7 @@ static void _rtl92e_dm_fsync_timer_callback(unsigned long data) priv->bswitch_fsync); } -static void dm_StartHWFsync(struct net_device *dev) +static void _rtl92e_dm_start_hw_fsync(struct net_device *dev) { u8 rf_timing = 0x77; struct r8192_priv *priv = rtllib_priv(dev); @@ -2384,12 +2384,12 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev) if (priv->rtllib->bfsync_enable == 0) { switch (priv->rtllib->fsync_state) { case Default_Fsync: - dm_StartHWFsync(dev); + _rtl92e_dm_start_hw_fsync(dev); priv->rtllib->fsync_state = HW_Fsync; break; case SW_Fsync: _rtl92e_dm_end_sw_fsync(dev); - dm_StartHWFsync(dev); + _rtl92e_dm_start_hw_fsync(dev); priv->rtllib->fsync_state = HW_Fsync; break; case HW_Fsync: From 07aec67071dcb1f835419ed6f1af4c1a4ed985a8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:06 +0200 Subject: [PATCH 0876/2431] staging: rtl8192e: Rename dm_StartSWFsync Use naming schema found in other rtlwifi devices. Rename dm_StartSWFsync to _rtl92e_dm_start_sw_fsync. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 92f3f7018337..3576ae1d097a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -2323,7 +2323,7 @@ static void _rtl92e_dm_end_sw_fsync(struct net_device *dev) rtl92e_writel(dev, rOFDM0_RxDetector2, 0x465c52cd); } -static void dm_StartSWFsync(struct net_device *dev) +static void _rtl92e_dm_start_sw_fsync(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); u32 rateIndex; @@ -2399,12 +2399,12 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev) } else { switch (priv->rtllib->fsync_state) { case Default_Fsync: - dm_StartSWFsync(dev); + _rtl92e_dm_start_sw_fsync(dev); priv->rtllib->fsync_state = SW_Fsync; break; case HW_Fsync: _rtl92e_dm_end_hw_fsync(dev); - dm_StartSWFsync(dev); + _rtl92e_dm_start_sw_fsync(dev); priv->rtllib->fsync_state = SW_Fsync; break; case SW_Fsync: From 1b97c2206474ca5dd7dad7cf40ea259d3d7489c2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:07 +0200 Subject: [PATCH 0877/2431] staging: rtl8192e: Rename dm_txpower_reset_recovery Use naming schema found in other rtlwifi devices. Rename dm_txpower_reset_recovery to _rtl92e_dm_tx_power_reset_recovery. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 3576ae1d097a..cac70c2010a4 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -1154,7 +1154,7 @@ void rtl92e_dm_cck_txpower_adjust(struct net_device *dev, bool binch14) _rtl92e_dm_cck_tx_power_adjust_thermal_meter(dev, binch14); } -static void dm_txpower_reset_recovery(struct net_device *dev) +static void _rtl92e_dm_tx_power_reset_recovery(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1209,7 +1209,7 @@ void rtl92e_dm_restore_state(struct net_device *dev) rtl92e_writel(dev, RATR0, ratr_value); rtl92e_writeb(dev, UFWP, 1); if (priv->btxpower_trackingInit && priv->btxpower_tracking) - dm_txpower_reset_recovery(dev); + _rtl92e_dm_tx_power_reset_recovery(dev); _rtl92e_dm_bb_initialgain_restore(dev); From 721d2f8dfeebf07803bd3e7cb299967b7dabee1c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:08 +0200 Subject: [PATCH 0878/2431] staging: rtl8192e: Rename dm_TXPowerTrackingCallback_ThermalMeter Use naming schema found in other rtlwifi devices. Rename dm_TXPowerTrackingCallback_ThermalMeter to _rtl92e_dm_tx_power_tracking_cb_thermal. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index cac70c2010a4..5f466262fbc8 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -837,7 +837,7 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device *dev) rtl92e_writeb(dev, Pw_Track_Flag, 0); } -static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device *dev) +static void _rtl92e_dm_tx_power_tracking_cb_thermal(struct net_device *dev) { #define ThermalMeterVal 9 struct r8192_priv *priv = rtllib_priv(dev); @@ -949,7 +949,7 @@ void rtl92e_dm_txpower_tracking_wq(void *data) if (priv->IC_Cut >= IC_VersionCut_D) dm_TXPowerTrackingCallback_TSSI(dev); else - dm_TXPowerTrackingCallback_ThermalMeter(dev); + _rtl92e_dm_tx_power_tracking_cb_thermal(dev); } static void _rtl92e_dm_initialize_tx_power_tracking_tssi(struct net_device *dev) From a19b5d7207f7baa09560d01a16c5790ad70c6d76 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:09 +0200 Subject: [PATCH 0879/2431] staging: rtl8192e: Rename dm_TXPowerTrackingCallback_TSSI Use naming schema found in other rtlwifi devices. Rename dm_TXPowerTrackingCallback_TSSI to _rtl92e_dm_tx_power_tracking_callback_tssi. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 5f466262fbc8..ec5c12de53cd 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -632,7 +632,7 @@ static void dm_tx_update_tssi_strong_signal(struct net_device *dev, u8 RF_Type) } } -static void dm_TXPowerTrackingCallback_TSSI(struct net_device *dev) +static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); bool bHighpowerstate, viviflag = false; @@ -947,7 +947,7 @@ void rtl92e_dm_txpower_tracking_wq(void *data) struct net_device *dev = priv->rtllib->dev; if (priv->IC_Cut >= IC_VersionCut_D) - dm_TXPowerTrackingCallback_TSSI(dev); + _rtl92e_dm_tx_power_tracking_callback_tssi(dev); else _rtl92e_dm_tx_power_tracking_cb_thermal(dev); } From 264045986f689af5abd08be6a0a124affc40fc90 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:10 +0200 Subject: [PATCH 0880/2431] staging: rtl8192e: Rename dm_tx_update_tssi_strong_signal Use naming schema found in other rtlwifi devices. Rename dm_tx_update_tssi_strong_signal to _rtl92e_dm_tx_update_tssi_strong_signal. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index ec5c12de53cd..77a236073332 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -592,7 +592,8 @@ static void dm_tx_update_tssi_weak_signal(struct net_device *dev, u8 RF_Type) } } -static void dm_tx_update_tssi_strong_signal(struct net_device *dev, u8 RF_Type) +static void _rtl92e_dm_tx_update_tssi_strong_signal(struct net_device *dev, + u8 RF_Type) { struct r8192_priv *p = rtllib_priv(dev); @@ -766,7 +767,7 @@ static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev) if (Avg_TSSI_Meas_from_driver < TSSI_13dBm - E_FOR_TX_POWER_TRACK) dm_tx_update_tssi_weak_signal(dev, RF_Type); else - dm_tx_update_tssi_strong_signal(dev, RF_Type); + _rtl92e_dm_tx_update_tssi_strong_signal(dev, RF_Type); if (RF_Type == RF_2T4R) { priv->CCKPresentAttentuation_difference From ea3ab341a205097c88ca0327e6b506f2f508c18c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:11 +0200 Subject: [PATCH 0881/2431] staging: rtl8192e: Rename dm_tx_update_tssi_weak_signal Use naming schema found in other rtlwifi devices. Rename dm_tx_update_tssi_weak_signal to _rtl92e_dm_tx_update_tssi_weak_signal. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 77a236073332..d0e59eeae0fa 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -544,7 +544,8 @@ static u8 CCKSwingTable_Ch14[CCK_Table_length][8] = { #define Tssi_Report_Value2 0x13e #define FW_Busy_Flag 0x13f -static void dm_tx_update_tssi_weak_signal(struct net_device *dev, u8 RF_Type) +static void _rtl92e_dm_tx_update_tssi_weak_signal(struct net_device *dev, + u8 RF_Type) { struct r8192_priv *p = rtllib_priv(dev); @@ -765,7 +766,8 @@ static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev) return; } if (Avg_TSSI_Meas_from_driver < TSSI_13dBm - E_FOR_TX_POWER_TRACK) - dm_tx_update_tssi_weak_signal(dev, RF_Type); + _rtl92e_dm_tx_update_tssi_weak_signal(dev, + RF_Type); else _rtl92e_dm_tx_update_tssi_strong_signal(dev, RF_Type); From 57aac1ce29bcc37ed8eece017272bfd2bb321f45 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:12 +0200 Subject: [PATCH 0882/2431] staging: rtl8192e: Rename r8192_wx_set_enc Use naming schema found in other rtlwifi devices. Rename r8192_wx_set_enc to _rtl92e_wx_set_enc. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 641b0694b013..240d765e5cc7 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -678,9 +678,9 @@ static int _rtl92e_wx_get_enc(struct net_device *dev, return rtllib_wx_get_encode(priv->rtllib, info, wrqu, key); } -static int r8192_wx_set_enc(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *key) +static int _rtl92e_wx_set_enc(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *key) { struct r8192_priv *priv = rtllib_priv(dev); int ret; @@ -1143,7 +1143,7 @@ static iw_handler r8192_wx_handlers[] = { [IW_IOCTL(SIOCGIWFRAG)] = _rtl92e_wx_get_frag, [IW_IOCTL(SIOCSIWRETRY)] = _rtl92e_wx_set_retry, [IW_IOCTL(SIOCGIWRETRY)] = _rtl92e_wx_get_retry, - [IW_IOCTL(SIOCSIWENCODE)] = r8192_wx_set_enc, + [IW_IOCTL(SIOCSIWENCODE)] = _rtl92e_wx_set_enc, [IW_IOCTL(SIOCGIWENCODE)] = _rtl92e_wx_get_enc, [IW_IOCTL(SIOCSIWPOWER)] = _rtl92e_wx_set_power, [IW_IOCTL(SIOCGIWPOWER)] = _rtl92e_wx_get_power, From 3270b5074fd23101d6983cd52dd661e5e916e470 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:13 +0200 Subject: [PATCH 0883/2431] staging: rtl8192e: Rename firmware_check_ready Use naming schema found in other rtlwifi devices. Rename firmware_check_ready to _rtl92e_fw_check_ready. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 41fc0e244f83..78fb9e905c9a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -177,8 +177,8 @@ CPUCheckFirmwareReady_Fail: } -static bool firmware_check_ready(struct net_device *dev, - u8 load_fw_status) +static bool _rtl92e_fw_check_ready(struct net_device *dev, + u8 load_fw_status) { struct r8192_priv *priv = rtllib_priv(dev); struct rt_firmware *pfirmware = priv->pFirmware; @@ -304,7 +304,7 @@ bool rtl92e_init_fw(struct net_device *dev) if (!rt_status) goto download_firmware_fail; - if (!firmware_check_ready(dev, i)) + if (!_rtl92e_fw_check_ready(dev, i)) goto download_firmware_fail; } From 713519c710749d72bfad844579e10017af77bf84 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:14 +0200 Subject: [PATCH 0884/2431] staging: rtl8192e: Rename dm_ctrl_initgain_byrssi Use naming schema found in other rtlwifi devices. Rename dm_ctrl_initgain_byrssi to _rtl92e_dm_ctrl_initgain_byrssi. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index d0e59eeae0fa..727c565728b1 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -178,7 +178,7 @@ static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev); static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev); static void _rtl92e_dm_dig_init(struct net_device *dev); -static void dm_ctrl_initgain_byrssi(struct net_device *dev); +static void _rtl92e_dm_ctrl_initgain_byrssi(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev); @@ -266,7 +266,7 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_dynamic_tx_power(dev); _rtl92e_dm_check_tx_power_tracking(dev); - dm_ctrl_initgain_byrssi(dev); + _rtl92e_dm_ctrl_initgain_byrssi(dev); _rtl92e_dm_bandwidth_autoswitch(dev); _rtl92e_dm_check_rx_path_selection(dev); @@ -1324,7 +1324,7 @@ static void _rtl92e_dm_dig_init(struct net_device *dev) dm_digtable.rx_gain_range_min = DM_DIG_MIN; } -static void dm_ctrl_initgain_byrssi(struct net_device *dev) +static void _rtl92e_dm_ctrl_initgain_byrssi(struct net_device *dev) { if (dm_digtable.dig_enable_flag == false) From 49c3203707c9feebee26fec02f67b0431ac0a72a Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Sun, 20 Sep 2015 16:07:15 +0200 Subject: [PATCH 0885/2431] staging/rdma/hfi1: do not use u8 to store a 32-bit integer hfi1_rc_hdrerr() stores the result of be32_to_cpu() into opcode, which is a local variable declared as u8. Later this variable is used in a 24-bit logical right shift, which makes clang complains (when building an allmodconfig kernel with LLVMLinux patches): drivers/staging/rdma/hfi1/rc.c:2399:9: warning: shift count >= width of type [-Wshift-count-overflow] opcode >>= 24; ^ ~~ All of this lead to the point that opcode may have been designed to be a 32-bit integer instead of an 8-bit one. Therefore make this variable u32. Signed-off-by: Nicolas Iooss Acked-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/rc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rdma/hfi1/rc.c b/drivers/staging/rdma/hfi1/rc.c index 632dd5ba7dfd..1e9caebb0281 100644 --- a/drivers/staging/rdma/hfi1/rc.c +++ b/drivers/staging/rdma/hfi1/rc.c @@ -2383,7 +2383,7 @@ void hfi1_rc_hdrerr( struct hfi1_other_headers *ohdr; struct hfi1_ibport *ibp = to_iport(qp->ibqp.device, qp->port_num); int diff; - u8 opcode; + u32 opcode; u32 psn; /* Check for GRH */ From 60f57ec2da398a7c1f56dc2ac690ef75b17d2399 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Mon, 21 Sep 2015 04:43:05 -0700 Subject: [PATCH 0886/2431] IB/hfi1: use kvfree() in sdma.c Use kvfree() instead of open-coding it. Signed-off-by: Geliang Tang Acked-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/sdma.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/rdma/hfi1/sdma.c b/drivers/staging/rdma/hfi1/sdma.c index aecd1a74741c..9c02a3d23700 100644 --- a/drivers/staging/rdma/hfi1/sdma.c +++ b/drivers/staging/rdma/hfi1/sdma.c @@ -966,10 +966,7 @@ static void sdma_clean(struct hfi1_devdata *dd, size_t num_engines) sde->descq = NULL; sde->descq_phys = 0; } - if (is_vmalloc_addr(sde->tx_ring)) - vfree(sde->tx_ring); - else - kfree(sde->tx_ring); + kvfree(sde->tx_ring); sde->tx_ring = NULL; } spin_lock_irq(&dd->sde_map_lock); From 96a660d70699fc5decb381b15fd0a62a27001fe4 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Mon, 21 Sep 2015 22:18:14 +0800 Subject: [PATCH 0887/2431] IB/hfi1: class_name_user() should be static Fixes the following sparse warning: drivers/staging/rdma/hfi1/device.c:127:12: warning: symbol 'class_name_user' was not declared. Should it be static? Signed-off-by: Geliang Tang Acked-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rdma/hfi1/device.c b/drivers/staging/rdma/hfi1/device.c index bc26a5392712..58472e5ac4e5 100644 --- a/drivers/staging/rdma/hfi1/device.c +++ b/drivers/staging/rdma/hfi1/device.c @@ -124,7 +124,7 @@ static char *hfi1_devnode(struct device *dev, umode_t *mode) } static const char *hfi1_class_name_user = "hfi1_user"; -const char *class_name_user(void) +static const char *class_name_user(void) { return hfi1_class_name_user; } From b91cc5738f89ee0d551a1cd90d794c537b8f1dea Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Mon, 21 Sep 2015 23:39:08 +0800 Subject: [PATCH 0888/2431] staging: rdma: add a blank line after function Fixed warnings found by checkpatch.pl: Please use a blank line after function/struct/union/enum declarations FILE: drivers/staging/rdma/amso1100/c2_mq.c:158: FILE: drivers/staging/rdma/hfi1/file_ops.c:2069: FILE: drivers/staging/rdma/hfi1/sdma.c:744: FILE: drivers/staging/rdma/hfi1/verbs.c:1202: Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/amso1100/c2_mq.c | 1 + drivers/staging/rdma/hfi1/file_ops.c | 1 + drivers/staging/rdma/hfi1/sdma.c | 1 + drivers/staging/rdma/hfi1/verbs.c | 1 + 4 files changed, 4 insertions(+) diff --git a/drivers/staging/rdma/amso1100/c2_mq.c b/drivers/staging/rdma/amso1100/c2_mq.c index 0cddc49beae1..7827fb8bdb10 100644 --- a/drivers/staging/rdma/amso1100/c2_mq.c +++ b/drivers/staging/rdma/amso1100/c2_mq.c @@ -155,6 +155,7 @@ void c2_mq_req_init(struct c2_mq *q, u32 index, u32 q_size, u32 msg_size, q->hint_count = 0; return; } + void c2_mq_rep_init(struct c2_mq *q, u32 index, u32 q_size, u32 msg_size, u8 *pool_start, u16 __iomem *peer, u32 type) { diff --git a/drivers/staging/rdma/hfi1/file_ops.c b/drivers/staging/rdma/hfi1/file_ops.c index 72d38500d8ce..9a77221855e2 100644 --- a/drivers/staging/rdma/hfi1/file_ops.c +++ b/drivers/staging/rdma/hfi1/file_ops.c @@ -2066,6 +2066,7 @@ static const struct file_operations ui_file_ops = { .open = ui_open, .release = ui_release, }; + #define UI_OFFSET 192 /* device minor offset for UI devices */ static int create_ui = 1; diff --git a/drivers/staging/rdma/hfi1/sdma.c b/drivers/staging/rdma/hfi1/sdma.c index 9c02a3d23700..63ab72102183 100644 --- a/drivers/staging/rdma/hfi1/sdma.c +++ b/drivers/staging/rdma/hfi1/sdma.c @@ -741,6 +741,7 @@ u16 sdma_get_descq_cnt(void) return SDMA_DESCQ_CNT; return count; } + /** * sdma_select_engine_vl() - select sdma engine * @dd: devdata diff --git a/drivers/staging/rdma/hfi1/verbs.c b/drivers/staging/rdma/hfi1/verbs.c index 41bb59eb001c..a43fccd68a73 100644 --- a/drivers/staging/rdma/hfi1/verbs.c +++ b/drivers/staging/rdma/hfi1/verbs.c @@ -1199,6 +1199,7 @@ pio_bail: } return 0; } + /* * egress_pkey_matches_entry - return 1 if the pkey matches ent (ent * being an entry from the ingress partition key table), return 0 From b2d023af6995b949c3661abed48c5e8266b1170b Mon Sep 17 00:00:00 2001 From: Ira Weiny Date: Mon, 28 Sep 2015 14:05:48 -0400 Subject: [PATCH 0889/2431] staging/rdma: Kconfig change STAGING_RDMA to be tristate. STAGING_RDMA was failing to build when INFINIBAND was set to 'm' and STAGING_RDMA was set to 'y'. Making this a tristate properly inherits the 'm' from the INFINIBAND setting. Reviewed-by: Dalessandro, Dennis Reviewed-by: John, Jubin Reviewed-by: Mike Marciniszyn Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rdma/Kconfig b/drivers/staging/rdma/Kconfig index d7f62359d743..ba8765063174 100644 --- a/drivers/staging/rdma/Kconfig +++ b/drivers/staging/rdma/Kconfig @@ -1,5 +1,5 @@ menuconfig STAGING_RDMA - bool "RDMA staging drivers" + tristate "RDMA staging drivers" depends on INFINIBAND depends on PCI || BROKEN depends on HAS_IOMEM From 4346f9a01fe0846d1399292b53b24f6fde5bd2d9 Mon Sep 17 00:00:00 2001 From: Andrzej Hajda Date: Mon, 21 Sep 2015 15:33:58 +0200 Subject: [PATCH 0890/2431] staging: lustre: remove invalid check Unsigned cannot be negative. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/lproc_osc.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index c504d1503fda..f3eb39fe8535 100644 --- a/drivers/staging/lustre/lustre/osc/lproc_osc.c +++ b/drivers/staging/lustre/lustre/osc/lproc_osc.c @@ -451,9 +451,6 @@ static ssize_t resend_count_store(struct kobject *kobj, if (rc) return rc; - if (val < 0) - return -EINVAL; - atomic_set(&obd->u.cli.cl_resends, val); return count; From 92bb833e39feea79827946e1ecbaa7e6dee73fbf Mon Sep 17 00:00:00 2001 From: Andrzej Hajda Date: Mon, 21 Sep 2015 15:33:37 +0200 Subject: [PATCH 0891/2431] staging: lustre: fix handling lustre_posix_acl_xattr_filter result The function can return negative value. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/xattr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/xattr.c b/drivers/staging/lustre/lustre/llite/xattr.c index 362a87d0d0d3..dddc1ffc6164 100644 --- a/drivers/staging/lustre/lustre/llite/xattr.c +++ b/drivers/staging/lustre/lustre/llite/xattr.c @@ -175,11 +175,12 @@ int ll_setxattr_common(struct inode *inode, const char *name, } ee_free(ee); } else if (rce->rce_ops == RMT_RSETFACL) { - size = lustre_posix_acl_xattr_filter( + rc = lustre_posix_acl_xattr_filter( (posix_acl_xattr_header *)value, size, &new_value); - if (unlikely(size < 0)) - return size; + if (unlikely(rc < 0)) + return rc; + size = rc; pv = (const char *)new_value; } else From 40396eb900aae70a79e966ff91b0783662250d07 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 07:44:03 +0300 Subject: [PATCH 0892/2431] staging: lustre: lustre_dlm_flags: stop using C99 comments Convert C99-style // comments to C89-style comments and fix C99_COMMENTS checpatch errors. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm_flags.h | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h b/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h index d27bdae0b373..0d3ed87d38e1 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h @@ -50,7 +50,7 @@ #define LDLM_FL_ON_WIRE_MASK 0x00000000C08F932FULL /** extent, mode, or resource changed */ -#define LDLM_FL_LOCK_CHANGED 0x0000000000000001ULL // bit 0 +#define LDLM_FL_LOCK_CHANGED 0x0000000000000001ULL /* bit 0 */ #define ldlm_is_lock_changed(_l) LDLM_TEST_FLAG((_l), 1ULL << 0) #define ldlm_set_lock_changed(_l) LDLM_SET_FLAG((_l), 1ULL << 0) #define ldlm_clear_lock_changed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 0) @@ -58,7 +58,7 @@ /** * Server placed lock on granted list, or a recovering client wants the * lock added to the granted list, no questions asked. */ -#define LDLM_FL_BLOCK_GRANTED 0x0000000000000002ULL // bit 1 +#define LDLM_FL_BLOCK_GRANTED 0x0000000000000002ULL /* bit 1 */ #define ldlm_is_block_granted(_l) LDLM_TEST_FLAG((_l), 1ULL << 1) #define ldlm_set_block_granted(_l) LDLM_SET_FLAG((_l), 1ULL << 1) #define ldlm_clear_block_granted(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 1) @@ -66,7 +66,7 @@ /** * Server placed lock on conv list, or a recovering client wants the lock * added to the conv list, no questions asked. */ -#define LDLM_FL_BLOCK_CONV 0x0000000000000004ULL // bit 2 +#define LDLM_FL_BLOCK_CONV 0x0000000000000004ULL /* bit 2 */ #define ldlm_is_block_conv(_l) LDLM_TEST_FLAG((_l), 1ULL << 2) #define ldlm_set_block_conv(_l) LDLM_SET_FLAG((_l), 1ULL << 2) #define ldlm_clear_block_conv(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 2) @@ -74,13 +74,13 @@ /** * Server placed lock on wait list, or a recovering client wants the lock * added to the wait list, no questions asked. */ -#define LDLM_FL_BLOCK_WAIT 0x0000000000000008ULL // bit 3 +#define LDLM_FL_BLOCK_WAIT 0x0000000000000008ULL /* bit 3 */ #define ldlm_is_block_wait(_l) LDLM_TEST_FLAG((_l), 1ULL << 3) #define ldlm_set_block_wait(_l) LDLM_SET_FLAG((_l), 1ULL << 3) #define ldlm_clear_block_wait(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 3) /** blocking or cancel packet was queued for sending. */ -#define LDLM_FL_AST_SENT 0x0000000000000020ULL // bit 5 +#define LDLM_FL_AST_SENT 0x0000000000000020ULL /* bit 5 */ #define ldlm_is_ast_sent(_l) LDLM_TEST_FLAG((_l), 1ULL << 5) #define ldlm_set_ast_sent(_l) LDLM_SET_FLAG((_l), 1ULL << 5) #define ldlm_clear_ast_sent(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 5) @@ -88,19 +88,19 @@ /** * Lock is being replayed. This could probably be implied by the fact that * one of BLOCK_{GRANTED,CONV,WAIT} is set, but that is pretty dangerous. */ -#define LDLM_FL_REPLAY 0x0000000000000100ULL // bit 8 +#define LDLM_FL_REPLAY 0x0000000000000100ULL /* bit 8 */ #define ldlm_is_replay(_l) LDLM_TEST_FLAG((_l), 1ULL << 8) #define ldlm_set_replay(_l) LDLM_SET_FLAG((_l), 1ULL << 8) #define ldlm_clear_replay(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 8) /** Don't grant lock, just do intent. */ -#define LDLM_FL_INTENT_ONLY 0x0000000000000200ULL // bit 9 +#define LDLM_FL_INTENT_ONLY 0x0000000000000200ULL /* bit 9 */ #define ldlm_is_intent_only(_l) LDLM_TEST_FLAG((_l), 1ULL << 9) #define ldlm_set_intent_only(_l) LDLM_SET_FLAG((_l), 1ULL << 9) #define ldlm_clear_intent_only(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 9) /** lock request has intent */ -#define LDLM_FL_HAS_INTENT 0x0000000000001000ULL // bit 12 +#define LDLM_FL_HAS_INTENT 0x0000000000001000ULL /* bit 12 */ #define ldlm_is_has_intent(_l) LDLM_TEST_FLAG((_l), 1ULL << 12) #define ldlm_set_has_intent(_l) LDLM_SET_FLAG((_l), 1ULL << 12) #define ldlm_clear_has_intent(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 12) @@ -112,13 +112,13 @@ #define ldlm_clear_flock_deadlock(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 15) /** discard (no writeback) on cancel */ -#define LDLM_FL_DISCARD_DATA 0x0000000000010000ULL // bit 16 +#define LDLM_FL_DISCARD_DATA 0x0000000000010000ULL /* bit 16 */ #define ldlm_is_discard_data(_l) LDLM_TEST_FLAG((_l), 1ULL << 16) #define ldlm_set_discard_data(_l) LDLM_SET_FLAG((_l), 1ULL << 16) #define ldlm_clear_discard_data(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 16) /** Blocked by group lock - wait indefinitely */ -#define LDLM_FL_NO_TIMEOUT 0x0000000000020000ULL // bit 17 +#define LDLM_FL_NO_TIMEOUT 0x0000000000020000ULL /* bit 17 */ #define ldlm_is_no_timeout(_l) LDLM_TEST_FLAG((_l), 1ULL << 17) #define ldlm_set_no_timeout(_l) LDLM_SET_FLAG((_l), 1ULL << 17) #define ldlm_clear_no_timeout(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 17) @@ -126,13 +126,13 @@ /** * Server told not to wait if blocked. For AGL, OST will not send glimpse * callback. */ -#define LDLM_FL_BLOCK_NOWAIT 0x0000000000040000ULL // bit 18 +#define LDLM_FL_BLOCK_NOWAIT 0x0000000000040000ULL /* bit 18 */ #define ldlm_is_block_nowait(_l) LDLM_TEST_FLAG((_l), 1ULL << 18) #define ldlm_set_block_nowait(_l) LDLM_SET_FLAG((_l), 1ULL << 18) #define ldlm_clear_block_nowait(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 18) /** return blocking lock */ -#define LDLM_FL_TEST_LOCK 0x0000000000080000ULL // bit 19 +#define LDLM_FL_TEST_LOCK 0x0000000000080000ULL /* bit 19 */ #define ldlm_is_test_lock(_l) LDLM_TEST_FLAG((_l), 1ULL << 19) #define ldlm_set_test_lock(_l) LDLM_SET_FLAG((_l), 1ULL << 19) #define ldlm_clear_test_lock(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 19) @@ -142,14 +142,14 @@ * cancel notification to original lock holder, but expect no reply. This * is for clients (like liblustre) that cannot be expected to reliably * response to blocking AST. */ -#define LDLM_FL_CANCEL_ON_BLOCK 0x0000000000800000ULL // bit 23 +#define LDLM_FL_CANCEL_ON_BLOCK 0x0000000000800000ULL /* bit 23 */ #define ldlm_is_cancel_on_block(_l) LDLM_TEST_FLAG((_l), 1ULL << 23) #define ldlm_set_cancel_on_block(_l) LDLM_SET_FLAG((_l), 1ULL << 23) #define ldlm_clear_cancel_on_block(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 23) /** * measure lock contention and return -EUSERS if locking contention is high */ -#define LDLM_FL_DENY_ON_CONTENTION 0x0000000040000000ULL // bit 30 +#define LDLM_FL_DENY_ON_CONTENTION 0x0000000040000000ULL /* bit 30 */ #define ldlm_is_deny_on_contention(_l) LDLM_TEST_FLAG((_l), 1ULL << 30) #define ldlm_set_deny_on_contention(_l) LDLM_SET_FLAG((_l), 1ULL << 30) #define ldlm_clear_deny_on_contention(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 30) @@ -157,7 +157,7 @@ /** * These are flags that are mapped into the flags and ASTs of blocking * locks Add FL_DISCARD to blocking ASTs */ -#define LDLM_FL_AST_DISCARD_DATA 0x0000000080000000ULL // bit 31 +#define LDLM_FL_AST_DISCARD_DATA 0x0000000080000000ULL /* bit 31 */ #define ldlm_is_ast_discard_data(_l) LDLM_TEST_FLAG((_l), 1ULL << 31) #define ldlm_set_ast_discard_data(_l) LDLM_SET_FLAG((_l), 1ULL << 31) #define ldlm_clear_ast_discard_data(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 31) @@ -165,7 +165,7 @@ /** * Used for marking lock as a target for -EINTR while cp_ast sleep emulation * + race with upcoming bl_ast. */ -#define LDLM_FL_FAIL_LOC 0x0000000100000000ULL // bit 32 +#define LDLM_FL_FAIL_LOC 0x0000000100000000ULL /* bit 32 */ #define ldlm_is_fail_loc(_l) LDLM_TEST_FLAG((_l), 1ULL << 32) #define ldlm_set_fail_loc(_l) LDLM_SET_FLAG((_l), 1ULL << 32) #define ldlm_clear_fail_loc(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 32) @@ -173,49 +173,49 @@ /** * Used while processing the unused list to know that we have already * handled this lock and decided to skip it. */ -#define LDLM_FL_SKIPPED 0x0000000200000000ULL // bit 33 +#define LDLM_FL_SKIPPED 0x0000000200000000ULL /* bit 33 */ #define ldlm_is_skipped(_l) LDLM_TEST_FLAG((_l), 1ULL << 33) #define ldlm_set_skipped(_l) LDLM_SET_FLAG((_l), 1ULL << 33) #define ldlm_clear_skipped(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 33) /** this lock is being destroyed */ -#define LDLM_FL_CBPENDING 0x0000000400000000ULL // bit 34 +#define LDLM_FL_CBPENDING 0x0000000400000000ULL /* bit 34 */ #define ldlm_is_cbpending(_l) LDLM_TEST_FLAG((_l), 1ULL << 34) #define ldlm_set_cbpending(_l) LDLM_SET_FLAG((_l), 1ULL << 34) #define ldlm_clear_cbpending(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 34) /** not a real flag, not saved in lock */ -#define LDLM_FL_WAIT_NOREPROC 0x0000000800000000ULL // bit 35 +#define LDLM_FL_WAIT_NOREPROC 0x0000000800000000ULL /* bit 35 */ #define ldlm_is_wait_noreproc(_l) LDLM_TEST_FLAG((_l), 1ULL << 35) #define ldlm_set_wait_noreproc(_l) LDLM_SET_FLAG((_l), 1ULL << 35) #define ldlm_clear_wait_noreproc(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 35) /** cancellation callback already run */ -#define LDLM_FL_CANCEL 0x0000001000000000ULL // bit 36 +#define LDLM_FL_CANCEL 0x0000001000000000ULL /* bit 36 */ #define ldlm_is_cancel(_l) LDLM_TEST_FLAG((_l), 1ULL << 36) #define ldlm_set_cancel(_l) LDLM_SET_FLAG((_l), 1ULL << 36) #define ldlm_clear_cancel(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 36) /** whatever it might mean */ -#define LDLM_FL_LOCAL_ONLY 0x0000002000000000ULL // bit 37 +#define LDLM_FL_LOCAL_ONLY 0x0000002000000000ULL /* bit 37 */ #define ldlm_is_local_only(_l) LDLM_TEST_FLAG((_l), 1ULL << 37) #define ldlm_set_local_only(_l) LDLM_SET_FLAG((_l), 1ULL << 37) #define ldlm_clear_local_only(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 37) /** don't run the cancel callback under ldlm_cli_cancel_unused */ -#define LDLM_FL_FAILED 0x0000004000000000ULL // bit 38 +#define LDLM_FL_FAILED 0x0000004000000000ULL /* bit 38 */ #define ldlm_is_failed(_l) LDLM_TEST_FLAG((_l), 1ULL << 38) #define ldlm_set_failed(_l) LDLM_SET_FLAG((_l), 1ULL << 38) #define ldlm_clear_failed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 38) /** lock cancel has already been sent */ -#define LDLM_FL_CANCELING 0x0000008000000000ULL // bit 39 +#define LDLM_FL_CANCELING 0x0000008000000000ULL /* bit 39 */ #define ldlm_is_canceling(_l) LDLM_TEST_FLAG((_l), 1ULL << 39) #define ldlm_set_canceling(_l) LDLM_SET_FLAG((_l), 1ULL << 39) #define ldlm_clear_canceling(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 39) /** local lock (ie, no srv/cli split) */ -#define LDLM_FL_LOCAL 0x0000010000000000ULL // bit 40 +#define LDLM_FL_LOCAL 0x0000010000000000ULL /* bit 40 */ #define ldlm_is_local(_l) LDLM_TEST_FLAG((_l), 1ULL << 40) #define ldlm_set_local(_l) LDLM_SET_FLAG((_l), 1ULL << 40) #define ldlm_clear_local(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 40) @@ -232,7 +232,7 @@ * which can be replaced with a LVB-aware wrapping function for OSC locks. * That change is pretty high-risk, though, and would need a lot more * testing. */ -#define LDLM_FL_LVB_READY 0x0000020000000000ULL // bit 41 +#define LDLM_FL_LVB_READY 0x0000020000000000ULL /* bit 41 */ #define ldlm_is_lvb_ready(_l) LDLM_TEST_FLAG((_l), 1ULL << 41) #define ldlm_set_lvb_ready(_l) LDLM_SET_FLAG((_l), 1ULL << 41) #define ldlm_clear_lvb_ready(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 41) @@ -244,19 +244,19 @@ * Threads racing to update the KMS after performing their writeback need * to know to exclude each other's locks from the calculation as they walk * the granted list. */ -#define LDLM_FL_KMS_IGNORE 0x0000040000000000ULL // bit 42 +#define LDLM_FL_KMS_IGNORE 0x0000040000000000ULL /* bit 42 */ #define ldlm_is_kms_ignore(_l) LDLM_TEST_FLAG((_l), 1ULL << 42) #define ldlm_set_kms_ignore(_l) LDLM_SET_FLAG((_l), 1ULL << 42) #define ldlm_clear_kms_ignore(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 42) /** completion AST to be executed */ -#define LDLM_FL_CP_REQD 0x0000080000000000ULL // bit 43 +#define LDLM_FL_CP_REQD 0x0000080000000000ULL /* bit 43 */ #define ldlm_is_cp_reqd(_l) LDLM_TEST_FLAG((_l), 1ULL << 43) #define ldlm_set_cp_reqd(_l) LDLM_SET_FLAG((_l), 1ULL << 43) #define ldlm_clear_cp_reqd(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 43) /** cleanup_resource has already handled the lock */ -#define LDLM_FL_CLEANED 0x0000100000000000ULL // bit 44 +#define LDLM_FL_CLEANED 0x0000100000000000ULL /* bit 44 */ #define ldlm_is_cleaned(_l) LDLM_TEST_FLAG((_l), 1ULL << 44) #define ldlm_set_cleaned(_l) LDLM_SET_FLAG((_l), 1ULL << 44) #define ldlm_clear_cleaned(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 44) @@ -264,7 +264,7 @@ /** * optimization hint: LDLM can run blocking callback from current context * w/o involving separate thread. in order to decrease cs rate */ -#define LDLM_FL_ATOMIC_CB 0x0000200000000000ULL // bit 45 +#define LDLM_FL_ATOMIC_CB 0x0000200000000000ULL /* bit 45 */ #define ldlm_is_atomic_cb(_l) LDLM_TEST_FLAG((_l), 1ULL << 45) #define ldlm_set_atomic_cb(_l) LDLM_SET_FLAG((_l), 1ULL << 45) #define ldlm_clear_atomic_cb(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 45) @@ -281,13 +281,13 @@ * dropped to let ldlm_callback_handler() return EINVAL to the server. It * is used when ELC RPC is already prepared and is waiting for rpc_lock, * too late to send a separate CANCEL RPC. */ -#define LDLM_FL_BL_AST 0x0000400000000000ULL // bit 46 +#define LDLM_FL_BL_AST 0x0000400000000000ULL /* bit 46 */ #define ldlm_is_bl_ast(_l) LDLM_TEST_FLAG((_l), 1ULL << 46) #define ldlm_set_bl_ast(_l) LDLM_SET_FLAG((_l), 1ULL << 46) #define ldlm_clear_bl_ast(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 46) /** whatever it might mean */ -#define LDLM_FL_BL_DONE 0x0000800000000000ULL // bit 47 +#define LDLM_FL_BL_DONE 0x0000800000000000ULL /* bit 47 */ #define ldlm_is_bl_done(_l) LDLM_TEST_FLAG((_l), 1ULL << 47) #define ldlm_set_bl_done(_l) LDLM_SET_FLAG((_l), 1ULL << 47) #define ldlm_clear_bl_done(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 47) @@ -296,7 +296,7 @@ * Don't put lock into the LRU list, so that it is not canceled due * to aging. Used by MGC locks, they are cancelled only at unmount or * by callback. */ -#define LDLM_FL_NO_LRU 0x0001000000000000ULL // bit 48 +#define LDLM_FL_NO_LRU 0x0001000000000000ULL /* bit 48 */ #define ldlm_is_no_lru(_l) LDLM_TEST_FLAG((_l), 1ULL << 48) #define ldlm_set_no_lru(_l) LDLM_SET_FLAG((_l), 1ULL << 48) #define ldlm_clear_no_lru(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 48) @@ -305,7 +305,7 @@ * Set for locks that failed and where the server has been notified. * * Protected by lock and resource locks. */ -#define LDLM_FL_FAIL_NOTIFIED 0x0002000000000000ULL // bit 49 +#define LDLM_FL_FAIL_NOTIFIED 0x0002000000000000ULL /* bit 49 */ #define ldlm_is_fail_notified(_l) LDLM_TEST_FLAG((_l), 1ULL << 49) #define ldlm_set_fail_notified(_l) LDLM_SET_FLAG((_l), 1ULL << 49) #define ldlm_clear_fail_notified(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 49) @@ -316,13 +316,13 @@ * ldlm_lock_destroy_internal(). * * Protected by lock and resource locks. */ -#define LDLM_FL_DESTROYED 0x0004000000000000ULL // bit 50 +#define LDLM_FL_DESTROYED 0x0004000000000000ULL /* bit 50 */ #define ldlm_is_destroyed(_l) LDLM_TEST_FLAG((_l), 1ULL << 50) #define ldlm_set_destroyed(_l) LDLM_SET_FLAG((_l), 1ULL << 50) #define ldlm_clear_destroyed(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 50) /** flag whether this is a server namespace lock */ -#define LDLM_FL_SERVER_LOCK 0x0008000000000000ULL // bit 51 +#define LDLM_FL_SERVER_LOCK 0x0008000000000000ULL /* bit 51 */ #define ldlm_is_server_lock(_l) LDLM_TEST_FLAG((_l), 1ULL << 51) #define ldlm_set_server_lock(_l) LDLM_SET_FLAG((_l), 1ULL << 51) #define ldlm_clear_server_lock(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 51) @@ -334,7 +334,7 @@ * Also, spin_is_locked() is deprecated for kernel code; one reason is * because it works only for SMP so user needs to add extra macros like * LASSERT_SPIN_LOCKED for uniprocessor kernels. */ -#define LDLM_FL_RES_LOCKED 0x0010000000000000ULL // bit 52 +#define LDLM_FL_RES_LOCKED 0x0010000000000000ULL /* bit 52 */ #define ldlm_is_res_locked(_l) LDLM_TEST_FLAG((_l), 1ULL << 52) #define ldlm_set_res_locked(_l) LDLM_SET_FLAG((_l), 1ULL << 52) #define ldlm_clear_res_locked(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 52) @@ -344,13 +344,13 @@ * lock-timeout timer and it will never be reset. * * Protected by lock and resource locks. */ -#define LDLM_FL_WAITED 0x0020000000000000ULL // bit 53 +#define LDLM_FL_WAITED 0x0020000000000000ULL /* bit 53 */ #define ldlm_is_waited(_l) LDLM_TEST_FLAG((_l), 1ULL << 53) #define ldlm_set_waited(_l) LDLM_SET_FLAG((_l), 1ULL << 53) #define ldlm_clear_waited(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 53) /** Flag whether this is a server namespace lock. */ -#define LDLM_FL_NS_SRV 0x0040000000000000ULL // bit 54 +#define LDLM_FL_NS_SRV 0x0040000000000000ULL /* bit 54 */ #define ldlm_is_ns_srv(_l) LDLM_TEST_FLAG((_l), 1ULL << 54) #define ldlm_set_ns_srv(_l) LDLM_SET_FLAG((_l), 1ULL << 54) #define ldlm_clear_ns_srv(_l) LDLM_CLEAR_FLAG((_l), 1ULL << 54) From 9dc3840b4efb6ad47357c3088a91d0088e306514 Mon Sep 17 00:00:00 2001 From: Anton Gerasimov Date: Thu, 24 Sep 2015 00:02:28 +0300 Subject: [PATCH 0893/2431] staging: lustre: moved extern declarations to a header This patch moves declarations of variables used in several files across the ptlrpc module from source files to a local header. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 1 - drivers/staging/lustre/lustre/ptlrpc/nrs.c | 1 - drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h | 6 ++++++ drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c | 2 -- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 9a10baf711b0..2b88aef3201f 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -420,7 +420,6 @@ LUSTRE_RW_ATTR(threads_max); * \addtogoup nrs * @{ */ -extern struct nrs_core nrs_core; /** * Translates \e ptlrpc_nrs_pol_state values to human-readable strings. diff --git a/drivers/staging/lustre/lustre/ptlrpc/nrs.c b/drivers/staging/lustre/lustre/ptlrpc/nrs.c index d37cdd5ac580..40696f3678cf 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/nrs.c +++ b/drivers/staging/lustre/lustre/ptlrpc/nrs.c @@ -49,7 +49,6 @@ /* XXX: This is just for liblustre. Remove the #if defined directive when the * "cfs_" prefix is dropped from cfs_list_head. */ -extern struct list_head ptlrpc_all_services; /** * NRS core object. diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h index 34c7e28afdaf..4e35b14a1315 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h @@ -47,6 +47,10 @@ struct ldlm_res_id; struct ptlrpc_request_set; extern int test_req_buffer_pressure; extern struct mutex ptlrpc_all_services_mutex; +extern struct list_head ptlrpc_all_services; + +extern struct mutex ptlrpcd_mutex; +extern struct mutex pinger_mutex; int ptlrpc_start_thread(struct ptlrpc_service_part *svcpt, int wait); /* ptlrpcd.c */ @@ -110,6 +114,8 @@ struct nrs_core { }; +extern struct nrs_core nrs_core; + int ptlrpc_service_nrs_setup(struct ptlrpc_service *svc); void ptlrpc_service_nrs_cleanup(struct ptlrpc_service *svc); diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c index 9985fb61f630..d12e95bc9dce 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c @@ -48,8 +48,6 @@ extern spinlock_t ptlrpc_last_xid_lock; #if RS_DEBUG extern spinlock_t ptlrpc_rs_debug_lock; #endif -extern struct mutex pinger_mutex; -extern struct mutex ptlrpcd_mutex; static int __init ptlrpc_init(void) { From 4e58248728ded9d2d088b355cf74f33eb6a4746c Mon Sep 17 00:00:00 2001 From: Anton Gerasimov Date: Thu, 24 Sep 2015 00:04:04 +0300 Subject: [PATCH 0894/2431] staging: lustre: include header with local ptlrpc declarations Include the header with declarations of variables that are shared between several sources in ptlrpc module into the appropriate source files. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/sec_null.c | 2 ++ drivers/staging/lustre/lustre/ptlrpc/wiretest.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_null.c b/drivers/staging/lustre/lustre/ptlrpc/sec_null.c index ce1c563d0175..0f3c693dd217 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_null.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_null.c @@ -47,6 +47,8 @@ #include "../include/lustre_net.h" #include "../include/lustre_sec.h" +#include "ptlrpc_internal.h" + static struct ptlrpc_sec_policy null_policy; static struct ptlrpc_sec null_sec; static struct ptlrpc_cli_ctx null_cli_ctx; diff --git a/drivers/staging/lustre/lustre/ptlrpc/wiretest.c b/drivers/staging/lustre/lustre/ptlrpc/wiretest.c index b2313afa81a6..40f720ca3b14 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/wiretest.c +++ b/drivers/staging/lustre/lustre/ptlrpc/wiretest.c @@ -43,6 +43,8 @@ #include "../include/obd_class.h" #include "../include/lustre_net.h" #include "../include/lustre_disk.h" +#include "ptlrpc_internal.h" + void lustre_assert_wire_constants(void) { /* Wire protocol assertions generated by 'wirecheck' From 2adf5e8775374288ed5b5b4966dc92418d3868f8 Mon Sep 17 00:00:00 2001 From: Anton Gerasimov Date: Thu, 24 Sep 2015 00:08:17 +0300 Subject: [PATCH 0895/2431] staging: lustre: make non-exported functions static Declare non-exported functions as static. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/pack_generic.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index f1380613a4d1..dd31215172d9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -442,8 +442,8 @@ void *lustre_msg_buf(struct lustre_msg *m, int n, int min_size) } EXPORT_SYMBOL(lustre_msg_buf); -int lustre_shrink_msg_v2(struct lustre_msg_v2 *msg, int segment, - unsigned int newlen, int move_data) +static int lustre_shrink_msg_v2(struct lustre_msg_v2 *msg, int segment, + unsigned int newlen, int move_data) { char *tail = NULL, *newpos; int tail_len = 0, n; @@ -1929,7 +1929,7 @@ void lustre_swab_fid2path(struct getinfo_fid2path *gf) } EXPORT_SYMBOL(lustre_swab_fid2path); -void lustre_swab_fiemap_extent(struct ll_fiemap_extent *fm_extent) +static void lustre_swab_fiemap_extent(struct ll_fiemap_extent *fm_extent) { __swab64s(&fm_extent->fe_logical); __swab64s(&fm_extent->fe_physical); @@ -2405,7 +2405,7 @@ void lustre_swab_hsm_state_set(struct hsm_state_set *hss) } EXPORT_SYMBOL(lustre_swab_hsm_state_set); -void lustre_swab_hsm_extent(struct hsm_extent *extent) +static void lustre_swab_hsm_extent(struct hsm_extent *extent) { __swab64s(&extent->offset); __swab64s(&extent->length); From 7fb7027c44647338962d7aa35ddeedaaa6a9f7d6 Mon Sep 17 00:00:00 2001 From: Jayavant Kenjalkar Date: Sun, 27 Sep 2015 11:15:21 +0530 Subject: [PATCH 0896/2431] Staging: lustre: Fix warning detected by coccicheck Removing redundant semicolon as detected by coccicheck. Signed-off-by: Jayavant Kenjalkar Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c index 22194c0ab970..bfc56cdc3916 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c +++ b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c @@ -600,7 +600,7 @@ int ptl_send_rpc(struct ptlrpc_request *request, int noreply) /* Manage remote for early replies */ reply_md.options = PTLRPC_MD_OPTIONS | LNET_MD_OP_PUT | LNET_MD_MANAGE_REMOTE | - LNET_MD_TRUNCATE; /* allow to make EOVERFLOW error */; + LNET_MD_TRUNCATE; /* allow to make EOVERFLOW error */ reply_md.user_ptr = &request->rq_reply_cbid; reply_md.eq_handle = ptlrpc_eq_h; From 9f088dba3cc267ea11ec0da318cd0175575b5f9b Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:01 -0400 Subject: [PATCH 0897/2431] staging/lustre: use jiffies for lp_last_query times The recently introduced lnet_peer_set_alive() function uses get_seconds() to read the current time into a shared variable, but all other uses of that variable compare it to jiffies values. This changes the current use to jiffies as well for consistency. Signed-off-by: Arnd Bergmann Fixes: af3fa7c71bf ("staging/lustre/lnet: peer aliveness status and NI status") Cc: Liang Zhen Cc: James Simmons Cc: Isaac Huang Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/include/linux/lnet/lib-lnet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h index 22d54b209528..b61d5045a566 100644 --- a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h +++ b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h @@ -680,7 +680,7 @@ void lnet_debug_peer(lnet_nid_t nid); static inline void lnet_peer_set_alive(lnet_peer_t *lp) { - lp->lp_last_alive = lp->lp_last_query = get_seconds(); + lp->lp_last_alive = lp->lp_last_query = jiffies; if (!lp->lp_alive) lnet_notify_locked(lp, 0, 1, lp->lp_last_alive); } From 46c360f9d38e0b26247a3b723545790853c6747b Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:02 -0400 Subject: [PATCH 0898/2431] staging/lustre: use 64-bit inode timestamps internally Lustre has 64-bit timestamps in its network data structures, but on 32 bit systems, it converts them directly into time_t, which is 32 bit wide. This changes the code to use 64-bit time stamps for files. The Linux VFS code still uses time_t though, and will be changed in a separate patch series. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/cl_object.h | 6 +++--- drivers/staging/lustre/lustre/llite/llite_internal.h | 2 +- drivers/staging/lustre/lustre/llite/vvp_io.c | 4 ++-- drivers/staging/lustre/lustre/llite/vvp_object.c | 12 ++++++------ drivers/staging/lustre/lustre/osc/osc_io.c | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index 04dcb5111756..90fbaa22e510 100644 --- a/drivers/staging/lustre/lustre/include/cl_object.h +++ b/drivers/staging/lustre/lustre/include/cl_object.h @@ -173,11 +173,11 @@ struct cl_attr { */ loff_t cat_kms; /** Modification time. Measured in seconds since epoch. */ - time_t cat_mtime; + time64_t cat_mtime; /** Access time. Measured in seconds since epoch. */ - time_t cat_atime; + time64_t cat_atime; /** Change time. Measured in seconds since epoch. */ - time_t cat_ctime; + time64_t cat_ctime; /** * Blocks allocated to this cl_object on the server file system. * diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 37bf331be5c2..fdd0a58286c1 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -851,7 +851,7 @@ struct vvp_io { * Inode modification time that is checked across DLM * lock request. */ - time_t ft_mtime; + time64_t ft_mtime; struct vm_area_struct *ft_vma; /** * locked page returned from vvp_io diff --git a/drivers/staging/lustre/lustre/llite/vvp_io.c b/drivers/staging/lustre/lustre/llite/vvp_io.c index 75a8ea21bc24..cf264de0e531 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_io.c +++ b/drivers/staging/lustre/lustre/llite/vvp_io.c @@ -109,7 +109,7 @@ static int vvp_io_fault_iter_init(const struct lu_env *env, LASSERT(inode == file_inode(cl2ccc_io(env, ios)->cui_fd->fd_file)); - vio->u.fault.ft_mtime = LTIME_S(inode->i_mtime); + vio->u.fault.ft_mtime = inode->i_mtime.tv_sec; return 0; } @@ -661,7 +661,7 @@ static int vvp_io_fault_start(const struct lu_env *env, pgoff_t last; /* last page in a file data region */ if (fio->ft_executable && - LTIME_S(inode->i_mtime) != vio->u.fault.ft_mtime) + inode->i_mtime.tv_sec != vio->u.fault.ft_mtime) CWARN("binary "DFID " changed while waiting for the page fault lock\n", PFID(lu_object_fid(&obj->co_lu))); diff --git a/drivers/staging/lustre/lustre/llite/vvp_object.c b/drivers/staging/lustre/lustre/llite/vvp_object.c index b6f6d4cb6e41..cb2811b9aae7 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_object.c +++ b/drivers/staging/lustre/lustre/llite/vvp_object.c @@ -87,9 +87,9 @@ static int vvp_attr_get(const struct lu_env *env, struct cl_object *obj, */ attr->cat_size = i_size_read(inode); - attr->cat_mtime = LTIME_S(inode->i_mtime); - attr->cat_atime = LTIME_S(inode->i_atime); - attr->cat_ctime = LTIME_S(inode->i_ctime); + attr->cat_mtime = inode->i_mtime.tv_sec; + attr->cat_atime = inode->i_atime.tv_sec; + attr->cat_ctime = inode->i_ctime.tv_sec; attr->cat_blocks = inode->i_blocks; attr->cat_uid = from_kuid(&init_user_ns, inode->i_uid); attr->cat_gid = from_kgid(&init_user_ns, inode->i_gid); @@ -107,11 +107,11 @@ static int vvp_attr_set(const struct lu_env *env, struct cl_object *obj, if (valid & CAT_GID) inode->i_gid = make_kgid(&init_user_ns, attr->cat_gid); if (valid & CAT_ATIME) - LTIME_S(inode->i_atime) = attr->cat_atime; + inode->i_atime.tv_sec = attr->cat_atime; if (valid & CAT_MTIME) - LTIME_S(inode->i_mtime) = attr->cat_mtime; + inode->i_mtime.tv_sec = attr->cat_mtime; if (valid & CAT_CTIME) - LTIME_S(inode->i_ctime) = attr->cat_ctime; + inode->i_ctime.tv_sec = attr->cat_ctime; if (0 && valid & CAT_SIZE) cl_isize_write_nolock(inode, attr->cat_size); /* not currently necessary */ diff --git a/drivers/staging/lustre/lustre/osc/osc_io.c b/drivers/staging/lustre/lustre/osc/osc_io.c index fa24e9ed1831..be058c289d76 100644 --- a/drivers/staging/lustre/lustre/osc/osc_io.c +++ b/drivers/staging/lustre/lustre/osc/osc_io.c @@ -518,7 +518,7 @@ static int osc_io_read_start(const struct lu_env *env, if (!slice->cis_io->ci_noatime) { cl_object_attr_lock(obj); - attr->cat_atime = LTIME_S(CURRENT_TIME); + attr->cat_atime = ktime_get_real_seconds(); rc = cl_object_attr_set(env, obj, attr, CAT_ATIME); cl_object_attr_unlock(obj); } @@ -534,7 +534,7 @@ static int osc_io_write_start(const struct lu_env *env, OBD_FAIL_TIMEOUT(OBD_FAIL_OSC_DELAY_SETTIME, 1); cl_object_attr_lock(obj); - attr->cat_mtime = attr->cat_ctime = LTIME_S(CURRENT_TIME); + attr->cat_mtime = attr->cat_ctime = ktime_get_real_seconds(); rc = cl_object_attr_set(env, obj, attr, CAT_MTIME | CAT_CTIME); cl_object_attr_unlock(obj); From 45efd655b1ed8286e9fe03e63e674cfb4f5b671e Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:03 -0400 Subject: [PATCH 0899/2431] staging/lustre: obd: remove unused data structures We want to get rid of all uses of time_t, and it turns out that obd.h contains a bunch of them that are completely unused. This removes those structures, along with a couple of other structures and functions in the same file that also turned out to be unused. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd.h | 33 ------------------- .../staging/lustre/lustre/include/obd_class.h | 2 +- drivers/staging/lustre/lustre/llite/file.c | 2 +- .../staging/lustre/lustre/llite/llite_lib.c | 2 +- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- .../lustre/lustre/obdclass/obd_config.c | 1 - .../lustre/lustre/obdecho/echo_client.c | 4 +-- drivers/staging/lustre/lustre/osc/osc_io.c | 2 +- 8 files changed, 7 insertions(+), 41 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index bafef4e6fe94..0dbac3f53f01 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -144,10 +144,6 @@ typedef int (*obd_enqueue_update_f)(void *cookie, int rc); /* obd info for a particular level (lov, osc). */ struct obd_info { - /* Lock policy. It keeps an extent which is specific for a particular - * OSC. (e.g. lov_prep_enqueue_set initialises extent of the policy, - * and osc_enqueue passes it into ldlm_lock_match & ldlm_cli_enqueue. */ - ldlm_policy_data_t oi_policy; /* Flags used for set request specific flags: - while lock handling, the flags obtained on the enqueue request are set here. @@ -155,8 +151,6 @@ struct obd_info { - while setattr, the flags used for distinguish punch operation */ __u64 oi_flags; - /* Lock handle specific for every OSC lock. */ - struct lustre_handle *oi_lockh; /* lsm data specific for every OSC. */ struct lov_stripe_md *oi_md; /* obdo data specific for every OSC, if needed at all. */ @@ -171,8 +165,6 @@ struct obd_info { /* oss capability, its type is obd_capa in client to avoid copy. * in contrary its type is lustre_capa in OSS. */ void *oi_capa; - /* transfer jobid from ost_sync() to filter_sync()... */ - char *oi_jobid; }; /* compare all relevant fields. */ @@ -455,25 +447,6 @@ struct echo_client_obd { __u64 ec_unique; }; -struct lov_qos_oss { - struct obd_uuid lqo_uuid; /* ptlrpc's c_remote_uuid */ - struct list_head lqo_oss_list; /* link to lov_qos */ - __u64 lqo_bavail; /* total bytes avail on OSS */ - __u64 lqo_penalty; /* current penalty */ - __u64 lqo_penalty_per_obj;/* penalty decrease every obj*/ - time_t lqo_used; /* last used time, seconds */ - __u32 lqo_ost_count; /* number of osts on this oss */ -}; - -struct ltd_qos { - struct lov_qos_oss *ltq_oss; /* oss info */ - __u64 ltq_penalty; /* current penalty */ - __u64 ltq_penalty_per_obj; /* penalty decrease every obj*/ - __u64 ltq_weight; /* net weighting */ - time_t ltq_used; /* last used time, seconds */ - unsigned int ltq_usable:1; /* usable for striping */ -}; - /* Generic subset of OSTs */ struct ost_pool { __u32 *op_array; /* array of index of @@ -524,7 +497,6 @@ struct lov_tgt_desc { struct obd_uuid ltd_uuid; struct obd_device *ltd_obd; struct obd_export *ltd_exp; - struct ltd_qos ltd_qos; /* qos info per target */ __u32 ltd_gen; __u32 ltd_index; /* index in lov_obd->tgts */ unsigned long ltd_active:1,/* is this target up for requests */ @@ -883,12 +855,7 @@ struct obd_device { int obd_requests_queued_for_recovery; wait_queue_head_t obd_next_transno_waitq; /* protected by obd_recovery_task_lock */ - struct timer_list obd_recovery_timer; - time_t obd_recovery_start; /* seconds */ - time_t obd_recovery_end; /* seconds, for lprocfs_status */ - int obd_recovery_time_hard; int obd_recovery_timeout; - int obd_recovery_ir_factor; /* new recovery stuff from CMD2 */ struct target_recovery_data obd_recovery_data; diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index ce6fa55aded7..7308cda6f5e6 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -1114,7 +1114,7 @@ static inline int obd_statfs_rqset(struct obd_export *exp, __u32 flags) { struct ptlrpc_request_set *set = NULL; - struct obd_info oinfo = { { { 0 } } }; + struct obd_info oinfo = { }; int rc = 0; set = ptlrpc_prep_set(); diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index 31ed2487377b..5627c0f6dca1 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -916,7 +916,7 @@ static int ll_lsm_getattr(struct lov_stripe_md *lsm, struct obd_export *exp, __u64 ioepoch, int sync) { struct ptlrpc_request_set *set; - struct obd_info oinfo = { { { 0 } } }; + struct obd_info oinfo = { }; int rc; LASSERT(lsm != NULL); diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index aa68608c3cbd..8dc3de11bb74 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1824,7 +1824,7 @@ int ll_iocontrol(struct inode *inode, struct file *file, } case FSFILT_IOC_SETFLAGS: { struct lov_stripe_md *lsm; - struct obd_info oinfo = { { { 0 } } }; + struct obd_info oinfo = { }; struct md_op_data *op_data; if (get_user(flags, (int *)arg)) diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index 906503b05979..d51311c9c753 100644 --- a/drivers/staging/lustre/lustre/lov/lov_obd.c +++ b/drivers/staging/lustre/lustre/lov/lov_obd.c @@ -1365,7 +1365,7 @@ static int lov_statfs(const struct lu_env *env, struct obd_export *exp, struct obd_statfs *osfs, __u64 max_age, __u32 flags) { struct ptlrpc_request_set *set = NULL; - struct obd_info oinfo = { { { 0 } } }; + struct obd_info oinfo = { }; int rc = 0; /* for obdclass we forbid using obd_statfs_rqset, but prefer using async diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 32b40eab8d8e..b86a47c54029 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -393,7 +393,6 @@ int class_attach(struct lustre_cfg *lcfg) /* XXX belongs in setup not attach */ init_rwsem(&obd->obd_observer_link_sem); /* recovery data */ - cfs_init_timer(&obd->obd_recovery_timer); spin_lock_init(&obd->obd_recovery_task_lock); init_waitqueue_head(&obd->obd_next_transno_waitq); init_waitqueue_head(&obd->obd_evict_inprogress_waitq); diff --git a/drivers/staging/lustre/lustre/obdecho/echo_client.c b/drivers/staging/lustre/lustre/obdecho/echo_client.c index 27bd170c3a28..81304e456dbd 100644 --- a/drivers/staging/lustre/lustre/obdecho/echo_client.c +++ b/drivers/staging/lustre/lustre/obdecho/echo_client.c @@ -1917,7 +1917,7 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, case OBD_IOC_GETATTR: rc = echo_get_object(&eco, ed, oa); if (rc == 0) { - struct obd_info oinfo = { { { 0 } } }; + struct obd_info oinfo = { }; oinfo.oi_md = eco->eo_lsm; oinfo.oi_oa = oa; @@ -1934,7 +1934,7 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, rc = echo_get_object(&eco, ed, oa); if (rc == 0) { - struct obd_info oinfo = { { { 0 } } }; + struct obd_info oinfo = { }; oinfo.oi_oa = oa; oinfo.oi_md = eco->eo_lsm; diff --git a/drivers/staging/lustre/lustre/osc/osc_io.c b/drivers/staging/lustre/lustre/osc/osc_io.c index be058c289d76..67bf0bdeb853 100644 --- a/drivers/staging/lustre/lustre/osc/osc_io.c +++ b/drivers/staging/lustre/lustre/osc/osc_io.c @@ -402,7 +402,7 @@ static int osc_io_setattr_start(const struct lu_env *env, __u64 size = io->u.ci_setattr.sa_attr.lvb_size; unsigned int ia_valid = io->u.ci_setattr.sa_valid; int result = 0; - struct obd_info oinfo = { { { 0 } } }; + struct obd_info oinfo = { }; /* truncate cache dirty pages first */ if (cl_io_is_trunc(io)) From 65f28840e4c653b7d78feabcb65280c09d3d0d23 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:04 -0400 Subject: [PATCH 0900/2431] staging/lustre: tracefile: document seconds overflow The lustre tracefile has a timestamp defined as __u32 ph_sec; __u64 ph_usec; which seems completely backwards, as the microsecond portion of a time stamp will always fit into a __u32 value, while the second portion will overflow in 2038 or 2106 (in case of unsigned seconds). Changing this would unfortunately change the format in an incompatible way, breaking all existing user space tools that access the data. This uses ktime_get_real_ts64() to replace the insufficient do_gettimeofday() and then truncates the seconds portion to an u32 type, along with comments to explain the result. A possible alternative would be the use of ktime_get_ts64() to read a monotonic timestamp that never overflows, but this would trigger a check in user space 'hdr->ph_sec < (1 << 30)' that attempts to ensure that the values are within a reasonable range. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/include/linux/libcfs/libcfs_debug.h | 1 + .../lustre/lustre/libcfs/linux/linux-tracefile.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h index a3aa644154e2..a1787bb43483 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h @@ -73,6 +73,7 @@ struct ptldebug_header { __u32 ph_mask; __u16 ph_cpu_id; __u16 ph_type; + /* time_t overflow in 2106 */ __u32 ph_sec; __u64 ph_usec; __u32 ph_stack; diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c index 87d844953522..64a136cd503d 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c @@ -191,16 +191,18 @@ cfs_set_ptldebug_header(struct ptldebug_header *header, struct libcfs_debug_msg_data *msgdata, unsigned long stack) { - struct timeval tv; + struct timespec64 ts; - do_gettimeofday(&tv); + ktime_get_real_ts64(&ts); header->ph_subsys = msgdata->msg_subsys; header->ph_mask = msgdata->msg_mask; header->ph_cpu_id = smp_processor_id(); header->ph_type = cfs_trace_buf_idx_get(); - header->ph_sec = (__u32)tv.tv_sec; - header->ph_usec = tv.tv_usec; + /* y2038 safe since all user space treats this as unsigned, but + * will overflow in 2106 */ + header->ph_sec = (u32)ts.tv_sec; + header->ph_usec = ts.tv_nsec / NSEC_PER_USEC; header->ph_stack = stack; header->ph_pid = current->pid; header->ph_line_num = msgdata->msg_line; From 86655400c6e74751a73be82ea40d5ae6979c3225 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:05 -0400 Subject: [PATCH 0901/2431] staging/lustre: use 64-bit timestamps in debugfs output Some lustre debugfs files contain the current time. Make sure we use a format here that does not overflow in 2038. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/lproc_osc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index f3eb39fe8535..2a16046aac20 100644 --- a/drivers/staging/lustre/lustre/osc/lproc_osc.c +++ b/drivers/staging/lustre/lustre/osc/lproc_osc.c @@ -594,18 +594,18 @@ static struct lprocfs_vars lprocfs_osc_obd_vars[] = { static int osc_rpc_stats_seq_show(struct seq_file *seq, void *v) { - struct timeval now; + struct timespec64 now; struct obd_device *dev = seq->private; struct client_obd *cli = &dev->u.cli; unsigned long read_tot = 0, write_tot = 0, read_cum, write_cum; int i; - do_gettimeofday(&now); + ktime_get_real_ts64(&now); client_obd_list_lock(&cli->cl_loi_list_lock); - seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", - now.tv_sec, (unsigned long)now.tv_usec); + seq_printf(seq, "snapshot_time: %llu.%9lu (secs.usecs)\n", + (s64)now.tv_sec, (unsigned long)now.tv_nsec); seq_printf(seq, "read RPCs in flight: %d\n", cli->cl_r_in_flight); seq_printf(seq, "write RPCs in flight: %d\n", @@ -711,14 +711,14 @@ LPROC_SEQ_FOPS(osc_rpc_stats); static int osc_stats_seq_show(struct seq_file *seq, void *v) { - struct timeval now; + struct timespec64 now; struct obd_device *dev = seq->private; struct osc_stats *stats = &obd2osc_dev(dev)->od_stats; - do_gettimeofday(&now); + ktime_get_real_ts64(&now); - seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", - now.tv_sec, (unsigned long)now.tv_usec); + seq_printf(seq, "snapshot_time: %llu.%9lu (secs.usecs)\n", + (s64)now.tv_sec, (unsigned long)now.tv_nsec); seq_printf(seq, "lockless_write_bytes\t\t%llu\n", stats->os_lockless_writes); seq_printf(seq, "lockless_read_bytes\t\t%llu\n", From bf6d21539d58f64812d71c956ecec3d67650b2ee Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:06 -0400 Subject: [PATCH 0902/2431] staging/lustre: use time64_t for l_last_activity The l_last_activity struct member is used to keep track lock hold times, and it is printed for debugging purposes. For the elapsed time, we can use 'long' here, but it's better to use time64_t for storing the real time to avoid an overflow in 2038. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 2 +- .../staging/lustre/lustre/ldlm/ldlm_lock.c | 2 +- .../staging/lustre/lustre/ldlm/ldlm_request.c | 33 +++++++++---------- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 92b24be7c21e..796a997ec94c 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -749,7 +749,7 @@ struct ldlm_lock { * Seconds. It will be updated if there is any activity related to * the lock, e.g. enqueue the lock or send blocking AST. */ - unsigned long l_last_activity; + time64_t l_last_activity; /** * Time last used by e.g. being matched by lock match. diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index cd340fc8ceab..12eb5ac3b3d8 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -1564,7 +1564,7 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, ldlm_error_t rc = ELDLM_OK; struct ldlm_interval *node = NULL; - lock->l_last_activity = get_seconds(); + lock->l_last_activity = ktime_get_real_seconds(); /* policies are not executed on the client or during replay */ if ((*flags & (LDLM_FL_HAS_INTENT|LDLM_FL_REPLAY)) == LDLM_FL_HAS_INTENT && !local && ns->ns_policy) { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index b5ee9bd9875f..f6d61e5a38e7 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -97,15 +97,14 @@ int ldlm_expired_completion_wait(void *data) if (lock->l_conn_export == NULL) { static unsigned long next_dump, last_dump; - LCONSOLE_WARN("lock timed out (enqueued at "CFS_TIME_T", " - CFS_DURATION_T"s ago)\n", - lock->l_last_activity, - cfs_time_sub(get_seconds(), - lock->l_last_activity)); - LDLM_DEBUG(lock, "lock timed out (enqueued at " CFS_TIME_T ", " CFS_DURATION_T "s ago); not entering recovery in server code, just going back to sleep", - lock->l_last_activity, - cfs_time_sub(get_seconds(), - lock->l_last_activity)); + LCONSOLE_WARN("lock timed out (enqueued at %lld, %llds ago)\n", + (s64)lock->l_last_activity, + (s64)(ktime_get_real_seconds() - + lock->l_last_activity)); + LDLM_DEBUG(lock, "lock timed out (enqueued at %lld, %llds ago); not entering recovery in server code, just going back to sleep", + (s64)lock->l_last_activity, + (s64)(ktime_get_real_seconds() - + lock->l_last_activity)); if (cfs_time_after(cfs_time_current(), next_dump)) { last_dump = next_dump; next_dump = cfs_time_shift(300); @@ -120,11 +119,10 @@ int ldlm_expired_completion_wait(void *data) obd = lock->l_conn_export->exp_obd; imp = obd->u.cli.cl_import; ptlrpc_fail_import(imp, lwd->lwd_conn_cnt); - LDLM_ERROR(lock, "lock timed out (enqueued at "CFS_TIME_T", " - CFS_DURATION_T"s ago), entering recovery for %s@%s", - lock->l_last_activity, - cfs_time_sub(get_seconds(), lock->l_last_activity), - obd2cli_tgt(obd), imp->imp_connection->c_remote_uuid.uuid); + LDLM_ERROR(lock, "lock timed out (enqueued at %lld, %llds ago), entering recovery for %s@%s", + (s64)lock->l_last_activity, + (s64)(ktime_get_real_seconds() - lock->l_last_activity), + obd2cli_tgt(obd), imp->imp_connection->c_remote_uuid.uuid); return 0; } @@ -159,10 +157,9 @@ static int ldlm_completion_tail(struct ldlm_lock *lock) LDLM_DEBUG(lock, "client-side enqueue: destroyed"); result = -EIO; } else { - delay = cfs_time_sub(get_seconds(), - lock->l_last_activity); - LDLM_DEBUG(lock, "client-side enqueue: granted after " - CFS_DURATION_T"s", delay); + delay = ktime_get_real_seconds() - lock->l_last_activity; + LDLM_DEBUG(lock, "client-side enqueue: granted after %lds", + delay); /* Update our time estimate */ at_measured(ldlm_lock_to_ns_at(lock), From 98f2d643e3597bf42fa6c2c2fa12b99fe4afb3bc Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:07 -0400 Subject: [PATCH 0903/2431] staging/lustre: use ktime_t for calculating elapsed time process_param2_config() tries to print how much time has passed across a call_usermodehelper() function, and uses struct timeval for that. We want to remove this structure, so this is better expressed in terms of ktime_t and ktime_us_delta(). Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/obd_config.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index b86a47c54029..3bbc80623b3a 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -1021,8 +1021,8 @@ static int process_param2_config(struct lustre_cfg *lcfg) [2] = param, [3] = NULL }; - struct timeval start; - struct timeval end; + ktime_t start; + ktime_t end; int rc; @@ -1032,19 +1032,19 @@ static int process_param2_config(struct lustre_cfg *lcfg) return -EINVAL; } - do_gettimeofday(&start); + start = ktime_get(); rc = call_usermodehelper(argv[0], argv, NULL, 1); - do_gettimeofday(&end); + end = ktime_get(); if (rc < 0) { CERROR( "lctl: error invoking upcall %s %s %s: rc = %d; time %ldus\n", argv[0], argv[1], argv[2], rc, - cfs_timeval_sub(&end, &start, NULL)); + (long)ktime_us_delta(end, start)); } else { CDEBUG(D_HA, "lctl: invoked upcall %s %s %s, time %ldus\n", argv[0], argv[1], argv[2], - cfs_timeval_sub(&end, &start, NULL)); + (long)ktime_us_delta(end, start)); rc = 0; } From c8ff18106cf12af944c0c33ada5aa9a0a0e54048 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:08 -0400 Subject: [PATCH 0904/2431] staging/lustre: change rq_at_index type The rq_at_index member of ptlrpc_request is incorrectly declared as time_t, when it is only used as an index into an array, and assigned from a __u32 variable. This changes the type to u32, so we can kill off another use of time_t. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_net.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index c9c21d289e92..44adee134563 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -1292,7 +1292,7 @@ struct ptlrpc_request { struct ptlrpc_nrs_request rq_nrq; /** @} nrs */ /** the index of service's srv_at_array into which request is linked */ - time_t rq_at_index; + u32 rq_at_index; /** Lock to protect request flags and some other important bits, like * rq_list */ From a11ef8ca94cccca98e0d7f23d5145cad71dd62f0 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:09 -0400 Subject: [PATCH 0905/2431] staging/lustre: avoid unnecessary timeval conversion The lnet_eq_wait_locked tries to wait for time to pass or an event to wake up the wait queue. The entire logic seems to be a very elaborate reimplementation of wait_event(). I'm not trying to clean up the entire logic here, but this at least gets rid of the multi-way conversion between miliseconds, timeval and jiffies. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/lib-eq.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/lib-eq.c b/drivers/staging/lustre/lnet/lnet/lib-eq.c index f19ce9ae6a9a..8b843c5e71a5 100644 --- a/drivers/staging/lustre/lnet/lnet/lib-eq.c +++ b/drivers/staging/lustre/lnet/lnet/lib-eq.c @@ -341,12 +341,9 @@ __must_hold(&the_lnet.ln_eq_wait_lock) schedule(); } else { - struct timeval tv; - - now = cfs_time_current(); - schedule_timeout(cfs_time_seconds(tms) / 1000); - cfs_duration_usec(cfs_time_sub(cfs_time_current(), now), &tv); - tms -= (int)(tv.tv_sec * 1000 + tv.tv_usec / 1000); + now = jiffies; + schedule_timeout(msecs_to_jiffies(tms)); + tms -= jiffies_to_msecs(jiffies - now); if (tms < 0) /* no more wait but may have new event */ tms = 0; } From 5e50efea6a4fe6c92dce3022878f91cf17bdceb8 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:10 -0400 Subject: [PATCH 0906/2431] staging/lustre: use 64-bit time LNetCtl() This ioctl function passes a 64-bit time argument but then performs a computation with a 32-bit get_seconds() value. In order to avoid overflow here, this changes the code to use 64-bit math and ktime_get_real_seconds(). Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/api-ni.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c index 7fab03bee1ea..c368cf561b9d 100644 --- a/drivers/staging/lustre/lnet/lnet/api-ni.c +++ b/drivers/staging/lustre/lnet/lnet/api-ni.c @@ -1343,6 +1343,7 @@ LNetCtl(unsigned int cmd, void *arg) lnet_process_id_t id = {0}; lnet_ni_t *ni; int rc; + unsigned long secs_passed; LASSERT(the_lnet.ln_init); LASSERT(the_lnet.ln_refcount > 0); @@ -1370,10 +1371,9 @@ LNetCtl(unsigned int cmd, void *arg) &data->ioc_nid, &data->ioc_flags, &data->ioc_priority); case IOC_LIBCFS_NOTIFY_ROUTER: + secs_passed = (ktime_get_real_seconds() - data->ioc_u64[0]); return lnet_notify(NULL, data->ioc_nid, data->ioc_flags, - cfs_time_current() - - cfs_time_seconds(get_seconds() - - (time_t)data->ioc_u64[0])); + jiffies - secs_passed * HZ); case IOC_LIBCFS_PORTALS_COMPATIBILITY: /* This can be removed once lustre stops calling it */ From e8453c24d7f610ec67cc1bbbcf5c8b6880645672 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:11 -0400 Subject: [PATCH 0907/2431] staging/lustre: use 'long' return type for cfs_duration_sec() The cfs_duration_sec() converts a relative jiffies value into seconds, and returns that number as a time_t. We know that a 32-bit type is enough here, because the result is order of magnitudes smaller than the difference in jiffies that is also expressed as a 'long', so we can safely replace the time_t type with long as well. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h b/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h index 0fc490bac2b5..b0af90907020 100644 --- a/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h +++ b/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h @@ -90,7 +90,7 @@ static inline long cfs_time_seconds(int seconds) return ((long)seconds) * HZ; } -static inline time_t cfs_duration_sec(long d) +static inline long cfs_duration_sec(long d) { return d / HZ; } From 70513c5d17b9812cc218e8b4c7826ebb5f375d9a Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:12 -0400 Subject: [PATCH 0908/2431] staging/lustre: use jiffies_to_*() instead of cfs_duration_usec The cfs_duration_usec() function has a timeval as its output, which we want to avoid in general because of the y2038 problem. There are only two locations remaining in lustre, so we can for now replace one with jiffies_to_timeval(), which is a generic kernel function that does the same thing, the other can just use jiffies_to_usecs() and completely avoid the timeval. This is not a full solution yet, but it's a small step that lets us build a larger portion of lustre without this reference to timeval in a header file, and avoid triggering automated checking tools that wants to warn about timeval. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../include/linux/libcfs/linux/linux-time.h | 15 --------------- drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +- drivers/staging/lustre/lnet/selftest/framework.c | 6 +----- 3 files changed, 2 insertions(+), 21 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h b/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h index b0af90907020..f193f8bdee6e 100644 --- a/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h +++ b/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h @@ -95,21 +95,6 @@ static inline long cfs_duration_sec(long d) return d / HZ; } -static inline void cfs_duration_usec(long d, struct timeval *s) -{ -#if (BITS_PER_LONG == 32) && (HZ > 4096) - __u64 t; - - s->tv_sec = d / HZ; - t = (d - (long)s->tv_sec * HZ) * ONE_MILLION; - do_div(t, HZ); - s->tv_usec = t; -#else - s->tv_sec = d / HZ; - s->tv_usec = ((d - (long)s->tv_sec * HZ) * ONE_MILLION) / HZ; -#endif -} - #define cfs_time_current_64 get_jiffies_64 static inline __u64 cfs_time_add_64(__u64 t, __u64 d) diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c index a1a4e08f7391..bf2968310516 100644 --- a/drivers/staging/lustre/lnet/selftest/conrpc.c +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c @@ -505,7 +505,7 @@ lstcon_rpc_trans_interpreter(lstcon_rpc_trans_t *trans, dur = (long)cfs_time_sub(crpc->crp_stamp, (unsigned long)console_session.ses_id.ses_stamp); - cfs_duration_usec(dur, &tv); + jiffies_to_timeval(dur, &tv); if (copy_to_user(&ent->rpe_peer, &nd->nd_id, sizeof(lnet_process_id_t)) || diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c index 257de3537671..c448037a3c9f 100644 --- a/drivers/staging/lustre/lnet/selftest/framework.c +++ b/drivers/staging/lustre/lnet/selftest/framework.c @@ -372,7 +372,6 @@ sfw_get_stats(srpc_stat_reqst_t *request, srpc_stat_reply_t *reply) sfw_session_t *sn = sfw_data.fw_session; sfw_counters_t *cnt = &reply->str_fw; sfw_batch_t *bat; - struct timeval tv; reply->str_sid = (sn == NULL) ? LST_INVALID_SID : sn->sn_id; @@ -391,10 +390,7 @@ sfw_get_stats(srpc_stat_reqst_t *request, srpc_stat_reply_t *reply) /* send over the msecs since the session was started - with 32 bits to send, this is ~49 days */ - cfs_duration_usec(cfs_time_sub(cfs_time_current(), - sn->sn_started), &tv); - - cnt->running_ms = (__u32)(tv.tv_sec * 1000 + tv.tv_usec / 1000); + cnt->running_ms = jiffies_to_msecs(jiffies - sn->sn_started); cnt->brw_errors = atomic_read(&sn->sn_brw_errors); cnt->ping_errors = atomic_read(&sn->sn_ping_errors); cnt->zombie_sessions = atomic_read(&sfw_data.fw_nzombies); From 473c4e01029f6692be7ddc0e7f9b75dc933c7057 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:13 -0400 Subject: [PATCH 0909/2431] staging/lustre: use 64-bit ibn_incarnation computation ibn_incarnation is a 64-bit value, but using timeval to compute it will cause an overflow in 2038. This changes it to use ktime_get_real_ts64() instead. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c index faa70f0b9b1e..c2cc4e446b22 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c @@ -2749,7 +2749,7 @@ int kiblnd_startup(lnet_ni_t *ni) char *ifname; kib_dev_t *ibdev = NULL; kib_net_t *net; - struct timeval tv; + struct timespec64 tv; unsigned long flags; int rc; int newdev; @@ -2767,8 +2767,9 @@ int kiblnd_startup(lnet_ni_t *ni) if (net == NULL) goto net_failed; - do_gettimeofday(&tv); - net->ibn_incarnation = (((__u64)tv.tv_sec) * 1000000) + tv.tv_usec; + ktime_get_real_ts64(&tv); + net->ibn_incarnation = tv.tv_sec * USEC_PER_SEC + + tv.tv_nsec / NSEC_PER_USEC; ni->ni_peertimeout = *kiblnd_tunables.kib_peertimeout; ni->ni_maxtxcredits = *kiblnd_tunables.kib_credits; From 1f4fc343c008981d3a91351c030e2c29f5cd1b1c Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:14 -0400 Subject: [PATCH 0910/2431] staging/lustre: use 64-bit times for cfs_srand seed Several functions in Lustre call cfs_srand with do_gettimeofday as the seed to get a pseudo-random number. There is no bug here, but changing it to use ktime_get_ts64() gets us closer to deprecating do_gettimeofday() and makes it slightly more random. Affected functions are: lnet_shuffle_seed, init_lustre_lite and class_handle_init Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/router.c | 6 +++--- drivers/staging/lustre/lustre/llite/super25.c | 6 +++--- drivers/staging/lustre/lustre/obdclass/lustre_handles.c | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c index 75ff382b9342..2cdda3f0067e 100644 --- a/drivers/staging/lustre/lnet/lnet/router.c +++ b/drivers/staging/lustre/lnet/lnet/router.c @@ -237,7 +237,7 @@ static void lnet_shuffle_seed(void) { static int seeded; int lnd_type, seed[2]; - struct timeval tv; + struct timespec64 ts; lnet_ni_t *ni; struct list_head *tmp; @@ -256,8 +256,8 @@ static void lnet_shuffle_seed(void) seed[0] ^= (LNET_NIDADDR(ni->ni_nid) | lnd_type); } - do_gettimeofday(&tv); - cfs_srand(tv.tv_sec ^ seed[0], tv.tv_usec ^ seed[1]); + ktime_get_ts64(&ts); + cfs_srand(ts.tv_sec ^ seed[0], ts.tv_nsec ^ seed[1]); seeded = 1; } diff --git a/drivers/staging/lustre/lustre/llite/super25.c b/drivers/staging/lustre/lustre/llite/super25.c index 4cf7af226ad7..a0de99f9e26c 100644 --- a/drivers/staging/lustre/lustre/llite/super25.c +++ b/drivers/staging/lustre/lustre/llite/super25.c @@ -90,7 +90,7 @@ void lustre_register_client_process_config(int (*cpc)(struct lustre_cfg *lcfg)); static int __init init_lustre_lite(void) { lnet_process_id_t lnet_id; - struct timeval tv; + struct timespec64 ts; int i, rc, seed[2]; CLASSERT(sizeof(LUSTRE_VOLATILE_HDR) == LUSTRE_VOLATILE_HDR_LEN + 1); @@ -152,8 +152,8 @@ static int __init init_lustre_lite(void) seed[0] ^= LNET_NIDADDR(lnet_id.nid); } - do_gettimeofday(&tv); - cfs_srand(tv.tv_sec ^ seed[0], tv.tv_usec ^ seed[1]); + ktime_get_ts64(&ts); + cfs_srand(ts.tv_sec ^ seed[0], ts.tv_nsec ^ seed[1]); setup_timer(&ll_capa_timer, ll_capa_timer_callback, 0); rc = ll_capa_thread_start(); if (rc != 0) diff --git a/drivers/staging/lustre/lustre/obdclass/lustre_handles.c b/drivers/staging/lustre/lustre/obdclass/lustre_handles.c index 35a94a8f4fd3..97d79dab2835 100644 --- a/drivers/staging/lustre/lustre/obdclass/lustre_handles.c +++ b/drivers/staging/lustre/lustre/obdclass/lustre_handles.c @@ -193,7 +193,7 @@ EXPORT_SYMBOL(class_handle_free_cb); int class_handle_init(void) { struct handle_bucket *bucket; - struct timeval tv; + struct timespec64 ts; int seed[2]; LASSERT(handle_hash == NULL); @@ -212,8 +212,8 @@ int class_handle_init(void) /** bug 21430: add randomness to the initial base */ cfs_get_random_bytes(seed, sizeof(seed)); - do_gettimeofday(&tv); - cfs_srand(tv.tv_sec ^ seed[0], tv.tv_usec ^ seed[1]); + ktime_get_ts64(&ts); + cfs_srand(ts.tv_sec ^ seed[0], ts.tv_nsec ^ seed[1]); cfs_get_random_bytes(&handle_base, sizeof(handle_base)); LASSERT(handle_base != 0ULL); From 23d9a0467c6ce436e4f40e44e81005df6bdd9d2d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:15 -0400 Subject: [PATCH 0911/2431] staging/lustre: use 64-bit computation in s2dhms() The s2dhms computes the day/hour/minute/second values from a time_t, which stops working in 2038. This changes the code to take a time64_t argument, and use div_u64_rem() to implement the first division. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lprocfs_status.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 213666b03f7c..1b87a6ac9560 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -359,10 +359,12 @@ struct obd_histogram; struct dhms { int d, h, m, s; }; -static inline void s2dhms(struct dhms *ts, time_t secs) + +static inline void s2dhms(struct dhms *ts, time64_t secs64) { - ts->d = secs / 86400; - secs = secs % 86400; + unsigned int secs; + + ts->d = div_u64_rem(secs64, 86400, &secs); ts->h = secs / 3600; secs = secs % 3600; ts->m = secs / 60; From 1f8c37a4e29bb4794950228d2d9571029f277d7b Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:16 -0400 Subject: [PATCH 0912/2431] staging/lustre: use 64-bit timestamps for selftest The wire protocol for the ping uses a 64-bit seconds/microseconds pair, but this won't work when one side uses a 32-bit timeval to look up the current time beyond 2038. This changes the code to use ktime_get_real_ts64() to create a timestamp that has the right format on all machines. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/selftest/ping_test.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/lustre/lnet/selftest/ping_test.c b/drivers/staging/lustre/lnet/selftest/ping_test.c index 1dab9984c58e..d42653654fa8 100644 --- a/drivers/staging/lustre/lnet/selftest/ping_test.c +++ b/drivers/staging/lustre/lnet/selftest/ping_test.c @@ -92,7 +92,7 @@ ping_client_prep_rpc(sfw_test_unit_t *tsu, srpc_ping_reqst_t *req; sfw_test_instance_t *tsi = tsu->tsu_instance; sfw_session_t *sn = tsi->tsi_batch->bat_session; - struct timeval tv; + struct timespec64 ts; int rc; LASSERT(sn != NULL); @@ -110,9 +110,9 @@ ping_client_prep_rpc(sfw_test_unit_t *tsu, req->pnr_seq = lst_ping_data.pnd_counter++; spin_unlock(&lst_ping_data.pnd_lock); - cfs_fs_timeval(&tv); - req->pnr_time_sec = tv.tv_sec; - req->pnr_time_usec = tv.tv_usec; + ktime_get_real_ts64(&ts); + req->pnr_time_sec = ts.tv_sec; + req->pnr_time_usec = ts.tv_nsec / NSEC_PER_USEC; return rc; } @@ -124,7 +124,7 @@ ping_client_done_rpc(sfw_test_unit_t *tsu, srpc_client_rpc_t *rpc) sfw_session_t *sn = tsi->tsi_batch->bat_session; srpc_ping_reqst_t *reqst = &rpc->crpc_reqstmsg.msg_body.ping_reqst; srpc_ping_reply_t *reply = &rpc->crpc_replymsg.msg_body.ping_reply; - struct timeval tv; + struct timespec64 ts; LASSERT(sn != NULL); @@ -161,10 +161,10 @@ ping_client_done_rpc(sfw_test_unit_t *tsu, srpc_client_rpc_t *rpc) return; } - cfs_fs_timeval(&tv); + ktime_get_real_ts64(&ts); CDEBUG(D_NET, "%d reply in %u usec\n", reply->pnr_seq, - (unsigned)((tv.tv_sec - (unsigned)reqst->pnr_time_sec) * 1000000 - + (tv.tv_usec - reqst->pnr_time_usec))); + (unsigned)((ts.tv_sec - reqst->pnr_time_sec) * 1000000 + + (ts.tv_nsec / NSEC_PER_USEC - reqst->pnr_time_usec))); return; } From 8f83409cf2382c968f96877368cd5b542b92af1d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:17 -0400 Subject: [PATCH 0913/2431] staging/lustre: use 64-bit time for pl_recalc The ldlm pool calculates elapsed time by comparing the previous and current get_seconds() values, which is unsafe on 32-bit machines after 2038. This changes the code to use time64_t and ktime_get_real_seconds(), keeping the 'real' instead of 'monotonic' time because of the debug prints. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 4 +-- .../staging/lustre/lustre/ldlm/ldlm_pool.c | 30 +++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 796a997ec94c..1ac08e1c0559 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -256,9 +256,9 @@ struct ldlm_pool { * server_slv * lock_volume_factor. */ atomic_t pl_lock_volume_factor; /** Time when last SLV from server was obtained. */ - time_t pl_recalc_time; + time64_t pl_recalc_time; /** Recalculation period for pool. */ - time_t pl_recalc_period; + time64_t pl_recalc_period; /** Recalculation and shrink operations. */ const struct ldlm_pool_ops *pl_ops; /** Number of planned locks for next period. */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c index c234acb85f10..1c9d67fbeb27 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -330,14 +330,14 @@ static void ldlm_srv_pool_push_slv(struct ldlm_pool *pl) */ static int ldlm_srv_pool_recalc(struct ldlm_pool *pl) { - time_t recalc_interval_sec; + time64_t recalc_interval_sec; - recalc_interval_sec = get_seconds() - pl->pl_recalc_time; + recalc_interval_sec = ktime_get_real_seconds() - pl->pl_recalc_time; if (recalc_interval_sec < pl->pl_recalc_period) return 0; spin_lock(&pl->pl_lock); - recalc_interval_sec = get_seconds() - pl->pl_recalc_time; + recalc_interval_sec = ktime_get_real_seconds() - pl->pl_recalc_time; if (recalc_interval_sec < pl->pl_recalc_period) { spin_unlock(&pl->pl_lock); return 0; @@ -358,7 +358,7 @@ static int ldlm_srv_pool_recalc(struct ldlm_pool *pl) */ ldlm_pool_recalc_grant_plan(pl); - pl->pl_recalc_time = get_seconds(); + pl->pl_recalc_time = ktime_get_real_seconds(); lprocfs_counter_add(pl->pl_stats, LDLM_POOL_TIMING_STAT, recalc_interval_sec); spin_unlock(&pl->pl_lock); @@ -467,10 +467,10 @@ static void ldlm_cli_pool_pop_slv(struct ldlm_pool *pl) */ static int ldlm_cli_pool_recalc(struct ldlm_pool *pl) { - time_t recalc_interval_sec; + time64_t recalc_interval_sec; int ret; - recalc_interval_sec = get_seconds() - pl->pl_recalc_time; + recalc_interval_sec = ktime_get_real_seconds() - pl->pl_recalc_time; if (recalc_interval_sec < pl->pl_recalc_period) return 0; @@ -478,7 +478,7 @@ static int ldlm_cli_pool_recalc(struct ldlm_pool *pl) /* * Check if we need to recalc lists now. */ - recalc_interval_sec = get_seconds() - pl->pl_recalc_time; + recalc_interval_sec = ktime_get_real_seconds() - pl->pl_recalc_time; if (recalc_interval_sec < pl->pl_recalc_period) { spin_unlock(&pl->pl_lock); return 0; @@ -513,7 +513,7 @@ out: * Time of LRU resizing might be longer than period, * so update after LRU resizing rather than before it. */ - pl->pl_recalc_time = get_seconds(); + pl->pl_recalc_time = ktime_get_real_seconds(); lprocfs_counter_add(pl->pl_stats, LDLM_POOL_TIMING_STAT, recalc_interval_sec); spin_unlock(&pl->pl_lock); @@ -571,10 +571,10 @@ static const struct ldlm_pool_ops ldlm_cli_pool_ops = { */ int ldlm_pool_recalc(struct ldlm_pool *pl) { - time_t recalc_interval_sec; + u32 recalc_interval_sec; int count; - recalc_interval_sec = get_seconds() - pl->pl_recalc_time; + recalc_interval_sec = ktime_get_seconds() - pl->pl_recalc_time; if (recalc_interval_sec <= 0) goto recalc; @@ -599,14 +599,14 @@ int ldlm_pool_recalc(struct ldlm_pool *pl) lprocfs_counter_add(pl->pl_stats, LDLM_POOL_RECALC_STAT, count); } - recalc_interval_sec = pl->pl_recalc_time - get_seconds() + + recalc_interval_sec = pl->pl_recalc_time - ktime_get_seconds() + pl->pl_recalc_period; if (recalc_interval_sec <= 0) { /* Prevent too frequent recalculation. */ - CDEBUG(D_DLMTRACE, "Negative interval(%ld), " - "too short period(%ld)", + CDEBUG(D_DLMTRACE, + "Negative interval(%d), too short period(%lld)", recalc_interval_sec, - pl->pl_recalc_period); + (s64)pl->pl_recalc_period); recalc_interval_sec = 1; } @@ -893,7 +893,7 @@ int ldlm_pool_init(struct ldlm_pool *pl, struct ldlm_namespace *ns, spin_lock_init(&pl->pl_lock); atomic_set(&pl->pl_granted, 0); - pl->pl_recalc_time = get_seconds(); + pl->pl_recalc_time = ktime_get_seconds(); atomic_set(&pl->pl_lock_volume_factor, 1); atomic_set(&pl->pl_grant_rate, 0); From 74e489aa9cce1ec8f8a44ecc1651cf06b61db204 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:18 -0400 Subject: [PATCH 0914/2431] staging/lustre: use 64-bit time for debugfs output This time is only printed in debugfs, and can be easily converted to 64-bit to avoid overflowing on 32-bit systems in 2038. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_import.h | 4 +-- .../lustre/lustre/obdclass/lprocfs_status.c | 32 +++++++++---------- drivers/staging/lustre/lustre/ptlrpc/events.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 2 +- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index c8b89a359518..99606387f904 100644 --- a/drivers/staging/lustre/lustre/include/lustre_import.h +++ b/drivers/staging/lustre/lustre/include/lustre_import.h @@ -148,7 +148,7 @@ struct obd_import_conn { #define IMP_STATE_HIST_LEN 16 struct import_state_hist { enum lustre_imp_state ish_state; - time_t ish_time; + time64_t ish_time; }; /** @@ -307,7 +307,7 @@ struct obd_import { __u32 imp_msghdr_flags; /* adjusted based on server capability */ struct imp_at imp_at; /* adaptive timeout data */ - time_t imp_last_reply_time; /* for health check */ + time64_t imp_last_reply_time; /* for health check */ }; typedef void (*obd_import_callback)(struct obd_import *imp, void *closure, diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 8d2a523ea7cf..21da17dbded7 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -846,9 +846,8 @@ int lprocfs_rd_state(struct seq_file *m, void *data) &imp->imp_state_hist[(k + j) % IMP_STATE_HIST_LEN]; if (ish->ish_state == 0) continue; - seq_printf(m, " - ["CFS_TIME_T", %s]\n", - ish->ish_time, - ptlrpc_import_state_name(ish->ish_state)); + seq_printf(m, " - [%lld, %s]\n", (s64)ish->ish_time, + ptlrpc_import_state_name(ish->ish_state)); } LPROCFS_CLIMP_EXIT(obd); @@ -872,7 +871,7 @@ int lprocfs_rd_timeouts(struct seq_file *m, void *data) struct obd_device *obd = (struct obd_device *)data; struct obd_import *imp; unsigned int cur, worst; - time_t now, worstt; + time64_t now, worstt; struct dhms ts; int i; @@ -880,19 +879,19 @@ int lprocfs_rd_timeouts(struct seq_file *m, void *data) LPROCFS_CLIMP_CHECK(obd); imp = obd->u.cli.cl_import; - now = get_seconds(); + now = ktime_get_real_seconds(); /* Some network health info for kicks */ s2dhms(&ts, now - imp->imp_last_reply_time); - seq_printf(m, "%-10s : %ld, "DHMS_FMT" ago\n", - "last reply", imp->imp_last_reply_time, DHMS_VARS(&ts)); + seq_printf(m, "%-10s : %lld, " DHMS_FMT " ago\n", + "last reply", (s64)imp->imp_last_reply_time, DHMS_VARS(&ts)); cur = at_get(&imp->imp_at.iat_net_latency); worst = imp->imp_at.iat_net_latency.at_worst_ever; worstt = imp->imp_at.iat_net_latency.at_worst_time; s2dhms(&ts, now - worstt); - seq_printf(m, "%-10s : cur %3u worst %3u (at %ld, "DHMS_FMT" ago) ", - "network", cur, worst, worstt, DHMS_VARS(&ts)); + seq_printf(m, "%-10s : cur %3u worst %3u (at %lld, " DHMS_FMT " ago) ", + "network", cur, worst, (s64)worstt, DHMS_VARS(&ts)); lprocfs_at_hist_helper(m, &imp->imp_at.iat_net_latency); for (i = 0; i < IMP_AT_MAX_PORTALS; i++) { @@ -902,9 +901,9 @@ int lprocfs_rd_timeouts(struct seq_file *m, void *data) worst = imp->imp_at.iat_service_estimate[i].at_worst_ever; worstt = imp->imp_at.iat_service_estimate[i].at_worst_time; s2dhms(&ts, now - worstt); - seq_printf(m, "portal %-2d : cur %3u worst %3u (at %ld, " - DHMS_FMT" ago) ", imp->imp_at.iat_portal[i], - cur, worst, worstt, DHMS_VARS(&ts)); + seq_printf(m, "portal %-2d : cur %3u worst %3u (at %lld, " + DHMS_FMT " ago) ", imp->imp_at.iat_portal[i], + cur, worst, (s64)worstt, DHMS_VARS(&ts)); lprocfs_at_hist_helper(m, &imp->imp_at.iat_service_estimate[i]); } @@ -1190,11 +1189,12 @@ static int lprocfs_stats_seq_show(struct seq_file *p, void *v) int idx = *(loff_t *)v; if (idx == 0) { - struct timeval now; - do_gettimeofday(&now); - seq_printf(p, "%-25s %lu.%lu secs.usecs\n", + struct timespec64 now; + + ktime_get_real_ts64(&now); + seq_printf(p, "%-25s %llu.%9lu secs.usecs\n", "snapshot_time", - now.tv_sec, (unsigned long)now.tv_usec); + (s64)now.tv_sec, (unsigned long)now.tv_nsec); } hdr = &stats->ls_cnt_header[idx]; diff --git a/drivers/staging/lustre/lustre/ptlrpc/events.c b/drivers/staging/lustre/lustre/ptlrpc/events.c index c8ef9e578263..53f6b6278403 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/events.c +++ b/drivers/staging/lustre/lustre/ptlrpc/events.c @@ -158,7 +158,7 @@ void reply_in_callback(lnet_event_t *ev) ev->mlength, ev->offset, req->rq_replen); } - req->rq_import->imp_last_reply_time = get_seconds(); + req->rq_import->imp_last_reply_time = ktime_get_real_seconds(); out_wake: /* NB don't unlock till after wakeup; req can disappear under us diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index c52ceef989d5..b6f38cbbc295 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -79,7 +79,7 @@ static void __import_set_state(struct obd_import *imp, imp->imp_state = state; imp->imp_state_hist[imp->imp_state_hist_idx].ish_state = state; imp->imp_state_hist[imp->imp_state_hist_idx].ish_time = - get_seconds(); + ktime_get_real_seconds(); imp->imp_state_hist_idx = (imp->imp_state_hist_idx + 1) % IMP_STATE_HIST_LEN; } From 0ac0478b65de1e5b8b62f608bdf1d8ba631acc4d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:19 -0400 Subject: [PATCH 0915/2431] staging/lustre: use 64-bit time for adaptive timeout The adaptive timeout handling stores absolute times in 32-bit time_t quantities, which will overflow in 2038. This changes it to use time64_t. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_import.h | 6 +++--- drivers/staging/lustre/lustre/ptlrpc/import.c | 8 ++++---- drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 99606387f904..cd6244ecd0c7 100644 --- a/drivers/staging/lustre/lustre/include/lustre_import.h +++ b/drivers/staging/lustre/lustre/include/lustre_import.h @@ -61,12 +61,12 @@ #define AT_FLG_NOHIST 0x1 /* use last reported value only */ struct adaptive_timeout { - time_t at_binstart; /* bin start time */ + time64_t at_binstart; /* bin start time */ unsigned int at_hist[AT_BINS]; /* timeout history bins */ unsigned int at_flags; unsigned int at_current; /* current timeout value */ unsigned int at_worst_ever; /* worst-ever timeout value */ - time_t at_worst_time; /* worst-ever timeout timestamp */ + time64_t at_worst_time; /* worst-ever timeout timestamp */ spinlock_t at_lock; }; @@ -351,7 +351,7 @@ static inline void at_reset(struct adaptive_timeout *at, int val) spin_lock(&at->at_lock); at->at_current = val; at->at_worst_ever = val; - at->at_worst_time = get_seconds(); + at->at_worst_time = ktime_get_real_seconds(); spin_unlock(&at->at_lock); } static inline void at_init(struct adaptive_timeout *at, int val, int flags) diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index b6f38cbbc295..3fc49ee66d8b 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -1523,12 +1523,12 @@ extern unsigned int at_min, at_max, at_history; int at_measured(struct adaptive_timeout *at, unsigned int val) { unsigned int old = at->at_current; - time_t now = get_seconds(); - time_t binlimit = max_t(time_t, at_history / AT_BINS, 1); + time64_t now = ktime_get_real_seconds(); + long binlimit = max_t(long, at_history / AT_BINS, 1); LASSERT(at); CDEBUG(D_OTHER, "add %u to %p time=%lu v=%u (%u %u %u %u)\n", - val, at, now - at->at_binstart, at->at_current, + val, at, (long)(now - at->at_binstart), at->at_current, at->at_hist[0], at->at_hist[1], at->at_hist[2], at->at_hist[3]); if (val == 0) @@ -1553,7 +1553,7 @@ int at_measured(struct adaptive_timeout *at, unsigned int val) int i, shift; unsigned int maxv = val; /* move bins over */ - shift = (now - at->at_binstart) / binlimit; + shift = (u32)(now - at->at_binstart) / binlimit; LASSERT(shift > 0); for (i = AT_BINS - 1; i >= 0; i--) { if (i >= shift) { diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 2b88aef3201f..3b2745f45924 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -989,7 +989,7 @@ static int ptlrpc_lprocfs_timeouts_seq_show(struct seq_file *m, void *n) struct ptlrpc_service *svc = m->private; struct ptlrpc_service_part *svcpt; struct dhms ts; - time_t worstt; + time64_t worstt; unsigned int cur; unsigned int worst; int i; @@ -1004,11 +1004,11 @@ static int ptlrpc_lprocfs_timeouts_seq_show(struct seq_file *m, void *n) cur = at_get(&svcpt->scp_at_estimate); worst = svcpt->scp_at_estimate.at_worst_ever; worstt = svcpt->scp_at_estimate.at_worst_time; - s2dhms(&ts, get_seconds() - worstt); + s2dhms(&ts, ktime_get_real_seconds() - worstt); - seq_printf(m, "%10s : cur %3u worst %3u (at %ld, " + seq_printf(m, "%10s : cur %3u worst %3u (at %lld, " DHMS_FMT" ago) ", "service", - cur, worst, worstt, DHMS_VARS(&ts)); + cur, worst, (s64)worstt, DHMS_VARS(&ts)); lprocfs_at_hist_helper(m, &svcpt->scp_at_estimate); } From 05406826aafb658d51ba7ac2fc6870992776ef6d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:20 -0400 Subject: [PATCH 0916/2431] staging/lustre: use 64-bit llite debugfs timestamps The llite debugfs interface contains timestamps that are computed from timeval, which overflows in 2038 on 32-bit systems. This changes the output to use a timespec64 type to avoid the overflow. I also change the format to print the sub-second portion as 9 digits (nanoseconds) for clarity, rather than printing six digits without leading zeroes. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/llite/lproc_llite.c | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c index 427a34b00e85..08d32027d7be 100644 --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c @@ -1140,20 +1140,20 @@ static void ll_display_extents_info(struct ll_rw_extents_info *io_extents, static int ll_rw_extents_stats_pp_seq_show(struct seq_file *seq, void *v) { - struct timeval now; + struct timespec64 now; struct ll_sb_info *sbi = seq->private; struct ll_rw_extents_info *io_extents = &sbi->ll_rw_extents_info; int k; - do_gettimeofday(&now); + ktime_get_real_ts64(&now); if (!sbi->ll_rw_stats_on) { seq_printf(seq, "disabled\n" "write anything in this file to activate, then 0 or \"[D/d]isabled\" to deactivate\n"); return 0; } - seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", - now.tv_sec, (unsigned long)now.tv_usec); + seq_printf(seq, "snapshot_time: %llu.%09lu (secs.usecs)\n", + (s64)now.tv_sec, (unsigned long)now.tv_nsec); seq_printf(seq, "%15s %19s | %20s\n", " ", "read", "write"); seq_printf(seq, "%13s %14s %4s %4s | %14s %4s %4s\n", "extents", "calls", "%", "cum%", @@ -1219,19 +1219,19 @@ LPROC_SEQ_FOPS(ll_rw_extents_stats_pp); static int ll_rw_extents_stats_seq_show(struct seq_file *seq, void *v) { - struct timeval now; + struct timespec64 now; struct ll_sb_info *sbi = seq->private; struct ll_rw_extents_info *io_extents = &sbi->ll_rw_extents_info; - do_gettimeofday(&now); + ktime_get_real_ts64(&now); if (!sbi->ll_rw_stats_on) { seq_printf(seq, "disabled\n" "write anything in this file to activate, then 0 or \"[D/d]isabled\" to deactivate\n"); return 0; } - seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", - now.tv_sec, (unsigned long)now.tv_usec); + seq_printf(seq, "snapshot_time: %llu.%09lu (secs.usecs)\n", + (u64)now.tv_sec, (unsigned long)now.tv_nsec); seq_printf(seq, "%15s %19s | %20s\n", " ", "read", "write"); seq_printf(seq, "%13s %14s %4s %4s | %14s %4s %4s\n", @@ -1396,13 +1396,13 @@ void ll_rw_stats_tally(struct ll_sb_info *sbi, pid_t pid, static int ll_rw_offset_stats_seq_show(struct seq_file *seq, void *v) { - struct timeval now; + struct timespec64 now; struct ll_sb_info *sbi = seq->private; struct ll_rw_process_info *offset = sbi->ll_rw_offset_info; struct ll_rw_process_info *process = sbi->ll_rw_process_info; int i; - do_gettimeofday(&now); + ktime_get_real_ts64(&now); if (!sbi->ll_rw_stats_on) { seq_printf(seq, "disabled\n" @@ -1411,8 +1411,8 @@ static int ll_rw_offset_stats_seq_show(struct seq_file *seq, void *v) } spin_lock(&sbi->ll_process_lock); - seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", - now.tv_sec, (unsigned long)now.tv_usec); + seq_printf(seq, "snapshot_time: %llu.%09lu (secs.usecs)\n", + (s64)now.tv_sec, (unsigned long)now.tv_nsec); seq_printf(seq, "%3s %10s %14s %14s %17s %17s %14s\n", "R/W", "PID", "RANGE START", "RANGE END", "SMALLEST EXTENT", "LARGEST EXTENT", "OFFSET"); From 74ad578f19959fc7af219752760c1dc0b2f78ced Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:21 -0400 Subject: [PATCH 0917/2431] staging/lustre: use 64-bit times for ksnd_connd The connection starting/failing time stamps will overflow in 2038 on 32-bit machines, so we need to use time64_t and ktime_get_real_seconds() instead. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c | 2 +- drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h | 6 +++--- drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index 22f4cd0173c1..904d15837cbb 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c @@ -2426,7 +2426,7 @@ ksocknal_base_startup(void) ksocknal_data.ksnd_connd_starting = 0; ksocknal_data.ksnd_connd_failed_stamp = 0; - ksocknal_data.ksnd_connd_starting_stamp = get_seconds(); + ksocknal_data.ksnd_connd_starting_stamp = ktime_get_real_seconds(); /* must have at least 2 connds to remain responsive to accepts while * connecting */ if (*ksocknal_tunables.ksnd_nconnds < SOCKNAL_CONND_RESV + 1) diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h index a0fcbc39f86b..b349847f9cf9 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h @@ -216,13 +216,13 @@ typedef struct { wait_queue_head_t ksnd_connd_waitq; /* connds sleep here */ int ksnd_connd_connecting; /* # connds connecting */ - long ksnd_connd_failed_stamp;/* time stamp of the + time64_t ksnd_connd_failed_stamp;/* time stamp of the * last failed * connecting attempt */ - unsigned ksnd_connd_starting; /* # starting connd */ - long ksnd_connd_starting_stamp;/* time stamp of the + time64_t ksnd_connd_starting_stamp;/* time stamp of the * last starting connd */ + unsigned ksnd_connd_starting; /* # starting connd */ unsigned ksnd_connd_running; /* # running connd */ spinlock_t ksnd_connd_lock; /* serialise */ diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index 6d87731c539d..354c8105f9a0 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c @@ -1998,7 +1998,7 @@ ksocknal_connect (ksock_route_t *route) * running out of resource. */ static int -ksocknal_connd_check_start(long sec, long *timeout) +ksocknal_connd_check_start(time64_t sec, long *timeout) { char name[16]; int rc; @@ -2048,7 +2048,7 @@ ksocknal_connd_check_start(long sec, long *timeout) /* we tried ... */ LASSERT(ksocknal_data.ksnd_connd_starting > 0); ksocknal_data.ksnd_connd_starting--; - ksocknal_data.ksnd_connd_failed_stamp = get_seconds(); + ksocknal_data.ksnd_connd_failed_stamp = ktime_get_real_seconds(); return 1; } @@ -2060,7 +2060,7 @@ ksocknal_connd_check_start(long sec, long *timeout) * again to recheck these conditions. */ static int -ksocknal_connd_check_stop(long sec, long *timeout) +ksocknal_connd_check_stop(time64_t sec, long *timeout) { int val; @@ -2141,7 +2141,7 @@ ksocknal_connd (void *arg) while (!ksocknal_data.ksnd_shuttingdown) { ksock_route_t *route = NULL; - long sec = get_seconds(); + time64_t sec = ktime_get_real_seconds(); long timeout = MAX_SCHEDULE_TIMEOUT; int dropped_lock = 0; From ec0067d1beeee2ca45e865d608101148b5e739d4 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:22 -0400 Subject: [PATCH 0918/2431] staging/lustre: use 64-bit time for ni_last_alive The ni_last_alive member of lnet_ni uses a 'long' to store a timestamp, which breaks on 32-bit systems in 2038. This changes it to use time64_t and the respective functions for it. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/include/linux/lnet/lib-types.h | 2 +- drivers/staging/lustre/lnet/lnet/config.c | 2 +- drivers/staging/lustre/lnet/lnet/lib-move.c | 4 ++-- drivers/staging/lustre/lnet/lnet/router.c | 4 ++-- drivers/staging/lustre/lnet/lnet/router_proc.c | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/lustre/include/linux/lnet/lib-types.h b/drivers/staging/lustre/include/linux/lnet/lib-types.h index 81a63dbdea25..d792c4adb0ca 100644 --- a/drivers/staging/lustre/include/linux/lnet/lib-types.h +++ b/drivers/staging/lustre/include/linux/lnet/lib-types.h @@ -264,7 +264,7 @@ typedef struct lnet_ni { lnd_t *ni_lnd; /* procedural interface */ struct lnet_tx_queue **ni_tx_queues; /* percpt TX queues */ int **ni_refs; /* percpt reference count */ - long ni_last_alive;/* when I was last alive */ + time64_t ni_last_alive;/* when I was last alive */ lnet_ni_status_t *ni_status; /* my health status */ /* equivalent interfaces to use */ char *ni_interfaces[LNET_MAX_INTERFACES]; diff --git a/drivers/staging/lustre/lnet/lnet/config.c b/drivers/staging/lustre/lnet/lnet/config.c index 9c576ce2f455..b09a438c49d6 100644 --- a/drivers/staging/lustre/lnet/lnet/config.c +++ b/drivers/staging/lustre/lnet/lnet/config.c @@ -166,7 +166,7 @@ lnet_ni_alloc(__u32 net, struct cfs_expr_list *el, struct list_head *nilist) /* LND will fill in the address part of the NID */ ni->ni_nid = LNET_MKNID(net, 0); - ni->ni_last_alive = get_seconds(); + ni->ni_last_alive = ktime_get_real_seconds(); list_add_tail(&ni->ni_list, nilist); return ni; failed: diff --git a/drivers/staging/lustre/lnet/lnet/lib-move.c b/drivers/staging/lustre/lnet/lnet/lib-move.c index 433faae9a2ff..6badfec4c6a0 100644 --- a/drivers/staging/lustre/lnet/lnet/lib-move.c +++ b/drivers/staging/lustre/lnet/lnet/lib-move.c @@ -1768,11 +1768,11 @@ lnet_parse(lnet_ni_t *ni, lnet_hdr_t *hdr, lnet_nid_t from_nid, } if (the_lnet.ln_routing && - ni->ni_last_alive != get_seconds()) { + ni->ni_last_alive != ktime_get_real_seconds()) { lnet_ni_lock(ni); /* NB: so far here is the only place to set NI status to "up */ - ni->ni_last_alive = get_seconds(); + ni->ni_last_alive = ktime_get_real_seconds(); if (ni->ni_status != NULL && ni->ni_status->ns_status == LNET_NI_STATUS_DOWN) ni->ni_status->ns_status = LNET_NI_STATUS_UP; diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c index 2cdda3f0067e..0357b051401f 100644 --- a/drivers/staging/lustre/lnet/lnet/router.c +++ b/drivers/staging/lustre/lnet/lnet/router.c @@ -789,7 +789,7 @@ static void lnet_update_ni_status_locked(void) { lnet_ni_t *ni; - long now; + time64_t now; int timeout; LASSERT(the_lnet.ln_routing); @@ -797,7 +797,7 @@ lnet_update_ni_status_locked(void) timeout = router_ping_timeout + max(live_router_check_interval, dead_router_check_interval); - now = get_seconds(); + now = ktime_get_real_seconds(); list_for_each_entry(ni, &the_lnet.ln_nis, ni_list) { if (ni->ni_lnd->lnd_type == LOLND) continue; diff --git a/drivers/staging/lustre/lnet/lnet/router_proc.c b/drivers/staging/lustre/lnet/lnet/router_proc.c index a9f4cbf2fcfe..396c7c4e5c83 100644 --- a/drivers/staging/lustre/lnet/lnet/router_proc.c +++ b/drivers/staging/lustre/lnet/lnet/router_proc.c @@ -692,7 +692,7 @@ static int proc_lnet_nis(struct ctl_table *table, int write, if (ni != NULL) { struct lnet_tx_queue *tq; char *stat; - long now = get_seconds(); + time64_t now = ktime_get_real_seconds(); int last_alive = -1; int i; int j; From d9f79e6bf02c109f117132163239bfffa6475ccb Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:23 -0400 Subject: [PATCH 0919/2431] staging/lustre: use 64-bit time for selftest The lustre selftest code has multiple time stamps that are kept as 'time_t' or 'unsigned long' and can therefore overflow on 32-bit systems. This changes the code to use time64_t instead. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/selftest/brw_test.c | 6 +++--- drivers/staging/lustre/lnet/selftest/conctl.c | 2 +- drivers/staging/lustre/lnet/selftest/conrpc.c | 15 +++++++-------- drivers/staging/lustre/lnet/selftest/console.c | 2 +- drivers/staging/lustre/lnet/selftest/console.h | 2 +- drivers/staging/lustre/lnet/selftest/framework.c | 3 +-- drivers/staging/lustre/lnet/selftest/rpc.c | 9 ++++----- drivers/staging/lustre/lnet/selftest/selftest.h | 2 +- drivers/staging/lustre/lnet/selftest/timer.c | 14 +++++++------- drivers/staging/lustre/lnet/selftest/timer.h | 2 +- 10 files changed, 27 insertions(+), 30 deletions(-) diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c index de11f1bc8be7..0605c651f797 100644 --- a/drivers/staging/lustre/lnet/selftest/brw_test.c +++ b/drivers/staging/lustre/lnet/selftest/brw_test.c @@ -134,14 +134,14 @@ brw_client_init(sfw_test_instance_t *tsi) static int brw_inject_one_error(void) { - struct timeval tv; + struct timespec64 ts; if (brw_inject_errors <= 0) return 0; - do_gettimeofday(&tv); + ktime_get_ts64(&ts); - if ((tv.tv_usec & 1) == 0) + if (((ts.tv_nsec / NSEC_PER_USEC) & 1) == 0) return 0; return brw_inject_errors--; diff --git a/drivers/staging/lustre/lnet/selftest/conctl.c b/drivers/staging/lustre/lnet/selftest/conctl.c index 1a7870e91f23..817396638652 100644 --- a/drivers/staging/lustre/lnet/selftest/conctl.c +++ b/drivers/staging/lustre/lnet/selftest/conctl.c @@ -837,7 +837,7 @@ lstcon_ioctl_entry(unsigned int cmd, struct libcfs_ioctl_data *data) mutex_lock(&console_session.ses_mutex); - console_session.ses_laststamp = get_seconds(); + console_session.ses_laststamp = ktime_get_real_seconds(); if (console_session.ses_shutdown) { rc = -ESHUTDOWN; diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c index bf2968310516..b70680b8bdbe 100644 --- a/drivers/staging/lustre/lnet/selftest/conrpc.c +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c @@ -1176,7 +1176,7 @@ lstcon_rpc_pinger(void *arg) srpc_debug_reqst_t *drq; lstcon_ndlink_t *ndl; lstcon_node_t *nd; - time_t intv; + int intv; int count = 0; int rc; @@ -1191,8 +1191,8 @@ lstcon_rpc_pinger(void *arg) } if (!console_session.ses_expired && - get_seconds() - console_session.ses_laststamp > - (time_t)console_session.ses_timeout) + ktime_get_real_seconds() - console_session.ses_laststamp > + (time64_t)console_session.ses_timeout) console_session.ses_expired = 1; trans = console_session.ses_ping; @@ -1248,9 +1248,8 @@ lstcon_rpc_pinger(void *arg) if (nd->nd_state != LST_NODE_ACTIVE) continue; - intv = cfs_duration_sec(cfs_time_sub(cfs_time_current(), - nd->nd_stamp)); - if (intv < (time_t)nd->nd_timeout / 2) + intv = (jiffies - nd->nd_stamp) / HZ; + if (intv < nd->nd_timeout / 2) continue; rc = lstcon_rpc_init(nd, SRPC_SERVICE_DEBUG, @@ -1278,7 +1277,7 @@ lstcon_rpc_pinger(void *arg) CDEBUG(D_NET, "Ping %d nodes in session\n", count); - ptimer->stt_expires = (unsigned long)(get_seconds() + LST_PING_INTERVAL); + ptimer->stt_expires = ktime_get_real_seconds() + LST_PING_INTERVAL; stt_add_timer(ptimer); mutex_unlock(&console_session.ses_mutex); @@ -1301,7 +1300,7 @@ lstcon_rpc_pinger_start(void) } ptimer = &console_session.ses_ping_timer; - ptimer->stt_expires = (unsigned long)(get_seconds() + LST_PING_INTERVAL); + ptimer->stt_expires = ktime_get_real_seconds() + LST_PING_INTERVAL; stt_add_timer(ptimer); diff --git a/drivers/staging/lustre/lnet/selftest/console.c b/drivers/staging/lustre/lnet/selftest/console.c index 5c624e19eaa1..024aaee76b7f 100644 --- a/drivers/staging/lustre/lnet/selftest/console.c +++ b/drivers/staging/lustre/lnet/selftest/console.c @@ -2004,7 +2004,7 @@ lstcon_console_init(void) console_session.ses_expired = 0; console_session.ses_feats_updated = 0; console_session.ses_features = LST_FEATS_MASK; - console_session.ses_laststamp = get_seconds(); + console_session.ses_laststamp = ktime_get_real_seconds(); mutex_init(&console_session.ses_mutex); diff --git a/drivers/staging/lustre/lnet/selftest/console.h b/drivers/staging/lustre/lnet/selftest/console.h index cdce2dd6be7c..acd131218dd9 100644 --- a/drivers/staging/lustre/lnet/selftest/console.h +++ b/drivers/staging/lustre/lnet/selftest/console.h @@ -142,7 +142,7 @@ typedef struct { int ses_key; /* local session key */ int ses_state; /* state of session */ int ses_timeout; /* timeout in seconds */ - time_t ses_laststamp; /* last operation stamp (seconds) + time64_t ses_laststamp; /* last operation stamp (seconds) */ unsigned ses_features; /* tests features of the session */ diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c index c448037a3c9f..177beaf496c4 100644 --- a/drivers/staging/lustre/lnet/selftest/framework.c +++ b/drivers/staging/lustre/lnet/selftest/framework.c @@ -170,8 +170,7 @@ sfw_add_session_timer(void) LASSERT(!sn->sn_timer_active); sn->sn_timer_active = 1; - timer->stt_expires = cfs_time_add(sn->sn_timeout, - get_seconds()); + timer->stt_expires = ktime_get_real_seconds() + sn->sn_timeout; stt_add_timer(timer); return; } diff --git a/drivers/staging/lustre/lnet/selftest/rpc.c b/drivers/staging/lustre/lnet/selftest/rpc.c index 6ae133138b17..9fc3ce33ec7b 100644 --- a/drivers/staging/lustre/lnet/selftest/rpc.c +++ b/drivers/staging/lustre/lnet/selftest/rpc.c @@ -565,7 +565,7 @@ srpc_add_buffer(struct swi_workitem *wi) } if (rc != 0) { - scd->scd_buf_err_stamp = get_seconds(); + scd->scd_buf_err_stamp = ktime_get_real_seconds(); scd->scd_buf_err = rc; LASSERT(scd->scd_buf_posting > 0); @@ -1100,8 +1100,7 @@ srpc_add_client_rpc_timer(srpc_client_rpc_t *rpc) INIT_LIST_HEAD(&timer->stt_list); timer->stt_data = rpc; timer->stt_func = srpc_client_rpc_expired; - timer->stt_expires = cfs_time_add(rpc->crpc_timeout, - get_seconds()); + timer->stt_expires = ktime_get_real_seconds() + rpc->crpc_timeout; stt_add_timer(timer); return; } @@ -1488,7 +1487,7 @@ srpc_lnet_ev_handler(lnet_event_t *ev) } if (scd->scd_buf_err_stamp != 0 && - scd->scd_buf_err_stamp < get_seconds()) { + scd->scd_buf_err_stamp < ktime_get_real_seconds()) { /* re-enable adding buffer */ scd->scd_buf_err_stamp = 0; scd->scd_buf_err = 0; @@ -1593,7 +1592,7 @@ srpc_startup(void) /* 1 second pause to avoid timestamp reuse */ set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(cfs_time_seconds(1)); - srpc_data.rpc_matchbits = ((__u64) get_seconds()) << 48; + srpc_data.rpc_matchbits = ((__u64)ktime_get_real_seconds()) << 48; srpc_data.rpc_state = SRPC_STATE_NONE; diff --git a/drivers/staging/lustre/lnet/selftest/selftest.h b/drivers/staging/lustre/lnet/selftest/selftest.h index 160d68ce6ffd..48322539a3a3 100644 --- a/drivers/staging/lustre/lnet/selftest/selftest.h +++ b/drivers/staging/lustre/lnet/selftest/selftest.h @@ -279,7 +279,7 @@ struct srpc_service_cd { /** error code for scd_buf_wi */ int scd_buf_err; /** timestamp for scd_buf_err */ - unsigned long scd_buf_err_stamp; + time64_t scd_buf_err_stamp; /** total # request buffers */ int scd_buf_total; /** # posted request buffers */ diff --git a/drivers/staging/lustre/lnet/selftest/timer.c b/drivers/staging/lustre/lnet/selftest/timer.c index 6133b54f4a82..ebd5f79126c9 100644 --- a/drivers/staging/lustre/lnet/selftest/timer.c +++ b/drivers/staging/lustre/lnet/selftest/timer.c @@ -78,13 +78,13 @@ stt_add_timer(stt_timer_t *timer) LASSERT(!stt_data.stt_shuttingdown); LASSERT(timer->stt_func != NULL); LASSERT(list_empty(&timer->stt_list)); - LASSERT(cfs_time_after(timer->stt_expires, get_seconds())); + LASSERT(timer->stt_expires > ktime_get_real_seconds()); /* a simple insertion sort */ list_for_each_prev(pos, STTIMER_SLOT(timer->stt_expires)) { stt_timer_t *old = list_entry(pos, stt_timer_t, stt_list); - if (cfs_time_aftereq(timer->stt_expires, old->stt_expires)) + if (timer->stt_expires >= old->stt_expires) break; } list_add(&timer->stt_list, pos); @@ -122,7 +122,7 @@ stt_del_timer(stt_timer_t *timer) /* called with stt_data.stt_lock held */ static int -stt_expire_list(struct list_head *slot, unsigned long now) +stt_expire_list(struct list_head *slot, time64_t now) { int expired = 0; stt_timer_t *timer; @@ -130,7 +130,7 @@ stt_expire_list(struct list_head *slot, unsigned long now) while (!list_empty(slot)) { timer = list_entry(slot->next, stt_timer_t, stt_list); - if (cfs_time_after(timer->stt_expires, now)) + if (timer->stt_expires > now) break; list_del_init(&timer->stt_list); @@ -149,10 +149,10 @@ static int stt_check_timers(unsigned long *last) { int expired = 0; - unsigned long now; + time64_t now; unsigned long this_slot; - now = get_seconds(); + now = ktime_get_real_seconds(); this_slot = now & STTIMER_SLOTTIMEMASK; spin_lock(&stt_data.stt_lock); @@ -212,7 +212,7 @@ stt_startup(void) int i; stt_data.stt_shuttingdown = 0; - stt_data.stt_prev_slot = get_seconds() & STTIMER_SLOTTIMEMASK; + stt_data.stt_prev_slot = ktime_get_real_seconds() & STTIMER_SLOTTIMEMASK; spin_lock_init(&stt_data.stt_lock); for (i = 0; i < STTIMER_NSLOTS; i++) diff --git a/drivers/staging/lustre/lnet/selftest/timer.h b/drivers/staging/lustre/lnet/selftest/timer.h index 2a8803d89de4..03e2ee294c1c 100644 --- a/drivers/staging/lustre/lnet/selftest/timer.h +++ b/drivers/staging/lustre/lnet/selftest/timer.h @@ -40,7 +40,7 @@ typedef struct { struct list_head stt_list; - unsigned long stt_expires; + time64_t stt_expires; void (*stt_func) (void *); void *stt_data; } stt_timer_t; From 80018a9edbc3180ae31a7197f9dacab975a7f5e2 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:24 -0400 Subject: [PATCH 0920/2431] staging/lustre: use 64-bit times in ptlrpc_enc_page_pool ptlrpc_enc_page_pool computes time deltas using 'long' values from get_seconds(). This is probably safe beyond y2038, but it's better to go use monotonic times and 64-bit here for consistency. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/ptlrpc/sec_bulk.c | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c index 2ee3e8b2e879..56dab9db4157 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c @@ -92,8 +92,8 @@ static struct ptlrpc_enc_page_pool { unsigned long epp_idle_idx; /* last shrink time due to mem tight */ - long epp_last_shrink; - long epp_last_access; + time64_t epp_last_shrink; + time64_t epp_last_access; /* * in-pool pages bookkeeping @@ -153,8 +153,8 @@ int sptlrpc_proc_enc_pool_seq_show(struct seq_file *m, void *v) page_pools.epp_total_pages, page_pools.epp_free_pages, page_pools.epp_idle_idx, - get_seconds() - page_pools.epp_last_shrink, - get_seconds() - page_pools.epp_last_access, + (long)(ktime_get_seconds() - page_pools.epp_last_shrink), + (long)(ktime_get_seconds() - page_pools.epp_last_access), page_pools.epp_st_max_pages, page_pools.epp_st_grows, page_pools.epp_st_grow_fails, @@ -226,7 +226,7 @@ static unsigned long enc_pools_shrink_count(struct shrinker *s, * if no pool access for a long time, we consider it's fully idle. * a little race here is fine. */ - if (unlikely(get_seconds() - page_pools.epp_last_access > + if (unlikely(ktime_get_seconds() - page_pools.epp_last_access > CACHE_QUIESCENT_PERIOD)) { spin_lock(&page_pools.epp_lock); page_pools.epp_idle_idx = IDLE_IDX_MAX; @@ -253,7 +253,7 @@ static unsigned long enc_pools_shrink_scan(struct shrinker *s, (long)sc->nr_to_scan, page_pools.epp_free_pages); page_pools.epp_st_shrinks++; - page_pools.epp_last_shrink = get_seconds(); + page_pools.epp_last_shrink = ktime_get_seconds(); } spin_unlock(&page_pools.epp_lock); @@ -261,7 +261,7 @@ static unsigned long enc_pools_shrink_scan(struct shrinker *s, * if no pool access for a long time, we consider it's fully idle. * a little race here is fine. */ - if (unlikely(get_seconds() - page_pools.epp_last_access > + if (unlikely(ktime_get_seconds() - page_pools.epp_last_access > CACHE_QUIESCENT_PERIOD)) { spin_lock(&page_pools.epp_lock); page_pools.epp_idle_idx = IDLE_IDX_MAX; @@ -457,7 +457,7 @@ static inline void enc_pools_wakeup(void) } } -static int enc_pools_should_grow(int page_needed, long now) +static int enc_pools_should_grow(int page_needed, time64_t now) { /* don't grow if someone else is growing the pools right now, * or the pools has reached its full capacity @@ -521,7 +521,7 @@ again: if (tick == 0) tick = cfs_time_current(); - now = get_seconds(); + now = ktime_get_seconds(); page_pools.epp_st_missings++; page_pools.epp_pages_short += desc->bd_iov_count; @@ -600,7 +600,7 @@ again: this_idle) / (IDLE_IDX_WEIGHT + 1); - page_pools.epp_last_access = get_seconds(); + page_pools.epp_last_access = ktime_get_seconds(); spin_unlock(&page_pools.epp_lock); return 0; @@ -725,8 +725,8 @@ int sptlrpc_enc_pool_init(void) page_pools.epp_growing = 0; page_pools.epp_idle_idx = 0; - page_pools.epp_last_shrink = get_seconds(); - page_pools.epp_last_access = get_seconds(); + page_pools.epp_last_shrink = ktime_get_seconds(); + page_pools.epp_last_access = ktime_get_seconds(); spin_lock_init(&page_pools.epp_lock); page_pools.epp_total_pages = 0; From 589bfa37692c61e6f07ed0d65fbfbd478694bc22 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:25 -0400 Subject: [PATCH 0921/2431] staging/lustre: use 64-bit times in debug print This adapts the format string and get_seconds() call to not overflow in 2038 in the libcfs_debug_dumplog_internal() function. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/libcfs/debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/libcfs/debug.c b/drivers/staging/lustre/lustre/libcfs/debug.c index e93f556fac0d..ae325f750eeb 100644 --- a/drivers/staging/lustre/lustre/libcfs/debug.c +++ b/drivers/staging/lustre/lustre/libcfs/debug.c @@ -452,8 +452,8 @@ void libcfs_debug_dumplog_internal(void *arg) if (strncmp(libcfs_debug_file_path_arr, "NONE", 4) != 0) { snprintf(debug_file_name, sizeof(debug_file_name) - 1, - "%s.%ld.%ld", libcfs_debug_file_path_arr, - get_seconds(), (long_ptr_t)arg); + "%s.%lld.%ld", libcfs_debug_file_path_arr, + (s64)ktime_get_real_seconds(), (long_ptr_t)arg); pr_alert("LustreError: dumping log to %s\n", debug_file_name); cfs_tracefile_dump_all_pages(debug_file_name); From 8d7eed54a2391db16f184b18cde5c1824775ebdc Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:26 -0400 Subject: [PATCH 0922/2431] staging/lustre: use 64-bit times in another debug print The ll_setattr_raw() function prints the new inode timestamps along with the current time using '%lu', which overflows in 2106. This changes the printing of the current time for now, the other two will change when we migrate the VFS code to use 64-bit timestamps. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/llite_lib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index 8dc3de11bb74..524fcc9fc188 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1324,9 +1324,9 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr, bool hsm_import) } if (attr->ia_valid & (ATTR_MTIME | ATTR_CTIME)) - CDEBUG(D_INODE, "setting mtime %lu, ctime %lu, now = %lu\n", + CDEBUG(D_INODE, "setting mtime %lu, ctime %lu, now = %llu\n", LTIME_S(attr->ia_mtime), LTIME_S(attr->ia_ctime), - get_seconds()); + (s64)ktime_get_real_seconds()); /* If we are changing file size, file content is modified, flag it. */ if (attr->ia_valid & ATTR_SIZE) { From 14e3f92a4c46eedfe745b0dec42a4dcb1b16a989 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:27 -0400 Subject: [PATCH 0923/2431] staging/lustre: use 64-bit timestamps for mdc These three are timestamps that are sent over the wire in mdc_lib and the obd logging 64-bit values, but are generated using the 32-bit get_seconds() function, which will eventually overflow. Changing them to use 64-bit ktime_get_real_seconds() solves the problem. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_request.c | 2 +- drivers/staging/lustre/lustre/obdclass/llog.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index 524fcc9fc188..a0ae892872f5 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -2218,7 +2218,7 @@ struct md_op_data *ll_prep_md_op_data(struct md_op_data *op_data, op_data->op_name = name; op_data->op_namelen = namelen; op_data->op_mode = mode; - op_data->op_mod_time = get_seconds(); + op_data->op_mod_time = ktime_get_real_seconds(); op_data->op_fsuid = from_kuid(&init_user_ns, current_fsuid()); op_data->op_fsgid = from_kgid(&init_user_ns, current_fsgid()); op_data->op_cap = cfs_curproc_cap_pack(); diff --git a/drivers/staging/lustre/lustre/mdc/mdc_request.c b/drivers/staging/lustre/lustre/mdc/mdc_request.c index d32ae761c05f..fd6fc10349c3 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_request.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_request.c @@ -402,7 +402,7 @@ static int mdc_xattr_common(struct obd_export *exp, rec->sx_suppgid2 = -1; rec->sx_fid = *fid; rec->sx_valid = valid | OBD_MD_FLCTIME; - rec->sx_time = get_seconds(); + rec->sx_time = ktime_get_real_seconds(); rec->sx_size = output_size; rec->sx_flags = flags; diff --git a/drivers/staging/lustre/lustre/obdclass/llog.c b/drivers/staging/lustre/lustre/obdclass/llog.c index 78d92269aab6..8cad47080456 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog.c +++ b/drivers/staging/lustre/lustre/obdclass/llog.c @@ -188,7 +188,7 @@ static int llog_read_header(const struct lu_env *env, llh->llh_hdr.lrh_type = LLOG_HDR_MAGIC; llh->llh_hdr.lrh_len = llh->llh_tail.lrt_len = LLOG_CHUNK_SIZE; llh->llh_hdr.lrh_index = llh->llh_tail.lrt_index = 0; - llh->llh_timestamp = get_seconds(); + llh->llh_timestamp = ktime_get_real_seconds(); if (uuid) memcpy(&llh->llh_tgtuuid, uuid, sizeof(llh->llh_tgtuuid)); From 986ef135c2afce959971b0086fc04e0f9f654120 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:28 -0400 Subject: [PATCH 0924/2431] staging/lustre: use 64-bit times for ptlrpc sec expiry The exp_flvr_expire and imp_sec_expire are defined as 'unsigned long', which doesn't overflow until 2106, but to be on the safe side, this changes the code to use time64_t like we do everywhere else. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_export.h | 2 +- .../lustre/lustre/include/lustre_import.h | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec.c | 28 +++++++++---------- .../staging/lustre/lustre/ptlrpc/sec_config.c | 2 +- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index 5189fad0b73c..e02a39a721d6 100644 --- a/drivers/staging/lustre/lustre/include/lustre_export.h +++ b/drivers/staging/lustre/lustre/include/lustre_export.h @@ -216,7 +216,7 @@ struct obd_export { enum lustre_sec_part exp_sp_peer; struct sptlrpc_flavor exp_flvr; /* current */ struct sptlrpc_flavor exp_flvr_old[2]; /* about-to-expire */ - unsigned long exp_flvr_expire[2]; /* seconds */ + time64_t exp_flvr_expire[2]; /* seconds */ /** protects exp_hp_rpcs */ spinlock_t exp_rpc_lock; diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index cd6244ecd0c7..3ae97e2ece1c 100644 --- a/drivers/staging/lustre/lustre/include/lustre_import.h +++ b/drivers/staging/lustre/lustre/include/lustre_import.h @@ -200,7 +200,7 @@ struct obd_import { */ struct ptlrpc_sec *imp_sec; struct mutex imp_sec_mutex; - unsigned long imp_sec_expire; + time64_t imp_sec_expire; /** @} */ /** Wait queue for those who need to wait for recovery completion */ diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec.c b/drivers/staging/lustre/lustre/ptlrpc/sec.c index b9821db22904..5ee6641ea023 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec.c @@ -343,7 +343,7 @@ static int import_sec_check_expire(struct obd_import *imp) spin_lock(&imp->imp_lock); if (imp->imp_sec_expire && - imp->imp_sec_expire < get_seconds()) { + imp->imp_sec_expire < ktime_get_real_seconds()) { adapt = 1; imp->imp_sec_expire = 0; } @@ -1779,7 +1779,7 @@ int sptlrpc_target_export_check(struct obd_export *exp, exp->exp_flvr_old[1] = exp->exp_flvr_old[0]; exp->exp_flvr_expire[1] = exp->exp_flvr_expire[0]; exp->exp_flvr_old[0] = exp->exp_flvr; - exp->exp_flvr_expire[0] = get_seconds() + + exp->exp_flvr_expire[0] = ktime_get_real_seconds() + EXP_FLVR_UPDATE_EXPIRE; exp->exp_flvr = flavor; @@ -1853,14 +1853,14 @@ int sptlrpc_target_export_check(struct obd_export *exp, } if (exp->exp_flvr_expire[0]) { - if (exp->exp_flvr_expire[0] >= get_seconds()) { + if (exp->exp_flvr_expire[0] >= ktime_get_real_seconds()) { if (flavor_allowed(&exp->exp_flvr_old[0], req)) { - CDEBUG(D_SEC, "exp %p (%x|%x|%x): match the middle one (" CFS_DURATION_T ")\n", exp, + CDEBUG(D_SEC, "exp %p (%x|%x|%x): match the middle one (%lld)\n", exp, exp->exp_flvr.sf_rpc, exp->exp_flvr_old[0].sf_rpc, exp->exp_flvr_old[1].sf_rpc, - exp->exp_flvr_expire[0] - - get_seconds()); + (s64)(exp->exp_flvr_expire[0] - + ktime_get_real_seconds())); spin_unlock(&exp->exp_lock); return 0; } @@ -1877,15 +1877,15 @@ int sptlrpc_target_export_check(struct obd_export *exp, /* now it doesn't match the current flavor, the only chance we can * accept it is match the old flavors which is not expired. */ if (exp->exp_flvr_changed == 0 && exp->exp_flvr_expire[1]) { - if (exp->exp_flvr_expire[1] >= get_seconds()) { + if (exp->exp_flvr_expire[1] >= ktime_get_real_seconds()) { if (flavor_allowed(&exp->exp_flvr_old[1], req)) { - CDEBUG(D_SEC, "exp %p (%x|%x|%x): match the oldest one (" CFS_DURATION_T ")\n", + CDEBUG(D_SEC, "exp %p (%x|%x|%x): match the oldest one (%lld)\n", exp, exp->exp_flvr.sf_rpc, exp->exp_flvr_old[0].sf_rpc, exp->exp_flvr_old[1].sf_rpc, - exp->exp_flvr_expire[1] - - get_seconds()); + (s64)(exp->exp_flvr_expire[1] - + ktime_get_real_seconds())); spin_unlock(&exp->exp_lock); return 0; } @@ -1905,7 +1905,7 @@ int sptlrpc_target_export_check(struct obd_export *exp, spin_unlock(&exp->exp_lock); - CWARN("exp %p(%s): req %p (%u|%u|%u|%u|%u|%u) with unauthorized flavor %x, expect %x|%x(%+ld)|%x(%+ld)\n", + CWARN("exp %p(%s): req %p (%u|%u|%u|%u|%u|%u) with unauthorized flavor %x, expect %x|%x(%+lld)|%x(%+lld)\n", exp, exp->exp_obd->obd_name, req, req->rq_auth_gss, req->rq_ctx_init, req->rq_ctx_fini, req->rq_auth_usr_root, req->rq_auth_usr_mdt, req->rq_auth_usr_ost, @@ -1913,12 +1913,10 @@ int sptlrpc_target_export_check(struct obd_export *exp, exp->exp_flvr.sf_rpc, exp->exp_flvr_old[0].sf_rpc, exp->exp_flvr_expire[0] ? - (unsigned long) (exp->exp_flvr_expire[0] - - get_seconds()) : 0, + (s64)(exp->exp_flvr_expire[0] - ktime_get_real_seconds()) : 0, exp->exp_flvr_old[1].sf_rpc, exp->exp_flvr_expire[1] ? - (unsigned long) (exp->exp_flvr_expire[1] - - get_seconds()) : 0); + (s64)(exp->exp_flvr_expire[1] - ktime_get_real_seconds()) : 0); return -EACCES; } EXPORT_SYMBOL(sptlrpc_target_export_check); diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c index e7f2f333257d..7769ab225a2d 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c @@ -871,7 +871,7 @@ void sptlrpc_conf_client_adapt(struct obd_device *obd) if (imp) { spin_lock(&imp->imp_lock); if (imp->imp_sec) - imp->imp_sec_expire = get_seconds() + + imp->imp_sec_expire = ktime_get_real_seconds() + SEC_ADAPT_DELAY; spin_unlock(&imp->imp_lock); } From 8cc980713ec9e6847896891c54562ad815c33424 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:29 -0400 Subject: [PATCH 0925/2431] staging/lustre: use 64-bit times for ptlrpc_sec Here we use an unsigned long to store the timeout for gc, which is probably safe until 2106, but this patch converts it to use ktime_get_real_seconds() and time64_t for consistency. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec_gc.c | 6 +++--- drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 707ff69717c6..871185cd52b3 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -833,7 +833,7 @@ struct ptlrpc_sec { */ struct list_head ps_gc_list; unsigned long ps_gc_interval; /* in seconds */ - unsigned long ps_gc_next; /* in seconds */ + time64_t ps_gc_next; /* in seconds */ }; static inline int sec_is_reverse(struct ptlrpc_sec *sec) diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c index cdad608bdb8d..c3ad1dabced8 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c @@ -69,7 +69,7 @@ void sptlrpc_gc_add_sec(struct ptlrpc_sec *sec) LASSERT(sec->ps_gc_interval > 0); LASSERT(list_empty(&sec->ps_gc_list)); - sec->ps_gc_next = get_seconds() + sec->ps_gc_interval; + sec->ps_gc_next = ktime_get_real_seconds() + sec->ps_gc_interval; spin_lock(&sec_gc_list_lock); list_add_tail(&sec_gc_list, &sec->ps_gc_list); @@ -154,11 +154,11 @@ static void sec_do_gc(struct ptlrpc_sec *sec) CDEBUG(D_SEC, "check on sec %p(%s)\n", sec, sec->ps_policy->sp_name); - if (cfs_time_after(sec->ps_gc_next, get_seconds())) + if (sec->ps_gc_next > ktime_get_real_seconds()) return; sec->ps_policy->sp_cops->gc_ctx(sec); - sec->ps_gc_next = get_seconds() + sec->ps_gc_interval; + sec->ps_gc_next = ktime_get_real_seconds() + sec->ps_gc_interval; } static int sec_gc_main(void *arg) diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c b/drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c index 68fcac14b3ee..a74e2f01e5be 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c @@ -98,9 +98,9 @@ static int sptlrpc_info_lprocfs_seq_show(struct seq_file *seq, void *v) atomic_read(&sec->ps_refcount)); seq_printf(seq, "nctx: %d\n", atomic_read(&sec->ps_nctx)); seq_printf(seq, "gc internal %ld\n", sec->ps_gc_interval); - seq_printf(seq, "gc next %ld\n", + seq_printf(seq, "gc next %lld\n", sec->ps_gc_interval ? - sec->ps_gc_next - get_seconds() : 0); + (s64)(sec->ps_gc_next - ktime_get_real_seconds()) : 0ll); sptlrpc_sec_put(sec); out: From 219e6de627243c8dbc701eaafe1c30c481d1f82c Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:30 -0400 Subject: [PATCH 0926/2431] staging/lustre: use 64-bit times for request times All request timestamps and deadlines in lustre are recorded in time_t and timeval units, which overflow in 2038 on 32-bit systems. In this patch, I'm converting them to time64_t and timespec64, respectively. Unfortunately, this makes a relatively large patch, but I could not find an obvious way to split it up some more without breaking atomicity of the change. Also unfortunately, this introduces two instances of div_u64_rem() in the request path, which can be slow on 32-bit architectures. This can probably be avoided by a larger restructuring of the code, but it is unlikely that lustre is used in performance critical setups on 32-bit architectures, so it seems better to optimize for correctness rather than speed here. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_import.h | 2 +- .../lustre/lustre/include/lustre_net.h | 22 ++-- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_reint.c | 2 +- .../staging/lustre/lustre/osc/osc_request.c | 4 +- drivers/staging/lustre/lustre/ptlrpc/client.c | 48 ++++---- drivers/staging/lustre/lustre/ptlrpc/events.c | 6 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 4 +- .../lustre/lustre/ptlrpc/lproc_ptlrpc.c | 8 +- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 10 +- .../lustre/lustre/ptlrpc/pack_generic.c | 6 +- .../staging/lustre/lustre/ptlrpc/service.c | 111 ++++++++++-------- 12 files changed, 116 insertions(+), 109 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 3ae97e2ece1c..079db528ba74 100644 --- a/drivers/staging/lustre/lustre/include/lustre_import.h +++ b/drivers/staging/lustre/lustre/include/lustre_import.h @@ -74,7 +74,7 @@ struct ptlrpc_at_array { struct list_head *paa_reqs_array; /** array to hold requests */ __u32 paa_size; /** the size of array */ __u32 paa_count; /** the total count of reqs */ - time_t paa_deadline; /** the earliest deadline of reqs */ + time64_t paa_deadline; /** the earliest deadline of reqs */ __u32 *paa_reqs_count; /** the count of reqs in each entry */ }; diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 44adee134563..0db7810f7d6f 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -1440,7 +1440,7 @@ struct ptlrpc_request { /* server-side... */ /** request arrival time */ - struct timeval rq_arrival_time; + struct timespec64 rq_arrival_time; /** separated reply state */ struct ptlrpc_reply_state *rq_reply_state; /** incoming request buffer */ @@ -1477,18 +1477,18 @@ struct ptlrpc_request { /** * when request/reply sent (secs), or time when request should be sent */ - time_t rq_sent; + time64_t rq_sent; /** time for request really sent out */ - time_t rq_real_sent; + time64_t rq_real_sent; /** when request must finish. volatile * so that servers' early reply updates to the deadline aren't * kept in per-cpu cache */ - volatile time_t rq_deadline; + volatile time64_t rq_deadline; /** when req reply unlink must finish. */ - time_t rq_reply_deadline; + time64_t rq_reply_deadline; /** when req bulk unlink must finish. */ - time_t rq_bulk_deadline; + time64_t rq_bulk_deadline; /** * service time estimate (secs) * If the requestsis not served by this time, it is marked as timed out. @@ -2323,7 +2323,7 @@ static inline int ptlrpc_client_bulk_active(struct ptlrpc_request *req) desc = req->rq_bulk; if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_BULK_UNLINK) && - req->rq_bulk_deadline > get_seconds()) + req->rq_bulk_deadline > ktime_get_real_seconds()) return 1; if (!desc) @@ -2727,7 +2727,7 @@ static inline int ptlrpc_client_early(struct ptlrpc_request *req) { if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_REPL_UNLINK) && - req->rq_reply_deadline > get_seconds()) + req->rq_reply_deadline > ktime_get_real_seconds()) return 0; return req->rq_early; } @@ -2739,7 +2739,7 @@ static inline int ptlrpc_client_replied(struct ptlrpc_request *req) { if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_REPL_UNLINK) && - req->rq_reply_deadline > get_seconds()) + req->rq_reply_deadline > ktime_get_real_seconds()) return 0; return req->rq_replied; } @@ -2749,7 +2749,7 @@ static inline int ptlrpc_client_recv(struct ptlrpc_request *req) { if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_REPL_UNLINK) && - req->rq_reply_deadline > get_seconds()) + req->rq_reply_deadline > ktime_get_real_seconds()) return 1; return req->rq_receiving_reply; } @@ -2761,7 +2761,7 @@ ptlrpc_client_recv_or_unlink(struct ptlrpc_request *req) spin_lock(&req->rq_lock); if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_REPL_UNLINK) && - req->rq_reply_deadline > get_seconds()) { + req->rq_reply_deadline > ktime_get_real_seconds()) { spin_unlock(&req->rq_lock); return 1; } diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c index 20da064c2c4a..ebd9f76825ee 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_locks.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_locks.c @@ -864,7 +864,7 @@ resend: if (resends) { req->rq_generation_set = 1; req->rq_import_generation = generation; - req->rq_sent = get_seconds() + resends; + req->rq_sent = ktime_get_real_seconds() + resends; } /* It is important to obtain rpc_lock first (if applicable), so that diff --git a/drivers/staging/lustre/lustre/mdc/mdc_reint.c b/drivers/staging/lustre/lustre/mdc/mdc_reint.c index 5e9c6296c39d..47051c0799f8 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_reint.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_reint.c @@ -271,7 +271,7 @@ rebuild: if (resends) { req->rq_generation_set = 1; req->rq_import_generation = generation; - req->rq_sent = get_seconds() + resends; + req->rq_sent = ktime_get_real_seconds() + resends; } level = LUSTRE_IMP_FULL; resend: diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 9f5362759f2f..5491a39e8ff7 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -1690,9 +1690,9 @@ static int osc_brw_redo_request(struct ptlrpc_request *request, /* cap resend delay to the current request timeout, this is similar to * what ptlrpc does (see after_reply()) */ if (aa->aa_resends > new_req->rq_timeout) - new_req->rq_sent = get_seconds() + new_req->rq_timeout; + new_req->rq_sent = ktime_get_real_seconds() + new_req->rq_timeout; else - new_req->rq_sent = get_seconds() + aa->aa_resends; + new_req->rq_sent = ktime_get_real_seconds() + aa->aa_resends; new_req->rq_generation_set = 1; new_req->rq_import_generation = request->rq_import_generation; diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index e1830fe4b2b3..d013d4b512ce 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -282,7 +282,7 @@ static void ptlrpc_at_adj_net_latency(struct ptlrpc_request *req, { unsigned int nl, oldnl; struct imp_at *at; - time_t now = get_seconds(); + time64_t now = ktime_get_real_seconds(); LASSERT(req->rq_import); @@ -298,7 +298,7 @@ static void ptlrpc_at_adj_net_latency(struct ptlrpc_request *req, D_ADAPTTO : D_WARNING, "Reported service time %u > total measured time " CFS_DURATION_T"\n", service_time, - cfs_time_sub(now, req->rq_sent)); + (long)(now - req->rq_sent)); return; } @@ -343,7 +343,7 @@ static int unpack_reply(struct ptlrpc_request *req) static int ptlrpc_at_recv_early_reply(struct ptlrpc_request *req) { struct ptlrpc_request *early_req; - time_t olddl; + time64_t olddl; int rc; req->rq_early = 0; @@ -378,14 +378,14 @@ static int ptlrpc_at_recv_early_reply(struct ptlrpc_request *req) olddl = req->rq_deadline; /* server assumes it now has rq_timeout from when it sent the * early reply, so client should give it at least that long. */ - req->rq_deadline = get_seconds() + req->rq_timeout + + req->rq_deadline = ktime_get_real_seconds() + req->rq_timeout + ptlrpc_at_get_net_latency(req); DEBUG_REQ(D_ADAPTTO, req, - "Early reply #%d, new deadline in " CFS_DURATION_T "s (" CFS_DURATION_T "s)", + "Early reply #%d, new deadline in %lds (%lds)", req->rq_early_count, - cfs_time_sub(req->rq_deadline, get_seconds()), - cfs_time_sub(req->rq_deadline, olddl)); + (long)(req->rq_deadline - ktime_get_real_seconds()), + (long)(req->rq_deadline - olddl)); return rc; } @@ -1203,7 +1203,7 @@ static int after_reply(struct ptlrpc_request *req) struct obd_import *imp = req->rq_import; struct obd_device *obd = req->rq_import->imp_obd; int rc; - struct timeval work_start; + struct timespec64 work_start; long timediff; LASSERT(obd != NULL); @@ -1253,7 +1253,7 @@ static int after_reply(struct ptlrpc_request *req) /* retry indefinitely on EINPROGRESS */ if (lustre_msg_get_status(req->rq_repmsg) == -EINPROGRESS && ptlrpc_no_resend(req) == 0 && !req->rq_no_retry_einprogress) { - time_t now = get_seconds(); + time64_t now = ktime_get_real_seconds(); DEBUG_REQ(D_RPCTRACE, req, "Resending request on EINPROGRESS"); spin_lock(&req->rq_lock); @@ -1283,8 +1283,9 @@ static int after_reply(struct ptlrpc_request *req) return 0; } - do_gettimeofday(&work_start); - timediff = cfs_timeval_sub(&work_start, &req->rq_arrival_time, NULL); + ktime_get_real_ts64(&work_start); + timediff = (work_start.tv_sec - req->rq_arrival_time.tv_sec) * USEC_PER_SEC + + (work_start.tv_nsec - req->rq_arrival_time.tv_nsec) / NSEC_PER_USEC; if (obd->obd_svc_stats != NULL) { lprocfs_counter_add(obd->obd_svc_stats, PTLRPC_REQWAIT_CNTR, timediff); @@ -1401,7 +1402,7 @@ static int ptlrpc_send_new_req(struct ptlrpc_request *req) int rc; LASSERT(req->rq_phase == RQ_PHASE_NEW); - if (req->rq_sent && (req->rq_sent > get_seconds()) && + if (req->rq_sent && (req->rq_sent > ktime_get_real_seconds()) && (!req->rq_generation_set || req->rq_import_generation == imp->imp_generation)) return 0; @@ -1541,7 +1542,7 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) /* delayed resend - skip */ if (req->rq_phase == RQ_PHASE_RPC && req->rq_resend && - req->rq_sent > get_seconds()) + req->rq_sent > ktime_get_real_seconds()) continue; if (!(req->rq_phase == RQ_PHASE_RPC || @@ -1902,14 +1903,13 @@ int ptlrpc_expire_one_request(struct ptlrpc_request *req, int async_unlink) req->rq_timedout = 1; spin_unlock(&req->rq_lock); - DEBUG_REQ(D_WARNING, req, "Request sent has %s: [sent "CFS_DURATION_T - "/real "CFS_DURATION_T"]", + DEBUG_REQ(D_WARNING, req, "Request sent has %s: [sent %lld/real %lld]", req->rq_net_err ? "failed due to network error" : ((req->rq_real_sent == 0 || - time_before((unsigned long)req->rq_real_sent, (unsigned long)req->rq_sent) || - cfs_time_aftereq(req->rq_real_sent, req->rq_deadline)) ? + req->rq_real_sent < req->rq_sent || + req->rq_real_sent >= req->rq_deadline) ? "timed out for sent delay" : "timed out for slow reply"), - req->rq_sent, req->rq_real_sent); + (s64)req->rq_sent, (s64)req->rq_real_sent); if (imp != NULL && obd_debug_peer_on_timeout) LNetCtl(IOC_LIBCFS_DEBUG_PEER, &imp->imp_connection->c_peer); @@ -1967,7 +1967,7 @@ int ptlrpc_expired_set(void *data) { struct ptlrpc_request_set *set = data; struct list_head *tmp; - time_t now = get_seconds(); + time64_t now = ktime_get_real_seconds(); LASSERT(set != NULL); @@ -2050,10 +2050,10 @@ EXPORT_SYMBOL(ptlrpc_interrupted_set); int ptlrpc_set_next_timeout(struct ptlrpc_request_set *set) { struct list_head *tmp; - time_t now = get_seconds(); + time64_t now = ktime_get_real_seconds(); int timeout = 0; struct ptlrpc_request *req; - int deadline; + time64_t deadline; list_for_each(tmp, &set->set_requests) { req = list_entry(tmp, struct ptlrpc_request, rq_set_chain); @@ -2364,7 +2364,7 @@ int ptlrpc_unregister_reply(struct ptlrpc_request *request, int async) */ if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_REPL_UNLINK) && async && request->rq_reply_deadline == 0) - request->rq_reply_deadline = get_seconds()+LONG_UNLINK; + request->rq_reply_deadline = ktime_get_real_seconds()+LONG_UNLINK; /* * Nothing left to do. @@ -2939,7 +2939,7 @@ static spinlock_t ptlrpc_last_xid_lock; #define YEAR_2004 (1ULL << 30) void ptlrpc_init_xid(void) { - time_t now = get_seconds(); + time64_t now = ktime_get_real_seconds(); spin_lock_init(&ptlrpc_last_xid_lock); if (now < YEAR_2004) { @@ -3028,7 +3028,7 @@ static void ptlrpcd_add_work_req(struct ptlrpc_request *req) { /* re-initialize the req */ req->rq_timeout = obd_timeout; - req->rq_sent = get_seconds(); + req->rq_sent = ktime_get_real_seconds(); req->rq_deadline = req->rq_sent + req->rq_timeout; req->rq_reply_deadline = req->rq_deadline; req->rq_phase = RQ_PHASE_INTERPRET; diff --git a/drivers/staging/lustre/lustre/ptlrpc/events.c b/drivers/staging/lustre/lustre/ptlrpc/events.c index 53f6b6278403..afd869b205a5 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/events.c +++ b/drivers/staging/lustre/lustre/ptlrpc/events.c @@ -64,7 +64,7 @@ void request_out_callback(lnet_event_t *ev) sptlrpc_request_out_callback(req); spin_lock(&req->rq_lock); - req->rq_real_sent = get_seconds(); + req->rq_real_sent = ktime_get_real_seconds(); if (ev->unlinked) req->rq_req_unlink = 0; @@ -246,7 +246,7 @@ static void ptlrpc_req_add_history(struct ptlrpc_service_part *svcpt, struct ptlrpc_request *req) { __u64 sec = req->rq_arrival_time.tv_sec; - __u32 usec = req->rq_arrival_time.tv_usec >> 4; /* usec / 16 */ + __u32 usec = req->rq_arrival_time.tv_nsec / NSEC_PER_USEC / 16; /* usec / 16 */ __u64 new_seq; /* set sequence ID for request and add it to history list, @@ -327,7 +327,7 @@ void request_in_callback(lnet_event_t *ev) req->rq_reqbuf = ev->md.start + ev->offset; if (ev->type == LNET_EVENT_PUT && ev->status == 0) req->rq_reqdata_len = ev->mlength; - do_gettimeofday(&req->rq_arrival_time); + ktime_get_real_ts64(&req->rq_arrival_time); req->rq_peer = ev->initiator; req->rq_self = ev->target.nid; req->rq_rqbd = rqbd; diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 3fc49ee66d8b..9ff1a22b1b67 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -219,7 +219,7 @@ void ptlrpc_deactivate_import(struct obd_import *imp) EXPORT_SYMBOL(ptlrpc_deactivate_import); static unsigned int -ptlrpc_inflight_deadline(struct ptlrpc_request *req, time_t now) +ptlrpc_inflight_deadline(struct ptlrpc_request *req, time64_t now) { long dl; @@ -244,7 +244,7 @@ ptlrpc_inflight_deadline(struct ptlrpc_request *req, time_t now) static unsigned int ptlrpc_inflight_timeout(struct obd_import *imp) { - time_t now = get_seconds(); + time64_t now = ktime_get_real_seconds(); struct list_head *tmp, *n; struct ptlrpc_request *req; unsigned int timeout = 0; diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 3b2745f45924..6c411047220d 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -945,13 +945,13 @@ static int ptlrpc_lprocfs_svc_req_history_show(struct seq_file *s, void *iter) * must be just as careful as the service's request * parser. Currently I only print stuff here I know is OK * to look at coz it was set up in request_in_callback()!!! */ - seq_printf(s, "%lld:%s:%s:x%llu:%d:%s:%ld:%lds(%+lds) ", + seq_printf(s, "%lld:%s:%s:x%llu:%d:%s:%lld:%lds(%+lds) ", req->rq_history_seq, libcfs_nid2str(req->rq_self), libcfs_id2str(req->rq_peer), req->rq_xid, req->rq_reqlen, ptlrpc_rqphase2str(req), - req->rq_arrival_time.tv_sec, - req->rq_sent - req->rq_arrival_time.tv_sec, - req->rq_sent - req->rq_deadline); + (s64)req->rq_arrival_time.tv_sec, + (long)(req->rq_sent - req->rq_arrival_time.tv_sec), + (long)(req->rq_sent - req->rq_deadline)); if (svc->srv_ops.so_req_printer == NULL) seq_printf(s, "\n"); else diff --git a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c index bfc56cdc3916..8db62d00437c 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c +++ b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c @@ -252,7 +252,7 @@ int ptlrpc_unregister_bulk(struct ptlrpc_request *req, int async) /* Let's setup deadline for reply unlink. */ if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_BULK_UNLINK) && async && req->rq_bulk_deadline == 0) - req->rq_bulk_deadline = get_seconds() + LONG_UNLINK; + req->rq_bulk_deadline = ktime_get_real_seconds() + LONG_UNLINK; if (ptlrpc_client_bulk_active(req) == 0) /* completed or */ return 1; /* never registered */ @@ -303,7 +303,7 @@ static void ptlrpc_at_set_reply(struct ptlrpc_request *req, int flags) { struct ptlrpc_service_part *svcpt = req->rq_rqbd->rqbd_svcpt; struct ptlrpc_service *svc = svcpt->scp_service; - int service_time = max_t(int, get_seconds() - + int service_time = max_t(int, ktime_get_real_seconds() - req->rq_arrival_time.tv_sec, 1); if (!(flags & PTLRPC_REPLY_EARLY) && @@ -421,7 +421,7 @@ int ptlrpc_send_reply(struct ptlrpc_request *req, int flags) if (unlikely(rc)) goto out; - req->rq_sent = get_seconds(); + req->rq_sent = ktime_get_real_seconds(); rc = ptl_send_buf(&rs->rs_md_h, rs->rs_repbuf, rs->rs_repdata_len, (rs->rs_difficult && !rs->rs_no_ack) ? @@ -632,8 +632,8 @@ int ptl_send_rpc(struct ptlrpc_request *request, int noreply) OBD_FAIL_TIMEOUT(OBD_FAIL_PTLRPC_DELAY_SEND, request->rq_timeout + 5); - do_gettimeofday(&request->rq_arrival_time); - request->rq_sent = get_seconds(); + ktime_get_real_ts64(&request->rq_arrival_time); + request->rq_sent = ktime_get_real_seconds(); /* We give the server rq_timeout secs to process the req, and add the network latency for our local timeout. */ request->rq_deadline = request->rq_sent + request->rq_timeout + diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index dd31215172d9..9402fb9a08ba 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -2344,7 +2344,7 @@ void _debug_req(struct ptlrpc_request *req, va_start(args, fmt); libcfs_debug_vmsg2(msgdata, fmt, args, - " req@%p x%llu/t%lld(%lld) o%d->%s@%s:%d/%d lens %d/%d e %d to %d dl " CFS_TIME_T " ref %d fl " REQ_FLAGS_FMT "/%x/%x rc %d/%d\n", + " req@%p x%llu/t%lld(%lld) o%d->%s@%s:%d/%d lens %d/%d e %d to %lld dl %lld ref %d fl " REQ_FLAGS_FMT "/%x/%x rc %d/%d\n", req, req->rq_xid, req->rq_transno, req_ok ? lustre_msg_get_transno(req->rq_reqmsg) : 0, req_ok ? lustre_msg_get_opc(req->rq_reqmsg) : -1, @@ -2356,8 +2356,8 @@ void _debug_req(struct ptlrpc_request *req, libcfs_nid2str(nid), req->rq_request_portal, req->rq_reply_portal, req->rq_reqlen, req->rq_replen, - req->rq_early_count, req->rq_timedout, - req->rq_deadline, + req->rq_early_count, (s64)req->rq_timedout, + (s64)req->rq_deadline, atomic_read(&req->rq_refcount), DEBUG_REQ_FLAGS(req), req_ok ? lustre_msg_get_flags(req->rq_reqmsg) : -1, diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 40de622450ee..28f57d7222d0 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -1160,7 +1160,7 @@ static void ptlrpc_at_set_timer(struct ptlrpc_service_part *svcpt) } /* Set timer for closest deadline */ - next = (__s32)(array->paa_deadline - get_seconds() - + next = (__s32)(array->paa_deadline - ktime_get_real_seconds() - at_early_margin); if (next <= 0) { ptlrpc_at_timer((unsigned long)svcpt); @@ -1191,7 +1191,7 @@ static int ptlrpc_at_add_timed(struct ptlrpc_request *req) spin_lock(&svcpt->scp_at_lock); LASSERT(list_empty(&req->rq_timed_list)); - index = (unsigned long)req->rq_deadline % array->paa_size; + div_u64_rem(req->rq_deadline, array->paa_size, &index); if (array->paa_reqs_count[index] > 0) { /* latest rpcs will have the latest deadlines in the list, * so search backward. */ @@ -1250,8 +1250,8 @@ static int ptlrpc_at_send_early_reply(struct ptlrpc_request *req) struct ptlrpc_service_part *svcpt = req->rq_rqbd->rqbd_svcpt; struct ptlrpc_request *reqcopy; struct lustre_msg *reqmsg; - long olddl = req->rq_deadline - get_seconds(); - time_t newdl; + long olddl = req->rq_deadline - ktime_get_real_seconds(); + time64_t newdl; int rc; /* deadline is when the client expects us to reply, margin is the @@ -1293,21 +1293,21 @@ static int ptlrpc_at_send_early_reply(struct ptlrpc_request *req) /* Fake our processing time into the future to ask the clients * for some extra amount of time */ at_measured(&svcpt->scp_at_estimate, at_extra + - get_seconds() - + ktime_get_real_seconds() - req->rq_arrival_time.tv_sec); /* Check to see if we've actually increased the deadline - * we may be past adaptive_max */ if (req->rq_deadline >= req->rq_arrival_time.tv_sec + at_get(&svcpt->scp_at_estimate)) { - DEBUG_REQ(D_WARNING, req, "Couldn't add any time (%ld/%ld), not sending early reply\n", + DEBUG_REQ(D_WARNING, req, "Couldn't add any time (%ld/%lld), not sending early reply\n", olddl, req->rq_arrival_time.tv_sec + at_get(&svcpt->scp_at_estimate) - - get_seconds()); + ktime_get_real_seconds()); return -ETIMEDOUT; } } - newdl = get_seconds() + at_get(&svcpt->scp_at_estimate); + newdl = ktime_get_real_seconds() + at_get(&svcpt->scp_at_estimate); reqcopy = ptlrpc_request_cache_alloc(GFP_NOFS); if (reqcopy == NULL) @@ -1390,8 +1390,8 @@ static int ptlrpc_at_check_timed(struct ptlrpc_service_part *svcpt) struct ptlrpc_request *rq, *n; struct list_head work_list; __u32 index, count; - time_t deadline; - time_t now = get_seconds(); + time64_t deadline; + time64_t now = ktime_get_real_seconds(); long delay; int first, counter = 0; @@ -1421,7 +1421,7 @@ static int ptlrpc_at_check_timed(struct ptlrpc_service_part *svcpt) server will take. Send early replies to everyone expiring soon. */ INIT_LIST_HEAD(&work_list); deadline = -1; - index = (unsigned long)array->paa_deadline % array->paa_size; + div_u64_rem(array->paa_deadline, array->paa_size, &index); count = array->paa_count; while (count > 0) { count -= array->paa_reqs_count[index]; @@ -1463,7 +1463,7 @@ static int ptlrpc_at_check_timed(struct ptlrpc_service_part *svcpt) chance to send early replies */ LCONSOLE_WARN("%s: This server is not able to keep up with request traffic (cpu-bound).\n", svcpt->scp_service->srv_name); - CWARN("earlyQ=%d reqQ=%d recA=%d, svcEst=%d, delay=" CFS_DURATION_T "(jiff)\n", + CWARN("earlyQ=%d reqQ=%d recA=%d, svcEst=%d, delay=%ld(jiff)\n", counter, svcpt->scp_nreqs_incoming, svcpt->scp_nreqs_active, at_get(&svcpt->scp_at_estimate), delay); @@ -1834,10 +1834,10 @@ ptlrpc_server_handle_req_in(struct ptlrpc_service_part *svcpt, } /* req_in handling should/must be fast */ - if (get_seconds() - req->rq_arrival_time.tv_sec > 5) + if (ktime_get_real_seconds() - req->rq_arrival_time.tv_sec > 5) DEBUG_REQ(D_WARNING, req, "Slow req_in handling "CFS_DURATION_T"s", - cfs_time_sub(get_seconds(), - req->rq_arrival_time.tv_sec)); + (long)(ktime_get_real_seconds() - + req->rq_arrival_time.tv_sec)); /* Set rpc server deadline and add it to the timed list */ deadline = (lustre_msghdr_get_flags(req->rq_reqmsg) & @@ -1878,9 +1878,12 @@ ptlrpc_server_handle_request(struct ptlrpc_service_part *svcpt, { struct ptlrpc_service *svc = svcpt->scp_service; struct ptlrpc_request *request; - struct timeval work_start; - struct timeval work_end; - long timediff; + struct timespec64 work_start; + struct timespec64 work_end; + struct timespec64 timediff; + struct timespec64 arrived; + unsigned long timediff_usecs; + unsigned long arrived_usecs; int rc; int fail_opc = 0; @@ -1903,12 +1906,13 @@ ptlrpc_server_handle_request(struct ptlrpc_service_part *svcpt, if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_DUMP_LOG)) libcfs_debug_dumplog(); - do_gettimeofday(&work_start); - timediff = cfs_timeval_sub(&work_start, &request->rq_arrival_time, - NULL); + ktime_get_real_ts64(&work_start); + timediff = timespec64_sub(work_start, request->rq_arrival_time); + timediff_usecs = timediff.tv_sec * USEC_PER_SEC + + timediff.tv_nsec / NSEC_PER_USEC; if (likely(svc->srv_stats != NULL)) { lprocfs_counter_add(svc->srv_stats, PTLRPC_REQWAIT_CNTR, - timediff); + timediff_usecs); lprocfs_counter_add(svc->srv_stats, PTLRPC_REQQDEPTH_CNTR, svcpt->scp_nreqs_incoming); lprocfs_counter_add(svc->srv_stats, PTLRPC_REQACTIVE_CNTR, @@ -1935,18 +1939,19 @@ ptlrpc_server_handle_request(struct ptlrpc_service_part *svcpt, if (likely(request->rq_export)) { if (unlikely(ptlrpc_check_req(request))) goto put_conn; - ptlrpc_update_export_timer(request->rq_export, timediff >> 19); + ptlrpc_update_export_timer(request->rq_export, + timediff_usecs >> 19); } /* Discard requests queued for longer than the deadline. The deadline is increased if we send an early reply. */ - if (get_seconds() > request->rq_deadline) { + if (ktime_get_real_seconds() > request->rq_deadline) { DEBUG_REQ(D_ERROR, request, "Dropping timed-out request from %s: deadline " CFS_DURATION_T ":" CFS_DURATION_T "s ago\n", libcfs_id2str(request->rq_peer), - cfs_time_sub(request->rq_deadline, - request->rq_arrival_time.tv_sec), - cfs_time_sub(get_seconds(), - request->rq_deadline)); + (long)(request->rq_deadline - + request->rq_arrival_time.tv_sec), + (long)(ktime_get_real_seconds() - + request->rq_deadline)); goto put_conn; } @@ -1971,19 +1976,22 @@ put_conn: lu_context_exit(&request->rq_session); lu_context_fini(&request->rq_session); - if (unlikely(get_seconds() > request->rq_deadline)) { + if (unlikely(ktime_get_real_seconds() > request->rq_deadline)) { DEBUG_REQ(D_WARNING, request, - "Request took longer than estimated (" - CFS_DURATION_T":"CFS_DURATION_T - "s); client may timeout.", - cfs_time_sub(request->rq_deadline, - request->rq_arrival_time.tv_sec), - cfs_time_sub(get_seconds(), - request->rq_deadline)); + "Request took longer than estimated (%lld:%llds); " + "client may timeout.", + (s64)request->rq_deadline - + request->rq_arrival_time.tv_sec, + (s64)ktime_get_real_seconds() - request->rq_deadline); } - do_gettimeofday(&work_end); - timediff = cfs_timeval_sub(&work_end, &work_start, NULL); + ktime_get_real_ts64(&work_end); + timediff = timespec64_sub(work_end, work_start); + timediff_usecs = timediff.tv_sec * USEC_PER_SEC + + timediff.tv_nsec / NSEC_PER_USEC; + arrived = timespec64_sub(work_end, request->rq_arrival_time); + arrived_usecs = arrived.tv_sec * USEC_PER_SEC + + arrived.tv_nsec / NSEC_PER_USEC; CDEBUG(D_RPCTRACE, "Handled RPC pname:cluuid+ref:pid:xid:nid:opc %s:%s+%d:%d:x%llu:%s:%d Request processed in %ldus (%ldus total) trans %llu rc %d/%d\n", current_comm(), (request->rq_export ? @@ -1994,8 +2002,8 @@ put_conn: request->rq_xid, libcfs_id2str(request->rq_peer), lustre_msg_get_opc(request->rq_reqmsg), - timediff, - cfs_timeval_sub(&work_end, &request->rq_arrival_time, NULL), + timediff_usecs, + arrived_usecs, (request->rq_repmsg ? lustre_msg_get_transno(request->rq_repmsg) : request->rq_transno), @@ -2009,16 +2017,15 @@ put_conn: LASSERT(opc < LUSTRE_MAX_OPCODES); lprocfs_counter_add(svc->srv_stats, opc + EXTRA_MAX_OPCODES, - timediff); + timediff_usecs); } } if (unlikely(request->rq_early_count)) { DEBUG_REQ(D_ADAPTTO, request, - "sent %d early replies before finishing in " - CFS_DURATION_T"s", + "sent %d early replies before finishing in %llds", request->rq_early_count, - cfs_time_sub(work_end.tv_sec, - request->rq_arrival_time.tv_sec)); + (s64)work_end.tv_sec - + request->rq_arrival_time.tv_sec); } out_req: @@ -3057,10 +3064,10 @@ EXPORT_SYMBOL(ptlrpc_unregister_service); static int ptlrpc_svcpt_health_check(struct ptlrpc_service_part *svcpt) { struct ptlrpc_request *request = NULL; - struct timeval right_now; - long timediff; + struct timespec64 right_now; + struct timespec64 timediff; - do_gettimeofday(&right_now); + ktime_get_real_ts64(&right_now); spin_lock(&svcpt->scp_req_lock); /* How long has the next entry been waiting? */ @@ -3074,13 +3081,13 @@ static int ptlrpc_svcpt_health_check(struct ptlrpc_service_part *svcpt) return 0; } - timediff = cfs_timeval_sub(&right_now, &request->rq_arrival_time, NULL); + timediff = timespec64_sub(right_now, request->rq_arrival_time); spin_unlock(&svcpt->scp_req_lock); - if ((timediff / ONE_MILLION) > + if ((timediff.tv_sec) > (AT_OFF ? obd_timeout * 3 / 2 : at_max)) { - CERROR("%s: unhealthy - request has been waiting %lds\n", - svcpt->scp_service->srv_name, timediff / ONE_MILLION); + CERROR("%s: unhealthy - request has been waiting %llds\n", + svcpt->scp_service->srv_name, (s64)timediff.tv_sec); return -1; } From 380f01a18cb9ee12908583b2b30382c6d2e142d2 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:31 -0400 Subject: [PATCH 0927/2431] staging/lustre: remove the ping evictor This code is never used on the client and can simply be removed. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_net.h | 2 - drivers/staging/lustre/lustre/include/obd.h | 1 - drivers/staging/lustre/lustre/ptlrpc/pinger.c | 136 ------------------ .../lustre/lustre/ptlrpc/ptlrpc_internal.h | 1 - .../staging/lustre/lustre/ptlrpc/service.c | 31 ---- 5 files changed, 171 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 0db7810f7d6f..e929c934cfbf 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2900,8 +2900,6 @@ int ptlrpc_del_timeout_client(struct list_head *obd_list, enum timeout_event event); struct ptlrpc_request *ptlrpc_prep_ping(struct obd_import *imp); int ptlrpc_obd_ping(struct obd_device *obd); -void ping_evictor_start(void); -void ping_evictor_stop(void); void ptlrpc_pinger_ir_up(void); void ptlrpc_pinger_ir_down(void); /** @} */ diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 0dbac3f53f01..874d1adbf21e 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -841,7 +841,6 @@ struct obd_device { struct obd_export *obd_self_export; /* list of exports in LRU order, for ping evictor, with obd_dev_lock */ struct list_head obd_exports_timed; - time_t obd_eviction_timer; /* for ping evictor */ int obd_max_recoverable_clients; atomic_t obd_connected_clients; diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index 6cd4cfa58c27..16dfa8e1ed3f 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pinger.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pinger.c @@ -534,139 +534,3 @@ void ptlrpc_pinger_wake_up(void) thread_add_flags(&pinger_thread, SVC_EVENT); wake_up(&pinger_thread.t_ctl_waitq); } - -/* Ping evictor thread */ -#define PET_READY 1 -#define PET_TERMINATE 2 - -static int pet_refcount; -static int pet_state; -static wait_queue_head_t pet_waitq; -static LIST_HEAD(pet_list); -static DEFINE_SPINLOCK(pet_lock); - -int ping_evictor_wake(struct obd_export *exp) -{ - struct obd_device *obd; - - spin_lock(&pet_lock); - if (pet_state != PET_READY) { - /* eventually the new obd will call here again. */ - spin_unlock(&pet_lock); - return 1; - } - - obd = class_exp2obd(exp); - if (list_empty(&obd->obd_evict_list)) { - class_incref(obd, "evictor", obd); - list_add(&obd->obd_evict_list, &pet_list); - } - spin_unlock(&pet_lock); - - wake_up(&pet_waitq); - return 0; -} - -static int ping_evictor_main(void *arg) -{ - struct obd_device *obd; - struct obd_export *exp; - struct l_wait_info lwi = { 0 }; - time_t expire_time; - - unshare_fs_struct(); - - CDEBUG(D_HA, "Starting Ping Evictor\n"); - pet_state = PET_READY; - while (1) { - l_wait_event(pet_waitq, (!list_empty(&pet_list)) || - (pet_state == PET_TERMINATE), &lwi); - - /* loop until all obd's will be removed */ - if ((pet_state == PET_TERMINATE) && list_empty(&pet_list)) - break; - - /* we only get here if pet_exp != NULL, and the end of this - * loop is the only place which sets it NULL again, so lock - * is not strictly necessary. */ - spin_lock(&pet_lock); - obd = list_entry(pet_list.next, struct obd_device, - obd_evict_list); - spin_unlock(&pet_lock); - - expire_time = get_seconds() - PING_EVICT_TIMEOUT; - - CDEBUG(D_HA, "evicting all exports of obd %s older than %ld\n", - obd->obd_name, expire_time); - - /* Exports can't be deleted out of the list while we hold - * the obd lock (class_unlink_export), which means we can't - * lose the last ref on the export. If they've already been - * removed from the list, we won't find them here. */ - spin_lock(&obd->obd_dev_lock); - while (!list_empty(&obd->obd_exports_timed)) { - exp = list_entry(obd->obd_exports_timed.next, - struct obd_export, - exp_obd_chain_timed); - if (expire_time > exp->exp_last_request_time) { - class_export_get(exp); - spin_unlock(&obd->obd_dev_lock); - LCONSOLE_WARN("%s: haven't heard from client %s (at %s) in %ld seconds. I think it's dead, and I am evicting it. exp %p, cur %ld expire %ld last %ld\n", - obd->obd_name, - obd_uuid2str(&exp->exp_client_uuid), - obd_export_nid2str(exp), - (long)(get_seconds() - - exp->exp_last_request_time), - exp, (long)get_seconds(), - (long)expire_time, - (long)exp->exp_last_request_time); - CDEBUG(D_HA, "Last request was at %ld\n", - exp->exp_last_request_time); - class_fail_export(exp); - class_export_put(exp); - spin_lock(&obd->obd_dev_lock); - } else { - /* List is sorted, so everyone below is ok */ - break; - } - } - spin_unlock(&obd->obd_dev_lock); - - spin_lock(&pet_lock); - list_del_init(&obd->obd_evict_list); - spin_unlock(&pet_lock); - - class_decref(obd, "evictor", obd); - } - CDEBUG(D_HA, "Exiting Ping Evictor\n"); - - return 0; -} - -void ping_evictor_start(void) -{ - struct task_struct *task; - - if (++pet_refcount > 1) - return; - - init_waitqueue_head(&pet_waitq); - - task = kthread_run(ping_evictor_main, NULL, "ll_evictor"); - if (IS_ERR(task)) { - pet_refcount--; - CERROR("Cannot start ping evictor thread: %ld\n", - PTR_ERR(task)); - } -} -EXPORT_SYMBOL(ping_evictor_start); - -void ping_evictor_stop(void) -{ - if (--pet_refcount > 0) - return; - - pet_state = PET_TERMINATE; - wake_up(&pet_waitq); -} -EXPORT_SYMBOL(ping_evictor_stop); diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h index 4e35b14a1315..059ad96bb0bf 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h @@ -250,7 +250,6 @@ void ptlrpc_pinger_sending_on_import(struct obd_import *imp); void ptlrpc_pinger_commit_expected(struct obd_import *imp); void ptlrpc_pinger_wake_up(void); void ptlrpc_ping_import_soon(struct obd_import *imp); -int ping_evictor_wake(struct obd_export *exp); /* sec_null.c */ int sptlrpc_null_init(void); diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 28f57d7222d0..27d1030049a3 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -1069,37 +1069,6 @@ static void ptlrpc_update_export_timer(struct obd_export *exp, long extra_delay) struct obd_export, exp_obd_chain_timed); oldest_time = oldest_exp->exp_last_request_time; spin_unlock(&exp->exp_obd->obd_dev_lock); - - if (exp->exp_obd->obd_recovering) { - /* be nice to everyone during recovery */ - return; - } - - /* Note - racing to start/reset the obd_eviction timer is safe */ - if (exp->exp_obd->obd_eviction_timer == 0) { - /* Check if the oldest entry is expired. */ - if (get_seconds() > (oldest_time + PING_EVICT_TIMEOUT + - extra_delay)) { - /* We need a second timer, in case the net was down and - * it just came back. Since the pinger may skip every - * other PING_INTERVAL (see note in ptlrpc_pinger_main), - * we better wait for 3. */ - exp->exp_obd->obd_eviction_timer = - get_seconds() + 3 * PING_INTERVAL; - CDEBUG(D_HA, "%s: Think about evicting %s from "CFS_TIME_T"\n", - exp->exp_obd->obd_name, - obd_export_nid2str(oldest_exp), oldest_time); - } - } else { - if (get_seconds() > - (exp->exp_obd->obd_eviction_timer + extra_delay)) { - /* The evictor won't evict anyone who we've heard from - * recently, so we don't have to check before we start - * it. */ - if (!ping_evictor_wake(exp)) - exp->exp_obd->obd_eviction_timer = 0; - } - } } /** From 806d6514e9ed68ba7e47975feb9deb1f31348a12 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:32 -0400 Subject: [PATCH 0928/2431] staging/lustre/lov: remove a bit of dead code lov_stripe_md_cmp lov_lum_lsm_cmp lov_lum_swab_if_needed functions have not been in used for a long time, so lets just remove them. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd.h | 62 --------------------- 1 file changed, 62 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 874d1adbf21e..c12edc5cd032 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -167,68 +167,6 @@ struct obd_info { void *oi_capa; }; -/* compare all relevant fields. */ -static inline int lov_stripe_md_cmp(struct lov_stripe_md *m1, - struct lov_stripe_md *m2) -{ - /* - * ->lsm_wire contains padding, but it should be zeroed out during - * allocation. - */ - return memcmp(&m1->lsm_wire, &m2->lsm_wire, sizeof(m1->lsm_wire)); -} - -static inline int lov_lum_lsm_cmp(struct lov_user_md *lum, - struct lov_stripe_md *lsm) -{ - if (lsm->lsm_magic != lum->lmm_magic) - return 1; - if ((lsm->lsm_stripe_count != 0) && (lum->lmm_stripe_count != 0) && - (lsm->lsm_stripe_count != lum->lmm_stripe_count)) - return 2; - if ((lsm->lsm_stripe_size != 0) && (lum->lmm_stripe_size != 0) && - (lsm->lsm_stripe_size != lum->lmm_stripe_size)) - return 3; - if ((lsm->lsm_pattern != 0) && (lum->lmm_pattern != 0) && - (lsm->lsm_pattern != lum->lmm_pattern)) - return 4; - if ((lsm->lsm_magic == LOV_MAGIC_V3) && - (strncmp(lsm->lsm_pool_name, - ((struct lov_user_md_v3 *)lum)->lmm_pool_name, - LOV_MAXPOOLNAME) != 0)) - return 5; - return 0; -} - -static inline int lov_lum_swab_if_needed(struct lov_user_md_v3 *lumv3, - int *lmm_magic, - struct lov_user_md *lum) -{ - if (lum && copy_from_user(lumv3, lum, sizeof(struct lov_user_md_v1))) - return -EFAULT; - - *lmm_magic = lumv3->lmm_magic; - - if (*lmm_magic == __swab32(LOV_USER_MAGIC_V1)) { - lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lumv3); - *lmm_magic = LOV_USER_MAGIC_V1; - } else if (*lmm_magic == LOV_USER_MAGIC_V3) { - if (lum && copy_from_user(lumv3, lum, sizeof(*lumv3))) - return -EFAULT; - } else if (*lmm_magic == __swab32(LOV_USER_MAGIC_V3)) { - if (lum && copy_from_user(lumv3, lum, sizeof(*lumv3))) - return -EFAULT; - lustre_swab_lov_user_md_v3(lumv3); - *lmm_magic = LOV_USER_MAGIC_V3; - } else if (*lmm_magic != LOV_USER_MAGIC_V1) { - CDEBUG(D_IOCTL, - "bad userland LOV MAGIC: %#08x != %#08x nor %#08x\n", - *lmm_magic, LOV_USER_MAGIC_V1, LOV_USER_MAGIC_V3); - return -EINVAL; - } - return 0; -} - void lov_stripe_lock(struct lov_stripe_md *md); void lov_stripe_unlock(struct lov_stripe_md *md); From 922da0c58e4107fb70364e1032c8243ac8646107 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:33 -0400 Subject: [PATCH 0929/2431] staging/lustre: remove wrappers for timer functions This is a simple cleanup that I did after noticing that the abstraction for the timer functions in completely pointless, and the one user (ptlrpc) can just as well call the native Linux functions. For good measure, this also removes the empty libcfs_arch_init() and libcfs_arch_cleanup() functions that are defined in the same file. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/include/linux/libcfs/libcfs.h | 3 - .../lustre/include/linux/libcfs/libcfs_prim.h | 12 ---- .../lustre/lustre/libcfs/linux/linux-prim.c | 64 ------------------- drivers/staging/lustre/lustre/libcfs/module.c | 3 - .../staging/lustre/lustre/ptlrpc/service.c | 12 ++-- 5 files changed, 7 insertions(+), 87 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/libcfs.h index 259a33658d3f..385ced15c742 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs.h @@ -62,9 +62,6 @@ static inline int __is_po2(unsigned long long val) #include -int libcfs_arch_init(void); -void libcfs_arch_cleanup(void); - /* need both kernel and user-land acceptor */ #define LNET_ACCEPTOR_MIN_RESERVED_PORT 512 #define LNET_ACCEPTOR_MAX_RESERVED_PORT 1023 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h index 62ade0809264..082fe6de90e4 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h @@ -40,20 +40,8 @@ #ifndef __LIBCFS_PRIM_H__ #define __LIBCFS_PRIM_H__ -/* - * Timer - */ -typedef void (cfs_timer_func_t)(ulong_ptr_t); - void add_wait_queue_exclusive_head(wait_queue_head_t *, wait_queue_t *); -void cfs_init_timer(struct timer_list *t); -void cfs_timer_init(struct timer_list *t, cfs_timer_func_t *func, void *arg); -void cfs_timer_arm(struct timer_list *t, unsigned long deadline); -void cfs_timer_disarm(struct timer_list *t); -int cfs_timer_is_armed(struct timer_list *t); -unsigned long cfs_timer_deadline(struct timer_list *t); - /* * Memory */ diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c index 12b6af4cac3e..89084460231a 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c @@ -70,55 +70,6 @@ add_wait_queue_exclusive_head(wait_queue_head_t *waitq, wait_queue_t *link) } EXPORT_SYMBOL(add_wait_queue_exclusive_head); -void cfs_init_timer(struct timer_list *t) -{ - init_timer(t); -} -EXPORT_SYMBOL(cfs_init_timer); - -void cfs_timer_init(struct timer_list *t, cfs_timer_func_t *func, void *arg) -{ - init_timer(t); - t->function = func; - t->data = (unsigned long)arg; -} -EXPORT_SYMBOL(cfs_timer_init); - -void cfs_timer_arm(struct timer_list *t, unsigned long deadline) -{ - mod_timer(t, deadline); -} -EXPORT_SYMBOL(cfs_timer_arm); - -void cfs_timer_disarm(struct timer_list *t) -{ - del_timer(t); -} -EXPORT_SYMBOL(cfs_timer_disarm); - -int cfs_timer_is_armed(struct timer_list *t) -{ - return timer_pending(t); -} -EXPORT_SYMBOL(cfs_timer_is_armed); - -unsigned long cfs_timer_deadline(struct timer_list *t) -{ - return t->expires; -} -EXPORT_SYMBOL(cfs_timer_deadline); - -void cfs_enter_debugger(void) -{ -#if defined(CONFIG_KGDB) - /* BREAKPOINT(); */ -#else - /* nothing */ -#endif -} -EXPORT_SYMBOL(cfs_enter_debugger); - - sigset_t cfs_block_allsigs(void) { @@ -194,18 +145,3 @@ cfs_clear_sigpending(void) spin_unlock_irqrestore(¤t->sighand->siglock, flags); } EXPORT_SYMBOL(cfs_clear_sigpending); - -int -libcfs_arch_init(void) -{ - return 0; -} -EXPORT_SYMBOL(libcfs_arch_init); - -void -libcfs_arch_cleanup(void) -{ - return; -} -EXPORT_SYMBOL(libcfs_arch_cleanup); - diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c index a19f5796b642..5e4262a2e6f3 100644 --- a/drivers/staging/lustre/lustre/libcfs/module.c +++ b/drivers/staging/lustre/lustre/libcfs/module.c @@ -701,7 +701,6 @@ static int init_libcfs_module(void) { int rc; - libcfs_arch_init(); libcfs_init_nidstrings(); rc = libcfs_debug_init(5 * 1024 * 1024); @@ -777,8 +776,6 @@ static void exit_libcfs_module(void) rc = libcfs_debug_cleanup(); if (rc) pr_err("LustreError: libcfs_debug_cleanup: %d\n", rc); - - libcfs_arch_cleanup(); } MODULE_VERSION("1.0.0"); diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 27d1030049a3..6483642b771c 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -649,7 +649,9 @@ ptlrpc_service_part_init(struct ptlrpc_service *svc, if (array->paa_reqs_count == NULL) goto free_reqs_array; - cfs_timer_init(&svcpt->scp_at_timer, ptlrpc_at_timer, svcpt); + setup_timer(&svcpt->scp_at_timer, ptlrpc_at_timer, + (unsigned long)svcpt); + /* At SOW, service time should be quick; 10s seems generous. If client * timeout is less than this, we'll be sending an early reply. */ at_init(&svcpt->scp_at_estimate, 10, 0); @@ -1124,7 +1126,7 @@ static void ptlrpc_at_set_timer(struct ptlrpc_service_part *svcpt) __s32 next; if (array->paa_count == 0) { - cfs_timer_disarm(&svcpt->scp_at_timer); + del_timer(&svcpt->scp_at_timer); return; } @@ -1134,7 +1136,7 @@ static void ptlrpc_at_set_timer(struct ptlrpc_service_part *svcpt) if (next <= 0) { ptlrpc_at_timer((unsigned long)svcpt); } else { - cfs_timer_arm(&svcpt->scp_at_timer, cfs_time_shift(next)); + mod_timer(&svcpt->scp_at_timer, cfs_time_shift(next)); CDEBUG(D_INFO, "armed %s at %+ds\n", svcpt->scp_service->srv_name, next); } @@ -2840,7 +2842,7 @@ ptlrpc_service_del_atimer(struct ptlrpc_service *svc) /* early disarm AT timer... */ ptlrpc_service_for_each_part(svcpt, i, svc) { if (svcpt->scp_service != NULL) - cfs_timer_disarm(&svcpt->scp_at_timer); + del_timer(&svcpt->scp_at_timer); } } @@ -2980,7 +2982,7 @@ ptlrpc_service_free(struct ptlrpc_service *svc) break; /* In case somebody rearmed this in the meantime */ - cfs_timer_disarm(&svcpt->scp_at_timer); + del_timer(&svcpt->scp_at_timer); array = &svcpt->scp_at_array; kfree(array->paa_reqs_array); From 117e2ce8cf35ce7b16ef39138bbba81a7cc38277 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:34 -0400 Subject: [PATCH 0930/2431] staging/lustre: remove unused time handling functions A bunch of API functions deal with time values but are now completely unused in lustre. This removes them in order to remove all references to time_t from the header files. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/include/linux/libcfs/libcfs_time.h | 49 ------------------- .../include/linux/libcfs/linux/linux-time.h | 17 ------- 2 files changed, 66 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_time.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_time.h index 5de6da085712..2c7ec2d28f38 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_time.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_time.h @@ -68,55 +68,6 @@ static inline unsigned long cfs_time_shift(int seconds) return cfs_time_add(cfs_time_current(), cfs_time_seconds(seconds)); } -static inline long cfs_timeval_sub(struct timeval *large, struct timeval *small, - struct timeval *result) -{ - long r = (long)( - (large->tv_sec - small->tv_sec) * ONE_MILLION + - (large->tv_usec - small->tv_usec)); - if (result != NULL) { - result->tv_usec = r % ONE_MILLION; - result->tv_sec = r / ONE_MILLION; - } - return r; -} - -static inline void cfs_slow_warning(unsigned long now, int seconds, char *msg) -{ - if (cfs_time_after(cfs_time_current(), - cfs_time_add(now, cfs_time_seconds(15)))) - CERROR("slow %s "CFS_TIME_T" sec\n", msg, - cfs_duration_sec(cfs_time_sub(cfs_time_current(), now))); -} - -#define CFS_RATELIMIT(seconds) \ -({ \ - /* \ - * XXX nikita: non-portable initializer \ - */ \ - static time_t __next_message; \ - int result; \ - \ - if (cfs_time_after(cfs_time_current(), __next_message)) \ - result = 1; \ - else { \ - __next_message = cfs_time_shift(seconds); \ - result = 0; \ - } \ - result; \ -}) - -/* - * helper function similar to do_gettimeofday() of Linux kernel - */ -static inline void cfs_fs_timeval(struct timeval *tv) -{ - struct timespec time; - - cfs_fs_time_current(&time); - cfs_fs_time_usec(&time, tv); -} - /* * return valid time-out based on user supplied one. Currently we only check * that time-out is not shorted than allowed. diff --git a/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h b/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h index f193f8bdee6e..09c59f080ca3 100644 --- a/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h +++ b/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h @@ -59,13 +59,6 @@ #include - -static inline void cfs_fs_time_usec(struct timespec *t, struct timeval *v) -{ - v->tv_sec = t->tv_sec; - v->tv_usec = t->tv_nsec / 1000; -} - /* * Generic kernel stuff */ @@ -75,16 +68,6 @@ static inline unsigned long cfs_time_current(void) return jiffies; } -static inline void cfs_fs_time_current(struct timespec *t) -{ - *t = CURRENT_TIME; -} - -static inline time_t cfs_fs_time_sec(struct timespec *t) -{ - return t->tv_sec; -} - static inline long cfs_time_seconds(int seconds) { return ((long)seconds) * HZ; From fb209cbddd5fdd8e0916f5c2650cc778a5ce09e0 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:35 -0400 Subject: [PATCH 0931/2431] staging/lustre: remove class_disconnect_export_list More code that makes no sense on the client and that can be removed without replacement. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/obd_class.h | 3 - .../staging/lustre/lustre/obdclass/genops.c | 115 ------------------ .../lustre/lustre/obdclass/obd_config.c | 12 -- 3 files changed, 130 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 7308cda6f5e6..0bbe9f9b935e 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -286,10 +286,7 @@ int class_connect(struct lustre_handle *conn, struct obd_device *obd, int class_disconnect(struct obd_export *exp); void class_fail_export(struct obd_export *exp); int class_connected_export(struct obd_export *exp); -void class_disconnect_exports(struct obd_device *obddev); int class_manual_cleanup(struct obd_device *obd); -void class_disconnect_stale_exports(struct obd_device *, - int (*test_export)(struct obd_export *)); static inline enum obd_option exp_flags_from_obd(struct obd_device *obd) { return ((obd->obd_fail ? OBD_OPT_FAILOVER : 0) | diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 594955d359ec..da01ea5a35b2 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -1235,121 +1235,6 @@ int class_connected_export(struct obd_export *exp) } EXPORT_SYMBOL(class_connected_export); -static void class_disconnect_export_list(struct list_head *list, - enum obd_option flags) -{ - int rc; - struct obd_export *exp; - - /* It's possible that an export may disconnect itself, but - * nothing else will be added to this list. */ - while (!list_empty(list)) { - exp = list_entry(list->next, struct obd_export, - exp_obd_chain); - /* need for safe call CDEBUG after obd_disconnect */ - class_export_get(exp); - - spin_lock(&exp->exp_lock); - exp->exp_flags = flags; - spin_unlock(&exp->exp_lock); - - if (obd_uuid_equals(&exp->exp_client_uuid, - &exp->exp_obd->obd_uuid)) { - CDEBUG(D_HA, - "exp %p export uuid == obd uuid, don't discon\n", - exp); - /* Need to delete this now so we don't end up pointing - * to work_list later when this export is cleaned up. */ - list_del_init(&exp->exp_obd_chain); - class_export_put(exp); - continue; - } - - class_export_get(exp); - CDEBUG(D_HA, "%s: disconnecting export at %s (%p), last request at " CFS_TIME_T "\n", - exp->exp_obd->obd_name, obd_export_nid2str(exp), - exp, exp->exp_last_request_time); - /* release one export reference anyway */ - rc = obd_disconnect(exp); - - CDEBUG(D_HA, "disconnected export at %s (%p): rc %d\n", - obd_export_nid2str(exp), exp, rc); - class_export_put(exp); - } -} - -void class_disconnect_exports(struct obd_device *obd) -{ - struct list_head work_list; - - /* Move all of the exports from obd_exports to a work list, en masse. */ - INIT_LIST_HEAD(&work_list); - spin_lock(&obd->obd_dev_lock); - list_splice_init(&obd->obd_exports, &work_list); - list_splice_init(&obd->obd_delayed_exports, &work_list); - spin_unlock(&obd->obd_dev_lock); - - if (!list_empty(&work_list)) { - CDEBUG(D_HA, "OBD device %d (%p) has exports, disconnecting them\n", - obd->obd_minor, obd); - class_disconnect_export_list(&work_list, - exp_flags_from_obd(obd)); - } else - CDEBUG(D_HA, "OBD device %d (%p) has no exports\n", - obd->obd_minor, obd); -} -EXPORT_SYMBOL(class_disconnect_exports); - -/* Remove exports that have not completed recovery. - */ -void class_disconnect_stale_exports(struct obd_device *obd, - int (*test_export)(struct obd_export *)) -{ - struct list_head work_list; - struct obd_export *exp, *n; - int evicted = 0; - - INIT_LIST_HEAD(&work_list); - spin_lock(&obd->obd_dev_lock); - list_for_each_entry_safe(exp, n, &obd->obd_exports, - exp_obd_chain) { - /* don't count self-export as client */ - if (obd_uuid_equals(&exp->exp_client_uuid, - &exp->exp_obd->obd_uuid)) - continue; - - /* don't evict clients which have no slot in last_rcvd - * (e.g. lightweight connection) */ - if (exp->exp_target_data.ted_lr_idx == -1) - continue; - - spin_lock(&exp->exp_lock); - if (exp->exp_failed || test_export(exp)) { - spin_unlock(&exp->exp_lock); - continue; - } - exp->exp_failed = 1; - spin_unlock(&exp->exp_lock); - - list_move(&exp->exp_obd_chain, &work_list); - evicted++; - CDEBUG(D_HA, "%s: disconnect stale client %s@%s\n", - obd->obd_name, exp->exp_client_uuid.uuid, - !exp->exp_connection ? "" : - libcfs_nid2str(exp->exp_connection->c_peer.nid)); - print_export_data(exp, "EVICTING", 0); - } - spin_unlock(&obd->obd_dev_lock); - - if (evicted) - LCONSOLE_WARN("%s: disconnecting %d stale clients\n", - obd->obd_name, evicted); - - class_disconnect_export_list(&work_list, exp_flags_from_obd(obd) | - OBD_OPT_ABORT_RECOV); -} -EXPORT_SYMBOL(class_disconnect_stale_exports); - void class_fail_export(struct obd_export *exp) { int rc, already_failed; diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 3bbc80623b3a..a96d2f3a00e0 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -643,18 +643,6 @@ int class_cleanup(struct obd_device *obd, struct lustre_cfg *lcfg) LASSERT(obd->obd_self_export); - /* The three references that should be remaining are the - * obd_self_export and the attach and setup references. */ - if (atomic_read(&obd->obd_refcount) > 3) { - /* refcount - 3 might be the number of real exports - (excluding self export). But class_incref is called - by other things as well, so don't count on it. */ - CDEBUG(D_IOCTL, "%s: forcing exports to disconnect: %d\n", - obd->obd_name, atomic_read(&obd->obd_refcount) - 3); - dump_exports(obd, 0); - class_disconnect_exports(obd); - } - /* Precleanup, we must make sure all exports get destroyed. */ err = obd_precleanup(obd, OBD_CLEANUP_EXPORTS); if (err) From 3aabf997441891a9f4962f3ffa0c22c16aed2da0 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:36 -0400 Subject: [PATCH 0932/2431] staging/lustre/ptlrpc: Remove ptlrpc_update_export_timer() This is only used on the server to keep track of alive clients and feeds into ping evictor (that was removed from the client code). Also remove struct obd's obd_exports_timed and struct obd_export's exp_obd_chain_timed used to keep track of that Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_export.h | 16 ------- drivers/staging/lustre/lustre/include/obd.h | 2 - .../staging/lustre/lustre/obdclass/genops.c | 4 -- .../lustre/lustre/obdclass/obd_config.c | 2 - .../lustre/lustre/obdecho/echo_client.c | 6 --- .../staging/lustre/lustre/ptlrpc/service.c | 48 ------------------- 6 files changed, 78 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index e02a39a721d6..c29bfdbef12d 100644 --- a/drivers/staging/lustre/lustre/include/lustre_export.h +++ b/drivers/staging/lustre/lustre/include/lustre_export.h @@ -148,13 +148,6 @@ struct obd_export { struct list_head exp_obd_chain; struct hlist_node exp_uuid_hash; /** uuid-export hash*/ struct hlist_node exp_nid_hash; /** nid-export hash */ - /** - * All exports eligible for ping evictor are linked into a list - * through this field in "most time since last request on this export" - * order - * protected by obd_dev_lock - */ - struct list_head exp_obd_chain_timed; /** Obd device of this export */ struct obd_device *exp_obd; /** @@ -179,8 +172,6 @@ struct obd_export { spinlock_t exp_uncommitted_replies_lock; /** Last committed transno for this export */ __u64 exp_last_committed; - /** When was last request received */ - unsigned long exp_last_request_time; /** On replay all requests waiting for replay are linked here */ struct list_head exp_req_replay_queue; /** @@ -265,13 +256,6 @@ static inline int exp_connect_multibulk(struct obd_export *exp) return exp_max_brw_size(exp) > ONE_MB_BRW_SIZE; } -static inline int exp_expired(struct obd_export *exp, long age) -{ - LASSERT(exp->exp_delayed); - return time_before(cfs_time_add(exp->exp_last_request_time, age), - get_seconds()); -} - static inline int exp_connect_cancelset(struct obd_export *exp) { LASSERT(exp != NULL); diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index c12edc5cd032..24fc5fd575d7 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -777,8 +777,6 @@ struct obd_device { struct rw_semaphore obd_observer_link_sem; struct obd_notify_upcall obd_upcall; struct obd_export *obd_self_export; - /* list of exports in LRU order, for ping evictor, with obd_dev_lock */ - struct list_head obd_exports_timed; int obd_max_recoverable_clients; atomic_t obd_connected_clients; diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index da01ea5a35b2..8a58b78cfdbf 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -846,7 +846,6 @@ struct obd_export *class_new_export(struct obd_device *obd, INIT_LIST_HEAD(&export->exp_handle.h_link); INIT_LIST_HEAD(&export->exp_hp_rpcs); class_handle_hash(&export->exp_handle, &export_handle_ops); - export->exp_last_request_time = get_seconds(); spin_lock_init(&export->exp_lock); spin_lock_init(&export->exp_rpc_lock); INIT_HLIST_NODE(&export->exp_uuid_hash); @@ -892,8 +891,6 @@ struct obd_export *class_new_export(struct obd_device *obd, class_incref(obd, "export", export); list_add(&export->exp_obd_chain, &export->exp_obd->obd_exports); - list_add_tail(&export->exp_obd_chain_timed, - &export->exp_obd->obd_exports_timed); export->exp_obd->obd_num_exports++; spin_unlock(&obd->obd_dev_lock); cfs_hash_putref(hash); @@ -924,7 +921,6 @@ void class_unlink_export(struct obd_export *exp) &exp->exp_uuid_hash); list_move(&exp->exp_obd_chain, &exp->exp_obd->obd_unlinked_exports); - list_del_init(&exp->exp_obd_chain_timed); exp->exp_obd->obd_num_exports--; spin_unlock(&exp->exp_obd->obd_dev_lock); class_export_put(exp); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index a96d2f3a00e0..d19cbf67a60b 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -381,7 +381,6 @@ int class_attach(struct lustre_cfg *lcfg) INIT_LIST_HEAD(&obd->obd_exports); INIT_LIST_HEAD(&obd->obd_unlinked_exports); INIT_LIST_HEAD(&obd->obd_delayed_exports); - INIT_LIST_HEAD(&obd->obd_exports_timed); spin_lock_init(&obd->obd_nid_lock); spin_lock_init(&obd->obd_dev_lock); mutex_init(&obd->obd_dev_mutex); @@ -518,7 +517,6 @@ int class_setup(struct obd_device *obd, struct lustre_cfg *lcfg) } obd->obd_self_export = exp; - list_del_init(&exp->exp_obd_chain_timed); class_export_put(exp); err = obd_setup(obd, lcfg); diff --git a/drivers/staging/lustre/lustre/obdecho/echo_client.c b/drivers/staging/lustre/lustre/obdecho/echo_client.c index 81304e456dbd..4feca2c42775 100644 --- a/drivers/staging/lustre/lustre/obdecho/echo_client.c +++ b/drivers/staging/lustre/lustre/obdecho/echo_client.c @@ -2065,12 +2065,6 @@ static int echo_client_setup(const struct lu_env *env, ocd->ocd_group = FID_SEQ_ECHO; rc = obd_connect(env, &ec->ec_exp, tgt, &echo_uuid, ocd, NULL); - if (rc == 0) { - /* Turn off pinger because it connects to tgt obd directly. */ - spin_lock(&tgt->obd_dev_lock); - list_del_init(&ec->ec_exp->exp_obd_chain_timed); - spin_unlock(&tgt->obd_dev_lock); - } kfree(ocd); diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 6483642b771c..326f89e0ccc7 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -1028,51 +1028,6 @@ static void ptlrpc_server_finish_active_request( ptlrpc_server_finish_request(svcpt, req); } -/** - * This function makes sure dead exports are evicted in a timely manner. - * This function is only called when some export receives a message (i.e., - * the network is up.) - */ -static void ptlrpc_update_export_timer(struct obd_export *exp, long extra_delay) -{ - struct obd_export *oldest_exp; - time_t oldest_time, new_time; - - LASSERT(exp); - - /* Compensate for slow machines, etc, by faking our request time - into the future. Although this can break the strict time-ordering - of the list, we can be really lazy here - we don't have to evict - at the exact right moment. Eventually, all silent exports - will make it to the top of the list. */ - - /* Do not pay attention on 1sec or smaller renewals. */ - new_time = get_seconds() + extra_delay; - if (exp->exp_last_request_time + 1 /*second */ >= new_time) - return; - - exp->exp_last_request_time = new_time; - - /* exports may get disconnected from the chain even though the - export has references, so we must keep the spin lock while - manipulating the lists */ - spin_lock(&exp->exp_obd->obd_dev_lock); - - if (list_empty(&exp->exp_obd_chain_timed)) { - /* this one is not timed */ - spin_unlock(&exp->exp_obd->obd_dev_lock); - return; - } - - list_move_tail(&exp->exp_obd_chain_timed, - &exp->exp_obd->obd_exports_timed); - - oldest_exp = list_entry(exp->exp_obd->obd_exports_timed.next, - struct obd_export, exp_obd_chain_timed); - oldest_time = oldest_exp->exp_last_request_time; - spin_unlock(&exp->exp_obd->obd_dev_lock); -} - /** * Sanity check request \a req. * Return 0 if all is ok, error code otherwise. @@ -1801,7 +1756,6 @@ ptlrpc_server_handle_req_in(struct ptlrpc_service_part *svcpt, if (rc) goto err_req; - ptlrpc_update_export_timer(req->rq_export, 0); } /* req_in handling should/must be fast */ @@ -1910,8 +1864,6 @@ ptlrpc_server_handle_request(struct ptlrpc_service_part *svcpt, if (likely(request->rq_export)) { if (unlikely(ptlrpc_check_req(request))) goto put_conn; - ptlrpc_update_export_timer(request->rq_export, - timediff_usecs >> 19); } /* Discard requests queued for longer than the deadline. From 93d3a405a168fba4450bdda793149e3cd4174736 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:37 -0400 Subject: [PATCH 0933/2431] staging/lustre: remove CFS_TIME_T definition The CFS_TIME_T macro serves no real purpose as we stopped using time_t and changed over to time64_t, so we can remove the last remaining uses of this. Two uses of this macro are incorrect and refer to jiffies values rather than time_t, and one refers to an inode timespec that gets changed separately. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/include/linux/libcfs/linux/linux-time.h | 1 - drivers/staging/lustre/lustre/mdc/mdc_reint.c | 3 +-- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 4 ++-- drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 5 ++--- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h b/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h index 09c59f080ca3..ed8764b11c80 100644 --- a/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h +++ b/drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h @@ -106,7 +106,6 @@ static inline int cfs_time_beforeq_64(__u64 t1, __u64 t2) */ #define CFS_TICK (1) -#define CFS_TIME_T "%lu" #define CFS_DURATION_T "%ld" #endif /* __LIBCFS_LINUX_LINUX_TIME_H__ */ diff --git a/drivers/staging/lustre/lustre/mdc/mdc_reint.c b/drivers/staging/lustre/lustre/mdc/mdc_reint.c index 47051c0799f8..79e4fd48a96a 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_reint.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_reint.c @@ -144,8 +144,7 @@ int mdc_setattr(struct obd_export *exp, struct md_op_data *op_data, rpc_lock = obd->u.cli.cl_rpc_lock; if (op_data->op_attr.ia_valid & (ATTR_MTIME | ATTR_CTIME)) - CDEBUG(D_INODE, "setting mtime "CFS_TIME_T - ", ctime "CFS_TIME_T"\n", + CDEBUG(D_INODE, "setting mtime %ld, ctime %ld\n", LTIME_S(op_data->op_attr.ia_mtime), LTIME_S(op_data->op_attr.ia_ctime)); mdc_setattr_pack(req, op_data, ea, ealen, ea2, ea2len); diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index 16dfa8e1ed3f..47061740f0bf 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pinger.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pinger.c @@ -275,8 +275,8 @@ static int ptlrpc_pinger_main(void *arg) next ping time to next_ping + .01 sec, which means we will SKIP the next ping at next_ping, and the ping will get sent 2 timeouts from now! Beware. */ - CDEBUG(D_INFO, "next wakeup in "CFS_DURATION_T" (" - CFS_TIME_T")\n", time_to_next_wake, + CDEBUG(D_INFO, "next wakeup in " CFS_DURATION_T " (%ld)\n", + time_to_next_wake, cfs_time_add(this_ping, cfs_time_seconds(PING_INTERVAL))); if (time_to_next_wake > 0) { diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c index 56dab9db4157..c18b71c71181 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c @@ -145,7 +145,7 @@ int sptlrpc_proc_enc_pool_seq_show(struct seq_file *m, void *v) "cache missing: %lu\n" "low free mark: %lu\n" "max waitqueue depth: %u\n" - "max wait time: " CFS_TIME_T "/%u\n", + "max wait time: %ld/%u\n", totalram_pages, PAGES_PER_POOL, page_pools.epp_max_pages, @@ -768,8 +768,7 @@ void sptlrpc_enc_pool_fini(void) if (page_pools.epp_st_access > 0) { CDEBUG(D_SEC, - "max pages %lu, grows %u, grow fails %u, shrinks %u, access %lu, missing %lu, max qlen %u, max wait " - CFS_TIME_T"/%d\n", + "max pages %lu, grows %u, grow fails %u, shrinks %u, access %lu, missing %lu, max qlen %u, max wait %ld/%d\n", page_pools.epp_st_max_pages, page_pools.epp_st_grows, page_pools.epp_st_grow_fails, page_pools.epp_st_shrinks, page_pools.epp_st_access, From c860a3bd565702e45690060d047e841a7f167771 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:38 -0400 Subject: [PATCH 0934/2431] staging/lustre/obdclass: Remove unused lprocfs_wr_evict_client This is only used on the servers to evict clients. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lprocfs_status.h | 2 - .../lustre/lustre/ptlrpc/lproc_ptlrpc.c | 49 ------------------- 2 files changed, 51 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 1b87a6ac9560..742cb593289d 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -612,8 +612,6 @@ int lprocfs_at_hist_helper(struct seq_file *m, struct adaptive_timeout *at); int lprocfs_rd_timeouts(struct seq_file *m, void *data); int lprocfs_wr_timeouts(struct file *file, const char __user *buffer, unsigned long count, void *data); -int lprocfs_wr_evict_client(struct file *file, const char __user *buffer, - size_t count, loff_t *off); int lprocfs_wr_ping(struct file *file, const char __user *buffer, size_t count, loff_t *off); int lprocfs_wr_import(struct file *file, const char __user *buffer, diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 6c411047220d..d66a7b877d5d 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -1207,55 +1207,6 @@ void ptlrpc_lprocfs_unregister_obd(struct obd_device *obd) } EXPORT_SYMBOL(ptlrpc_lprocfs_unregister_obd); - -#define BUFLEN (UUID_MAX + 5) - -int lprocfs_wr_evict_client(struct file *file, const char __user *buffer, - size_t count, loff_t *off) -{ - struct obd_device *obd = ((struct seq_file *)file->private_data)->private; - char *kbuf; - char *tmpbuf; - - kbuf = kzalloc(BUFLEN, GFP_NOFS); - if (!kbuf) - return -ENOMEM; - - /* - * kzalloc() will zero kbuf, but we only copy BUFLEN - 1 - * bytes into kbuf, to ensure that the string is NUL-terminated. - * UUID_MAX should include a trailing NUL already. - */ - if (copy_from_user(kbuf, buffer, - min_t(unsigned long, BUFLEN - 1, count))) { - count = -EFAULT; - goto out; - } - tmpbuf = cfs_firststr(kbuf, min_t(unsigned long, BUFLEN - 1, count)); - /* Kludge code(deadlock situation): the lprocfs lock has been held - * since the client is evicted by writing client's - * uuid/nid to procfs "evict_client" entry. However, - * obd_export_evict_by_uuid() will call ldebugfs_remove() to destroy - * the proc entries under the being destroyed export{}, so I have - * to drop the lock at first here. - * - jay, jxiong@clusterfs.com */ - class_incref(obd, __func__, current); - - if (strncmp(tmpbuf, "nid:", 4) == 0) - obd_export_evict_by_nid(obd, tmpbuf + 4); - else if (strncmp(tmpbuf, "uuid:", 5) == 0) - obd_export_evict_by_uuid(obd, tmpbuf + 5); - else - obd_export_evict_by_uuid(obd, tmpbuf); - - class_decref(obd, __func__, current); - -out: - kfree(kbuf); - return count; -} -EXPORT_SYMBOL(lprocfs_wr_evict_client); - #undef BUFLEN int lprocfs_wr_ping(struct file *file, const char __user *buffer, From fdeccfdc37eff2125e926d4c78b02165711393ce Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:39 -0400 Subject: [PATCH 0935/2431] staging/lustre: Remove obd_export_evict_by_nid/uuid These functions only make sense on the server. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/obd_class.h | 2 - .../staging/lustre/lustre/obdclass/genops.c | 90 ------------------- 2 files changed, 92 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 0bbe9f9b935e..08ec2d016e40 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -98,8 +98,6 @@ int class_notify_sptlrpc_conf(const char *fsname, int namelen); char *obd_export_nid2str(struct obd_export *exp); -int obd_export_evict_by_nid(struct obd_device *obd, const char *nid); -int obd_export_evict_by_uuid(struct obd_device *obd, const char *uuid); int obd_connect_flags2str(char *page, int count, __u64 flags, char *sep); int obd_zombie_impexp_init(void); diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 8a58b78cfdbf..44cb5bc64ce7 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -1278,96 +1278,6 @@ char *obd_export_nid2str(struct obd_export *exp) } EXPORT_SYMBOL(obd_export_nid2str); -int obd_export_evict_by_nid(struct obd_device *obd, const char *nid) -{ - struct cfs_hash *nid_hash; - struct obd_export *doomed_exp = NULL; - int exports_evicted = 0; - - lnet_nid_t nid_key = libcfs_str2nid((char *)nid); - - spin_lock(&obd->obd_dev_lock); - /* umount has run already, so evict thread should leave - * its task to umount thread now */ - if (obd->obd_stopping) { - spin_unlock(&obd->obd_dev_lock); - return exports_evicted; - } - nid_hash = obd->obd_nid_hash; - cfs_hash_getref(nid_hash); - spin_unlock(&obd->obd_dev_lock); - - do { - doomed_exp = cfs_hash_lookup(nid_hash, &nid_key); - if (!doomed_exp) - break; - - LASSERTF(doomed_exp->exp_connection->c_peer.nid == nid_key, - "nid %s found, wanted nid %s, requested nid %s\n", - obd_export_nid2str(doomed_exp), - libcfs_nid2str(nid_key), nid); - LASSERTF(doomed_exp != obd->obd_self_export, - "self-export is hashed by NID?\n"); - exports_evicted++; - LCONSOLE_WARN("%s: evicting %s (at %s) by administrative request\n", - obd->obd_name, - obd_uuid2str(&doomed_exp->exp_client_uuid), - obd_export_nid2str(doomed_exp)); - class_fail_export(doomed_exp); - class_export_put(doomed_exp); - } while (1); - - cfs_hash_putref(nid_hash); - - if (!exports_evicted) - CDEBUG(D_HA, - "%s: can't disconnect NID '%s': no exports found\n", - obd->obd_name, nid); - return exports_evicted; -} -EXPORT_SYMBOL(obd_export_evict_by_nid); - -int obd_export_evict_by_uuid(struct obd_device *obd, const char *uuid) -{ - struct cfs_hash *uuid_hash; - struct obd_export *doomed_exp = NULL; - struct obd_uuid doomed_uuid; - int exports_evicted = 0; - - spin_lock(&obd->obd_dev_lock); - if (obd->obd_stopping) { - spin_unlock(&obd->obd_dev_lock); - return exports_evicted; - } - uuid_hash = obd->obd_uuid_hash; - cfs_hash_getref(uuid_hash); - spin_unlock(&obd->obd_dev_lock); - - obd_str2uuid(&doomed_uuid, uuid); - if (obd_uuid_equals(&doomed_uuid, &obd->obd_uuid)) { - CERROR("%s: can't evict myself\n", obd->obd_name); - cfs_hash_putref(uuid_hash); - return exports_evicted; - } - - doomed_exp = cfs_hash_lookup(uuid_hash, &doomed_uuid); - - if (!doomed_exp) { - CERROR("%s: can't disconnect %s: no exports found\n", - obd->obd_name, uuid); - } else { - CWARN("%s: evicting %s at administrative request\n", - obd->obd_name, doomed_exp->exp_client_uuid.uuid); - class_fail_export(doomed_exp); - class_export_put(doomed_exp); - exports_evicted++; - } - cfs_hash_putref(uuid_hash); - - return exports_evicted; -} -EXPORT_SYMBOL(obd_export_evict_by_uuid); - #if LUSTRE_TRACKS_LOCK_EXP_REFS void (*class_export_dump_hook)(struct obd_export *) = NULL; EXPORT_SYMBOL(class_export_dump_hook); From 8c85bd76d3faad3ed6a3abefb636bc88287765d5 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:40 -0400 Subject: [PATCH 0936/2431] staging/lustre/llog: remove unused server code Most of the code in llog.c and llog_cat.c is completely unused on the client and can be removed, as a preparation for removing the dt_object code. Two tricky parts are: - In llog_cat_close(), we rely on the fact that llh_flags never contains LLOG_F_ZAP_WHEN_EMPTY, because nobody ever sets that flag. - In llog_read_header(), we check the return value of the lpi_cb callback, and again we know that it cannot be LLOG_PROC_BREAK or LLOG_DEL_RECORD and can remove the respective code path. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_log.h | 74 +-- drivers/staging/lustre/lustre/obdclass/llog.c | 544 ----------------- .../staging/lustre/lustre/obdclass/llog_cat.c | 574 ------------------ .../lustre/lustre/obdclass/llog_internal.h | 10 - .../staging/lustre/lustre/obdclass/llog_obd.c | 30 - .../lustre/lustre/ptlrpc/llog_client.c | 36 -- 6 files changed, 2 insertions(+), 1266 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_log.h b/drivers/staging/lustre/lustre/include/lustre_log.h index 2187fb615e9a..958d012a4388 100644 --- a/drivers/staging/lustre/lustre/include/lustre_log.h +++ b/drivers/staging/lustre/lustre/include/lustre_log.h @@ -58,7 +58,6 @@ #include "obd_class.h" #include "lustre/lustre_idl.h" -#include "dt_object.h" #define LOG_NAME_LIMIT(logname, name) \ snprintf(logname, sizeof(logname), "LOGS/%s", name) @@ -117,24 +116,15 @@ struct llog_handle; /* llog.c - general API */ int llog_init_handle(const struct lu_env *env, struct llog_handle *handle, int flags, struct obd_uuid *uuid); -int llog_copy_handler(const struct lu_env *env, struct llog_handle *llh, - struct llog_rec_hdr *rec, void *data); int llog_process(const struct lu_env *env, struct llog_handle *loghandle, llog_cb_t cb, void *data, void *catdata); int llog_process_or_fork(const struct lu_env *env, struct llog_handle *loghandle, llog_cb_t cb, void *data, void *catdata, bool fork); -int llog_reverse_process(const struct lu_env *env, - struct llog_handle *loghandle, llog_cb_t cb, - void *data, void *catdata); -int llog_cancel_rec(const struct lu_env *env, struct llog_handle *loghandle, - int index); int llog_open(const struct lu_env *env, struct llog_ctxt *ctxt, struct llog_handle **lgh, struct llog_logid *logid, char *name, enum llog_open_param open_param); int llog_close(const struct lu_env *env, struct llog_handle *cathandle); -int llog_is_empty(const struct lu_env *env, struct llog_ctxt *ctxt, - char *name); int llog_backup(const struct lu_env *env, struct obd_device *obd, struct llog_ctxt *ctxt, struct llog_ctxt *bak_ctxt, char *name, char *backup); @@ -172,29 +162,14 @@ struct llog_process_cat_data { int lpcd_last_idx; }; +struct thandle; + int llog_cat_close(const struct lu_env *env, struct llog_handle *cathandle); -int llog_cat_add_rec(const struct lu_env *env, struct llog_handle *cathandle, - struct llog_rec_hdr *rec, struct llog_cookie *reccookie, - void *buf, struct thandle *th); -int llog_cat_declare_add_rec(const struct lu_env *env, - struct llog_handle *cathandle, - struct llog_rec_hdr *rec, struct thandle *th); -int llog_cat_add(const struct lu_env *env, struct llog_handle *cathandle, - struct llog_rec_hdr *rec, struct llog_cookie *reccookie, - void *buf); -int llog_cat_cancel_records(const struct lu_env *env, - struct llog_handle *cathandle, int count, - struct llog_cookie *cookies); int llog_cat_process_or_fork(const struct lu_env *env, struct llog_handle *cat_llh, llog_cb_t cb, void *data, int startcat, int startidx, bool fork); int llog_cat_process(const struct lu_env *env, struct llog_handle *cat_llh, llog_cb_t cb, void *data, int startcat, int startidx); -int llog_cat_reverse_process(const struct lu_env *env, - struct llog_handle *cat_llh, llog_cb_t cb, - void *data); -int llog_cat_init_and_process(const struct lu_env *env, - struct llog_handle *llh); /* llog_obd.c */ int llog_setup(const struct lu_env *env, struct obd_device *obd, @@ -202,16 +177,11 @@ int llog_setup(const struct lu_env *env, struct obd_device *obd, struct obd_device *disk_obd, struct llog_operations *op); int __llog_ctxt_put(const struct lu_env *env, struct llog_ctxt *ctxt); int llog_cleanup(const struct lu_env *env, struct llog_ctxt *); -int llog_sync(struct llog_ctxt *ctxt, struct obd_export *exp, int flags); -int llog_cancel(const struct lu_env *env, struct llog_ctxt *ctxt, - struct llog_cookie *cookies, int flags); /* llog_net.c */ int llog_initiator_connect(struct llog_ctxt *ctxt); struct llog_operations { - int (*lop_destroy)(const struct lu_env *env, - struct llog_handle *handle); int (*lop_next_block)(const struct lu_env *env, struct llog_handle *h, int *curr_idx, int next_idx, __u64 *offset, void *buf, int len); @@ -254,8 +224,6 @@ struct llog_operations { int (*lop_declare_create)(const struct lu_env *env, struct llog_handle *handle, struct thandle *th); - int (*lop_create)(const struct lu_env *env, struct llog_handle *handle, - struct thandle *th); /** * write new record in llog. It appends records usually but can edit * existing records too. @@ -287,8 +255,6 @@ struct llog_handle { spinlock_t lgh_hdr_lock; /* protect lgh_hdr data */ struct llog_logid lgh_id; /* id of this log */ struct llog_log_hdr *lgh_hdr; - struct file *lgh_file; - struct dt_object *lgh_obj; int lgh_last_idx; int lgh_cur_idx; /* used during llog_process */ __u64 lgh_cur_offset; /* used during llog_process */ @@ -318,7 +284,6 @@ struct llog_ctxt { struct mutex loc_mutex; /* protect loc_imp */ atomic_t loc_refcount; long loc_flags; /* flags, see above defines */ - struct dt_object *loc_dir; }; #define LLOG_PROC_BREAK 0x0001 @@ -440,22 +405,6 @@ static inline int llog_ctxt_null(struct obd_device *obd, int index) return llog_group_ctxt_null(&obd->obd_olg, index); } -static inline int llog_destroy(const struct lu_env *env, - struct llog_handle *handle) -{ - struct llog_operations *lop; - int rc; - - rc = llog_handle2ops(handle, &lop); - if (rc) - return rc; - if (lop->lop_destroy == NULL) - return -EOPNOTSUPP; - - rc = lop->lop_destroy(env, handle); - return rc; -} - static inline int llog_next_block(const struct lu_env *env, struct llog_handle *loghandle, int *cur_idx, int next_idx, __u64 *cur_offset, void *buf, @@ -510,11 +459,6 @@ static inline int llog_connect(struct llog_ctxt *ctxt, } /* llog.c */ -int llog_exist(struct llog_handle *loghandle); -int llog_declare_create(const struct lu_env *env, - struct llog_handle *loghandle, struct thandle *th); -int llog_create(const struct lu_env *env, struct llog_handle *handle, - struct thandle *th); int llog_declare_write_rec(const struct lu_env *env, struct llog_handle *handle, struct llog_rec_hdr *rec, int idx, @@ -522,24 +466,10 @@ int llog_declare_write_rec(const struct lu_env *env, int llog_write_rec(const struct lu_env *env, struct llog_handle *handle, struct llog_rec_hdr *rec, struct llog_cookie *logcookies, int numcookies, void *buf, int idx, struct thandle *th); -int llog_add(const struct lu_env *env, struct llog_handle *lgh, - struct llog_rec_hdr *rec, struct llog_cookie *logcookies, - void *buf, struct thandle *th); -int llog_declare_add(const struct lu_env *env, struct llog_handle *lgh, - struct llog_rec_hdr *rec, struct thandle *th); int lustre_process_log(struct super_block *sb, char *logname, struct config_llog_instance *cfg); int lustre_end_log(struct super_block *sb, char *logname, struct config_llog_instance *cfg); -int llog_open_create(const struct lu_env *env, struct llog_ctxt *ctxt, - struct llog_handle **res, struct llog_logid *logid, - char *name); -int llog_erase(const struct lu_env *env, struct llog_ctxt *ctxt, - struct llog_logid *logid, char *name); -int llog_write(const struct lu_env *env, struct llog_handle *loghandle, - struct llog_rec_hdr *rec, struct llog_cookie *reccookie, - int cookiecount, void *buf, int idx); - /** @} log */ #endif diff --git a/drivers/staging/lustre/lustre/obdclass/llog.c b/drivers/staging/lustre/lustre/obdclass/llog.c index 8cad47080456..a941518e463d 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog.c +++ b/drivers/staging/lustre/lustre/obdclass/llog.c @@ -105,66 +105,6 @@ void llog_handle_put(struct llog_handle *loghandle) llog_free_handle(loghandle); } -/* returns negative on error; 0 if success; 1 if success & log destroyed */ -int llog_cancel_rec(const struct lu_env *env, struct llog_handle *loghandle, - int index) -{ - struct llog_log_hdr *llh = loghandle->lgh_hdr; - int rc = 0; - - CDEBUG(D_RPCTRACE, "Canceling %d in log "DOSTID"\n", - index, POSTID(&loghandle->lgh_id.lgl_oi)); - - if (index == 0) { - CERROR("Can't cancel index 0 which is header\n"); - return -EINVAL; - } - - spin_lock(&loghandle->lgh_hdr_lock); - if (!ext2_clear_bit(index, llh->llh_bitmap)) { - spin_unlock(&loghandle->lgh_hdr_lock); - CDEBUG(D_RPCTRACE, "Catalog index %u already clear?\n", index); - return -ENOENT; - } - - llh->llh_count--; - - if ((llh->llh_flags & LLOG_F_ZAP_WHEN_EMPTY) && - (llh->llh_count == 1) && - (loghandle->lgh_last_idx == (LLOG_BITMAP_BYTES * 8) - 1)) { - spin_unlock(&loghandle->lgh_hdr_lock); - rc = llog_destroy(env, loghandle); - if (rc < 0) { - CERROR("%s: can't destroy empty llog #"DOSTID - "#%08x: rc = %d\n", - loghandle->lgh_ctxt->loc_obd->obd_name, - POSTID(&loghandle->lgh_id.lgl_oi), - loghandle->lgh_id.lgl_ogen, rc); - goto out_err; - } - return 1; - } - spin_unlock(&loghandle->lgh_hdr_lock); - - rc = llog_write(env, loghandle, &llh->llh_hdr, NULL, 0, NULL, 0); - if (rc < 0) { - CERROR("%s: fail to write header for llog #"DOSTID - "#%08x: rc = %d\n", - loghandle->lgh_ctxt->loc_obd->obd_name, - POSTID(&loghandle->lgh_id.lgl_oi), - loghandle->lgh_id.lgl_ogen, rc); - goto out_err; - } - return 0; -out_err: - spin_lock(&loghandle->lgh_hdr_lock); - ext2_set_bit(index, llh->llh_bitmap); - llh->llh_count++; - spin_unlock(&loghandle->lgh_hdr_lock); - return rc; -} -EXPORT_SYMBOL(llog_cancel_rec); - static int llog_read_header(const struct lu_env *env, struct llog_handle *handle, struct obd_uuid *uuid) @@ -373,14 +313,6 @@ repeat: rc = lpi->lpi_cb(lpi->lpi_env, loghandle, rec, lpi->lpi_cbdata); last_called_index = index; - if (rc == LLOG_PROC_BREAK) { - goto out; - } else if (rc == LLOG_DEL_RECORD) { - llog_cancel_rec(lpi->lpi_env, - loghandle, - rec->lrh_index); - rc = 0; - } if (rc) goto out; } else { @@ -475,380 +407,6 @@ int llog_process(const struct lu_env *env, struct llog_handle *loghandle, } EXPORT_SYMBOL(llog_process); -int llog_reverse_process(const struct lu_env *env, - struct llog_handle *loghandle, llog_cb_t cb, - void *data, void *catdata) -{ - struct llog_log_hdr *llh = loghandle->lgh_hdr; - struct llog_process_cat_data *cd = catdata; - void *buf; - int rc = 0, first_index = 1, index, idx; - - buf = kzalloc(LLOG_CHUNK_SIZE, GFP_NOFS); - if (!buf) - return -ENOMEM; - - if (cd != NULL) - first_index = cd->lpcd_first_idx + 1; - if (cd != NULL && cd->lpcd_last_idx) - index = cd->lpcd_last_idx; - else - index = LLOG_BITMAP_BYTES * 8 - 1; - - while (rc == 0) { - struct llog_rec_hdr *rec; - struct llog_rec_tail *tail; - - /* skip records not set in bitmap */ - while (index >= first_index && - !ext2_test_bit(index, llh->llh_bitmap)) - --index; - - LASSERT(index >= first_index - 1); - if (index == first_index - 1) - break; - - /* get the buf with our target record; avoid old garbage */ - memset(buf, 0, LLOG_CHUNK_SIZE); - rc = llog_prev_block(env, loghandle, index, buf, - LLOG_CHUNK_SIZE); - if (rc) - goto out; - - rec = buf; - idx = rec->lrh_index; - CDEBUG(D_RPCTRACE, "index %u : idx %u\n", index, idx); - while (idx < index) { - rec = (void *)rec + rec->lrh_len; - if (LLOG_REC_HDR_NEEDS_SWABBING(rec)) - lustre_swab_llog_rec(rec); - idx++; - } - LASSERT(idx == index); - tail = (void *)rec + rec->lrh_len - sizeof(*tail); - - /* process records in buffer, starting where we found one */ - while ((void *)tail > buf) { - if (tail->lrt_index == 0) { - /* no more records */ - rc = 0; - goto out; - } - - /* if set, process the callback on this record */ - if (ext2_test_bit(index, llh->llh_bitmap)) { - rec = (void *)tail - tail->lrt_len + - sizeof(*tail); - - rc = cb(env, loghandle, rec, data); - if (rc == LLOG_PROC_BREAK) { - goto out; - } else if (rc == LLOG_DEL_RECORD) { - llog_cancel_rec(env, loghandle, - tail->lrt_index); - rc = 0; - } - if (rc) - goto out; - } - - /* previous record, still in buffer? */ - --index; - if (index < first_index) { - rc = 0; - goto out; - } - tail = (void *)tail - tail->lrt_len; - } - } - -out: - kfree(buf); - return rc; -} -EXPORT_SYMBOL(llog_reverse_process); - -/** - * new llog API - * - * API functions: - * llog_open - open llog, may not exist - * llog_exist - check if llog exists - * llog_close - close opened llog, pair for open, frees llog_handle - * llog_declare_create - declare llog creation - * llog_create - create new llog on disk, need transaction handle - * llog_declare_write_rec - declaration of llog write - * llog_write_rec - write llog record on disk, need transaction handle - * llog_declare_add - declare llog catalog record addition - * llog_add - add llog record in catalog, need transaction handle - */ -int llog_exist(struct llog_handle *loghandle) -{ - struct llog_operations *lop; - int rc; - - rc = llog_handle2ops(loghandle, &lop); - if (rc) - return rc; - if (lop->lop_exist == NULL) - return -EOPNOTSUPP; - - rc = lop->lop_exist(loghandle); - return rc; -} -EXPORT_SYMBOL(llog_exist); - -int llog_declare_create(const struct lu_env *env, - struct llog_handle *loghandle, struct thandle *th) -{ - struct llog_operations *lop; - int raised, rc; - - rc = llog_handle2ops(loghandle, &lop); - if (rc) - return rc; - if (lop->lop_declare_create == NULL) - return -EOPNOTSUPP; - - raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); - if (!raised) - cfs_cap_raise(CFS_CAP_SYS_RESOURCE); - rc = lop->lop_declare_create(env, loghandle, th); - if (!raised) - cfs_cap_lower(CFS_CAP_SYS_RESOURCE); - return rc; -} -EXPORT_SYMBOL(llog_declare_create); - -int llog_create(const struct lu_env *env, struct llog_handle *handle, - struct thandle *th) -{ - struct llog_operations *lop; - int raised, rc; - - rc = llog_handle2ops(handle, &lop); - if (rc) - return rc; - if (lop->lop_create == NULL) - return -EOPNOTSUPP; - - raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); - if (!raised) - cfs_cap_raise(CFS_CAP_SYS_RESOURCE); - rc = lop->lop_create(env, handle, th); - if (!raised) - cfs_cap_lower(CFS_CAP_SYS_RESOURCE); - return rc; -} -EXPORT_SYMBOL(llog_create); - -int llog_declare_write_rec(const struct lu_env *env, - struct llog_handle *handle, - struct llog_rec_hdr *rec, int idx, - struct thandle *th) -{ - struct llog_operations *lop; - int raised, rc; - - rc = llog_handle2ops(handle, &lop); - if (rc) - return rc; - LASSERT(lop); - if (lop->lop_declare_write_rec == NULL) - return -EOPNOTSUPP; - - raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); - if (!raised) - cfs_cap_raise(CFS_CAP_SYS_RESOURCE); - rc = lop->lop_declare_write_rec(env, handle, rec, idx, th); - if (!raised) - cfs_cap_lower(CFS_CAP_SYS_RESOURCE); - return rc; -} -EXPORT_SYMBOL(llog_declare_write_rec); - -int llog_write_rec(const struct lu_env *env, struct llog_handle *handle, - struct llog_rec_hdr *rec, struct llog_cookie *logcookies, - int numcookies, void *buf, int idx, struct thandle *th) -{ - struct llog_operations *lop; - int raised, rc, buflen; - - rc = llog_handle2ops(handle, &lop); - if (rc) - return rc; - - LASSERT(lop); - if (lop->lop_write_rec == NULL) - return -EOPNOTSUPP; - - if (buf) - buflen = rec->lrh_len + sizeof(struct llog_rec_hdr) + - sizeof(struct llog_rec_tail); - else - buflen = rec->lrh_len; - LASSERT(cfs_size_round(buflen) == buflen); - - raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); - if (!raised) - cfs_cap_raise(CFS_CAP_SYS_RESOURCE); - rc = lop->lop_write_rec(env, handle, rec, logcookies, numcookies, - buf, idx, th); - if (!raised) - cfs_cap_lower(CFS_CAP_SYS_RESOURCE); - return rc; -} -EXPORT_SYMBOL(llog_write_rec); - -int llog_add(const struct lu_env *env, struct llog_handle *lgh, - struct llog_rec_hdr *rec, struct llog_cookie *logcookies, - void *buf, struct thandle *th) -{ - int raised, rc; - - if (lgh->lgh_logops->lop_add == NULL) - return -EOPNOTSUPP; - - raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); - if (!raised) - cfs_cap_raise(CFS_CAP_SYS_RESOURCE); - rc = lgh->lgh_logops->lop_add(env, lgh, rec, logcookies, buf, th); - if (!raised) - cfs_cap_lower(CFS_CAP_SYS_RESOURCE); - return rc; -} -EXPORT_SYMBOL(llog_add); - -int llog_declare_add(const struct lu_env *env, struct llog_handle *lgh, - struct llog_rec_hdr *rec, struct thandle *th) -{ - int raised, rc; - - if (lgh->lgh_logops->lop_declare_add == NULL) - return -EOPNOTSUPP; - - raised = cfs_cap_raised(CFS_CAP_SYS_RESOURCE); - if (!raised) - cfs_cap_raise(CFS_CAP_SYS_RESOURCE); - rc = lgh->lgh_logops->lop_declare_add(env, lgh, rec, th); - if (!raised) - cfs_cap_lower(CFS_CAP_SYS_RESOURCE); - return rc; -} -EXPORT_SYMBOL(llog_declare_add); - -/** - * Helper function to open llog or create it if doesn't exist. - * It hides all transaction handling from caller. - */ -int llog_open_create(const struct lu_env *env, struct llog_ctxt *ctxt, - struct llog_handle **res, struct llog_logid *logid, - char *name) -{ - struct dt_device *d; - struct thandle *th; - int rc; - - rc = llog_open(env, ctxt, res, logid, name, LLOG_OPEN_NEW); - if (rc) - return rc; - - if (llog_exist(*res)) - return 0; - - LASSERT((*res)->lgh_obj != NULL); - - d = lu2dt_dev((*res)->lgh_obj->do_lu.lo_dev); - - th = dt_trans_create(env, d); - if (IS_ERR(th)) { - rc = PTR_ERR(th); - goto out; - } - - rc = llog_declare_create(env, *res, th); - if (rc == 0) { - rc = dt_trans_start_local(env, d, th); - if (rc == 0) - rc = llog_create(env, *res, th); - } - dt_trans_stop(env, d, th); -out: - if (rc) - llog_close(env, *res); - return rc; -} -EXPORT_SYMBOL(llog_open_create); - -/** - * Helper function to delete existent llog. - */ -int llog_erase(const struct lu_env *env, struct llog_ctxt *ctxt, - struct llog_logid *logid, char *name) -{ - struct llog_handle *handle; - int rc = 0, rc2; - - /* nothing to erase */ - if (name == NULL && logid == NULL) - return 0; - - rc = llog_open(env, ctxt, &handle, logid, name, LLOG_OPEN_EXISTS); - if (rc < 0) - return rc; - - rc = llog_init_handle(env, handle, LLOG_F_IS_PLAIN, NULL); - if (rc == 0) - rc = llog_destroy(env, handle); - - rc2 = llog_close(env, handle); - if (rc == 0) - rc = rc2; - return rc; -} -EXPORT_SYMBOL(llog_erase); - -/* - * Helper function for write record in llog. - * It hides all transaction handling from caller. - * Valid only with local llog. - */ -int llog_write(const struct lu_env *env, struct llog_handle *loghandle, - struct llog_rec_hdr *rec, struct llog_cookie *reccookie, - int cookiecount, void *buf, int idx) -{ - struct dt_device *dt; - struct thandle *th; - int rc; - - LASSERT(loghandle); - LASSERT(loghandle->lgh_ctxt); - LASSERT(loghandle->lgh_obj != NULL); - - dt = lu2dt_dev(loghandle->lgh_obj->do_lu.lo_dev); - - th = dt_trans_create(env, dt); - if (IS_ERR(th)) - return PTR_ERR(th); - - rc = llog_declare_write_rec(env, loghandle, rec, idx, th); - if (rc) - goto out_trans; - - rc = dt_trans_start_local(env, dt, th); - if (rc) - goto out_trans; - - down_write(&loghandle->lgh_lock); - rc = llog_write_rec(env, loghandle, rec, reccookie, - cookiecount, buf, idx, th); - up_write(&loghandle->lgh_lock); -out_trans: - dt_trans_stop(env, dt, th); - return rc; -} -EXPORT_SYMBOL(llog_write); - int llog_open(const struct lu_env *env, struct llog_ctxt *ctxt, struct llog_handle **lgh, struct llog_logid *logid, char *name, enum llog_open_param open_param) @@ -902,105 +460,3 @@ out: return rc; } EXPORT_SYMBOL(llog_close); - -int llog_is_empty(const struct lu_env *env, struct llog_ctxt *ctxt, - char *name) -{ - struct llog_handle *llh; - int rc; - - rc = llog_open(env, ctxt, &llh, NULL, name, LLOG_OPEN_EXISTS); - if (rc < 0) { - if (likely(rc == -ENOENT)) - rc = 0; - goto out; - } - - rc = llog_init_handle(env, llh, LLOG_F_IS_PLAIN, NULL); - if (rc) - goto out_close; - rc = llog_get_size(llh); - -out_close: - llog_close(env, llh); -out: - /* header is record 1 */ - return rc <= 1; -} -EXPORT_SYMBOL(llog_is_empty); - -int llog_copy_handler(const struct lu_env *env, struct llog_handle *llh, - struct llog_rec_hdr *rec, void *data) -{ - struct llog_handle *copy_llh = data; - - /* Append all records */ - return llog_write(env, copy_llh, rec, NULL, 0, NULL, -1); -} -EXPORT_SYMBOL(llog_copy_handler); - -/* backup plain llog */ -int llog_backup(const struct lu_env *env, struct obd_device *obd, - struct llog_ctxt *ctxt, struct llog_ctxt *bctxt, - char *name, char *backup) -{ - struct llog_handle *llh, *bllh; - int rc; - - - - /* open original log */ - rc = llog_open(env, ctxt, &llh, NULL, name, LLOG_OPEN_EXISTS); - if (rc < 0) { - /* the -ENOENT case is also reported to the caller - * but silently so it should handle that if needed. - */ - if (rc != -ENOENT) - CERROR("%s: failed to open log %s: rc = %d\n", - obd->obd_name, name, rc); - return rc; - } - - rc = llog_init_handle(env, llh, LLOG_F_IS_PLAIN, NULL); - if (rc) - goto out_close; - - /* Make sure there's no old backup log */ - rc = llog_erase(env, bctxt, NULL, backup); - if (rc < 0 && rc != -ENOENT) - goto out_close; - - /* open backup log */ - rc = llog_open_create(env, bctxt, &bllh, NULL, backup); - if (rc) { - CERROR("%s: failed to open backup logfile %s: rc = %d\n", - obd->obd_name, backup, rc); - goto out_close; - } - - /* check that backup llog is not the same object as original one */ - if (llh->lgh_obj == bllh->lgh_obj) { - CERROR("%s: backup llog %s to itself (%s), objects %p/%p\n", - obd->obd_name, name, backup, llh->lgh_obj, - bllh->lgh_obj); - rc = -EEXIST; - goto out_backup; - } - - rc = llog_init_handle(env, bllh, LLOG_F_IS_PLAIN, NULL); - if (rc) - goto out_backup; - - /* Copy log record by record */ - rc = llog_process_or_fork(env, llh, llog_copy_handler, (void *)bllh, - NULL, false); - if (rc) - CERROR("%s: failed to backup log %s: rc = %d\n", - obd->obd_name, name, rc); -out_backup: - llog_close(env, bllh); -out_close: - llog_close(env, llh); - return rc; -} -EXPORT_SYMBOL(llog_backup); diff --git a/drivers/staging/lustre/lustre/obdclass/llog_cat.c b/drivers/staging/lustre/lustre/obdclass/llog_cat.c index 48dbbcf97702..3984445f8442 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_cat.c +++ b/drivers/staging/lustre/lustre/obdclass/llog_cat.c @@ -53,93 +53,6 @@ #include "llog_internal.h" -/* Create a new log handle and add it to the open list. - * This log handle will be closed when all of the records in it are removed. - * - * Assumes caller has already pushed us into the kernel context and is locking. - */ -static int llog_cat_new_log(const struct lu_env *env, - struct llog_handle *cathandle, - struct llog_handle *loghandle, - struct thandle *th) -{ - - struct llog_log_hdr *llh; - struct llog_logid_rec rec = { { 0 }, }; - int rc, index, bitmap_size; - - llh = cathandle->lgh_hdr; - bitmap_size = LLOG_BITMAP_SIZE(llh); - - index = (cathandle->lgh_last_idx + 1) % bitmap_size; - - /* maximum number of available slots in catlog is bitmap_size - 2 */ - if (llh->llh_cat_idx == index) { - CERROR("no free catalog slots for log...\n"); - return -ENOSPC; - } - - if (OBD_FAIL_CHECK(OBD_FAIL_MDS_LLOG_CREATE_FAILED)) - return -ENOSPC; - - rc = llog_create(env, loghandle, th); - /* if llog is already created, no need to initialize it */ - if (rc == -EEXIST) { - return 0; - } else if (rc != 0) { - CERROR("%s: can't create new plain llog in catalog: rc = %d\n", - loghandle->lgh_ctxt->loc_obd->obd_name, rc); - return rc; - } - - rc = llog_init_handle(env, loghandle, - LLOG_F_IS_PLAIN | LLOG_F_ZAP_WHEN_EMPTY, - &cathandle->lgh_hdr->llh_tgtuuid); - if (rc) - goto out_destroy; - - if (index == 0) - index = 1; - - spin_lock(&loghandle->lgh_hdr_lock); - llh->llh_count++; - if (ext2_set_bit(index, llh->llh_bitmap)) { - CERROR("argh, index %u already set in log bitmap?\n", - index); - spin_unlock(&loghandle->lgh_hdr_lock); - LBUG(); /* should never happen */ - } - spin_unlock(&loghandle->lgh_hdr_lock); - - cathandle->lgh_last_idx = index; - llh->llh_tail.lrt_index = index; - - CDEBUG(D_RPCTRACE, - "new recovery log "DOSTID":%x for index %u of catalog" - DOSTID"\n", POSTID(&loghandle->lgh_id.lgl_oi), - loghandle->lgh_id.lgl_ogen, index, - POSTID(&cathandle->lgh_id.lgl_oi)); - /* build the record for this log in the catalog */ - rec.lid_hdr.lrh_len = sizeof(rec); - rec.lid_hdr.lrh_index = index; - rec.lid_hdr.lrh_type = LLOG_LOGID_MAGIC; - rec.lid_id = loghandle->lgh_id; - rec.lid_tail.lrt_len = sizeof(rec); - rec.lid_tail.lrt_index = index; - - /* update the catalog: header and record */ - rc = llog_write_rec(env, cathandle, &rec.lid_hdr, - &loghandle->u.phd.phd_cookie, 1, NULL, index, th); - if (rc < 0) - goto out_destroy; - - loghandle->lgh_hdr->llh_cat_idx = index; - return 0; -out_destroy: - llog_destroy(env, loghandle); - return rc; -} - /* Open an existent log handle and add it to the open list. * This log handle will be closed when all of the records in it are removed. * @@ -217,24 +130,8 @@ int llog_cat_close(const struct lu_env *env, struct llog_handle *cathandle) list_for_each_entry_safe(loghandle, n, &cathandle->u.chd.chd_head, u.phd.phd_entry) { - struct llog_log_hdr *llh = loghandle->lgh_hdr; - int index; - /* unlink open-not-created llogs */ list_del_init(&loghandle->u.phd.phd_entry); - llh = loghandle->lgh_hdr; - if (loghandle->lgh_obj != NULL && llh != NULL && - (llh->llh_flags & LLOG_F_ZAP_WHEN_EMPTY) && - (llh->llh_count == 1)) { - rc = llog_destroy(env, loghandle); - if (rc) - CERROR("%s: failure destroying log during cleanup: rc = %d\n", - loghandle->lgh_ctxt->loc_obd->obd_name, - rc); - - index = loghandle->u.phd.phd_cookie.lgc_index; - llog_cat_cleanup(env, cathandle, NULL, index); - } llog_close(env, loghandle); } /* if handle was stored in ctxt, remove it too */ @@ -245,285 +142,6 @@ int llog_cat_close(const struct lu_env *env, struct llog_handle *cathandle) } EXPORT_SYMBOL(llog_cat_close); -/** - * lockdep markers for nested struct llog_handle::lgh_lock locking. - */ -enum { - LLOGH_CAT, - LLOGH_LOG -}; - -/** Return the currently active log handle. If the current log handle doesn't - * have enough space left for the current record, start a new one. - * - * If reclen is 0, we only want to know what the currently active log is, - * otherwise we get a lock on this log so nobody can steal our space. - * - * Assumes caller has already pushed us into the kernel context and is locking. - * - * NOTE: loghandle is write-locked upon successful return - */ -static struct llog_handle *llog_cat_current_log(struct llog_handle *cathandle, - struct thandle *th) -{ - struct llog_handle *loghandle = NULL; - - down_read_nested(&cathandle->lgh_lock, LLOGH_CAT); - loghandle = cathandle->u.chd.chd_current_log; - if (loghandle) { - struct llog_log_hdr *llh; - - down_write_nested(&loghandle->lgh_lock, LLOGH_LOG); - llh = loghandle->lgh_hdr; - if (llh == NULL || - loghandle->lgh_last_idx < LLOG_BITMAP_SIZE(llh) - 1) { - up_read(&cathandle->lgh_lock); - return loghandle; - } - up_write(&loghandle->lgh_lock); - } - up_read(&cathandle->lgh_lock); - - /* time to use next log */ - - /* first, we have to make sure the state hasn't changed */ - down_write_nested(&cathandle->lgh_lock, LLOGH_CAT); - loghandle = cathandle->u.chd.chd_current_log; - if (loghandle) { - struct llog_log_hdr *llh; - - down_write_nested(&loghandle->lgh_lock, LLOGH_LOG); - llh = loghandle->lgh_hdr; - LASSERT(llh); - if (loghandle->lgh_last_idx < LLOG_BITMAP_SIZE(llh) - 1) { - up_write(&cathandle->lgh_lock); - return loghandle; - } - up_write(&loghandle->lgh_lock); - } - - CDEBUG(D_INODE, "use next log\n"); - - loghandle = cathandle->u.chd.chd_next_log; - cathandle->u.chd.chd_current_log = loghandle; - cathandle->u.chd.chd_next_log = NULL; - down_write_nested(&loghandle->lgh_lock, LLOGH_LOG); - up_write(&cathandle->lgh_lock); - LASSERT(loghandle); - return loghandle; -} - -/* Add a single record to the recovery log(s) using a catalog - * Returns as llog_write_record - * - * Assumes caller has already pushed us into the kernel context. - */ -int llog_cat_add_rec(const struct lu_env *env, struct llog_handle *cathandle, - struct llog_rec_hdr *rec, struct llog_cookie *reccookie, - void *buf, struct thandle *th) -{ - struct llog_handle *loghandle; - int rc; - - LASSERT(rec->lrh_len <= LLOG_CHUNK_SIZE); - loghandle = llog_cat_current_log(cathandle, th); - LASSERT(!IS_ERR(loghandle)); - - /* loghandle is already locked by llog_cat_current_log() for us */ - if (!llog_exist(loghandle)) { - rc = llog_cat_new_log(env, cathandle, loghandle, th); - if (rc < 0) { - up_write(&loghandle->lgh_lock); - return rc; - } - } - /* now let's try to add the record */ - rc = llog_write_rec(env, loghandle, rec, reccookie, 1, buf, -1, th); - if (rc < 0) - CDEBUG_LIMIT(rc == -ENOSPC ? D_HA : D_ERROR, - "llog_write_rec %d: lh=%p\n", rc, loghandle); - up_write(&loghandle->lgh_lock); - if (rc == -ENOSPC) { - /* try to use next log */ - loghandle = llog_cat_current_log(cathandle, th); - LASSERT(!IS_ERR(loghandle)); - /* new llog can be created concurrently */ - if (!llog_exist(loghandle)) { - rc = llog_cat_new_log(env, cathandle, loghandle, th); - if (rc < 0) { - up_write(&loghandle->lgh_lock); - return rc; - } - } - /* now let's try to add the record */ - rc = llog_write_rec(env, loghandle, rec, reccookie, 1, buf, - -1, th); - if (rc < 0) - CERROR("llog_write_rec %d: lh=%p\n", rc, loghandle); - up_write(&loghandle->lgh_lock); - } - - return rc; -} -EXPORT_SYMBOL(llog_cat_add_rec); - -int llog_cat_declare_add_rec(const struct lu_env *env, - struct llog_handle *cathandle, - struct llog_rec_hdr *rec, struct thandle *th) -{ - struct llog_handle *loghandle, *next; - int rc = 0; - - if (cathandle->u.chd.chd_current_log == NULL) { - /* declare new plain llog */ - down_write(&cathandle->lgh_lock); - if (cathandle->u.chd.chd_current_log == NULL) { - rc = llog_open(env, cathandle->lgh_ctxt, &loghandle, - NULL, NULL, LLOG_OPEN_NEW); - if (rc == 0) { - cathandle->u.chd.chd_current_log = loghandle; - list_add_tail(&loghandle->u.phd.phd_entry, - &cathandle->u.chd.chd_head); - } - } - up_write(&cathandle->lgh_lock); - } else if (cathandle->u.chd.chd_next_log == NULL) { - /* declare next plain llog */ - down_write(&cathandle->lgh_lock); - if (cathandle->u.chd.chd_next_log == NULL) { - rc = llog_open(env, cathandle->lgh_ctxt, &loghandle, - NULL, NULL, LLOG_OPEN_NEW); - if (rc == 0) { - cathandle->u.chd.chd_next_log = loghandle; - list_add_tail(&loghandle->u.phd.phd_entry, - &cathandle->u.chd.chd_head); - } - } - up_write(&cathandle->lgh_lock); - } - if (rc) - goto out; - - if (!llog_exist(cathandle->u.chd.chd_current_log)) { - rc = llog_declare_create(env, cathandle->u.chd.chd_current_log, - th); - if (rc) - goto out; - llog_declare_write_rec(env, cathandle, NULL, -1, th); - } - /* declare records in the llogs */ - rc = llog_declare_write_rec(env, cathandle->u.chd.chd_current_log, - rec, -1, th); - if (rc) - goto out; - - next = cathandle->u.chd.chd_next_log; - if (next) { - if (!llog_exist(next)) { - rc = llog_declare_create(env, next, th); - llog_declare_write_rec(env, cathandle, NULL, -1, th); - } - llog_declare_write_rec(env, next, rec, -1, th); - } -out: - return rc; -} -EXPORT_SYMBOL(llog_cat_declare_add_rec); - -int llog_cat_add(const struct lu_env *env, struct llog_handle *cathandle, - struct llog_rec_hdr *rec, struct llog_cookie *reccookie, - void *buf) -{ - struct llog_ctxt *ctxt; - struct dt_device *dt; - struct thandle *th = NULL; - int rc; - - ctxt = cathandle->lgh_ctxt; - LASSERT(ctxt); - LASSERT(ctxt->loc_exp); - - if (cathandle->lgh_obj != NULL) { - dt = ctxt->loc_exp->exp_obd->obd_lvfs_ctxt.dt; - LASSERT(dt); - - th = dt_trans_create(env, dt); - if (IS_ERR(th)) - return PTR_ERR(th); - - rc = llog_cat_declare_add_rec(env, cathandle, rec, th); - if (rc) - goto out_trans; - - rc = dt_trans_start_local(env, dt, th); - if (rc) - goto out_trans; - rc = llog_cat_add_rec(env, cathandle, rec, reccookie, buf, th); -out_trans: - dt_trans_stop(env, dt, th); - } else { /* lvfs compat code */ - LASSERT(cathandle->lgh_file != NULL); - rc = llog_cat_declare_add_rec(env, cathandle, rec, th); - if (rc == 0) - rc = llog_cat_add_rec(env, cathandle, rec, reccookie, - buf, th); - } - return rc; -} -EXPORT_SYMBOL(llog_cat_add); - -/* For each cookie in the cookie array, we clear the log in-use bit and either: - * - the log is empty, so mark it free in the catalog header and delete it - * - the log is not empty, just write out the log header - * - * The cookies may be in different log files, so we need to get new logs - * each time. - * - * Assumes caller has already pushed us into the kernel context. - */ -int llog_cat_cancel_records(const struct lu_env *env, - struct llog_handle *cathandle, int count, - struct llog_cookie *cookies) -{ - int i, index, rc = 0, failed = 0; - - for (i = 0; i < count; i++, cookies++) { - struct llog_handle *loghandle; - struct llog_logid *lgl = &cookies->lgc_lgl; - int lrc; - - rc = llog_cat_id2handle(env, cathandle, &loghandle, lgl); - if (rc) { - CERROR("%s: cannot find handle for llog "DOSTID": %d\n", - cathandle->lgh_ctxt->loc_obd->obd_name, - POSTID(&lgl->lgl_oi), rc); - failed++; - continue; - } - - lrc = llog_cancel_rec(env, loghandle, cookies->lgc_index); - if (lrc == 1) { /* log has been destroyed */ - index = loghandle->u.phd.phd_cookie.lgc_index; - rc = llog_cat_cleanup(env, cathandle, loghandle, - index); - } else if (lrc == -ENOENT) { - if (rc == 0) /* ENOENT shouldn't rewrite any error */ - rc = lrc; - } else if (lrc < 0) { - failed++; - rc = lrc; - } - llog_handle_put(loghandle); - } - if (rc) - CERROR("%s: fail to cancel %d of %d llog-records: rc = %d\n", - cathandle->lgh_ctxt->loc_obd->obd_name, failed, count, - rc); - - return rc; -} -EXPORT_SYMBOL(llog_cat_cancel_records); - static int llog_cat_process_cb(const struct lu_env *env, struct llog_handle *cat_llh, struct llog_rec_hdr *rec, void *data) @@ -619,195 +237,3 @@ int llog_cat_process(const struct lu_env *env, struct llog_handle *cat_llh, startidx, false); } EXPORT_SYMBOL(llog_cat_process); - -static int llog_cat_reverse_process_cb(const struct lu_env *env, - struct llog_handle *cat_llh, - struct llog_rec_hdr *rec, void *data) -{ - struct llog_process_data *d = data; - struct llog_logid_rec *lir = (struct llog_logid_rec *)rec; - struct llog_handle *llh; - int rc; - - if (le32_to_cpu(rec->lrh_type) != LLOG_LOGID_MAGIC) { - CERROR("invalid record in catalog\n"); - return -EINVAL; - } - CDEBUG(D_HA, "processing log "DOSTID":%x at index %u of catalog " - DOSTID"\n", POSTID(&lir->lid_id.lgl_oi), lir->lid_id.lgl_ogen, - le32_to_cpu(rec->lrh_index), POSTID(&cat_llh->lgh_id.lgl_oi)); - - rc = llog_cat_id2handle(env, cat_llh, &llh, &lir->lid_id); - if (rc) { - CERROR("%s: cannot find handle for llog "DOSTID": %d\n", - cat_llh->lgh_ctxt->loc_obd->obd_name, - POSTID(&lir->lid_id.lgl_oi), rc); - return rc; - } - - rc = llog_reverse_process(env, llh, d->lpd_cb, d->lpd_data, NULL); - llog_handle_put(llh); - return rc; -} - -int llog_cat_reverse_process(const struct lu_env *env, - struct llog_handle *cat_llh, - llog_cb_t cb, void *data) -{ - struct llog_process_data d; - struct llog_process_cat_data cd; - struct llog_log_hdr *llh = cat_llh->lgh_hdr; - int rc; - - LASSERT(llh->llh_flags & LLOG_F_IS_CAT); - d.lpd_data = data; - d.lpd_cb = cb; - - if (llh->llh_cat_idx > cat_llh->lgh_last_idx) { - CWARN("catalog "DOSTID" crosses index zero\n", - POSTID(&cat_llh->lgh_id.lgl_oi)); - - cd.lpcd_first_idx = 0; - cd.lpcd_last_idx = cat_llh->lgh_last_idx; - rc = llog_reverse_process(env, cat_llh, - llog_cat_reverse_process_cb, - &d, &cd); - if (rc != 0) - return rc; - - cd.lpcd_first_idx = le32_to_cpu(llh->llh_cat_idx); - cd.lpcd_last_idx = 0; - rc = llog_reverse_process(env, cat_llh, - llog_cat_reverse_process_cb, - &d, &cd); - } else { - rc = llog_reverse_process(env, cat_llh, - llog_cat_reverse_process_cb, - &d, NULL); - } - - return rc; -} -EXPORT_SYMBOL(llog_cat_reverse_process); - -static int llog_cat_set_first_idx(struct llog_handle *cathandle, int index) -{ - struct llog_log_hdr *llh = cathandle->lgh_hdr; - int i, bitmap_size, idx; - - bitmap_size = LLOG_BITMAP_SIZE(llh); - if (llh->llh_cat_idx == (index - 1)) { - idx = llh->llh_cat_idx + 1; - llh->llh_cat_idx = idx; - if (idx == cathandle->lgh_last_idx) - goto out; - for (i = (index + 1) % bitmap_size; - i != cathandle->lgh_last_idx; - i = (i + 1) % bitmap_size) { - if (!ext2_test_bit(i, llh->llh_bitmap)) { - idx = llh->llh_cat_idx + 1; - llh->llh_cat_idx = idx; - } else if (i == 0) { - llh->llh_cat_idx = 0; - } else { - break; - } - } -out: - CDEBUG(D_RPCTRACE, "set catlog "DOSTID" first idx %u\n", - POSTID(&cathandle->lgh_id.lgl_oi), llh->llh_cat_idx); - } - - return 0; -} - -/* Cleanup deleted plain llog traces from catalog */ -int llog_cat_cleanup(const struct lu_env *env, struct llog_handle *cathandle, - struct llog_handle *loghandle, int index) -{ - int rc; - - LASSERT(index); - if (loghandle != NULL) { - /* remove destroyed llog from catalog list and - * chd_current_log variable */ - down_write(&cathandle->lgh_lock); - if (cathandle->u.chd.chd_current_log == loghandle) - cathandle->u.chd.chd_current_log = NULL; - list_del_init(&loghandle->u.phd.phd_entry); - up_write(&cathandle->lgh_lock); - LASSERT(index == loghandle->u.phd.phd_cookie.lgc_index); - /* llog was opened and keep in a list, close it now */ - llog_close(env, loghandle); - } - /* remove plain llog entry from catalog by index */ - llog_cat_set_first_idx(cathandle, index); - rc = llog_cancel_rec(env, cathandle, index); - if (rc == 0) - CDEBUG(D_HA, "cancel plain log at index %u of catalog " DOSTID "\n", - index, POSTID(&cathandle->lgh_id.lgl_oi)); - return rc; -} - -static int cat_cancel_cb(const struct lu_env *env, struct llog_handle *cathandle, - struct llog_rec_hdr *rec, void *data) -{ - struct llog_logid_rec *lir = (struct llog_logid_rec *)rec; - struct llog_handle *loghandle; - struct llog_log_hdr *llh; - int rc; - - if (rec->lrh_type != LLOG_LOGID_MAGIC) { - CERROR("invalid record in catalog\n"); - return -EINVAL; - } - - CDEBUG(D_HA, "processing log "DOSTID":%x at index %u of catalog " - DOSTID"\n", POSTID(&lir->lid_id.lgl_oi), lir->lid_id.lgl_ogen, - rec->lrh_index, POSTID(&cathandle->lgh_id.lgl_oi)); - - rc = llog_cat_id2handle(env, cathandle, &loghandle, &lir->lid_id); - if (rc) { - CERROR("%s: cannot find handle for llog "DOSTID": %d\n", - cathandle->lgh_ctxt->loc_obd->obd_name, - POSTID(&lir->lid_id.lgl_oi), rc); - if (rc == -ENOENT || rc == -ESTALE) { - /* remove index from catalog */ - llog_cat_cleanup(env, cathandle, NULL, rec->lrh_index); - } - return rc; - } - - llh = loghandle->lgh_hdr; - if ((llh->llh_flags & LLOG_F_ZAP_WHEN_EMPTY) && - (llh->llh_count == 1)) { - rc = llog_destroy(env, loghandle); - if (rc) - CERROR("%s: fail to destroy empty log: rc = %d\n", - loghandle->lgh_ctxt->loc_obd->obd_name, rc); - - llog_cat_cleanup(env, cathandle, loghandle, - loghandle->u.phd.phd_cookie.lgc_index); - } - llog_handle_put(loghandle); - - return rc; -} - -/* helper to initialize catalog llog and process it to cancel */ -int llog_cat_init_and_process(const struct lu_env *env, - struct llog_handle *llh) -{ - int rc; - - rc = llog_init_handle(env, llh, LLOG_F_IS_CAT, NULL); - if (rc) - return rc; - - rc = llog_process_or_fork(env, llh, cat_cancel_cb, NULL, NULL, false); - if (rc) - CERROR("%s: llog_process() with cat_cancel_cb failed: rc = %d\n", - llh->lgh_ctxt->loc_obd->obd_name, rc); - return 0; -} -EXPORT_SYMBOL(llog_cat_init_and_process); diff --git a/drivers/staging/lustre/lustre/obdclass/llog_internal.h b/drivers/staging/lustre/lustre/obdclass/llog_internal.h index c99e658e5657..533998688fb4 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_internal.h +++ b/drivers/staging/lustre/lustre/obdclass/llog_internal.h @@ -53,7 +53,6 @@ struct llog_process_info { struct llog_thread_info { struct lu_attr lgi_attr; struct lu_fid lgi_fid; - struct dt_object_format lgi_dof; struct lu_buf lgi_buf; loff_t lgi_off; struct llog_rec_hdr lgi_lrh; @@ -62,15 +61,6 @@ struct llog_thread_info { extern struct lu_context_key llog_thread_key; -static inline struct llog_thread_info *llog_info(const struct lu_env *env) -{ - struct llog_thread_info *lgi; - - lgi = lu_context_key_get(&env->le_ctx, &llog_thread_key); - LASSERT(lgi); - return lgi; -} - int llog_info_init(void); void llog_info_fini(void); diff --git a/drivers/staging/lustre/lustre/obdclass/llog_obd.c b/drivers/staging/lustre/lustre/obdclass/llog_obd.c index 81ab27e7376f..2b4a70b6c8d4 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/llog_obd.c @@ -212,36 +212,6 @@ int llog_setup(const struct lu_env *env, struct obd_device *obd, } EXPORT_SYMBOL(llog_setup); -int llog_sync(struct llog_ctxt *ctxt, struct obd_export *exp, int flags) -{ - int rc = 0; - - if (!ctxt) - return 0; - - if (CTXTP(ctxt, sync)) - rc = CTXTP(ctxt, sync)(ctxt, exp, flags); - - return rc; -} -EXPORT_SYMBOL(llog_sync); - -int llog_cancel(const struct lu_env *env, struct llog_ctxt *ctxt, - struct llog_cookie *cookies, int flags) -{ - int rc; - - if (!ctxt) { - CERROR("No ctxt\n"); - return -ENODEV; - } - - CTXT_CHECK_OP(ctxt, cancel, -EOPNOTSUPP); - rc = CTXTP(ctxt, cancel)(env, ctxt, cookies, flags); - return rc; -} -EXPORT_SYMBOL(llog_cancel); - /* context key constructor/destructor: llog_key_init, llog_key_fini */ LU_KEY_INIT_FINI(llog, struct llog_thread_info); /* context key: llog_thread_key */ diff --git a/drivers/staging/lustre/lustre/ptlrpc/llog_client.c b/drivers/staging/lustre/lustre/ptlrpc/llog_client.c index 1c701e0a0bc7..fbb9ce8cc31a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/llog_client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/llog_client.c @@ -142,41 +142,6 @@ out: return rc; } -static int llog_client_destroy(const struct lu_env *env, - struct llog_handle *loghandle) -{ - struct obd_import *imp; - struct ptlrpc_request *req = NULL; - struct llogd_body *body; - int rc; - - LLOG_CLIENT_ENTRY(loghandle->lgh_ctxt, imp); - req = ptlrpc_request_alloc_pack(imp, &RQF_LLOG_ORIGIN_HANDLE_DESTROY, - LUSTRE_LOG_VERSION, - LLOG_ORIGIN_HANDLE_DESTROY); - if (req == NULL) { - rc = -ENOMEM; - goto err_exit; - } - - body = req_capsule_client_get(&req->rq_pill, &RMF_LLOGD_BODY); - body->lgd_logid = loghandle->lgh_id; - body->lgd_llh_flags = loghandle->lgh_hdr->llh_flags; - - if (!(body->lgd_llh_flags & LLOG_F_IS_PLAIN)) - CERROR("%s: wrong llog flags %x\n", imp->imp_obd->obd_name, - body->lgd_llh_flags); - - ptlrpc_request_set_replen(req); - rc = ptlrpc_queue_wait(req); - - ptlrpc_req_finished(req); -err_exit: - LLOG_CLIENT_EXIT(loghandle->lgh_ctxt, imp); - return rc; -} - - static int llog_client_next_block(const struct lu_env *env, struct llog_handle *loghandle, int *cur_idx, int next_idx, @@ -360,7 +325,6 @@ struct llog_operations llog_client_ops = { .lop_prev_block = llog_client_prev_block, .lop_read_header = llog_client_read_header, .lop_open = llog_client_open, - .lop_destroy = llog_client_destroy, .lop_close = llog_client_close, }; EXPORT_SYMBOL(llog_client_ops); From 9184bd51c9a981410533f31a2516a8452eb0da69 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:41 -0400 Subject: [PATCH 0937/2431] staging/lustre: remove dt_object implementation Nothing uses dt_object now, so we can kill the implementation and the stale references. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/fid/lproc_fid.c | 1 - drivers/staging/lustre/lustre/fld/fld_cache.c | 1 - .../staging/lustre/lustre/fld/fld_internal.h | 3 - .../staging/lustre/lustre/fld/fld_request.c | 1 - drivers/staging/lustre/lustre/fld/lproc_fld.c | 1 - .../staging/lustre/lustre/include/dt_object.h | 1496 ----------------- .../lustre/lustre/include/lustre_fid.h | 3 - .../lustre/lustre/include/lustre_fld.h | 4 - drivers/staging/lustre/lustre/include/obd.h | 3 - drivers/staging/lustre/lustre/ldlm/ldlm_lib.c | 1 - .../staging/lustre/lustre/obdclass/Makefile | 2 +- .../lustre/lustre/obdclass/dt_object.c | 1053 ------------ 12 files changed, 1 insertion(+), 2568 deletions(-) delete mode 100644 drivers/staging/lustre/lustre/include/dt_object.h delete mode 100644 drivers/staging/lustre/lustre/obdclass/dt_object.c diff --git a/drivers/staging/lustre/lustre/fid/lproc_fid.c b/drivers/staging/lustre/lustre/fid/lproc_fid.c index cc2201c25339..bf12723c9b1c 100644 --- a/drivers/staging/lustre/lustre/fid/lproc_fid.c +++ b/drivers/staging/lustre/lustre/fid/lproc_fid.c @@ -47,7 +47,6 @@ #include "../include/obd.h" #include "../include/obd_class.h" -#include "../include/dt_object.h" #include "../include/obd_support.h" #include "../include/lustre_req_layout.h" #include "../include/lustre_fid.h" diff --git a/drivers/staging/lustre/lustre/fld/fld_cache.c b/drivers/staging/lustre/lustre/fld/fld_cache.c index 5eeb36dc988f..446917484637 100644 --- a/drivers/staging/lustre/lustre/fld/fld_cache.c +++ b/drivers/staging/lustre/lustre/fld/fld_cache.c @@ -53,7 +53,6 @@ #include "../include/obd_support.h" #include "../include/lprocfs_status.h" -#include "../include/dt_object.h" #include "../include/lustre_req_layout.h" #include "../include/lustre_fld.h" #include "fld_internal.h" diff --git a/drivers/staging/lustre/lustre/fld/fld_internal.h b/drivers/staging/lustre/lustre/fld/fld_internal.h index 844576b9bc6f..fbb232de6c74 100644 --- a/drivers/staging/lustre/lustre/fld/fld_internal.h +++ b/drivers/staging/lustre/lustre/fld/fld_internal.h @@ -42,7 +42,6 @@ #define __FLD_INTERNAL_H #include "../include/lustre/lustre_idl.h" -#include "../include/dt_object.h" #include "../../include/linux/libcfs/libcfs.h" #include "../include/lustre_req_layout.h" @@ -175,8 +174,6 @@ void fld_dump_cache_entries(struct fld_cache *cache); struct fld_cache_entry *fld_cache_entry_lookup_nolock(struct fld_cache *cache, struct lu_seq_range *range); -int fld_write_range(const struct lu_env *env, struct dt_object *dt, - const struct lu_seq_range *range, struct thandle *th); static inline const char * fld_target_name(struct lu_fld_target *tar) diff --git a/drivers/staging/lustre/lustre/fld/fld_request.c b/drivers/staging/lustre/lustre/fld/fld_request.c index 1e450bf95383..3fd91bc77da5 100644 --- a/drivers/staging/lustre/lustre/fld/fld_request.c +++ b/drivers/staging/lustre/lustre/fld/fld_request.c @@ -52,7 +52,6 @@ #include "../include/obd_support.h" #include "../include/lprocfs_status.h" -#include "../include/dt_object.h" #include "../include/lustre_req_layout.h" #include "../include/lustre_fld.h" #include "../include/lustre_mdc.h" diff --git a/drivers/staging/lustre/lustre/fld/lproc_fld.c b/drivers/staging/lustre/lustre/fld/lproc_fld.c index da822101e005..603f56e6095b 100644 --- a/drivers/staging/lustre/lustre/fld/lproc_fld.c +++ b/drivers/staging/lustre/lustre/fld/lproc_fld.c @@ -48,7 +48,6 @@ #include "../include/obd.h" #include "../include/obd_class.h" -#include "../include/dt_object.h" #include "../include/obd_support.h" #include "../include/lustre_req_layout.h" #include "../include/lustre_fld.h" diff --git a/drivers/staging/lustre/lustre/include/dt_object.h b/drivers/staging/lustre/lustre/include/dt_object.h deleted file mode 100644 index abae31b41e74..000000000000 --- a/drivers/staging/lustre/lustre/include/dt_object.h +++ /dev/null @@ -1,1496 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - * - * Copyright (c) 2011, 2012, Intel Corporation. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - */ - -#ifndef __LUSTRE_DT_OBJECT_H -#define __LUSTRE_DT_OBJECT_H - -/** \defgroup dt dt - * Sub-class of lu_object with methods common for "data" objects in OST stack. - * - * Data objects behave like regular files: you can read/write them, get and - * set their attributes. Implementation of dt interface is supposed to - * implement some form of garbage collection, normally reference counting - * (nlink) based one. - * - * Examples: osd (lustre/osd) is an implementation of dt interface. - * @{ - */ - - -/* - * super-class definitions. - */ -#include "lu_object.h" - -#include "../../include/linux/libcfs/libcfs.h" - -struct seq_file; -struct lustre_cfg; - -struct thandle; -struct dt_device; -struct dt_object; -struct dt_index_features; -struct niobuf_local; -struct niobuf_remote; -struct ldlm_enqueue_info; - -typedef enum { - MNTOPT_USERXATTR = 0x00000001, - MNTOPT_ACL = 0x00000002, -} mntopt_t; - -struct dt_device_param { - unsigned ddp_max_name_len; - unsigned ddp_max_nlink; - unsigned ddp_block_shift; - mntopt_t ddp_mntopts; - unsigned ddp_max_ea_size; - void *ddp_mnt; /* XXX: old code can retrieve mnt -bzzz */ - int ddp_mount_type; - unsigned long long ddp_maxbytes; - /* percentage of available space to reserve for grant error margin */ - int ddp_grant_reserved; - /* per-inode space consumption */ - short ddp_inodespace; - /* per-fragment grant overhead to be used by client for grant - * calculation */ - int ddp_grant_frag; -}; - -/** - * Per-transaction commit callback function - */ -struct dt_txn_commit_cb; -typedef void (*dt_cb_t)(struct lu_env *env, struct thandle *th, - struct dt_txn_commit_cb *cb, int err); -/** - * Special per-transaction callback for cases when just commit callback - * is needed and per-device callback are not convenient to use - */ -#define TRANS_COMMIT_CB_MAGIC 0xa0a00a0a -#define MAX_COMMIT_CB_STR_LEN 32 - -struct dt_txn_commit_cb { - struct list_head dcb_linkage; - dt_cb_t dcb_func; - __u32 dcb_magic; - char dcb_name[MAX_COMMIT_CB_STR_LEN]; -}; - -/** - * Operations on dt device. - */ -struct dt_device_operations { - /** - * Return device-wide statistics. - */ - int (*dt_statfs)(const struct lu_env *env, - struct dt_device *dev, struct obd_statfs *osfs); - /** - * Create transaction, described by \a param. - */ - struct thandle *(*dt_trans_create)(const struct lu_env *env, - struct dt_device *dev); - /** - * Start transaction, described by \a param. - */ - int (*dt_trans_start)(const struct lu_env *env, - struct dt_device *dev, struct thandle *th); - /** - * Finish previously started transaction. - */ - int (*dt_trans_stop)(const struct lu_env *env, - struct thandle *th); - /** - * Add commit callback to the transaction. - */ - int (*dt_trans_cb_add)(struct thandle *th, - struct dt_txn_commit_cb *dcb); - /** - * Return fid of root index object. - */ - int (*dt_root_get)(const struct lu_env *env, - struct dt_device *dev, struct lu_fid *f); - /** - * Return device configuration data. - */ - void (*dt_conf_get)(const struct lu_env *env, - const struct dt_device *dev, - struct dt_device_param *param); - /** - * handling device state, mostly for tests - */ - int (*dt_sync)(const struct lu_env *env, struct dt_device *dev); - int (*dt_ro)(const struct lu_env *env, struct dt_device *dev); - /** - * Start a transaction commit asynchronously - * - * \param env environment - * \param dev dt_device to start commit on - * - * \return 0 success, negative value if error - */ - int (*dt_commit_async)(const struct lu_env *env, - struct dt_device *dev); - /** - * Initialize capability context. - */ - int (*dt_init_capa_ctxt)(const struct lu_env *env, - struct dt_device *dev, - int mode, unsigned long timeout, - __u32 alg, struct lustre_capa_key *keys); -}; - -struct dt_index_features { - /** required feature flags from enum dt_index_flags */ - __u32 dif_flags; - /** minimal required key size */ - size_t dif_keysize_min; - /** maximal required key size, 0 if no limit */ - size_t dif_keysize_max; - /** minimal required record size */ - size_t dif_recsize_min; - /** maximal required record size, 0 if no limit */ - size_t dif_recsize_max; - /** pointer size for record */ - size_t dif_ptrsize; -}; - -enum dt_index_flags { - /** index supports variable sized keys */ - DT_IND_VARKEY = 1 << 0, - /** index supports variable sized records */ - DT_IND_VARREC = 1 << 1, - /** index can be modified */ - DT_IND_UPDATE = 1 << 2, - /** index supports records with non-unique (duplicate) keys */ - DT_IND_NONUNQ = 1 << 3, - /** - * index support fixed-size keys sorted with natural numerical way - * and is able to return left-side value if no exact value found - */ - DT_IND_RANGE = 1 << 4, -}; - -/** - * Features, required from index to support file system directories (mapping - * names to fids). - */ -extern const struct dt_index_features dt_directory_features; -extern const struct dt_index_features dt_otable_features; -extern const struct dt_index_features dt_lfsck_features; - -/* index features supported by the accounting objects */ -extern const struct dt_index_features dt_acct_features; - -/* index features supported by the quota global indexes */ -extern const struct dt_index_features dt_quota_glb_features; - -/* index features supported by the quota slave indexes */ -extern const struct dt_index_features dt_quota_slv_features; - -/** - * This is a general purpose dt allocation hint. - * It now contains the parent object. - * It can contain any allocation hint in the future. - */ -struct dt_allocation_hint { - struct dt_object *dah_parent; - __u32 dah_mode; -}; - -/** - * object type specifier. - */ - -enum dt_format_type { - DFT_REGULAR, - DFT_DIR, - /** for mknod */ - DFT_NODE, - /** for special index */ - DFT_INDEX, - /** for symbolic link */ - DFT_SYM, -}; - -/** - * object format specifier. - */ -struct dt_object_format { - /** type for dt object */ - enum dt_format_type dof_type; - union { - struct dof_regular { - int striped; - } dof_reg; - struct dof_dir { - } dof_dir; - struct dof_node { - } dof_node; - /** - * special index need feature as parameter to create - * special idx - */ - struct dof_index { - const struct dt_index_features *di_feat; - } dof_idx; - } u; -}; - -enum dt_format_type dt_mode_to_dft(__u32 mode); - -typedef __u64 dt_obj_version_t; - -/** - * Per-dt-object operations. - */ -struct dt_object_operations { - void (*do_read_lock)(const struct lu_env *env, - struct dt_object *dt, unsigned role); - void (*do_write_lock)(const struct lu_env *env, - struct dt_object *dt, unsigned role); - void (*do_read_unlock)(const struct lu_env *env, - struct dt_object *dt); - void (*do_write_unlock)(const struct lu_env *env, - struct dt_object *dt); - int (*do_write_locked)(const struct lu_env *env, - struct dt_object *dt); - /** - * Note: following ->do_{x,}attr_{set,get}() operations are very - * similar to ->moo_{x,}attr_{set,get}() operations in struct - * md_object_operations (see md_object.h). These operations are not in - * lu_object_operations, because ->do_{x,}attr_set() versions take - * transaction handle as an argument (this transaction is started by - * caller). We might factor ->do_{x,}attr_get() into - * lu_object_operations, but that would break existing symmetry. - */ - - /** - * Return standard attributes. - * - * precondition: lu_object_exists(&dt->do_lu); - */ - int (*do_attr_get)(const struct lu_env *env, - struct dt_object *dt, struct lu_attr *attr, - struct lustre_capa *capa); - /** - * Set standard attributes. - * - * precondition: dt_object_exists(dt); - */ - int (*do_declare_attr_set)(const struct lu_env *env, - struct dt_object *dt, - const struct lu_attr *attr, - struct thandle *handle); - int (*do_attr_set)(const struct lu_env *env, - struct dt_object *dt, - const struct lu_attr *attr, - struct thandle *handle, - struct lustre_capa *capa); - /** - * Return a value of an extended attribute. - * - * precondition: dt_object_exists(dt); - */ - int (*do_xattr_get)(const struct lu_env *env, struct dt_object *dt, - struct lu_buf *buf, const char *name, - struct lustre_capa *capa); - /** - * Set value of an extended attribute. - * - * \a fl - flags from enum lu_xattr_flags - * - * precondition: dt_object_exists(dt); - */ - int (*do_declare_xattr_set)(const struct lu_env *env, - struct dt_object *dt, - const struct lu_buf *buf, - const char *name, int fl, - struct thandle *handle); - int (*do_xattr_set)(const struct lu_env *env, - struct dt_object *dt, const struct lu_buf *buf, - const char *name, int fl, struct thandle *handle, - struct lustre_capa *capa); - /** - * Delete existing extended attribute. - * - * precondition: dt_object_exists(dt); - */ - int (*do_declare_xattr_del)(const struct lu_env *env, - struct dt_object *dt, - const char *name, struct thandle *handle); - int (*do_xattr_del)(const struct lu_env *env, - struct dt_object *dt, - const char *name, struct thandle *handle, - struct lustre_capa *capa); - /** - * Place list of existing extended attributes into \a buf (which has - * length len). - * - * precondition: dt_object_exists(dt); - */ - int (*do_xattr_list)(const struct lu_env *env, - struct dt_object *dt, struct lu_buf *buf, - struct lustre_capa *capa); - /** - * Init allocation hint using parent object and child mode. - * (1) The \a parent might be NULL if this is a partial creation for - * remote object. - * (2) The type of child is in \a child_mode. - * (3) The result hint is stored in \a ah; - */ - void (*do_ah_init)(const struct lu_env *env, - struct dt_allocation_hint *ah, - struct dt_object *parent, - struct dt_object *child, - umode_t child_mode); - /** - * Create new object on this device. - * - * precondition: !dt_object_exists(dt); - * postcondition: ergo(result == 0, dt_object_exists(dt)); - */ - int (*do_declare_create)(const struct lu_env *env, - struct dt_object *dt, - struct lu_attr *attr, - struct dt_allocation_hint *hint, - struct dt_object_format *dof, - struct thandle *th); - int (*do_create)(const struct lu_env *env, struct dt_object *dt, - struct lu_attr *attr, - struct dt_allocation_hint *hint, - struct dt_object_format *dof, - struct thandle *th); - - /** - Destroy object on this device - * precondition: !dt_object_exists(dt); - * postcondition: ergo(result == 0, dt_object_exists(dt)); - */ - int (*do_declare_destroy)(const struct lu_env *env, - struct dt_object *dt, - struct thandle *th); - int (*do_destroy)(const struct lu_env *env, struct dt_object *dt, - struct thandle *th); - - /** - * Announce that this object is going to be used as an index. This - * operation check that object supports indexing operations and - * installs appropriate dt_index_operations vector on success. - * - * Also probes for features. Operation is successful if all required - * features are supported. - */ - int (*do_index_try)(const struct lu_env *env, - struct dt_object *dt, - const struct dt_index_features *feat); - /** - * Add nlink of the object - * precondition: dt_object_exists(dt); - */ - int (*do_declare_ref_add)(const struct lu_env *env, - struct dt_object *dt, struct thandle *th); - int (*do_ref_add)(const struct lu_env *env, - struct dt_object *dt, struct thandle *th); - /** - * Del nlink of the object - * precondition: dt_object_exists(dt); - */ - int (*do_declare_ref_del)(const struct lu_env *env, - struct dt_object *dt, struct thandle *th); - int (*do_ref_del)(const struct lu_env *env, - struct dt_object *dt, struct thandle *th); - - struct obd_capa *(*do_capa_get)(const struct lu_env *env, - struct dt_object *dt, - struct lustre_capa *old, - __u64 opc); - int (*do_object_sync)(const struct lu_env *env, struct dt_object *obj, - __u64 start, __u64 end); - /** - * Get object info of next level. Currently, only get inode from osd. - * This is only used by quota b=16542 - * precondition: dt_object_exists(dt); - */ - int (*do_data_get)(const struct lu_env *env, struct dt_object *dt, - void **data); - - /** - * Lock object. - */ - int (*do_object_lock)(const struct lu_env *env, struct dt_object *dt, - struct lustre_handle *lh, - struct ldlm_enqueue_info *einfo, - void *policy); -}; - -/** - * Per-dt-object operations on "file body". - */ -struct dt_body_operations { - /** - * precondition: dt_object_exists(dt); - */ - ssize_t (*dbo_read)(const struct lu_env *env, struct dt_object *dt, - struct lu_buf *buf, loff_t *pos, - struct lustre_capa *capa); - /** - * precondition: dt_object_exists(dt); - */ - ssize_t (*dbo_declare_write)(const struct lu_env *env, - struct dt_object *dt, - const loff_t size, loff_t pos, - struct thandle *handle); - ssize_t (*dbo_write)(const struct lu_env *env, struct dt_object *dt, - const struct lu_buf *buf, loff_t *pos, - struct thandle *handle, struct lustre_capa *capa, - int ignore_quota); - /* - * methods for zero-copy IO - */ - - /* - * precondition: dt_object_exists(dt); - * returns: - * < 0 - error code - * = 0 - illegal - * > 0 - number of local buffers prepared - */ - int (*dbo_bufs_get)(const struct lu_env *env, struct dt_object *dt, - loff_t pos, ssize_t len, struct niobuf_local *lb, - int rw, struct lustre_capa *capa); - /* - * precondition: dt_object_exists(dt); - */ - int (*dbo_bufs_put)(const struct lu_env *env, struct dt_object *dt, - struct niobuf_local *lb, int nr); - /* - * precondition: dt_object_exists(dt); - */ - int (*dbo_write_prep)(const struct lu_env *env, struct dt_object *dt, - struct niobuf_local *lb, int nr); - /* - * precondition: dt_object_exists(dt); - */ - int (*dbo_declare_write_commit)(const struct lu_env *env, - struct dt_object *dt, - struct niobuf_local *, - int, struct thandle *); - /* - * precondition: dt_object_exists(dt); - */ - int (*dbo_write_commit)(const struct lu_env *env, struct dt_object *dt, - struct niobuf_local *, int, struct thandle *); - /* - * precondition: dt_object_exists(dt); - */ - int (*dbo_read_prep)(const struct lu_env *env, struct dt_object *dt, - struct niobuf_local *lnb, int nr); - int (*dbo_fiemap_get)(const struct lu_env *env, struct dt_object *dt, - struct ll_user_fiemap *fm); - /** - * Punch object's content - * precondition: regular object, not index - */ - int (*dbo_declare_punch)(const struct lu_env *, struct dt_object *, - __u64, __u64, struct thandle *th); - int (*dbo_punch)(const struct lu_env *env, struct dt_object *dt, - __u64 start, __u64 end, struct thandle *th, - struct lustre_capa *capa); -}; - -/** - * Incomplete type of index record. - */ -struct dt_rec; - -/** - * Incomplete type of index key. - */ -struct dt_key; - -/** - * Incomplete type of dt iterator. - */ -struct dt_it; - -/** - * Per-dt-object operations on object as index. - */ -struct dt_index_operations { - /** - * precondition: dt_object_exists(dt); - */ - int (*dio_lookup)(const struct lu_env *env, struct dt_object *dt, - struct dt_rec *rec, const struct dt_key *key, - struct lustre_capa *capa); - /** - * precondition: dt_object_exists(dt); - */ - int (*dio_declare_insert)(const struct lu_env *env, - struct dt_object *dt, - const struct dt_rec *rec, - const struct dt_key *key, - struct thandle *handle); - int (*dio_insert)(const struct lu_env *env, struct dt_object *dt, - const struct dt_rec *rec, const struct dt_key *key, - struct thandle *handle, struct lustre_capa *capa, - int ignore_quota); - /** - * precondition: dt_object_exists(dt); - */ - int (*dio_declare_delete)(const struct lu_env *env, - struct dt_object *dt, - const struct dt_key *key, - struct thandle *handle); - int (*dio_delete)(const struct lu_env *env, struct dt_object *dt, - const struct dt_key *key, struct thandle *handle, - struct lustre_capa *capa); - /** - * Iterator interface - */ - struct dt_it_ops { - /** - * Allocate and initialize new iterator. - * - * precondition: dt_object_exists(dt); - */ - struct dt_it *(*init)(const struct lu_env *env, - struct dt_object *dt, - __u32 attr, - struct lustre_capa *capa); - void (*fini)(const struct lu_env *env, - struct dt_it *di); - int (*get)(const struct lu_env *env, - struct dt_it *di, - const struct dt_key *key); - void (*put)(const struct lu_env *env, - struct dt_it *di); - int (*next)(const struct lu_env *env, - struct dt_it *di); - struct dt_key *(*key)(const struct lu_env *env, - const struct dt_it *di); - int (*key_size)(const struct lu_env *env, - const struct dt_it *di); - int (*rec)(const struct lu_env *env, - const struct dt_it *di, - struct dt_rec *rec, - __u32 attr); - __u64 (*store)(const struct lu_env *env, - const struct dt_it *di); - int (*load)(const struct lu_env *env, - const struct dt_it *di, __u64 hash); - int (*key_rec)(const struct lu_env *env, - const struct dt_it *di, void *key_rec); - } dio_it; -}; - -enum dt_otable_it_valid { - DOIV_ERROR_HANDLE = 0x0001, -}; - -enum dt_otable_it_flags { - /* Exit when fail. */ - DOIF_FAILOUT = 0x0001, - - /* Reset iteration position to the device beginning. */ - DOIF_RESET = 0x0002, - - /* There is up layer component uses the iteration. */ - DOIF_OUTUSED = 0x0004, -}; - -/* otable based iteration needs to use the common DT interation APIs. - * To initialize the iteration, it needs call dio_it::init() firstly. - * Here is how the otable based iteration should prepare arguments to - * call dt_it_ops::init(). - * - * For otable based iteration, the 32-bits 'attr' for dt_it_ops::init() - * is composed of two parts: - * low 16-bits is for valid bits, high 16-bits is for flags bits. */ -#define DT_OTABLE_IT_FLAGS_SHIFT 16 -#define DT_OTABLE_IT_FLAGS_MASK 0xffff0000 - -struct dt_device { - struct lu_device dd_lu_dev; - const struct dt_device_operations *dd_ops; - - /** - * List of dt_txn_callback (see below). This is not protected in any - * way, because callbacks are supposed to be added/deleted only during - * single-threaded start-up shut-down procedures. - */ - struct list_head dd_txn_callbacks; -}; - -int dt_device_init(struct dt_device *dev, struct lu_device_type *t); -void dt_device_fini(struct dt_device *dev); - -static inline int lu_device_is_dt(const struct lu_device *d) -{ - return ergo(d != NULL, d->ld_type->ldt_tags & LU_DEVICE_DT); -} - -static inline struct dt_device *lu2dt_dev(struct lu_device *l) -{ - LASSERT(lu_device_is_dt(l)); - return container_of0(l, struct dt_device, dd_lu_dev); -} - -struct dt_object { - struct lu_object do_lu; - const struct dt_object_operations *do_ops; - const struct dt_body_operations *do_body_ops; - const struct dt_index_operations *do_index_ops; -}; - -/* - * In-core representation of per-device local object OID storage - */ -struct local_oid_storage { - /* all initialized llog systems on this node linked by this */ - struct list_head los_list; - - /* how many handle's reference this los has */ - atomic_t los_refcount; - struct dt_device *los_dev; - struct dt_object *los_obj; - - /* data used to generate new fids */ - struct mutex los_id_lock; - __u64 los_seq; - __u32 los_last_oid; -}; - -static inline struct dt_object *lu2dt(struct lu_object *l) -{ - LASSERT(l == NULL || IS_ERR(l) || lu_device_is_dt(l->lo_dev)); - return container_of0(l, struct dt_object, do_lu); -} - -int dt_object_init(struct dt_object *obj, - struct lu_object_header *h, struct lu_device *d); - -void dt_object_fini(struct dt_object *obj); - -static inline int dt_object_exists(const struct dt_object *dt) -{ - return lu_object_exists(&dt->do_lu); -} - -static inline int dt_object_remote(const struct dt_object *dt) -{ - return lu_object_remote(&dt->do_lu); -} - -static inline struct dt_object *lu2dt_obj(struct lu_object *o) -{ - LASSERT(ergo(o != NULL, lu_device_is_dt(o->lo_dev))); - return container_of0(o, struct dt_object, do_lu); -} - -/** - * This is the general purpose transaction handle. - * 1. Transaction Life Cycle - * This transaction handle is allocated upon starting a new transaction, - * and deallocated after this transaction is committed. - * 2. Transaction Nesting - * We do _NOT_ support nested transaction. So, every thread should only - * have one active transaction, and a transaction only belongs to one - * thread. Due to this, transaction handle need no reference count. - * 3. Transaction & dt_object locking - * dt_object locks should be taken inside transaction. - * 4. Transaction & RPC - * No RPC request should be issued inside transaction. - */ -struct thandle { - /** the dt device on which the transactions are executed */ - struct dt_device *th_dev; - - /** context for this transaction, tag is LCT_TX_HANDLE */ - struct lu_context th_ctx; - - /** additional tags (layers can add in declare) */ - __u32 th_tags; - - /** the last operation result in this transaction. - * this value is used in recovery */ - __s32 th_result; - - /** whether we need sync commit */ - unsigned int th_sync:1; - - /* local transation, no need to inform other layers */ - unsigned int th_local:1; - - /* In DNE, one transaction can be disassemblied into - * updates on several different MDTs, and these updates - * will be attached to th_remote_update_list per target. - * Only single thread will access the list, no need lock - */ - struct list_head th_remote_update_list; - struct update_request *th_current_request; -}; - -/** - * Transaction call-backs. - * - * These are invoked by osd (or underlying transaction engine) when - * transaction changes state. - * - * Call-backs are used by upper layers to modify transaction parameters and to - * perform some actions on for each transaction state transition. Typical - * example is mdt registering call-back to write into last-received file - * before each transaction commit. - */ -struct dt_txn_callback { - int (*dtc_txn_start)(const struct lu_env *env, - struct thandle *txn, void *cookie); - int (*dtc_txn_stop)(const struct lu_env *env, - struct thandle *txn, void *cookie); - void (*dtc_txn_commit)(struct thandle *txn, void *cookie); - void *dtc_cookie; - __u32 dtc_tag; - struct list_head dtc_linkage; -}; - -void dt_txn_callback_add(struct dt_device *dev, struct dt_txn_callback *cb); -void dt_txn_callback_del(struct dt_device *dev, struct dt_txn_callback *cb); - -int dt_txn_hook_start(const struct lu_env *env, - struct dt_device *dev, struct thandle *txn); -int dt_txn_hook_stop(const struct lu_env *env, struct thandle *txn); -void dt_txn_hook_commit(struct thandle *txn); - -int dt_try_as_dir(const struct lu_env *env, struct dt_object *obj); - -/** - * Callback function used for parsing path. - * \see llo_store_resolve - */ -typedef int (*dt_entry_func_t)(const struct lu_env *env, - const char *name, - void *pvt); - -#define DT_MAX_PATH 1024 - -int dt_path_parser(const struct lu_env *env, - char *local, dt_entry_func_t entry_func, - void *data); - -struct dt_object * -dt_store_resolve(const struct lu_env *env, struct dt_device *dt, - const char *path, struct lu_fid *fid); - -struct dt_object *dt_store_open(const struct lu_env *env, - struct dt_device *dt, - const char *dirname, - const char *filename, - struct lu_fid *fid); - -struct dt_object *dt_find_or_create(const struct lu_env *env, - struct dt_device *dt, - const struct lu_fid *fid, - struct dt_object_format *dof, - struct lu_attr *attr); - -struct dt_object *dt_locate_at(const struct lu_env *env, - struct dt_device *dev, - const struct lu_fid *fid, - struct lu_device *top_dev); -static inline struct dt_object * -dt_locate(const struct lu_env *env, struct dt_device *dev, - const struct lu_fid *fid) -{ - return dt_locate_at(env, dev, fid, dev->dd_lu_dev.ld_site->ls_top_dev); -} - - -int local_oid_storage_init(const struct lu_env *env, struct dt_device *dev, - const struct lu_fid *first_fid, - struct local_oid_storage **los); -void local_oid_storage_fini(const struct lu_env *env, - struct local_oid_storage *los); -int local_object_fid_generate(const struct lu_env *env, - struct local_oid_storage *los, - struct lu_fid *fid); -int local_object_declare_create(const struct lu_env *env, - struct local_oid_storage *los, - struct dt_object *o, - struct lu_attr *attr, - struct dt_object_format *dof, - struct thandle *th); -int local_object_create(const struct lu_env *env, - struct local_oid_storage *los, - struct dt_object *o, - struct lu_attr *attr, struct dt_object_format *dof, - struct thandle *th); -struct dt_object *local_file_find_or_create(const struct lu_env *env, - struct local_oid_storage *los, - struct dt_object *parent, - const char *name, __u32 mode); -struct dt_object *local_file_find_or_create_with_fid(const struct lu_env *env, - struct dt_device *dt, - const struct lu_fid *fid, - struct dt_object *parent, - const char *name, - __u32 mode); -struct dt_object * -local_index_find_or_create(const struct lu_env *env, - struct local_oid_storage *los, - struct dt_object *parent, - const char *name, __u32 mode, - const struct dt_index_features *ft); -struct dt_object * -local_index_find_or_create_with_fid(const struct lu_env *env, - struct dt_device *dt, - const struct lu_fid *fid, - struct dt_object *parent, - const char *name, __u32 mode, - const struct dt_index_features *ft); -int local_object_unlink(const struct lu_env *env, struct dt_device *dt, - struct dt_object *parent, const char *name); - -static inline int dt_object_lock(const struct lu_env *env, - struct dt_object *o, struct lustre_handle *lh, - struct ldlm_enqueue_info *einfo, - void *policy) -{ - LASSERT(o); - LASSERT(o->do_ops); - LASSERT(o->do_ops->do_object_lock); - return o->do_ops->do_object_lock(env, o, lh, einfo, policy); -} - -int dt_lookup_dir(const struct lu_env *env, struct dt_object *dir, - const char *name, struct lu_fid *fid); - -static inline int dt_object_sync(const struct lu_env *env, struct dt_object *o, - __u64 start, __u64 end) -{ - LASSERT(o); - LASSERT(o->do_ops); - LASSERT(o->do_ops->do_object_sync); - return o->do_ops->do_object_sync(env, o, start, end); -} - -int dt_declare_version_set(const struct lu_env *env, struct dt_object *o, - struct thandle *th); -void dt_version_set(const struct lu_env *env, struct dt_object *o, - dt_obj_version_t version, struct thandle *th); -dt_obj_version_t dt_version_get(const struct lu_env *env, struct dt_object *o); - - -int dt_read(const struct lu_env *env, struct dt_object *dt, - struct lu_buf *buf, loff_t *pos); -int dt_record_read(const struct lu_env *env, struct dt_object *dt, - struct lu_buf *buf, loff_t *pos); -int dt_record_write(const struct lu_env *env, struct dt_object *dt, - const struct lu_buf *buf, loff_t *pos, struct thandle *th); -typedef int (*dt_index_page_build_t)(const struct lu_env *env, - union lu_page *lp, int nob, - const struct dt_it_ops *iops, - struct dt_it *it, __u32 attr, void *arg); -int dt_index_walk(const struct lu_env *env, struct dt_object *obj, - const struct lu_rdpg *rdpg, dt_index_page_build_t filler, - void *arg); -int dt_index_read(const struct lu_env *env, struct dt_device *dev, - struct idx_info *ii, const struct lu_rdpg *rdpg); - -static inline struct thandle *dt_trans_create(const struct lu_env *env, - struct dt_device *d) -{ - LASSERT(d->dd_ops->dt_trans_create); - return d->dd_ops->dt_trans_create(env, d); -} - -static inline int dt_trans_start(const struct lu_env *env, - struct dt_device *d, struct thandle *th) -{ - LASSERT(d->dd_ops->dt_trans_start); - return d->dd_ops->dt_trans_start(env, d, th); -} - -/* for this transaction hooks shouldn't be called */ -static inline int dt_trans_start_local(const struct lu_env *env, - struct dt_device *d, struct thandle *th) -{ - LASSERT(d->dd_ops->dt_trans_start); - th->th_local = 1; - return d->dd_ops->dt_trans_start(env, d, th); -} - -static inline int dt_trans_stop(const struct lu_env *env, - struct dt_device *d, struct thandle *th) -{ - LASSERT(d->dd_ops->dt_trans_stop); - return d->dd_ops->dt_trans_stop(env, th); -} - -static inline int dt_trans_cb_add(struct thandle *th, - struct dt_txn_commit_cb *dcb) -{ - LASSERT(th->th_dev->dd_ops->dt_trans_cb_add); - dcb->dcb_magic = TRANS_COMMIT_CB_MAGIC; - return th->th_dev->dd_ops->dt_trans_cb_add(th, dcb); -} -/** @} dt */ - - -static inline int dt_declare_record_write(const struct lu_env *env, - struct dt_object *dt, - int size, loff_t pos, - struct thandle *th) -{ - int rc; - - LASSERTF(dt != NULL, "dt is NULL when we want to write record\n"); - LASSERT(th != NULL); - LASSERT(dt->do_body_ops); - LASSERT(dt->do_body_ops->dbo_declare_write); - rc = dt->do_body_ops->dbo_declare_write(env, dt, size, pos, th); - return rc; -} - -static inline int dt_declare_create(const struct lu_env *env, - struct dt_object *dt, - struct lu_attr *attr, - struct dt_allocation_hint *hint, - struct dt_object_format *dof, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_declare_create); - return dt->do_ops->do_declare_create(env, dt, attr, hint, dof, th); -} - -static inline int dt_create(const struct lu_env *env, - struct dt_object *dt, - struct lu_attr *attr, - struct dt_allocation_hint *hint, - struct dt_object_format *dof, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_create); - return dt->do_ops->do_create(env, dt, attr, hint, dof, th); -} - -static inline int dt_declare_destroy(const struct lu_env *env, - struct dt_object *dt, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_declare_destroy); - return dt->do_ops->do_declare_destroy(env, dt, th); -} - -static inline int dt_destroy(const struct lu_env *env, - struct dt_object *dt, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_destroy); - return dt->do_ops->do_destroy(env, dt, th); -} - -static inline void dt_read_lock(const struct lu_env *env, - struct dt_object *dt, - unsigned role) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_read_lock); - dt->do_ops->do_read_lock(env, dt, role); -} - -static inline void dt_write_lock(const struct lu_env *env, - struct dt_object *dt, - unsigned role) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_write_lock); - dt->do_ops->do_write_lock(env, dt, role); -} - -static inline void dt_read_unlock(const struct lu_env *env, - struct dt_object *dt) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_read_unlock); - dt->do_ops->do_read_unlock(env, dt); -} - -static inline void dt_write_unlock(const struct lu_env *env, - struct dt_object *dt) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_write_unlock); - dt->do_ops->do_write_unlock(env, dt); -} - -static inline int dt_write_locked(const struct lu_env *env, - struct dt_object *dt) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_write_locked); - return dt->do_ops->do_write_locked(env, dt); -} - -static inline int dt_attr_get(const struct lu_env *env, struct dt_object *dt, - struct lu_attr *la, void *arg) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_attr_get); - return dt->do_ops->do_attr_get(env, dt, la, arg); -} - -static inline int dt_declare_attr_set(const struct lu_env *env, - struct dt_object *dt, - const struct lu_attr *la, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_declare_attr_set); - return dt->do_ops->do_declare_attr_set(env, dt, la, th); -} - -static inline int dt_attr_set(const struct lu_env *env, struct dt_object *dt, - const struct lu_attr *la, struct thandle *th, - struct lustre_capa *capa) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_attr_set); - return dt->do_ops->do_attr_set(env, dt, la, th, capa); -} - -static inline int dt_declare_ref_add(const struct lu_env *env, - struct dt_object *dt, struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_declare_ref_add); - return dt->do_ops->do_declare_ref_add(env, dt, th); -} - -static inline int dt_ref_add(const struct lu_env *env, - struct dt_object *dt, struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_ref_add); - return dt->do_ops->do_ref_add(env, dt, th); -} - -static inline int dt_declare_ref_del(const struct lu_env *env, - struct dt_object *dt, struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_declare_ref_del); - return dt->do_ops->do_declare_ref_del(env, dt, th); -} - -static inline int dt_ref_del(const struct lu_env *env, - struct dt_object *dt, struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_ref_del); - return dt->do_ops->do_ref_del(env, dt, th); -} - -static inline struct obd_capa *dt_capa_get(const struct lu_env *env, - struct dt_object *dt, - struct lustre_capa *old, __u64 opc) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_ref_del); - return dt->do_ops->do_capa_get(env, dt, old, opc); -} - -static inline int dt_bufs_get(const struct lu_env *env, struct dt_object *d, - struct niobuf_remote *rnb, - struct niobuf_local *lnb, int rw, - struct lustre_capa *capa) -{ - LASSERT(d); - LASSERT(d->do_body_ops); - LASSERT(d->do_body_ops->dbo_bufs_get); - return d->do_body_ops->dbo_bufs_get(env, d, rnb->offset, - rnb->len, lnb, rw, capa); -} - -static inline int dt_bufs_put(const struct lu_env *env, struct dt_object *d, - struct niobuf_local *lnb, int n) -{ - LASSERT(d); - LASSERT(d->do_body_ops); - LASSERT(d->do_body_ops->dbo_bufs_put); - return d->do_body_ops->dbo_bufs_put(env, d, lnb, n); -} - -static inline int dt_write_prep(const struct lu_env *env, struct dt_object *d, - struct niobuf_local *lnb, int n) -{ - LASSERT(d); - LASSERT(d->do_body_ops); - LASSERT(d->do_body_ops->dbo_write_prep); - return d->do_body_ops->dbo_write_prep(env, d, lnb, n); -} - -static inline int dt_declare_write_commit(const struct lu_env *env, - struct dt_object *d, - struct niobuf_local *lnb, - int n, struct thandle *th) -{ - LASSERTF(d != NULL, "dt is NULL when we want to declare write\n"); - LASSERT(th != NULL); - return d->do_body_ops->dbo_declare_write_commit(env, d, lnb, n, th); -} - - -static inline int dt_write_commit(const struct lu_env *env, - struct dt_object *d, struct niobuf_local *lnb, - int n, struct thandle *th) -{ - LASSERT(d); - LASSERT(d->do_body_ops); - LASSERT(d->do_body_ops->dbo_write_commit); - return d->do_body_ops->dbo_write_commit(env, d, lnb, n, th); -} - -static inline int dt_read_prep(const struct lu_env *env, struct dt_object *d, - struct niobuf_local *lnb, int n) -{ - LASSERT(d); - LASSERT(d->do_body_ops); - LASSERT(d->do_body_ops->dbo_read_prep); - return d->do_body_ops->dbo_read_prep(env, d, lnb, n); -} - -static inline int dt_declare_punch(const struct lu_env *env, - struct dt_object *dt, __u64 start, - __u64 end, struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_body_ops); - LASSERT(dt->do_body_ops->dbo_declare_punch); - return dt->do_body_ops->dbo_declare_punch(env, dt, start, end, th); -} - -static inline int dt_punch(const struct lu_env *env, struct dt_object *dt, - __u64 start, __u64 end, struct thandle *th, - struct lustre_capa *capa) -{ - LASSERT(dt); - LASSERT(dt->do_body_ops); - LASSERT(dt->do_body_ops->dbo_punch); - return dt->do_body_ops->dbo_punch(env, dt, start, end, th, capa); -} - -static inline int dt_fiemap_get(const struct lu_env *env, struct dt_object *d, - struct ll_user_fiemap *fm) -{ - LASSERT(d); - if (d->do_body_ops == NULL) - return -EPROTO; - if (d->do_body_ops->dbo_fiemap_get == NULL) - return -EOPNOTSUPP; - return d->do_body_ops->dbo_fiemap_get(env, d, fm); -} - -static inline int dt_statfs(const struct lu_env *env, struct dt_device *dev, - struct obd_statfs *osfs) -{ - LASSERT(dev); - LASSERT(dev->dd_ops); - LASSERT(dev->dd_ops->dt_statfs); - return dev->dd_ops->dt_statfs(env, dev, osfs); -} - -static inline int dt_root_get(const struct lu_env *env, struct dt_device *dev, - struct lu_fid *f) -{ - LASSERT(dev); - LASSERT(dev->dd_ops); - LASSERT(dev->dd_ops->dt_root_get); - return dev->dd_ops->dt_root_get(env, dev, f); -} - -static inline void dt_conf_get(const struct lu_env *env, - const struct dt_device *dev, - struct dt_device_param *param) -{ - LASSERT(dev); - LASSERT(dev->dd_ops); - LASSERT(dev->dd_ops->dt_conf_get); - return dev->dd_ops->dt_conf_get(env, dev, param); -} - -static inline int dt_sync(const struct lu_env *env, struct dt_device *dev) -{ - LASSERT(dev); - LASSERT(dev->dd_ops); - LASSERT(dev->dd_ops->dt_sync); - return dev->dd_ops->dt_sync(env, dev); -} - -static inline int dt_ro(const struct lu_env *env, struct dt_device *dev) -{ - LASSERT(dev); - LASSERT(dev->dd_ops); - LASSERT(dev->dd_ops->dt_ro); - return dev->dd_ops->dt_ro(env, dev); -} - -static inline int dt_declare_insert(const struct lu_env *env, - struct dt_object *dt, - const struct dt_rec *rec, - const struct dt_key *key, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_index_ops); - LASSERT(dt->do_index_ops->dio_declare_insert); - return dt->do_index_ops->dio_declare_insert(env, dt, rec, key, th); -} - -static inline int dt_insert(const struct lu_env *env, - struct dt_object *dt, - const struct dt_rec *rec, - const struct dt_key *key, - struct thandle *th, - struct lustre_capa *capa, - int noquota) -{ - LASSERT(dt); - LASSERT(dt->do_index_ops); - LASSERT(dt->do_index_ops->dio_insert); - return dt->do_index_ops->dio_insert(env, dt, rec, key, th, - capa, noquota); -} - -static inline int dt_declare_xattr_del(const struct lu_env *env, - struct dt_object *dt, - const char *name, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_declare_xattr_del); - return dt->do_ops->do_declare_xattr_del(env, dt, name, th); -} - -static inline int dt_xattr_del(const struct lu_env *env, - struct dt_object *dt, const char *name, - struct thandle *th, - struct lustre_capa *capa) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_xattr_del); - return dt->do_ops->do_xattr_del(env, dt, name, th, capa); -} - -static inline int dt_declare_xattr_set(const struct lu_env *env, - struct dt_object *dt, - const struct lu_buf *buf, - const char *name, int fl, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_declare_xattr_set); - return dt->do_ops->do_declare_xattr_set(env, dt, buf, name, fl, th); -} - -static inline int dt_xattr_set(const struct lu_env *env, - struct dt_object *dt, const struct lu_buf *buf, - const char *name, int fl, struct thandle *th, - struct lustre_capa *capa) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_xattr_set); - return dt->do_ops->do_xattr_set(env, dt, buf, name, fl, th, capa); -} - -static inline int dt_xattr_get(const struct lu_env *env, - struct dt_object *dt, struct lu_buf *buf, - const char *name, struct lustre_capa *capa) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_xattr_get); - return dt->do_ops->do_xattr_get(env, dt, buf, name, capa); -} - -static inline int dt_xattr_list(const struct lu_env *env, - struct dt_object *dt, struct lu_buf *buf, - struct lustre_capa *capa) -{ - LASSERT(dt); - LASSERT(dt->do_ops); - LASSERT(dt->do_ops->do_xattr_list); - return dt->do_ops->do_xattr_list(env, dt, buf, capa); -} - -static inline int dt_declare_delete(const struct lu_env *env, - struct dt_object *dt, - const struct dt_key *key, - struct thandle *th) -{ - LASSERT(dt); - LASSERT(dt->do_index_ops); - LASSERT(dt->do_index_ops->dio_declare_delete); - return dt->do_index_ops->dio_declare_delete(env, dt, key, th); -} - -static inline int dt_delete(const struct lu_env *env, - struct dt_object *dt, - const struct dt_key *key, - struct thandle *th, - struct lustre_capa *capa) -{ - LASSERT(dt); - LASSERT(dt->do_index_ops); - LASSERT(dt->do_index_ops->dio_delete); - return dt->do_index_ops->dio_delete(env, dt, key, th, capa); -} - -static inline int dt_commit_async(const struct lu_env *env, - struct dt_device *dev) -{ - LASSERT(dev); - LASSERT(dev->dd_ops); - LASSERT(dev->dd_ops->dt_commit_async); - return dev->dd_ops->dt_commit_async(env, dev); -} - -static inline int dt_init_capa_ctxt(const struct lu_env *env, - struct dt_device *dev, - int mode, unsigned long timeout, - __u32 alg, struct lustre_capa_key *keys) -{ - LASSERT(dev); - LASSERT(dev->dd_ops); - LASSERT(dev->dd_ops->dt_init_capa_ctxt); - return dev->dd_ops->dt_init_capa_ctxt(env, dev, mode, - timeout, alg, keys); -} - -static inline int dt_lookup(const struct lu_env *env, - struct dt_object *dt, - struct dt_rec *rec, - const struct dt_key *key, - struct lustre_capa *capa) -{ - int ret; - - LASSERT(dt); - LASSERT(dt->do_index_ops); - LASSERT(dt->do_index_ops->dio_lookup); - - ret = dt->do_index_ops->dio_lookup(env, dt, rec, key, capa); - if (ret > 0) - ret = 0; - else if (ret == 0) - ret = -ENOENT; - return ret; -} - -#define LU221_BAD_TIME (0x80000000U + 24 * 3600) - -struct dt_find_hint { - struct lu_fid *dfh_fid; - struct dt_device *dfh_dt; - struct dt_object *dfh_o; -}; - -struct dt_thread_info { - char dti_buf[DT_MAX_PATH]; - struct dt_find_hint dti_dfh; - struct lu_attr dti_attr; - struct lu_fid dti_fid; - struct dt_object_format dti_dof; - struct lustre_mdt_attrs dti_lma; - struct lu_buf dti_lb; - loff_t dti_off; -}; - -extern struct lu_context_key dt_key; - -static inline struct dt_thread_info *dt_info(const struct lu_env *env) -{ - struct dt_thread_info *dti; - - dti = lu_context_key_get(&env->le_ctx, &dt_key); - LASSERT(dti); - return dti; -} - -int dt_global_init(void); -void dt_global_fini(void); - -int lprocfs_dt_rd_blksize(char *page, char **start, off_t off, - int count, int *eof, void *data); -int lprocfs_dt_rd_kbytestotal(char *page, char **start, off_t off, - int count, int *eof, void *data); -int lprocfs_dt_rd_kbytesfree(char *page, char **start, off_t off, - int count, int *eof, void *data); -int lprocfs_dt_rd_kbytesavail(char *page, char **start, off_t off, - int count, int *eof, void *data); -int lprocfs_dt_rd_filestotal(char *page, char **start, off_t off, - int count, int *eof, void *data); -int lprocfs_dt_rd_filesfree(char *page, char **start, off_t off, - int count, int *eof, void *data); - -#endif /* __LUSTRE_DT_OBJECT_H */ diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index c7c8fe4cdbcc..abc93451f26c 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fid.h +++ b/drivers/staging/lustre/lustre/include/lustre_fid.h @@ -389,9 +389,6 @@ struct lu_server_seq { */ struct dt_device *lss_dev; - /* /seq file object device */ - struct dt_object *lss_obj; - /* LUSTRE_SEQ_SERVER or LUSTRE_SEQ_CONTROLLER */ enum lu_mgr_type lss_type; diff --git a/drivers/staging/lustre/lustre/include/lustre_fld.h b/drivers/staging/lustre/lustre/include/lustre_fld.h index c1f08dee3bd6..ff7230e18940 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fld.h +++ b/drivers/staging/lustre/lustre/include/lustre_fld.h @@ -70,10 +70,6 @@ struct lu_fld_target { }; struct lu_server_fld { - /** - * /fld file object device */ - struct dt_object *lsf_obj; - /** * super sequence controller export, needed to forward fld * lookup request. */ diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 24fc5fd575d7..31cb97c1f06f 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -336,9 +336,6 @@ struct client_obd { struct mdc_rpc_lock *cl_close_lock; /* mgc datastruct */ - struct mutex cl_mgc_mutex; - struct local_oid_storage *cl_mgc_los; - struct dt_object *cl_mgc_configs_dir; atomic_t cl_mgc_refcount; struct obd_export *cl_mgc_mgsexp; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c index badd227e4f67..584c4e67d90e 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c @@ -335,7 +335,6 @@ int client_obd_setup(struct obd_device *obddev, struct lustre_cfg *lcfg) } init_rwsem(&cli->cl_sem); - mutex_init(&cli->cl_mgc_mutex); cli->cl_conn_count = 0; memcpy(server_uuid.uuid, lustre_cfg_buf(lcfg, 2), min_t(unsigned int, LUSTRE_CFG_BUFLEN(lcfg, 2), diff --git a/drivers/staging/lustre/lustre/obdclass/Makefile b/drivers/staging/lustre/lustre/obdclass/Makefile index d0f70b41acf6..16174ae70dcf 100644 --- a/drivers/staging/lustre/lustre/obdclass/Makefile +++ b/drivers/staging/lustre/lustre/obdclass/Makefile @@ -5,5 +5,5 @@ obdclass-y := linux/linux-module.o linux/linux-obdo.o linux/linux-sysctl.o \ genops.o uuid.o lprocfs_status.o \ lustre_handles.o lustre_peer.o \ statfs_pack.o obdo.o obd_config.o obd_mount.o \ - lu_object.o dt_object.o capa.o cl_object.o \ + lu_object.o capa.o cl_object.o \ cl_page.o cl_lock.o cl_io.o lu_ref.o acl.o lprocfs_counters.o diff --git a/drivers/staging/lustre/lustre/obdclass/dt_object.c b/drivers/staging/lustre/lustre/obdclass/dt_object.c deleted file mode 100644 index 6b645a15d7a5..000000000000 --- a/drivers/staging/lustre/lustre/obdclass/dt_object.c +++ /dev/null @@ -1,1053 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - * - * Copyright (c) 2011, 2012, Intel Corporation. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - * - * lustre/obdclass/dt_object.c - * - * Dt Object. - * Generic functions from dt_object.h - * - * Author: Nikita Danilov - */ - -#define DEBUG_SUBSYSTEM S_CLASS - -#include "../include/obd.h" -#include "../include/dt_object.h" -#include -/* fid_be_to_cpu() */ -#include "../include/lustre_fid.h" - -/* context key constructor/destructor: dt_global_key_init, dt_global_key_fini */ -LU_KEY_INIT(dt_global, struct dt_thread_info); -LU_KEY_FINI(dt_global, struct dt_thread_info); - -struct lu_context_key dt_key = { - .lct_tags = LCT_MD_THREAD | LCT_DT_THREAD | LCT_MG_THREAD | LCT_LOCAL, - .lct_init = dt_global_key_init, - .lct_fini = dt_global_key_fini -}; -EXPORT_SYMBOL(dt_key); - -/* no lock is necessary to protect the list, because call-backs - * are added during system startup. Please refer to "struct dt_device". - */ -void dt_txn_callback_add(struct dt_device *dev, struct dt_txn_callback *cb) -{ - list_add(&cb->dtc_linkage, &dev->dd_txn_callbacks); -} -EXPORT_SYMBOL(dt_txn_callback_add); - -void dt_txn_callback_del(struct dt_device *dev, struct dt_txn_callback *cb) -{ - list_del_init(&cb->dtc_linkage); -} -EXPORT_SYMBOL(dt_txn_callback_del); - -int dt_txn_hook_start(const struct lu_env *env, - struct dt_device *dev, struct thandle *th) -{ - int rc = 0; - struct dt_txn_callback *cb; - - if (th->th_local) - return 0; - - list_for_each_entry(cb, &dev->dd_txn_callbacks, dtc_linkage) { - if (cb->dtc_txn_start == NULL || - !(cb->dtc_tag & env->le_ctx.lc_tags)) - continue; - rc = cb->dtc_txn_start(env, th, cb->dtc_cookie); - if (rc < 0) - break; - } - return rc; -} -EXPORT_SYMBOL(dt_txn_hook_start); - -int dt_txn_hook_stop(const struct lu_env *env, struct thandle *txn) -{ - struct dt_device *dev = txn->th_dev; - struct dt_txn_callback *cb; - int rc = 0; - - if (txn->th_local) - return 0; - - list_for_each_entry(cb, &dev->dd_txn_callbacks, dtc_linkage) { - if (cb->dtc_txn_stop == NULL || - !(cb->dtc_tag & env->le_ctx.lc_tags)) - continue; - rc = cb->dtc_txn_stop(env, txn, cb->dtc_cookie); - if (rc < 0) - break; - } - return rc; -} -EXPORT_SYMBOL(dt_txn_hook_stop); - -void dt_txn_hook_commit(struct thandle *txn) -{ - struct dt_txn_callback *cb; - - if (txn->th_local) - return; - - list_for_each_entry(cb, &txn->th_dev->dd_txn_callbacks, - dtc_linkage) { - if (cb->dtc_txn_commit) - cb->dtc_txn_commit(txn, cb->dtc_cookie); - } -} -EXPORT_SYMBOL(dt_txn_hook_commit); - -int dt_device_init(struct dt_device *dev, struct lu_device_type *t) -{ - - INIT_LIST_HEAD(&dev->dd_txn_callbacks); - return lu_device_init(&dev->dd_lu_dev, t); -} -EXPORT_SYMBOL(dt_device_init); - -void dt_device_fini(struct dt_device *dev) -{ - lu_device_fini(&dev->dd_lu_dev); -} -EXPORT_SYMBOL(dt_device_fini); - -int dt_object_init(struct dt_object *obj, - struct lu_object_header *h, struct lu_device *d) - -{ - return lu_object_init(&obj->do_lu, h, d); -} -EXPORT_SYMBOL(dt_object_init); - -void dt_object_fini(struct dt_object *obj) -{ - lu_object_fini(&obj->do_lu); -} -EXPORT_SYMBOL(dt_object_fini); - -int dt_try_as_dir(const struct lu_env *env, struct dt_object *obj) -{ - if (obj->do_index_ops == NULL) - obj->do_ops->do_index_try(env, obj, &dt_directory_features); - return obj->do_index_ops != NULL; -} -EXPORT_SYMBOL(dt_try_as_dir); - -enum dt_format_type dt_mode_to_dft(__u32 mode) -{ - enum dt_format_type result; - - switch (mode & S_IFMT) { - case S_IFDIR: - result = DFT_DIR; - break; - case S_IFREG: - result = DFT_REGULAR; - break; - case S_IFLNK: - result = DFT_SYM; - break; - case S_IFCHR: - case S_IFBLK: - case S_IFIFO: - case S_IFSOCK: - result = DFT_NODE; - break; - default: - LBUG(); - break; - } - return result; -} -EXPORT_SYMBOL(dt_mode_to_dft); - -/** - * lookup fid for object named \a name in directory \a dir. - */ - -int dt_lookup_dir(const struct lu_env *env, struct dt_object *dir, - const char *name, struct lu_fid *fid) -{ - if (dt_try_as_dir(env, dir)) - return dt_lookup(env, dir, (struct dt_rec *)fid, - (const struct dt_key *)name, BYPASS_CAPA); - return -ENOTDIR; -} -EXPORT_SYMBOL(dt_lookup_dir); - -/* this differs from dt_locate by top_dev as parameter - * but not one from lu_site */ -struct dt_object *dt_locate_at(const struct lu_env *env, - struct dt_device *dev, const struct lu_fid *fid, - struct lu_device *top_dev) -{ - struct lu_object *lo, *n; - - lo = lu_object_find_at(env, top_dev, fid, NULL); - if (IS_ERR(lo)) - return (void *)lo; - - LASSERT(lo != NULL); - - list_for_each_entry(n, &lo->lo_header->loh_layers, lo_linkage) { - if (n->lo_dev == &dev->dd_lu_dev) - return container_of0(n, struct dt_object, do_lu); - } - return ERR_PTR(-ENOENT); -} -EXPORT_SYMBOL(dt_locate_at); - -/** - * find a object named \a entry in given \a dfh->dfh_o directory. - */ -static int dt_find_entry(const struct lu_env *env, - const char *entry, void *data) -{ - struct dt_find_hint *dfh = data; - struct dt_device *dt = dfh->dfh_dt; - struct lu_fid *fid = dfh->dfh_fid; - struct dt_object *obj = dfh->dfh_o; - int result; - - result = dt_lookup_dir(env, obj, entry, fid); - lu_object_put(env, &obj->do_lu); - if (result == 0) { - obj = dt_locate(env, dt, fid); - if (IS_ERR(obj)) - result = PTR_ERR(obj); - } - dfh->dfh_o = obj; - return result; -} - -/** - * Abstract function which parses path name. This function feeds - * path component to \a entry_func. - */ -int dt_path_parser(const struct lu_env *env, - char *path, dt_entry_func_t entry_func, - void *data) -{ - char *e; - int rc = 0; - - while (1) { - e = strsep(&path, "/"); - if (e == NULL) - break; - - if (e[0] == 0) { - if (!path || path[0] == '\0') - break; - continue; - } - rc = entry_func(env, e, data); - if (rc) - break; - } - - return rc; -} - -struct dt_object * -dt_store_resolve(const struct lu_env *env, struct dt_device *dt, - const char *path, struct lu_fid *fid) -{ - struct dt_thread_info *info = dt_info(env); - struct dt_find_hint *dfh = &info->dti_dfh; - struct dt_object *obj; - char *local = info->dti_buf; - int result; - - - dfh->dfh_dt = dt; - dfh->dfh_fid = fid; - - strncpy(local, path, DT_MAX_PATH); - local[DT_MAX_PATH - 1] = '\0'; - - result = dt->dd_ops->dt_root_get(env, dt, fid); - if (result == 0) { - obj = dt_locate(env, dt, fid); - if (!IS_ERR(obj)) { - dfh->dfh_o = obj; - result = dt_path_parser(env, local, dt_find_entry, dfh); - if (result != 0) - obj = ERR_PTR(result); - else - obj = dfh->dfh_o; - } - } else { - obj = ERR_PTR(result); - } - return obj; -} -EXPORT_SYMBOL(dt_store_resolve); - -static struct dt_object *dt_reg_open(const struct lu_env *env, - struct dt_device *dt, - struct dt_object *p, - const char *name, - struct lu_fid *fid) -{ - struct dt_object *o; - int result; - - result = dt_lookup_dir(env, p, name, fid); - if (result == 0) - o = dt_locate(env, dt, fid); - else - o = ERR_PTR(result); - - return o; -} - -/** - * Open dt object named \a filename from \a dirname directory. - * \param dt dt device - * \param fid on success, object fid is stored in *fid - */ -struct dt_object *dt_store_open(const struct lu_env *env, - struct dt_device *dt, - const char *dirname, - const char *filename, - struct lu_fid *fid) -{ - struct dt_object *file; - struct dt_object *dir; - - dir = dt_store_resolve(env, dt, dirname, fid); - if (!IS_ERR(dir)) { - file = dt_reg_open(env, dt, dir, - filename, fid); - lu_object_put(env, &dir->do_lu); - } else { - file = dir; - } - return file; -} -EXPORT_SYMBOL(dt_store_open); - -struct dt_object *dt_find_or_create(const struct lu_env *env, - struct dt_device *dt, - const struct lu_fid *fid, - struct dt_object_format *dof, - struct lu_attr *at) -{ - struct dt_object *dto; - struct thandle *th; - int rc; - - dto = dt_locate(env, dt, fid); - if (IS_ERR(dto)) - return dto; - - LASSERT(dto != NULL); - if (dt_object_exists(dto)) - return dto; - - th = dt_trans_create(env, dt); - if (IS_ERR(th)) { - rc = PTR_ERR(th); - goto out; - } - - rc = dt_declare_create(env, dto, at, NULL, dof, th); - if (rc) - goto trans_stop; - - rc = dt_trans_start_local(env, dt, th); - if (rc) - goto trans_stop; - - dt_write_lock(env, dto, 0); - if (dt_object_exists(dto)) { - rc = 0; - goto unlock; - } - - CDEBUG(D_OTHER, "create new object "DFID"\n", PFID(fid)); - - rc = dt_create(env, dto, at, NULL, dof, th); - if (rc) - goto unlock; - LASSERT(dt_object_exists(dto)); -unlock: - dt_write_unlock(env, dto); -trans_stop: - dt_trans_stop(env, dt, th); -out: - if (rc) { - lu_object_put(env, &dto->do_lu); - return ERR_PTR(rc); - } - return dto; -} -EXPORT_SYMBOL(dt_find_or_create); - -/* dt class init function. */ -int dt_global_init(void) -{ - LU_CONTEXT_KEY_INIT(&dt_key); - return lu_context_key_register(&dt_key); -} - -void dt_global_fini(void) -{ - lu_context_key_degister(&dt_key); -} - -/** - * Generic read helper. May return an error for partial reads. - * - * \param env lustre environment - * \param dt object to be read - * \param buf lu_buf to be filled, with buffer pointer and length - * \param pos position to start reading, updated as data is read - * - * \retval real size of data read - * \retval -ve errno on failure - */ -int dt_read(const struct lu_env *env, struct dt_object *dt, - struct lu_buf *buf, loff_t *pos) -{ - LASSERTF(dt != NULL, "dt is NULL when we want to read record\n"); - return dt->do_body_ops->dbo_read(env, dt, buf, pos, BYPASS_CAPA); -} -EXPORT_SYMBOL(dt_read); - -/** - * Read structures of fixed size from storage. Unlike dt_read(), using - * dt_record_read() will return an error for partial reads. - * - * \param env lustre environment - * \param dt object to be read - * \param buf lu_buf to be filled, with buffer pointer and length - * \param pos position to start reading, updated as data is read - * - * \retval 0 on successfully reading full buffer - * \retval -EFAULT on short read - * \retval -ve errno on failure - */ -int dt_record_read(const struct lu_env *env, struct dt_object *dt, - struct lu_buf *buf, loff_t *pos) -{ - int rc; - - LASSERTF(dt != NULL, "dt is NULL when we want to read record\n"); - - rc = dt->do_body_ops->dbo_read(env, dt, buf, pos, BYPASS_CAPA); - - if (rc == buf->lb_len) - rc = 0; - else if (rc >= 0) - rc = -EFAULT; - return rc; -} -EXPORT_SYMBOL(dt_record_read); - -int dt_record_write(const struct lu_env *env, struct dt_object *dt, - const struct lu_buf *buf, loff_t *pos, struct thandle *th) -{ - int rc; - - LASSERTF(dt != NULL, "dt is NULL when we want to write record\n"); - LASSERT(th != NULL); - LASSERT(dt->do_body_ops); - LASSERT(dt->do_body_ops->dbo_write); - rc = dt->do_body_ops->dbo_write(env, dt, buf, pos, th, BYPASS_CAPA, 1); - if (rc == buf->lb_len) - rc = 0; - else if (rc >= 0) - rc = -EFAULT; - return rc; -} -EXPORT_SYMBOL(dt_record_write); - -int dt_declare_version_set(const struct lu_env *env, struct dt_object *o, - struct thandle *th) -{ - struct lu_buf vbuf; - char *xname = XATTR_NAME_VERSION; - - LASSERT(o); - vbuf.lb_buf = NULL; - vbuf.lb_len = sizeof(dt_obj_version_t); - return dt_declare_xattr_set(env, o, &vbuf, xname, 0, th); - -} -EXPORT_SYMBOL(dt_declare_version_set); - -void dt_version_set(const struct lu_env *env, struct dt_object *o, - dt_obj_version_t version, struct thandle *th) -{ - struct lu_buf vbuf; - char *xname = XATTR_NAME_VERSION; - int rc; - - LASSERT(o); - vbuf.lb_buf = &version; - vbuf.lb_len = sizeof(version); - - rc = dt_xattr_set(env, o, &vbuf, xname, 0, th, BYPASS_CAPA); - if (rc < 0) - CDEBUG(D_INODE, "Can't set version, rc %d\n", rc); - return; -} -EXPORT_SYMBOL(dt_version_set); - -dt_obj_version_t dt_version_get(const struct lu_env *env, struct dt_object *o) -{ - struct lu_buf vbuf; - char *xname = XATTR_NAME_VERSION; - dt_obj_version_t version; - int rc; - - LASSERT(o); - vbuf.lb_buf = &version; - vbuf.lb_len = sizeof(version); - rc = dt_xattr_get(env, o, &vbuf, xname, BYPASS_CAPA); - if (rc != sizeof(version)) { - CDEBUG(D_INODE, "Can't get version, rc %d\n", rc); - version = 0; - } - return version; -} -EXPORT_SYMBOL(dt_version_get); - -/* list of all supported index types */ - -/* directories */ -const struct dt_index_features dt_directory_features; -EXPORT_SYMBOL(dt_directory_features); - -/* scrub iterator */ -const struct dt_index_features dt_otable_features; -EXPORT_SYMBOL(dt_otable_features); - -/* lfsck */ -const struct dt_index_features dt_lfsck_features = { - .dif_flags = DT_IND_UPDATE, - .dif_keysize_min = sizeof(struct lu_fid), - .dif_keysize_max = sizeof(struct lu_fid), - .dif_recsize_min = sizeof(__u8), - .dif_recsize_max = sizeof(__u8), - .dif_ptrsize = 4 -}; -EXPORT_SYMBOL(dt_lfsck_features); - -/* accounting indexes */ -const struct dt_index_features dt_acct_features = { - .dif_flags = DT_IND_UPDATE, - .dif_keysize_min = sizeof(__u64), /* 64-bit uid/gid */ - .dif_keysize_max = sizeof(__u64), /* 64-bit uid/gid */ - .dif_recsize_min = sizeof(struct lquota_acct_rec), /* 16 bytes */ - .dif_recsize_max = sizeof(struct lquota_acct_rec), /* 16 bytes */ - .dif_ptrsize = 4 -}; -EXPORT_SYMBOL(dt_acct_features); - -/* global quota files */ -const struct dt_index_features dt_quota_glb_features = { - .dif_flags = DT_IND_UPDATE, - /* a different key would have to be used for per-directory quota */ - .dif_keysize_min = sizeof(__u64), /* 64-bit uid/gid */ - .dif_keysize_max = sizeof(__u64), /* 64-bit uid/gid */ - .dif_recsize_min = sizeof(struct lquota_glb_rec), /* 32 bytes */ - .dif_recsize_max = sizeof(struct lquota_glb_rec), /* 32 bytes */ - .dif_ptrsize = 4 -}; -EXPORT_SYMBOL(dt_quota_glb_features); - -/* slave quota files */ -const struct dt_index_features dt_quota_slv_features = { - .dif_flags = DT_IND_UPDATE, - /* a different key would have to be used for per-directory quota */ - .dif_keysize_min = sizeof(__u64), /* 64-bit uid/gid */ - .dif_keysize_max = sizeof(__u64), /* 64-bit uid/gid */ - .dif_recsize_min = sizeof(struct lquota_slv_rec), /* 8 bytes */ - .dif_recsize_max = sizeof(struct lquota_slv_rec), /* 8 bytes */ - .dif_ptrsize = 4 -}; -EXPORT_SYMBOL(dt_quota_slv_features); - -/* helper function returning what dt_index_features structure should be used - * based on the FID sequence. This is used by OBD_IDX_READ RPC */ -static inline const struct dt_index_features *dt_index_feat_select(__u64 seq, - __u32 mode) -{ - if (seq == FID_SEQ_QUOTA_GLB) { - /* global quota index */ - if (!S_ISREG(mode)) - /* global quota index should be a regular file */ - return ERR_PTR(-ENOENT); - return &dt_quota_glb_features; - } else if (seq == FID_SEQ_QUOTA) { - /* quota slave index */ - if (!S_ISREG(mode)) - /* slave index should be a regular file */ - return ERR_PTR(-ENOENT); - return &dt_quota_slv_features; - } else if (seq >= FID_SEQ_NORMAL) { - /* object is part of the namespace, verify that it is a - * directory */ - if (!S_ISDIR(mode)) - /* sorry, we can only deal with directory */ - return ERR_PTR(-ENOTDIR); - return &dt_directory_features; - } - - return ERR_PTR(-EOPNOTSUPP); -} - -/* - * Fill a lu_idxpage with key/record pairs read for transfer via OBD_IDX_READ - * RPC - * - * \param env - is the environment passed by the caller - * \param lp - is a pointer to the lu_page to fill - * \param nob - is the maximum number of bytes that should be copied - * \param iops - is the index operation vector associated with the index object - * \param it - is a pointer to the current iterator - * \param attr - is the index attribute to pass to iops->rec() - * \param arg - is a pointer to the idx_info structure - */ -static int dt_index_page_build(const struct lu_env *env, union lu_page *lp, - int nob, const struct dt_it_ops *iops, - struct dt_it *it, __u32 attr, void *arg) -{ - struct idx_info *ii = (struct idx_info *)arg; - struct lu_idxpage *lip = &lp->lp_idx; - char *entry; - int rc, size; - - /* no support for variable key & record size for now */ - LASSERT((ii->ii_flags & II_FL_VARKEY) == 0); - LASSERT((ii->ii_flags & II_FL_VARREC) == 0); - - /* initialize the header of the new container */ - memset(lip, 0, LIP_HDR_SIZE); - lip->lip_magic = LIP_MAGIC; - nob -= LIP_HDR_SIZE; - - /* compute size needed to store a key/record pair */ - size = ii->ii_recsize + ii->ii_keysize; - if ((ii->ii_flags & II_FL_NOHASH) == 0) - /* add hash if the client wants it */ - size += sizeof(__u64); - - entry = lip->lip_entries; - do { - char *tmp_entry = entry; - struct dt_key *key; - __u64 hash; - - /* fetch 64-bit hash value */ - hash = iops->store(env, it); - ii->ii_hash_end = hash; - - if (OBD_FAIL_CHECK(OBD_FAIL_OBD_IDX_READ_BREAK)) { - if (lip->lip_nr != 0) { - rc = 0; - goto out; - } - } - - if (nob < size) { - if (lip->lip_nr == 0) - rc = -EINVAL; - else - rc = 0; - goto out; - } - - if ((ii->ii_flags & II_FL_NOHASH) == 0) { - /* client wants to the 64-bit hash value associated with - * each record */ - memcpy(tmp_entry, &hash, sizeof(hash)); - tmp_entry += sizeof(hash); - } - - /* then the key value */ - LASSERT(iops->key_size(env, it) == ii->ii_keysize); - key = iops->key(env, it); - memcpy(tmp_entry, key, ii->ii_keysize); - tmp_entry += ii->ii_keysize; - - /* and finally the record */ - rc = iops->rec(env, it, (struct dt_rec *)tmp_entry, attr); - if (rc != -ESTALE) { - if (rc != 0) - goto out; - - /* hash/key/record successfully copied! */ - lip->lip_nr++; - if (unlikely(lip->lip_nr == 1 && ii->ii_count == 0)) - ii->ii_hash_start = hash; - entry = tmp_entry + ii->ii_recsize; - nob -= size; - } - - /* move on to the next record */ - do { - rc = iops->next(env, it); - } while (rc == -ESTALE); - - } while (rc == 0); - - goto out; -out: - if (rc >= 0 && lip->lip_nr > 0) - /* one more container */ - ii->ii_count++; - if (rc > 0) - /* no more entries */ - ii->ii_hash_end = II_END_OFF; - return rc; -} - -/* - * Walk index and fill lu_page containers with key/record pairs - * - * \param env - is the environment passed by the caller - * \param obj - is the index object to parse - * \param rdpg - is the lu_rdpg descriptor associated with the transfer - * \param filler - is the callback function responsible for filling a lu_page - * with key/record pairs in the format wanted by the caller - * \param arg - is an opaq argument passed to the filler function - * - * \retval sum (in bytes) of all filled lu_pages - * \retval -ve errno on failure - */ -int dt_index_walk(const struct lu_env *env, struct dt_object *obj, - const struct lu_rdpg *rdpg, dt_index_page_build_t filler, - void *arg) -{ - struct dt_it *it; - const struct dt_it_ops *iops; - unsigned int pageidx, nob, nlupgs = 0; - int rc; - - LASSERT(rdpg->rp_pages != NULL); - LASSERT(obj->do_index_ops != NULL); - - nob = rdpg->rp_count; - if (nob <= 0) - return -EFAULT; - - /* Iterate through index and fill containers from @rdpg */ - iops = &obj->do_index_ops->dio_it; - LASSERT(iops != NULL); - it = iops->init(env, obj, rdpg->rp_attrs, BYPASS_CAPA); - if (IS_ERR(it)) - return PTR_ERR(it); - - rc = iops->load(env, it, rdpg->rp_hash); - if (rc == 0) - /* - * Iterator didn't find record with exactly the key requested. - * - * It is currently either - * - * - positioned above record with key less than - * requested---skip it. - * - or not positioned at all (is in IAM_IT_SKEWED - * state)---position it on the next item. - */ - rc = iops->next(env, it); - else if (rc > 0) - rc = 0; - - /* Fill containers one after the other. There might be multiple - * containers per physical page. - * - * At this point and across for-loop: - * rc == 0 -> ok, proceed. - * rc > 0 -> end of index. - * rc < 0 -> error. */ - for (pageidx = 0; rc == 0 && nob > 0; pageidx++) { - union lu_page *lp; - int i; - - LASSERT(pageidx < rdpg->rp_npages); - lp = kmap(rdpg->rp_pages[pageidx]); - - /* fill lu pages */ - for (i = 0; i < LU_PAGE_COUNT; i++, lp++, nob -= LU_PAGE_SIZE) { - rc = filler(env, lp, min_t(int, nob, LU_PAGE_SIZE), - iops, it, rdpg->rp_attrs, arg); - if (rc < 0) - break; - /* one more lu_page */ - nlupgs++; - if (rc > 0) - /* end of index */ - break; - } - kunmap(rdpg->rp_pages[i]); - } - - iops->put(env, it); - iops->fini(env, it); - - if (rc >= 0) - rc = min_t(unsigned int, nlupgs * LU_PAGE_SIZE, rdpg->rp_count); - - return rc; -} -EXPORT_SYMBOL(dt_index_walk); - -/** - * Walk key/record pairs of an index and copy them into 4KB containers to be - * transferred over the network. This is the common handler for OBD_IDX_READ - * RPC processing. - * - * \param env - is the environment passed by the caller - * \param dev - is the dt_device storing the index - * \param ii - is the idx_info structure packed by the client in the - * OBD_IDX_READ request - * \param rdpg - is the lu_rdpg descriptor - * - * \retval on success, return sum (in bytes) of all filled containers - * \retval appropriate error otherwise. - */ -int dt_index_read(const struct lu_env *env, struct dt_device *dev, - struct idx_info *ii, const struct lu_rdpg *rdpg) -{ - const struct dt_index_features *feat; - struct dt_object *obj; - int rc; - - /* rp_count shouldn't be null and should be a multiple of the container - * size */ - if (rdpg->rp_count <= 0 && (rdpg->rp_count & (LU_PAGE_SIZE - 1)) != 0) - return -EFAULT; - - if (fid_seq(&ii->ii_fid) >= FID_SEQ_NORMAL) - /* we don't support directory transfer via OBD_IDX_READ for the - * time being */ - return -EOPNOTSUPP; - - if (!fid_is_quota(&ii->ii_fid)) - /* block access to all local files except quota files */ - return -EPERM; - - /* lookup index object subject to the transfer */ - obj = dt_locate(env, dev, &ii->ii_fid); - if (IS_ERR(obj)) - return PTR_ERR(obj); - if (dt_object_exists(obj) == 0) { - rc = -ENOENT; - goto out; - } - - /* fetch index features associated with index object */ - feat = dt_index_feat_select(fid_seq(&ii->ii_fid), - lu_object_attr(&obj->do_lu)); - if (IS_ERR(feat)) { - rc = PTR_ERR(feat); - goto out; - } - - /* load index feature if not done already */ - if (obj->do_index_ops == NULL) { - rc = obj->do_ops->do_index_try(env, obj, feat); - if (rc) - goto out; - } - - /* fill ii_flags with supported index features */ - ii->ii_flags &= II_FL_NOHASH; - - ii->ii_keysize = feat->dif_keysize_max; - if ((feat->dif_flags & DT_IND_VARKEY) != 0) { - /* key size is variable */ - ii->ii_flags |= II_FL_VARKEY; - /* we don't support variable key size for the time being */ - rc = -EOPNOTSUPP; - goto out; - } - - ii->ii_recsize = feat->dif_recsize_max; - if ((feat->dif_flags & DT_IND_VARREC) != 0) { - /* record size is variable */ - ii->ii_flags |= II_FL_VARREC; - /* we don't support variable record size for the time being */ - rc = -EOPNOTSUPP; - goto out; - } - - if ((feat->dif_flags & DT_IND_NONUNQ) != 0) - /* key isn't necessarily unique */ - ii->ii_flags |= II_FL_NONUNQ; - - dt_read_lock(env, obj, 0); - /* fetch object version before walking the index */ - ii->ii_version = dt_version_get(env, obj); - - /* walk the index and fill lu_idxpages with key/record pairs */ - rc = dt_index_walk(env, obj, rdpg, dt_index_page_build, ii); - dt_read_unlock(env, obj); - - if (rc == 0) { - /* index is empty */ - LASSERT(ii->ii_count == 0); - ii->ii_hash_end = II_END_OFF; - } - - goto out; -out: - lu_object_put(env, &obj->do_lu); - return rc; -} -EXPORT_SYMBOL(dt_index_read); - -int lprocfs_dt_rd_blksize(char *page, char **start, off_t off, - int count, int *eof, void *data) -{ - struct dt_device *dt = data; - struct obd_statfs osfs; - int rc = dt_statfs(NULL, dt, &osfs); - - if (rc == 0) { - *eof = 1; - rc = snprintf(page, count, "%u\n", - (unsigned) osfs.os_bsize); - } - - return rc; -} -EXPORT_SYMBOL(lprocfs_dt_rd_blksize); - -int lprocfs_dt_rd_kbytestotal(char *page, char **start, off_t off, - int count, int *eof, void *data) -{ - struct dt_device *dt = data; - struct obd_statfs osfs; - int rc = dt_statfs(NULL, dt, &osfs); - - if (rc == 0) { - __u32 blk_size = osfs.os_bsize >> 10; - __u64 result = osfs.os_blocks; - - while (blk_size >>= 1) - result <<= 1; - - *eof = 1; - rc = snprintf(page, count, "%llu\n", result); - } - - return rc; -} -EXPORT_SYMBOL(lprocfs_dt_rd_kbytestotal); - -int lprocfs_dt_rd_kbytesfree(char *page, char **start, off_t off, - int count, int *eof, void *data) -{ - struct dt_device *dt = data; - struct obd_statfs osfs; - int rc = dt_statfs(NULL, dt, &osfs); - - if (rc == 0) { - __u32 blk_size = osfs.os_bsize >> 10; - __u64 result = osfs.os_bfree; - - while (blk_size >>= 1) - result <<= 1; - - *eof = 1; - rc = snprintf(page, count, "%llu\n", result); - } - - return rc; -} -EXPORT_SYMBOL(lprocfs_dt_rd_kbytesfree); - -int lprocfs_dt_rd_kbytesavail(char *page, char **start, off_t off, - int count, int *eof, void *data) -{ - struct dt_device *dt = data; - struct obd_statfs osfs; - int rc = dt_statfs(NULL, dt, &osfs); - - if (rc == 0) { - __u32 blk_size = osfs.os_bsize >> 10; - __u64 result = osfs.os_bavail; - - while (blk_size >>= 1) - result <<= 1; - - *eof = 1; - rc = snprintf(page, count, "%llu\n", result); - } - - return rc; -} -EXPORT_SYMBOL(lprocfs_dt_rd_kbytesavail); - -int lprocfs_dt_rd_filestotal(char *page, char **start, off_t off, - int count, int *eof, void *data) -{ - struct dt_device *dt = data; - struct obd_statfs osfs; - int rc = dt_statfs(NULL, dt, &osfs); - - if (rc == 0) { - *eof = 1; - rc = snprintf(page, count, "%llu\n", osfs.os_files); - } - - return rc; -} -EXPORT_SYMBOL(lprocfs_dt_rd_filestotal); - -int lprocfs_dt_rd_filesfree(char *page, char **start, off_t off, - int count, int *eof, void *data) -{ - struct dt_device *dt = data; - struct obd_statfs osfs; - int rc = dt_statfs(NULL, dt, &osfs); - - if (rc == 0) { - *eof = 1; - rc = snprintf(page, count, "%llu\n", osfs.os_ffree); - } - - return rc; -} -EXPORT_SYMBOL(lprocfs_dt_rd_filesfree); From 9a6198c74d224c3ebcc4fb3d45c18d6310bc86e3 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:42 -0400 Subject: [PATCH 0938/2431] staging/lustre/obdclass: Remove unused lprocfs_alloc/free_obd_stats obd_stats in the form present were only used on the server, so let's remove them from the client code This also removes lprocfs_init_ops_stats helper. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lprocfs_status.h | 4 - .../lustre/lustre/obdclass/lprocfs_status.c | 105 ------------------ 2 files changed, 109 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 742cb593289d..fdb0f4ea5a02 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -539,16 +539,12 @@ extern struct lprocfs_stats * lprocfs_alloc_stats(unsigned int num, enum lprocfs_stats_flags flags); void lprocfs_clear_stats(struct lprocfs_stats *stats); void lprocfs_free_stats(struct lprocfs_stats **stats); -void lprocfs_init_ops_stats(int num_private_stats, struct lprocfs_stats *stats); void lprocfs_init_mps_stats(int num_private_stats, struct lprocfs_stats *stats); void lprocfs_init_ldlm_stats(struct lprocfs_stats *ldlm_stats); -int lprocfs_alloc_obd_stats(struct obd_device *obddev, - unsigned int num_private_stats); int lprocfs_alloc_md_stats(struct obd_device *obddev, unsigned int num_private_stats); void lprocfs_counter_init(struct lprocfs_stats *stats, int index, unsigned conf, const char *name, const char *units); -void lprocfs_free_obd_stats(struct obd_device *obddev); void lprocfs_free_md_stats(struct obd_device *obddev); struct obd_export; int lprocfs_exp_cleanup(struct obd_export *exp); diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 21da17dbded7..ee53d869c886 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -1300,111 +1300,6 @@ void lprocfs_counter_init(struct lprocfs_stats *stats, int index, } EXPORT_SYMBOL(lprocfs_counter_init); -#define LPROCFS_OBD_OP_INIT(base, stats, op) \ -do { \ - unsigned int coffset = base + OBD_COUNTER_OFFSET(op); \ - LASSERT(coffset < stats->ls_num); \ - lprocfs_counter_init(stats, coffset, 0, #op, "reqs"); \ -} while (0) - -void lprocfs_init_ops_stats(int num_private_stats, struct lprocfs_stats *stats) -{ - LPROCFS_OBD_OP_INIT(num_private_stats, stats, iocontrol); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, get_info); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, set_info_async); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, attach); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, detach); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, setup); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, precleanup); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, cleanup); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, process_config); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, postrecov); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, add_conn); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, del_conn); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, connect); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, reconnect); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, disconnect); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, fid_init); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, fid_fini); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, fid_alloc); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, statfs); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, statfs_async); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, packmd); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, unpackmd); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, preallocate); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, create); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, destroy); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, setattr); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, setattr_async); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, getattr); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, getattr_async); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, adjust_kms); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, preprw); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, commitrw); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, find_cbdata); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, init_export); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, destroy_export); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, import_event); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, notify); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, health_check); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, get_uuid); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, quotacheck); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, quotactl); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_new); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_rem); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_add); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_del); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, getref); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, putref); -} -EXPORT_SYMBOL(lprocfs_init_ops_stats); - -int lprocfs_alloc_obd_stats(struct obd_device *obd, unsigned num_private_stats) -{ - struct lprocfs_stats *stats; - unsigned int num_stats; - int rc, i; - - LASSERT(obd->obd_stats == NULL); - LASSERT(obd->obd_debugfs_entry != NULL); - LASSERT(obd->obd_cntr_base == 0); - - num_stats = ((int)sizeof(*obd->obd_type->typ_dt_ops) / sizeof(void *)) + - num_private_stats - 1 /* o_owner */; - stats = lprocfs_alloc_stats(num_stats, 0); - if (stats == NULL) - return -ENOMEM; - - lprocfs_init_ops_stats(num_private_stats, stats); - - for (i = num_private_stats; i < num_stats; i++) { - /* If this LBUGs, it is likely that an obd - * operation was added to struct obd_ops in - * , and that the corresponding line item - * LPROCFS_OBD_OP_INIT(.., .., opname) - * is missing from the list above. */ - LASSERTF(stats->ls_cnt_header[i].lc_name != NULL, - "Missing obd_stat initializer obd_op operation at offset %d.\n", - i - num_private_stats); - } - rc = ldebugfs_register_stats(obd->obd_debugfs_entry, "stats", stats); - if (rc < 0) { - lprocfs_free_stats(&stats); - } else { - obd->obd_stats = stats; - obd->obd_cntr_base = num_private_stats; - } - return rc; -} -EXPORT_SYMBOL(lprocfs_alloc_obd_stats); - -void lprocfs_free_obd_stats(struct obd_device *obd) -{ - if (obd->obd_stats) - lprocfs_free_stats(&obd->obd_stats); -} -EXPORT_SYMBOL(lprocfs_free_obd_stats); - #define LPROCFS_MD_OP_INIT(base, stats, op) \ do { \ unsigned int coffset = base + MD_COUNTER_OFFSET(op); \ From cf16e3718c3648c8ce8912e27b6c7893346ad49f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:43 -0400 Subject: [PATCH 0939/2431] staging/lustre: Remove unused lprocfs_alloc/free_md_stats This code is not called anywhere in the current client code, so we can remove it. Also remove a helper function lprocfs_init_mps_stats Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lprocfs_status.h | 4 - .../lustre/lustre/obdclass/lprocfs_status.c | 93 ------------------- 2 files changed, 97 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index fdb0f4ea5a02..825b83fd06ba 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -539,13 +539,9 @@ extern struct lprocfs_stats * lprocfs_alloc_stats(unsigned int num, enum lprocfs_stats_flags flags); void lprocfs_clear_stats(struct lprocfs_stats *stats); void lprocfs_free_stats(struct lprocfs_stats **stats); -void lprocfs_init_mps_stats(int num_private_stats, struct lprocfs_stats *stats); void lprocfs_init_ldlm_stats(struct lprocfs_stats *ldlm_stats); -int lprocfs_alloc_md_stats(struct obd_device *obddev, - unsigned int num_private_stats); void lprocfs_counter_init(struct lprocfs_stats *stats, int index, unsigned conf, const char *name, const char *units); -void lprocfs_free_md_stats(struct obd_device *obddev); struct obd_export; int lprocfs_exp_cleanup(struct obd_export *exp); struct dentry *ldebugfs_add_simple(struct dentry *root, diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index ee53d869c886..3fa5ff33be8d 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -1300,99 +1300,6 @@ void lprocfs_counter_init(struct lprocfs_stats *stats, int index, } EXPORT_SYMBOL(lprocfs_counter_init); -#define LPROCFS_MD_OP_INIT(base, stats, op) \ -do { \ - unsigned int coffset = base + MD_COUNTER_OFFSET(op); \ - LASSERT(coffset < stats->ls_num); \ - lprocfs_counter_init(stats, coffset, 0, #op, "reqs"); \ -} while (0) - -void lprocfs_init_mps_stats(int num_private_stats, struct lprocfs_stats *stats) -{ - LPROCFS_MD_OP_INIT(num_private_stats, stats, getstatus); - LPROCFS_MD_OP_INIT(num_private_stats, stats, null_inode); - LPROCFS_MD_OP_INIT(num_private_stats, stats, find_cbdata); - LPROCFS_MD_OP_INIT(num_private_stats, stats, close); - LPROCFS_MD_OP_INIT(num_private_stats, stats, create); - LPROCFS_MD_OP_INIT(num_private_stats, stats, done_writing); - LPROCFS_MD_OP_INIT(num_private_stats, stats, enqueue); - LPROCFS_MD_OP_INIT(num_private_stats, stats, getattr); - LPROCFS_MD_OP_INIT(num_private_stats, stats, getattr_name); - LPROCFS_MD_OP_INIT(num_private_stats, stats, intent_lock); - LPROCFS_MD_OP_INIT(num_private_stats, stats, link); - LPROCFS_MD_OP_INIT(num_private_stats, stats, rename); - LPROCFS_MD_OP_INIT(num_private_stats, stats, is_subdir); - LPROCFS_MD_OP_INIT(num_private_stats, stats, setattr); - LPROCFS_MD_OP_INIT(num_private_stats, stats, sync); - LPROCFS_MD_OP_INIT(num_private_stats, stats, readpage); - LPROCFS_MD_OP_INIT(num_private_stats, stats, unlink); - LPROCFS_MD_OP_INIT(num_private_stats, stats, setxattr); - LPROCFS_MD_OP_INIT(num_private_stats, stats, getxattr); - LPROCFS_MD_OP_INIT(num_private_stats, stats, init_ea_size); - LPROCFS_MD_OP_INIT(num_private_stats, stats, get_lustre_md); - LPROCFS_MD_OP_INIT(num_private_stats, stats, free_lustre_md); - LPROCFS_MD_OP_INIT(num_private_stats, stats, set_open_replay_data); - LPROCFS_MD_OP_INIT(num_private_stats, stats, clear_open_replay_data); - LPROCFS_MD_OP_INIT(num_private_stats, stats, set_lock_data); - LPROCFS_MD_OP_INIT(num_private_stats, stats, lock_match); - LPROCFS_MD_OP_INIT(num_private_stats, stats, cancel_unused); - LPROCFS_MD_OP_INIT(num_private_stats, stats, renew_capa); - LPROCFS_MD_OP_INIT(num_private_stats, stats, unpack_capa); - LPROCFS_MD_OP_INIT(num_private_stats, stats, get_remote_perm); - LPROCFS_MD_OP_INIT(num_private_stats, stats, intent_getattr_async); - LPROCFS_MD_OP_INIT(num_private_stats, stats, revalidate_lock); -} -EXPORT_SYMBOL(lprocfs_init_mps_stats); - -int lprocfs_alloc_md_stats(struct obd_device *obd, - unsigned num_private_stats) -{ - struct lprocfs_stats *stats; - unsigned int num_stats; - int rc, i; - - LASSERT(obd->md_stats == NULL); - LASSERT(obd->obd_debugfs_entry != NULL); - LASSERT(obd->md_cntr_base == 0); - - num_stats = 1 + MD_COUNTER_OFFSET(revalidate_lock) + - num_private_stats; - stats = lprocfs_alloc_stats(num_stats, 0); - if (stats == NULL) - return -ENOMEM; - - lprocfs_init_mps_stats(num_private_stats, stats); - - for (i = num_private_stats; i < num_stats; i++) { - if (stats->ls_cnt_header[i].lc_name == NULL) { - CERROR("Missing md_stat initializer md_op operation at offset %d. Aborting.\n", - i - num_private_stats); - LBUG(); - } - } - rc = ldebugfs_register_stats(obd->obd_debugfs_entry, "md_stats", stats); - if (rc < 0) { - lprocfs_free_stats(&stats); - } else { - obd->md_stats = stats; - obd->md_cntr_base = num_private_stats; - } - return rc; -} -EXPORT_SYMBOL(lprocfs_alloc_md_stats); - -void lprocfs_free_md_stats(struct obd_device *obd) -{ - struct lprocfs_stats *stats = obd->md_stats; - - if (stats != NULL) { - obd->md_stats = NULL; - obd->md_cntr_base = 0; - lprocfs_free_stats(&stats); - } -} -EXPORT_SYMBOL(lprocfs_free_md_stats); - void lprocfs_init_ldlm_stats(struct lprocfs_stats *ldlm_stats) { lprocfs_counter_init(ldlm_stats, From dcaf8882218eb01c3bfdc048a1b98097a111ebf1 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:44 -0400 Subject: [PATCH 0940/2431] staging/lustre: Remove unused lprocfs_init_ldlm_stats This is unused anywhere in the client code. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lprocfs_status.h | 1 - .../lustre/lustre/obdclass/lprocfs_status.c | 23 ------------------- 2 files changed, 24 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 825b83fd06ba..4332c12b7517 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -539,7 +539,6 @@ extern struct lprocfs_stats * lprocfs_alloc_stats(unsigned int num, enum lprocfs_stats_flags flags); void lprocfs_clear_stats(struct lprocfs_stats *stats); void lprocfs_free_stats(struct lprocfs_stats **stats); -void lprocfs_init_ldlm_stats(struct lprocfs_stats *ldlm_stats); void lprocfs_counter_init(struct lprocfs_stats *stats, int index, unsigned conf, const char *name, const char *units); struct obd_export; diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 3fa5ff33be8d..02dcc9325193 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -1300,29 +1300,6 @@ void lprocfs_counter_init(struct lprocfs_stats *stats, int index, } EXPORT_SYMBOL(lprocfs_counter_init); -void lprocfs_init_ldlm_stats(struct lprocfs_stats *ldlm_stats) -{ - lprocfs_counter_init(ldlm_stats, - LDLM_ENQUEUE - LDLM_FIRST_OPC, - 0, "ldlm_enqueue", "reqs"); - lprocfs_counter_init(ldlm_stats, - LDLM_CONVERT - LDLM_FIRST_OPC, - 0, "ldlm_convert", "reqs"); - lprocfs_counter_init(ldlm_stats, - LDLM_CANCEL - LDLM_FIRST_OPC, - 0, "ldlm_cancel", "reqs"); - lprocfs_counter_init(ldlm_stats, - LDLM_BL_CALLBACK - LDLM_FIRST_OPC, - 0, "ldlm_bl_callback", "reqs"); - lprocfs_counter_init(ldlm_stats, - LDLM_CP_CALLBACK - LDLM_FIRST_OPC, - 0, "ldlm_cp_callback", "reqs"); - lprocfs_counter_init(ldlm_stats, - LDLM_GL_CALLBACK - LDLM_FIRST_OPC, - 0, "ldlm_gl_callback", "reqs"); -} -EXPORT_SYMBOL(lprocfs_init_ldlm_stats); - int lprocfs_exp_cleanup(struct obd_export *exp) { return 0; From e3598094361898873d469c6f25fe9365ca9a8fc3 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:45 -0400 Subject: [PATCH 0941/2431] staging/lustre: Remove unused debugfs/procfs helpers These particular helpers are unused so let's get rid of them: ldebugfs_add_symlink, lprocfs_rd_u64, lprocfs_rd_atomic, lprocfs_wr_atomic, lprocfs_rd_name, lprocfs_seq_read_frac_helper Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lprocfs_status.h | 14 --- .../lustre/lustre/obdclass/lprocfs_status.c | 113 ------------------ 2 files changed, 127 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 4332c12b7517..5262b4f21613 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -547,9 +547,6 @@ struct dentry *ldebugfs_add_simple(struct dentry *root, char *name, void *data, struct file_operations *fops); -struct dentry * -ldebugfs_add_symlink(const char *name, struct dentry *parent, - const char *format, ...); int ldebugfs_register_stats(struct dentry *parent, const char *name, @@ -584,14 +581,9 @@ int ldebugfs_obd_seq_create(struct obd_device *dev, /* Generic callbacks */ -int lprocfs_rd_u64(struct seq_file *m, void *data); -int lprocfs_rd_atomic(struct seq_file *m, void *data); -int lprocfs_wr_atomic(struct file *file, const char __user *buffer, - unsigned long count, void *data); int lprocfs_rd_uint(struct seq_file *m, void *data); int lprocfs_wr_uint(struct file *file, const char __user *buffer, unsigned long count, void *data); -int lprocfs_rd_name(struct seq_file *m, void *data); int lprocfs_rd_server_uuid(struct seq_file *m, void *data); int lprocfs_rd_conn_uuid(struct seq_file *m, void *data); int lprocfs_rd_import(struct seq_file *m, void *data); @@ -615,7 +607,6 @@ int lprocfs_wr_pinger_recov(struct file *file, const char __user *buffer, int lprocfs_write_helper(const char __user *buffer, unsigned long count, int *val); -int lprocfs_seq_read_frac_helper(struct seq_file *m, long val, int mult); int lprocfs_write_u64_helper(const char __user *buffer, unsigned long count, __u64 *val); int lprocfs_write_frac_u64_helper(const char *buffer, @@ -733,11 +724,6 @@ extern const struct sysfs_ops lustre_sysfs_ops; struct ptlrpc_request; void target_print_req(void *seq_file, struct ptlrpc_request *req); -/* lproc_status.c */ -int lprocfs_obd_rd_max_pages_per_rpc(struct seq_file *m, void *data); -int lprocfs_obd_wr_max_pages_per_rpc(struct file *file, const char *buffer, - size_t count, loff_t *off); - /* all quota proc functions */ int lprocfs_quota_rd_bunit(char *page, char **start, loff_t off, int count, diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 02dcc9325193..da4afe08ca62 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -264,36 +264,6 @@ struct dentry *ldebugfs_add_simple(struct dentry *root, } EXPORT_SYMBOL(ldebugfs_add_simple); -struct dentry *ldebugfs_add_symlink(const char *name, struct dentry *parent, - const char *format, ...) -{ - struct dentry *entry; - char *dest; - va_list ap; - - if (parent == NULL || format == NULL) - return NULL; - - dest = kzalloc(MAX_STRING_SIZE + 1, GFP_KERNEL); - if (!dest) - return NULL; - - va_start(ap, format); - vsnprintf(dest, MAX_STRING_SIZE, format, ap); - va_end(ap); - - entry = debugfs_create_symlink(name, parent, dest); - if (IS_ERR_OR_NULL(entry)) { - CERROR("LdebugFS: Could not create symbolic link from %s to %s", - name, dest); - entry = NULL; - } - - kfree(dest); - return entry; -} -EXPORT_SYMBOL(ldebugfs_add_symlink); - static struct file_operations lprocfs_generic_fops = { }; int ldebugfs_add_vars(struct dentry *parent, @@ -388,41 +358,6 @@ int lprocfs_wr_uint(struct file *file, const char __user *buffer, } EXPORT_SYMBOL(lprocfs_wr_uint); -int lprocfs_rd_u64(struct seq_file *m, void *data) -{ - seq_printf(m, "%llu\n", *(__u64 *)data); - return 0; -} -EXPORT_SYMBOL(lprocfs_rd_u64); - -int lprocfs_rd_atomic(struct seq_file *m, void *data) -{ - atomic_t *atom = data; - LASSERT(atom != NULL); - seq_printf(m, "%d\n", atomic_read(atom)); - return 0; -} -EXPORT_SYMBOL(lprocfs_rd_atomic); - -int lprocfs_wr_atomic(struct file *file, const char __user *buffer, - unsigned long count, void *data) -{ - atomic_t *atm = data; - int val = 0; - int rc; - - rc = lprocfs_write_helper(buffer, count, &val); - if (rc < 0) - return rc; - - if (val <= 0) - return -ERANGE; - - atomic_set(atm, val); - return count; -} -EXPORT_SYMBOL(lprocfs_wr_atomic); - static ssize_t uuid_show(struct kobject *kobj, struct attribute *attr, char *buf) { @@ -433,16 +368,6 @@ static ssize_t uuid_show(struct kobject *kobj, struct attribute *attr, } LUSTRE_RO_ATTR(uuid); -int lprocfs_rd_name(struct seq_file *m, void *data) -{ - struct obd_device *dev = data; - - LASSERT(dev != NULL); - seq_printf(m, "%s\n", dev->obd_name); - return 0; -} -EXPORT_SYMBOL(lprocfs_rd_name); - static ssize_t blocksize_show(struct kobject *kobj, struct attribute *attr, char *buf) { @@ -1355,31 +1280,6 @@ int lprocfs_write_helper(const char __user *buffer, unsigned long count, } EXPORT_SYMBOL(lprocfs_write_helper); -int lprocfs_seq_read_frac_helper(struct seq_file *m, long val, int mult) -{ - long decimal_val, frac_val; - - decimal_val = val / mult; - seq_printf(m, "%ld", decimal_val); - frac_val = val % mult; - - if (frac_val > 0) { - frac_val *= 100; - frac_val /= mult; - } - if (frac_val > 0) { - /* Three cases: x0, xx, 0x */ - if ((frac_val % 10) != 0) - seq_printf(m, ".%ld", frac_val); - else - seq_printf(m, ".%ld", frac_val / 10); - } - - seq_printf(m, "\n"); - return 0; -} -EXPORT_SYMBOL(lprocfs_seq_read_frac_helper); - int lprocfs_write_u64_helper(const char __user *buffer, unsigned long count, __u64 *val) { @@ -1567,19 +1467,6 @@ void lprocfs_oh_clear(struct obd_histogram *oh) } EXPORT_SYMBOL(lprocfs_oh_clear); -int lprocfs_obd_rd_max_pages_per_rpc(struct seq_file *m, void *data) -{ - struct obd_device *dev = data; - struct client_obd *cli = &dev->u.cli; - - client_obd_list_lock(&cli->cl_loi_list_lock); - seq_printf(m, "%d\n", cli->cl_max_pages_per_rpc); - client_obd_list_unlock(&cli->cl_loi_list_lock); - - return 0; -} -EXPORT_SYMBOL(lprocfs_obd_rd_max_pages_per_rpc); - ssize_t lustre_attr_show(struct kobject *kobj, struct attribute *attr, char *buf) { From ef2e0f55ec2e893748f024e0873a58db9d1d10de Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:46 -0400 Subject: [PATCH 0942/2431] staging/lustre: Remove mds/ost capabilities support Client capabilities is an outdated feature that never worked properly, so let's get rid of the client support since modern servers don't have this support either. The patch is big, but since it just removes one large feature, so it's hopefully easy to verify. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/cl_object.h | 4 - .../staging/lustre/lustre/include/lclient.h | 3 +- .../lustre/lustre/include/lustre/lustre_idl.h | 24 - .../lustre/lustre/include/lustre_capa.h | 305 -------- .../lustre/lustre/include/lustre_mds.h | 5 - drivers/staging/lustre/lustre/include/obd.h | 40 +- .../staging/lustre/lustre/include/obd_class.h | 57 +- .../lustre/lustre/lclient/lcommon_cl.c | 11 +- drivers/staging/lustre/lustre/llite/Makefile | 2 +- drivers/staging/lustre/lustre/llite/file.c | 40 +- .../staging/lustre/lustre/llite/llite_capa.c | 661 ------------------ .../lustre/lustre/llite/llite_internal.h | 27 +- .../staging/lustre/lustre/llite/llite_lib.c | 71 +- drivers/staging/lustre/lustre/llite/namei.c | 10 +- .../staging/lustre/lustre/llite/remote_perm.c | 5 +- drivers/staging/lustre/lustre/llite/rw.c | 8 - .../staging/lustre/lustre/llite/statahead.c | 32 +- drivers/staging/lustre/lustre/llite/super25.c | 14 +- drivers/staging/lustre/lustre/llite/xattr.c | 10 +- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 53 +- drivers/staging/lustre/lustre/lov/lov_io.c | 2 - drivers/staging/lustre/lustre/lov/lov_obd.c | 22 +- .../staging/lustre/lustre/lov/lov_request.c | 2 - .../staging/lustre/lustre/mdc/mdc_internal.h | 18 +- drivers/staging/lustre/lustre/mdc/mdc_lib.c | 48 +- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 37 +- drivers/staging/lustre/lustre/mdc/mdc_reint.c | 19 - .../staging/lustre/lustre/mdc/mdc_request.c | 233 +----- .../staging/lustre/lustre/obdclass/Makefile | 2 +- drivers/staging/lustre/lustre/obdclass/capa.c | 421 ----------- .../lustre/lustre/obdclass/class_obd.c | 3 - .../staging/lustre/lustre/obdclass/genops.c | 8 - .../lustre/lustre/obdecho/echo_client.c | 6 +- drivers/staging/lustre/lustre/osc/osc_io.c | 2 - .../staging/lustre/lustre/osc/osc_request.c | 61 +- 35 files changed, 114 insertions(+), 2152 deletions(-) delete mode 100644 drivers/staging/lustre/lustre/include/lustre_capa.h delete mode 100644 drivers/staging/lustre/lustre/llite/llite_capa.c delete mode 100644 drivers/staging/lustre/lustre/obdclass/capa.c diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index 90fbaa22e510..b2366ca8b863 100644 --- a/drivers/staging/lustre/lustre/include/cl_object.h +++ b/drivers/staging/lustre/lustre/include/cl_object.h @@ -2335,7 +2335,6 @@ struct cl_io { struct cl_setattr_io { struct ost_lvb sa_attr; unsigned int sa_valid; - struct obd_capa *sa_capa; } ci_setattr; struct cl_fault_io { /** page index within file. */ @@ -2354,7 +2353,6 @@ struct cl_io { struct cl_fsync_io { loff_t fi_start; loff_t fi_end; - struct obd_capa *fi_capa; /** file system level fid */ struct lu_fid *fi_fid; enum cl_fsync_mode fi_mode; @@ -2473,8 +2471,6 @@ struct cl_io { struct cl_req_attr { /** Generic attributes for the server consumption. */ struct obdo *cra_oa; - /** Capability. */ - struct obd_capa *cra_capa; /** Jobid */ char cra_jobid[JOBSTATS_JOBID_SIZE]; }; diff --git a/drivers/staging/lustre/lustre/include/lclient.h b/drivers/staging/lustre/lustre/include/lclient.h index c5c3a8d9eaa4..67d41bb8bbc0 100644 --- a/drivers/staging/lustre/lustre/include/lclient.h +++ b/drivers/staging/lustre/lustre/include/lclient.h @@ -371,8 +371,7 @@ struct page *cl2vm_page (const struct cl_page_slice *slice); struct inode *ccc_object_inode(const struct cl_object *obj); struct ccc_object *cl_inode2ccc (struct inode *inode); -int cl_setattr_ost(struct inode *inode, const struct iattr *attr, - struct obd_capa *capa); +int cl_setattr_ost(struct inode *inode, const struct iattr *attr); struct cl_page *ccc_vmpage_page_transient(struct page *vmpage); int ccc_object_invariant(const struct cl_object *obj); diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index d20e199eb770..057fa19186f0 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -3509,30 +3509,6 @@ enum { #define CAPA_OPC_MDS_DEFAULT ~CAPA_OPC_OSS_ONLY #define CAPA_OPC_OSS_DEFAULT ~(CAPA_OPC_MDS_ONLY | CAPA_OPC_OSS_ONLY) -/* MDS capability covers object capability for operations of body r/w - * (dir readpage/sendpage), index lookup/insert/delete and meta data r/w, - * while OSS capability only covers object capability for operations of - * oss data(file content) r/w/truncate. - */ -static inline int capa_for_mds(struct lustre_capa *c) -{ - return (c->lc_opc & CAPA_OPC_INDEX_LOOKUP) != 0; -} - -static inline int capa_for_oss(struct lustre_capa *c) -{ - return (c->lc_opc & CAPA_OPC_INDEX_LOOKUP) == 0; -} - -/* lustre_capa::lc_hmac_alg */ -enum { - CAPA_HMAC_ALG_SHA1 = 1, /**< sha1 algorithm */ - CAPA_HMAC_ALG_MAX, -}; - -#define CAPA_FL_MASK 0x00ffffff -#define CAPA_HMAC_ALG_MASK 0xff000000 - struct lustre_capa_key { __u64 lk_seq; /**< mds# */ __u32 lk_keyid; /**< key# */ diff --git a/drivers/staging/lustre/lustre/include/lustre_capa.h b/drivers/staging/lustre/lustre/include/lustre_capa.h deleted file mode 100644 index 11bcdb935443..000000000000 --- a/drivers/staging/lustre/lustre/include/lustre_capa.h +++ /dev/null @@ -1,305 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - * - * Copyright (c) 2012, Intel Corporation. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - * - * lustre/include/lustre_capa.h - * - * Author: Lai Siyao - */ - -#ifndef __LINUX_CAPA_H_ -#define __LINUX_CAPA_H_ - -/** \defgroup capa capa - * - * @{ - */ - -/* - * capability - */ -#include -#include "lustre/lustre_idl.h" - -#define CAPA_TIMEOUT 1800 /* sec, == 30 min */ -#define CAPA_KEY_TIMEOUT (24 * 60 * 60) /* sec, == 1 days */ - -struct capa_hmac_alg { - const char *ha_name; - int ha_len; - int ha_keylen; -}; - -#define DEF_CAPA_HMAC_ALG(name, type, len, keylen) \ -[CAPA_HMAC_ALG_ ## type] = { \ - .ha_name = name, \ - .ha_len = len, \ - .ha_keylen = keylen, \ -} - -struct client_capa { - struct inode *inode; - struct list_head lli_list; /* link to lli_oss_capas */ -}; - -struct target_capa { - struct hlist_node c_hash; /* link to capa hash */ -}; - -struct obd_capa { - struct list_head c_list; /* link to capa_list */ - - struct lustre_capa c_capa; /* capa */ - atomic_t c_refc; /* ref count */ - unsigned long c_expiry; /* jiffies */ - spinlock_t c_lock; /* protect capa content */ - int c_site; - - union { - struct client_capa cli; - struct target_capa tgt; - } u; -}; - -enum { - CAPA_SITE_CLIENT = 0, - CAPA_SITE_SERVER, - CAPA_SITE_MAX -}; - -static inline struct lu_fid *capa_fid(struct lustre_capa *capa) -{ - return &capa->lc_fid; -} - -static inline __u64 capa_opc(struct lustre_capa *capa) -{ - return capa->lc_opc; -} - -static inline __u64 capa_uid(struct lustre_capa *capa) -{ - return capa->lc_uid; -} - -static inline __u64 capa_gid(struct lustre_capa *capa) -{ - return capa->lc_gid; -} - -static inline __u32 capa_flags(struct lustre_capa *capa) -{ - return capa->lc_flags & 0xffffff; -} - -static inline __u32 capa_alg(struct lustre_capa *capa) -{ - return (capa->lc_flags >> 24); -} - -static inline __u32 capa_keyid(struct lustre_capa *capa) -{ - return capa->lc_keyid; -} - -static inline __u64 capa_key_seq(struct lustre_capa_key *key) -{ - return key->lk_seq; -} - -static inline __u32 capa_key_keyid(struct lustre_capa_key *key) -{ - return key->lk_keyid; -} - -static inline __u32 capa_timeout(struct lustre_capa *capa) -{ - return capa->lc_timeout; -} - -static inline __u32 capa_expiry(struct lustre_capa *capa) -{ - return capa->lc_expiry; -} - -void _debug_capa(struct lustre_capa *, struct libcfs_debug_msg_data *, - const char *fmt, ...); -#define DEBUG_CAPA(level, capa, fmt, args...) \ -do { \ - if (((level) & D_CANTMASK) != 0 || \ - ((libcfs_debug & (level)) != 0 && \ - (libcfs_subsystem_debug & DEBUG_SUBSYSTEM) != 0)) { \ - LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, level, NULL); \ - _debug_capa((capa), &msgdata, fmt, ##args); \ - } \ -} while (0) - -#define DEBUG_CAPA_KEY(level, k, fmt, args...) \ -do { \ -CDEBUG(level, fmt " capability key@%p seq %llu keyid %u\n", \ - ##args, k, capa_key_seq(k), capa_key_keyid(k)); \ -} while (0) - -typedef int (*renew_capa_cb_t)(struct obd_capa *, struct lustre_capa *); - -/* obdclass/capa.c */ -extern struct list_head capa_list[]; -extern spinlock_t capa_lock; -extern int capa_count[]; -extern struct kmem_cache *capa_cachep; - -struct hlist_head *init_capa_hash(void); -void cleanup_capa_hash(struct hlist_head *hash); - -struct obd_capa *capa_add(struct hlist_head *hash, - struct lustre_capa *capa); -struct obd_capa *capa_lookup(struct hlist_head *hash, - struct lustre_capa *capa, int alive); - -int capa_hmac(__u8 *hmac, struct lustre_capa *capa, __u8 *key); -int capa_encrypt_id(__u32 *d, __u32 *s, __u8 *key, int keylen); -int capa_decrypt_id(__u32 *d, __u32 *s, __u8 *key, int keylen); -void capa_cpy(void *dst, struct obd_capa *ocapa); -static inline struct obd_capa *alloc_capa(int site) -{ - struct obd_capa *ocapa; - - if (unlikely(site != CAPA_SITE_CLIENT && site != CAPA_SITE_SERVER)) - return ERR_PTR(-EINVAL); - - OBD_SLAB_ALLOC_PTR(ocapa, capa_cachep); - if (unlikely(!ocapa)) - return ERR_PTR(-ENOMEM); - - INIT_LIST_HEAD(&ocapa->c_list); - atomic_set(&ocapa->c_refc, 1); - spin_lock_init(&ocapa->c_lock); - ocapa->c_site = site; - if (ocapa->c_site == CAPA_SITE_CLIENT) - INIT_LIST_HEAD(&ocapa->u.cli.lli_list); - else - INIT_HLIST_NODE(&ocapa->u.tgt.c_hash); - - return ocapa; -} - -static inline struct obd_capa *capa_get(struct obd_capa *ocapa) -{ - if (!ocapa) - return NULL; - - atomic_inc(&ocapa->c_refc); - return ocapa; -} - -static inline void capa_put(struct obd_capa *ocapa) -{ - if (!ocapa) - return; - - if (atomic_read(&ocapa->c_refc) == 0) { - DEBUG_CAPA(D_ERROR, &ocapa->c_capa, "refc is 0 for"); - LBUG(); - } - - if (atomic_dec_and_test(&ocapa->c_refc)) { - LASSERT(list_empty(&ocapa->c_list)); - if (ocapa->c_site == CAPA_SITE_CLIENT) { - LASSERT(list_empty(&ocapa->u.cli.lli_list)); - } else { - struct hlist_node *hnode; - - hnode = &ocapa->u.tgt.c_hash; - LASSERT(!hnode->next && !hnode->pprev); - } - OBD_SLAB_FREE(ocapa, capa_cachep, sizeof(*ocapa)); - } -} - -static inline int open_flags_to_accmode(int flags) -{ - int mode = flags; - - if ((mode + 1) & O_ACCMODE) - mode++; - if (mode & O_TRUNC) - mode |= 2; - - return mode; -} - -static inline __u64 capa_open_opc(int mode) -{ - return mode & FMODE_WRITE ? CAPA_OPC_OSS_WRITE : CAPA_OPC_OSS_READ; -} - -static inline void set_capa_expiry(struct obd_capa *ocapa) -{ - unsigned long expiry = cfs_time_sub((unsigned long)ocapa->c_capa.lc_expiry, - get_seconds()); - ocapa->c_expiry = cfs_time_add(cfs_time_current(), - cfs_time_seconds(expiry)); -} - -static inline int capa_is_expired_sec(struct lustre_capa *capa) -{ - return (capa->lc_expiry - get_seconds() <= 0); -} - -static inline int capa_is_expired(struct obd_capa *ocapa) -{ - return time_before_eq(ocapa->c_expiry, cfs_time_current()); -} - -static inline int capa_opc_supported(struct lustre_capa *capa, __u64 opc) -{ - return (capa_opc(capa) & opc) == opc; -} - -struct filter_capa_key { - struct list_head k_list; - struct lustre_capa_key k_key; -}; - -enum { - LC_ID_NONE = 0, - LC_ID_PLAIN = 1, - LC_ID_CONVERT = 2 -}; - -#define BYPASS_CAPA (struct lustre_capa *)ERR_PTR(-ENOENT) - -/** @} capa */ - -#endif /* __LINUX_CAPA_H_ */ diff --git a/drivers/staging/lustre/lustre/include/lustre_mds.h b/drivers/staging/lustre/lustre/include/lustre_mds.h index f0cce41c55c0..a16eb8b61178 100644 --- a/drivers/staging/lustre/lustre/include/lustre_mds.h +++ b/drivers/staging/lustre/lustre/include/lustre_mds.h @@ -59,11 +59,6 @@ struct mds_group_info { int group; }; -struct mds_capa_info { - struct obd_uuid *uuid; - struct lustre_capa_key *capa; -}; - #define MDD_OBD_NAME "mdd_obd" #define MDD_OBD_UUID "mdd_obd_uuid" diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 31cb97c1f06f..e8317b8e1faa 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -54,7 +54,6 @@ #include "lustre_export.h" #include "lustre_fid.h" #include "lustre_fld.h" -#include "lustre_capa.h" #define MAX_OBD_DEVICES 8192 @@ -162,9 +161,6 @@ struct obd_info { * request in osc level for enqueue requests. It is also possible to * update some caller data from LOV layer if needed. */ obd_enqueue_update_f oi_cb_up; - /* oss capability, its type is obd_capa in client to avoid copy. - * in contrary its type is lustre_capa in OSS. */ - void *oi_capa; }; void lov_stripe_lock(struct lov_stripe_md *md); @@ -853,7 +849,6 @@ enum obd_cleanup_stage { #define KEY_ASYNC "async" #define KEY_BLOCKSIZE_BITS "blocksize_bits" #define KEY_BLOCKSIZE "blocksize" -#define KEY_CAPA_KEY "capa_key" #define KEY_CHANGELOG_CLEAR "changelog_clear" #define KEY_FID2PATH "fid2path" #define KEY_CHECKSUM "checksum" @@ -956,10 +951,6 @@ struct md_op_data { __u64 op_ioepoch; __u32 op_flags; - /* Capa fields */ - struct obd_capa *op_capa1; - struct obd_capa *op_capa2; - /* Various operation flags. */ enum mds_op_bias op_bias; @@ -1060,14 +1051,12 @@ struct obd_ops { struct lov_stripe_md **mem_tgt, struct lov_mds_md *disk_src, int disk_len); int (*o_preallocate)(struct lustre_handle *, u32 *req, u64 *ids); - /* FIXME: add fid capability support for create & destroy! */ int (*o_create)(const struct lu_env *env, struct obd_export *exp, struct obdo *oa, struct lov_stripe_md **ea, struct obd_trans_info *oti); int (*o_destroy)(const struct lu_env *env, struct obd_export *exp, struct obdo *oa, struct lov_stripe_md *ea, - struct obd_trans_info *oti, struct obd_export *md_exp, - void *capa); + struct obd_trans_info *oti, struct obd_export *md_exp); int (*o_setattr)(const struct lu_env *, struct obd_export *exp, struct obd_info *oinfo, struct obd_trans_info *oti); int (*o_setattr_async)(struct obd_export *exp, struct obd_info *oinfo, @@ -1083,7 +1072,7 @@ struct obd_ops { struct obd_export *exp, struct obdo *oa, int objcount, struct obd_ioobj *obj, struct niobuf_remote *remote, int *nr_pages, struct niobuf_local *local, - struct obd_trans_info *oti, struct lustre_capa *capa); + struct obd_trans_info *oti); int (*o_commitrw)(const struct lu_env *env, int cmd, struct obd_export *exp, struct obdo *oa, int objcount, struct obd_ioobj *obj, @@ -1151,8 +1140,6 @@ struct lustre_md { struct posix_acl *posix_acl; #endif struct mdt_remote_perm *remote_perm; - struct obd_capa *mds_capa; - struct obd_capa *oss_capa; }; struct md_open_data { @@ -1166,8 +1153,7 @@ struct md_open_data { struct lookup_intent; struct md_ops { - int (*m_getstatus)(struct obd_export *, struct lu_fid *, - struct obd_capa **); + int (*m_getstatus)(struct obd_export *, struct lu_fid *); int (*m_null_inode)(struct obd_export *, const struct lu_fid *); int (*m_find_cbdata)(struct obd_export *, const struct lu_fid *, ldlm_iterator_t, void *); @@ -1202,7 +1188,7 @@ struct md_ops { int, void *, int, struct ptlrpc_request **, struct md_open_data **mod); int (*m_sync)(struct obd_export *, const struct lu_fid *, - struct obd_capa *, struct ptlrpc_request **); + struct ptlrpc_request **); int (*m_readpage)(struct obd_export *, struct md_op_data *, struct page **, struct ptlrpc_request **); @@ -1210,13 +1196,11 @@ struct md_ops { struct ptlrpc_request **); int (*m_setxattr)(struct obd_export *, const struct lu_fid *, - struct obd_capa *, u64, const char *, - const char *, int, int, int, __u32, + u64, const char *, const char *, int, int, int, __u32, struct ptlrpc_request **); int (*m_getxattr)(struct obd_export *, const struct lu_fid *, - struct obd_capa *, u64, const char *, - const char *, int, int, int, + u64, const char *, const char *, int, int, int, struct ptlrpc_request **); int (*m_init_ea_size)(struct obd_export *, int, int, int, int); @@ -1242,14 +1226,9 @@ struct md_ops { int (*m_cancel_unused)(struct obd_export *, const struct lu_fid *, ldlm_policy_data_t *, ldlm_mode_t, ldlm_cancel_flags_t flags, void *opaque); - int (*m_renew_capa)(struct obd_export *, struct obd_capa *oc, - renew_capa_cb_t cb); - int (*m_unpack_capa)(struct obd_export *, struct ptlrpc_request *, - const struct req_msg_field *, struct obd_capa **); int (*m_get_remote_perm)(struct obd_export *, const struct lu_fid *, - struct obd_capa *, __u32, - struct ptlrpc_request **); + __u32, struct ptlrpc_request **); int (*m_intent_getattr_async)(struct obd_export *, struct md_enqueue_info *, @@ -1298,11 +1277,6 @@ static inline const struct lsm_operations *lsm_op_find(int magic) #define OBD_CALC_STRIPE_START 1 #define OBD_CALC_STRIPE_END 2 -static inline struct lustre_capa *oinfo_capa(struct obd_info *oinfo) -{ - return oinfo->oi_capa; -} - static inline struct md_open_data *obd_mod_alloc(void) { struct md_open_data *mod; diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 08ec2d016e40..8bfdc9764468 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -760,14 +760,14 @@ static inline int obd_create(const struct lu_env *env, struct obd_export *exp, static inline int obd_destroy(const struct lu_env *env, struct obd_export *exp, struct obdo *obdo, struct lov_stripe_md *ea, struct obd_trans_info *oti, - struct obd_export *md_exp, void *capa) + struct obd_export *md_exp) { int rc; EXP_CHECK_DT_OP(exp, destroy); EXP_COUNTER_INCREMENT(exp, destroy); - rc = OBP(exp->exp_obd, destroy)(env, exp, obdo, ea, oti, md_exp, capa); + rc = OBP(exp->exp_obd, destroy)(env, exp, obdo, ea, oti, md_exp); return rc; } @@ -1168,8 +1168,7 @@ static inline int obd_preprw(const struct lu_env *env, int cmd, int objcount, struct obd_ioobj *obj, struct niobuf_remote *remote, int *pages, struct niobuf_local *local, - struct obd_trans_info *oti, - struct lustre_capa *capa) + struct obd_trans_info *oti) { int rc; @@ -1177,7 +1176,7 @@ static inline int obd_preprw(const struct lu_env *env, int cmd, EXP_COUNTER_INCREMENT(exp, preprw); rc = OBP(exp->exp_obd, preprw)(env, cmd, exp, oa, objcount, obj, remote, - pages, local, oti, capa); + pages, local, oti); return rc; } @@ -1425,14 +1424,13 @@ static inline int obd_unregister_lock_cancel_cb(struct obd_export *exp, #endif /* metadata helpers */ -static inline int md_getstatus(struct obd_export *exp, - struct lu_fid *fid, struct obd_capa **pc) +static inline int md_getstatus(struct obd_export *exp, struct lu_fid *fid) { int rc; EXP_CHECK_MD_OP(exp, getstatus); EXP_MD_COUNTER_INCREMENT(exp, getstatus); - rc = MDP(exp->exp_obd, getstatus)(exp, fid, pc); + rc = MDP(exp->exp_obd, getstatus)(exp, fid); return rc; } @@ -1607,13 +1605,13 @@ static inline int md_setattr(struct obd_export *exp, struct md_op_data *op_data, } static inline int md_sync(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, struct ptlrpc_request **request) + struct ptlrpc_request **request) { int rc; EXP_CHECK_MD_OP(exp, sync); EXP_MD_COUNTER_INCREMENT(exp, sync); - rc = MDP(exp->exp_obd, sync)(exp, fid, oc, request); + rc = MDP(exp->exp_obd, sync)(exp, fid, request); return rc; } @@ -1659,8 +1657,7 @@ static inline int md_free_lustre_md(struct obd_export *exp, return MDP(exp->exp_obd, free_lustre_md)(exp, md); } -static inline int md_setxattr(struct obd_export *exp, - const struct lu_fid *fid, struct obd_capa *oc, +static inline int md_setxattr(struct obd_export *exp, const struct lu_fid *fid, u64 valid, const char *name, const char *input, int input_size, int output_size, int flags, __u32 suppgid, @@ -1668,13 +1665,12 @@ static inline int md_setxattr(struct obd_export *exp, { EXP_CHECK_MD_OP(exp, setxattr); EXP_MD_COUNTER_INCREMENT(exp, setxattr); - return MDP(exp->exp_obd, setxattr)(exp, fid, oc, valid, name, input, + return MDP(exp->exp_obd, setxattr)(exp, fid, valid, name, input, input_size, output_size, flags, suppgid, request); } -static inline int md_getxattr(struct obd_export *exp, - const struct lu_fid *fid, struct obd_capa *oc, +static inline int md_getxattr(struct obd_export *exp, const struct lu_fid *fid, u64 valid, const char *name, const char *input, int input_size, int output_size, int flags, @@ -1682,7 +1678,7 @@ static inline int md_getxattr(struct obd_export *exp, { EXP_CHECK_MD_OP(exp, getxattr); EXP_MD_COUNTER_INCREMENT(exp, getxattr); - return MDP(exp->exp_obd, getxattr)(exp, fid, oc, valid, name, input, + return MDP(exp->exp_obd, getxattr)(exp, fid, valid, name, input, input_size, output_size, flags, request); } @@ -1753,40 +1749,15 @@ static inline int md_init_ea_size(struct obd_export *exp, int easize, } static inline int md_get_remote_perm(struct obd_export *exp, - const struct lu_fid *fid, - struct obd_capa *oc, __u32 suppgid, + const struct lu_fid *fid, __u32 suppgid, struct ptlrpc_request **request) { EXP_CHECK_MD_OP(exp, get_remote_perm); EXP_MD_COUNTER_INCREMENT(exp, get_remote_perm); - return MDP(exp->exp_obd, get_remote_perm)(exp, fid, oc, suppgid, + return MDP(exp->exp_obd, get_remote_perm)(exp, fid, suppgid, request); } -static inline int md_renew_capa(struct obd_export *exp, struct obd_capa *ocapa, - renew_capa_cb_t cb) -{ - int rc; - - EXP_CHECK_MD_OP(exp, renew_capa); - EXP_MD_COUNTER_INCREMENT(exp, renew_capa); - rc = MDP(exp->exp_obd, renew_capa)(exp, ocapa, cb); - return rc; -} - -static inline int md_unpack_capa(struct obd_export *exp, - struct ptlrpc_request *req, - const struct req_msg_field *field, - struct obd_capa **oc) -{ - int rc; - - EXP_CHECK_MD_OP(exp, unpack_capa); - EXP_MD_COUNTER_INCREMENT(exp, unpack_capa); - rc = MDP(exp->exp_obd, unpack_capa)(exp, req, field, oc); - return rc; -} - static inline int md_intent_getattr_async(struct obd_export *exp, struct md_enqueue_info *minfo, struct ldlm_enqueue_info *einfo) diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index 9053f8116298..f049d5598ad4 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c @@ -896,7 +896,6 @@ void ccc_req_completion(const struct lu_env *env, * * - o_ioepoch, * - * and capability. */ void ccc_req_attr_set(const struct lu_env *env, const struct cl_req_slice *slice, @@ -911,12 +910,6 @@ void ccc_req_attr_set(const struct lu_env *env, inode = ccc_object_inode(obj); valid_flags = OBD_MD_FLTYPE; - if ((flags & OBD_MD_FLOSSCAPA) != 0) { - LASSERT(attr->cra_capa == NULL); - attr->cra_capa = cl_capa_lookup(inode, - slice->crs_req->crq_type); - } - if (slice->crs_req->crq_type == CRT_WRITE) { if (flags & OBD_MD_FLEPOCH) { oa->o_valid |= OBD_MD_FLEPOCH; @@ -936,8 +929,7 @@ static const struct cl_req_operations ccc_req_ops = { .cro_completion = ccc_req_completion }; -int cl_setattr_ost(struct inode *inode, const struct iattr *attr, - struct obd_capa *capa) +int cl_setattr_ost(struct inode *inode, const struct iattr *attr) { struct lu_env *env; struct cl_io *io; @@ -956,7 +948,6 @@ int cl_setattr_ost(struct inode *inode, const struct iattr *attr, io->u.ci_setattr.sa_attr.lvb_ctime = LTIME_S(attr->ia_ctime); io->u.ci_setattr.sa_attr.lvb_size = attr->ia_size; io->u.ci_setattr.sa_valid = attr->ia_valid; - io->u.ci_setattr.sa_capa = capa; again: if (cl_io_init(env, io, CIT_SETATTR, io->ci_obj) == 0) { diff --git a/drivers/staging/lustre/lustre/llite/Makefile b/drivers/staging/lustre/lustre/llite/Makefile index 2cbc46838fdd..9ac29e718da3 100644 --- a/drivers/staging/lustre/lustre/llite/Makefile +++ b/drivers/staging/lustre/lustre/llite/Makefile @@ -2,7 +2,7 @@ obj-$(CONFIG_LUSTRE_FS) += lustre.o obj-$(CONFIG_LUSTRE_LLITE_LLOOP) += llite_lloop.o lustre-y := dcache.o dir.o file.o llite_close.o llite_lib.o llite_nfs.o \ rw.o namei.o symlink.o llite_mmap.o \ - xattr.o xattr_cache.o remote_perm.o llite_rmtacl.o llite_capa.o \ + xattr.o xattr_cache.o remote_perm.o llite_rmtacl.o \ rw26.o super25.o statahead.o \ ../lclient/glimpse.o ../lclient/lcommon_cl.o ../lclient/lcommon_misc.o \ vvp_dev.o vvp_page.o vvp_lock.o vvp_io.o vvp_object.o lproc_llite.o diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index 5627c0f6dca1..51b6bc5d4d3a 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -92,7 +92,6 @@ void ll_pack_inode2opdata(struct inode *inode, struct md_op_data *op_data, op_data->op_ioepoch = ll_i2info(inode)->lli_ioepoch; if (fh) op_data->op_handle = *fh; - op_data->op_capa1 = ll_mdscapa_get(inode); if (ll_i2info(inode)->lli_flags & LLIF_DATA_MODIFIED) op_data->op_bias |= MDS_DATA_MODIFIED; @@ -321,7 +320,6 @@ static int ll_md_close(struct obd_export *md_exp, struct inode *inode, out: LUSTRE_FPRIVATE(file) = NULL; ll_file_data_put(fd); - ll_capa_close(inode); return rc; } @@ -679,8 +677,6 @@ restart: if (!S_ISREG(inode->i_mode)) goto out_och_free; - ll_capa_open(inode); - if (!lli->lli_has_smd && (cl_is_lov_delay_create(file->f_flags) || (file->f_mode & FMODE_WRITE) == 0)) { @@ -912,8 +908,7 @@ static int ll_lease_close(struct obd_client_handle *och, struct inode *inode, /* Fills the obdo with the attributes for the lsm */ static int ll_lsm_getattr(struct lov_stripe_md *lsm, struct obd_export *exp, - struct obd_capa *capa, struct obdo *obdo, - __u64 ioepoch, int sync) + struct obdo *obdo, __u64 ioepoch, int sync) { struct ptlrpc_request_set *set; struct obd_info oinfo = { }; @@ -932,7 +927,6 @@ static int ll_lsm_getattr(struct lov_stripe_md *lsm, struct obd_export *exp, OBD_MD_FLMTIME | OBD_MD_FLCTIME | OBD_MD_FLGROUP | OBD_MD_FLEPOCH | OBD_MD_FLDATAVERSION; - oinfo.oi_capa = capa; if (sync) { oinfo.oi_oa->o_valid |= OBD_MD_FLFLAGS; oinfo.oi_oa->o_flags |= OBD_FL_SRVLOCK; @@ -963,14 +957,12 @@ static int ll_lsm_getattr(struct lov_stripe_md *lsm, struct obd_export *exp, int ll_inode_getattr(struct inode *inode, struct obdo *obdo, __u64 ioepoch, int sync) { - struct obd_capa *capa = ll_mdscapa_get(inode); struct lov_stripe_md *lsm; int rc; lsm = ccc_inode_lsm_get(inode); rc = ll_lsm_getattr(lsm, ll_i2dtexp(inode), - capa, obdo, ioepoch, sync); - capa_put(capa); + obdo, ioepoch, sync); if (rc == 0) { struct ost_id *oi = lsm ? &lsm->lsm_oi : &obdo->o_oi; @@ -1038,7 +1030,7 @@ int ll_glimpse_ioctl(struct ll_sb_info *sbi, struct lov_stripe_md *lsm, struct obdo obdo = { 0 }; int rc; - rc = ll_lsm_getattr(lsm, sbi->ll_dt_exp, NULL, &obdo, 0, 0); + rc = ll_lsm_getattr(lsm, sbi->ll_dt_exp, &obdo, 0, 0); if (rc == 0) { st->st_size = obdo.o_size; st->st_blocks = obdo.o_blocks; @@ -1874,7 +1866,7 @@ int ll_data_version(struct inode *inode, __u64 *data_version, goto out; } - rc = ll_lsm_getattr(lsm, sbi->ll_dt_exp, NULL, obdo, 0, extent_lock); + rc = ll_lsm_getattr(lsm, sbi->ll_dt_exp, obdo, 0, extent_lock); if (rc == 0) { if (!(obdo->o_valid & OBD_MD_FLDATAVERSION)) rc = -EOPNOTSUPP; @@ -2574,7 +2566,6 @@ int cl_sync_file_range(struct inode *inode, loff_t start, loff_t end, struct cl_env_nest nest; struct lu_env *env; struct cl_io *io; - struct obd_capa *capa = NULL; struct cl_fsync_io *fio; int result; @@ -2586,15 +2577,12 @@ int cl_sync_file_range(struct inode *inode, loff_t start, loff_t end, if (IS_ERR(env)) return PTR_ERR(env); - capa = ll_osscapa_get(inode, CAPA_OPC_OSS_WRITE); - io = ccc_env_thread_io(env); io->ci_obj = cl_i2info(inode)->lli_clob; io->ci_ignore_layout = ignore_layout; /* initialize parameters for sync */ fio = &io->u.ci_fsync; - fio->fi_capa = capa; fio->fi_start = start; fio->fi_end = end; fio->fi_fid = ll_inode2fid(inode); @@ -2610,8 +2598,6 @@ int cl_sync_file_range(struct inode *inode, loff_t start, loff_t end, cl_io_fini(env, io); cl_env_nested_put(&nest, env); - capa_put(capa); - return result; } @@ -2620,7 +2606,6 @@ int ll_fsync(struct file *file, loff_t start, loff_t end, int datasync) struct inode *inode = file_inode(file); struct ll_inode_info *lli = ll_i2info(inode); struct ptlrpc_request *req; - struct obd_capa *oc; int rc, err; CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu/%u(%p)\n", inode->i_ino, @@ -2642,10 +2627,7 @@ int ll_fsync(struct file *file, loff_t start, loff_t end, int datasync) rc = err; } - oc = ll_mdscapa_get(inode); - err = md_sync(ll_i2sbi(inode)->ll_md_exp, ll_inode2fid(inode), oc, - &req); - capa_put(oc); + err = md_sync(ll_i2sbi(inode)->ll_md_exp, ll_inode2fid(inode), &req); if (!rc) rc = err; if (!err) @@ -2963,9 +2945,6 @@ static int __ll_inode_revalidate(struct dentry *dentry, __u64 ibits) return PTR_ERR(op_data); op_data->op_valid = valid; - /* Once OBD_CONNECT_ATTRFID is not supported, we can't find one - * capa for this inode. Because we only keep capas of dirs - * fresh. */ rc = md_getattr(sbi->ll_md_exp, op_data, &req); ll_finish_md_op_data(op_data); if (rc) { @@ -3316,7 +3295,6 @@ static int ll_layout_fetch(struct inode *inode, struct ldlm_lock *lock) { struct ll_sb_info *sbi = ll_i2sbi(inode); - struct obd_capa *oc; struct ptlrpc_request *req; struct mdt_body *body; void *lvbdata; @@ -3336,13 +3314,11 @@ static int ll_layout_fetch(struct inode *inode, struct ldlm_lock *lock) * blocked and then granted via completion ast, we have to fetch * layout here. Please note that we can't use the LVB buffer in * completion AST because it doesn't have a large enough buffer */ - oc = ll_mdscapa_get(inode); rc = ll_get_default_mdsize(sbi, &lmmsize); if (rc == 0) - rc = md_getxattr(sbi->ll_md_exp, ll_inode2fid(inode), oc, - OBD_MD_FLXATTR, XATTR_NAME_LOV, NULL, 0, - lmmsize, 0, &req); - capa_put(oc); + rc = md_getxattr(sbi->ll_md_exp, ll_inode2fid(inode), + OBD_MD_FLXATTR, XATTR_NAME_LOV, NULL, 0, + lmmsize, 0, &req); if (rc < 0) return rc; diff --git a/drivers/staging/lustre/lustre/llite/llite_capa.c b/drivers/staging/lustre/lustre/llite/llite_capa.c deleted file mode 100644 index 24590ae36090..000000000000 --- a/drivers/staging/lustre/lustre/llite/llite_capa.c +++ /dev/null @@ -1,661 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - * - * Copyright (c) 2011, 2012, Intel Corporation. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - * - * lustre/llite/llite_capa.c - * - * Author: Lai Siyao - */ - -#define DEBUG_SUBSYSTEM S_LLITE - -#include -#include -#include -#include - -#include "../include/lustre_lite.h" -#include "llite_internal.h" - -/* for obd_capa.c_list, client capa might stay in three places: - * 1. ll_capa_list. - * 2. ll_idle_capas. - * 3. stand alone: just allocated. - */ - -/* capas for oss writeback and those failed to renew */ -static LIST_HEAD(ll_idle_capas); -static struct ptlrpc_thread ll_capa_thread; -static struct list_head *ll_capa_list = &capa_list[CAPA_SITE_CLIENT]; - -/* llite capa renewal timer */ -struct timer_list ll_capa_timer; -/* for debug: indicate whether capa on llite is enabled or not */ -static atomic_t ll_capa_debug = ATOMIC_INIT(0); -static unsigned long long ll_capa_renewed; -static unsigned long long ll_capa_renewal_noent; -static unsigned long long ll_capa_renewal_failed; -static unsigned long long ll_capa_renewal_retries; - -static int ll_update_capa(struct obd_capa *ocapa, struct lustre_capa *capa); - -static inline void update_capa_timer(struct obd_capa *ocapa, - unsigned long expiry) -{ - if (time_before(expiry, ll_capa_timer.expires) || - !timer_pending(&ll_capa_timer)) { - mod_timer(&ll_capa_timer, expiry); - DEBUG_CAPA(D_SEC, &ocapa->c_capa, - "ll_capa_timer update: %lu/%lu by", expiry, jiffies); - } -} - -static inline unsigned long capa_renewal_time(struct obd_capa *ocapa) -{ - return cfs_time_sub(ocapa->c_expiry, - cfs_time_seconds(ocapa->c_capa.lc_timeout) / 2); -} - -static inline int capa_is_to_expire(struct obd_capa *ocapa) -{ - return time_before_eq(capa_renewal_time(ocapa), cfs_time_current()); -} - -static inline int have_expired_capa(void) -{ - struct obd_capa *ocapa = NULL; - int expired = 0; - - /* if ll_capa_list has client capa to expire or ll_idle_capas has - * expired capa, return 1. - */ - spin_lock(&capa_lock); - if (!list_empty(ll_capa_list)) { - ocapa = list_entry(ll_capa_list->next, struct obd_capa, - c_list); - expired = capa_is_to_expire(ocapa); - if (!expired) - update_capa_timer(ocapa, capa_renewal_time(ocapa)); - } else if (!list_empty(&ll_idle_capas)) { - ocapa = list_entry(ll_idle_capas.next, struct obd_capa, - c_list); - expired = capa_is_expired(ocapa); - if (!expired) - update_capa_timer(ocapa, ocapa->c_expiry); - } - spin_unlock(&capa_lock); - - if (expired) - DEBUG_CAPA(D_SEC, &ocapa->c_capa, "expired"); - return expired; -} - -static void sort_add_capa(struct obd_capa *ocapa, struct list_head *head) -{ - struct obd_capa *tmp; - struct list_head *before = NULL; - - /* TODO: client capa is sorted by expiry, this could be optimized */ - list_for_each_entry_reverse(tmp, head, c_list) { - if (cfs_time_aftereq(ocapa->c_expiry, tmp->c_expiry)) { - before = &tmp->c_list; - break; - } - } - - LASSERT(&ocapa->c_list != before); - list_add(&ocapa->c_list, before ?: head); -} - -static inline int obd_capa_open_count(struct obd_capa *oc) -{ - struct ll_inode_info *lli = ll_i2info(oc->u.cli.inode); - - return atomic_read(&lli->lli_open_count); -} - -static void ll_delete_capa(struct obd_capa *ocapa) -{ - struct ll_inode_info *lli = ll_i2info(ocapa->u.cli.inode); - - if (capa_for_mds(&ocapa->c_capa)) { - LASSERT(lli->lli_mds_capa == ocapa); - lli->lli_mds_capa = NULL; - } else if (capa_for_oss(&ocapa->c_capa)) { - list_del_init(&ocapa->u.cli.lli_list); - } - - DEBUG_CAPA(D_SEC, &ocapa->c_capa, "free client"); - list_del_init(&ocapa->c_list); - capa_count[CAPA_SITE_CLIENT]--; - /* release the ref when alloc */ - capa_put(ocapa); -} - -/* three places where client capa is deleted: - * 1. capa_thread_main(), main place to delete expired capa. - * 2. ll_clear_inode_capas() in ll_clear_inode(). - * 3. ll_truncate_free_capa() delete truncate capa explicitly in - * ll_setattr_ost(). - */ -static int capa_thread_main(void *unused) -{ - struct obd_capa *ocapa, *tmp, *next; - struct inode *inode = NULL; - struct l_wait_info lwi = { 0 }; - int rc; - - thread_set_flags(&ll_capa_thread, SVC_RUNNING); - wake_up(&ll_capa_thread.t_ctl_waitq); - - while (1) { - l_wait_event(ll_capa_thread.t_ctl_waitq, - !thread_is_running(&ll_capa_thread) || - have_expired_capa(), - &lwi); - - if (!thread_is_running(&ll_capa_thread)) - break; - - next = NULL; - - spin_lock(&capa_lock); - list_for_each_entry_safe(ocapa, tmp, ll_capa_list, c_list) { - __u64 ibits; - - LASSERT(ocapa->c_capa.lc_opc != CAPA_OPC_OSS_TRUNC); - - if (!capa_is_to_expire(ocapa)) { - next = ocapa; - break; - } - - list_del_init(&ocapa->c_list); - - /* for MDS capability, only renew those which belong to - * dir, or its inode is opened, or client holds LOOKUP - * lock. - */ - /* ibits may be changed by ll_have_md_lock() so we have - * to set it each time - */ - ibits = MDS_INODELOCK_LOOKUP; - if (capa_for_mds(&ocapa->c_capa) && - !S_ISDIR(ocapa->u.cli.inode->i_mode) && - obd_capa_open_count(ocapa) == 0 && - !ll_have_md_lock(ocapa->u.cli.inode, - &ibits, LCK_MINMODE)) { - DEBUG_CAPA(D_SEC, &ocapa->c_capa, - "skip renewal for"); - sort_add_capa(ocapa, &ll_idle_capas); - continue; - } - - /* for OSS capability, only renew those whose inode is - * opened. - */ - if (capa_for_oss(&ocapa->c_capa) && - obd_capa_open_count(ocapa) == 0) { - /* oss capa with open count == 0 won't renew, - * move to idle list - */ - sort_add_capa(ocapa, &ll_idle_capas); - continue; - } - - /* NB iput() is in ll_update_capa() */ - inode = igrab(ocapa->u.cli.inode); - if (!inode) { - DEBUG_CAPA(D_ERROR, &ocapa->c_capa, - "igrab failed for"); - continue; - } - - capa_get(ocapa); - ll_capa_renewed++; - spin_unlock(&capa_lock); - rc = md_renew_capa(ll_i2mdexp(inode), ocapa, - ll_update_capa); - spin_lock(&capa_lock); - if (rc) { - DEBUG_CAPA(D_ERROR, &ocapa->c_capa, - "renew failed: %d", rc); - ll_capa_renewal_failed++; - } - } - - if (next) - update_capa_timer(next, capa_renewal_time(next)); - - list_for_each_entry_safe(ocapa, tmp, &ll_idle_capas, - c_list) { - if (!capa_is_expired(ocapa)) { - if (!next) - update_capa_timer(ocapa, - ocapa->c_expiry); - break; - } - - if (atomic_read(&ocapa->c_refc) > 1) { - DEBUG_CAPA(D_SEC, &ocapa->c_capa, - "expired(c_refc %d), don't release", - atomic_read(&ocapa->c_refc)); - /* don't try to renew any more */ - list_del_init(&ocapa->c_list); - continue; - } - - /* expired capa is released. */ - DEBUG_CAPA(D_SEC, &ocapa->c_capa, "release expired"); - ll_delete_capa(ocapa); - } - - spin_unlock(&capa_lock); - } - - thread_set_flags(&ll_capa_thread, SVC_STOPPED); - wake_up(&ll_capa_thread.t_ctl_waitq); - return 0; -} - -void ll_capa_timer_callback(unsigned long unused) -{ - wake_up(&ll_capa_thread.t_ctl_waitq); -} - -int ll_capa_thread_start(void) -{ - struct task_struct *task; - - init_waitqueue_head(&ll_capa_thread.t_ctl_waitq); - - task = kthread_run(capa_thread_main, NULL, "ll_capa"); - if (IS_ERR(task)) { - CERROR("cannot start expired capa thread: rc %ld\n", - PTR_ERR(task)); - return PTR_ERR(task); - } - wait_event(ll_capa_thread.t_ctl_waitq, - thread_is_running(&ll_capa_thread)); - - return 0; -} - -void ll_capa_thread_stop(void) -{ - thread_set_flags(&ll_capa_thread, SVC_STOPPING); - wake_up(&ll_capa_thread.t_ctl_waitq); - wait_event(ll_capa_thread.t_ctl_waitq, - thread_is_stopped(&ll_capa_thread)); -} - -struct obd_capa *ll_osscapa_get(struct inode *inode, __u64 opc) -{ - struct ll_inode_info *lli = ll_i2info(inode); - struct obd_capa *ocapa; - int found = 0; - - if ((ll_i2sbi(inode)->ll_flags & LL_SBI_OSS_CAPA) == 0) - return NULL; - - LASSERT(opc == CAPA_OPC_OSS_WRITE || opc == CAPA_OPC_OSS_RW || - opc == CAPA_OPC_OSS_TRUNC); - - spin_lock(&capa_lock); - list_for_each_entry(ocapa, &lli->lli_oss_capas, u.cli.lli_list) { - if (capa_is_expired(ocapa)) - continue; - if ((opc & CAPA_OPC_OSS_WRITE) && - capa_opc_supported(&ocapa->c_capa, CAPA_OPC_OSS_WRITE)) { - found = 1; - break; - } else if ((opc & CAPA_OPC_OSS_READ) && - capa_opc_supported(&ocapa->c_capa, - CAPA_OPC_OSS_READ)) { - found = 1; - break; - } else if ((opc & CAPA_OPC_OSS_TRUNC) && - capa_opc_supported(&ocapa->c_capa, opc)) { - found = 1; - break; - } - } - - if (found) { - LASSERT(lu_fid_eq(capa_fid(&ocapa->c_capa), - ll_inode2fid(inode))); - LASSERT(ocapa->c_site == CAPA_SITE_CLIENT); - - capa_get(ocapa); - - DEBUG_CAPA(D_SEC, &ocapa->c_capa, "found client"); - } else { - ocapa = NULL; - - if (atomic_read(&ll_capa_debug)) { - CERROR("no capability for " DFID " opc %#llx\n", - PFID(&lli->lli_fid), opc); - atomic_set(&ll_capa_debug, 0); - } - } - spin_unlock(&capa_lock); - - return ocapa; -} -EXPORT_SYMBOL(ll_osscapa_get); - -struct obd_capa *ll_mdscapa_get(struct inode *inode) -{ - struct ll_inode_info *lli = ll_i2info(inode); - struct obd_capa *ocapa; - - LASSERT(inode); - - if ((ll_i2sbi(inode)->ll_flags & LL_SBI_MDS_CAPA) == 0) - return NULL; - - spin_lock(&capa_lock); - ocapa = capa_get(lli->lli_mds_capa); - spin_unlock(&capa_lock); - if (!ocapa && atomic_read(&ll_capa_debug)) { - CERROR("no mds capability for " DFID "\n", PFID(&lli->lli_fid)); - atomic_set(&ll_capa_debug, 0); - } - - return ocapa; -} - -static struct obd_capa *do_add_mds_capa(struct inode *inode, - struct obd_capa *ocapa) -{ - struct ll_inode_info *lli = ll_i2info(inode); - struct obd_capa *old = lli->lli_mds_capa; - struct lustre_capa *capa = &ocapa->c_capa; - - if (!old) { - ocapa->u.cli.inode = inode; - lli->lli_mds_capa = ocapa; - capa_count[CAPA_SITE_CLIENT]++; - - DEBUG_CAPA(D_SEC, capa, "add MDS"); - } else { - spin_lock(&old->c_lock); - old->c_capa = *capa; - spin_unlock(&old->c_lock); - - DEBUG_CAPA(D_SEC, capa, "update MDS"); - - capa_put(ocapa); - ocapa = old; - } - return ocapa; -} - -static struct obd_capa *do_lookup_oss_capa(struct inode *inode, int opc) -{ - struct ll_inode_info *lli = ll_i2info(inode); - struct obd_capa *ocapa; - - /* inside capa_lock */ - list_for_each_entry(ocapa, &lli->lli_oss_capas, u.cli.lli_list) { - if ((capa_opc(&ocapa->c_capa) & opc) != opc) - continue; - - LASSERT(lu_fid_eq(capa_fid(&ocapa->c_capa), - ll_inode2fid(inode))); - LASSERT(ocapa->c_site == CAPA_SITE_CLIENT); - - DEBUG_CAPA(D_SEC, &ocapa->c_capa, "found client"); - return ocapa; - } - - return NULL; -} - -static inline void inode_add_oss_capa(struct inode *inode, - struct obd_capa *ocapa) -{ - struct ll_inode_info *lli = ll_i2info(inode); - struct obd_capa *tmp; - struct list_head *next = NULL; - - /* capa is sorted in lli_oss_capas so lookup can always find the - * latest one - */ - list_for_each_entry(tmp, &lli->lli_oss_capas, u.cli.lli_list) { - if (cfs_time_after(ocapa->c_expiry, tmp->c_expiry)) { - next = &tmp->u.cli.lli_list; - break; - } - } - LASSERT(&ocapa->u.cli.lli_list != next); - list_move_tail(&ocapa->u.cli.lli_list, next ?: &lli->lli_oss_capas); -} - -static struct obd_capa *do_add_oss_capa(struct inode *inode, - struct obd_capa *ocapa) -{ - struct obd_capa *old; - struct lustre_capa *capa = &ocapa->c_capa; - - LASSERTF(S_ISREG(inode->i_mode), - "inode has oss capa, but not regular file, mode: %d\n", - inode->i_mode); - - /* FIXME: can't replace it so easily with fine-grained opc */ - old = do_lookup_oss_capa(inode, capa_opc(capa) & CAPA_OPC_OSS_ONLY); - if (!old) { - ocapa->u.cli.inode = inode; - INIT_LIST_HEAD(&ocapa->u.cli.lli_list); - capa_count[CAPA_SITE_CLIENT]++; - - DEBUG_CAPA(D_SEC, capa, "add OSS"); - } else { - spin_lock(&old->c_lock); - old->c_capa = *capa; - spin_unlock(&old->c_lock); - - DEBUG_CAPA(D_SEC, capa, "update OSS"); - - capa_put(ocapa); - ocapa = old; - } - - inode_add_oss_capa(inode, ocapa); - return ocapa; -} - -struct obd_capa *ll_add_capa(struct inode *inode, struct obd_capa *ocapa) -{ - spin_lock(&capa_lock); - ocapa = capa_for_mds(&ocapa->c_capa) ? do_add_mds_capa(inode, ocapa) : - do_add_oss_capa(inode, ocapa); - - /* truncate capa won't renew */ - if (ocapa->c_capa.lc_opc != CAPA_OPC_OSS_TRUNC) { - set_capa_expiry(ocapa); - list_del_init(&ocapa->c_list); - sort_add_capa(ocapa, ll_capa_list); - - update_capa_timer(ocapa, capa_renewal_time(ocapa)); - } - - spin_unlock(&capa_lock); - - atomic_set(&ll_capa_debug, 1); - return ocapa; -} - -static inline void delay_capa_renew(struct obd_capa *oc, unsigned long delay) -{ - /* NB: set a fake expiry for this capa to prevent it renew too soon */ - oc->c_expiry = cfs_time_add(oc->c_expiry, cfs_time_seconds(delay)); -} - -static int ll_update_capa(struct obd_capa *ocapa, struct lustre_capa *capa) -{ - struct inode *inode = ocapa->u.cli.inode; - int rc = 0; - - LASSERT(ocapa); - - if (IS_ERR(capa)) { - /* set error code */ - rc = PTR_ERR(capa); - spin_lock(&capa_lock); - if (rc == -ENOENT) { - DEBUG_CAPA(D_SEC, &ocapa->c_capa, - "renewal canceled because object removed"); - ll_capa_renewal_noent++; - } else { - ll_capa_renewal_failed++; - - /* failed capa won't be renewed any longer, but if -EIO, - * client might be doing recovery, retry in 2 min. - */ - if (rc == -EIO && !capa_is_expired(ocapa)) { - delay_capa_renew(ocapa, 120); - DEBUG_CAPA(D_ERROR, &ocapa->c_capa, - "renewal failed: -EIO, retry in 2 mins"); - ll_capa_renewal_retries++; - goto retry; - } else { - DEBUG_CAPA(D_ERROR, &ocapa->c_capa, - "renewal failed(rc: %d) for", rc); - } - } - - list_del_init(&ocapa->c_list); - sort_add_capa(ocapa, &ll_idle_capas); - spin_unlock(&capa_lock); - - capa_put(ocapa); - iput(inode); - return rc; - } - - spin_lock(&ocapa->c_lock); - LASSERT(!memcmp(&ocapa->c_capa, capa, - offsetof(struct lustre_capa, lc_opc))); - ocapa->c_capa = *capa; - set_capa_expiry(ocapa); - spin_unlock(&ocapa->c_lock); - - spin_lock(&capa_lock); - if (capa_for_oss(capa)) - inode_add_oss_capa(inode, ocapa); - DEBUG_CAPA(D_SEC, capa, "renew"); -retry: - list_del_init(&ocapa->c_list); - sort_add_capa(ocapa, ll_capa_list); - update_capa_timer(ocapa, capa_renewal_time(ocapa)); - spin_unlock(&capa_lock); - - capa_put(ocapa); - iput(inode); - return rc; -} - -void ll_capa_open(struct inode *inode) -{ - struct ll_inode_info *lli = ll_i2info(inode); - - if ((ll_i2sbi(inode)->ll_flags & (LL_SBI_MDS_CAPA | LL_SBI_OSS_CAPA)) - == 0) - return; - - if (!S_ISREG(inode->i_mode)) - return; - - atomic_inc(&lli->lli_open_count); -} - -void ll_capa_close(struct inode *inode) -{ - struct ll_inode_info *lli = ll_i2info(inode); - - if ((ll_i2sbi(inode)->ll_flags & (LL_SBI_MDS_CAPA | LL_SBI_OSS_CAPA)) - == 0) - return; - - if (!S_ISREG(inode->i_mode)) - return; - - atomic_dec(&lli->lli_open_count); -} - -/* delete CAPA_OPC_OSS_TRUNC only */ -void ll_truncate_free_capa(struct obd_capa *ocapa) -{ - if (!ocapa) - return; - - LASSERT(ocapa->c_capa.lc_opc & CAPA_OPC_OSS_TRUNC); - DEBUG_CAPA(D_SEC, &ocapa->c_capa, "free truncate"); - - /* release ref when find */ - capa_put(ocapa); - if (likely(ocapa->c_capa.lc_opc == CAPA_OPC_OSS_TRUNC)) { - spin_lock(&capa_lock); - ll_delete_capa(ocapa); - spin_unlock(&capa_lock); - } -} - -void ll_clear_inode_capas(struct inode *inode) -{ - struct ll_inode_info *lli = ll_i2info(inode); - struct obd_capa *ocapa, *tmp; - - spin_lock(&capa_lock); - ocapa = lli->lli_mds_capa; - if (ocapa) - ll_delete_capa(ocapa); - - list_for_each_entry_safe(ocapa, tmp, &lli->lli_oss_capas, - u.cli.lli_list) - ll_delete_capa(ocapa); - spin_unlock(&capa_lock); -} - -void ll_print_capa_stat(struct ll_sb_info *sbi) -{ - if (sbi->ll_flags & (LL_SBI_MDS_CAPA | LL_SBI_OSS_CAPA)) - LCONSOLE_INFO("Fid capabilities renewed: %llu\n" - "Fid capabilities renewal ENOENT: %llu\n" - "Fid capabilities failed to renew: %llu\n" - "Fid capabilities renewal retries: %llu\n", - ll_capa_renewed, ll_capa_renewal_noent, - ll_capa_renewal_failed, ll_capa_renewal_retries); -} diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index fdd0a58286c1..dcf7c6b7f056 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -134,11 +134,9 @@ struct ll_inode_info { struct lu_fid lli_pfid; struct list_head lli_close_list; - struct list_head lli_oss_capas; /* open count currently used by capability only, indicate whether * capability needs renewal */ atomic_t lli_open_count; - struct obd_capa *lli_mds_capa; unsigned long lli_rmtperm_time; /* handle is to be sent to MDS later on done_writing and setattr. @@ -398,8 +396,8 @@ enum stats_track_type { #define LL_SBI_USER_XATTR 0x08 /* support user xattr */ #define LL_SBI_ACL 0x10 /* support ACL */ #define LL_SBI_RMT_CLIENT 0x40 /* remote client */ -#define LL_SBI_MDS_CAPA 0x80 /* support mds capa */ -#define LL_SBI_OSS_CAPA 0x100 /* support oss capa */ +#define LL_SBI_MDS_CAPA 0x80 /* support mds capa, obsolete */ +#define LL_SBI_OSS_CAPA 0x100 /* support oss capa, obsolete */ #define LL_SBI_LOCALFLOCK 0x200 /* Local flocks support by kernel */ #define LL_SBI_LRU_RESIZE 0x400 /* lru resize support */ #define LL_SBI_LAZYSTATFS 0x800 /* lazystatfs mount option */ @@ -1053,25 +1051,6 @@ void free_rmtperm_hash(struct hlist_head *hash); int ll_update_remote_perm(struct inode *inode, struct mdt_remote_perm *perm); int lustre_check_remote_perm(struct inode *inode, int mask); -/* llite/llite_capa.c */ -extern struct timer_list ll_capa_timer; - -int ll_capa_thread_start(void); -void ll_capa_thread_stop(void); -void ll_capa_timer_callback(unsigned long unused); - -struct obd_capa *ll_add_capa(struct inode *inode, struct obd_capa *ocapa); - -void ll_capa_open(struct inode *inode); -void ll_capa_close(struct inode *inode); - -struct obd_capa *ll_mdscapa_get(struct inode *inode); -struct obd_capa *ll_osscapa_get(struct inode *inode, __u64 opc); - -void ll_truncate_free_capa(struct obd_capa *ocapa); -void ll_clear_inode_capas(struct inode *inode); -void ll_print_capa_stat(struct ll_sb_info *sbi); - /* llite/llite_cl.c */ extern struct lu_device_type vvp_device_type; @@ -1345,8 +1324,6 @@ static inline int cl_merge_lvb(const struct lu_env *env, struct inode *inode) #define cl_inode_ctime(inode) LTIME_S((inode)->i_ctime) #define cl_inode_mtime(inode) LTIME_S((inode)->i_mtime) -struct obd_capa *cl_capa_lookup(struct inode *inode, enum cl_req_type crt); - int cl_sync_file_range(struct inode *inode, loff_t start, loff_t end, enum cl_fsync_mode mode, int ignore_layout); diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index a0ae892872f5..b6234b294d0d 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -146,7 +146,6 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt, struct inode *root = NULL; struct ll_sb_info *sbi = ll_s2sbi(sb); struct obd_device *obd; - struct obd_capa *oc = NULL; struct obd_statfs *osfs = NULL; struct ptlrpc_request *request = NULL; struct obd_connect_data *data = NULL; @@ -182,7 +181,6 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt, data->ocd_connect_flags = OBD_CONNECT_IBITS | OBD_CONNECT_NODEVOH | OBD_CONNECT_ATTRFID | OBD_CONNECT_VERSION | OBD_CONNECT_BRW_SIZE | - OBD_CONNECT_MDS_CAPA | OBD_CONNECT_OSS_CAPA | OBD_CONNECT_CANCELSET | OBD_CONNECT_FID | OBD_CONNECT_AT | OBD_CONNECT_LOV_V3 | OBD_CONNECT_RMT_CLIENT | OBD_CONNECT_VBR | @@ -334,16 +332,6 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt, } } - if (data->ocd_connect_flags & OBD_CONNECT_MDS_CAPA) { - LCONSOLE_INFO("client enabled MDS capability!\n"); - sbi->ll_flags |= LL_SBI_MDS_CAPA; - } - - if (data->ocd_connect_flags & OBD_CONNECT_OSS_CAPA) { - LCONSOLE_INFO("client enabled OSS capability!\n"); - sbi->ll_flags |= LL_SBI_OSS_CAPA; - } - if (data->ocd_connect_flags & OBD_CONNECT_64BITHASH) sbi->ll_flags |= LL_SBI_64BIT_HASH; @@ -445,7 +433,7 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt, mutex_unlock(&sbi->ll_lco.lco_lock); fid_zero(&sbi->ll_root_fid); - err = md_getstatus(sbi->ll_md_exp, &sbi->ll_root_fid, &oc); + err = md_getstatus(sbi->ll_md_exp, &sbi->ll_root_fid); if (err) { CERROR("cannot mds_connect: rc = %d\n", err); goto out_lock_cn_cb; @@ -466,7 +454,7 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt, /* make root inode * XXX: move this to after cbd setup? */ - valid = OBD_MD_FLGETATTR | OBD_MD_FLBLOCKS | OBD_MD_FLMDSCAPA; + valid = OBD_MD_FLGETATTR | OBD_MD_FLBLOCKS; if (sbi->ll_flags & LL_SBI_RMT_CLIENT) valid |= OBD_MD_FLRMTPERM; else if (sbi->ll_flags & LL_SBI_ACL) @@ -480,12 +468,9 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt, op_data->op_fid1 = sbi->ll_root_fid; op_data->op_mode = 0; - op_data->op_capa1 = oc; op_data->op_valid = valid; err = md_getattr(sbi->ll_md_exp, op_data, &request); - if (oc) - capa_put(oc); kfree(op_data); if (err) { CERROR("%s: md_getattr failed for root: rc = %d\n", @@ -838,9 +823,7 @@ void ll_lli_init(struct ll_inode_info *lli) /* Do not set lli_fid, it has been initialized already. */ fid_zero(&lli->lli_pfid); INIT_LIST_HEAD(&lli->lli_close_list); - INIT_LIST_HEAD(&lli->lli_oss_capas); atomic_set(&lli->lli_open_count, 0); - lli->lli_mds_capa = NULL; lli->lli_rmtperm_time = 0; lli->lli_pending_och = NULL; lli->lli_mds_read_och = NULL; @@ -994,8 +977,6 @@ void ll_put_super(struct super_block *sb) CDEBUG(D_VFSTRACE, "VFS Op: sb %p - %s\n", sb, profilenm); - ll_print_capa_stat(sbi); - cfg.cfg_instance = sb; lustre_end_log(sb, profilenm, &cfg); @@ -1126,7 +1107,6 @@ void ll_clear_inode(struct inode *inode) #endif lli->lli_inode_magic = LLI_INODE_DEAD; - ll_clear_inode_capas(inode); if (!S_ISDIR(inode->i_mode)) LASSERT(list_empty(&lli->lli_agl_list)); @@ -1183,7 +1163,7 @@ static int ll_md_setattr(struct dentry *dentry, struct md_op_data *op_data, } ia_valid = op_data->op_attr.ia_valid; - /* inode size will be in ll_setattr_ost, can't do it now since dirty + /* inode size will be in cl_setattr_ost, can't do it now since dirty * cache is not cleared yet. */ op_data->op_attr.ia_valid &= ~(TIMES_SET_FLAGS | ATTR_SIZE); rc = simple_setattr(dentry, &op_data->op_attr); @@ -1229,27 +1209,6 @@ static int ll_setattr_done_writing(struct inode *inode, return rc; } -static int ll_setattr_ost(struct inode *inode, struct iattr *attr) -{ - struct obd_capa *capa; - int rc; - - if (attr->ia_valid & ATTR_SIZE) - capa = ll_osscapa_get(inode, CAPA_OPC_OSS_TRUNC); - else - capa = ll_mdscapa_get(inode); - - rc = cl_setattr_ost(inode, attr, capa); - - if (attr->ia_valid & ATTR_SIZE) - ll_truncate_free_capa(capa); - else - capa_put(capa); - - return rc; -} - - /* If this inode has objects allocated to it (lsm != NULL), then the OST * object(s) determine the file size and mtime. Otherwise, the MDS will * keep these values until such a time that objects are allocated for it. @@ -1412,7 +1371,7 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr, bool hsm_import) * time de-synchronization between MDT inode and OST objects */ if (attr->ia_valid & ATTR_SIZE) down_write(&lli->lli_trunc_sem); - rc = ll_setattr_ost(inode, attr); + rc = cl_setattr_ost(inode, attr); if (attr->ia_valid & ATTR_SIZE) up_write(&lli->lli_trunc_sem); } @@ -1705,15 +1664,6 @@ void ll_update_inode(struct inode *inode, struct lustre_md *md) inode->i_blocks = body->blocks; } - if (body->valid & OBD_MD_FLMDSCAPA) { - LASSERT(md->mds_capa); - ll_add_capa(inode, md->mds_capa); - } - if (body->valid & OBD_MD_FLOSSCAPA) { - LASSERT(md->oss_capa); - ll_add_capa(inode, md->oss_capa); - } - if (body->valid & OBD_MD_TSTATE) { if (body->t_state & MS_RESTORE) lli->lli_flags |= LLIF_FILE_RESTORING; @@ -1862,10 +1812,8 @@ int ll_iocontrol(struct inode *inode, struct file *file, oinfo.oi_oa->o_flags = flags; oinfo.oi_oa->o_valid = OBD_MD_FLID | OBD_MD_FLFLAGS | OBD_MD_FLGROUP; - oinfo.oi_capa = ll_mdscapa_get(inode); obdo_set_parent_fid(oinfo.oi_oa, &ll_i2info(inode)->lli_fid); rc = obd_setattr_rqset(sbi->ll_dt_exp, &oinfo, NULL); - capa_put(oinfo.oi_capa); OBDO_FREE(oinfo.oi_oa); ccc_inode_lsm_put(inode, lsm); @@ -2205,15 +2153,11 @@ struct md_op_data *ll_prep_md_op_data(struct md_op_data *op_data, ll_i2gids(op_data->op_suppgids, i1, i2); op_data->op_fid1 = *ll_inode2fid(i1); - op_data->op_capa1 = ll_mdscapa_get(i1); - if (i2) { + if (i2) op_data->op_fid2 = *ll_inode2fid(i2); - op_data->op_capa2 = ll_mdscapa_get(i2); - } else { + else fid_zero(&op_data->op_fid2); - op_data->op_capa2 = NULL; - } op_data->op_name = name; op_data->op_namelen = namelen; @@ -2242,7 +2186,6 @@ struct md_op_data *ll_prep_md_op_data(struct md_op_data *op_data, if (likely(!lli->lli_has_smd && !fid_is_zero(&lli->lli_pfid))) op_data->op_fid1 = lli->lli_pfid; spin_unlock(&lli->lli_lock); - /** We ignore parent's capability temporary. */ } /* When called by ll_setattr_raw, file is i1. */ @@ -2254,8 +2197,6 @@ struct md_op_data *ll_prep_md_op_data(struct md_op_data *op_data, void ll_finish_md_op_data(struct md_op_data *op_data) { - capa_put(op_data->op_capa1); - capa_put(op_data->op_capa2); kfree(op_data); } diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index 2635678e3d60..2e663ea25258 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@ -905,7 +905,6 @@ int ll_objects_destroy(struct ptlrpc_request *request, struct inode *dir) struct lov_stripe_md *lsm = NULL; struct obd_trans_info oti = { 0 }; struct obdo *oa; - struct obd_capa *oc = NULL; int rc; /* req is swabbed so this is safe */ @@ -957,15 +956,8 @@ int ll_objects_destroy(struct ptlrpc_request *request, struct inode *dir) } } - if (body->valid & OBD_MD_FLOSSCAPA) { - rc = md_unpack_capa(ll_i2mdexp(dir), request, &RMF_CAPA2, &oc); - if (rc) - goto out_free_memmd; - } - rc = obd_destroy(NULL, ll_i2dtexp(dir), oa, lsm, &oti, - ll_i2mdexp(dir), oc); - capa_put(oc); + ll_i2mdexp(dir)); if (rc) CERROR("obd destroy objid "DOSTID" error %d\n", POSTID(&lsm->lsm_oi), rc); diff --git a/drivers/staging/lustre/lustre/llite/remote_perm.c b/drivers/staging/lustre/lustre/llite/remote_perm.c index 39022ea88b5f..dc33055acf3b 100644 --- a/drivers/staging/lustre/lustre/llite/remote_perm.c +++ b/drivers/staging/lustre/lustre/llite/remote_perm.c @@ -249,7 +249,6 @@ int lustre_check_remote_perm(struct inode *inode, int mask) struct ll_sb_info *sbi = ll_i2sbi(inode); struct ptlrpc_request *req = NULL; struct mdt_remote_perm *perm; - struct obd_capa *oc; unsigned long save; int i = 0, rc; @@ -276,10 +275,8 @@ int lustre_check_remote_perm(struct inode *inode, int mask) LBUG(); } - oc = ll_mdscapa_get(inode); - rc = md_get_remote_perm(sbi->ll_md_exp, ll_inode2fid(inode), oc, + rc = md_get_remote_perm(sbi->ll_md_exp, ll_inode2fid(inode), ll_i2suppgid(inode), &req); - capa_put(oc); if (rc) { mutex_unlock(&lli->lli_rmtperm_mutex); break; diff --git a/drivers/staging/lustre/lustre/llite/rw.c b/drivers/staging/lustre/lustre/llite/rw.c index 3e2825514f7e..8c1bfd2f6d4f 100644 --- a/drivers/staging/lustre/lustre/llite/rw.c +++ b/drivers/staging/lustre/lustre/llite/rw.c @@ -277,14 +277,6 @@ int ll_commit_write(struct file *file, struct page *vmpage, unsigned from, return result; } -struct obd_capa *cl_capa_lookup(struct inode *inode, enum cl_req_type crt) -{ - __u64 opc; - - opc = crt == CRT_WRITE ? CAPA_OPC_OSS_WRITE : CAPA_OPC_OSS_RW; - return ll_osscapa_get(inode, opc); -} - static void ll_ra_stats_inc_sbi(struct ll_sb_info *sbi, enum ra_stat which); /** diff --git a/drivers/staging/lustre/lustre/llite/statahead.c b/drivers/staging/lustre/lustre/llite/statahead.c index 8f4cca1ef109..c8602818836d 100644 --- a/drivers/staging/lustre/lustre/llite/statahead.c +++ b/drivers/staging/lustre/lustre/llite/statahead.c @@ -784,25 +784,16 @@ static void sa_args_fini(struct md_enqueue_info *minfo, { LASSERT(minfo && einfo); iput(minfo->mi_dir); - capa_put(minfo->mi_data.op_capa1); - capa_put(minfo->mi_data.op_capa2); kfree(minfo); kfree(einfo); } /** - * There is race condition between "capa_put" and "ll_statahead_interpret" for - * accessing "op_data.op_capa[1,2]" as following: - * "capa_put" releases "op_data.op_capa[1,2]"'s reference count after calling - * "md_intent_getattr_async". But "ll_statahead_interpret" maybe run first, and - * fill "op_data.op_capa[1,2]" as POISON, then cause "capa_put" access invalid - * "ocapa". So here reserve "op_data.op_capa[1,2]" in "pcapa" before calling - * "md_intent_getattr_async". + * prepare arguments for async stat RPC. */ static int sa_args_init(struct inode *dir, struct inode *child, struct ll_sa_entry *entry, struct md_enqueue_info **pmi, - struct ldlm_enqueue_info **pei, - struct obd_capa **pcapa) + struct ldlm_enqueue_info **pei) { struct qstr *qstr = &entry->se_qstr; struct ll_inode_info *lli = ll_i2info(dir); @@ -843,8 +834,6 @@ static int sa_args_init(struct inode *dir, struct inode *child, *pmi = minfo; *pei = einfo; - pcapa[0] = op_data->op_capa1; - pcapa[1] = op_data->op_capa2; return 0; } @@ -853,20 +842,15 @@ static int do_sa_lookup(struct inode *dir, struct ll_sa_entry *entry) { struct md_enqueue_info *minfo; struct ldlm_enqueue_info *einfo; - struct obd_capa *capas[2]; int rc; - rc = sa_args_init(dir, NULL, entry, &minfo, &einfo, capas); + rc = sa_args_init(dir, NULL, entry, &minfo, &einfo); if (rc) return rc; rc = md_intent_getattr_async(ll_i2mdexp(dir), minfo, einfo); - if (!rc) { - capa_put(capas[0]); - capa_put(capas[1]); - } else { + if (rc < 0) sa_args_fini(minfo, einfo); - } return rc; } @@ -885,7 +869,6 @@ static int do_sa_revalidate(struct inode *dir, struct ll_sa_entry *entry, .d.lustre.it_lock_handle = 0 }; struct md_enqueue_info *minfo; struct ldlm_enqueue_info *einfo; - struct obd_capa *capas[2]; int rc; if (unlikely(inode == NULL)) @@ -903,7 +886,7 @@ static int do_sa_revalidate(struct inode *dir, struct ll_sa_entry *entry, return 1; } - rc = sa_args_init(dir, inode, entry, &minfo, &einfo, capas); + rc = sa_args_init(dir, inode, entry, &minfo, &einfo); if (rc) { entry->se_inode = NULL; iput(inode); @@ -911,10 +894,7 @@ static int do_sa_revalidate(struct inode *dir, struct ll_sa_entry *entry, } rc = md_intent_getattr_async(ll_i2mdexp(dir), minfo, einfo); - if (!rc) { - capa_put(capas[0]); - capa_put(capas[1]); - } else { + if (rc < 0) { entry->se_inode = NULL; iput(inode); sa_args_fini(minfo, einfo); diff --git a/drivers/staging/lustre/lustre/llite/super25.c b/drivers/staging/lustre/lustre/llite/super25.c index a0de99f9e26c..b35e02a49ba3 100644 --- a/drivers/staging/lustre/lustre/llite/super25.c +++ b/drivers/staging/lustre/lustre/llite/super25.c @@ -154,14 +154,10 @@ static int __init init_lustre_lite(void) ktime_get_ts64(&ts); cfs_srand(ts.tv_sec ^ seed[0], ts.tv_nsec ^ seed[1]); - setup_timer(&ll_capa_timer, ll_capa_timer_callback, 0); - rc = ll_capa_thread_start(); - if (rc != 0) - goto out_sysfs; rc = vvp_global_init(); if (rc != 0) - goto out_capa; + goto out_sysfs; rc = ll_xattr_init(); if (rc != 0) @@ -175,9 +171,6 @@ static int __init init_lustre_lite(void) out_vvp: vvp_global_fini(); -out_capa: - del_timer(&ll_capa_timer); - ll_capa_thread_stop(); out_sysfs: kset_unregister(llite_kset); out_debugfs: @@ -201,11 +194,6 @@ static void __exit exit_lustre_lite(void) ll_xattr_fini(); vvp_global_fini(); - del_timer(&ll_capa_timer); - ll_capa_thread_stop(); - LASSERTF(capa_count[CAPA_SITE_CLIENT] == 0, - "client remaining capa count %d\n", - capa_count[CAPA_SITE_CLIENT]); kmem_cache_destroy(ll_inode_cachep); kmem_cache_destroy(ll_rmtperm_hash_cachep); diff --git a/drivers/staging/lustre/lustre/llite/xattr.c b/drivers/staging/lustre/lustre/llite/xattr.c index dddc1ffc6164..e051dcc82efe 100644 --- a/drivers/staging/lustre/lustre/llite/xattr.c +++ b/drivers/staging/lustre/lustre/llite/xattr.c @@ -111,7 +111,6 @@ int ll_setxattr_common(struct inode *inode, const char *name, struct ll_sb_info *sbi = ll_i2sbi(inode); struct ptlrpc_request *req = NULL; int xattr_type, rc; - struct obd_capa *oc; #ifdef CONFIG_FS_POSIX_ACL struct rmtacl_ctl_entry *rce = NULL; posix_acl_xattr_header *new_value = NULL; @@ -189,11 +188,9 @@ int ll_setxattr_common(struct inode *inode, const char *name, valid |= rce_ops2valid(rce->rce_ops); } #endif - oc = ll_mdscapa_get(inode); - rc = md_setxattr(sbi->ll_md_exp, ll_inode2fid(inode), oc, + rc = md_setxattr(sbi->ll_md_exp, ll_inode2fid(inode), valid, name, pv, size, 0, flags, ll_i2suppgid(inode), &req); - capa_put(oc); #ifdef CONFIG_FS_POSIX_ACL if (new_value != NULL) lustre_posix_acl_xattr_free(new_value, size); @@ -290,7 +287,6 @@ int ll_getxattr_common(struct inode *inode, const char *name, struct mdt_body *body; int xattr_type, rc; void *xdata; - struct obd_capa *oc; struct rmtacl_ctl_entry *rce = NULL; struct ll_inode_info *lli = ll_i2info(inode); @@ -381,11 +377,9 @@ do_getxattr: } } else { getxattr_nocache: - oc = ll_mdscapa_get(inode); - rc = md_getxattr(sbi->ll_md_exp, ll_inode2fid(inode), oc, + rc = md_getxattr(sbi->ll_md_exp, ll_inode2fid(inode), valid | (rce ? rce_ops2valid(rce->rce_ops) : 0), name, NULL, 0, size, 0, &req); - capa_put(oc); if (rc < 0) goto out_xattr; diff --git a/drivers/staging/lustre/lustre/lmv/lmv_obd.c b/drivers/staging/lustre/lustre/lmv/lmv_obd.c index cebbacfc5bee..8f0ffa458322 100644 --- a/drivers/staging/lustre/lustre/lmv/lmv_obd.c +++ b/drivers/staging/lustre/lustre/lmv/lmv_obd.c @@ -1438,8 +1438,7 @@ out_free_temp: } static int lmv_getstatus(struct obd_export *exp, - struct lu_fid *fid, - struct obd_capa **pc) + struct lu_fid *fid) { struct obd_device *obd = exp->exp_obd; struct lmv_obd *lmv = &obd->u.lmv; @@ -1449,12 +1448,12 @@ static int lmv_getstatus(struct obd_export *exp, if (rc) return rc; - rc = md_getstatus(lmv->tgts[0]->ltd_exp, fid, pc); + rc = md_getstatus(lmv->tgts[0]->ltd_exp, fid); return rc; } static int lmv_getxattr(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, u64 valid, const char *name, + u64 valid, const char *name, const char *input, int input_size, int output_size, int flags, struct ptlrpc_request **request) { @@ -1471,14 +1470,14 @@ static int lmv_getxattr(struct obd_export *exp, const struct lu_fid *fid, if (IS_ERR(tgt)) return PTR_ERR(tgt); - rc = md_getxattr(tgt->ltd_exp, fid, oc, valid, name, input, + rc = md_getxattr(tgt->ltd_exp, fid, valid, name, input, input_size, output_size, flags, request); return rc; } static int lmv_setxattr(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, u64 valid, const char *name, + u64 valid, const char *name, const char *input, int input_size, int output_size, int flags, __u32 suppgid, struct ptlrpc_request **request) @@ -1496,7 +1495,7 @@ static int lmv_setxattr(struct obd_export *exp, const struct lu_fid *fid, if (IS_ERR(tgt)) return PTR_ERR(tgt); - rc = md_setxattr(tgt->ltd_exp, fid, oc, valid, name, input, + rc = md_setxattr(tgt->ltd_exp, fid, valid, name, input, input_size, output_size, flags, suppgid, request); @@ -2014,7 +2013,7 @@ static int lmv_setattr(struct obd_export *exp, struct md_op_data *op_data, } static int lmv_sync(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, struct ptlrpc_request **request) + struct ptlrpc_request **request) { struct obd_device *obd = exp->exp_obd; struct lmv_obd *lmv = &obd->u.lmv; @@ -2029,7 +2028,7 @@ static int lmv_sync(struct obd_export *exp, const struct lu_fid *fid, if (IS_ERR(tgt)) return PTR_ERR(tgt); - rc = md_sync(tgt->ltd_exp, fid, oc, request); + rc = md_sync(tgt->ltd_exp, fid, request); return rc; } @@ -2607,8 +2606,7 @@ static int lmv_clear_open_replay_data(struct obd_export *exp, static int lmv_get_remote_perm(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, __u32 suppgid, - struct ptlrpc_request **request) + __u32 suppgid, struct ptlrpc_request **request) { struct obd_device *obd = exp->exp_obd; struct lmv_obd *lmv = &obd->u.lmv; @@ -2623,39 +2621,10 @@ static int lmv_get_remote_perm(struct obd_export *exp, if (IS_ERR(tgt)) return PTR_ERR(tgt); - rc = md_get_remote_perm(tgt->ltd_exp, fid, oc, suppgid, request); + rc = md_get_remote_perm(tgt->ltd_exp, fid, suppgid, request); return rc; } -static int lmv_renew_capa(struct obd_export *exp, struct obd_capa *oc, - renew_capa_cb_t cb) -{ - struct obd_device *obd = exp->exp_obd; - struct lmv_obd *lmv = &obd->u.lmv; - struct lmv_tgt_desc *tgt; - int rc; - - rc = lmv_check_connect(obd); - if (rc) - return rc; - - tgt = lmv_find_target(lmv, &oc->c_capa.lc_fid); - if (IS_ERR(tgt)) - return PTR_ERR(tgt); - - rc = md_renew_capa(tgt->ltd_exp, oc, cb); - return rc; -} - -static int lmv_unpack_capa(struct obd_export *exp, struct ptlrpc_request *req, - const struct req_msg_field *field, - struct obd_capa **oc) -{ - struct lmv_obd *lmv = &exp->exp_obd->u.lmv; - - return md_unpack_capa(lmv->tgts[0]->ltd_exp, req, field, oc); -} - static int lmv_intent_getattr_async(struct obd_export *exp, struct md_enqueue_info *minfo, struct ldlm_enqueue_info *einfo) @@ -2821,8 +2790,6 @@ static struct md_ops lmv_md_ops = { .m_free_lustre_md = lmv_free_lustre_md, .m_set_open_replay_data = lmv_set_open_replay_data, .m_clear_open_replay_data = lmv_clear_open_replay_data, - .m_renew_capa = lmv_renew_capa, - .m_unpack_capa = lmv_unpack_capa, .m_get_remote_perm = lmv_get_remote_perm, .m_intent_getattr_async = lmv_intent_getattr_async, .m_revalidate_lock = lmv_revalidate_lock diff --git a/drivers/staging/lustre/lustre/lov/lov_io.c b/drivers/staging/lustre/lustre/lov/lov_io.c index b5b25803d4f1..489227ae1256 100644 --- a/drivers/staging/lustre/lustre/lov/lov_io.c +++ b/drivers/staging/lustre/lustre/lov/lov_io.c @@ -90,7 +90,6 @@ static void lov_io_sub_inherit(struct cl_io *io, struct lov_io *lio, case CIT_SETATTR: { io->u.ci_setattr.sa_attr = parent->u.ci_setattr.sa_attr; io->u.ci_setattr.sa_valid = parent->u.ci_setattr.sa_valid; - io->u.ci_setattr.sa_capa = parent->u.ci_setattr.sa_capa; if (cl_io_is_trunc(io)) { loff_t new_size = parent->u.ci_setattr.sa_attr.lvb_size; @@ -111,7 +110,6 @@ static void lov_io_sub_inherit(struct cl_io *io, struct lov_io *lio, case CIT_FSYNC: { io->u.ci_fsync.fi_start = start; io->u.ci_fsync.fi_end = end; - io->u.ci_fsync.fi_capa = parent->u.ci_fsync.fi_capa; io->u.ci_fsync.fi_fid = parent->u.ci_fsync.fi_fid; io->u.ci_fsync.fi_mode = parent->u.ci_fsync.fi_mode; break; diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index d51311c9c753..5c69ce9b9402 100644 --- a/drivers/staging/lustre/lustre/lov/lov_obd.c +++ b/drivers/staging/lustre/lustre/lov/lov_obd.c @@ -1061,8 +1061,7 @@ do { \ static int lov_destroy(const struct lu_env *env, struct obd_export *exp, struct obdo *oa, struct lov_stripe_md *lsm, - struct obd_trans_info *oti, struct obd_export *md_exp, - void *capa) + struct obd_trans_info *oti, struct obd_export *md_exp) { struct lov_request_set *set; struct obd_info oinfo; @@ -1094,7 +1093,7 @@ static int lov_destroy(const struct lu_env *env, struct obd_export *exp, oti->oti_logcookies = set->set_cookies + req->rq_stripe; err = obd_destroy(env, lov->lov_tgts[req->rq_idx]->ltd_exp, - req->rq_oi.oi_oa, NULL, oti, NULL, capa); + req->rq_oi.oi_oa, NULL, oti, NULL); err = lov_update_common_set(set, req, err); if (err) { CERROR("%s: destroying objid "DOSTID" subobj " @@ -2067,7 +2066,7 @@ static int lov_set_info_async(const struct lu_env *env, struct obd_export *exp, struct lov_tgt_desc *tgt; unsigned incr, check_uuid, do_inactive, no_set; - unsigned next_id = 0, mds_con = 0, capa = 0; + unsigned next_id = 0, mds_con = 0; incr = check_uuid = do_inactive = no_set = 0; if (set == NULL) { @@ -2092,8 +2091,6 @@ static int lov_set_info_async(const struct lu_env *env, struct obd_export *exp, /* use defaults: do_inactive = incr = 0; */ } else if (KEY_IS(KEY_MDS_CONN)) { mds_con = 1; - } else if (KEY_IS(KEY_CAPA_KEY)) { - capa = 1; } else if (KEY_IS(KEY_CACHE_SET)) { LASSERT(lov->lov_cache == NULL); lov->lov_cache = val; @@ -2132,19 +2129,6 @@ static int lov_set_info_async(const struct lu_env *env, struct obd_export *exp, err = obd_set_info_async(env, tgt->ltd_exp, keylen, key, vallen, ((struct obd_id_info *)val)->data, set); - } else if (capa) { - struct mds_capa_info *info = (struct mds_capa_info *)val; - - LASSERT(vallen == sizeof(*info)); - - /* Only want a specific OSC */ - if (info->uuid && - !obd_uuid_equals(info->uuid, &tgt->ltd_uuid)) - continue; - - err = obd_set_info_async(env, tgt->ltd_exp, keylen, - key, sizeof(*info->capa), - info->capa, set); } else { /* Only want a specific OSC */ if (check_uuid && diff --git a/drivers/staging/lustre/lustre/lov/lov_request.c b/drivers/staging/lustre/lustre/lov/lov_request.c index 416e42ed7792..104c92ace682 100644 --- a/drivers/staging/lustre/lustre/lov/lov_request.c +++ b/drivers/staging/lustre/lustre/lov/lov_request.c @@ -319,7 +319,6 @@ int lov_prep_getattr_set(struct obd_export *exp, struct obd_info *oinfo, sizeof(*req->rq_oi.oi_oa)); req->rq_oi.oi_oa->o_oi = loi->loi_oi; req->rq_oi.oi_cb_up = cb_getattr_update; - req->rq_oi.oi_capa = oinfo->oi_capa; lov_set_add_req(req, set); } @@ -518,7 +517,6 @@ int lov_prep_setattr_set(struct obd_export *exp, struct obd_info *oinfo, req->rq_oi.oi_oa->o_oi = loi->loi_oi; req->rq_oi.oi_oa->o_stripe_idx = i; req->rq_oi.oi_cb_up = cb_setattr_update; - req->rq_oi.oi_capa = oinfo->oi_capa; if (oinfo->oi_oa->o_valid & OBD_MD_FLSIZE) { int off = lov_stripe_offset(oinfo->oi_md, diff --git a/drivers/staging/lustre/lustre/mdc/mdc_internal.h b/drivers/staging/lustre/lustre/mdc/mdc_internal.h index 4d149435e949..29b46f754726 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_internal.h +++ b/drivers/staging/lustre/lustre/mdc/mdc_internal.h @@ -43,17 +43,14 @@ void lprocfs_mdc_init_vars(struct lprocfs_static_vars *lvars); void mdc_pack_body(struct ptlrpc_request *req, const struct lu_fid *fid, - struct obd_capa *oc, __u64 valid, int ea_size, - __u32 suppgid, int flags); -void mdc_pack_capa(struct ptlrpc_request *req, - const struct req_msg_field *field, struct obd_capa *oc); + __u64 valid, int ea_size, __u32 suppgid, int flags); int mdc_pack_req(struct ptlrpc_request *req, int version, int opc); void mdc_is_subdir_pack(struct ptlrpc_request *req, const struct lu_fid *pfid, const struct lu_fid *cfid, int flags); void mdc_swap_layouts_pack(struct ptlrpc_request *req, struct md_op_data *op_data); void mdc_readdir_pack(struct ptlrpc_request *req, __u64 pgoff, __u32 size, - const struct lu_fid *fid, struct obd_capa *oc); + const struct lu_fid *fid); void mdc_getattr_pack(struct ptlrpc_request *req, __u64 valid, int flags, struct md_op_data *data, int ea_size); void mdc_setattr_pack(struct ptlrpc_request *req, struct md_op_data *op_data, @@ -140,17 +137,6 @@ int mdc_cancel_unused(struct obd_export *exp, const struct lu_fid *fid, ldlm_policy_data_t *policy, ldlm_mode_t mode, ldlm_cancel_flags_t flags, void *opaque); -static inline void mdc_set_capa_size(struct ptlrpc_request *req, - const struct req_msg_field *field, - struct obd_capa *oc) -{ - if (oc == NULL) - req_capsule_set_size(&req->rq_pill, field, RCL_CLIENT, 0); - else - /* it is already calculated as sizeof struct obd_capa */ - ; -} - int mdc_revalidate_lock(struct obd_export *exp, struct lookup_intent *it, struct lu_fid *fid, __u64 *bits); diff --git a/drivers/staging/lustre/lustre/mdc/mdc_lib.c b/drivers/staging/lustre/lustre/mdc/mdc_lib.c index 1a850ea26849..ce0bcdfacb0e 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_lib.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_lib.c @@ -52,24 +52,6 @@ static void __mdc_pack_body(struct mdt_body *b, __u32 suppgid) b->capability = cfs_curproc_cap_pack(); } -void mdc_pack_capa(struct ptlrpc_request *req, - const struct req_msg_field *field, - struct obd_capa *oc) -{ - struct req_capsule *pill = &req->rq_pill; - struct lustre_capa *c; - - if (oc == NULL) { - LASSERT(req_capsule_get_size(pill, field, RCL_CLIENT) == 0); - return; - } - - c = req_capsule_client_get(pill, field); - LASSERT(c != NULL); - capa_cpy(c, oc); - DEBUG_CAPA(D_SEC, c, "pack"); -} - void mdc_is_subdir_pack(struct ptlrpc_request *req, const struct lu_fid *pfid, const struct lu_fid *cfid, int flags) { @@ -95,13 +77,9 @@ void mdc_swap_layouts_pack(struct ptlrpc_request *req, b->fid1 = op_data->op_fid1; b->fid2 = op_data->op_fid2; b->valid |= OBD_MD_FLID; - - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); - mdc_pack_capa(req, &RMF_CAPA2, op_data->op_capa2); } -void mdc_pack_body(struct ptlrpc_request *req, - const struct lu_fid *fid, struct obd_capa *oc, +void mdc_pack_body(struct ptlrpc_request *req, const struct lu_fid *fid, __u64 valid, int ea_size, __u32 suppgid, int flags) { struct mdt_body *b = req_capsule_client_get(&req->rq_pill, @@ -114,12 +92,11 @@ void mdc_pack_body(struct ptlrpc_request *req, if (fid) { b->fid1 = *fid; b->valid |= OBD_MD_FLID; - mdc_pack_capa(req, &RMF_CAPA1, oc); } } void mdc_readdir_pack(struct ptlrpc_request *req, __u64 pgoff, - __u32 size, const struct lu_fid *fid, struct obd_capa *oc) + __u32 size, const struct lu_fid *fid) { struct mdt_body *b = req_capsule_client_get(&req->rq_pill, &RMF_MDT_BODY); @@ -129,8 +106,6 @@ void mdc_readdir_pack(struct ptlrpc_request *req, __u64 pgoff, b->nlink = size; /* !! */ __mdc_pack_body(b, -1); b->mode = LUDA_FID | LUDA_TYPE; - - mdc_pack_capa(req, &RMF_CAPA1, oc); } /* packing of MDS records */ @@ -164,8 +139,6 @@ void mdc_create_pack(struct ptlrpc_request *req, struct md_op_data *op_data, rec->cr_bias = op_data->op_bias; rec->cr_umask = current_umask(); - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); - tmp = req_capsule_client_get(&req->rq_pill, &RMF_NAME); LOGL0(op_data->op_name, op_data->op_namelen, tmp); @@ -235,10 +208,6 @@ void mdc_open_pack(struct ptlrpc_request *req, struct md_op_data *op_data, rec->cr_umask = current_umask(); rec->cr_old_handle = op_data->op_handle; - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); - /* the next buffer is child capa, which is used for replay, - * will be packed from the data in reply message. */ - if (op_data->op_name) { tmp = req_capsule_client_get(&req->rq_pill, &RMF_NAME); LOGL0(op_data->op_name, op_data->op_namelen, tmp); @@ -347,8 +316,6 @@ void mdc_setattr_pack(struct ptlrpc_request *req, struct md_op_data *op_data, rec = req_capsule_client_get(&req->rq_pill, &RMF_REC_REINT); mdc_setattr_pack_rec(rec, op_data); - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); - if (op_data->op_flags & (MF_SOM_CHANGE | MF_EPOCH_OPEN)) { epoch = req_capsule_client_get(&req->rq_pill, &RMF_MDT_EPOCH); mdc_ioepoch_pack(epoch, op_data); @@ -396,8 +363,6 @@ void mdc_unlink_pack(struct ptlrpc_request *req, struct md_op_data *op_data) rec->ul_time = op_data->op_mod_time; rec->ul_bias = op_data->op_bias; - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); - tmp = req_capsule_client_get(&req->rq_pill, &RMF_NAME); LASSERT(tmp != NULL); LOGL0(op_data->op_name, op_data->op_namelen, tmp); @@ -423,9 +388,6 @@ void mdc_link_pack(struct ptlrpc_request *req, struct md_op_data *op_data) rec->lk_time = op_data->op_mod_time; rec->lk_bias = op_data->op_bias; - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); - mdc_pack_capa(req, &RMF_CAPA2, op_data->op_capa2); - tmp = req_capsule_client_get(&req->rq_pill, &RMF_NAME); LOGL0(op_data->op_name, op_data->op_namelen, tmp); } @@ -452,9 +414,6 @@ void mdc_rename_pack(struct ptlrpc_request *req, struct md_op_data *op_data, rec->rn_mode = op_data->op_mode; rec->rn_bias = op_data->op_bias; - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); - mdc_pack_capa(req, &RMF_CAPA2, op_data->op_capa2); - tmp = req_capsule_client_get(&req->rq_pill, &RMF_NAME); LOGL0(old, oldlen, tmp); @@ -483,8 +442,6 @@ void mdc_getattr_pack(struct ptlrpc_request *req, __u64 valid, int flags, b->fid2 = op_data->op_fid2; b->valid |= OBD_MD_FLID; - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); - if (op_data->op_name) { char *tmp = req_capsule_client_get(&req->rq_pill, &RMF_NAME); @@ -524,7 +481,6 @@ void mdc_close_pack(struct ptlrpc_request *req, struct md_op_data *op_data) rec = req_capsule_client_get(&req->rq_pill, &RMF_REC_REINT); mdc_setattr_pack_rec(rec, op_data); - mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1); mdc_ioepoch_pack(epoch, op_data); mdc_hsm_release_pack(req, op_data); } diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c index ebd9f76825ee..5c34130ab69a 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_locks.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_locks.c @@ -322,12 +322,6 @@ static struct ptlrpc_request *mdc_intent_open_pack(struct obd_export *exp, return ERR_PTR(-ENOMEM); } - /* parent capability */ - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - /* child capability, reserve the size according to parent capa, it will - * be filled after we get the reply */ - mdc_set_capa_size(req, &RMF_CAPA2, op_data->op_capa1); - req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, op_data->op_namelen + 1); req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_CLIENT, @@ -376,8 +370,6 @@ mdc_intent_getxattr_pack(struct obd_export *exp, if (req == NULL) return ERR_PTR(-ENOMEM); - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - rc = ldlm_prep_enqueue_req(exp, req, &cancels, count); if (rc) { ptlrpc_request_free(req); @@ -391,8 +383,8 @@ mdc_intent_getxattr_pack(struct obd_export *exp, maxdata = class_exp2cliimp(exp)->imp_connect_data.ocd_max_easize; /* pack the intended request */ - mdc_pack_body(req, &op_data->op_fid1, op_data->op_capa1, - op_data->op_valid, maxdata, -1, 0); + mdc_pack_body(req, &op_data->op_fid1, op_data->op_valid, maxdata, -1, + 0); req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_SERVER, maxdata); @@ -422,7 +414,6 @@ static struct ptlrpc_request *mdc_intent_unlink_pack(struct obd_export *exp, if (req == NULL) return ERR_PTR(-ENOMEM); - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, op_data->op_namelen + 1); @@ -455,7 +446,7 @@ static struct ptlrpc_request *mdc_intent_getattr_pack(struct obd_export *exp, struct obd_device *obddev = class_exp2obd(exp); u64 valid = OBD_MD_FLGETATTR | OBD_MD_FLEASIZE | OBD_MD_FLMODEASIZE | OBD_MD_FLDIREA | - OBD_MD_FLMDSCAPA | OBD_MD_MEA | + OBD_MD_MEA | (client_is_remote(exp) ? OBD_MD_FLRMTPERM : OBD_MD_FLACL); struct ldlm_intent *lit; @@ -467,7 +458,6 @@ static struct ptlrpc_request *mdc_intent_getattr_pack(struct obd_export *exp, if (req == NULL) return ERR_PTR(-ENOMEM); - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, op_data->op_namelen + 1); @@ -705,27 +695,6 @@ static int mdc_finish_enqueue(struct obd_export *exp, if (perm == NULL) return -EPROTO; } - if (body->valid & OBD_MD_FLMDSCAPA) { - struct lustre_capa *capa, *p; - - capa = req_capsule_server_get(pill, &RMF_CAPA1); - if (capa == NULL) - return -EPROTO; - - if (it->it_op & IT_OPEN) { - /* client fid capa will be checked in replay */ - p = req_capsule_client_get(pill, &RMF_CAPA2); - LASSERT(p); - *p = *capa; - } - } - if (body->valid & OBD_MD_FLOSSCAPA) { - struct lustre_capa *capa; - - capa = req_capsule_server_get(pill, &RMF_CAPA2); - if (capa == NULL) - return -EPROTO; - } } else if (it->it_op & IT_LAYOUT) { /* maybe the lock was granted right away and layout * is packed into RMF_DLM_LVB of req */ diff --git a/drivers/staging/lustre/lustre/mdc/mdc_reint.c b/drivers/staging/lustre/lustre/mdc/mdc_reint.c index 79e4fd48a96a..c87c7d8efa07 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_reint.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_reint.c @@ -127,7 +127,6 @@ int mdc_setattr(struct obd_export *exp, struct md_op_data *op_data, ldlm_lock_list_put(&cancels, l_bl_ast, count); return -ENOMEM; } - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); if ((op_data->op_flags & (MF_SOM_CHANGE | MF_EPOCH_OPEN)) == 0) req_capsule_set_size(&req->rq_pill, &RMF_MDT_EPOCH, RCL_CLIENT, 0); @@ -242,7 +241,6 @@ rebuild: ldlm_lock_list_put(&cancels, l_bl_ast, count); return -ENOMEM; } - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, op_data->op_namelen + 1); req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_CLIENT, @@ -296,18 +294,6 @@ rebuild: CDEBUG(D_HA, "resend cross eviction\n"); return -EIO; } - } else if (rc == 0) { - struct mdt_body *body; - struct lustre_capa *capa; - - body = req_capsule_server_get(&req->rq_pill, &RMF_MDT_BODY); - LASSERT(body); - if (body->valid & OBD_MD_FLMDSCAPA) { - capa = req_capsule_server_get(&req->rq_pill, - &RMF_CAPA1); - if (capa == NULL) - rc = -EPROTO; - } } *request = req; @@ -342,7 +328,6 @@ int mdc_unlink(struct obd_export *exp, struct md_op_data *op_data, ldlm_lock_list_put(&cancels, l_bl_ast, count); return -ENOMEM; } - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, op_data->op_namelen + 1); @@ -392,8 +377,6 @@ int mdc_link(struct obd_export *exp, struct md_op_data *op_data, ldlm_lock_list_put(&cancels, l_bl_ast, count); return -ENOMEM; } - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - mdc_set_capa_size(req, &RMF_CAPA2, op_data->op_capa2); req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, op_data->op_namelen + 1); @@ -451,8 +434,6 @@ int mdc_rename(struct obd_export *exp, struct md_op_data *op_data, return -ENOMEM; } - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - mdc_set_capa_size(req, &RMF_CAPA2, op_data->op_capa2); req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, oldlen + 1); req_capsule_set_size(&req->rq_pill, &RMF_SYMTGT, RCL_CLIENT, newlen+1); diff --git a/drivers/staging/lustre/lustre/mdc/mdc_request.c b/drivers/staging/lustre/lustre/mdc/mdc_request.c index fd6fc10349c3..87261766a018 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_request.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_request.c @@ -53,35 +53,8 @@ #define REQUEST_MINOR 244 -struct mdc_renew_capa_args { - struct obd_capa *ra_oc; - renew_capa_cb_t ra_cb; -}; - static int mdc_cleanup(struct obd_device *obd); -static int mdc_unpack_capa(struct obd_export *exp, struct ptlrpc_request *req, - const struct req_msg_field *field, struct obd_capa **oc) -{ - struct lustre_capa *capa; - struct obd_capa *c; - - /* swabbed already in mdc_enqueue */ - capa = req_capsule_server_get(&req->rq_pill, field); - if (capa == NULL) - return -EPROTO; - - c = alloc_capa(CAPA_SITE_CLIENT); - if (IS_ERR(c)) { - CDEBUG(D_INFO, "alloc capa failed!\n"); - return PTR_ERR(c); - } - - c->c_capa = *capa; - *oc = c; - return 0; -} - static inline int mdc_queue_wait(struct ptlrpc_request *req) { struct client_obd *cli = &req->rq_import->imp_obd->u.cli; @@ -100,23 +73,20 @@ static inline int mdc_queue_wait(struct ptlrpc_request *req) return rc; } -/* Helper that implements most of mdc_getstatus and signal_completed_replay. */ -/* XXX this should become mdc_get_info("key"), sending MDS_GET_INFO RPC */ -static int send_getstatus(struct obd_import *imp, struct lu_fid *rootfid, - struct obd_capa **pc, int level, int msg_flags) +static int mdc_getstatus(struct obd_export *exp, struct lu_fid *rootfid) { struct ptlrpc_request *req; struct mdt_body *body; int rc; - req = ptlrpc_request_alloc_pack(imp, &RQF_MDS_GETSTATUS, + req = ptlrpc_request_alloc_pack(class_exp2cliimp(exp), + &RQF_MDS_GETSTATUS, LUSTRE_MDS_VERSION, MDS_GETSTATUS); if (req == NULL) return -ENOMEM; - mdc_pack_body(req, NULL, NULL, 0, 0, -1, 0); - lustre_msg_add_flags(req->rq_reqmsg, msg_flags); - req->rq_send_state = level; + mdc_pack_body(req, NULL, 0, 0, -1, 0); + req->rq_send_state = LUSTRE_IMP_FULL; ptlrpc_request_set_replen(req); @@ -130,12 +100,6 @@ static int send_getstatus(struct obd_import *imp, struct lu_fid *rootfid, goto out; } - if (body->valid & OBD_MD_FLMDSCAPA) { - rc = mdc_unpack_capa(NULL, req, &RMF_CAPA1, pc); - if (rc) - goto out; - } - *rootfid = body->fid1; CDEBUG(D_NET, "root fid="DFID", last_committed=%llu\n", @@ -146,14 +110,6 @@ out: return rc; } -/* This should be mdc_get_info("rootfid") */ -static int mdc_getstatus(struct obd_export *exp, struct lu_fid *rootfid, - struct obd_capa **pc) -{ - return send_getstatus(class_exp2cliimp(exp), rootfid, pc, - LUSTRE_IMP_FULL, 0); -} - /* * This function now is known to always saying that it will receive 4 buffers * from server. Even for cases when acl_size and md_size is zero, RPC header @@ -203,14 +159,6 @@ static int mdc_getattr_common(struct obd_export *exp, return -EPROTO; } - if (body->valid & OBD_MD_FLMDSCAPA) { - struct lustre_capa *capa; - - capa = req_capsule_server_get(pill, &RMF_CAPA1); - if (capa == NULL) - return -EPROTO; - } - return 0; } @@ -230,16 +178,14 @@ static int mdc_getattr(struct obd_export *exp, struct md_op_data *op_data, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_GETATTR); if (rc) { ptlrpc_request_free(req); return rc; } - mdc_pack_body(req, &op_data->op_fid1, op_data->op_capa1, - op_data->op_valid, op_data->op_mode, -1, 0); + mdc_pack_body(req, &op_data->op_fid1, op_data->op_valid, + op_data->op_mode, -1, 0); req_capsule_set_size(&req->rq_pill, &RMF_MDT_MD, RCL_SERVER, op_data->op_mode); @@ -270,7 +216,6 @@ static int mdc_getattr_name(struct obd_export *exp, struct md_op_data *op_data, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, op_data->op_namelen + 1); @@ -280,9 +225,8 @@ static int mdc_getattr_name(struct obd_export *exp, struct md_op_data *op_data, return rc; } - mdc_pack_body(req, &op_data->op_fid1, op_data->op_capa1, - op_data->op_valid, op_data->op_mode, - op_data->op_suppgids[0], 0); + mdc_pack_body(req, &op_data->op_fid1, op_data->op_valid, + op_data->op_mode, op_data->op_suppgids[0], 0); if (op_data->op_name) { char *name = req_capsule_client_get(&req->rq_pill, &RMF_NAME); @@ -333,7 +277,7 @@ static int mdc_is_subdir(struct obd_export *exp, static int mdc_xattr_common(struct obd_export *exp, const struct req_format *fmt, const struct lu_fid *fid, - struct obd_capa *oc, int opcode, u64 valid, + int opcode, u64 valid, const char *xattr_name, const char *input, int input_size, int output_size, int flags, __u32 suppgid, struct ptlrpc_request **request) @@ -348,7 +292,6 @@ static int mdc_xattr_common(struct obd_export *exp, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, oc); if (xattr_name) { xattr_namelen = strlen(xattr_name) + 1; req_capsule_set_size(&req->rq_pill, &RMF_NAME, RCL_CLIENT, @@ -406,9 +349,8 @@ static int mdc_xattr_common(struct obd_export *exp, rec->sx_size = output_size; rec->sx_flags = flags; - mdc_pack_capa(req, &RMF_CAPA1, oc); } else { - mdc_pack_body(req, fid, oc, valid, output_size, suppgid, flags); + mdc_pack_body(req, fid, valid, output_size, suppgid, flags); } if (xattr_name) { @@ -442,23 +384,24 @@ static int mdc_xattr_common(struct obd_export *exp, } static int mdc_setxattr(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, u64 valid, const char *xattr_name, - const char *input, int input_size, int output_size, - int flags, __u32 suppgid, struct ptlrpc_request **request) + u64 valid, const char *xattr_name, + const char *input, int input_size, int output_size, + int flags, __u32 suppgid, + struct ptlrpc_request **request) { return mdc_xattr_common(exp, &RQF_MDS_REINT_SETXATTR, - fid, oc, MDS_REINT, valid, xattr_name, + fid, MDS_REINT, valid, xattr_name, input, input_size, output_size, flags, suppgid, request); } static int mdc_getxattr(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, u64 valid, const char *xattr_name, - const char *input, int input_size, int output_size, - int flags, struct ptlrpc_request **request) + u64 valid, const char *xattr_name, + const char *input, int input_size, int output_size, + int flags, struct ptlrpc_request **request) { return mdc_xattr_common(exp, &RQF_MDS_GETXATTR, - fid, oc, MDS_GETXATTR, valid, xattr_name, + fid, MDS_GETXATTR, valid, xattr_name, input, input_size, output_size, flags, -1, request); } @@ -618,34 +561,9 @@ int mdc_get_lustre_md(struct obd_export *exp, struct ptlrpc_request *req, #endif } } - if (md->body->valid & OBD_MD_FLMDSCAPA) { - struct obd_capa *oc = NULL; - - rc = mdc_unpack_capa(NULL, req, &RMF_CAPA1, &oc); - if (rc) - goto out; - md->mds_capa = oc; - } - - if (md->body->valid & OBD_MD_FLOSSCAPA) { - struct obd_capa *oc = NULL; - - rc = mdc_unpack_capa(NULL, req, &RMF_CAPA2, &oc); - if (rc) - goto out; - md->oss_capa = oc; - } out: if (rc) { - if (md->oss_capa) { - capa_put(md->oss_capa); - md->oss_capa = NULL; - } - if (md->mds_capa) { - capa_put(md->mds_capa); - md->mds_capa = NULL; - } #ifdef CONFIG_FS_POSIX_ACL posix_acl_release(md->posix_acl); #endif @@ -887,8 +805,6 @@ static int mdc_close(struct obd_export *exp, struct md_op_data *op_data, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_CLOSE); if (rc) { ptlrpc_request_free(req); @@ -989,7 +905,6 @@ static int mdc_done_writing(struct obd_export *exp, struct md_op_data *op_data, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_DONE_WRITING); if (rc) { ptlrpc_request_free(req); @@ -1066,8 +981,6 @@ restart_bulk: if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_READPAGE); if (rc) { ptlrpc_request_free(req); @@ -1090,7 +1003,7 @@ restart_bulk: mdc_readdir_pack(req, op_data->op_offset, PAGE_CACHE_SIZE * op_data->op_npages, - &op_data->op_fid1, op_data->op_capa1); + &op_data->op_fid1); ptlrpc_request_set_replen(req); rc = ptlrpc_queue_wait(req); @@ -1253,7 +1166,7 @@ static int mdc_ioc_hsm_progress(struct obd_export *exp, goto out; } - mdc_pack_body(req, NULL, NULL, OBD_MD_FLRMTPERM, 0, 0, 0); + mdc_pack_body(req, NULL, OBD_MD_FLRMTPERM, 0, 0, 0); /* Copy hsm_progress struct */ req_hpk = req_capsule_client_get(&req->rq_pill, &RMF_MDS_HSM_PROGRESS); @@ -1288,7 +1201,7 @@ static int mdc_ioc_hsm_ct_register(struct obd_import *imp, __u32 archives) goto out; } - mdc_pack_body(req, NULL, NULL, OBD_MD_FLRMTPERM, 0, 0, 0); + mdc_pack_body(req, NULL, OBD_MD_FLRMTPERM, 0, 0, 0); /* Copy hsm_progress struct */ archive_mask = req_capsule_client_get(&req->rq_pill, @@ -1322,16 +1235,14 @@ static int mdc_ioc_hsm_current_action(struct obd_export *exp, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_HSM_ACTION); if (rc) { ptlrpc_request_free(req); return rc; } - mdc_pack_body(req, &op_data->op_fid1, op_data->op_capa1, - OBD_MD_FLRMTPERM, 0, op_data->op_suppgids[0], 0); + mdc_pack_body(req, &op_data->op_fid1, OBD_MD_FLRMTPERM, 0, + op_data->op_suppgids[0], 0); ptlrpc_request_set_replen(req); @@ -1366,7 +1277,7 @@ static int mdc_ioc_hsm_ct_unregister(struct obd_import *imp) goto out; } - mdc_pack_body(req, NULL, NULL, OBD_MD_FLRMTPERM, 0, 0, 0); + mdc_pack_body(req, NULL, OBD_MD_FLRMTPERM, 0, 0, 0); ptlrpc_request_set_replen(req); @@ -1390,16 +1301,14 @@ static int mdc_ioc_hsm_state_get(struct obd_export *exp, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_HSM_STATE_GET); if (rc != 0) { ptlrpc_request_free(req); return rc; } - mdc_pack_body(req, &op_data->op_fid1, op_data->op_capa1, - OBD_MD_FLRMTPERM, 0, op_data->op_suppgids[0], 0); + mdc_pack_body(req, &op_data->op_fid1, OBD_MD_FLRMTPERM, 0, + op_data->op_suppgids[0], 0); ptlrpc_request_set_replen(req); @@ -1433,16 +1342,14 @@ static int mdc_ioc_hsm_state_set(struct obd_export *exp, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_HSM_STATE_SET); if (rc) { ptlrpc_request_free(req); return rc; } - mdc_pack_body(req, &op_data->op_fid1, op_data->op_capa1, - OBD_MD_FLRMTPERM, 0, op_data->op_suppgids[0], 0); + mdc_pack_body(req, &op_data->op_fid1, OBD_MD_FLRMTPERM, 0, + op_data->op_suppgids[0], 0); /* Copy states */ req_hss = req_capsule_client_get(&req->rq_pill, &RMF_HSM_STATE_SET); @@ -1490,7 +1397,7 @@ static int mdc_ioc_hsm_request(struct obd_export *exp, return rc; } - mdc_pack_body(req, NULL, NULL, OBD_MD_FLRMTPERM, 0, 0, 0); + mdc_pack_body(req, NULL, OBD_MD_FLRMTPERM, 0, 0, 0); /* Copy hsm_request struct */ req_hr = req_capsule_client_get(&req->rq_pill, &RMF_MDS_HSM_REQUEST); @@ -1799,9 +1706,6 @@ static int mdc_ioc_swap_layouts(struct obd_export *exp, return -ENOMEM; } - mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1); - mdc_set_capa_size(req, &RMF_CAPA2, op_data->op_capa2); - rc = mdc_prep_elc_req(exp, req, MDS_SWAP_LAYOUTS, &cancels, count); if (rc) { ptlrpc_request_free(req); @@ -2260,7 +2164,7 @@ static int mdc_get_info(const struct lu_env *env, struct obd_export *exp, } static int mdc_sync(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, struct ptlrpc_request **request) + struct ptlrpc_request **request) { struct ptlrpc_request *req; int rc; @@ -2270,15 +2174,13 @@ static int mdc_sync(struct obd_export *exp, const struct lu_fid *fid, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, oc); - rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_SYNC); if (rc) { ptlrpc_request_free(req); return rc; } - mdc_pack_body(req, fid, oc, 0, 0, -1, 0); + mdc_pack_body(req, fid, 0, 0, -1, 0); ptlrpc_request_set_replen(req); @@ -2547,8 +2449,7 @@ static int mdc_process_config(struct obd_device *obd, u32 len, void *buf) /* get remote permission for current user on fid */ static int mdc_get_remote_perm(struct obd_export *exp, const struct lu_fid *fid, - struct obd_capa *oc, __u32 suppgid, - struct ptlrpc_request **request) + __u32 suppgid, struct ptlrpc_request **request) { struct ptlrpc_request *req; int rc; @@ -2560,15 +2461,13 @@ static int mdc_get_remote_perm(struct obd_export *exp, const struct lu_fid *fid, if (req == NULL) return -ENOMEM; - mdc_set_capa_size(req, &RMF_CAPA1, oc); - rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_GETATTR); if (rc) { ptlrpc_request_free(req); return rc; } - mdc_pack_body(req, fid, oc, OBD_MD_FLRMTPERM, 0, suppgid, 0); + mdc_pack_body(req, fid, OBD_MD_FLRMTPERM, 0, suppgid, 0); req_capsule_set_size(&req->rq_pill, &RMF_ACL, RCL_SERVER, sizeof(struct mdt_remote_perm)); @@ -2583,66 +2482,6 @@ static int mdc_get_remote_perm(struct obd_export *exp, const struct lu_fid *fid, return rc; } -static int mdc_interpret_renew_capa(const struct lu_env *env, - struct ptlrpc_request *req, void *args, - int status) -{ - struct mdc_renew_capa_args *ra = args; - struct mdt_body *body = NULL; - struct lustre_capa *capa; - - if (status) { - capa = ERR_PTR(status); - goto out; - } - - body = req_capsule_server_get(&req->rq_pill, &RMF_MDT_BODY); - if (body == NULL) { - capa = ERR_PTR(-EFAULT); - goto out; - } - - if ((body->valid & OBD_MD_FLOSSCAPA) == 0) { - capa = ERR_PTR(-ENOENT); - goto out; - } - - capa = req_capsule_server_get(&req->rq_pill, &RMF_CAPA2); - if (!capa) { - capa = ERR_PTR(-EFAULT); - goto out; - } -out: - ra->ra_cb(ra->ra_oc, capa); - return 0; -} - -static int mdc_renew_capa(struct obd_export *exp, struct obd_capa *oc, - renew_capa_cb_t cb) -{ - struct ptlrpc_request *req; - struct mdc_renew_capa_args *ra; - - req = ptlrpc_request_alloc_pack(class_exp2cliimp(exp), &RQF_MDS_GETATTR, - LUSTRE_MDS_VERSION, MDS_GETATTR); - if (req == NULL) - return -ENOMEM; - - /* NB, OBD_MD_FLOSSCAPA is set here, but it doesn't necessarily mean the - * capa to renew is oss capa. - */ - mdc_pack_body(req, &oc->c_capa.lc_fid, oc, OBD_MD_FLOSSCAPA, 0, -1, 0); - ptlrpc_request_set_replen(req); - - CLASSERT(sizeof(*ra) <= sizeof(req->rq_async_args)); - ra = ptlrpc_req_async_args(req); - ra->ra_oc = oc; - ra->ra_cb = cb; - req->rq_interpret_reply = mdc_interpret_renew_capa; - ptlrpcd_add_req(req); - return 0; -} - static struct obd_ops mdc_obd_ops = { .o_owner = THIS_MODULE, .o_setup = mdc_setup, @@ -2694,8 +2533,6 @@ static struct md_ops mdc_md_ops = { .m_free_lustre_md = mdc_free_lustre_md, .m_set_open_replay_data = mdc_set_open_replay_data, .m_clear_open_replay_data = mdc_clear_open_replay_data, - .m_renew_capa = mdc_renew_capa, - .m_unpack_capa = mdc_unpack_capa, .m_get_remote_perm = mdc_get_remote_perm, .m_intent_getattr_async = mdc_intent_getattr_async, .m_revalidate_lock = mdc_revalidate_lock diff --git a/drivers/staging/lustre/lustre/obdclass/Makefile b/drivers/staging/lustre/lustre/obdclass/Makefile index 16174ae70dcf..acc685712ce9 100644 --- a/drivers/staging/lustre/lustre/obdclass/Makefile +++ b/drivers/staging/lustre/lustre/obdclass/Makefile @@ -5,5 +5,5 @@ obdclass-y := linux/linux-module.o linux/linux-obdo.o linux/linux-sysctl.o \ genops.o uuid.o lprocfs_status.o \ lustre_handles.o lustre_peer.o \ statfs_pack.o obdo.o obd_config.o obd_mount.o \ - lu_object.o capa.o cl_object.o \ + lu_object.o cl_object.o \ cl_page.o cl_lock.o cl_io.o lu_ref.o acl.o lprocfs_counters.o diff --git a/drivers/staging/lustre/lustre/obdclass/capa.c b/drivers/staging/lustre/lustre/obdclass/capa.c deleted file mode 100644 index 99af0176f413..000000000000 --- a/drivers/staging/lustre/lustre/obdclass/capa.c +++ /dev/null @@ -1,421 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - * - * Copyright (c) 2012, Intel Corporation. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - * - * lustre/obdclass/capa.c - * - * Lustre Capability Hash Management - * - * Author: Lai Siyao - */ - -#define DEBUG_SUBSYSTEM S_SEC - -#include -#include -#include -#include -#include - -#include "../include/obd_class.h" -#include "../include/lustre_debug.h" -#include "../include/lustre/lustre_idl.h" - -#include -#include "../include/lustre_capa.h" - -#define NR_CAPAHASH 32 -#define CAPA_HASH_SIZE 3000 /* for MDS & OSS */ - -struct kmem_cache *capa_cachep; - -/* lock for capa hash/capa_list/fo_capa_keys */ -DEFINE_SPINLOCK(capa_lock); - -struct list_head capa_list[CAPA_SITE_MAX]; - -static struct capa_hmac_alg capa_hmac_algs[] = { - DEF_CAPA_HMAC_ALG("sha1", SHA1, 20, 20), -}; -/* capa count */ -int capa_count[CAPA_SITE_MAX] = { 0, }; - -EXPORT_SYMBOL(capa_cachep); -EXPORT_SYMBOL(capa_list); -EXPORT_SYMBOL(capa_lock); -EXPORT_SYMBOL(capa_count); - -static inline -unsigned int ll_crypto_tfm_alg_min_keysize(struct crypto_blkcipher *tfm) -{ - return crypto_blkcipher_tfm(tfm)->__crt_alg->cra_blkcipher.min_keysize; -} - -struct hlist_head *init_capa_hash(void) -{ - struct hlist_head *hash; - int nr_hash, i; - - hash = kzalloc(PAGE_CACHE_SIZE, GFP_NOFS); - if (!hash) - return NULL; - - nr_hash = PAGE_CACHE_SIZE / sizeof(struct hlist_head); - LASSERT(nr_hash > NR_CAPAHASH); - - for (i = 0; i < NR_CAPAHASH; i++) - INIT_HLIST_HEAD(hash + i); - return hash; -} -EXPORT_SYMBOL(init_capa_hash); - -static inline int capa_on_server(struct obd_capa *ocapa) -{ - return ocapa->c_site == CAPA_SITE_SERVER; -} - -static inline void capa_delete(struct obd_capa *ocapa) -{ - LASSERT(capa_on_server(ocapa)); - hlist_del_init(&ocapa->u.tgt.c_hash); - list_del_init(&ocapa->c_list); - capa_count[ocapa->c_site]--; - /* release the ref when alloc */ - capa_put(ocapa); -} - -void cleanup_capa_hash(struct hlist_head *hash) -{ - int i; - struct hlist_node *next; - struct obd_capa *oc; - - spin_lock(&capa_lock); - for (i = 0; i < NR_CAPAHASH; i++) { - hlist_for_each_entry_safe(oc, next, hash + i, - u.tgt.c_hash) - capa_delete(oc); - } - spin_unlock(&capa_lock); - - kfree(hash); -} -EXPORT_SYMBOL(cleanup_capa_hash); - -static inline int capa_hashfn(struct lu_fid *fid) -{ - return (fid_oid(fid) ^ fid_ver(fid)) * - (unsigned long)(fid_seq(fid) + 1) % NR_CAPAHASH; -} - -/* capa renewal time check is earlier than that on client, which is to prevent - * client renew right after obtaining it. */ -static inline int capa_is_to_expire(struct obd_capa *oc) -{ - return time_before(cfs_time_sub(oc->c_expiry, - cfs_time_seconds(oc->c_capa.lc_timeout)*2/3), - cfs_time_current()); -} - -static struct obd_capa *find_capa(struct lustre_capa *capa, - struct hlist_head *head, int alive) -{ - struct obd_capa *ocapa; - int len = alive ? offsetof(struct lustre_capa, lc_keyid):sizeof(*capa); - - hlist_for_each_entry(ocapa, head, u.tgt.c_hash) { - if (memcmp(&ocapa->c_capa, capa, len)) - continue; - /* don't return one that will expire soon in this case */ - if (alive && capa_is_to_expire(ocapa)) - continue; - - LASSERT(capa_on_server(ocapa)); - - DEBUG_CAPA(D_SEC, &ocapa->c_capa, "found"); - return ocapa; - } - - return NULL; -} - -#define LRU_CAPA_DELETE_COUNT 12 -static inline void capa_delete_lru(struct list_head *head) -{ - struct obd_capa *ocapa; - struct list_head *node = head->next; - int count = 0; - - /* free LRU_CAPA_DELETE_COUNT unused capa from head */ - while (count++ < LRU_CAPA_DELETE_COUNT) { - ocapa = list_entry(node, struct obd_capa, c_list); - node = node->next; - if (atomic_read(&ocapa->c_refc)) - continue; - - DEBUG_CAPA(D_SEC, &ocapa->c_capa, "free lru"); - capa_delete(ocapa); - } -} - -/* add or update */ -struct obd_capa *capa_add(struct hlist_head *hash, struct lustre_capa *capa) -{ - struct hlist_head *head = hash + capa_hashfn(&capa->lc_fid); - struct obd_capa *ocapa, *old = NULL; - struct list_head *list = &capa_list[CAPA_SITE_SERVER]; - - ocapa = alloc_capa(CAPA_SITE_SERVER); - if (IS_ERR(ocapa)) - return NULL; - - spin_lock(&capa_lock); - old = find_capa(capa, head, 0); - if (!old) { - ocapa->c_capa = *capa; - set_capa_expiry(ocapa); - hlist_add_head(&ocapa->u.tgt.c_hash, head); - list_add_tail(&ocapa->c_list, list); - capa_get(ocapa); - capa_count[CAPA_SITE_SERVER]++; - if (capa_count[CAPA_SITE_SERVER] > CAPA_HASH_SIZE) - capa_delete_lru(list); - spin_unlock(&capa_lock); - return ocapa; - } - capa_get(old); - spin_unlock(&capa_lock); - capa_put(ocapa); - return old; -} -EXPORT_SYMBOL(capa_add); - -struct obd_capa *capa_lookup(struct hlist_head *hash, struct lustre_capa *capa, - int alive) -{ - struct obd_capa *ocapa; - - spin_lock(&capa_lock); - ocapa = find_capa(capa, hash + capa_hashfn(&capa->lc_fid), alive); - if (ocapa) { - list_move_tail(&ocapa->c_list, - &capa_list[CAPA_SITE_SERVER]); - capa_get(ocapa); - } - spin_unlock(&capa_lock); - - return ocapa; -} -EXPORT_SYMBOL(capa_lookup); - -static inline int ll_crypto_hmac(struct crypto_hash *tfm, - u8 *key, unsigned int *keylen, - struct scatterlist *sg, - unsigned int size, u8 *result) -{ - struct hash_desc desc; - int rv; - desc.tfm = tfm; - desc.flags = 0; - rv = crypto_hash_setkey(desc.tfm, key, *keylen); - if (rv) { - CERROR("failed to hash setkey: %d\n", rv); - return rv; - } - return crypto_hash_digest(&desc, sg, size, result); -} - -int capa_hmac(__u8 *hmac, struct lustre_capa *capa, __u8 *key) -{ - struct crypto_hash *tfm; - struct capa_hmac_alg *alg; - int keylen; - struct scatterlist sl; - - if (capa_alg(capa) != CAPA_HMAC_ALG_SHA1) { - CERROR("unknown capability hmac algorithm!\n"); - return -EFAULT; - } - - alg = &capa_hmac_algs[capa_alg(capa)]; - - tfm = crypto_alloc_hash(alg->ha_name, 0, 0); - if (IS_ERR(tfm)) { - CERROR("crypto_alloc_tfm failed, check whether your kernel has crypto support!\n"); - return PTR_ERR(tfm); - } - keylen = alg->ha_keylen; - - sg_init_table(&sl, 1); - sg_set_page(&sl, virt_to_page(capa), - offsetof(struct lustre_capa, lc_hmac), - (unsigned long)(capa) % PAGE_CACHE_SIZE); - - ll_crypto_hmac(tfm, key, &keylen, &sl, sl.length, hmac); - crypto_free_hash(tfm); - - return 0; -} -EXPORT_SYMBOL(capa_hmac); - -int capa_encrypt_id(__u32 *d, __u32 *s, __u8 *key, int keylen) -{ - struct crypto_blkcipher *tfm; - struct scatterlist sd; - struct scatterlist ss; - struct blkcipher_desc desc; - unsigned int min; - int rc; - char alg[CRYPTO_MAX_ALG_NAME+1] = "aes"; - - /* passing "aes" in a variable instead of a constant string keeps gcc - * 4.3.2 happy */ - tfm = crypto_alloc_blkcipher(alg, 0, 0); - if (IS_ERR(tfm)) { - CERROR("failed to load transform for aes\n"); - return PTR_ERR(tfm); - } - - min = ll_crypto_tfm_alg_min_keysize(tfm); - if (keylen < min) { - CERROR("keylen at least %d bits for aes\n", min * 8); - rc = -EINVAL; - goto out; - } - - rc = crypto_blkcipher_setkey(tfm, key, min); - if (rc) { - CERROR("failed to setting key for aes\n"); - goto out; - } - - sg_init_table(&sd, 1); - sg_set_page(&sd, virt_to_page(d), 16, - (unsigned long)(d) % PAGE_CACHE_SIZE); - - sg_init_table(&ss, 1); - sg_set_page(&ss, virt_to_page(s), 16, - (unsigned long)(s) % PAGE_CACHE_SIZE); - desc.tfm = tfm; - desc.info = NULL; - desc.flags = 0; - rc = crypto_blkcipher_encrypt(&desc, &sd, &ss, 16); - if (rc) { - CERROR("failed to encrypt for aes\n"); - goto out; - } - -out: - crypto_free_blkcipher(tfm); - return rc; -} -EXPORT_SYMBOL(capa_encrypt_id); - -int capa_decrypt_id(__u32 *d, __u32 *s, __u8 *key, int keylen) -{ - struct crypto_blkcipher *tfm; - struct scatterlist sd; - struct scatterlist ss; - struct blkcipher_desc desc; - unsigned int min; - int rc; - char alg[CRYPTO_MAX_ALG_NAME+1] = "aes"; - - /* passing "aes" in a variable instead of a constant string keeps gcc - * 4.3.2 happy */ - tfm = crypto_alloc_blkcipher(alg, 0, 0); - if (IS_ERR(tfm)) { - CERROR("failed to load transform for aes\n"); - return PTR_ERR(tfm); - } - - min = ll_crypto_tfm_alg_min_keysize(tfm); - if (keylen < min) { - CERROR("keylen at least %d bits for aes\n", min * 8); - rc = -EINVAL; - goto out; - } - - rc = crypto_blkcipher_setkey(tfm, key, min); - if (rc) { - CERROR("failed to setting key for aes\n"); - goto out; - } - - sg_init_table(&sd, 1); - sg_set_page(&sd, virt_to_page(d), 16, - (unsigned long)(d) % PAGE_CACHE_SIZE); - - sg_init_table(&ss, 1); - sg_set_page(&ss, virt_to_page(s), 16, - (unsigned long)(s) % PAGE_CACHE_SIZE); - - desc.tfm = tfm; - desc.info = NULL; - desc.flags = 0; - rc = crypto_blkcipher_decrypt(&desc, &sd, &ss, 16); - if (rc) { - CERROR("failed to decrypt for aes\n"); - goto out; - } - -out: - crypto_free_blkcipher(tfm); - return rc; -} -EXPORT_SYMBOL(capa_decrypt_id); - -void capa_cpy(void *capa, struct obd_capa *ocapa) -{ - spin_lock(&ocapa->c_lock); - *(struct lustre_capa *)capa = ocapa->c_capa; - spin_unlock(&ocapa->c_lock); -} -EXPORT_SYMBOL(capa_cpy); - -void _debug_capa(struct lustre_capa *c, - struct libcfs_debug_msg_data *msgdata, - const char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - libcfs_debug_vmsg2(msgdata, fmt, args, - " capability@%p fid " DFID " opc %#llx uid %llu gid %llu flags %u alg %d keyid %u timeout %u expiry %u\n", - c, PFID(capa_fid(c)), capa_opc(c), - capa_uid(c), capa_gid(c), capa_flags(c), - capa_alg(c), capa_keyid(c), capa_timeout(c), - capa_expiry(c)); - va_end(args); -} -EXPORT_SYMBOL(_debug_capa); diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index 39bf734e9298..058b859de156 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -479,9 +479,6 @@ static int __init init_obdclass(void) int i, err; int lustre_register_fs(void); - for (i = CAPA_SITE_CLIENT; i < CAPA_SITE_MAX; i++) - INIT_LIST_HEAD(&capa_list[i]); - LCONSOLE_INFO("Lustre: Build Version: "BUILD_VERSION"\n"); spin_lock_init(&obd_types_lock); diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 44cb5bc64ce7..059611b28f92 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -645,8 +645,6 @@ void obd_cleanup_caches(void) obdo_cachep = NULL; kmem_cache_destroy(import_cachep); import_cachep = NULL; - kmem_cache_destroy(capa_cachep); - capa_cachep = NULL; } int obd_init_caches(void) @@ -671,12 +669,6 @@ int obd_init_caches(void) if (!import_cachep) goto out; - LASSERT(!capa_cachep); - capa_cachep = kmem_cache_create("capa_cache", - sizeof(struct obd_capa), 0, 0, NULL); - if (!capa_cachep) - goto out; - return 0; out: obd_cleanup_caches(); diff --git a/drivers/staging/lustre/lustre/obdecho/echo_client.c b/drivers/staging/lustre/lustre/obdecho/echo_client.c index 4feca2c42775..ec9ccff86648 100644 --- a/drivers/staging/lustre/lustre/obdecho/echo_client.c +++ b/drivers/staging/lustre/lustre/obdecho/echo_client.c @@ -1400,7 +1400,7 @@ static int echo_create_object(const struct lu_env *env, struct echo_device *ed, failed: if (created && rc) - obd_destroy(env, ec->ec_exp, oa, lsm, oti, NULL, NULL); + obd_destroy(env, ec->ec_exp, oa, lsm, oti, NULL); if (lsm) echo_free_memmd(ed, &lsm); if (rc) @@ -1691,7 +1691,7 @@ static int echo_client_prep_commit(const struct lu_env *env, lpages = npages; ret = obd_preprw(env, rw, exp, oa, 1, &ioo, rnb, &lpages, - lnb, oti, NULL); + lnb, oti); if (ret != 0) goto out; LASSERT(lpages == npages); @@ -1907,7 +1907,7 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, rc = echo_get_object(&eco, ed, oa); if (rc == 0) { rc = obd_destroy(env, ec->ec_exp, oa, eco->eo_lsm, - &dummy_oti, NULL, NULL); + &dummy_oti, NULL); if (rc == 0) eco->eo_deleted = 1; echo_put_object(eco); diff --git a/drivers/staging/lustre/lustre/osc/osc_io.c b/drivers/staging/lustre/lustre/osc/osc_io.c index 67bf0bdeb853..8d7eab0856a0 100644 --- a/drivers/staging/lustre/lustre/osc/osc_io.c +++ b/drivers/staging/lustre/lustre/osc/osc_io.c @@ -457,7 +457,6 @@ static int osc_io_setattr_start(const struct lu_env *env, } oinfo.oi_oa = oa; - oinfo.oi_capa = io->u.ci_setattr.sa_capa; init_completion(&cbargs->opc_sync); if (ia_valid & ATTR_SIZE) @@ -564,7 +563,6 @@ static int osc_fsync_ost(const struct lu_env *env, struct osc_object *obj, memset(oinfo, 0, sizeof(*oinfo)); oinfo->oi_oa = oa; - oinfo->oi_capa = fio->fi_capa; init_completion(&cbargs->opc_sync); rc = osc_sync_base(osc_export(obj), oinfo, osc_async_upcall, cbargs, diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 5491a39e8ff7..225e5ed6714f 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -72,7 +72,6 @@ struct osc_brw_async_args { struct client_obd *aa_cli; struct list_head aa_oaps; struct list_head aa_exts; - struct obd_capa *aa_ocapa; struct cl_req *aa_clerq; }; @@ -200,22 +199,6 @@ static int osc_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsmp, return lsm_size; } -static inline void osc_pack_capa(struct ptlrpc_request *req, - struct ost_body *body, void *capa) -{ - struct obd_capa *oc = (struct obd_capa *)capa; - struct lustre_capa *c; - - if (!capa) - return; - - c = req_capsule_client_get(&req->rq_pill, &RMF_CAPA1); - LASSERT(c); - capa_cpy(c, oc); - body->oa.o_valid |= OBD_MD_FLOSSCAPA; - DEBUG_CAPA(D_SEC, c, "pack"); -} - static inline void osc_pack_req_body(struct ptlrpc_request *req, struct obd_info *oinfo) { @@ -226,18 +209,6 @@ static inline void osc_pack_req_body(struct ptlrpc_request *req, lustre_set_wire_obdo(&req->rq_import->imp_connect_data, &body->oa, oinfo->oi_oa); - osc_pack_capa(req, body, oinfo->oi_capa); -} - -static inline void osc_set_capa_size(struct ptlrpc_request *req, - const struct req_msg_field *field, - struct obd_capa *oc) -{ - if (oc == NULL) - req_capsule_set_size(&req->rq_pill, field, RCL_CLIENT, 0); - else - /* it is already calculated as sizeof struct obd_capa */ - ; } static int osc_getattr_interpret(const struct lu_env *env, @@ -279,7 +250,6 @@ static int osc_getattr_async(struct obd_export *exp, struct obd_info *oinfo, if (req == NULL) return -ENOMEM; - osc_set_capa_size(req, &RMF_CAPA1, oinfo->oi_capa); rc = ptlrpc_request_pack(req, LUSTRE_OST_VERSION, OST_GETATTR); if (rc) { ptlrpc_request_free(req); @@ -310,7 +280,6 @@ static int osc_getattr(const struct lu_env *env, struct obd_export *exp, if (req == NULL) return -ENOMEM; - osc_set_capa_size(req, &RMF_CAPA1, oinfo->oi_capa); rc = ptlrpc_request_pack(req, LUSTRE_OST_VERSION, OST_GETATTR); if (rc) { ptlrpc_request_free(req); @@ -356,7 +325,6 @@ static int osc_setattr(const struct lu_env *env, struct obd_export *exp, if (req == NULL) return -ENOMEM; - osc_set_capa_size(req, &RMF_CAPA1, oinfo->oi_capa); rc = ptlrpc_request_pack(req, LUSTRE_OST_VERSION, OST_SETATTR); if (rc) { ptlrpc_request_free(req); @@ -420,7 +388,6 @@ int osc_setattr_async_base(struct obd_export *exp, struct obd_info *oinfo, if (req == NULL) return -ENOMEM; - osc_set_capa_size(req, &RMF_CAPA1, oinfo->oi_capa); rc = ptlrpc_request_pack(req, LUSTRE_OST_VERSION, OST_SETATTR); if (rc) { ptlrpc_request_free(req); @@ -566,7 +533,6 @@ int osc_punch_base(struct obd_export *exp, struct obd_info *oinfo, if (req == NULL) return -ENOMEM; - osc_set_capa_size(req, &RMF_CAPA1, oinfo->oi_capa); rc = ptlrpc_request_pack(req, LUSTRE_OST_VERSION, OST_PUNCH); if (rc) { ptlrpc_request_free(req); @@ -579,7 +545,6 @@ int osc_punch_base(struct obd_export *exp, struct obd_info *oinfo, LASSERT(body); lustre_set_wire_obdo(&req->rq_import->imp_connect_data, &body->oa, oinfo->oi_oa); - osc_pack_capa(req, body, oinfo->oi_capa); ptlrpc_request_set_replen(req); @@ -633,7 +598,6 @@ int osc_sync_base(struct obd_export *exp, struct obd_info *oinfo, if (req == NULL) return -ENOMEM; - osc_set_capa_size(req, &RMF_CAPA1, oinfo->oi_capa); rc = ptlrpc_request_pack(req, LUSTRE_OST_VERSION, OST_SYNC); if (rc) { ptlrpc_request_free(req); @@ -645,7 +609,6 @@ int osc_sync_base(struct obd_export *exp, struct obd_info *oinfo, LASSERT(body); lustre_set_wire_obdo(&req->rq_import->imp_connect_data, &body->oa, oinfo->oi_oa); - osc_pack_capa(req, body, oinfo->oi_capa); ptlrpc_request_set_replen(req); req->rq_interpret_reply = osc_sync_interpret; @@ -763,8 +726,7 @@ int osc_create(const struct lu_env *env, struct obd_export *exp, * cookies to the MDS after committing destroy transactions. */ static int osc_destroy(const struct lu_env *env, struct obd_export *exp, struct obdo *oa, struct lov_stripe_md *ea, - struct obd_trans_info *oti, struct obd_export *md_export, - void *capa) + struct obd_trans_info *oti, struct obd_export *md_export) { struct client_obd *cli = &exp->exp_obd->u.cli; struct ptlrpc_request *req; @@ -786,7 +748,6 @@ static int osc_destroy(const struct lu_env *env, struct obd_export *exp, return -ENOMEM; } - osc_set_capa_size(req, &RMF_CAPA1, (struct obd_capa *)capa); rc = ldlm_prep_elc_req(exp, req, LUSTRE_OST_VERSION, OST_DESTROY, 0, &cancels, count); if (rc) { @@ -803,7 +764,6 @@ static int osc_destroy(const struct lu_env *env, struct obd_export *exp, LASSERT(body); lustre_set_wire_obdo(&req->rq_import->imp_connect_data, &body->oa, oa); - osc_pack_capa(req, body, (struct obd_capa *)capa); ptlrpc_request_set_replen(req); /* If osc_destroy is for destroying the unlink orphan, @@ -1256,7 +1216,7 @@ static int osc_brw_prep_request(int cmd, struct client_obd *cli, struct lov_stripe_md *lsm, u32 page_count, struct brw_page **pga, struct ptlrpc_request **reqp, - struct obd_capa *ocapa, int reserve, + int reserve, int resend) { struct ptlrpc_request *req; @@ -1296,7 +1256,6 @@ static int osc_brw_prep_request(int cmd, struct client_obd *cli, sizeof(*ioobj)); req_capsule_set_size(pill, &RMF_NIOBUF_REMOTE, RCL_CLIENT, niocount * sizeof(*niobuf)); - osc_set_capa_size(req, &RMF_CAPA1, ocapa); rc = ptlrpc_request_pack(req, LUSTRE_OST_VERSION, opc); if (rc) { @@ -1335,7 +1294,6 @@ static int osc_brw_prep_request(int cmd, struct client_obd *cli, * "max - 1" for old client compatibility sending "0", and also so the * the actual maximum is a power-of-two number, not one less. LU-1431 */ ioobj_max_brw_set(ioobj, desc->bd_md_max_brw); - osc_pack_capa(req, body, ocapa); LASSERT(page_count > 0); pg_prev = pga[0]; for (requested_nob = i = 0; i < page_count; i++, niobuf++) { @@ -1444,8 +1402,6 @@ static int osc_brw_prep_request(int cmd, struct client_obd *cli, aa->aa_ppga = pga; aa->aa_cli = cli; INIT_LIST_HEAD(&aa->aa_oaps); - if (ocapa && reserve) - aa->aa_ocapa = capa_get(ocapa); *reqp = req; return 0; @@ -1667,7 +1623,7 @@ static int osc_brw_redo_request(struct ptlrpc_request *request, aa->aa_cli, aa->aa_oa, NULL /* lsm unused by osc currently */, aa->aa_page_count, aa->aa_ppga, - &new_req, aa->aa_ocapa, 0, 1); + &new_req, 0, 1); if (rc) return rc; @@ -1711,9 +1667,6 @@ static int osc_brw_redo_request(struct ptlrpc_request *request, } } - new_aa->aa_ocapa = aa->aa_ocapa; - aa->aa_ocapa = NULL; - /* XXX: This code will run into problem if we're going to support * to add a series of BRW RPCs into a self-defined ptlrpc_request_set * and wait for all of them to be finished. We should inherit request @@ -1795,11 +1748,6 @@ static int brw_interpret(const struct lu_env *env, rc = -EIO; } - if (aa->aa_ocapa) { - capa_put(aa->aa_ocapa); - aa->aa_ocapa = NULL; - } - list_for_each_entry_safe(ext, tmp, &aa->aa_exts, oe_link) { if (obj == NULL && rc == 0) { obj = osc2cl(ext->oe_obj); @@ -1975,7 +1923,7 @@ int osc_build_rpc(const struct lu_env *env, struct client_obd *cli, sort_brw_pages(pga, page_count); rc = osc_brw_prep_request(cmd, cli, oa, NULL, page_count, - pga, &req, crattr->cra_capa, 1, 0); + pga, &req, 1, 0); if (rc != 0) { CERROR("prep_req failed: %d\n", rc); goto out; @@ -2051,7 +1999,6 @@ out: cfs_memory_pressure_restore(mpflag); if (crattr != NULL) { - capa_put(crattr->cra_capa); kfree(crattr); } From a6c8746d54047640e71572d3f48f0bf5708bc92f Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:47 -0400 Subject: [PATCH 0943/2431] staging/lustre: partially use time64_t for capa expiry Here, we actually have a problem in 2038 or at the latest in 2106 when the lc_expiry variable on the wire protocol overflows, including on 64-bit architectures. Now that the actual code was removed, only on-the wire structure is left so we add in a y2038 warning to remind whoever gets to implement it again about this problem. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre/lustre_idl.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 057fa19186f0..3ac1de352296 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -3478,6 +3478,7 @@ struct lustre_capa { __u32 lc_flags; /** HMAC algorithm & flags */ __u32 lc_keyid; /** key# used for the capability */ __u32 lc_timeout; /** capa timeout value (sec) */ +/* FIXME: y2038 time_t overflow: */ __u32 lc_expiry; /** expiry time (sec) */ __u8 lc_hmac[CAPA_HMAC_MAX_LEN]; /** HMAC */ } __attribute__((packed)); From d2c3506be646a495a4e3f1d1ce9540916703c244 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Thu, 24 Sep 2015 11:00:40 -0400 Subject: [PATCH 0944/2431] staging: unisys: Add s-Par visorhba This driver create a host bus adapter device when s-Par sends a device create message to create a storage adapter on the visorbus. When the message is received by visorbus, the visorhba_probe function is called and the hba device is created and managed by the visorhba driver. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: David Kershner Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/Kconfig | 1 + drivers/staging/unisys/Makefile | 1 + drivers/staging/unisys/include/iochannel.h | 26 +- drivers/staging/unisys/visorhba/Kconfig | 14 + drivers/staging/unisys/visorhba/Makefile | 10 + .../staging/unisys/visorhba/visorhba_main.c | 1241 +++++++++++++++++ 6 files changed, 1280 insertions(+), 13 deletions(-) create mode 100644 drivers/staging/unisys/visorhba/Kconfig create mode 100644 drivers/staging/unisys/visorhba/Makefile create mode 100644 drivers/staging/unisys/visorhba/visorhba_main.c diff --git a/drivers/staging/unisys/Kconfig b/drivers/staging/unisys/Kconfig index ca850a8b2f6b..5cbb791053ed 100644 --- a/drivers/staging/unisys/Kconfig +++ b/drivers/staging/unisys/Kconfig @@ -14,5 +14,6 @@ if UNISYSSPAR source "drivers/staging/unisys/visorbus/Kconfig" source "drivers/staging/unisys/visornic/Kconfig" source "drivers/staging/unisys/visorhid/Kconfig" +source "drivers/staging/unisys/visorhba/Kconfig" endif # UNISYSSPAR diff --git a/drivers/staging/unisys/Makefile b/drivers/staging/unisys/Makefile index d071094457fe..79c9036edb5c 100644 --- a/drivers/staging/unisys/Makefile +++ b/drivers/staging/unisys/Makefile @@ -4,3 +4,4 @@ obj-$(CONFIG_UNISYS_VISORBUS) += visorbus/ obj-$(CONFIG_UNISYS_VISORNIC) += visornic/ obj-$(CONFIG_UNISYS_VISORHID) += visorhid/ +obj-$(CONFIG_UNISYS_VISORHBA) += visorhba/ diff --git a/drivers/staging/unisys/include/iochannel.h b/drivers/staging/unisys/include/iochannel.h index a559812342dc..14e656ff73ec 100644 --- a/drivers/staging/unisys/include/iochannel.h +++ b/drivers/staging/unisys/include/iochannel.h @@ -147,6 +147,10 @@ struct phys_info { u16 pi_len; } __packed; +#define MIN_NUMSIGNALS 64 + +/* structs with pragma pack */ + struct guest_phys_info { u64 address; u64 length; @@ -183,7 +187,7 @@ struct vhba_config_max { /* 20 bytes */ } __packed; struct uiscmdrsp_scsi { - void *scsicmd; /* the handle to the cmd that was received - + u64 handle; /* the handle to the cmd that was received - * send it back as is in the rsp packet. */ u8 cmnd[MAX_CMND_SIZE]; /* the cdb for the command */ u32 bufflen; /* length of data to be transferred out or in */ @@ -437,24 +441,22 @@ struct uiscmdrsp_scsitaskmgmt { struct uisscsi_dest vdest; /* the vdisk for which this task mgmt is generated */ - void *scsicmd; + u64 handle; - /* This is some handle that the guest has saved off for its own use. + /* This is a handle that the guest has saved off for its own use. * Its value is preserved by iopart & returned as is in the task * mgmt rsp. */ - void *notify; + u64 notify_handle; /* For linux guests, this is a pointer to wait_queue_head that a * thread is waiting on to see if the taskmgmt command has completed. - * For windows guests, this is a pointer to a location that a waiting - * thread is testing to see if the taskmgmt command has completed. * When the rsp is received by guest, the thread receiving the * response uses this to notify the thread waiting for taskmgmt * command completion. Its value is preserved by iopart & returned * as is in the task mgmt rsp. */ - void *notifyresult; + u64 notifyresult_handle; /* this is a handle to location in guest where the result of the * taskmgmt command (result field) is to saved off when the response @@ -486,24 +488,22 @@ struct uiscmdrsp_vdiskmgmt { struct uisscsi_dest vdest; /* the vdisk for which this task mgmt is generated */ - void *scsicmd; + u64 handle; - /* This is some handle that the guest has saved off for its own use. + /* This is a handle that the guest has saved off for its own use. * Its value is preserved by iopart & returned as is in the task * mgmt rsp. */ - void *notify; + u64 notify_handle; /* For linux guests, this is a pointer to wait_queue_head that a * thread is waiting on to see if the tskmgmt command has completed. - * For win32 guests, this is a pointer to a location that a waiting - * thread is testing to see if the taskmgmt command has completed. * When the rsp is received by guest, the thread receiving the * response uses this to notify the thread waiting for taskmgmt * command completion. Its value is preserved by iopart & returned * as is in the task mgmt rsp. */ - void *notifyresult; + u64 notifyresult_handle; /* this is a handle to location in guest where the result of the * taskmgmt command (result field) is to saved off when the response diff --git a/drivers/staging/unisys/visorhba/Kconfig b/drivers/staging/unisys/visorhba/Kconfig new file mode 100644 index 000000000000..241d8038261c --- /dev/null +++ b/drivers/staging/unisys/visorhba/Kconfig @@ -0,0 +1,14 @@ +# +# Unisys visorhba configuration +# + +config UNISYS_VISORHBA + tristate "Unisys visorhba driver" + depends on UNISYSSPAR && UNISYS_VISORBUS && SCSI + ---help--- + The Unisys visorhba driver provides support for s-Par HBA + devices exposed on the s-Par visorbus. When a message is sent + to visorbus to create a HBA device, the probe function of + visorhba is called to create the scsi device. + If you say Y here, you will enable the Unisys visorhba driver. + diff --git a/drivers/staging/unisys/visorhba/Makefile b/drivers/staging/unisys/visorhba/Makefile new file mode 100644 index 000000000000..a8a8e0e0fb09 --- /dev/null +++ b/drivers/staging/unisys/visorhba/Makefile @@ -0,0 +1,10 @@ +# +# Makefile for Unisys channel +# + +obj-$(CONFIG_UNISYS_VISORHBA) += visorhba.o + +visorhba-y := visorhba_main.o + +ccflags-y += -Idrivers/staging/unisys/include + diff --git a/drivers/staging/unisys/visorhba/visorhba_main.c b/drivers/staging/unisys/visorhba/visorhba_main.c new file mode 100644 index 000000000000..41a7bca97fc0 --- /dev/null +++ b/drivers/staging/unisys/visorhba/visorhba_main.c @@ -0,0 +1,1241 @@ +/* Copyright (c) 2012 - 2015 UNISYS CORPORATION + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "visorbus.h" +#include "iochannel.h" + +/* The Send and Receive Buffers of the IO Queue may both be full */ + +#define IOS_ERROR_THRESHOLD 1000 +/* MAX_BUF = 6 lines x 10 MAXVHBA x 80 characters + * = 4800 bytes ~ 2^13 = 8192 bytes + */ +#define MAX_BUF 8192 +#define MAX_PENDING_REQUESTS (MIN_NUMSIGNALS * 2) +#define VISORHBA_ERROR_COUNT 30 +#define VISORHBA_OPEN_MAX 1 + +static int visorhba_queue_command_lck(struct scsi_cmnd *scsicmd, + void (*visorhba_cmnd_done) + (struct scsi_cmnd *)); +#ifdef DEF_SCSI_QCMD +static DEF_SCSI_QCMD(visorhba_queue_command) +#else +#define visorhba_queue_command visorhba_queue_command_lck +#endif +static int visorhba_probe(struct visor_device *dev); +static void visorhba_remove(struct visor_device *dev); +static int visorhba_pause(struct visor_device *dev, + visorbus_state_complete_func complete_func); +static int visorhba_resume(struct visor_device *dev, + visorbus_state_complete_func complete_func); + +static ssize_t info_debugfs_read(struct file *file, char __user *buf, + size_t len, loff_t *offset); +static struct dentry *visorhba_debugfs_dir; +static const struct file_operations debugfs_info_fops = { + .read = info_debugfs_read, +}; + +/* GUIDS for HBA channel type supported by this driver */ +static struct visor_channeltype_descriptor visorhba_channel_types[] = { + /* Note that the only channel type we expect to be reported by the + * bus driver is the SPAR_VHBA channel. + */ + { SPAR_VHBA_CHANNEL_PROTOCOL_UUID, "sparvhba" }, + { NULL_UUID_LE, NULL } +}; + +/* This is used to tell the visor bus driver which types of visor devices + * we support, and what functions to call when a visor device that we support + * is attached or removed. + */ +static struct visor_driver visorhba_driver = { + .name = "visorhba", + .owner = THIS_MODULE, + .channel_types = visorhba_channel_types, + .probe = visorhba_probe, + .remove = visorhba_remove, + .pause = visorhba_pause, + .resume = visorhba_resume, + .channel_interrupt = NULL, +}; +MODULE_DEVICE_TABLE(visorbus, visorhba_channel_types); +MODULE_ALIAS("visorbus:" SPAR_VHBA_CHANNEL_PROTOCOL_UUID_STR); + +struct visor_thread_info { + struct task_struct *task; + struct completion has_stopped; + int id; +}; + +struct visordisk_info { + u32 valid; + u32 channel, id, lun; /* Disk Path */ + atomic_t ios_threshold; + atomic_t error_count; + struct visordisk_info *next; +}; + +struct scsipending { + struct uiscmdrsp cmdrsp; + void *sent; /* The Data being tracked */ + char cmdtype; /* Type of pointer that is being stored */ +}; + +/* Work Data for dar_work_queue */ +struct diskaddremove { + u8 add; /* 0-remove, 1-add */ + struct Scsi_Host *shost; /* Scsi Host for this visorhba instance */ + u32 channel, id, lun; /* Disk Path */ + struct diskaddremove *next; +}; + +/* Each scsi_host has a host_data area that contains this struct. */ +struct visorhba_devdata { + struct Scsi_Host *scsihost; + struct visor_device *dev; + struct list_head dev_info_list; + /* Tracks the requests that have been forwarded to + * the IOVM and haven't returned yet + */ + struct scsipending pending[MAX_PENDING_REQUESTS]; + /* Start search for next pending free slot here */ + unsigned int nextinsert; + spinlock_t privlock; /* lock to protect data in devdata */ + bool serverdown; + bool serverchangingstate; + unsigned long long acquire_failed_cnt; + unsigned long long interrupts_rcvd; + unsigned long long interrupts_notme; + unsigned long long interrupts_disabled; + u64 __iomem *flags_addr; + atomic_t interrupt_rcvd; + wait_queue_head_t rsp_queue; + struct visordisk_info head; + unsigned int max_buff_len; + int devnum; + struct visor_thread_info threadinfo; + int thread_wait_ms; +}; + +struct visorhba_devices_open { + struct visorhba_devdata *devdata; +}; + +static struct visorhba_devices_open visorhbas_open[VISORHBA_OPEN_MAX]; + +#define for_each_vdisk_match(iter, list, match) \ + for (iter = &list->head; iter->next; iter = iter->next) \ + if ((iter->channel == match->channel) && \ + (iter->id == match->id) && \ + (iter->lun == match->lun)) +/** + * visor_thread_start - starts a thread for the device + * @thrinfo: The thread to start + * @threadfn: Function the thread starts + * @thrcontext: Context to pass to the thread, i.e. devdata + * @name: string describing name of thread + * + * Starts a thread for the device. + * + * Return 0 on success; + */ +static int visor_thread_start(struct visor_thread_info *thrinfo, + int (*threadfn)(void *), + void *thrcontext, char *name) +{ + /* used to stop the thread */ + init_completion(&thrinfo->has_stopped); + thrinfo->task = kthread_run(threadfn, thrcontext, name); + if (IS_ERR(thrinfo->task)) { + thrinfo->id = 0; + return PTR_ERR(thrinfo->task); + } + thrinfo->id = thrinfo->task->pid; + return 0; +} + +/** + * add_scsipending_entry - save off io command that is pending in + * Service Partition + * @devdata: Pointer to devdata + * @cmdtype: Specifies the type of command pending + * @new: The command to be saved + * + * Saves off the io command that is being handled by the Service + * Partition so that it can be handled when it completes. If new is + * NULL it is assumed the entry refers only to the cmdrsp. + * Returns insert_location where entry was added, + * SCSI_MLQUEUE_DEVICE_BUSY if it can't + */ +static int add_scsipending_entry(struct visorhba_devdata *devdata, + char cmdtype, void *new) +{ + unsigned long flags; + struct scsipending *entry; + int insert_location; + + spin_lock_irqsave(&devdata->privlock, flags); + insert_location = devdata->nextinsert; + while (devdata->pending[insert_location].sent) { + insert_location = (insert_location + 1) % MAX_PENDING_REQUESTS; + if (insert_location == (int)devdata->nextinsert) { + spin_unlock_irqrestore(&devdata->privlock, flags); + return -1; + } + } + + entry = &devdata->pending[insert_location]; + memset(&entry->cmdrsp, 0, sizeof(entry->cmdrsp)); + entry->cmdtype = cmdtype; + if (new) + entry->sent = new; + else /* wants to send cmdrsp */ + entry->sent = &entry->cmdrsp; + devdata->nextinsert = (insert_location + 1) % MAX_PENDING_REQUESTS; + spin_unlock_irqrestore(&devdata->privlock, flags); + + return insert_location; +} + +/** + * del_scsipending_enty - removes an entry from the pending array + * @devdata: Device holding the pending array + * @del: Entry to remove + * + * Removes the entry pointed at by del and returns it. + * Returns the scsipending entry pointed at + */ +static void *del_scsipending_ent(struct visorhba_devdata *devdata, + int del) +{ + unsigned long flags; + void *sent = NULL; + + if (del < MAX_PENDING_REQUESTS) { + spin_lock_irqsave(&devdata->privlock, flags); + sent = devdata->pending[del].sent; + + devdata->pending[del].cmdtype = 0; + devdata->pending[del].sent = NULL; + spin_unlock_irqrestore(&devdata->privlock, flags); + } + + return sent; +} + +/** + * get_scsipending_cmdrsp - return the cmdrsp stored in a pending entry + * #ddata: Device holding the pending array + * @ent: Entry that stores the cmdrsp + * + * Each scsipending entry has a cmdrsp in it. The cmdrsp is only valid + * if the "sent" field is not NULL + * Returns a pointer to the cmdrsp. + */ +static struct uiscmdrsp *get_scsipending_cmdrsp(struct visorhba_devdata *ddata, + int ent) +{ + if (ddata->pending[ent].sent) + return &ddata->pending[ent].cmdrsp; + + return NULL; +} + +/** + * forward_taskmgmt_command - send taskmegmt command to the Service + * Partition + * @tasktype: Type of taskmgmt command + * @scsidev: Scsidev that issued command + * + * Create a cmdrsp packet and send it to the Serivce Partition + * that will service this request. + * Returns whether the command was queued successfully or not. + */ +static int forward_taskmgmt_command(enum task_mgmt_types tasktype, + struct scsi_cmnd *scsicmd) +{ + struct uiscmdrsp *cmdrsp; + struct scsi_device *scsidev = scsicmd->device; + struct visorhba_devdata *devdata = + (struct visorhba_devdata *)scsidev->host->hostdata; + int notifyresult = 0xffff; + wait_queue_head_t notifyevent; + int scsicmd_id = 0; + + if (devdata->serverdown || devdata->serverchangingstate) + return FAILED; + + scsicmd_id = add_scsipending_entry(devdata, CMD_SCSITASKMGMT_TYPE, + NULL); + if (scsicmd_id < 0) + return FAILED; + + cmdrsp = get_scsipending_cmdrsp(devdata, scsicmd_id); + + init_waitqueue_head(¬ifyevent); + + /* issue TASK_MGMT_ABORT_TASK */ + cmdrsp->cmdtype = CMD_SCSITASKMGMT_TYPE; + /* specify the event that has to be triggered when this */ + /* cmd is complete */ + cmdrsp->scsitaskmgmt.notify_handle = (u64)¬ifyevent; + cmdrsp->scsitaskmgmt.notifyresult_handle = (u64)¬ifyresult; + + /* save destination */ + cmdrsp->scsitaskmgmt.tasktype = tasktype; + cmdrsp->scsitaskmgmt.vdest.channel = scsidev->channel; + cmdrsp->scsitaskmgmt.vdest.id = scsidev->id; + cmdrsp->scsitaskmgmt.vdest.lun = scsidev->lun; + cmdrsp->scsitaskmgmt.handle = scsicmd_id; + + if (!visorchannel_signalinsert(devdata->dev->visorchannel, + IOCHAN_TO_IOPART, + cmdrsp)) + goto err_del_scsipending_ent; + + /* It can take the Service Partition up to 35 seconds to complete + * an IO in some cases, so wait 45 seconds and error out + */ + if (!wait_event_timeout(notifyevent, notifyresult != 0xffff, + msecs_to_jiffies(45000))) + goto err_del_scsipending_ent; + + if (tasktype == TASK_MGMT_ABORT_TASK) + scsicmd->result = (DID_ABORT << 16); + else + scsicmd->result = (DID_RESET << 16); + + scsicmd->scsi_done(scsicmd); + + return SUCCESS; + +err_del_scsipending_ent: + del_scsipending_ent(devdata, scsicmd_id); + return FAILED; +} + +/** + * visorhba_abort_handler - Send TASK_MGMT_ABORT_TASK + * @scsicmd: The scsicmd that needs aborted + * + * Returns SUCCESS if inserted, failure otherwise + * + */ +static int visorhba_abort_handler(struct scsi_cmnd *scsicmd) +{ + /* issue TASK_MGMT_ABORT_TASK */ + struct scsi_device *scsidev; + struct visordisk_info *vdisk; + struct visorhba_devdata *devdata; + + scsidev = scsicmd->device; + devdata = (struct visorhba_devdata *)scsidev->host->hostdata; + for_each_vdisk_match(vdisk, devdata, scsidev) { + if (atomic_read(&vdisk->error_count) < VISORHBA_ERROR_COUNT) + atomic_inc(&vdisk->error_count); + else + atomic_set(&vdisk->ios_threshold, IOS_ERROR_THRESHOLD); + } + return forward_taskmgmt_command(TASK_MGMT_ABORT_TASK, scsicmd); +} + +/** + * visorhba_device_reset_handler - Send TASK_MGMT_LUN_RESET + * @scsicmd: The scsicmd that needs aborted + * + * Returns SUCCESS if inserted, failure otherwise + */ +static int visorhba_device_reset_handler(struct scsi_cmnd *scsicmd) +{ + /* issue TASK_MGMT_LUN_RESET */ + struct scsi_device *scsidev; + struct visordisk_info *vdisk; + struct visorhba_devdata *devdata; + + scsidev = scsicmd->device; + devdata = (struct visorhba_devdata *)scsidev->host->hostdata; + for_each_vdisk_match(vdisk, devdata, scsidev) { + if (atomic_read(&vdisk->error_count) < VISORHBA_ERROR_COUNT) + atomic_inc(&vdisk->error_count); + else + atomic_set(&vdisk->ios_threshold, IOS_ERROR_THRESHOLD); + } + return forward_taskmgmt_command(TASK_MGMT_LUN_RESET, scsicmd); +} + +/** + * visorhba_bus_reset_handler - Send TASK_MGMT_TARGET_RESET for each + * target on the bus + * @scsicmd: The scsicmd that needs aborted + * + * Returns SUCCESS + */ +static int visorhba_bus_reset_handler(struct scsi_cmnd *scsicmd) +{ + struct scsi_device *scsidev; + struct visordisk_info *vdisk; + struct visorhba_devdata *devdata; + + scsidev = scsicmd->device; + devdata = (struct visorhba_devdata *)scsidev->host->hostdata; + for_each_vdisk_match(vdisk, devdata, scsidev) { + if (atomic_read(&vdisk->error_count) < VISORHBA_ERROR_COUNT) + atomic_inc(&vdisk->error_count); + else + atomic_set(&vdisk->ios_threshold, IOS_ERROR_THRESHOLD); + } + return forward_taskmgmt_command(TASK_MGMT_BUS_RESET, scsicmd); +} + +/** + * visorhba_host_reset_handler - Not supported + * @scsicmd: The scsicmd that needs aborted + * + * Not supported, return SUCCESS + * Returns SUCCESS + */ +static int +visorhba_host_reset_handler(struct scsi_cmnd *scsicmd) +{ + /* issue TASK_MGMT_TARGET_RESET for each target on each bus for host */ + return SUCCESS; +} + +/** + * visorhba_get_info + * @shp: Scsi host that is requesting information + * + * Returns string with info + */ +static const char *visorhba_get_info(struct Scsi_Host *shp) +{ + /* Return version string */ + return "visorhba"; +} + +/** + * visorhba_queue_command_lck -- queues command to the Service Partition + * @scsicmd: Command to be queued + * @vsiorhba_cmnd_done: Done command to call when scsicmd is returned + * + * Queues to scsicmd to the ServicePartition after converting it to a + * uiscmdrsp structure. + * + * Returns success if queued to the Service Partition, otherwise + * failure. + */ +static int +visorhba_queue_command_lck(struct scsi_cmnd *scsicmd, + void (*visorhba_cmnd_done)(struct scsi_cmnd *)) +{ + struct uiscmdrsp *cmdrsp; + struct scsi_device *scsidev = scsicmd->device; + int insert_location; + unsigned char op; + unsigned char *cdb = scsicmd->cmnd; + struct Scsi_Host *scsihost = scsidev->host; + unsigned int i; + struct visorhba_devdata *devdata = + (struct visorhba_devdata *)scsihost->hostdata; + struct scatterlist *sg = NULL; + struct scatterlist *sglist = NULL; + int err = 0; + + if (devdata->serverdown || devdata->serverchangingstate) + return SCSI_MLQUEUE_DEVICE_BUSY; + + insert_location = add_scsipending_entry(devdata, CMD_SCSI_TYPE, + (void *)scsicmd); + + if (insert_location < 0) + return SCSI_MLQUEUE_DEVICE_BUSY; + + cmdrsp = get_scsipending_cmdrsp(devdata, insert_location); + + cmdrsp->cmdtype = CMD_SCSI_TYPE; + /* save the pending insertion location. Deletion from pending + * will return the scsicmd pointer for completion + */ + cmdrsp->scsi.handle = insert_location; + + /* save done function that we have call when cmd is complete */ + scsicmd->scsi_done = visorhba_cmnd_done; + /* save destination */ + cmdrsp->scsi.vdest.channel = scsidev->channel; + cmdrsp->scsi.vdest.id = scsidev->id; + cmdrsp->scsi.vdest.lun = scsidev->lun; + /* save datadir */ + cmdrsp->scsi.data_dir = scsicmd->sc_data_direction; + memcpy(cmdrsp->scsi.cmnd, cdb, MAX_CMND_SIZE); + + cmdrsp->scsi.bufflen = scsi_bufflen(scsicmd); + + /* keep track of the max buffer length so far. */ + if (cmdrsp->scsi.bufflen > devdata->max_buff_len) + devdata->max_buff_len = cmdrsp->scsi.bufflen; + + if (scsi_sg_count(scsicmd) > MAX_PHYS_INFO) { + err = SCSI_MLQUEUE_DEVICE_BUSY; + goto err_del_scsipending_ent; + } + + /* convert buffer to phys information */ + /* buffer is scatterlist - copy it out */ + sglist = scsi_sglist(scsicmd); + + for_each_sg(sglist, sg, scsi_sg_count(scsicmd), i) { + cmdrsp->scsi.gpi_list[i].address = sg_phys(sg); + cmdrsp->scsi.gpi_list[i].length = sg->length; + } + cmdrsp->scsi.guest_phys_entries = scsi_sg_count(scsicmd); + + op = cdb[0]; + if (!visorchannel_signalinsert(devdata->dev->visorchannel, + IOCHAN_TO_IOPART, + cmdrsp)) { + /* queue must be full and we aren't going to wait */ + err = SCSI_MLQUEUE_DEVICE_BUSY; + goto err_del_scsipending_ent; + } + return 0; + +err_del_scsipending_ent: + del_scsipending_ent(devdata, insert_location); + return err; +} + +/** + * visorhba_slave_alloc - called when new disk is discovered + * @scsidev: New disk + * + * Create a new visordisk_info structure and add it to our + * list of vdisks. + * + * Returns success when created, otherwise error. + */ +static int visorhba_slave_alloc(struct scsi_device *scsidev) +{ + /* this is called by the midlayer before scan for new devices -- + * LLD can alloc any struct & do init if needed. + */ + struct visordisk_info *vdisk; + struct visordisk_info *tmpvdisk; + struct visorhba_devdata *devdata; + struct Scsi_Host *scsihost = (struct Scsi_Host *)scsidev->host; + + devdata = (struct visorhba_devdata *)scsihost->hostdata; + if (!devdata) + return 0; /* even though we errored, treat as success */ + + for_each_vdisk_match(vdisk, devdata, scsidev) + return 0; /* already allocated return success */ + + tmpvdisk = kzalloc(sizeof(*tmpvdisk), GFP_ATOMIC); + if (!tmpvdisk) + return -ENOMEM; + + tmpvdisk->channel = scsidev->channel; + tmpvdisk->id = scsidev->id; + tmpvdisk->lun = scsidev->lun; + vdisk->next = tmpvdisk; + return 0; +} + +/** + * visorhba_slave_destroy - disk is going away + * @scsidev: scsi device going away + * + * Disk is going away, clean up resources. + * Returns void. + */ +static void visorhba_slave_destroy(struct scsi_device *scsidev) +{ + /* midlevel calls this after device has been quiesced and + * before it is to be deleted. + */ + struct visordisk_info *vdisk, *delvdisk; + struct visorhba_devdata *devdata; + struct Scsi_Host *scsihost = (struct Scsi_Host *)scsidev->host; + + devdata = (struct visorhba_devdata *)scsihost->hostdata; + for_each_vdisk_match(vdisk, devdata, scsidev) { + delvdisk = vdisk->next; + vdisk->next = delvdisk->next; + kfree(delvdisk); + return; + } +} + +static struct scsi_host_template visorhba_driver_template = { + .name = "Unisys Visor HBA", + .info = visorhba_get_info, + .queuecommand = visorhba_queue_command, + .eh_abort_handler = visorhba_abort_handler, + .eh_device_reset_handler = visorhba_device_reset_handler, + .eh_bus_reset_handler = visorhba_bus_reset_handler, + .eh_host_reset_handler = visorhba_host_reset_handler, + .shost_attrs = NULL, +#define visorhba_MAX_CMNDS 128 + .can_queue = visorhba_MAX_CMNDS, + .sg_tablesize = 64, + .this_id = -1, + .slave_alloc = visorhba_slave_alloc, + .slave_destroy = visorhba_slave_destroy, + .use_clustering = ENABLE_CLUSTERING, +}; + +/** + * info_debugfs_read - debugfs interface to dump visorhba states + * @file: Debug file + * @buf: buffer to send back to user + * @len: len that can be written to buf + * @offset: offset into buf + * + * Dumps information about the visorhba driver and devices + * TODO: Make this per vhba + * Returns bytes_read + */ +static ssize_t info_debugfs_read(struct file *file, char __user *buf, + size_t len, loff_t *offset) +{ + ssize_t bytes_read = 0; + int str_pos = 0; + u64 phys_flags_addr; + int i; + struct visorhba_devdata *devdata; + char *vbuf; + + if (len > MAX_BUF) + len = MAX_BUF; + vbuf = kzalloc(len, GFP_KERNEL); + if (!vbuf) + return -ENOMEM; + + for (i = 0; i < VISORHBA_OPEN_MAX; i++) { + if (!visorhbas_open[i].devdata) + continue; + + devdata = visorhbas_open[i].devdata; + + str_pos += scnprintf(vbuf + str_pos, + len - str_pos, "max_buff_len:%u\n", + devdata->max_buff_len); + + str_pos += scnprintf(vbuf + str_pos, len - str_pos, + "\ninterrupts_rcvd = %llu, interrupts_disabled = %llu\n", + devdata->interrupts_rcvd, + devdata->interrupts_disabled); + str_pos += scnprintf(vbuf + str_pos, + len - str_pos, "\ninterrupts_notme = %llu,\n", + devdata->interrupts_notme); + phys_flags_addr = virt_to_phys((__force void *) + devdata->flags_addr); + str_pos += scnprintf(vbuf + str_pos, len - str_pos, + "flags_addr = %p, phys_flags_addr=0x%016llx, FeatureFlags=%llu\n", + devdata->flags_addr, phys_flags_addr, + (__le64)readq(devdata->flags_addr)); + str_pos += scnprintf(vbuf + str_pos, + len - str_pos, "acquire_failed_cnt:%llu\n", + devdata->acquire_failed_cnt); + str_pos += scnprintf(vbuf + str_pos, len - str_pos, "\n"); + } + + bytes_read = simple_read_from_buffer(buf, len, offset, vbuf, str_pos); + kfree(vbuf); + return bytes_read; +} + +/** + * visorhba_serverdown_complete - Called when we are done cleaning up + * from serverdown + * @work: work structure for this serverdown request + * + * Called when we are done cleanning up from serverdown, stop processing + * queue, fail pending IOs. + * Returns void when finished cleaning up + */ +static void visorhba_serverdown_complete(struct visorhba_devdata *devdata) +{ + int i; + struct scsipending *pendingdel = NULL; + struct scsi_cmnd *scsicmd = NULL; + struct uiscmdrsp *cmdrsp; + unsigned long flags; + + /* Stop using the IOVM response queue (queue should be drained + * by the end) + */ + kthread_stop(devdata->threadinfo.task); + + /* Fail commands that weren't completed */ + spin_lock_irqsave(&devdata->privlock, flags); + for (i = 0; i < MAX_PENDING_REQUESTS; i++) { + pendingdel = &devdata->pending[i]; + switch (pendingdel->cmdtype) { + case CMD_SCSI_TYPE: + scsicmd = (struct scsi_cmnd *)pendingdel->sent; + scsicmd->result = DID_RESET << 16; + if (scsicmd->scsi_done) + scsicmd->scsi_done(scsicmd); + break; + case CMD_SCSITASKMGMT_TYPE: + cmdrsp = (struct uiscmdrsp *)pendingdel->sent; + cmdrsp->scsitaskmgmt.notifyresult_handle + = TASK_MGMT_FAILED; + wake_up_all((wait_queue_head_t *) + cmdrsp->scsitaskmgmt.notify_handle); + break; + case CMD_VDISKMGMT_TYPE: + cmdrsp = (struct uiscmdrsp *)pendingdel->sent; + cmdrsp->vdiskmgmt.notifyresult_handle + = VDISK_MGMT_FAILED; + wake_up_all((wait_queue_head_t *) + cmdrsp->vdiskmgmt.notify_handle); + break; + default: + break; + } + pendingdel->cmdtype = 0; + pendingdel->sent = NULL; + } + spin_unlock_irqrestore(&devdata->privlock, flags); + + devdata->serverdown = true; + devdata->serverchangingstate = false; +} + +/** + * visorhba_serverdown - Got notified that the IOVM is down + * @devdata: visorhba that is being serviced by downed IOVM. + * + * Something happened to the IOVM, return immediately and + * schedule work cleanup work. + * Return SUCCESS or EINVAL + */ +static int visorhba_serverdown(struct visorhba_devdata *devdata) +{ + if (!devdata->serverdown && !devdata->serverchangingstate) { + devdata->serverchangingstate = true; + visorhba_serverdown_complete(devdata); + } else if (devdata->serverchangingstate) { + return -EINVAL; + } + return 0; +} + +/** + * do_scsi_linuxstat - scsi command returned linuxstat + * @cmdrsp: response from IOVM + * @scsicmd: Command issued. + * + * Don't log errors for disk-not-present inquiries + * Returns void + */ +static void +do_scsi_linuxstat(struct uiscmdrsp *cmdrsp, struct scsi_cmnd *scsicmd) +{ + struct visorhba_devdata *devdata; + struct visordisk_info *vdisk; + struct scsi_device *scsidev; + struct sense_data *sd; + + scsidev = scsicmd->device; + memcpy(scsicmd->sense_buffer, cmdrsp->scsi.sensebuf, MAX_SENSE_SIZE); + sd = (struct sense_data *)scsicmd->sense_buffer; + + /* Do not log errors for disk-not-present inquiries */ + if ((cmdrsp->scsi.cmnd[0] == INQUIRY) && + (host_byte(cmdrsp->scsi.linuxstat) == DID_NO_CONNECT) && + (cmdrsp->scsi.addlstat == ADDL_SEL_TIMEOUT)) + return; + /* Okay see what our error_count is here.... */ + devdata = (struct visorhba_devdata *)scsidev->host->hostdata; + for_each_vdisk_match(vdisk, devdata, scsidev) { + if (atomic_read(&vdisk->error_count) < VISORHBA_ERROR_COUNT) { + atomic_inc(&vdisk->error_count); + atomic_set(&vdisk->ios_threshold, IOS_ERROR_THRESHOLD); + } + } +} + +/** + * do_scsi_nolinuxstat - scsi command didn't have linuxstat + * @cmdrsp: response from IOVM + * @scsicmd: Command issued. + * + * Handle response when no linuxstat was returned + * Returns void + */ +static void +do_scsi_nolinuxstat(struct uiscmdrsp *cmdrsp, struct scsi_cmnd *scsicmd) +{ + struct scsi_device *scsidev; + unsigned char buf[36]; + struct scatterlist *sg; + unsigned int i; + char *this_page; + char *this_page_orig; + int bufind = 0; + struct visordisk_info *vdisk; + struct visorhba_devdata *devdata; + + scsidev = scsicmd->device; + if ((cmdrsp->scsi.cmnd[0] == INQUIRY) && + (cmdrsp->scsi.bufflen >= MIN_INQUIRY_RESULT_LEN)) { + if (cmdrsp->scsi.no_disk_result == 0) + return; + + /* Linux scsi code wants a device at Lun 0 + * to issue report luns, but we don't want + * a disk there so we'll present a processor + * there. + */ + SET_NO_DISK_INQUIRY_RESULT(buf, cmdrsp->scsi.bufflen, + scsidev->lun, + DEV_DISK_CAPABLE_NOT_PRESENT, + DEV_NOT_CAPABLE); + + if (scsi_sg_count(scsicmd) == 0) { + memcpy(scsi_sglist(scsicmd), buf, + cmdrsp->scsi.bufflen); + return; + } + + sg = scsi_sglist(scsicmd); + for (i = 0; i < scsi_sg_count(scsicmd); i++) { + this_page_orig = kmap_atomic(sg_page(sg + i)); + this_page = (void *)((unsigned long)this_page_orig | + sg[i].offset); + memcpy(this_page, buf + bufind, sg[i].length); + kunmap_atomic(this_page_orig); + } + } else { + devdata = (struct visorhba_devdata *)scsidev->host->hostdata; + for_each_vdisk_match(vdisk, devdata, scsidev) { + if (atomic_read(&vdisk->ios_threshold) > 0) { + atomic_dec(&vdisk->ios_threshold); + if (atomic_read(&vdisk->ios_threshold) == 0) + atomic_set(&vdisk->error_count, 0); + } + } + } +} + +/** + * complete_scsi_command - complete a scsi command + * @uiscmdrsp: Response from Service Partition + * @scsicmd: The scsi command + * + * Response returned by the Service Partition, finish it and send + * completion to the scsi midlayer. + * Returns void. + */ +static void +complete_scsi_command(struct uiscmdrsp *cmdrsp, struct scsi_cmnd *scsicmd) +{ + /* take what we need out of cmdrsp and complete the scsicmd */ + scsicmd->result = cmdrsp->scsi.linuxstat; + if (cmdrsp->scsi.linuxstat) + do_scsi_linuxstat(cmdrsp, scsicmd); + else + do_scsi_nolinuxstat(cmdrsp, scsicmd); + + scsicmd->scsi_done(scsicmd); +} + +/* DELETE VDISK TASK MGMT COMMANDS */ +static inline void complete_vdiskmgmt_command(struct uiscmdrsp *cmdrsp) +{ + /* copy the result of the taskmgmt and + * wake up the error handler that is waiting for this + */ + cmdrsp->vdiskmgmt.notifyresult_handle = cmdrsp->vdiskmgmt.result; + wake_up_all((wait_queue_head_t *)cmdrsp->vdiskmgmt.notify_handle); +} + +/** + * complete_taskmgmt_command - complete task management + * @cmdrsp: Response from the IOVM + * + * Service Partition returned the result of the task management + * command. Wake up anyone waiting for it. + * Returns void + */ +static inline void complete_taskmgmt_command(struct uiscmdrsp *cmdrsp) +{ + /* copy the result of the taskgmgt and + * wake up the error handler that is waiting for this + */ + cmdrsp->vdiskmgmt.notifyresult_handle = cmdrsp->vdiskmgmt.result; + wake_up_all((wait_queue_head_t *)cmdrsp->scsitaskmgmt.notify_handle); +} + +static struct work_struct dar_work_queue; +static struct diskaddremove *dar_work_queue_head; +static spinlock_t dar_work_queue_lock; /* Lock to protet dar_work_queue_head */ +static unsigned short dar_work_queue_sched; + +/** + * queue_disk_add_remove - IOSP has sent us a add/remove request + * @dar: disk add/remove request + * + * Queue the work needed to add/remove a disk. + * Returns void + */ +static inline void queue_disk_add_remove(struct diskaddremove *dar) +{ + unsigned long flags; + + spin_lock_irqsave(&dar_work_queue_lock, flags); + if (!dar_work_queue_head) { + dar_work_queue_head = dar; + dar->next = NULL; + } else { + dar->next = dar_work_queue_head; + dar_work_queue_head = dar; + } + if (!dar_work_queue_sched) { + schedule_work(&dar_work_queue); + dar_work_queue_sched = 1; + } + spin_unlock_irqrestore(&dar_work_queue_lock, flags); +} + +/** + * process_disk_notify - IOSP has sent a process disk notify event + * @shost: Scsi hot + * @cmdrsp: Response from the IOSP + * + * Queue it to the work queue. + * Return void. + */ +static void process_disk_notify(struct Scsi_Host *shost, + struct uiscmdrsp *cmdrsp) +{ + struct diskaddremove *dar; + + dar = kzalloc(sizeof(*dar), GFP_ATOMIC); + if (dar) { + dar->add = cmdrsp->disknotify.add; + dar->shost = shost; + dar->channel = cmdrsp->disknotify.channel; + dar->id = cmdrsp->disknotify.id; + dar->lun = cmdrsp->disknotify.lun; + queue_disk_add_remove(dar); + } +} + +/** + * drain_queue - pull responses out of iochannel + * @cmdrsp: Response from the IOSP + * @devdata: device that owns this iochannel + * + * Pulls responses out of the iochannel and process the responses. + * Restuns void + */ +static void +drain_queue(struct uiscmdrsp *cmdrsp, struct visorhba_devdata *devdata) +{ + struct scsi_cmnd *scsicmd; + struct Scsi_Host *shost = devdata->scsihost; + + while (1) { + if (!visorchannel_signalremove(devdata->dev->visorchannel, + IOCHAN_FROM_IOPART, + cmdrsp)) + break; /* queue empty */ + + if (cmdrsp->cmdtype == CMD_SCSI_TYPE) { + /* scsicmd location is returned by the + * deletion + */ + scsicmd = del_scsipending_ent(devdata, + cmdrsp->scsi.handle); + if (!scsicmd) + break; + /* complete the orig cmd */ + complete_scsi_command(cmdrsp, scsicmd); + } else if (cmdrsp->cmdtype == CMD_SCSITASKMGMT_TYPE) { + if (!del_scsipending_ent(devdata, + cmdrsp->scsitaskmgmt.handle)) + break; + complete_taskmgmt_command(cmdrsp); + } else if (cmdrsp->cmdtype == CMD_NOTIFYGUEST_TYPE) { + /* The vHba pointer has no meaning in a + * guest partition. Let's be safe and set it + * to NULL now. Do not use it here! + */ + cmdrsp->disknotify.v_hba = NULL; + process_disk_notify(shost, cmdrsp); + } else if (cmdrsp->cmdtype == CMD_VDISKMGMT_TYPE) { + if (!del_scsipending_ent(devdata, + cmdrsp->vdiskmgmt.handle)) + break; + complete_vdiskmgmt_command(cmdrsp); + } + /* cmdrsp is now available for resuse */ + } +} + +/** + * process_incoming_rsps - Process responses from IOSP + * @v: void pointer to visorhba_devdata + * + * Main function for the thread that processes the responses + * from the IO Service Partition. When the queue is empty, wait + * to check to see if it is full again. + */ +static int process_incoming_rsps(void *v) +{ + struct visorhba_devdata *devdata = v; + struct uiscmdrsp *cmdrsp = NULL; + const int size = sizeof(*cmdrsp); + + cmdrsp = kmalloc(size, GFP_ATOMIC); + if (!cmdrsp) + return -ENOMEM; + + while (1) { + if (kthread_should_stop()) + break; + wait_event_interruptible_timeout( + devdata->rsp_queue, (atomic_read( + &devdata->interrupt_rcvd) == 1), + msecs_to_jiffies(devdata->thread_wait_ms)); + /* drain queue */ + drain_queue(cmdrsp, devdata); + } + kfree(cmdrsp); + return 0; +} + +/** + * visorhba_pause - function to handle visorbus pause messages + * @dev: device that is pausing. + * @complete_func: function to call when finished + * + * Something has happened to the IO Service Partition that is + * handling this device. Quiet this device and reset commands + * so that the Service Partition can be corrected. + * Returns SUCCESS + */ +static int visorhba_pause(struct visor_device *dev, + visorbus_state_complete_func complete_func) +{ + struct visorhba_devdata *devdata = dev_get_drvdata(&dev->device); + + visorhba_serverdown(devdata); + complete_func(dev, 0); + return 0; +} + +/** + * visorhba_resume - function called when the IO Service Partition is back + * @dev: device that is pausing. + * @complete_func: function to call when finished + * + * Yay! The IO Service Partition is back, the channel has been wiped + * so lets re-establish connection and start processing responses. + * Returns 0 on success, error on failure. + */ +static int visorhba_resume(struct visor_device *dev, + visorbus_state_complete_func complete_func) +{ + struct visorhba_devdata *devdata; + + devdata = dev_get_drvdata(&dev->device); + if (!devdata) + return -EINVAL; + + if (devdata->serverdown && !devdata->serverchangingstate) + devdata->serverchangingstate = 1; + + visor_thread_start(&devdata->threadinfo, process_incoming_rsps, + devdata, "vhba_incming"); + + devdata->serverdown = false; + devdata->serverchangingstate = false; + + return 0; +} + +/** + * visorhba_probe - device has been discovered, do acquire + * @dev: visor_device that was discovered + * + * A new HBA was discovered, do the initial connections of it. + * Return 0 on success, otherwise error. + */ +static int visorhba_probe(struct visor_device *dev) +{ + struct Scsi_Host *scsihost; + struct vhba_config_max max; + struct visorhba_devdata *devdata = NULL; + int i, err, channel_offset; + u64 features; + + scsihost = scsi_host_alloc(&visorhba_driver_template, + sizeof(*devdata)); + if (!scsihost) + return -ENODEV; + + channel_offset = offsetof(struct spar_io_channel_protocol, + vhba.max); + err = visorbus_read_channel(dev, channel_offset, &max, + sizeof(struct vhba_config_max)); + if (err < 0) + goto err_scsi_host_put; + + scsihost->max_id = (unsigned)max.max_id; + scsihost->max_lun = (unsigned)max.max_lun; + scsihost->cmd_per_lun = (unsigned)max.cmd_per_lun; + scsihost->max_sectors = + (unsigned short)(max.max_io_size >> 9); + scsihost->sg_tablesize = + (unsigned short)(max.max_io_size / PAGE_SIZE); + if (scsihost->sg_tablesize > MAX_PHYS_INFO) + scsihost->sg_tablesize = MAX_PHYS_INFO; + err = scsi_add_host(scsihost, &dev->device); + if (err < 0) + goto err_scsi_host_put; + + devdata = (struct visorhba_devdata *)scsihost->hostdata; + for (i = 0; i < VISORHBA_OPEN_MAX; i++) { + if (!visorhbas_open[i].devdata) { + visorhbas_open[i].devdata = devdata; + break; + } + } + + devdata->dev = dev; + dev_set_drvdata(&dev->device, devdata); + + init_waitqueue_head(&devdata->rsp_queue); + spin_lock_init(&devdata->privlock); + devdata->serverdown = false; + devdata->serverchangingstate = false; + devdata->scsihost = scsihost; + + channel_offset = offsetof(struct spar_io_channel_protocol, + channel_header.features); + err = visorbus_read_channel(dev, channel_offset, &features, 8); + if (err) + goto err_scsi_remove_host; + features |= ULTRA_IO_CHANNEL_IS_POLLING; + err = visorbus_write_channel(dev, channel_offset, &features, 8); + if (err) + goto err_scsi_remove_host; + + devdata->thread_wait_ms = 2; + visor_thread_start(&devdata->threadinfo, process_incoming_rsps, + devdata, "vhba_incoming"); + + scsi_scan_host(scsihost); + + return 0; + +err_scsi_remove_host: + scsi_remove_host(scsihost); + +err_scsi_host_put: + scsi_host_put(scsihost); + return err; +} + +/** + * visorhba_remove - remove a visorhba device + * @dev: Device to remove + * + * Removes the visorhba device. + * Returns void. + */ +static void visorhba_remove(struct visor_device *dev) +{ + struct visorhba_devdata *devdata = dev_get_drvdata(&dev->device); + struct Scsi_Host *scsihost = NULL; + + if (!devdata) + return; + + scsihost = devdata->scsihost; + kthread_stop(devdata->threadinfo.task); + scsi_remove_host(scsihost); + scsi_host_put(scsihost); + + dev_set_drvdata(&dev->device, NULL); +} + +/** + * visorhba_init - driver init routine + * + * Initialize the visorhba driver and register it with visorbus + * to handle s-Par virtual host bus adapter. + */ +static int visorhba_init(void) +{ + struct dentry *ret; + int rc = -ENOMEM; + + visorhba_debugfs_dir = debugfs_create_dir("visorhba", NULL); + if (!visorhba_debugfs_dir) + return -ENOMEM; + + ret = debugfs_create_file("info", S_IRUSR, visorhba_debugfs_dir, NULL, + &debugfs_info_fops); + + if (!ret) { + rc = -EIO; + goto cleanup_debugfs; + } + + rc = visorbus_register_visor_driver(&visorhba_driver); + if (rc) + goto cleanup_debugfs; + + return rc; + +cleanup_debugfs: + debugfs_remove_recursive(visorhba_debugfs_dir); + + return rc; +} + +/** + * visorhba_cleanup - driver exit routine + * + * Unregister driver from the bus and free up memory. + */ +static void visorhba_exit(void) +{ + visorbus_unregister_visor_driver(&visorhba_driver); + debugfs_remove_recursive(visorhba_debugfs_dir); +} + +module_init(visorhba_init); +module_exit(visorhba_exit); + +MODULE_AUTHOR("Unisys"); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("s-Par hba driver"); From 3f937918b73b2a56ef238a2dcc0bbd97d48490b9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 22 Sep 2015 16:24:58 +0200 Subject: [PATCH 0945/2431] staging: wicl1000: remove duplicated operand in OR operation The IEEE80211_STYPE_PROBE_REQ flag appears twice in the expression and coccicheck complains with: wilc_wfi_cfgoperations.h:80:3-38: duplicated argument to & or | Signed-off-by: Javier Martinez Canillas Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index b240a794957d..39cd8e1b5675 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h @@ -80,7 +80,6 @@ static const struct ieee80211_txrx_stypes BIT(IEEE80211_STYPE_PROBE_REQ >> 4) | BIT(IEEE80211_STYPE_ASSOC_REQ >> 4) | BIT(IEEE80211_STYPE_REASSOC_REQ >> 4) | - BIT(IEEE80211_STYPE_PROBE_REQ >> 4) | BIT(IEEE80211_STYPE_DISASSOC >> 4) | BIT(IEEE80211_STYPE_AUTH >> 4) | BIT(IEEE80211_STYPE_DEAUTH >> 4) From e98631d83c84adfee9d33f04808a6e0eb2fa0345 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 22 Sep 2015 02:39:36 +0200 Subject: [PATCH 0946/2431] staging: dgap: fix returned errno code in dgap_parsefile() The driver is using -1 instead of the -ENOMEM defined macro to specify that a buffer allocation failed. Since the error number is propagated, the caller will get a -EPERM which is the wrong error condition. Also, the smatch tool complains with the following warning: dgap_parsefile() warn: returning -1 instead of -ENOMEM is sloppy Signed-off-by: Javier Martinez Canillas Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 303d97023ccb..e17bde7bf416 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -642,7 +642,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; @@ -861,7 +861,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = TNODE; @@ -883,7 +883,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = CUNODE; @@ -914,7 +914,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = LNODE; @@ -933,7 +933,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = CNODE; @@ -975,7 +975,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = MNODE; @@ -1054,7 +1054,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = PNODE; @@ -1076,7 +1076,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = JNODE; @@ -1098,7 +1098,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = ANODE; @@ -1120,7 +1120,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = INTRNODE; @@ -1141,7 +1141,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = TSNODE; @@ -1163,7 +1163,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = CSNODE; @@ -1185,7 +1185,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = BSNODE; @@ -1207,7 +1207,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = USNODE; @@ -1229,7 +1229,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = FSNODE; @@ -1251,7 +1251,7 @@ static int dgap_parsefile(char **in) p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL); if (!p->next) - return -1; + return -ENOMEM; p = p->next; p->type = VSNODE; From 27254ec26c6395ca0cfabde8e67b352a4ad7a3bf Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 10:52:16 +0300 Subject: [PATCH 0947/2431] staging: sm750fb: sm750_help.h: spacing fix Remove unnecessary space in sm750_help.h to fix the following checkpatch.pl error: drivers/staging/sm750fb/sm750_help.h:46: space prohibited after that '~' (ctx:ExW) Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750_help.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/sm750fb/sm750_help.h b/drivers/staging/sm750fb/sm750_help.h index 8dc6bd22f5db..e7d74e681b97 100644 --- a/drivers/staging/sm750fb/sm750_help.h +++ b/drivers/staging/sm750fb/sm750_help.h @@ -43,7 +43,7 @@ #define FIELD_CLEAR(reg, field) \ ( \ - ~ _F_MASK(reg ## _ ## field) \ + ~_F_MASK(reg ## _ ## field) \ ) /* Field Macros */ From 67088d49a1c952c71448e75b6105ad5ce9c04719 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 12:01:16 +0300 Subject: [PATCH 0948/2431] staging: sm750fb: tidy up #include directives Add space between '#include' keyword and the header name Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 34 +++++++++++++------------- drivers/staging/sm750fb/sm750_accel.c | 30 +++++++++++------------ drivers/staging/sm750fb/sm750_cursor.c | 30 +++++++++++------------ drivers/staging/sm750fb/sm750_hw.c | 30 +++++++++++------------ 4 files changed, 62 insertions(+), 62 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 07f8afd2defe..81fe3c3266d5 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -1,20 +1,20 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include "sm750.h" diff --git a/drivers/staging/sm750fb/sm750_accel.c b/drivers/staging/sm750fb/sm750_accel.c index 1dd06a2e4ede..b623fbf223f4 100644 --- a/drivers/staging/sm750fb/sm750_accel.c +++ b/drivers/staging/sm750fb/sm750_accel.c @@ -1,19 +1,19 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include +#include +#include #include "sm750.h" #include "sm750_accel.h" diff --git a/drivers/staging/sm750fb/sm750_cursor.c b/drivers/staging/sm750fb/sm750_cursor.c index a94a4bbff450..93dd6c10133a 100644 --- a/drivers/staging/sm750fb/sm750_cursor.c +++ b/drivers/staging/sm750fb/sm750_cursor.c @@ -1,19 +1,19 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include +#include +#include #include "sm750.h" #include "sm750_help.h" diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index de30429591bb..48b49440df37 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -1,23 +1,23 @@ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #ifdef CONFIG_MTRR #include #endif -#include -#include +#include +#include #include "sm750.h" #include "sm750_hw.h" From 4cf26d859aba42f15a372d9f26b51f4a36f03575 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 12:01:17 +0300 Subject: [PATCH 0949/2431] staging: sm750fb: replace custom MB(x) macro with appropriate SZ_xM Use SZ_xM defined in linux/sizes.h instead of custom MB(x) macro Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 12 +++++++----- drivers/staging/sm750fb/sm750_hw.c | 3 ++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 5e6798ea9468..c9adc387f574 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -1,3 +1,5 @@ +#include + #include "ddk750_help.h" #include "ddk750_reg.h" #include "ddk750_chip.h" @@ -226,7 +228,7 @@ unsigned int ddk750_getVMSize(void) /* sm750le only use 64 mb memory*/ if (getChipType() == SM750LE) - return MB(64); + return SZ_64M; /* for 750,always use power mode0*/ reg = PEEK32(MODE0_GATE); @@ -237,13 +239,13 @@ unsigned int ddk750_getVMSize(void) reg = FIELD_GET(PEEK32(MISC_CTRL), MISC_CTRL, LOCALMEM_SIZE); switch (reg) { case MISC_CTRL_LOCALMEM_SIZE_8M: - data = MB(8); break; /* 8 Mega byte */ + data = SZ_8M; break; /* 8 Mega byte */ case MISC_CTRL_LOCALMEM_SIZE_16M: - data = MB(16); break; /* 16 Mega byte */ + data = SZ_16M; break; /* 16 Mega byte */ case MISC_CTRL_LOCALMEM_SIZE_32M: - data = MB(32); break; /* 32 Mega byte */ + data = SZ_32M; break; /* 32 Mega byte */ case MISC_CTRL_LOCALMEM_SIZE_64M: - data = MB(64); break; /* 64 Mega byte */ + data = SZ_64M; break; /* 64 Mega byte */ default: data = 0; break; diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 48b49440df37..cdb7161dc725 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -18,6 +18,7 @@ #endif #include #include +#include #include "sm750.h" #include "sm750_hw.h" @@ -34,7 +35,7 @@ int hw_sm750_map(struct lynx_share *share, struct pci_dev *pdev) ret = 0; share->vidreg_start = pci_resource_start(pdev, 1); - share->vidreg_size = MB(2); + share->vidreg_size = SZ_2M; pr_info("mmio phyAddr = %lx\n", share->vidreg_start); From e967d336ee1a01ced24907ead6cd93dc4f097bed Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 12:01:18 +0300 Subject: [PATCH 0950/2431] staging: sm750fb: remove unused MB(x) and KB(x) macros The MB(x) and KB(x) macros are not used and therefore they can be removed Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.h | 1 - drivers/staging/sm750fb/sm750_help.h | 2 -- 2 files changed, 3 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index 5bc445571b48..793c0924463f 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -7,7 +7,6 @@ /* please use revision id to distinguish sm750le and sm750*/ #define SPC_SM750 0 -#define MB(x) ((x)<<20) #define MHZ(x) ((x) * 1000000) /* align should be 2,4,8,16 */ #define PADDING(align, data) (((data)+(align)-1)&(~((align) - 1))) diff --git a/drivers/staging/sm750fb/sm750_help.h b/drivers/staging/sm750fb/sm750_help.h index e7d74e681b97..08dcc69847d7 100644 --- a/drivers/staging/sm750fb/sm750_help.h +++ b/drivers/staging/sm750fb/sm750_help.h @@ -81,8 +81,6 @@ static inline unsigned int absDiff(unsigned int a, unsigned int b) /* n / d + 1 / 2 = (2n + d) / 2d */ #define roundedDiv(num, denom) ((2 * (num) + (denom)) / (2 * (denom))) -#define MB(x) ((x)<<20) -#define KB(x) ((x)<<10) #define MHz(x) ((x) * 1000000) From 174f2642349da542eb27c011e67a147773d8721f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sun, 27 Sep 2015 16:25:43 +0300 Subject: [PATCH 0951/2431] staging: sm750fb: replace twoToPowerOfx with shift operator The function twoToPowerOfx that iteratively calculates the power of 2 may be replaced with shift operator Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index c9adc387f574..28733db74bdc 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -35,20 +35,10 @@ logical_chip_type_t getChipType(void) return chip; } - -inline unsigned int twoToPowerOfx(unsigned long x) -{ - unsigned long i; - unsigned long result = 1; - - for (i = 1; i <= x; i++) - result *= 2; - return result; -} - inline unsigned int calcPLL(pll_value_t *pPLL) { - return (pPLL->inputFreq * pPLL->M / pPLL->N / twoToPowerOfx(pPLL->OD) / twoToPowerOfx(pPLL->POD)); + return (pPLL->inputFreq * pPLL->M / pPLL->N / (1 << pPLL->OD) / + (1 << pPLL->POD)); } unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL) @@ -526,12 +516,12 @@ pll_value_t *pPLL /* Structure to hold the value to be set in PLL */ #endif /* Work out 2 to the power of POD */ - podPower = twoToPowerOfx(POD); + podPower = 1 << POD; /* OD has only 2 bits [15:14] and its value must between 0 to 3 */ for (OD = 0; OD <= 3; OD++) { /* Work out 2 to the power of OD */ - odPower = twoToPowerOfx(OD); + odPower = 1 << OD; #ifdef VALIDATION_CHIP if (odPower > 4) From 4ccb726c728cb414d9abc65a11a6453e75204503 Mon Sep 17 00:00:00 2001 From: Tillmann Heidsieck Date: Wed, 23 Sep 2015 22:07:53 +0200 Subject: [PATCH 0952/2431] staging: wlan-ng fix buffer overflow in firmware handling We test for an END marker in the element beyond the current one, this effectively limits the size of the array to be HFA384x_PDA_LEN_MAX/2 - 1 not HFA384x_PDR_END_OF_PDA/2. This patch fixes a possible buffer overflow in case there was no END marker. Signed-off-by: Tillmann Heidsieck Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wlan-ng/prism2fw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wlan-ng/prism2fw.c b/drivers/staging/wlan-ng/prism2fw.c index fe36613589ae..d357b7ecb1fc 100644 --- a/drivers/staging/wlan-ng/prism2fw.c +++ b/drivers/staging/wlan-ng/prism2fw.c @@ -590,7 +590,7 @@ static int mkpdrlist(struct pda *pda) pda->nrec = 0; curroff = 0; - while (curroff < (HFA384x_PDA_LEN_MAX / 2) && + while (curroff < (HFA384x_PDA_LEN_MAX / 2 - 1) && le16_to_cpu(pda16[curroff + 1]) != HFA384x_PDR_END_OF_PDA) { pda->rec[pda->nrec] = (hfa384x_pdrec_t *) &(pda16[curroff]); @@ -626,7 +626,7 @@ static int mkpdrlist(struct pda *pda) curroff += le16_to_cpu(pda16[curroff]) + 1; } - if (curroff >= (HFA384x_PDA_LEN_MAX / 2)) { + if (curroff >= (HFA384x_PDA_LEN_MAX / 2 - 1)) { pr_err("no end record found or invalid lengths in PDR data, exiting. %x %d\n", curroff, pda->nrec); return 1; From c739c987c1e19b924b252ebb12ffeac3ef9b1d5c Mon Sep 17 00:00:00 2001 From: Tillmann Heidsieck Date: Wed, 23 Sep 2015 22:07:54 +0200 Subject: [PATCH 0953/2431] staging: wlan-ng remove redundant conditional We exit the above loop either if curroff >= (HFA384x_PDA_LEN_MAX / 2 - 1) or if we found the END marker in the element beyond the current one. The first case is checked for in the preceding if statement, therefore the second if statement is redundant and can be removed. Signed-off-by: Tillmann Heidsieck Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wlan-ng/prism2fw.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wlan-ng/prism2fw.c b/drivers/staging/wlan-ng/prism2fw.c index d357b7ecb1fc..f5b97273164d 100644 --- a/drivers/staging/wlan-ng/prism2fw.c +++ b/drivers/staging/wlan-ng/prism2fw.c @@ -631,10 +631,8 @@ static int mkpdrlist(struct pda *pda) curroff, pda->nrec); return 1; } - if (le16_to_cpu(pda16[curroff + 1]) == HFA384x_PDR_END_OF_PDA) { - pda->rec[pda->nrec] = (hfa384x_pdrec_t *) &(pda16[curroff]); - (pda->nrec)++; - } + pda->rec[pda->nrec] = (hfa384x_pdrec_t *) &(pda16[curroff]); + (pda->nrec)++; return result; } From 3ac8480ad61a45c2a9e3ee003d2cf4ce37ef4795 Mon Sep 17 00:00:00 2001 From: Tillmann Heidsieck Date: Wed, 23 Sep 2015 22:07:55 +0200 Subject: [PATCH 0954/2431] staging: wlan-ng remove unnessecary variable The result variable is not set anywhere beyond its initialization, therefore it can be remove. Signed-off-by: Tillmann Heidsieck Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wlan-ng/prism2fw.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wlan-ng/prism2fw.c b/drivers/staging/wlan-ng/prism2fw.c index f5b97273164d..8fc80df0b53e 100644 --- a/drivers/staging/wlan-ng/prism2fw.c +++ b/drivers/staging/wlan-ng/prism2fw.c @@ -584,7 +584,6 @@ static int mkimage(struct imgchunk *clist, unsigned int *ccnt) ----------------------------------------------------------------*/ static int mkpdrlist(struct pda *pda) { - int result = 0; u16 *pda16 = (u16 *) pda->buf; int curroff; /* in 'words' */ @@ -633,7 +632,7 @@ static int mkpdrlist(struct pda *pda) } pda->rec[pda->nrec] = (hfa384x_pdrec_t *) &(pda16[curroff]); (pda->nrec)++; - return result; + return 0; } /*---------------------------------------------------------------- From 113d6dc18e5e9334493a0f500c01a9e97796cd9b Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:39 +0100 Subject: [PATCH 0955/2431] staging: vt6655: don't stop TX queue unless buffer full. Presently the TX buffer stops while filling the buffer. However, this does not make use of the available buffer space, it also lags the speed of the TX troughtput. Only stop the queue when the buffer becomes full. The Interupt handler will start the queue again when a buffer is available. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 326bce31c9ca..07ebdea7aa34 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -1105,6 +1105,7 @@ static int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb) if (AVAIL_TD(priv, dma_idx) < 1) { spin_unlock_irqrestore(&priv->lock, flags); + ieee80211_stop_queues(priv->hw); return -ENOMEM; } @@ -1156,13 +1157,8 @@ static void vnt_tx_80211(struct ieee80211_hw *hw, { struct vnt_private *priv = hw->priv; - ieee80211_stop_queues(hw); - - if (vnt_tx_packet(priv, skb)) { + if (vnt_tx_packet(priv, skb)) ieee80211_free_txskb(hw, skb); - - ieee80211_wake_queues(hw); - } } static int vnt_start(struct ieee80211_hw *hw) From c15158797df6c36780bd07252eb079ff4c9d1706 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:40 +0100 Subject: [PATCH 0956/2431] staging: vt6656: implement TSF counter The TSF counter is presently unused on driver in infrastructure mode. It is needed to implement power saving functions and wireless stats that are passed in interrupt handling. Ensuring counter is synced with access point beacon. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/main_usb.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c index af572d718135..7246c7607361 100644 --- a/drivers/staging/vt6656/main_usb.c +++ b/drivers/staging/vt6656/main_usb.c @@ -757,6 +757,26 @@ static void vnt_bss_info_changed(struct ieee80211_hw *hw, vnt_mac_reg_bits_off(priv, MAC_REG_TCR, TCR_AUTOBCNTX); } } + + if (changed & (BSS_CHANGED_ASSOC | BSS_CHANGED_BEACON_INFO) && + priv->op_mode != NL80211_IFTYPE_AP) { + if (conf->assoc && conf->beacon_rate) { + vnt_mac_reg_bits_on(priv, MAC_REG_TFTCTL, + TFTCTL_TSFCNTREN); + + vnt_adjust_tsf(priv, conf->beacon_rate->hw_value, + conf->sync_tsf, priv->current_tsf); + + vnt_mac_set_beacon_interval(priv, conf->beacon_int); + + vnt_reset_next_tbtt(priv, conf->beacon_int); + } else { + vnt_clear_current_tsf(priv); + + vnt_mac_reg_bits_off(priv, MAC_REG_TFTCTL, + TFTCTL_TSFCNTREN); + } + } } static u64 vnt_prepare_multicast(struct ieee80211_hw *hw, From 43c93d9bf5e2b195c38de99024d8d9e545a5aae5 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:41 +0100 Subject: [PATCH 0957/2431] staging: vt6656: implement power saving code. The device should ready to listen to next beacon so on count down of wake_up_count == 1. schedule command WLAN_CMD_TBTT_WAKEUP which calls vnt_next_tbtt_wakeup which wakes the device. This restores this back to vendors code with a slight difference the count down is in the interrupt handler. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/device.h | 2 ++ drivers/staging/vt6656/int.c | 14 +++++++++++--- drivers/staging/vt6656/power.c | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/staging/vt6656/device.h b/drivers/staging/vt6656/device.h index 635d931de409..dec36f296f3d 100644 --- a/drivers/staging/vt6656/device.h +++ b/drivers/staging/vt6656/device.h @@ -389,6 +389,8 @@ struct vnt_private { u8 bb_pre_ed_rssi; u8 bb_pre_ed_index; + u16 wake_up_count; + /* command timer */ struct delayed_work run_command_work; diff --git a/drivers/staging/vt6656/int.c b/drivers/staging/vt6656/int.c index 2ef70e4701f6..14b8ebc6508d 100644 --- a/drivers/staging/vt6656/int.c +++ b/drivers/staging/vt6656/int.c @@ -149,10 +149,18 @@ void vnt_int_process_data(struct vnt_private *priv) priv->op_mode == NL80211_IFTYPE_AP) vnt_schedule_command(priv, WLAN_CMD_BECON_SEND); - if (int_data->isr0 & ISR_TBTT) { - if (priv->hw->conf.flags & IEEE80211_CONF_PS) + if (int_data->isr0 & ISR_TBTT && + priv->hw->conf.flags & IEEE80211_CONF_PS) { + if (!priv->wake_up_count) + priv->wake_up_count = + priv->hw->conf.listen_interval; + + --priv->wake_up_count; + + /* Turn on wake up to listen next beacon */ + if (priv->wake_up_count == 1) vnt_schedule_command(priv, - WLAN_CMD_TBTT_WAKEUP); + WLAN_CMD_TBTT_WAKEUP); } priv->current_tsf = le64_to_cpu(int_data->tsf); diff --git a/drivers/staging/vt6656/power.c b/drivers/staging/vt6656/power.c index 0ffbaed5d774..d5912d23aa0d 100644 --- a/drivers/staging/vt6656/power.c +++ b/drivers/staging/vt6656/power.c @@ -134,7 +134,7 @@ int vnt_next_tbtt_wakeup(struct vnt_private *priv) struct ieee80211_conf *conf = &hw->conf; int wake_up = false; - if (conf->listen_interval == 1) { + if (conf->listen_interval > 1) { /* Turn on wake up to listen next beacon */ vnt_mac_reg_bits_on(priv, MAC_REG_PSCTL, PSCTL_LNBCN); wake_up = true; From 49a315bf072e7ebe8bdc4a2e11f405c821835e88 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:42 +0100 Subject: [PATCH 0958/2431] staging: vt6656: implement power saving. The device can now operate in low power mode Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/main_usb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c index 7246c7607361..3fc6862541cc 100644 --- a/drivers/staging/vt6656/main_usb.c +++ b/drivers/staging/vt6656/main_usb.c @@ -1002,6 +1002,7 @@ vt6656_probe(struct usb_interface *intf, const struct usb_device_id *id) ieee80211_hw_set(priv->hw, SIGNAL_DBM); ieee80211_hw_set(priv->hw, RX_INCLUDES_FCS); ieee80211_hw_set(priv->hw, REPORTS_TX_ACK_STATUS); + ieee80211_hw_set(priv->hw, SUPPORTS_PS); priv->hw->max_signal = 100; From b914b4944902d489226a5b465908403505723b9a Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:43 +0100 Subject: [PATCH 0959/2431] staging: vt6656: don't stop TX queue unless buffer full. Presently the TX buffer stops while filling the buffer and urb. However, this does not make use of the available buffer space, it also lags the speed of the TX troughtput. Only stop the queue when the buffer becomes full. The URB complete will start the queue again when a buffer and URB is available. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/main_usb.c | 7 +------ drivers/staging/vt6656/rxtx.c | 5 ++++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c index 3fc6862541cc..01e642db311e 100644 --- a/drivers/staging/vt6656/main_usb.c +++ b/drivers/staging/vt6656/main_usb.c @@ -507,13 +507,8 @@ static void vnt_tx_80211(struct ieee80211_hw *hw, { struct vnt_private *priv = hw->priv; - ieee80211_stop_queues(hw); - - if (vnt_tx_packet(priv, skb)) { + if (vnt_tx_packet(priv, skb)) ieee80211_free_txskb(hw, skb); - - ieee80211_wake_queues(hw); - } } static int vnt_start(struct ieee80211_hw *hw) diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c index da075f485298..efb54f53b4f9 100644 --- a/drivers/staging/vt6656/rxtx.c +++ b/drivers/staging/vt6656/rxtx.c @@ -101,9 +101,12 @@ static struct vnt_usb_send_context } } - if (ii == priv->num_tx_context) + if (ii == priv->num_tx_context) { dev_dbg(&priv->usb->dev, "%s No Free Tx Context\n", __func__); + ieee80211_stop_queues(priv->hw); + } + return NULL; } From 56b4c049273f3d4ad6d5c71a1569d3fbb4028840 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:44 +0100 Subject: [PATCH 0960/2431] staging: vt6656: remove RX complete locking. The lock in vnt_submit_rx_urb_complete is blocked by TX activity. The lock comes from a time when RX needed to be synchronized with other parts of the driver because the WLAN API was in driver. Since this is now dealt with in mac80211 the lock is unnecessary. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/usbpipe.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/vt6656/usbpipe.c b/drivers/staging/vt6656/usbpipe.c index a5912dde9b31..c975c3b87093 100644 --- a/drivers/staging/vt6656/usbpipe.c +++ b/drivers/staging/vt6656/usbpipe.c @@ -168,7 +168,6 @@ static void vnt_submit_rx_urb_complete(struct urb *urb) { struct vnt_rcb *rcb = urb->context; struct vnt_private *priv = rcb->priv; - unsigned long flags; switch (urb->status) { case 0: @@ -184,8 +183,6 @@ static void vnt_submit_rx_urb_complete(struct urb *urb) } if (urb->actual_length) { - spin_lock_irqsave(&priv->lock, flags); - if (vnt_rx_data(priv, rcb, urb->actual_length)) { rcb->skb = dev_alloc_skb(priv->rx_buf_sz); if (!rcb->skb) { @@ -193,7 +190,6 @@ static void vnt_submit_rx_urb_complete(struct urb *urb) "Failed to re-alloc rx skb\n"); rcb->in_use = false; - spin_unlock_irqrestore(&priv->lock, flags); return; } } else { @@ -203,8 +199,6 @@ static void vnt_submit_rx_urb_complete(struct urb *urb) urb->transfer_buffer = skb_put(rcb->skb, skb_tailroom(rcb->skb)); - - spin_unlock_irqrestore(&priv->lock, flags); } if (usb_submit_urb(urb, GFP_ATOMIC)) { From 7e4161747bc6e1e40d0a45dc9ad742d66f2a9fb1 Mon Sep 17 00:00:00 2001 From: Sriram Raghunathan Date: Tue, 22 Sep 2015 22:35:51 +0530 Subject: [PATCH 0961/2431] staging: android: Fix checkpatch block comments warnings This patch is intended to fix the checkpatch warning for ``block`` comments for staging/android driver. Signed-off-by: Sriram Raghunathan Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ion/compat_ion.h | 1 - drivers/staging/android/ion/ion.c | 32 +++++++++++-------- drivers/staging/android/ion/ion.h | 10 +++--- drivers/staging/android/ion/ion_cma_heap.c | 6 ++-- drivers/staging/android/ion/ion_priv.h | 3 +- drivers/staging/android/ion/ion_system_heap.c | 7 ++-- drivers/staging/android/uapi/ion.h | 25 +++++++++------ 7 files changed, 52 insertions(+), 32 deletions(-) diff --git a/drivers/staging/android/ion/compat_ion.h b/drivers/staging/android/ion/compat_ion.h index c2ad5893dfda..9da8f917670b 100644 --- a/drivers/staging/android/ion/compat_ion.h +++ b/drivers/staging/android/ion/compat_ion.h @@ -1,5 +1,4 @@ /* - * drivers/staging/android/ion/compat_ion.h * * Copyright (C) 2013 Google, Inc. diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index 6e8d8392ca38..df3539865fb4 100644 --- a/drivers/staging/android/ion/ion.c +++ b/drivers/staging/android/ion/ion.c @@ -1,5 +1,5 @@ /* - + * * drivers/staging/android/ion/ion.c * * Copyright (C) 2011 Google, Inc. @@ -244,14 +244,16 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap, buffer->size = len; INIT_LIST_HEAD(&buffer->vmas); mutex_init(&buffer->lock); - /* this will set up dma addresses for the sglist -- it is not - technically correct as per the dma api -- a specific - device isn't really taking ownership here. However, in practice on - our systems the only dma_address space is physical addresses. - Additionally, we can't afford the overhead of invalidating every - allocation via dma_map_sg. The implicit contract here is that - memory coming from the heaps is ready for dma, ie if it has a - cached mapping that mapping has been invalidated */ + /* + * this will set up dma addresses for the sglist -- it is not + * technically correct as per the dma api -- a specific + * device isn't really taking ownership here. However, in practice on + * our systems the only dma_address space is physical addresses. + * Additionally, we can't afford the overhead of invalidating every + * allocation via dma_map_sg. The implicit contract here is that + * memory coming from the heaps is ready for dma, ie if it has a + * cached mapping that mapping has been invalidated + */ for_each_sg(buffer->sg_table->sgl, sg, buffer->sg_table->nents, i) sg_dma_address(sg) = sg_phys(sg); mutex_lock(&dev->buffer_lock); @@ -753,8 +755,10 @@ struct ion_client *ion_client_create(struct ion_device *dev, get_task_struct(current->group_leader); task_lock(current->group_leader); pid = task_pid_nr(current->group_leader); - /* don't bother to store task struct for kernel threads, - they can't be killed anyway */ + /* + * don't bother to store task struct for kernel threads, + * they can't be killed anyway + */ if (current->group_leader->flags & PF_KTHREAD) { put_task_struct(current->group_leader); task = NULL; @@ -1521,8 +1525,10 @@ void ion_device_add_heap(struct ion_device *dev, struct ion_heap *heap) heap->dev = dev; down_write(&dev->lock); - /* use negative heap->id to reverse the priority -- when traversing - the list later attempt higher id numbers first */ + /* + * use negative heap->id to reverse the priority -- when traversing + * the list later attempt higher id numbers first + */ plist_node_init(&heap->node, -heap->id); plist_add(&heap->node, &dev->heaps); debug_file = debugfs_create_file(heap->name, 0664, diff --git a/drivers/staging/android/ion/ion.h b/drivers/staging/android/ion/ion.h index 443db8459a9e..b860c5f579f5 100644 --- a/drivers/staging/android/ion/ion.h +++ b/drivers/staging/android/ion/ion.h @@ -28,10 +28,12 @@ struct ion_mapper; struct ion_client; struct ion_buffer; -/* This should be removed some day when phys_addr_t's are fully - plumbed in the kernel, and all instances of ion_phys_addr_t should - be converted to phys_addr_t. For the time being many kernel interfaces - do not accept phys_addr_t's that would have to */ +/* + * This should be removed some day when phys_addr_t's are fully + * plumbed in the kernel, and all instances of ion_phys_addr_t should + * be converted to phys_addr_t. For the time being many kernel interfaces + * do not accept phys_addr_t's that would have to + */ #define ion_phys_addr_t unsigned long /** diff --git a/drivers/staging/android/ion/ion_cma_heap.c b/drivers/staging/android/ion/ion_cma_heap.c index 0b2448c32495..a3446da4fdc2 100644 --- a/drivers/staging/android/ion/ion_cma_heap.c +++ b/drivers/staging/android/ion/ion_cma_heap.c @@ -180,8 +180,10 @@ struct ion_heap *ion_cma_heap_create(struct ion_platform_heap *data) return ERR_PTR(-ENOMEM); cma_heap->heap.ops = &ion_cma_ops; - /* get device from private heaps data, later it will be - * used to make the link with reserved CMA memory */ + /* + * get device from private heaps data, later it will be + * used to make the link with reserved CMA memory + */ cma_heap->dev = data->priv; cma_heap->heap.type = ION_HEAP_TYPE_DMA; return &cma_heap->heap; diff --git a/drivers/staging/android/ion/ion_priv.h b/drivers/staging/android/ion/ion_priv.h index 52f1cd1a67ed..0239883bffb7 100644 --- a/drivers/staging/android/ion/ion_priv.h +++ b/drivers/staging/android/ion/ion_priv.h @@ -346,7 +346,8 @@ void ion_carveout_free(struct ion_heap *heap, ion_phys_addr_t addr, * to keep a pool of pre allocated memory to use from your heap. Keeping * a pool of memory that is ready for dma, ie any cached mapping have been * invalidated from the cache, provides a significant performance benefit on - * many systems */ + * many systems + */ /** * struct ion_page_pool - pagepool struct diff --git a/drivers/staging/android/ion/ion_system_heap.c b/drivers/staging/android/ion/ion_system_heap.c index 7a7a9a047230..ada724aab3d5 100644 --- a/drivers/staging/android/ion/ion_system_heap.c +++ b/drivers/staging/android/ion/ion_system_heap.c @@ -185,8 +185,11 @@ static void ion_system_heap_free(struct ion_buffer *buffer) struct scatterlist *sg; int i; - /* uncached pages come from the page pools, zero them before returning - for security purposes (other allocations are zerod at alloc time */ + /* + * uncached pages come from the page pools, zero them before returning + * for security purposes (other allocations are zerod at + * alloc time + */ if (!cached && !(buffer->private_flags & ION_PRIV_FLAG_SHRINKER_FREE)) ion_heap_buffer_zero(buffer); diff --git a/drivers/staging/android/uapi/ion.h b/drivers/staging/android/uapi/ion.h index 68a14b4e21cb..0a8e40f92cd7 100644 --- a/drivers/staging/android/uapi/ion.h +++ b/drivers/staging/android/uapi/ion.h @@ -40,8 +40,10 @@ enum ion_heap_type { ION_HEAP_TYPE_CARVEOUT, ION_HEAP_TYPE_CHUNK, ION_HEAP_TYPE_DMA, - ION_HEAP_TYPE_CUSTOM, /* must be last so device specific heaps always - are at the end of this enum */ + ION_HEAP_TYPE_CUSTOM, /* + * must be last so device specific heaps always + * are at the end of this enum + */ ION_NUM_HEAPS = 16, }; @@ -56,13 +58,18 @@ enum ion_heap_type { * allocation flags - the lower 16 bits are used by core ion, the upper 16 * bits are reserved for use by the heaps themselves. */ -#define ION_FLAG_CACHED 1 /* mappings of this buffer should be - cached, ion will do cache - maintenance when the buffer is - mapped for dma */ -#define ION_FLAG_CACHED_NEEDS_SYNC 2 /* mappings of this buffer will created - at mmap time, if this is set - caches must be managed manually */ +#define ION_FLAG_CACHED 1 /* + * mappings of this buffer should be + * cached, ion will do cache + * maintenance when the buffer is + * mapped for dma + */ +#define ION_FLAG_CACHED_NEEDS_SYNC 2 /* + * mappings of this buffer will created + * at mmap time, if this is set + * caches must be managed + * manually + */ /** * DOC: Ion Userspace API From e8604669069ea8816205fac23037c21452aa328c Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:10:58 -0500 Subject: [PATCH 0962/2431] staging: fsl-mc: Add new flags field to MC command header The Management Complex (MC) binary interface added a new "flags" field to the command header. Add the definitions for this field in preparation for adding the new cmd_flags parameter to all MC interface APIs. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/include/mc-cmd.h | 30 ++++++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/drivers/staging/fsl-mc/include/mc-cmd.h b/drivers/staging/fsl-mc/include/mc-cmd.h index 32501e020054..af7de6efbd91 100644 --- a/drivers/staging/fsl-mc/include/mc-cmd.h +++ b/drivers/staging/fsl-mc/include/mc-cmd.h @@ -67,14 +67,31 @@ enum mc_cmd_status { MC_CMD_STATUS_INVALID_STATE = 0xC /* Invalid state */ }; +/* + * MC command flags + */ + +/* High priority flag */ +#define MC_CMD_FLAG_PRI 0x00008000 +/* Command completion flag */ +#define MC_CMD_FLAG_INTR_DIS 0x01000000 + +/* + * TODO Remove following two defines after completion of flib 8.0.0 + * integration + */ +#define MC_CMD_PRI_LOW 0 /*!< Low Priority command indication */ +#define MC_CMD_PRI_HIGH 1 /*!< High Priority command indication */ + #define MC_CMD_HDR_CMDID_O 52 /* Command ID field offset */ #define MC_CMD_HDR_CMDID_S 12 /* Command ID field size */ #define MC_CMD_HDR_TOKEN_O 38 /* Token field offset */ #define MC_CMD_HDR_TOKEN_S 10 /* Token field size */ #define MC_CMD_HDR_STATUS_O 16 /* Status field offset */ #define MC_CMD_HDR_STATUS_S 8 /* Status field size*/ -#define MC_CMD_HDR_PRI_O 15 /* Priority field offset */ -#define MC_CMD_HDR_PRI_S 1 /* Priority field size */ +#define MC_CMD_HDR_FLAGS_O 0 /* Flags field offset */ +#define MC_CMD_HDR_FLAGS_S 32 /* Flags field size*/ +#define MC_CMD_HDR_FLAGS_MASK 0xFF00FF00 /* Command flags mask */ #define MC_CMD_HDR_READ_STATUS(_hdr) \ ((enum mc_cmd_status)mc_dec((_hdr), \ @@ -83,8 +100,8 @@ enum mc_cmd_status { #define MC_CMD_HDR_READ_TOKEN(_hdr) \ ((uint16_t)mc_dec((_hdr), MC_CMD_HDR_TOKEN_O, MC_CMD_HDR_TOKEN_S)) -#define MC_CMD_PRI_LOW 0 /* Low Priority command indication */ -#define MC_CMD_PRI_HIGH 1 /* High Priority command indication */ +#define MC_CMD_HDR_READ_FLAGS(_hdr) \ + ((uint32_t)mc_dec((_hdr), MC_CMD_HDR_FLAGS_O, MC_CMD_HDR_FLAGS_S)) #define MC_EXT_OP(_ext, _param, _offset, _width, _type, _arg) \ ((_ext)[_param] |= mc_enc((_offset), (_width), _arg)) @@ -96,14 +113,15 @@ enum mc_cmd_status { (_arg = (_type)mc_dec(_cmd.params[_param], (_offset), (_width))) static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id, - uint8_t priority, + uint32_t cmd_flags, uint16_t token) { uint64_t hdr; hdr = mc_enc(MC_CMD_HDR_CMDID_O, MC_CMD_HDR_CMDID_S, cmd_id); + hdr |= mc_enc(MC_CMD_HDR_FLAGS_O, MC_CMD_HDR_FLAGS_S, + (cmd_flags & MC_CMD_HDR_FLAGS_MASK)); hdr |= mc_enc(MC_CMD_HDR_TOKEN_O, MC_CMD_HDR_TOKEN_S, token); - hdr |= mc_enc(MC_CMD_HDR_PRI_O, MC_CMD_HDR_PRI_S, priority); hdr |= mc_enc(MC_CMD_HDR_STATUS_O, MC_CMD_HDR_STATUS_S, MC_CMD_STATUS_READY); From 405774356453ac955a9c221690a61cbb2d262c15 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:10:59 -0500 Subject: [PATCH 0963/2431] staging: fsl-mc: uprev dpmng binary interface to v8.0 Add cmd_flags parameter to all dpmng APIs to comply with 8.0 MC firmware interface. Updated MC version major number. Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/dpmng.c | 14 ++++++++++---- drivers/staging/fsl-mc/bus/mc-bus.c | 4 ++-- drivers/staging/fsl-mc/include/dpmng.h | 14 ++++++++++---- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dpmng.c b/drivers/staging/fsl-mc/bus/dpmng.c index 58328e8118e9..1aeca05a614e 100644 --- a/drivers/staging/fsl-mc/bus/dpmng.c +++ b/drivers/staging/fsl-mc/bus/dpmng.c @@ -34,14 +34,17 @@ #include "../include/dpmng.h" #include "dpmng-cmd.h" -int mc_get_version(struct fsl_mc_io *mc_io, struct mc_version *mc_ver_info) +int mc_get_version(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + struct mc_version *mc_ver_info) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMNG_CMDID_GET_VERSION, - MC_CMD_PRI_LOW, 0); + cmd_flags, + 0); /* send command to mc*/ err = mc_send_command(mc_io, &cmd); @@ -56,14 +59,17 @@ int mc_get_version(struct fsl_mc_io *mc_io, struct mc_version *mc_ver_info) return 0; } -int dpmng_get_container_id(struct fsl_mc_io *mc_io, int *container_id) +int dpmng_get_container_id(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + int *container_id) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMNG_CMDID_GET_CONT_ID, - MC_CMD_PRI_LOW, 0); + cmd_flags, + 0); /* send command to mc*/ err = mc_send_command(mc_io, &cmd); diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index b3a60a032a17..f3718a324662 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -630,7 +630,7 @@ static int fsl_mc_bus_probe(struct platform_device *pdev) if (error < 0) return error; - error = mc_get_version(mc_io, &mc_version); + error = mc_get_version(mc_io, 0, &mc_version); if (error != 0) { dev_err(&pdev->dev, "mc_get_version() failed with error %d\n", error); @@ -661,7 +661,7 @@ static int fsl_mc_bus_probe(struct platform_device *pdev) if (error < 0) goto error_cleanup_mc_io; - error = dpmng_get_container_id(mc_io, &container_id); + error = dpmng_get_container_id(mc_io, 0, &container_id); if (error < 0) { dev_err(&pdev->dev, "dpmng_get_container_id() failed: %d\n", error); diff --git a/drivers/staging/fsl-mc/include/dpmng.h b/drivers/staging/fsl-mc/include/dpmng.h index 1b052b830993..4a0996cf8b97 100644 --- a/drivers/staging/fsl-mc/include/dpmng.h +++ b/drivers/staging/fsl-mc/include/dpmng.h @@ -41,11 +41,11 @@ struct fsl_mc_io; /** * Management Complex firmware version information */ -#define MC_VER_MAJOR 6 +#define MC_VER_MAJOR 8 #define MC_VER_MINOR 0 /** - * struct mc_versoin + * struct mc_version * @major: Major version number: incremented on API compatibility changes * @minor: Minor version number: incremented on API additions (that are * backward compatible); reset when major version is incremented @@ -62,19 +62,25 @@ struct mc_version { * mc_get_version() - Retrieves the Management Complex firmware * version information * @mc_io: Pointer to opaque I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @mc_ver_info: Returned version information structure * * Return: '0' on Success; Error code otherwise. */ -int mc_get_version(struct fsl_mc_io *mc_io, struct mc_version *mc_ver_info); +int mc_get_version(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + struct mc_version *mc_ver_info); /** * dpmng_get_container_id() - Get container ID associated with a given portal. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @container_id: Requested container ID * * Return: '0' on Success; Error code otherwise. */ -int dpmng_get_container_id(struct fsl_mc_io *mc_io, int *container_id); +int dpmng_get_container_id(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + int *container_id); #endif /* __FSL_DPMNG_H */ From c4d887219cba8ce78dcc854b1a3afd0b48ade760 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:11:00 -0500 Subject: [PATCH 0964/2431] staging: fsl-mc: up-rev dpbp binary interface to v2.0 Add cmd_flags parameter to all dpbp APIs to comply with the dpbp 2.0 MC interface. Updated MC version major number. Pass irq args in struct instead of separate args. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/dpbp.c | 94 ++++++++++++++--------- drivers/staging/fsl-mc/include/dpbp-cmd.h | 2 +- drivers/staging/fsl-mc/include/dpbp.h | 91 ++++++++++++++++------ 3 files changed, 127 insertions(+), 60 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dpbp.c b/drivers/staging/fsl-mc/bus/dpbp.c index d99ab6d0bbb1..bdc1acae0b7b 100644 --- a/drivers/staging/fsl-mc/bus/dpbp.c +++ b/drivers/staging/fsl-mc/bus/dpbp.c @@ -34,14 +34,17 @@ #include "../include/dpbp.h" #include "../include/dpbp-cmd.h" -int dpbp_open(struct fsl_mc_io *mc_io, int dpbp_id, uint16_t *token) +int dpbp_open(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + int dpbp_id, + uint16_t *token) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_OPEN, - MC_CMD_PRI_LOW, 0); + cmd_flags, 0); cmd.params[0] |= mc_enc(0, 32, dpbp_id); /* send command to mc*/ @@ -56,12 +59,14 @@ int dpbp_open(struct fsl_mc_io *mc_io, int dpbp_id, uint16_t *token) } EXPORT_SYMBOL(dpbp_open); -int dpbp_close(struct fsl_mc_io *mc_io, uint16_t token) +int dpbp_close(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ - cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLOSE, MC_CMD_PRI_HIGH, + cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLOSE, cmd_flags, token); /* send command to mc*/ @@ -70,6 +75,7 @@ int dpbp_close(struct fsl_mc_io *mc_io, uint16_t token) EXPORT_SYMBOL(dpbp_close); int dpbp_create(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, const struct dpbp_cfg *cfg, uint16_t *token) { @@ -80,7 +86,7 @@ int dpbp_create(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_CREATE, - MC_CMD_PRI_LOW, 0); + cmd_flags, 0); /* send command to mc*/ err = mc_send_command(mc_io, &cmd); @@ -93,24 +99,28 @@ int dpbp_create(struct fsl_mc_io *mc_io, return 0; } -int dpbp_destroy(struct fsl_mc_io *mc_io, uint16_t token) +int dpbp_destroy(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_DESTROY, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } -int dpbp_enable(struct fsl_mc_io *mc_io, uint16_t token) +int dpbp_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ - cmd.header = mc_encode_cmd_header(DPBP_CMDID_ENABLE, MC_CMD_PRI_LOW, + cmd.header = mc_encode_cmd_header(DPBP_CMDID_ENABLE, cmd_flags, token); /* send command to mc*/ @@ -118,25 +128,30 @@ int dpbp_enable(struct fsl_mc_io *mc_io, uint16_t token) } EXPORT_SYMBOL(dpbp_enable); -int dpbp_disable(struct fsl_mc_io *mc_io, uint16_t token) +int dpbp_disable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_DISABLE, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } EXPORT_SYMBOL(dpbp_disable); -int dpbp_is_enabled(struct fsl_mc_io *mc_io, uint16_t token, int *en) +int dpbp_is_enabled(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int *en) { struct mc_command cmd = { 0 }; int err; /* prepare command */ - cmd.header = mc_encode_cmd_header(DPBP_CMDID_IS_ENABLED, MC_CMD_PRI_LOW, + cmd.header = mc_encode_cmd_header(DPBP_CMDID_IS_ENABLED, cmd_flags, token); /* send command to mc*/ @@ -150,53 +165,53 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io, uint16_t token, int *en) return 0; } -int dpbp_reset(struct fsl_mc_io *mc_io, uint16_t token) +int dpbp_reset(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_RESET, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } int dpbp_set_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, - uint64_t irq_paddr, - uint32_t irq_val, - int user_irq_id) + struct dpbp_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 8, irq_index); - cmd.params[0] |= mc_enc(32, 32, irq_val); - cmd.params[1] |= mc_enc(0, 64, irq_paddr); - cmd.params[2] |= mc_enc(0, 32, user_irq_id); + cmd.params[0] |= mc_enc(32, 32, irq_cfg->val); + cmd.params[1] |= mc_enc(0, 64, irq_cfg->addr); + cmd.params[2] |= mc_enc(0, 32, irq_cfg->user_irq_id); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } int dpbp_get_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, int *type, - uint64_t *irq_paddr, - uint32_t *irq_val, - int *user_irq_id) + struct dpbp_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -205,14 +220,15 @@ int dpbp_get_irq(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *irq_val = (uint32_t)mc_dec(cmd.params[0], 0, 32); - *irq_paddr = (uint64_t)mc_dec(cmd.params[1], 0, 64); - *user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); + irq_cfg->val = (uint32_t)mc_dec(cmd.params[0], 0, 32); + irq_cfg->addr = (uint64_t)mc_dec(cmd.params[1], 0, 64); + irq_cfg->user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); *type = (int)mc_dec(cmd.params[2], 32, 32); return 0; } int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t en) @@ -221,7 +237,7 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ_ENABLE, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 8, en); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -230,6 +246,7 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, } int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t *en) @@ -239,7 +256,7 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_ENABLE, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -253,6 +270,7 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, } int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t mask) @@ -261,7 +279,7 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ_MASK, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, mask); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -270,6 +288,7 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, } int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *mask) @@ -279,7 +298,7 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_MASK, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -293,6 +312,7 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, } int dpbp_get_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *status) @@ -302,7 +322,7 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_STATUS, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -316,6 +336,7 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, } int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t status) @@ -324,7 +345,7 @@ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLEAR_IRQ_STATUS, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, status); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -333,6 +354,7 @@ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, } int dpbp_get_attributes(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, struct dpbp_attr *attr) { @@ -341,7 +363,7 @@ int dpbp_get_attributes(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_ATTR, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ err = mc_send_command(mc_io, &cmd); diff --git a/drivers/staging/fsl-mc/include/dpbp-cmd.h b/drivers/staging/fsl-mc/include/dpbp-cmd.h index 1fd70a215194..efa9bf33c1a5 100644 --- a/drivers/staging/fsl-mc/include/dpbp-cmd.h +++ b/drivers/staging/fsl-mc/include/dpbp-cmd.h @@ -34,7 +34,7 @@ /* DPBP Version */ #define DPBP_VER_MAJOR 2 -#define DPBP_VER_MINOR 0 +#define DPBP_VER_MINOR 1 /* Command IDs */ #define DPBP_CMDID_CLOSE 0x800 diff --git a/drivers/staging/fsl-mc/include/dpbp.h b/drivers/staging/fsl-mc/include/dpbp.h index 5f3c8e74d2ad..4a4b5750d1c7 100644 --- a/drivers/staging/fsl-mc/include/dpbp.h +++ b/drivers/staging/fsl-mc/include/dpbp.h @@ -41,6 +41,7 @@ struct fsl_mc_io; /** * dpbp_open() - Open a control session for the specified object. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @dpbp_id: DPBP unique ID * @token: Returned token; use in subsequent API calls * @@ -54,11 +55,15 @@ struct fsl_mc_io; * * Return: '0' on Success; Error code otherwise. */ -int dpbp_open(struct fsl_mc_io *mc_io, int dpbp_id, uint16_t *token); +int dpbp_open(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + int dpbp_id, + uint16_t *token); /** * dpbp_close() - Close the control session of the object * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * * After this function is called, no further operations are @@ -66,10 +71,12 @@ int dpbp_open(struct fsl_mc_io *mc_io, int dpbp_id, uint16_t *token); * * Return: '0' on Success; Error code otherwise. */ -int dpbp_close(struct fsl_mc_io *mc_io, uint16_t token); +int dpbp_close(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); /** - * struct dpbp_cfg() - Structure representing DPBP configuration + * struct dpbp_cfg - Structure representing DPBP configuration * @options: place holder */ struct dpbp_cfg { @@ -79,6 +86,7 @@ struct dpbp_cfg { /** * dpbp_create() - Create the DPBP object. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @cfg: Configuration structure * @token: Returned token; use in subsequent API calls * @@ -97,99 +105,123 @@ struct dpbp_cfg { * Return: '0' on Success; Error code otherwise. */ int dpbp_create(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, const struct dpbp_cfg *cfg, uint16_t *token); /** * dpbp_destroy() - Destroy the DPBP object and release all its resources. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * * Return: '0' on Success; error code otherwise. */ -int dpbp_destroy(struct fsl_mc_io *mc_io, uint16_t token); +int dpbp_destroy(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); /** * dpbp_enable() - Enable the DPBP. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * * Return: '0' on Success; Error code otherwise. */ -int dpbp_enable(struct fsl_mc_io *mc_io, uint16_t token); +int dpbp_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); /** * dpbp_disable() - Disable the DPBP. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * * Return: '0' on Success; Error code otherwise. */ -int dpbp_disable(struct fsl_mc_io *mc_io, uint16_t token); +int dpbp_disable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); /** * dpbp_is_enabled() - Check if the DPBP is enabled. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @en: Returns '1' if object is enabled; '0' otherwise * * Return: '0' on Success; Error code otherwise. */ -int dpbp_is_enabled(struct fsl_mc_io *mc_io, uint16_t token, int *en); +int dpbp_is_enabled(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int *en); /** * dpbp_reset() - Reset the DPBP, returns the object to initial state. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * * Return: '0' on Success; Error code otherwise. */ -int dpbp_reset(struct fsl_mc_io *mc_io, uint16_t token); +int dpbp_reset(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); + +/** + * struct dpbp_irq_cfg - IRQ configuration + * @addr: Address that must be written to signal a message-based interrupt + * @val: Value to write into irq_addr address + * @user_irq_id: A user defined number associated with this IRQ + */ +struct dpbp_irq_cfg { + uint64_t addr; + uint32_t val; + int user_irq_id; +}; /** * dpbp_set_irq() - Set IRQ information for the DPBP to trigger an interrupt. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @irq_index: Identifies the interrupt index to configure - * @irq_addr: Address that must be written to - * signal a message-based interrupt - * @irq_val: Value to write into irq_addr address - * @user_irq_id: A user defined number associated with this IRQ + * @irq_cfg: IRQ configuration * * Return: '0' on Success; Error code otherwise. */ int dpbp_set_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, - uint64_t irq_addr, - uint32_t irq_val, - int user_irq_id); + struct dpbp_irq_cfg *irq_cfg); /** * dpbp_get_irq() - Get IRQ information from the DPBP. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @irq_index: The interrupt index to configure * @type: Interrupt type: 0 represents message interrupt - * type (both irq_addr and irq_val are valid) - * @irq_addr: Returned address that must be written to - * signal the message-based interrupt - * @irq_val: Value to write into irq_addr address - * @user_irq_id: A user defined number associated with this IRQ + * type (both irq_addr and irq_val are valid) + * @irq_cfg: IRQ attributes * * Return: '0' on Success; Error code otherwise. */ int dpbp_get_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, int *type, - uint64_t *irq_addr, - uint32_t *irq_val, - int *user_irq_id); + struct dpbp_irq_cfg *irq_cfg); /** * dpbp_set_irq_enable() - Set overall interrupt state. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @irq_index: The interrupt index to configure * @en: Interrupt state - enable = 1, disable = 0 @@ -202,6 +234,7 @@ int dpbp_get_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t en); @@ -209,6 +242,7 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, /** * dpbp_get_irq_enable() - Get overall interrupt state * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @irq_index: The interrupt index to configure * @en: Returned interrupt state - enable = 1, disable = 0 @@ -216,6 +250,7 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t *en); @@ -223,6 +258,7 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, /** * dpbp_set_irq_mask() - Set interrupt mask. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @irq_index: The interrupt index to configure * @mask: Event mask to trigger interrupt; @@ -236,6 +272,7 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t mask); @@ -243,6 +280,7 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, /** * dpbp_get_irq_mask() - Get interrupt mask. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @irq_index: The interrupt index to configure * @mask: Returned event mask to trigger interrupt @@ -253,6 +291,7 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *mask); @@ -261,6 +300,7 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, * dpbp_get_irq_status() - Get the current status of any pending interrupts. * * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @irq_index: The interrupt index to configure * @status: Returned interrupts status - one bit per cause: @@ -270,6 +310,7 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *status); @@ -278,6 +319,7 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, * dpbp_clear_irq_status() - Clear a pending interrupt's status * * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @irq_index: The interrupt index to configure * @status: Bits to clear (W1C) - one bit per cause: @@ -287,6 +329,7 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t status); @@ -316,12 +359,14 @@ struct dpbp_attr { * dpbp_get_attributes - Retrieve DPBP attributes. * * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPBP object * @attr: Returned object's attributes * * Return: '0' on Success; Error code otherwise. */ int dpbp_get_attributes(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, struct dpbp_attr *attr); From 7a9a56be67b2ae4c9af943a5696c4fff309cc14f Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:11:01 -0500 Subject: [PATCH 0965/2431] staging: fsl-mc: up-rev dpmcp binary interface to v2.0 Add cmd_flags parameter to all dpbp APIs to comply with the dpmcp 2.0 MC interface. Updated version major number. Pass irq args in struct instead of separate args. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/dpmcp-cmd.h | 2 +- drivers/staging/fsl-mc/bus/dpmcp.c | 111 ++++++++++++---------- drivers/staging/fsl-mc/bus/dpmcp.h | 83 +++++++++++----- drivers/staging/fsl-mc/bus/mc-allocator.c | 6 +- 4 files changed, 124 insertions(+), 78 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dpmcp-cmd.h b/drivers/staging/fsl-mc/bus/dpmcp-cmd.h index 57f326b60b76..6cc0fedd802f 100644 --- a/drivers/staging/fsl-mc/bus/dpmcp-cmd.h +++ b/drivers/staging/fsl-mc/bus/dpmcp-cmd.h @@ -34,7 +34,7 @@ /* DPMCP Version */ #define DPMCP_VER_MAJOR 2 -#define DPMCP_VER_MINOR 0 +#define DPMCP_VER_MINOR 1 /* Command IDs */ #define DPMCP_CMDID_CLOSE 0x800 diff --git a/drivers/staging/fsl-mc/bus/dpmcp.c b/drivers/staging/fsl-mc/bus/dpmcp.c index 6b9da5b7fd00..ce5fd315aa40 100644 --- a/drivers/staging/fsl-mc/bus/dpmcp.c +++ b/drivers/staging/fsl-mc/bus/dpmcp.c @@ -34,14 +34,17 @@ #include "dpmcp.h" #include "dpmcp-cmd.h" -int dpmcp_open(struct fsl_mc_io *mc_io, int dpmcp_id, uint16_t *token) +int dpmcp_open(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + int dpmcp_id, + uint16_t *token) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_OPEN, - MC_CMD_PRI_LOW, 0); + cmd_flags, 0); cmd.params[0] |= mc_enc(0, 32, dpmcp_id); /* send command to mc*/ @@ -55,28 +58,31 @@ int dpmcp_open(struct fsl_mc_io *mc_io, int dpmcp_id, uint16_t *token) return err; } -int dpmcp_close(struct fsl_mc_io *mc_io, uint16_t token) +int dpmcp_close(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ - cmd.header = mc_encode_cmd_header(DPMCP_CMDID_CLOSE, MC_CMD_PRI_HIGH, - token); + cmd.header = mc_encode_cmd_header(DPMCP_CMDID_CLOSE, + cmd_flags, token); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } int dpmcp_create(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, const struct dpmcp_cfg *cfg, - uint16_t *token) + uint16_t *token) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_CREATE, - MC_CMD_PRI_LOW, 0); + cmd_flags, 0); cmd.params[0] |= mc_enc(0, 32, cfg->portal_id); /* send command to mc*/ @@ -90,65 +96,67 @@ int dpmcp_create(struct fsl_mc_io *mc_io, return 0; } -int dpmcp_destroy(struct fsl_mc_io *mc_io, uint16_t token) +int dpmcp_destroy(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_DESTROY, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } -int dpmcp_reset(struct fsl_mc_io *mc_io, uint16_t token) +int dpmcp_reset(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_RESET, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } int dpmcp_set_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - uint8_t irq_index, - uint64_t irq_addr, - uint32_t irq_val, - int user_irq_id) + uint8_t irq_index, + struct dpmcp_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 8, irq_index); - cmd.params[0] |= mc_enc(32, 32, irq_val); - cmd.params[1] |= mc_enc(0, 64, irq_addr); - cmd.params[2] |= mc_enc(0, 32, user_irq_id); + cmd.params[0] |= mc_enc(32, 32, irq_cfg->val); + cmd.params[1] |= mc_enc(0, 64, irq_cfg->paddr); + cmd.params[2] |= mc_enc(0, 32, irq_cfg->user_irq_id); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } int dpmcp_get_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - uint8_t irq_index, - int *type, - uint64_t *irq_addr, - uint32_t *irq_val, - int *user_irq_id) + uint8_t irq_index, + int *type, + struct dpmcp_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -157,23 +165,24 @@ int dpmcp_get_irq(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *irq_val = (uint32_t)mc_dec(cmd.params[0], 0, 32); - *irq_addr = (uint64_t)mc_dec(cmd.params[1], 0, 64); - *user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); + irq_cfg->val = (uint32_t)mc_dec(cmd.params[0], 0, 32); + irq_cfg->paddr = (uint64_t)mc_dec(cmd.params[1], 0, 64); + irq_cfg->user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); *type = (int)mc_dec(cmd.params[2], 32, 32); return 0; } int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - uint8_t irq_index, - uint8_t en) + uint8_t irq_index, + uint8_t en) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ_ENABLE, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 8, en); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -182,16 +191,17 @@ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, } int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - uint8_t irq_index, - uint8_t *en) + uint8_t irq_index, + uint8_t *en) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_ENABLE, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -205,15 +215,16 @@ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, } int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - uint8_t irq_index, - uint32_t mask) + uint8_t irq_index, + uint32_t mask) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ_MASK, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, mask); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -222,16 +233,17 @@ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, } int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - uint8_t irq_index, - uint32_t *mask) + uint8_t irq_index, + uint32_t *mask) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_MASK, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -245,16 +257,17 @@ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, } int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - uint8_t irq_index, - uint32_t *status) + uint8_t irq_index, + uint32_t *status) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_STATUS, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -268,15 +281,16 @@ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, } int dpmcp_clear_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - uint8_t irq_index, - uint32_t status) + uint8_t irq_index, + uint32_t status) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_CLEAR_IRQ_STATUS, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, status); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -285,15 +299,16 @@ int dpmcp_clear_irq_status(struct fsl_mc_io *mc_io, } int dpmcp_get_attributes(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - struct dpmcp_attr *attr) + struct dpmcp_attr *attr) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_ATTR, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ err = mc_send_command(mc_io, &cmd); diff --git a/drivers/staging/fsl-mc/bus/dpmcp.h b/drivers/staging/fsl-mc/bus/dpmcp.h index 5e7c21952ce5..19dadd8246e4 100644 --- a/drivers/staging/fsl-mc/bus/dpmcp.h +++ b/drivers/staging/fsl-mc/bus/dpmcp.h @@ -41,6 +41,7 @@ struct fsl_mc_io; /** * dpmcp_open() - Open a control session for the specified object. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @dpmcp_id: DPMCP unique ID * @token: Returned token; use in subsequent API calls * @@ -54,7 +55,10 @@ struct fsl_mc_io; * * Return: '0' on Success; Error code otherwise. */ -int dpmcp_open(struct fsl_mc_io *mc_io, int dpmcp_id, uint16_t *token); +int dpmcp_open(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + int dpmcp_id, + uint16_t *token); /* Get portal ID from pool */ #define DPMCP_GET_PORTAL_ID_FROM_POOL (-1) @@ -62,6 +66,7 @@ int dpmcp_open(struct fsl_mc_io *mc_io, int dpmcp_id, uint16_t *token); /** * dpmcp_close() - Close the control session of the object * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * * After this function is called, no further operations are @@ -69,10 +74,12 @@ int dpmcp_open(struct fsl_mc_io *mc_io, int dpmcp_id, uint16_t *token); * * Return: '0' on Success; Error code otherwise. */ -int dpmcp_close(struct fsl_mc_io *mc_io, uint16_t token); +int dpmcp_close(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); /** - * struct dpmcp_cfg() - Structure representing DPMCP configuration + * struct dpmcp_cfg - Structure representing DPMCP configuration * @portal_id: Portal ID; 'DPMCP_GET_PORTAL_ID_FROM_POOL' to get the portal ID * from pool */ @@ -83,6 +90,7 @@ struct dpmcp_cfg { /** * dpmcp_create() - Create the DPMCP object. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @cfg: Configuration structure * @token: Returned token; use in subsequent API calls * @@ -101,81 +109,91 @@ struct dpmcp_cfg { * Return: '0' on Success; Error code otherwise. */ int dpmcp_create(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, const struct dpmcp_cfg *cfg, uint16_t *token); /** * dpmcp_destroy() - Destroy the DPMCP object and release all its resources. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * * Return: '0' on Success; error code otherwise. */ -int dpmcp_destroy(struct fsl_mc_io *mc_io, uint16_t token); +int dpmcp_destroy(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); /** * dpmcp_reset() - Reset the DPMCP, returns the object to initial state. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * * Return: '0' on Success; Error code otherwise. */ -int dpmcp_reset(struct fsl_mc_io *mc_io, uint16_t token); +int dpmcp_reset(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); /* IRQ */ -/*! - * @name dpmcp IRQ Index and Events - */ +/* IRQ Index */ #define DPMCP_IRQ_INDEX 0 -/*!< Irq index */ +/* irq event - Indicates that the link state changed */ #define DPMCP_IRQ_EVENT_CMD_DONE 0x00000001 -/*!< irq event - Indicates that the link state changed */ -/* @} */ + +/** + * struct dpmcp_irq_cfg - IRQ configuration + * @paddr: Address that must be written to signal a message-based interrupt + * @val: Value to write into irq_addr address + * @user_irq_id: A user defined number associated with this IRQ + */ +struct dpmcp_irq_cfg { + uint64_t paddr; + uint32_t val; + int user_irq_id; +}; /** * dpmcp_set_irq() - Set IRQ information for the DPMCP to trigger an interrupt. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @irq_index: Identifies the interrupt index to configure - * @irq_addr: Address that must be written to - * signal a message-based interrupt - * @irq_val: Value to write into irq_addr address - * @user_irq_id: A user defined number associated with this IRQ + * @irq_cfg: IRQ configuration * * Return: '0' on Success; Error code otherwise. */ int dpmcp_set_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, - uint64_t irq_addr, - uint32_t irq_val, - int user_irq_id); + struct dpmcp_irq_cfg *irq_cfg); /** * dpmcp_get_irq() - Get IRQ information from the DPMCP. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @irq_index: The interrupt index to configure * @type: Interrupt type: 0 represents message interrupt - * type (both irq_addr and irq_val are valid) - * @irq_addr: Returned address that must be written to - * signal the message-based interrupt - * @irq_val: Value to write into irq_addr address - * @user_irq_id: A user defined number associated with this IRQ + * type (both irq_addr and irq_val are valid) + * @irq_cfg: IRQ attributes * * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, int *type, - uint64_t *irq_addr, - uint32_t *irq_val, - int *user_irq_id); + struct dpmcp_irq_cfg *irq_cfg); /** * dpmcp_set_irq_enable() - Set overall interrupt state. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @irq_index: The interrupt index to configure * @en: Interrupt state - enable = 1, disable = 0 @@ -188,6 +206,7 @@ int dpmcp_get_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t en); @@ -195,6 +214,7 @@ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, /** * dpmcp_get_irq_enable() - Get overall interrupt state * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @irq_index: The interrupt index to configure * @en: Returned interrupt state - enable = 1, disable = 0 @@ -202,6 +222,7 @@ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t *en); @@ -209,6 +230,7 @@ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, /** * dpmcp_set_irq_mask() - Set interrupt mask. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @irq_index: The interrupt index to configure * @mask: Event mask to trigger interrupt; @@ -222,6 +244,7 @@ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t mask); @@ -229,6 +252,7 @@ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, /** * dpmcp_get_irq_mask() - Get interrupt mask. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @irq_index: The interrupt index to configure * @mask: Returned event mask to trigger interrupt @@ -239,6 +263,7 @@ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *mask); @@ -247,6 +272,7 @@ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, * dpmcp_get_irq_status() - Get the current status of any pending interrupts. * * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @irq_index: The interrupt index to configure * @status: Returned interrupts status - one bit per cause: @@ -256,6 +282,7 @@ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *status); @@ -264,6 +291,7 @@ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, * dpmcp_clear_irq_status() - Clear a pending interrupt's status * * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @irq_index: The interrupt index to configure * @status: Bits to clear (W1C) - one bit per cause: @@ -273,6 +301,7 @@ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_clear_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t status); @@ -299,12 +328,14 @@ struct dpmcp_attr { * dpmcp_get_attributes - Retrieve DPMCP attributes. * * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPMCP object * @attr: Returned object's attributes * * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_attributes(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, struct dpmcp_attr *attr); diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index e36235ddbe3e..376ce8089d8a 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -373,19 +373,19 @@ int fsl_mc_portal_reset(struct fsl_mc_io *mc_io) if (WARN_ON(!mc_dev)) return -EINVAL; - error = dpmcp_open(mc_io, mc_dev->obj_desc.id, &token); + error = dpmcp_open(mc_io, 0, mc_dev->obj_desc.id, &token); if (error < 0) { dev_err(&mc_dev->dev, "dpmcp_open() failed: %d\n", error); return error; } - error = dpmcp_reset(mc_io, token); + error = dpmcp_reset(mc_io, 0, token); if (error < 0) { dev_err(&mc_dev->dev, "dpmcp_reset() failed: %d\n", error); return error; } - error = dpmcp_close(mc_io, token); + error = dpmcp_close(mc_io, 0, token); if (error < 0) { dev_err(&mc_dev->dev, "dpmcp_close() failed: %d\n", error); return error; From e1135cb669fabc5c22286faec9d3ca1f2d9594ec Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:11:02 -0500 Subject: [PATCH 0966/2431] staging: fsl-mc: up-rev dpcon binary interface to v2.0 dpcon object minor version number updated to match latest MC firmware. This change is needed because the dpcon object binds to the allocator and the current driver match logic uses object version numbers. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/include/dpcon-cmd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/fsl-mc/include/dpcon-cmd.h b/drivers/staging/fsl-mc/include/dpcon-cmd.h index c878d33bfd86..261702496ca8 100644 --- a/drivers/staging/fsl-mc/include/dpcon-cmd.h +++ b/drivers/staging/fsl-mc/include/dpcon-cmd.h @@ -34,7 +34,7 @@ /* DPCON Version */ #define DPCON_VER_MAJOR 2 -#define DPCON_VER_MINOR 0 +#define DPCON_VER_MINOR 1 /* Command IDs */ #define DPCON_CMDID_CLOSE 0x800 From 1ee695fab32e25ff188c98a145cc93674f594923 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:11:03 -0500 Subject: [PATCH 0967/2431] staging: fsl-mc: up-rev dprc binary interface to v4.0 Add cmd_flags parameter to all dprc APIs to comply with the dprc 4.0 MC interface. Updated MC version major number. Pass irq args in struct instead of separate args. dprc 4.0 uses MC-relative offsets to specify object regions, instead of physical addresses. So, translate_mc_addr() and struct fsl_mc_addr_translation_range need to be updated accordingly. Update commands for 4.0: add new commands 'set/get obj irq', 'set obj label', 'get obj descriptor'. Remove 'get portal paddr'. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/dprc-cmd.h | 7 +- drivers/staging/fsl-mc/bus/dprc-driver.c | 8 +- drivers/staging/fsl-mc/bus/dprc.c | 426 ++++++++++++++++---- drivers/staging/fsl-mc/bus/mc-bus.c | 50 ++- drivers/staging/fsl-mc/include/dprc.h | 277 ++++++++++--- drivers/staging/fsl-mc/include/mc-private.h | 15 +- 6 files changed, 630 insertions(+), 153 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dprc-cmd.h b/drivers/staging/fsl-mc/bus/dprc-cmd.h index 09202489c2b2..6552c2034947 100644 --- a/drivers/staging/fsl-mc/bus/dprc-cmd.h +++ b/drivers/staging/fsl-mc/bus/dprc-cmd.h @@ -41,7 +41,7 @@ #define _FSL_DPRC_CMD_H /* DPRC Version */ -#define DPRC_VER_MAJOR 3 +#define DPRC_VER_MAJOR 4 #define DPRC_VER_MINOR 0 /* Command IDs */ @@ -72,12 +72,15 @@ #define DPRC_CMDID_GET_RES_COUNT 0x15B #define DPRC_CMDID_GET_RES_IDS 0x15C #define DPRC_CMDID_GET_OBJ_REG 0x15E +#define DPRC_CMDID_SET_OBJ_IRQ 0x15F +#define DPRC_CMDID_GET_OBJ_IRQ 0x160 +#define DPRC_CMDID_SET_OBJ_LABEL 0x161 +#define DPRC_CMDID_GET_OBJ_DESC 0x162 #define DPRC_CMDID_CONNECT 0x167 #define DPRC_CMDID_DISCONNECT 0x168 #define DPRC_CMDID_GET_POOL 0x169 #define DPRC_CMDID_GET_POOL_COUNT 0x16A -#define DPRC_CMDID_GET_PORTAL_PADDR 0x16B #define DPRC_CMDID_GET_CONNECTION 0x16C diff --git a/drivers/staging/fsl-mc/bus/dprc-driver.c b/drivers/staging/fsl-mc/bus/dprc-driver.c index 35c06cff1a06..7faf23b4538c 100644 --- a/drivers/staging/fsl-mc/bus/dprc-driver.c +++ b/drivers/staging/fsl-mc/bus/dprc-driver.c @@ -262,6 +262,7 @@ int dprc_scan_objects(struct fsl_mc_device *mc_bus_dev) struct dprc_obj_desc *child_obj_desc_array = NULL; error = dprc_get_obj_count(mc_bus_dev->mc_io, + 0, mc_bus_dev->mc_handle, &num_child_objects); if (error < 0) { @@ -289,6 +290,7 @@ int dprc_scan_objects(struct fsl_mc_device *mc_bus_dev) &child_obj_desc_array[i]; error = dprc_get_obj(mc_bus_dev->mc_io, + 0, mc_bus_dev->mc_handle, i, obj_desc); if (error < 0) { @@ -399,7 +401,7 @@ static int dprc_probe(struct fsl_mc_device *mc_dev) return error; } - error = dprc_open(mc_dev->mc_io, mc_dev->obj_desc.id, + error = dprc_open(mc_dev->mc_io, 0, mc_dev->obj_desc.id, &mc_dev->mc_handle); if (error < 0) { dev_err(&mc_dev->dev, "dprc_open() failed: %d\n", error); @@ -419,7 +421,7 @@ static int dprc_probe(struct fsl_mc_device *mc_dev) return 0; error_cleanup_open: - (void)dprc_close(mc_dev->mc_io, mc_dev->mc_handle); + (void)dprc_close(mc_dev->mc_io, 0, mc_dev->mc_handle); error_cleanup_mc_io: fsl_destroy_mc_io(mc_dev->mc_io); @@ -447,7 +449,7 @@ static int dprc_remove(struct fsl_mc_device *mc_dev) device_for_each_child(&mc_dev->dev, NULL, __fsl_mc_device_remove); dprc_cleanup_all_resource_pools(mc_dev); - error = dprc_close(mc_dev->mc_io, mc_dev->mc_handle); + error = dprc_close(mc_dev->mc_io, 0, mc_dev->mc_handle); if (error < 0) dev_err(&mc_dev->dev, "dprc_close() failed: %d\n", error); diff --git a/drivers/staging/fsl-mc/bus/dprc.c b/drivers/staging/fsl-mc/bus/dprc.c index 19b26e630b62..db1b6bfc5a33 100644 --- a/drivers/staging/fsl-mc/bus/dprc.c +++ b/drivers/staging/fsl-mc/bus/dprc.c @@ -34,13 +34,16 @@ #include "../include/dprc.h" #include "dprc-cmd.h" -int dprc_open(struct fsl_mc_io *mc_io, int container_id, uint16_t *token) +int dprc_open(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + int container_id, + uint16_t *token) { struct mc_command cmd = { 0 }; int err; /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_OPEN, MC_CMD_PRI_LOW, + cmd.header = mc_encode_cmd_header(DPRC_CMDID_OPEN, cmd_flags, 0); cmd.params[0] |= mc_enc(0, 32, container_id); @@ -56,12 +59,14 @@ int dprc_open(struct fsl_mc_io *mc_io, int container_id, uint16_t *token) } EXPORT_SYMBOL(dprc_open); -int dprc_close(struct fsl_mc_io *mc_io, uint16_t token) +int dprc_close(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token) { struct mc_command cmd = { 0 }; /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_CLOSE, MC_CMD_PRI_HIGH, + cmd.header = mc_encode_cmd_header(DPRC_CMDID_CLOSE, cmd_flags, token); /* send command to mc*/ @@ -70,10 +75,11 @@ int dprc_close(struct fsl_mc_io *mc_io, uint16_t token) EXPORT_SYMBOL(dprc_close); int dprc_create_container(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, struct dprc_cfg *cfg, int *child_container_id, - uint64_t *child_portal_paddr) + uint64_t *child_portal_offset) { struct mc_command cmd = { 0 }; int err; @@ -82,9 +88,25 @@ int dprc_create_container(struct fsl_mc_io *mc_io, cmd.params[0] |= mc_enc(32, 16, cfg->icid); cmd.params[0] |= mc_enc(0, 32, cfg->options); cmd.params[1] |= mc_enc(32, 32, cfg->portal_id); + cmd.params[2] |= mc_enc(0, 8, cfg->label[0]); + cmd.params[2] |= mc_enc(8, 8, cfg->label[1]); + cmd.params[2] |= mc_enc(16, 8, cfg->label[2]); + cmd.params[2] |= mc_enc(24, 8, cfg->label[3]); + cmd.params[2] |= mc_enc(32, 8, cfg->label[4]); + cmd.params[2] |= mc_enc(40, 8, cfg->label[5]); + cmd.params[2] |= mc_enc(48, 8, cfg->label[6]); + cmd.params[2] |= mc_enc(56, 8, cfg->label[7]); + cmd.params[3] |= mc_enc(0, 8, cfg->label[8]); + cmd.params[3] |= mc_enc(8, 8, cfg->label[9]); + cmd.params[3] |= mc_enc(16, 8, cfg->label[10]); + cmd.params[3] |= mc_enc(24, 8, cfg->label[11]); + cmd.params[3] |= mc_enc(32, 8, cfg->label[12]); + cmd.params[3] |= mc_enc(40, 8, cfg->label[13]); + cmd.params[3] |= mc_enc(48, 8, cfg->label[14]); + cmd.params[3] |= mc_enc(56, 8, cfg->label[15]); cmd.header = mc_encode_cmd_header(DPRC_CMDID_CREATE_CONT, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ err = mc_send_command(mc_io, &cmd); @@ -93,12 +115,13 @@ int dprc_create_container(struct fsl_mc_io *mc_io, /* retrieve response parameters */ *child_container_id = mc_dec(cmd.params[1], 0, 32); - *child_portal_paddr = mc_dec(cmd.params[2], 0, 64); + *child_portal_offset = mc_dec(cmd.params[2], 0, 64); return 0; } int dprc_destroy_container(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id) { @@ -106,7 +129,7 @@ int dprc_destroy_container(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_DESTROY_CONT, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, child_container_id); /* send command to mc*/ @@ -114,6 +137,7 @@ int dprc_destroy_container(struct fsl_mc_io *mc_io, } int dprc_reset_container(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id) { @@ -121,7 +145,7 @@ int dprc_reset_container(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_RESET_CONT, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, child_container_id); /* send command to mc*/ @@ -129,19 +153,18 @@ int dprc_reset_container(struct fsl_mc_io *mc_io, } int dprc_get_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, int *type, - uint64_t *irq_paddr, - uint32_t *irq_val, - int *user_irq_id) + struct dprc_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_IRQ, - MC_CMD_PRI_LOW, + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -151,37 +174,37 @@ int dprc_get_irq(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *irq_val = mc_dec(cmd.params[0], 0, 32); - *irq_paddr = mc_dec(cmd.params[1], 0, 64); - *user_irq_id = mc_dec(cmd.params[2], 0, 32); + irq_cfg->val = mc_dec(cmd.params[0], 0, 32); + irq_cfg->paddr = mc_dec(cmd.params[1], 0, 64); + irq_cfg->user_irq_id = mc_dec(cmd.params[2], 0, 32); *type = mc_dec(cmd.params[2], 32, 32); return 0; } int dprc_set_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, - uint64_t irq_paddr, - uint32_t irq_val, - int user_irq_id) + struct dprc_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_IRQ, - MC_CMD_PRI_LOW, + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); - cmd.params[0] |= mc_enc(0, 32, irq_val); - cmd.params[1] |= mc_enc(0, 64, irq_paddr); - cmd.params[2] |= mc_enc(0, 32, user_irq_id); + cmd.params[0] |= mc_enc(0, 32, irq_cfg->val); + cmd.params[1] |= mc_enc(0, 64, irq_cfg->paddr); + cmd.params[2] |= mc_enc(0, 32, irq_cfg->user_irq_id); /* send command to mc*/ return mc_send_command(mc_io, &cmd); } int dprc_get_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t *en) @@ -191,7 +214,7 @@ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_IRQ_ENABLE, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -206,6 +229,7 @@ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, } int dprc_set_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t en) @@ -214,7 +238,7 @@ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_IRQ_ENABLE, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 8, en); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -223,6 +247,7 @@ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, } int dprc_get_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *mask) @@ -232,7 +257,7 @@ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_IRQ_MASK, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -247,6 +272,7 @@ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, } int dprc_set_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t mask) @@ -255,7 +281,7 @@ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_IRQ_MASK, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, mask); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -264,6 +290,7 @@ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, } int dprc_get_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *status) @@ -273,7 +300,7 @@ int dprc_get_irq_status(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_IRQ_STATUS, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(32, 8, irq_index); /* send command to mc*/ @@ -288,6 +315,7 @@ int dprc_get_irq_status(struct fsl_mc_io *mc_io, } int dprc_clear_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t status) @@ -296,7 +324,7 @@ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_CLEAR_IRQ_STATUS, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, status); cmd.params[0] |= mc_enc(32, 8, irq_index); @@ -305,6 +333,7 @@ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, } int dprc_get_attributes(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, struct dprc_attributes *attr) { @@ -313,7 +342,7 @@ int dprc_get_attributes(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_ATTR, - MC_CMD_PRI_LOW, + cmd_flags, token); /* send command to mc*/ @@ -333,6 +362,7 @@ int dprc_get_attributes(struct fsl_mc_io *mc_io, } int dprc_set_res_quota(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id, char *type, @@ -342,7 +372,7 @@ int dprc_set_res_quota(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_RES_QUOTA, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, child_container_id); cmd.params[0] |= mc_enc(32, 16, quota); cmd.params[1] |= mc_enc(0, 8, type[0]); @@ -367,6 +397,7 @@ int dprc_set_res_quota(struct fsl_mc_io *mc_io, } int dprc_get_res_quota(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id, char *type, @@ -377,7 +408,7 @@ int dprc_get_res_quota(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_RES_QUOTA, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, child_container_id); cmd.params[1] |= mc_enc(0, 8, type[0]); cmd.params[1] |= mc_enc(8, 8, type[1]); @@ -408,6 +439,7 @@ int dprc_get_res_quota(struct fsl_mc_io *mc_io, } int dprc_assign(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int container_id, struct dprc_res_req *res_req) @@ -416,7 +448,7 @@ int dprc_assign(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_ASSIGN, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, container_id); cmd.params[0] |= mc_enc(32, 32, res_req->options); cmd.params[1] |= mc_enc(0, 32, res_req->num); @@ -443,6 +475,7 @@ int dprc_assign(struct fsl_mc_io *mc_io, } int dprc_unassign(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id, struct dprc_res_req *res_req) @@ -451,7 +484,7 @@ int dprc_unassign(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_UNASSIGN, - MC_CMD_PRI_LOW, + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, child_container_id); cmd.params[0] |= mc_enc(32, 32, res_req->options); @@ -479,6 +512,7 @@ int dprc_unassign(struct fsl_mc_io *mc_io, } int dprc_get_pool_count(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int *pool_count) { @@ -487,7 +521,7 @@ int dprc_get_pool_count(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_POOL_COUNT, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ err = mc_send_command(mc_io, &cmd); @@ -501,6 +535,7 @@ int dprc_get_pool_count(struct fsl_mc_io *mc_io, } int dprc_get_pool(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int pool_index, char *type) @@ -510,7 +545,7 @@ int dprc_get_pool(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_POOL, - MC_CMD_PRI_LOW, + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, pool_index); @@ -540,14 +575,17 @@ int dprc_get_pool(struct fsl_mc_io *mc_io, return 0; } -int dprc_get_obj_count(struct fsl_mc_io *mc_io, uint16_t token, int *obj_count) +int dprc_get_obj_count(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int *obj_count) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ_COUNT, - MC_CMD_PRI_LOW, token); + cmd_flags, token); /* send command to mc*/ err = mc_send_command(mc_io, &cmd); @@ -562,6 +600,7 @@ int dprc_get_obj_count(struct fsl_mc_io *mc_io, uint16_t token, int *obj_count) EXPORT_SYMBOL(dprc_get_obj_count); int dprc_get_obj(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int obj_index, struct dprc_obj_desc *obj_desc) @@ -571,7 +610,7 @@ int dprc_get_obj(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ, - MC_CMD_PRI_LOW, + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, obj_index); @@ -604,12 +643,201 @@ int dprc_get_obj(struct fsl_mc_io *mc_io, obj_desc->type[13] = mc_dec(cmd.params[4], 40, 8); obj_desc->type[14] = mc_dec(cmd.params[4], 48, 8); obj_desc->type[15] = '\0'; - + obj_desc->label[0] = mc_dec(cmd.params[5], 0, 8); + obj_desc->label[1] = mc_dec(cmd.params[5], 8, 8); + obj_desc->label[2] = mc_dec(cmd.params[5], 16, 8); + obj_desc->label[3] = mc_dec(cmd.params[5], 24, 8); + obj_desc->label[4] = mc_dec(cmd.params[5], 32, 8); + obj_desc->label[5] = mc_dec(cmd.params[5], 40, 8); + obj_desc->label[6] = mc_dec(cmd.params[5], 48, 8); + obj_desc->label[7] = mc_dec(cmd.params[5], 56, 8); + obj_desc->label[8] = mc_dec(cmd.params[6], 0, 8); + obj_desc->label[9] = mc_dec(cmd.params[6], 8, 8); + obj_desc->label[10] = mc_dec(cmd.params[6], 16, 8); + obj_desc->label[11] = mc_dec(cmd.params[6], 24, 8); + obj_desc->label[12] = mc_dec(cmd.params[6], 32, 8); + obj_desc->label[13] = mc_dec(cmd.params[6], 40, 8); + obj_desc->label[14] = mc_dec(cmd.params[6], 48, 8); + obj_desc->label[15] = '\0'; return 0; } EXPORT_SYMBOL(dprc_get_obj); +int dprc_get_obj_desc(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + char *obj_type, + int obj_id, + struct dprc_obj_desc *obj_desc) +{ + struct mc_command cmd = { 0 }; + int err; + + /* prepare command */ + cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ_DESC, + cmd_flags, + token); + cmd.params[0] |= mc_enc(0, 32, obj_id); + cmd.params[1] |= mc_enc(0, 8, obj_type[0]); + cmd.params[1] |= mc_enc(8, 8, obj_type[1]); + cmd.params[1] |= mc_enc(16, 8, obj_type[2]); + cmd.params[1] |= mc_enc(24, 8, obj_type[3]); + cmd.params[1] |= mc_enc(32, 8, obj_type[4]); + cmd.params[1] |= mc_enc(40, 8, obj_type[5]); + cmd.params[1] |= mc_enc(48, 8, obj_type[6]); + cmd.params[1] |= mc_enc(56, 8, obj_type[7]); + cmd.params[2] |= mc_enc(0, 8, obj_type[8]); + cmd.params[2] |= mc_enc(8, 8, obj_type[9]); + cmd.params[2] |= mc_enc(16, 8, obj_type[10]); + cmd.params[2] |= mc_enc(24, 8, obj_type[11]); + cmd.params[2] |= mc_enc(32, 8, obj_type[12]); + cmd.params[2] |= mc_enc(40, 8, obj_type[13]); + cmd.params[2] |= mc_enc(48, 8, obj_type[14]); + cmd.params[2] |= mc_enc(56, 8, obj_type[15]); + + /* send command to mc*/ + err = mc_send_command(mc_io, &cmd); + if (err) + return err; + + /* retrieve response parameters */ + obj_desc->id = (int)mc_dec(cmd.params[0], 32, 32); + obj_desc->vendor = (uint16_t)mc_dec(cmd.params[1], 0, 16); + obj_desc->vendor = (uint8_t)mc_dec(cmd.params[1], 16, 8); + obj_desc->region_count = (uint8_t)mc_dec(cmd.params[1], 24, 8); + obj_desc->state = (uint32_t)mc_dec(cmd.params[1], 32, 32); + obj_desc->ver_major = (uint16_t)mc_dec(cmd.params[2], 0, 16); + obj_desc->ver_minor = (uint16_t)mc_dec(cmd.params[2], 16, 16); + obj_desc->type[0] = (char)mc_dec(cmd.params[3], 0, 8); + obj_desc->type[1] = (char)mc_dec(cmd.params[3], 8, 8); + obj_desc->type[2] = (char)mc_dec(cmd.params[3], 16, 8); + obj_desc->type[3] = (char)mc_dec(cmd.params[3], 24, 8); + obj_desc->type[4] = (char)mc_dec(cmd.params[3], 32, 8); + obj_desc->type[5] = (char)mc_dec(cmd.params[3], 40, 8); + obj_desc->type[6] = (char)mc_dec(cmd.params[3], 48, 8); + obj_desc->type[7] = (char)mc_dec(cmd.params[3], 56, 8); + obj_desc->type[8] = (char)mc_dec(cmd.params[4], 0, 8); + obj_desc->type[9] = (char)mc_dec(cmd.params[4], 8, 8); + obj_desc->type[10] = (char)mc_dec(cmd.params[4], 16, 8); + obj_desc->type[11] = (char)mc_dec(cmd.params[4], 24, 8); + obj_desc->type[12] = (char)mc_dec(cmd.params[4], 32, 8); + obj_desc->type[13] = (char)mc_dec(cmd.params[4], 40, 8); + obj_desc->type[14] = (char)mc_dec(cmd.params[4], 48, 8); + obj_desc->type[15] = (char)mc_dec(cmd.params[4], 56, 8); + obj_desc->label[0] = (char)mc_dec(cmd.params[5], 0, 8); + obj_desc->label[1] = (char)mc_dec(cmd.params[5], 8, 8); + obj_desc->label[2] = (char)mc_dec(cmd.params[5], 16, 8); + obj_desc->label[3] = (char)mc_dec(cmd.params[5], 24, 8); + obj_desc->label[4] = (char)mc_dec(cmd.params[5], 32, 8); + obj_desc->label[5] = (char)mc_dec(cmd.params[5], 40, 8); + obj_desc->label[6] = (char)mc_dec(cmd.params[5], 48, 8); + obj_desc->label[7] = (char)mc_dec(cmd.params[5], 56, 8); + obj_desc->label[8] = (char)mc_dec(cmd.params[6], 0, 8); + obj_desc->label[9] = (char)mc_dec(cmd.params[6], 8, 8); + obj_desc->label[10] = (char)mc_dec(cmd.params[6], 16, 8); + obj_desc->label[11] = (char)mc_dec(cmd.params[6], 24, 8); + obj_desc->label[12] = (char)mc_dec(cmd.params[6], 32, 8); + obj_desc->label[13] = (char)mc_dec(cmd.params[6], 40, 8); + obj_desc->label[14] = (char)mc_dec(cmd.params[6], 48, 8); + obj_desc->label[15] = (char)mc_dec(cmd.params[6], 56, 8); + + return 0; +} +EXPORT_SYMBOL(dprc_get_obj_desc); + +int dprc_set_obj_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + char *obj_type, + int obj_id, + uint8_t irq_index, + struct dprc_irq_cfg *irq_cfg) +{ + struct mc_command cmd = { 0 }; + + /* prepare command */ + cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_OBJ_IRQ, + cmd_flags, + token); + cmd.params[0] |= mc_enc(32, 8, irq_index); + cmd.params[0] |= mc_enc(0, 32, irq_cfg->val); + cmd.params[1] |= mc_enc(0, 64, irq_cfg->paddr); + cmd.params[2] |= mc_enc(0, 32, irq_cfg->user_irq_id); + cmd.params[2] |= mc_enc(32, 32, obj_id); + cmd.params[3] |= mc_enc(0, 8, obj_type[0]); + cmd.params[3] |= mc_enc(8, 8, obj_type[1]); + cmd.params[3] |= mc_enc(16, 8, obj_type[2]); + cmd.params[3] |= mc_enc(24, 8, obj_type[3]); + cmd.params[3] |= mc_enc(32, 8, obj_type[4]); + cmd.params[3] |= mc_enc(40, 8, obj_type[5]); + cmd.params[3] |= mc_enc(48, 8, obj_type[6]); + cmd.params[3] |= mc_enc(56, 8, obj_type[7]); + cmd.params[4] |= mc_enc(0, 8, obj_type[8]); + cmd.params[4] |= mc_enc(8, 8, obj_type[9]); + cmd.params[4] |= mc_enc(16, 8, obj_type[10]); + cmd.params[4] |= mc_enc(24, 8, obj_type[11]); + cmd.params[4] |= mc_enc(32, 8, obj_type[12]); + cmd.params[4] |= mc_enc(40, 8, obj_type[13]); + cmd.params[4] |= mc_enc(48, 8, obj_type[14]); + cmd.params[4] |= mc_enc(56, 8, obj_type[15]); + + /* send command to mc*/ + return mc_send_command(mc_io, &cmd); +} +EXPORT_SYMBOL(dprc_set_obj_irq); + +int dprc_get_obj_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + char *obj_type, + int obj_id, + uint8_t irq_index, + int *type, + struct dprc_irq_cfg *irq_cfg) +{ + struct mc_command cmd = { 0 }; + int err; + + /* prepare command */ + cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ_IRQ, + cmd_flags, + token); + cmd.params[0] |= mc_enc(0, 32, obj_id); + cmd.params[0] |= mc_enc(32, 8, irq_index); + cmd.params[1] |= mc_enc(0, 8, obj_type[0]); + cmd.params[1] |= mc_enc(8, 8, obj_type[1]); + cmd.params[1] |= mc_enc(16, 8, obj_type[2]); + cmd.params[1] |= mc_enc(24, 8, obj_type[3]); + cmd.params[1] |= mc_enc(32, 8, obj_type[4]); + cmd.params[1] |= mc_enc(40, 8, obj_type[5]); + cmd.params[1] |= mc_enc(48, 8, obj_type[6]); + cmd.params[1] |= mc_enc(56, 8, obj_type[7]); + cmd.params[2] |= mc_enc(0, 8, obj_type[8]); + cmd.params[2] |= mc_enc(8, 8, obj_type[9]); + cmd.params[2] |= mc_enc(16, 8, obj_type[10]); + cmd.params[2] |= mc_enc(24, 8, obj_type[11]); + cmd.params[2] |= mc_enc(32, 8, obj_type[12]); + cmd.params[2] |= mc_enc(40, 8, obj_type[13]); + cmd.params[2] |= mc_enc(48, 8, obj_type[14]); + cmd.params[2] |= mc_enc(56, 8, obj_type[15]); + + /* send command to mc*/ + err = mc_send_command(mc_io, &cmd); + if (err) + return err; + + /* retrieve response parameters */ + irq_cfg->val = (uint32_t)mc_dec(cmd.params[0], 0, 32); + irq_cfg->paddr = (uint64_t)mc_dec(cmd.params[1], 0, 64); + irq_cfg->user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); + *type = (int)mc_dec(cmd.params[2], 32, 32); + + return 0; +} +EXPORT_SYMBOL(dprc_get_obj_irq); + int dprc_get_res_count(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, char *type, int *res_count) @@ -621,7 +849,7 @@ int dprc_get_res_count(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_RES_COUNT, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[1] |= mc_enc(0, 8, type[0]); cmd.params[1] |= mc_enc(8, 8, type[1]); cmd.params[1] |= mc_enc(16, 8, type[2]); @@ -652,6 +880,7 @@ int dprc_get_res_count(struct fsl_mc_io *mc_io, EXPORT_SYMBOL(dprc_get_res_count); int dprc_get_res_ids(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, char *type, struct dprc_res_ids_range_desc *range_desc) @@ -661,7 +890,7 @@ int dprc_get_res_ids(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_RES_IDS, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(42, 7, range_desc->iter_status); cmd.params[1] |= mc_enc(0, 32, range_desc->base_id); cmd.params[1] |= mc_enc(32, 32, range_desc->last_id); @@ -696,32 +925,8 @@ int dprc_get_res_ids(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_get_res_ids); -int dprc_get_portal_paddr(struct fsl_mc_io *mc_io, - uint16_t token, - int portal_id, - uint64_t *portal_addr) -{ - struct mc_command cmd = { 0 }; - int err; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_PORTAL_PADDR, - MC_CMD_PRI_LOW, token); - cmd.params[0] |= mc_enc(0, 32, portal_id); - - /* send command to mc*/ - err = mc_send_command(mc_io, &cmd); - if (err) - return err; - - /* retrieve response parameters */ - *portal_addr = mc_dec(cmd.params[1], 0, 64); - - return 0; -} -EXPORT_SYMBOL(dprc_get_portal_paddr); - int dprc_get_obj_region(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, char *obj_type, int obj_id, @@ -733,7 +938,7 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ_REG, - MC_CMD_PRI_LOW, token); + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, obj_id); cmd.params[0] |= mc_enc(48, 8, region_index); cmd.params[3] |= mc_enc(0, 8, obj_type[0]); @@ -759,28 +964,83 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - region_desc->base_paddr = mc_dec(cmd.params[1], 0, 64); + region_desc->base_offset = mc_dec(cmd.params[1], 0, 64); region_desc->size = mc_dec(cmd.params[2], 0, 32); return 0; } EXPORT_SYMBOL(dprc_get_obj_region); +int dprc_set_obj_label(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + char *obj_type, + int obj_id, + char *label) +{ + struct mc_command cmd = { 0 }; + + /* prepare command */ + cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_OBJ_LABEL, + cmd_flags, + token); + + cmd.params[0] |= mc_enc(0, 32, obj_id); + cmd.params[1] |= mc_enc(0, 8, label[0]); + cmd.params[1] |= mc_enc(8, 8, label[1]); + cmd.params[1] |= mc_enc(16, 8, label[2]); + cmd.params[1] |= mc_enc(24, 8, label[3]); + cmd.params[1] |= mc_enc(32, 8, label[4]); + cmd.params[1] |= mc_enc(40, 8, label[5]); + cmd.params[1] |= mc_enc(48, 8, label[6]); + cmd.params[1] |= mc_enc(56, 8, label[7]); + cmd.params[2] |= mc_enc(0, 8, label[8]); + cmd.params[2] |= mc_enc(8, 8, label[9]); + cmd.params[2] |= mc_enc(16, 8, label[10]); + cmd.params[2] |= mc_enc(24, 8, label[11]); + cmd.params[2] |= mc_enc(32, 8, label[12]); + cmd.params[2] |= mc_enc(40, 8, label[13]); + cmd.params[2] |= mc_enc(48, 8, label[14]); + cmd.params[2] |= mc_enc(56, 8, label[15]); + cmd.params[3] |= mc_enc(0, 8, obj_type[0]); + cmd.params[3] |= mc_enc(8, 8, obj_type[1]); + cmd.params[3] |= mc_enc(16, 8, obj_type[2]); + cmd.params[3] |= mc_enc(24, 8, obj_type[3]); + cmd.params[3] |= mc_enc(32, 8, obj_type[4]); + cmd.params[3] |= mc_enc(40, 8, obj_type[5]); + cmd.params[3] |= mc_enc(48, 8, obj_type[6]); + cmd.params[3] |= mc_enc(56, 8, obj_type[7]); + cmd.params[4] |= mc_enc(0, 8, obj_type[8]); + cmd.params[4] |= mc_enc(8, 8, obj_type[9]); + cmd.params[4] |= mc_enc(16, 8, obj_type[10]); + cmd.params[4] |= mc_enc(24, 8, obj_type[11]); + cmd.params[4] |= mc_enc(32, 8, obj_type[12]); + cmd.params[4] |= mc_enc(40, 8, obj_type[13]); + cmd.params[4] |= mc_enc(48, 8, obj_type[14]); + cmd.params[4] |= mc_enc(56, 8, obj_type[15]); + + /* send command to mc*/ + return mc_send_command(mc_io, &cmd); +} +EXPORT_SYMBOL(dprc_set_obj_label); + int dprc_connect(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, const struct dprc_endpoint *endpoint1, - const struct dprc_endpoint *endpoint2) + const struct dprc_endpoint *endpoint2, + const struct dprc_connection_cfg *cfg) { struct mc_command cmd = { 0 }; /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_CONNECT, - MC_CMD_PRI_LOW, + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, endpoint1->id); - cmd.params[0] |= mc_enc(32, 32, endpoint1->interface_id); + cmd.params[0] |= mc_enc(32, 32, endpoint1->if_id); cmd.params[1] |= mc_enc(0, 32, endpoint2->id); - cmd.params[1] |= mc_enc(32, 32, endpoint2->interface_id); + cmd.params[1] |= mc_enc(32, 32, endpoint2->if_id); cmd.params[2] |= mc_enc(0, 8, endpoint1->type[0]); cmd.params[2] |= mc_enc(8, 8, endpoint1->type[1]); cmd.params[2] |= mc_enc(16, 8, endpoint1->type[2]); @@ -797,6 +1057,8 @@ int dprc_connect(struct fsl_mc_io *mc_io, cmd.params[3] |= mc_enc(40, 8, endpoint1->type[13]); cmd.params[3] |= mc_enc(48, 8, endpoint1->type[14]); cmd.params[3] |= mc_enc(56, 8, endpoint1->type[15]); + cmd.params[4] |= mc_enc(0, 32, cfg->max_rate); + cmd.params[4] |= mc_enc(32, 32, cfg->committed_rate); cmd.params[5] |= mc_enc(0, 8, endpoint2->type[0]); cmd.params[5] |= mc_enc(8, 8, endpoint2->type[1]); cmd.params[5] |= mc_enc(16, 8, endpoint2->type[2]); @@ -819,6 +1081,7 @@ int dprc_connect(struct fsl_mc_io *mc_io, } int dprc_disconnect(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, const struct dprc_endpoint *endpoint) { @@ -826,10 +1089,10 @@ int dprc_disconnect(struct fsl_mc_io *mc_io, /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_DISCONNECT, - MC_CMD_PRI_LOW, + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, endpoint->id); - cmd.params[0] |= mc_enc(32, 32, endpoint->interface_id); + cmd.params[0] |= mc_enc(32, 32, endpoint->if_id); cmd.params[1] |= mc_enc(0, 8, endpoint->type[0]); cmd.params[1] |= mc_enc(8, 8, endpoint->type[1]); cmd.params[1] |= mc_enc(16, 8, endpoint->type[2]); @@ -852,20 +1115,21 @@ int dprc_disconnect(struct fsl_mc_io *mc_io, } int dprc_get_connection(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, - const struct dprc_endpoint *endpoint1, - struct dprc_endpoint *endpoint2, - int *state) + const struct dprc_endpoint *endpoint1, + struct dprc_endpoint *endpoint2, + int *state) { struct mc_command cmd = { 0 }; int err; /* prepare command */ cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_CONNECTION, - MC_CMD_PRI_LOW, + cmd_flags, token); cmd.params[0] |= mc_enc(0, 32, endpoint1->id); - cmd.params[0] |= mc_enc(32, 32, endpoint1->interface_id); + cmd.params[0] |= mc_enc(32, 32, endpoint1->if_id); cmd.params[1] |= mc_enc(0, 8, endpoint1->type[0]); cmd.params[1] |= mc_enc(8, 8, endpoint1->type[1]); cmd.params[1] |= mc_enc(16, 8, endpoint1->type[2]); @@ -890,7 +1154,7 @@ int dprc_get_connection(struct fsl_mc_io *mc_io, /* retrieve response parameters */ endpoint2->id = mc_dec(cmd.params[3], 0, 32); - endpoint2->interface_id = mc_dec(cmd.params[3], 32, 32); + endpoint2->if_id = mc_dec(cmd.params[3], 32, 32); endpoint2->type[0] = mc_dec(cmd.params[4], 0, 8); endpoint2->type[1] = mc_dec(cmd.params[4], 8, 8); endpoint2->type[2] = mc_dec(cmd.params[4], 16, 8); diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index f3718a324662..9812af445bfe 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -213,14 +213,14 @@ static int get_dprc_icid(struct fsl_mc_io *mc_io, struct dprc_attributes attr; int error; - error = dprc_open(mc_io, container_id, &dprc_handle); + error = dprc_open(mc_io, 0, container_id, &dprc_handle); if (error < 0) { pr_err("dprc_open() failed: %d\n", error); return error; } memset(&attr, 0, sizeof(attr)); - error = dprc_get_attributes(mc_io, dprc_handle, &attr); + error = dprc_get_attributes(mc_io, 0, dprc_handle, &attr); if (error < 0) { pr_err("dprc_get_attributes() failed: %d\n", error); goto common_cleanup; @@ -230,11 +230,12 @@ static int get_dprc_icid(struct fsl_mc_io *mc_io, error = 0; common_cleanup: - (void)dprc_close(mc_io, dprc_handle); + (void)dprc_close(mc_io, 0, dprc_handle); return error; } -static int translate_mc_addr(u64 mc_addr, phys_addr_t *phys_addr) +static int translate_mc_addr(enum dprc_region_type mc_region_type, + u64 mc_offset, phys_addr_t *phys_addr) { int i; struct fsl_mc *mc = dev_get_drvdata(fsl_mc_bus_type.dev_root->parent); @@ -243,7 +244,7 @@ static int translate_mc_addr(u64 mc_addr, phys_addr_t *phys_addr) /* * Do identity mapping: */ - *phys_addr = mc_addr; + *phys_addr = mc_offset; return 0; } @@ -251,10 +252,11 @@ static int translate_mc_addr(u64 mc_addr, phys_addr_t *phys_addr) struct fsl_mc_addr_translation_range *range = &mc->translation_ranges[i]; - if (mc_addr >= range->start_mc_addr && - mc_addr < range->end_mc_addr) { + if (mc_region_type == range->mc_region_type && + mc_offset >= range->start_mc_offset && + mc_offset < range->end_mc_offset) { *phys_addr = range->start_phys_addr + - (mc_addr - range->start_mc_addr); + (mc_offset - range->start_mc_offset); return 0; } } @@ -270,6 +272,22 @@ static int fsl_mc_device_get_mmio_regions(struct fsl_mc_device *mc_dev, struct resource *regions; struct dprc_obj_desc *obj_desc = &mc_dev->obj_desc; struct device *parent_dev = mc_dev->dev.parent; + enum dprc_region_type mc_region_type; + + if (strcmp(obj_desc->type, "dprc") == 0 || + strcmp(obj_desc->type, "dpmcp") == 0) { + mc_region_type = DPRC_REGION_TYPE_MC_PORTAL; + } else if (strcmp(obj_desc->type, "dpio") == 0) { + mc_region_type = DPRC_REGION_TYPE_QBMAN_PORTAL; + } else { + /* + * This function should not have been called for this MC object + * type, as this object type is not supposed to have MMIO + * regions + */ + WARN_ON(true); + return -EINVAL; + } regions = kmalloc_array(obj_desc->region_count, sizeof(regions[0]), GFP_KERNEL); @@ -280,6 +298,7 @@ static int fsl_mc_device_get_mmio_regions(struct fsl_mc_device *mc_dev, struct dprc_region_desc region_desc; error = dprc_get_obj_region(mc_bus_dev->mc_io, + 0, mc_bus_dev->mc_handle, obj_desc->type, obj_desc->id, i, ®ion_desc); @@ -289,14 +308,15 @@ static int fsl_mc_device_get_mmio_regions(struct fsl_mc_device *mc_dev, goto error_cleanup_regions; } - WARN_ON(region_desc.base_paddr == 0x0); WARN_ON(region_desc.size == 0); - error = translate_mc_addr(region_desc.base_paddr, + error = translate_mc_addr(mc_region_type, + region_desc.base_offset, ®ions[i].start); if (error < 0) { dev_err(parent_dev, - "Invalid MC address: %#llx\n", - region_desc.base_paddr); + "Invalid MC offset: %#x (for %s.%d\'s region %d)\n", + region_desc.base_offset, + obj_desc->type, obj_desc->id, i); goto error_cleanup_regions; } @@ -574,11 +594,13 @@ static int get_mc_addr_translation_ranges(struct device *dev, for (i = 0; i < *num_ranges; ++i) { struct fsl_mc_addr_translation_range *range = &(*ranges)[i]; - range->start_mc_addr = of_read_number(cell, mc_addr_cells); + range->mc_region_type = of_read_number(cell, 1); + range->start_mc_offset = of_read_number(cell + 1, + mc_addr_cells - 1); cell += mc_addr_cells; range->start_phys_addr = of_read_number(cell, paddr_cells); cell += paddr_cells; - range->end_mc_addr = range->start_mc_addr + + range->end_mc_offset = range->start_mc_offset + of_read_number(cell, mc_size_cells); cell += mc_size_cells; diff --git a/drivers/staging/fsl-mc/include/dprc.h b/drivers/staging/fsl-mc/include/dprc.h index f1862a78a409..b0c081f7d1e3 100644 --- a/drivers/staging/fsl-mc/include/dprc.h +++ b/drivers/staging/fsl-mc/include/dprc.h @@ -32,6 +32,8 @@ #ifndef _FSL_DPRC_H #define _FSL_DPRC_H +#include "mc-cmd.h" + /* Data Path Resource Container API * Contains DPRC API for managing and querying DPAA resources */ @@ -55,6 +57,7 @@ struct fsl_mc_io; /** * dprc_open() - Open DPRC object for use * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @container_id: Container ID to open * @token: Returned token of DPRC object * @@ -62,11 +65,15 @@ struct fsl_mc_io; * * @warning Required before any operation on the object. */ -int dprc_open(struct fsl_mc_io *mc_io, int container_id, uint16_t *token); +int dprc_open(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + int container_id, + uint16_t *token); /** * dprc_close() - Close the control session of the object * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * * After this function is called, no further operations are @@ -74,7 +81,9 @@ int dprc_open(struct fsl_mc_io *mc_io, int container_id, uint16_t *token); * * Return: '0' on Success; Error code otherwise. */ -int dprc_close(struct fsl_mc_io *mc_io, uint16_t token); +int dprc_close(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token); /** * Container general options @@ -115,6 +124,9 @@ int dprc_close(struct fsl_mc_io *mc_io, uint16_t token); /* AIOP - Indicates that container belongs to AIOP. */ #define DPRC_CFG_OPT_AIOP 0x00000020 +/* IRQ Config - Indicates that the container allowed to configure its IRQs. */ +#define DPRC_CFG_OPT_IRQ_CFG_ALLOWED 0x00000040 + /** * struct dprc_cfg - Container configuration options * @icid: Container's ICID; if set to 'DPRC_GET_ICID_FROM_POOL', a free @@ -122,33 +134,37 @@ int dprc_close(struct fsl_mc_io *mc_io, uint16_t token); * @portal_id: Portal ID; if set to 'DPRC_GET_PORTAL_ID_FROM_POOL', a free * portal ID is allocated by the DPRC * @options: Combination of 'DPRC_CFG_OPT_' options + * @label: Object's label */ struct dprc_cfg { uint16_t icid; int portal_id; uint64_t options; + char label[16]; }; /** * dprc_create_container() - Create child container * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @cfg: Child container configuration * @child_container_id: Returned child container ID - * @child_portal_paddr: Returned base physical address of the - * child portal + * @child_portal_offset: Returned child portal offset from MC portal base * * Return: '0' on Success; Error code otherwise. */ int dprc_create_container(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, struct dprc_cfg *cfg, int *child_container_id, - uint64_t *child_portal_paddr); + uint64_t *child_portal_offset); /** * dprc_destroy_container() - Destroy child container. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @child_container_id: ID of the container to destroy * @@ -168,12 +184,14 @@ int dprc_create_container(struct fsl_mc_io *mc_io, * */ int dprc_destroy_container(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id); /** * dprc_reset_container - Reset child container. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @child_container_id: ID of the container to reset * @@ -193,23 +211,27 @@ int dprc_destroy_container(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_reset_container(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id); /* IRQ */ +/* IRQ index */ +#define DPRC_IRQ_INDEX 0 + /* Number of dprc's IRQs */ #define DPRC_NUM_OF_IRQS 1 -/* Object irq events */ +/* DPRC IRQ events */ -/* IRQ event - Indicates that a new object assigned to the container */ +/* IRQ event - Indicates that a new object added to the container */ #define DPRC_IRQ_EVENT_OBJ_ADDED 0x00000001 -/* IRQ event - Indicates that an object was unassigned from the container */ +/* IRQ event - Indicates that an object was removed from the container */ #define DPRC_IRQ_EVENT_OBJ_REMOVED 0x00000002 -/* IRQ event - Indicates that resources assigned to the container */ +/* IRQ event - Indicates that resources added to the container */ #define DPRC_IRQ_EVENT_RES_ADDED 0x00000004 -/* IRQ event - Indicates that resources unassigned from the container */ +/* IRQ event - Indicates that resources removed from the container */ #define DPRC_IRQ_EVENT_RES_REMOVED 0x00000008 /* IRQ event - Indicates that one of the descendant containers that opened by * this container is destroyed @@ -224,50 +246,57 @@ int dprc_reset_container(struct fsl_mc_io *mc_io, /* Irq event - Indicates that object is created at the container */ #define DPRC_IRQ_EVENT_OBJ_CREATED 0x00000040 +/** + * struct dprc_irq_cfg - IRQ configuration + * @paddr: Address that must be written to signal a message-based interrupt + * @val: Value to write into irq_addr address + * @user_irq_id: A user defined number associated with this IRQ + */ +struct dprc_irq_cfg { + uint64_t paddr; + uint32_t val; + int user_irq_id; +}; + /** * dprc_set_irq() - Set IRQ information for the DPRC to trigger an interrupt. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @irq_index: Identifies the interrupt index to configure - * @irq_addr: Address that must be written to - * signal a message-based interrupt - * @irq_val: Value to write into irq_addr address - * @user_irq_id: Returned a user defined number associated with this IRQ + * @irq_cfg: IRQ configuration * * Return: '0' on Success; Error code otherwise. */ int dprc_set_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, - uint64_t irq_addr, - uint32_t irq_val, - int user_irq_id); + struct dprc_irq_cfg *irq_cfg); /** * dprc_get_irq() - Get IRQ information from the DPRC. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @irq_index: The interrupt index to configure - * @type: Returned interrupt type: 0 represents message interrupt - * type (both irq_addr and irq_val are valid) - * @irq_addr: Returned address that must be written to - * signal the message-based interrupt - * @irq_val: Value to write into irq_addr address - * @user_irq_id: A user defined number associated with this IRQ + * @type: Interrupt type: 0 represents message interrupt + * type (both irq_addr and irq_val are valid) + * @irq_cfg: IRQ attributes * * Return: '0' on Success; Error code otherwise. */ int dprc_get_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, int *type, - uint64_t *irq_addr, - uint32_t *irq_val, - int *user_irq_id); + struct dprc_irq_cfg *irq_cfg); /** * dprc_set_irq_enable() - Set overall interrupt state. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @irq_index: The interrupt index to configure * @en: Interrupt state - enable = 1, disable = 0 @@ -280,6 +309,7 @@ int dprc_get_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t en); @@ -287,6 +317,7 @@ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, /** * dprc_get_irq_enable() - Get overall interrupt state. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @irq_index: The interrupt index to configure * @en: Returned interrupt state - enable = 1, disable = 0 @@ -294,6 +325,7 @@ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t *en); @@ -301,6 +333,7 @@ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, /** * dprc_set_irq_mask() - Set interrupt mask. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @irq_index: The interrupt index to configure * @mask: event mask to trigger interrupt; @@ -314,6 +347,7 @@ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t mask); @@ -321,6 +355,7 @@ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, /** * dprc_get_irq_mask() - Get interrupt mask. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @irq_index: The interrupt index to configure * @mask: Returned event mask to trigger interrupt @@ -331,6 +366,7 @@ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *mask); @@ -338,6 +374,7 @@ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, /** * dprc_get_irq_status() - Get the current status of any pending interrupts. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @irq_index: The interrupt index to configure * @status: Returned interrupts status - one bit per cause: @@ -347,6 +384,7 @@ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *status); @@ -354,6 +392,7 @@ int dprc_get_irq_status(struct fsl_mc_io *mc_io, /** * dprc_clear_irq_status() - Clear a pending interrupt's status * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @irq_index: The interrupt index to configure * @status: bits to clear (W1C) - one bit per cause: @@ -363,6 +402,7 @@ int dprc_get_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t status); @@ -394,12 +434,14 @@ struct dprc_attributes { /** * dprc_get_attributes() - Obtains container attributes * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @attributes Returned container attributes * * Return: '0' on Success; Error code otherwise. */ int dprc_get_attributes(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, struct dprc_attributes *attributes); @@ -407,6 +449,7 @@ int dprc_get_attributes(struct fsl_mc_io *mc_io, * dprc_set_res_quota() - Set allocation policy for a specific resource/object * type in a child container * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @child_container_id: ID of the child container * @type: Resource/object type @@ -428,6 +471,7 @@ int dprc_get_attributes(struct fsl_mc_io *mc_io, * @warning Only the parent container is allowed to change a child policy. */ int dprc_set_res_quota(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id, char *type, @@ -437,6 +481,7 @@ int dprc_set_res_quota(struct fsl_mc_io *mc_io, * dprc_get_res_quota() - Gets the allocation policy of a specific * resource/object type in a child container * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @child_container_id; ID of the child container * @type: resource/object type @@ -448,6 +493,7 @@ int dprc_set_res_quota(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_res_quota(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id, char *type, @@ -500,6 +546,7 @@ struct dprc_res_req { /** * dprc_assign() - Assigns objects or resource to a child container. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @container_id: ID of the child container * @res_req: Describes the type and amount of resources to @@ -529,6 +576,7 @@ struct dprc_res_req { * Return: '0' on Success; Error code otherwise. */ int dprc_assign(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int container_id, struct dprc_res_req *res_req); @@ -537,6 +585,7 @@ int dprc_assign(struct fsl_mc_io *mc_io, * dprc_unassign() - Un-assigns objects or resources from a child container * and moves them into this (parent) DPRC. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @child_container_id: ID of the child container * @res_req: Describes the type and amount of resources to un-assign from @@ -548,12 +597,14 @@ int dprc_assign(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_unassign(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int child_container_id, struct dprc_res_req *res_req); /** * dprc_get_pool_count() - Get the number of dprc's pools + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @mc_io: Pointer to MC portal's I/O object * @token: Token of DPRC object * @pool_count: Returned number of resource pools in the dprc @@ -561,12 +612,14 @@ int dprc_unassign(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_pool_count(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int *pool_count); /** * dprc_get_pool() - Get the type (string) of a certain dprc's pool * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @pool_index; Index of the pool to be queried (< pool_count) * @type: The type of the pool @@ -579,6 +632,7 @@ int dprc_get_pool_count(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_pool(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int pool_index, char *type); @@ -586,12 +640,16 @@ int dprc_get_pool(struct fsl_mc_io *mc_io, /** * dprc_get_obj_count() - Obtains the number of objects in the DPRC * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @obj_count: Number of objects assigned to the DPRC * * Return: '0' on Success; Error code otherwise. */ -int dprc_get_obj_count(struct fsl_mc_io *mc_io, uint16_t token, int *obj_count); +int dprc_get_obj_count(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int *obj_count); /* Objects Attributes Flags */ @@ -610,6 +668,7 @@ int dprc_get_obj_count(struct fsl_mc_io *mc_io, uint16_t token, int *obj_count); * @irq_count: Number of interrupts supported by the object * @region_count: Number of mappable regions supported by the object * @state: Object state: combination of DPRC_OBJ_STATE_ states + * @label: Object label */ struct dprc_obj_desc { char type[16]; @@ -620,11 +679,13 @@ struct dprc_obj_desc { uint8_t irq_count; uint8_t region_count; uint32_t state; + char label[16]; }; /** * dprc_get_obj() - Get general information on an object * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @obj_index: Index of the object to be queried (< obj_count) * @obj_desc: Returns the requested object descriptor @@ -637,14 +698,79 @@ struct dprc_obj_desc { * Return: '0' on Success; Error code otherwise. */ int dprc_get_obj(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, int obj_index, struct dprc_obj_desc *obj_desc); +/** + * dprc_get_obj_desc() - Get object descriptor. + * + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type: The type of the object to get its descriptor. + * @obj_id: The id of the object to get its descriptor + * @obj_desc: The returned descriptor to fill and return to the user + * + * Return: '0' on Success; Error code otherwise. + * + */ +int dprc_get_obj_desc(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + char *obj_type, + int obj_id, + struct dprc_obj_desc *obj_desc); + +/** + * dprc_set_obj_irq() - Set IRQ information for object to trigger an interrupt. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type: Type of the object to set its IRQ + * @obj_id: ID of the object to set its IRQ + * @irq_index: The interrupt index to configure + * @irq_cfg: IRQ configuration + * + * Return: '0' on Success; Error code otherwise. + */ +int dprc_set_obj_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + char *obj_type, + int obj_id, + uint8_t irq_index, + struct dprc_irq_cfg *irq_cfg); + +/** + * dprc_get_obj_irq() - Get IRQ information from object. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type: Type od the object to get its IRQ + * @obj_id: ID of the object to get its IRQ + * @irq_index: The interrupt index to configure + * @type: Interrupt type: 0 represents message interrupt + * type (both irq_addr and irq_val are valid) + * @irq_cfg: The returned IRQ attributes + * + * Return: '0' on Success; Error code otherwise. + */ +int dprc_get_obj_irq(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + char *obj_type, + int obj_id, + uint8_t irq_index, + int *type, + struct dprc_irq_cfg *irq_cfg); + /** * dprc_get_res_count() - Obtains the number of free resources that are assigned * to this container, by pool type * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @type: pool type * @res_count: Returned number of free resources of the given @@ -653,6 +779,7 @@ int dprc_get_obj(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_res_count(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, char *type, int *res_count); @@ -687,6 +814,7 @@ struct dprc_res_ids_range_desc { /** * dprc_get_res_ids() - Obtains IDs of free resources in the container * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @type: pool type * @range_desc: range descriptor @@ -694,37 +822,46 @@ struct dprc_res_ids_range_desc { * Return: '0' on Success; Error code otherwise. */ int dprc_get_res_ids(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, char *type, struct dprc_res_ids_range_desc *range_desc); +/* Region flags */ +/* Cacheable - Indicates that region should be mapped as cacheable */ +#define DPRC_REGION_CACHEABLE 0x00000001 + /** - * dprc_get_portal_paddr() - Get the physical address of MC portals - * @mc_io: Pointer to MC portal's I/O object - * @token: Token of DPRC object - * @portal_id: MC portal ID - * @portal_addr: The physical address of the MC portal ID - * - * Return: '0' on Success; Error code otherwise. + * enum dprc_region_type - Region type + * @DPRC_REGION_TYPE_MC_PORTAL: MC portal region + * @DPRC_REGION_TYPE_QBMAN_PORTAL: Qbman portal region */ -int dprc_get_portal_paddr(struct fsl_mc_io *mc_io, - uint16_t token, - int portal_id, - uint64_t *portal_addr); +enum dprc_region_type { + DPRC_REGION_TYPE_MC_PORTAL, + DPRC_REGION_TYPE_QBMAN_PORTAL +}; /** * struct dprc_region_desc - Mappable region descriptor - * @base_paddr: Region base physical address + * @base_offset: Region offset from region's base address. + * For DPMCP and DPRC objects, region base is offset from SoC MC portals + * base address; For DPIO, region base is offset from SoC QMan portals + * base address * @size: Region size (in bytes) + * @flags: Region attributes + * @type: Portal region type */ struct dprc_region_desc { - uint64_t base_paddr; + uint32_t base_offset; uint32_t size; + uint32_t flags; + enum dprc_region_type type; }; /** * dprc_get_obj_region() - Get region information for a specified object. * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @obj_type; Object type as returned in dprc_get_obj() * @obj_id: Unique object instance as returned in dprc_get_obj() @@ -734,64 +871,110 @@ struct dprc_region_desc { * Return: '0' on Success; Error code otherwise. */ int dprc_get_obj_region(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, char *obj_type, int obj_id, uint8_t region_index, struct dprc_region_desc *region_desc); +/** + * dprc_set_obj_label() - Set object label. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type: Object's type + * @obj_id: Object's ID + * @label: The required label. The maximum length is 16 chars. + * + * Return: '0' on Success; Error code otherwise. + */ +int dprc_set_obj_label(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + char *obj_type, + int obj_id, + char *label); + /** * struct dprc_endpoint - Endpoint description for link connect/disconnect * operations * @type: Endpoint object type: NULL terminated string * @id: Endpoint object ID - * @interface_id: Interface ID; should be set for endpoints with multiple + * @if_id: Interface ID; should be set for endpoints with multiple * interfaces ("dpsw", "dpdmux"); for others, always set to 0 */ struct dprc_endpoint { char type[16]; int id; - int interface_id; + int if_id; +}; + +/** + * struct dprc_connection_cfg - Connection configuration. + * Used for virtual connections only + * @committed_rate: Committed rate (Mbits/s) + * @max_rate: Maximum rate (Mbits/s) + */ +struct dprc_connection_cfg { + uint32_t committed_rate; + uint32_t max_rate; }; /** * dprc_connect() - Connect two endpoints to create a network link between them * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @endpoint1: Endpoint 1 configuration parameters * @endpoint2: Endpoint 2 configuration parameters + * @cfg: Connection configuration. The connection configuration is ignored for + * connections made to DPMAC objects, where rate is set according to + * MAC configuration. + * The committed rate is the guaranteed rate for the connection. + * The maximum rate is an upper limit allowed for the connection; it is + * expected to be equal or higher than the committed rate. + * When committed and maximum rates are both zero, the connection is set + * to "best effort" mode, having lower priority compared to connections + * with committed or maximum rates. * * Return: '0' on Success; Error code otherwise. */ int dprc_connect(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, const struct dprc_endpoint *endpoint1, - const struct dprc_endpoint *endpoint2); + const struct dprc_endpoint *endpoint2, + const struct dprc_connection_cfg *cfg); /** * dprc_disconnect() - Disconnect one endpoint to remove its network connection * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPRC object * @endpoint: Endpoint configuration parameters * * Return: '0' on Success; Error code otherwise. */ int dprc_disconnect(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, const struct dprc_endpoint *endpoint); /** * dprc_get_connection() - Get connected endpoint and link status if connection * exists. -* @mc_io Pointer to MC portal's I/O object -* @token Token of DPRC object -* @endpoint1 Endpoint 1 configuration parameters -* @endpoint2 Returned endpoint 2 configuration parameters +* @mc_io: Pointer to MC portal's I/O object +* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' +* @token: Token of DPRC object +* @endpoint1: Endpoint 1 configuration parameters +* @endpoint2: Returned endpoint 2 configuration parameters * @state: Returned link state: 1 - link is up, 0 - link is down * * Return: '0' on Success; -ENAVAIL if connection does not exist. */ int dprc_get_connection(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, uint16_t token, const struct dprc_endpoint *endpoint1, struct dprc_endpoint *endpoint2, diff --git a/drivers/staging/fsl-mc/include/mc-private.h b/drivers/staging/fsl-mc/include/mc-private.h index c045f49f227e..8aef55c8dbab 100644 --- a/drivers/staging/fsl-mc/include/mc-private.h +++ b/drivers/staging/fsl-mc/include/mc-private.h @@ -29,7 +29,8 @@ /** * struct fsl_mc - Private data of a "fsl,qoriq-mc" platform device * @root_mc_bus_dev: MC object device representing the root DPRC - * @addr_translation_ranges: array of bus to system address translation ranges + * @num_translation_ranges: number of entries in addr_translation_ranges + * @translation_ranges: array of bus to system address translation ranges */ struct fsl_mc { struct fsl_mc_device *root_mc_bus_dev; @@ -40,14 +41,16 @@ struct fsl_mc { /** * struct fsl_mc_addr_translation_range - bus to system address translation * range - * @start_mc_addr: Start MC address of the range being translated - * @end_mc_addr: MC address of the first byte after the range (last MC - * address of the range is end_mc_addr - 1) + * @mc_region_type: Type of MC region for the range being translated + * @start_mc_offset: Start MC offset of the range being translated + * @end_mc_offset: MC offset of the first byte after the range (last MC + * offset of the range is end_mc_offset - 1) * @start_phys_addr: system physical address corresponding to start_mc_addr */ struct fsl_mc_addr_translation_range { - uint64_t start_mc_addr; - uint64_t end_mc_addr; + enum dprc_region_type mc_region_type; + uint64_t start_mc_offset; + uint64_t end_mc_offset; phys_addr_t start_phys_addr; }; From e9bf3f206bd5e61e7908a1e81f0c254bf6c99064 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Thu, 24 Sep 2015 14:26:54 -0500 Subject: [PATCH 0968/2431] staging: fsl-mc: Moved kernel-doc comments to .c files Moved kernel-doc comments for non-inline functions from header files to .c files. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/dpbp.c | 202 +++++++++++ drivers/staging/fsl-mc/bus/dpmcp.c | 177 ++++++++++ drivers/staging/fsl-mc/bus/dpmcp.h | 177 ---------- drivers/staging/fsl-mc/bus/dpmng.c | 17 + drivers/staging/fsl-mc/bus/dprc.c | 445 +++++++++++++++++++++++++ drivers/staging/fsl-mc/include/dpbp.h | 202 ----------- drivers/staging/fsl-mc/include/dpmng.h | 17 - drivers/staging/fsl-mc/include/dprc.h | 445 ------------------------- 8 files changed, 841 insertions(+), 841 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dpbp.c b/drivers/staging/fsl-mc/bus/dpbp.c index bdc1acae0b7b..f5a2028619e2 100644 --- a/drivers/staging/fsl-mc/bus/dpbp.c +++ b/drivers/staging/fsl-mc/bus/dpbp.c @@ -34,6 +34,23 @@ #include "../include/dpbp.h" #include "../include/dpbp-cmd.h" +/** + * dpbp_open() - Open a control session for the specified object. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @dpbp_id: DPBP unique ID + * @token: Returned token; use in subsequent API calls + * + * This function can be used to open a control session for an + * already created object; an object may have been declared in + * the DPL or by calling the dpbp_create function. + * This function returns a unique authentication token, + * associated with the specific object ID and the specific MC + * portal; this token must be used in all subsequent commands for + * this specific object + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_open(struct fsl_mc_io *mc_io, uint32_t cmd_flags, int dpbp_id, @@ -59,6 +76,17 @@ int dpbp_open(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dpbp_open); +/** + * dpbp_close() - Close the control session of the object + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * + * After this function is called, no further operations are + * allowed on the object without opening a new control session. + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_close(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -74,6 +102,27 @@ int dpbp_close(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dpbp_close); +/** + * dpbp_create() - Create the DPBP object. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @cfg: Configuration structure + * @token: Returned token; use in subsequent API calls + * + * Create the DPBP object, allocate required resources and + * perform required initialization. + * + * The object can be created either by declaring it in the + * DPL file, or by calling this function. + * This function returns a unique authentication token, + * associated with the specific object ID and the specific MC + * portal; this token must be used in all subsequent calls to + * this specific object. For objects that are created using the + * DPL file, call dpbp_open function to get an authentication + * token first. + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_create(struct fsl_mc_io *mc_io, uint32_t cmd_flags, const struct dpbp_cfg *cfg, @@ -99,6 +148,14 @@ int dpbp_create(struct fsl_mc_io *mc_io, return 0; } +/** + * dpbp_destroy() - Destroy the DPBP object and release all its resources. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * + * Return: '0' on Success; error code otherwise. + */ int dpbp_destroy(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -113,6 +170,14 @@ int dpbp_destroy(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpbp_enable() - Enable the DPBP. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -128,6 +193,14 @@ int dpbp_enable(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dpbp_enable); +/** + * dpbp_disable() - Disable the DPBP. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_disable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -143,6 +216,15 @@ int dpbp_disable(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dpbp_disable); +/** + * dpbp_is_enabled() - Check if the DPBP is enabled. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @en: Returns '1' if object is enabled; '0' otherwise + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_is_enabled(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -165,6 +247,14 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io, return 0; } +/** + * dpbp_reset() - Reset the DPBP, returns the object to initial state. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_reset(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -179,6 +269,16 @@ int dpbp_reset(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpbp_set_irq() - Set IRQ information for the DPBP to trigger an interrupt. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @irq_index: Identifies the interrupt index to configure + * @irq_cfg: IRQ configuration + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_set_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -199,6 +299,18 @@ int dpbp_set_irq(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpbp_get_irq() - Get IRQ information from the DPBP. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @irq_index: The interrupt index to configure + * @type: Interrupt type: 0 represents message interrupt + * type (both irq_addr and irq_val are valid) + * @irq_cfg: IRQ attributes + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_get_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -227,6 +339,21 @@ int dpbp_get_irq(struct fsl_mc_io *mc_io, return 0; } +/** + * dpbp_set_irq_enable() - Set overall interrupt state. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @irq_index: The interrupt index to configure + * @en: Interrupt state - enable = 1, disable = 0 + * + * Allows GPP software to control when interrupts are generated. + * Each interrupt can have up to 32 causes. The enable/disable control's the + * overall interrupt state. if the interrupt is disabled no causes will cause + * an interrupt. + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -245,6 +372,16 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpbp_get_irq_enable() - Get overall interrupt state + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @irq_index: The interrupt index to configure + * @en: Returned interrupt state - enable = 1, disable = 0 + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -269,6 +406,22 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, return 0; } +/** + * dpbp_set_irq_mask() - Set interrupt mask. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @irq_index: The interrupt index to configure + * @mask: Event mask to trigger interrupt; + * each bit: + * 0 = ignore event + * 1 = consider event for asserting IRQ + * + * Every interrupt can have up to 32 causes and the interrupt model supports + * masking/unmasking each cause independently + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -287,6 +440,19 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpbp_get_irq_mask() - Get interrupt mask. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @irq_index: The interrupt index to configure + * @mask: Returned event mask to trigger interrupt + * + * Every interrupt can have up to 32 causes and the interrupt model supports + * masking/unmasking each cause independently + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -311,6 +477,19 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, return 0; } +/** + * dpbp_get_irq_status() - Get the current status of any pending interrupts. + * + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @irq_index: The interrupt index to configure + * @status: Returned interrupts status - one bit per cause: + * 0 = no interrupt pending + * 1 = interrupt pending + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -335,6 +514,19 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, return 0; } +/** + * dpbp_clear_irq_status() - Clear a pending interrupt's status + * + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @irq_index: The interrupt index to configure + * @status: Bits to clear (W1C) - one bit per cause: + * 0 = don't change + * 1 = clear status bit + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -353,6 +545,16 @@ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpbp_get_attributes - Retrieve DPBP attributes. + * + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPBP object + * @attr: Returned object's attributes + * + * Return: '0' on Success; Error code otherwise. + */ int dpbp_get_attributes(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, diff --git a/drivers/staging/fsl-mc/bus/dpmcp.c b/drivers/staging/fsl-mc/bus/dpmcp.c index ce5fd315aa40..4da164818a0f 100644 --- a/drivers/staging/fsl-mc/bus/dpmcp.c +++ b/drivers/staging/fsl-mc/bus/dpmcp.c @@ -34,6 +34,23 @@ #include "dpmcp.h" #include "dpmcp-cmd.h" +/** + * dpmcp_open() - Open a control session for the specified object. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @dpmcp_id: DPMCP unique ID + * @token: Returned token; use in subsequent API calls + * + * This function can be used to open a control session for an + * already created object; an object may have been declared in + * the DPL or by calling the dpmcp_create function. + * This function returns a unique authentication token, + * associated with the specific object ID and the specific MC + * portal; this token must be used in all subsequent commands for + * this specific object + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_open(struct fsl_mc_io *mc_io, uint32_t cmd_flags, int dpmcp_id, @@ -58,6 +75,17 @@ int dpmcp_open(struct fsl_mc_io *mc_io, return err; } +/** + * dpmcp_close() - Close the control session of the object + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * + * After this function is called, no further operations are + * allowed on the object without opening a new control session. + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_close(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -72,6 +100,27 @@ int dpmcp_close(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpmcp_create() - Create the DPMCP object. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @cfg: Configuration structure + * @token: Returned token; use in subsequent API calls + * + * Create the DPMCP object, allocate required resources and + * perform required initialization. + * + * The object can be created either by declaring it in the + * DPL file, or by calling this function. + * This function returns a unique authentication token, + * associated with the specific object ID and the specific MC + * portal; this token must be used in all subsequent calls to + * this specific object. For objects that are created using the + * DPL file, call dpmcp_open function to get an authentication + * token first. + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_create(struct fsl_mc_io *mc_io, uint32_t cmd_flags, const struct dpmcp_cfg *cfg, @@ -96,6 +145,14 @@ int dpmcp_create(struct fsl_mc_io *mc_io, return 0; } +/** + * dpmcp_destroy() - Destroy the DPMCP object and release all its resources. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * + * Return: '0' on Success; error code otherwise. + */ int dpmcp_destroy(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -110,6 +167,14 @@ int dpmcp_destroy(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpmcp_reset() - Reset the DPMCP, returns the object to initial state. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_reset(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -124,6 +189,16 @@ int dpmcp_reset(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpmcp_set_irq() - Set IRQ information for the DPMCP to trigger an interrupt. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @irq_index: Identifies the interrupt index to configure + * @irq_cfg: IRQ configuration + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_set_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -144,6 +219,18 @@ int dpmcp_set_irq(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpmcp_get_irq() - Get IRQ information from the DPMCP. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @irq_index: The interrupt index to configure + * @type: Interrupt type: 0 represents message interrupt + * type (both irq_addr and irq_val are valid) + * @irq_cfg: IRQ attributes + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_get_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -172,6 +259,21 @@ int dpmcp_get_irq(struct fsl_mc_io *mc_io, return 0; } +/** + * dpmcp_set_irq_enable() - Set overall interrupt state. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @irq_index: The interrupt index to configure + * @en: Interrupt state - enable = 1, disable = 0 + * + * Allows GPP software to control when interrupts are generated. + * Each interrupt can have up to 32 causes. The enable/disable control's the + * overall interrupt state. if the interrupt is disabled no causes will cause + * an interrupt. + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -190,6 +292,16 @@ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpmcp_get_irq_enable() - Get overall interrupt state + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @irq_index: The interrupt index to configure + * @en: Returned interrupt state - enable = 1, disable = 0 + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -214,6 +326,22 @@ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, return 0; } +/** + * dpmcp_set_irq_mask() - Set interrupt mask. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @irq_index: The interrupt index to configure + * @mask: Event mask to trigger interrupt; + * each bit: + * 0 = ignore event + * 1 = consider event for asserting IRQ + * + * Every interrupt can have up to 32 causes and the interrupt model supports + * masking/unmasking each cause independently + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -232,6 +360,19 @@ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpmcp_get_irq_mask() - Get interrupt mask. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @irq_index: The interrupt index to configure + * @mask: Returned event mask to trigger interrupt + * + * Every interrupt can have up to 32 causes and the interrupt model supports + * masking/unmasking each cause independently + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -256,6 +397,19 @@ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, return 0; } +/** + * dpmcp_get_irq_status() - Get the current status of any pending interrupts. + * + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @irq_index: The interrupt index to configure + * @status: Returned interrupts status - one bit per cause: + * 0 = no interrupt pending + * 1 = interrupt pending + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -280,6 +434,19 @@ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, return 0; } +/** + * dpmcp_clear_irq_status() - Clear a pending interrupt's status + * + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @irq_index: The interrupt index to configure + * @status: Bits to clear (W1C) - one bit per cause: + * 0 = don't change + * 1 = clear status bit + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_clear_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -298,6 +465,16 @@ int dpmcp_clear_irq_status(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dpmcp_get_attributes - Retrieve DPMCP attributes. + * + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPMCP object + * @attr: Returned object's attributes + * + * Return: '0' on Success; Error code otherwise. + */ int dpmcp_get_attributes(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, diff --git a/drivers/staging/fsl-mc/bus/dpmcp.h b/drivers/staging/fsl-mc/bus/dpmcp.h index 19dadd8246e4..6df351f0caa5 100644 --- a/drivers/staging/fsl-mc/bus/dpmcp.h +++ b/drivers/staging/fsl-mc/bus/dpmcp.h @@ -38,23 +38,6 @@ struct fsl_mc_io; -/** - * dpmcp_open() - Open a control session for the specified object. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @dpmcp_id: DPMCP unique ID - * @token: Returned token; use in subsequent API calls - * - * This function can be used to open a control session for an - * already created object; an object may have been declared in - * the DPL or by calling the dpmcp_create function. - * This function returns a unique authentication token, - * associated with the specific object ID and the specific MC - * portal; this token must be used in all subsequent commands for - * this specific object - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_open(struct fsl_mc_io *mc_io, uint32_t cmd_flags, int dpmcp_id, @@ -63,17 +46,6 @@ int dpmcp_open(struct fsl_mc_io *mc_io, /* Get portal ID from pool */ #define DPMCP_GET_PORTAL_ID_FROM_POOL (-1) -/** - * dpmcp_close() - Close the control session of the object - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * - * After this function is called, no further operations are - * allowed on the object without opening a new control session. - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_close(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); @@ -87,52 +59,15 @@ struct dpmcp_cfg { int portal_id; }; -/** - * dpmcp_create() - Create the DPMCP object. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @cfg: Configuration structure - * @token: Returned token; use in subsequent API calls - * - * Create the DPMCP object, allocate required resources and - * perform required initialization. - * - * The object can be created either by declaring it in the - * DPL file, or by calling this function. - * This function returns a unique authentication token, - * associated with the specific object ID and the specific MC - * portal; this token must be used in all subsequent calls to - * this specific object. For objects that are created using the - * DPL file, call dpmcp_open function to get an authentication - * token first. - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_create(struct fsl_mc_io *mc_io, uint32_t cmd_flags, const struct dpmcp_cfg *cfg, uint16_t *token); -/** - * dpmcp_destroy() - Destroy the DPMCP object and release all its resources. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * - * Return: '0' on Success; error code otherwise. - */ int dpmcp_destroy(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); -/** - * dpmcp_reset() - Reset the DPMCP, returns the object to initial state. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_reset(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); @@ -155,34 +90,12 @@ struct dpmcp_irq_cfg { int user_irq_id; }; -/** - * dpmcp_set_irq() - Set IRQ information for the DPMCP to trigger an interrupt. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @irq_index: Identifies the interrupt index to configure - * @irq_cfg: IRQ configuration - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_set_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, struct dpmcp_irq_cfg *irq_cfg); -/** - * dpmcp_get_irq() - Get IRQ information from the DPMCP. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @irq_index: The interrupt index to configure - * @type: Interrupt type: 0 represents message interrupt - * type (both irq_addr and irq_val are valid) - * @irq_cfg: IRQ attributes - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_get_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -190,116 +103,36 @@ int dpmcp_get_irq(struct fsl_mc_io *mc_io, int *type, struct dpmcp_irq_cfg *irq_cfg); -/** - * dpmcp_set_irq_enable() - Set overall interrupt state. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @irq_index: The interrupt index to configure - * @en: Interrupt state - enable = 1, disable = 0 - * - * Allows GPP software to control when interrupts are generated. - * Each interrupt can have up to 32 causes. The enable/disable control's the - * overall interrupt state. if the interrupt is disabled no causes will cause - * an interrupt. - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t en); -/** - * dpmcp_get_irq_enable() - Get overall interrupt state - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @irq_index: The interrupt index to configure - * @en: Returned interrupt state - enable = 1, disable = 0 - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t *en); -/** - * dpmcp_set_irq_mask() - Set interrupt mask. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @irq_index: The interrupt index to configure - * @mask: Event mask to trigger interrupt; - * each bit: - * 0 = ignore event - * 1 = consider event for asserting IRQ - * - * Every interrupt can have up to 32 causes and the interrupt model supports - * masking/unmasking each cause independently - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t mask); -/** - * dpmcp_get_irq_mask() - Get interrupt mask. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @irq_index: The interrupt index to configure - * @mask: Returned event mask to trigger interrupt - * - * Every interrupt can have up to 32 causes and the interrupt model supports - * masking/unmasking each cause independently - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *mask); -/** - * dpmcp_get_irq_status() - Get the current status of any pending interrupts. - * - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @irq_index: The interrupt index to configure - * @status: Returned interrupts status - one bit per cause: - * 0 = no interrupt pending - * 1 = interrupt pending - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *status); -/** - * dpmcp_clear_irq_status() - Clear a pending interrupt's status - * - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @irq_index: The interrupt index to configure - * @status: Bits to clear (W1C) - one bit per cause: - * 0 = don't change - * 1 = clear status bit - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_clear_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -324,16 +157,6 @@ struct dpmcp_attr { } version; }; -/** - * dpmcp_get_attributes - Retrieve DPMCP attributes. - * - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPMCP object - * @attr: Returned object's attributes - * - * Return: '0' on Success; Error code otherwise. - */ int dpmcp_get_attributes(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, diff --git a/drivers/staging/fsl-mc/bus/dpmng.c b/drivers/staging/fsl-mc/bus/dpmng.c index 1aeca05a614e..4a939b445628 100644 --- a/drivers/staging/fsl-mc/bus/dpmng.c +++ b/drivers/staging/fsl-mc/bus/dpmng.c @@ -34,6 +34,15 @@ #include "../include/dpmng.h" #include "dpmng-cmd.h" +/** + * mc_get_version() - Retrieves the Management Complex firmware + * version information + * @mc_io: Pointer to opaque I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @mc_ver_info: Returned version information structure + * + * Return: '0' on Success; Error code otherwise. + */ int mc_get_version(struct fsl_mc_io *mc_io, uint32_t cmd_flags, struct mc_version *mc_ver_info) @@ -59,6 +68,14 @@ int mc_get_version(struct fsl_mc_io *mc_io, return 0; } +/** + * dpmng_get_container_id() - Get container ID associated with a given portal. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @container_id: Requested container ID + * + * Return: '0' on Success; Error code otherwise. + */ int dpmng_get_container_id(struct fsl_mc_io *mc_io, uint32_t cmd_flags, int *container_id) diff --git a/drivers/staging/fsl-mc/bus/dprc.c b/drivers/staging/fsl-mc/bus/dprc.c index db1b6bfc5a33..94181b351f78 100644 --- a/drivers/staging/fsl-mc/bus/dprc.c +++ b/drivers/staging/fsl-mc/bus/dprc.c @@ -34,6 +34,17 @@ #include "../include/dprc.h" #include "dprc-cmd.h" +/** + * dprc_open() - Open DPRC object for use + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @container_id: Container ID to open + * @token: Returned token of DPRC object + * + * Return: '0' on Success; Error code otherwise. + * + * @warning Required before any operation on the object. + */ int dprc_open(struct fsl_mc_io *mc_io, uint32_t cmd_flags, int container_id, @@ -59,6 +70,17 @@ int dprc_open(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_open); +/** + * dprc_close() - Close the control session of the object + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * + * After this function is called, no further operations are + * allowed on the object without opening a new control session. + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_close(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token) @@ -74,6 +96,17 @@ int dprc_close(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_close); +/** + * dprc_create_container() - Create child container + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @cfg: Child container configuration + * @child_container_id: Returned child container ID + * @child_portal_offset: Returned child portal offset from MC portal base + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_create_container(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -120,6 +153,28 @@ int dprc_create_container(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_destroy_container() - Destroy child container. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @child_container_id: ID of the container to destroy + * + * This function terminates the child container, so following this call the + * child container ID becomes invalid. + * + * Notes: + * - All resources and objects of the destroyed container are returned to the + * parent container or destroyed if were created be the destroyed container. + * - This function destroy all the child containers of the specified + * container prior to destroying the container itself. + * + * warning: Only the parent container is allowed to destroy a child policy + * Container 0 can't be destroyed + * + * Return: '0' on Success; Error code otherwise. + * + */ int dprc_destroy_container(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -136,6 +191,28 @@ int dprc_destroy_container(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_reset_container - Reset child container. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @child_container_id: ID of the container to reset + * + * In case a software context crashes or becomes non-responsive, the parent + * may wish to reset its resources container before the software context is + * restarted. + * + * This routine informs all objects assigned to the child container that the + * container is being reset, so they may perform any cleanup operations that are + * needed. All objects handles that were owned by the child container shall be + * closed. + * + * Note that such request may be submitted even if the child software context + * has not crashed, but the resulting object cleanup operations will not be + * aware of that. + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_reset_container(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -152,6 +229,18 @@ int dprc_reset_container(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_get_irq() - Get IRQ information from the DPRC. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @irq_index: The interrupt index to configure + * @type: Interrupt type: 0 represents message interrupt + * type (both irq_addr and irq_val are valid) + * @irq_cfg: IRQ attributes + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -182,6 +271,16 @@ int dprc_get_irq(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_set_irq() - Set IRQ information for the DPRC to trigger an interrupt. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @irq_index: Identifies the interrupt index to configure + * @irq_cfg: IRQ configuration + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_set_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -203,6 +302,16 @@ int dprc_set_irq(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_get_irq_enable() - Get overall interrupt state. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @irq_index: The interrupt index to configure + * @en: Returned interrupt state - enable = 1, disable = 0 + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -228,6 +337,21 @@ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_set_irq_enable() - Set overall interrupt state. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @irq_index: The interrupt index to configure + * @en: Interrupt state - enable = 1, disable = 0 + * + * Allows GPP software to control when interrupts are generated. + * Each interrupt can have up to 32 causes. The enable/disable control's the + * overall interrupt state. if the interrupt is disabled no causes will cause + * an interrupt. + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -246,6 +370,19 @@ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_get_irq_mask() - Get interrupt mask. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @irq_index: The interrupt index to configure + * @mask: Returned event mask to trigger interrupt + * + * Every interrupt can have up to 32 causes and the interrupt model supports + * masking/unmasking each cause independently + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -271,6 +408,22 @@ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_set_irq_mask() - Set interrupt mask. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @irq_index: The interrupt index to configure + * @mask: event mask to trigger interrupt; + * each bit: + * 0 = ignore event + * 1 = consider event for asserting irq + * + * Every interrupt can have up to 32 causes and the interrupt model supports + * masking/unmasking each cause independently + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -289,6 +442,18 @@ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_get_irq_status() - Get the current status of any pending interrupts. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @irq_index: The interrupt index to configure + * @status: Returned interrupts status - one bit per cause: + * 0 = no interrupt pending + * 1 = interrupt pending + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -314,6 +479,18 @@ int dprc_get_irq_status(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_clear_irq_status() - Clear a pending interrupt's status + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @irq_index: The interrupt index to configure + * @status: bits to clear (W1C) - one bit per cause: + * 0 = don't change + * 1 = clear status bit + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -332,6 +509,15 @@ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_get_attributes() - Obtains container attributes + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @attributes Returned container attributes + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_attributes(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -361,6 +547,31 @@ int dprc_get_attributes(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_set_res_quota() - Set allocation policy for a specific resource/object + * type in a child container + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @child_container_id: ID of the child container + * @type: Resource/object type + * @quota: Sets the maximum number of resources of the selected type + * that the child container is allowed to allocate from its parent; + * when quota is set to -1, the policy is the same as container's + * general policy. + * + * Allocation policy determines whether or not a container may allocate + * resources from its parent. Each container has a 'global' allocation policy + * that is set when the container is created. + * + * This function sets allocation policy for a specific resource type. + * The default policy for all resource types matches the container's 'global' + * allocation policy. + * + * Return: '0' on Success; Error code otherwise. + * + * @warning Only the parent container is allowed to change a child policy. + */ int dprc_set_res_quota(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -396,6 +607,21 @@ int dprc_set_res_quota(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_get_res_quota() - Gets the allocation policy of a specific + * resource/object type in a child container + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @child_container_id; ID of the child container + * @type: resource/object type + * @quota: Returnes the maximum number of resources of the selected type + * that the child container is allowed to allocate from the parent; + * when quota is set to -1, the policy is the same as container's + * general policy. + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_res_quota(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -438,6 +664,38 @@ int dprc_get_res_quota(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_assign() - Assigns objects or resource to a child container. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @container_id: ID of the child container + * @res_req: Describes the type and amount of resources to + * assign to the given container + * + * Assignment is usually done by a parent (this DPRC) to one of its child + * containers. + * + * According to the DPRC allocation policy, the assigned resources may be taken + * (allocated) from the container's ancestors, if not enough resources are + * available in the container itself. + * + * The type of assignment depends on the dprc_res_req options, as follows: + * - DPRC_RES_REQ_OPT_EXPLICIT: indicates that assigned resources should have + * the explicit base ID specified at the id_base_align field of res_req. + * - DPRC_RES_REQ_OPT_ALIGNED: indicates that the assigned resources should be + * aligned to the value given at id_base_align field of res_req. + * - DPRC_RES_REQ_OPT_PLUGGED: Relevant only for object assignment, + * and indicates that the object must be set to the plugged state. + * + * A container may use this function with its own ID in order to change a + * object state to plugged or unplugged. + * + * If IRQ information has been set in the child DPRC, it will signal an + * interrupt following every change in its object assignment. + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_assign(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -474,6 +732,21 @@ int dprc_assign(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_unassign() - Un-assigns objects or resources from a child container + * and moves them into this (parent) DPRC. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @child_container_id: ID of the child container + * @res_req: Describes the type and amount of resources to un-assign from + * the child container + * + * Un-assignment of objects can succeed only if the object is not in the + * plugged or opened state. + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_unassign(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -511,6 +784,15 @@ int dprc_unassign(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_get_pool_count() - Get the number of dprc's pools + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @mc_io: Pointer to MC portal's I/O object + * @token: Token of DPRC object + * @pool_count: Returned number of resource pools in the dprc + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_pool_count(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -534,6 +816,21 @@ int dprc_get_pool_count(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_get_pool() - Get the type (string) of a certain dprc's pool + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @pool_index; Index of the pool to be queried (< pool_count) + * @type: The type of the pool + * + * The pool types retrieved one by one by incrementing + * pool_index up to (not including) the value of pool_count returned + * from dprc_get_pool_count(). dprc_get_pool_count() must + * be called prior to dprc_get_pool(). + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_pool(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -575,6 +872,15 @@ int dprc_get_pool(struct fsl_mc_io *mc_io, return 0; } +/** + * dprc_get_obj_count() - Obtains the number of objects in the DPRC + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_count: Number of objects assigned to the DPRC + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_obj_count(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -599,6 +905,21 @@ int dprc_get_obj_count(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_get_obj_count); +/** + * dprc_get_obj() - Get general information on an object + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_index: Index of the object to be queried (< obj_count) + * @obj_desc: Returns the requested object descriptor + * + * The object descriptors are retrieved one by one by incrementing + * obj_index up to (not including) the value of obj_count returned + * from dprc_get_obj_count(). dprc_get_obj_count() must + * be called prior to dprc_get_obj(). + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_obj(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -663,6 +984,19 @@ int dprc_get_obj(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_get_obj); +/** + * dprc_get_obj_desc() - Get object descriptor. + * + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type: The type of the object to get its descriptor. + * @obj_id: The id of the object to get its descriptor + * @obj_desc: The returned descriptor to fill and return to the user + * + * Return: '0' on Success; Error code otherwise. + * + */ int dprc_get_obj_desc(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -745,6 +1079,18 @@ int dprc_get_obj_desc(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_get_obj_desc); +/** + * dprc_set_obj_irq() - Set IRQ information for object to trigger an interrupt. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type: Type of the object to set its IRQ + * @obj_id: ID of the object to set its IRQ + * @irq_index: The interrupt index to configure + * @irq_cfg: IRQ configuration + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_set_obj_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -786,6 +1132,20 @@ int dprc_set_obj_irq(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_set_obj_irq); +/** + * dprc_get_obj_irq() - Get IRQ information from object. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type: Type od the object to get its IRQ + * @obj_id: ID of the object to get its IRQ + * @irq_index: The interrupt index to configure + * @type: Interrupt type: 0 represents message interrupt + * type (both irq_addr and irq_val are valid) + * @irq_cfg: The returned IRQ attributes + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_obj_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -836,6 +1196,18 @@ int dprc_get_obj_irq(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_get_obj_irq); +/** + * dprc_get_res_count() - Obtains the number of free resources that are assigned + * to this container, by pool type + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @type: pool type + * @res_count: Returned number of free resources of the given + * resource type that are assigned to this DPRC + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_res_count(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -879,6 +1251,16 @@ int dprc_get_res_count(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_get_res_count); +/** + * dprc_get_res_ids() - Obtains IDs of free resources in the container + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @type: pool type + * @range_desc: range descriptor + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_res_ids(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -925,6 +1307,18 @@ int dprc_get_res_ids(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_get_res_ids); +/** + * dprc_get_obj_region() - Get region information for a specified object. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type; Object type as returned in dprc_get_obj() + * @obj_id: Unique object instance as returned in dprc_get_obj() + * @region_index: The specific region to query + * @region_desc: Returns the requested region descriptor + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_get_obj_region(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -971,6 +1365,17 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_get_obj_region); +/** + * dprc_set_obj_label() - Set object label. + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @obj_type: Object's type + * @obj_id: Object's ID + * @label: The required label. The maximum length is 16 chars. + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_set_obj_label(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -1024,6 +1429,25 @@ int dprc_set_obj_label(struct fsl_mc_io *mc_io, } EXPORT_SYMBOL(dprc_set_obj_label); +/** + * dprc_connect() - Connect two endpoints to create a network link between them + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @endpoint1: Endpoint 1 configuration parameters + * @endpoint2: Endpoint 2 configuration parameters + * @cfg: Connection configuration. The connection configuration is ignored for + * connections made to DPMAC objects, where rate is set according to + * MAC configuration. + * The committed rate is the guaranteed rate for the connection. + * The maximum rate is an upper limit allowed for the connection; it is + * expected to be equal or higher than the committed rate. + * When committed and maximum rates are both zero, the connection is set + * to "best effort" mode, having lower priority compared to connections + * with committed or maximum rates. + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_connect(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -1080,6 +1504,15 @@ int dprc_connect(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** + * dprc_disconnect() - Disconnect one endpoint to remove its network connection + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPRC object + * @endpoint: Endpoint configuration parameters + * + * Return: '0' on Success; Error code otherwise. + */ int dprc_disconnect(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -1114,6 +1547,18 @@ int dprc_disconnect(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +/** +* dprc_get_connection() - Get connected endpoint and link status if connection +* exists. +* @mc_io: Pointer to MC portal's I/O object +* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' +* @token: Token of DPRC object +* @endpoint1: Endpoint 1 configuration parameters +* @endpoint2: Returned endpoint 2 configuration parameters +* @state: Returned link state: 1 - link is up, 0 - link is down +* +* Return: '0' on Success; -ENAVAIL if connection does not exist. +*/ int dprc_get_connection(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, diff --git a/drivers/staging/fsl-mc/include/dpbp.h b/drivers/staging/fsl-mc/include/dpbp.h index 4a4b5750d1c7..507720ec24be 100644 --- a/drivers/staging/fsl-mc/include/dpbp.h +++ b/drivers/staging/fsl-mc/include/dpbp.h @@ -38,39 +38,11 @@ struct fsl_mc_io; -/** - * dpbp_open() - Open a control session for the specified object. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @dpbp_id: DPBP unique ID - * @token: Returned token; use in subsequent API calls - * - * This function can be used to open a control session for an - * already created object; an object may have been declared in - * the DPL or by calling the dpbp_create function. - * This function returns a unique authentication token, - * associated with the specific object ID and the specific MC - * portal; this token must be used in all subsequent commands for - * this specific object - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_open(struct fsl_mc_io *mc_io, uint32_t cmd_flags, int dpbp_id, uint16_t *token); -/** - * dpbp_close() - Close the control session of the object - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * - * After this function is called, no further operations are - * allowed on the object without opening a new control session. - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_close(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); @@ -83,90 +55,28 @@ struct dpbp_cfg { uint32_t options; }; -/** - * dpbp_create() - Create the DPBP object. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @cfg: Configuration structure - * @token: Returned token; use in subsequent API calls - * - * Create the DPBP object, allocate required resources and - * perform required initialization. - * - * The object can be created either by declaring it in the - * DPL file, or by calling this function. - * This function returns a unique authentication token, - * associated with the specific object ID and the specific MC - * portal; this token must be used in all subsequent calls to - * this specific object. For objects that are created using the - * DPL file, call dpbp_open function to get an authentication - * token first. - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_create(struct fsl_mc_io *mc_io, uint32_t cmd_flags, const struct dpbp_cfg *cfg, uint16_t *token); -/** - * dpbp_destroy() - Destroy the DPBP object and release all its resources. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * - * Return: '0' on Success; error code otherwise. - */ int dpbp_destroy(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); -/** - * dpbp_enable() - Enable the DPBP. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); -/** - * dpbp_disable() - Disable the DPBP. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_disable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); -/** - * dpbp_is_enabled() - Check if the DPBP is enabled. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @en: Returns '1' if object is enabled; '0' otherwise - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_is_enabled(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, int *en); -/** - * dpbp_reset() - Reset the DPBP, returns the object to initial state. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_reset(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); @@ -183,34 +93,12 @@ struct dpbp_irq_cfg { int user_irq_id; }; -/** - * dpbp_set_irq() - Set IRQ information for the DPBP to trigger an interrupt. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @irq_index: Identifies the interrupt index to configure - * @irq_cfg: IRQ configuration - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_set_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, struct dpbp_irq_cfg *irq_cfg); -/** - * dpbp_get_irq() - Get IRQ information from the DPBP. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @irq_index: The interrupt index to configure - * @type: Interrupt type: 0 represents message interrupt - * type (both irq_addr and irq_val are valid) - * @irq_cfg: IRQ attributes - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_get_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -218,116 +106,36 @@ int dpbp_get_irq(struct fsl_mc_io *mc_io, int *type, struct dpbp_irq_cfg *irq_cfg); -/** - * dpbp_set_irq_enable() - Set overall interrupt state. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @irq_index: The interrupt index to configure - * @en: Interrupt state - enable = 1, disable = 0 - * - * Allows GPP software to control when interrupts are generated. - * Each interrupt can have up to 32 causes. The enable/disable control's the - * overall interrupt state. if the interrupt is disabled no causes will cause - * an interrupt. - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t en); -/** - * dpbp_get_irq_enable() - Get overall interrupt state - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @irq_index: The interrupt index to configure - * @en: Returned interrupt state - enable = 1, disable = 0 - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t *en); -/** - * dpbp_set_irq_mask() - Set interrupt mask. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @irq_index: The interrupt index to configure - * @mask: Event mask to trigger interrupt; - * each bit: - * 0 = ignore event - * 1 = consider event for asserting IRQ - * - * Every interrupt can have up to 32 causes and the interrupt model supports - * masking/unmasking each cause independently - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t mask); -/** - * dpbp_get_irq_mask() - Get interrupt mask. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @irq_index: The interrupt index to configure - * @mask: Returned event mask to trigger interrupt - * - * Every interrupt can have up to 32 causes and the interrupt model supports - * masking/unmasking each cause independently - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *mask); -/** - * dpbp_get_irq_status() - Get the current status of any pending interrupts. - * - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @irq_index: The interrupt index to configure - * @status: Returned interrupts status - one bit per cause: - * 0 = no interrupt pending - * 1 = interrupt pending - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *status); -/** - * dpbp_clear_irq_status() - Clear a pending interrupt's status - * - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @irq_index: The interrupt index to configure - * @status: Bits to clear (W1C) - one bit per cause: - * 0 = don't change - * 1 = clear status bit - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -355,16 +163,6 @@ struct dpbp_attr { uint16_t bpid; }; -/** - * dpbp_get_attributes - Retrieve DPBP attributes. - * - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPBP object - * @attr: Returned object's attributes - * - * Return: '0' on Success; Error code otherwise. - */ int dpbp_get_attributes(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, diff --git a/drivers/staging/fsl-mc/include/dpmng.h b/drivers/staging/fsl-mc/include/dpmng.h index 4a0996cf8b97..81e0f9f00c3e 100644 --- a/drivers/staging/fsl-mc/include/dpmng.h +++ b/drivers/staging/fsl-mc/include/dpmng.h @@ -58,27 +58,10 @@ struct mc_version { uint32_t revision; }; -/** - * mc_get_version() - Retrieves the Management Complex firmware - * version information - * @mc_io: Pointer to opaque I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @mc_ver_info: Returned version information structure - * - * Return: '0' on Success; Error code otherwise. - */ int mc_get_version(struct fsl_mc_io *mc_io, uint32_t cmd_flags, struct mc_version *mc_ver_info); -/** - * dpmng_get_container_id() - Get container ID associated with a given portal. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @container_id: Requested container ID - * - * Return: '0' on Success; Error code otherwise. - */ int dpmng_get_container_id(struct fsl_mc_io *mc_io, uint32_t cmd_flags, int *container_id); diff --git a/drivers/staging/fsl-mc/include/dprc.h b/drivers/staging/fsl-mc/include/dprc.h index b0c081f7d1e3..adeb8b4f1b87 100644 --- a/drivers/staging/fsl-mc/include/dprc.h +++ b/drivers/staging/fsl-mc/include/dprc.h @@ -54,33 +54,11 @@ struct fsl_mc_io; */ #define DPRC_GET_PORTAL_ID_FROM_POOL (int)(~(0)) -/** - * dprc_open() - Open DPRC object for use - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @container_id: Container ID to open - * @token: Returned token of DPRC object - * - * Return: '0' on Success; Error code otherwise. - * - * @warning Required before any operation on the object. - */ int dprc_open(struct fsl_mc_io *mc_io, uint32_t cmd_flags, int container_id, uint16_t *token); -/** - * dprc_close() - Close the control session of the object - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * - * After this function is called, no further operations are - * allowed on the object without opening a new control session. - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_close(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); @@ -143,17 +121,6 @@ struct dprc_cfg { char label[16]; }; -/** - * dprc_create_container() - Create child container - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @cfg: Child container configuration - * @child_container_id: Returned child container ID - * @child_portal_offset: Returned child portal offset from MC portal base - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_create_container(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -161,55 +128,11 @@ int dprc_create_container(struct fsl_mc_io *mc_io, int *child_container_id, uint64_t *child_portal_offset); -/** - * dprc_destroy_container() - Destroy child container. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id: ID of the container to destroy - * - * This function terminates the child container, so following this call the - * child container ID becomes invalid. - * - * Notes: - * - All resources and objects of the destroyed container are returned to the - * parent container or destroyed if were created be the destroyed container. - * - This function destroy all the child containers of the specified - * container prior to destroying the container itself. - * - * warning: Only the parent container is allowed to destroy a child policy - * Container 0 can't be destroyed - * - * Return: '0' on Success; Error code otherwise. - * - */ int dprc_destroy_container(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, int child_container_id); -/** - * dprc_reset_container - Reset child container. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id: ID of the container to reset - * - * In case a software context crashes or becomes non-responsive, the parent - * may wish to reset its resources container before the software context is - * restarted. - * - * This routine informs all objects assigned to the child container that the - * container is being reset, so they may perform any cleanup operations that are - * needed. All objects handles that were owned by the child container shall be - * closed. - * - * Note that such request may be submitted even if the child software context - * has not crashed, but the resulting object cleanup operations will not be - * aware of that. - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_reset_container(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -258,34 +181,12 @@ struct dprc_irq_cfg { int user_irq_id; }; -/** - * dprc_set_irq() - Set IRQ information for the DPRC to trigger an interrupt. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @irq_index: Identifies the interrupt index to configure - * @irq_cfg: IRQ configuration - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_set_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, struct dprc_irq_cfg *irq_cfg); -/** - * dprc_get_irq() - Get IRQ information from the DPRC. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @irq_index: The interrupt index to configure - * @type: Interrupt type: 0 represents message interrupt - * type (both irq_addr and irq_val are valid) - * @irq_cfg: IRQ attributes - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -293,114 +194,36 @@ int dprc_get_irq(struct fsl_mc_io *mc_io, int *type, struct dprc_irq_cfg *irq_cfg); -/** - * dprc_set_irq_enable() - Set overall interrupt state. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @irq_index: The interrupt index to configure - * @en: Interrupt state - enable = 1, disable = 0 - * - * Allows GPP software to control when interrupts are generated. - * Each interrupt can have up to 32 causes. The enable/disable control's the - * overall interrupt state. if the interrupt is disabled no causes will cause - * an interrupt. - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t en); -/** - * dprc_get_irq_enable() - Get overall interrupt state. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @irq_index: The interrupt index to configure - * @en: Returned interrupt state - enable = 1, disable = 0 - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint8_t *en); -/** - * dprc_set_irq_mask() - Set interrupt mask. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @irq_index: The interrupt index to configure - * @mask: event mask to trigger interrupt; - * each bit: - * 0 = ignore event - * 1 = consider event for asserting irq - * - * Every interrupt can have up to 32 causes and the interrupt model supports - * masking/unmasking each cause independently - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t mask); -/** - * dprc_get_irq_mask() - Get interrupt mask. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @irq_index: The interrupt index to configure - * @mask: Returned event mask to trigger interrupt - * - * Every interrupt can have up to 32 causes and the interrupt model supports - * masking/unmasking each cause independently - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *mask); -/** - * dprc_get_irq_status() - Get the current status of any pending interrupts. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @irq_index: The interrupt index to configure - * @status: Returned interrupts status - one bit per cause: - * 0 = no interrupt pending - * 1 = interrupt pending - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t irq_index, uint32_t *status); -/** - * dprc_clear_irq_status() - Clear a pending interrupt's status - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @irq_index: The interrupt index to configure - * @status: bits to clear (W1C) - one bit per cause: - * 0 = don't change - * 1 = clear status bit - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -431,45 +254,11 @@ struct dprc_attributes { } version; }; -/** - * dprc_get_attributes() - Obtains container attributes - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @attributes Returned container attributes - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_attributes(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, struct dprc_attributes *attributes); -/** - * dprc_set_res_quota() - Set allocation policy for a specific resource/object - * type in a child container - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id: ID of the child container - * @type: Resource/object type - * @quota: Sets the maximum number of resources of the selected type - * that the child container is allowed to allocate from its parent; - * when quota is set to -1, the policy is the same as container's - * general policy. - * - * Allocation policy determines whether or not a container may allocate - * resources from its parent. Each container has a 'global' allocation policy - * that is set when the container is created. - * - * This function sets allocation policy for a specific resource type. - * The default policy for all resource types matches the container's 'global' - * allocation policy. - * - * Return: '0' on Success; Error code otherwise. - * - * @warning Only the parent container is allowed to change a child policy. - */ int dprc_set_res_quota(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -477,21 +266,6 @@ int dprc_set_res_quota(struct fsl_mc_io *mc_io, char *type, uint16_t quota); -/** - * dprc_get_res_quota() - Gets the allocation policy of a specific - * resource/object type in a child container - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id; ID of the child container - * @type: resource/object type - * @quota: Returnes the maximum number of resources of the selected type - * that the child container is allowed to allocate from the parent; - * when quota is set to -1, the policy is the same as container's - * general policy. - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_res_quota(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -543,109 +317,29 @@ struct dprc_res_req { int id_base_align; }; -/** - * dprc_assign() - Assigns objects or resource to a child container. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @container_id: ID of the child container - * @res_req: Describes the type and amount of resources to - * assign to the given container - * - * Assignment is usually done by a parent (this DPRC) to one of its child - * containers. - * - * According to the DPRC allocation policy, the assigned resources may be taken - * (allocated) from the container's ancestors, if not enough resources are - * available in the container itself. - * - * The type of assignment depends on the dprc_res_req options, as follows: - * - DPRC_RES_REQ_OPT_EXPLICIT: indicates that assigned resources should have - * the explicit base ID specified at the id_base_align field of res_req. - * - DPRC_RES_REQ_OPT_ALIGNED: indicates that the assigned resources should be - * aligned to the value given at id_base_align field of res_req. - * - DPRC_RES_REQ_OPT_PLUGGED: Relevant only for object assignment, - * and indicates that the object must be set to the plugged state. - * - * A container may use this function with its own ID in order to change a - * object state to plugged or unplugged. - * - * If IRQ information has been set in the child DPRC, it will signal an - * interrupt following every change in its object assignment. - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_assign(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, int container_id, struct dprc_res_req *res_req); -/** - * dprc_unassign() - Un-assigns objects or resources from a child container - * and moves them into this (parent) DPRC. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id: ID of the child container - * @res_req: Describes the type and amount of resources to un-assign from - * the child container - * - * Un-assignment of objects can succeed only if the object is not in the - * plugged or opened state. - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_unassign(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, int child_container_id, struct dprc_res_req *res_req); -/** - * dprc_get_pool_count() - Get the number of dprc's pools - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @mc_io: Pointer to MC portal's I/O object - * @token: Token of DPRC object - * @pool_count: Returned number of resource pools in the dprc - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_pool_count(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, int *pool_count); -/** - * dprc_get_pool() - Get the type (string) of a certain dprc's pool - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @pool_index; Index of the pool to be queried (< pool_count) - * @type: The type of the pool - * - * The pool types retrieved one by one by incrementing - * pool_index up to (not including) the value of pool_count returned - * from dprc_get_pool_count(). dprc_get_pool_count() must - * be called prior to dprc_get_pool(). - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_pool(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, int pool_index, char *type); -/** - * dprc_get_obj_count() - Obtains the number of objects in the DPRC - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_count: Number of objects assigned to the DPRC - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_obj_count(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -682,40 +376,12 @@ struct dprc_obj_desc { char label[16]; }; -/** - * dprc_get_obj() - Get general information on an object - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_index: Index of the object to be queried (< obj_count) - * @obj_desc: Returns the requested object descriptor - * - * The object descriptors are retrieved one by one by incrementing - * obj_index up to (not including) the value of obj_count returned - * from dprc_get_obj_count(). dprc_get_obj_count() must - * be called prior to dprc_get_obj(). - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_obj(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, int obj_index, struct dprc_obj_desc *obj_desc); -/** - * dprc_get_obj_desc() - Get object descriptor. - * - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_type: The type of the object to get its descriptor. - * @obj_id: The id of the object to get its descriptor - * @obj_desc: The returned descriptor to fill and return to the user - * - * Return: '0' on Success; Error code otherwise. - * - */ int dprc_get_obj_desc(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -723,18 +389,6 @@ int dprc_get_obj_desc(struct fsl_mc_io *mc_io, int obj_id, struct dprc_obj_desc *obj_desc); -/** - * dprc_set_obj_irq() - Set IRQ information for object to trigger an interrupt. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_type: Type of the object to set its IRQ - * @obj_id: ID of the object to set its IRQ - * @irq_index: The interrupt index to configure - * @irq_cfg: IRQ configuration - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_set_obj_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -743,20 +397,6 @@ int dprc_set_obj_irq(struct fsl_mc_io *mc_io, uint8_t irq_index, struct dprc_irq_cfg *irq_cfg); -/** - * dprc_get_obj_irq() - Get IRQ information from object. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_type: Type od the object to get its IRQ - * @obj_id: ID of the object to get its IRQ - * @irq_index: The interrupt index to configure - * @type: Interrupt type: 0 represents message interrupt - * type (both irq_addr and irq_val are valid) - * @irq_cfg: The returned IRQ attributes - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_obj_irq(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -766,18 +406,6 @@ int dprc_get_obj_irq(struct fsl_mc_io *mc_io, int *type, struct dprc_irq_cfg *irq_cfg); -/** - * dprc_get_res_count() - Obtains the number of free resources that are assigned - * to this container, by pool type - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @type: pool type - * @res_count: Returned number of free resources of the given - * resource type that are assigned to this DPRC - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_res_count(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -811,16 +439,6 @@ struct dprc_res_ids_range_desc { enum dprc_iter_status iter_status; }; -/** - * dprc_get_res_ids() - Obtains IDs of free resources in the container - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @type: pool type - * @range_desc: range descriptor - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_res_ids(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -858,18 +476,6 @@ struct dprc_region_desc { enum dprc_region_type type; }; -/** - * dprc_get_obj_region() - Get region information for a specified object. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_type; Object type as returned in dprc_get_obj() - * @obj_id: Unique object instance as returned in dprc_get_obj() - * @region_index: The specific region to query - * @region_desc: Returns the requested region descriptor - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_get_obj_region(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -878,17 +484,6 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io, uint8_t region_index, struct dprc_region_desc *region_desc); -/** - * dprc_set_obj_label() - Set object label. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_type: Object's type - * @obj_id: Object's ID - * @label: The required label. The maximum length is 16 chars. - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_set_obj_label(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -921,25 +516,6 @@ struct dprc_connection_cfg { uint32_t max_rate; }; -/** - * dprc_connect() - Connect two endpoints to create a network link between them - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @endpoint1: Endpoint 1 configuration parameters - * @endpoint2: Endpoint 2 configuration parameters - * @cfg: Connection configuration. The connection configuration is ignored for - * connections made to DPMAC objects, where rate is set according to - * MAC configuration. - * The committed rate is the guaranteed rate for the connection. - * The maximum rate is an upper limit allowed for the connection; it is - * expected to be equal or higher than the committed rate. - * When committed and maximum rates are both zero, the connection is set - * to "best effort" mode, having lower priority compared to connections - * with committed or maximum rates. - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_connect(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -947,32 +523,11 @@ int dprc_connect(struct fsl_mc_io *mc_io, const struct dprc_endpoint *endpoint2, const struct dprc_connection_cfg *cfg); -/** - * dprc_disconnect() - Disconnect one endpoint to remove its network connection - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @endpoint: Endpoint configuration parameters - * - * Return: '0' on Success; Error code otherwise. - */ int dprc_disconnect(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, const struct dprc_endpoint *endpoint); -/** -* dprc_get_connection() - Get connected endpoint and link status if connection -* exists. -* @mc_io: Pointer to MC portal's I/O object -* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' -* @token: Token of DPRC object -* @endpoint1: Endpoint 1 configuration parameters -* @endpoint2: Returned endpoint 2 configuration parameters -* @state: Returned link state: 1 - link is up, 0 - link is down -* -* Return: '0' on Success; -ENAVAIL if connection does not exist. -*/ int dprc_get_connection(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, From ba72f25b2588e1ac5980c9e1bb343630d6b5b03d Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Fri, 25 Sep 2015 11:21:01 -0500 Subject: [PATCH 0969/2431] staging: fsl-mc: Fixed uintX_t CHECK checkpatch warnings Replaced all uses of uintX_t types to uX types, to be checkpatch clean. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/dpbp.c | 112 +++++------ drivers/staging/fsl-mc/bus/dpmcp.c | 98 ++++----- drivers/staging/fsl-mc/bus/dpmng.c | 4 +- drivers/staging/fsl-mc/bus/dprc-driver.c | 2 +- drivers/staging/fsl-mc/bus/dprc.c | 184 ++++++++--------- drivers/staging/fsl-mc/bus/mc-allocator.c | 4 +- drivers/staging/fsl-mc/bus/mc-bus.c | 6 +- drivers/staging/fsl-mc/bus/mc-sys.c | 6 +- drivers/staging/fsl-mc/include/dpbp.h | 108 +++++----- drivers/staging/fsl-mc/include/dpmng.h | 10 +- drivers/staging/fsl-mc/include/dprc.h | 212 ++++++++++---------- drivers/staging/fsl-mc/include/mc-cmd.h | 26 +-- drivers/staging/fsl-mc/include/mc-private.h | 6 +- drivers/staging/fsl-mc/include/mc-sys.h | 8 +- drivers/staging/fsl-mc/include/mc.h | 16 +- 15 files changed, 401 insertions(+), 401 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dpbp.c b/drivers/staging/fsl-mc/bus/dpbp.c index f5a2028619e2..2d97173f8e91 100644 --- a/drivers/staging/fsl-mc/bus/dpbp.c +++ b/drivers/staging/fsl-mc/bus/dpbp.c @@ -52,9 +52,9 @@ * Return: '0' on Success; Error code otherwise. */ int dpbp_open(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, int dpbp_id, - uint16_t *token) + u16 *token) { struct mc_command cmd = { 0 }; int err; @@ -88,8 +88,8 @@ EXPORT_SYMBOL(dpbp_open); * Return: '0' on Success; Error code otherwise. */ int dpbp_close(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -124,9 +124,9 @@ EXPORT_SYMBOL(dpbp_close); * Return: '0' on Success; Error code otherwise. */ int dpbp_create(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, const struct dpbp_cfg *cfg, - uint16_t *token) + u16 *token) { struct mc_command cmd = { 0 }; int err; @@ -157,8 +157,8 @@ int dpbp_create(struct fsl_mc_io *mc_io, * Return: '0' on Success; error code otherwise. */ int dpbp_destroy(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -179,8 +179,8 @@ int dpbp_destroy(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -202,8 +202,8 @@ EXPORT_SYMBOL(dpbp_enable); * Return: '0' on Success; Error code otherwise. */ int dpbp_disable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -226,8 +226,8 @@ EXPORT_SYMBOL(dpbp_disable); * Return: '0' on Success; Error code otherwise. */ int dpbp_is_enabled(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int *en) { struct mc_command cmd = { 0 }; @@ -256,8 +256,8 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_reset(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -280,9 +280,9 @@ int dpbp_reset(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_set_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, struct dpbp_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; @@ -312,9 +312,9 @@ int dpbp_set_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_get_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, int *type, struct dpbp_irq_cfg *irq_cfg) { @@ -332,8 +332,8 @@ int dpbp_get_irq(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - irq_cfg->val = (uint32_t)mc_dec(cmd.params[0], 0, 32); - irq_cfg->addr = (uint64_t)mc_dec(cmd.params[1], 0, 64); + irq_cfg->val = (u32)mc_dec(cmd.params[0], 0, 32); + irq_cfg->addr = (u64)mc_dec(cmd.params[1], 0, 64); irq_cfg->user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); *type = (int)mc_dec(cmd.params[2], 32, 32); return 0; @@ -355,10 +355,10 @@ int dpbp_get_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t en) + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 en) { struct mc_command cmd = { 0 }; @@ -383,10 +383,10 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t *en) + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 *en) { struct mc_command cmd = { 0 }; int err; @@ -402,7 +402,7 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *en = (uint8_t)mc_dec(cmd.params[0], 0, 8); + *en = (u8)mc_dec(cmd.params[0], 0, 8); return 0; } @@ -423,10 +423,10 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t mask) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 mask) { struct mc_command cmd = { 0 }; @@ -454,10 +454,10 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *mask) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *mask) { struct mc_command cmd = { 0 }; int err; @@ -473,7 +473,7 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *mask = (uint32_t)mc_dec(cmd.params[0], 0, 32); + *mask = (u32)mc_dec(cmd.params[0], 0, 32); return 0; } @@ -491,10 +491,10 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *status) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *status) { struct mc_command cmd = { 0 }; int err; @@ -510,7 +510,7 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *status = (uint32_t)mc_dec(cmd.params[0], 0, 32); + *status = (u32)mc_dec(cmd.params[0], 0, 32); return 0; } @@ -528,10 +528,10 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t status) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 status) { struct mc_command cmd = { 0 }; @@ -556,8 +556,8 @@ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpbp_get_attributes(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, struct dpbp_attr *attr) { struct mc_command cmd = { 0 }; @@ -573,10 +573,10 @@ int dpbp_get_attributes(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - attr->bpid = (uint16_t)mc_dec(cmd.params[0], 16, 16); + attr->bpid = (u16)mc_dec(cmd.params[0], 16, 16); attr->id = (int)mc_dec(cmd.params[0], 32, 32); - attr->version.major = (uint16_t)mc_dec(cmd.params[1], 0, 16); - attr->version.minor = (uint16_t)mc_dec(cmd.params[1], 16, 16); + attr->version.major = (u16)mc_dec(cmd.params[1], 0, 16); + attr->version.minor = (u16)mc_dec(cmd.params[1], 16, 16); return 0; } EXPORT_SYMBOL(dpbp_get_attributes); diff --git a/drivers/staging/fsl-mc/bus/dpmcp.c b/drivers/staging/fsl-mc/bus/dpmcp.c index 4da164818a0f..b0248f574619 100644 --- a/drivers/staging/fsl-mc/bus/dpmcp.c +++ b/drivers/staging/fsl-mc/bus/dpmcp.c @@ -52,9 +52,9 @@ * Return: '0' on Success; Error code otherwise. */ int dpmcp_open(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, int dpmcp_id, - uint16_t *token) + u16 *token) { struct mc_command cmd = { 0 }; int err; @@ -87,8 +87,8 @@ int dpmcp_open(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_close(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -122,9 +122,9 @@ int dpmcp_close(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_create(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, const struct dpmcp_cfg *cfg, - uint16_t *token) + u16 *token) { struct mc_command cmd = { 0 }; int err; @@ -154,8 +154,8 @@ int dpmcp_create(struct fsl_mc_io *mc_io, * Return: '0' on Success; error code otherwise. */ int dpmcp_destroy(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -176,8 +176,8 @@ int dpmcp_destroy(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_reset(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -200,9 +200,9 @@ int dpmcp_reset(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_set_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, struct dpmcp_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; @@ -232,9 +232,9 @@ int dpmcp_set_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, int *type, struct dpmcp_irq_cfg *irq_cfg) { @@ -252,8 +252,8 @@ int dpmcp_get_irq(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - irq_cfg->val = (uint32_t)mc_dec(cmd.params[0], 0, 32); - irq_cfg->paddr = (uint64_t)mc_dec(cmd.params[1], 0, 64); + irq_cfg->val = (u32)mc_dec(cmd.params[0], 0, 32); + irq_cfg->paddr = (u64)mc_dec(cmd.params[1], 0, 64); irq_cfg->user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); *type = (int)mc_dec(cmd.params[2], 32, 32); return 0; @@ -275,10 +275,10 @@ int dpmcp_get_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t en) + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 en) { struct mc_command cmd = { 0 }; @@ -303,10 +303,10 @@ int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t *en) + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 *en) { struct mc_command cmd = { 0 }; int err; @@ -322,7 +322,7 @@ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *en = (uint8_t)mc_dec(cmd.params[0], 0, 8); + *en = (u8)mc_dec(cmd.params[0], 0, 8); return 0; } @@ -343,10 +343,10 @@ int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t mask) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 mask) { struct mc_command cmd = { 0 }; @@ -374,10 +374,10 @@ int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *mask) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *mask) { struct mc_command cmd = { 0 }; int err; @@ -393,7 +393,7 @@ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *mask = (uint32_t)mc_dec(cmd.params[0], 0, 32); + *mask = (u32)mc_dec(cmd.params[0], 0, 32); return 0; } @@ -411,10 +411,10 @@ int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *status) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *status) { struct mc_command cmd = { 0 }; int err; @@ -430,7 +430,7 @@ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - *status = (uint32_t)mc_dec(cmd.params[0], 0, 32); + *status = (u32)mc_dec(cmd.params[0], 0, 32); return 0; } @@ -448,10 +448,10 @@ int dpmcp_get_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_clear_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t status) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 status) { struct mc_command cmd = { 0 }; @@ -476,8 +476,8 @@ int dpmcp_clear_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmcp_get_attributes(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, struct dpmcp_attr *attr) { struct mc_command cmd = { 0 }; @@ -494,7 +494,7 @@ int dpmcp_get_attributes(struct fsl_mc_io *mc_io, /* retrieve response parameters */ attr->id = (int)mc_dec(cmd.params[0], 32, 32); - attr->version.major = (uint16_t)mc_dec(cmd.params[1], 0, 16); - attr->version.minor = (uint16_t)mc_dec(cmd.params[1], 16, 16); + attr->version.major = (u16)mc_dec(cmd.params[1], 0, 16); + attr->version.minor = (u16)mc_dec(cmd.params[1], 16, 16); return 0; } diff --git a/drivers/staging/fsl-mc/bus/dpmng.c b/drivers/staging/fsl-mc/bus/dpmng.c index 4a939b445628..f633fcd86e51 100644 --- a/drivers/staging/fsl-mc/bus/dpmng.c +++ b/drivers/staging/fsl-mc/bus/dpmng.c @@ -44,7 +44,7 @@ * Return: '0' on Success; Error code otherwise. */ int mc_get_version(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, struct mc_version *mc_ver_info) { struct mc_command cmd = { 0 }; @@ -77,7 +77,7 @@ int mc_get_version(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dpmng_get_container_id(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, int *container_id) { struct mc_command cmd = { 0 }; diff --git a/drivers/staging/fsl-mc/bus/dprc-driver.c b/drivers/staging/fsl-mc/bus/dprc-driver.c index 7faf23b4538c..a9ead0d7f9c3 100644 --- a/drivers/staging/fsl-mc/bus/dprc-driver.c +++ b/drivers/staging/fsl-mc/bus/dprc-driver.c @@ -126,7 +126,7 @@ static void check_plugged_state_change(struct fsl_mc_device *mc_dev, struct dprc_obj_desc *obj_desc) { int error; - uint32_t plugged_flag_at_mc = + u32 plugged_flag_at_mc = (obj_desc->state & DPRC_OBJ_STATE_PLUGGED); if (plugged_flag_at_mc != diff --git a/drivers/staging/fsl-mc/bus/dprc.c b/drivers/staging/fsl-mc/bus/dprc.c index 94181b351f78..381b9a96a14b 100644 --- a/drivers/staging/fsl-mc/bus/dprc.c +++ b/drivers/staging/fsl-mc/bus/dprc.c @@ -46,9 +46,9 @@ * @warning Required before any operation on the object. */ int dprc_open(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, int container_id, - uint16_t *token) + u16 *token) { struct mc_command cmd = { 0 }; int err; @@ -82,8 +82,8 @@ EXPORT_SYMBOL(dprc_open); * Return: '0' on Success; Error code otherwise. */ int dprc_close(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token) + u32 cmd_flags, + u16 token) { struct mc_command cmd = { 0 }; @@ -108,11 +108,11 @@ EXPORT_SYMBOL(dprc_close); * Return: '0' on Success; Error code otherwise. */ int dprc_create_container(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, struct dprc_cfg *cfg, int *child_container_id, - uint64_t *child_portal_offset) + u64 *child_portal_offset) { struct mc_command cmd = { 0 }; int err; @@ -176,8 +176,8 @@ int dprc_create_container(struct fsl_mc_io *mc_io, * */ int dprc_destroy_container(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id) { struct mc_command cmd = { 0 }; @@ -214,8 +214,8 @@ int dprc_destroy_container(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_reset_container(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id) { struct mc_command cmd = { 0 }; @@ -242,9 +242,9 @@ int dprc_reset_container(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, int *type, struct dprc_irq_cfg *irq_cfg) { @@ -282,9 +282,9 @@ int dprc_get_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_set_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, struct dprc_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; @@ -313,10 +313,10 @@ int dprc_set_irq(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t *en) + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 *en) { struct mc_command cmd = { 0 }; int err; @@ -353,10 +353,10 @@ int dprc_get_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t en) + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 en) { struct mc_command cmd = { 0 }; @@ -384,10 +384,10 @@ int dprc_set_irq_enable(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *mask) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *mask) { struct mc_command cmd = { 0 }; int err; @@ -425,10 +425,10 @@ int dprc_get_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t mask) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 mask) { struct mc_command cmd = { 0 }; @@ -455,10 +455,10 @@ int dprc_set_irq_mask(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *status) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *status) { struct mc_command cmd = { 0 }; int err; @@ -492,10 +492,10 @@ int dprc_get_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t status) + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 status) { struct mc_command cmd = { 0 }; @@ -519,8 +519,8 @@ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_attributes(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, struct dprc_attributes *attr) { struct mc_command cmd = { 0 }; @@ -573,11 +573,11 @@ int dprc_get_attributes(struct fsl_mc_io *mc_io, * @warning Only the parent container is allowed to change a child policy. */ int dprc_set_res_quota(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id, char *type, - uint16_t quota) + u16 quota) { struct mc_command cmd = { 0 }; @@ -623,11 +623,11 @@ int dprc_set_res_quota(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_res_quota(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id, char *type, - uint16_t *quota) + u16 *quota) { struct mc_command cmd = { 0 }; int err; @@ -697,8 +697,8 @@ int dprc_get_res_quota(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_assign(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int container_id, struct dprc_res_req *res_req) { @@ -748,8 +748,8 @@ int dprc_assign(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_unassign(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id, struct dprc_res_req *res_req) { @@ -794,8 +794,8 @@ int dprc_unassign(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_pool_count(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int *pool_count) { struct mc_command cmd = { 0 }; @@ -832,8 +832,8 @@ int dprc_get_pool_count(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_pool(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int pool_index, char *type) { @@ -882,8 +882,8 @@ int dprc_get_pool(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_get_obj_count(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int *obj_count) { struct mc_command cmd = { 0 }; @@ -921,8 +921,8 @@ EXPORT_SYMBOL(dprc_get_obj_count); * Return: '0' on Success; Error code otherwise. */ int dprc_get_obj(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int obj_index, struct dprc_obj_desc *obj_desc) { @@ -998,8 +998,8 @@ EXPORT_SYMBOL(dprc_get_obj); * */ int dprc_get_obj_desc(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, struct dprc_obj_desc *obj_desc) @@ -1036,12 +1036,12 @@ int dprc_get_obj_desc(struct fsl_mc_io *mc_io, /* retrieve response parameters */ obj_desc->id = (int)mc_dec(cmd.params[0], 32, 32); - obj_desc->vendor = (uint16_t)mc_dec(cmd.params[1], 0, 16); - obj_desc->vendor = (uint8_t)mc_dec(cmd.params[1], 16, 8); - obj_desc->region_count = (uint8_t)mc_dec(cmd.params[1], 24, 8); - obj_desc->state = (uint32_t)mc_dec(cmd.params[1], 32, 32); - obj_desc->ver_major = (uint16_t)mc_dec(cmd.params[2], 0, 16); - obj_desc->ver_minor = (uint16_t)mc_dec(cmd.params[2], 16, 16); + obj_desc->vendor = (u16)mc_dec(cmd.params[1], 0, 16); + obj_desc->vendor = (u8)mc_dec(cmd.params[1], 16, 8); + obj_desc->region_count = (u8)mc_dec(cmd.params[1], 24, 8); + obj_desc->state = (u32)mc_dec(cmd.params[1], 32, 32); + obj_desc->ver_major = (u16)mc_dec(cmd.params[2], 0, 16); + obj_desc->ver_minor = (u16)mc_dec(cmd.params[2], 16, 16); obj_desc->type[0] = (char)mc_dec(cmd.params[3], 0, 8); obj_desc->type[1] = (char)mc_dec(cmd.params[3], 8, 8); obj_desc->type[2] = (char)mc_dec(cmd.params[3], 16, 8); @@ -1092,11 +1092,11 @@ EXPORT_SYMBOL(dprc_get_obj_desc); * Return: '0' on Success; Error code otherwise. */ int dprc_set_obj_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, - uint8_t irq_index, + u8 irq_index, struct dprc_irq_cfg *irq_cfg) { struct mc_command cmd = { 0 }; @@ -1147,11 +1147,11 @@ EXPORT_SYMBOL(dprc_set_obj_irq); * Return: '0' on Success; Error code otherwise. */ int dprc_get_obj_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, - uint8_t irq_index, + u8 irq_index, int *type, struct dprc_irq_cfg *irq_cfg) { @@ -1187,8 +1187,8 @@ int dprc_get_obj_irq(struct fsl_mc_io *mc_io, return err; /* retrieve response parameters */ - irq_cfg->val = (uint32_t)mc_dec(cmd.params[0], 0, 32); - irq_cfg->paddr = (uint64_t)mc_dec(cmd.params[1], 0, 64); + irq_cfg->val = (u32)mc_dec(cmd.params[0], 0, 32); + irq_cfg->paddr = (u64)mc_dec(cmd.params[1], 0, 64); irq_cfg->user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); *type = (int)mc_dec(cmd.params[2], 32, 32); @@ -1209,8 +1209,8 @@ EXPORT_SYMBOL(dprc_get_obj_irq); * Return: '0' on Success; Error code otherwise. */ int dprc_get_res_count(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *type, int *res_count) { @@ -1262,8 +1262,8 @@ EXPORT_SYMBOL(dprc_get_res_count); * Return: '0' on Success; Error code otherwise. */ int dprc_get_res_ids(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *type, struct dprc_res_ids_range_desc *range_desc) { @@ -1320,11 +1320,11 @@ EXPORT_SYMBOL(dprc_get_res_ids); * Return: '0' on Success; Error code otherwise. */ int dprc_get_obj_region(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, - uint8_t region_index, + u8 region_index, struct dprc_region_desc *region_desc) { struct mc_command cmd = { 0 }; @@ -1377,8 +1377,8 @@ EXPORT_SYMBOL(dprc_get_obj_region); * Return: '0' on Success; Error code otherwise. */ int dprc_set_obj_label(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, char *label) @@ -1449,8 +1449,8 @@ EXPORT_SYMBOL(dprc_set_obj_label); * Return: '0' on Success; Error code otherwise. */ int dprc_connect(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, const struct dprc_endpoint *endpoint1, const struct dprc_endpoint *endpoint2, const struct dprc_connection_cfg *cfg) @@ -1514,8 +1514,8 @@ int dprc_connect(struct fsl_mc_io *mc_io, * Return: '0' on Success; Error code otherwise. */ int dprc_disconnect(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, const struct dprc_endpoint *endpoint) { struct mc_command cmd = { 0 }; @@ -1560,8 +1560,8 @@ int dprc_disconnect(struct fsl_mc_io *mc_io, * Return: '0' on Success; -ENAVAIL if connection does not exist. */ int dprc_get_connection(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, const struct dprc_endpoint *endpoint1, struct dprc_endpoint *endpoint2, int *state) diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index 376ce8089d8a..d087b4c7537f 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -277,7 +277,7 @@ EXPORT_SYMBOL_GPL(fsl_mc_resource_free); * portal is allocated from its own MC bus. */ int __must_check fsl_mc_portal_allocate(struct fsl_mc_device *mc_dev, - uint16_t mc_io_flags, + u16 mc_io_flags, struct fsl_mc_io **new_mc_io) { struct fsl_mc_device *mc_bus_dev; @@ -363,7 +363,7 @@ EXPORT_SYMBOL_GPL(fsl_mc_portal_free); int fsl_mc_portal_reset(struct fsl_mc_io *mc_io) { int error; - uint16_t token; + u16 token; struct fsl_mc_resource *resource = mc_io->resource; struct fsl_mc_device *mc_dev = resource->data; diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 9812af445bfe..92e070237aa9 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -207,7 +207,7 @@ void fsl_mc_driver_unregister(struct fsl_mc_driver *mc_driver) EXPORT_SYMBOL_GPL(fsl_mc_driver_unregister); static int get_dprc_icid(struct fsl_mc_io *mc_io, - int container_id, uint16_t *icid) + int container_id, u16 *icid) { u16 dprc_handle; struct dprc_attributes attr; @@ -507,7 +507,7 @@ static int parse_mc_ranges(struct device *dev, int *mc_addr_cells, int *mc_size_cells, const __be32 **ranges_start, - uint8_t *num_ranges) + u8 *num_ranges) { const __be32 *prop; int range_tuple_cell_count; @@ -555,7 +555,7 @@ static int parse_mc_ranges(struct device *dev, static int get_mc_addr_translation_ranges(struct device *dev, struct fsl_mc_addr_translation_range **ranges, - uint8_t *num_ranges) + u8 *num_ranges) { int error; int paddr_cells; diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index 5737f599f0ef..b58b53fe165c 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -52,7 +52,7 @@ #define MC_CMD_COMPLETION_POLLING_MAX_SLEEP_USECS 500 #define MC_CMD_HDR_READ_CMDID(_hdr) \ - ((uint16_t)mc_dec((_hdr), MC_CMD_HDR_CMDID_O, MC_CMD_HDR_CMDID_S)) + ((u16)mc_dec((_hdr), MC_CMD_HDR_CMDID_O, MC_CMD_HDR_CMDID_S)) /** * Creates an MC I/O object @@ -69,9 +69,9 @@ */ int __must_check fsl_create_mc_io(struct device *dev, phys_addr_t mc_portal_phys_addr, - uint32_t mc_portal_size, + u32 mc_portal_size, struct fsl_mc_resource *resource, - uint32_t flags, struct fsl_mc_io **new_mc_io) + u32 flags, struct fsl_mc_io **new_mc_io) { struct fsl_mc_io *mc_io; void __iomem *mc_portal_virt_addr; diff --git a/drivers/staging/fsl-mc/include/dpbp.h b/drivers/staging/fsl-mc/include/dpbp.h index 507720ec24be..37ed951436d5 100644 --- a/drivers/staging/fsl-mc/include/dpbp.h +++ b/drivers/staging/fsl-mc/include/dpbp.h @@ -39,47 +39,47 @@ struct fsl_mc_io; int dpbp_open(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, int dpbp_id, - uint16_t *token); + u16 *token); int dpbp_close(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token); + u32 cmd_flags, + u16 token); /** * struct dpbp_cfg - Structure representing DPBP configuration * @options: place holder */ struct dpbp_cfg { - uint32_t options; + u32 options; }; int dpbp_create(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, const struct dpbp_cfg *cfg, - uint16_t *token); + u16 *token); int dpbp_destroy(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token); + u32 cmd_flags, + u16 token); int dpbp_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token); + u32 cmd_flags, + u16 token); int dpbp_disable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token); + u32 cmd_flags, + u16 token); int dpbp_is_enabled(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int *en); int dpbp_reset(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token); + u32 cmd_flags, + u16 token); /** * struct dpbp_irq_cfg - IRQ configuration @@ -88,59 +88,59 @@ int dpbp_reset(struct fsl_mc_io *mc_io, * @user_irq_id: A user defined number associated with this IRQ */ struct dpbp_irq_cfg { - uint64_t addr; - uint32_t val; + u64 addr; + u32 val; int user_irq_id; }; int dpbp_set_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, struct dpbp_irq_cfg *irq_cfg); int dpbp_get_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, int *type, struct dpbp_irq_cfg *irq_cfg); int dpbp_set_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t en); + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 en); int dpbp_get_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t *en); + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 *en); int dpbp_set_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t mask); + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 mask); int dpbp_get_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *mask); + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *mask); int dpbp_get_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *status); + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *status); int dpbp_clear_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t status); + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 status); /** * struct dpbp_attr - Structure representing DPBP attributes @@ -157,15 +157,15 @@ struct dpbp_attr { * @minor: DPBP minor version */ struct { - uint16_t major; - uint16_t minor; + u16 major; + u16 minor; } version; - uint16_t bpid; + u16 bpid; }; int dpbp_get_attributes(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, struct dpbp_attr *attr); /** @} */ diff --git a/drivers/staging/fsl-mc/include/dpmng.h b/drivers/staging/fsl-mc/include/dpmng.h index 81e0f9f00c3e..e5cfd017f9a5 100644 --- a/drivers/staging/fsl-mc/include/dpmng.h +++ b/drivers/staging/fsl-mc/include/dpmng.h @@ -53,17 +53,17 @@ struct fsl_mc_io; * and/or bug fixes that have no impact on API */ struct mc_version { - uint32_t major; - uint32_t minor; - uint32_t revision; + u32 major; + u32 minor; + u32 revision; }; int mc_get_version(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, struct mc_version *mc_ver_info); int dpmng_get_container_id(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, int *container_id); #endif /* __FSL_DPMNG_H */ diff --git a/drivers/staging/fsl-mc/include/dprc.h b/drivers/staging/fsl-mc/include/dprc.h index adeb8b4f1b87..c3152f677ff1 100644 --- a/drivers/staging/fsl-mc/include/dprc.h +++ b/drivers/staging/fsl-mc/include/dprc.h @@ -45,7 +45,7 @@ struct fsl_mc_io; * container, in case the ICID is not selected by the user and should be * allocated by the DPRC from the pool of ICIDs. */ -#define DPRC_GET_ICID_FROM_POOL (uint16_t)(~(0)) +#define DPRC_GET_ICID_FROM_POOL (u16)(~(0)) /** * Set this value as the portal_id value in dprc_cfg structure when creating a @@ -55,13 +55,13 @@ struct fsl_mc_io; #define DPRC_GET_PORTAL_ID_FROM_POOL (int)(~(0)) int dprc_open(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, + u32 cmd_flags, int container_id, - uint16_t *token); + u16 *token); int dprc_close(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token); + u32 cmd_flags, + u16 token); /** * Container general options @@ -115,27 +115,27 @@ int dprc_close(struct fsl_mc_io *mc_io, * @label: Object's label */ struct dprc_cfg { - uint16_t icid; + u16 icid; int portal_id; - uint64_t options; + u64 options; char label[16]; }; int dprc_create_container(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, struct dprc_cfg *cfg, int *child_container_id, - uint64_t *child_portal_offset); + u64 *child_portal_offset); int dprc_destroy_container(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id); int dprc_reset_container(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id); /* IRQ */ @@ -176,59 +176,59 @@ int dprc_reset_container(struct fsl_mc_io *mc_io, * @user_irq_id: A user defined number associated with this IRQ */ struct dprc_irq_cfg { - uint64_t paddr; - uint32_t val; + u64 paddr; + u32 val; int user_irq_id; }; int dprc_set_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, struct dprc_irq_cfg *irq_cfg); int dprc_get_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, + u32 cmd_flags, + u16 token, + u8 irq_index, int *type, struct dprc_irq_cfg *irq_cfg); int dprc_set_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t en); + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 en); int dprc_get_irq_enable(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint8_t *en); + u32 cmd_flags, + u16 token, + u8 irq_index, + u8 *en); int dprc_set_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t mask); + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 mask); int dprc_get_irq_mask(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *mask); + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *mask); int dprc_get_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t *status); + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 *status); int dprc_clear_irq_status(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, - uint8_t irq_index, - uint32_t status); + u32 cmd_flags, + u16 token, + u8 irq_index, + u32 status); /** * struct dprc_attributes - Container attributes @@ -240,38 +240,38 @@ int dprc_clear_irq_status(struct fsl_mc_io *mc_io, */ struct dprc_attributes { int container_id; - uint16_t icid; + u16 icid; int portal_id; - uint64_t options; + u64 options; /** * struct version - DPRC version * @major: DPRC major version * @minor: DPRC minor version */ struct { - uint16_t major; - uint16_t minor; + u16 major; + u16 minor; } version; }; int dprc_get_attributes(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, struct dprc_attributes *attributes); int dprc_set_res_quota(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id, char *type, - uint16_t quota); + u16 quota); int dprc_get_res_quota(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id, char *type, - uint16_t *quota); + u16 *quota); /* Resource request options */ @@ -312,37 +312,37 @@ int dprc_get_res_quota(struct fsl_mc_io *mc_io, */ struct dprc_res_req { char type[16]; - uint32_t num; - uint32_t options; + u32 num; + u32 options; int id_base_align; }; int dprc_assign(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int container_id, struct dprc_res_req *res_req); int dprc_unassign(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int child_container_id, struct dprc_res_req *res_req); int dprc_get_pool_count(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int *pool_count); int dprc_get_pool(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int pool_index, char *type); int dprc_get_obj_count(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int *obj_count); /* Objects Attributes Flags */ @@ -367,48 +367,48 @@ int dprc_get_obj_count(struct fsl_mc_io *mc_io, struct dprc_obj_desc { char type[16]; int id; - uint16_t vendor; - uint16_t ver_major; - uint16_t ver_minor; - uint8_t irq_count; - uint8_t region_count; - uint32_t state; + u16 vendor; + u16 ver_major; + u16 ver_minor; + u8 irq_count; + u8 region_count; + u32 state; char label[16]; }; int dprc_get_obj(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, int obj_index, struct dprc_obj_desc *obj_desc); int dprc_get_obj_desc(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, struct dprc_obj_desc *obj_desc); int dprc_set_obj_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, - uint8_t irq_index, + u8 irq_index, struct dprc_irq_cfg *irq_cfg); int dprc_get_obj_irq(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, - uint8_t irq_index, + u8 irq_index, int *type, struct dprc_irq_cfg *irq_cfg); int dprc_get_res_count(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *type, int *res_count); @@ -440,8 +440,8 @@ struct dprc_res_ids_range_desc { }; int dprc_get_res_ids(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *type, struct dprc_res_ids_range_desc *range_desc); @@ -470,23 +470,23 @@ enum dprc_region_type { * @type: Portal region type */ struct dprc_region_desc { - uint32_t base_offset; - uint32_t size; - uint32_t flags; + u32 base_offset; + u32 size; + u32 flags; enum dprc_region_type type; }; int dprc_get_obj_region(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, - uint8_t region_index, + u8 region_index, struct dprc_region_desc *region_desc); int dprc_set_obj_label(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, char *obj_type, int obj_id, char *label); @@ -512,25 +512,25 @@ struct dprc_endpoint { * @max_rate: Maximum rate (Mbits/s) */ struct dprc_connection_cfg { - uint32_t committed_rate; - uint32_t max_rate; + u32 committed_rate; + u32 max_rate; }; int dprc_connect(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, const struct dprc_endpoint *endpoint1, const struct dprc_endpoint *endpoint2, const struct dprc_connection_cfg *cfg); int dprc_disconnect(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, const struct dprc_endpoint *endpoint); int dprc_get_connection(struct fsl_mc_io *mc_io, - uint32_t cmd_flags, - uint16_t token, + u32 cmd_flags, + u16 token, const struct dprc_endpoint *endpoint1, struct dprc_endpoint *endpoint2, int *state); diff --git a/drivers/staging/fsl-mc/include/mc-cmd.h b/drivers/staging/fsl-mc/include/mc-cmd.h index af7de6efbd91..65277e3de44d 100644 --- a/drivers/staging/fsl-mc/include/mc-cmd.h +++ b/drivers/staging/fsl-mc/include/mc-cmd.h @@ -35,21 +35,21 @@ #define MC_CMD_NUM_OF_PARAMS 7 #define MAKE_UMASK64(_width) \ - ((uint64_t)((_width) < 64 ? ((uint64_t)1 << (_width)) - 1 : -1)) + ((u64)((_width) < 64 ? ((u64)1 << (_width)) - 1 : -1)) -static inline uint64_t mc_enc(int lsoffset, int width, uint64_t val) +static inline u64 mc_enc(int lsoffset, int width, u64 val) { - return (uint64_t)(((uint64_t)val & MAKE_UMASK64(width)) << lsoffset); + return (u64)(((u64)val & MAKE_UMASK64(width)) << lsoffset); } -static inline uint64_t mc_dec(uint64_t val, int lsoffset, int width) +static inline u64 mc_dec(u64 val, int lsoffset, int width) { - return (uint64_t)((val >> lsoffset) & MAKE_UMASK64(width)); + return (u64)((val >> lsoffset) & MAKE_UMASK64(width)); } struct mc_command { - uint64_t header; - uint64_t params[MC_CMD_NUM_OF_PARAMS]; + u64 header; + u64 params[MC_CMD_NUM_OF_PARAMS]; }; enum mc_cmd_status { @@ -98,10 +98,10 @@ enum mc_cmd_status { MC_CMD_HDR_STATUS_O, MC_CMD_HDR_STATUS_S)) #define MC_CMD_HDR_READ_TOKEN(_hdr) \ - ((uint16_t)mc_dec((_hdr), MC_CMD_HDR_TOKEN_O, MC_CMD_HDR_TOKEN_S)) + ((u16)mc_dec((_hdr), MC_CMD_HDR_TOKEN_O, MC_CMD_HDR_TOKEN_S)) #define MC_CMD_HDR_READ_FLAGS(_hdr) \ - ((uint32_t)mc_dec((_hdr), MC_CMD_HDR_FLAGS_O, MC_CMD_HDR_FLAGS_S)) + ((u32)mc_dec((_hdr), MC_CMD_HDR_FLAGS_O, MC_CMD_HDR_FLAGS_S)) #define MC_EXT_OP(_ext, _param, _offset, _width, _type, _arg) \ ((_ext)[_param] |= mc_enc((_offset), (_width), _arg)) @@ -112,11 +112,11 @@ enum mc_cmd_status { #define MC_RSP_OP(_cmd, _param, _offset, _width, _type, _arg) \ (_arg = (_type)mc_dec(_cmd.params[_param], (_offset), (_width))) -static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id, - uint32_t cmd_flags, - uint16_t token) +static inline u64 mc_encode_cmd_header(u16 cmd_id, + u32 cmd_flags, + u16 token) { - uint64_t hdr; + u64 hdr; hdr = mc_enc(MC_CMD_HDR_CMDID_O, MC_CMD_HDR_CMDID_S, cmd_id); hdr |= mc_enc(MC_CMD_HDR_FLAGS_O, MC_CMD_HDR_FLAGS_S, diff --git a/drivers/staging/fsl-mc/include/mc-private.h b/drivers/staging/fsl-mc/include/mc-private.h index 8aef55c8dbab..2c4cc794be7a 100644 --- a/drivers/staging/fsl-mc/include/mc-private.h +++ b/drivers/staging/fsl-mc/include/mc-private.h @@ -34,7 +34,7 @@ */ struct fsl_mc { struct fsl_mc_device *root_mc_bus_dev; - uint8_t num_translation_ranges; + u8 num_translation_ranges; struct fsl_mc_addr_translation_range *translation_ranges; }; @@ -49,8 +49,8 @@ struct fsl_mc { */ struct fsl_mc_addr_translation_range { enum dprc_region_type mc_region_type; - uint64_t start_mc_offset; - uint64_t end_mc_offset; + u64 start_mc_offset; + u64 end_mc_offset; phys_addr_t start_phys_addr; }; diff --git a/drivers/staging/fsl-mc/include/mc-sys.h b/drivers/staging/fsl-mc/include/mc-sys.h index cb3b5a296615..939b7d39b365 100644 --- a/drivers/staging/fsl-mc/include/mc-sys.h +++ b/drivers/staging/fsl-mc/include/mc-sys.h @@ -56,8 +56,8 @@ struct mc_command; */ struct fsl_mc_io { struct device *dev; - uint32_t flags; - uint32_t portal_size; + u32 flags; + u32 portal_size; phys_addr_t portal_phys_addr; void __iomem *portal_virt_addr; struct fsl_mc_resource *resource; @@ -65,9 +65,9 @@ struct fsl_mc_io { int __must_check fsl_create_mc_io(struct device *dev, phys_addr_t mc_portal_phys_addr, - uint32_t mc_portal_size, + u32 mc_portal_size, struct fsl_mc_resource *resource, - uint32_t flags, struct fsl_mc_io **new_mc_io); + u32 flags, struct fsl_mc_io **new_mc_io); void fsl_destroy_mc_io(struct fsl_mc_io *mc_io); diff --git a/drivers/staging/fsl-mc/include/mc.h b/drivers/staging/fsl-mc/include/mc.h index fa02ef0529e7..860bf264404f 100644 --- a/drivers/staging/fsl-mc/include/mc.h +++ b/drivers/staging/fsl-mc/include/mc.h @@ -59,10 +59,10 @@ struct fsl_mc_driver { * a MC object device driver. The last entry of the table has vendor set to 0x0 */ struct fsl_mc_device_match_id { - uint16_t vendor; + u16 vendor; const char obj_type[16]; - uint32_t ver_major; - uint32_t ver_minor; + u32 ver_major; + u32 ver_minor; }; /** @@ -148,10 +148,10 @@ struct fsl_mc_resource { */ struct fsl_mc_device { struct device dev; - uint64_t dma_mask; - uint16_t flags; - uint16_t icid; - uint16_t mc_handle; + u64 dma_mask; + u16 flags; + u16 icid; + u16 mc_handle; struct fsl_mc_io *mc_io; struct dprc_obj_desc obj_desc; struct resource *regions; @@ -183,7 +183,7 @@ int __must_check __fsl_mc_driver_register(struct fsl_mc_driver *fsl_mc_driver, void fsl_mc_driver_unregister(struct fsl_mc_driver *driver); int __must_check fsl_mc_portal_allocate(struct fsl_mc_device *mc_dev, - uint16_t mc_io_flags, + u16 mc_io_flags, struct fsl_mc_io **new_mc_io); void fsl_mc_portal_free(struct fsl_mc_io *mc_io); From a2e681faa50baa078c8d129e929f0e51b7c07877 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:25 +0200 Subject: [PATCH 0970/2431] staging: rtl8192e: rtl_wx: Fix BRACES warning Fix checkpatch BRACES warning. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 240d765e5cc7..18dc3da2420a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -819,13 +819,10 @@ static int _rtl92e_wx_set_retry(struct net_device *dev, err = -EINVAL; goto exit; } - if (wrqu->retry.flags & IW_RETRY_MAX) { + if (wrqu->retry.flags & IW_RETRY_MAX) priv->retry_rts = wrqu->retry.value; - - } else { + else priv->retry_data = wrqu->retry.value; - } - rtl92e_commit(dev); exit: From fc00af0cd0313f1446cf4ff9d536a2db216f8fb7 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:26 +0200 Subject: [PATCH 0971/2431] staging: rtl8192e: Fix SUSPECT_CODE_INDENT warnings Fix SUSPECT_CODE_INDENT warnings (indentation). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 10 +++++----- drivers/staging/rtl8192e/rtllib_rx.c | 8 +++----- drivers/staging/rtl8192e/rtllib_softmac.c | 6 +++--- drivers/staging/rtl8192e/rtllib_tx.c | 2 +- 6 files changed, 16 insertions(+), 18 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c b/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c index c8f25ade2535..09873655c84e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c @@ -36,7 +36,7 @@ void rtl92e_set_bandwidth(struct net_device *dev, for (eRFPath = 0; eRFPath < priv->NumTotalRFPath; eRFPath++) { if (!rtl92e_is_legal_rf_path(dev, eRFPath)) - continue; + continue; switch (Bandwidth) { case HT_CHANNEL_WIDTH_20: @@ -82,7 +82,7 @@ bool rtl92e_config_rf(struct net_device *dev) for (eRFPath = (enum rf90_radio_path)RF90_PATH_A; eRFPath < priv->NumTotalRFPath; eRFPath++) { if (!rtl92e_is_legal_rf_path(dev, eRFPath)) - continue; + continue; pPhyReg = &priv->PHYRegDef[eRFPath]; diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index a9e6fbbee206..00e60b5537dd 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -756,8 +756,8 @@ u8 rtl92e_config_rf_path(struct net_device *dev, enum rf90_radio_path eRFPath) case RF90_PATH_D: for (i = 0; i < RadioD_ArrayLength; i += 2) { if (Rtl819XRadioD_Array[i] == 0xfe) { - msleep(100); - continue; + msleep(100); + continue; } rtl92e_set_rf_reg(dev, eRFPath, Rtl819XRadioD_Array[i], bMask12Bits, diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 727c565728b1..2d20af6d9bd5 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -713,7 +713,7 @@ static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev) "TSSI_report_value = %d\n", tmp_report[k]); - if (tmp_report[k] <= 20) { + if (tmp_report[k] <= 20) { viviflag = true; break; } @@ -1497,7 +1497,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev) dm_digtable.dig_highpwr_state = DM_STA_DIG_ON; if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) - rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x10); + rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x10); else rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x43); } else { @@ -2444,9 +2444,9 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev) RegC38_TH) { if (reg_c38_State != RegC38_NonFsync_Other_AP) { - rtl92e_writeb(dev, - rOFDM0_RxDetector3, - 0x90); + rtl92e_writeb(dev, + rOFDM0_RxDetector3, + 0x90); reg_c38_State = RegC38_NonFsync_Other_AP; diff --git a/drivers/staging/rtl8192e/rtllib_rx.c b/drivers/staging/rtl8192e/rtllib_rx.c index 09f0820fb340..2d56a2e038d7 100644 --- a/drivers/staging/rtl8192e/rtllib_rx.c +++ b/drivers/staging/rtl8192e/rtllib_rx.c @@ -1200,11 +1200,9 @@ static int rtllib_rx_decrypt(struct rtllib_device *ieee, struct sk_buff *skb, if (crypt && !(fc & RTLLIB_FCTL_WEP) && rtllib_is_eapol_frame(ieee, skb, hdrlen)) { - struct eapol *eap = (struct eapol *)(skb->data + - 24); - netdev_dbg(ieee->dev, - "RX: IEEE 802.1X EAPOL frame: %s\n", - eap_get_type(eap->type)); + struct eapol *eap = (struct eapol *)(skb->data + 24); + netdev_dbg(ieee->dev, "RX: IEEE 802.1X EAPOL frame: %s\n", + eap_get_type(eap->type)); } if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep && diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c index 1503cbb3574e..4fcd0b652a2d 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c @@ -709,7 +709,7 @@ EXPORT_SYMBOL(rtllib_stop_scan); void rtllib_stop_scan_syncro(struct rtllib_device *ieee) { if (ieee->softmac_features & IEEE_SOFTMAC_SCAN) { - ieee->sync_scan_hurryup = 1; + ieee->sync_scan_hurryup = 1; } else { if (ieee->rtllib_stop_hw_scan) ieee->rtllib_stop_hw_scan(ieee->dev); @@ -2762,10 +2762,10 @@ void rtllib_disassociate(struct rtllib_device *ieee) { netif_carrier_off(ieee->dev); if (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE) - rtllib_reset_queue(ieee); + rtllib_reset_queue(ieee); if (ieee->data_hard_stop) - ieee->data_hard_stop(ieee->dev); + ieee->data_hard_stop(ieee->dev); if (IS_DOT11D_ENABLE(ieee)) Dot11d_Reset(ieee); ieee->state = RTLLIB_NOLINK; diff --git a/drivers/staging/rtl8192e/rtllib_tx.c b/drivers/staging/rtl8192e/rtllib_tx.c index b992e4612fd8..6d5e29e933ff 100644 --- a/drivers/staging/rtl8192e/rtllib_tx.c +++ b/drivers/staging/rtl8192e/rtllib_tx.c @@ -487,7 +487,7 @@ static void rtllib_query_protectionmode(struct rtllib_device *ieee, if (ieee->current_network.capability & WLAN_CAPABILITY_SHORT_PREAMBLE) tcb_desc->bUseShortPreamble = true; if (ieee->iw_mode == IW_MODE_MASTER) - goto NO_PROTECTION; + goto NO_PROTECTION; return; NO_PROTECTION: tcb_desc->bRTSEnable = false; From 4c29207a96885b82175979c723a63de05d5fb2f9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:27 +0200 Subject: [PATCH 0972/2431] staging: rtl8192e: Fix CONSTANT_COMPARISON warnings Remove yoda conditions where pointed by checkpatch. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ++-- drivers/staging/rtl8192e/rtl819x_BAProc.c | 4 ++-- drivers/staging/rtl8192e/rtllib_rx.c | 6 +++--- drivers/staging/rtl8192e/rtllib_softmac.c | 8 ++++---- drivers/staging/rtl8192e/rtllib_tx.c | 6 +++--- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index dc8419d4ec76..e8a890c1abd6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -995,8 +995,8 @@ void rtl92e_link_change(struct net_device *dev) if (ieee->state == RTLLIB_LINKED) { _rtl92e_net_update(dev); priv->ops->update_ratr_table(dev); - if ((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || - (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) + if ((ieee->pairwise_key_type == KEY_TYPE_WEP40) || + (ieee->pairwise_key_type == KEY_TYPE_WEP104)) rtl92e_enable_hw_security_config(dev); } else { rtl92e_writeb(dev, 0x173, 0); @@ -1885,7 +1885,7 @@ static void _rtl92e_translate_rx_signal_stats(struct net_device *dev, praddr = hdr->addr1; bpacket_match_bssid = - ((RTLLIB_FTYPE_CTL != type) && + ((type != RTLLIB_FTYPE_CTL) && ether_addr_equal(priv->rtllib->current_network.bssid, (fc & RTLLIB_FCTL_TODS) ? hdr->addr1 : (fc & RTLLIB_FCTL_FROMDS) ? hdr->addr2 : diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_cam.c b/drivers/staging/rtl8192e/rtl8192e/rtl_cam.c index 29dd93ac5e93..574129a72f31 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_cam.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_cam.c @@ -43,8 +43,8 @@ void rtl92e_enable_hw_security_config(struct net_device *dev) struct rtllib_device *ieee = priv->rtllib; SECR_value = SCR_TxEncEnable | SCR_RxDecEnable; - if (((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || - (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) && + if (((ieee->pairwise_key_type == KEY_TYPE_WEP40) || + (ieee->pairwise_key_type == KEY_TYPE_WEP104)) && (priv->rtllib->auth_mode != 2)) { SECR_value |= SCR_RxUseDK; SECR_value |= SCR_TxUseDK; diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 18dc3da2420a..606dbbe001e6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -938,7 +938,7 @@ static int _rtl92e_wx_set_encode_ext(struct net_device *dev, idx--; group = ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY; - if ((!group) || (IW_MODE_ADHOC == ieee->iw_mode) || + if ((!group) || (ieee->iw_mode == IW_MODE_ADHOC) || (alg == KEY_TYPE_WEP40)) { if ((ext->key_len == 13) && (alg == KEY_TYPE_WEP40)) alg = KEY_TYPE_WEP104; @@ -1073,7 +1073,7 @@ static int _rtl92e_wx_set_promisc_mode(struct net_device *dev, bPromiscuousOn = info_buf[1]; bFilterSourceStationFrame = info_buf[2]; - if (OID_RT_INTEL_PROMISCUOUS_MODE == oid) { + if (oid == OID_RT_INTEL_PROMISCUOUS_MODE) { ieee->IntelPromiscuousModeInfo.bPromiscuousOn = (bPromiscuousOn) ? (true) : (false); ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame = diff --git a/drivers/staging/rtl8192e/rtl819x_BAProc.c b/drivers/staging/rtl8192e/rtl819x_BAProc.c index 78ede4a817fc..f30d4a6c10f7 100644 --- a/drivers/staging/rtl8192e/rtl819x_BAProc.c +++ b/drivers/staging/rtl8192e/rtl819x_BAProc.c @@ -113,7 +113,7 @@ static struct sk_buff *rtllib_ADDBA(struct rtllib_device *ieee, u8 *Dst, *tag++ = type; *tag++ = pBA->DialogToken; - if (ACT_ADDBARSP == type) { + if (type == ACT_ADDBARSP) { RT_TRACE(COMP_DBG, "====>to send ADDBARSP\n"); put_unaligned_le16(StatusCode, tag); @@ -126,7 +126,7 @@ static struct sk_buff *rtllib_ADDBA(struct rtllib_device *ieee, u8 *Dst, put_unaligned_le16(pBA->BaTimeoutValue, tag); tag += 2; - if (ACT_ADDBAREQ == type) { + if (type == ACT_ADDBAREQ) { memcpy(tag, (u8 *)&(pBA->BaStartSeqCtrl), 2); tag += 2; } diff --git a/drivers/staging/rtl8192e/rtllib_rx.c b/drivers/staging/rtl8192e/rtllib_rx.c index 2d56a2e038d7..37343ec3b484 100644 --- a/drivers/staging/rtl8192e/rtllib_rx.c +++ b/drivers/staging/rtl8192e/rtllib_rx.c @@ -1530,7 +1530,7 @@ int rtllib_rx(struct rtllib_device *ieee, struct sk_buff *skb, { int ret = 0; - if ((NULL == ieee) || (NULL == skb) || (NULL == rx_stats)) { + if (!ieee || !skb || !rx_stats) { pr_info("%s: Input parameters NULL!\n", __func__); goto rx_dropped; } @@ -2554,7 +2554,7 @@ static inline int is_beacon(u16 fc) static int IsPassiveChannel(struct rtllib_device *rtllib, u8 channel) { - if (MAX_CHANNEL_NUMBER < channel) { + if (channel > MAX_CHANNEL_NUMBER) { netdev_info(rtllib->dev, "%s(): Invalid Channel\n", __func__); return 0; } @@ -2567,7 +2567,7 @@ static int IsPassiveChannel(struct rtllib_device *rtllib, u8 channel) int rtllib_legal_channel(struct rtllib_device *rtllib, u8 channel) { - if (MAX_CHANNEL_NUMBER < channel) { + if (channel > MAX_CHANNEL_NUMBER) { netdev_info(rtllib->dev, "%s(): Invalid Channel\n", __func__); return 0; } diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c index 4fcd0b652a2d..3bc4223fe347 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c @@ -858,7 +858,7 @@ static struct sk_buff *rtllib_probe_resp(struct rtllib_device *ieee, crypt = ieee->crypt_info.crypt[ieee->crypt_info.tx_keyidx]; encrypt = ieee->host_encrypt && crypt && crypt->ops && - ((0 == strcmp(crypt->ops->name, "R-WEP") || wpa_ie_len)); + ((strcmp(crypt->ops->name, "R-WEP") == 0 || wpa_ie_len)); if (ieee->pHTInfo->bCurrentHTSupport) { tmp_ht_cap_buf = (u8 *) &(ieee->pHTInfo->SelfHTCap); tmp_ht_cap_len = sizeof(ieee->pHTInfo->SelfHTCap); @@ -1180,7 +1180,7 @@ inline struct sk_buff *rtllib_association_req(struct rtllib_network *beacon, crypt = ieee->crypt_info.crypt[ieee->crypt_info.tx_keyidx]; if (crypt != NULL) encrypt = ieee->host_encrypt && crypt && crypt->ops && - ((0 == strcmp(crypt->ops->name, "R-WEP") || + ((strcmp(crypt->ops->name, "R-WEP") == 0 || wpa_ie_len)); else encrypt = 0; @@ -2229,7 +2229,7 @@ inline int rtllib_rx_assoc_resp(struct rtllib_device *ieee, struct sk_buff *skb, ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATED && (ieee->iw_mode == IW_MODE_INFRA)) { errcode = assoc_parse(ieee, skb, &aid); - if (0 == errcode) { + if (!errcode) { struct rtllib_network *network = kzalloc(sizeof(struct rtllib_network), GFP_ATOMIC); @@ -3480,7 +3480,7 @@ u8 rtllib_ap_sec_type(struct rtllib_device *ieee) crypt = ieee->crypt_info.crypt[ieee->crypt_info.tx_keyidx]; encrypt = (ieee->current_network.capability & WLAN_CAPABILITY_PRIVACY) || (ieee->host_encrypt && crypt && crypt->ops && - (0 == strcmp(crypt->ops->name, "R-WEP"))); + (strcmp(crypt->ops->name, "R-WEP") == 0)); /* simply judge */ if (encrypt && (wpa_ie_len == 0)) { diff --git a/drivers/staging/rtl8192e/rtllib_tx.c b/drivers/staging/rtl8192e/rtllib_tx.c index 6d5e29e933ff..07555243ae3f 100644 --- a/drivers/staging/rtl8192e/rtllib_tx.c +++ b/drivers/staging/rtl8192e/rtllib_tx.c @@ -635,10 +635,10 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) } if (skb->len > 282) { - if (ETH_P_IP == ether_type) { + if (ether_type == ETH_P_IP) { const struct iphdr *ip = (struct iphdr *) ((u8 *)skb->data+14); - if (IPPROTO_UDP == ip->protocol) { + if (ip->protocol == IPPROTO_UDP) { struct udphdr *udp; udp = (struct udphdr *)((u8 *)ip + @@ -651,7 +651,7 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) ieee->LPSDelayCnt = 200; } } - } else if (ETH_P_ARP == ether_type) { + } else if (ether_type == ETH_P_ARP) { netdev_info(ieee->dev, "=================>DHCP Protocol start tx ARP pkt!!\n"); bdhcp = true; From ae6d07a5d11a6ee2153521077c4760e22bef886f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:28 +0200 Subject: [PATCH 0973/2431] staging: rtl8192e: Fix FSF_MAILING_ADDRESS warnings Remove FSF address from licenses at the beginning of files. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/dot11d.c | 4 ---- drivers/staging/rtl8192e/dot11d.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8190P_def.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_hw.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_phyreg.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_pci.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_pm.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/rtl_wx.h | 4 ---- drivers/staging/rtl8192e/rtl819x_BA.h | 4 ---- drivers/staging/rtl8192e/rtl819x_BAProc.c | 4 ---- drivers/staging/rtl8192e/rtl819x_HT.h | 4 ---- drivers/staging/rtl8192e/rtl819x_HTProc.c | 4 ---- drivers/staging/rtl8192e/rtl819x_Qos.h | 4 ---- drivers/staging/rtl8192e/rtl819x_TS.h | 4 ---- drivers/staging/rtl8192e/rtl819x_TSProc.c | 4 ---- drivers/staging/rtl8192e/rtllib_debug.h | 4 ---- drivers/staging/rtl8192e/rtllib_module.c | 4 ---- drivers/staging/rtl8192e/rtllib_tx.c | 4 ---- drivers/staging/rtl8192e/rtllib_wx.c | 4 ---- 45 files changed, 180 deletions(-) diff --git a/drivers/staging/rtl8192e/dot11d.c b/drivers/staging/rtl8192e/dot11d.c index fcf9b3bcf76a..4d8fb4158f6b 100644 --- a/drivers/staging/rtl8192e/dot11d.c +++ b/drivers/staging/rtl8192e/dot11d.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/dot11d.h b/drivers/staging/rtl8192e/dot11d.h index 129ebed2e3cc..2c19054cf027 100644 --- a/drivers/staging/rtl8192e/dot11d.h +++ b/drivers/staging/rtl8192e/dot11d.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8190P_def.h b/drivers/staging/rtl8192e/rtl8192e/r8190P_def.h index dba4584c7006..34453e38ba93 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8190P_def.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8190P_def.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c b/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c index 09873655c84e..81b3cf6588d4 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h b/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h index 3e4363f41728..7873a73a2f76 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index 9ddabf59784c..6f5839f43c5c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h index 2a8b165cb8e1..31303a14c7fb 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index e8a890c1abd6..dad63c210303 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h index 6bd6b3a4fcea..6bb58193fc5c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 78fb9e905c9a..dab67c12ccc2 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h index fa760f7ac145..10aac8c17f5b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_hw.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_hw.h index c81832dcf181..d298023ef079 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_hw.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_hw.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c index 6767b5965c17..29cefb599bab 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.h index 5bd3b3530aa6..d96b87d77e7a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 00e60b5537dd..b3a10f9f01cd 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h index 96015d342009..9ddfd4e3adb3 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phyreg.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_phyreg.h index 8a1d91e05da9..50c79d3dc782 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phyreg.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phyreg.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_cam.c b/drivers/staging/rtl8192e/rtl8192e/rtl_cam.c index 574129a72f31..803c8b02a0c8 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_cam.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_cam.c @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_cam.h b/drivers/staging/rtl8192e/rtl8192e/rtl_cam.h index 9ef8b36fc6b5..aa12941dc685 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_cam.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_cam.h @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 887ba0414e7d..d4cef203213c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.h b/drivers/staging/rtl8192e/rtl8192e/rtl_core.h index cd948bb13840..1ddf42a83fb4 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.h @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 2d20af6d9bd5..a2aba409f768 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.h b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.h index 097f0dc2056d..756a0dd00d56 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c b/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c index 039ccfd41230..162e06c0883c 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.h b/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.h index 8d23aea5fb4f..d63e8b0c185b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.h @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c index 1b83e9b2e484..f172f776245d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c b/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c index 974c1ffe4560..2ff52e7dd32f 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_pci.h b/drivers/staging/rtl8192e/rtl8192e/rtl_pci.h index 6246841bde15..73d357d530d0 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_pci.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_pci.h @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_pm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_pm.c index b0268fdc100f..b2b5ada69e73 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_pm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_pm.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_pm.h b/drivers/staging/rtl8192e/rtl8192e/rtl_pm.h index cdc45f7fb339..7625e3f31ea8 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_pm.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_pm.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c index 6fb590dbe70b..9a4d1bcb881d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.h b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.h index 35fc9e2a3365..a46f4cffca23 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.h @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 606dbbe001e6..984cb9a0abae 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.h b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.h index 771284019e08..7ecf6c5cf58b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl819x_BA.h b/drivers/staging/rtl8192e/rtl819x_BA.h index 894666465152..5002b4d1fe51 100644 --- a/drivers/staging/rtl8192e/rtl819x_BA.h +++ b/drivers/staging/rtl8192e/rtl819x_BA.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl819x_BAProc.c b/drivers/staging/rtl8192e/rtl819x_BAProc.c index f30d4a6c10f7..c04a020f6d6c 100644 --- a/drivers/staging/rtl8192e/rtl819x_BAProc.c +++ b/drivers/staging/rtl8192e/rtl819x_BAProc.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl819x_HT.h b/drivers/staging/rtl8192e/rtl819x_HT.h index 51711dcdc8ef..6eb018f5feaa 100644 --- a/drivers/staging/rtl8192e/rtl819x_HT.h +++ b/drivers/staging/rtl8192e/rtl819x_HT.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl819x_HTProc.c b/drivers/staging/rtl8192e/rtl819x_HTProc.c index 555745b2a75e..dd9c0c868361 100644 --- a/drivers/staging/rtl8192e/rtl819x_HTProc.c +++ b/drivers/staging/rtl8192e/rtl819x_HTProc.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl819x_Qos.h b/drivers/staging/rtl8192e/rtl819x_Qos.h index fcc8fabbebb7..463122db6d29 100644 --- a/drivers/staging/rtl8192e/rtl819x_Qos.h +++ b/drivers/staging/rtl8192e/rtl819x_Qos.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl819x_TS.h b/drivers/staging/rtl8192e/rtl819x_TS.h index a93348c37f17..2cabf4026e77 100644 --- a/drivers/staging/rtl8192e/rtl819x_TS.h +++ b/drivers/staging/rtl8192e/rtl819x_TS.h @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtl819x_TSProc.c b/drivers/staging/rtl8192e/rtl819x_TSProc.c index 7087959443cb..2c8a526773ed 100644 --- a/drivers/staging/rtl8192e/rtl819x_TSProc.c +++ b/drivers/staging/rtl8192e/rtl819x_TSProc.c @@ -6,10 +6,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtllib_debug.h b/drivers/staging/rtl8192e/rtllib_debug.h index 17c276d71058..f1c39c3f9d26 100644 --- a/drivers/staging/rtl8192e/rtllib_debug.h +++ b/drivers/staging/rtl8192e/rtllib_debug.h @@ -12,10 +12,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA - * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c index 224dc99af131..a0d55466888d 100644 --- a/drivers/staging/rtl8192e/rtllib_module.c +++ b/drivers/staging/rtl8192e/rtllib_module.c @@ -17,10 +17,6 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., 59 - Temple Place - Suite 330, Boston, MA 02111-1307, USA. - The full GNU General Public License is included in this distribution in the file called LICENSE. diff --git a/drivers/staging/rtl8192e/rtllib_tx.c b/drivers/staging/rtl8192e/rtllib_tx.c index 07555243ae3f..58fc70ec5f2f 100644 --- a/drivers/staging/rtl8192e/rtllib_tx.c +++ b/drivers/staging/rtl8192e/rtllib_tx.c @@ -11,10 +11,6 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., 59 - Temple Place - Suite 330, Boston, MA 02111-1307, USA. - The full GNU General Public License is included in this distribution in the file called LICENSE. diff --git a/drivers/staging/rtl8192e/rtllib_wx.c b/drivers/staging/rtl8192e/rtllib_wx.c index 967ba8bc80bb..80f7a099dff1 100644 --- a/drivers/staging/rtl8192e/rtllib_wx.c +++ b/drivers/staging/rtl8192e/rtllib_wx.c @@ -17,10 +17,6 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., 59 - Temple Place - Suite 330, Boston, MA 02111-1307, USA. - The full GNU General Public License is included in this distribution in the file called LICENSE. From 68a707e41f624777a5f24ae85de8b2f7a4e74f2e Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:29 +0200 Subject: [PATCH 0974/2431] staging: rtl8192e: Remove _rtl92e_silent_reset_mesh Function is empty. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index d4cef203213c..2e3c25c37e36 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1223,10 +1223,6 @@ static enum reset_type _rtl92e_if_check_reset(struct net_device *dev) } -static void _rtl92e_silent_reset_mesh(struct net_device *dev, u8 IsPortal) -{ -} - static void _rtl92e_if_silent_reset(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -1235,9 +1231,6 @@ static void _rtl92e_if_silent_reset(struct net_device *dev) struct rtllib_device *ieee = priv->rtllib; unsigned long flag; - u8 IsPortal = 0; - - if (priv->ResetProgress == RESET_TYPE_NORESET) { RT_TRACE(COMP_RESET, "=========>Reset progress!!\n"); @@ -1347,8 +1340,6 @@ RESET_START: rtllib_start_send_beacons(ieee); netif_carrier_on(ieee->dev); - } else if (ieee->iw_mode == IW_MODE_MESH) { - _rtl92e_silent_reset_mesh(dev, IsPortal); } rtl92e_cam_restore(dev); From e7ebb316b3dc777175fd53aff7952c3097eb14ff Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:30 +0200 Subject: [PATCH 0975/2431] staging: rtl8192e: Remove _rtl92e_dm_check_pbc_gpio Function is empty. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index a2aba409f768..716a8c9cb01a 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -186,10 +186,6 @@ static void _rtl92e_dm_init_cts_to_self(struct net_device *dev); static void _rtl92e_dm_init_wa_broadcom_iot(struct net_device *dev); static void _rtl92e_dm_check_edca_turbo(struct net_device *dev); - -static void _rtl92e_dm_check_pbc_gpio(struct net_device *dev); - - static void _rtl92e_dm_check_rx_path_selection(struct net_device *dev); static void _rtl92e_dm_init_rx_path_selection(struct net_device *dev); static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev); @@ -254,7 +250,6 @@ void rtl92e_dm_watchdog(struct net_device *dev) _rtl92e_dm_check_ac_dc_power(dev); - _rtl92e_dm_check_pbc_gpio(dev); _rtl92e_dm_check_txrateandretrycount(dev); _rtl92e_dm_check_edca_turbo(dev); @@ -1834,10 +1829,6 @@ static void _rtl92e_dm_init_wa_broadcom_iot(struct net_device *dev) pHTInfo->WAIotTH = WAIotTHVal; } -static void _rtl92e_dm_check_pbc_gpio(struct net_device *dev) -{ -} - static void _rtl92e_dm_check_rf_ctrl_gpio(void *data) { struct r8192_priv *priv = container_of_dwork_rsl(data, From fcf481dbbd80e1206804a0fae3fd5c1debebe11c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:31 +0200 Subject: [PATCH 0976/2431] staging: rtl8192e: Remove extra braces Remove extra braces in _rtl92e_dm_check_tx_power_tracking_thermal. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 716a8c9cb01a..c5068ddf2d07 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -1022,12 +1022,10 @@ static void _rtl92e_dm_check_tx_power_tracking_thermal(struct net_device *dev) } if (!TM_Trigger) { - { rtl92e_set_rf_reg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); rtl92e_set_rf_reg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); rtl92e_set_rf_reg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); rtl92e_set_rf_reg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); - } TM_Trigger = 1; return; } From 77b6c42e0278decff0c98999fb835f36048415ab Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:32 +0200 Subject: [PATCH 0977/2431] staging: rtl8192e: Simplify _rtl92e_calculate_bit_shift Use ffs instead of iteration. Behaviour of function doesn't change. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index b3a10f9f01cd..0b407feb5407 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c @@ -13,6 +13,7 @@ * wlanfae ******************************************************************************/ +#include #include "rtl_core.h" #include "r8192E_hw.h" #include "r8192E_phyreg.h" @@ -50,13 +51,9 @@ static void _rtl92e_phy_rf_fw_write(struct net_device *dev, static u32 _rtl92e_calculate_bit_shift(u32 dwBitMask) { - u32 i; - - for (i = 0; i <= 31; i++) { - if (((dwBitMask >> i) & 0x1) == 1) - break; - } - return i; + if (!dwBitMask) + return 32; + return ffs(dwBitMask) - 1; } u8 rtl92e_is_legal_rf_path(struct net_device *dev, u32 eRFPath) From 0588da57c4b3afe99a70f5452d5e017e3d5e0d16 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:33 +0200 Subject: [PATCH 0978/2431] staging: rtl8192e: Merge/Remove _rtl92e_dm_bb_initialgain_backup Merge rtl92e_dm_backup_state and _rtl92e_dm_bb_initialgain_backup. Static function is called only once and dm_backup_state had short body. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c5068ddf2d07..efa57d814186 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -171,8 +171,6 @@ static void _rtl92e_dm_bandwidth_autoswitch(struct net_device *dev); static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev); static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev); -static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev); - static void _rtl92e_dm_dig_init(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi(struct net_device *dev); static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); @@ -1242,22 +1240,13 @@ static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev) } - void rtl92e_dm_backup_state(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); + u32 bit_mask = bMaskByte0; priv->bswitch_fsync = false; priv->bfsync_processing = false; - _rtl92e_dm_bb_initialgain_backup(dev); - -} - - -static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev) -{ - struct r8192_priv *priv = rtllib_priv(dev); - u32 bit_mask = bMaskByte0; if (dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI) return; @@ -1280,7 +1269,6 @@ static void _rtl92e_dm_bb_initialgain_backup(struct net_device *dev) priv->initgain_backup.xdagccore1); RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xa0a is %x\n", priv->initgain_backup.cca); - } static void _rtl92e_dm_dig_init(struct net_device *dev) From f22c2468b6ff8542453b5d9e7f3b8ddbbb4bcef4 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 22 Sep 2015 23:50:35 +0200 Subject: [PATCH 0979/2431] staging: rtl8188eu: remove useless comment This comment gives pretty much the same information as the name of the function that it immediately precedes. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index dd820185110f..4258a5e8ed68 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c @@ -3483,7 +3483,6 @@ static unsigned int OnAssocRsp(struct adapter *padapter, pmlmeinfo->state &= (~WIFI_FW_ASSOC_STATE); pmlmeinfo->state |= WIFI_FW_ASSOC_SUCCESS; - /* Update Basic Rate Table for spec, 2010-12-28 , by thomas */ UpdateBrateTbl(padapter, pmlmeinfo->network.SupportedRates); report_assoc_result: From 3441d08ca20a390ab0484c11bd69f2a75e702774 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 22 Sep 2015 23:50:36 +0200 Subject: [PATCH 0980/2431] staging: rtl8188eu: rtw_set_fixed_ie(): accept void* parameters rtw_set_ie() is a memcpy-like function, taking addresses of memory buffers among its parameters. Similarly to memcpy, change the parameters to be void*. This will allow to get rid of typecasts whenever it is called. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 8 ++++---- drivers/staging/rtl8188eu/include/ieee80211.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c index c3c582881a09..39325a3a2fa2 100644 --- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c +++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c @@ -130,12 +130,12 @@ int rtw_check_network_type(unsigned char *rate, int ratelen, int channel) } } -u8 *rtw_set_fixed_ie(unsigned char *pbuf, unsigned int len, unsigned char *source, - unsigned int *frlen) +u8 *rtw_set_fixed_ie(void *pbuf, unsigned int len, void *source, + unsigned int *frlen) { - memcpy((void *)pbuf, (void *)source, len); + memcpy(pbuf, source, len); *frlen = *frlen + len; - return pbuf + len; + return ((u8 *)pbuf) + len; } /* rtw_set_ie will update frame length */ diff --git a/drivers/staging/rtl8188eu/include/ieee80211.h b/drivers/staging/rtl8188eu/include/ieee80211.h index 6400f75707bd..f8f5eb6b7976 100644 --- a/drivers/staging/rtl8188eu/include/ieee80211.h +++ b/drivers/staging/rtl8188eu/include/ieee80211.h @@ -1092,8 +1092,8 @@ enum parse_res rtw_ieee802_11_parse_elems(u8 *start, uint len, struct rtw_ieee802_11_elems *elems, int show_errors); -u8 *rtw_set_fixed_ie(unsigned char *pbuf, unsigned int len, - unsigned char *source, unsigned int *frlen); +u8 *rtw_set_fixed_ie(void *pbuf, unsigned int len, + void *source, unsigned int *frlen); u8 *rtw_set_ie(u8 *pbuf, int index, uint len, u8 *source, uint *frlen); enum secondary_ch_offset { From 3e4e8e025c374959538d37a812a7c20f7aa8a5c1 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 22 Sep 2015 23:50:37 +0200 Subject: [PATCH 0981/2431] staging: rtl8188eu: don't cast when calling rtw_set_fixed_ie() The 'pbuf' and 'source' arguments to rtw_set_fixed_ie() are (void *), the explicit typecasts are not needed. They just make code less readable. Also fix checkpatch issues in the lines touched: ERROR: space prohibited before that ',' (ctx:WxW) WARNING: line over 80 characters CHECK: Unnecessary parentheses around Note: some of the modified lines are still over 80 characters because they are not fixable by just adding newlines. They will be fixed in a later patch. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 60 ++++++++++++------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index 4258a5e8ed68..e31eae9b0583 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c @@ -812,17 +812,20 @@ static void issue_auth(struct adapter *padapter, struct sta_info *psta, le_val16 = 0; } - pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, (unsigned char *)&le_val16, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, &le_val16, + &pattrib->pktlen); /* setting auth seq number */ val16 = (u16)psta->auth_seq; le_val16 = cpu_to_le16(val16); - pframe = rtw_set_fixed_ie(pframe, _AUTH_SEQ_NUM_, (unsigned char *)&le_val16, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _AUTH_SEQ_NUM_, &le_val16, + &pattrib->pktlen); /* setting status code... */ val16 = status; le_val16 = cpu_to_le16(val16); - pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, (unsigned char *)&le_val16, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, + &le_val16, &pattrib->pktlen); /* added challenging text... */ if ((psta->auth_seq == 2) && (psta->state & WIFI_FW_AUTH_STATE) && (use_shared_key == 1)) @@ -844,23 +847,27 @@ static void issue_auth(struct adapter *padapter, struct sta_info *psta, if ((pmlmeinfo->auth_seq == 3) && (pmlmeinfo->state & WIFI_FW_AUTH_STATE) && (use_shared_key == 1)) { val32 = (pmlmeinfo->iv++) | (pmlmeinfo->key_index << 30); le_tmp32 = cpu_to_le32(val32); - pframe = rtw_set_fixed_ie(pframe, 4, (unsigned char *)&le_tmp32, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 4, &le_tmp32, + &pattrib->pktlen); pattrib->iv_len = 4; } le_tmp16 = cpu_to_le16(val16); - pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, (unsigned char *)&le_tmp16, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, &le_tmp16, + &pattrib->pktlen); /* setting auth seq number */ val16 = pmlmeinfo->auth_seq; le_tmp16 = cpu_to_le16(val16); - pframe = rtw_set_fixed_ie(pframe, _AUTH_SEQ_NUM_, (unsigned char *)&le_tmp16, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _AUTH_SEQ_NUM_, &le_tmp16, + &pattrib->pktlen); /* setting status code... */ le_tmp16 = cpu_to_le16(status); - pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, (unsigned char *)&le_tmp16, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, &le_tmp16, + &pattrib->pktlen); /* then checking to see if sending challenging text... */ if ((pmlmeinfo->auth_seq == 3) && (pmlmeinfo->state & WIFI_FW_AUTH_STATE) && (use_shared_key == 1)) { @@ -944,13 +951,14 @@ static void issue_asocrsp(struct adapter *padapter, unsigned short status, /* capability */ val = *(unsigned short *)rtw_get_capability_from_ie(ie); - pframe = rtw_set_fixed_ie(pframe, _CAPABILITY_ , (unsigned char *)&val, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _CAPABILITY_, &val, &pattrib->pktlen); lestatus = cpu_to_le16(status); - pframe = rtw_set_fixed_ie(pframe , _STATUS_CODE_ , (unsigned char *)&lestatus, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, &lestatus, + &pattrib->pktlen); leval = cpu_to_le16(pstat->aid | BIT(14) | BIT(15)); - pframe = rtw_set_fixed_ie(pframe, _ASOC_ID_ , (unsigned char *)&leval, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _ASOC_ID_, &leval, &pattrib->pktlen); if (pstat->bssratelen <= 8) { pframe = rtw_set_ie(pframe, _SUPPORTEDRATES_IE_, pstat->bssratelen, pstat->bssrateset, &(pattrib->pktlen)); @@ -1499,7 +1507,8 @@ static int _issue_deauth(struct adapter *padapter, unsigned char *da, unsigned s pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); le_tmp = cpu_to_le16(reason); - pframe = rtw_set_fixed_ie(pframe, _RSON_CODE_ , (unsigned char *)&le_tmp, &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, _RSON_CODE_, &le_tmp, + &pattrib->pktlen); pattrib->last_txcmdsz = pattrib->pktlen; @@ -1687,11 +1696,13 @@ static void issue_action_BA(struct adapter *padapter, unsigned char *raddr, BA_para_set = 0x1002 | ((status & 0xf) << 2); /* immediate ack & 64 buffer size */ le_tmp = cpu_to_le16(BA_para_set); - pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 2, &(le_tmp), + &pattrib->pktlen); BA_timeout_value = 5000;/* 5ms */ le_tmp = cpu_to_le16(BA_timeout_value); - pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 2, &(le_tmp), + &pattrib->pktlen); psta = rtw_get_stainfo(pstapriv, raddr); if (psta != NULL) { @@ -1704,11 +1715,15 @@ static void issue_action_BA(struct adapter *padapter, unsigned char *raddr, BA_starting_seqctrl = start_seq << 4; } le_tmp = cpu_to_le16(BA_starting_seqctrl); - pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 2, &(le_tmp), + &pattrib->pktlen); break; case 1: /* ADDBA rsp */ - pframe = rtw_set_fixed_ie(pframe, 1, &(pmlmeinfo->ADDBA_req.dialog_token), &(pattrib->pktlen)); - pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&status), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 1, + &pmlmeinfo->ADDBA_req.dialog_token, + &pattrib->pktlen); + pframe = rtw_set_fixed_ie(pframe, 2, &status, + &pattrib->pktlen); BA_para_set = le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f; rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor); @@ -1736,17 +1751,22 @@ static void issue_action_BA(struct adapter *padapter, unsigned char *raddr, BA_para_set = BA_para_set | BIT(0); le_tmp = cpu_to_le16(BA_para_set); - pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen)); - pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(pmlmeinfo->ADDBA_req.BA_timeout_value)), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 2, &(le_tmp), + &pattrib->pktlen); + pframe = rtw_set_fixed_ie(pframe, 2, + &pmlmeinfo->ADDBA_req.BA_timeout_value, + &pattrib->pktlen); break; case 2:/* DELBA */ BA_para_set = (status & 0x1F) << 3; le_tmp = cpu_to_le16(BA_para_set); - pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 2, &(le_tmp), + &pattrib->pktlen); reason_code = 37;/* Requested from peer STA as it does not want to use the mechanism */ le_tmp = cpu_to_le16(reason_code); - pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 2, &(le_tmp), + &pattrib->pktlen); break; default: break; From f62cd2cd95ef05f125c57d4905deff81a504682e Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 22 Sep 2015 23:50:38 +0200 Subject: [PATCH 0982/2431] staging: rtl8188eu: issue_action_BA(): extract ADDBA_req pointer pmlmeinfo->ADDBA_req is accessed three times in this function, but it contributes to generating lines above 80 characters that are not easy to split in a nice way. Extract a pointer to it to make code slightly more concise and fix some lines over 80 characters. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index e31eae9b0583..0270755ec546 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c @@ -1719,13 +1719,17 @@ static void issue_action_BA(struct adapter *padapter, unsigned char *raddr, &pattrib->pktlen); break; case 1: /* ADDBA rsp */ + { + struct ADDBA_request *ADDBA_req = &pmlmeinfo->ADDBA_req; + pframe = rtw_set_fixed_ie(pframe, 1, - &pmlmeinfo->ADDBA_req.dialog_token, + &ADDBA_req->dialog_token, &pattrib->pktlen); pframe = rtw_set_fixed_ie(pframe, 2, &status, &pattrib->pktlen); - BA_para_set = le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f; + BA_para_set = le16_to_cpu(ADDBA_req->BA_para_set) & + 0x3f; rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor); switch (max_rx_ampdu_factor) { case MAX_AMPDU_FACTOR_64K: @@ -1754,9 +1758,10 @@ static void issue_action_BA(struct adapter *padapter, unsigned char *raddr, pframe = rtw_set_fixed_ie(pframe, 2, &(le_tmp), &pattrib->pktlen); pframe = rtw_set_fixed_ie(pframe, 2, - &pmlmeinfo->ADDBA_req.BA_timeout_value, + &ADDBA_req->BA_timeout_value, &pattrib->pktlen); break; + } case 2:/* DELBA */ BA_para_set = (status & 0x1F) << 3; le_tmp = cpu_to_le16(BA_para_set); From 9da4aa48d04bbdbae3c959809e14da2bf0c53f61 Mon Sep 17 00:00:00 2001 From: Jakub Sitnicki Date: Wed, 23 Sep 2015 23:42:26 +0200 Subject: [PATCH 0983/2431] staging: rtl8188eu: Fix build error when CFG80211 is not selected The kbuild test robot reports the following build error for i386-randconfig-c0-09230740: >> ERROR: "ieee80211_hdrlen" [drivers/staging/rtl8188eu/r8188eu.ko] undefined! Add a dependency on CFG80211 to fix it. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8188eu/Kconfig b/drivers/staging/rtl8188eu/Kconfig index 5a38b4149408..94f38793ab47 100644 --- a/drivers/staging/rtl8188eu/Kconfig +++ b/drivers/staging/rtl8188eu/Kconfig @@ -1,6 +1,6 @@ config R8188EU tristate "Realtek RTL8188EU Wireless LAN NIC driver" - depends on WLAN && USB + depends on WLAN && USB && CFG80211 select WIRELESS_EXT select WEXT_PRIV ---help--- From 7d76173d40bef0516068dbf38195470abf979c8a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 27 Sep 2015 21:48:19 +0200 Subject: [PATCH 0984/2431] staging: rtl8723au: Fix resource leak Firmware was not released properly if kmemdup fails. Addresses-Coverity-Id: 1269118 Signed-off-by: Mateusz Kulikowski Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c index cd014f7e6bc3..ecf54ee47f7c 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c @@ -249,13 +249,13 @@ int rtl8723a_FirmwareDownload(struct rtw_adapter *padapter) goto Exit; } firmware_buf = kmemdup(fw->data, fw->size, GFP_KERNEL); + fw_size = fw->size; + release_firmware(fw); if (!firmware_buf) { rtStatus = _FAIL; goto Exit; } buf = firmware_buf; - fw_size = fw->size; - release_firmware(fw); /* To Check Fw header. Added by tynli. 2009.12.04. */ pFwHdr = (struct rt_8723a_firmware_hdr *)firmware_buf; From dc9db95017d24fd1e2f324b3977077c030d8e830 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:24 -0800 Subject: [PATCH 0985/2431] Staging: rtl8192u: space required after ',' This is a fix to add spaces after commas in ieee80211_softmac_wx.c. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 702671a66c5f..596486394b0a 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -178,7 +178,7 @@ out: } EXPORT_SYMBOL(ieee80211_wx_set_wap); -int ieee80211_wx_get_essid(struct ieee80211_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b) +int ieee80211_wx_get_essid(struct ieee80211_device *ieee, struct iw_request_info *a, union iwreq_data *wrqu, char *b) { int len, ret = 0; unsigned long flags; From dbb192d151a9ec2d98629b4b42c6b074bdbb4e0c Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:29 -0800 Subject: [PATCH 0986/2431] Staging: rtl8192u: add missing blank lines after declarations This is a patch to add blank lines after declaration ins several instances in iee80211_softmac_wx.c. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 596486394b0a..c0f6d7c6faaf 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -232,6 +232,7 @@ int ieee80211_wx_get_rate(struct ieee80211_device *ieee, union iwreq_data *wrqu, char *extra) { u32 tmp_rate; + tmp_rate = TxCountToDataRate(ieee, ieee->softmac_stats.CurrentShowTxate); wrqu->bitrate.value = tmp_rate * 500000; @@ -307,6 +308,7 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) HT_EXTCHNL_OFFSET chan_offset=0; HT_CHANNEL_WIDTH bandwidth=0; int b40M = 0; + chan = ieee->current_network.channel; netif_carrier_off(ieee->dev); @@ -517,6 +519,7 @@ int ieee80211_wx_set_power(struct ieee80211_device *ieee, union iwreq_data *wrqu, char *extra) { int ret = 0; + down(&ieee->wx_sem); if (wrqu->power.disabled) { From b117d1a0da3f1b090dcd354eaafd5a5dfb8378c7 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:34 -0800 Subject: [PATCH 0987/2431] Staging: rtl8192u: move open braces to previous lines This is a patch to move opening braces to the lines on which their corresponding if-statements exist in ieee80211_softmac_wx.c. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index c0f6d7c6faaf..a1548d057c4b 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -247,8 +247,7 @@ int ieee80211_wx_set_rts(struct ieee80211_device *ieee, { if (wrqu->rts.disabled || !wrqu->rts.fixed) ieee->rts = DEFAULT_RTS_THRESHOLD; - else - { + else { if (wrqu->rts.value < MIN_RTS_THRESHOLD || wrqu->rts.value > MAX_RTS_THRESHOLD) return -EINVAL; @@ -345,8 +344,7 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) ieee->state = IEEE80211_LINKED; ieee->link_change(ieee->dev); /* To prevent the immediately calling watch_dog after scan. */ - if (ieee->LinkDetectInfo.NumRecvBcnInPeriod==0||ieee->LinkDetectInfo.NumRecvDataInPeriod==0) - { + if (ieee->LinkDetectInfo.NumRecvBcnInPeriod==0||ieee->LinkDetectInfo.NumRecvDataInPeriod==0) { ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1; ieee->LinkDetectInfo.NumRecvDataInPeriod= 1; } @@ -468,8 +466,7 @@ int ieee80211_wx_set_rawtx(struct ieee80211_device *ieee, printk(KERN_INFO"raw TX is %s\n", ieee->raw_tx ? "enabled" : "disabled"); - if (ieee->iw_mode == IW_MODE_MONITOR) - { + if (ieee->iw_mode == IW_MODE_MONITOR) { if (prev == 0 && ieee->raw_tx) { if (ieee->data_hard_resume) ieee->data_hard_resume(ieee->dev); From 0bde11cb4541e50a44392b0f0eccc679093343a7 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:38 -0800 Subject: [PATCH 0988/2431] Staging: rtl8192u: add spaces around == and || operators This is a patch to add missing spaces around == and || operators in one instance in ieee80211_softmac_wx.c. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index a1548d057c4b..a5ca2e343311 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -344,7 +344,7 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) ieee->state = IEEE80211_LINKED; ieee->link_change(ieee->dev); /* To prevent the immediately calling watch_dog after scan. */ - if (ieee->LinkDetectInfo.NumRecvBcnInPeriod==0||ieee->LinkDetectInfo.NumRecvDataInPeriod==0) { + if (ieee->LinkDetectInfo.NumRecvBcnInPeriod == 0 || ieee->LinkDetectInfo.NumRecvDataInPeriod == 0) { ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1; ieee->LinkDetectInfo.NumRecvDataInPeriod= 1; } From 7b85e56bebab9297d96c167531ebba974f383117 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:43 -0800 Subject: [PATCH 0989/2431] Staging: rtl8192u: spaces required around = operator This is a patch to add spaces around = operators in several instances in ieee80211_softmac_wx.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index a5ca2e343311..94beffef0f3f 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -304,8 +304,8 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) { struct ieee80211_device *ieee = container_of(work, struct ieee80211_device, wx_sync_scan_wq); short chan; - HT_EXTCHNL_OFFSET chan_offset=0; - HT_CHANNEL_WIDTH bandwidth=0; + HT_EXTCHNL_OFFSET chan_offset = 0; + HT_CHANNEL_WIDTH bandwidth = 0; int b40M = 0; chan = ieee->current_network.channel; @@ -346,7 +346,7 @@ void ieee80211_wx_sync_scan_wq(struct work_struct *work) /* To prevent the immediately calling watch_dog after scan. */ if (ieee->LinkDetectInfo.NumRecvBcnInPeriod == 0 || ieee->LinkDetectInfo.NumRecvDataInPeriod == 0) { ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1; - ieee->LinkDetectInfo.NumRecvDataInPeriod= 1; + ieee->LinkDetectInfo.NumRecvDataInPeriod = 1; } if (ieee->data_hard_resume) ieee->data_hard_resume(ieee->dev); @@ -398,12 +398,12 @@ int ieee80211_wx_set_essid(struct ieee80211_device *ieee, proto_started = ieee->proto_started; if (wrqu->essid.length > IW_ESSID_MAX_SIZE) { - ret= -E2BIG; + ret = -E2BIG; goto out; } if (ieee->iw_mode == IW_MODE_MONITOR) { - ret= -1; + ret = -1; goto out; } From c3a5536a7da427283c4709d0bbe5665fe8d3c810 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:48 -0800 Subject: [PATCH 0990/2431] Staging: rtl819u: Fix brace styling issues This is a patch to correct two flavors of brace styling issues in ieee80211_softmac_wx.c. Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 94beffef0f3f..aad288a1f9e3 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c @@ -279,12 +279,10 @@ int ieee80211_wx_set_mode(struct ieee80211_device *ieee, struct iw_request_info if (wrqu->mode == ieee->iw_mode) goto out; - if (wrqu->mode == IW_MODE_MONITOR) { - + if (wrqu->mode == IW_MODE_MONITOR) ieee->dev->type = ARPHRD_IEEE80211; - } else { + else ieee->dev->type = ARPHRD_ETHER; - } if (!ieee->proto_started) { ieee->iw_mode = wrqu->mode; @@ -422,8 +420,7 @@ int ieee80211_wx_set_essid(struct ieee80211_device *ieee, strncpy(ieee->current_network.ssid, extra, len+1); ieee->current_network.ssid_len = len+1; ieee->ssid_set = 1; - } - else { + } else { ieee->ssid_set = 0; ieee->current_network.ssid[0] = '\0'; ieee->current_network.ssid_len = 0; From 96a384a7ed53b38fc2ba35fa5ef828a2c7368a3a Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Mon, 28 Sep 2015 22:52:33 +0100 Subject: [PATCH 0991/2431] staging: rtl8712: remove dead code The while() loop will only exit in a return or a goto ask_for_joinbss, which means it will never break and execute the return after it. Removing return _FAIL since it is dead code. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_mlme.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index fc5dbea08cb4..fbcb248b0235 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.c +++ b/drivers/staging/rtl8712/rtl871x_mlme.c @@ -1190,7 +1190,7 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) } } } - return _FAIL; + ask_for_joinbss: return r8712_joinbss_cmd(adapter, pnetwork); } From 1282bade3b8e34cb4a26b8444577d70c7f15e0d8 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 29 Sep 2015 10:47:49 +0300 Subject: [PATCH 0992/2431] staging: sm750fb: remove dead code Remove the code enclosed in '#if 0' Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 53 ----- drivers/staging/sm750fb/ddk750_display.h | 54 ----- drivers/staging/sm750fb/ddk750_help.h | 9 +- drivers/staging/sm750fb/ddk750_reg.h | 244 ----------------------- drivers/staging/sm750fb/ddk750_swi2c.c | 5 +- drivers/staging/sm750fb/sm750_accel.c | 21 -- drivers/staging/sm750fb/sm750_cursor.c | 44 ---- drivers/staging/sm750fb/sm750_hw.c | 14 -- 8 files changed, 2 insertions(+), 442 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 28733db74bdc..b2654ecd7c5b 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -248,17 +248,6 @@ int ddk750_initHw(initchip_param_t *pInitParam) { unsigned int ulReg; -#if 0 - /* move the code to map regiter function. */ - if (getChipType() == SM718) { - /* turn on big endian bit*/ - ulReg = PEEK32(0x74); - /* now consider register definition in a big endian pattern*/ - POKE32(0x74, ulReg|0x80000000); - } - -#endif - if (pInitParam->powerMode != 0) pInitParam->powerMode = 0; @@ -325,37 +314,6 @@ int ddk750_initHw(initchip_param_t *pInitParam) ulReg = FIELD_SET(ulReg, ALPHA_DISPLAY_CTRL, PLANE, DISABLE); POKE32(ALPHA_DISPLAY_CTRL, ulReg); -#if 0 - /* Disable LCD hardware cursor, if a former application left it on */ - ulReg = PEEK32(PANEL_HWC_ADDRESS); - ulReg = FIELD_SET(ulReg, PANEL_HWC_ADDRESS, ENABLE, DISABLE); - POKE32(PANEL_HWC_ADDRESS, ulReg); - - /* Disable CRT hardware cursor, if a former application left it on */ - ulReg = PEEK32(CRT_HWC_ADDRESS); - ulReg = FIELD_SET(ulReg, CRT_HWC_ADDRESS, ENABLE, DISABLE); - POKE32(CRT_HWC_ADDRESS, ulReg); - - /* Disable ZV Port 0, if a former application left it on */ - ulReg = PEEK32(ZV0_CAPTURE_CTRL); - ulReg = FIELD_SET(ulReg, ZV0_CAPTURE_CTRL, CAP, DISABLE); - POKE32(ZV0_CAPTURE_CTRL, ulReg); - - /* Disable ZV Port 1, if a former application left it on */ - ulReg = PEEK32(ZV1_CAPTURE_CTRL); - ulReg = FIELD_SET(ulReg, ZV1_CAPTURE_CTRL, CAP, DISABLE); - POKE32(ZV1_CAPTURE_CTRL, ulReg); - - /* Disable ZV Port Power, if a former application left it on */ - enableZVPort(0); - /* Disable DMA Channel, if a former application left it on */ - ulReg = PEEK32(DMA_ABORT_INTERRUPT); - ulReg = FIELD_SET(ulReg, DMA_ABORT_INTERRUPT, ABORT_1, ABORT); - POKE32(DMA_ABORT_INTERRUPT, ulReg); - - /* Disable i2c */ - enableI2C(0); -#endif /* Disable DMA Channel, if a former application left it on */ ulReg = PEEK32(DMA_ABORT_INTERRUPT); ulReg = FIELD_SET(ulReg, DMA_ABORT_INTERRUPT, ABORT_1, ABORT); @@ -370,17 +328,6 @@ int ddk750_initHw(initchip_param_t *pInitParam) return 0; } -#if 0 - -unsigned int absDiff(unsigned int a, unsigned int b) -{ - if (a > b) - return(a - b); - else - return(b - a); -} - -#endif /* monk liu @ 4/6/2011: re-write the calculatePLL function of ddk750. diff --git a/drivers/staging/sm750fb/ddk750_display.h b/drivers/staging/sm750fb/ddk750_display.h index abccf84a8c9a..39bdfad80f23 100644 --- a/drivers/staging/sm750fb/ddk750_display.h +++ b/drivers/staging/sm750fb/ddk750_display.h @@ -85,73 +85,19 @@ LCD1 means panel path TFT1 & panel path DVI (so enable DAC) CRT means crt path DSUB */ -#if 0 -typedef enum _disp_output_t { - NO_DISPLAY = DPMS_OFF, - - LCD1_PRI = PNL_2_PRI|PRI_TP_ON|PNL_SEQ_ON|DPMS_OFF|DAC_ON, - LCD1_SEC = PNL_2_SEC|SEC_TP_ON|PNL_SEQ_ON|DPMS_OFF|DAC_ON, - - LCD2_PRI = CRT_2_PRI|PRI_TP_ON|DUAL_TFT_ON|DPMS_OFF, - LCD2_SEC = CRT_2_SEC|SEC_TP_ON|DUAL_TFT_ON|DPMS_OFF, - - DSUB_PRI = CRT_2_PRI|PRI_TP_ON|DAC_ON, - DSUB_SEC = CRT_2_SEC|SEC_TP_ON|DAC_ON, - - LCD1_DSUB_PRI = PNL_2_PRI|PRI_TP_ON|PNL_SEQ_ON| - CRT_2_PRI|SEC_TP_OFF|DAC_ON, - - LCD1_DSUB_SEC = PNL_2_SEC|SEC_TP_ON|PNL_SEQ_ON| - CRT_2_SEC|PRI_TP_OFF|DAC_ON, - - /* LCD1 show primary and DSUB show secondary */ - LCD1_DSUB_DUAL = PNL_2_PRI|PRI_TP_ON|PNL_SEQ_ON| - CRT_2_SEC|SEC_TP_ON|DAC_ON, - - /* LCD1 show secondary and DSUB show primary */ - LCD1_DSUB_DUAL_SWAP = PNL_2_SEC|SEC_TP_ON|PNL_SEQ_ON| - CRT_2_PRI|PRI_TP_ON|DAC_ON, - - LCD1_LCD2_PRI = PNL_2_PRI|PRI_TP_ON|PNL_SEQ_ON| - CRT_2_PRI|SEC_TP_OFF|DPMS_OFF|DUAL_TFT_ON, - - LCD1_LCD2_SEC = PNL_2_SEC|SEC_TP_ON|PNL_SEQ_ON| - CRT_2_SEC|PRI_TP_OFF|DPMS_OFF|DUAL_TFT_ON, - - LCD1_LCD2_DSUB_PRI = PNL_2_PRI|PRI_TP_ON|PNL_SEQ_ON|DAC_ON| - CRT_2_PRI|SEC_TP_OFF|DPMS_ON|DUAL_TFT_ON, - - LCD1_LCD2_DSUB_SEC = PNL_2_SEC|SEC_TP_ON|PNL_SEQ_ON|DAC_ON| - CRT_2_SEC|PRI_TP_OFF|DPMS_ON|DUAL_TFT_ON, - - -} -disp_output_t; -#else typedef enum _disp_output_t { do_LCD1_PRI = PNL_2_PRI|PRI_TP_ON|PNL_SEQ_ON|DAC_ON, do_LCD1_SEC = PNL_2_SEC|SEC_TP_ON|PNL_SEQ_ON|DAC_ON, -#if 0 - do_LCD2_PRI = CRT_2_PRI|PRI_TP_ON, - do_LCD2_SEC = CRT_2_SEC|SEC_TP_ON, -#else do_LCD2_PRI = CRT_2_PRI|PRI_TP_ON|DUAL_TFT_ON, do_LCD2_SEC = CRT_2_SEC|SEC_TP_ON|DUAL_TFT_ON, -#endif /* do_DSUB_PRI = CRT_2_PRI|PRI_TP_ON|DPMS_ON|DAC_ON, do_DSUB_SEC = CRT_2_SEC|SEC_TP_ON|DPMS_ON|DAC_ON, */ -#if 0 - do_CRT_PRI = CRT_2_PRI|PRI_TP_ON, - do_CRT_SEC = CRT_2_SEC|SEC_TP_ON, -#else do_CRT_PRI = CRT_2_PRI|PRI_TP_ON|DPMS_ON|DAC_ON, do_CRT_SEC = CRT_2_SEC|SEC_TP_ON|DPMS_ON|DAC_ON, -#endif } disp_output_t; -#endif void ddk750_setLogicalDispOut(disp_output_t); int ddk750_initDVIDisp(void); diff --git a/drivers/staging/sm750fb/ddk750_help.h b/drivers/staging/sm750fb/ddk750_help.h index 3b06aed431bd..9b2d2d2c899b 100644 --- a/drivers/staging/sm750fb/ddk750_help.h +++ b/drivers/staging/sm750fb/ddk750_help.h @@ -8,16 +8,9 @@ #include #include "sm750_help.h" - -#if 0 -/* if 718 big endian turned on,be aware that don't use this driver for general use,only for ppc big-endian */ -#warning "big endian on target cpu and enable nature big endian support of 718 capability !" -#define PEEK32(addr) __raw_readl(mmio750 + addr) -#define POKE32(addr, data) __raw_writel(data, mmio750 + addr) -#else /* software control endianness */ +/* software control endianness */ #define PEEK32(addr) readl(addr + mmio750) #define POKE32(addr, data) writel(data, addr + mmio750) -#endif extern void __iomem *mmio750; extern char revId750; diff --git a/drivers/staging/sm750fb/ddk750_reg.h b/drivers/staging/sm750fb/ddk750_reg.h index 2995625c3d62..16a01c25442c 100644 --- a/drivers/staging/sm750fb/ddk750_reg.h +++ b/drivers/staging/sm750fb/ddk750_reg.h @@ -1836,23 +1836,6 @@ #define CRT_HWC_COLOR_3 0x08023C #define CRT_HWC_COLOR_3_RGB565 15:0 -/* Old Definitions +++. Need to be removed if no application use it. */ -#if 0 - #define CRT_HWC_COLOR_01 0x080238 - #define CRT_HWC_COLOR_01_1_RED 31:27 - #define CRT_HWC_COLOR_01_1_GREEN 26:21 - #define CRT_HWC_COLOR_01_1_BLUE 20:16 - #define CRT_HWC_COLOR_01_0_RED 15:11 - #define CRT_HWC_COLOR_01_0_GREEN 10:5 - #define CRT_HWC_COLOR_01_0_BLUE 4:0 - - #define CRT_HWC_COLOR_2 0x08023C - #define CRT_HWC_COLOR_2_RED 15:11 - #define CRT_HWC_COLOR_2_GREEN 10:5 - #define CRT_HWC_COLOR_2_BLUE 4:0 -#endif -/* Old Definitions --- */ - /* This vertical expansion below start at 0x080240 ~ 0x080264 */ #define CRT_VERTICAL_EXPANSION 0x080240 #ifndef VALIDATION_CHIP @@ -1891,233 +1874,6 @@ /* Panel Palette register starts at 0x080C00 ~ 0x080FFC */ #define CRT_PALETTE_RAM 0x080C00 -/* 2D registers - * move their defination into general lynx_accel.h file - * because all smi graphic chip share the same drawing engine - * register format */ -#if 0 -#define DE_SOURCE 0x100000 -#define DE_SOURCE_WRAP 31:31 -#define DE_SOURCE_WRAP_DISABLE 0 -#define DE_SOURCE_WRAP_ENABLE 1 - -/* - * The following definitions are used in different setting - */ - -/* Use these definitions in XY addressing mode or linear addressing mode. */ -#define DE_SOURCE_X_K1 27:16 -#define DE_SOURCE_Y_K2 11:0 - -/* Use this definition in host write mode for mono. The Y_K2 is not used - in host write mode. */ -#define DE_SOURCE_X_K1_MONO 20:16 - -/* Use these definitions in Bresenham line drawing mode. */ -#define DE_SOURCE_X_K1_LINE 29:16 -#define DE_SOURCE_Y_K2_LINE 13:0 - -#define DE_DESTINATION 0x100004 -#define DE_DESTINATION_WRAP 31:31 -#define DE_DESTINATION_WRAP_DISABLE 0 -#define DE_DESTINATION_WRAP_ENABLE 1 -#if 1 - #define DE_DESTINATION_X 27:16 - #define DE_DESTINATION_Y 11:0 -#else - #define DE_DESTINATION_X 28:16 - #define DE_DESTINATION_Y 15:0 -#endif - -#define DE_DIMENSION 0x100008 -#define DE_DIMENSION_X 28:16 -#define DE_DIMENSION_Y_ET 15:0 - -#define DE_CONTROL 0x10000C -#define DE_CONTROL_STATUS 31:31 -#define DE_CONTROL_STATUS_STOP 0 -#define DE_CONTROL_STATUS_START 1 -#define DE_CONTROL_PATTERN 30:30 -#define DE_CONTROL_PATTERN_MONO 0 -#define DE_CONTROL_PATTERN_COLOR 1 -#define DE_CONTROL_UPDATE_DESTINATION_X 29:29 -#define DE_CONTROL_UPDATE_DESTINATION_X_DISABLE 0 -#define DE_CONTROL_UPDATE_DESTINATION_X_ENABLE 1 -#define DE_CONTROL_QUICK_START 28:28 -#define DE_CONTROL_QUICK_START_DISABLE 0 -#define DE_CONTROL_QUICK_START_ENABLE 1 -#define DE_CONTROL_DIRECTION 27:27 -#define DE_CONTROL_DIRECTION_LEFT_TO_RIGHT 0 -#define DE_CONTROL_DIRECTION_RIGHT_TO_LEFT 1 -#define DE_CONTROL_MAJOR 26:26 -#define DE_CONTROL_MAJOR_X 0 -#define DE_CONTROL_MAJOR_Y 1 -#define DE_CONTROL_STEP_X 25:25 -#define DE_CONTROL_STEP_X_POSITIVE 0 -#define DE_CONTROL_STEP_X_NEGATIVE 1 -#define DE_CONTROL_STEP_Y 24:24 -#define DE_CONTROL_STEP_Y_POSITIVE 0 -#define DE_CONTROL_STEP_Y_NEGATIVE 1 -#define DE_CONTROL_STRETCH 23:23 -#define DE_CONTROL_STRETCH_DISABLE 0 -#define DE_CONTROL_STRETCH_ENABLE 1 -#define DE_CONTROL_HOST 22:22 -#define DE_CONTROL_HOST_COLOR 0 -#define DE_CONTROL_HOST_MONO 1 -#define DE_CONTROL_LAST_PIXEL 21:21 -#define DE_CONTROL_LAST_PIXEL_OFF 0 -#define DE_CONTROL_LAST_PIXEL_ON 1 -#define DE_CONTROL_COMMAND 20:16 -#define DE_CONTROL_COMMAND_BITBLT 0 -#define DE_CONTROL_COMMAND_RECTANGLE_FILL 1 -#define DE_CONTROL_COMMAND_DE_TILE 2 -#define DE_CONTROL_COMMAND_TRAPEZOID_FILL 3 -#define DE_CONTROL_COMMAND_ALPHA_BLEND 4 -#define DE_CONTROL_COMMAND_RLE_STRIP 5 -#define DE_CONTROL_COMMAND_SHORT_STROKE 6 -#define DE_CONTROL_COMMAND_LINE_DRAW 7 -#define DE_CONTROL_COMMAND_HOST_WRITE 8 -#define DE_CONTROL_COMMAND_HOST_READ 9 -#define DE_CONTROL_COMMAND_HOST_WRITE_BOTTOM_UP 10 -#define DE_CONTROL_COMMAND_ROTATE 11 -#define DE_CONTROL_COMMAND_FONT 12 -#define DE_CONTROL_COMMAND_TEXTURE_LOAD 15 -#define DE_CONTROL_ROP_SELECT 15:15 -#define DE_CONTROL_ROP_SELECT_ROP3 0 -#define DE_CONTROL_ROP_SELECT_ROP2 1 -#define DE_CONTROL_ROP2_SOURCE 14:14 -#define DE_CONTROL_ROP2_SOURCE_BITMAP 0 -#define DE_CONTROL_ROP2_SOURCE_PATTERN 1 -#define DE_CONTROL_MONO_DATA 13:12 -#define DE_CONTROL_MONO_DATA_NOT_PACKED 0 -#define DE_CONTROL_MONO_DATA_8_PACKED 1 -#define DE_CONTROL_MONO_DATA_16_PACKED 2 -#define DE_CONTROL_MONO_DATA_32_PACKED 3 -#define DE_CONTROL_REPEAT_ROTATE 11:11 -#define DE_CONTROL_REPEAT_ROTATE_DISABLE 0 -#define DE_CONTROL_REPEAT_ROTATE_ENABLE 1 -#define DE_CONTROL_TRANSPARENCY_MATCH 10:10 -#define DE_CONTROL_TRANSPARENCY_MATCH_OPAQUE 0 -#define DE_CONTROL_TRANSPARENCY_MATCH_TRANSPARENT 1 -#define DE_CONTROL_TRANSPARENCY_SELECT 9:9 -#define DE_CONTROL_TRANSPARENCY_SELECT_SOURCE 0 -#define DE_CONTROL_TRANSPARENCY_SELECT_DESTINATION 1 -#define DE_CONTROL_TRANSPARENCY 8:8 -#define DE_CONTROL_TRANSPARENCY_DISABLE 0 -#define DE_CONTROL_TRANSPARENCY_ENABLE 1 -#define DE_CONTROL_ROP 7:0 - -/* Pseudo fields. */ - -#define DE_CONTROL_SHORT_STROKE_DIR 27:24 -#define DE_CONTROL_SHORT_STROKE_DIR_225 0 -#define DE_CONTROL_SHORT_STROKE_DIR_135 1 -#define DE_CONTROL_SHORT_STROKE_DIR_315 2 -#define DE_CONTROL_SHORT_STROKE_DIR_45 3 -#define DE_CONTROL_SHORT_STROKE_DIR_270 4 -#define DE_CONTROL_SHORT_STROKE_DIR_90 5 -#define DE_CONTROL_SHORT_STROKE_DIR_180 8 -#define DE_CONTROL_SHORT_STROKE_DIR_0 10 -#define DE_CONTROL_ROTATION 25:24 -#define DE_CONTROL_ROTATION_0 0 -#define DE_CONTROL_ROTATION_270 1 -#define DE_CONTROL_ROTATION_90 2 -#define DE_CONTROL_ROTATION_180 3 - -#define DE_PITCH 0x100010 -#define DE_PITCH_DESTINATION 28:16 -#define DE_PITCH_SOURCE 12:0 - -#define DE_FOREGROUND 0x100014 -#define DE_FOREGROUND_COLOR 31:0 - -#define DE_BACKGROUND 0x100018 -#define DE_BACKGROUND_COLOR 31:0 - -#define DE_STRETCH_FORMAT 0x10001C -#define DE_STRETCH_FORMAT_PATTERN_XY 30:30 -#define DE_STRETCH_FORMAT_PATTERN_XY_NORMAL 0 -#define DE_STRETCH_FORMAT_PATTERN_XY_OVERWRITE 1 -#define DE_STRETCH_FORMAT_PATTERN_Y 29:27 -#define DE_STRETCH_FORMAT_PATTERN_X 25:23 -#define DE_STRETCH_FORMAT_PIXEL_FORMAT 21:20 -#define DE_STRETCH_FORMAT_PIXEL_FORMAT_8 0 -#define DE_STRETCH_FORMAT_PIXEL_FORMAT_16 1 -#define DE_STRETCH_FORMAT_PIXEL_FORMAT_32 2 -#define DE_STRETCH_FORMAT_ADDRESSING 19:16 -#define DE_STRETCH_FORMAT_ADDRESSING_XY 0 -#define DE_STRETCH_FORMAT_ADDRESSING_LINEAR 15 -#define DE_STRETCH_FORMAT_SOURCE_HEIGHT 11:0 - -#define DE_COLOR_COMPARE 0x100020 -#define DE_COLOR_COMPARE_COLOR 23:0 - -#define DE_COLOR_COMPARE_MASK 0x100024 -#define DE_COLOR_COMPARE_MASK_MASKS 23:0 - -#define DE_MASKS 0x100028 -#define DE_MASKS_BYTE_MASK 31:16 -#define DE_MASKS_BIT_MASK 15:0 - -#define DE_CLIP_TL 0x10002C -#define DE_CLIP_TL_TOP 31:16 -#define DE_CLIP_TL_STATUS 13:13 -#define DE_CLIP_TL_STATUS_DISABLE 0 -#define DE_CLIP_TL_STATUS_ENABLE 1 -#define DE_CLIP_TL_INHIBIT 12:12 -#define DE_CLIP_TL_INHIBIT_OUTSIDE 0 -#define DE_CLIP_TL_INHIBIT_INSIDE 1 -#define DE_CLIP_TL_LEFT 11:0 - -#define DE_CLIP_BR 0x100030 -#define DE_CLIP_BR_BOTTOM 31:16 -#define DE_CLIP_BR_RIGHT 12:0 - -#define DE_MONO_PATTERN_LOW 0x100034 -#define DE_MONO_PATTERN_LOW_PATTERN 31:0 - -#define DE_MONO_PATTERN_HIGH 0x100038 -#define DE_MONO_PATTERN_HIGH_PATTERN 31:0 - -#define DE_WINDOW_WIDTH 0x10003C -#define DE_WINDOW_WIDTH_DESTINATION 28:16 -#define DE_WINDOW_WIDTH_SOURCE 12:0 - -#define DE_WINDOW_SOURCE_BASE 0x100040 -#define DE_WINDOW_SOURCE_BASE_EXT 27:27 -#define DE_WINDOW_SOURCE_BASE_EXT_LOCAL 0 -#define DE_WINDOW_SOURCE_BASE_EXT_EXTERNAL 1 -#define DE_WINDOW_SOURCE_BASE_CS 26:26 -#define DE_WINDOW_SOURCE_BASE_CS_0 0 -#define DE_WINDOW_SOURCE_BASE_CS_1 1 -#define DE_WINDOW_SOURCE_BASE_ADDRESS 25:0 - -#define DE_WINDOW_DESTINATION_BASE 0x100044 -#define DE_WINDOW_DESTINATION_BASE_EXT 27:27 -#define DE_WINDOW_DESTINATION_BASE_EXT_LOCAL 0 -#define DE_WINDOW_DESTINATION_BASE_EXT_EXTERNAL 1 -#define DE_WINDOW_DESTINATION_BASE_CS 26:26 -#define DE_WINDOW_DESTINATION_BASE_CS_0 0 -#define DE_WINDOW_DESTINATION_BASE_CS_1 1 -#define DE_WINDOW_DESTINATION_BASE_ADDRESS 25:0 - -#define DE_ALPHA 0x100048 -#define DE_ALPHA_VALUE 7:0 - -#define DE_WRAP 0x10004C -#define DE_WRAP_X 31:16 -#define DE_WRAP_Y 15:0 - -#define DE_STATUS 0x100050 -#define DE_STATUS_CSC 1:1 -#define DE_STATUS_CSC_CLEAR 0 -#define DE_STATUS_CSC_NOT_ACTIVE 0 -#define DE_STATUS_CSC_ACTIVE 1 -#define DE_STATUS_2D 0:0 -#define DE_STATUS_2D_CLEAR 0 -#define DE_STATUS_2D_NOT_ACTIVE 0 -#define DE_STATUS_2D_ACTIVE 1 -#endif /* Color Space Conversion registers. */ #define CSC_Y_SOURCE_BASE 0x1000C8 diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 37cdd5b5f19e..8d644a7cba52 100644 --- a/drivers/staging/sm750fb/ddk750_swi2c.c +++ b/drivers/staging/sm750fb/ddk750_swi2c.c @@ -90,20 +90,17 @@ static void sw_i2c_wait(void) * never finish. * use non-ultimate for loop below is safe * */ -#if 0 + /* Change wait algorithm to use PCI bus clock, it's more reliable than counter loop .. write 0x61 to 0x3ce and read from 0x3cf */ - while (peekIO(0x3ce, 0x61) & 0x10); -#else int i, tmp; for (i = 0; i < 600; i++) { tmp = i; tmp += i; } -#endif } /* diff --git a/drivers/staging/sm750fb/sm750_accel.c b/drivers/staging/sm750fb/sm750_accel.c index b623fbf223f4..43e59725920c 100644 --- a/drivers/staging/sm750fb/sm750_accel.c +++ b/drivers/staging/sm750fb/sm750_accel.c @@ -233,20 +233,10 @@ unsigned int rop2) /* ROP value */ */ write_dpr(accel, DE_WINDOW_DESTINATION_BASE, dBase); /* dpr44 */ -#if 0 /* Program pitch (distance between the 1st points of two adjacent lines). Note that input pitch is BYTE value, but the 2D Pitch register uses pixel values. Need Byte to pixel conversion. */ - if (Bpp == 3) { - sx *= 3; - dx *= 3; - width *= 3; - write_dpr(accel, DE_PITCH, - FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch) | - FIELD_VALUE(0, DE_PITCH, SOURCE, sPitch)); /* dpr10 */ - } else -#endif { write_dpr(accel, DE_PITCH, FIELD_VALUE(0, DE_PITCH, DESTINATION, (dPitch/Bpp)) | @@ -344,21 +334,10 @@ int hw_imageblit(struct lynx_accel *accel, It is an address offset (128 bit aligned) from the beginning of frame buffer. */ write_dpr(accel, DE_WINDOW_DESTINATION_BASE, dBase); -#if 0 /* Program pitch (distance between the 1st points of two adjacent lines). Note that input pitch is BYTE value, but the 2D Pitch register uses pixel values. Need Byte to pixel conversion. */ - if (bytePerPixel == 3) { - dx *= 3; - width *= 3; - startBit *= 3; - write_dpr(accel, DE_PITCH, - FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch) | - FIELD_VALUE(0, DE_PITCH, SOURCE, dPitch)); /* dpr10 */ - - } else -#endif { write_dpr(accel, DE_PITCH, FIELD_VALUE(0, DE_PITCH, DESTINATION, dPitch/bytePerPixel) | diff --git a/drivers/staging/sm750fb/sm750_cursor.c b/drivers/staging/sm750fb/sm750_cursor.c index 93dd6c10133a..3b7ce9275f51 100644 --- a/drivers/staging/sm750fb/sm750_cursor.c +++ b/drivers/staging/sm750fb/sm750_cursor.c @@ -129,26 +129,6 @@ void hw_cursor_setData(struct lynx_cursor *cursor, mask = *pmsk++; data = 0; - /* either method below works well, - * but method 2 shows no lag - * and method 1 seems a bit wrong*/ -#if 0 - if (rop == ROP_XOR) - opr = mask ^ color; - else - opr = mask & color; - - for (j = 0; j < 8; j++) { - - if (opr & (0x80 >> j)) { - /* use fg color,id = 2 */ - data |= 2 << (j*2); - } else { - /* use bg color,id = 1 */ - data |= 1 << (j*2); - } - } -#else for (j = 0; j < 8; j++) { if (mask & (0x80>>j)) { if (rop == ROP_XOR) @@ -160,15 +140,10 @@ void hw_cursor_setData(struct lynx_cursor *cursor, data |= ((opr & (0x80>>j))?2:1)<<(j*2); } } -#endif iowrite16(data, pbuffer); /* assume pitch is 1,2,4,8,...*/ -#if 0 - if (!((i+1)&(pitch-1))) /* below line equal to is line */ -#else if ((i+1) % pitch == 0) -#endif { /* need a return */ pstart += offset; @@ -209,29 +184,10 @@ void hw_cursor_setData2(struct lynx_cursor *cursor, mask = *pmsk++; data = 0; - /* either method below works well, but method 2 shows no lag */ -#if 0 - if (rop == ROP_XOR) - opr = mask ^ color; - else - opr = mask & color; - - for (j = 0; j < 8; j++) { - - if (opr & (0x80 >> j)) { - /* use fg color,id = 2 */ - data |= 2 << (j*2); - } else { - /* use bg color,id = 1 */ - data |= 1 << (j*2); - } - } -#else for (j = 0; j < 8; j++) { if (mask & (1<vidmem_start, share->vidmem_size); /* reserve the vidmem space of smi adaptor */ -#if 0 - ret = pci_request_region(pdev, 0, _moduleName_); - if (ret) { - pr_err("Can not request PCI regions.\n"); - goto exit; - } -#endif - share->pvMem = ioremap_wc(share->vidmem_start, share->vidmem_size); if (!share->pvMem) { @@ -124,12 +116,6 @@ int hw_sm750_inithw(struct lynx_share *share, struct pci_dev *pdev) FIELD_SET(PEEK32(SYSTEM_CTRL), SYSTEM_CTRL, PCI_BURST, ON)); } - /* sm750 use sii164, it can be setup with default value - * by on power, so initDVIDisp can be skipped */ -#if 0 - ddk750_initDVIDisp(); -#endif - if (getChipType() != SM750LE) { /* does user need CRT ?*/ if (spec_share->state.nocrt) { From 02ab79c80bc4ba5288e84d717ec4f6dc0030c90f Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Tue, 29 Sep 2015 12:22:03 +0100 Subject: [PATCH 0993/2431] staging: comedi: ni_tiocmd: remove unused code Code after a return will never run, removing this dead code. Suggested-by: Greg Kroah-Hartman Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ni_tiocmd.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/ni_tiocmd.c b/drivers/staging/comedi/drivers/ni_tiocmd.c index 9b124b09e914..437f723bb34d 100644 --- a/drivers/staging/comedi/drivers/ni_tiocmd.c +++ b/drivers/staging/comedi/drivers/ni_tiocmd.c @@ -157,12 +157,6 @@ static int ni_tio_output_cmd(struct comedi_subdevice *s) dev_err(counter->counter_dev->dev->class_dev, "output commands not yet implemented.\n"); return -ENOTSUPP; - - counter->mite_chan->dir = COMEDI_OUTPUT; - mite_prep_dma(counter->mite_chan, 32, 32); - ni_tio_configure_dma(counter, true, false); - mite_dma_arm(counter->mite_chan); - return ni_tio_arm(counter, 1, NI_GPCT_ARM_IMMEDIATE); } static int ni_tio_cmd_setup(struct comedi_subdevice *s) From 5bd28f0701ca989629bfeae86e5167b54804bb60 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 29 Sep 2015 11:14:42 +0530 Subject: [PATCH 0994/2431] Staging: most: Use module_i2c_driver Macro module_i2c_driver is used for drivers whose init and exit paths does only register and unregister to i2c API. Remove some boilerplate code by using module_i2c_driver. Problem found using Coccinelle. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-i2c/hdm_i2c.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 7e0c46154bb8..cffea40d09d0 100644 --- a/drivers/staging/most/hdm-i2c/hdm_i2c.c +++ b/drivers/staging/most/hdm-i2c/hdm_i2c.c @@ -423,27 +423,7 @@ static struct i2c_driver i2c_driver = { .id_table = i2c_id, }; -/** - * hdm_i2c_init - Driver Registration Routine - */ -static int __init hdm_i2c_init(void) -{ - pr_info("hdm_i2c_init()\n"); - - return i2c_add_driver(&i2c_driver); -} - -/** - * hdm_i2c_exit - Driver Cleanup Routine - **/ -static void __exit hdm_i2c_exit(void) -{ - i2c_del_driver(&i2c_driver); - pr_info("hdm_i2c_exit()\n"); -} - -module_init(hdm_i2c_init); -module_exit(hdm_i2c_exit); +module_i2c_driver(i2c_driver); MODULE_AUTHOR("Jain Roy Ambi "); MODULE_AUTHOR("Andrey Shvetsov "); From f24f47a4778df876acc2f3204465e4710f575bcf Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:44 -0400 Subject: [PATCH 0995/2431] staging/lustre: Remove unused target_print_req() This is a server-side request printing function, so we don't really need it on the client. Signed-off-by: Oleg Drokin Reported-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lprocfs_status.h | 4 --- .../lustre/lustre/ptlrpc/lproc_ptlrpc.c | 30 ------------------- 2 files changed, 34 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 5262b4f21613..22f3777c72b8 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -720,10 +720,6 @@ ssize_t lustre_attr_store(struct kobject *kobj, struct attribute *attr, extern const struct sysfs_ops lustre_sysfs_ops; -/* lproc_ptlrpc.c */ -struct ptlrpc_request; -void target_print_req(void *seq_file, struct ptlrpc_request *req); - /* all quota proc functions */ int lprocfs_quota_rd_bunit(char *page, char **start, loff_t off, int count, diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index d66a7b877d5d..3a212b4be9a1 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -890,36 +890,6 @@ ptlrpc_lprocfs_svc_req_history_next(struct seq_file *s, return NULL; } -/* common ost/mdt so_req_printer */ -void target_print_req(void *seq_file, struct ptlrpc_request *req) -{ - /* Called holding srv_lock with irqs disabled. - * Print specific req contents and a newline. - * CAVEAT EMPTOR: check request message length before printing!!! - * You might have received any old crap so you must be just as - * careful here as the service's request parser!!! */ - struct seq_file *sf = seq_file; - - switch (req->rq_phase) { - case RQ_PHASE_NEW: - /* still awaiting a service thread's attention, or rejected - * because the generic request message didn't unpack */ - seq_printf(sf, "\n"); - break; - case RQ_PHASE_INTERPRET: - /* being handled, so basic msg swabbed, and opc is valid - * but racing with mds_handle() */ - case RQ_PHASE_COMPLETE: - /* been handled by mds_handle() reply state possibly still - * volatile */ - seq_printf(sf, "opc %d\n", lustre_msg_get_opc(req->rq_reqmsg)); - break; - default: - DEBUG_REQ(D_ERROR, req, "bad phase %d", req->rq_phase); - } -} -EXPORT_SYMBOL(target_print_req); - static int ptlrpc_lprocfs_svc_req_history_show(struct seq_file *s, void *iter) { struct ptlrpc_service *svc = s->private; From 600362f9170af4b3370c8e43cddb81a8182a7998 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:45 -0400 Subject: [PATCH 0996/2431] staging/lustre: Remove unused lustre_acl_xattr_merge2posix() Apparently this is only used only on the metadata server. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_eacl.h | 4 - drivers/staging/lustre/lustre/obdclass/acl.c | 119 ------------------ 2 files changed, 123 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_eacl.h b/drivers/staging/lustre/lustre/include/lustre_eacl.h index 0f8f76c43ee1..499f9c8e1ae1 100644 --- a/drivers/staging/lustre/lustre/include/lustre_eacl.h +++ b/drivers/staging/lustre/lustre/include/lustre_eacl.h @@ -80,10 +80,6 @@ extern void lustre_posix_acl_xattr_free(posix_acl_xattr_header *header, int size); extern void lustre_ext_acl_xattr_free(ext_acl_xattr_header *header); -extern int -lustre_acl_xattr_merge2posix(posix_acl_xattr_header *posix_header, int size, - ext_acl_xattr_header *ext_header, - posix_acl_xattr_header **out); extern ext_acl_xattr_header * lustre_acl_xattr_merge2ext(posix_acl_xattr_header *posix_header, int size, ext_acl_xattr_header *ext_header); diff --git a/drivers/staging/lustre/lustre/obdclass/acl.c b/drivers/staging/lustre/lustre/obdclass/acl.c index 933456c502d1..1dace1419530 100644 --- a/drivers/staging/lustre/lustre/obdclass/acl.c +++ b/drivers/staging/lustre/lustre/obdclass/acl.c @@ -286,125 +286,6 @@ again: return NULL; } -/* - * Merge the posix ACL and the extended ACL into new posix ACL. - */ -int lustre_acl_xattr_merge2posix(posix_acl_xattr_header *posix_header, int size, - ext_acl_xattr_header *ext_header, - posix_acl_xattr_header **out) -{ - int posix_count, posix_size, i, j; - int ext_count = le32_to_cpu(ext_header->a_count), pos = 0, rc = 0; - posix_acl_xattr_entry pe = {ACL_MASK, 0, ACL_UNDEFINED_ID}; - posix_acl_xattr_header *new; - ext_acl_xattr_entry *ee, ae; - - lustre_posix_acl_cpu_to_le(&pe, &pe); - ee = lustre_ext_acl_xattr_search(ext_header, &pe, &pos); - if (ee == NULL || le32_to_cpu(ee->e_stat) == ES_DEL) { - /* there are only base ACL entries at most. */ - posix_count = 3; - posix_size = CFS_ACL_XATTR_SIZE(posix_count, posix_acl_xattr); - new = kzalloc(posix_size, GFP_NOFS); - if (unlikely(new == NULL)) - return -ENOMEM; - - new->a_version = cpu_to_le32(CFS_ACL_XATTR_VERSION); - for (i = 0, j = 0; i < ext_count; i++) { - lustre_ext_acl_le_to_cpu(&ae, - &ext_header->a_entries[i]); - switch (ae.e_tag) { - case ACL_USER_OBJ: - case ACL_GROUP_OBJ: - case ACL_OTHER: - if (ae.e_id != ACL_UNDEFINED_ID) { - rc = -EIO; - goto _out; - } - - if (ae.e_stat != ES_DEL) { - new->a_entries[j].e_tag = - ext_header->a_entries[i].e_tag; - new->a_entries[j].e_perm = - ext_header->a_entries[i].e_perm; - new->a_entries[j++].e_id = - ext_header->a_entries[i].e_id; - } - break; - case ACL_MASK: - case ACL_USER: - case ACL_GROUP: - if (ae.e_stat == ES_DEL) - break; - default: - rc = -EIO; - goto _out; - } - } - } else { - /* maybe there are valid ACL_USER or ACL_GROUP entries in the - * original server-side ACL, they are regarded as ES_UNC stat.*/ - int ori_posix_count; - - if (unlikely(size < 0)) - return -EINVAL; - else if (!size) - ori_posix_count = 0; - else - ori_posix_count = - CFS_ACL_XATTR_COUNT(size, posix_acl_xattr); - posix_count = ori_posix_count + ext_count; - posix_size = - CFS_ACL_XATTR_SIZE(posix_count, posix_acl_xattr); - new = kzalloc(posix_size, GFP_NOFS); - if (unlikely(new == NULL)) - return -ENOMEM; - - new->a_version = cpu_to_le32(CFS_ACL_XATTR_VERSION); - /* 1. process the unchanged ACL entries - * in the original server-side ACL. */ - pos = 0; - for (i = 0, j = 0; i < ori_posix_count; i++) { - ee = lustre_ext_acl_xattr_search(ext_header, - &posix_header->a_entries[i], &pos); - if (ee == NULL) - memcpy(&new->a_entries[j++], - &posix_header->a_entries[i], - sizeof(posix_acl_xattr_entry)); - } - - /* 2. process the non-deleted entries - * from client-side extended ACL. */ - for (i = 0; i < ext_count; i++) { - if (le16_to_cpu(ext_header->a_entries[i].e_stat) != - ES_DEL) { - new->a_entries[j].e_tag = - ext_header->a_entries[i].e_tag; - new->a_entries[j].e_perm = - ext_header->a_entries[i].e_perm; - new->a_entries[j++].e_id = - ext_header->a_entries[i].e_id; - } - } - } - - /* free unused space. */ - rc = lustre_posix_acl_xattr_reduce_space(&new, posix_count, j); - if (rc >= 0) { - posix_size = rc; - *out = new; - rc = 0; - } - -_out: - if (rc) { - kfree(new); - posix_size = rc; - } - return posix_size; -} -EXPORT_SYMBOL(lustre_acl_xattr_merge2posix); - /* * Merge the posix ACL and the extended ACL into new extended ACL. */ From e64674d093ed58e507cf93647e690c2a11541181 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:46 -0400 Subject: [PATCH 0997/2431] staging/lustre/ptlrpc: Remove server-specific health checks ptlrpc_service_health_check is only used on a service, so it makes no point to retain it in the client code. Also removing it's helpers: ptlrpc_svcpt_health_check and ptlrpc_nrs_req_peek_nolock Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_net.h | 1 - .../lustre/lustre/ptlrpc/ptlrpc_internal.h | 6 -- .../staging/lustre/lustre/ptlrpc/service.c | 58 ------------------- 3 files changed, 65 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index e929c934cfbf..a9286319fc1d 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2541,7 +2541,6 @@ int ptlrpc_start_threads(struct ptlrpc_service *svc); int ptlrpc_unregister_service(struct ptlrpc_service *service); int liblustre_check_services(void *arg); void ptlrpc_daemonize(char *name); -int ptlrpc_service_health_check(struct ptlrpc_service *); void ptlrpc_server_drop_request(struct ptlrpc_request *req); void ptlrpc_request_change_export(struct ptlrpc_request *req, struct obd_export *export); diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h index 059ad96bb0bf..a3608a961f4a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h @@ -137,12 +137,6 @@ ptlrpc_nrs_req_get_nolock(struct ptlrpc_service_part *svcpt, bool hp, return ptlrpc_nrs_req_get_nolock0(svcpt, hp, false, force); } -static inline struct ptlrpc_request * -ptlrpc_nrs_req_peek_nolock(struct ptlrpc_service_part *svcpt, bool hp) -{ - return ptlrpc_nrs_req_get_nolock0(svcpt, hp, true, false); -} - void ptlrpc_nrs_req_del_nolock(struct ptlrpc_request *req); bool ptlrpc_nrs_req_pending_nolock(struct ptlrpc_service_part *svcpt, bool hp); diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 326f89e0ccc7..cdc7e62fde2b 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -2977,61 +2977,3 @@ int ptlrpc_unregister_service(struct ptlrpc_service *service) return 0; } EXPORT_SYMBOL(ptlrpc_unregister_service); - -/** - * Returns 0 if the service is healthy. - * - * Right now, it just checks to make sure that requests aren't languishing - * in the queue. We'll use this health check to govern whether a node needs - * to be shot, so it's intentionally non-aggressive. */ -static int ptlrpc_svcpt_health_check(struct ptlrpc_service_part *svcpt) -{ - struct ptlrpc_request *request = NULL; - struct timespec64 right_now; - struct timespec64 timediff; - - ktime_get_real_ts64(&right_now); - - spin_lock(&svcpt->scp_req_lock); - /* How long has the next entry been waiting? */ - if (ptlrpc_server_high_pending(svcpt, true)) - request = ptlrpc_nrs_req_peek_nolock(svcpt, true); - else if (ptlrpc_server_normal_pending(svcpt, true)) - request = ptlrpc_nrs_req_peek_nolock(svcpt, false); - - if (request == NULL) { - spin_unlock(&svcpt->scp_req_lock); - return 0; - } - - timediff = timespec64_sub(right_now, request->rq_arrival_time); - spin_unlock(&svcpt->scp_req_lock); - - if ((timediff.tv_sec) > - (AT_OFF ? obd_timeout * 3 / 2 : at_max)) { - CERROR("%s: unhealthy - request has been waiting %llds\n", - svcpt->scp_service->srv_name, (s64)timediff.tv_sec); - return -1; - } - - return 0; -} - -int -ptlrpc_service_health_check(struct ptlrpc_service *svc) -{ - struct ptlrpc_service_part *svcpt; - int i; - - if (svc == NULL) - return 0; - - ptlrpc_service_for_each_part(svcpt, i, svc) { - int rc = ptlrpc_svcpt_health_check(svcpt); - - if (rc != 0) - return rc; - } - return 0; -} -EXPORT_SYMBOL(ptlrpc_service_health_check); From a0744613b234a59a53cad6302e6925ee0874bb51 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:47 -0400 Subject: [PATCH 0998/2431] staging/lustre: Remove unused req_capsule_server_grow It's only used on the server Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_req_layout.h | 3 - drivers/staging/lustre/lustre/ptlrpc/layout.c | 62 ------------------- 2 files changed, 65 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_req_layout.h b/drivers/staging/lustre/lustre/include/lustre_req_layout.h index c6457b27c4e7..04c00761c861 100644 --- a/drivers/staging/lustre/lustre/include/lustre_req_layout.h +++ b/drivers/staging/lustre/lustre/include/lustre_req_layout.h @@ -129,9 +129,6 @@ void req_capsule_shrink(struct req_capsule *pill, const struct req_msg_field *field, unsigned int newlen, enum req_location loc); -int req_capsule_server_grow(struct req_capsule *pill, - const struct req_msg_field *field, - unsigned int newlen); int req_layout_init(void); void req_layout_fini(void); diff --git a/drivers/staging/lustre/lustre/ptlrpc/layout.c b/drivers/staging/lustre/lustre/ptlrpc/layout.c index 5d19cfcfe7e9..4ddbe0d7dd7a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/layout.c +++ b/drivers/staging/lustre/lustre/ptlrpc/layout.c @@ -2376,67 +2376,5 @@ void req_capsule_shrink(struct req_capsule *pill, } EXPORT_SYMBOL(req_capsule_shrink); -int req_capsule_server_grow(struct req_capsule *pill, - const struct req_msg_field *field, - unsigned int newlen) -{ - struct ptlrpc_reply_state *rs = pill->rc_req->rq_reply_state, *nrs; - char *from, *to; - int offset, len, rc; - - LASSERT(pill->rc_fmt != NULL); - LASSERT(__req_format_is_sane(pill->rc_fmt)); - LASSERT(req_capsule_has_field(pill, field, RCL_SERVER)); - LASSERT(req_capsule_field_present(pill, field, RCL_SERVER)); - - len = req_capsule_get_size(pill, field, RCL_SERVER); - offset = __req_capsule_offset(pill, field, RCL_SERVER); - if (pill->rc_req->rq_repbuf_len >= - lustre_packed_msg_size(pill->rc_req->rq_repmsg) - len + newlen) - CERROR("Inplace repack might be done\n"); - - pill->rc_req->rq_reply_state = NULL; - req_capsule_set_size(pill, field, RCL_SERVER, newlen); - rc = req_capsule_server_pack(pill); - if (rc) { - /* put old rs back, the caller will decide what to do */ - pill->rc_req->rq_reply_state = rs; - return rc; - } - nrs = pill->rc_req->rq_reply_state; - /* Now we need only buffers, copy first chunk */ - to = lustre_msg_buf(nrs->rs_msg, 0, 0); - from = lustre_msg_buf(rs->rs_msg, 0, 0); - len = (char *)lustre_msg_buf(rs->rs_msg, offset, 0) - from; - memcpy(to, from, len); - /* check if we have tail and copy it too */ - if (rs->rs_msg->lm_bufcount > offset + 1) { - to = lustre_msg_buf(nrs->rs_msg, offset + 1, 0); - from = lustre_msg_buf(rs->rs_msg, offset + 1, 0); - offset = rs->rs_msg->lm_bufcount - 1; - len = (char *)lustre_msg_buf(rs->rs_msg, offset, 0) + - cfs_size_round(rs->rs_msg->lm_buflens[offset]) - from; - memcpy(to, from, len); - } - /* drop old reply if everything is fine */ - if (rs->rs_difficult) { - /* copy rs data */ - int i; - - nrs->rs_difficult = 1; - nrs->rs_no_ack = rs->rs_no_ack; - for (i = 0; i < rs->rs_nlocks; i++) { - nrs->rs_locks[i] = rs->rs_locks[i]; - nrs->rs_modes[i] = rs->rs_modes[i]; - nrs->rs_nlocks++; - } - rs->rs_nlocks = 0; - rs->rs_difficult = 0; - rs->rs_no_ack = 0; - } - ptlrpc_rs_decref(rs); - return 0; -} -EXPORT_SYMBOL(req_capsule_server_grow); /* __REQ_LAYOUT_USER__ */ #endif From dab49b4062f51346a88a7426132e76c1b4d23ad4 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:48 -0400 Subject: [PATCH 0999/2431] staging/lustre: Remove unused reply state batches code rs_batch is used on the server only. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_net.h | 6 +- .../staging/lustre/lustre/ptlrpc/service.c | 145 ------------------ 2 files changed, 1 insertion(+), 150 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index a9286319fc1d..e7faf0e3ec11 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -429,8 +429,7 @@ struct ptlrpc_reply_state { unsigned long rs_on_net:1; /* reply_out_callback pending? */ unsigned long rs_prealloc:1; /* rs from prealloc list */ unsigned long rs_committed:1;/* the transaction was committed - and the rs was dispatched - by ptlrpc_commit_replies */ + * and the rs was dispatched */ /** Size of the state */ int rs_size; /** opcode */ @@ -2525,9 +2524,6 @@ struct ptlrpc_service_conf { * * @{ */ -void ptlrpc_save_lock(struct ptlrpc_request *req, - struct lustre_handle *lock, int mode, int no_ack); -void ptlrpc_commit_replies(struct obd_export *exp); void ptlrpc_dispatch_difficult_reply(struct ptlrpc_reply_state *rs); void ptlrpc_schedule_difficult_reply(struct ptlrpc_reply_state *rs); int ptlrpc_hpreq_handler(struct ptlrpc_request *req); diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index cdc7e62fde2b..506fc365a305 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -179,33 +179,6 @@ ptlrpc_grow_req_bufs(struct ptlrpc_service_part *svcpt, int post) return rc; } -/** - * Part of Rep-Ack logic. - * Puts a lock and its mode into reply state associated to request reply. - */ -void -ptlrpc_save_lock(struct ptlrpc_request *req, - struct lustre_handle *lock, int mode, int no_ack) -{ - struct ptlrpc_reply_state *rs = req->rq_reply_state; - int idx; - - LASSERT(rs != NULL); - LASSERT(rs->rs_nlocks < RS_MAX_LOCKS); - - if (req->rq_export->exp_disconnected) { - ldlm_lock_decref(lock, mode); - } else { - idx = rs->rs_nlocks++; - rs->rs_locks[idx] = *lock; - rs->rs_modes[idx] = mode; - rs->rs_difficult = 1; - rs->rs_no_ack = !!no_ack; - } -} -EXPORT_SYMBOL(ptlrpc_save_lock); - - struct ptlrpc_hr_partition; struct ptlrpc_hr_thread { @@ -246,31 +219,9 @@ struct ptlrpc_hr_service { struct ptlrpc_hr_partition **hr_partitions; }; -struct rs_batch { - struct list_head rsb_replies; - unsigned int rsb_n_replies; - struct ptlrpc_service_part *rsb_svcpt; -}; - /** reply handling service. */ static struct ptlrpc_hr_service ptlrpc_hr; -/** - * maximum number of replies scheduled in one batch - */ -#define MAX_SCHEDULED 256 - -/** - * Initialize a reply batch. - * - * \param b batch - */ -static void rs_batch_init(struct rs_batch *b) -{ - memset(b, 0, sizeof(*b)); - INIT_LIST_HEAD(&b->rsb_replies); -} - /** * Choose an hr thread to dispatch requests to. */ @@ -296,76 +247,6 @@ ptlrpc_hr_select(struct ptlrpc_service_part *svcpt) return &hrp->hrp_thrs[rotor % hrp->hrp_nthrs]; } -/** - * Dispatch all replies accumulated in the batch to one from - * dedicated reply handling threads. - * - * \param b batch - */ -static void rs_batch_dispatch(struct rs_batch *b) -{ - if (b->rsb_n_replies != 0) { - struct ptlrpc_hr_thread *hrt; - - hrt = ptlrpc_hr_select(b->rsb_svcpt); - - spin_lock(&hrt->hrt_lock); - list_splice_init(&b->rsb_replies, &hrt->hrt_queue); - spin_unlock(&hrt->hrt_lock); - - wake_up(&hrt->hrt_waitq); - b->rsb_n_replies = 0; - } -} - -/** - * Add a reply to a batch. - * Add one reply object to a batch, schedule batched replies if overload. - * - * \param b batch - * \param rs reply - */ -static void rs_batch_add(struct rs_batch *b, struct ptlrpc_reply_state *rs) -{ - struct ptlrpc_service_part *svcpt = rs->rs_svcpt; - - if (svcpt != b->rsb_svcpt || b->rsb_n_replies >= MAX_SCHEDULED) { - if (b->rsb_svcpt != NULL) { - rs_batch_dispatch(b); - spin_unlock(&b->rsb_svcpt->scp_rep_lock); - } - spin_lock(&svcpt->scp_rep_lock); - b->rsb_svcpt = svcpt; - } - spin_lock(&rs->rs_lock); - rs->rs_scheduled_ever = 1; - if (rs->rs_scheduled == 0) { - list_move(&rs->rs_list, &b->rsb_replies); - rs->rs_scheduled = 1; - b->rsb_n_replies++; - } - rs->rs_committed = 1; - spin_unlock(&rs->rs_lock); -} - -/** - * Reply batch finalization. - * Dispatch remaining replies from the batch - * and release remaining spinlock. - * - * \param b batch - */ -static void rs_batch_fini(struct rs_batch *b) -{ - if (b->rsb_svcpt != NULL) { - rs_batch_dispatch(b); - spin_unlock(&b->rsb_svcpt->scp_rep_lock); - } -} - -#define DECLARE_RS_BATCH(b) struct rs_batch b - - /** * Put reply state into a queue for processing because we received * ACK from the client @@ -403,32 +284,6 @@ ptlrpc_schedule_difficult_reply(struct ptlrpc_reply_state *rs) } EXPORT_SYMBOL(ptlrpc_schedule_difficult_reply); -void ptlrpc_commit_replies(struct obd_export *exp) -{ - struct ptlrpc_reply_state *rs, *nxt; - DECLARE_RS_BATCH(batch); - - rs_batch_init(&batch); - /* Find any replies that have been committed and get their service - * to attend to complete them. */ - - /* CAVEAT EMPTOR: spinlock ordering!!! */ - spin_lock(&exp->exp_uncommitted_replies_lock); - list_for_each_entry_safe(rs, nxt, &exp->exp_uncommitted_replies, - rs_obd_list) { - LASSERT(rs->rs_difficult); - /* VBR: per-export last_committed */ - LASSERT(rs->rs_export); - if (rs->rs_transno <= exp->exp_last_committed) { - list_del_init(&rs->rs_obd_list); - rs_batch_add(&batch, rs); - } - } - spin_unlock(&exp->exp_uncommitted_replies_lock); - rs_batch_fini(&batch); -} -EXPORT_SYMBOL(ptlrpc_commit_replies); - static int ptlrpc_server_post_idle_rqbds(struct ptlrpc_service_part *svcpt) { From 942f38903c6c00db24d6bfc42af79dba6bd895ba Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:49 -0400 Subject: [PATCH 1000/2431] staging/lustre: Remove high-priority request callbacks This function is only used on the server where real high-priority requests actually exist. This deletes ptlrpc_hpreq_handler() and ptlrpc_request_change_export() Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_net.h | 3 -- .../staging/lustre/lustre/ptlrpc/service.c | 53 ------------------- 2 files changed, 56 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index e7faf0e3ec11..090484b66951 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2526,7 +2526,6 @@ struct ptlrpc_service_conf { */ void ptlrpc_dispatch_difficult_reply(struct ptlrpc_reply_state *rs); void ptlrpc_schedule_difficult_reply(struct ptlrpc_reply_state *rs); -int ptlrpc_hpreq_handler(struct ptlrpc_request *req); struct ptlrpc_service *ptlrpc_register_service( struct ptlrpc_service_conf *conf, struct kset *parent, @@ -2538,8 +2537,6 @@ int ptlrpc_unregister_service(struct ptlrpc_service *service); int liblustre_check_services(void *arg); void ptlrpc_daemonize(char *name); void ptlrpc_server_drop_request(struct ptlrpc_request *req); -void ptlrpc_request_change_export(struct ptlrpc_request *req, - struct obd_export *export); int ptlrpc_hr_init(void); void ptlrpc_hr_fini(void); diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 506fc365a305..353ac22296fa 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -819,35 +819,6 @@ void ptlrpc_server_drop_request(struct ptlrpc_request *req) } } -/** Change request export and move hp request from old export to new */ -void ptlrpc_request_change_export(struct ptlrpc_request *req, - struct obd_export *export) -{ - if (req->rq_export != NULL) { - if (!list_empty(&req->rq_exp_list)) { - /* remove rq_exp_list from last export */ - spin_lock_bh(&req->rq_export->exp_rpc_lock); - list_del_init(&req->rq_exp_list); - spin_unlock_bh(&req->rq_export->exp_rpc_lock); - - /* export has one reference already, so it`s safe to - * add req to export queue here and get another - * reference for request later */ - spin_lock_bh(&export->exp_rpc_lock); - list_add(&req->rq_exp_list, &export->exp_hp_rpcs); - spin_unlock_bh(&export->exp_rpc_lock); - } - class_export_rpc_dec(req->rq_export); - class_export_put(req->rq_export); - } - - /* request takes one export refcount */ - req->rq_export = class_export_get(export); - class_export_rpc_inc(export); - - return; -} - /** * to finish a request: stop sending more early replies, and release * the request. @@ -1329,30 +1300,6 @@ static void ptlrpc_server_hpreq_fini(struct ptlrpc_request *req) } } -static int ptlrpc_hpreq_check(struct ptlrpc_request *req) -{ - return 1; -} - -static struct ptlrpc_hpreq_ops ptlrpc_hpreq_common = { - .hpreq_check = ptlrpc_hpreq_check, -}; - -/* Hi-Priority RPC check by RPC operation code. */ -int ptlrpc_hpreq_handler(struct ptlrpc_request *req) -{ - int opc = lustre_msg_get_opc(req->rq_reqmsg); - - /* Check for export to let only reconnects for not yet evicted - * export to become a HP rpc. */ - if ((req->rq_export != NULL) && - (opc == OBD_PING || opc == MDS_CONNECT || opc == OST_CONNECT)) - req->rq_ops = &ptlrpc_hpreq_common; - - return 0; -} -EXPORT_SYMBOL(ptlrpc_hpreq_handler); - static int ptlrpc_server_request_add(struct ptlrpc_service_part *svcpt, struct ptlrpc_request *req) { From 2d075f05f40a8b5349b54a822a26fd0777d99918 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:50 -0400 Subject: [PATCH 1001/2431] staging/lustre: Remove unused statfs_pack() It's only used on the server. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_lib.h | 1 - .../staging/lustre/lustre/obdclass/statfs_pack.c | 14 -------------- 2 files changed, 15 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index b380359cadab..35175fd3da88 100644 --- a/drivers/staging/lustre/lustre/include/lustre_lib.h +++ b/drivers/staging/lustre/lustre/include/lustre_lib.h @@ -100,7 +100,6 @@ struct obd_client_handle { #define OBD_CLIENT_HANDLE_MAGIC 0xd15ea5ed /* statfs_pack.c */ -void statfs_pack(struct obd_statfs *osfs, struct kstatfs *sfs); void statfs_unpack(struct kstatfs *sfs, struct obd_statfs *osfs); /* diff --git a/drivers/staging/lustre/lustre/obdclass/statfs_pack.c b/drivers/staging/lustre/lustre/obdclass/statfs_pack.c index cc785ab3f29a..fb4e3ae845e0 100644 --- a/drivers/staging/lustre/lustre/obdclass/statfs_pack.c +++ b/drivers/staging/lustre/lustre/obdclass/statfs_pack.c @@ -46,20 +46,6 @@ #include "../include/obd_support.h" #include "../include/obd_class.h" -void statfs_pack(struct obd_statfs *osfs, struct kstatfs *sfs) -{ - memset(osfs, 0, sizeof(*osfs)); - osfs->os_type = sfs->f_type; - osfs->os_blocks = sfs->f_blocks; - osfs->os_bfree = sfs->f_bfree; - osfs->os_bavail = sfs->f_bavail; - osfs->os_files = sfs->f_files; - osfs->os_ffree = sfs->f_ffree; - osfs->os_bsize = sfs->f_bsize; - osfs->os_namelen = sfs->f_namelen; -} -EXPORT_SYMBOL(statfs_pack); - void statfs_unpack(struct kstatfs *sfs, struct obd_statfs *osfs) { memset(sfs, 0, sizeof(*sfs)); From d5febc9916156226f519be65a32648c0c4a699ac Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:51 -0400 Subject: [PATCH 1002/2431] staging/lustre: Remove unused ptlrpcd_add_rqset() No point in retaining it if it's unused. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_net.h | 1 - .../staging/lustre/lustre/ptlrpc/ptlrpcd.c | 42 ------------------- 2 files changed, 43 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 090484b66951..6df3e70af5fd 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2902,7 +2902,6 @@ void ptlrpcd_stop(struct ptlrpcd_ctl *pc, int force); void ptlrpcd_free(struct ptlrpcd_ctl *pc); void ptlrpcd_wake(struct ptlrpc_request *req); void ptlrpcd_add_req(struct ptlrpc_request *req); -void ptlrpcd_add_rqset(struct ptlrpc_request_set *set); int ptlrpcd_addref(void); void ptlrpcd_decref(void); diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c b/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c index 00efdbf40f46..ce036a1ac466 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c @@ -195,48 +195,6 @@ ptlrpcd_select_pc(struct ptlrpc_request *req) return &pd->pd_threads[idx]; } -/** - * Move all request from an existing request set to the ptlrpcd queue. - * All requests from the set must be in phase RQ_PHASE_NEW. - */ -void ptlrpcd_add_rqset(struct ptlrpc_request_set *set) -{ - struct list_head *tmp, *pos; - struct ptlrpcd_ctl *pc; - struct ptlrpc_request_set *new; - int count, i; - - pc = ptlrpcd_select_pc(NULL); - new = pc->pc_set; - - list_for_each_safe(pos, tmp, &set->set_requests) { - struct ptlrpc_request *req = - list_entry(pos, struct ptlrpc_request, - rq_set_chain); - - LASSERT(req->rq_phase == RQ_PHASE_NEW); - req->rq_set = new; - req->rq_queued_time = cfs_time_current(); - } - - spin_lock(&new->set_new_req_lock); - list_splice_init(&set->set_requests, &new->set_new_requests); - i = atomic_read(&set->set_remaining); - count = atomic_add_return(i, &new->set_new_count); - atomic_set(&set->set_remaining, 0); - spin_unlock(&new->set_new_req_lock); - if (count == i) { - wake_up(&new->set_waitq); - - /* XXX: It maybe unnecessary to wakeup all the partners. But to - * guarantee the async RPC can be processed ASAP, we have - * no other better choice. It maybe fixed in future. */ - for (i = 0; i < pc->pc_npartners; i++) - wake_up(&pc->pc_partners[i]->pc_set->set_waitq); - } -} -EXPORT_SYMBOL(ptlrpcd_add_rqset); - /** * Return transferred RPCs count. */ From a83a765d14df24c8fa0fc500d24b0334638ee828 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:52 -0400 Subject: [PATCH 1003/2431] staging/lustre: Remove unused functions and definitions from cl_object cl_object_header_fini, cl_object_has_locks, cl_attr2lvb, cl_page_list_own, cl_page_list_unmap, cl_2queue_assume, cl_io_print, cl_enqueue, also cleanup extern declarations in cl_object.h Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/cl_object.h | 26 -------- .../staging/lustre/lustre/obdclass/cl_io.c | 65 ------------------- .../staging/lustre/lustre/obdclass/cl_lock.c | 26 -------- .../lustre/lustre/obdclass/cl_object.c | 41 ------------ 4 files changed, 158 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index b2366ca8b863..b0733134ee48 100644 --- a/drivers/staging/lustre/lustre/include/cl_object.h +++ b/drivers/staging/lustre/lustre/include/cl_object.h @@ -2733,7 +2733,6 @@ struct cl_object *cl_object_find(const struct lu_env *env, struct cl_device *cd, const struct cl_object_conf *c); int cl_object_header_init(struct cl_object_header *h); -void cl_object_header_fini(struct cl_object_header *h); void cl_object_put (const struct lu_env *env, struct cl_object *o); void cl_object_get (struct cl_object *o); void cl_object_attr_lock (struct cl_object *o); @@ -2748,7 +2747,6 @@ int cl_conf_set (const struct lu_env *env, struct cl_object *obj, const struct cl_object_conf *conf); void cl_object_prune (const struct lu_env *env, struct cl_object *obj); void cl_object_kill (const struct lu_env *env, struct cl_object *obj); -int cl_object_has_locks (struct cl_object *obj); /** * Returns true, iff \a o0 and \a o1 are slices of the same object. @@ -2935,10 +2933,6 @@ void cl_lock_release (const struct lu_env *env, struct cl_lock *lock, void cl_lock_user_add (const struct lu_env *env, struct cl_lock *lock); void cl_lock_user_del (const struct lu_env *env, struct cl_lock *lock); -enum cl_lock_state cl_lock_intransit(const struct lu_env *env, - struct cl_lock *lock); -void cl_lock_extransit(const struct lu_env *env, struct cl_lock *lock, - enum cl_lock_state state); int cl_lock_is_intransit(struct cl_lock *lock); int cl_lock_enqueue_wait(const struct lu_env *env, struct cl_lock *lock, @@ -2976,8 +2970,6 @@ int cl_lock_enqueue_wait(const struct lu_env *env, struct cl_lock *lock, * * @{ */ -int cl_enqueue (const struct lu_env *env, struct cl_lock *lock, - struct cl_io *io, __u32 flags); int cl_wait (const struct lu_env *env, struct cl_lock *lock); void cl_unuse (const struct lu_env *env, struct cl_lock *lock); int cl_enqueue_try(const struct lu_env *env, struct cl_lock *lock, @@ -2996,7 +2988,6 @@ int cl_queue_match (const struct list_head *queue, const struct cl_lock_descr *need); void cl_lock_mutex_get (const struct lu_env *env, struct cl_lock *lock); -int cl_lock_mutex_try (const struct lu_env *env, struct cl_lock *lock); void cl_lock_mutex_put (const struct lu_env *env, struct cl_lock *lock); int cl_lock_is_mutexed (struct cl_lock *lock); int cl_lock_nr_mutexed (const struct lu_env *env); @@ -3062,10 +3053,6 @@ int cl_io_submit_rw (const struct lu_env *env, struct cl_io *io, int cl_io_submit_sync (const struct lu_env *env, struct cl_io *io, enum cl_req_type iot, struct cl_2queue *queue, long timeout); -void cl_io_rw_advance (const struct lu_env *env, struct cl_io *io, - size_t nob); -int cl_io_cancel (const struct lu_env *env, struct cl_io *io, - struct cl_page_list *queue); int cl_io_is_going (const struct lu_env *env); /** @@ -3097,9 +3084,6 @@ static inline int cl_io_is_trunc(const struct cl_io *io) struct cl_io *cl_io_top(struct cl_io *io); -void cl_io_print(const struct lu_env *env, void *cookie, - lu_printer_t printer, const struct cl_io *io); - #define CL_IO_SLICE_CLEAN(foo_io, base) \ do { \ typeof(foo_io) __foo_io = (foo_io); \ @@ -3145,22 +3129,14 @@ void cl_page_list_del (const struct lu_env *env, struct cl_page_list *plist, struct cl_page *page); void cl_page_list_disown (const struct lu_env *env, struct cl_io *io, struct cl_page_list *plist); -int cl_page_list_own (const struct lu_env *env, - struct cl_io *io, struct cl_page_list *plist); -void cl_page_list_assume (const struct lu_env *env, - struct cl_io *io, struct cl_page_list *plist); void cl_page_list_discard(const struct lu_env *env, struct cl_io *io, struct cl_page_list *plist); -int cl_page_list_unmap (const struct lu_env *env, - struct cl_io *io, struct cl_page_list *plist); void cl_page_list_fini (const struct lu_env *env, struct cl_page_list *plist); void cl_2queue_init (struct cl_2queue *queue); void cl_2queue_add (struct cl_2queue *queue, struct cl_page *page); void cl_2queue_disown (const struct lu_env *env, struct cl_io *io, struct cl_2queue *queue); -void cl_2queue_assume (const struct lu_env *env, - struct cl_io *io, struct cl_2queue *queue); void cl_2queue_discard (const struct lu_env *env, struct cl_io *io, struct cl_2queue *queue); void cl_2queue_fini (const struct lu_env *env, struct cl_2queue *queue); @@ -3253,7 +3229,6 @@ struct cl_env_nest { void *cen_cookie; }; -struct lu_env *cl_env_peek (int *refcheck); struct lu_env *cl_env_get (int *refcheck); struct lu_env *cl_env_alloc (int *refcheck, __u32 tags); struct lu_env *cl_env_nested_get (struct cl_env_nest *nest); @@ -3269,7 +3244,6 @@ void cl_env_unplant (struct lu_env *env, int *refcheck); /* * Misc */ -void cl_attr2lvb(struct ost_lvb *lvb, const struct cl_attr *attr); void cl_lvb2attr(struct cl_attr *attr, const struct ost_lvb *lvb); struct cl_device *cl_type_setup(const struct lu_env *env, struct lu_site *site, diff --git a/drivers/staging/lustre/lustre/obdclass/cl_io.c b/drivers/staging/lustre/lustre/obdclass/cl_io.c index da0066a20fa0..a822a0b3464e 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_io.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_io.c @@ -1180,32 +1180,6 @@ void cl_page_list_fini(const struct lu_env *env, struct cl_page_list *plist) } EXPORT_SYMBOL(cl_page_list_fini); -/** - * Owns all pages in a queue. - */ -int cl_page_list_own(const struct lu_env *env, - struct cl_io *io, struct cl_page_list *plist) -{ - struct cl_page *page; - struct cl_page *temp; - pgoff_t index = 0; - int result; - - LINVRNT(plist->pl_owner == current); - - result = 0; - cl_page_list_for_each_safe(page, temp, plist) { - LASSERT(index <= page->cp_index); - index = page->cp_index; - if (cl_page_own(env, io, page) == 0) - result = result ?: page->cp_error; - else - cl_page_list_del(env, plist, page); - } - return result; -} -EXPORT_SYMBOL(cl_page_list_own); - /** * Assumes all pages in a queue. */ @@ -1235,26 +1209,6 @@ void cl_page_list_discard(const struct lu_env *env, struct cl_io *io, } EXPORT_SYMBOL(cl_page_list_discard); -/** - * Unmaps all pages in a queue from user virtual memory. - */ -int cl_page_list_unmap(const struct lu_env *env, struct cl_io *io, - struct cl_page_list *plist) -{ - struct cl_page *page; - int result; - - LINVRNT(plist->pl_owner == current); - result = 0; - cl_page_list_for_each(page, plist) { - result = cl_page_unmap(env, io, page); - if (result != 0) - break; - } - return result; -} -EXPORT_SYMBOL(cl_page_list_unmap); - /** * Initialize dual page queue. */ @@ -1296,17 +1250,6 @@ void cl_2queue_discard(const struct lu_env *env, } EXPORT_SYMBOL(cl_2queue_discard); -/** - * Assume to own the pages in cl_2queue - */ -void cl_2queue_assume(const struct lu_env *env, - struct cl_io *io, struct cl_2queue *queue) -{ - cl_page_list_assume(env, io, &queue->c2_qin); - cl_page_list_assume(env, io, &queue->c2_qout); -} -EXPORT_SYMBOL(cl_2queue_assume); - /** * Finalize both page lists of a 2-queue. */ @@ -1340,14 +1283,6 @@ struct cl_io *cl_io_top(struct cl_io *io) } EXPORT_SYMBOL(cl_io_top); -/** - * Prints human readable representation of \a io to the \a f. - */ -void cl_io_print(const struct lu_env *env, void *cookie, - lu_printer_t printer, const struct cl_io *io) -{ -} - /** * Adds request slice to the compound request. * diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index 7c6583a2e884..4294ca62a9af 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c @@ -1275,32 +1275,6 @@ static int cl_enqueue_locked(const struct lu_env *env, struct cl_lock *lock, return result; } -/** - * Enqueues a lock. - * - * \pre current thread or io owns a hold on lock. - * - * \post ergo(result == 0, lock->users increased) - * \post ergo(result == 0, lock->cll_state == CLS_ENQUEUED || - * lock->cll_state == CLS_HELD) - */ -int cl_enqueue(const struct lu_env *env, struct cl_lock *lock, - struct cl_io *io, __u32 enqflags) -{ - int result; - - cl_lock_lockdep_acquire(env, lock, enqflags); - cl_lock_mutex_get(env, lock); - result = cl_enqueue_locked(env, lock, io, enqflags); - cl_lock_mutex_put(env, lock); - if (result != 0) - cl_lock_lockdep_release(env, lock); - LASSERT(ergo(result == 0, lock->cll_state == CLS_ENQUEUED || - lock->cll_state == CLS_HELD)); - return result; -} -EXPORT_SYMBOL(cl_enqueue); - /** * Tries to unlock a lock. * diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index 05e29f815b87..89ff7f1fb0fc 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -97,16 +97,6 @@ int cl_object_header_init(struct cl_object_header *h) } EXPORT_SYMBOL(cl_object_header_init); -/** - * Finalize cl_object_header. - */ -void cl_object_header_fini(struct cl_object_header *h) -{ - LASSERT(list_empty(&h->coh_locks)); - lu_object_header_fini(&h->coh_lu); -} -EXPORT_SYMBOL(cl_object_header_fini); - /** * Returns a cl_object with a given \a fid. * @@ -363,22 +353,6 @@ void cl_object_prune(const struct lu_env *env, struct cl_object *obj) } EXPORT_SYMBOL(cl_object_prune); -/** - * Check if the object has locks. - */ -int cl_object_has_locks(struct cl_object *obj) -{ - struct cl_object_header *head = cl_object_header(obj); - int has; - - spin_lock(&head->coh_lock_guard); - has = list_empty(&head->coh_locks); - spin_unlock(&head->coh_lock_guard); - - return (has == 0); -} -EXPORT_SYMBOL(cl_object_has_locks); - void cache_stats_init(struct cache_stats *cs, const char *name) { int i; @@ -928,21 +902,6 @@ void cl_env_nested_put(struct cl_env_nest *nest, struct lu_env *env) } EXPORT_SYMBOL(cl_env_nested_put); -/** - * Converts struct cl_attr to struct ost_lvb. - * - * \see cl_lvb2attr - */ -void cl_attr2lvb(struct ost_lvb *lvb, const struct cl_attr *attr) -{ - lvb->lvb_size = attr->cat_size; - lvb->lvb_mtime = attr->cat_mtime; - lvb->lvb_atime = attr->cat_atime; - lvb->lvb_ctime = attr->cat_ctime; - lvb->lvb_blocks = attr->cat_blocks; -} -EXPORT_SYMBOL(cl_attr2lvb); - /** * Converts struct ost_lvb to struct cl_attr. * From 709e280afae54722421cc43e8b8436d058aae03f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:53 -0400 Subject: [PATCH 1004/2431] staging/lustre: Remove unused lu_object functions. Quite a bunch of them are only used on the server. lu_object_put_nocache, lu_object_invariant, lu_dev_del_linkage, lu_context_tags_update, lu_context_tags_clear, lu_session_tags_update, lu_session_tags_clear, lu_env_refill_by_tags, lu_printk_printer, lu_object_assign_fid, lu_object_anon, lu_buf_free, lu_buf_alloc, lu_buf_realloc, lu_buf_check_and_alloc, lu_buf_check_and_grow Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lu_object.h | 27 -- .../lustre/lustre/obdclass/lu_object.c | 241 ------------------ 2 files changed, 268 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index 77560085082a..e2199c2cea44 100644 --- a/drivers/staging/lustre/lustre/include/lu_object.h +++ b/drivers/staging/lustre/lustre/include/lu_object.h @@ -672,7 +672,6 @@ void lu_object_add_top (struct lu_object_header *h, struct lu_object *o); void lu_object_add (struct lu_object *before, struct lu_object *o); void lu_dev_add_linkage(struct lu_site *s, struct lu_device *d); -void lu_dev_del_linkage(struct lu_site *s, struct lu_device *d); /** * Helpers to initialize and finalize device types. @@ -710,7 +709,6 @@ static inline int lu_object_is_dying(const struct lu_object_header *h) } void lu_object_put(const struct lu_env *env, struct lu_object *o); -void lu_object_put_nocache(const struct lu_env *env, struct lu_object *o); void lu_object_unhash(const struct lu_env *env, struct lu_object *o); int lu_site_purge(const struct lu_env *env, struct lu_site *s, int nr); @@ -1241,14 +1239,6 @@ void lu_context_key_degister_many(struct lu_context_key *k, ...); void lu_context_key_revive_many (struct lu_context_key *k, ...); void lu_context_key_quiesce_many (struct lu_context_key *k, ...); -/* - * update/clear ctx/ses tags. - */ -void lu_context_tags_update(__u32 tags); -void lu_context_tags_clear(__u32 tags); -void lu_session_tags_update(__u32 tags); -void lu_session_tags_clear(__u32 tags); - /** * Environment. */ @@ -1266,7 +1256,6 @@ struct lu_env { int lu_env_init (struct lu_env *env, __u32 tags); void lu_env_fini (struct lu_env *env); int lu_env_refill(struct lu_env *env); -int lu_env_refill_by_tags(struct lu_env *env, __u32 ctags, __u32 stags); /** @} lu_context */ @@ -1319,21 +1308,5 @@ struct lu_kmem_descr { int lu_kmem_init(struct lu_kmem_descr *caches); void lu_kmem_fini(struct lu_kmem_descr *caches); -void lu_object_assign_fid(const struct lu_env *env, struct lu_object *o, - const struct lu_fid *fid); -struct lu_object *lu_object_anon(const struct lu_env *env, - struct lu_device *dev, - const struct lu_object_conf *conf); - -/** null buffer */ -extern struct lu_buf LU_BUF_NULL; - -void lu_buf_free(struct lu_buf *buf); -void lu_buf_alloc(struct lu_buf *buf, int size); -void lu_buf_realloc(struct lu_buf *buf, int size); - -int lu_buf_check_and_grow(struct lu_buf *buf, int len); -struct lu_buf *lu_buf_check_and_alloc(struct lu_buf *buf, int len); - /** @} lu */ #endif /* __LUSTRE_LU_OBJECT_H */ diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index c892e8239e8d..01d70f029dc7 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -156,17 +156,6 @@ void lu_object_put(const struct lu_env *env, struct lu_object *o) } EXPORT_SYMBOL(lu_object_put); -/** - * Put object and don't keep in cache. This is temporary solution for - * multi-site objects when its layering is not constant. - */ -void lu_object_put_nocache(const struct lu_env *env, struct lu_object *o) -{ - set_bit(LU_OBJECT_HEARD_BANSHEE, &o->lo_header->loh_flags); - return lu_object_put(env, o); -} -EXPORT_SYMBOL(lu_object_put_nocache); - /** * Kill the object and take it out of LRU cache. * Currently used by client code for layout change. @@ -529,23 +518,6 @@ void lu_object_print(const struct lu_env *env, void *cookie, } EXPORT_SYMBOL(lu_object_print); -/** - * Check object consistency. - */ -int lu_object_invariant(const struct lu_object *o) -{ - struct lu_object_header *top; - - top = o->lo_header; - list_for_each_entry(o, &top->loh_layers, lo_linkage) { - if (o->lo_ops->loo_object_invariant != NULL && - !o->lo_ops->loo_object_invariant(o)) - return 0; - } - return 1; -} -EXPORT_SYMBOL(lu_object_invariant); - static struct lu_object *htable_lookup(struct lu_site *s, struct cfs_hash_bd *bd, const struct lu_fid *f, @@ -962,14 +934,6 @@ void lu_dev_add_linkage(struct lu_site *s, struct lu_device *d) } EXPORT_SYMBOL(lu_dev_add_linkage); -void lu_dev_del_linkage(struct lu_site *s, struct lu_device *d) -{ - spin_lock(&s->ls_ld_lock); - list_del_init(&d->ld_linkage); - spin_unlock(&s->ls_ld_lock); -} -EXPORT_SYMBOL(lu_dev_del_linkage); - /** * Initialize site \a s, with \a d as the top level device. */ @@ -1701,42 +1665,6 @@ EXPORT_SYMBOL(lu_context_refill); __u32 lu_context_tags_default; __u32 lu_session_tags_default; -void lu_context_tags_update(__u32 tags) -{ - spin_lock(&lu_keys_guard); - lu_context_tags_default |= tags; - key_set_version++; - spin_unlock(&lu_keys_guard); -} -EXPORT_SYMBOL(lu_context_tags_update); - -void lu_context_tags_clear(__u32 tags) -{ - spin_lock(&lu_keys_guard); - lu_context_tags_default &= ~tags; - key_set_version++; - spin_unlock(&lu_keys_guard); -} -EXPORT_SYMBOL(lu_context_tags_clear); - -void lu_session_tags_update(__u32 tags) -{ - spin_lock(&lu_keys_guard); - lu_session_tags_default |= tags; - key_set_version++; - spin_unlock(&lu_keys_guard); -} -EXPORT_SYMBOL(lu_session_tags_update); - -void lu_session_tags_clear(__u32 tags) -{ - spin_lock(&lu_keys_guard); - lu_session_tags_default &= ~tags; - key_set_version++; - spin_unlock(&lu_keys_guard); -} -EXPORT_SYMBOL(lu_session_tags_clear); - int lu_env_init(struct lu_env *env, __u32 tags) { int result; @@ -1768,31 +1696,6 @@ int lu_env_refill(struct lu_env *env) } EXPORT_SYMBOL(lu_env_refill); -/** - * Currently, this API will only be used by echo client. - * Because echo client and normal lustre client will share - * same cl_env cache. So echo client needs to refresh - * the env context after it get one from the cache, especially - * when normal client and echo client co-exist in the same client. - */ -int lu_env_refill_by_tags(struct lu_env *env, __u32 ctags, - __u32 stags) -{ - if ((env->le_ctx.lc_tags & ctags) != ctags) { - env->le_ctx.lc_version = 0; - env->le_ctx.lc_tags |= ctags; - } - - if (env->le_ses && (env->le_ses->lc_tags & stags) != stags) { - env->le_ses->lc_version = 0; - env->le_ses->lc_tags |= stags; - } - - return lu_env_refill(env); -} -EXPORT_SYMBOL(lu_env_refill_by_tags); - - struct lu_site_stats { unsigned lss_populated; unsigned lss_max_search; @@ -1904,29 +1807,9 @@ static unsigned long lu_cache_shrink_scan(struct shrinker *sk, return sc->nr_to_scan - remain; } -/* - * Debugging stuff. - */ - -/** - * Environment to be used in debugger, contains all tags. - */ -struct lu_env lu_debugging_env; - /** * Debugging printer function using printk(). */ -int lu_printk_printer(const struct lu_env *env, - void *unused, const char *format, ...) -{ - va_list args; - - va_start(args, format); - vprintk(format, args); - va_end(args); - return 0; -} - static struct shrinker lu_site_shrinker = { .count_objects = lu_cache_shrink_count, .scan_objects = lu_cache_shrink_scan, @@ -2069,127 +1952,3 @@ void lu_kmem_fini(struct lu_kmem_descr *caches) } } EXPORT_SYMBOL(lu_kmem_fini); - -/** - * Temporary solution to be able to assign fid in ->do_create() - * till we have fully-functional OST fids - */ -void lu_object_assign_fid(const struct lu_env *env, struct lu_object *o, - const struct lu_fid *fid) -{ - struct lu_site *s = o->lo_dev->ld_site; - struct lu_fid *old = &o->lo_header->loh_fid; - struct lu_object *shadow; - wait_queue_t waiter; - struct cfs_hash *hs; - struct cfs_hash_bd bd; - __u64 version = 0; - - LASSERT(fid_is_zero(old)); - - hs = s->ls_obj_hash; - cfs_hash_bd_get_and_lock(hs, (void *)fid, &bd, 1); - shadow = htable_lookup(s, &bd, fid, &waiter, &version); - /* supposed to be unique */ - LASSERT(IS_ERR(shadow) && PTR_ERR(shadow) == -ENOENT); - *old = *fid; - cfs_hash_bd_add_locked(hs, &bd, &o->lo_header->loh_hash); - cfs_hash_bd_unlock(hs, &bd, 1); -} -EXPORT_SYMBOL(lu_object_assign_fid); - -/** - * allocates object with 0 (non-assigned) fid - * XXX: temporary solution to be able to assign fid in ->do_create() - * till we have fully-functional OST fids - */ -struct lu_object *lu_object_anon(const struct lu_env *env, - struct lu_device *dev, - const struct lu_object_conf *conf) -{ - struct lu_fid fid; - struct lu_object *o; - - fid_zero(&fid); - o = lu_object_alloc(env, dev, &fid, conf); - - return o; -} -EXPORT_SYMBOL(lu_object_anon); - -struct lu_buf LU_BUF_NULL = { - .lb_buf = NULL, - .lb_len = 0 -}; -EXPORT_SYMBOL(LU_BUF_NULL); - -void lu_buf_free(struct lu_buf *buf) -{ - LASSERT(buf); - if (buf->lb_buf) { - LASSERT(buf->lb_len > 0); - kvfree(buf->lb_buf); - buf->lb_buf = NULL; - buf->lb_len = 0; - } -} -EXPORT_SYMBOL(lu_buf_free); - -void lu_buf_alloc(struct lu_buf *buf, int size) -{ - LASSERT(buf); - LASSERT(buf->lb_buf == NULL); - LASSERT(buf->lb_len == 0); - buf->lb_buf = libcfs_kvzalloc(size, GFP_NOFS); - if (likely(buf->lb_buf)) - buf->lb_len = size; -} -EXPORT_SYMBOL(lu_buf_alloc); - -void lu_buf_realloc(struct lu_buf *buf, int size) -{ - lu_buf_free(buf); - lu_buf_alloc(buf, size); -} -EXPORT_SYMBOL(lu_buf_realloc); - -struct lu_buf *lu_buf_check_and_alloc(struct lu_buf *buf, int len) -{ - if (buf->lb_buf == NULL && buf->lb_len == 0) - lu_buf_alloc(buf, len); - - if ((len > buf->lb_len) && (buf->lb_buf != NULL)) - lu_buf_realloc(buf, len); - - return buf; -} -EXPORT_SYMBOL(lu_buf_check_and_alloc); - -/** - * Increase the size of the \a buf. - * preserves old data in buffer - * old buffer remains unchanged on error - * \retval 0 or -ENOMEM - */ -int lu_buf_check_and_grow(struct lu_buf *buf, int len) -{ - char *ptr; - - if (len <= buf->lb_len) - return 0; - - ptr = libcfs_kvzalloc(len, GFP_NOFS); - if (ptr == NULL) - return -ENOMEM; - - /* Free the old buf */ - if (buf->lb_buf != NULL) { - memcpy(ptr, buf->lb_buf, buf->lb_len); - kvfree(buf->lb_buf); - } - - buf->lb_buf = ptr; - buf->lb_len = len; - return 0; -} -EXPORT_SYMBOL(lu_buf_check_and_grow); From b30c78e216e5ce37b28c665b22ff9ec2882d7c2c Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:54 -0400 Subject: [PATCH 1005/2431] staging/lustre/ldlm: Remove unused round_timeout function It's not referenced anywhere anymore. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c index ac79db952da7..a78c4a4c9bd4 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c @@ -71,11 +71,6 @@ struct ldlm_cb_async_args { static struct ldlm_state *ldlm_state; -inline unsigned long round_timeout(unsigned long timeout) -{ - return cfs_time_seconds((int)cfs_duration_sec(cfs_time_sub(timeout, 0)) + 1); -} - #define ELT_STOPPED 0 #define ELT_READY 1 #define ELT_TERMINATE 2 From f27355ba2f7b3f6916e9dd8e46a7a540a88eb564 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:55 -0400 Subject: [PATCH 1006/2431] staging/lustre/obdclass: Remove unused functions from genops.c These functions are mostly used on the server. class_uuid2obd, get_devices_count, class_obd_list, class_conn2obd, class_conn2cliimp, class_connected_export, obd_exports_barrier, kuc_* (kernel-userspace communications). Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_import.h | 1 - .../staging/lustre/lustre/include/obd_class.h | 11 - .../staging/lustre/lustre/obdclass/genops.c | 189 ------------------ 3 files changed, 201 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 079db528ba74..660d29032ad4 100644 --- a/drivers/staging/lustre/lustre/include/lustre_import.h +++ b/drivers/staging/lustre/lustre/include/lustre_import.h @@ -374,7 +374,6 @@ extern unsigned int at_max; /* genops.c */ struct obd_export; struct obd_import *class_exp2cliimp(struct obd_export *); -struct obd_import *class_conn2cliimp(struct lustre_handle *); /** @} import */ diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 8bfdc9764468..b323403816d3 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -64,7 +64,6 @@ extern struct obd_device *obd_devs[MAX_OBD_DEVICES]; extern rwlock_t obd_dev_lock; /* OBD Operations Declarations */ -struct obd_device *class_conn2obd(struct lustre_handle *); struct obd_device *class_exp2obd(struct obd_export *); int class_handle_ioctl(unsigned int cmd, unsigned long arg); int lustre_get_jobid(char *jobid); @@ -84,15 +83,12 @@ void class_release_dev(struct obd_device *obd); int class_name2dev(const char *name); struct obd_device *class_name2obd(const char *name); int class_uuid2dev(struct obd_uuid *uuid); -struct obd_device *class_uuid2obd(struct obd_uuid *uuid); -void class_obd_list(void); struct obd_device *class_find_client_obd(struct obd_uuid *tgt_uuid, const char *typ_name, struct obd_uuid *grp_uuid); struct obd_device *class_devices_in_group(struct obd_uuid *grp_uuid, int *next); struct obd_device *class_num2obd(int num); -int get_devices_count(void); int class_notify_sptlrpc_conf(const char *fsname, int namelen); @@ -104,12 +100,6 @@ int obd_zombie_impexp_init(void); void obd_zombie_impexp_stop(void); void obd_zombie_impexp_cull(void); void obd_zombie_barrier(void); -void obd_exports_barrier(struct obd_device *obd); -int kuc_len(int payload_len); -struct kuc_hdr *kuc_ptr(void *p); -int kuc_ispayload(void *p); -void *kuc_alloc(int payload_len, int transport, int type); -void kuc_free(void *p, int payload_len); struct llog_handle; struct llog_rec_hdr; @@ -283,7 +273,6 @@ int class_connect(struct lustre_handle *conn, struct obd_device *obd, struct obd_uuid *cluuid); int class_disconnect(struct obd_export *exp); void class_fail_export(struct obd_export *exp); -int class_connected_export(struct obd_export *exp); int class_manual_cleanup(struct obd_device *obd); static inline enum obd_option exp_flags_from_obd(struct obd_device *obd) { diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 059611b28f92..4467baa73ae2 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -439,16 +439,6 @@ int class_uuid2dev(struct obd_uuid *uuid) } EXPORT_SYMBOL(class_uuid2dev); -struct obd_device *class_uuid2obd(struct obd_uuid *uuid) -{ - int dev = class_uuid2dev(uuid); - - if (dev < 0) - return NULL; - return class_num2obd(dev); -} -EXPORT_SYMBOL(class_uuid2obd); - /** * Get obd device from ::obd_devs[] * @@ -478,55 +468,6 @@ struct obd_device *class_num2obd(int num) } EXPORT_SYMBOL(class_num2obd); -/** - * Get obd devices count. Device in any - * state are counted - * \retval obd device count - */ -int get_devices_count(void) -{ - int index, max_index = class_devno_max(), dev_count = 0; - - read_lock(&obd_dev_lock); - for (index = 0; index <= max_index; index++) { - struct obd_device *obd = class_num2obd(index); - - if (obd != NULL) - dev_count++; - } - read_unlock(&obd_dev_lock); - - return dev_count; -} -EXPORT_SYMBOL(get_devices_count); - -void class_obd_list(void) -{ - char *status; - int i; - - read_lock(&obd_dev_lock); - for (i = 0; i < class_devno_max(); i++) { - struct obd_device *obd = class_num2obd(i); - - if (!obd) - continue; - if (obd->obd_stopping) - status = "ST"; - else if (obd->obd_set_up) - status = "UP"; - else if (obd->obd_attached) - status = "AT"; - else - status = "--"; - LCONSOLE(D_CONFIG, "%3d %s %s %s %s %d\n", - i, status, obd->obd_type->typ_name, - obd->obd_name, obd->obd_uuid.uuid, - atomic_read(&obd->obd_refcount)); - } - read_unlock(&obd_dev_lock); -} - /* Search for a client OBD connected to tgt_uuid. If grp_uuid is specified, then only the client with that uuid is returned, otherwise any client connected to the tgt is returned. */ @@ -705,21 +646,6 @@ struct obd_device *class_exp2obd(struct obd_export *exp) } EXPORT_SYMBOL(class_exp2obd); -struct obd_device *class_conn2obd(struct lustre_handle *conn) -{ - struct obd_export *export; - - export = class_conn2export(conn); - if (export) { - struct obd_device *obd = export->exp_obd; - - class_export_put(export); - return obd; - } - return NULL; -} -EXPORT_SYMBOL(class_conn2obd); - struct obd_import *class_exp2cliimp(struct obd_export *exp) { struct obd_device *obd = exp->exp_obd; @@ -730,16 +656,6 @@ struct obd_import *class_exp2cliimp(struct obd_export *exp) } EXPORT_SYMBOL(class_exp2cliimp); -struct obd_import *class_conn2cliimp(struct lustre_handle *conn) -{ - struct obd_device *obd = class_conn2obd(conn); - - if (!obd) - return NULL; - return obd->u.cli.cl_import; -} -EXPORT_SYMBOL(class_conn2cliimp); - /* Export management functions */ static void class_export_destroy(struct obd_export *exp) { @@ -1208,21 +1124,6 @@ no_disconn: } EXPORT_SYMBOL(class_disconnect); -/* Return non-zero for a fully connected export */ -int class_connected_export(struct obd_export *exp) -{ - if (exp) { - int connected; - - spin_lock(&exp->exp_lock); - connected = exp->exp_conn_cnt > 0; - spin_unlock(&exp->exp_lock); - return connected; - } - return 0; -} -EXPORT_SYMBOL(class_connected_export); - void class_fail_export(struct obd_export *exp) { int rc, already_failed; @@ -1325,29 +1226,6 @@ void dump_exports(struct obd_device *obd, int locks) } EXPORT_SYMBOL(dump_exports); -void obd_exports_barrier(struct obd_device *obd) -{ - int waited = 2; - - LASSERT(list_empty(&obd->obd_exports)); - spin_lock(&obd->obd_dev_lock); - while (!list_empty(&obd->obd_unlinked_exports)) { - spin_unlock(&obd->obd_dev_lock); - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(cfs_time_seconds(waited)); - if (waited > 5 && IS_PO2(waited)) { - LCONSOLE_WARN("%s is waiting for obd_unlinked_exports more than %d seconds. The obd refcount = %d. Is it stuck?\n", - obd->obd_name, waited, - atomic_read(&obd->obd_refcount)); - dump_exports(obd, 1); - } - waited *= 2; - spin_lock(&obd->obd_dev_lock); - } - spin_unlock(&obd->obd_dev_lock); -} -EXPORT_SYMBOL(obd_exports_barrier); - /* Total amount of zombies to be destroyed */ static int zombies_count; @@ -1558,70 +1436,3 @@ void obd_zombie_impexp_stop(void) obd_zombie_impexp_notify(); wait_for_completion(&obd_zombie_stop); } - -/***** Kernel-userspace comm helpers *******/ - -/* Get length of entire message, including header */ -int kuc_len(int payload_len) -{ - return sizeof(struct kuc_hdr) + payload_len; -} -EXPORT_SYMBOL(kuc_len); - -/* Get a pointer to kuc header, given a ptr to the payload - * @param p Pointer to payload area - * @returns Pointer to kuc header - */ -struct kuc_hdr *kuc_ptr(void *p) -{ - struct kuc_hdr *lh = ((struct kuc_hdr *)p) - 1; - - LASSERT(lh->kuc_magic == KUC_MAGIC); - return lh; -} -EXPORT_SYMBOL(kuc_ptr); - -/* Test if payload is part of kuc message - * @param p Pointer to payload area - * @returns boolean - */ -int kuc_ispayload(void *p) -{ - struct kuc_hdr *kh = ((struct kuc_hdr *)p) - 1; - - if (kh->kuc_magic == KUC_MAGIC) - return 1; - else - return 0; -} -EXPORT_SYMBOL(kuc_ispayload); - -/* Alloc space for a message, and fill in header - * @return Pointer to payload area - */ -void *kuc_alloc(int payload_len, int transport, int type) -{ - struct kuc_hdr *lh; - int len = kuc_len(payload_len); - - lh = kzalloc(len, GFP_NOFS); - if (!lh) - return ERR_PTR(-ENOMEM); - - lh->kuc_magic = KUC_MAGIC; - lh->kuc_transport = transport; - lh->kuc_msgtype = type; - lh->kuc_msglen = len; - - return (void *)(lh + 1); -} -EXPORT_SYMBOL(kuc_alloc); - -/* Takes pointer to payload area */ -inline void kuc_free(void *p, int payload_len) -{ - struct kuc_hdr *lh = kuc_ptr(p); - - kfree(lh); -} -EXPORT_SYMBOL(kuc_free); From 3a459a79cea24cf0f6def24a16ce7b308d93d8a2 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:56 -0400 Subject: [PATCH 1007/2431] staging/lustre: Remove unused function class_handle_hash_back() No callers left. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lustre_handles.h | 1 - .../staging/lustre/lustre/obdclass/lustre_handles.c | 13 ------------- 2 files changed, 14 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_handles.h b/drivers/staging/lustre/lustre/include/lustre_handles.h index 726bbd3eaf55..4d51c8ac3906 100644 --- a/drivers/staging/lustre/lustre/include/lustre_handles.h +++ b/drivers/staging/lustre/lustre/include/lustre_handles.h @@ -86,7 +86,6 @@ struct portals_handle { void class_handle_hash(struct portals_handle *, struct portals_handle_ops *ops); void class_handle_unhash(struct portals_handle *); -void class_handle_hash_back(struct portals_handle *); void *class_handle2object(__u64 cookie); void class_handle_free_cb(struct rcu_head *rcu); int class_handle_init(void); diff --git a/drivers/staging/lustre/lustre/obdclass/lustre_handles.c b/drivers/staging/lustre/lustre/obdclass/lustre_handles.c index 97d79dab2835..d19ec15cb463 100644 --- a/drivers/staging/lustre/lustre/obdclass/lustre_handles.c +++ b/drivers/staging/lustre/lustre/obdclass/lustre_handles.c @@ -134,19 +134,6 @@ void class_handle_unhash(struct portals_handle *h) } EXPORT_SYMBOL(class_handle_unhash); -void class_handle_hash_back(struct portals_handle *h) -{ - struct handle_bucket *bucket; - - bucket = handle_hash + (h->h_cookie & HANDLE_HASH_MASK); - - spin_lock(&bucket->lock); - list_add_rcu(&h->h_link, &bucket->head); - h->h_in = 1; - spin_unlock(&bucket->lock); -} -EXPORT_SYMBOL(class_handle_hash_back); - void *class_handle2object(__u64 cookie) { struct handle_bucket *bucket; From 2a6c5cb5f65596776f0fdc8593fe0d33a72a44ea Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:57 -0400 Subject: [PATCH 1008/2431] staging/lustre: Remove unused function server_name2svname() All users are only in the server code Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_disk.h | 2 -- .../lustre/lustre/obdclass/obd_mount.c | 27 ------------------- 2 files changed, 29 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index ec33259ca7df..4178c8563dd3 100644 --- a/drivers/staging/lustre/lustre/include/lustre_disk.h +++ b/drivers/staging/lustre/lustre/include/lustre_disk.h @@ -385,8 +385,6 @@ struct lustre_mount_info { /* obd_mount.c */ int server_name2fsname(const char *svname, char *fsname, const char **endptr); int server_name2index(const char *svname, __u32 *idx, const char **endptr); -int server_name2svname(const char *label, char *svname, const char **endptr, - size_t svsize); int lustre_put_lsi(struct super_block *sb); int lustre_start_simple(char *obdname, char *type, char *uuid, diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index 16009a6867c9..bc15e1546844 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -599,33 +599,6 @@ int server_name2fsname(const char *svname, char *fsname, const char **endptr) } EXPORT_SYMBOL(server_name2fsname); -/** - * Get service name (svname) from string - * rc < 0 on error - * if endptr isn't NULL it is set to end of fsname * - */ -int server_name2svname(const char *label, char *svname, const char **endptr, - size_t svsize) -{ - int rc; - const char *dash; - - /* We use server_name2fsname() just for parsing */ - rc = server_name2fsname(label, NULL, &dash); - if (rc != 0) - return rc; - - if (endptr != NULL) - *endptr = dash; - - if (strlcpy(svname, dash + 1, svsize) >= svsize) - return -E2BIG; - - return 0; -} -EXPORT_SYMBOL(server_name2svname); - - /* Get the index from the obd name. rc = server type, or rc < 0 on error From e461e18fabdcbb2f16d2d094c6d5512c0cd2a51b Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:58 -0400 Subject: [PATCH 1009/2431] staging/lustre/obdclass: Drop unused code from obdo.c These functions are not even referenced in any header files anymore. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/obdo.c | 170 ------------------ 1 file changed, 170 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/obdo.c b/drivers/staging/lustre/lustre/obdclass/obdo.c index 307ffe347186..1a950fb8e769 100644 --- a/drivers/staging/lustre/lustre/obdclass/obdo.c +++ b/drivers/staging/lustre/lustre/obdclass/obdo.c @@ -115,90 +115,6 @@ void obdo_from_inode(struct obdo *dst, struct inode *src, u32 valid) } EXPORT_SYMBOL(obdo_from_inode); -void obdo_cpy_md(struct obdo *dst, struct obdo *src, u32 valid) -{ - CDEBUG(D_INODE, "src obdo "DOSTID" valid %#llx, dst obdo "DOSTID"\n", - POSTID(&src->o_oi), src->o_valid, POSTID(&dst->o_oi)); - if (valid & OBD_MD_FLATIME) - dst->o_atime = src->o_atime; - if (valid & OBD_MD_FLMTIME) - dst->o_mtime = src->o_mtime; - if (valid & OBD_MD_FLCTIME) - dst->o_ctime = src->o_ctime; - if (valid & OBD_MD_FLSIZE) - dst->o_size = src->o_size; - if (valid & OBD_MD_FLBLOCKS) /* allocation of space */ - dst->o_blocks = src->o_blocks; - if (valid & OBD_MD_FLBLKSZ) - dst->o_blksize = src->o_blksize; - if (valid & OBD_MD_FLTYPE) - dst->o_mode = (dst->o_mode & ~S_IFMT) | (src->o_mode & S_IFMT); - if (valid & OBD_MD_FLMODE) - dst->o_mode = (dst->o_mode & S_IFMT) | (src->o_mode & ~S_IFMT); - if (valid & OBD_MD_FLUID) - dst->o_uid = src->o_uid; - if (valid & OBD_MD_FLGID) - dst->o_gid = src->o_gid; - if (valid & OBD_MD_FLFLAGS) - dst->o_flags = src->o_flags; - if (valid & OBD_MD_FLFID) { - dst->o_parent_seq = src->o_parent_seq; - dst->o_parent_ver = src->o_parent_ver; - } - if (valid & OBD_MD_FLGENER) - dst->o_parent_oid = src->o_parent_oid; - if (valid & OBD_MD_FLHANDLE) - dst->o_handle = src->o_handle; - if (valid & OBD_MD_FLCOOKIE) - dst->o_lcookie = src->o_lcookie; - - dst->o_valid |= valid; -} -EXPORT_SYMBOL(obdo_cpy_md); - -/* returns FALSE if comparison (by flags) is same, TRUE if changed */ -int obdo_cmp_md(struct obdo *dst, struct obdo *src, u32 compare) -{ - int res = 0; - - if (compare & OBD_MD_FLATIME) - res |= dst->o_atime != src->o_atime; - if (compare & OBD_MD_FLMTIME) - res |= dst->o_mtime != src->o_mtime; - if (compare & OBD_MD_FLCTIME) - res |= dst->o_ctime != src->o_ctime; - if (compare & OBD_MD_FLSIZE) - res |= dst->o_size != src->o_size; - if (compare & OBD_MD_FLBLOCKS) /* allocation of space */ - res |= dst->o_blocks != src->o_blocks; - if (compare & OBD_MD_FLBLKSZ) - res |= dst->o_blksize != src->o_blksize; - if (compare & OBD_MD_FLTYPE) - res |= ((dst->o_mode ^ src->o_mode) & S_IFMT) != 0; - if (compare & OBD_MD_FLMODE) - res |= ((dst->o_mode ^ src->o_mode) & ~S_IFMT) != 0; - if (compare & OBD_MD_FLUID) - res |= dst->o_uid != src->o_uid; - if (compare & OBD_MD_FLGID) - res |= dst->o_gid != src->o_gid; - if (compare & OBD_MD_FLFLAGS) - res |= dst->o_flags != src->o_flags; - if (compare & OBD_MD_FLNLINK) - res |= dst->o_nlink != src->o_nlink; - if (compare & OBD_MD_FLFID) { - res |= dst->o_parent_seq != src->o_parent_seq; - res |= dst->o_parent_ver != src->o_parent_ver; - } - if (compare & OBD_MD_FLGENER) - res |= dst->o_parent_oid != src->o_parent_oid; - /* XXX Don't know if these should be included here - wasn't previously - if ( compare & OBD_MD_FLINLINE ) - res |= memcmp(dst->o_inline, src->o_inline); - */ - return res; -} -EXPORT_SYMBOL(obdo_cmp_md); - void obdo_to_ioobj(struct obdo *oa, struct obd_ioobj *ioobj) { ioobj->ioo_oid = oa->o_oi; @@ -211,42 +127,6 @@ void obdo_to_ioobj(struct obdo *oa, struct obd_ioobj *ioobj) } EXPORT_SYMBOL(obdo_to_ioobj); -void obdo_from_iattr(struct obdo *oa, struct iattr *attr, unsigned int ia_valid) -{ - if (ia_valid & ATTR_ATIME) { - oa->o_atime = LTIME_S(attr->ia_atime); - oa->o_valid |= OBD_MD_FLATIME; - } - if (ia_valid & ATTR_MTIME) { - oa->o_mtime = LTIME_S(attr->ia_mtime); - oa->o_valid |= OBD_MD_FLMTIME; - } - if (ia_valid & ATTR_CTIME) { - oa->o_ctime = LTIME_S(attr->ia_ctime); - oa->o_valid |= OBD_MD_FLCTIME; - } - if (ia_valid & ATTR_SIZE) { - oa->o_size = attr->ia_size; - oa->o_valid |= OBD_MD_FLSIZE; - } - if (ia_valid & ATTR_MODE) { - oa->o_mode = attr->ia_mode; - oa->o_valid |= OBD_MD_FLTYPE | OBD_MD_FLMODE; - if (!in_group_p(make_kgid(&init_user_ns, oa->o_gid)) && - !capable(CFS_CAP_FSETID)) - oa->o_mode &= ~S_ISGID; - } - if (ia_valid & ATTR_UID) { - oa->o_uid = from_kuid(&init_user_ns, attr->ia_uid); - oa->o_valid |= OBD_MD_FLUID; - } - if (ia_valid & ATTR_GID) { - oa->o_gid = from_kgid(&init_user_ns, attr->ia_gid); - oa->o_valid |= OBD_MD_FLGID; - } -} -EXPORT_SYMBOL(obdo_from_iattr); - void iattr_from_obdo(struct iattr *attr, struct obdo *oa, u32 valid) { valid &= oa->o_valid; @@ -310,53 +190,3 @@ void md_from_obdo(struct md_op_data *op_data, struct obdo *oa, u32 valid) } } EXPORT_SYMBOL(md_from_obdo); - -void obdo_from_md(struct obdo *oa, struct md_op_data *op_data, - unsigned int valid) -{ - obdo_from_iattr(oa, &op_data->op_attr, valid); - if (valid & ATTR_BLOCKS) { - oa->o_blocks = op_data->op_attr_blocks; - oa->o_valid |= OBD_MD_FLBLOCKS; - } - if (valid & ATTR_ATTR_FLAG) { - oa->o_flags = - ((struct ll_iattr *)&op_data->op_attr)->ia_attr_flags; - oa->o_valid |= OBD_MD_FLFLAGS; - } -} -EXPORT_SYMBOL(obdo_from_md); - -void obdo_cpu_to_le(struct obdo *dobdo, struct obdo *sobdo) -{ - dobdo->o_size = cpu_to_le64(sobdo->o_size); - dobdo->o_mtime = cpu_to_le64(sobdo->o_mtime); - dobdo->o_atime = cpu_to_le64(sobdo->o_atime); - dobdo->o_ctime = cpu_to_le64(sobdo->o_ctime); - dobdo->o_blocks = cpu_to_le64(sobdo->o_blocks); - dobdo->o_mode = cpu_to_le32(sobdo->o_mode); - dobdo->o_uid = cpu_to_le32(sobdo->o_uid); - dobdo->o_gid = cpu_to_le32(sobdo->o_gid); - dobdo->o_flags = cpu_to_le32(sobdo->o_flags); - dobdo->o_nlink = cpu_to_le32(sobdo->o_nlink); - dobdo->o_blksize = cpu_to_le32(sobdo->o_blksize); - dobdo->o_valid = cpu_to_le64(sobdo->o_valid); -} -EXPORT_SYMBOL(obdo_cpu_to_le); - -void obdo_le_to_cpu(struct obdo *dobdo, struct obdo *sobdo) -{ - dobdo->o_size = le64_to_cpu(sobdo->o_size); - dobdo->o_mtime = le64_to_cpu(sobdo->o_mtime); - dobdo->o_atime = le64_to_cpu(sobdo->o_atime); - dobdo->o_ctime = le64_to_cpu(sobdo->o_ctime); - dobdo->o_blocks = le64_to_cpu(sobdo->o_blocks); - dobdo->o_mode = le32_to_cpu(sobdo->o_mode); - dobdo->o_uid = le32_to_cpu(sobdo->o_uid); - dobdo->o_gid = le32_to_cpu(sobdo->o_gid); - dobdo->o_flags = le32_to_cpu(sobdo->o_flags); - dobdo->o_nlink = le32_to_cpu(sobdo->o_nlink); - dobdo->o_blksize = le32_to_cpu(sobdo->o_blksize); - dobdo->o_valid = le64_to_cpu(sobdo->o_valid); -} -EXPORT_SYMBOL(obdo_le_to_cpu); From 11109260080f2840e3563cbede8bec73c0699f5a Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:59 -0400 Subject: [PATCH 1010/2431] staging/lustre/ptlrpc: Drop unused client code These client request/import functions are not used anywhere, so drop them. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_net.h | 13 --- drivers/staging/lustre/lustre/ptlrpc/client.c | 95 ------------------- drivers/staging/lustre/lustre/ptlrpc/import.c | 11 --- 3 files changed, 119 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 6df3e70af5fd..a486c1df0cf5 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2356,22 +2356,17 @@ void ptlrpc_request_committed(struct ptlrpc_request *req, int force); void ptlrpc_init_client(int req_portal, int rep_portal, char *name, struct ptlrpc_client *); -void ptlrpc_cleanup_client(struct obd_import *imp); struct ptlrpc_connection *ptlrpc_uuid_to_connection(struct obd_uuid *uuid); int ptlrpc_queue_wait(struct ptlrpc_request *req); int ptlrpc_replay_req(struct ptlrpc_request *req); int ptlrpc_unregister_reply(struct ptlrpc_request *req, int async); -void ptlrpc_restart_req(struct ptlrpc_request *req); void ptlrpc_abort_inflight(struct obd_import *imp); -void ptlrpc_cleanup_imp(struct obd_import *imp); void ptlrpc_abort_set(struct ptlrpc_request_set *set); struct ptlrpc_request_set *ptlrpc_prep_set(void); struct ptlrpc_request_set *ptlrpc_prep_fcset(int max, set_producer_func func, void *arg); -int ptlrpc_set_add_cb(struct ptlrpc_request_set *set, - set_interpreter_func fn, void *data); int ptlrpc_set_next_timeout(struct ptlrpc_request_set *); int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set); int ptlrpc_set_wait(struct ptlrpc_request_set *); @@ -2405,15 +2400,7 @@ struct ptlrpc_request *ptlrpc_request_alloc_pack(struct obd_import *imp, int ptlrpc_request_bufs_pack(struct ptlrpc_request *request, __u32 version, int opcode, char **bufs, struct ptlrpc_cli_ctx *ctx); -struct ptlrpc_request *ptlrpc_prep_req(struct obd_import *imp, __u32 version, - int opcode, int count, __u32 *lengths, - char **bufs); -struct ptlrpc_request *ptlrpc_prep_req_pool(struct obd_import *imp, - __u32 version, int opcode, - int count, __u32 *lengths, char **bufs, - struct ptlrpc_request_pool *pool); void ptlrpc_req_finished(struct ptlrpc_request *request); -void ptlrpc_req_finished_with_imp_lock(struct ptlrpc_request *request); struct ptlrpc_request *ptlrpc_request_addref(struct ptlrpc_request *req); struct ptlrpc_bulk_desc *ptlrpc_prep_bulk_imp(struct ptlrpc_request *req, unsigned npages, unsigned max_brw, diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index d013d4b512ce..6aaa5dd55a92 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -801,48 +801,6 @@ struct ptlrpc_request *ptlrpc_request_alloc_pack(struct obd_import *imp, } EXPORT_SYMBOL(ptlrpc_request_alloc_pack); -/** - * Prepare request (fetched from pool \a pool if not NULL) on import \a imp - * for operation \a opcode. Request would contain \a count buffers. - * Sizes of buffers are described in array \a lengths and buffers themselves - * are provided by a pointer \a bufs. - * Returns prepared request structure pointer or NULL on error. - */ -struct ptlrpc_request * -ptlrpc_prep_req_pool(struct obd_import *imp, - __u32 version, int opcode, - int count, __u32 *lengths, char **bufs, - struct ptlrpc_request_pool *pool) -{ - struct ptlrpc_request *request; - int rc; - - request = __ptlrpc_request_alloc(imp, pool); - if (!request) - return NULL; - - rc = __ptlrpc_request_bufs_pack(request, version, opcode, count, - lengths, bufs, NULL); - if (rc) { - ptlrpc_request_free(request); - request = NULL; - } - return request; -} -EXPORT_SYMBOL(ptlrpc_prep_req_pool); - -/** - * Same as ptlrpc_prep_req_pool, but without pool - */ -struct ptlrpc_request * -ptlrpc_prep_req(struct obd_import *imp, __u32 version, int opcode, int count, - __u32 *lengths, char **bufs) -{ - return ptlrpc_prep_req_pool(imp, version, opcode, count, lengths, bufs, - NULL); -} -EXPORT_SYMBOL(ptlrpc_prep_req); - /** * Allocate and initialize new request set structure on the current CPT. * Returns a pointer to the newly allocated set structure or NULL on error. @@ -958,28 +916,6 @@ void ptlrpc_set_destroy(struct ptlrpc_request_set *set) } EXPORT_SYMBOL(ptlrpc_set_destroy); -/** - * Add a callback function \a fn to the set. - * This function would be called when all requests on this set are completed. - * The function will be passed \a data argument. - */ -int ptlrpc_set_add_cb(struct ptlrpc_request_set *set, - set_interpreter_func fn, void *data) -{ - struct ptlrpc_set_cbdata *cbdata; - - cbdata = kzalloc(sizeof(*cbdata), GFP_NOFS); - if (!cbdata) - return -ENOMEM; - - cbdata->psc_interpret = fn; - cbdata->psc_data = data; - list_add_tail(&cbdata->psc_item, &set->set_cblist); - - return 0; -} -EXPORT_SYMBOL(ptlrpc_set_add_cb); - /** * Add a new request to the general purpose request set. * Assumes request reference from the caller. @@ -2282,18 +2218,6 @@ static void __ptlrpc_free_req(struct ptlrpc_request *request, int locked) ptlrpc_request_cache_free(request); } -static int __ptlrpc_req_finished(struct ptlrpc_request *request, int locked); -/** - * Drop one request reference. Must be called with import imp_lock held. - * When reference count drops to zero, request is freed. - */ -void ptlrpc_req_finished_with_imp_lock(struct ptlrpc_request *request) -{ - assert_spin_locked(&request->rq_import->imp_lock); - (void)__ptlrpc_req_finished(request, 1); -} -EXPORT_SYMBOL(ptlrpc_req_finished_with_imp_lock); - /** * Helper function * Drops one reference count for request \a request. @@ -2535,11 +2459,6 @@ free_req: } } -void ptlrpc_cleanup_client(struct obd_import *imp) -{ -} -EXPORT_SYMBOL(ptlrpc_cleanup_client); - /** * Schedule previously sent request for resend. * For bulk requests we assign new xid (to avoid problems with @@ -2578,20 +2497,6 @@ void ptlrpc_resend_req(struct ptlrpc_request *req) } EXPORT_SYMBOL(ptlrpc_resend_req); -/* XXX: this function and rq_status are currently unused */ -void ptlrpc_restart_req(struct ptlrpc_request *req) -{ - DEBUG_REQ(D_HA, req, "restarting (possibly-)completed request"); - req->rq_status = -ERESTARTSYS; - - spin_lock(&req->rq_lock); - req->rq_restart = 1; - req->rq_timedout = 0; - ptlrpc_client_wake_req(req); - spin_unlock(&req->rq_lock); -} -EXPORT_SYMBOL(ptlrpc_restart_req); - /** * Grab additional reference on a request \a req */ diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 9ff1a22b1b67..1ac265dfce2f 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -142,7 +142,6 @@ void deuuidify(char *uuid, const char *prefix, char **uuid_start, int *uuid_len) UUID_STR, strlen(UUID_STR))) *uuid_len -= strlen(UUID_STR); } -EXPORT_SYMBOL(deuuidify); /** * Returns true if import was FULL, false if import was already not @@ -1503,16 +1502,6 @@ out: } EXPORT_SYMBOL(ptlrpc_disconnect_import); -void ptlrpc_cleanup_imp(struct obd_import *imp) -{ - spin_lock(&imp->imp_lock); - IMPORT_SET_STATE_NOLOCK(imp, LUSTRE_IMP_CLOSED); - imp->imp_generation++; - spin_unlock(&imp->imp_lock); - ptlrpc_abort_inflight(imp); -} -EXPORT_SYMBOL(ptlrpc_cleanup_imp); - /* Adaptive Timeout utils */ extern unsigned int at_min, at_max, at_history; From d97cc6442a44ecbd5e7c6c00be4a863de3ee3158 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:00 -0400 Subject: [PATCH 1011/2431] staging/lustre/ptlrpc: secure wrapping code cleanup Drop unused functions. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_sec.h | 20 -- drivers/staging/lustre/lustre/ptlrpc/sec.c | 116 ------ .../staging/lustre/lustre/ptlrpc/sec_bulk.c | 329 ------------------ .../staging/lustre/lustre/ptlrpc/sec_config.c | 48 --- drivers/staging/lustre/lustre/ptlrpc/sec_gc.c | 15 - 5 files changed, 528 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 871185cd52b3..1d2c5724d1df 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -295,7 +295,6 @@ enum lustre_sec_part { LUSTRE_SP_ANY = 0xFF }; -const char *sptlrpc_part2name(enum lustre_sec_part sp); enum lustre_sec_part sptlrpc_target_sec_part(struct obd_device *obd); /** @@ -339,7 +338,6 @@ int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, enum lustre_sec_part to, lnet_nid_t nid, struct sptlrpc_flavor *sf); -void sptlrpc_rule_set_dump(struct sptlrpc_rule_set *set); int sptlrpc_process_config(struct lustre_cfg *lcfg); void sptlrpc_conf_log_start(const char *logname); @@ -347,10 +345,6 @@ void sptlrpc_conf_log_stop(const char *logname); void sptlrpc_conf_log_update_begin(const char *logname); void sptlrpc_conf_log_update_end(const char *logname); void sptlrpc_conf_client_adapt(struct obd_device *obd); -void sptlrpc_target_choose_flavor(struct sptlrpc_rule_set *rset, - enum lustre_sec_part from, - lnet_nid_t nid, - struct sptlrpc_flavor *flavor); /* The maximum length of security payload. 1024 is enough for Kerberos 5, * and should be enough for other future mechanisms but not sure. @@ -1002,16 +996,12 @@ void sptlrpc_sec_put(struct ptlrpc_sec *sec); * internal apis which only used by policy implementation */ int sptlrpc_get_next_secid(void); -void sptlrpc_sec_destroy(struct ptlrpc_sec *sec); /* * exported client context api */ struct ptlrpc_cli_ctx *sptlrpc_cli_ctx_get(struct ptlrpc_cli_ctx *ctx); void sptlrpc_cli_ctx_put(struct ptlrpc_cli_ctx *ctx, int sync); -void sptlrpc_cli_ctx_expire(struct ptlrpc_cli_ctx *ctx); -void sptlrpc_cli_ctx_wakeup(struct ptlrpc_cli_ctx *ctx); -int sptlrpc_cli_ctx_display(struct ptlrpc_cli_ctx *ctx, char *buf, int bufsize); /* * exported client context wrap/buffers @@ -1054,7 +1044,6 @@ int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule); /* gc */ void sptlrpc_gc_add_sec(struct ptlrpc_sec *sec); void sptlrpc_gc_del_sec(struct ptlrpc_sec *sec); -void sptlrpc_gc_add_ctx(struct ptlrpc_cli_ctx *ctx); /* misc */ const char *sec2target_str(struct ptlrpc_sec *sec); @@ -1078,25 +1067,16 @@ int sptlrpc_svc_wrap_reply(struct ptlrpc_request *req); void sptlrpc_svc_free_rs(struct ptlrpc_reply_state *rs); void sptlrpc_svc_ctx_addref(struct ptlrpc_request *req); void sptlrpc_svc_ctx_decref(struct ptlrpc_request *req); -void sptlrpc_svc_ctx_invalidate(struct ptlrpc_request *req); int sptlrpc_target_export_check(struct obd_export *exp, struct ptlrpc_request *req); -void sptlrpc_target_update_exp_flavor(struct obd_device *obd, - struct sptlrpc_rule_set *rset); - /* * reverse context */ int sptlrpc_svc_install_rvs_ctx(struct obd_import *imp, struct ptlrpc_svc_ctx *ctx); -int sptlrpc_cli_install_rvs_ctx(struct obd_import *imp, - struct ptlrpc_cli_ctx *ctx); /* bulk security api */ -int sptlrpc_enc_pool_add_user(void); -int sptlrpc_enc_pool_del_user(void); -int sptlrpc_enc_pool_get_pages(struct ptlrpc_bulk_desc *desc); void sptlrpc_enc_pool_put_pages(struct ptlrpc_bulk_desc *desc); int sptlrpc_cli_wrap_bulk(struct ptlrpc_request *req, diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec.c b/drivers/staging/lustre/lustre/ptlrpc/sec.c index 5ee6641ea023..67604b560670 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec.c @@ -297,46 +297,6 @@ void sptlrpc_cli_ctx_put(struct ptlrpc_cli_ctx *ctx, int sync) } EXPORT_SYMBOL(sptlrpc_cli_ctx_put); -/** - * Expire the client context immediately. - * - * \pre Caller must hold at least 1 reference on the \a ctx. - */ -void sptlrpc_cli_ctx_expire(struct ptlrpc_cli_ctx *ctx) -{ - LASSERT(ctx->cc_ops->force_die); - ctx->cc_ops->force_die(ctx, 0); -} -EXPORT_SYMBOL(sptlrpc_cli_ctx_expire); - -/** - * To wake up the threads who are waiting for this client context. Called - * after some status change happened on \a ctx. - */ -void sptlrpc_cli_ctx_wakeup(struct ptlrpc_cli_ctx *ctx) -{ - struct ptlrpc_request *req, *next; - - spin_lock(&ctx->cc_lock); - list_for_each_entry_safe(req, next, &ctx->cc_req_list, - rq_ctx_chain) { - list_del_init(&req->rq_ctx_chain); - ptlrpc_client_wake_req(req); - } - spin_unlock(&ctx->cc_lock); -} -EXPORT_SYMBOL(sptlrpc_cli_ctx_wakeup); - -int sptlrpc_cli_ctx_display(struct ptlrpc_cli_ctx *ctx, char *buf, int bufsize) -{ - LASSERT(ctx->cc_ops); - - if (ctx->cc_ops->display == NULL) - return 0; - - return ctx->cc_ops->display(ctx, buf, bufsize); -} - static int import_sec_check_expire(struct obd_import *imp) { int adapt = 0; @@ -1229,12 +1189,6 @@ static void sec_cop_destroy_sec(struct ptlrpc_sec *sec) sptlrpc_policy_put(policy); } -void sptlrpc_sec_destroy(struct ptlrpc_sec *sec) -{ - sec_cop_destroy_sec(sec); -} -EXPORT_SYMBOL(sptlrpc_sec_destroy); - static void sptlrpc_sec_kill(struct ptlrpc_sec *sec) { LASSERT_ATOMIC_POS(&sec->ps_refcount); @@ -1507,13 +1461,6 @@ static void import_flush_ctx_common(struct obd_import *imp, sptlrpc_sec_put(sec); } -void sptlrpc_import_flush_root_ctx(struct obd_import *imp) -{ - /* it's important to use grace mode, see explain in - * sptlrpc_req_refresh_ctx() */ - import_flush_ctx_common(imp, 0, 1, 1); -} - void sptlrpc_import_flush_my_ctx(struct obd_import *imp) { import_flush_ctx_common(imp, from_kuid(&init_user_ns, current_uid()), @@ -1697,16 +1644,6 @@ void sptlrpc_cli_free_repbuf(struct ptlrpc_request *req) req->rq_repmsg = NULL; } -int sptlrpc_cli_install_rvs_ctx(struct obd_import *imp, - struct ptlrpc_cli_ctx *ctx) -{ - struct ptlrpc_sec_policy *policy = ctx->cc_sec->ps_policy; - - if (!policy->sp_cops->install_rctx) - return 0; - return policy->sp_cops->install_rctx(imp, ctx->cc_sec, ctx); -} - int sptlrpc_svc_install_rvs_ctx(struct obd_import *imp, struct ptlrpc_svc_ctx *ctx) { @@ -1921,46 +1858,6 @@ int sptlrpc_target_export_check(struct obd_export *exp, } EXPORT_SYMBOL(sptlrpc_target_export_check); -void sptlrpc_target_update_exp_flavor(struct obd_device *obd, - struct sptlrpc_rule_set *rset) -{ - struct obd_export *exp; - struct sptlrpc_flavor new_flvr; - - LASSERT(obd); - - spin_lock(&obd->obd_dev_lock); - - list_for_each_entry(exp, &obd->obd_exports, exp_obd_chain) { - if (exp->exp_connection == NULL) - continue; - - /* note if this export had just been updated flavor - * (exp_flvr_changed == 1), this will override the - * previous one. */ - spin_lock(&exp->exp_lock); - sptlrpc_target_choose_flavor(rset, exp->exp_sp_peer, - exp->exp_connection->c_peer.nid, - &new_flvr); - if (exp->exp_flvr_changed || - !flavor_equal(&new_flvr, &exp->exp_flvr)) { - exp->exp_flvr_old[1] = new_flvr; - exp->exp_flvr_expire[1] = 0; - exp->exp_flvr_changed = 1; - exp->exp_flvr_adapt = 1; - - CDEBUG(D_SEC, "exp %p (%s): updated flavor %x->%x\n", - exp, sptlrpc_part2name(exp->exp_sp_peer), - exp->exp_flvr.sf_rpc, - exp->exp_flvr_old[1].sf_rpc); - } - spin_unlock(&exp->exp_lock); - } - - spin_unlock(&obd->obd_dev_lock); -} -EXPORT_SYMBOL(sptlrpc_target_update_exp_flavor); - static int sptlrpc_svc_check_from(struct ptlrpc_request *req, int svc_rc) { /* peer's claim is unreliable unless gss is being used */ @@ -2183,19 +2080,6 @@ void sptlrpc_svc_ctx_decref(struct ptlrpc_request *req) req->rq_svc_ctx = NULL; } -void sptlrpc_svc_ctx_invalidate(struct ptlrpc_request *req) -{ - struct ptlrpc_svc_ctx *ctx = req->rq_svc_ctx; - - if (ctx == NULL) - return; - - LASSERT_ATOMIC_POS(&ctx->sc_refcount); - if (ctx->sc_policy->sp_sops->invalidate_ctx) - ctx->sc_policy->sp_sops->invalidate_ctx(ctx); -} -EXPORT_SYMBOL(sptlrpc_svc_ctx_invalidate); - /**************************************** * bulk security * ****************************************/ diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c index c18b71c71181..c89973c0e3a2 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c @@ -302,150 +302,6 @@ static unsigned long enc_pools_cleanup(struct page ***pools, int npools) return cleaned; } -/* - * merge @npools pointed by @pools which contains @npages new pages - * into current pools. - * - * we have options to avoid most memory copy with some tricks. but we choose - * the simplest way to avoid complexity. It's not frequently called. - */ -static void enc_pools_insert(struct page ***pools, int npools, int npages) -{ - int freeslot; - int op_idx, np_idx, og_idx, ng_idx; - int cur_npools, end_npools; - - LASSERT(npages > 0); - LASSERT(page_pools.epp_total_pages+npages <= page_pools.epp_max_pages); - LASSERT(npages_to_npools(npages) == npools); - LASSERT(page_pools.epp_growing); - - spin_lock(&page_pools.epp_lock); - - /* - * (1) fill all the free slots of current pools. - */ - /* free slots are those left by rent pages, and the extra ones with - * index >= total_pages, locate at the tail of last pool. */ - freeslot = page_pools.epp_total_pages % PAGES_PER_POOL; - if (freeslot != 0) - freeslot = PAGES_PER_POOL - freeslot; - freeslot += page_pools.epp_total_pages - page_pools.epp_free_pages; - - op_idx = page_pools.epp_free_pages / PAGES_PER_POOL; - og_idx = page_pools.epp_free_pages % PAGES_PER_POOL; - np_idx = npools - 1; - ng_idx = (npages - 1) % PAGES_PER_POOL; - - while (freeslot) { - LASSERT(page_pools.epp_pools[op_idx][og_idx] == NULL); - LASSERT(pools[np_idx][ng_idx] != NULL); - - page_pools.epp_pools[op_idx][og_idx] = pools[np_idx][ng_idx]; - pools[np_idx][ng_idx] = NULL; - - freeslot--; - - if (++og_idx == PAGES_PER_POOL) { - op_idx++; - og_idx = 0; - } - if (--ng_idx < 0) { - if (np_idx == 0) - break; - np_idx--; - ng_idx = PAGES_PER_POOL - 1; - } - } - - /* - * (2) add pools if needed. - */ - cur_npools = (page_pools.epp_total_pages + PAGES_PER_POOL - 1) / - PAGES_PER_POOL; - end_npools = (page_pools.epp_total_pages + npages + PAGES_PER_POOL - 1) - / PAGES_PER_POOL; - LASSERT(end_npools <= page_pools.epp_max_pools); - - np_idx = 0; - while (cur_npools < end_npools) { - LASSERT(page_pools.epp_pools[cur_npools] == NULL); - LASSERT(np_idx < npools); - LASSERT(pools[np_idx] != NULL); - - page_pools.epp_pools[cur_npools++] = pools[np_idx]; - pools[np_idx++] = NULL; - } - - page_pools.epp_total_pages += npages; - page_pools.epp_free_pages += npages; - page_pools.epp_st_lowfree = page_pools.epp_free_pages; - - if (page_pools.epp_total_pages > page_pools.epp_st_max_pages) - page_pools.epp_st_max_pages = page_pools.epp_total_pages; - - CDEBUG(D_SEC, "add %d pages to total %lu\n", npages, - page_pools.epp_total_pages); - - spin_unlock(&page_pools.epp_lock); -} - -static int enc_pools_add_pages(int npages) -{ - static DEFINE_MUTEX(add_pages_mutex); - struct page ***pools; - int npools, alloced = 0; - int i, j, rc = -ENOMEM; - - if (npages < PTLRPC_MAX_BRW_PAGES) - npages = PTLRPC_MAX_BRW_PAGES; - - mutex_lock(&add_pages_mutex); - - if (npages + page_pools.epp_total_pages > page_pools.epp_max_pages) - npages = page_pools.epp_max_pages - page_pools.epp_total_pages; - LASSERT(npages > 0); - - page_pools.epp_st_grows++; - - npools = npages_to_npools(npages); - pools = kcalloc(npools, sizeof(*pools), GFP_NOFS); - if (pools == NULL) - goto out; - - for (i = 0; i < npools; i++) { - pools[i] = kzalloc(PAGE_CACHE_SIZE, GFP_NOFS); - if (!pools[i]) - goto out_pools; - - for (j = 0; j < PAGES_PER_POOL && alloced < npages; j++) { - pools[i][j] = alloc_page(GFP_NOFS | - __GFP_HIGHMEM); - if (pools[i][j] == NULL) - goto out_pools; - - alloced++; - } - } - LASSERT(alloced == npages); - - enc_pools_insert(pools, npools, npages); - CDEBUG(D_SEC, "added %d pages into pools\n", npages); - rc = 0; - -out_pools: - enc_pools_cleanup(pools, npools); - kfree(pools); -out: - if (rc) { - page_pools.epp_st_grow_fails++; - CERROR("Failed to allocate %d enc pages\n", npages); - } - - mutex_unlock(&add_pages_mutex); - return rc; -} - static inline void enc_pools_wakeup(void) { assert_spin_locked(&page_pools.epp_lock); @@ -457,156 +313,6 @@ static inline void enc_pools_wakeup(void) } } -static int enc_pools_should_grow(int page_needed, time64_t now) -{ - /* don't grow if someone else is growing the pools right now, - * or the pools has reached its full capacity - */ - if (page_pools.epp_growing || - page_pools.epp_total_pages == page_pools.epp_max_pages) - return 0; - - /* if total pages is not enough, we need to grow */ - if (page_pools.epp_total_pages < page_needed) - return 1; - - /* - * we wanted to return 0 here if there was a shrink just happened - * moment ago, but this may cause deadlock if both client and ost - * live on single node. - */ -#if 0 - if (now - page_pools.epp_last_shrink < 2) - return 0; -#endif - - /* - * here we perhaps need consider other factors like wait queue - * length, idle index, etc. ? - */ - - /* grow the pools in any other cases */ - return 1; -} - -/* - * we allocate the requested pages atomically. - */ -int sptlrpc_enc_pool_get_pages(struct ptlrpc_bulk_desc *desc) -{ - wait_queue_t waitlink; - unsigned long this_idle = -1; - unsigned long tick = 0; - long now; - int p_idx, g_idx; - int i; - - LASSERT(desc->bd_iov_count > 0); - LASSERT(desc->bd_iov_count <= page_pools.epp_max_pages); - - /* resent bulk, enc iov might have been allocated previously */ - if (desc->bd_enc_iov != NULL) - return 0; - - desc->bd_enc_iov = kcalloc(desc->bd_iov_count, - sizeof(*desc->bd_enc_iov), GFP_NOFS); - if (desc->bd_enc_iov == NULL) - return -ENOMEM; - - spin_lock(&page_pools.epp_lock); - - page_pools.epp_st_access++; -again: - if (unlikely(page_pools.epp_free_pages < desc->bd_iov_count)) { - if (tick == 0) - tick = cfs_time_current(); - - now = ktime_get_seconds(); - - page_pools.epp_st_missings++; - page_pools.epp_pages_short += desc->bd_iov_count; - - if (enc_pools_should_grow(desc->bd_iov_count, now)) { - page_pools.epp_growing = 1; - - spin_unlock(&page_pools.epp_lock); - enc_pools_add_pages(page_pools.epp_pages_short / 2); - spin_lock(&page_pools.epp_lock); - - page_pools.epp_growing = 0; - - enc_pools_wakeup(); - } else { - if (++page_pools.epp_waitqlen > - page_pools.epp_st_max_wqlen) - page_pools.epp_st_max_wqlen = - page_pools.epp_waitqlen; - - set_current_state(TASK_UNINTERRUPTIBLE); - init_waitqueue_entry(&waitlink, current); - add_wait_queue(&page_pools.epp_waitq, &waitlink); - - spin_unlock(&page_pools.epp_lock); - schedule(); - remove_wait_queue(&page_pools.epp_waitq, &waitlink); - LASSERT(page_pools.epp_waitqlen > 0); - spin_lock(&page_pools.epp_lock); - page_pools.epp_waitqlen--; - } - - LASSERT(page_pools.epp_pages_short >= desc->bd_iov_count); - page_pools.epp_pages_short -= desc->bd_iov_count; - - this_idle = 0; - goto again; - } - - /* record max wait time */ - if (unlikely(tick != 0)) { - tick = cfs_time_current() - tick; - if (tick > page_pools.epp_st_max_wait) - page_pools.epp_st_max_wait = tick; - } - - /* proceed with rest of allocation */ - page_pools.epp_free_pages -= desc->bd_iov_count; - - p_idx = page_pools.epp_free_pages / PAGES_PER_POOL; - g_idx = page_pools.epp_free_pages % PAGES_PER_POOL; - - for (i = 0; i < desc->bd_iov_count; i++) { - LASSERT(page_pools.epp_pools[p_idx][g_idx] != NULL); - desc->bd_enc_iov[i].kiov_page = - page_pools.epp_pools[p_idx][g_idx]; - page_pools.epp_pools[p_idx][g_idx] = NULL; - - if (++g_idx == PAGES_PER_POOL) { - p_idx++; - g_idx = 0; - } - } - - if (page_pools.epp_free_pages < page_pools.epp_st_lowfree) - page_pools.epp_st_lowfree = page_pools.epp_free_pages; - - /* - * new idle index = (old * weight + new) / (weight + 1) - */ - if (this_idle == -1) { - this_idle = page_pools.epp_free_pages * IDLE_IDX_MAX / - page_pools.epp_total_pages; - } - page_pools.epp_idle_idx = (page_pools.epp_idle_idx * IDLE_IDX_WEIGHT + - this_idle) / - (IDLE_IDX_WEIGHT + 1); - - page_pools.epp_last_access = ktime_get_seconds(); - - spin_unlock(&page_pools.epp_lock); - return 0; -} -EXPORT_SYMBOL(sptlrpc_enc_pool_get_pages); - void sptlrpc_enc_pool_put_pages(struct ptlrpc_bulk_desc *desc) { int p_idx, g_idx; @@ -651,41 +357,6 @@ void sptlrpc_enc_pool_put_pages(struct ptlrpc_bulk_desc *desc) } EXPORT_SYMBOL(sptlrpc_enc_pool_put_pages); -/* - * we don't do much stuff for add_user/del_user anymore, except adding some - * initial pages in add_user() if current pools are empty, rest would be - * handled by the pools's self-adaption. - */ -int sptlrpc_enc_pool_add_user(void) -{ - int need_grow = 0; - - spin_lock(&page_pools.epp_lock); - if (page_pools.epp_growing == 0 && page_pools.epp_total_pages == 0) { - page_pools.epp_growing = 1; - need_grow = 1; - } - spin_unlock(&page_pools.epp_lock); - - if (need_grow) { - enc_pools_add_pages(PTLRPC_MAX_BRW_PAGES + - PTLRPC_MAX_BRW_PAGES); - - spin_lock(&page_pools.epp_lock); - page_pools.epp_growing = 0; - enc_pools_wakeup(); - spin_unlock(&page_pools.epp_lock); - } - return 0; -} -EXPORT_SYMBOL(sptlrpc_enc_pool_add_user); - -int sptlrpc_enc_pool_del_user(void) -{ - return 0; -} -EXPORT_SYMBOL(sptlrpc_enc_pool_del_user); - static inline void enc_pools_alloc(void) { LASSERT(page_pools.epp_max_pools); diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c index 7769ab225a2d..0d29b8734a53 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c @@ -48,27 +48,6 @@ #include "ptlrpc_internal.h" -const char *sptlrpc_part2name(enum lustre_sec_part part) -{ - switch (part) { - case LUSTRE_SP_CLI: - return "cli"; - case LUSTRE_SP_MDT: - return "mdt"; - case LUSTRE_SP_OST: - return "ost"; - case LUSTRE_SP_MGC: - return "mgc"; - case LUSTRE_SP_MGS: - return "mgs"; - case LUSTRE_SP_ANY: - return "any"; - default: - return "err"; - } -} -EXPORT_SYMBOL(sptlrpc_part2name); - enum lustre_sec_part sptlrpc_target_sec_part(struct obd_device *obd) { const char *type = obd->obd_type->typ_name; @@ -430,19 +409,6 @@ int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, } EXPORT_SYMBOL(sptlrpc_rule_set_choose); -void sptlrpc_rule_set_dump(struct sptlrpc_rule_set *rset) -{ - struct sptlrpc_rule *r; - int n; - - for (n = 0; n < rset->srs_nrule; n++) { - r = &rset->srs_rules[n]; - CDEBUG(D_SEC, "<%02d> from %x to %x, net %x, rpc %x\n", n, - r->sr_from, r->sr_to, r->sr_netid, r->sr_flvr.sf_rpc); - } -} -EXPORT_SYMBOL(sptlrpc_rule_set_dump); - /********************************** * sptlrpc configuration support * **********************************/ @@ -836,20 +802,6 @@ out: flavor_set_flags(sf, from, to, 1); } -/** - * called by target devices, determine the expected flavor from - * certain peer (from, nid). - */ -void sptlrpc_target_choose_flavor(struct sptlrpc_rule_set *rset, - enum lustre_sec_part from, - lnet_nid_t nid, - struct sptlrpc_flavor *sf) -{ - if (sptlrpc_rule_set_choose(rset, from, LUSTRE_SP_ANY, nid, sf) == 0) - get_default_flavor(sf); -} -EXPORT_SYMBOL(sptlrpc_target_choose_flavor); - #define SEC_ADAPT_DELAY (10) /** diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c index c3ad1dabced8..520329f88465 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c @@ -103,21 +103,6 @@ void sptlrpc_gc_del_sec(struct ptlrpc_sec *sec) } EXPORT_SYMBOL(sptlrpc_gc_del_sec); -void sptlrpc_gc_add_ctx(struct ptlrpc_cli_ctx *ctx) -{ - LASSERT(list_empty(&ctx->cc_gc_chain)); - - CDEBUG(D_SEC, "hand over ctx %p(%u->%s)\n", - ctx, ctx->cc_vcred.vc_uid, sec2target_str(ctx->cc_sec)); - spin_lock(&sec_gc_ctx_list_lock); - list_add(&ctx->cc_gc_chain, &sec_gc_ctx_list); - spin_unlock(&sec_gc_ctx_list_lock); - - thread_add_flags(&sec_gc_thread, SVC_SIGNAL); - wake_up(&sec_gc_thread.t_ctl_waitq); -} -EXPORT_SYMBOL(sptlrpc_gc_add_ctx); - static void sec_process_ctx_list(void) { struct ptlrpc_cli_ctx *ctx; From 2e57708b2071cdff36d8b8815dad30b345ac5d2d Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:01 -0400 Subject: [PATCH 1012/2431] staging/lustre: Drop unused obdo_from_la() and la_from_obdo() They are no longer used anywhere. Reported-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/obdclass/linux/linux-obdo.c | 137 ------------------ 1 file changed, 137 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/linux/linux-obdo.c b/drivers/staging/lustre/lustre/obdclass/linux/linux-obdo.c index 62ed706b136d..9496c09b2b69 100644 --- a/drivers/staging/lustre/lustre/obdclass/linux/linux-obdo.c +++ b/drivers/staging/lustre/lustre/obdclass/linux/linux-obdo.c @@ -49,102 +49,6 @@ #include #include /* for PAGE_CACHE_SIZE */ -/*FIXME: Just copy from obdo_from_inode*/ -void obdo_from_la(struct obdo *dst, struct lu_attr *la, __u64 valid) -{ - u32 newvalid = 0; - - if (valid & LA_ATIME) { - dst->o_atime = la->la_atime; - newvalid |= OBD_MD_FLATIME; - } - if (valid & LA_MTIME) { - dst->o_mtime = la->la_mtime; - newvalid |= OBD_MD_FLMTIME; - } - if (valid & LA_CTIME) { - dst->o_ctime = la->la_ctime; - newvalid |= OBD_MD_FLCTIME; - } - if (valid & LA_SIZE) { - dst->o_size = la->la_size; - newvalid |= OBD_MD_FLSIZE; - } - if (valid & LA_BLOCKS) { /* allocation of space (x512 bytes) */ - dst->o_blocks = la->la_blocks; - newvalid |= OBD_MD_FLBLOCKS; - } - if (valid & LA_TYPE) { - dst->o_mode = (dst->o_mode & S_IALLUGO) | - (la->la_mode & S_IFMT); - newvalid |= OBD_MD_FLTYPE; - } - if (valid & LA_MODE) { - dst->o_mode = (dst->o_mode & S_IFMT) | - (la->la_mode & S_IALLUGO); - newvalid |= OBD_MD_FLMODE; - } - if (valid & LA_UID) { - dst->o_uid = la->la_uid; - newvalid |= OBD_MD_FLUID; - } - if (valid & LA_GID) { - dst->o_gid = la->la_gid; - newvalid |= OBD_MD_FLGID; - } - dst->o_valid |= newvalid; -} -EXPORT_SYMBOL(obdo_from_la); - -/*FIXME: Just copy from obdo_from_inode*/ -void la_from_obdo(struct lu_attr *dst, struct obdo *obdo, u32 valid) -{ - __u64 newvalid = 0; - - valid &= obdo->o_valid; - - if (valid & OBD_MD_FLATIME) { - dst->la_atime = obdo->o_atime; - newvalid |= LA_ATIME; - } - if (valid & OBD_MD_FLMTIME) { - dst->la_mtime = obdo->o_mtime; - newvalid |= LA_MTIME; - } - if (valid & OBD_MD_FLCTIME) { - dst->la_ctime = obdo->o_ctime; - newvalid |= LA_CTIME; - } - if (valid & OBD_MD_FLSIZE) { - dst->la_size = obdo->o_size; - newvalid |= LA_SIZE; - } - if (valid & OBD_MD_FLBLOCKS) { - dst->la_blocks = obdo->o_blocks; - newvalid |= LA_BLOCKS; - } - if (valid & OBD_MD_FLTYPE) { - dst->la_mode = (dst->la_mode & S_IALLUGO) | - (obdo->o_mode & S_IFMT); - newvalid |= LA_TYPE; - } - if (valid & OBD_MD_FLMODE) { - dst->la_mode = (dst->la_mode & S_IFMT) | - (obdo->o_mode & S_IALLUGO); - newvalid |= LA_MODE; - } - if (valid & OBD_MD_FLUID) { - dst->la_uid = obdo->o_uid; - newvalid |= LA_UID; - } - if (valid & OBD_MD_FLGID) { - dst->la_gid = obdo->o_gid; - newvalid |= LA_GID; - } - dst->la_valid = newvalid; -} -EXPORT_SYMBOL(la_from_obdo); - void obdo_refresh_inode(struct inode *dst, struct obdo *src, u32 valid) { valid &= src->o_valid; @@ -179,44 +83,3 @@ void obdo_refresh_inode(struct inode *dst, struct obdo *src, u32 valid) dst->i_blocks = src->o_blocks; } EXPORT_SYMBOL(obdo_refresh_inode); - -void obdo_to_inode(struct inode *dst, struct obdo *src, u32 valid) -{ - valid &= src->o_valid; - - LASSERTF(!(valid & (OBD_MD_FLTYPE | OBD_MD_FLGENER | OBD_MD_FLFID | - OBD_MD_FLID | OBD_MD_FLGROUP)), - "object "DOSTID", valid %x\n", POSTID(&src->o_oi), valid); - - if (valid & (OBD_MD_FLCTIME | OBD_MD_FLMTIME)) - CDEBUG(D_INODE, - "valid %#llx, cur time %lu/%lu, new %llu/%llu\n", - src->o_valid, LTIME_S(dst->i_mtime), - LTIME_S(dst->i_ctime), src->o_mtime, src->o_ctime); - - if (valid & OBD_MD_FLATIME) - LTIME_S(dst->i_atime) = src->o_atime; - if (valid & OBD_MD_FLMTIME) - LTIME_S(dst->i_mtime) = src->o_mtime; - if (valid & OBD_MD_FLCTIME && src->o_ctime > LTIME_S(dst->i_ctime)) - LTIME_S(dst->i_ctime) = src->o_ctime; - if (valid & OBD_MD_FLSIZE) - i_size_write(dst, src->o_size); - if (valid & OBD_MD_FLBLOCKS) { /* allocation of space */ - dst->i_blocks = src->o_blocks; - if (dst->i_blocks < src->o_blocks) /* overflow */ - dst->i_blocks = -1; - - } - if (valid & OBD_MD_FLBLKSZ) - dst->i_blkbits = ffs(src->o_blksize)-1; - if (valid & OBD_MD_FLMODE) - dst->i_mode = (dst->i_mode & S_IFMT) | (src->o_mode & ~S_IFMT); - if (valid & OBD_MD_FLUID) - dst->i_uid = make_kuid(&init_user_ns, src->o_uid); - if (valid & OBD_MD_FLGID) - dst->i_gid = make_kgid(&init_user_ns, src->o_gid); - if (valid & OBD_MD_FLFLAGS) - dst->i_flags = src->o_flags; -} -EXPORT_SYMBOL(obdo_to_inode); From db2162d17565ff1f90fe24464cc14974ce9fbff6 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Mon, 28 Sep 2015 23:44:02 -0400 Subject: [PATCH 1013/2431] staging/lustre: remove lots of dead code This is a large patch to remove all dead code from obdclass and ptlrpc, purely removing functions and declarations now, so despite the size should be easy enough to verify. Signed-off-by: Arnd Bergmann Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre/lustre_idl.h | 8 - .../lustre/include/lustre/lustre_user.h | 2 - .../lustre/lustre/include/lustre_debug.h | 1 - .../lustre/lustre/include/lustre_export.h | 1 - .../lustre/lustre/include/lustre_net.h | 18 -- .../lustre/lustre/include/lustre_param.h | 6 - .../lustre/lustre/include/lustre_req_layout.h | 4 - .../staging/lustre/lustre/include/obd_class.h | 16 -- .../staging/lustre/lustre/obdclass/debug.c | 10 - .../lustre/obdclass/linux/linux-sysctl.c | 4 - .../lustre/lustre/obdclass/obd_config.c | 257 ------------------ drivers/staging/lustre/lustre/ptlrpc/layout.c | 64 ----- drivers/staging/lustre/lustre/ptlrpc/nrs.c | 123 --------- .../lustre/lustre/ptlrpc/pack_generic.c | 197 -------------- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 18 -- .../lustre/lustre/ptlrpc/ptlrpc_internal.h | 2 - 16 files changed, 731 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 3ac1de352296..9cc92bbc21d5 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -2587,8 +2587,6 @@ struct lmv_desc { struct obd_uuid ld_uuid; }; -void lustre_swab_lmv_desc(struct lmv_desc *ld); - /* TODO: lmv_stripe_md should contain mds capabilities for all slave fids */ struct lmv_stripe_md { __u32 mea_magic; @@ -2599,8 +2597,6 @@ struct lmv_stripe_md { struct lu_fid mea_ids[0]; }; -void lustre_swab_lmv_stripe_md(struct lmv_stripe_md *mea); - /* lmv structures */ #define MEA_MAGIC_LAST_CHAR 0xb2221ca1 #define MEA_MAGIC_ALL_CHARS 0xb222a11c @@ -3442,8 +3438,6 @@ struct lu_idxpage { char lip_entries[0]; }; -void lustre_swab_lip_header(struct lu_idxpage *lip); - #define LIP_HDR_SIZE (offsetof(struct lu_idxpage, lip_entries)) /* Gather all possible type associated with a 4KB container */ @@ -3517,8 +3511,6 @@ struct lustre_capa_key { __u8 lk_key[CAPA_HMAC_KEY_MAX_LEN]; /**< key */ } __attribute__((packed)); -void lustre_swab_lustre_capa_key(struct lustre_capa_key *k); - /** The link ea holds 1 \a link_ea_entry for each hardlink */ #define LINK_EA_MAGIC 0x11EAF1DFUL struct link_ea_header { diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index e9925ef1dbee..1a41366322fe 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -406,8 +406,6 @@ static inline int lmv_user_md_size(int stripes, int lmm_magic) stripes * sizeof(struct lmv_user_mds_data); } -void lustre_swab_lmv_user_md(struct lmv_user_md *lum); - struct ll_recreate_obj { __u64 lrc_id; __u32 lrc_ost_idx; diff --git a/drivers/staging/lustre/lustre/include/lustre_debug.h b/drivers/staging/lustre/lustre/include/lustre_debug.h index 6c92d0bc943b..8a089413c92e 100644 --- a/drivers/staging/lustre/lustre/include/lustre_debug.h +++ b/drivers/staging/lustre/lustre/include/lustre_debug.h @@ -46,7 +46,6 @@ #include "obd.h" /* lib/debug.c */ -void dump_lniobuf(struct niobuf_local *lnb); int dump_req(struct ptlrpc_request *req); int block_debug_setup(void *addr, int len, __u64 off, __u64 id); int block_debug_check(char *who, void *addr, int len, __u64 off, __u64 id); diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index c29bfdbef12d..7634deafa9fa 100644 --- a/drivers/staging/lustre/lustre/include/lustre_export.h +++ b/drivers/staging/lustre/lustre/include/lustre_export.h @@ -353,7 +353,6 @@ static inline bool imp_connect_disp_stripe(struct obd_import *imp) } struct obd_export *class_conn2export(struct lustre_handle *conn); -struct obd_device *class_conn2obd(struct lustre_handle *conn); /** @} export */ diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index a486c1df0cf5..af3bf2164ef9 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -642,7 +642,6 @@ struct ptlrpc_nrs_pol_ops { * * \see ptlrpc_nrs_req_initialize() * \see ptlrpc_nrs_hpreq_add_nolock() - * \see ptlrpc_nrs_req_hp_move() */ int (*op_res_get) (struct ptlrpc_nrs_policy *policy, struct ptlrpc_nrs_request *nrq, @@ -658,7 +657,6 @@ struct ptlrpc_nrs_pol_ops { * * \see ptlrpc_nrs_req_finalize() * \see ptlrpc_nrs_hpreq_add_nolock() - * \see ptlrpc_nrs_req_hp_move() */ void (*op_res_put) (struct ptlrpc_nrs_policy *policy, const struct ptlrpc_nrs_resource *res); @@ -703,8 +701,6 @@ struct ptlrpc_nrs_pol_ops { * * \param[in,out] policy The policy the request \a nrq belongs to * \param[in,out] nrq The request to dequeue - * - * \see ptlrpc_nrs_req_del_nolock() */ void (*op_req_dequeue) (struct ptlrpc_nrs_policy *policy, struct ptlrpc_nrs_request *nrq); @@ -1536,10 +1532,6 @@ static inline int ptlrpc_req_interpret(const struct lu_env *env, * @{ */ int ptlrpc_nrs_policy_register(struct ptlrpc_nrs_pol_conf *conf); -int ptlrpc_nrs_policy_unregister(struct ptlrpc_nrs_pol_conf *conf); -void ptlrpc_nrs_req_hp_move(struct ptlrpc_request *req); -void nrs_policy_get_info_locked(struct ptlrpc_nrs_policy *policy, - struct ptlrpc_nrs_pol_info *info); /* * Can the request be moved from the regular NRS head to the high-priority NRS @@ -2522,7 +2514,6 @@ void ptlrpc_stop_all_threads(struct ptlrpc_service *svc); int ptlrpc_start_threads(struct ptlrpc_service *svc); int ptlrpc_unregister_service(struct ptlrpc_service *service); int liblustre_check_services(void *arg); -void ptlrpc_daemonize(char *name); void ptlrpc_server_drop_request(struct ptlrpc_request *req); int ptlrpc_hr_init(void); @@ -2558,7 +2549,6 @@ void ptlrpc_buf_set_swabbed(struct ptlrpc_request *req, const int inout, int ptlrpc_unpack_rep_msg(struct ptlrpc_request *req, int len); int ptlrpc_unpack_req_msg(struct ptlrpc_request *req, int len); -int lustre_msg_check_version(struct lustre_msg *msg, __u32 version); void lustre_init_msg_v2(struct lustre_msg_v2 *msg, int count, __u32 *lens, char **bufs); int lustre_pack_request(struct ptlrpc_request *, __u32 magic, int count, @@ -2582,7 +2572,6 @@ int lustre_msg_early_size(void); void *lustre_msg_buf_v2(struct lustre_msg_v2 *m, int n, int min_size); void *lustre_msg_buf(struct lustre_msg *m, int n, int minlen); int lustre_msg_buflen(struct lustre_msg *m, int n); -void lustre_msg_set_buflen(struct lustre_msg *m, int n, int len); int lustre_msg_bufcount(struct lustre_msg *m); char *lustre_msg_string(struct lustre_msg *m, int n, int max_len); __u32 lustre_msghdr_get_flags(struct lustre_msg *msg); @@ -2595,10 +2584,8 @@ __u32 lustre_msg_get_op_flags(struct lustre_msg *msg); void lustre_msg_add_op_flags(struct lustre_msg *msg, int flags); struct lustre_handle *lustre_msg_get_handle(struct lustre_msg *msg); __u32 lustre_msg_get_type(struct lustre_msg *msg); -__u32 lustre_msg_get_version(struct lustre_msg *msg); void lustre_msg_add_version(struct lustre_msg *msg, int version); __u32 lustre_msg_get_opc(struct lustre_msg *msg); -__u64 lustre_msg_get_last_xid(struct lustre_msg *msg); __u64 lustre_msg_get_last_committed(struct lustre_msg *msg); __u64 *lustre_msg_get_versions(struct lustre_msg *msg); __u64 lustre_msg_get_transno(struct lustre_msg *msg); @@ -2611,21 +2598,16 @@ __u32 lustre_msg_get_conn_cnt(struct lustre_msg *msg); __u32 lustre_msg_get_magic(struct lustre_msg *msg); __u32 lustre_msg_get_timeout(struct lustre_msg *msg); __u32 lustre_msg_get_service_time(struct lustre_msg *msg); -char *lustre_msg_get_jobid(struct lustre_msg *msg); __u32 lustre_msg_get_cksum(struct lustre_msg *msg); __u32 lustre_msg_calc_cksum(struct lustre_msg *msg); void lustre_msg_set_handle(struct lustre_msg *msg, struct lustre_handle *handle); void lustre_msg_set_type(struct lustre_msg *msg, __u32 type); void lustre_msg_set_opc(struct lustre_msg *msg, __u32 opc); -void lustre_msg_set_last_xid(struct lustre_msg *msg, __u64 last_xid); -void lustre_msg_set_last_committed(struct lustre_msg *msg, - __u64 last_committed); void lustre_msg_set_versions(struct lustre_msg *msg, __u64 *versions); void lustre_msg_set_transno(struct lustre_msg *msg, __u64 transno); void lustre_msg_set_status(struct lustre_msg *msg, __u32 status); void lustre_msg_set_conn_cnt(struct lustre_msg *msg, __u32 conn_cnt); -void ptlrpc_req_set_repsize(struct ptlrpc_request *req, int count, __u32 *sizes); void ptlrpc_request_set_replen(struct ptlrpc_request *req); void lustre_msg_set_timeout(struct lustre_msg *msg, __u32 timeout); void lustre_msg_set_service_time(struct lustre_msg *msg, __u32 service_time); diff --git a/drivers/staging/lustre/lustre/include/lustre_param.h b/drivers/staging/lustre/lustre/include/lustre_param.h index ed654684cb64..de49b414e912 100644 --- a/drivers/staging/lustre/lustre/include/lustre_param.h +++ b/drivers/staging/lustre/lustre/include/lustre_param.h @@ -56,15 +56,9 @@ struct cfg_interop_param { /* obd_config.c */ int class_find_param(char *buf, char *key, char **valp); -struct cfg_interop_param *class_find_old_param(const char *param, - struct cfg_interop_param *ptr); -int class_get_next_param(char **params, char *copy); int class_match_param(char *buf, char *key, char **valp); int class_parse_nid(char *buf, lnet_nid_t *nid, char **endh); int class_parse_nid_quiet(char *buf, lnet_nid_t *nid, char **endh); -int class_parse_net(char *buf, __u32 *net, char **endh); -int class_match_nid(char *buf, char *key, lnet_nid_t nid); -int class_match_net(char *buf, char *key, __u32 net); /* obd_mount.c */ int do_lcfg(char *cfgname, lnet_nid_t nid, int cmd, char *s1, char *s2, char *s3, char *s4); diff --git a/drivers/staging/lustre/lustre/include/lustre_req_layout.h b/drivers/staging/lustre/lustre/include/lustre_req_layout.h index 04c00761c861..cfcc995585c0 100644 --- a/drivers/staging/lustre/lustre/include/lustre_req_layout.h +++ b/drivers/staging/lustre/lustre/include/lustre_req_layout.h @@ -80,8 +80,6 @@ void req_capsule_init(struct req_capsule *pill, struct ptlrpc_request *req, void req_capsule_fini(struct req_capsule *pill); void req_capsule_set(struct req_capsule *pill, const struct req_format *fmt); -void req_capsule_client_dump(struct req_capsule *pill); -void req_capsule_server_dump(struct req_capsule *pill); void req_capsule_init_area(struct req_capsule *pill); int req_capsule_filled_sizes(struct req_capsule *pill, enum req_location loc); int req_capsule_server_pack(struct req_capsule *pill); @@ -105,8 +103,6 @@ void *req_capsule_server_swab_get(struct req_capsule *pill, void *req_capsule_server_sized_swab_get(struct req_capsule *pill, const struct req_msg_field *field, int len, void *swabber); -const void *req_capsule_other_get(struct req_capsule *pill, - const struct req_msg_field *field); void req_capsule_set_size(struct req_capsule *pill, const struct req_msg_field *field, diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index b323403816d3..73fb29fe1481 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -106,8 +106,6 @@ struct llog_rec_hdr; typedef int (*llog_cb_t)(const struct lu_env *, struct llog_handle *, struct llog_rec_hdr *, void *); /* obd_config.c */ -struct lustre_cfg *lustre_cfg_rename(struct lustre_cfg *cfg, - const char *new_name); int class_process_config(struct lustre_cfg *lcfg); int class_process_proc_param(char *prefix, struct lprocfs_vars *lvars, struct lustre_cfg *lcfg, void *data); @@ -147,9 +145,6 @@ struct config_llog_instance { }; int class_config_parse_llog(const struct lu_env *env, struct llog_ctxt *ctxt, char *name, struct config_llog_instance *cfg); -int class_config_dump_llog(const struct lu_env *env, struct llog_ctxt *ctxt, - char *name, struct config_llog_instance *cfg); - enum { CONFIG_T_CONFIG = 0, CONFIG_T_SPTLRPC = 1, @@ -285,22 +280,11 @@ static inline enum obd_option exp_flags_from_obd(struct obd_device *obd) struct inode; struct lu_attr; struct obdo; -void obdo_from_la(struct obdo *dst, struct lu_attr *la, __u64 valid); -void la_from_obdo(struct lu_attr *la, struct obdo *dst, u32 valid); void obdo_refresh_inode(struct inode *dst, struct obdo *src, u32 valid); -void obdo_to_inode(struct inode *dst, struct obdo *src, u32 valid); -void obdo_cpy_md(struct obdo *dst, struct obdo *src, u32 valid); void obdo_to_ioobj(struct obdo *oa, struct obd_ioobj *ioobj); -void obdo_from_iattr(struct obdo *oa, struct iattr *attr, - unsigned int ia_valid); void iattr_from_obdo(struct iattr *attr, struct obdo *oa, u32 valid); void md_from_obdo(struct md_op_data *op_data, struct obdo *oa, u32 valid); -void obdo_from_md(struct obdo *oa, struct md_op_data *op_data, - unsigned int valid); - -void obdo_cpu_to_le(struct obdo *dobdo, struct obdo *sobdo); -void obdo_le_to_cpu(struct obdo *dobdo, struct obdo *sobdo); #define OBT(dev) (dev)->obd_type #define OBP(dev, op) (dev)->obd_type->typ_dt_ops->o_ ## op diff --git a/drivers/staging/lustre/lustre/obdclass/debug.c b/drivers/staging/lustre/lustre/obdclass/debug.c index c61add46b426..43a7f7a79b35 100644 --- a/drivers/staging/lustre/lustre/obdclass/debug.c +++ b/drivers/staging/lustre/lustre/obdclass/debug.c @@ -46,16 +46,6 @@ #include "../include/lustre_debug.h" #include "../include/lustre_net.h" -void dump_lniobuf(struct niobuf_local *nb) -{ - CDEBUG(D_RPCTRACE, - "niobuf_local: file_offset=%lld, len=%d, page=%p, rc=%d\n", - nb->lnb_file_offset, nb->len, nb->page, nb->rc); - CDEBUG(D_RPCTRACE, "nb->page: index = %ld\n", - nb->page ? page_index(nb->page) : -1); -} -EXPORT_SYMBOL(dump_lniobuf); - #define LPDS sizeof(__u64) int block_debug_setup(void *addr, int len, __u64 off, __u64 id) { diff --git a/drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c b/drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c index 1515163a81a5..518288df4d53 100644 --- a/drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c +++ b/drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c @@ -162,7 +162,3 @@ int obd_sysctl_init(void) { return sysfs_create_group(lustre_kobj, &lustre_attr_group); } - -void obd_sysctl_clean(void) -{ -} diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index d19cbf67a60b..a8a1cb774fb4 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -71,114 +71,6 @@ int class_find_param(char *buf, char *key, char **valp) } EXPORT_SYMBOL(class_find_param); -/** - * Check whether the proc parameter \a param is an old parameter or not from - * the array \a ptr which contains the mapping from old parameters to new ones. - * If it's an old one, then return the pointer to the cfg_interop_param struc- - * ture which contains both the old and new parameters. - * - * \param param proc parameter - * \param ptr an array which contains the mapping from - * old parameters to new ones - * - * \retval valid-pointer pointer to the cfg_interop_param structure - * which contains the old and new parameters - * \retval NULL \a param or \a ptr is NULL, - * or \a param is not an old parameter - */ -struct cfg_interop_param *class_find_old_param(const char *param, - struct cfg_interop_param *ptr) -{ - char *value = NULL; - int name_len = 0; - - if (!param || !ptr) - return NULL; - - value = strchr(param, '='); - if (!value) - name_len = strlen(param); - else - name_len = value - param; - - while (ptr->old_param != NULL) { - if (strncmp(param, ptr->old_param, name_len) == 0 && - name_len == strlen(ptr->old_param)) - return ptr; - ptr++; - } - - return NULL; -} -EXPORT_SYMBOL(class_find_old_param); - -/** - * Finds a parameter in \a params and copies it to \a copy. - * - * Leading spaces are skipped. Next space or end of string is the - * parameter terminator with the exception that spaces inside single or double - * quotes get included into a parameter. The parameter is copied into \a copy - * which has to be allocated big enough by a caller, quotes are stripped in - * the copy and the copy is terminated by 0. - * - * On return \a params is set to next parameter or to NULL if last - * parameter is returned. - * - * \retval 0 if parameter is returned in \a copy - * \retval 1 otherwise - * \retval -EINVAL if unbalanced quota is found - */ -int class_get_next_param(char **params, char *copy) -{ - char *q1, *q2, *str; - int len; - - str = *params; - while (*str == ' ') - str++; - - if (*str == '\0') { - *params = NULL; - return 1; - } - - while (1) { - q1 = strpbrk(str, " '\""); - if (!q1) { - len = strlen(str); - memcpy(copy, str, len); - copy[len] = '\0'; - *params = NULL; - return 0; - } - len = q1 - str; - if (*q1 == ' ') { - memcpy(copy, str, len); - copy[len] = '\0'; - *params = str + len; - return 0; - } - - memcpy(copy, str, len); - copy += len; - - /* search for the matching closing quote */ - str = q1 + 1; - q2 = strchr(str, *q1); - if (!q2) { - CERROR("Unbalanced quota in parameters: \"%s\"\n", - *params); - return -EINVAL; - } - len = q2 - str; - memcpy(copy, str, len); - copy += len; - str = q2 + 1; - } - return 1; -} -EXPORT_SYMBOL(class_get_next_param); - /* returns 0 if this is the first key in the buffer, else 1. valp points to first char after key. */ int class_match_param(char *buf, char *key, char **valp) @@ -278,52 +170,6 @@ int class_parse_nid_quiet(char *buf, lnet_nid_t *nid, char **endh) } EXPORT_SYMBOL(class_parse_nid_quiet); -int class_parse_net(char *buf, __u32 *net, char **endh) -{ - return class_parse_value(buf, CLASS_PARSE_NET, (void *)net, endh, 0); -} -EXPORT_SYMBOL(class_parse_net); - -/* 1 param contains key and match - * 0 param contains key and not match - * -1 param does not contain key - */ -int class_match_nid(char *buf, char *key, lnet_nid_t nid) -{ - lnet_nid_t tmp; - int rc = -1; - - while (class_find_param(buf, key, &buf) == 0) { - /* please restrict to the nids pertaining to - * the specified nids */ - while (class_parse_nid(buf, &tmp, &buf) == 0) { - if (tmp == nid) - return 1; - } - rc = 0; - } - return rc; -} -EXPORT_SYMBOL(class_match_nid); - -int class_match_net(char *buf, char *key, __u32 net) -{ - __u32 tmp; - int rc = -1; - - while (class_find_param(buf, key, &buf) == 0) { - /* please restrict to the nids pertaining to - * the specified networks */ - while (class_parse_net(buf, &tmp, &buf) == 0) { - if (tmp == net) - return 1; - } - rc = 0; - } - return rc; -} -EXPORT_SYMBOL(class_match_net); - /********************** class fns **********************/ /** @@ -925,78 +771,6 @@ void lustre_register_client_process_config(int (*cpc)(struct lustre_cfg *lcfg)) } EXPORT_SYMBOL(lustre_register_client_process_config); -/** - * Rename the proc parameter in \a cfg with a new name \a new_name. - * - * \param cfg config structure which contains the proc parameter - * \param new_name new name of the proc parameter - * - * \retval valid-pointer pointer to the newly-allocated config structure - * which contains the renamed proc parameter - * \retval ERR_PTR(-EINVAL) if \a cfg or \a new_name is NULL, or \a cfg does - * not contain a proc parameter - * \retval ERR_PTR(-ENOMEM) if memory allocation failure occurs - */ -struct lustre_cfg *lustre_cfg_rename(struct lustre_cfg *cfg, - const char *new_name) -{ - struct lustre_cfg_bufs *bufs = NULL; - struct lustre_cfg *new_cfg = NULL; - char *param = NULL; - char *new_param = NULL; - char *value = NULL; - int name_len = 0; - int new_len = 0; - - if (!cfg || !new_name) - return ERR_PTR(-EINVAL); - - param = lustre_cfg_string(cfg, 1); - if (!param) - return ERR_PTR(-EINVAL); - - value = strchr(param, '='); - if (!value) - name_len = strlen(param); - else - name_len = value - param; - - new_len = LUSTRE_CFG_BUFLEN(cfg, 1) + strlen(new_name) - name_len; - - new_param = kzalloc(new_len, GFP_NOFS); - if (!new_param) - return ERR_PTR(-ENOMEM); - - strcpy(new_param, new_name); - if (value != NULL) - strcat(new_param, value); - - bufs = kzalloc(sizeof(*bufs), GFP_NOFS); - if (!bufs) { - kfree(new_param); - return ERR_PTR(-ENOMEM); - } - - lustre_cfg_bufs_reset(bufs, NULL); - lustre_cfg_bufs_init(bufs, cfg); - lustre_cfg_bufs_set_string(bufs, 1, new_param); - - new_cfg = lustre_cfg_new(cfg->lcfg_command, bufs); - - kfree(new_param); - kfree(bufs); - if (!new_cfg) - return ERR_PTR(-ENOMEM); - - new_cfg->lcfg_num = cfg->lcfg_num; - new_cfg->lcfg_flags = cfg->lcfg_flags; - new_cfg->lcfg_nid = cfg->lcfg_nid; - new_cfg->lcfg_nal = cfg->lcfg_nal; - - return new_cfg; -} -EXPORT_SYMBOL(lustre_cfg_rename); - static int process_param2_config(struct lustre_cfg *lcfg) { char *param = lustre_cfg_string(lcfg, 1); @@ -1037,12 +811,6 @@ static int process_param2_config(struct lustre_cfg *lcfg) return rc; } -void lustre_register_quota_process_config(int (*qpc)(struct lustre_cfg *lcfg)) -{ - quota_process_config = qpc; -} -EXPORT_SYMBOL(lustre_register_quota_process_config); - /** Process configuration commands given in lustre_cfg form. * These may come from direct calls (e.g. class_manual_cleanup) * or processing the config llog, or ioctl from lctl. @@ -1633,31 +1401,6 @@ int class_config_dump_handler(const struct lu_env *env, return rc; } -int class_config_dump_llog(const struct lu_env *env, struct llog_ctxt *ctxt, - char *name, struct config_llog_instance *cfg) -{ - struct llog_handle *llh; - int rc; - - LCONSOLE_INFO("Dumping config log %s\n", name); - - rc = llog_open(env, ctxt, &llh, NULL, name, LLOG_OPEN_EXISTS); - if (rc) - return rc; - - rc = llog_init_handle(env, llh, LLOG_F_IS_PLAIN, NULL); - if (rc) - goto parse_out; - - rc = llog_process(env, llh, class_config_dump_handler, cfg, NULL); -parse_out: - llog_close(env, llh); - - LCONSOLE_INFO("End config log %s\n", name); - return rc; -} -EXPORT_SYMBOL(class_config_dump_llog); - /** Call class_cleanup and class_detach. * "Manual" only in the sense that we're faking lcfg commands. */ diff --git a/drivers/staging/lustre/lustre/ptlrpc/layout.c b/drivers/staging/lustre/lustre/ptlrpc/layout.c index 4ddbe0d7dd7a..991fb74c8d08 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/layout.c +++ b/drivers/staging/lustre/lustre/ptlrpc/layout.c @@ -1995,55 +1995,6 @@ static void *__req_capsule_get(struct req_capsule *pill, return value; } -/** - * Dump a request and/or reply - */ -static void __req_capsule_dump(struct req_capsule *pill, enum req_location loc) -{ - const struct req_format *fmt; - const struct req_msg_field *field; - int len; - int i; - - fmt = pill->rc_fmt; - - DEBUG_REQ(D_RPCTRACE, pill->rc_req, "BEGIN REQ CAPSULE DUMP\n"); - for (i = 0; i < fmt->rf_fields[loc].nr; ++i) { - field = FMT_FIELD(fmt, loc, i); - if (field->rmf_dumper == NULL) { - /* - * FIXME Add a default hex dumper for fields that don't - * have a specific dumper - */ - len = req_capsule_get_size(pill, field, loc); - CDEBUG(D_RPCTRACE, "Field %s has no dumper function; field size is %d\n", - field->rmf_name, len); - } else { - /* It's the dumping side-effect that we're interested in */ - (void) __req_capsule_get(pill, field, loc, NULL, 1); - } - } - CDEBUG(D_RPCTRACE, "END REQ CAPSULE DUMP\n"); -} - -/** - * Dump a request. - */ -void req_capsule_client_dump(struct req_capsule *pill) -{ - __req_capsule_dump(pill, RCL_CLIENT); -} -EXPORT_SYMBOL(req_capsule_client_dump); - -/** - * Dump a reply - */ -void req_capsule_server_dump(struct req_capsule *pill) -{ - __req_capsule_dump(pill, RCL_SERVER); -} -EXPORT_SYMBOL(req_capsule_server_dump); - /** * Trivial wrapper around __req_capsule_get(), that returns the PTLRPC request * buffer corresponding to the given RMF (\a field) of a \a pill. @@ -2135,21 +2086,6 @@ void *req_capsule_server_sized_swab_get(struct req_capsule *pill, } EXPORT_SYMBOL(req_capsule_server_sized_swab_get); -/** - * Returns the buffer of a \a pill corresponding to the given \a field from the - * request (if the caller is executing on the server-side) or reply (if the - * caller is executing on the client-side). - * - * This function convenient for use is code that could be executed on the - * client and server alike. - */ -const void *req_capsule_other_get(struct req_capsule *pill, - const struct req_msg_field *field) -{ - return __req_capsule_get(pill, field, pill->rc_loc ^ 1, NULL, 0); -} -EXPORT_SYMBOL(req_capsule_other_get); - /** * Set the size of the PTLRPC request/reply (\a loc) buffer for the given \a * field of the given \a pill. diff --git a/drivers/staging/lustre/lustre/ptlrpc/nrs.c b/drivers/staging/lustre/lustre/ptlrpc/nrs.c index 40696f3678cf..2476cf22c184 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/nrs.c +++ b/drivers/staging/lustre/lustre/ptlrpc/nrs.c @@ -477,7 +477,6 @@ static void nrs_resource_get_safe(struct ptlrpc_nrs *nrs, * * \param resp the resource hierarchy that is being released * - * \see ptlrpc_nrs_req_hp_move() * \see ptlrpc_nrs_req_finalize() */ static void nrs_resource_put_safe(struct ptlrpc_nrs_resource **resp) @@ -1250,70 +1249,6 @@ fail: } EXPORT_SYMBOL(ptlrpc_nrs_policy_register); -/** - * Unregisters a previously registered policy with NRS core. All instances of - * the policy on all NRS heads of all supported services are removed. - * - * N.B. This function should only be called from a module's exit() function. - * Although it can be used for policies that ship alongside NRS core, the - * function is primarily intended for policies that register externally, - * from other modules. - * - * \param[in] conf configuration information for the policy to unregister - * - * \retval -ve error - * \retval 0 success - */ -int ptlrpc_nrs_policy_unregister(struct ptlrpc_nrs_pol_conf *conf) -{ - struct ptlrpc_nrs_pol_desc *desc; - int rc; - - LASSERT(conf != NULL); - - if (conf->nc_flags & PTLRPC_NRS_FL_FALLBACK) { - CERROR("Unable to unregister a fallback policy, unless the PTLRPC service is stopping.\n"); - return -EPERM; - } - - conf->nc_name[NRS_POL_NAME_MAX - 1] = '\0'; - - mutex_lock(&nrs_core.nrs_mutex); - - desc = nrs_policy_find_desc_locked(conf->nc_name); - if (desc == NULL) { - CERROR("Failing to unregister NRS policy %s which has not been registered with NRS core!\n", - conf->nc_name); - rc = -ENOENT; - goto not_exist; - } - - mutex_lock(&ptlrpc_all_services_mutex); - - rc = nrs_policy_unregister_locked(desc); - if (rc < 0) { - if (rc == -EBUSY) - CERROR("Please first stop policy %s on all service partitions and then retry to unregister the policy.\n", - conf->nc_name); - goto fail; - } - - CDEBUG(D_INFO, "Unregistering policy %s from NRS core.\n", - conf->nc_name); - - list_del(&desc->pd_list); - kfree(desc); - -fail: - mutex_unlock(&ptlrpc_all_services_mutex); - -not_exist: - mutex_unlock(&nrs_core.nrs_mutex); - - return rc; -} -EXPORT_SYMBOL(ptlrpc_nrs_policy_unregister); - /** * Setup NRS heads on all service partitions of service \a svc, and register * all compatible policies on those NRS heads. @@ -1552,22 +1487,6 @@ ptlrpc_nrs_req_get_nolock0(struct ptlrpc_service_part *svcpt, bool hp, return NULL; } -/** - * Dequeues request \a req from the policy it has been enqueued on. - * - * \param[in] req the request - */ -void ptlrpc_nrs_req_del_nolock(struct ptlrpc_request *req) -{ - struct ptlrpc_nrs_policy *policy = nrs_request_policy(&req->rq_nrq); - - policy->pol_desc->pd_ops->op_req_dequeue(policy, &req->rq_nrq); - - req->rq_nrq.nr_enqueued = 0; - - nrs_request_removed(policy); -} - /** * Returns whether there are any requests currently enqueued on any of the * policies of service partition's \a svcpt NRS head specified by \a hp. Should @@ -1588,48 +1507,6 @@ bool ptlrpc_nrs_req_pending_nolock(struct ptlrpc_service_part *svcpt, bool hp) return nrs->nrs_req_queued > 0; }; -/** - * Moves request \a req from the regular to the high-priority NRS head. - * - * \param[in] req the request to move - */ -void ptlrpc_nrs_req_hp_move(struct ptlrpc_request *req) -{ - struct ptlrpc_service_part *svcpt = req->rq_rqbd->rqbd_svcpt; - struct ptlrpc_nrs_request *nrq = &req->rq_nrq; - struct ptlrpc_nrs_resource *res1[NRS_RES_MAX]; - struct ptlrpc_nrs_resource *res2[NRS_RES_MAX]; - - /** - * Obtain the high-priority NRS head resources. - */ - nrs_resource_get_safe(nrs_svcpt2nrs(svcpt, true), nrq, res1, true); - - spin_lock(&svcpt->scp_req_lock); - - if (!ptlrpc_nrs_req_can_move(req)) - goto out; - - ptlrpc_nrs_req_del_nolock(req); - - memcpy(res2, nrq->nr_res_ptrs, NRS_RES_MAX * sizeof(res2[0])); - memcpy(nrq->nr_res_ptrs, res1, NRS_RES_MAX * sizeof(res1[0])); - - ptlrpc_nrs_hpreq_add_nolock(req); - - memcpy(res1, res2, NRS_RES_MAX * sizeof(res1[0])); -out: - spin_unlock(&svcpt->scp_req_lock); - - /** - * Release either the regular NRS head resources if we moved the - * request, or the high-priority NRS head resources if we took a - * reference earlier in this function and ptlrpc_nrs_req_can_move() - * returned false. - */ - nrs_resource_put_safe(res1); -} - /** * Carries out a control operation \a opc on the policy identified by the * human-readable \a name, on either all partitions, or only on the first diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index 9402fb9a08ba..3241b1f89c50 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -94,30 +94,6 @@ int ptlrpc_buf_need_swab(struct ptlrpc_request *req, const int inout, } EXPORT_SYMBOL(ptlrpc_buf_need_swab); -static inline int lustre_msg_check_version_v2(struct lustre_msg_v2 *msg, - __u32 version) -{ - __u32 ver = lustre_msg_get_version(msg); - return (ver & LUSTRE_VERSION_MASK) != version; -} - -int lustre_msg_check_version(struct lustre_msg *msg, __u32 version) -{ -#define LUSTRE_MSG_MAGIC_V1 0x0BD00BD0 - switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V1: - CERROR("msg v1 not supported - please upgrade you system\n"); - return -EINVAL; - case LUSTRE_MSG_MAGIC_V2: - return lustre_msg_check_version_v2(msg, version); - default: - CERROR("incorrect message magic: %08x\n", msg->lm_magic); - return 0; - } -#undef LUSTRE_MSG_MAGIC_V1 -} -EXPORT_SYMBOL(lustre_msg_check_version); - /* early reply size */ int lustre_msg_early_size(void) { @@ -695,28 +671,6 @@ int lustre_msg_buflen(struct lustre_msg *m, int n) } EXPORT_SYMBOL(lustre_msg_buflen); -static inline void -lustre_msg_set_buflen_v2(struct lustre_msg_v2 *m, int n, int len) -{ - if (n >= m->lm_bufcount) - LBUG(); - - m->lm_buflens[n] = len; -} - -void lustre_msg_set_buflen(struct lustre_msg *m, int n, int len) -{ - switch (m->lm_magic) { - case LUSTRE_MSG_MAGIC_V2: - lustre_msg_set_buflen_v2(m, n, len); - return; - default: - LASSERTF(0, "incorrect message magic: %08x\n", m->lm_magic); - } -} - -EXPORT_SYMBOL(lustre_msg_set_buflen); - /* NB return the bufcount for lustre_msg_v2 format, so if message is packed * in V1 format, the result is one bigger. (add struct ptlrpc_body). */ int lustre_msg_bufcount(struct lustre_msg *m) @@ -958,24 +912,6 @@ __u32 lustre_msg_get_type(struct lustre_msg *msg) } EXPORT_SYMBOL(lustre_msg_get_type); -__u32 lustre_msg_get_version(struct lustre_msg *msg) -{ - switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V2: { - struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); - if (!pb) { - CERROR("invalid msg %p: no ptlrpc body!\n", msg); - return 0; - } - return pb->pb_version; - } - default: - CERROR("incorrect message magic: %08x\n", msg->lm_magic); - return 0; - } -} -EXPORT_SYMBOL(lustre_msg_get_version); - void lustre_msg_add_version(struct lustre_msg *msg, int version) { switch (msg->lm_magic) { @@ -1010,24 +946,6 @@ __u32 lustre_msg_get_opc(struct lustre_msg *msg) } EXPORT_SYMBOL(lustre_msg_get_opc); -__u64 lustre_msg_get_last_xid(struct lustre_msg *msg) -{ - switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V2: { - struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); - if (!pb) { - CERROR("invalid msg %p: no ptlrpc body!\n", msg); - return 0; - } - return pb->pb_last_xid; - } - default: - CERROR("incorrect message magic: %08x\n", msg->lm_magic); - return 0; - } -} -EXPORT_SYMBOL(lustre_msg_get_last_xid); - __u64 lustre_msg_get_last_committed(struct lustre_msg *msg) { switch (msg->lm_magic) { @@ -1243,25 +1161,6 @@ __u32 lustre_msg_get_service_time(struct lustre_msg *msg) } } -char *lustre_msg_get_jobid(struct lustre_msg *msg) -{ - switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V2: { - struct ptlrpc_body *pb = - lustre_msg_buf_v2(msg, MSG_PTLRPC_BODY_OFF, - sizeof(struct ptlrpc_body)); - if (!pb) - return NULL; - - return pb->pb_jobid; - } - default: - CERROR("incorrect message magic: %08x\n", msg->lm_magic); - return NULL; - } -} -EXPORT_SYMBOL(lustre_msg_get_jobid); - __u32 lustre_msg_get_cksum(struct lustre_msg *msg) { switch (msg->lm_magic) { @@ -1336,36 +1235,6 @@ void lustre_msg_set_opc(struct lustre_msg *msg, __u32 opc) } EXPORT_SYMBOL(lustre_msg_set_opc); -void lustre_msg_set_last_xid(struct lustre_msg *msg, __u64 last_xid) -{ - switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V2: { - struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); - LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); - pb->pb_last_xid = last_xid; - return; - } - default: - LASSERTF(0, "incorrect message magic: %08x\n", msg->lm_magic); - } -} -EXPORT_SYMBOL(lustre_msg_set_last_xid); - -void lustre_msg_set_last_committed(struct lustre_msg *msg, __u64 last_committed) -{ - switch (msg->lm_magic) { - case LUSTRE_MSG_MAGIC_V2: { - struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); - LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); - pb->pb_last_committed = last_committed; - return; - } - default: - LASSERTF(0, "incorrect message magic: %08x\n", msg->lm_magic); - } -} -EXPORT_SYMBOL(lustre_msg_set_last_committed); - void lustre_msg_set_versions(struct lustre_msg *msg, __u64 *versions) { switch (msg->lm_magic) { @@ -1509,14 +1378,6 @@ void ptlrpc_request_set_replen(struct ptlrpc_request *req) } EXPORT_SYMBOL(ptlrpc_request_set_replen); -void ptlrpc_req_set_repsize(struct ptlrpc_request *req, int count, __u32 *lens) -{ - req->rq_replen = lustre_msg_size(req->rq_reqmsg->lm_magic, count, lens); - if (req->rq_reqmsg->lm_magic == LUSTRE_MSG_MAGIC_V2) - req->rq_reqmsg->lm_repsize = req->rq_replen; -} -EXPORT_SYMBOL(ptlrpc_req_set_repsize); - /** * Send a remote set_info_async. * @@ -1968,15 +1829,6 @@ void lustre_swab_idx_info(struct idx_info *ii) __swab16s(&ii->ii_recsize); } -void lustre_swab_lip_header(struct lu_idxpage *lip) -{ - /* swab header */ - __swab32s(&lip->lip_magic); - __swab16s(&lip->lip_flags); - __swab16s(&lip->lip_nr); -} -EXPORT_SYMBOL(lustre_swab_lip_header); - void lustre_swab_mdt_rec_reint (struct mdt_rec_reint *rr) { __swab32s(&rr->rr_opcode); @@ -2019,46 +1871,6 @@ void lustre_swab_lov_desc(struct lov_desc *ld) } EXPORT_SYMBOL(lustre_swab_lov_desc); -void lustre_swab_lmv_desc(struct lmv_desc *ld) -{ - __swab32s(&ld->ld_tgt_count); - __swab32s(&ld->ld_active_tgt_count); - __swab32s(&ld->ld_default_stripe_count); - __swab32s(&ld->ld_pattern); - __swab64s(&ld->ld_default_hash_size); - __swab32s(&ld->ld_qos_maxage); - /* uuid endian insensitive */ -} - -void lustre_swab_lmv_stripe_md(struct lmv_stripe_md *mea) -{ - __swab32s(&mea->mea_magic); - __swab32s(&mea->mea_count); - __swab32s(&mea->mea_master); - CLASSERT(offsetof(typeof(*mea), mea_padding) != 0); -} - -void lustre_swab_lmv_user_md(struct lmv_user_md *lum) -{ - int i; - - __swab32s(&lum->lum_magic); - __swab32s(&lum->lum_stripe_count); - __swab32s(&lum->lum_stripe_offset); - __swab32s(&lum->lum_hash_type); - __swab32s(&lum->lum_type); - CLASSERT(offsetof(typeof(*lum), lum_padding1) != 0); - CLASSERT(offsetof(typeof(*lum), lum_padding2) != 0); - CLASSERT(offsetof(typeof(*lum), lum_padding3) != 0); - - for (i = 0; i < lum->lum_stripe_count; i++) { - __swab32s(&lum->lum_objects[i].lum_mds); - lustre_swab_lu_fid(&lum->lum_objects[i].lum_fid); - } - -} -EXPORT_SYMBOL(lustre_swab_lmv_user_md); - static void print_lum(struct lov_user_md *lum) { CDEBUG(D_OTHER, "lov_user_md %p:\n", lum); @@ -2282,7 +2094,6 @@ void dump_obdo(struct obdo *oa) if (valid & OBD_MD_FLCOOKIE) CDEBUG(D_RPCTRACE, "obdo: o_lcookie = (llog_cookie dumping not yet implemented)\n"); } -EXPORT_SYMBOL(dump_obdo); void dump_ost_body(struct ost_body *ob) { @@ -2381,14 +2192,6 @@ void lustre_swab_lustre_capa(struct lustre_capa *c) } EXPORT_SYMBOL(lustre_swab_lustre_capa); -void lustre_swab_lustre_capa_key(struct lustre_capa_key *k) -{ - __swab64s(&k->lk_seq); - __swab32s(&k->lk_keyid); - CLASSERT(offsetof(typeof(*k), lk_padding) != 0); -} -EXPORT_SYMBOL(lustre_swab_lustre_capa_key); - void lustre_swab_hsm_user_state(struct hsm_user_state *state) { __swab32s(&state->hus_states); diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index 47061740f0bf..74fab7e21926 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pinger.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pinger.c @@ -44,20 +44,10 @@ #include "../include/obd_class.h" #include "ptlrpc_internal.h" -static int suppress_pings; -module_param(suppress_pings, int, 0644); -MODULE_PARM_DESC(suppress_pings, "Suppress pings"); - struct mutex pinger_mutex; static LIST_HEAD(pinger_imports); static struct list_head timeout_list = LIST_HEAD_INIT(timeout_list); -int ptlrpc_pinger_suppress_pings(void) -{ - return suppress_pings; -} -EXPORT_SYMBOL(ptlrpc_pinger_suppress_pings); - struct ptlrpc_request * ptlrpc_prep_ping(struct obd_import *imp) { @@ -122,11 +112,6 @@ static void ptlrpc_update_next_ping(struct obd_import *imp, int soon) imp->imp_next_ping = cfs_time_shift(time); } -void ptlrpc_ping_import_soon(struct obd_import *imp) -{ - imp->imp_next_ping = cfs_time_current(); -} - static inline int imp_is_deactive(struct obd_import *imp) { return (imp->imp_deactive || @@ -325,9 +310,6 @@ int ptlrpc_start_pinger(void) l_wait_event(pinger_thread.t_ctl_waitq, thread_is_running(&pinger_thread), &lwi); - if (suppress_pings) - CWARN("Pings will be suppressed at the request of the administrator. The configuration shall meet the additional requirements described in the manual. (Search for the \"suppress_pings\" kernel module parameter.)\n"); - return 0; } diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h index a3608a961f4a..ab6c4580f91c 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h @@ -137,7 +137,6 @@ ptlrpc_nrs_req_get_nolock(struct ptlrpc_service_part *svcpt, bool hp, return ptlrpc_nrs_req_get_nolock0(svcpt, hp, false, force); } -void ptlrpc_nrs_req_del_nolock(struct ptlrpc_request *req); bool ptlrpc_nrs_req_pending_nolock(struct ptlrpc_service_part *svcpt, bool hp); int ptlrpc_nrs_policy_control(const struct ptlrpc_service *svc, @@ -243,7 +242,6 @@ int ptlrpc_stop_pinger(void); void ptlrpc_pinger_sending_on_import(struct obd_import *imp); void ptlrpc_pinger_commit_expected(struct obd_import *imp); void ptlrpc_pinger_wake_up(void); -void ptlrpc_ping_import_soon(struct obd_import *imp); /* sec_null.c */ int sptlrpc_null_init(void); From db65e92727017ccba61e998bd26f87ca34283d17 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:03 -0400 Subject: [PATCH 1014/2431] staging/lustre/fid: Remove server fid function declarations Those functions are not present anywhere in the client code. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_fid.h | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index abc93451f26c..1b50e661f339 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fid.h +++ b/drivers/staging/lustre/lustre/include/lustre_fid.h @@ -425,30 +425,6 @@ struct lu_server_seq { struct seq_server_site *lss_site; }; -/* Server methods */ - -int seq_server_init(struct lu_server_seq *seq, - struct dt_device *dev, - const char *prefix, - enum lu_mgr_type type, - struct seq_server_site *ss, - const struct lu_env *env); - -void seq_server_fini(struct lu_server_seq *seq, - const struct lu_env *env); - -int seq_server_alloc_super(struct lu_server_seq *seq, - struct lu_seq_range *out, - const struct lu_env *env); - -int seq_server_alloc_meta(struct lu_server_seq *seq, - struct lu_seq_range *out, - const struct lu_env *env); - -int seq_server_set_cli(struct lu_server_seq *seq, - struct lu_client_seq *cli, - const struct lu_env *env); - /* Client methods */ int seq_client_init(struct lu_client_seq *seq, struct obd_export *exp, From 065749efe4b27333338d7d7db68adf82afdef1fb Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:04 -0400 Subject: [PATCH 1015/2431] staging/lustre/fid: seq_client_init/fini don't need to be exported In fact they could be static as they are only used inside this file, so remove EXPORT_SYMBOL and declarations. Also seq_client_init is always called with srv = NULL, so just drop this argument. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/fid/fid_request.c | 39 +++++++++---------- .../lustre/lustre/include/lustre_fid.h | 8 ---- 2 files changed, 18 insertions(+), 29 deletions(-) diff --git a/drivers/staging/lustre/lustre/fid/fid_request.c b/drivers/staging/lustre/lustre/fid/fid_request.c index a16d577c6cb1..16264bc25623 100644 --- a/drivers/staging/lustre/lustre/fid/fid_request.c +++ b/drivers/staging/lustre/lustre/fid/fid_request.c @@ -438,18 +438,29 @@ out_cleanup: return rc; } -int seq_client_init(struct lu_client_seq *seq, - struct obd_export *exp, - enum lu_cli_type type, - const char *prefix, - struct lu_server_seq *srv) +static void seq_client_fini(struct lu_client_seq *seq) +{ + seq_client_debugfs_fini(seq); + + if (seq->lcs_exp) { + class_export_put(seq->lcs_exp); + seq->lcs_exp = NULL; + } + + seq->lcs_srv = NULL; +} + +static int seq_client_init(struct lu_client_seq *seq, + struct obd_export *exp, + enum lu_cli_type type, + const char *prefix) { int rc; LASSERT(seq != NULL); LASSERT(prefix != NULL); - seq->lcs_srv = srv; + seq->lcs_srv = NULL; seq->lcs_type = type; mutex_init(&seq->lcs_mutex); @@ -475,20 +486,6 @@ int seq_client_init(struct lu_client_seq *seq, seq_client_fini(seq); return rc; } -EXPORT_SYMBOL(seq_client_init); - -void seq_client_fini(struct lu_client_seq *seq) -{ - seq_client_debugfs_fini(seq); - - if (seq->lcs_exp != NULL) { - class_export_put(seq->lcs_exp); - seq->lcs_exp = NULL; - } - - seq->lcs_srv = NULL; -} -EXPORT_SYMBOL(seq_client_fini); int client_fid_init(struct obd_device *obd, struct obd_export *exp, enum lu_cli_type type) @@ -510,7 +507,7 @@ int client_fid_init(struct obd_device *obd, snprintf(prefix, MAX_OBD_NAME + 5, "cli-%s", obd->obd_name); /* Init client side sequence-manager */ - rc = seq_client_init(cli->cl_seq, exp, type, prefix, NULL); + rc = seq_client_init(cli->cl_seq, exp, type, prefix); kfree(prefix); if (rc) goto out_free_seq; diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index 1b50e661f339..f60c20aad375 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fid.h +++ b/drivers/staging/lustre/lustre/include/lustre_fid.h @@ -426,14 +426,6 @@ struct lu_server_seq { }; /* Client methods */ -int seq_client_init(struct lu_client_seq *seq, - struct obd_export *exp, - enum lu_cli_type type, - const char *prefix, - struct lu_server_seq *srv); - -void seq_client_fini(struct lu_client_seq *seq); - void seq_client_flush(struct lu_client_seq *seq); int seq_client_alloc_fid(const struct lu_env *env, struct lu_client_seq *seq, From 997f0eed26eb14c14e01810a097f7f69e7adbf48 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:05 -0400 Subject: [PATCH 1016/2431] staging/lustre/fid: Remove unused seq_client_get_seq function Also while we are at it, remove seq_site_fini forward declaration as there's no such function anymore. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/fid/fid_request.c | 51 ------------------- .../lustre/lustre/include/lustre_fid.h | 3 -- 2 files changed, 54 deletions(-) diff --git a/drivers/staging/lustre/lustre/fid/fid_request.c b/drivers/staging/lustre/lustre/fid/fid_request.c index 16264bc25623..ce553406318d 100644 --- a/drivers/staging/lustre/lustre/fid/fid_request.c +++ b/drivers/staging/lustre/lustre/fid/fid_request.c @@ -248,57 +248,6 @@ static void seq_fid_alloc_fini(struct lu_client_seq *seq) wake_up(&seq->lcs_waitq); } -/** - * Allocate the whole seq to the caller. - **/ -int seq_client_get_seq(const struct lu_env *env, - struct lu_client_seq *seq, u64 *seqnr) -{ - wait_queue_t link; - int rc; - - LASSERT(seqnr != NULL); - mutex_lock(&seq->lcs_mutex); - init_waitqueue_entry(&link, current); - - while (1) { - rc = seq_fid_alloc_prep(seq, &link); - if (rc == 0) - break; - } - - rc = seq_client_alloc_seq(env, seq, seqnr); - if (rc) { - CERROR("%s: Can't allocate new sequence, rc %d\n", - seq->lcs_name, rc); - seq_fid_alloc_fini(seq); - mutex_unlock(&seq->lcs_mutex); - return rc; - } - - CDEBUG(D_INFO, "%s: allocate sequence [0x%16.16Lx]\n", - seq->lcs_name, *seqnr); - - /* Since the caller require the whole seq, - * so marked this seq to be used */ - if (seq->lcs_type == LUSTRE_SEQ_METADATA) - seq->lcs_fid.f_oid = LUSTRE_METADATA_SEQ_MAX_WIDTH; - else - seq->lcs_fid.f_oid = LUSTRE_DATA_SEQ_MAX_WIDTH; - - seq->lcs_fid.f_seq = *seqnr; - seq->lcs_fid.f_ver = 0; - /* - * Inform caller that sequence switch is performed to allow it - * to setup FLD for it. - */ - seq_fid_alloc_fini(seq); - mutex_unlock(&seq->lcs_mutex); - - return rc; -} -EXPORT_SYMBOL(seq_client_get_seq); - /* Allocate new fid on passed client @seq and save it to @fid. */ int seq_client_alloc_fid(const struct lu_env *env, struct lu_client_seq *seq, struct lu_fid *fid) diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index f60c20aad375..22fc96ef25b4 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fid.h +++ b/drivers/staging/lustre/lustre/include/lustre_fid.h @@ -430,9 +430,6 @@ void seq_client_flush(struct lu_client_seq *seq); int seq_client_alloc_fid(const struct lu_env *env, struct lu_client_seq *seq, struct lu_fid *fid); -int seq_client_get_seq(const struct lu_env *env, struct lu_client_seq *seq, - u64 *seqnr); -int seq_site_fini(const struct lu_env *env, struct seq_server_site *ss); /* Fids common stuff */ int fid_is_local(const struct lu_env *env, struct lu_site *site, const struct lu_fid *fid); From f4f8407fb1ef35b8fd2475e15eba6f2c928b78ae Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:06 -0400 Subject: [PATCH 1017/2431] staging/lustre/fid: Get rid of lcs_srv in lu_client_seq Since we know lcs_srv is always NULL, just get rid of it completely and fix up all the code to assumee it was never there. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/fid/fid_request.c | 48 +++++++------------ drivers/staging/lustre/lustre/fid/lproc_fid.c | 2 - .../lustre/lustre/include/lustre_fid.h | 5 -- 3 files changed, 17 insertions(+), 38 deletions(-) diff --git a/drivers/staging/lustre/lustre/fid/fid_request.c b/drivers/staging/lustre/lustre/fid/fid_request.c index ce553406318d..7c45e7479087 100644 --- a/drivers/staging/lustre/lustre/fid/fid_request.c +++ b/drivers/staging/lustre/lustre/fid/fid_request.c @@ -150,19 +150,15 @@ int seq_client_alloc_super(struct lu_client_seq *seq, mutex_lock(&seq->lcs_mutex); - if (seq->lcs_srv) { - rc = 0; - } else { - /* Check whether the connection to seq controller has been - * setup (lcs_exp != NULL) */ - if (seq->lcs_exp == NULL) { - mutex_unlock(&seq->lcs_mutex); - return -EINPROGRESS; - } - - rc = seq_client_rpc(seq, &seq->lcs_space, - SEQ_ALLOC_SUPER, "super"); + /* Check whether the connection to seq controller has been + * setup (lcs_exp != NULL) */ + if (!seq->lcs_exp) { + mutex_unlock(&seq->lcs_mutex); + return -EINPROGRESS; } + + rc = seq_client_rpc(seq, &seq->lcs_space, + SEQ_ALLOC_SUPER, "super"); mutex_unlock(&seq->lcs_mutex); return rc; } @@ -173,18 +169,14 @@ static int seq_client_alloc_meta(const struct lu_env *env, { int rc; - if (seq->lcs_srv) { - rc = 0; - } else { - do { - /* If meta server return -EINPROGRESS or EAGAIN, - * it means meta server might not be ready to - * allocate super sequence from sequence controller - * (MDT0)yet */ - rc = seq_client_rpc(seq, &seq->lcs_space, - SEQ_ALLOC_META, "meta"); - } while (rc == -EINPROGRESS || rc == -EAGAIN); - } + do { + /* If meta server return -EINPROGRESS or EAGAIN, + * it means meta server might not be ready to + * allocate super sequence from sequence controller + * (MDT0)yet */ + rc = seq_client_rpc(seq, &seq->lcs_space, + SEQ_ALLOC_META, "meta"); + } while (rc == -EINPROGRESS || rc == -EAGAIN); return rc; } @@ -395,8 +387,6 @@ static void seq_client_fini(struct lu_client_seq *seq) class_export_put(seq->lcs_exp); seq->lcs_exp = NULL; } - - seq->lcs_srv = NULL; } static int seq_client_init(struct lu_client_seq *seq, @@ -409,7 +399,6 @@ static int seq_client_init(struct lu_client_seq *seq, LASSERT(seq != NULL); LASSERT(prefix != NULL); - seq->lcs_srv = NULL; seq->lcs_type = type; mutex_init(&seq->lcs_mutex); @@ -422,10 +411,7 @@ static int seq_client_init(struct lu_client_seq *seq, /* Make sure that things are clear before work is started. */ seq_client_flush(seq); - if (exp != NULL) - seq->lcs_exp = class_export_get(exp); - else if (type == LUSTRE_SEQ_METADATA) - LASSERT(seq->lcs_srv != NULL); + seq->lcs_exp = class_export_get(exp); snprintf(seq->lcs_name, sizeof(seq->lcs_name), "cli-%s", prefix); diff --git a/drivers/staging/lustre/lustre/fid/lproc_fid.c b/drivers/staging/lustre/lustre/fid/lproc_fid.c index bf12723c9b1c..ce90c1c54a63 100644 --- a/drivers/staging/lustre/lustre/fid/lproc_fid.c +++ b/drivers/staging/lustre/lustre/fid/lproc_fid.c @@ -204,8 +204,6 @@ ldebugfs_fid_server_seq_show(struct seq_file *m, void *unused) if (seq->lcs_exp != NULL) { cli = &seq->lcs_exp->exp_obd->u.cli; seq_printf(m, "%s\n", cli->cl_target_uuid.uuid); - } else { - seq_printf(m, "%s\n", seq->lcs_srv->lss_name); } return 0; diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index 22fc96ef25b4..bbe3ff8d63fe 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fid.h +++ b/drivers/staging/lustre/lustre/include/lustre_fid.h @@ -330,8 +330,6 @@ enum lu_mgr_type { LUSTRE_SEQ_CONTROLLER }; -struct lu_server_seq; - /* Client sequence manager interface. */ struct lu_client_seq { /* Sequence-controller export. */ @@ -366,9 +364,6 @@ struct lu_client_seq { */ __u64 lcs_width; - /* Seq-server for direct talking */ - struct lu_server_seq *lcs_srv; - /* wait queue for fid allocation and update indicator */ wait_queue_head_t lcs_waitq; int lcs_update; From 072b36e13e766e715944ead0ee35d131ecee0071 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:07 -0400 Subject: [PATCH 1018/2431] staging/lustre/fid: Remove unused struct lu_server_seq Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_fid.h | 51 ------------------- 1 file changed, 51 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index bbe3ff8d63fe..19d917588b4c 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fid.h +++ b/drivers/staging/lustre/lustre/include/lustre_fid.h @@ -369,57 +369,6 @@ struct lu_client_seq { int lcs_update; }; -/* server sequence manager interface */ -struct lu_server_seq { - /* Available sequences space */ - struct lu_seq_range lss_space; - - /* keeps highwater in lsr_end for seq allocation algorithm */ - struct lu_seq_range lss_lowater_set; - struct lu_seq_range lss_hiwater_set; - - /* - * Device for server side seq manager needs (saving sequences to backing - * store). - */ - struct dt_device *lss_dev; - - /* LUSTRE_SEQ_SERVER or LUSTRE_SEQ_CONTROLLER */ - enum lu_mgr_type lss_type; - - /* Client interface to request controller */ - struct lu_client_seq *lss_cli; - - /* Mutex for protecting allocation */ - struct mutex lss_mutex; - - /* - * Service uuid, passed from MDT + seq name to form unique seq name to - * use it with procfs. - */ - char lss_name[LUSTRE_MDT_MAXNAMELEN]; - - /* - * Allocation chunks for super and meta sequences. Default values are - * LUSTRE_SEQ_SUPER_WIDTH and LUSTRE_SEQ_META_WIDTH. - */ - __u64 lss_width; - - /* - * minimum lss_alloc_set size that should be allocated from - * lss_space - */ - __u64 lss_set_width; - - /* sync is needed for update operation */ - __u32 lss_need_sync; - - /** - * Pointer to site object, required to access site fld. - */ - struct seq_server_site *lss_site; -}; - /* Client methods */ void seq_client_flush(struct lu_client_seq *seq); From 706d263ffaad264f72a3b4dbbc4b904aec87352d Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:08 -0400 Subject: [PATCH 1019/2431] staging/lustre/obdclass: Remove unused nid_hash nid_hash is used on export to faster find clients based on their NID. There's no use for that on the client. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_export.h | 1 - drivers/staging/lustre/lustre/include/obd.h | 2 - .../staging/lustre/lustre/obdclass/genops.c | 10 +- .../lustre/lustre/obdclass/obd_config.c | 95 ------------------- 4 files changed, 1 insertion(+), 107 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index 7634deafa9fa..5b8f4e880879 100644 --- a/drivers/staging/lustre/lustre/include/lustre_export.h +++ b/drivers/staging/lustre/lustre/include/lustre_export.h @@ -147,7 +147,6 @@ struct obd_export { /** To link all exports on an obd device */ struct list_head exp_obd_chain; struct hlist_node exp_uuid_hash; /** uuid-export hash*/ - struct hlist_node exp_nid_hash; /** nid-export hash */ /** Obd device of this export */ struct obd_device *exp_obd; /** diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index e8317b8e1faa..3fb72dc0b821 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -746,8 +746,6 @@ struct obd_device { unsigned long obd_recovery_expired:1; /* uuid-export hash body */ struct cfs_hash *obd_uuid_hash; - /* nid-export hash body */ - struct cfs_hash *obd_nid_hash; atomic_t obd_refcount; wait_queue_head_t obd_refcount_waitq; struct list_head obd_exports; diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 4467baa73ae2..681312ecd050 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -757,7 +757,6 @@ struct obd_export *class_new_export(struct obd_device *obd, spin_lock_init(&export->exp_lock); spin_lock_init(&export->exp_rpc_lock); INIT_HLIST_NODE(&export->exp_uuid_hash); - INIT_HLIST_NODE(&export->exp_nid_hash); spin_lock_init(&export->exp_bl_list_lock); INIT_LIST_HEAD(&export->exp_bl_list); @@ -1103,19 +1102,12 @@ int class_disconnect(struct obd_export *export) /* class_cleanup(), abort_recovery(), and class_fail_export() * all end up in here, and if any of them race we shouldn't * call extra class_export_puts(). */ - if (already_disconnected) { - LASSERT(hlist_unhashed(&export->exp_nid_hash)); + if (already_disconnected) goto no_disconn; - } CDEBUG(D_IOCTL, "disconnect: cookie %#llx\n", export->exp_handle.h_cookie); - if (!hlist_unhashed(&export->exp_nid_hash)) - cfs_hash_del(export->exp_obd->obd_nid_hash, - &export->exp_connection->c_peer.nid, - &export->exp_nid_hash); - class_export_recovery_cleanup(export); class_unlink_export(export); no_disconn: diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index a8a1cb774fb4..48c712ef1293 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -48,7 +48,6 @@ #include "llog_internal.h" static cfs_hash_ops_t uuid_hash_ops; -static cfs_hash_ops_t nid_hash_ops; /*********** string parsing utils *********/ @@ -327,7 +326,6 @@ int class_setup(struct obd_device *obd, struct lustre_cfg *lcfg) other fns check that status, and we're not actually set up yet. */ obd->obd_starting = 1; obd->obd_uuid_hash = NULL; - obd->obd_nid_hash = NULL; spin_unlock(&obd->obd_dev_lock); /* create an uuid-export lustre hash */ @@ -343,19 +341,6 @@ int class_setup(struct obd_device *obd, struct lustre_cfg *lcfg) goto err_hash; } - /* create a nid-export lustre hash */ - obd->obd_nid_hash = cfs_hash_create("NID_HASH", - HASH_NID_CUR_BITS, - HASH_NID_MAX_BITS, - HASH_NID_BKT_BITS, 0, - CFS_HASH_MIN_THETA, - CFS_HASH_MAX_THETA, - &nid_hash_ops, CFS_HASH_DEFAULT); - if (!obd->obd_nid_hash) { - err = -ENOMEM; - goto err_hash; - } - exp = class_new_export(obd, &obd->obd_uuid); if (IS_ERR(exp)) { err = PTR_ERR(exp); @@ -390,10 +375,6 @@ err_hash: cfs_hash_putref(obd->obd_uuid_hash); obd->obd_uuid_hash = NULL; } - if (obd->obd_nid_hash) { - cfs_hash_putref(obd->obd_nid_hash); - obd->obd_nid_hash = NULL; - } obd->obd_starting = 0; CERROR("setup %s failed (%d)\n", obd->obd_name, err); return err; @@ -499,12 +480,6 @@ int class_cleanup(struct obd_device *obd, struct lustre_cfg *lcfg) obd->obd_uuid_hash = NULL; } - /* destroy a nid-export hash body */ - if (obd->obd_nid_hash) { - cfs_hash_putref(obd->obd_nid_hash); - obd->obd_nid_hash = NULL; - } - class_decref(obd, "setup", obd); obd->obd_set_up = 0; @@ -1516,73 +1491,3 @@ static cfs_hash_ops_t uuid_hash_ops = { .hs_get = uuid_export_get, .hs_put_locked = uuid_export_put_locked, }; - - -/* - * nid<->export hash operations - */ - -static unsigned -nid_hash(struct cfs_hash *hs, const void *key, unsigned mask) -{ - return cfs_hash_djb2_hash(key, sizeof(lnet_nid_t), mask); -} - -static void * -nid_key(struct hlist_node *hnode) -{ - struct obd_export *exp; - - exp = hlist_entry(hnode, struct obd_export, exp_nid_hash); - - return &exp->exp_connection->c_peer.nid; -} - -/* - * NOTE: It is impossible to find an export that is in failed - * state with this function - */ -static int -nid_kepcmp(const void *key, struct hlist_node *hnode) -{ - struct obd_export *exp; - - LASSERT(key); - exp = hlist_entry(hnode, struct obd_export, exp_nid_hash); - - return exp->exp_connection->c_peer.nid == *(lnet_nid_t *)key && - !exp->exp_failed; -} - -static void * -nid_export_object(struct hlist_node *hnode) -{ - return hlist_entry(hnode, struct obd_export, exp_nid_hash); -} - -static void -nid_export_get(struct cfs_hash *hs, struct hlist_node *hnode) -{ - struct obd_export *exp; - - exp = hlist_entry(hnode, struct obd_export, exp_nid_hash); - class_export_get(exp); -} - -static void -nid_export_put_locked(struct cfs_hash *hs, struct hlist_node *hnode) -{ - struct obd_export *exp; - - exp = hlist_entry(hnode, struct obd_export, exp_nid_hash); - class_export_put(exp); -} - -static cfs_hash_ops_t nid_hash_ops = { - .hs_hash = nid_hash, - .hs_key = nid_key, - .hs_keycmp = nid_kepcmp, - .hs_object = nid_export_object, - .hs_get = nid_export_get, - .hs_put_locked = nid_export_put_locked, -}; From af3ec53b7b6723d89f25f223ca293b3361071272 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:09 -0400 Subject: [PATCH 1020/2431] staging/lustre: Remove server-only recovery-related bits This patch is a first stab at trying to remove structure fields from obd_export and obd structures that are only used on the server or make sense on the server. These include tracking requests in recovery, various recovery stages, lists of recovered and not yet recovered clients and so on. Also prune functions that use these fields. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_export.h | 17 +---- drivers/staging/lustre/lustre/include/obd.h | 27 -------- .../staging/lustre/lustre/include/obd_class.h | 1 - .../staging/lustre/lustre/obdclass/genops.c | 50 +-------------- .../lustre/lustre/obdclass/obd_config.c | 6 -- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 3 +- .../staging/lustre/lustre/ptlrpc/service.c | 62 +++++++------------ 7 files changed, 27 insertions(+), 139 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index 5b8f4e880879..1daf4c572415 100644 --- a/drivers/staging/lustre/lustre/include/lustre_export.h +++ b/drivers/staging/lustre/lustre/include/lustre_export.h @@ -183,25 +183,10 @@ struct obd_export { struct obd_connect_data exp_connect_data; enum obd_option exp_flags; unsigned long exp_failed:1, - exp_in_recovery:1, exp_disconnected:1, exp_connecting:1, - /** VBR: export missed recovery */ - exp_delayed:1, - /** VBR: failed version checking */ - exp_vbr_failed:1, - exp_req_replay_needed:1, - exp_lock_replay_needed:1, - exp_need_sync:1, exp_flvr_changed:1, - exp_flvr_adapt:1, - exp_libclient:1, /* liblustre client? */ - /* client timed out and tried to reconnect, - * but couldn't because of active rpcs */ - exp_abort_active_req:1, - /* if to swap nidtbl entries for 2.2 clients. - * Only used by the MGS to fix LU-1644. */ - exp_need_mne_swab:1; + exp_flvr_adapt:1; /* also protected by exp_lock */ enum lustre_sec_part exp_sp_peer; struct sptlrpc_flavor exp_flvr; /* current */ diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 3fb72dc0b821..314f5c781052 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -725,8 +725,6 @@ struct obd_device { /* bitfield modification is protected by obd_dev_lock */ unsigned long obd_attached:1, /* finished attach */ obd_set_up:1, /* finished setup */ - obd_recovering:1, /* there are recoverable clients */ - obd_abort_recovery:1,/* recovery expired */ obd_version_recov:1, /* obd uses version checking */ obd_replayable:1, /* recovery is enabled; inform clients */ obd_no_transno:1, /* no committed-transno notification */ @@ -769,31 +767,6 @@ struct obd_device { struct obd_notify_upcall obd_upcall; struct obd_export *obd_self_export; - int obd_max_recoverable_clients; - atomic_t obd_connected_clients; - int obd_stale_clients; - int obd_delayed_clients; - /* this lock protects all recovery list_heads, timer and - * obd_next_recovery_transno value */ - spinlock_t obd_recovery_task_lock; - __u64 obd_next_recovery_transno; - int obd_replayed_requests; - int obd_requests_queued_for_recovery; - wait_queue_head_t obd_next_transno_waitq; - /* protected by obd_recovery_task_lock */ - int obd_recovery_timeout; - - /* new recovery stuff from CMD2 */ - struct target_recovery_data obd_recovery_data; - int obd_replayed_locks; - atomic_t obd_req_replay_clients; - atomic_t obd_lock_replay_clients; - /* all lists are protected by obd_recovery_task_lock */ - struct list_head obd_req_replay_queue; - struct list_head obd_lock_replay_queue; - struct list_head obd_final_req_queue; - int obd_recovery_stage; - union { struct client_obd cli; struct echo_client_obd echo_client; diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 73fb29fe1481..6fb67a6efa46 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -273,7 +273,6 @@ static inline enum obd_option exp_flags_from_obd(struct obd_device *obd) { return ((obd->obd_fail ? OBD_OPT_FAILOVER : 0) | (obd->obd_force ? OBD_OPT_FORCE : 0) | - (obd->obd_abort_recovery ? OBD_OPT_ABORT_RECOV : 0) | 0); } diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 681312ecd050..c1bffcd8b8ef 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -1034,51 +1034,6 @@ int class_connect(struct lustre_handle *conn, struct obd_device *obd, } EXPORT_SYMBOL(class_connect); -/* if export is involved in recovery then clean up related things */ -static void class_export_recovery_cleanup(struct obd_export *exp) -{ - struct obd_device *obd = exp->exp_obd; - - spin_lock(&obd->obd_recovery_task_lock); - if (exp->exp_delayed) - obd->obd_delayed_clients--; - if (obd->obd_recovering) { - if (exp->exp_in_recovery) { - spin_lock(&exp->exp_lock); - exp->exp_in_recovery = 0; - spin_unlock(&exp->exp_lock); - LASSERT_ATOMIC_POS(&obd->obd_connected_clients); - atomic_dec(&obd->obd_connected_clients); - } - - /* if called during recovery then should update - * obd_stale_clients counter, - * lightweight exports are not counted */ - if (exp->exp_failed && - (exp_connect_flags(exp) & OBD_CONNECT_LIGHTWEIGHT) == 0) - exp->exp_obd->obd_stale_clients++; - } - spin_unlock(&obd->obd_recovery_task_lock); - - spin_lock(&exp->exp_lock); - /** Cleanup req replay fields */ - if (exp->exp_req_replay_needed) { - exp->exp_req_replay_needed = 0; - - LASSERT(atomic_read(&obd->obd_req_replay_clients)); - atomic_dec(&obd->obd_req_replay_clients); - } - - /** Cleanup lock replay data */ - if (exp->exp_lock_replay_needed) { - exp->exp_lock_replay_needed = 0; - - LASSERT(atomic_read(&obd->obd_lock_replay_clients)); - atomic_dec(&obd->obd_lock_replay_clients); - } - spin_unlock(&exp->exp_lock); -} - /* This function removes 1-3 references from the export: * 1 - for export pointer passed * and if disconnect really need @@ -1108,7 +1063,6 @@ int class_disconnect(struct obd_export *export) CDEBUG(D_IOCTL, "disconnect: cookie %#llx\n", export->exp_handle.h_cookie); - class_export_recovery_cleanup(export); class_unlink_export(export); no_disconn: class_export_put(export); @@ -1184,13 +1138,13 @@ static void print_export_data(struct obd_export *exp, const char *status, } spin_unlock(&exp->exp_lock); - CDEBUG(D_HA, "%s: %s %p %s %s %d (%d %d %d) %d %d %d %d: %p %s %llu\n", + CDEBUG(D_HA, "%s: %s %p %s %s %d (%d %d %d) %d %d %d: %p %s %llu\n", exp->exp_obd->obd_name, status, exp, exp->exp_client_uuid.uuid, obd_export_nid2str(exp), atomic_read(&exp->exp_refcount), atomic_read(&exp->exp_rpc_count), atomic_read(&exp->exp_cb_count), atomic_read(&exp->exp_locks_count), - exp->exp_disconnected, exp->exp_delayed, exp->exp_failed, + exp->exp_disconnected, exp->exp_failed, nreplies, first_reply, nreplies > 3 ? "..." : "", exp->exp_last_committed); #if LUSTRE_TRACKS_LOCK_EXP_REFS diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 48c712ef1293..66fafd3fa3a8 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -237,13 +237,7 @@ int class_attach(struct lustre_cfg *lcfg) /* XXX belongs in setup not attach */ init_rwsem(&obd->obd_observer_link_sem); /* recovery data */ - spin_lock_init(&obd->obd_recovery_task_lock); - init_waitqueue_head(&obd->obd_next_transno_waitq); init_waitqueue_head(&obd->obd_evict_inprogress_waitq); - INIT_LIST_HEAD(&obd->obd_req_replay_queue); - INIT_LIST_HEAD(&obd->obd_lock_replay_queue); - INIT_LIST_HEAD(&obd->obd_final_req_queue); - INIT_LIST_HEAD(&obd->obd_evict_list); llog_group_init(&obd->obd_olg, FID_SEQ_LLOG); diff --git a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c index 8db62d00437c..13632cde571a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c +++ b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c @@ -328,8 +328,7 @@ static void ptlrpc_at_set_reply(struct ptlrpc_request *req, int flags) /* Report service time estimate for future client reqs, but report 0 * (to be ignored by client) if it's a error reply during recovery. * (bz15815) */ - if (req->rq_type == PTL_RPC_MSG_ERR && - (req->rq_export == NULL || req->rq_export->exp_obd->obd_recovering)) + if (req->rq_type == PTL_RPC_MSG_ERR && !req->rq_export) lustre_msg_set_timeout(req->rq_repmsg, 0); else lustre_msg_set_timeout(req->rq_repmsg, diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 353ac22296fa..44fde0bae632 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -880,18 +880,16 @@ static int ptlrpc_check_req(struct ptlrpc_request *req) req, (obd != NULL) ? obd->obd_name : "unknown"); rc = -ENODEV; } else if (lustre_msg_get_flags(req->rq_reqmsg) & - (MSG_REPLAY | MSG_REQ_REPLAY_DONE) && - !obd->obd_recovering) { - DEBUG_REQ(D_ERROR, req, - "Invalid replay without recovery"); - class_fail_export(req->rq_export); - rc = -ENODEV; - } else if (lustre_msg_get_transno(req->rq_reqmsg) != 0 && - !obd->obd_recovering) { - DEBUG_REQ(D_ERROR, req, "Invalid req with transno %llu without recovery", - lustre_msg_get_transno(req->rq_reqmsg)); - class_fail_export(req->rq_export); - rc = -ENODEV; + (MSG_REPLAY | MSG_REQ_REPLAY_DONE)) { + DEBUG_REQ(D_ERROR, req, "Invalid replay without recovery"); + class_fail_export(req->rq_export); + rc = -ENODEV; + } else if (lustre_msg_get_transno(req->rq_reqmsg) != 0) { + DEBUG_REQ(D_ERROR, req, + "Invalid req with transno %llu without recovery", + lustre_msg_get_transno(req->rq_reqmsg)); + class_fail_export(req->rq_export); + rc = -ENODEV; } if (unlikely(rc < 0)) { @@ -1030,34 +1028,20 @@ static int ptlrpc_at_send_early_reply(struct ptlrpc_request *req) return -ENOSYS; } - if (req->rq_export && - lustre_msg_get_flags(req->rq_reqmsg) & - (MSG_REPLAY | MSG_REQ_REPLAY_DONE | MSG_LOCK_REPLAY_DONE)) { - /* During recovery, we don't want to send too many early - * replies, but on the other hand we want to make sure the - * client has enough time to resend if the rpc is lost. So - * during the recovery period send at least 4 early replies, - * spacing them every at_extra if we can. at_estimate should - * always equal this fixed value during recovery. */ - at_measured(&svcpt->scp_at_estimate, min(at_extra, - req->rq_export->exp_obd->obd_recovery_timeout / 4)); - } else { - /* Fake our processing time into the future to ask the clients - * for some extra amount of time */ - at_measured(&svcpt->scp_at_estimate, at_extra + - ktime_get_real_seconds() - - req->rq_arrival_time.tv_sec); + /* Fake our processing time into the future to ask the clients + * for some extra amount of time */ + at_measured(&svcpt->scp_at_estimate, at_extra + + ktime_get_real_seconds() - req->rq_arrival_time.tv_sec); - /* Check to see if we've actually increased the deadline - - * we may be past adaptive_max */ - if (req->rq_deadline >= req->rq_arrival_time.tv_sec + - at_get(&svcpt->scp_at_estimate)) { - DEBUG_REQ(D_WARNING, req, "Couldn't add any time (%ld/%lld), not sending early reply\n", - olddl, req->rq_arrival_time.tv_sec + - at_get(&svcpt->scp_at_estimate) - - ktime_get_real_seconds()); - return -ETIMEDOUT; - } + /* Check to see if we've actually increased the deadline - + * we may be past adaptive_max */ + if (req->rq_deadline >= req->rq_arrival_time.tv_sec + + at_get(&svcpt->scp_at_estimate)) { + DEBUG_REQ(D_WARNING, req, "Couldn't add any time (%ld/%lld), not sending early reply\n", + olddl, req->rq_arrival_time.tv_sec + + at_get(&svcpt->scp_at_estimate) - + ktime_get_real_seconds()); + return -ETIMEDOUT; } newdl = ktime_get_real_seconds() + at_get(&svcpt->scp_at_estimate); From 8c74cb0125fc80c2179c0a321ad698a882676fbc Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:10 -0400 Subject: [PATCH 1021/2431] staging/lustre: Remove ccc_attr/conf_set() These seem to be unused. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lclient.h | 4 ---- .../staging/lustre/lustre/lclient/lcommon_cl.c | 15 --------------- 2 files changed, 19 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lclient.h b/drivers/staging/lustre/lustre/include/lclient.h index 67d41bb8bbc0..d09d00539155 100644 --- a/drivers/staging/lustre/lustre/include/lclient.h +++ b/drivers/staging/lustre/lustre/include/lclient.h @@ -289,12 +289,8 @@ void ccc_object_free(const struct lu_env *env, struct lu_object *obj); int ccc_lock_init(const struct lu_env *env, struct cl_object *obj, struct cl_lock *lock, const struct cl_io *io, const struct cl_lock_operations *lkops); -int ccc_attr_set(const struct lu_env *env, struct cl_object *obj, - const struct cl_attr *attr, unsigned valid); int ccc_object_glimpse(const struct lu_env *env, const struct cl_object *obj, struct ost_lvb *lvb); -int ccc_conf_set(const struct lu_env *env, struct cl_object *obj, - const struct cl_object_conf *conf); struct page *ccc_page_vmpage(const struct lu_env *env, const struct cl_page_slice *slice); int ccc_page_is_under_lock(const struct lu_env *env, diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index f049d5598ad4..98a2e0e7b4a8 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c @@ -406,12 +406,6 @@ int ccc_lock_init(const struct lu_env *env, return result; } -int ccc_attr_set(const struct lu_env *env, struct cl_object *obj, - const struct cl_attr *attr, unsigned valid) -{ - return 0; -} - int ccc_object_glimpse(const struct lu_env *env, const struct cl_object *obj, struct ost_lvb *lvb) { @@ -430,15 +424,6 @@ int ccc_object_glimpse(const struct lu_env *env, return 0; } - - -int ccc_conf_set(const struct lu_env *env, struct cl_object *obj, - const struct cl_object_conf *conf) -{ - /* TODO: destroy all pages attached to this object. */ - return 0; -} - static void ccc_object_size_lock(struct cl_object *obj) { struct inode *inode = ccc_object_inode(obj); From a6f4b8554f9b0bd5ac86f495c137de0696856f6c Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:11 -0400 Subject: [PATCH 1022/2431] staging/lustre: Remove unused ccc_io_fini() Does not appear to be used anywhere. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lclient.h | 1 - drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 7 ------- 2 files changed, 8 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lclient.h b/drivers/staging/lustre/lustre/include/lclient.h index d09d00539155..823be81b48b0 100644 --- a/drivers/staging/lustre/lustre/include/lclient.h +++ b/drivers/staging/lustre/lustre/include/lclient.h @@ -332,7 +332,6 @@ void ccc_lock_state(const struct lu_env *env, const struct cl_lock_slice *slice, enum cl_lock_state state); -void ccc_io_fini(const struct lu_env *env, const struct cl_io_slice *ios); int ccc_io_one_lock_index(const struct lu_env *env, struct cl_io *io, __u32 enqflags, enum cl_lock_mode mode, pgoff_t start, pgoff_t end); diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index 98a2e0e7b4a8..eb431748a437 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c @@ -675,13 +675,6 @@ void ccc_lock_state(const struct lu_env *env, * */ -void ccc_io_fini(const struct lu_env *env, const struct cl_io_slice *ios) -{ - struct cl_io *io = ios->cis_io; - - CLOBINVRNT(env, io->ci_obj, ccc_object_invariant(io->ci_obj)); -} - int ccc_io_one_lock_index(const struct lu_env *env, struct cl_io *io, __u32 enqflags, enum cl_lock_mode mode, pgoff_t start, pgoff_t end) From 99207b80bbf602f1674485c3f9653b7c527785d9 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:12 -0400 Subject: [PATCH 1023/2431] staging/lustre: Remove ccc_transient_page_* methods All of them but the ccc_transient_page_prep are unused, so remove the unused ones. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lclient.h | 19 -------- .../lustre/lustre/lclient/lcommon_cl.c | 48 ------------------- 2 files changed, 67 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lclient.h b/drivers/staging/lustre/lustre/include/lclient.h index 823be81b48b0..be5499c82504 100644 --- a/drivers/staging/lustre/lustre/include/lclient.h +++ b/drivers/staging/lustre/lustre/include/lclient.h @@ -233,8 +233,6 @@ static inline struct ccc_page *cl2ccc_page(const struct cl_page_slice *slice) return container_of(slice, struct ccc_page, cpg_cl); } -struct cl_page *ccc_vmpage_page_transient(struct page *vmpage); - struct ccc_device { struct cl_device cdv_cl; struct super_block *cdv_sb; @@ -296,22 +294,6 @@ struct page *ccc_page_vmpage(const struct lu_env *env, int ccc_page_is_under_lock(const struct lu_env *env, const struct cl_page_slice *slice, struct cl_io *io); int ccc_fail(const struct lu_env *env, const struct cl_page_slice *slice); -void ccc_transient_page_verify(const struct cl_page *page); -int ccc_transient_page_own(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *io, int nonblock); -void ccc_transient_page_assume(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *io); -void ccc_transient_page_unassume(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *io); -void ccc_transient_page_disown(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *io); -void ccc_transient_page_discard(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *io); int ccc_transient_page_prep(const struct lu_env *env, const struct cl_page_slice *slice, struct cl_io *io); @@ -368,7 +350,6 @@ struct ccc_object *cl_inode2ccc (struct inode *inode); int cl_setattr_ost(struct inode *inode, const struct iattr *attr); -struct cl_page *ccc_vmpage_page_transient(struct page *vmpage); int ccc_object_invariant(const struct cl_object *obj); int cl_file_inode_init(struct inode *inode, struct lustre_md *md); void cl_inode_fini(struct inode *inode); diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index eb431748a437..8764df9a1db3 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c @@ -488,54 +488,6 @@ int ccc_fail(const struct lu_env *env, const struct cl_page_slice *slice) return 0; } -void ccc_transient_page_verify(const struct cl_page *page) -{ -} - -int ccc_transient_page_own(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *unused, - int nonblock) -{ - ccc_transient_page_verify(slice->cpl_page); - return 0; -} - -void ccc_transient_page_assume(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *unused) -{ - ccc_transient_page_verify(slice->cpl_page); -} - -void ccc_transient_page_unassume(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *unused) -{ - ccc_transient_page_verify(slice->cpl_page); -} - -void ccc_transient_page_disown(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *unused) -{ - ccc_transient_page_verify(slice->cpl_page); -} - -void ccc_transient_page_discard(const struct lu_env *env, - const struct cl_page_slice *slice, - struct cl_io *unused) -{ - struct cl_page *page = slice->cpl_page; - - ccc_transient_page_verify(slice->cpl_page); - - /* - * For transient pages, remove it from the radix tree. - */ - cl_page_delete(env, page); -} - int ccc_transient_page_prep(const struct lu_env *env, const struct cl_page_slice *slice, struct cl_io *unused) From d0a76bbfe920e056e761bfcb77f3b95bd3bce98f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 30 Sep 2015 03:46:43 +0200 Subject: [PATCH 1024/2431] staging: iio: iio_dummy_evgen: handle_simple_irq() build fix handle_simple_irq() has dropped the first parameter, so fix it up in the iio_dummy_evgen.c driver to prevent the build from breaking. Cc: Jonathan Cameron Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/iio_dummy_evgen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/iio_dummy_evgen.c b/drivers/staging/iio/iio_dummy_evgen.c index 86d8447ac08f..9e83f348df51 100644 --- a/drivers/staging/iio/iio_dummy_evgen.c +++ b/drivers/staging/iio/iio_dummy_evgen.c @@ -86,7 +86,7 @@ static void iio_dummy_work_handler(struct irq_work *work) struct iio_dummy_handle_irq *irq_handler; irq_handler = container_of(work, struct iio_dummy_handle_irq, work); - handle_simple_irq(irq_handler->irq, irq_to_desc(irq_handler->irq)); + handle_simple_irq(irq_to_desc(irq_handler->irq)); } static int iio_dummy_evgen_create(void) From b3ce2076c70087c31a03d87900a7b868d0ead1bb Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 30 Sep 2015 00:51:28 +0530 Subject: [PATCH 1025/2431] Staging: media: lirc: Use USB API functions rather than constants Introduce use of function usb_endpoint_is_int_in() and usb_endpoint_is_int_out(). Also remove the variables ep_dir and ep_type as they are not used anymore. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/media/lirc/lirc_sasem.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/media/lirc/lirc_sasem.c b/drivers/staging/media/lirc/lirc_sasem.c index b247649a99eb..d3dedb831dee 100644 --- a/drivers/staging/media/lirc/lirc_sasem.c +++ b/drivers/staging/media/lirc/lirc_sasem.c @@ -697,16 +697,11 @@ static int sasem_probe(struct usb_interface *interface, for (i = 0; i < num_endpoints && !(ir_ep_found && vfd_ep_found); ++i) { struct usb_endpoint_descriptor *ep; - int ep_dir; - int ep_type; ep = &iface_desc->endpoint [i].desc; - ep_dir = ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK; - ep_type = ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK; if (!ir_ep_found && - ep_dir == USB_DIR_IN && - ep_type == USB_ENDPOINT_XFER_INT) { + usb_endpoint_is_int_in(ep)) { rx_endpoint = ep; ir_ep_found = 1; @@ -715,8 +710,7 @@ static int sasem_probe(struct usb_interface *interface, "%s: found IR endpoint\n", __func__); } else if (!vfd_ep_found && - ep_dir == USB_DIR_OUT && - ep_type == USB_ENDPOINT_XFER_INT) { + usb_endpoint_is_int_out(ep)) { tx_endpoint = ep; vfd_ep_found = 1; From 2866914ce1f84ffbd8fae66552058e586c84d851 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 29 Sep 2015 14:47:25 -0700 Subject: [PATCH 1026/2431] staging:emxx_udc: Fixed comparison style warnings Fixed 'Comparisons should place the constant on the right side of the test' Warnings Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 38 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 597b78df7c1a..f62636462fe4 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -589,7 +589,7 @@ static int EP0_out_OverBytes(struct nbu2ss_udc *udc, u8 *pBuf, u32 length) union usb_reg_access Temp32; union usb_reg_access *pBuf32 = (union usb_reg_access *)pBuf; - if ((0 < length) && (length < sizeof(u32))) { + if ((length > 0) && (length < sizeof(u32))) { Temp32.dw = _nbu2ss_readl(&udc->p_regs->EP0_READ); for (i = 0 ; i < length ; i++) pBuf32->byte.DATA[i] = Temp32.byte.DATA[i]; @@ -635,7 +635,7 @@ static int EP0_in_OverBytes(struct nbu2ss_udc *udc, u8 *pBuf, u32 iRemainSize) union usb_reg_access Temp32; union usb_reg_access *pBuf32 = (union usb_reg_access *)pBuf; - if ((0 < iRemainSize) && (iRemainSize < sizeof(u32))) { + if ((iRemainSize > 0) && (iRemainSize < sizeof(u32))) { for (i = 0 ; i < iRemainSize ; i++) Temp32.byte.DATA[i] = pBuf32->byte.DATA[i]; _nbu2ss_ep_in_end(udc, 0, Temp32.dw, iRemainSize); @@ -770,7 +770,7 @@ static int _nbu2ss_ep0_out_transfer( req->req.actual += result; iRecvLength -= result; - if ((0 < iRecvLength) && (iRecvLength < sizeof(u32))) { + if ((iRecvLength > 0) && (iRecvLength < sizeof(u32))) { pBuffer += result; iRemainSize -= result; @@ -849,11 +849,11 @@ static int _nbu2ss_out_dma( dmacnt = (length / mpkt); lmpkt = (length % mpkt) & ~(u32)0x03; - if (DMA_MAX_COUNT < dmacnt) { + if (dmacnt > DMA_MAX_COUNT) { dmacnt = DMA_MAX_COUNT; lmpkt = 0; - } else if (0 != lmpkt) { - if (0 == dmacnt) + } else if (lmpkt != 0) { + if (dmacnt == 0) burst = 0; /* Burst OFF */ dmacnt++; } @@ -864,7 +864,7 @@ static int _nbu2ss_out_dma( data = ((dmacnt & 0xff) << 16) | DCR1_EPn_DIR0 | DCR1_EPn_REQEN; _nbu2ss_writel(&preg->EP_DCR[num].EP_DCR1, data); - if (0 == burst) { + if (burst == 0) { _nbu2ss_writel(&preg->EP_REGS[num].EP_LEN_DCNT, 0); _nbu2ss_bitclr(&preg->EP_REGS[num].EP_DMA_CTRL, EPn_BURST_SET); } else { @@ -1438,7 +1438,7 @@ static int _nbu2ss_set_feature_device( switch (selector) { case USB_DEVICE_REMOTE_WAKEUP: - if (0x0000 == wIndex) { + if (wIndex == 0x0000) { udc->remote_wakeup = U2F_ENABLE; result = 0; } @@ -1495,8 +1495,8 @@ static inline int _nbu2ss_req_feature(struct nbu2ss_udc *udc, bool bset) u8 ep_adrs; int result = -EOPNOTSUPP; - if ((0x0000 != udc->ctrl.wLength) || - (USB_DIR_OUT != direction)) { + if ((udc->ctrl.wLength != 0x0000) || + (direction != USB_DIR_OUT)) { return -EINVAL; } @@ -1509,7 +1509,7 @@ static inline int _nbu2ss_req_feature(struct nbu2ss_udc *udc, bool bset) case USB_RECIP_ENDPOINT: if (0x0000 == (wIndex & 0xFF70)) { - if (USB_ENDPOINT_HALT == selector) { + if (selector == USB_ENDPOINT_HALT) { ep_adrs = wIndex & 0xFF; if (bset == FALSE) { _nbu2ss_endpoint_toggle_reset( @@ -1588,8 +1588,8 @@ static int std_req_get_status(struct nbu2ss_udc *udc) u8 ep_adrs; int result = -EINVAL; - if ((0x0000 != udc->ctrl.wValue) - || (USB_DIR_IN != direction)) { + if ((udc->ctrl.wValue != 0x0000) + || (direction != USB_DIR_IN)) { return result; } @@ -1653,9 +1653,9 @@ static int std_req_set_address(struct nbu2ss_udc *udc) int result = 0; u32 wValue = udc->ctrl.wValue; - if ((0x00 != udc->ctrl.bRequestType) || - (0x0000 != udc->ctrl.wIndex) || - (0x0000 != udc->ctrl.wLength)) { + if ((udc->ctrl.bRequestType != 0x00) || + (udc->ctrl.wIndex != 0x0000) || + (udc->ctrl.wLength != 0x0000)) { return -EINVAL; } @@ -1675,9 +1675,9 @@ static int std_req_set_configuration(struct nbu2ss_udc *udc) { u32 ConfigValue = (u32)(udc->ctrl.wValue & 0x00ff); - if ((0x0000 != udc->ctrl.wIndex) || - (0x0000 != udc->ctrl.wLength) || - (0x00 != udc->ctrl.bRequestType)) { + if ((udc->ctrl.wIndex != 0x0000) || + (udc->ctrl.wLength != 0x0000) || + (udc->ctrl.bRequestType != 0x00)) { return -EINVAL; } From 65ead4ecb2d22a78592263ecba3decbc9df548dd Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Tue, 29 Sep 2015 12:15:48 -0700 Subject: [PATCH 1027/2431] wilc1000 : Remove leftover comment delimiters Remove leftover comment delimiters that were only partially removed in a previous cleanup. Fixes : c3ca63728ad8 ("staging: wilc1000: remove useless comment") Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index be5e6f964d68..93af5d430f91 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1637,13 +1637,12 @@ static int wilc_wlan_stop(void) } } while (timeout); - reg = ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 8) | (1 << 9) | (1 << 26) | (1 << 29) | (1 << 30) | (1 << 31)); /**/ - /**/ - p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); /**/ - reg = ~(1 << 10); /**/ - /**/ - ret = p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); /**/ -/******************************************************************************/ + reg = ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 8) | (1 << 9) | (1 << 26) | (1 << 29) | (1 << 30) | (1 << 31)); + + p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); + reg = ~(1 << 10); + + ret = p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); release_bus(RELEASE_ALLOW_SLEEP); From ffda203c0cf3b5b4648ba24c7d1ca34b9dcd4a3e Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Tue, 29 Sep 2015 12:15:49 -0700 Subject: [PATCH 1028/2431] wilc1000 : Use BIT() macro where possible Replace (1 << x) by BIT(x) as recommended by checkpatch.pl Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 +- drivers/staging/wilc1000/host_interface.h | 38 +++++------ drivers/staging/wilc1000/linux_wlan_common.h | 8 +-- drivers/staging/wilc1000/wilc_sdio.c | 44 ++++++------- drivers/staging/wilc1000/wilc_spi.c | 24 +++---- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 +- drivers/staging/wilc1000/wilc_wlan.c | 66 ++++++++++--------- drivers/staging/wilc1000/wilc_wlan.h | 20 +++--- 8 files changed, 105 insertions(+), 103 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 99de804a1da8..358bd2dd0a13 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -7316,7 +7316,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pNewJoinBssParam->wmm_cap = true; /* Check if Bit 7 is set indicating U-APSD capability */ - if (pu8IEs[index + 8] & (1 << 7)) + if (pu8IEs[index + 8] & BIT(7)) pNewJoinBssParam->uapsd_cap = true; index += pu8IEs[index + 1] + 2; continue; @@ -7332,7 +7332,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pNewJoinBssParam->u8Index = pu8IEs[index + 9]; /* Check if Bit 7 is set indicating Opss capability */ - if (pu8IEs[index + 10] & (1 << 7)) { + if (pu8IEs[index + 10] & BIT(7)) { pNewJoinBssParam->u8OppEnable = 1; pNewJoinBssParam->u8CtWindow = pu8IEs[index + 10]; } else diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index c96fff998e26..0261b367f077 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -138,25 +138,25 @@ typedef struct { } tstrCfgParamVal; typedef enum { - RETRY_SHORT = 1 << 0, - RETRY_LONG = 1 << 1, - FRAG_THRESHOLD = 1 << 2, - RTS_THRESHOLD = 1 << 3, - BSS_TYPE = 1 << 4, - AUTH_TYPE = 1 << 5, - AUTHEN_TIMEOUT = 1 << 6, - POWER_MANAGEMENT = 1 << 7, - PREAMBLE = 1 << 8, - SHORT_SLOT_ALLOWED = 1 << 9, - TXOP_PROT_DISABLE = 1 << 10, - BEACON_INTERVAL = 1 << 11, - DTIM_PERIOD = 1 << 12, - SITE_SURVEY = 1 << 13, - SITE_SURVEY_SCAN_TIME = 1 << 14, - ACTIVE_SCANTIME = 1 << 15, - PASSIVE_SCANTIME = 1 << 16, - CURRENT_TX_RATE = 1 << 17, - HT_ENABLE = 1 << 18, + RETRY_SHORT = BIT(0), + RETRY_LONG = BIT(1), + FRAG_THRESHOLD = BIT(2), + RTS_THRESHOLD = BIT(3), + BSS_TYPE = BIT(4), + AUTH_TYPE = BIT(5), + AUTHEN_TIMEOUT = BIT(6), + POWER_MANAGEMENT = BIT(7), + PREAMBLE = BIT(8), + SHORT_SLOT_ALLOWED = BIT(9), + TXOP_PROT_DISABLE = BIT(10), + BEACON_INTERVAL = BIT(11), + DTIM_PERIOD = BIT(12), + SITE_SURVEY = BIT(13), + SITE_SURVEY_SCAN_TIME = BIT(14), + ACTIVE_SCANTIME = BIT(15), + PASSIVE_SCANTIME = BIT(16), + CURRENT_TX_RATE = BIT(17), + HT_ENABLE = BIT(18), } tenuCfgParam; typedef struct { diff --git a/drivers/staging/wilc1000/linux_wlan_common.h b/drivers/staging/wilc1000/linux_wlan_common.h index 8ef80c6ffbad..2b76e41ebd4d 100644 --- a/drivers/staging/wilc1000/linux_wlan_common.h +++ b/drivers/staging/wilc1000/linux_wlan_common.h @@ -44,10 +44,10 @@ void wilc_debugfs_remove(void); extern atomic_t REGION; extern atomic_t DEBUG_LEVEL; -#define DEBUG (1 << 0) -#define INFO (1 << 1) -#define WRN (1 << 2) -#define ERR (1 << 3) +#define DEBUG BIT(0) +#define INFO BIT(1) +#define WRN BIT(2) +#define ERR BIT(3) #define PRINT_D(region, ...) \ do { \ diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index c22b35e643c7..6da65e88c345 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -529,7 +529,7 @@ static int sdio_sync(void) return 0; } - reg &= ~(1 << 8); + reg &= ~BIT(8); if (!sdio_write_reg(WILC_MISC, reg)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write misc reg...\n"); return 0; @@ -548,7 +548,7 @@ static int sdio_sync(void) g_sdio.dPrint(N_ERR, "[wilc spi]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); return 0; } - reg |= (1 << 8); + reg |= BIT(8); ret = sdio_write_reg(WILC_PIN_MUX_0, reg); if (!ret) { g_sdio.dPrint(N_ERR, "[wilc spi]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); @@ -563,7 +563,7 @@ static int sdio_sync(void) g_sdio.dPrint(N_ERR, "[wilc spi]: Failed read reg (%08x)...\n", WILC_INTR_ENABLE); return 0; } - reg |= (1 << 16); + reg |= BIT(16); ret = sdio_write_reg(WILC_INTR_ENABLE, reg); if (!ret) { g_sdio.dPrint(N_ERR, "[wilc spi]: Failed write reg (%08x)...\n", WILC_INTR_ENABLE); @@ -756,17 +756,17 @@ static int sdio_read_int(u32 *int_status) cmd.data = 0; g_sdio.sdio_cmd52(&cmd); - if (cmd.data & (1 << 0)) + if (cmd.data & BIT(0)) tmp |= INT_0; - if (cmd.data & (1 << 2)) + if (cmd.data & BIT(2)) tmp |= INT_1; - if (cmd.data & (1 << 3)) + if (cmd.data & BIT(3)) tmp |= INT_2; - if (cmd.data & (1 << 4)) + if (cmd.data & BIT(4)) tmp |= INT_3; - if (cmd.data & (1 << 5)) + if (cmd.data & BIT(5)) tmp |= INT_4; - if (cmd.data & (1 << 6)) + if (cmd.data & BIT(6)) tmp |= INT_5; { int i; @@ -810,7 +810,7 @@ static int sdio_clear_int_ext(u32 val) { u32 flags; - flags = val & ((1 << MAX_NUN_INT_THRPT_ENH2) - 1); + flags = val & (BIT(MAX_NUN_INT_THRPT_ENH2) - 1); reg = flags; } #else @@ -818,13 +818,13 @@ static int sdio_clear_int_ext(u32 val) #endif /* select VMM table 0 */ if ((val & SEL_VMM_TBL0) == SEL_VMM_TBL0) - reg |= (1 << 5); + reg |= BIT(5); /* select VMM table 1 */ if ((val & SEL_VMM_TBL1) == SEL_VMM_TBL1) - reg |= (1 << 6); + reg |= BIT(6); /* enable VMM */ if ((val & EN_VMM) == EN_VMM) - reg |= (1 << 7); + reg |= BIT(7); if (reg) { sdio_cmd52_t cmd; @@ -848,7 +848,7 @@ static int sdio_clear_int_ext(u32 val) /* Cannot clear multiple interrupts. Must clear each interrupt individually */ u32 flags; - flags = val & ((1 << MAX_NUM_INT) - 1); + flags = val & (BIT(MAX_NUM_INT) - 1); if (flags) { int i; @@ -861,7 +861,7 @@ static int sdio_clear_int_ext(u32 val) cmd.function = 0; cmd.raw = 0; cmd.address = 0xf8; - cmd.data = (1 << i); + cmd.data = BIT(i); ret = g_sdio.sdio_cmd52(&cmd); if (!ret) { @@ -891,13 +891,13 @@ static int sdio_clear_int_ext(u32 val) vmm_ctl = 0; /* select VMM table 0 */ if ((val & SEL_VMM_TBL0) == SEL_VMM_TBL0) - vmm_ctl |= (1 << 0); + vmm_ctl |= BIT(0); /* select VMM table 1 */ if ((val & SEL_VMM_TBL1) == SEL_VMM_TBL1) - vmm_ctl |= (1 << 1); + vmm_ctl |= BIT(1); /* enable VMM */ if ((val & EN_VMM) == EN_VMM) - vmm_ctl |= (1 << 2); + vmm_ctl |= BIT(2); if (vmm_ctl) { sdio_cmd52_t cmd; @@ -944,7 +944,7 @@ static int sdio_sync_ext(int nint /* how mant interrupts to enable. */) return 0; } - reg &= ~(1 << 8); + reg &= ~BIT(8); if (!sdio_write_reg(WILC_MISC, reg)) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write misc reg...\n"); return 0; @@ -963,7 +963,7 @@ static int sdio_sync_ext(int nint /* how mant interrupts to enable. */) g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); return 0; } - reg |= (1 << 8); + reg |= BIT(8); ret = sdio_write_reg(WILC_PIN_MUX_0, reg); if (!ret) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); @@ -980,7 +980,7 @@ static int sdio_sync_ext(int nint /* how mant interrupts to enable. */) } for (i = 0; (i < 5) && (nint > 0); i++, nint--) - reg |= (1 << (27 + i)); + reg |= BIT((27 + i)); ret = sdio_write_reg(WILC_INTR_ENABLE, reg); if (!ret) { g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write reg (%08x)...\n", WILC_INTR_ENABLE); @@ -994,7 +994,7 @@ static int sdio_sync_ext(int nint /* how mant interrupts to enable. */) } for (i = 0; (i < 3) && (nint > 0); i++, nint--) - reg |= (1 << i); + reg |= BIT(i); ret = sdio_read_reg(WILC_INTR2_ENABLE, ®); if (!ret) { diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index 8426641197ca..f7627701fb35 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -128,7 +128,7 @@ static int spi_cmd(u8 cmd, u32 adr, u32 data, u32 sz, u8 clockless) case CMD_INTERNAL_READ: /* internal register read */ bc[1] = (u8)(adr >> 8); if (clockless) - bc[1] |= (1 << 7); + bc[1] |= BIT(7); bc[2] = (u8)adr; bc[3] = 0x00; len = 5; @@ -179,7 +179,7 @@ static int spi_cmd(u8 cmd, u32 adr, u32 data, u32 sz, u8 clockless) case CMD_INTERNAL_WRITE: /* internal register write */ bc[1] = (u8)(adr >> 8); if (clockless) - bc[1] |= (1 << 7); + bc[1] |= BIT(7); bc[2] = (u8)(adr); bc[3] = (u8)(data >> 24); bc[4] = (u8)(data >> 16); @@ -288,7 +288,7 @@ static int spi_cmd_complete(u8 cmd, u32 adr, u8 *b, u32 sz, u8 clockless) case CMD_INTERNAL_READ: /* internal register read */ wb[1] = (u8)(adr >> 8); if (clockless == 1) - wb[1] |= (1 << 7); + wb[1] |= BIT(7); wb[2] = (u8)adr; wb[3] = 0x00; len = 5; @@ -339,7 +339,7 @@ static int spi_cmd_complete(u8 cmd, u32 adr, u8 *b, u32 sz, u8 clockless) case CMD_INTERNAL_WRITE: /* internal register write */ wb[1] = (u8)(adr >> 8); if (clockless == 1) - wb[1] |= (1 << 7); + wb[1] |= BIT(7); wb[2] = (u8)(adr); wb[3] = b[3]; wb[4] = b[2]; @@ -1048,7 +1048,7 @@ static int spi_sync(void) PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); return 0; } - reg |= (1 << 8); + reg |= BIT(8); ret = spi_write_reg(WILC_PIN_MUX_0, reg); if (!ret) { PRINT_ER("[wilc spi]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); @@ -1063,7 +1063,7 @@ static int spi_sync(void) PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_INTR_ENABLE); return 0; } - reg |= (1 << 16); + reg |= BIT(16); ret = spi_write_reg(WILC_INTR_ENABLE, reg); if (!ret) { PRINT_ER("[wilc spi]: Failed write reg (%08x)...\n", WILC_INTR_ENABLE); @@ -1254,7 +1254,7 @@ static int spi_clear_int_ext(u32 val) } else { u32 flags; - flags = val & ((1 << MAX_NUM_INT) - 1); + flags = val & (BIT(MAX_NUM_INT) - 1); if (flags) { int i; @@ -1284,10 +1284,10 @@ static int spi_clear_int_ext(u32 val) tbl_ctl = 0; /* select VMM table 0 */ if ((val & SEL_VMM_TBL0) == SEL_VMM_TBL0) - tbl_ctl |= (1 << 0); + tbl_ctl |= BIT(0); /* select VMM table 1 */ if ((val & SEL_VMM_TBL1) == SEL_VMM_TBL1) - tbl_ctl |= (1 << 1); + tbl_ctl |= BIT(1); ret = spi_write_reg(WILC_VMM_TBL_CTL, tbl_ctl); if (!ret) { @@ -1331,7 +1331,7 @@ static int spi_sync_ext(int nint /* how mant interrupts to enable. */) PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); return 0; } - reg |= (1 << 8); + reg |= BIT(8); ret = spi_write_reg(WILC_PIN_MUX_0, reg); if (!ret) { PRINT_ER("[wilc spi]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); @@ -1348,7 +1348,7 @@ static int spi_sync_ext(int nint /* how mant interrupts to enable. */) } for (i = 0; (i < 5) && (nint > 0); i++, nint--) { - reg |= (1 << (27 + i)); + reg |= (BIT((27 + i))); } ret = spi_write_reg(WILC_INTR_ENABLE, reg); if (!ret) { @@ -1363,7 +1363,7 @@ static int spi_sync_ext(int nint /* how mant interrupts to enable. */) } for (i = 0; (i < 3) && (nint > 0); i++, nint--) { - reg |= (1 << i); + reg |= BIT(i); } ret = spi_read_reg(WILC_INTR2_ENABLE, ®); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index af49c912558e..d3a03c68f803 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -52,8 +52,8 @@ /*iftype*/ enum stats_flags { - WILC_WFI_RX_PKT = 1 << 0, - WILC_WFI_TX_PKT = 1 << 1, + WILC_WFI_RX_PKT = BIT(0), + WILC_WFI_TX_PKT = BIT(1), }; struct WILC_WFI_stats { diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 93af5d430f91..428e94fdd716 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -649,7 +649,7 @@ static inline void chip_allow_sleep(void) /* Clear bit 1 */ g_wlan.hif_func.hif_read_reg(0xf0, ®); - g_wlan.hif_func.hif_write_reg(0xf0, reg & ~(1 << 0)); + g_wlan.hif_func.hif_write_reg(0xf0, reg & ~BIT(0)); } static inline void chip_wakeup(void) @@ -661,10 +661,10 @@ static inline void chip_wakeup(void) do { g_wlan.hif_func.hif_read_reg(1, ®); /* Set bit 1 */ - g_wlan.hif_func.hif_write_reg(1, reg | (1 << 1)); + g_wlan.hif_func.hif_write_reg(1, reg | BIT(1)); /* Clear bit 1*/ - g_wlan.hif_func.hif_write_reg(1, reg & ~(1 << 1)); + g_wlan.hif_func.hif_write_reg(1, reg & ~BIT(1)); do { /* Wait for the chip to stabilize*/ @@ -681,7 +681,7 @@ static inline void chip_wakeup(void) g_wlan.hif_func.hif_read_reg(0xf0, ®); do { /* Set bit 1 */ - g_wlan.hif_func.hif_write_reg(0xf0, reg | (1 << 0)); + g_wlan.hif_func.hif_write_reg(0xf0, reg | BIT(0)); /* Check the clock status */ g_wlan.hif_func.hif_read_reg(0xf1, &clk_status_reg); @@ -704,7 +704,8 @@ static inline void chip_wakeup(void) /* in case of failure, Reset the wakeup bit to introduce a new edge on the next loop */ if ((clk_status_reg & 0x1) == 0) { /* Reset bit 0 */ - g_wlan.hif_func.hif_write_reg(0xf0, reg & (~(1 << 0))); + g_wlan.hif_func.hif_write_reg(0xf0, reg & + (~BIT(0))); } } while ((clk_status_reg & 0x1) == 0); } @@ -712,7 +713,7 @@ static inline void chip_wakeup(void) if (genuChipPSstate == CHIP_SLEEPING_MANUAL) { g_wlan.hif_func.hif_read_reg(0x1C0C, ®); - reg &= ~(1 << 0); + reg &= ~BIT(0); g_wlan.hif_func.hif_write_reg(0x1C0C, reg); if (wilc_get_chipid(false) >= 0x1002b0) { @@ -720,11 +721,11 @@ static inline void chip_wakeup(void) u32 val32; g_wlan.hif_func.hif_read_reg(0x1e1c, &val32); - val32 |= (1 << 6); + val32 |= BIT(6); g_wlan.hif_func.hif_write_reg(0x1e1c, val32); g_wlan.hif_func.hif_read_reg(0x1e9c, &val32); - val32 |= (1 << 6); + val32 |= BIT(6); g_wlan.hif_func.hif_write_reg(0x1e9c, val32); } } @@ -739,19 +740,19 @@ static inline void chip_wakeup(void) if ((g_wlan.io_func.io_type & 0x1) == HIF_SPI) { g_wlan.hif_func.hif_read_reg(1, ®); /* Make sure bit 1 is 0 before we start. */ - g_wlan.hif_func.hif_write_reg(1, reg & ~(1 << 1)); + g_wlan.hif_func.hif_write_reg(1, reg & ~BIT(1)); /* Set bit 1 */ - g_wlan.hif_func.hif_write_reg(1, reg | (1 << 1)); + g_wlan.hif_func.hif_write_reg(1, reg | BIT(1)); /* Clear bit 1*/ - g_wlan.hif_func.hif_write_reg(1, reg & ~(1 << 1)); + g_wlan.hif_func.hif_write_reg(1, reg & ~BIT(1)); } else if ((g_wlan.io_func.io_type & 0x1) == HIF_SDIO) { /* Make sure bit 0 is 0 before we start. */ g_wlan.hif_func.hif_read_reg(0xf0, ®); - g_wlan.hif_func.hif_write_reg(0xf0, reg & ~(1 << 0)); + g_wlan.hif_func.hif_write_reg(0xf0, reg & ~BIT(0)); /* Set bit 1 */ - g_wlan.hif_func.hif_write_reg(0xf0, reg | (1 << 0)); + g_wlan.hif_func.hif_write_reg(0xf0, reg | BIT(0)); /* Clear bit 1 */ - g_wlan.hif_func.hif_write_reg(0xf0, reg & ~(1 << 0)); + g_wlan.hif_func.hif_write_reg(0xf0, reg & ~BIT(0)); } do { @@ -769,7 +770,7 @@ static inline void chip_wakeup(void) if (genuChipPSstate == CHIP_SLEEPING_MANUAL) { g_wlan.hif_func.hif_read_reg(0x1C0C, ®); - reg &= ~(1 << 0); + reg &= ~BIT(0); g_wlan.hif_func.hif_write_reg(0x1C0C, reg); if (wilc_get_chipid(false) >= 0x1002b0) { @@ -777,11 +778,11 @@ static inline void chip_wakeup(void) u32 val32; g_wlan.hif_func.hif_read_reg(0x1e1c, &val32); - val32 |= (1 << 6); + val32 |= BIT(6); g_wlan.hif_func.hif_write_reg(0x1e1c, val32); g_wlan.hif_func.hif_read_reg(0x1e9c, &val32); - val32 |= (1 << 6); + val32 |= BIT(6); g_wlan.hif_func.hif_write_reg(0x1e9c, val32); } } @@ -873,7 +874,7 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) PRINT_D(TX_DBG, "VMMTable entry size = %d\n", vmm_table[i]); if (tqe->type == WILC_CFG_PKT) { - vmm_table[i] |= (1 << 10); + vmm_table[i] |= BIT(10); PRINT_D(TX_DBG, "VMMTable entry changed for CFG packet = %d\n", vmm_table[i]); } #ifdef BIG_ENDIAN @@ -998,7 +999,7 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) wilc_debug(N_ERR, "[wilc txq]: fail can't read reg WILC_HOST_TX_CTRL..\n"); break; } - reg &= ~(1ul << 0); + reg &= ~BIT(0); ret = p->hif_func.hif_write_reg(WILC_HOST_TX_CTRL, reg); if (!ret) { wilc_debug(N_ERR, "[wilc txq]: fail can't write reg WILC_HOST_TX_CTRL..\n"); @@ -1039,9 +1040,9 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount) vmm_sz *= 4; header = (tqe->type << 31) | (tqe->buffer_size << 15) | vmm_sz; if (tqe->type == WILC_MGMT_PKT) - header |= (1 << 30); + header |= BIT(30); else - header &= ~(1 << 30); + header &= ~BIT(30); #ifdef BIG_ENDIAN header = BYTE_SWAP(header); @@ -1405,7 +1406,7 @@ static int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size) u8 *dma_buffer; int ret = 0; - blksz = (1ul << 12); + blksz = BIT(12); /* Allocate a DMA coherent buffer. */ dma_buffer = kmalloc(blksz, GFP_KERNEL); @@ -1482,7 +1483,7 @@ static int wilc_wlan_start(void) **/ if (p->io_func.io_type == HIF_SDIO) { reg = 0; - reg |= (1 << 3); /* bug 4456 and 4557 */ + reg |= BIT(3); /* bug 4456 and 4557 */ } else if (p->io_func.io_type == HIF_SPI) { reg = 1; } @@ -1557,13 +1558,13 @@ static int wilc_wlan_start(void) p->hif_func.hif_read_reg(WILC_GLB_RESET_0, ®); - if ((reg & (1ul << 10)) == (1ul << 10)) { - reg &= ~(1ul << 10); + if ((reg & BIT(10)) == BIT(10)) { + reg &= ~BIT(10); p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); p->hif_func.hif_read_reg(WILC_GLB_RESET_0, ®); } - reg |= (1ul << 10); + reg |= BIT(10); ret = p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); p->hif_func.hif_read_reg(WILC_GLB_RESET_0, ®); release_bus(RELEASE_ONLY); @@ -1598,7 +1599,7 @@ static int wilc_wlan_stop(void) return ret; } - reg &= ~(1 << 10); + reg &= ~BIT(10); ret = p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); @@ -1619,9 +1620,9 @@ static int wilc_wlan_stop(void) } PRINT_D(GENERIC_DBG, "Read RESET Reg %x : Retry%d\n", reg, timeout); /*Workaround to ensure that the chip is actually reset*/ - if ((reg & (1 << 10))) { + if ((reg & BIT(10))) { PRINT_D(GENERIC_DBG, "Bit 10 not reset : Retry %d\n", timeout); - reg &= ~(1 << 10); + reg &= ~BIT(10); ret = p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); timeout--; } else { @@ -1637,10 +1638,11 @@ static int wilc_wlan_stop(void) } } while (timeout); - reg = ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 8) | (1 << 9) | (1 << 26) | (1 << 29) | (1 << 30) | (1 << 31)); + reg = (BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(8) | BIT(9) | BIT(26) | + BIT(29) | BIT(30) | BIT(31)); p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); - reg = ~(1 << 10); + reg = (u32)~BIT(10); ret = p->hif_func.hif_write_reg(WILC_GLB_RESET_0, reg); @@ -1868,7 +1870,7 @@ u32 init_chip(void) wilc_debug(N_ERR, "[wilc start]: fail read reg 0x1118 ...\n"); return ret; } - reg |= (1 << 0); + reg |= BIT(0); ret = g_wlan.hif_func.hif_write_reg(0x1118, reg); if (!ret) { wilc_debug(N_ERR, "[wilc start]: fail write reg 0x1118 ...\n"); diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 60da18c9d938..1ed4e2c9d396 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -152,7 +152,7 @@ #endif -#define ABORT_INT (1 << 31) +#define ABORT_INT BIT(31) /*******************************************/ /* E0 and later Interrupt flags. */ @@ -191,15 +191,15 @@ /* 7: Select VMM table 2 */ /* 8: Enable VMM */ /*******************************************/ -#define CLR_INT0 (1 << 0) -#define CLR_INT1 (1 << 1) -#define CLR_INT2 (1 << 2) -#define CLR_INT3 (1 << 3) -#define CLR_INT4 (1 << 4) -#define CLR_INT5 (1 << 5) -#define SEL_VMM_TBL0 (1 << 6) -#define SEL_VMM_TBL1 (1 << 7) -#define EN_VMM (1 << 8) +#define CLR_INT0 BIT(0) +#define CLR_INT1 BIT(1) +#define CLR_INT2 BIT(2) +#define CLR_INT3 BIT(3) +#define CLR_INT4 BIT(4) +#define CLR_INT5 BIT(5) +#define SEL_VMM_TBL0 BIT(6) +#define SEL_VMM_TBL1 BIT(7) +#define EN_VMM BIT(8) #define DATA_INT_EXT INT_0 #define PLL_INT_EXT INT_1 From e215a871255f9256de77e1b9c32b84d3a80122c1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 30 Sep 2015 08:15:41 +0900 Subject: [PATCH 1029/2431] staging: wilc1000: remove wilc_platform include file This patch removes wilc_platform.h include file in wilc_oswrapper.h wilc_platform.h have several standard header files so that some header files should be included to avoid compilation errors. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 1 + drivers/staging/wilc1000/host_interface.c | 4 ++++ drivers/staging/wilc1000/wilc_oswrapper.h | 2 -- drivers/staging/wilc1000/wilc_wlan_if.h | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 68e3c7f223bb..34a6c108db5e 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -12,6 +12,7 @@ #include "coreconfigurator.h" #include "wilc_wlan_if.h" #include +#include #define TAG_PARAM_OFFSET (MAC_HDR_LEN + TIME_STAMP_LEN + \ BEACON_INTERVAL_LEN + CAP_INFO_LEN) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 358bd2dd0a13..79f415864af4 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1,3 +1,7 @@ +#include +#include +#include +#include #include "host_interface.h" #include "coreconfigurator.h" #include "wilc_wlan_if.h" diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h index 5456c9674cc7..10d16e9dd9d2 100644 --- a/drivers/staging/wilc1000/wilc_oswrapper.h +++ b/drivers/staging/wilc1000/wilc_oswrapper.h @@ -11,8 +11,6 @@ */ -/* Os Configuration File */ -#include "wilc_platform.h" #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 2d6e0cef20d6..e4807aecd54a 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -13,6 +13,7 @@ /* #define MEMORY_STATIC */ /* #define USE_OLD_SPI_SW */ +#include #include "wilc_oswrapper.h" #include "linux_wlan_common.h" From 9fc42225f23e0b29583b92499806264dbfba0f4b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 30 Sep 2015 08:15:42 +0900 Subject: [PATCH 1030/2431] staging: wilc1000: delete wilc_oswrapper.h This patch deletes wilc_oswrapper.h that has nothing inside. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_oswrapper.h | 16 ---------------- drivers/staging/wilc1000/wilc_wlan.h | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 18 deletions(-) delete mode 100644 drivers/staging/wilc1000/wilc_oswrapper.h diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h deleted file mode 100644 index 10d16e9dd9d2..000000000000 --- a/drivers/staging/wilc1000/wilc_oswrapper.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef __WILC_OSWRAPPER_H__ -#define __WILC_OSWRAPPER_H__ - -/*! - * @file wilc_oswrapper.h - * @brief Top level OS Wrapper, include this file and it will include all - * other files as necessary - * @author syounan - * @date 10 Aug 2010 - * @version 1.0 - */ - - - - -#endif diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 1ed4e2c9d396..7b1a872d22b0 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -1,7 +1,6 @@ #ifndef WILC_WLAN_H #define WILC_WLAN_H -#include "wilc_oswrapper.h" #define ISWILC1000(id) (((id & 0xfffff000) == 0x100000) ? 1 : 0) diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index e4807aecd54a..c0b5df92fa6a 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -14,7 +14,6 @@ /* #define USE_OLD_SPI_SW */ #include -#include "wilc_oswrapper.h" #include "linux_wlan_common.h" /******************************************** From 438b293ebded4c89fe0a2c4f68e065a79e752511 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 30 Sep 2015 11:59:23 +0900 Subject: [PATCH 1031/2431] staging: wilc1000: remove define WILC_PARSE_SCAN_IN_HOST The define WILC_PARSE_SCAN_IN_HOST is always used in the driver, so just delete ifdef WILC_PARSE_SCAN_IN_HOST line, ifndef WILC_PARSE_SCAN_IN_HOST line and it's related codes. Finally, remove define in Makefile. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 1 - drivers/staging/wilc1000/host_interface.c | 62 ----------------------- drivers/staging/wilc1000/wilc_wlan_if.h | 3 +- 3 files changed, 1 insertion(+), 65 deletions(-) diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index afae7d6464ae..ac15e5ad5ac5 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -10,7 +10,6 @@ ccflags-y += -DSTA_FIRMWARE=\"atmel/wilc1000_fw.bin\" \ ccflags-y += -I$(src)/ -D__CHECK_ENDIAN__ -DWILC_ASIC_A0 \ -DPLL_WORKAROUND -DCONNECT_DIRECT -DAGING_ALG \ - -DWILC_PARSE_SCAN_IN_HOST \ -Wno-unused-function -DWILC_DEBUGFS #ccflags-y += -DTCP_ACK_FILTER diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 79f415864af4..7fa2cf2fd1a3 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -467,7 +467,6 @@ typedef struct _tstrWidJoinReqExt { } tstrWidJoinReqExt; #endif -#ifdef WILC_PARSE_SCAN_IN_HOST /*Struct containg joinParam of each AP*/ typedef struct _tstrJoinBssParam { BSSTYPE_T bss_type; @@ -504,7 +503,6 @@ typedef struct _tstrBssTable { tstrJoinBssParam *head; tstrJoinBssParam *tail; } tstrBssTable; -#endif /*WILC_PARSE_SCAN_IN_HOST*/ typedef enum { SCAN_TIMER = 0, @@ -564,9 +562,7 @@ tstrWILC_WFIDrv *gu8FlushedJoinReqDrvHandler; #define FLUSHED_JOIN_REQ 1 #define FLUSHED_BYTE_POS 79 /* Position the byte indicating flushing in the flushed request */ -#ifdef WILC_PARSE_SCAN_IN_HOST static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo); -#endif /*WILC_PARSE_SCAN_IN_HOST*/ extern void chip_sleep_manually(u32 u32SleepTime); extern int linux_wlan_get_num_conn_ifcs(void); @@ -1521,10 +1517,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, wid_site_survey_reslts_s *pstrSurveyResults = NULL; #else u8 *pu8CurrByte = NULL; - #ifdef WILC_PARSE_SCAN_IN_HOST tstrJoinBssParam *ptstrJoinBssParam; - #endif /*WILC_PARSE_SCAN_IN_HOST*/ - #endif PRINT_D(GENERIC_DBG, "Handling connect request\n"); @@ -1696,14 +1689,12 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n"); - #ifdef WILC_PARSE_SCAN_IN_HOST ptstrJoinBssParam = (tstrJoinBssParam *)pstrHostIFconnectAttr->pJoinParams; if (ptstrJoinBssParam == NULL) { PRINT_ER("Required BSSID not found\n"); s32Error = -ENOENT; goto ERRORHANDLER; } - #endif /*WILC_PARSE_SCAN_IN_HOST*/ if (pstrHostIFconnectAttr->pu8bssid != NULL) { pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL); @@ -1799,40 +1790,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, PRINT_D(HOSTINF_DBG, "Connecting to network of SSID %s on channel %d\n", pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->u8channel); - -#ifndef WILC_PARSE_SCAN_IN_HOST - strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ_EXTENDED; - strWIDList[u32WidsCount].enuWIDtype = WID_STR; - strWIDList[u32WidsCount].s32ValueSize = MAX_SSID_LEN + 7; - strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].s32ValueSize, GFP_KERNEL); - - if (strWIDList[u32WidsCount].ps8WidVal == NULL) { - s32Error = -EFAULT; - goto ERRORHANDLER; - } - - pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; - - if (pstrHostIFconnectAttr->pu8ssid != NULL) { - memcpy(pu8CurrByte, pstrHostIFconnectAttr->pu8ssid, pstrHostIFconnectAttr->ssidLen); - pu8CurrByte[pstrHostIFconnectAttr->ssidLen] = '\0'; - } - pu8CurrByte += MAX_SSID_LEN; - if ((pstrHostIFconnectAttr->u8channel >= 1) && (pstrHostIFconnectAttr->u8channel <= 14)) { - *(pu8CurrByte++) = pstrHostIFconnectAttr->u8channel; - } else { - PRINT_ER("Channel out of range\n"); - *(pu8CurrByte++) = 0xFF; - } - if (pstrHostIFconnectAttr->pu8bssid != NULL) - memcpy(pu8CurrByte, pstrHostIFconnectAttr->pu8bssid, 6); - pu8CurrByte += 6; - - /* keep the buffer at the start of the allocated pointer to use it with the free*/ - pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; - - #else - strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].enuWIDtype = WID_STR; @@ -1962,9 +1919,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, /* keep the buffer at the start of the allocated pointer to use it with the free*/ pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; - - - #endif /* #ifdef WILC_PARSE_SCAN_IN_HOST*/ u32WidsCount++; /* A temporary workaround to avoid handling the misleading MAC_DISCONNECTED raised from the @@ -2104,8 +2058,6 @@ static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&gu8FlushedAuthType); u32WidsCount++; - - #ifdef WILC_PARSE_SCAN_IN_HOST strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].enuWIDtype = WID_STR; strWIDList[u32WidsCount].s32ValueSize = gu32FlushedJoinReqSize; @@ -2117,8 +2069,6 @@ static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) u32WidsCount++; - #endif - s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, get_id_from_handler(gu8FlushedJoinReqDrvHandler)); if (s32Error) { @@ -2318,9 +2268,7 @@ static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, pstrNetworkInfo->bNewNetwork = true; /* add new BSS to JoinBssTable */ - #ifdef WILC_PARSE_SCAN_IN_HOST pJoinParams = host_int_ParseJoinBssParam(pstrNetworkInfo); - #endif /*WILC_PARSE_SCAN_IN_HOST*/ pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_NETWORK_FOUND, pstrNetworkInfo, pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid, @@ -2534,12 +2482,8 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, mod_timer(&hDuringIpTimer, jiffies + msecs_to_jiffies(10000)); - #ifdef WILC_PARSE_SCAN_IN_HOST /* open a BA session if possible */ /* if(pstrWFIDrv->strWILC_UsrConnReq.IsHTCapable) */ - - #endif - /* host_int_addBASession(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid,0, */ /* BA_SESSION_DEFAULT_BUFFER_SIZE,BA_SESSION_DEFAULT_TIMEOUT); */ } else { @@ -7223,10 +7167,6 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u return s32Error; } - - -#ifdef WILC_PARSE_SCAN_IN_HOST - /** * @brief host_int_ParseJoinBssParam * @details Parse Needed Join Parameters and save it in a new JoinBssParam entry @@ -7444,8 +7384,6 @@ void host_int_freeJoinParams(void *pJoinParams) else PRINT_ER("Unable to FREE null pointer\n"); } -#endif /*WILC_PARSE_SCAN_IN_HOST*/ - /** * @brief host_int_addBASession diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index c0b5df92fa6a..7aa317dfb180 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -147,7 +147,6 @@ typedef struct { #define INFINITE_SLEEP_TIME ((u32)0xFFFFFFFF) -#ifdef WILC_PARSE_SCAN_IN_HOST typedef enum { SUPP_RATES_IE = 1, EXT_SUPP_RATES_IE = 50, @@ -157,7 +156,7 @@ typedef enum { WMM_IE = 221, P2P_IE = 221, } BEACON_IE; -#endif + typedef enum { INFRASTRUCTURE = 0, INDEPENDENT, From 7477929566b65f692b79974b784ee59e8b2b9f18 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 30 Sep 2015 11:59:24 +0900 Subject: [PATCH 1032/2431] staging: wilc1000: remove define CONNECT_DIRECT The driver use CONNECT_DIRECT define as always. No need to provide as feature. This patch removes ifdef/ifndef CONNECT_DIRECT line and it's related codes inside ifndef CONNECT_DIRECT. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/coreconfigurator.c | 68 ------ drivers/staging/wilc1000/coreconfigurator.h | 20 -- drivers/staging/wilc1000/host_interface.c | 233 -------------------- drivers/staging/wilc1000/host_interface.h | 40 ---- 5 files changed, 1 insertion(+), 362 deletions(-) diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index ac15e5ad5ac5..e965df9ddf70 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -9,7 +9,7 @@ ccflags-y += -DSTA_FIRMWARE=\"atmel/wilc1000_fw.bin\" \ -DP2P_CONCURRENCY_FIRMWARE=\"atmel/wilc1000_p2p_fw.bin\" ccflags-y += -I$(src)/ -D__CHECK_ENDIAN__ -DWILC_ASIC_A0 \ - -DPLL_WORKAROUND -DCONNECT_DIRECT -DAGING_ALG \ + -DPLL_WORKAROUND -DAGING_ALG \ -Wno-unused-function -DWILC_DEBUGFS #ccflags-y += -DTCP_ACK_FILTER diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 34a6c108db5e..b6b19fe36ae1 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -587,74 +587,6 @@ s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo) return s32Error; } -#ifndef CONNECT_DIRECT -s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE], - wid_site_survey_reslts_s **ppstrSurveyResults, - u32 *pu32SurveyResultsCount) -{ - s32 s32Error = 0; - wid_site_survey_reslts_s *pstrSurveyResults = NULL; - u32 u32SurveyResultsCount = 0; - u32 u32SurveyBytesLength = 0; - u8 *pu8BufferPtr; - u32 u32RcvdSurveyResultsNum = 2; - u8 u8ReadSurveyResFragNum; - u32 i; - u32 j; - - for (i = 0; i < u32RcvdSurveyResultsNum; i++) { - u32SurveyBytesLength = ppu8RcvdSiteSurveyResults[i][0]; - - - for (j = 0; j < u32SurveyBytesLength; j += SURVEY_RESULT_LENGTH) { - u32SurveyResultsCount++; - } - } - - pstrSurveyResults = kcalloc(u32SurveyResultsCount, - sizeof(wid_site_survey_reslts_s), GFP_KERNEL); - if (!pstrSurveyResults) - return -ENOMEM; - - u32SurveyResultsCount = 0; - - for (i = 0; i < u32RcvdSurveyResultsNum; i++) { - pu8BufferPtr = ppu8RcvdSiteSurveyResults[i]; - - u32SurveyBytesLength = pu8BufferPtr[0]; - - /* TODO: mostafa: pu8BufferPtr[1] contains the fragment num */ - u8ReadSurveyResFragNum = pu8BufferPtr[1]; - - pu8BufferPtr += 2; - - for (j = 0; j < u32SurveyBytesLength; j += SURVEY_RESULT_LENGTH) { - memcpy(&pstrSurveyResults[u32SurveyResultsCount], pu8BufferPtr, SURVEY_RESULT_LENGTH); - pu8BufferPtr += SURVEY_RESULT_LENGTH; - u32SurveyResultsCount++; - } - } - -ERRORHANDLER: - *ppstrSurveyResults = pstrSurveyResults; - *pu32SurveyResultsCount = u32SurveyResultsCount; - - return s32Error; -} - - -s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults) -{ - s32 s32Error = 0; - - if (pstrSurveyResults != NULL) { - kfree(pstrSurveyResults); - } - - return s32Error; -} -#endif - /** * @brief sends certain Configuration Packet based on the input WIDs pstrWIDs * using driver config layer diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index c2bd6fc5f0ab..253c7f0c516b 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -130,19 +130,6 @@ typedef struct { size_t ie_len; } tstrDisconnectNotifInfo; -#ifndef CONNECT_DIRECT -typedef struct wid_site_survey_reslts { - char SSID[MAX_SSID_LEN]; - u8 BssType; - u8 Channel; - u8 SecurityStatus; - u8 BSSID[6]; - char RxPower; - u8 Reserved; - -} wid_site_survey_reslts_s; -#endif - s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, u32 u32WIDsCount, bool bRespRequired, u32 drvHandler); s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); @@ -152,13 +139,6 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, tstrConnectRespInfo **ppstrConnectRespInfo); s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo); -#ifndef CONNECT_DIRECT -s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE], - wid_site_survey_reslts_s **ppstrSurveyResults, - u32 *pu32SurveyResultsCount); -s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults); -#endif - void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length); void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length); void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length); diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7fa2cf2fd1a3..be01de58e62f 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -459,13 +459,11 @@ struct host_if_msg { tstrWILC_WFIDrv *drvHandler; }; -#ifdef CONNECT_DIRECT typedef struct _tstrWidJoinReqExt { char SSID[MAX_SSID_LEN]; u8 u8channel; u8 BSSID[6]; } tstrWidJoinReqExt; -#endif /*Struct containg joinParam of each AP*/ typedef struct _tstrJoinBssParam { @@ -534,10 +532,6 @@ struct timer_list g_hPeriodicRSSI; u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; -#ifndef CONNECT_DIRECT -static u8 gapu8RcvdSurveyResults[2][MAX_SURVEY_RESULT_FRAG_SIZE]; -#endif - static u8 gapu8RcvdAssocResp[MAX_ASSOC_RESP_FRAME_SIZE]; bool gbScanWhileConnected = false; @@ -1510,174 +1504,11 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrWID strWIDList[8]; u32 u32WidsCount = 0, dummyval = 0; /* char passphrase[] = "12345678"; */ - #ifndef CONNECT_DIRECT - s32 s32Err = 0; - u32 i; - u8 u8bssDscListIndex; - wid_site_survey_reslts_s *pstrSurveyResults = NULL; - #else u8 *pu8CurrByte = NULL; tstrJoinBssParam *ptstrJoinBssParam; - #endif PRINT_D(GENERIC_DBG, "Handling connect request\n"); - #ifndef CONNECT_DIRECT - memset(gapu8RcvdSurveyResults, 0, sizeof(gapu8RcvdSurveyResults)); - - - PRINT_D(HOSTINF_DBG, "Getting site survey results\n"); - s32Err = host_int_get_site_survey_results(pstrWFIDrv, - gapu8RcvdSurveyResults, - MAX_SURVEY_RESULT_FRAG_SIZE); - if (s32Err) { - PRINT_ER("Failed to get site survey results\n"); - s32Error = -EFAULT; - goto ERRORHANDLER; - } - s32Err = ParseSurveyResults(gapu8RcvdSurveyResults, &pstrSurveyResults, - &pstrWFIDrv->u32SurveyResultsCount); - - - if (s32Err == 0) { - /* use the parsed info in pstrSurveyResults, then deallocate it */ - PRINT_D(HOSTINF_DBG, "Copying site survey results in global structure, then deallocate\n"); - for (i = 0; i < pstrWFIDrv->u32SurveyResultsCount; i++) { - memcpy(&pstrWFIDrv->astrSurveyResults[i], &pstrSurveyResults[i], - sizeof(wid_site_survey_reslts_s)); - } - - DeallocateSurveyResults(pstrSurveyResults); - } else { - PRINT_ER("ParseSurveyResults() Error\n"); - s32Error = -EFAULT; - goto ERRORHANDLER; - } - - - for (i = 0; i < pstrWFIDrv->u32SurveyResultsCount; i++) { - if (memcmp(pstrWFIDrv->astrSurveyResults[i].SSID, - pstrHostIFconnectAttr->pu8ssid, - pstrHostIFconnectAttr->ssidLen) == 0) { - PRINT_INFO(HOSTINF_DBG, "Network with required SSID is found %s\n", pstrHostIFconnectAttr->pu8ssid); - if (pstrHostIFconnectAttr->pu8bssid == NULL) { - /* BSSID is not passed from the user, so decision of matching - * is done by SSID only */ - PRINT_INFO(HOSTINF_DBG, "BSSID is not passed from the user\n"); - break; - } else { - /* BSSID is also passed from the user, so decision of matching - * should consider also this passed BSSID */ - - if (memcmp(pstrWFIDrv->astrSurveyResults[i].BSSID, - pstrHostIFconnectAttr->pu8bssid, - 6) == 0) { - PRINT_INFO(HOSTINF_DBG, "BSSID is passed from the user and matched\n"); - break; - } - } - } - } - - if (i < pstrWFIDrv->u32SurveyResultsCount) { - u8bssDscListIndex = i; - - PRINT_INFO(HOSTINF_DBG, "Connecting to network of Bss Idx%d and SSID %s and channel%d\n", - u8bssDscListIndex, pstrWFIDrv->astrSurveyResults[u8bssDscListIndex].SSID, - pstrWFIDrv->astrSurveyResults[u8bssDscListIndex].Channel); - - PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n"); - - if (pstrHostIFconnectAttr->pu8bssid != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL); - memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->pu8bssid, 6); - } - - pstrWFIDrv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen; - if (pstrHostIFconnectAttr->pu8ssid != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssidLen + 1, GFP_KERNEL); - memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->pu8ssid, - pstrHostIFconnectAttr->ssidLen); - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssidLen] = '\0'; - } - - pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen; - if (pstrHostIFconnectAttr->pu8IEs != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); - memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->pu8IEs, - pstrHostIFconnectAttr->IEsLen); - } - - pstrWFIDrv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->u8security; - pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->tenuAuth_type; - pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->pfConnectResult; - pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg; - - - /* if((gWFiDrvHandle->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) && */ - /* (gWFiDrvHandle->strWILC_UsrConnReq.ConnReqIEsLen != 0)) */ - { - /* IEs to be inserted in Association Request */ - strWIDList[u32WidsCount].u16WIDid = WID_INFO_ELEMENT_ASSOCIATE; - strWIDList[u32WidsCount].enuWIDtype = WID_BIN_DATA; - strWIDList[u32WidsCount].ps8WidVal = pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs; - strWIDList[u32WidsCount].s32ValueSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; - u32WidsCount++; - } - strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_MODE; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security)); - u32WidsCount++; - - PRINT_INFO(HOSTINF_DBG, "Encrypt Mode = %x\n", pstrWFIDrv->strWILC_UsrConnReq.u8security); - - strWIDList[u32WidsCount].u16WIDid = (u16)WID_AUTH_TYPE; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); - u32WidsCount++; - - PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); - /* - * strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_PSK; - * strWIDList[u32WidsCount].enuWIDtype = WID_STR; - * strWIDList[u32WidsCount].s32ValueSize = sizeof(passphrase); - * strWIDList[u32WidsCount].ps8WidVal = (s8*)(passphrase); - * u32WidsCount++; - */ - - strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)&u8bssDscListIndex; - u32WidsCount++; - - /* A temporary workaround to avoid handling the misleading MAC_DISCONNECTED raised from the - * firmware at chip reset when processing the WIDs of the Connect Request. - * (This workaround should be removed in the future when the Chip reset of the Connect WIDs is disabled) */ - /* ////////////////////// */ - gu32WidConnRstHack = 0; - /* ////////////////////// */ - - s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, - get_id_from_handler(pstrWFIDrv)); - if (s32Error) { - PRINT_ER("failed to send config packet\n"); - s32Error = -EINVAL; - goto ERRORHANDLER; - } else { - pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP; - } - - } else { - PRINT_ER("Required BSSID not found\n"); - s32Error = -ENOENT; - goto ERRORHANDLER; - } - - #else - /* if we try to connect to an already connected AP then discard the request */ if (memcmp(pstrHostIFconnectAttr->pu8bssid, u8ConnectedSSID, ETH_ALEN) == 0) { @@ -1952,7 +1783,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, PRINT_D(GENERIC_DBG, "set HOST_IF_WAITING_CONN_RESP\n"); pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP; } - #endif ERRORHANDLER: if (s32Error) { @@ -5150,69 +4980,6 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, return s32Error; } -/** - * @brief host_int_get_site_survey_results - * @details gets the site survey results - * @param[in,out] handle to the wifi driver, - * Message containing site survey results in the - * following format - *|---------------------------------------------------| - | MsgLength | fragNo. | MsgBodyLength | MsgBody | - ||-----------|-----------|---------------|-----------| - | 1 | 1 | 1 | 1 | - | ----------------------------------------- | ---------------- - | - ||---------------------------------------| - | Network1 | Netweork2 | ... | Network5 | - ||---------------------------------------| - | 44 | 44 | ... | 44 | - | -------------------------- | --------------------------------------- - | - ||---------------------------------------------------------------------| - | SSID | BSS Type | Channel | Security Status| BSSID | RSSI |Reserved | - | - | - ||------|----------|---------|----------------|-------|------|---------| - | 33 | 1 | 1 | 1 | 6 | 1 | 1 | - ||---------------------------------------------------------------------| - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ -#ifndef CONNECT_DIRECT -s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv, - u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE], - u32 u32MaxSiteSrvyFragLen) -{ - s32 s32Error = 0; - tstrWID astrWIDList[2]; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - - astrWIDList[0].u16WIDid = (u16)WID_SITE_SURVEY_RESULTS; - astrWIDList[0].enuWIDtype = WID_STR; - astrWIDList[0].ps8WidVal = ppu8RcvdSiteSurveyResults[0]; - astrWIDList[0].s32ValueSize = u32MaxSiteSrvyFragLen; - - astrWIDList[1].u16WIDid = (u16)WID_SITE_SURVEY_RESULTS; - astrWIDList[1].enuWIDtype = WID_STR; - astrWIDList[1].ps8WidVal = ppu8RcvdSiteSurveyResults[1]; - astrWIDList[1].s32ValueSize = u32MaxSiteSrvyFragLen; - - s32Error = send_config_pkt(GET_CFG, astrWIDList, 2, true, - get_id_from_handler(pstrWFIDrv)); - - /*get the value by searching the local copy*/ - if (s32Error) { - PRINT_ER("Failed to send config packet to get survey results\n"); - s32Error = -EINVAL; - } - - return s32Error; -} -#endif - /** * @brief sets a start scan request * @details diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 0261b367f077..56ba04226f6b 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -322,11 +322,6 @@ typedef struct { tenuHostIFstate enuHostIFstate; - #ifndef CONNECT_DIRECT - u32 u32SurveyResultsCount; - wid_site_survey_reslts_s astrSurveyResults[MAX_NUM_SCANNED_NETWORKS]; - #endif - u8 au8AssociatedBSSID[ETH_ALEN]; tstrCfgParamVal strCfgValues; /* semaphores */ @@ -658,41 +653,6 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress); */ s32 host_int_wait_msg_queue_idle(void); -/** - * @brief gets the site survey results - * @details - * @param[in,out] handle to the wifi driver, - * Message containing site survey results in the - * following formate - *|---------------------------------------------------| - | MsgLength | fragNo. | MsgBodyLength | MsgBody | - ||-----------|-----------|---------------|-----------| - | 1 | 1 | 1 | 1 | - | ----------------------------------------- | ---------------- - | - ||---------------------------------------| - | Network1 | Netweork2 | ... | Network5 | - ||---------------------------------------| - | 44 | 44 | ... | 44 | - | -------------------------- | --------------------------------------- - | - ||---------------------------------------------------------------------| - | SSID | BSS Type | Channel | Security Status| BSSID | RSSI |Reserved | - ||------|----------|---------|----------------|-------|------|---------| - | 33 | 1 | 1 | 1 | 6 | 1 | 1 | - ||---------------------------------------------------------------------| - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ -#ifndef CONNECT_DIRECT -s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv, - u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE], - u32 u32MaxSiteSrvyFragLen); -#endif - /** * @brief sets a start scan request * @details From 0c9fc33cec319d8df632ac107bdba77a9b44bb37 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 30 Sep 2015 17:52:14 +0900 Subject: [PATCH 1033/2431] staging: wilc1000: fix build error for openrisc-allmodconfig The kbuild test robot reports the following build error for openrisc-allmodconfig. >> drivers/staging/wilc1000/wilc_sdio.c:584:2: error: implicit >> declaration of function 'memset' The error occurs due to missing a standard header file as so that three .c files are included it. Reported-by: kbuild test robot Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_sdio.c | 1 + drivers/staging/wilc1000/wilc_spi.c | 1 + drivers/staging/wilc1000/wilc_wlan_cfg.c | 1 + 3 files changed, 3 insertions(+) diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index 6da65e88c345..6e28ca08288b 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -7,6 +7,7 @@ /* */ /* //////////////////////////////////////////////////////////////////////////// */ +#include #include "wilc_wlan_if.h" #include "wilc_wlan.h" diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index f7627701fb35..0e06fc204c81 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -7,6 +7,7 @@ /* */ /* //////////////////////////////////////////////////////////////////////////// */ +#include #include "wilc_wlan_if.h" #include "wilc_wlan.h" diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index 73a15082ac3f..d761a372eeea 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -7,6 +7,7 @@ /* */ /* ///////////////////////////////////////////////////////////////////////// */ +#include #include "wilc_wlan_if.h" #include "wilc_wlan.h" #include "wilc_wlan_cfg.h" From fb6f37a8c842542093a2409792e8ef0f13411684 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:54 +0300 Subject: [PATCH 1034/2431] staging: sm750fb: staticize local functions in ddk750_chip Several functions in ddk750_chip are not used elsewhere, let's make them static. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 12 ++++++------ drivers/staging/sm750fb/ddk750_chip.h | 5 ----- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index b2654ecd7c5b..d13574906dda 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -35,13 +35,13 @@ logical_chip_type_t getChipType(void) return chip; } -inline unsigned int calcPLL(pll_value_t *pPLL) +static inline unsigned int calcPLL(pll_value_t *pPLL) { return (pPLL->inputFreq * pPLL->M / pPLL->N / (1 << pPLL->OD) / (1 << pPLL->POD)); } -unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL) +static unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL) { unsigned int ulPllReg = 0; @@ -75,7 +75,7 @@ unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL) } -unsigned int getChipClock(void) +static unsigned int getChipClock(void) { pll_value_t pll; #if 1 @@ -92,7 +92,7 @@ unsigned int getChipClock(void) * * Input: Frequency to be set. */ -void setChipClock(unsigned int frequency) +static void setChipClock(unsigned int frequency) { pll_value_t pll; unsigned int ulActualMxClk; @@ -123,7 +123,7 @@ void setChipClock(unsigned int frequency) -void setMemoryClock(unsigned int frequency) +static void setMemoryClock(unsigned int frequency) { unsigned int ulReg, divisor; #if 1 @@ -171,7 +171,7 @@ void setMemoryClock(unsigned int frequency) * NOTE: * The maximum frequency the engine can run is 168MHz. */ -void setMasterClock(unsigned int frequency) +static void setMasterClock(unsigned int frequency) { unsigned int ulReg, divisor; #if 1 diff --git a/drivers/staging/sm750fb/ddk750_chip.h b/drivers/staging/sm750fb/ddk750_chip.h index 6ff043608fe9..d130bb8fef1f 100644 --- a/drivers/staging/sm750fb/ddk750_chip.h +++ b/drivers/staging/sm750fb/ddk750_chip.h @@ -78,11 +78,6 @@ unsigned int formatPllReg(pll_value_t *pPLL); void ddk750_set_mmio(void __iomem *, unsigned short, char); unsigned int ddk750_getVMSize(void); int ddk750_initHw(initchip_param_t *); -unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL); -unsigned int getChipClock(void); -void setChipClock(unsigned int); -void setMemoryClock(unsigned int frequency); -void setMasterClock(unsigned int frequency); #endif From 55a6cf5d4b211a8d1c13264ab1ed5fc7e09fdfdd Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:55 +0300 Subject: [PATCH 1035/2431] staging: sm750fb: remove unused calcPllValue2 function The calcPllValue2 function is never called and therefore it can be removed. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 100 -------------------------- drivers/staging/sm750fb/ddk750_chip.h | 1 - 2 files changed, 101 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index d13574906dda..e987971cce28 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -430,106 +430,6 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) return ret; } -unsigned int calcPllValue2( -unsigned int ulRequestClk, /* Required pixel clock in Hz unit */ -pll_value_t *pPLL /* Structure to hold the value to be set in PLL */ -) -{ - unsigned int M, N, OD, POD = 0, diff, pllClk, odPower, podPower; - unsigned int bestDiff = 0xffffffff; /* biggest 32 bit unsigned number */ - unsigned int ret; - /* Init PLL structure to know states */ - pPLL->M = 0; - pPLL->N = 0; - pPLL->OD = 0; - pPLL->POD = 0; - - /* Sanity check: None at the moment */ - - /* Convert everything in Khz range in order to avoid calculation overflow */ - pPLL->inputFreq /= 1000; - ulRequestClk /= 1000; - -#ifndef VALIDATION_CHIP - /* The maximum of post divider is 8. */ - for (POD = 0; POD <= 3; POD++) -#endif - { - -#ifndef VALIDATION_CHIP - /* MXCLK_PLL does not have post divider. */ - if ((POD > 0) && (pPLL->clockType == MXCLK_PLL)) - break; -#endif - - /* Work out 2 to the power of POD */ - podPower = 1 << POD; - - /* OD has only 2 bits [15:14] and its value must between 0 to 3 */ - for (OD = 0; OD <= 3; OD++) { - /* Work out 2 to the power of OD */ - odPower = 1 << OD; - -#ifdef VALIDATION_CHIP - if (odPower > 4) - podPower = 4; - else - podPower = odPower; -#endif - - /* N has 4 bits [11:8] and its value must between 2 and 15. - The N == 1 will behave differently --> Result is not correct. */ - for (N = 2; N <= 15; N++) { - /* The formula for PLL is ulRequestClk = inputFreq * M / N / (2^OD) - In the following steps, we try to work out a best M value given the others are known. - To avoid decimal calculation, we use 1000 as multiplier for up to 3 decimal places of accuracy. - */ - M = ulRequestClk * N * odPower * 1000 / pPLL->inputFreq; - M = roundedDiv(M, 1000); - - /* M field has only 8 bits, reject value bigger than 8 bits */ - if (M < 256) { - /* Calculate the actual clock for a given M & N */ - pllClk = pPLL->inputFreq * M / N / odPower / podPower; - - /* How much are we different from the requirement */ - diff = absDiff(pllClk, ulRequestClk); - - if (diff < bestDiff) { - bestDiff = diff; - - /* Store M and N values */ - pPLL->M = M; - pPLL->N = N; - pPLL->OD = OD; - -#ifdef VALIDATION_CHIP - if (OD > 2) - POD = 2; - else - POD = OD; -#endif - - pPLL->POD = POD; - } - } - } - } - } - - /* Restore input frequency from Khz to hz unit */ - ulRequestClk *= 1000; - pPLL->inputFreq = DEFAULT_INPUT_CLOCK; /* Default reference clock */ - - /* Return actual frequency that the PLL can set */ - ret = calcPLL(pPLL); - return ret; -} - - - - - unsigned int formatPllReg(pll_value_t *pPLL) { unsigned int ulPllReg = 0; diff --git a/drivers/staging/sm750fb/ddk750_chip.h b/drivers/staging/sm750fb/ddk750_chip.h index d130bb8fef1f..6e87a1792c8b 100644 --- a/drivers/staging/sm750fb/ddk750_chip.h +++ b/drivers/staging/sm750fb/ddk750_chip.h @@ -73,7 +73,6 @@ initchip_param_t; logical_chip_type_t getChipType(void); unsigned int calcPllValue(unsigned int request, pll_value_t *pll); -unsigned int calcPllValue2(unsigned int, pll_value_t *); unsigned int formatPllReg(pll_value_t *pPLL); void ddk750_set_mmio(void __iomem *, unsigned short, char); unsigned int ddk750_getVMSize(void); From 86b5f4ed3525645dac9fa8a5eedcd5af7118c591 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:56 +0300 Subject: [PATCH 1036/2431] staging: sm750fb: remove unused ddk750_initDVIDisp function The ddk750_initDVIDisp function is never used and therefore it can be removed. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_display.c | 33 ------------------------ drivers/staging/sm750fb/ddk750_display.h | 1 - 2 files changed, 34 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 8348113482d9..24c1c8291702 100644 --- a/drivers/staging/sm750fb/ddk750_display.c +++ b/drivers/staging/sm750fb/ddk750_display.c @@ -250,36 +250,3 @@ void ddk750_setLogicalDispOut(disp_output_t output) if (output & DPMS_USAGE) ddk750_setDPMS((output & DPMS_MASK) >> DPMS_OFFSET); } - - -int ddk750_initDVIDisp(void) -{ - /* Initialize DVI. If the dviInit fail and the VendorID or the DeviceID are - not zeroed, then set the failure flag. If it is zeroe, it might mean - that the system is in Dual CRT Monitor configuration. */ - - /* De-skew enabled with default 111b value. - This will fix some artifacts problem in some mode on board 2.2. - Somehow this fix does not affect board 2.1. - */ - if ((dviInit(1, /* Select Rising Edge */ - 1, /* Select 24-bit bus */ - 0, /* Select Single Edge clock */ - 1, /* Enable HSync as is */ - 1, /* Enable VSync as is */ - 1, /* Enable De-skew */ - 7, /* Set the de-skew setting to maximum setup */ - 1, /* Enable continuous Sync */ - 1, /* Enable PLL Filter */ - 4 /* Use the recommended value for PLL Filter value */ - ) != 0) && (dviGetVendorID() != 0x0000) && (dviGetDeviceID() != 0x0000)) { - return (-1); - } - - /* TODO: Initialize other display component */ - - /* Success */ - return 0; - -} - diff --git a/drivers/staging/sm750fb/ddk750_display.h b/drivers/staging/sm750fb/ddk750_display.h index 39bdfad80f23..3d2e8b401e71 100644 --- a/drivers/staging/sm750fb/ddk750_display.h +++ b/drivers/staging/sm750fb/ddk750_display.h @@ -100,6 +100,5 @@ typedef enum _disp_output_t { disp_output_t; void ddk750_setLogicalDispOut(disp_output_t); -int ddk750_initDVIDisp(void); #endif From 6af70030431d5d58b34c294ddb371baf7f6c9d4b Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:57 +0300 Subject: [PATCH 1037/2431] staging: sm750fb: remove unused macros Several macros defined in sm750.h and sm750_help.h are not used and therefore they can be removed Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.h | 7 ------ drivers/staging/sm750fb/sm750_help.h | 33 ---------------------------- 2 files changed, 40 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index 793c0924463f..b2f05f459505 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -162,13 +162,6 @@ struct lynxfb_par { #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #endif - -#define PS_TO_HZ(ps) \ - ({ \ - unsigned long long hz = 1000*1000*1000*1000ULL; \ - do_div(hz, ps); \ - (unsigned long)hz; }) - static inline unsigned long ps_to_hz(unsigned int psvalue) { unsigned long long numerator = 1000*1000*1000*1000ULL; diff --git a/drivers/staging/sm750fb/sm750_help.h b/drivers/staging/sm750fb/sm750_help.h index 08dcc69847d7..c070cf25a7d6 100644 --- a/drivers/staging/sm750fb/sm750_help.h +++ b/drivers/staging/sm750fb/sm750_help.h @@ -1,20 +1,6 @@ #ifndef LYNX_HELP_H__ #define LYNX_HELP_H__ -/* FIELD MACROS */ -#define _LSB(f) (0 ? f) -#define _MSB(f) (1 ? f) -#define _COUNT(f) (_MSB(f) - _LSB(f) + 1) - -#define RAW_MASK(f) (0xFFFFFFFF >> (32 - _COUNT(f))) -#define GET_MASK(f) (RAW_MASK(f) << _LSB(f)) -#define GET_FIELD(d, f) (((d) >> _LSB(f)) & RAW_MASK(f)) -#define TEST_FIELD(d, f, v) (GET_FIELD(d, f) == f ## _ ## v) -#define SET_FIELD(d, f, v) (((d) & ~GET_MASK(f)) | \ - (((f ## _ ## v) & RAW_MASK(f)) << _LSB(f))) -#define SET_FIELDV(d, f, v) (((d) & ~GET_MASK(f)) | \ - (((v) & RAW_MASK(f)) << _LSB(f))) - /* Internal macros */ #define _F_START(f) (0 ? f) #define _F_END(f) (1 ? f) @@ -51,25 +37,6 @@ #define FIELD_END(field) (1 ? field) #define FIELD_SIZE(field) (1 + FIELD_END(field) - FIELD_START(field)) #define FIELD_MASK(field) (((1 << (FIELD_SIZE(field)-1)) | ((1 << (FIELD_SIZE(field)-1)) - 1)) << FIELD_START(field)) -#define FIELD_NORMALIZE(reg, field) (((reg) & FIELD_MASK(field)) >> FIELD_START(field)) -#define FIELD_DENORMALIZE(field, value) (((value) << FIELD_START(field)) & FIELD_MASK(field)) - -#define FIELD_INIT(reg, field, value) FIELD_DENORMALIZE(reg ## _ ## field, \ - reg ## _ ## field ## _ ## value) -#define FIELD_INIT_VAL(reg, field, value) \ - (FIELD_DENORMALIZE(reg ## _ ## field, value)) -#define FIELD_VAL_SET(x, r, f, v) x = x & ~FIELD_MASK(r ## _ ## f) \ - | FIELD_DENORMALIZE(r ## _ ## f, r ## _ ## f ## _ ## v) - -#define RGB(r, g, b) \ -( \ - (unsigned long) (((r) << 16) | ((g) << 8) | (b)) \ -) - -#define RGB16(r, g, b) \ -( \ - (unsigned short) ((((r) & 0xF8) << 8) | (((g) & 0xFC) << 3) | (((b) & 0xF8) >> 3)) \ -) static inline unsigned int absDiff(unsigned int a, unsigned int b) { From 228a4cf8e7e5553d9da06916dd01dd0b17cc1a8f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:58 +0300 Subject: [PATCH 1038/2431] staging: sm750fb: staticize getPowerMode function The getPowerMode function is not used outside ddk750_power, make it static. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_power.c | 2 +- drivers/staging/sm750fb/ddk750_power.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_power.c b/drivers/staging/sm750fb/ddk750_power.c index e580dab2b625..864bbd6abbda 100644 --- a/drivers/staging/sm750fb/ddk750_power.c +++ b/drivers/staging/sm750fb/ddk750_power.c @@ -17,7 +17,7 @@ void ddk750_setDPMS(DPMS_t state) } } -unsigned int getPowerMode(void) +static unsigned int getPowerMode(void) { if (getChipType() == SM750LE) return 0; diff --git a/drivers/staging/sm750fb/ddk750_power.h b/drivers/staging/sm750fb/ddk750_power.h index b7cf6b281fb6..ed08cdb883c9 100644 --- a/drivers/staging/sm750fb/ddk750_power.h +++ b/drivers/staging/sm750fb/ddk750_power.h @@ -19,8 +19,6 @@ DPMS_t; void ddk750_setDPMS(DPMS_t); -unsigned int getPowerMode(void); - /* * This function sets the current power mode */ From 4221c5958796174a5ea13043075816b199a60d09 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:59 +0300 Subject: [PATCH 1039/2431] staging: sm750fb: remove unused enable{ZVPort,SSP,PWM} functions The functions that enable/disable power for some sub-devices are not used and therefore they can be removed. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_power.c | 61 -------------------------- drivers/staging/sm750fb/ddk750_power.h | 15 ------- 2 files changed, 76 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_power.c b/drivers/staging/sm750fb/ddk750_power.c index 864bbd6abbda..198ff81161b1 100644 --- a/drivers/staging/sm750fb/ddk750_power.c +++ b/drivers/staging/sm750fb/ddk750_power.c @@ -122,50 +122,6 @@ void enable2DEngine(unsigned int enable) setCurrentGate(gate); } - -/* - * This function enable/disable the ZV Port. - */ -void enableZVPort(unsigned int enable) -{ - uint32_t gate; - - /* Enable ZV Port Gate */ - gate = PEEK32(CURRENT_GATE); - if (enable) { - gate = FIELD_SET(gate, CURRENT_GATE, ZVPORT, ON); -#if 1 - /* Using Software I2C */ - gate = FIELD_SET(gate, CURRENT_GATE, GPIO, ON); -#else - /* Using Hardware I2C */ - gate = FIELD_SET(gate, CURRENT_GATE, I2C, ON); -#endif - } else { - /* Disable ZV Port Gate. There is no way to know whether the - GPIO pins are being used or not. Therefore, do not disable the - GPIO gate. */ - gate = FIELD_SET(gate, CURRENT_GATE, ZVPORT, OFF); - } - - setCurrentGate(gate); -} - - -void enableSSP(unsigned int enable) -{ - uint32_t gate; - - /* Enable SSP Gate */ - gate = PEEK32(CURRENT_GATE); - if (enable) - gate = FIELD_SET(gate, CURRENT_GATE, SSP, ON); - else - gate = FIELD_SET(gate, CURRENT_GATE, SSP, OFF); - - setCurrentGate(gate); -} - void enableDMA(unsigned int enable) { uint32_t gate; @@ -197,23 +153,6 @@ void enableGPIO(unsigned int enable) setCurrentGate(gate); } -/* - * This function enable/disable the PWM Engine - */ -void enablePWM(unsigned int enable) -{ - uint32_t gate; - - /* Enable PWM Gate */ - gate = PEEK32(CURRENT_GATE); - if (enable) - gate = FIELD_SET(gate, CURRENT_GATE, PWM, ON); - else - gate = FIELD_SET(gate, CURRENT_GATE, PWM, OFF); - - setCurrentGate(gate); -} - /* * This function enable/disable the I2C Engine */ diff --git a/drivers/staging/sm750fb/ddk750_power.h b/drivers/staging/sm750fb/ddk750_power.h index ed08cdb883c9..6e804d990cff 100644 --- a/drivers/staging/sm750fb/ddk750_power.h +++ b/drivers/staging/sm750fb/ddk750_power.h @@ -34,11 +34,6 @@ void setCurrentGate(unsigned int gate); */ void enable2DEngine(unsigned int enable); -/* - * This function enable/disable the ZV Port - */ -void enableZVPort(unsigned int enable); - /* * This function enable/disable the DMA Engine */ @@ -49,20 +44,10 @@ void enableDMA(unsigned int enable); */ void enableGPIO(unsigned int enable); -/* - * This function enable/disable the PWM Engine - */ -void enablePWM(unsigned int enable); - /* * This function enable/disable the I2C Engine */ void enableI2C(unsigned int enable); -/* - * This function enable/disable the SSP. - */ -void enableSSP(unsigned int enable); - #endif From 5b62408ffe42ffce28e94bc5e7a6dec45e6456ee Mon Sep 17 00:00:00 2001 From: Ronit Halder Date: Wed, 30 Sep 2015 11:39:45 +0530 Subject: [PATCH 1040/2431] staging: dgap: fix memory leak in dgap_parsefile() In dgap_parsefile() char pointers are set with kstrdup() without checking that some string is allocated to that char pointer before. This patch frees the memory if already allocated and then set the poniter with kstrdup(). Signed-off-by: Ronit halder Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index e17bde7bf416..64f6149652d9 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -672,6 +672,7 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } + kfree(p->u.board.portstr); p->u.board.portstr = kstrdup(s, GFP_KERNEL); if (kstrtol(s, 0, &p->u.board.port)) { pr_err("bad number for IO port"); @@ -690,6 +691,7 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } + kfree(p->u.board.addrstr); p->u.board.addrstr = kstrdup(s, GFP_KERNEL); if (kstrtoul(s, 0, &p->u.board.addr)) { pr_err("bad number for memory address"); @@ -708,6 +710,7 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } + kfree(p->u.board.pcibusstr); p->u.board.pcibusstr = kstrdup(s, GFP_KERNEL); if (kstrtoul(s, 0, &p->u.board.pcibus)) { pr_err("bad number for pci bus"); @@ -719,6 +722,7 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } + kfree(p->u.board.pcislotstr); p->u.board.pcislotstr = kstrdup(s, GFP_KERNEL); if (kstrtoul(s, 0, &p->u.board.pcislot)) { pr_err("bad number for pci slot"); @@ -737,6 +741,7 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } + kfree(p->u.board.method); p->u.board.method = kstrdup(s, GFP_KERNEL); p->u.board.v_method = 1; break; @@ -751,6 +756,7 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } + kfree(p->u.board.status); p->u.board.status = kstrdup(s, GFP_KERNEL); break; @@ -800,13 +806,15 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } - + kfree(p->u.board.status); p->u.board.status = kstrdup(s, GFP_KERNEL); if (p->type == CNODE) { + kfree(p->u.conc.id); p->u.conc.id = kstrdup(s, GFP_KERNEL); p->u.conc.v_id = 1; } else if (p->type == MNODE) { + kfree(p->u.module.id); p->u.module.id = kstrdup(s, GFP_KERNEL); p->u.module.v_id = 1; } else { @@ -1003,6 +1011,7 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } + kfree(p->u.line.cable); p->u.line.cable = kstrdup(s, GFP_KERNEL); p->u.line.v_cable = 1; } @@ -1044,6 +1053,7 @@ static int dgap_parsefile(char **in) pr_err("unexpected end of file"); return -1; } + kfree(p->u.conc.connect); p->u.conc.connect = kstrdup(s, GFP_KERNEL); p->u.conc.v_connect = 1; } From 46d4503bc8c95010e83b03a48fa59344bf78daa3 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 25 Sep 2015 22:53:01 +0530 Subject: [PATCH 1041/2431] Staging: iio: cdc: Prefer using the BIT macro Replace bit shifting on 1 with the BIT(x) macro Signed-off-by: Shraddha Barke Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/staging/iio/cdc/ad7746.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 10fa372a4182..55cc8bb0b772 100644 --- a/drivers/staging/iio/cdc/ad7746.c +++ b/drivers/staging/iio/cdc/ad7746.c @@ -68,12 +68,12 @@ #define AD7746_VTSETUP_VTCHOP (1 << 0) /* Excitation Setup Register Bit Designations (AD7746_REG_EXC_SETUP) */ -#define AD7746_EXCSETUP_CLKCTRL (1 << 7) -#define AD7746_EXCSETUP_EXCON (1 << 6) -#define AD7746_EXCSETUP_EXCB (1 << 5) -#define AD7746_EXCSETUP_NEXCB (1 << 4) -#define AD7746_EXCSETUP_EXCA (1 << 3) -#define AD7746_EXCSETUP_NEXCA (1 << 2) +#define AD7746_EXCSETUP_CLKCTRL BIT(7) +#define AD7746_EXCSETUP_EXCON BIT(6) +#define AD7746_EXCSETUP_EXCB BIT(5) +#define AD7746_EXCSETUP_NEXCB BIT(4) +#define AD7746_EXCSETUP_EXCA BIT(3) +#define AD7746_EXCSETUP_NEXCA BIT(2) #define AD7746_EXCSETUP_EXCLVL(x) (((x) & 0x3) << 0) /* Config Register Bit Designations (AD7746_REG_CFG) */ From e38f898320b4a91d382036d1a34e8ae64cade1f6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 25 Sep 2015 22:53:02 +0530 Subject: [PATCH 1042/2431] Staging: iio: cdc: Remove unnecessary dev_info Remove dev_info as the information can be obtained by other means Signed-off-by: Shraddha Barke Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/staging/iio/cdc/ad7746.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 55cc8bb0b772..ca7d33f3b629 100644 --- a/drivers/staging/iio/cdc/ad7746.c +++ b/drivers/staging/iio/cdc/ad7746.c @@ -753,8 +753,6 @@ static int ad7746_probe(struct i2c_client *client, if (ret) return ret; - dev_info(&client->dev, "%s capacitive sensor registered\n", id->name); - return 0; } From 443f33e9581c3c98ef5e7ec2236b655a9afe1c1d Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Fri, 25 Sep 2015 11:54:01 +0200 Subject: [PATCH 1043/2431] iio: adc: ad799x: leave sysfs naming to the core This shouldn't change anything since the core calls the events folder "events" anyways. Signed-off-by: Martin Kepplinger Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/iio/adc/ad799x.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c index b99de00e57b8..01d71588d752 100644 --- a/drivers/iio/adc/ad799x.c +++ b/drivers/iio/adc/ad799x.c @@ -528,7 +528,6 @@ static struct attribute *ad799x_event_attributes[] = { static struct attribute_group ad799x_event_attrs_group = { .attrs = ad799x_event_attributes, - .name = "events", }; static const struct iio_info ad7991_info = { From d2654817ea6502660d805cd999efea625c10823f Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Fri, 25 Sep 2015 11:52:11 +0200 Subject: [PATCH 1044/2431] iio: adc: max1363: leave sysfs naming to the core This shouldn't actually change anything since the core calls the events sysfs folder "events" anyways. Signed-off-by: Martin Kepplinger Signed-off-by: Jonathan Cameron --- drivers/iio/adc/max1363.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c index 1b3b74be5c20..929508e5266c 100644 --- a/drivers/iio/adc/max1363.c +++ b/drivers/iio/adc/max1363.c @@ -1007,7 +1007,6 @@ static struct attribute *max1363_event_attributes[] = { static struct attribute_group max1363_event_attribute_group = { .attrs = max1363_event_attributes, - .name = "events", }; static int max1363_update_scan_mode(struct iio_dev *indio_dev, From 83234554ef3a9549d83d08c9aafbe041c75d3a89 Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Fri, 25 Sep 2015 11:45:10 +0200 Subject: [PATCH 1045/2431] iio: dac: ad5504: leave sysfs naming to the core This shouldn't actually change anything since the core calls the events sysfs folder "events" anyways. Signed-off-by: Martin Kepplinger Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- drivers/iio/dac/ad5504.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c index 581ec141de3d..e6e9756580af 100644 --- a/drivers/iio/dac/ad5504.c +++ b/drivers/iio/dac/ad5504.c @@ -214,7 +214,6 @@ static struct attribute *ad5504_ev_attributes[] = { static struct attribute_group ad5504_ev_attribute_group = { .attrs = ad5504_ev_attributes, - .name = "events", }; static irqreturn_t ad5504_event_handler(int irq, void *private) From bf23cee62d5953927758ff6287d300dc945afc84 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 22 Sep 2015 21:25:09 -0700 Subject: [PATCH 1046/2431] iio: chemical: vz89x hardware i2c workaround Chipset sometime updates in the middle of a reading causing it to reset the data pointer, and causing invalid reading of previous data. We can check for this invalid state by reading MSB of the resistance reading that is always zero, and by also confirming the VOC_short isn't zero. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- drivers/iio/chemical/vz89x.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/iio/chemical/vz89x.c b/drivers/iio/chemical/vz89x.c index b45420039ca2..11e59a5a5112 100644 --- a/drivers/iio/chemical/vz89x.c +++ b/drivers/iio/chemical/vz89x.c @@ -85,6 +85,21 @@ static const struct attribute_group vz89x_attrs_group = { .attrs = vz89x_attributes, }; +/* + * Chipset sometime updates in the middle of a reading causing it to reset the + * data pointer, and causing invalid reading of previous data. + * We can check for this by reading MSB of the resistance reading that is + * always zero, and by also confirming the VOC_short isn't zero. + */ + +static int vz89x_measurement_is_valid(struct vz89x_data *data) +{ + if (data->buffer[VZ89X_VOC_SHORT_IDX] == 0) + return 1; + + return !!(data->buffer[VZ89X_REG_MEASUREMENT_SIZE - 1] > 0); +} + static int vz89x_get_measurement(struct vz89x_data *data) { int ret; @@ -106,6 +121,10 @@ static int vz89x_get_measurement(struct vz89x_data *data) data->buffer[i] = ret; } + ret = vz89x_measurement_is_valid(data); + if (ret) + return -EAGAIN; + data->last_update = jiffies; return 0; @@ -113,9 +132,9 @@ static int vz89x_get_measurement(struct vz89x_data *data) static int vz89x_get_resistance_reading(struct vz89x_data *data) { - u8 *buf = &data->buffer[VZ89X_VOC_TVOC_IDX]; + u8 *buf = &data->buffer[VZ89X_VOC_RESISTANCE_IDX]; - return buf[0] | (buf[1] << 8) | (buf[2] << 16); + return buf[0] | (buf[1] << 8); } static int vz89x_read_raw(struct iio_dev *indio_dev, From 80cf2b5ca4e4c43222d7ac9ba606d21f3d3f4a2c Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 22 Sep 2015 23:22:03 -0700 Subject: [PATCH 1047/2431] iio: lidar: add missing MODULE_DEVICE_TABLE for dt The device tree compatible strings weren't properly registered for the pulsedlight-lidar-lite-v2 driver. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c index 185a7ab4f31b..961f9f990faf 100644 --- a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c +++ b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c @@ -271,6 +271,7 @@ static const struct of_device_id lidar_dt_ids[] = { { .compatible = "pulsedlight,lidar-lite-v2" }, { } }; +MODULE_DEVICE_TABLE(of, lidar_dt_ids); static struct i2c_driver lidar_driver = { .driver = { From b15aef8d5b8e9edd325c86ba5c78deca66c5ccb6 Mon Sep 17 00:00:00 2001 From: Peter Rosin Date: Wed, 23 Sep 2015 16:26:22 +0200 Subject: [PATCH 1048/2431] iio: resistance: Document that resistance can be output Signed-off-by: Peter Rosin Signed-off-by: Jonathan Cameron --- Documentation/ABI/testing/sysfs-bus-iio | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 8ce14c85156d..37868634945d 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio @@ -1474,6 +1474,8 @@ Description: What: /sys/bus/iio/devices/iio:deviceX/in_resistance_raw What: /sys/bus/iio/devices/iio:deviceX/in_resistanceX_raw +What: /sys/bus/iio/devices/iio:deviceX/out_resistance_raw +What: /sys/bus/iio/devices/iio:deviceX/out_resistanceX_raw KernelVersion: 4.3 Contact: linux-iio@vger.kernel.org Description: From c05dc2cce7422a5c05db470572b22fcd855f8cd7 Mon Sep 17 00:00:00 2001 From: Peter Rosin Date: Wed, 23 Sep 2015 16:26:23 +0200 Subject: [PATCH 1049/2431] iio: mcp4531: Driver for Microchip digital potentiometers Add support for Microchip digital potentiometers and rheostats MCP4531, MCP4532, MCP4551, MCP4552 MCP4631, MCP4632, MCP4651, MCP4652 DEVICE Wipers Steps Resistor Opts (kOhm) i2c address MCP4531 1 129 5, 10, 50, 100 010111x MCP4532 1 129 5, 10, 50, 100 01011xx MCP4551 1 257 5, 10, 50, 100 010111x MCP4552 1 257 5, 10, 50, 100 01011xx MCP4631 2 129 5, 10, 50, 100 0101xxx MCP4632 2 129 5, 10, 50, 100 01011xx MCP4651 2 257 5, 10, 50, 100 0101xxx MCP4652 2 257 5, 10, 50, 100 01011xx Datasheet: http://www.microchip.com/downloads/en/DeviceDoc/22096b.pdf Signed-off-by: Peter Rosin Signed-off-by: Jonathan Cameron --- MAINTAINERS | 6 + drivers/iio/Kconfig | 1 + drivers/iio/Makefile | 1 + drivers/iio/potentiometer/Kconfig | 20 +++ drivers/iio/potentiometer/Makefile | 6 + drivers/iio/potentiometer/mcp4531.c | 231 ++++++++++++++++++++++++++++ 6 files changed, 265 insertions(+) create mode 100644 drivers/iio/potentiometer/Kconfig create mode 100644 drivers/iio/potentiometer/Makefile create mode 100644 drivers/iio/potentiometer/mcp4531.c diff --git a/MAINTAINERS b/MAINTAINERS index 6d7af82cb09c..cb28faa19256 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6682,6 +6682,12 @@ W: http://linuxtv.org S: Maintained F: drivers/media/radio/radio-maxiradio* +MCP4531 MICROCHIP DIGITAL POTENTIOMETER DRIVER +M: Peter Rosin +L: linux-iio@vger.kernel.org +S: Maintained +F: drivers/iio/potentiometer/mcp4531.c + MEDIA DRIVERS FOR RENESAS - VSP1 M: Laurent Pinchart L: linux-media@vger.kernel.org diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index 119c94df2b9e..66792e707d74 100644 --- a/drivers/iio/Kconfig +++ b/drivers/iio/Kconfig @@ -60,6 +60,7 @@ source "drivers/iio/orientation/Kconfig" if IIO_TRIGGER source "drivers/iio/trigger/Kconfig" endif #IIO_TRIGGER +source "drivers/iio/potentiometer/Kconfig" source "drivers/iio/pressure/Kconfig" source "drivers/iio/proximity/Kconfig" source "drivers/iio/temperature/Kconfig" diff --git a/drivers/iio/Makefile b/drivers/iio/Makefile index e2100554e3b4..aeca7269fe44 100644 --- a/drivers/iio/Makefile +++ b/drivers/iio/Makefile @@ -23,6 +23,7 @@ obj-y += imu/ obj-y += light/ obj-y += magnetometer/ obj-y += orientation/ +obj-y += potentiometer/ obj-y += pressure/ obj-y += proximity/ obj-y += temperature/ diff --git a/drivers/iio/potentiometer/Kconfig b/drivers/iio/potentiometer/Kconfig new file mode 100644 index 000000000000..fd75db73e582 --- /dev/null +++ b/drivers/iio/potentiometer/Kconfig @@ -0,0 +1,20 @@ +# +# Potentiometer drivers +# +# When adding new entries keep the list in alphabetical order + +menu "Digital potentiometers" + +config MCP4531 + tristate "Microchip MCP45xx/MCP46xx Digital Potentiometer driver" + depends on I2C + help + Say yes here to build support for the Microchip + MCP4531, MCP4532, MCP4551, MCP4552, + MCP4631, MCP4632, MCP4651, MCP4652 + digital potentiomenter chips. + + To compile this driver as a module, choose M here: the + module will be called mcp4531. + +endmenu diff --git a/drivers/iio/potentiometer/Makefile b/drivers/iio/potentiometer/Makefile new file mode 100644 index 000000000000..8afe49227012 --- /dev/null +++ b/drivers/iio/potentiometer/Makefile @@ -0,0 +1,6 @@ +# +# Makefile for industrial I/O potentiometer drivers +# + +# When adding new entries keep the list in alphabetical order +obj-$(CONFIG_MCP4531) += mcp4531.o diff --git a/drivers/iio/potentiometer/mcp4531.c b/drivers/iio/potentiometer/mcp4531.c new file mode 100644 index 000000000000..a3f66874ee2e --- /dev/null +++ b/drivers/iio/potentiometer/mcp4531.c @@ -0,0 +1,231 @@ +/* + * Industrial I/O driver for Microchip digital potentiometers + * Copyright (c) 2015 Axentia Technologies AB + * Author: Peter Rosin + * + * Datasheet: http://www.microchip.com/downloads/en/DeviceDoc/22096b.pdf + * + * DEVID #Wipers #Positions Resistor Opts (kOhm) i2c address + * mcp4531 1 129 5, 10, 50, 100 010111x + * mcp4532 1 129 5, 10, 50, 100 01011xx + * mcp4551 1 257 5, 10, 50, 100 010111x + * mcp4552 1 257 5, 10, 50, 100 01011xx + * mcp4631 2 129 5, 10, 50, 100 0101xxx + * mcp4632 2 129 5, 10, 50, 100 01011xx + * mcp4651 2 257 5, 10, 50, 100 0101xxx + * mcp4652 2 257 5, 10, 50, 100 01011xx + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include +#include +#include + +#include + +struct mcp4531_cfg { + int wipers; + int max_pos; + int kohms; +}; + +enum mcp4531_type { + MCP453x_502, + MCP453x_103, + MCP453x_503, + MCP453x_104, + MCP455x_502, + MCP455x_103, + MCP455x_503, + MCP455x_104, + MCP463x_502, + MCP463x_103, + MCP463x_503, + MCP463x_104, + MCP465x_502, + MCP465x_103, + MCP465x_503, + MCP465x_104, +}; + +static const struct mcp4531_cfg mcp4531_cfg[] = { + [MCP453x_502] = { .wipers = 1, .max_pos = 128, .kohms = 5, }, + [MCP453x_103] = { .wipers = 1, .max_pos = 128, .kohms = 10, }, + [MCP453x_503] = { .wipers = 1, .max_pos = 128, .kohms = 50, }, + [MCP453x_104] = { .wipers = 1, .max_pos = 128, .kohms = 100, }, + [MCP455x_502] = { .wipers = 1, .max_pos = 256, .kohms = 5, }, + [MCP455x_103] = { .wipers = 1, .max_pos = 256, .kohms = 10, }, + [MCP455x_503] = { .wipers = 1, .max_pos = 256, .kohms = 50, }, + [MCP455x_104] = { .wipers = 1, .max_pos = 256, .kohms = 100, }, + [MCP463x_502] = { .wipers = 2, .max_pos = 128, .kohms = 5, }, + [MCP463x_103] = { .wipers = 2, .max_pos = 128, .kohms = 10, }, + [MCP463x_503] = { .wipers = 2, .max_pos = 128, .kohms = 50, }, + [MCP463x_104] = { .wipers = 2, .max_pos = 128, .kohms = 100, }, + [MCP465x_502] = { .wipers = 2, .max_pos = 256, .kohms = 5, }, + [MCP465x_103] = { .wipers = 2, .max_pos = 256, .kohms = 10, }, + [MCP465x_503] = { .wipers = 2, .max_pos = 256, .kohms = 50, }, + [MCP465x_104] = { .wipers = 2, .max_pos = 256, .kohms = 100, }, +}; + +#define MCP4531_WRITE (0 << 2) +#define MCP4531_INCR (1 << 2) +#define MCP4531_DECR (2 << 2) +#define MCP4531_READ (3 << 2) + +#define MCP4531_WIPER_SHIFT (4) + +struct mcp4531_data { + struct i2c_client *client; + unsigned long devid; +}; + +#define MCP4531_CHANNEL(ch) { \ + .type = IIO_RESISTANCE, \ + .indexed = 1, \ + .output = 1, \ + .channel = (ch), \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ +} + +static const struct iio_chan_spec mcp4531_channels[] = { + MCP4531_CHANNEL(0), + MCP4531_CHANNEL(1), +}; + +static int mcp4531_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) +{ + struct mcp4531_data *data = iio_priv(indio_dev); + int address = chan->channel << MCP4531_WIPER_SHIFT; + s32 ret; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + ret = i2c_smbus_read_word_swapped(data->client, + MCP4531_READ | address); + if (ret < 0) + return ret; + *val = ret; + return IIO_VAL_INT; + case IIO_CHAN_INFO_SCALE: + *val = 1000 * mcp4531_cfg[data->devid].kohms; + *val2 = mcp4531_cfg[data->devid].max_pos; + return IIO_VAL_FRACTIONAL; + } + + return -EINVAL; +} + +static int mcp4531_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct mcp4531_data *data = iio_priv(indio_dev); + int address = chan->channel << MCP4531_WIPER_SHIFT; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + if (val > mcp4531_cfg[data->devid].max_pos || val < 0) + return -EINVAL; + break; + default: + return -EINVAL; + } + + return i2c_smbus_write_byte_data(data->client, + MCP4531_WRITE | address | (val >> 8), + val & 0xff); +} + +static const struct iio_info mcp4531_info = { + .read_raw = mcp4531_read_raw, + .write_raw = mcp4531_write_raw, + .driver_module = THIS_MODULE, +}; + +static int mcp4531_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct device *dev = &client->dev; + unsigned long devid = id->driver_data; + struct mcp4531_data *data; + struct iio_dev *indio_dev; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WORD_DATA)) { + dev_err(dev, "SMBUS Word Data not supported\n"); + return -EIO; + } + + indio_dev = devm_iio_device_alloc(dev, sizeof(*data)); + if (!indio_dev) + return -ENOMEM; + data = iio_priv(indio_dev); + i2c_set_clientdata(client, indio_dev); + data->client = client; + data->devid = devid; + + indio_dev->dev.parent = dev; + indio_dev->info = &mcp4531_info; + indio_dev->channels = mcp4531_channels; + indio_dev->num_channels = mcp4531_cfg[devid].wipers; + indio_dev->name = client->name; + + return devm_iio_device_register(dev, indio_dev); +} + +static const struct i2c_device_id mcp4531_id[] = { + { "mcp4531-502", MCP453x_502 }, + { "mcp4531-103", MCP453x_103 }, + { "mcp4531-503", MCP453x_503 }, + { "mcp4531-104", MCP453x_104 }, + { "mcp4532-502", MCP453x_502 }, + { "mcp4532-103", MCP453x_103 }, + { "mcp4532-503", MCP453x_503 }, + { "mcp4532-104", MCP453x_104 }, + { "mcp4551-502", MCP455x_502 }, + { "mcp4551-103", MCP455x_103 }, + { "mcp4551-503", MCP455x_503 }, + { "mcp4551-104", MCP455x_104 }, + { "mcp4552-502", MCP455x_502 }, + { "mcp4552-103", MCP455x_103 }, + { "mcp4552-503", MCP455x_503 }, + { "mcp4552-104", MCP455x_104 }, + { "mcp4631-502", MCP463x_502 }, + { "mcp4631-103", MCP463x_103 }, + { "mcp4631-503", MCP463x_503 }, + { "mcp4631-104", MCP463x_104 }, + { "mcp4632-502", MCP463x_502 }, + { "mcp4632-103", MCP463x_103 }, + { "mcp4632-503", MCP463x_503 }, + { "mcp4632-104", MCP463x_104 }, + { "mcp4651-502", MCP465x_502 }, + { "mcp4651-103", MCP465x_103 }, + { "mcp4651-503", MCP465x_503 }, + { "mcp4651-104", MCP465x_104 }, + { "mcp4652-502", MCP465x_502 }, + { "mcp4652-103", MCP465x_103 }, + { "mcp4652-503", MCP465x_503 }, + { "mcp4652-104", MCP465x_104 }, + {} +}; +MODULE_DEVICE_TABLE(i2c, mcp4531_id); + +static struct i2c_driver mcp4531_driver = { + .driver = { + .name = "mcp4531", + }, + .probe = mcp4531_probe, + .id_table = mcp4531_id, +}; + +module_i2c_driver(mcp4531_driver); + +MODULE_AUTHOR("Peter Rosin "); +MODULE_DESCRIPTION("MCP4531 digital potentiometer"); +MODULE_LICENSE("GPL"); From db459e48f5c6273f104113a043a698605dde73f8 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:11 -0400 Subject: [PATCH 1050/2431] staging/lustre/llite: Remove unused ll_get_default/max_cookiesize() This was used for a function that's no longer important, but is no longer used anywhere. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/llite/llite_internal.h | 2 -- .../staging/lustre/lustre/llite/llite_lib.c | 26 ------------------- 2 files changed, 28 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index dcf7c6b7f056..59fdbedb2f90 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -789,8 +789,6 @@ int ll_prep_inode(struct inode **inode, struct ptlrpc_request *req, int ll_obd_statfs(struct inode *inode, void *arg); int ll_get_max_mdsize(struct ll_sb_info *sbi, int *max_mdsize); int ll_get_default_mdsize(struct ll_sb_info *sbi, int *default_mdsize); -int ll_get_max_cookiesize(struct ll_sb_info *sbi, int *max_cookiesize); -int ll_get_default_cookiesize(struct ll_sb_info *sbi, int *default_cookiesize); int ll_process_config(struct lustre_cfg *lcfg); struct md_op_data *ll_prep_md_op_data(struct md_op_data *op_data, struct inode *i1, struct inode *i2, diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index b6234b294d0d..e1d8fb08ffca 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -604,32 +604,6 @@ int ll_get_default_mdsize(struct ll_sb_info *sbi, int *lmmsize) return rc; } -int ll_get_max_cookiesize(struct ll_sb_info *sbi, int *lmmsize) -{ - int size, rc; - - size = sizeof(int); - rc = obd_get_info(NULL, sbi->ll_md_exp, sizeof(KEY_MAX_COOKIESIZE), - KEY_MAX_COOKIESIZE, &size, lmmsize, NULL); - if (rc) - CERROR("Get max cookiesize error rc %d\n", rc); - - return rc; -} - -int ll_get_default_cookiesize(struct ll_sb_info *sbi, int *lmmsize) -{ - int size, rc; - - size = sizeof(int); - rc = obd_get_info(NULL, sbi->ll_md_exp, sizeof(KEY_DEFAULT_COOKIESIZE), - KEY_DEFAULT_COOKIESIZE, &size, lmmsize, NULL); - if (rc) - CERROR("Get default cookiesize error rc %d\n", rc); - - return rc; -} - static void client_common_put_super(struct super_block *sb) { struct ll_sb_info *sbi = ll_s2sbi(sb); From b27f9d185f8ed05229b867a30de1d4254039deb8 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:12 -0400 Subject: [PATCH 1051/2431] staging/lustre: KEY_DEFAULT/MAX_COOKIESIZE key is unused, remove them Also remove the lmv and mdc infrastructure to query these keys. In fact this whole "unlink cookies" thing becomes irrelevant with newer servers, but since we still retain 2.[123] servers commpatibility, we cannot completely remove all traces of it yet. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd.h | 2 -- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 2 -- .../staging/lustre/lustre/mdc/mdc_request.c | 20 ------------------- 3 files changed, 24 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 314f5c781052..5de9776788e4 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -840,8 +840,6 @@ enum obd_cleanup_stage { #define KEY_LOV_IDX "lov_idx" #define KEY_MAX_EASIZE "max_easize" #define KEY_DEFAULT_EASIZE "default_easize" -#define KEY_MAX_COOKIESIZE "max_cookiesize" -#define KEY_DEFAULT_COOKIESIZE "default_cookiesize" #define KEY_MDS_CONN "mds_conn" #define KEY_MGSSEC "mgssec" #define KEY_NEXT_ID "next_id" diff --git a/drivers/staging/lustre/lustre/lmv/lmv_obd.c b/drivers/staging/lustre/lustre/lmv/lmv_obd.c index 8f0ffa458322..7e6a06075aab 100644 --- a/drivers/staging/lustre/lustre/lmv/lmv_obd.c +++ b/drivers/staging/lustre/lustre/lmv/lmv_obd.c @@ -2322,8 +2322,6 @@ static int lmv_get_info(const struct lu_env *env, struct obd_export *exp, return -EINVAL; } else if (KEY_IS(KEY_MAX_EASIZE) || KEY_IS(KEY_DEFAULT_EASIZE) || - KEY_IS(KEY_MAX_COOKIESIZE) || - KEY_IS(KEY_DEFAULT_COOKIESIZE) || KEY_IS(KEY_CONN_DATA)) { rc = lmv_check_connect(obd); if (rc) diff --git a/drivers/staging/lustre/lustre/mdc/mdc_request.c b/drivers/staging/lustre/lustre/mdc/mdc_request.c index 87261766a018..dc234a775942 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_request.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_request.c @@ -2124,26 +2124,6 @@ static int mdc_get_info(const struct lu_env *env, struct obd_export *exp, default_easize = val; *default_easize = exp->exp_obd->u.cli.cl_default_mds_easize; return 0; - } else if (KEY_IS(KEY_MAX_COOKIESIZE)) { - int mdsize, *max_cookiesize; - - if (*vallen != sizeof(int)) - return -EINVAL; - mdsize = *(int *)val; - if (mdsize > exp->exp_obd->u.cli.cl_max_mds_cookiesize) - exp->exp_obd->u.cli.cl_max_mds_cookiesize = mdsize; - max_cookiesize = val; - *max_cookiesize = exp->exp_obd->u.cli.cl_max_mds_cookiesize; - return 0; - } else if (KEY_IS(KEY_DEFAULT_COOKIESIZE)) { - int *default_cookiesize; - - if (*vallen != sizeof(int)) - return -EINVAL; - default_cookiesize = val; - *default_cookiesize = - exp->exp_obd->u.cli.cl_default_mds_cookiesize; - return 0; } else if (KEY_IS(KEY_CONN_DATA)) { struct obd_import *imp = class_exp2cliimp(exp); struct obd_connect_data *data = val; From 17556af2b4268f3504cefeb907d27a5c40dff230 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:13 -0400 Subject: [PATCH 1052/2431] staging/lustre: Remove ununused ll_ra_read_get() Also ll_ra_read_get_locked that was only used by it. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/llite/llite_internal.h | 1 - drivers/staging/lustre/lustre/llite/rw.c | 24 ------------------- 2 files changed, 25 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 59fdbedb2f90..d6bdfedbe618 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -657,7 +657,6 @@ static inline int ll_need_32bit_api(struct ll_sb_info *sbi) void ll_ra_read_in(struct file *f, struct ll_ra_read *rar); void ll_ra_read_ex(struct file *f, struct ll_ra_read *rar); -struct ll_ra_read *ll_ra_read_get(struct file *f); /* llite/lproc_llite.c */ int ldebugfs_register_mountpoint(struct dentry *parent, diff --git a/drivers/staging/lustre/lustre/llite/rw.c b/drivers/staging/lustre/lustre/llite/rw.c index 8c1bfd2f6d4f..71be1947dc37 100644 --- a/drivers/staging/lustre/lustre/llite/rw.c +++ b/drivers/staging/lustre/lustre/llite/rw.c @@ -417,30 +417,6 @@ void ll_ra_read_ex(struct file *f, struct ll_ra_read *rar) spin_unlock(&ras->ras_lock); } -static struct ll_ra_read *ll_ra_read_get_locked(struct ll_readahead_state *ras) -{ - struct ll_ra_read *scan; - - list_for_each_entry(scan, &ras->ras_read_beads, lrr_linkage) { - if (scan->lrr_reader == current) - return scan; - } - return NULL; -} - -struct ll_ra_read *ll_ra_read_get(struct file *f) -{ - struct ll_readahead_state *ras; - struct ll_ra_read *bead; - - ras = ll_ras_get(f); - - spin_lock(&ras->ras_lock); - bead = ll_ra_read_get_locked(ras); - spin_unlock(&ras->ras_lock); - return bead; -} - static int cl_read_ahead_page(const struct lu_env *env, struct cl_io *io, struct cl_page_list *queue, struct cl_page *page, struct page *vmpage) From 4d00df54e0c93bc65127bdef09bf4e56ca3ab13c Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:14 -0400 Subject: [PATCH 1053/2431] staging/lustre/llite: Remove unused ll_rmdir_entry() The ioctl for this function was removed, but the function was forgotten, so kill it now. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/llite/llite_internal.h | 1 - drivers/staging/lustre/lustre/llite/namei.c | 28 ------------------- 2 files changed, 29 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index d6bdfedbe618..4c20b1e1a0ef 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -687,7 +687,6 @@ struct inode *ll_iget(struct super_block *sb, ino_t hash, int ll_md_blocking_ast(struct ldlm_lock *, struct ldlm_lock_desc *, void *data, int flag); struct dentry *ll_splice_alias(struct inode *inode, struct dentry *de); -int ll_rmdir_entry(struct inode *dir, char *name, int namelen); /* llite/rw.c */ int ll_prepare_write(struct file *, struct page *, unsigned from, unsigned to); diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index 2e663ea25258..a22e25285621 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@ -870,34 +870,6 @@ static inline void ll_get_child_fid(struct dentry *child, struct lu_fid *fid) *fid = *ll_inode2fid(d_inode(child)); } -/** - * Remove dir entry - **/ -int ll_rmdir_entry(struct inode *dir, char *name, int namelen) -{ - struct ptlrpc_request *request = NULL; - struct md_op_data *op_data; - int rc; - - CDEBUG(D_VFSTRACE, "VFS Op:name=%.*s,dir=%lu/%u(%p)\n", - namelen, name, dir->i_ino, dir->i_generation, dir); - - op_data = ll_prep_md_op_data(NULL, dir, NULL, name, strlen(name), - S_IFDIR, LUSTRE_OPC_ANY, NULL); - if (IS_ERR(op_data)) - return PTR_ERR(op_data); - op_data->op_cli_flags |= CLI_RM_ENTRY; - rc = md_unlink(ll_i2sbi(dir)->ll_md_exp, op_data, &request); - ll_finish_md_op_data(op_data); - if (rc == 0) { - ll_update_times(request, dir); - ll_stats_ops_tally(ll_i2sbi(dir), LPROC_LL_RMDIR, 1); - } - - ptlrpc_req_finished(request); - return rc; -} - int ll_objects_destroy(struct ptlrpc_request *request, struct inode *dir) { struct mdt_body *body; From 88bc797cc3c531ea86e84b7724371ebbde213fa8 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:15 -0400 Subject: [PATCH 1054/2431] staging/lustre/lov: Remove unused lov_dump_lmm/pool() These generic switch functions appear to be unused as all the individual ones are called directly. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/lov/lov_internal.h | 2 -- drivers/staging/lustre/lustre/lov/lov_pack.c | 20 ----------------- drivers/staging/lustre/lustre/lov/lov_pool.c | 22 ------------------- 3 files changed, 44 deletions(-) diff --git a/drivers/staging/lustre/lustre/lov/lov_internal.h b/drivers/staging/lustre/lustre/lov/lov_internal.h index dde9656d4dd6..0de39cc0c43e 100644 --- a/drivers/staging/lustre/lustre/lov/lov_internal.h +++ b/drivers/staging/lustre/lustre/lov/lov_internal.h @@ -220,7 +220,6 @@ int lov_free_memmd(struct lov_stripe_md **lsmp); void lov_dump_lmm_v1(int level, struct lov_mds_md_v1 *lmm); void lov_dump_lmm_v3(int level, struct lov_mds_md_v3 *lmm); void lov_dump_lmm_common(int level, void *lmmp); -void lov_dump_lmm(int level, void *lmm); /* lov_ea.c */ struct lov_stripe_md *lsm_alloc_plain(__u16 stripe_count, int *size); @@ -248,7 +247,6 @@ int lov_pool_new(struct obd_device *obd, char *poolname); int lov_pool_del(struct obd_device *obd, char *poolname); int lov_pool_add(struct obd_device *obd, char *poolname, char *ostname); int lov_pool_remove(struct obd_device *obd, char *poolname, char *ostname); -void lov_dump_pool(int level, struct pool_desc *pool); struct pool_desc *lov_find_pool(struct lov_obd *lov, char *poolname); int lov_check_index_in_pool(__u32 idx, struct pool_desc *pool); void lov_pool_putref(struct pool_desc *pool); diff --git a/drivers/staging/lustre/lustre/lov/lov_pack.c b/drivers/staging/lustre/lustre/lov/lov_pack.c index 6b1c135c9ab0..05651ac6074a 100644 --- a/drivers/staging/lustre/lustre/lov/lov_pack.c +++ b/drivers/staging/lustre/lustre/lov/lov_pack.c @@ -100,26 +100,6 @@ void lov_dump_lmm_v3(int level, struct lov_mds_md_v3 *lmm) le16_to_cpu(lmm->lmm_stripe_count)); } -void lov_dump_lmm(int level, void *lmm) -{ - int magic; - - magic = le32_to_cpu(((struct lov_mds_md *)lmm)->lmm_magic); - switch (magic) { - case LOV_MAGIC_V1: - lov_dump_lmm_v1(level, (struct lov_mds_md_v1 *)lmm); - break; - case LOV_MAGIC_V3: - lov_dump_lmm_v3(level, (struct lov_mds_md_v3 *)lmm); - break; - default: - CDEBUG(level, "unrecognized lmm_magic %x, assuming %x\n", - magic, LOV_MAGIC_V1); - lov_dump_lmm_common(level, lmm); - break; - } -} - /* Pack LOV object metadata for disk storage. It is packed in LE byte * order and is opaque to the networking layer. * diff --git a/drivers/staging/lustre/lustre/lov/lov_pool.c b/drivers/staging/lustre/lustre/lov/lov_pool.c index c59b1402616e..f9963481c91b 100644 --- a/drivers/staging/lustre/lustre/lov/lov_pool.c +++ b/drivers/staging/lustre/lustre/lov/lov_pool.c @@ -294,28 +294,6 @@ static struct file_operations pool_proc_operations = { .release = seq_release, }; -void lov_dump_pool(int level, struct pool_desc *pool) -{ - int i; - - lov_pool_getref(pool); - - CDEBUG(level, "pool "LOV_POOLNAMEF" has %d members\n", - pool->pool_name, pool->pool_obds.op_count); - down_read(&pool_tgt_rw_sem(pool)); - - for (i = 0; i < pool_tgt_count(pool) ; i++) { - if (!pool_tgt(pool, i) || !(pool_tgt(pool, i))->ltd_exp) - continue; - CDEBUG(level, "pool "LOV_POOLNAMEF"[%d] = %s\n", - pool->pool_name, i, - obd_uuid2str(&((pool_tgt(pool, i))->ltd_uuid))); - } - - up_read(&pool_tgt_rw_sem(pool)); - lov_pool_putref(pool); -} - #define LOV_POOL_INIT_COUNT 2 int lov_ost_pool_init(struct ost_pool *op, unsigned int count) { From 3ddca06fb384b1ff7cf2badf80d085487ce40868 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:16 -0400 Subject: [PATCH 1055/2431] staging/lustre/lov: Remove unused lov_lsm_decref() Also lov_lsm_addref is only used in the file it is defined, so make it static Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lov/lov_cl_internal.h | 3 --- drivers/staging/lustre/lustre/lov/lov_object.c | 13 +------------ 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/drivers/staging/lustre/lustre/lov/lov_cl_internal.h b/drivers/staging/lustre/lustre/lov/lov_cl_internal.h index 314ce8525aed..9a9156ec1777 100644 --- a/drivers/staging/lustre/lustre/lov/lov_cl_internal.h +++ b/drivers/staging/lustre/lustre/lov/lov_cl_internal.h @@ -637,9 +637,6 @@ struct lov_io_sub *lov_page_subio(const struct lu_env *env, struct lov_io *lio, const struct cl_page_slice *slice); -void lov_lsm_decref(struct lov_object *lov, struct lov_stripe_md *lsm); -struct lov_stripe_md *lov_lsm_addref(struct lov_object *lov); - #define lov_foreach_target(lov, var) \ for (var = 0; var < lov_targets_nr(lov); ++var) diff --git a/drivers/staging/lustre/lustre/lov/lov_object.c b/drivers/staging/lustre/lustre/lov/lov_object.c index 4d7cd924a27e..e67df6416d59 100644 --- a/drivers/staging/lustre/lustre/lov/lov_object.c +++ b/drivers/staging/lustre/lustre/lov/lov_object.c @@ -909,7 +909,7 @@ struct lu_object *lov_object_alloc(const struct lu_env *env, return obj; } -struct lov_stripe_md *lov_lsm_addref(struct lov_object *lov) +static struct lov_stripe_md *lov_lsm_addref(struct lov_object *lov) { struct lov_stripe_md *lsm = NULL; @@ -924,17 +924,6 @@ struct lov_stripe_md *lov_lsm_addref(struct lov_object *lov) return lsm; } -void lov_lsm_decref(struct lov_object *lov, struct lov_stripe_md *lsm) -{ - if (lsm == NULL) - return; - - CDEBUG(D_INODE, "lsm %p decref %d by %p.\n", - lsm, atomic_read(&lsm->lsm_refc), current); - - lov_free_memmd(&lsm); -} - struct lov_stripe_md *lov_lsm_get(struct cl_object *clobj) { struct lu_object *luobj; From 3dd5a6ba55d62a9c9c04194bbf8e285ef9e0f5ad Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:17 -0400 Subject: [PATCH 1056/2431] staging/lustre/ldlm: Remove unused interval tree bits On client side interval-tree code operations are pretty basic, so get rid of the code that is only used on the server to figure out how much to extend the locks and such. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/interval_tree.h | 36 --- .../lustre/lustre/ldlm/interval_tree.c | 271 ------------------ 2 files changed, 307 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/interval_tree.h b/drivers/staging/lustre/lustre/include/interval_tree.h index bf9027d5f773..f6df3f33e770 100644 --- a/drivers/staging/lustre/lustre/include/interval_tree.h +++ b/drivers/staging/lustre/lustre/include/interval_tree.h @@ -67,11 +67,6 @@ static inline int interval_is_intree(struct interval_node *node) return node->in_intree == 1; } -static inline __u64 interval_low(struct interval_node *node) -{ - return node->in_extent.start; -} - static inline __u64 interval_high(struct interval_node *node) { return node->in_extent.end; @@ -86,39 +81,8 @@ static inline void interval_set(struct interval_node *node, node->in_max_high = end; } -/* Rules to write an interval callback. - * - the callback returns INTERVAL_ITER_STOP when it thinks the iteration - * should be stopped. It will then cause the iteration function to return - * immediately with return value INTERVAL_ITER_STOP. - * - callbacks for interval_iterate and interval_iterate_reverse: Every - * nodes in the tree will be set to @node before the callback being called - * - callback for interval_search: Only overlapped node will be set to @node - * before the callback being called. - */ -typedef enum interval_iter (*interval_callback_t)(struct interval_node *node, - void *args); - struct interval_node *interval_insert(struct interval_node *node, struct interval_node **root); void interval_erase(struct interval_node *node, struct interval_node **root); -/* Search the extents in the tree and call @func for each overlapped - * extents. */ -enum interval_iter interval_search(struct interval_node *root, - struct interval_node_extent *ex, - interval_callback_t func, void *data); - -/* Iterate every node in the tree - by reverse order or regular order. */ -enum interval_iter interval_iterate(struct interval_node *root, - interval_callback_t func, void *data); -enum interval_iter interval_iterate_reverse(struct interval_node *root, - interval_callback_t func, void *data); - -void interval_expand(struct interval_node *root, - struct interval_node_extent *ext, - struct interval_node_extent *limiter); -int interval_is_overlapped(struct interval_node *root, - struct interval_node_extent *ex); -struct interval_node *interval_find(struct interval_node *root, - struct interval_node_extent *ex); #endif diff --git a/drivers/staging/lustre/lustre/ldlm/interval_tree.c b/drivers/staging/lustre/lustre/ldlm/interval_tree.c index eab2bd60241b..3d2d85ba8a26 100644 --- a/drivers/staging/lustre/lustre/ldlm/interval_tree.c +++ b/drivers/staging/lustre/lustre/ldlm/interval_tree.c @@ -96,12 +96,6 @@ static inline int extent_equal(struct interval_node_extent *e1, return (e1->start == e2->start) && (e1->end == e2->end); } -static inline int extent_overlapped(struct interval_node_extent *e1, - struct interval_node_extent *e2) -{ - return (e1->start <= e2->end) && (e2->start <= e1->end); -} - static inline int node_compare(struct interval_node *n1, struct interval_node *n2) { @@ -119,19 +113,6 @@ static inline __u64 max_u64(__u64 x, __u64 y) return x > y ? x : y; } -static inline __u64 min_u64(__u64 x, __u64 y) -{ - return x < y ? x : y; -} - -#define interval_for_each(node, root) \ -for (node = interval_first(root); node != NULL; \ - node = interval_next(node)) - -#define interval_for_each_reverse(node, root) \ -for (node = interval_last(root); node != NULL; \ - node = interval_prev(node)) - static struct interval_node *interval_first(struct interval_node *node) { if (!node) @@ -141,15 +122,6 @@ static struct interval_node *interval_first(struct interval_node *node) return node; } -static struct interval_node *interval_last(struct interval_node *node) -{ - if (!node) - return NULL; - while (node->in_right) - node = node->in_right; - return node; -} - static struct interval_node *interval_next(struct interval_node *node) { if (!node) @@ -161,76 +133,6 @@ static struct interval_node *interval_next(struct interval_node *node) return node->in_parent; } -static struct interval_node *interval_prev(struct interval_node *node) -{ - if (!node) - return NULL; - - if (node->in_left) - return interval_last(node->in_left); - - while (node->in_parent && node_is_left_child(node)) - node = node->in_parent; - - return node->in_parent; -} - -enum interval_iter interval_iterate(struct interval_node *root, - interval_callback_t func, - void *data) -{ - struct interval_node *node; - enum interval_iter rc = INTERVAL_ITER_CONT; - - interval_for_each(node, root) { - rc = func(node, data); - if (rc == INTERVAL_ITER_STOP) - break; - } - - return rc; -} -EXPORT_SYMBOL(interval_iterate); - -enum interval_iter interval_iterate_reverse(struct interval_node *root, - interval_callback_t func, - void *data) -{ - struct interval_node *node; - enum interval_iter rc = INTERVAL_ITER_CONT; - - interval_for_each_reverse(node, root) { - rc = func(node, data); - if (rc == INTERVAL_ITER_STOP) - break; - } - - return rc; -} -EXPORT_SYMBOL(interval_iterate_reverse); - -/* try to find a node with same interval in the tree, - * if found, return the pointer to the node, otherwise return NULL*/ -struct interval_node *interval_find(struct interval_node *root, - struct interval_node_extent *ex) -{ - struct interval_node *walk = root; - int rc; - - while (walk) { - rc = extent_compare(ex, &walk->in_extent); - if (rc == 0) - break; - else if (rc < 0) - walk = walk->in_left; - else - walk = walk->in_right; - } - - return walk; -} -EXPORT_SYMBOL(interval_find); - static void __rotate_change_maxhigh(struct interval_node *node, struct interval_node *rotate) { @@ -576,176 +478,3 @@ color: interval_erase_color(child, parent, root); } EXPORT_SYMBOL(interval_erase); - -static inline int interval_may_overlap(struct interval_node *node, - struct interval_node_extent *ext) -{ - return (ext->start <= node->in_max_high && - ext->end >= interval_low(node)); -} - -/* - * This function finds all intervals that overlap interval ext, - * and calls func to handle resulted intervals one by one. - * in lustre, this function will find all conflicting locks in - * the granted queue and add these locks to the ast work list. - * - * { - * if (node == NULL) - * return 0; - * if (ext->end < interval_low(node)) { - * interval_search(node->in_left, ext, func, data); - * } else if (interval_may_overlap(node, ext)) { - * if (extent_overlapped(ext, &node->in_extent)) - * func(node, data); - * interval_search(node->in_left, ext, func, data); - * interval_search(node->in_right, ext, func, data); - * } - * return 0; - * } - * - */ -enum interval_iter interval_search(struct interval_node *node, - struct interval_node_extent *ext, - interval_callback_t func, - void *data) -{ - struct interval_node *parent; - enum interval_iter rc = INTERVAL_ITER_CONT; - - LASSERT(ext != NULL); - LASSERT(func != NULL); - - while (node) { - if (ext->end < interval_low(node)) { - if (node->in_left) { - node = node->in_left; - continue; - } - } else if (interval_may_overlap(node, ext)) { - if (extent_overlapped(ext, &node->in_extent)) { - rc = func(node, data); - if (rc == INTERVAL_ITER_STOP) - break; - } - - if (node->in_left) { - node = node->in_left; - continue; - } - if (node->in_right) { - node = node->in_right; - continue; - } - } - - parent = node->in_parent; - while (parent) { - if (node_is_left_child(node) && - parent->in_right) { - /* If we ever got the left, it means that the - * parent met ext->endin_right; - break; - } - node = parent; - parent = parent->in_parent; - } - if (parent == NULL || !interval_may_overlap(parent, ext)) - break; - } - - return rc; -} -EXPORT_SYMBOL(interval_search); - -static enum interval_iter interval_overlap_cb(struct interval_node *n, - void *args) -{ - *(int *)args = 1; - return INTERVAL_ITER_STOP; -} - -int interval_is_overlapped(struct interval_node *root, - struct interval_node_extent *ext) -{ - int has = 0; - (void)interval_search(root, ext, interval_overlap_cb, &has); - return has; -} -EXPORT_SYMBOL(interval_is_overlapped); - -/* Don't expand to low. Expanding downwards is expensive, and meaningless to - * some extents, because programs seldom do IO backward. - * - * The recursive algorithm of expanding low: - * expand_low { - * struct interval_node *tmp; - * static __u64 res = 0; - * - * if (root == NULL) - * return res; - * if (root->in_max_high < low) { - * res = max_u64(root->in_max_high + 1, res); - * return res; - * } else if (low < interval_low(root)) { - * interval_expand_low(root->in_left, low); - * return res; - * } - * - * if (interval_high(root) < low) - * res = max_u64(interval_high(root) + 1, res); - * interval_expand_low(root->in_left, low); - * interval_expand_low(root->in_right, low); - * - * return res; - * } - * - * It's much easy to eliminate the recursion, see interval_search for - * an example. -jay - */ -static inline __u64 interval_expand_low(struct interval_node *root, __u64 low) -{ - /* we only concern the empty tree right now. */ - if (root == NULL) - return 0; - return low; -} - -static inline __u64 interval_expand_high(struct interval_node *node, __u64 high) -{ - __u64 result = ~0; - - while (node != NULL) { - if (node->in_max_high < high) - break; - - if (interval_low(node) > high) { - result = interval_low(node) - 1; - node = node->in_left; - } else { - node = node->in_right; - } - } - - return result; -} - -/* expanding the extent based on @ext. */ -void interval_expand(struct interval_node *root, - struct interval_node_extent *ext, - struct interval_node_extent *limiter) -{ - /* The assertion of interval_is_overlapped is expensive because we may - * travel many nodes to find the overlapped node. */ - LASSERT(interval_is_overlapped(root, ext) == 0); - if (!limiter || limiter->start < ext->start) - ext->start = interval_expand_low(root, ext->start); - if (!limiter || limiter->end > ext->end) - ext->end = interval_expand_high(root, ext->end); - LASSERT(interval_is_overlapped(root, ext) == 0); -} -EXPORT_SYMBOL(interval_expand); From 8a7c086d8cb17978f2fdf6768ff0233f9a9507ea Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:18 -0400 Subject: [PATCH 1057/2431] staging/lustre/ldlm: Remove unused ldlm_cancel_locks_for_exports() This is only used on the server in case a client gets disconnected. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/ldlm/ldlm_internal.h | 2 - .../staging/lustre/lustre/ldlm/ldlm_lock.c | 50 ------------------- 2 files changed, 52 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index fa4b7c760d49..e870b3ebe9dd 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h @@ -164,8 +164,6 @@ void ldlm_lock_add_to_lru(struct ldlm_lock *lock); void ldlm_lock_touch_in_lru(struct ldlm_lock *lock); void ldlm_lock_destroy_nolock(struct ldlm_lock *lock); -void ldlm_cancel_locks_for_export(struct obd_export *export); - /* ldlm_lockd.c */ int ldlm_bl_to_thread_lock(struct ldlm_namespace *ns, struct ldlm_lock_desc *ld, struct ldlm_lock *lock); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 12eb5ac3b3d8..b257b894864b 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -2011,56 +2011,6 @@ struct export_cl_data { int ecl_loop; }; -/** - * Iterator function for ldlm_cancel_locks_for_export. - * Cancels passed locks. - */ -int ldlm_cancel_locks_for_export_cb(struct cfs_hash *hs, struct cfs_hash_bd *bd, - struct hlist_node *hnode, void *data) - -{ - struct export_cl_data *ecl = (struct export_cl_data *)data; - struct obd_export *exp = ecl->ecl_exp; - struct ldlm_lock *lock = cfs_hash_object(hs, hnode); - struct ldlm_resource *res; - - res = ldlm_resource_getref(lock->l_resource); - LDLM_LOCK_GET(lock); - - LDLM_DEBUG(lock, "export %p", exp); - ldlm_res_lvbo_update(res, NULL, 1); - ldlm_lock_cancel(lock); - ldlm_reprocess_all(res); - ldlm_resource_putref(res); - LDLM_LOCK_RELEASE(lock); - - ecl->ecl_loop++; - if ((ecl->ecl_loop & -ecl->ecl_loop) == ecl->ecl_loop) { - CDEBUG(D_INFO, - "Cancel lock %p for export %p (loop %d), still have %d locks left on hash table.\n", - lock, exp, ecl->ecl_loop, - atomic_read(&hs->hs_count)); - } - - return 0; -} - -/** - * Cancel all locks for given export. - * - * Typically called on client disconnection/eviction - */ -void ldlm_cancel_locks_for_export(struct obd_export *exp) -{ - struct export_cl_data ecl = { - .ecl_exp = exp, - .ecl_loop = 0, - }; - - cfs_hash_for_each_empty(exp->exp_lock_hash, - ldlm_cancel_locks_for_export_cb, &ecl); -} - /** * Downgrade an exclusive lock. * From 004a4b38a7a0522c0edfd29c01855f92bec516a1 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:19 -0400 Subject: [PATCH 1058/2431] staging/lustre/ldlm: Remove ldlm_init/destroy_export() These functions are used on the server-only, so get rid of them. Also get rid of ldlm export hash operations and the struct. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 2 - .../staging/lustre/lustre/ldlm/ldlm_lockd.c | 105 ------------------ 2 files changed, 107 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 1ac08e1c0559..03eea32c90fd 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1114,8 +1114,6 @@ int ldlm_del_waiting_lock(struct ldlm_lock *lock); int ldlm_refresh_waiting_lock(struct ldlm_lock *lock, int timeout); int ldlm_get_ref(void); void ldlm_put_ref(void); -int ldlm_init_export(struct obd_export *exp); -void ldlm_destroy_export(struct obd_export *exp); struct ldlm_lock *ldlm_request_lock(struct ptlrpc_request *req); /* ldlm_lock.c */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c index a78c4a4c9bd4..57f6128d5701 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c @@ -887,111 +887,6 @@ void ldlm_put_ref(void) } EXPORT_SYMBOL(ldlm_put_ref); -/* - * Export handle<->lock hash operations. - */ -static unsigned -ldlm_export_lock_hash(struct cfs_hash *hs, const void *key, unsigned mask) -{ - return cfs_hash_u64_hash(((struct lustre_handle *)key)->cookie, mask); -} - -static void * -ldlm_export_lock_key(struct hlist_node *hnode) -{ - struct ldlm_lock *lock; - - lock = hlist_entry(hnode, struct ldlm_lock, l_exp_hash); - return &lock->l_remote_handle; -} - -static void -ldlm_export_lock_keycpy(struct hlist_node *hnode, void *key) -{ - struct ldlm_lock *lock; - - lock = hlist_entry(hnode, struct ldlm_lock, l_exp_hash); - lock->l_remote_handle = *(struct lustre_handle *)key; -} - -static int -ldlm_export_lock_keycmp(const void *key, struct hlist_node *hnode) -{ - return lustre_handle_equal(ldlm_export_lock_key(hnode), key); -} - -static void * -ldlm_export_lock_object(struct hlist_node *hnode) -{ - return hlist_entry(hnode, struct ldlm_lock, l_exp_hash); -} - -static void -ldlm_export_lock_get(struct cfs_hash *hs, struct hlist_node *hnode) -{ - struct ldlm_lock *lock; - - lock = hlist_entry(hnode, struct ldlm_lock, l_exp_hash); - LDLM_LOCK_GET(lock); -} - -static void -ldlm_export_lock_put(struct cfs_hash *hs, struct hlist_node *hnode) -{ - struct ldlm_lock *lock; - - lock = hlist_entry(hnode, struct ldlm_lock, l_exp_hash); - LDLM_LOCK_RELEASE(lock); -} - -static cfs_hash_ops_t ldlm_export_lock_ops = { - .hs_hash = ldlm_export_lock_hash, - .hs_key = ldlm_export_lock_key, - .hs_keycmp = ldlm_export_lock_keycmp, - .hs_keycpy = ldlm_export_lock_keycpy, - .hs_object = ldlm_export_lock_object, - .hs_get = ldlm_export_lock_get, - .hs_put = ldlm_export_lock_put, - .hs_put_locked = ldlm_export_lock_put, -}; - -int ldlm_init_export(struct obd_export *exp) -{ - int rc; - - exp->exp_lock_hash = - cfs_hash_create(obd_uuid2str(&exp->exp_client_uuid), - HASH_EXP_LOCK_CUR_BITS, - HASH_EXP_LOCK_MAX_BITS, - HASH_EXP_LOCK_BKT_BITS, 0, - CFS_HASH_MIN_THETA, CFS_HASH_MAX_THETA, - &ldlm_export_lock_ops, - CFS_HASH_DEFAULT | CFS_HASH_REHASH_KEY | - CFS_HASH_NBLK_CHANGE); - - if (!exp->exp_lock_hash) - return -ENOMEM; - - rc = ldlm_init_flock_export(exp); - if (rc) - goto err; - - return 0; -err: - ldlm_destroy_export(exp); - return rc; -} -EXPORT_SYMBOL(ldlm_init_export); - -void ldlm_destroy_export(struct obd_export *exp) -{ - cfs_hash_putref(exp->exp_lock_hash); - exp->exp_lock_hash = NULL; - - ldlm_destroy_flock_export(exp); -} -EXPORT_SYMBOL(ldlm_destroy_export); - extern unsigned int ldlm_cancel_unused_locks_before_replay; static ssize_t cancel_unused_locks_before_replay_show(struct kobject *kobj, From 97ea097b456185f3d653d1a623998086c35d4c66 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:20 -0400 Subject: [PATCH 1059/2431] staging/lustre/ldlm: Remove unimplemented lock conversion traces. Lock conversion is not really implemented, so let's stop pretending here. This removes ldlm_lock_convert, ldlm_cli_lock_convert and ldlm_lock_downgrade. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 4 - .../staging/lustre/lustre/ldlm/ldlm_lock.c | 119 ------------------ .../staging/lustre/lustre/ldlm/ldlm_request.c | 101 --------------- 3 files changed, 224 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 03eea32c90fd..bea526b8f50f 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1228,9 +1228,6 @@ ldlm_mode_t ldlm_lock_match(struct ldlm_namespace *ns, __u64 flags, struct lustre_handle *, int unref); ldlm_mode_t ldlm_revalidate_lock_handle(struct lustre_handle *lockh, __u64 *bits); -struct ldlm_resource *ldlm_lock_convert(struct ldlm_lock *lock, int new_mode, - __u32 *flags); -void ldlm_lock_downgrade(struct ldlm_lock *lock, int new_mode); void ldlm_lock_cancel(struct ldlm_lock *lock); void ldlm_reprocess_all(struct ldlm_resource *res); void ldlm_reprocess_all_ns(struct ldlm_namespace *ns); @@ -1332,7 +1329,6 @@ int ldlm_cli_enqueue_local(struct ldlm_namespace *ns, struct lustre_handle *lockh); int ldlm_server_ast(struct lustre_handle *lockh, struct ldlm_lock_desc *new, void *data, __u32 data_len); -int ldlm_cli_convert(struct lustre_handle *, int new_mode, __u32 *flags); int ldlm_cli_update_pool(struct ptlrpc_request *req); int ldlm_cli_cancel(struct lustre_handle *lockh, ldlm_cancel_flags_t cancel_flags); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index b257b894864b..0597fece79bc 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -2011,125 +2011,6 @@ struct export_cl_data { int ecl_loop; }; -/** - * Downgrade an exclusive lock. - * - * A fast variant of ldlm_lock_convert for conversion of exclusive - * locks. The conversion is always successful. - * Used by Commit on Sharing (COS) code. - * - * \param lock A lock to convert - * \param new_mode new lock mode - */ -void ldlm_lock_downgrade(struct ldlm_lock *lock, int new_mode) -{ - LASSERT(lock->l_granted_mode & (LCK_PW | LCK_EX)); - LASSERT(new_mode == LCK_COS); - - lock_res_and_lock(lock); - ldlm_resource_unlink_lock(lock); - /* - * Remove the lock from pool as it will be added again in - * ldlm_grant_lock() called below. - */ - ldlm_pool_del(&ldlm_lock_to_ns(lock)->ns_pool, lock); - - lock->l_req_mode = new_mode; - ldlm_grant_lock(lock, NULL); - unlock_res_and_lock(lock); - ldlm_reprocess_all(lock->l_resource); -} -EXPORT_SYMBOL(ldlm_lock_downgrade); - -/** - * Attempt to convert already granted lock to a different mode. - * - * While lock conversion is not currently used, future client-side - * optimizations could take advantage of it to avoid discarding cached - * pages on a file. - */ -struct ldlm_resource *ldlm_lock_convert(struct ldlm_lock *lock, int new_mode, - __u32 *flags) -{ - LIST_HEAD(rpc_list); - struct ldlm_resource *res; - struct ldlm_namespace *ns; - int granted = 0; - struct ldlm_interval *node; - - /* Just return if mode is unchanged. */ - if (new_mode == lock->l_granted_mode) { - *flags |= LDLM_FL_BLOCK_GRANTED; - return lock->l_resource; - } - - /* I can't check the type of lock here because the bitlock of lock - * is not held here, so do the allocation blindly. -jay */ - OBD_SLAB_ALLOC_PTR_GFP(node, ldlm_interval_slab, GFP_NOFS); - if (node == NULL) - /* Actually, this causes EDEADLOCK to be returned */ - return NULL; - - LASSERTF((new_mode == LCK_PW && lock->l_granted_mode == LCK_PR), - "new_mode %u, granted %u\n", new_mode, lock->l_granted_mode); - - lock_res_and_lock(lock); - - res = lock->l_resource; - ns = ldlm_res_to_ns(res); - - lock->l_req_mode = new_mode; - if (res->lr_type == LDLM_PLAIN || res->lr_type == LDLM_IBITS) { - ldlm_resource_unlink_lock(lock); - } else { - ldlm_resource_unlink_lock(lock); - if (res->lr_type == LDLM_EXTENT) { - /* FIXME: ugly code, I have to attach the lock to a - * interval node again since perhaps it will be granted - * soon */ - INIT_LIST_HEAD(&node->li_group); - ldlm_interval_attach(node, lock); - node = NULL; - } - } - - /* - * Remove old lock from the pool before adding the lock with new - * mode below in ->policy() - */ - ldlm_pool_del(&ns->ns_pool, lock); - - /* If this is a local resource, put it on the appropriate list. */ - if (ns_is_client(ldlm_res_to_ns(res))) { - if (*flags & (LDLM_FL_BLOCK_CONV | LDLM_FL_BLOCK_GRANTED)) { - ldlm_resource_add_lock(res, &res->lr_converting, lock); - } else { - /* This should never happen, because of the way the - * server handles conversions. */ - LDLM_ERROR(lock, "Erroneous flags %x on local lock\n", - *flags); - LBUG(); - - ldlm_grant_lock(lock, &rpc_list); - granted = 1; - /* FIXME: completion handling not with lr_lock held ! */ - if (lock->l_completion_ast) - lock->l_completion_ast(lock, 0, NULL); - } - } else { - CERROR("This is client-side-only module, cannot handle LDLM_NAMESPACE_SERVER resource type lock.\n"); - LBUG(); - } - unlock_res_and_lock(lock); - - if (granted) - ldlm_run_ast_work(ns, &rpc_list, LDLM_WORK_CP_AST); - if (node) - OBD_SLAB_FREE(node, ldlm_interval_slab, sizeof(*node)); - return res; -} -EXPORT_SYMBOL(ldlm_lock_convert); - /** * Print lock with lock handle \a lockh description into debug log. * diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index f6d61e5a38e7..5bd66c3a958a 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -974,107 +974,6 @@ int ldlm_cli_enqueue(struct obd_export *exp, struct ptlrpc_request **reqp, } EXPORT_SYMBOL(ldlm_cli_enqueue); -static int ldlm_cli_convert_local(struct ldlm_lock *lock, int new_mode, - __u32 *flags) -{ - struct ldlm_resource *res; - int rc; - - if (ns_is_client(ldlm_lock_to_ns(lock))) { - CERROR("Trying to cancel local lock\n"); - LBUG(); - } - LDLM_DEBUG(lock, "client-side local convert"); - - res = ldlm_lock_convert(lock, new_mode, flags); - if (res) { - ldlm_reprocess_all(res); - rc = 0; - } else { - rc = LUSTRE_EDEADLK; - } - LDLM_DEBUG(lock, "client-side local convert handler END"); - LDLM_LOCK_PUT(lock); - return rc; -} - -/* FIXME: one of ldlm_cli_convert or the server side should reject attempted - * conversion of locks which are on the waiting or converting queue */ -/* Caller of this code is supposed to take care of lock readers/writers - accounting */ -int ldlm_cli_convert(struct lustre_handle *lockh, int new_mode, __u32 *flags) -{ - struct ldlm_request *body; - struct ldlm_reply *reply; - struct ldlm_lock *lock; - struct ldlm_resource *res; - struct ptlrpc_request *req; - int rc; - - lock = ldlm_handle2lock(lockh); - if (!lock) { - LBUG(); - return -EINVAL; - } - *flags = 0; - - if (lock->l_conn_export == NULL) - return ldlm_cli_convert_local(lock, new_mode, flags); - - LDLM_DEBUG(lock, "client-side convert"); - - req = ptlrpc_request_alloc_pack(class_exp2cliimp(lock->l_conn_export), - &RQF_LDLM_CONVERT, LUSTRE_DLM_VERSION, - LDLM_CONVERT); - if (req == NULL) { - LDLM_LOCK_PUT(lock); - return -ENOMEM; - } - - body = req_capsule_client_get(&req->rq_pill, &RMF_DLM_REQ); - body->lock_handle[0] = lock->l_remote_handle; - - body->lock_desc.l_req_mode = new_mode; - body->lock_flags = ldlm_flags_to_wire(*flags); - - - ptlrpc_request_set_replen(req); - rc = ptlrpc_queue_wait(req); - if (rc != ELDLM_OK) - goto out; - - reply = req_capsule_server_get(&req->rq_pill, &RMF_DLM_REP); - if (reply == NULL) { - rc = -EPROTO; - goto out; - } - - if (req->rq_status) { - rc = req->rq_status; - goto out; - } - - res = ldlm_lock_convert(lock, new_mode, &reply->lock_flags); - if (res != NULL) { - ldlm_reprocess_all(res); - /* Go to sleep until the lock is granted. */ - /* FIXME: or cancelled. */ - if (lock->l_completion_ast) { - rc = lock->l_completion_ast(lock, LDLM_FL_WAIT_NOREPROC, - NULL); - if (rc) - goto out; - } - } else { - rc = LUSTRE_EDEADLK; - } - out: - LDLM_LOCK_PUT(lock); - ptlrpc_req_finished(req); - return rc; -} -EXPORT_SYMBOL(ldlm_cli_convert); - /** * Cancel locks locally. * Returns: From 0c279f4d93c7be90a0163ef0bb5a71b11edf7395 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:21 -0400 Subject: [PATCH 1060/2431] staging/lustre/ldlm: Get rid of lr_converting queue Now that we removed all the lock conversion functions, also get rid of the converson queue since nothing could ever get there anyway. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_dlm.h | 2 -- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 10 +--------- drivers/staging/lustre/lustre/ldlm/ldlm_request.c | 9 --------- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 12 ------------ 4 files changed, 1 insertion(+), 32 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index bea526b8f50f..40377b21a431 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -883,8 +883,6 @@ struct ldlm_resource { * @{ */ /** List of locks in granted state */ struct list_head lr_granted; - /** List of locks waiting to change their granted mode (converted) */ - struct list_head lr_converting; /** * List of locks that could not be granted due to conflicts and * that are waiting for conflicts to go away */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 0597fece79bc..7f9d3c134cd4 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -1260,12 +1260,6 @@ ldlm_mode_t ldlm_lock_match(struct ldlm_namespace *ns, __u64 flags, rc = 0; goto out; } - lock = search_queue(&res->lr_converting, &mode, policy, old_lock, - flags, unref); - if (lock != NULL) { - rc = 1; - goto out; - } lock = search_queue(&res->lr_waiting, &mode, policy, old_lock, flags, unref); if (lock != NULL) { @@ -1634,9 +1628,7 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, * FIXME (bug 268): Detect obvious lies by checking compatibility in * granted/converting queues. */ if (local) { - if (*flags & LDLM_FL_BLOCK_CONV) - ldlm_resource_add_lock(res, &res->lr_converting, lock); - else if (*flags & (LDLM_FL_BLOCK_WAIT | LDLM_FL_BLOCK_GRANTED)) + if (*flags & (LDLM_FL_BLOCK_WAIT | LDLM_FL_BLOCK_GRANTED)) ldlm_resource_add_lock(res, &res->lr_waiting, lock); else ldlm_grant_lock(lock, NULL); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index 5bd66c3a958a..760c7452b97e 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -1878,15 +1878,6 @@ int ldlm_resource_foreach(struct ldlm_resource *res, ldlm_iterator_t iter, } } - list_for_each_safe(tmp, next, &res->lr_converting) { - lock = list_entry(tmp, struct ldlm_lock, l_res_link); - - if (iter(lock, closure) == LDLM_ITER_STOP) { - rc = LDLM_ITER_STOP; - goto out; - } - } - list_for_each_safe(tmp, next, &res->lr_waiting) { lock = list_entry(tmp, struct ldlm_lock, l_res_link); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index cc212b97abaa..dac2ec2180c3 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -792,7 +792,6 @@ static int ldlm_resource_clean(struct cfs_hash *hs, struct cfs_hash_bd *bd, __u64 flags = *(__u64 *)arg; cleanup_resource(res, &res->lr_granted, flags); - cleanup_resource(res, &res->lr_converting, flags); cleanup_resource(res, &res->lr_waiting, flags); return 0; @@ -1059,7 +1058,6 @@ static struct ldlm_resource *ldlm_resource_new(void) return NULL; INIT_LIST_HEAD(&res->lr_granted); - INIT_LIST_HEAD(&res->lr_converting); INIT_LIST_HEAD(&res->lr_waiting); /* Initialize interval trees for each lock mode. */ @@ -1224,11 +1222,6 @@ static void __ldlm_resource_putref_final(struct cfs_hash_bd *bd, LBUG(); } - if (!list_empty(&res->lr_converting)) { - ldlm_resource_dump(D_ERROR, res); - LBUG(); - } - if (!list_empty(&res->lr_waiting)) { ldlm_resource_dump(D_ERROR, res); LBUG(); @@ -1451,11 +1444,6 @@ void ldlm_resource_dump(int level, struct ldlm_resource *res) } } } - if (!list_empty(&res->lr_converting)) { - CDEBUG(level, "Converting locks:\n"); - list_for_each_entry(lock, &res->lr_converting, l_res_link) - LDLM_DEBUG_LIMIT(level, lock, "###"); - } if (!list_empty(&res->lr_waiting)) { CDEBUG(level, "Waiting locks:\n"); list_for_each_entry(lock, &res->lr_waiting, l_res_link) From ab47eb1b937783fba5363c43dc8da5ccd2fca77f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:22 -0400 Subject: [PATCH 1061/2431] staging/lustre/ldlm: Remove unused ldlm_cli_enqueue_local() This is only used on the server. Also while we are at it, remove unused prototypes for ldlm_server_ast and ldlm_handle_enqueue0() that are not defined anywhere Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 15 ---- .../staging/lustre/lustre/ldlm/ldlm_request.c | 68 ------------------- 2 files changed, 83 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 40377b21a431..ce91ccc358a7 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1308,25 +1308,10 @@ int ldlm_prep_elc_req(struct obd_export *exp, struct list_head *cancels, int count); struct ptlrpc_request *ldlm_enqueue_pack(struct obd_export *exp, int lvb_len); -int ldlm_handle_enqueue0(struct ldlm_namespace *ns, struct ptlrpc_request *req, - const struct ldlm_request *dlm_req, - const struct ldlm_callback_suite *cbs); int ldlm_cli_enqueue_fini(struct obd_export *exp, struct ptlrpc_request *req, ldlm_type_t type, __u8 with_policy, ldlm_mode_t mode, __u64 *flags, void *lvb, __u32 lvb_len, struct lustre_handle *lockh, int rc); -int ldlm_cli_enqueue_local(struct ldlm_namespace *ns, - const struct ldlm_res_id *res_id, - ldlm_type_t type, ldlm_policy_data_t *policy, - ldlm_mode_t mode, __u64 *flags, - ldlm_blocking_callback blocking, - ldlm_completion_callback completion, - ldlm_glimpse_callback glimpse, - void *data, __u32 lvb_len, enum lvb_type lvb_type, - const __u64 *client_cookie, - struct lustre_handle *lockh); -int ldlm_server_ast(struct lustre_handle *lockh, struct ldlm_lock_desc *new, - void *data, __u32 data_len); int ldlm_cli_update_pool(struct ptlrpc_request *req); int ldlm_cli_cancel(struct lustre_handle *lockh, ldlm_cancel_flags_t cancel_flags); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index 760c7452b97e..9856133306e3 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -386,74 +386,6 @@ int ldlm_glimpse_ast(struct ldlm_lock *lock, void *reqp) } EXPORT_SYMBOL(ldlm_glimpse_ast); -/** - * Enqueue a local lock (typically on a server). - */ -int ldlm_cli_enqueue_local(struct ldlm_namespace *ns, - const struct ldlm_res_id *res_id, - ldlm_type_t type, ldlm_policy_data_t *policy, - ldlm_mode_t mode, __u64 *flags, - ldlm_blocking_callback blocking, - ldlm_completion_callback completion, - ldlm_glimpse_callback glimpse, - void *data, __u32 lvb_len, enum lvb_type lvb_type, - const __u64 *client_cookie, - struct lustre_handle *lockh) -{ - struct ldlm_lock *lock; - int err; - const struct ldlm_callback_suite cbs = { .lcs_completion = completion, - .lcs_blocking = blocking, - .lcs_glimpse = glimpse, - }; - - LASSERT(!(*flags & LDLM_FL_REPLAY)); - if (unlikely(ns_is_client(ns))) { - CERROR("Trying to enqueue local lock in a shadow namespace\n"); - LBUG(); - } - - lock = ldlm_lock_create(ns, res_id, type, mode, &cbs, data, lvb_len, - lvb_type); - if (unlikely(!lock)) { - err = -ENOMEM; - goto out_nolock; - } - - ldlm_lock2handle(lock, lockh); - - /* NB: we don't have any lock now (lock_res_and_lock) - * because it's a new lock */ - ldlm_lock_addref_internal_nolock(lock, mode); - lock->l_flags |= LDLM_FL_LOCAL; - if (*flags & LDLM_FL_ATOMIC_CB) - lock->l_flags |= LDLM_FL_ATOMIC_CB; - - if (policy != NULL) - lock->l_policy_data = *policy; - if (client_cookie != NULL) - lock->l_client_cookie = *client_cookie; - if (type == LDLM_EXTENT) - lock->l_req_extent = policy->l_extent; - - err = ldlm_lock_enqueue(ns, &lock, policy, flags); - if (unlikely(err != ELDLM_OK)) - goto out; - - if (policy != NULL) - *policy = lock->l_policy_data; - - if (lock->l_completion_ast) - lock->l_completion_ast(lock, *flags, NULL); - - LDLM_DEBUG(lock, "client-side local enqueue handler, new lock created"); - out: - LDLM_LOCK_RELEASE(lock); - out_nolock: - return err; -} -EXPORT_SYMBOL(ldlm_cli_enqueue_local); - static void failed_lock_cleanup(struct ldlm_namespace *ns, struct ldlm_lock *lock, int mode) { From d7dbe11ef0700829ef133e332673e5921346f80e Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:23 -0400 Subject: [PATCH 1062/2431] staging/lustre/ldlm: Remove unused ldlm_init/fini_flock_export And all supporting export infrastructure. There's no use for it all on client. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/ldlm/ldlm_flock.c | 102 ------------------ .../lustre/lustre/ldlm/ldlm_internal.h | 2 - 2 files changed, 104 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index ab670fcf852d..bb8ecc843f0c 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c @@ -755,105 +755,3 @@ void ldlm_flock_policy_local_to_wire(const ldlm_policy_data_t *lpolicy, wpolicy->l_flock.lfw_pid = lpolicy->l_flock.pid; wpolicy->l_flock.lfw_owner = lpolicy->l_flock.owner; } - -/* - * Export handle<->flock hash operations. - */ -static unsigned -ldlm_export_flock_hash(struct cfs_hash *hs, const void *key, unsigned mask) -{ - return cfs_hash_u64_hash(*(__u64 *)key, mask); -} - -static void * -ldlm_export_flock_key(struct hlist_node *hnode) -{ - struct ldlm_lock *lock; - - lock = hlist_entry(hnode, struct ldlm_lock, l_exp_flock_hash); - return &lock->l_policy_data.l_flock.owner; -} - -static int -ldlm_export_flock_keycmp(const void *key, struct hlist_node *hnode) -{ - return !memcmp(ldlm_export_flock_key(hnode), key, sizeof(__u64)); -} - -static void * -ldlm_export_flock_object(struct hlist_node *hnode) -{ - return hlist_entry(hnode, struct ldlm_lock, l_exp_flock_hash); -} - -static void -ldlm_export_flock_get(struct cfs_hash *hs, struct hlist_node *hnode) -{ - struct ldlm_lock *lock; - struct ldlm_flock *flock; - - lock = hlist_entry(hnode, struct ldlm_lock, l_exp_flock_hash); - LDLM_LOCK_GET(lock); - - flock = &lock->l_policy_data.l_flock; - LASSERT(flock->blocking_export != NULL); - class_export_get(flock->blocking_export); - flock->blocking_refs++; -} - -static void -ldlm_export_flock_put(struct cfs_hash *hs, struct hlist_node *hnode) -{ - struct ldlm_lock *lock; - struct ldlm_flock *flock; - - lock = hlist_entry(hnode, struct ldlm_lock, l_exp_flock_hash); - LDLM_LOCK_RELEASE(lock); - - flock = &lock->l_policy_data.l_flock; - LASSERT(flock->blocking_export != NULL); - class_export_put(flock->blocking_export); - if (--flock->blocking_refs == 0) { - flock->blocking_owner = 0; - flock->blocking_export = NULL; - } -} - -static cfs_hash_ops_t ldlm_export_flock_ops = { - .hs_hash = ldlm_export_flock_hash, - .hs_key = ldlm_export_flock_key, - .hs_keycmp = ldlm_export_flock_keycmp, - .hs_object = ldlm_export_flock_object, - .hs_get = ldlm_export_flock_get, - .hs_put = ldlm_export_flock_put, - .hs_put_locked = ldlm_export_flock_put, -}; - -int ldlm_init_flock_export(struct obd_export *exp) -{ - if (strcmp(exp->exp_obd->obd_type->typ_name, LUSTRE_MDT_NAME) != 0) - return 0; - - exp->exp_flock_hash = - cfs_hash_create(obd_uuid2str(&exp->exp_client_uuid), - HASH_EXP_LOCK_CUR_BITS, - HASH_EXP_LOCK_MAX_BITS, - HASH_EXP_LOCK_BKT_BITS, 0, - CFS_HASH_MIN_THETA, CFS_HASH_MAX_THETA, - &ldlm_export_flock_ops, - CFS_HASH_DEFAULT | CFS_HASH_NBLK_CHANGE); - if (!exp->exp_flock_hash) - return -ENOMEM; - - return 0; -} -EXPORT_SYMBOL(ldlm_init_flock_export); - -void ldlm_destroy_flock_export(struct obd_export *exp) -{ - if (exp->exp_flock_hash) { - cfs_hash_putref(exp->exp_flock_hash); - exp->exp_flock_hash = NULL; - } -} -EXPORT_SYMBOL(ldlm_destroy_flock_export); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index e870b3ebe9dd..1293f13fade1 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h @@ -188,8 +188,6 @@ void ldlm_extent_unlink_lock(struct ldlm_lock *lock); int ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, int first_enq, ldlm_error_t *err, struct list_head *work_list); -int ldlm_init_flock_export(struct obd_export *exp); -void ldlm_destroy_flock_export(struct obd_export *exp); /* l_lock.c */ void l_check_ns_lock(struct ldlm_namespace *ns); From bf2a033360f7e4173c42a7e9b7dfd9d6757904bd Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:24 -0400 Subject: [PATCH 1063/2431] staging/lustre/ldlm: Remove unused ldlm_enqueue_pack() Not used anywhere Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 1 - .../staging/lustre/lustre/ldlm/ldlm_request.c | 21 ------------------- 2 files changed, 22 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index ce91ccc358a7..72c52eff89ad 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1307,7 +1307,6 @@ int ldlm_prep_elc_req(struct obd_export *exp, int version, int opc, int canceloff, struct list_head *cancels, int count); -struct ptlrpc_request *ldlm_enqueue_pack(struct obd_export *exp, int lvb_len); int ldlm_cli_enqueue_fini(struct obd_export *exp, struct ptlrpc_request *req, ldlm_type_t type, __u8 with_policy, ldlm_mode_t mode, __u64 *flags, void *lvb, __u32 lvb_len, diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index 9856133306e3..c73661cae8af 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -742,27 +742,6 @@ int ldlm_prep_enqueue_req(struct obd_export *exp, struct ptlrpc_request *req, } EXPORT_SYMBOL(ldlm_prep_enqueue_req); -struct ptlrpc_request *ldlm_enqueue_pack(struct obd_export *exp, int lvb_len) -{ - struct ptlrpc_request *req; - int rc; - - req = ptlrpc_request_alloc(class_exp2cliimp(exp), &RQF_LDLM_ENQUEUE); - if (req == NULL) - return ERR_PTR(-ENOMEM); - - rc = ldlm_prep_enqueue_req(exp, req, NULL, 0); - if (rc) { - ptlrpc_request_free(req); - return ERR_PTR(rc); - } - - req_capsule_set_size(&req->rq_pill, &RMF_DLM_LVB, RCL_SERVER, lvb_len); - ptlrpc_request_set_replen(req); - return req; -} -EXPORT_SYMBOL(ldlm_enqueue_pack); - /** * Client-side lock enqueue. * From 38c3f17fcac1c5de10db7306e585b62577e55bcb Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:25 -0400 Subject: [PATCH 1064/2431] staging/lustre/ldlm: Remove ldlm_errno2error() This particular incarnation is only used on the server. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 3 +- drivers/staging/lustre/lustre/ldlm/ldlm_lib.c | 36 ------------------- 2 files changed, 1 insertion(+), 38 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 72c52eff89ad..432222b92038 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1161,8 +1161,7 @@ static inline int ldlm_res_lvbo_update(struct ldlm_resource *res, } int ldlm_error2errno(ldlm_error_t error); -ldlm_error_t ldlm_errno2error(int err_no); /* don't call it `errno': this - * confuses user-space. */ + #if LUSTRE_TRACKS_LOCK_EXP_REFS void ldlm_dump_export_locks(struct obd_export *exp); #endif diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c index 584c4e67d90e..b8402005b560 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c @@ -814,42 +814,6 @@ int ldlm_error2errno(ldlm_error_t error) } EXPORT_SYMBOL(ldlm_error2errno); -/** - * Dual to ldlm_error2errno(): maps errno values back to ldlm_error_t. - */ -ldlm_error_t ldlm_errno2error(int err_no) -{ - int error; - - switch (err_no) { - case 0: - error = ELDLM_OK; - break; - case -ESTALE: - error = ELDLM_LOCK_CHANGED; - break; - case -ENAVAIL: - error = ELDLM_LOCK_ABORTED; - break; - case -ESRCH: - error = ELDLM_LOCK_REPLACED; - break; - case -ENOENT: - error = ELDLM_NO_LOCK_DATA; - break; - case -EEXIST: - error = ELDLM_NAMESPACE_EXISTS; - break; - case -EBADF: - error = ELDLM_BAD_NAMESPACE; - break; - default: - error = err_no; - } - return error; -} -EXPORT_SYMBOL(ldlm_errno2error); - #if LUSTRE_TRACKS_LOCK_EXP_REFS void ldlm_dump_export_locks(struct obd_export *exp) { From e306fc791709e979634075a01c902c11d5b20b02 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:26 -0400 Subject: [PATCH 1065/2431] staging/lustre/ldlm: Remove ldlm_glimpse_ast() Only used on the server. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 1 - .../staging/lustre/lustre/ldlm/ldlm_request.c | 28 ------------------- 2 files changed, 29 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 432222b92038..8b2b092af005 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1282,7 +1282,6 @@ int ldlm_expired_completion_wait(void *data); int ldlm_blocking_ast_nocheck(struct ldlm_lock *lock); int ldlm_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, void *data, int flag); -int ldlm_glimpse_ast(struct ldlm_lock *lock, void *reqp); int ldlm_completion_ast_async(struct ldlm_lock *lock, __u64 flags, void *data); int ldlm_completion_ast(struct ldlm_lock *lock, __u64 flags, void *data); /** @} ldlm_local_ast */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index c73661cae8af..a9159fda937b 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -358,34 +358,6 @@ int ldlm_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, } EXPORT_SYMBOL(ldlm_blocking_ast); -/** - * ->l_glimpse_ast() for DLM extent locks acquired on the server-side. See - * comment in filter_intent_policy() on why you may need this. - */ -int ldlm_glimpse_ast(struct ldlm_lock *lock, void *reqp) -{ - /* - * Returning -ELDLM_NO_LOCK_DATA actually works, but the reason for - * that is rather subtle: with OST-side locking, it may so happen that - * _all_ extent locks are held by the OST. If client wants to obtain - * current file size it calls ll{,u}_glimpse_size(), and (as locks are - * on the server), dummy glimpse callback fires and does - * nothing. Client still receives correct file size due to the - * following fragment in filter_intent_policy(): - * - * rc = l->l_glimpse_ast(l, NULL); // this will update the LVB - * if (rc != 0 && res->lr_namespace->ns_lvbo && - * res->lr_namespace->ns_lvbo->lvbo_update) { - * res->lr_namespace->ns_lvbo->lvbo_update(res, NULL, 0, 1); - * } - * - * that is, after glimpse_ast() fails, filter_lvbo_update() runs, and - * returns correct file size to the client. - */ - return -ELDLM_NO_LOCK_DATA; -} -EXPORT_SYMBOL(ldlm_glimpse_ast); - static void failed_lock_cleanup(struct ldlm_namespace *ns, struct ldlm_lock *lock, int mode) { From 996cbc63df2538b36ae7ce192d333dcd2454789e Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:27 -0400 Subject: [PATCH 1066/2431] staging/lustre/ldlm: Remove ldlm_lock_fail_match() It's not used anywhere. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_dlm.h | 1 - drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 8 -------- 2 files changed, 9 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 8b2b092af005..cc5ad4c1ff65 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1216,7 +1216,6 @@ int ldlm_lock_addref_try(struct lustre_handle *lockh, __u32 mode); void ldlm_lock_decref(struct lustre_handle *lockh, __u32 mode); void ldlm_lock_decref_and_cancel(struct lustre_handle *lockh, __u32 mode); void ldlm_lock_fail_match_locked(struct ldlm_lock *lock); -void ldlm_lock_fail_match(struct ldlm_lock *lock); void ldlm_lock_allow_match(struct ldlm_lock *lock); void ldlm_lock_allow_match_locked(struct ldlm_lock *lock); ldlm_mode_t ldlm_lock_match(struct ldlm_namespace *ns, __u64 flags, diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 7f9d3c134cd4..536f97cfd13c 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -1158,14 +1158,6 @@ void ldlm_lock_fail_match_locked(struct ldlm_lock *lock) } EXPORT_SYMBOL(ldlm_lock_fail_match_locked); -void ldlm_lock_fail_match(struct ldlm_lock *lock) -{ - lock_res_and_lock(lock); - ldlm_lock_fail_match_locked(lock); - unlock_res_and_lock(lock); -} -EXPORT_SYMBOL(ldlm_lock_fail_match); - /** * Mark lock as "matchable" by OST. * From 4889fd37f50f361716764c26121e3b7cbf741bc3 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:28 -0400 Subject: [PATCH 1067/2431] staging/lustre/ldlm: Remove ldlm_namespace_free() It was directly used only on the server. Client side part was split into smaller chunks to avoid deadlocks. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 2 -- .../lustre/lustre/ldlm/ldlm_resource.c | 27 ------------------- 2 files changed, 29 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index cc5ad4c1ff65..4d81e73fc862 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1236,8 +1236,6 @@ ldlm_namespace_new(struct obd_device *obd, char *name, ldlm_side_t client, ldlm_appetite_t apt, ldlm_ns_type_t ns_type); int ldlm_namespace_cleanup(struct ldlm_namespace *ns, __u64 flags); -void ldlm_namespace_free(struct ldlm_namespace *ns, - struct obd_import *imp, int force); void ldlm_namespace_register(struct ldlm_namespace *ns, ldlm_side_t client); void ldlm_namespace_unregister(struct ldlm_namespace *ns, ldlm_side_t client); void ldlm_namespace_get(struct ldlm_namespace *ns); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index dac2ec2180c3..cd65efe72819 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -948,33 +948,6 @@ void ldlm_namespace_free_post(struct ldlm_namespace *ns) ldlm_put_ref(); } -/** - * Cleanup the resource, and free namespace. - * bug 12864: - * Deadlock issue: - * proc1: destroy import - * class_disconnect_export(grab cl_sem) -> - * -> ldlm_namespace_free -> - * -> ldebugfs_remove(grab _lprocfs_lock). - * proc2: read proc info - * lprocfs_fops_read(grab _lprocfs_lock) -> - * -> osc_rd_active, etc(grab cl_sem). - * - * So that I have to split the ldlm_namespace_free into two parts - the first - * part ldlm_namespace_free_prior is used to cleanup the resource which is - * being used; the 2nd part ldlm_namespace_free_post is used to unregister the - * lprocfs entries, and then free memory. It will be called w/o cli->cl_sem - * held. - */ -void ldlm_namespace_free(struct ldlm_namespace *ns, - struct obd_import *imp, - int force) -{ - ldlm_namespace_free_prior(ns, imp, force); - ldlm_namespace_free_post(ns); -} -EXPORT_SYMBOL(ldlm_namespace_free); - void ldlm_namespace_get(struct ldlm_namespace *ns) { atomic_inc(&ns->ns_bref); From 865cc738e6f7b720284cc3a1c9f323d9772c3d4e Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:29 -0400 Subject: [PATCH 1068/2431] staging/lustre/ldlm: Remove unused ldlm_pool_get_clv() Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lustre_dlm.h | 1 - drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 16 ---------------- 2 files changed, 17 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 4d81e73fc862..1b5f298846a6 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1401,7 +1401,6 @@ int ldlm_pool_setup(struct ldlm_pool *pl, int limit); int ldlm_pool_recalc(struct ldlm_pool *pl); __u32 ldlm_pool_get_lvf(struct ldlm_pool *pl); __u64 ldlm_pool_get_slv(struct ldlm_pool *pl); -__u64 ldlm_pool_get_clv(struct ldlm_pool *pl); __u32 ldlm_pool_get_limit(struct ldlm_pool *pl); void ldlm_pool_set_slv(struct ldlm_pool *pl, __u64 slv); void ldlm_pool_set_clv(struct ldlm_pool *pl, __u64 clv); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c index 1c9d67fbeb27..cbe4b7b5cb24 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -1022,22 +1022,6 @@ void ldlm_pool_set_slv(struct ldlm_pool *pl, __u64 slv) } EXPORT_SYMBOL(ldlm_pool_set_slv); -/** - * Returns current \a pl CLV. - * - * \pre ->pl_lock is not locked. - */ -__u64 ldlm_pool_get_clv(struct ldlm_pool *pl) -{ - __u64 slv; - - spin_lock(&pl->pl_lock); - slv = pl->pl_client_lock_volume; - spin_unlock(&pl->pl_lock); - return slv; -} -EXPORT_SYMBOL(ldlm_pool_get_clv); - /** * Sets passed \a clv to \a pl. * From a5613d7545519e9896d08a8061a6bbd546c1c10b Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:30 -0400 Subject: [PATCH 1069/2431] staging/lustre/ldlm: Remove unused ldlm_pool_set_slv() Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_dlm.h | 1 - drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 13 ------------- 2 files changed, 14 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 1b5f298846a6..ec717ebb1701 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1402,7 +1402,6 @@ int ldlm_pool_recalc(struct ldlm_pool *pl); __u32 ldlm_pool_get_lvf(struct ldlm_pool *pl); __u64 ldlm_pool_get_slv(struct ldlm_pool *pl); __u32 ldlm_pool_get_limit(struct ldlm_pool *pl); -void ldlm_pool_set_slv(struct ldlm_pool *pl, __u64 slv); void ldlm_pool_set_clv(struct ldlm_pool *pl, __u64 clv); void ldlm_pool_set_limit(struct ldlm_pool *pl, __u32 limit); void ldlm_pool_add(struct ldlm_pool *pl, struct ldlm_lock *lock); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c index cbe4b7b5cb24..94cdf5f3ffda 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -1009,19 +1009,6 @@ __u64 ldlm_pool_get_slv(struct ldlm_pool *pl) } EXPORT_SYMBOL(ldlm_pool_get_slv); -/** - * Sets passed \a slv to \a pl. - * - * \pre ->pl_lock is not locked. - */ -void ldlm_pool_set_slv(struct ldlm_pool *pl, __u64 slv) -{ - spin_lock(&pl->pl_lock); - pl->pl_server_lock_volume = slv; - spin_unlock(&pl->pl_lock); -} -EXPORT_SYMBOL(ldlm_pool_set_slv); - /** * Sets passed \a clv to \a pl. * From 8868dc0d90e0ed3f9d276c849a65284fad25109c Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:31 -0400 Subject: [PATCH 1070/2431] staging/lustre/ldlm: Remove ldlm_refresh/del_waiting_lock() Nothing adds locks into waiting list on the client, so no point in retaining those. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_dlm.h | 2 -- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 8 -------- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 13 ------------- 3 files changed, 23 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index ec717ebb1701..5a72f22882a0 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1108,8 +1108,6 @@ struct ldlm_callback_suite { }; /* ldlm_lockd.c */ -int ldlm_del_waiting_lock(struct ldlm_lock *lock); -int ldlm_refresh_waiting_lock(struct ldlm_lock *lock, int timeout); int ldlm_get_ref(void); void ldlm_put_ref(void); struct ldlm_lock *ldlm_request_lock(struct ptlrpc_request *req); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 536f97cfd13c..133936efc905 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -1947,17 +1947,9 @@ void ldlm_lock_cancel(struct ldlm_lock *lock) LBUG(); } - if (lock->l_flags & LDLM_FL_WAITED) - ldlm_del_waiting_lock(lock); - /* Releases cancel callback. */ ldlm_cancel_callback(lock); - /* Yes, second time, just in case it was added again while we were - * running with no res lock in ldlm_cancel_callback */ - if (lock->l_flags & LDLM_FL_WAITED) - ldlm_del_waiting_lock(lock); - ldlm_resource_unlink_lock(lock); ldlm_lock_destroy_nolock(lock); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c index 57f6128d5701..045e3c66139f 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c @@ -111,19 +111,6 @@ struct ldlm_bl_work_item { int blwi_mem_pressure; }; - -int ldlm_del_waiting_lock(struct ldlm_lock *lock) -{ - return 0; -} - -int ldlm_refresh_waiting_lock(struct ldlm_lock *lock, int timeout) -{ - return 0; -} - - - /** * Callback handler for receiving incoming blocking ASTs. * From 02176031cd6db041a8b3916364df82b8708da3fc Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:32 -0400 Subject: [PATCH 1071/2431] staging/lustre/ldlm: Remove intent policies handler. This includes ldlm_register_intent(), ns_policy field in the namespace and all of it's users, as this could only happen on the server. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 8 -- .../staging/lustre/lustre/ldlm/ldlm_lock.c | 85 +++---------------- 2 files changed, 13 insertions(+), 80 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 5a72f22882a0..c0b2c610d76a 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -271,10 +271,6 @@ struct ldlm_pool { struct completion pl_kobj_unregister; }; -typedef int (*ldlm_res_policy)(struct ldlm_namespace *, struct ldlm_lock **, - void *req_cookie, ldlm_mode_t mode, __u64 flags, - void *data); - typedef int (*ldlm_cancel_for_recovery)(struct ldlm_lock *lock); /** @@ -427,9 +423,6 @@ struct ldlm_namespace { */ unsigned long ns_next_dump; - /** "policy" function that does actual lock conflict determination */ - ldlm_res_policy ns_policy; - /** * LVB operations for this namespace. * \see struct ldlm_valblock_ops @@ -1113,7 +1106,6 @@ void ldlm_put_ref(void); struct ldlm_lock *ldlm_request_lock(struct ptlrpc_request *req); /* ldlm_lock.c */ -void ldlm_register_intent(struct ldlm_namespace *ns, ldlm_res_policy arg); void ldlm_lock2handle(const struct ldlm_lock *lock, struct lustre_handle *lockh); struct ldlm_lock *__ldlm_handle2lock(const struct lustre_handle *, __u64 flags); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 133936efc905..5a0766937d0e 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -151,13 +151,6 @@ char *ldlm_it2str(int it) } EXPORT_SYMBOL(ldlm_it2str); - -void ldlm_register_intent(struct ldlm_namespace *ns, ldlm_res_policy arg) -{ - ns->ns_policy = arg; -} -EXPORT_SYMBOL(ldlm_register_intent); - /* * REFCOUNTED LOCK OBJECTS */ @@ -1532,13 +1525,11 @@ out: /** * Enqueue (request) a lock. + * On the client this is called from ldlm_cli_enqueue_fini + * after we already got an initial reply from the server with some status. * * Does not block. As a result of enqueue the lock would be put * into granted or waiting list. - * - * If namespace has intent policy sent and the lock has LDLM_FL_HAS_INTENT flag - * set, skip all the enqueueing and delegate lock processing to intent policy - * function. */ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, struct ldlm_lock **lockp, @@ -1546,43 +1537,12 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, { struct ldlm_lock *lock = *lockp; struct ldlm_resource *res = lock->l_resource; - int local = ns_is_client(ldlm_res_to_ns(res)); ldlm_error_t rc = ELDLM_OK; - struct ldlm_interval *node = NULL; lock->l_last_activity = ktime_get_real_seconds(); - /* policies are not executed on the client or during replay */ - if ((*flags & (LDLM_FL_HAS_INTENT|LDLM_FL_REPLAY)) == LDLM_FL_HAS_INTENT - && !local && ns->ns_policy) { - rc = ns->ns_policy(ns, lockp, cookie, lock->l_req_mode, *flags, - NULL); - if (rc == ELDLM_LOCK_REPLACED) { - /* The lock that was returned has already been granted, - * and placed into lockp. If it's not the same as the - * one we passed in, then destroy the old one and our - * work here is done. */ - if (lock != *lockp) { - ldlm_lock_destroy(lock); - LDLM_LOCK_RELEASE(lock); - } - *flags |= LDLM_FL_LOCK_CHANGED; - return 0; - } else if (rc != ELDLM_OK || - (rc == ELDLM_OK && (*flags & LDLM_FL_INTENT_ONLY))) { - ldlm_lock_destroy(lock); - return rc; - } - } - - /* For a replaying lock, it might be already in granted list. So - * unlinking the lock will cause the interval node to be freed, we - * have to allocate the interval node early otherwise we can't regrant - * this lock in the future. - jay */ - if (!local && (*flags & LDLM_FL_REPLAY) && res->lr_type == LDLM_EXTENT) - OBD_SLAB_ALLOC_PTR_GFP(node, ldlm_interval_slab, GFP_NOFS); lock_res_and_lock(lock); - if (local && lock->l_req_mode == lock->l_granted_mode) { + if (lock->l_req_mode == lock->l_granted_mode) { /* The server returned a blocked lock, but it was granted * before we got a chance to actually enqueue it. We don't * need to do anything else. */ @@ -1592,48 +1552,29 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, } ldlm_resource_unlink_lock(lock); - if (res->lr_type == LDLM_EXTENT && lock->l_tree_node == NULL) { - if (node == NULL) { - ldlm_lock_destroy_nolock(lock); - rc = -ENOMEM; - goto out; - } - INIT_LIST_HEAD(&node->li_group); - ldlm_interval_attach(node, lock); - node = NULL; - } + /* Cannot happen unless on the server */ + if (res->lr_type == LDLM_EXTENT && !lock->l_tree_node) + LBUG(); /* Some flags from the enqueue want to make it into the AST, via the * lock's l_flags. */ lock->l_flags |= *flags & LDLM_FL_AST_DISCARD_DATA; - /* This distinction between local lock trees is very important; a client + /* + * This distinction between local lock trees is very important; a client * namespace only has information about locks taken by that client, and * thus doesn't have enough information to decide for itself if it can * be granted (below). In this case, we do exactly what the server * tells us to do, as dictated by the 'flags'. - * - * We do exactly the same thing during recovery, when the server is - * more or less trusting the clients not to lie. - * - * FIXME (bug 268): Detect obvious lies by checking compatibility in - * granted/converting queues. */ - if (local) { - if (*flags & (LDLM_FL_BLOCK_WAIT | LDLM_FL_BLOCK_GRANTED)) - ldlm_resource_add_lock(res, &res->lr_waiting, lock); - else - ldlm_grant_lock(lock, NULL); - goto out; - } else { - CERROR("This is client-side-only module, cannot handle LDLM_NAMESPACE_SERVER resource type lock.\n"); - LBUG(); - } + */ + if (*flags & (LDLM_FL_BLOCK_WAIT | LDLM_FL_BLOCK_GRANTED)) + ldlm_resource_add_lock(res, &res->lr_waiting, lock); + else + ldlm_grant_lock(lock, NULL); out: unlock_res_and_lock(lock); - if (node) - OBD_SLAB_FREE(node, ldlm_interval_slab, sizeof(*node)); return rc; } From 71d1c4d5cb6c578c191db042dc7f025d328b5f73 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:33 -0400 Subject: [PATCH 1072/2431] staging/lustre/ldlm: Remove unused ldlm_reprocess_all*() They are only used on the server. Also remove helper functions and cleanup callsites. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 2 - .../staging/lustre/lustre/ldlm/ldlm_flock.c | 1 - .../staging/lustre/lustre/ldlm/ldlm_lock.c | 48 ------------------- .../staging/lustre/lustre/ldlm/ldlm_request.c | 4 -- 4 files changed, 55 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index c0b2c610d76a..96083734c3fb 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1215,8 +1215,6 @@ ldlm_mode_t ldlm_lock_match(struct ldlm_namespace *ns, __u64 flags, ldlm_mode_t ldlm_revalidate_lock_handle(struct lustre_handle *lockh, __u64 *bits); void ldlm_lock_cancel(struct ldlm_lock *lock); -void ldlm_reprocess_all(struct ldlm_resource *res); -void ldlm_reprocess_all_ns(struct ldlm_namespace *ns); void ldlm_lock_dump_handle(int level, struct lustre_handle *); void ldlm_unlink_lock_skiplist(struct ldlm_lock *req); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index bb8ecc843f0c..14e678233647 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c @@ -523,7 +523,6 @@ reprocess: /* At this point we're granting the lock request. */ req->l_granted_mode = req->l_req_mode; - /* Add req to the granted queue before calling ldlm_reprocess_all(). */ if (!added) { list_del_init(&req->l_res_link); /* insert new lock before ownlocks in list. */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 5a0766937d0e..e586d33fd4bd 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -1786,54 +1786,6 @@ out: return rc; } -static int reprocess_one_queue(struct ldlm_resource *res, void *closure) -{ - ldlm_reprocess_all(res); - return LDLM_ITER_CONTINUE; -} - -static int ldlm_reprocess_res(struct cfs_hash *hs, struct cfs_hash_bd *bd, - struct hlist_node *hnode, void *arg) -{ - struct ldlm_resource *res = cfs_hash_object(hs, hnode); - int rc; - - rc = reprocess_one_queue(res, arg); - - return rc == LDLM_ITER_STOP; -} - -/** - * Iterate through all resources on a namespace attempting to grant waiting - * locks. - */ -void ldlm_reprocess_all_ns(struct ldlm_namespace *ns) -{ - if (ns != NULL) { - cfs_hash_for_each_nolock(ns->ns_rs_hash, - ldlm_reprocess_res, NULL); - } -} -EXPORT_SYMBOL(ldlm_reprocess_all_ns); - -/** - * Try to grant all waiting locks on a resource. - * - * Calls ldlm_reprocess_queue on converting and waiting queues. - * - * Typically called after some resource locks are cancelled to see - * if anything could be granted as a result of the cancellation. - */ -void ldlm_reprocess_all(struct ldlm_resource *res) -{ - LIST_HEAD(rpc_list); - - if (!ns_is_client(ldlm_res_to_ns(res))) { - CERROR("This is client-side-only module, cannot handle LDLM_NAMESPACE_SERVER resource type lock.\n"); - LBUG(); - } -} - /** * Helper function to call blocking AST for LDLM lock \a lock in a * "cancelling" mode. diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index a9159fda937b..15e1980831b0 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -188,7 +188,6 @@ int ldlm_completion_ast_async(struct ldlm_lock *lock, __u64 flags, void *data) } LDLM_DEBUG(lock, "client-side enqueue returned a blocked lock, going forward"); - ldlm_reprocess_all(lock->l_resource); return 0; } EXPORT_SYMBOL(ldlm_completion_ast_async); @@ -892,9 +891,6 @@ static __u64 ldlm_cli_cancel_local(struct ldlm_lock *lock) LDLM_ERROR(lock, "Trying to cancel local lock"); LBUG(); } - LDLM_DEBUG(lock, "server-side local cancel"); - ldlm_lock_cancel(lock); - ldlm_reprocess_all(lock->l_resource); } return rc; From b8d84a762faaf7dd6dacfcd981dcc8ecec68e5d3 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:34 -0400 Subject: [PATCH 1073/2431] staging/lustre/ldlm: Remove unused ldlm_resource_insert_lock_after() It was only used on the server. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/ldlm/ldlm_internal.h | 2 -- .../lustre/lustre/ldlm/ldlm_resource.c | 26 ------------------- 2 files changed, 28 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index 1293f13fade1..56805d03dfdf 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h @@ -116,8 +116,6 @@ int ldlm_get_enq_timeout(struct ldlm_lock *lock); /* ldlm_resource.c */ int ldlm_resource_putref_locked(struct ldlm_resource *res); -void ldlm_resource_insert_lock_after(struct ldlm_lock *original, - struct ldlm_lock *new); void ldlm_namespace_free_prior(struct ldlm_namespace *ns, struct obd_import *imp, int force); void ldlm_namespace_free_post(struct ldlm_namespace *ns); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index cd65efe72819..99063727d1fe 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -1281,32 +1281,6 @@ void ldlm_resource_add_lock(struct ldlm_resource *res, struct list_head *head, list_add_tail(&lock->l_res_link, head); } -/** - * Insert a lock into resource after specified lock. - * - * Obtain resource description from the lock we are inserting after. - */ -void ldlm_resource_insert_lock_after(struct ldlm_lock *original, - struct ldlm_lock *new) -{ - struct ldlm_resource *res = original->l_resource; - - check_res_locked(res); - - ldlm_resource_dump(D_INFO, res); - LDLM_DEBUG(new, "About to insert this lock after %p:\n", original); - - if (new->l_flags & LDLM_FL_DESTROYED) { - CDEBUG(D_OTHER, "Lock destroyed, not adding to resource\n"); - goto out; - } - - LASSERT(list_empty(&new->l_res_link)); - - list_add(&new->l_res_link, &original->l_res_link); - out:; -} - void ldlm_resource_unlink_lock(struct ldlm_lock *lock) { int type = lock->l_resource->lr_type; From f954e778dce59036dae0ebf9cf304621a71aa85b Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:35 -0400 Subject: [PATCH 1074/2431] staging/lustre/ldlm: Remove unused ldlm_blocking_ast/_nocheck() All users are gone, and they were used on the server anyway. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 3 - .../staging/lustre/lustre/ldlm/ldlm_request.c | 70 ------------------- 2 files changed, 73 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 96083734c3fb..360c7f7e58e3 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1264,9 +1264,6 @@ int ldlm_expired_completion_wait(void *data); * also used by client-side lock handlers to perform minimum level base * processing. * @{ */ -int ldlm_blocking_ast_nocheck(struct ldlm_lock *lock); -int ldlm_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, - void *data, int flag); int ldlm_completion_ast_async(struct ldlm_lock *lock, __u64 flags, void *data); int ldlm_completion_ast(struct ldlm_lock *lock, __u64 flags, void *data); /** @} ldlm_local_ast */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index 15e1980831b0..2d28fc230874 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -287,76 +287,6 @@ noreproc: } EXPORT_SYMBOL(ldlm_completion_ast); -/** - * A helper to build a blocking AST function - * - * Perform a common operation for blocking ASTs: - * deferred lock cancellation. - * - * \param lock the lock blocking or canceling AST was called on - * \retval 0 - * \see mdt_blocking_ast - * \see ldlm_blocking_ast - */ -int ldlm_blocking_ast_nocheck(struct ldlm_lock *lock) -{ - int do_ast; - - lock->l_flags |= LDLM_FL_CBPENDING; - do_ast = !lock->l_readers && !lock->l_writers; - unlock_res_and_lock(lock); - - if (do_ast) { - struct lustre_handle lockh; - int rc; - - LDLM_DEBUG(lock, "already unused, calling ldlm_cli_cancel"); - ldlm_lock2handle(lock, &lockh); - rc = ldlm_cli_cancel(&lockh, LCF_ASYNC); - if (rc < 0) - CERROR("ldlm_cli_cancel: %d\n", rc); - } else { - LDLM_DEBUG(lock, "Lock still has references, will be cancelled later"); - } - return 0; -} -EXPORT_SYMBOL(ldlm_blocking_ast_nocheck); - -/** - * Server blocking AST - * - * ->l_blocking_ast() callback for LDLM locks acquired by server-side - * OBDs. - * - * \param lock the lock which blocks a request or cancelling lock - * \param desc unused - * \param data unused - * \param flag indicates whether this cancelling or blocking callback - * \retval 0 - * \see ldlm_blocking_ast_nocheck - */ -int ldlm_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, - void *data, int flag) -{ - if (flag == LDLM_CB_CANCELING) { - /* Don't need to do anything here. */ - return 0; - } - - lock_res_and_lock(lock); - /* Get this: if ldlm_blocking_ast is racing with intent_policy, such - * that ldlm_blocking_ast is called just before intent_policy method - * takes the lr_lock, then by the time we get the lock, we might not - * be the correct blocking function anymore. So check, and return - * early, if so. */ - if (lock->l_blocking_ast != ldlm_blocking_ast) { - unlock_res_and_lock(lock); - return 0; - } - return ldlm_blocking_ast_nocheck(lock); -} -EXPORT_SYMBOL(ldlm_blocking_ast); - static void failed_lock_cleanup(struct ldlm_namespace *ns, struct ldlm_lock *lock, int mode) { From cf739f84a326d009670ba5c2d8d7b63216722ffc Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:36 -0400 Subject: [PATCH 1075/2431] staging/lustre: Remove ns_is_client() Since staging tree code is just the client, ns_is_client is always true, so change all callers as such and drop all the dead code for when it's false. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 13 --------- .../staging/lustre/lustre/ldlm/ldlm_flock.c | 28 ++---------------- .../staging/lustre/lustre/ldlm/ldlm_lock.c | 5 +--- .../staging/lustre/lustre/ldlm/ldlm_request.c | 9 ++---- .../lustre/lustre/ldlm/ldlm_resource.c | 29 +++++++------------ 5 files changed, 17 insertions(+), 67 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 360c7f7e58e3..1e40203f2b42 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -464,19 +464,6 @@ struct ldlm_namespace { struct completion ns_kobj_unregister; }; -/** - * Returns 1 if namespace \a ns is a client namespace. - */ -static inline int ns_is_client(struct ldlm_namespace *ns) -{ - LASSERT(ns != NULL); - LASSERT(!(ns->ns_client & ~(LDLM_NAMESPACE_CLIENT | - LDLM_NAMESPACE_SERVER))); - LASSERT(ns->ns_client == LDLM_NAMESPACE_CLIENT || - ns->ns_client == LDLM_NAMESPACE_SERVER); - return ns->ns_client == LDLM_NAMESPACE_CLIENT; -} - /** * Returns 1 if namespace \a ns is a server namespace. */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index 14e678233647..7241c34fd225 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c @@ -63,9 +63,6 @@ #include #include "ldlm_internal.h" -int ldlm_flock_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, - void *data, int flag); - /** * list_for_remaining_safe - iterate over the remaining entries in a list * and safeguard against removal of a list entry. @@ -254,7 +251,6 @@ ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, int first_enq, struct ldlm_lock *new = req; struct ldlm_lock *new2 = NULL; ldlm_mode_t mode = req->l_req_mode; - int local = ns_is_client(ns); int added = (mode == LCK_NL); int overlaps = 0; int splitted = 0; @@ -269,14 +265,9 @@ ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, int first_enq, *err = ELDLM_OK; - if (local) { - /* No blocking ASTs are sent to the clients for - * Posix file & record locks */ - req->l_blocking_ast = NULL; - } else { - /* Called on the server for lock cancels. */ - req->l_blocking_ast = ldlm_flock_blocking_ast; - } + /* No blocking ASTs are sent to the clients for + * Posix file & record locks */ + req->l_blocking_ast = NULL; reprocess: if ((*flags == LDLM_FL_WAIT_NOREPROC) || (mode == LCK_NL)) { @@ -708,19 +699,6 @@ granted: } EXPORT_SYMBOL(ldlm_flock_completion_ast); -int ldlm_flock_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, - void *data, int flag) -{ - LASSERT(lock); - LASSERT(flag == LDLM_CB_CANCELING); - - /* take lock off the deadlock detection hash list. */ - lock_res_and_lock(lock); - ldlm_flock_blocking_unlink(lock); - unlock_res_and_lock(lock); - return 0; -} - void ldlm_flock_policy_wire18_to_local(const ldlm_wire_policy_data_t *wpolicy, ldlm_policy_data_t *lpolicy) { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index e586d33fd4bd..6d5e7afaa3ae 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -480,8 +480,6 @@ int ldlm_lock_change_resource(struct ldlm_namespace *ns, struct ldlm_lock *lock, struct ldlm_resource *newres; int type; - LASSERT(ns_is_client(ns)); - lock_res_and_lock(lock); if (memcmp(new_resid, &lock->l_resource->lr_name, sizeof(lock->l_resource->lr_name)) == 0) { @@ -816,8 +814,7 @@ void ldlm_lock_decref_internal(struct ldlm_lock *lock, __u32 mode) if ((lock->l_flags & LDLM_FL_ATOMIC_CB) || ldlm_bl_to_thread_lock(ns, NULL, lock) != 0) ldlm_handle_bl_callback(ns, NULL, lock); - } else if (ns_is_client(ns) && - !lock->l_readers && !lock->l_writers && + } else if (!lock->l_readers && !lock->l_writers && !(lock->l_flags & LDLM_FL_NO_LRU) && !(lock->l_flags & LDLM_FL_BL_AST)) { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index 2d28fc230874..04f4144589e5 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -266,8 +266,7 @@ noreproc: spin_unlock(&imp->imp_lock); } - if (ns_is_client(ldlm_lock_to_ns(lock)) && - OBD_FAIL_CHECK_RESET(OBD_FAIL_LDLM_INTR_CP_AST, + if (OBD_FAIL_CHECK_RESET(OBD_FAIL_LDLM_INTR_CP_AST, OBD_FAIL_LDLM_CP_BL_RACE | OBD_FAIL_ONCE)) { lock->l_flags |= LDLM_FL_FAIL_LOC; rc = -EINTR; @@ -817,10 +816,8 @@ static __u64 ldlm_cli_cancel_local(struct ldlm_lock *lock) } ldlm_lock_cancel(lock); } else { - if (ns_is_client(ldlm_lock_to_ns(lock))) { - LDLM_ERROR(lock, "Trying to cancel local lock"); - LBUG(); - } + LDLM_ERROR(lock, "Trying to cancel local lock"); + LBUG(); } return rc; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index 99063727d1fe..402fe607bf4a 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -718,11 +718,12 @@ static void cleanup_resource(struct ldlm_resource *res, struct list_head *q, __u64 flags) { struct list_head *tmp; - int rc = 0, client = ns_is_client(ldlm_res_to_ns(res)); + int rc = 0; bool local_only = !!(flags & LDLM_FL_LOCAL_ONLY); do { struct ldlm_lock *lock = NULL; + struct lustre_handle lockh; /* First, we look for non-cleaned-yet lock * all cleaned locks are marked by CLEANED flag. */ @@ -767,20 +768,11 @@ static void cleanup_resource(struct ldlm_resource *res, struct list_head *q, continue; } - if (client) { - struct lustre_handle lockh; - - unlock_res(res); - ldlm_lock2handle(lock, &lockh); - rc = ldlm_cli_cancel(&lockh, LCF_ASYNC); - if (rc) - CERROR("ldlm_cli_cancel: %d\n", rc); - } else { - ldlm_resource_unlink_lock(lock); - unlock_res(res); - LDLM_DEBUG(lock, "Freeing a lock still held by a client node"); - ldlm_lock_destroy(lock); - } + unlock_res(res); + ldlm_lock2handle(lock, &lockh); + rc = ldlm_cli_cancel(&lockh, LCF_ASYNC); + if (rc) + CERROR("ldlm_cli_cancel: %d\n", rc); LDLM_LOCK_RELEASE(lock); } while (1); } @@ -1165,7 +1157,7 @@ ldlm_resource_get(struct ldlm_namespace *ns, struct ldlm_resource *parent, * namespace. If so, and this is a client namespace, we need to move * the namespace into the active namespaces list to be patrolled by * the ldlm_poold. */ - if (ns_is_client(ns) && ns_refcount == 1) { + if (ns_refcount == 1) { mutex_lock(ldlm_namespace_lock(LDLM_NAMESPACE_CLIENT)); ldlm_namespace_move_to_active_locked(ns, LDLM_NAMESPACE_CLIENT); mutex_unlock(ldlm_namespace_lock(LDLM_NAMESPACE_CLIENT)); @@ -1346,9 +1338,8 @@ void ldlm_namespace_dump(int level, struct ldlm_namespace *ns) if (!((libcfs_debug | D_ERROR) & level)) return; - CDEBUG(level, "--- Namespace: %s (rc: %d, side: %s)\n", - ldlm_ns_name(ns), atomic_read(&ns->ns_bref), - ns_is_client(ns) ? "client" : "server"); + CDEBUG(level, "--- Namespace: %s (rc: %d, side: client)\n", + ldlm_ns_name(ns), atomic_read(&ns->ns_bref)); if (time_before(cfs_time_current(), ns->ns_next_dump)) return; From 71570b98e35d9f00a5ee9936204e5d7c380491d6 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:37 -0400 Subject: [PATCH 1076/2431] staging/lustre: Remove ns_is_server() Since the code we have is Lustre-client only, this function always returns 0, so drop it and amend all the callsites to drop dead code. One of the places also sets LDLM_FL_NS_SRV to indicate a lock is in a server namespace. This too cannot happen in this code, so drop all such checks as well. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lustre_dlm.h | 13 ------------- drivers/staging/lustre/lustre/ldlm/l_lock.c | 7 ++----- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 14 -------------- drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 16 ++-------------- 4 files changed, 4 insertions(+), 46 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 1e40203f2b42..49b5a0742af8 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -464,19 +464,6 @@ struct ldlm_namespace { struct completion ns_kobj_unregister; }; -/** - * Returns 1 if namespace \a ns is a server namespace. - */ -static inline int ns_is_server(struct ldlm_namespace *ns) -{ - LASSERT(ns != NULL); - LASSERT(!(ns->ns_client & ~(LDLM_NAMESPACE_CLIENT | - LDLM_NAMESPACE_SERVER))); - LASSERT(ns->ns_client == LDLM_NAMESPACE_CLIENT || - ns->ns_client == LDLM_NAMESPACE_SERVER); - return ns->ns_client == LDLM_NAMESPACE_SERVER; -} - /** * Returns 1 if namespace \a ns supports early lock cancel (ELC). */ diff --git a/drivers/staging/lustre/lustre/ldlm/l_lock.c b/drivers/staging/lustre/lustre/ldlm/l_lock.c index cd8ab40e3267..e5d1344e817a 100644 --- a/drivers/staging/lustre/lustre/ldlm/l_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/l_lock.c @@ -50,9 +50,7 @@ */ struct ldlm_resource *lock_res_and_lock(struct ldlm_lock *lock) { - /* on server-side resource of lock doesn't change */ - if ((lock->l_flags & LDLM_FL_NS_SRV) == 0) - spin_lock(&lock->l_lock); + spin_lock(&lock->l_lock); lock_res(lock->l_resource); @@ -70,7 +68,6 @@ void unlock_res_and_lock(struct ldlm_lock *lock) lock->l_flags &= ~LDLM_FL_RES_LOCKED; unlock_res(lock->l_resource); - if ((lock->l_flags & LDLM_FL_NS_SRV) == 0) - spin_unlock(&lock->l_lock); + spin_unlock(&lock->l_lock); } EXPORT_SYMBOL(unlock_res_and_lock); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 6d5e7afaa3ae..827e5df71e4d 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -237,11 +237,6 @@ int ldlm_lock_remove_from_lru(struct ldlm_lock *lock) struct ldlm_namespace *ns = ldlm_lock_to_ns(lock); int rc; - if (lock->l_flags & LDLM_FL_NS_SRV) { - LASSERT(list_empty(&lock->l_lru)); - return 0; - } - spin_lock(&ns->ns_lock); rc = ldlm_lock_remove_from_lru_nolock(lock); spin_unlock(&ns->ns_lock); @@ -286,11 +281,6 @@ void ldlm_lock_touch_in_lru(struct ldlm_lock *lock) { struct ldlm_namespace *ns = ldlm_lock_to_ns(lock); - if (lock->l_flags & LDLM_FL_NS_SRV) { - LASSERT(list_empty(&lock->l_lru)); - return; - } - spin_lock(&ns->ns_lock); if (!list_empty(&lock->l_lru)) { ldlm_lock_remove_from_lru_nolock(lock); @@ -799,8 +789,6 @@ void ldlm_lock_decref_internal(struct ldlm_lock *lock, __u32 mode) (lock->l_flags & LDLM_FL_CBPENDING)) { /* If we received a blocked AST and this was the last reference, * run the callback. */ - if ((lock->l_flags & LDLM_FL_NS_SRV) && lock->l_export) - CERROR("FL_CBPENDING set on non-local lock--just a warning\n"); LDLM_DEBUG(lock, "final decref done on cbpending lock"); @@ -1486,8 +1474,6 @@ struct ldlm_lock *ldlm_lock_create(struct ldlm_namespace *ns, lock->l_req_mode = mode; lock->l_ast_data = data; lock->l_pid = current_pid(); - if (ns_is_server(ns)) - lock->l_flags |= LDLM_FL_NS_SRV; if (cbs) { lock->l_blocking_ast = cbs->lcs_blocking; lock->l_completion_ast = cbs->lcs_completion; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c index 94cdf5f3ffda..dac1b6f9a90c 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -656,8 +656,8 @@ EXPORT_SYMBOL(ldlm_pool_setup); static int lprocfs_pool_state_seq_show(struct seq_file *m, void *unused) { - int granted, grant_rate, cancel_rate, grant_step; - int grant_speed, grant_plan, lvf; + int granted, grant_rate, cancel_rate; + int grant_speed, lvf; struct ldlm_pool *pl = m->private; __u64 slv, clv; __u32 limit; @@ -666,13 +666,11 @@ static int lprocfs_pool_state_seq_show(struct seq_file *m, void *unused) slv = pl->pl_server_lock_volume; clv = pl->pl_client_lock_volume; limit = ldlm_pool_get_limit(pl); - grant_plan = pl->pl_grant_plan; granted = atomic_read(&pl->pl_granted); grant_rate = atomic_read(&pl->pl_grant_rate); cancel_rate = atomic_read(&pl->pl_cancel_rate); grant_speed = grant_rate - cancel_rate; lvf = atomic_read(&pl->pl_lock_volume_factor); - grant_step = ldlm_pool_t2gsp(pl->pl_recalc_period); spin_unlock(&pl->pl_lock); seq_printf(m, "LDLM pool state (%s):\n" @@ -681,11 +679,6 @@ static int lprocfs_pool_state_seq_show(struct seq_file *m, void *unused) " LVF: %d\n", pl->pl_name, slv, clv, lvf); - if (ns_is_server(ldlm_pl2ns(pl))) { - seq_printf(m, " GSP: %d%%\n" - " GP: %d\n", - grant_step, grant_plan); - } seq_printf(m, " GR: %d\n CR: %d\n GS: %d\n" " G: %d\n L: %d\n", grant_rate, cancel_rate, grant_speed, @@ -966,8 +959,6 @@ void ldlm_pool_add(struct ldlm_pool *pl, struct ldlm_lock *lock) * enqueue/cancel rpc. Also we do not want to run out of stack * with too long call paths. */ - if (ns_is_server(ldlm_pl2ns(pl))) - ldlm_pool_recalc(pl); } EXPORT_SYMBOL(ldlm_pool_add); @@ -987,9 +978,6 @@ void ldlm_pool_del(struct ldlm_pool *pl, struct ldlm_lock *lock) atomic_inc(&pl->pl_cancel_rate); lprocfs_counter_incr(pl->pl_stats, LDLM_POOL_CANCEL_STAT); - - if (ns_is_server(ldlm_pl2ns(pl))) - ldlm_pool_recalc(pl); } EXPORT_SYMBOL(ldlm_pool_del); From 00f9d12b6b334208e8d5e1097db67793492d25a7 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:38 -0400 Subject: [PATCH 1077/2431] staging/lustre/ldlm: Remove server side code from pool support. Server-side scanning is not really used in the client code, so it's ok to drop it. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 3 - .../staging/lustre/lustre/ldlm/ldlm_pool.c | 348 +----------------- 2 files changed, 13 insertions(+), 338 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 49b5a0742af8..3cca07e19349 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -213,7 +213,6 @@ struct ldlm_pool_ops { /** Cancel at least \a nr locks from pool \a pl */ int (*po_shrink)(struct ldlm_pool *pl, int nr, gfp_t gfp_mask); - int (*po_setup)(struct ldlm_pool *pl, int limit); }; /** One second for pools thread check interval. Each pool has own period. */ @@ -1347,7 +1346,6 @@ void unlock_res_and_lock(struct ldlm_lock *lock); * There are not used outside of ldlm. * @{ */ -int ldlm_pools_recalc(ldlm_side_t client); int ldlm_pools_init(void); void ldlm_pools_fini(void); @@ -1356,7 +1354,6 @@ int ldlm_pool_init(struct ldlm_pool *pl, struct ldlm_namespace *ns, int ldlm_pool_shrink(struct ldlm_pool *pl, int nr, gfp_t gfp_mask); void ldlm_pool_fini(struct ldlm_pool *pl); -int ldlm_pool_setup(struct ldlm_pool *pl, int limit); int ldlm_pool_recalc(struct ldlm_pool *pl); __u32 ldlm_pool_get_lvf(struct ldlm_pool *pl); __u64 ldlm_pool_get_slv(struct ldlm_pool *pl); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c index dac1b6f9a90c..78d1baf3400d 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -213,70 +213,6 @@ static inline int ldlm_pool_t2gsp(unsigned int t) (t >> LDLM_POOL_GSP_STEP_SHIFT)); } -/** - * Recalculates next grant limit on passed \a pl. - * - * \pre ->pl_lock is locked. - */ -static void ldlm_pool_recalc_grant_plan(struct ldlm_pool *pl) -{ - int granted, grant_step, limit; - - limit = ldlm_pool_get_limit(pl); - granted = atomic_read(&pl->pl_granted); - - grant_step = ldlm_pool_t2gsp(pl->pl_recalc_period); - grant_step = ((limit - granted) * grant_step) / 100; - pl->pl_grant_plan = granted + grant_step; - limit = (limit * 5) >> 2; - if (pl->pl_grant_plan > limit) - pl->pl_grant_plan = limit; -} - -/** - * Recalculates next SLV on passed \a pl. - * - * \pre ->pl_lock is locked. - */ -static void ldlm_pool_recalc_slv(struct ldlm_pool *pl) -{ - int granted; - int grant_plan; - int round_up; - __u64 slv; - __u64 slv_factor; - __u64 grant_usage; - __u32 limit; - - slv = pl->pl_server_lock_volume; - grant_plan = pl->pl_grant_plan; - limit = ldlm_pool_get_limit(pl); - granted = atomic_read(&pl->pl_granted); - round_up = granted < limit; - - grant_usage = max_t(int, limit - (granted - grant_plan), 1); - - /* - * Find out SLV change factor which is the ratio of grant usage - * from limit. SLV changes as fast as the ratio of grant plan - * consumption. The more locks from grant plan are not consumed - * by clients in last interval (idle time), the faster grows - * SLV. And the opposite, the more grant plan is over-consumed - * (load time) the faster drops SLV. - */ - slv_factor = grant_usage << LDLM_POOL_SLV_SHIFT; - do_div(slv_factor, limit); - slv = slv * slv_factor; - slv = dru(slv, LDLM_POOL_SLV_SHIFT, round_up); - - if (slv > ldlm_pool_slv_max(limit)) - slv = ldlm_pool_slv_max(limit); - else if (slv < ldlm_pool_slv_min(limit)) - slv = ldlm_pool_slv_min(limit); - - pl->pl_server_lock_volume = slv; -} - /** * Recalculates next stats on passed \a pl. * @@ -302,147 +238,6 @@ static void ldlm_pool_recalc_stats(struct ldlm_pool *pl) cancel_rate); } -/** - * Sets current SLV into obd accessible via ldlm_pl2ns(pl)->ns_obd. - */ -static void ldlm_srv_pool_push_slv(struct ldlm_pool *pl) -{ - struct obd_device *obd; - - /* - * Set new SLV in obd field for using it later without accessing the - * pool. This is required to avoid race between sending reply to client - * with new SLV and cleanup server stack in which we can't guarantee - * that namespace is still alive. We know only that obd is alive as - * long as valid export is alive. - */ - obd = ldlm_pl2ns(pl)->ns_obd; - LASSERT(obd != NULL); - write_lock(&obd->obd_pool_lock); - obd->obd_pool_slv = pl->pl_server_lock_volume; - write_unlock(&obd->obd_pool_lock); -} - -/** - * Recalculates all pool fields on passed \a pl. - * - * \pre ->pl_lock is not locked. - */ -static int ldlm_srv_pool_recalc(struct ldlm_pool *pl) -{ - time64_t recalc_interval_sec; - - recalc_interval_sec = ktime_get_real_seconds() - pl->pl_recalc_time; - if (recalc_interval_sec < pl->pl_recalc_period) - return 0; - - spin_lock(&pl->pl_lock); - recalc_interval_sec = ktime_get_real_seconds() - pl->pl_recalc_time; - if (recalc_interval_sec < pl->pl_recalc_period) { - spin_unlock(&pl->pl_lock); - return 0; - } - /* - * Recalc SLV after last period. This should be done - * _before_ recalculating new grant plan. - */ - ldlm_pool_recalc_slv(pl); - - /* - * Make sure that pool informed obd of last SLV changes. - */ - ldlm_srv_pool_push_slv(pl); - - /* - * Update grant_plan for new period. - */ - ldlm_pool_recalc_grant_plan(pl); - - pl->pl_recalc_time = ktime_get_real_seconds(); - lprocfs_counter_add(pl->pl_stats, LDLM_POOL_TIMING_STAT, - recalc_interval_sec); - spin_unlock(&pl->pl_lock); - return 0; -} - -/** - * This function is used on server side as main entry point for memory - * pressure handling. It decreases SLV on \a pl according to passed - * \a nr and \a gfp_mask. - * - * Our goal here is to decrease SLV such a way that clients hold \a nr - * locks smaller in next 10h. - */ -static int ldlm_srv_pool_shrink(struct ldlm_pool *pl, - int nr, gfp_t gfp_mask) -{ - __u32 limit; - - /* - * VM is asking how many entries may be potentially freed. - */ - if (nr == 0) - return atomic_read(&pl->pl_granted); - - /* - * Client already canceled locks but server is already in shrinker - * and can't cancel anything. Let's catch this race. - */ - if (atomic_read(&pl->pl_granted) == 0) - return 0; - - spin_lock(&pl->pl_lock); - - /* - * We want shrinker to possibly cause cancellation of @nr locks from - * clients or grant approximately @nr locks smaller next intervals. - * - * This is why we decreased SLV by @nr. This effect will only be as - * long as one re-calc interval (1s these days) and this should be - * enough to pass this decreased SLV to all clients. On next recalc - * interval pool will either increase SLV if locks load is not high - * or will keep on same level or even decrease again, thus, shrinker - * decreased SLV will affect next recalc intervals and this way will - * make locking load lower. - */ - if (nr < pl->pl_server_lock_volume) { - pl->pl_server_lock_volume = pl->pl_server_lock_volume - nr; - } else { - limit = ldlm_pool_get_limit(pl); - pl->pl_server_lock_volume = ldlm_pool_slv_min(limit); - } - - /* - * Make sure that pool informed obd of last SLV changes. - */ - ldlm_srv_pool_push_slv(pl); - spin_unlock(&pl->pl_lock); - - /* - * We did not really free any memory here so far, it only will be - * freed later may be, so that we return 0 to not confuse VM. - */ - return 0; -} - -/** - * Setup server side pool \a pl with passed \a limit. - */ -static int ldlm_srv_pool_setup(struct ldlm_pool *pl, int limit) -{ - struct obd_device *obd; - - obd = ldlm_pl2ns(pl)->ns_obd; - LASSERT(obd != NULL && obd != LP_POISON); - LASSERT(obd->obd_type != LP_POISON); - write_lock(&obd->obd_pool_lock); - obd->obd_pool_limit = limit; - write_unlock(&obd->obd_pool_lock); - - ldlm_pool_set_limit(pl, limit); - return 0; -} - /** * Sets SLV and Limit from ldlm_pl2ns(pl)->ns_obd tp passed \a pl. */ @@ -554,12 +349,6 @@ static int ldlm_cli_pool_shrink(struct ldlm_pool *pl, return ldlm_cancel_lru(ns, nr, LCF_ASYNC, LDLM_CANCEL_SHRINK); } -static const struct ldlm_pool_ops ldlm_srv_pool_ops = { - .po_recalc = ldlm_srv_pool_recalc, - .po_shrink = ldlm_srv_pool_shrink, - .po_setup = ldlm_srv_pool_setup -}; - static const struct ldlm_pool_ops ldlm_cli_pool_ops = { .po_recalc = ldlm_cli_pool_recalc, .po_shrink = ldlm_cli_pool_shrink @@ -640,20 +429,6 @@ int ldlm_pool_shrink(struct ldlm_pool *pl, int nr, } EXPORT_SYMBOL(ldlm_pool_shrink); -/** - * Pool setup wrapper. Will call either client or server pool recalc callback - * depending what pool \a pl is used. - * - * Sets passed \a limit into pool \a pl. - */ -int ldlm_pool_setup(struct ldlm_pool *pl, int limit) -{ - if (pl->pl_ops->po_setup != NULL) - return pl->pl_ops->po_setup(pl, limit); - return 0; -} -EXPORT_SYMBOL(ldlm_pool_setup); - static int lprocfs_pool_state_seq_show(struct seq_file *m, void *unused) { int granted, grant_rate, cancel_rate; @@ -896,17 +671,10 @@ int ldlm_pool_init(struct ldlm_pool *pl, struct ldlm_namespace *ns, snprintf(pl->pl_name, sizeof(pl->pl_name), "ldlm-pool-%s-%d", ldlm_ns_name(ns), idx); - if (client == LDLM_NAMESPACE_SERVER) { - pl->pl_ops = &ldlm_srv_pool_ops; - ldlm_pool_set_limit(pl, LDLM_POOL_HOST_L); - pl->pl_recalc_period = LDLM_POOL_SRV_DEF_RECALC_PERIOD; - pl->pl_server_lock_volume = ldlm_pool_slv_max(LDLM_POOL_HOST_L); - } else { - ldlm_pool_set_limit(pl, 1); - pl->pl_server_lock_volume = 0; - pl->pl_ops = &ldlm_cli_pool_ops; - pl->pl_recalc_period = LDLM_POOL_CLI_DEF_RECALC_PERIOD; - } + ldlm_pool_set_limit(pl, 1); + pl->pl_server_lock_volume = 0; + pl->pl_ops = &ldlm_cli_pool_ops; + pl->pl_recalc_period = LDLM_POOL_CLI_DEF_RECALC_PERIOD; pl->pl_client_lock_volume = 0; rc = ldlm_pool_debugfs_init(pl); if (rc) @@ -1148,20 +916,7 @@ static unsigned long ldlm_pools_scan(ldlm_side_t client, int nr, gfp_t gfp_mask) * we only decrease the SLV in server pools shrinker, return * SHRINK_STOP to kernel to avoid needless loop. LU-1128 */ - return (client == LDLM_NAMESPACE_SERVER) ? SHRINK_STOP : freed; -} - -static unsigned long ldlm_pools_srv_count(struct shrinker *s, - struct shrink_control *sc) -{ - return ldlm_pools_count(LDLM_NAMESPACE_SERVER, sc->gfp_mask); -} - -static unsigned long ldlm_pools_srv_scan(struct shrinker *s, - struct shrink_control *sc) -{ - return ldlm_pools_scan(LDLM_NAMESPACE_SERVER, sc->nr_to_scan, - sc->gfp_mask); + return freed; } static unsigned long ldlm_pools_cli_count(struct shrinker *s, @@ -1177,81 +932,13 @@ static unsigned long ldlm_pools_cli_scan(struct shrinker *s, sc->gfp_mask); } -int ldlm_pools_recalc(ldlm_side_t client) +static int ldlm_pools_recalc(ldlm_side_t client) { - __u32 nr_l = 0, nr_p = 0, l; struct ldlm_namespace *ns; struct ldlm_namespace *ns_old = NULL; - int nr, equal = 0; + int nr; int time = 50; /* seconds of sleep if no active namespaces */ - /* - * No need to setup pool limit for client pools. - */ - if (client == LDLM_NAMESPACE_SERVER) { - /* - * Check all modest namespaces first. - */ - mutex_lock(ldlm_namespace_lock(client)); - list_for_each_entry(ns, ldlm_namespace_list(client), - ns_list_chain) { - if (ns->ns_appetite != LDLM_NAMESPACE_MODEST) - continue; - - l = ldlm_pool_granted(&ns->ns_pool); - if (l == 0) - l = 1; - - /* - * Set the modest pools limit equal to their avg granted - * locks + ~6%. - */ - l += dru(l, LDLM_POOLS_MODEST_MARGIN_SHIFT, 0); - ldlm_pool_setup(&ns->ns_pool, l); - nr_l += l; - nr_p++; - } - - /* - * Make sure that modest namespaces did not eat more that 2/3 - * of limit. - */ - if (nr_l >= 2 * (LDLM_POOL_HOST_L / 3)) { - CWARN("\"Modest\" pools eat out 2/3 of server locks limit (%d of %lu). This means that you have too many clients for this amount of server RAM. Upgrade server!\n", - nr_l, LDLM_POOL_HOST_L); - equal = 1; - } - - /* - * The rest is given to greedy namespaces. - */ - list_for_each_entry(ns, ldlm_namespace_list(client), - ns_list_chain) { - if (!equal && ns->ns_appetite != LDLM_NAMESPACE_GREEDY) - continue; - - if (equal) { - /* - * In the case 2/3 locks are eaten out by - * modest pools, we re-setup equal limit - * for _all_ pools. - */ - l = LDLM_POOL_HOST_L / - ldlm_namespace_nr_read(client); - } else { - /* - * All the rest of greedy pools will have - * all locks in equal parts. - */ - l = (LDLM_POOL_HOST_L - nr_l) / - (ldlm_namespace_nr_read(client) - - nr_p); - } - ldlm_pool_setup(&ns->ns_pool, l); - } - mutex_unlock(ldlm_namespace_lock(client)); - } - /* * Recalc at least ldlm_namespace_nr_read(client) namespaces. */ @@ -1330,7 +1017,7 @@ EXPORT_SYMBOL(ldlm_pools_recalc); static int ldlm_pools_thread_main(void *arg) { struct ptlrpc_thread *thread = (struct ptlrpc_thread *)arg; - int s_time, c_time; + int c_time; thread_set_flags(thread, SVC_RUNNING); wake_up(&thread->t_ctl_waitq); @@ -1344,14 +1031,13 @@ static int ldlm_pools_thread_main(void *arg) /* * Recal all pools on this tick. */ - s_time = ldlm_pools_recalc(LDLM_NAMESPACE_SERVER); c_time = ldlm_pools_recalc(LDLM_NAMESPACE_CLIENT); /* * Wait until the next check time, or until we're * stopped. */ - lwi = LWI_TIMEOUT(cfs_time_seconds(min(s_time, c_time)), + lwi = LWI_TIMEOUT(cfs_time_seconds(c_time), NULL, NULL); l_wait_event(thread->t_ctl_waitq, thread_is_stopping(thread) || @@ -1418,12 +1104,6 @@ static void ldlm_pools_thread_stop(void) ldlm_pools_thread = NULL; } -static struct shrinker ldlm_pools_srv_shrinker = { - .count_objects = ldlm_pools_srv_count, - .scan_objects = ldlm_pools_srv_scan, - .seeks = DEFAULT_SEEKS, -}; - static struct shrinker ldlm_pools_cli_shrinker = { .count_objects = ldlm_pools_cli_count, .scan_objects = ldlm_pools_cli_scan, @@ -1435,20 +1115,18 @@ int ldlm_pools_init(void) int rc; rc = ldlm_pools_thread_start(); - if (rc == 0) { - register_shrinker(&ldlm_pools_srv_shrinker); + if (rc == 0) register_shrinker(&ldlm_pools_cli_shrinker); - } + return rc; } EXPORT_SYMBOL(ldlm_pools_init); void ldlm_pools_fini(void) { - if (ldlm_pools_thread) { - unregister_shrinker(&ldlm_pools_srv_shrinker); + if (ldlm_pools_thread) unregister_shrinker(&ldlm_pools_cli_shrinker); - } + ldlm_pools_thread_stop(); } EXPORT_SYMBOL(ldlm_pools_fini); From 58c6d1337761b8adc69a422f40f8701db6807f24 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:39 -0400 Subject: [PATCH 1078/2431] staging/lustre/ldlm: Remove unused exported symbols. This rather large patch prunes all unused EXPORT_SYMBOLS and marks functions only used locally as static lustre ldlm module. The only two remaining nonstatic functions that should be static now are: ldlm_cancel_lru_local ldlm_resource_putref_locked But some bigger code shuffling around is needed to achieve that, so it's left for a future patch. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_dlm.h | 26 ------ .../staging/lustre/lustre/ldlm/ldlm_extent.c | 22 ++--- .../staging/lustre/lustre/ldlm/ldlm_flock.c | 6 +- .../lustre/lustre/ldlm/ldlm_internal.h | 21 ++--- .../staging/lustre/lustre/ldlm/ldlm_lock.c | 30 +++---- .../staging/lustre/lustre/ldlm/ldlm_lockd.c | 4 +- .../staging/lustre/lustre/ldlm/ldlm_pool.c | 43 ++++------ .../staging/lustre/lustre/ldlm/ldlm_request.c | 28 +++---- .../lustre/lustre/ldlm/ldlm_resource.c | 82 ++++++++++--------- 9 files changed, 111 insertions(+), 151 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 3cca07e19349..dfc49e10c294 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -60,9 +60,6 @@ struct obd_ops; struct obd_device; -extern struct kset *ldlm_ns_kset; -extern struct kset *ldlm_svc_kset; - #define OBD_LDLM_DEVICENAME "ldlm" #define LDLM_DEFAULT_LRU_SIZE (100 * num_online_cpus()) @@ -561,9 +558,6 @@ typedef union { struct ldlm_inodebits l_inodebits; } ldlm_policy_data_t; -void ldlm_convert_policy_to_wire(ldlm_type_t type, - const ldlm_policy_data_t *lpolicy, - ldlm_wire_policy_data_t *wpolicy); void ldlm_convert_policy_to_local(struct obd_export *exp, ldlm_type_t type, const ldlm_wire_policy_data_t *wpolicy, ldlm_policy_data_t *lpolicy); @@ -980,7 +974,6 @@ struct ldlm_enqueue_info { extern struct obd_ops ldlm_obd_ops; extern char *ldlm_lockname[]; -extern char *ldlm_typename[]; char *ldlm_it2str(int it); /** @@ -1051,10 +1044,6 @@ typedef int (*ldlm_res_iterator_t)(struct ldlm_resource *, void *); * LDLM provides for a way to iterate through every lock on a resource or * namespace or every resource in a namespace. * @{ */ -int ldlm_resource_foreach(struct ldlm_resource *res, ldlm_iterator_t iter, - void *closure); -void ldlm_namespace_foreach(struct ldlm_namespace *ns, ldlm_iterator_t iter, - void *closure); int ldlm_resource_iterate(struct ldlm_namespace *, const struct ldlm_res_id *, ldlm_iterator_t iter, void *data); /** @} ldlm_iterator */ @@ -1172,7 +1161,6 @@ do { \ struct ldlm_lock *ldlm_lock_get(struct ldlm_lock *lock); void ldlm_lock_put(struct ldlm_lock *lock); -void ldlm_lock_destroy(struct ldlm_lock *lock); void ldlm_lock2desc(struct ldlm_lock *lock, struct ldlm_lock_desc *desc); void ldlm_lock_addref(struct lustre_handle *lockh, __u32 mode); int ldlm_lock_addref_try(struct lustre_handle *lockh, __u32 mode); @@ -1197,8 +1185,6 @@ ldlm_namespace_new(struct obd_device *obd, char *name, ldlm_side_t client, ldlm_appetite_t apt, ldlm_ns_type_t ns_type); int ldlm_namespace_cleanup(struct ldlm_namespace *ns, __u64 flags); -void ldlm_namespace_register(struct ldlm_namespace *ns, ldlm_side_t client); -void ldlm_namespace_unregister(struct ldlm_namespace *ns, ldlm_side_t client); void ldlm_namespace_get(struct ldlm_namespace *ns); void ldlm_namespace_put(struct ldlm_namespace *ns); int ldlm_debugfs_setup(void); @@ -1209,7 +1195,6 @@ struct ldlm_resource *ldlm_resource_get(struct ldlm_namespace *ns, struct ldlm_resource *parent, const struct ldlm_res_id *, ldlm_type_t type, int create); -struct ldlm_resource *ldlm_resource_getref(struct ldlm_resource *res); int ldlm_resource_putref(struct ldlm_resource *res); void ldlm_resource_add_lock(struct ldlm_resource *res, struct list_head *head, @@ -1231,7 +1216,6 @@ int ldlm_lock_change_resource(struct ldlm_namespace *, struct ldlm_lock *, } while (0) /* ldlm_request.c */ -int ldlm_expired_completion_wait(void *data); /** \defgroup ldlm_local_ast Default AST handlers for local locks * These AST handlers are typically used for server-side local locks and are * also used by client-side lock handlers to perform minimum level base @@ -1275,8 +1259,6 @@ int ldlm_cli_cancel_unused_resource(struct ldlm_namespace *ns, ldlm_mode_t mode, ldlm_cancel_flags_t flags, void *opaque); -int ldlm_cli_cancel_req(struct obd_export *exp, struct list_head *head, - int count, ldlm_cancel_flags_t flags); int ldlm_cancel_resource_local(struct ldlm_resource *res, struct list_head *cancels, ldlm_policy_data_t *policy, @@ -1351,15 +1333,7 @@ void ldlm_pools_fini(void); int ldlm_pool_init(struct ldlm_pool *pl, struct ldlm_namespace *ns, int idx, ldlm_side_t client); -int ldlm_pool_shrink(struct ldlm_pool *pl, int nr, - gfp_t gfp_mask); void ldlm_pool_fini(struct ldlm_pool *pl); -int ldlm_pool_recalc(struct ldlm_pool *pl); -__u32 ldlm_pool_get_lvf(struct ldlm_pool *pl); -__u64 ldlm_pool_get_slv(struct ldlm_pool *pl); -__u32 ldlm_pool_get_limit(struct ldlm_pool *pl); -void ldlm_pool_set_clv(struct ldlm_pool *pl, __u64 clv); -void ldlm_pool_set_limit(struct ldlm_pool *pl, __u32 limit); void ldlm_pool_add(struct ldlm_pool *pl, struct ldlm_lock *lock); void ldlm_pool_del(struct ldlm_pool *pl, struct ldlm_lock *lock); /** @} */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c index fd9b059361f9..05bc4f381a62 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c @@ -97,6 +97,17 @@ __u64 ldlm_extent_shift_kms(struct ldlm_lock *lock, __u64 old_kms) EXPORT_SYMBOL(ldlm_extent_shift_kms); struct kmem_cache *ldlm_interval_slab; + +/* interval tree, for LDLM_EXTENT. */ +static void ldlm_interval_attach(struct ldlm_interval *n, struct ldlm_lock *l) +{ + LASSERT(!l->l_tree_node); + LASSERT(l->l_resource->lr_type == LDLM_EXTENT); + + list_add_tail(&l->l_sl_policy, &n->li_group); + l->l_tree_node = n; +} + struct ldlm_interval *ldlm_interval_alloc(struct ldlm_lock *lock) { struct ldlm_interval *node; @@ -120,17 +131,6 @@ void ldlm_interval_free(struct ldlm_interval *node) } } -/* interval tree, for LDLM_EXTENT. */ -void ldlm_interval_attach(struct ldlm_interval *n, - struct ldlm_lock *l) -{ - LASSERT(l->l_tree_node == NULL); - LASSERT(l->l_resource->lr_type == LDLM_EXTENT); - - list_add_tail(&l->l_sl_policy, &n->li_group); - l->l_tree_node = n; -} - struct ldlm_interval *ldlm_interval_detach(struct ldlm_lock *l) { struct ldlm_interval *n = l->l_tree_node; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index 7241c34fd225..57b4edb8958d 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c @@ -239,9 +239,9 @@ static void ldlm_flock_cancel_on_deadlock(struct ldlm_lock *lock, * - blocking ASTs have not been sent yet, so list of conflicting locks * would be collected and ASTs sent. */ -int -ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, int first_enq, - ldlm_error_t *err, struct list_head *work_list) +static int ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, + int first_enq, ldlm_error_t *err, + struct list_head *work_list) { struct ldlm_resource *res = req->l_resource; struct ldlm_namespace *ns = ldlm_res_to_ns(res); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index 56805d03dfdf..e63a1c9afb28 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h @@ -109,10 +109,9 @@ enum { int ldlm_cancel_lru(struct ldlm_namespace *ns, int nr, ldlm_cancel_flags_t sync, int flags); int ldlm_cancel_lru_local(struct ldlm_namespace *ns, - struct list_head *cancels, int count, int max, - ldlm_cancel_flags_t cancel_flags, int flags); + struct list_head *cancels, int count, int max, + ldlm_cancel_flags_t cancel_flags, int flags); extern int ldlm_enqueue_min; -int ldlm_get_enq_timeout(struct ldlm_lock *lock); /* ldlm_resource.c */ int ldlm_resource_putref_locked(struct ldlm_resource *res); @@ -154,12 +153,8 @@ void ldlm_add_ast_work_item(struct ldlm_lock *lock, struct ldlm_lock *new, struct list_head *work_list); int ldlm_run_ast_work(struct ldlm_namespace *ns, struct list_head *rpc_list, enum ldlm_desc_ast_t ast_type); -int ldlm_work_gl_ast_lock(struct ptlrpc_request_set *rqset, void *opaq); int ldlm_lock_remove_from_lru(struct ldlm_lock *lock); int ldlm_lock_remove_from_lru_nolock(struct ldlm_lock *lock); -void ldlm_lock_add_to_lru_nolock(struct ldlm_lock *lock); -void ldlm_lock_add_to_lru(struct ldlm_lock *lock); -void ldlm_lock_touch_in_lru(struct ldlm_lock *lock); void ldlm_lock_destroy_nolock(struct ldlm_lock *lock); /* ldlm_lockd.c */ @@ -174,6 +169,7 @@ void ldlm_handle_bl_callback(struct ldlm_namespace *ns, struct ldlm_lock_desc *ld, struct ldlm_lock *lock); extern struct kmem_cache *ldlm_resource_slab; +extern struct kset *ldlm_ns_kset; /* ldlm_lockd.c & ldlm_lock.c */ extern struct kmem_cache *ldlm_lock_slab; @@ -182,11 +178,6 @@ extern struct kmem_cache *ldlm_lock_slab; void ldlm_extent_add_lock(struct ldlm_resource *res, struct ldlm_lock *lock); void ldlm_extent_unlink_lock(struct ldlm_lock *lock); -/* ldlm_flock.c */ -int ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, - int first_enq, ldlm_error_t *err, - struct list_head *work_list); - /* l_lock.c */ void l_check_ns_lock(struct ldlm_namespace *ns); void l_check_no_ns_lock(struct ldlm_namespace *ns); @@ -201,9 +192,13 @@ struct ldlm_state { struct ldlm_bl_pool *ldlm_bl_pool; }; +/* ldlm_pool.c */ +__u64 ldlm_pool_get_slv(struct ldlm_pool *pl); +void ldlm_pool_set_clv(struct ldlm_pool *pl, __u64 clv); +__u32 ldlm_pool_get_lvf(struct ldlm_pool *pl); + /* interval tree, for LDLM_EXTENT. */ extern struct kmem_cache *ldlm_interval_slab; /* slab cache for ldlm_interval */ -void ldlm_interval_attach(struct ldlm_interval *n, struct ldlm_lock *l); struct ldlm_interval *ldlm_interval_detach(struct ldlm_lock *l); struct ldlm_interval *ldlm_interval_alloc(struct ldlm_lock *lock); void ldlm_interval_free(struct ldlm_interval *node); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 827e5df71e4d..0ba1ac37d9bc 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -60,13 +60,12 @@ char *ldlm_lockname[] = { }; EXPORT_SYMBOL(ldlm_lockname); -char *ldlm_typename[] = { +static char *ldlm_typename[] = { [LDLM_PLAIN] = "PLN", [LDLM_EXTENT] = "EXT", [LDLM_FLOCK] = "FLK", [LDLM_IBITS] = "IBT", }; -EXPORT_SYMBOL(ldlm_typename); static ldlm_policy_wire_to_local_t ldlm_policy_wire18_to_local[] = { [LDLM_PLAIN - LDLM_MIN_TYPE] = ldlm_plain_policy_wire_to_local, @@ -92,9 +91,9 @@ static ldlm_policy_local_to_wire_t ldlm_policy_local_to_wire[] = { /** * Converts lock policy from local format to on the wire lock_desc format */ -void ldlm_convert_policy_to_wire(ldlm_type_t type, - const ldlm_policy_data_t *lpolicy, - ldlm_wire_policy_data_t *wpolicy) +static void ldlm_convert_policy_to_wire(ldlm_type_t type, + const ldlm_policy_data_t *lpolicy, + ldlm_wire_policy_data_t *wpolicy) { ldlm_policy_local_to_wire_t convert; @@ -246,7 +245,7 @@ int ldlm_lock_remove_from_lru(struct ldlm_lock *lock) /** * Adds LDLM lock \a lock to namespace LRU. Assumes LRU is already locked. */ -void ldlm_lock_add_to_lru_nolock(struct ldlm_lock *lock) +static void ldlm_lock_add_to_lru_nolock(struct ldlm_lock *lock) { struct ldlm_namespace *ns = ldlm_lock_to_ns(lock); @@ -264,7 +263,7 @@ void ldlm_lock_add_to_lru_nolock(struct ldlm_lock *lock) * Adds LDLM lock \a lock to namespace LRU. Obtains necessary LRU locks * first. */ -void ldlm_lock_add_to_lru(struct ldlm_lock *lock) +static void ldlm_lock_add_to_lru(struct ldlm_lock *lock) { struct ldlm_namespace *ns = ldlm_lock_to_ns(lock); @@ -277,7 +276,7 @@ void ldlm_lock_add_to_lru(struct ldlm_lock *lock) * Moves LDLM lock \a lock that is already in namespace LRU to the tail of * the LRU. Performs necessary LRU locking */ -void ldlm_lock_touch_in_lru(struct ldlm_lock *lock) +static void ldlm_lock_touch_in_lru(struct ldlm_lock *lock) { struct ldlm_namespace *ns = ldlm_lock_to_ns(lock); @@ -308,7 +307,7 @@ void ldlm_lock_touch_in_lru(struct ldlm_lock *lock) * ldlm_lock_destroy, you can never drop your final references on this lock. * Because it's not in the hash table anymore. -phil */ -int ldlm_lock_destroy_internal(struct ldlm_lock *lock) +static int ldlm_lock_destroy_internal(struct ldlm_lock *lock) { if (lock->l_readers || lock->l_writers) { LDLM_ERROR(lock, "lock still has references"); @@ -355,7 +354,7 @@ int ldlm_lock_destroy_internal(struct ldlm_lock *lock) /** * Destroys a LDLM lock \a lock. Performs necessary locking first. */ -void ldlm_lock_destroy(struct ldlm_lock *lock) +static void ldlm_lock_destroy(struct ldlm_lock *lock) { int first; @@ -397,7 +396,7 @@ static void lock_handle_free(void *lock, int size) OBD_SLAB_FREE(lock, ldlm_lock_slab, size); } -struct portals_handle_ops lock_handle_ops = { +static struct portals_handle_ops lock_handle_ops = { .hop_addref = lock_handle_addref, .hop_free = lock_handle_free, }; @@ -606,8 +605,8 @@ EXPORT_SYMBOL(ldlm_lock2desc); * * Only add if we have not sent a blocking AST to the lock yet. */ -void ldlm_add_bl_work_item(struct ldlm_lock *lock, struct ldlm_lock *new, - struct list_head *work_list) +static void ldlm_add_bl_work_item(struct ldlm_lock *lock, struct ldlm_lock *new, + struct list_head *work_list) { if ((lock->l_flags & LDLM_FL_AST_SENT) == 0) { LDLM_DEBUG(lock, "lock incompatible; sending blocking AST."); @@ -627,7 +626,8 @@ void ldlm_add_bl_work_item(struct ldlm_lock *lock, struct ldlm_lock *new, /** * Add a lock to list of just granted locks to send completion AST to. */ -void ldlm_add_cp_work_item(struct ldlm_lock *lock, struct list_head *work_list) +static void ldlm_add_cp_work_item(struct ldlm_lock *lock, + struct list_head *work_list) { if ((lock->l_flags & LDLM_FL_CP_REQD) == 0) { lock->l_flags |= LDLM_FL_CP_REQD; @@ -1673,7 +1673,7 @@ ldlm_work_revoke_ast_lock(struct ptlrpc_request_set *rqset, void *opaq) /** * Process a call to glimpse AST callback for a lock in ast_work list */ -int ldlm_work_gl_ast_lock(struct ptlrpc_request_set *rqset, void *opaq) +static int ldlm_work_gl_ast_lock(struct ptlrpc_request_set *rqset, void *opaq) { struct ldlm_cb_set_arg *arg = opaq; struct ldlm_glimpse_work *gl_work; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c index 045e3c66139f..152bdaacc218 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c @@ -58,9 +58,9 @@ MODULE_PARM_DESC(ldlm_cpts, "CPU partitions ldlm threads should run on"); static struct mutex ldlm_ref_mutex; static int ldlm_refcount; -struct kobject *ldlm_kobj; +static struct kobject *ldlm_kobj; struct kset *ldlm_ns_kset; -struct kset *ldlm_svc_kset; +static struct kset *ldlm_svc_kset; struct ldlm_cb_async_args { struct ldlm_cb_set_arg *ca_set_arg; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c index 78d1baf3400d..a4ee591d4e37 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -213,6 +213,22 @@ static inline int ldlm_pool_t2gsp(unsigned int t) (t >> LDLM_POOL_GSP_STEP_SHIFT)); } +/** + * Returns current \a pl limit. + */ +static __u32 ldlm_pool_get_limit(struct ldlm_pool *pl) +{ + return atomic_read(&pl->pl_limit); +} + +/** + * Sets passed \a limit to \a pl. + */ +static void ldlm_pool_set_limit(struct ldlm_pool *pl, __u32 limit) +{ + atomic_set(&pl->pl_limit, limit); +} + /** * Recalculates next stats on passed \a pl. * @@ -358,7 +374,7 @@ static const struct ldlm_pool_ops ldlm_cli_pool_ops = { * Pool recalc wrapper. Will call either client or server pool recalc callback * depending what pool \a pl is used. */ -int ldlm_pool_recalc(struct ldlm_pool *pl) +static int ldlm_pool_recalc(struct ldlm_pool *pl) { u32 recalc_interval_sec; int count; @@ -407,8 +423,7 @@ int ldlm_pool_recalc(struct ldlm_pool *pl) * depending what pool pl is used. When nr == 0, just return the number of * freeable locks. Otherwise, return the number of canceled locks. */ -int ldlm_pool_shrink(struct ldlm_pool *pl, int nr, - gfp_t gfp_mask) +static int ldlm_pool_shrink(struct ldlm_pool *pl, int nr, gfp_t gfp_mask) { int cancel = 0; @@ -427,7 +442,6 @@ int ldlm_pool_shrink(struct ldlm_pool *pl, int nr, } return cancel; } -EXPORT_SYMBOL(ldlm_pool_shrink); static int lprocfs_pool_state_seq_show(struct seq_file *m, void *unused) { @@ -763,7 +777,6 @@ __u64 ldlm_pool_get_slv(struct ldlm_pool *pl) spin_unlock(&pl->pl_lock); return slv; } -EXPORT_SYMBOL(ldlm_pool_get_slv); /** * Sets passed \a clv to \a pl. @@ -776,25 +789,6 @@ void ldlm_pool_set_clv(struct ldlm_pool *pl, __u64 clv) pl->pl_client_lock_volume = clv; spin_unlock(&pl->pl_lock); } -EXPORT_SYMBOL(ldlm_pool_set_clv); - -/** - * Returns current \a pl limit. - */ -__u32 ldlm_pool_get_limit(struct ldlm_pool *pl) -{ - return atomic_read(&pl->pl_limit); -} -EXPORT_SYMBOL(ldlm_pool_get_limit); - -/** - * Sets passed \a limit to \a pl. - */ -void ldlm_pool_set_limit(struct ldlm_pool *pl, __u32 limit) -{ - atomic_set(&pl->pl_limit, limit); -} -EXPORT_SYMBOL(ldlm_pool_set_limit); /** * Returns current LVF from \a pl. @@ -803,7 +797,6 @@ __u32 ldlm_pool_get_lvf(struct ldlm_pool *pl) { return atomic_read(&pl->pl_lock_volume_factor); } -EXPORT_SYMBOL(ldlm_pool_get_lvf); static int ldlm_pool_granted(struct ldlm_pool *pl) { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index 04f4144589e5..250cc3762f71 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -87,7 +87,7 @@ struct ldlm_async_args { struct lustre_handle lock_handle; }; -int ldlm_expired_completion_wait(void *data) +static int ldlm_expired_completion_wait(void *data) { struct lock_wait_data *lwd = data; struct ldlm_lock *lock = lwd->lwd_lock; @@ -126,11 +126,10 @@ int ldlm_expired_completion_wait(void *data) return 0; } -EXPORT_SYMBOL(ldlm_expired_completion_wait); /* We use the same basis for both server side and client side functions from a single node. */ -int ldlm_get_enq_timeout(struct ldlm_lock *lock) +static int ldlm_get_enq_timeout(struct ldlm_lock *lock) { int timeout = at_get(ldlm_lock_to_ns_at(lock)); @@ -142,7 +141,6 @@ int ldlm_get_enq_timeout(struct ldlm_lock *lock) timeout = min_t(int, at_max, timeout + (timeout >> 1)); /* 150% */ return max(timeout, ldlm_enqueue_min); } -EXPORT_SYMBOL(ldlm_get_enq_timeout); /** * Helper function for ldlm_completion_ast(), updating timings when lock is @@ -861,8 +859,9 @@ static void ldlm_cancel_pack(struct ptlrpc_request *req, /** * Prepare and send a batched cancel RPC. It will include \a count lock * handles of locks given in \a cancels list. */ -int ldlm_cli_cancel_req(struct obd_export *exp, struct list_head *cancels, - int count, ldlm_cancel_flags_t flags) +static int ldlm_cli_cancel_req(struct obd_export *exp, + struct list_head *cancels, + int count, ldlm_cancel_flags_t flags) { struct ptlrpc_request *req = NULL; struct obd_import *imp; @@ -944,7 +943,6 @@ int ldlm_cli_cancel_req(struct obd_export *exp, struct list_head *cancels, out: return sent ? sent : rc; } -EXPORT_SYMBOL(ldlm_cli_cancel_req); static inline struct ldlm_pool *ldlm_imp2pl(struct obd_import *imp) { @@ -1425,9 +1423,9 @@ static int ldlm_prepare_lru_list(struct ldlm_namespace *ns, return added; } -int ldlm_cancel_lru_local(struct ldlm_namespace *ns, struct list_head *cancels, - int count, int max, ldlm_cancel_flags_t cancel_flags, - int flags) +int ldlm_cancel_lru_local(struct ldlm_namespace *ns, + struct list_head *cancels, int count, int max, + ldlm_cancel_flags_t cancel_flags, int flags) { int added; @@ -1664,8 +1662,8 @@ EXPORT_SYMBOL(ldlm_cli_cancel_unused); /* Lock iterators. */ -int ldlm_resource_foreach(struct ldlm_resource *res, ldlm_iterator_t iter, - void *closure) +static int ldlm_resource_foreach(struct ldlm_resource *res, + ldlm_iterator_t iter, void *closure) { struct list_head *tmp, *next; struct ldlm_lock *lock; @@ -1696,7 +1694,6 @@ int ldlm_resource_foreach(struct ldlm_resource *res, ldlm_iterator_t iter, unlock_res(res); return rc; } -EXPORT_SYMBOL(ldlm_resource_foreach); struct iter_helper_data { ldlm_iterator_t iter; @@ -1720,8 +1717,8 @@ static int ldlm_res_iter_helper(struct cfs_hash *hs, struct cfs_hash_bd *bd, LDLM_ITER_STOP; } -void ldlm_namespace_foreach(struct ldlm_namespace *ns, - ldlm_iterator_t iter, void *closure) +static void ldlm_namespace_foreach(struct ldlm_namespace *ns, + ldlm_iterator_t iter, void *closure) { struct iter_helper_data helper = { @@ -1733,7 +1730,6 @@ void ldlm_namespace_foreach(struct ldlm_namespace *ns, ldlm_res_iter_helper, &helper); } -EXPORT_SYMBOL(ldlm_namespace_foreach); /* non-blocking function to manipulate a lock whose cb_data is being put away. * return 0: find no resource diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index 402fe607bf4a..de1b443ba1e4 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -67,7 +67,7 @@ struct dentry *ldlm_svc_debugfs_dir; /* during debug dump certain amount of granted locks for one resource to avoid * DDOS. */ -unsigned int ldlm_dump_granted_max = 256; +static unsigned int ldlm_dump_granted_max = 256; static ssize_t lprocfs_wr_dump_ns(struct file *file, const char __user *buffer, @@ -383,13 +383,13 @@ static void ldlm_namespace_debugfs_unregister(struct ldlm_namespace *ns) lprocfs_free_stats(&ns->ns_stats); } -void ldlm_namespace_sysfs_unregister(struct ldlm_namespace *ns) +static void ldlm_namespace_sysfs_unregister(struct ldlm_namespace *ns) { kobject_put(&ns->ns_kobj); wait_for_completion(&ns->ns_kobj_unregister); } -int ldlm_namespace_sysfs_register(struct ldlm_namespace *ns) +static int ldlm_namespace_sysfs_register(struct ldlm_namespace *ns) { int err; @@ -428,6 +428,16 @@ static int ldlm_namespace_debugfs_register(struct ldlm_namespace *ns) } #undef MAX_STRING_SIZE +static struct ldlm_resource *ldlm_resource_getref(struct ldlm_resource *res) +{ + LASSERT(res); + LASSERT(res != LP_POISON); + atomic_inc(&res->lr_refcount); + CDEBUG(D_INFO, "getref res: %p count: %d\n", res, + atomic_read(&res->lr_refcount)); + return res; +} + static unsigned ldlm_res_hop_hash(struct cfs_hash *hs, const void *key, unsigned mask) { @@ -519,7 +529,7 @@ static void ldlm_res_hop_put(struct cfs_hash *hs, struct hlist_node *hnode) ldlm_resource_putref(res); } -cfs_hash_ops_t ldlm_ns_hash_ops = { +static cfs_hash_ops_t ldlm_ns_hash_ops = { .hs_hash = ldlm_res_hop_hash, .hs_key = ldlm_res_hop_key, .hs_keycmp = ldlm_res_hop_keycmp, @@ -530,7 +540,7 @@ cfs_hash_ops_t ldlm_ns_hash_ops = { .hs_put = ldlm_res_hop_put }; -cfs_hash_ops_t ldlm_ns_fid_hash_ops = { +static cfs_hash_ops_t ldlm_ns_fid_hash_ops = { .hs_hash = ldlm_res_hop_fid_hash, .hs_key = ldlm_res_hop_key, .hs_keycmp = ldlm_res_hop_keycmp, @@ -551,7 +561,7 @@ struct ldlm_ns_hash_def { cfs_hash_ops_t *nsd_hops; }; -struct ldlm_ns_hash_def ldlm_ns_hash_defs[] = { +static struct ldlm_ns_hash_def ldlm_ns_hash_defs[] = { { .nsd_type = LDLM_NS_TYPE_MDC, .nsd_bkt_bits = 11, @@ -593,6 +603,17 @@ struct ldlm_ns_hash_def ldlm_ns_hash_defs[] = { }, }; +/** Register \a ns in the list of namespaces */ +static void ldlm_namespace_register(struct ldlm_namespace *ns, + ldlm_side_t client) +{ + mutex_lock(ldlm_namespace_lock(client)); + LASSERT(list_empty(&ns->ns_list_chain)); + list_add(&ns->ns_list_chain, ldlm_namespace_inactive_list(client)); + ldlm_namespace_nr_inc(client); + mutex_unlock(ldlm_namespace_lock(client)); +} + /** * Create and initialize new empty namespace. */ @@ -912,6 +933,20 @@ void ldlm_namespace_free_prior(struct ldlm_namespace *ns, } } +/** Unregister \a ns from the list of namespaces. */ +static void ldlm_namespace_unregister(struct ldlm_namespace *ns, + ldlm_side_t client) +{ + mutex_lock(ldlm_namespace_lock(client)); + LASSERT(!list_empty(&ns->ns_list_chain)); + /* Some asserts and possibly other parts of the code are still + * using list_empty(&ns->ns_list_chain). This is why it is + * important to use list_del_init() here. */ + list_del_init(&ns->ns_list_chain); + ldlm_namespace_nr_dec(client); + mutex_unlock(ldlm_namespace_lock(client)); +} + /** * Performs freeing memory structures related to \a ns. This is only done * when ldlm_namespce_free_prior() successfully removed all resources @@ -947,7 +982,7 @@ void ldlm_namespace_get(struct ldlm_namespace *ns) EXPORT_SYMBOL(ldlm_namespace_get); /* This is only for callers that care about refcount */ -int ldlm_namespace_get_return(struct ldlm_namespace *ns) +static int ldlm_namespace_get_return(struct ldlm_namespace *ns) { return atomic_inc_return(&ns->ns_bref); } @@ -961,29 +996,6 @@ void ldlm_namespace_put(struct ldlm_namespace *ns) } EXPORT_SYMBOL(ldlm_namespace_put); -/** Register \a ns in the list of namespaces */ -void ldlm_namespace_register(struct ldlm_namespace *ns, ldlm_side_t client) -{ - mutex_lock(ldlm_namespace_lock(client)); - LASSERT(list_empty(&ns->ns_list_chain)); - list_add(&ns->ns_list_chain, ldlm_namespace_inactive_list(client)); - ldlm_namespace_nr_inc(client); - mutex_unlock(ldlm_namespace_lock(client)); -} - -/** Unregister \a ns from the list of namespaces. */ -void ldlm_namespace_unregister(struct ldlm_namespace *ns, ldlm_side_t client) -{ - mutex_lock(ldlm_namespace_lock(client)); - LASSERT(!list_empty(&ns->ns_list_chain)); - /* Some asserts and possibly other parts of the code are still - * using list_empty(&ns->ns_list_chain). This is why it is - * important to use list_del_init() here. */ - list_del_init(&ns->ns_list_chain); - ldlm_namespace_nr_dec(client); - mutex_unlock(ldlm_namespace_lock(client)); -} - /** Should be called with ldlm_namespace_lock(client) taken. */ void ldlm_namespace_move_to_active_locked(struct ldlm_namespace *ns, ldlm_side_t client) @@ -1167,16 +1179,6 @@ ldlm_resource_get(struct ldlm_namespace *ns, struct ldlm_resource *parent, } EXPORT_SYMBOL(ldlm_resource_get); -struct ldlm_resource *ldlm_resource_getref(struct ldlm_resource *res) -{ - LASSERT(res != NULL); - LASSERT(res != LP_POISON); - atomic_inc(&res->lr_refcount); - CDEBUG(D_INFO, "getref res: %p count: %d\n", res, - atomic_read(&res->lr_refcount)); - return res; -} - static void __ldlm_resource_putref_final(struct cfs_hash_bd *bd, struct ldlm_resource *res) { From 58ba1c313fa04f86f00e0aa5df9e7ee31a25dd33 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:40 -0400 Subject: [PATCH 1079/2431] staging/lustre/ldlm: Remove ldlm_namespace_inactive_list() Since there are no server namespaces, just replace it with ldlm_cli_inactive_namespace_list pointer. Also make ldlm_cli_inactive_namespace_list static as it's only used in ldlm_resource.c Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 7 ------- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 7 +++---- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index e63a1c9afb28..6cf3f9f9ee21 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h @@ -42,7 +42,6 @@ extern struct mutex ldlm_srv_namespace_lock; extern struct list_head ldlm_srv_namespace_list; extern struct mutex ldlm_cli_namespace_lock; extern struct list_head ldlm_cli_active_namespace_list; -extern struct list_head ldlm_cli_inactive_namespace_list; static inline int ldlm_namespace_nr_read(ldlm_side_t client) { @@ -72,12 +71,6 @@ static inline struct list_head *ldlm_namespace_list(ldlm_side_t client) &ldlm_srv_namespace_list : &ldlm_cli_active_namespace_list; } -static inline struct list_head *ldlm_namespace_inactive_list(ldlm_side_t client) -{ - return client == LDLM_NAMESPACE_SERVER ? - &ldlm_srv_namespace_list : &ldlm_cli_inactive_namespace_list; -} - static inline struct mutex *ldlm_namespace_lock(ldlm_side_t client) { return client == LDLM_NAMESPACE_SERVER ? diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index de1b443ba1e4..9152423f5eb9 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -59,7 +59,7 @@ struct mutex ldlm_cli_namespace_lock; * inactive list */ LIST_HEAD(ldlm_cli_active_namespace_list); /* Client namespaces that don't have any locks in them */ -LIST_HEAD(ldlm_cli_inactive_namespace_list); +static LIST_HEAD(ldlm_cli_inactive_namespace_list); static struct dentry *ldlm_debugfs_dir; static struct dentry *ldlm_ns_debugfs_dir; @@ -609,7 +609,7 @@ static void ldlm_namespace_register(struct ldlm_namespace *ns, { mutex_lock(ldlm_namespace_lock(client)); LASSERT(list_empty(&ns->ns_list_chain)); - list_add(&ns->ns_list_chain, ldlm_namespace_inactive_list(client)); + list_add(&ns->ns_list_chain, &ldlm_cli_inactive_namespace_list); ldlm_namespace_nr_inc(client); mutex_unlock(ldlm_namespace_lock(client)); } @@ -1011,8 +1011,7 @@ void ldlm_namespace_move_to_inactive_locked(struct ldlm_namespace *ns, { LASSERT(!list_empty(&ns->ns_list_chain)); LASSERT(mutex_is_locked(ldlm_namespace_lock(client))); - list_move_tail(&ns->ns_list_chain, - ldlm_namespace_inactive_list(client)); + list_move_tail(&ns->ns_list_chain, &ldlm_cli_inactive_namespace_list); } /** Should be called with ldlm_namespace_lock(client) taken. */ From bb10512e76b8db31c0f99115ee6216d648cf9816 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:41 -0400 Subject: [PATCH 1080/2431] staging/lustre/ldlm: Remove posix lock (flock) deadlock detection This is server-side code that cannot work on the client (vfs would do this check on the local node). Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/ldlm/ldlm_flock.c | 132 ------------------ 1 file changed, 132 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index 57b4edb8958d..0c46a06818f8 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c @@ -91,40 +91,6 @@ ldlm_flocks_overlap(struct ldlm_lock *lock, struct ldlm_lock *new) lock->l_policy_data.l_flock.start)); } -static inline void ldlm_flock_blocking_link(struct ldlm_lock *req, - struct ldlm_lock *lock) -{ - /* For server only */ - if (req->l_export == NULL) - return; - - LASSERT(hlist_unhashed(&req->l_exp_flock_hash)); - - req->l_policy_data.l_flock.blocking_owner = - lock->l_policy_data.l_flock.owner; - req->l_policy_data.l_flock.blocking_export = - lock->l_export; - req->l_policy_data.l_flock.blocking_refs = 0; - - cfs_hash_add(req->l_export->exp_flock_hash, - &req->l_policy_data.l_flock.owner, - &req->l_exp_flock_hash); -} - -static inline void ldlm_flock_blocking_unlink(struct ldlm_lock *req) -{ - /* For server only */ - if (req->l_export == NULL) - return; - - check_res_locked(req->l_resource); - if (req->l_export->exp_flock_hash != NULL && - !hlist_unhashed(&req->l_exp_flock_hash)) - cfs_hash_del(req->l_export->exp_flock_hash, - &req->l_policy_data.l_flock.owner, - &req->l_exp_flock_hash); -} - static inline void ldlm_flock_destroy(struct ldlm_lock *lock, ldlm_mode_t mode, __u64 flags) { @@ -148,79 +114,6 @@ ldlm_flock_destroy(struct ldlm_lock *lock, ldlm_mode_t mode, __u64 flags) ldlm_lock_destroy_nolock(lock); } -/** - * POSIX locks deadlock detection code. - * - * Given a new lock \a req and an existing lock \a bl_lock it conflicts - * with, we need to iterate through all blocked POSIX locks for this - * export and see if there is a deadlock condition arising. (i.e. when - * one client holds a lock on something and want a lock on something - * else and at the same time another client has the opposite situation). - */ -static int -ldlm_flock_deadlock(struct ldlm_lock *req, struct ldlm_lock *bl_lock) -{ - struct obd_export *req_exp = req->l_export; - struct obd_export *bl_exp = bl_lock->l_export; - __u64 req_owner = req->l_policy_data.l_flock.owner; - __u64 bl_owner = bl_lock->l_policy_data.l_flock.owner; - - /* For server only */ - if (req_exp == NULL) - return 0; - - class_export_get(bl_exp); - while (1) { - struct obd_export *bl_exp_new; - struct ldlm_lock *lock = NULL; - struct ldlm_flock *flock; - - if (bl_exp->exp_flock_hash != NULL) - lock = cfs_hash_lookup(bl_exp->exp_flock_hash, - &bl_owner); - if (lock == NULL) - break; - - LASSERT(req != lock); - flock = &lock->l_policy_data.l_flock; - LASSERT(flock->owner == bl_owner); - bl_owner = flock->blocking_owner; - bl_exp_new = class_export_get(flock->blocking_export); - class_export_put(bl_exp); - - cfs_hash_put(bl_exp->exp_flock_hash, &lock->l_exp_flock_hash); - bl_exp = bl_exp_new; - - if (bl_owner == req_owner && bl_exp == req_exp) { - class_export_put(bl_exp); - return 1; - } - } - class_export_put(bl_exp); - - return 0; -} - -static void ldlm_flock_cancel_on_deadlock(struct ldlm_lock *lock, - struct list_head *work_list) -{ - CDEBUG(D_INFO, "reprocess deadlock req=%p\n", lock); - - if ((exp_connect_flags(lock->l_export) & - OBD_CONNECT_FLOCK_DEAD) == 0) { - CERROR( - "deadlock found, but client doesn't support flock canceliation\n"); - } else { - LASSERT(lock->l_completion_ast); - LASSERT((lock->l_flags & LDLM_FL_AST_SENT) == 0); - lock->l_flags |= LDLM_FL_AST_SENT | LDLM_FL_CANCEL_ON_BLOCK | - LDLM_FL_FLOCK_DEADLOCK; - ldlm_flock_blocking_unlink(lock); - ldlm_resource_unlink_lock(lock); - ldlm_add_ast_work_item(lock, NULL, work_list); - } -} - /** * Process a granting attempt for flock lock. * Must be called under ns lock held. @@ -307,11 +200,6 @@ reprocess: if (!first_enq) { reprocess_failed = 1; - if (ldlm_flock_deadlock(req, lock)) { - ldlm_flock_cancel_on_deadlock(req, - work_list); - return LDLM_ITER_CONTINUE; - } continue; } @@ -334,17 +222,6 @@ reprocess: return LDLM_ITER_STOP; } - /* add lock to blocking list before deadlock - * check to prevent race */ - ldlm_flock_blocking_link(req, lock); - - if (ldlm_flock_deadlock(req, lock)) { - ldlm_flock_blocking_unlink(req); - ldlm_flock_destroy(req, mode, *flags); - *err = -EDEADLK; - return LDLM_ITER_STOP; - } - ldlm_resource_add_lock(res, &res->lr_waiting, req); *flags |= LDLM_FL_BLOCK_GRANTED; return LDLM_ITER_STOP; @@ -360,10 +237,6 @@ reprocess: return LDLM_ITER_STOP; } - /* In case we had slept on this lock request take it off of the - * deadlock detection hash list. */ - ldlm_flock_blocking_unlink(req); - /* Scan the locks owned by this process that overlap this request. * We may have to merge or split existing locks. */ @@ -551,9 +424,7 @@ ldlm_flock_interrupted_wait(void *data) lock = ((struct ldlm_flock_wait_data *)data)->fwd_lock; - /* take lock off the deadlock detection hash list. */ lock_res_and_lock(lock); - ldlm_flock_blocking_unlink(lock); /* client side - set flag to prevent lock from being put on LRU list */ lock->l_flags |= LDLM_FL_CBPENDING; @@ -660,9 +531,6 @@ granted: lock_res_and_lock(lock); - /* take lock off the deadlock detection hash list. */ - ldlm_flock_blocking_unlink(lock); - /* ldlm_lock_enqueue() has already placed lock on the granted list. */ list_del_init(&lock->l_res_link); From e3fde1b870dff88d2655b4fa60d6d25366c6ee09 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:42 -0400 Subject: [PATCH 1081/2431] staging/lustre/ldlm: Make ldlm_add_ast_work_item() static Now that ldlm_flock code no longer uses it. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 2 -- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index 6cf3f9f9ee21..db3c9b7af7d5 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h @@ -142,8 +142,6 @@ void ldlm_lock_addref_internal(struct ldlm_lock *, __u32 mode); void ldlm_lock_addref_internal_nolock(struct ldlm_lock *, __u32 mode); void ldlm_lock_decref_internal(struct ldlm_lock *, __u32 mode); void ldlm_lock_decref_internal_nolock(struct ldlm_lock *, __u32 mode); -void ldlm_add_ast_work_item(struct ldlm_lock *lock, struct ldlm_lock *new, - struct list_head *work_list); int ldlm_run_ast_work(struct ldlm_namespace *ns, struct list_head *rpc_list, enum ldlm_desc_ast_t ast_type); int ldlm_lock_remove_from_lru(struct ldlm_lock *lock); diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 0ba1ac37d9bc..f39375c24773 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -644,8 +644,9 @@ static void ldlm_add_cp_work_item(struct ldlm_lock *lock, * adding function. * Must be called with lr_lock held. */ -void ldlm_add_ast_work_item(struct ldlm_lock *lock, struct ldlm_lock *new, - struct list_head *work_list) +static void ldlm_add_ast_work_item(struct ldlm_lock *lock, + struct ldlm_lock *new, + struct list_head *work_list) { check_res_locked(lock->l_resource); if (new) From 053118935e7a0f62e96471220acd659b83d04ef7 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 1 Oct 2015 15:07:58 +0530 Subject: [PATCH 1082/2431] Staging: lustre: obdclass: Declare structure as static. Declare structure as static since it is not accessed anywhere apart from this particular file. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/lu_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 01d70f029dc7..814e56aaeef0 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -429,7 +429,7 @@ LU_KEY_INIT_FINI(lu_global, struct lu_cdebug_data); * Key, holding temporary buffer. This key is registered very early by * lu_global_init(). */ -struct lu_context_key lu_global_key = { +static struct lu_context_key lu_global_key = { .lct_tags = LCT_MD_THREAD | LCT_DT_THREAD | LCT_MG_THREAD | LCT_CL_THREAD | LCT_LOCAL, .lct_init = lu_global_key_init, From 60ec47f23e70baf920f73026095de57edb14731a Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 30 Sep 2015 22:28:32 +0300 Subject: [PATCH 1083/2431] staging: wlan-ng: fix block comment indentation Update indentation of block comments to follow linux coding style Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wlan-ng/prism2sta.c | 1013 ++++++++++++++------------- 1 file changed, 510 insertions(+), 503 deletions(-) diff --git a/drivers/staging/wlan-ng/prism2sta.c b/drivers/staging/wlan-ng/prism2sta.c index 0329c521d17c..bd979863e6a9 100644 --- a/drivers/staging/wlan-ng/prism2sta.c +++ b/drivers/staging/wlan-ng/prism2sta.c @@ -1,54 +1,54 @@ /* src/prism2/driver/prism2sta.c -* -* Implements the station functionality for prism2 -* -* Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. -* -------------------------------------------------------------------- -* -* linux-wlan -* -* The contents of this file are subject to the Mozilla Public -* License Version 1.1 (the "License"); you may not use this file -* except in compliance with the License. You may obtain a copy of -* the License at http://www.mozilla.org/MPL/ -* -* Software distributed under the License is distributed on an "AS -* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -* implied. See the License for the specific language governing -* rights and limitations under the License. -* -* Alternatively, the contents of this file may be used under the -* terms of the GNU Public License version 2 (the "GPL"), in which -* case the provisions of the GPL are applicable instead of the -* above. If you wish to allow the use of your version of this file -* only under the terms of the GPL and not to allow others to use -* your version of this file under the MPL, indicate your decision -* by deleting the provisions above and replace them with the notice -* and other provisions required by the GPL. If you do not delete -* the provisions above, a recipient may use your version of this -* file under either the MPL or the GPL. -* -* -------------------------------------------------------------------- -* -* Inquiries regarding the linux-wlan Open Source project can be -* made directly to: -* -* AbsoluteValue Systems Inc. -* info@linux-wlan.com -* http://www.linux-wlan.com -* -* -------------------------------------------------------------------- -* -* Portions of the development of this software were funded by -* Intersil Corporation as part of PRISM(R) chipset product development. -* -* -------------------------------------------------------------------- -* -* This file implements the module and linux pcmcia routines for the -* prism2 driver. -* -* -------------------------------------------------------------------- -*/ + * + * Implements the station functionality for prism2 + * + * Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. + * -------------------------------------------------------------------- + * + * linux-wlan + * + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * Alternatively, the contents of this file may be used under the + * terms of the GNU Public License version 2 (the "GPL"), in which + * case the provisions of the GPL are applicable instead of the + * above. If you wish to allow the use of your version of this file + * only under the terms of the GPL and not to allow others to use + * your version of this file under the MPL, indicate your decision + * by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL. If you do not delete + * the provisions above, a recipient may use your version of this + * file under either the MPL or the GPL. + * + * -------------------------------------------------------------------- + * + * Inquiries regarding the linux-wlan Open Source project can be + * made directly to: + * + * AbsoluteValue Systems Inc. + * info@linux-wlan.com + * http://www.linux-wlan.com + * + * -------------------------------------------------------------------- + * + * Portions of the development of this software were funded by + * Intersil Corporation as part of PRISM(R) chipset product development. + * + * -------------------------------------------------------------------- + * + * This file implements the module and linux pcmcia routines for the + * prism2 driver. + * + * -------------------------------------------------------------------- + */ #include #include @@ -130,27 +130,27 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, static void prism2sta_inf_psusercnt(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf); -/*---------------------------------------------------------------- -* prism2sta_open -* -* WLAN device open method. Called from p80211netdev when kernel -* device open (start) method is called in response to the -* SIOCSIIFFLAGS ioctl changing the flags bit IFF_UP -* from clear to set. -* -* Arguments: -* wlandev wlan device structure -* -* Returns: -* 0 success -* >0 f/w reported error -* <0 driver reported error -* -* Side effects: -* -* Call context: -* process thread -----------------------------------------------------------------*/ +/* + * prism2sta_open + * + * WLAN device open method. Called from p80211netdev when kernel + * device open (start) method is called in response to the + * SIOCSIIFFLAGS ioctl changing the flags bit IFF_UP + * from clear to set. + * + * Arguments: + * wlandev wlan device structure + * + * Returns: + * 0 success + * >0 f/w reported error + * <0 driver reported error + * + * Side effects: + * + * Call context: + * process thread + */ static int prism2sta_open(wlandevice_t *wlandev) { /* We don't currently have to do anything else. @@ -164,27 +164,27 @@ static int prism2sta_open(wlandevice_t *wlandev) return 0; } -/*---------------------------------------------------------------- -* prism2sta_close -* -* WLAN device close method. Called from p80211netdev when kernel -* device close method is called in response to the -* SIOCSIIFFLAGS ioctl changing the flags bit IFF_UP -* from set to clear. -* -* Arguments: -* wlandev wlan device structure -* -* Returns: -* 0 success -* >0 f/w reported error -* <0 driver reported error -* -* Side effects: -* -* Call context: -* process thread -----------------------------------------------------------------*/ +/* + * prism2sta_close + * + * WLAN device close method. Called from p80211netdev when kernel + * device close method is called in response to the + * SIOCSIIFFLAGS ioctl changing the flags bit IFF_UP + * from set to clear. + * + * Arguments: + * wlandev wlan device structure + * + * Returns: + * 0 success + * >0 f/w reported error + * <0 driver reported error + * + * Side effects: + * + * Call context: + * process thread + */ static int prism2sta_close(wlandevice_t *wlandev) { /* We don't currently have to do anything else. @@ -196,48 +196,48 @@ static int prism2sta_close(wlandevice_t *wlandev) return 0; } -/*---------------------------------------------------------------- -* prism2sta_reset -* -* Currently not implemented. -* -* Arguments: -* wlandev wlan device structure -* none -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* process thread -----------------------------------------------------------------*/ +/* + * prism2sta_reset + * + * Currently not implemented. + * + * Arguments: + * wlandev wlan device structure + * none + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * process thread + */ static void prism2sta_reset(wlandevice_t *wlandev) { } -/*---------------------------------------------------------------- -* prism2sta_txframe -* -* Takes a frame from p80211 and queues it for transmission. -* -* Arguments: -* wlandev wlan device structure -* pb packet buffer struct. Contains an 802.11 -* data frame. -* p80211_hdr points to the 802.11 header for the packet. -* Returns: -* 0 Success and more buffs available -* 1 Success but no more buffs -* 2 Allocation failure -* 4 Buffer full or queue busy -* -* Side effects: -* -* Call context: -* process thread -----------------------------------------------------------------*/ +/* + * prism2sta_txframe + * + * Takes a frame from p80211 and queues it for transmission. + * + * Arguments: + * wlandev wlan device structure + * pb packet buffer struct. Contains an 802.11 + * data frame. + * p80211_hdr points to the 802.11 header for the packet. + * Returns: + * 0 Success and more buffs available + * 1 Success but no more buffs + * 2 Allocation failure + * 4 Buffer full or queue busy + * + * Side effects: + * + * Call context: + * process thread + */ static int prism2sta_txframe(wlandevice_t *wlandev, struct sk_buff *skb, union p80211_hdr *p80211_hdr, struct p80211_metawep *p80211_wep) @@ -253,30 +253,30 @@ static int prism2sta_txframe(wlandevice_t *wlandev, struct sk_buff *skb, return hfa384x_drvr_txframe(hw, skb, p80211_hdr, p80211_wep); } -/*---------------------------------------------------------------- -* prism2sta_mlmerequest -* -* wlan command message handler. All we do here is pass the message -* over to the prism2sta_mgmt_handler. -* -* Arguments: -* wlandev wlan device structure -* msg wlan command message -* Returns: -* 0 success -* <0 successful acceptance of message, but we're -* waiting for an async process to finish before -* we're done with the msg. When the asynch -* process is done, we'll call the p80211 -* function p80211req_confirm() . -* >0 An error occurred while we were handling -* the message. -* -* Side effects: -* -* Call context: -* process thread -----------------------------------------------------------------*/ +/* + * prism2sta_mlmerequest + * + * wlan command message handler. All we do here is pass the message + * over to the prism2sta_mgmt_handler. + * + * Arguments: + * wlandev wlan device structure + * msg wlan command message + * Returns: + * 0 success + * <0 successful acceptance of message, but we're + * waiting for an async process to finish before + * we're done with the msg. When the asynch + * process is done, we'll call the p80211 + * function p80211req_confirm() . + * >0 An error occurred while we were handling + * the message. + * + * Side effects: + * + * Call context: + * process thread + */ static int prism2sta_mlmerequest(wlandevice_t *wlandev, struct p80211msg *msg) { hfa384x_t *hw = (hfa384x_t *) wlandev->priv; @@ -386,27 +386,27 @@ static int prism2sta_mlmerequest(wlandevice_t *wlandev, struct p80211msg *msg) return result; } -/*---------------------------------------------------------------- -* prism2sta_ifstate -* -* Interface state. This is the primary WLAN interface enable/disable -* handler. Following the driver/load/deviceprobe sequence, this -* function must be called with a state of "enable" before any other -* commands will be accepted. -* -* Arguments: -* wlandev wlan device structure -* msgp ptr to msg buffer -* -* Returns: -* A p80211 message resultcode value. -* -* Side effects: -* -* Call context: -* process thread (usually) -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_ifstate + * + * Interface state. This is the primary WLAN interface enable/disable + * handler. Following the driver/load/deviceprobe sequence, this + * function must be called with a state of "enable" before any other + * commands will be accepted. + * + * Arguments: + * wlandev wlan device structure + * msgp ptr to msg buffer + * + * Returns: + * A p80211 message resultcode value. + * + * Side effects: + * + * Call context: + * process thread (usually) + * interrupt + */ u32 prism2sta_ifstate(wlandevice_t *wlandev, u32 ifstate) { hfa384x_t *hw = (hfa384x_t *) wlandev->priv; @@ -561,25 +561,25 @@ u32 prism2sta_ifstate(wlandevice_t *wlandev, u32 ifstate) return result; } -/*---------------------------------------------------------------- -* prism2sta_getcardinfo -* -* Collect the NICID, firmware version and any other identifiers -* we'd like to have in host-side data structures. -* -* Arguments: -* wlandev wlan device structure -* -* Returns: -* 0 success -* >0 f/w reported error -* <0 driver reported error -* -* Side effects: -* -* Call context: -* Either. -----------------------------------------------------------------*/ +/* + * prism2sta_getcardinfo + * + * Collect the NICID, firmware version and any other identifiers + * we'd like to have in host-side data structures. + * + * Arguments: + * wlandev wlan device structure + * + * Returns: + * 0 success + * >0 f/w reported error + * <0 driver reported error + * + * Side effects: + * + * Call context: + * Either. + */ static int prism2sta_getcardinfo(wlandevice_t *wlandev) { int result = 0; @@ -677,7 +677,8 @@ static int prism2sta_getcardinfo(wlandevice_t *wlandev) } /* get all the Compatibility range, modem interface supplier - fields in byte order */ + * fields in byte order + */ hw->cap_sup_mfi.role = le16_to_cpu(hw->cap_sup_mfi.role); hw->cap_sup_mfi.id = le16_to_cpu(hw->cap_sup_mfi.id); hw->cap_sup_mfi.variant = le16_to_cpu(hw->cap_sup_mfi.variant); @@ -700,7 +701,8 @@ static int prism2sta_getcardinfo(wlandevice_t *wlandev) } /* get all the Compatibility range, controller interface supplier - fields in byte order */ + * fields in byte order + */ hw->cap_sup_cfi.role = le16_to_cpu(hw->cap_sup_cfi.role); hw->cap_sup_cfi.id = le16_to_cpu(hw->cap_sup_cfi.id); hw->cap_sup_cfi.variant = le16_to_cpu(hw->cap_sup_cfi.variant); @@ -723,7 +725,8 @@ static int prism2sta_getcardinfo(wlandevice_t *wlandev) } /* get all the Compatibility range, primary firmware supplier - fields in byte order */ + * fields in byte order + */ hw->cap_sup_pri.role = le16_to_cpu(hw->cap_sup_pri.role); hw->cap_sup_pri.id = le16_to_cpu(hw->cap_sup_pri.id); hw->cap_sup_pri.variant = le16_to_cpu(hw->cap_sup_pri.variant); @@ -746,7 +749,8 @@ static int prism2sta_getcardinfo(wlandevice_t *wlandev) } /* get all the Compatibility range, station firmware supplier - fields in byte order */ + * fields in byte order + */ hw->cap_sup_sta.role = le16_to_cpu(hw->cap_sup_sta.role); hw->cap_sup_sta.id = le16_to_cpu(hw->cap_sup_sta.id); hw->cap_sup_sta.variant = le16_to_cpu(hw->cap_sup_sta.variant); @@ -777,7 +781,8 @@ static int prism2sta_getcardinfo(wlandevice_t *wlandev) } /* get all the Compatibility range, primary f/w actor, CFI supplier - fields in byte order */ + * fields in byte order + */ hw->cap_act_pri_cfi.role = le16_to_cpu(hw->cap_act_pri_cfi.role); hw->cap_act_pri_cfi.id = le16_to_cpu(hw->cap_act_pri_cfi.id); hw->cap_act_pri_cfi.variant = le16_to_cpu(hw->cap_act_pri_cfi.variant); @@ -800,7 +805,8 @@ static int prism2sta_getcardinfo(wlandevice_t *wlandev) } /* get all the Compatibility range, station f/w actor, CFI supplier - fields in byte order */ + * fields in byte order + */ hw->cap_act_sta_cfi.role = le16_to_cpu(hw->cap_act_sta_cfi.role); hw->cap_act_sta_cfi.id = le16_to_cpu(hw->cap_act_sta_cfi.id); hw->cap_act_sta_cfi.variant = le16_to_cpu(hw->cap_act_sta_cfi.variant); @@ -823,7 +829,8 @@ static int prism2sta_getcardinfo(wlandevice_t *wlandev) } /* get all the Compatibility range, station f/w actor, MFI supplier - fields in byte order */ + * fields in byte order + */ hw->cap_act_sta_mfi.role = le16_to_cpu(hw->cap_act_sta_mfi.role); hw->cap_act_sta_mfi.id = le16_to_cpu(hw->cap_act_sta_mfi.id); hw->cap_act_sta_mfi.variant = le16_to_cpu(hw->cap_act_sta_mfi.variant); @@ -884,24 +891,24 @@ done: return result; } -/*---------------------------------------------------------------- -* prism2sta_globalsetup -* -* Set any global RIDs that we want to set at device activation. -* -* Arguments: -* wlandev wlan device structure -* -* Returns: -* 0 success -* >0 f/w reported error -* <0 driver reported error -* -* Side effects: -* -* Call context: -* process thread -----------------------------------------------------------------*/ +/* + * prism2sta_globalsetup + * + * Set any global RIDs that we want to set at device activation. + * + * Arguments: + * wlandev wlan device structure + * + * Returns: + * 0 success + * >0 f/w reported error + * <0 driver reported error + * + * Side effects: + * + * Call context: + * process thread + */ static int prism2sta_globalsetup(wlandevice_t *wlandev) { hfa384x_t *hw = (hfa384x_t *) wlandev->priv; @@ -934,47 +941,47 @@ exit: return result; } -/*---------------------------------------------------------------- -* prism2sta_inf_handover -* -* Handles the receipt of a Handover info frame. Should only be present -* in APs only. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_inf_handover + * + * Handles the receipt of a Handover info frame. Should only be present + * in APs only. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ static void prism2sta_inf_handover(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { pr_debug("received infoframe:HANDOVER (unhandled)\n"); } -/*---------------------------------------------------------------- -* prism2sta_inf_tallies -* -* Handles the receipt of a CommTallies info frame. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_inf_tallies + * + * Handles the receipt of a CommTallies info frame. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ static void prism2sta_inf_tallies(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { @@ -986,8 +993,8 @@ static void prism2sta_inf_tallies(wlandevice_t *wlandev, int cnt; /* - ** Determine if these are 16-bit or 32-bit tallies, based on the - ** record length of the info record. + * Determine if these are 16-bit or 32-bit tallies, based on the + * record length of the info record. */ cnt = sizeof(hfa384x_CommTallies32_t) / sizeof(u32); @@ -1004,23 +1011,23 @@ static void prism2sta_inf_tallies(wlandevice_t *wlandev, } } -/*---------------------------------------------------------------- -* prism2sta_inf_scanresults -* -* Handles the receipt of a Scan Results info frame. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_inf_scanresults + * + * Handles the receipt of a Scan Results info frame. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ static void prism2sta_inf_scanresults(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { @@ -1060,23 +1067,23 @@ static void prism2sta_inf_scanresults(wlandevice_t *wlandev, } } -/*---------------------------------------------------------------- -* prism2sta_inf_hostscanresults -* -* Handles the receipt of a Scan Results info frame. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_inf_hostscanresults + * + * Handles the receipt of a Scan Results info frame. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ static void prism2sta_inf_hostscanresults(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { @@ -1101,23 +1108,23 @@ static void prism2sta_inf_hostscanresults(wlandevice_t *wlandev, wake_up_interruptible(&hw->cmdq); }; -/*---------------------------------------------------------------- -* prism2sta_inf_chinforesults -* -* Handles the receipt of a Channel Info Results info frame. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_inf_chinforesults + * + * Handles the receipt of a Channel Info Results info frame. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ static void prism2sta_inf_chinforesults(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { @@ -1414,23 +1421,23 @@ void prism2sta_processing_defer(struct work_struct *data) wlandev->linkstatus = (hw->link_status == HFA384x_LINK_CONNECTED); } -/*---------------------------------------------------------------- -* prism2sta_inf_linkstatus -* -* Handles the receipt of a Link Status info frame. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_inf_linkstatus + * + * Handles the receipt of a Link Status info frame. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ static void prism2sta_inf_linkstatus(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { @@ -1441,24 +1448,24 @@ static void prism2sta_inf_linkstatus(wlandevice_t *wlandev, schedule_work(&hw->link_bh); } -/*---------------------------------------------------------------- -* prism2sta_inf_assocstatus -* -* Handles the receipt of an Association Status info frame. Should -* be present in APs only. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_inf_assocstatus + * + * Handles the receipt of an Association Status info frame. Should + * be present in APs only. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ static void prism2sta_inf_assocstatus(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { @@ -1471,15 +1478,15 @@ static void prism2sta_inf_assocstatus(wlandevice_t *wlandev, rec.reason = le16_to_cpu(rec.reason); /* - ** Find the address in the list of authenticated stations. - ** If it wasn't found, then this address has not been previously - ** authenticated and something weird has happened if this is - ** anything other than an "authentication failed" message. - ** If the address was found, then set the "associated" flag for - ** that station, based on whether the station is associating or - ** losing its association. Something weird has also happened - ** if we find the address in the list of authenticated stations - ** but we are getting an "authentication failed" message. + * Find the address in the list of authenticated stations. + * If it wasn't found, then this address has not been previously + * authenticated and something weird has happened if this is + * anything other than an "authentication failed" message. + * If the address was found, then set the "associated" flag for + * that station, based on whether the station is associating or + * losing its association. Something weird has also happened + * if we find the address in the list of authenticated stations + * but we are getting an "authentication failed" message. */ for (i = 0; i < hw->authlist.cnt; i++) @@ -1501,25 +1508,25 @@ static void prism2sta_inf_assocstatus(wlandevice_t *wlandev, } } -/*---------------------------------------------------------------- -* prism2sta_inf_authreq -* -* Handles the receipt of an Authentication Request info frame. Should -* be present in APs only. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -* -----------------------------------------------------------------*/ +/* + * prism2sta_inf_authreq + * + * Handles the receipt of an Authentication Request info frame. Should + * be present in APs only. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + * + */ static void prism2sta_inf_authreq(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { @@ -1545,23 +1552,23 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, u8 *addr; /* - ** Build the AuthenticateStation record. Initialize it for denying - ** authentication. + * Build the AuthenticateStation record. Initialize it for denying + * authentication. */ ether_addr_copy(rec.address, inf->info.authreq.sta_addr); rec.status = P80211ENUM_status_unspec_failure; /* - ** Authenticate based on the access mode. + * Authenticate based on the access mode. */ switch (hw->accessmode) { case WLAN_ACCESS_NONE: /* - ** Deny all new authentications. However, if a station - ** is ALREADY authenticated, then accept it. + * Deny all new authentications. However, if a station + * is ALREADY authenticated, then accept it. */ for (i = 0; i < hw->authlist.cnt; i++) @@ -1576,7 +1583,7 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, case WLAN_ACCESS_ALL: /* - ** Allow all authentications. + * Allow all authentications. */ rec.status = P80211ENUM_status_successful; @@ -1585,13 +1592,13 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, case WLAN_ACCESS_ALLOW: /* - ** Only allow the authentication if the MAC address - ** is in the list of allowed addresses. - ** - ** Since this is the interrupt handler, we may be here - ** while the access list is in the middle of being - ** updated. Choose the list which is currently okay. - ** See "prism2mib_priv_accessallow()" for details. + * Only allow the authentication if the MAC address + * is in the list of allowed addresses. + * + * Since this is the interrupt handler, we may be here + * while the access list is in the middle of being + * updated. Choose the list which is currently okay. + * See "prism2mib_priv_accessallow()" for details. */ if (hw->allow.modify == 0) { @@ -1613,13 +1620,13 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, case WLAN_ACCESS_DENY: /* - ** Allow the authentication UNLESS the MAC address is - ** in the list of denied addresses. - ** - ** Since this is the interrupt handler, we may be here - ** while the access list is in the middle of being - ** updated. Choose the list which is currently okay. - ** See "prism2mib_priv_accessdeny()" for details. + * Allow the authentication UNLESS the MAC address is + * in the list of denied addresses. + * + * Since this is the interrupt handler, we may be here + * while the access list is in the middle of being + * updated. Choose the list which is currently okay. + * See "prism2mib_priv_accessdeny()" for details. */ if (hw->deny.modify == 0) { @@ -1642,12 +1649,12 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, } /* - ** If the authentication is okay, then add the MAC address to the - ** list of authenticated stations. Don't add the address if it - ** is already in the list. (802.11b does not seem to disallow - ** a station from issuing an authentication request when the - ** station is already authenticated. Does this sort of thing - ** ever happen? We might as well do the check just in case.) + * If the authentication is okay, then add the MAC address to the + * list of authenticated stations. Don't add the address if it + * is already in the list. (802.11b does not seem to disallow + * a station from issuing an authentication request when the + * station is already authenticated. Does this sort of thing + * ever happen? We might as well do the check just in case.) */ added = 0; @@ -1672,9 +1679,9 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, } /* - ** Send back the results of the authentication. If this doesn't work, - ** then make sure to remove the address from the authenticated list if - ** it was added. + * Send back the results of the authentication. If this doesn't work, + * then make sure to remove the address from the authenticated list if + * it was added. */ rec.status = cpu_to_le16(rec.status); @@ -1691,24 +1698,24 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, } } -/*---------------------------------------------------------------- -* prism2sta_inf_psusercnt -* -* Handles the receipt of a PowerSaveUserCount info frame. Should -* be present in APs only. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to info frame (contents in hfa384x order) -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_inf_psusercnt + * + * Handles the receipt of a PowerSaveUserCount info frame. Should + * be present in APs only. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to info frame (contents in hfa384x order) + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ static void prism2sta_inf_psusercnt(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { @@ -1717,23 +1724,23 @@ static void prism2sta_inf_psusercnt(wlandevice_t *wlandev, hw->psusercount = le16_to_cpu(inf->info.psusercnt.usercnt); } -/*---------------------------------------------------------------- -* prism2sta_ev_info -* -* Handles the Info event. -* -* Arguments: -* wlandev wlan device structure -* inf ptr to a generic info frame -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_ev_info + * + * Handles the Info event. + * + * Arguments: + * wlandev wlan device structure + * inf ptr to a generic info frame + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ void prism2sta_ev_info(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) { inf->infotype = le16_to_cpu(inf->infotype); @@ -1782,46 +1789,46 @@ void prism2sta_ev_info(wlandevice_t *wlandev, hfa384x_InfFrame_t *inf) } } -/*---------------------------------------------------------------- -* prism2sta_ev_txexc -* -* Handles the TxExc event. A Transmit Exception event indicates -* that the MAC's TX process was unsuccessful - so the packet did -* not get transmitted. -* -* Arguments: -* wlandev wlan device structure -* status tx frame status word -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_ev_txexc + * + * Handles the TxExc event. A Transmit Exception event indicates + * that the MAC's TX process was unsuccessful - so the packet did + * not get transmitted. + * + * Arguments: + * wlandev wlan device structure + * status tx frame status word + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ void prism2sta_ev_txexc(wlandevice_t *wlandev, u16 status) { pr_debug("TxExc status=0x%x.\n", status); } -/*---------------------------------------------------------------- -* prism2sta_ev_tx -* -* Handles the Tx event. -* -* Arguments: -* wlandev wlan device structure -* status tx frame status word -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_ev_tx + * + * Handles the Tx event. + * + * Arguments: + * wlandev wlan device structure + * status tx frame status word + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ void prism2sta_ev_tx(wlandevice_t *wlandev, u16 status) { pr_debug("Tx Complete, status=0x%04x\n", status); @@ -1829,49 +1836,49 @@ void prism2sta_ev_tx(wlandevice_t *wlandev, u16 status) wlandev->netdev->stats.tx_packets++; } -/*---------------------------------------------------------------- -* prism2sta_ev_rx -* -* Handles the Rx event. -* -* Arguments: -* wlandev wlan device structure -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_ev_rx + * + * Handles the Rx event. + * + * Arguments: + * wlandev wlan device structure + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ void prism2sta_ev_rx(wlandevice_t *wlandev, struct sk_buff *skb) { p80211netdev_rx(wlandev, skb); } -/*---------------------------------------------------------------- -* prism2sta_ev_alloc -* -* Handles the Alloc event. -* -* Arguments: -* wlandev wlan device structure -* -* Returns: -* nothing -* -* Side effects: -* -* Call context: -* interrupt -----------------------------------------------------------------*/ +/* + * prism2sta_ev_alloc + * + * Handles the Alloc event. + * + * Arguments: + * wlandev wlan device structure + * + * Returns: + * nothing + * + * Side effects: + * + * Call context: + * interrupt + */ void prism2sta_ev_alloc(wlandevice_t *wlandev) { netif_wake_queue(wlandev->netdev); } -/*---------------------------------------------------------------- +/* * create_wlan * * Called at module init time. This creates the wlandevice_t structure @@ -1889,7 +1896,7 @@ void prism2sta_ev_alloc(wlandevice_t *wlandev) * Call context: * process thread * -----------------------------------------------------------------*/ +*/ static wlandevice_t *create_wlan(void) { wlandevice_t *wlandev = NULL; From 2bcaa1e955fe9126ef627d5f1d81bd1be7946299 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 30 Sep 2015 18:28:53 +0530 Subject: [PATCH 1084/2431] Staging: fbtft: Remove debug messages related to DEBUG_WRITE_VMEM Remove debug messages related to fbtft_par_dbg(DEBUG_WRITE_VMEM.. ) as this info can be obtained using kernel function tracer Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_agm1264k-fl.c | 2 -- drivers/staging/fbtft/fb_pcd8544.c | 2 -- drivers/staging/fbtft/fb_ssd1306.c | 2 -- drivers/staging/fbtft/fb_tls8204.c | 2 -- drivers/staging/fbtft/fb_uc1611.c | 2 -- drivers/staging/fbtft/fb_uc1701.c | 2 -- drivers/staging/fbtft/fb_watterott.c | 4 ---- 7 files changed, 16 deletions(-) diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 2a2d53c70501..88718f61eb5b 100644 --- a/drivers/staging/fbtft/fb_agm1264k-fl.c +++ b/drivers/staging/fbtft/fb_agm1264k-fl.c @@ -278,8 +278,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) if (!convert_buf) return -ENOMEM; - fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - /* converting to grayscale16 */ for (x = 0; x < par->info->var.xres; ++x) for (y = 0; y < par->info->var.yres; ++y) { diff --git a/drivers/staging/fbtft/fb_pcd8544.c b/drivers/staging/fbtft/fb_pcd8544.c index 828174a566a3..8b52523fdc9e 100644 --- a/drivers/staging/fbtft/fb_pcd8544.c +++ b/drivers/staging/fbtft/fb_pcd8544.c @@ -117,8 +117,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) int x, y, i; int ret = 0; - fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - for (x = 0; x < 84; x++) { for (y = 0; y < 6; y++) { *buf = 0x00; diff --git a/drivers/staging/fbtft/fb_ssd1306.c b/drivers/staging/fbtft/fb_ssd1306.c index 7568e943ec0a..568b4334c9d9 100644 --- a/drivers/staging/fbtft/fb_ssd1306.c +++ b/drivers/staging/fbtft/fb_ssd1306.c @@ -165,8 +165,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) int x, y, i; int ret = 0; - fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - for (x = 0; x < par->info->var.xres; x++) { for (y = 0; y < par->info->var.yres/8; y++) { *buf = 0x00; diff --git a/drivers/staging/fbtft/fb_tls8204.c b/drivers/staging/fbtft/fb_tls8204.c index 4e16ea763d78..d609f875bcb1 100644 --- a/drivers/staging/fbtft/fb_tls8204.c +++ b/drivers/staging/fbtft/fb_tls8204.c @@ -98,8 +98,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) int x, y, i; int ret = 0; - fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - for (y = 0; y < HEIGHT / 8; y++) { u8 *buf = par->txbuf.buf; /* The display is 102x68 but the LCD is 84x48. Set diff --git a/drivers/staging/fbtft/fb_uc1611.c b/drivers/staging/fbtft/fb_uc1611.c index c9bbba1e1a5d..a72f920ca1d7 100644 --- a/drivers/staging/fbtft/fb_uc1611.c +++ b/drivers/staging/fbtft/fb_uc1611.c @@ -230,8 +230,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) int x, y, i; int ret = 0; - fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - switch (par->pdata->display.buswidth) { case 8: switch (par->info->var.rotate) { diff --git a/drivers/staging/fbtft/fb_uc1701.c b/drivers/staging/fbtft/fb_uc1701.c index 28b13cf16f1e..28aa1008b297 100644 --- a/drivers/staging/fbtft/fb_uc1701.c +++ b/drivers/staging/fbtft/fb_uc1701.c @@ -146,8 +146,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) int x, y, i; int ret = 0; - fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - for (y = 0; y < PAGES; y++) { buf = par->txbuf.buf; for (x = 0; x < WIDTH; x++) { diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c index 14beefefa9ac..3142a1251f6b 100644 --- a/drivers/staging/fbtft/fb_watterott.c +++ b/drivers/staging/fbtft/fb_watterott.c @@ -74,8 +74,6 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) int i, j; int ret = 0; - fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - start_line = offset / par->info->fix.line_length; end_line = start_line + (len / par->info->fix.line_length) - 1; @@ -113,8 +111,6 @@ static int write_vmem_8bit(struct fbtft_par *par, size_t offset, size_t len) int i, j; int ret = 0; - fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s()\n", __func__); - start_line = offset / par->info->fix.line_length; end_line = start_line + (len / par->info->fix.line_length) - 1; From 6f6347ef496dbeeacb9937aedb50ed9aa1a20cd1 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 30 Sep 2015 18:28:54 +0530 Subject: [PATCH 1085/2431] Staging: fbtft: Remove debug messages related to DEBUG_BACKLIGHT Remove debug messages related to fbtft_par_dbg(DEBUG_BACKLIGHT.. ) as this info can be obtained using kernel function tracer Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_ssd1351.c | 2 -- drivers/staging/fbtft/fb_watterott.c | 2 -- drivers/staging/fbtft/fbtft-core.c | 4 ---- 3 files changed, 8 deletions(-) diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index 83867e1593f0..eb45b270aaa8 100644 --- a/drivers/staging/fbtft/fb_ssd1351.c +++ b/drivers/staging/fbtft/fb_ssd1351.c @@ -206,8 +206,6 @@ static void register_onboard_backlight(struct fbtft_par *par) struct backlight_device *bd; struct backlight_properties bl_props = { 0, }; - fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s()\n", __func__); - bl_props.type = BACKLIGHT_RAW; bl_props.power = FB_BLANK_POWERDOWN; diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c index 3142a1251f6b..be99a9d76316 100644 --- a/drivers/staging/fbtft/fb_watterott.c +++ b/drivers/staging/fbtft/fb_watterott.c @@ -253,8 +253,6 @@ static void register_chip_backlight(struct fbtft_par *par) struct backlight_device *bd; struct backlight_properties bl_props = { 0, }; - fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s()\n", __func__); - bl_props.type = BACKLIGHT_RAW; bl_props.power = FB_BLANK_POWERDOWN; bl_props.max_brightness = 100; diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 4691bccaf7c4..bfbf15c31d0f 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -266,8 +266,6 @@ static int fbtft_backlight_get_brightness(struct backlight_device *bd) void fbtft_unregister_backlight(struct fbtft_par *par) { - fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s()\n", __func__); - if (par->info->bl_dev) { par->info->bl_dev->props.power = FB_BLANK_POWERDOWN; backlight_update_status(par->info->bl_dev); @@ -286,8 +284,6 @@ void fbtft_register_backlight(struct fbtft_par *par) struct backlight_device *bd; struct backlight_properties bl_props = { 0, }; - fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s()\n", __func__); - if (par->gpio.led[0] == -1) { fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s(): led pin not set, exiting.\n", __func__); From ec2c398eff3e928ad3932d6b041168bd85b45ff0 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Thu, 1 Oct 2015 16:42:16 +0300 Subject: [PATCH 1086/2431] Staging: octeon: Use preferred kernel type This patch "uint*_t" type instead of "u*" type was used. checkpatch.pl issue in octeon driver. Signed-off-by: Aybuke Ozdemir Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet-defines.h | 4 ++-- drivers/staging/octeon/ethernet-rx.c | 8 ++++---- drivers/staging/octeon/ethernet-tx.c | 6 +++--- drivers/staging/octeon/ethernet.c | 8 ++++---- drivers/staging/octeon/octeon-ethernet.h | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/octeon/ethernet-defines.h b/drivers/staging/octeon/ethernet-defines.h index f92e0c478e16..716400588af0 100644 --- a/drivers/staging/octeon/ethernet-defines.h +++ b/drivers/staging/octeon/ethernet-defines.h @@ -37,8 +37,8 @@ /* Maximum number of SKBs to try to free per xmit packet. */ #define MAX_OUT_QUEUE_DEPTH 1000 -#define FAU_TOTAL_TX_TO_CLEAN (CVMX_FAU_REG_END - sizeof(uint32_t)) -#define FAU_NUM_PACKET_BUFFERS_TO_FREE (FAU_TOTAL_TX_TO_CLEAN - sizeof(uint32_t)) +#define FAU_TOTAL_TX_TO_CLEAN (CVMX_FAU_REG_END - sizeof(u32)) +#define FAU_NUM_PACKET_BUFFERS_TO_FREE (FAU_TOTAL_TX_TO_CLEAN - sizeof(u32)) #define TOTAL_NUMBER_OF_PORTS (CVMX_PIP_NUM_INPUT_PORTS+1) diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c index d1a33a927f6d..f600247e385a 100644 --- a/drivers/staging/octeon/ethernet-rx.c +++ b/drivers/staging/octeon/ethernet-rx.c @@ -102,7 +102,7 @@ static inline int cvm_oct_check_rcv_error(cvmx_wqe_t *work) cvmx_read_csr(CVMX_GMXX_RXX_FRM_CTL(index, interface)); if (gmxx_rxx_frm_ctl.s.pre_chk == 0) { - uint8_t *ptr = + u8 *ptr = cvmx_phys_to_ptr(work->packet_ptr.s.addr); int i = 0; @@ -163,8 +163,8 @@ static inline int cvm_oct_check_rcv_error(cvmx_wqe_t *work) static int cvm_oct_napi_poll(struct napi_struct *napi, int budget) { const int coreid = cvmx_get_core_num(); - uint64_t old_group_mask; - uint64_t old_scratch; + u64 old_group_mask; + u64 old_scratch; int rx_count = 0; int did_work_request = 0; int packet_not_copied; @@ -284,7 +284,7 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget) * entirely stored in the work entry. */ if (unlikely(work->word2.s.bufs == 0)) { - uint8_t *ptr = work->packet_data; + u8 *ptr = work->packet_data; if (likely(!work->word2.s.not_IP)) { /* diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c index 9e2116f4c915..3a5d8f53831c 100644 --- a/drivers/staging/octeon/ethernet-tx.c +++ b/drivers/staging/octeon/ethernet-tx.c @@ -143,8 +143,8 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev) { cvmx_pko_command_word0_t pko_command; union cvmx_buf_ptr hw_buffer; - uint64_t old_scratch; - uint64_t old_scratch2; + u64 old_scratch; + u64 old_scratch2; int qos; int i; enum {QUEUE_CORE, QUEUE_HW, QUEUE_DROP} queue_type; @@ -576,7 +576,7 @@ int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev) * calculation may add a little extra, but that doesn't * hurt. */ - copy_location = packet_buffer + sizeof(uint64_t); + copy_location = packet_buffer + sizeof(u64); copy_location += ((CVMX_HELPER_FIRST_MBUFF_SKIP + 7) & 0xfff8) + 6; /* diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index 7274fda0b77b..c9183e05615c 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -382,11 +382,11 @@ static int cvm_oct_set_mac_filter(struct net_device *dev) && (cvmx_helper_interface_get_mode(interface) != CVMX_HELPER_INTERFACE_MODE_SPI)) { int i; - uint8_t *ptr = dev->dev_addr; - uint64_t mac = 0; + u8 *ptr = dev->dev_addr; + u64 mac = 0; for (i = 0; i < 6; i++) - mac = (mac << 8) | (uint64_t)ptr[i]; + mac = (mac << 8) | (u64)ptr[i]; gmx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface)); @@ -835,7 +835,7 @@ static int cvm_oct_probe(struct platform_device *pdev) cvm_oct_device[priv->port] = dev; fau -= cvmx_pko_get_num_queues(priv->port) * - sizeof(uint32_t); + sizeof(u32); queue_delayed_work(cvm_oct_poll_queue, &priv->port_periodic_work, HZ); } diff --git a/drivers/staging/octeon/octeon-ethernet.h b/drivers/staging/octeon/octeon-ethernet.h index a242c700bc53..67f640f1c668 100644 --- a/drivers/staging/octeon/octeon-ethernet.h +++ b/drivers/staging/octeon/octeon-ethernet.h @@ -43,7 +43,7 @@ struct octeon_ethernet { struct phy_device *phydev; unsigned int last_link; /* Last negotiated link state */ - uint64_t link_info; + u64 link_info; /* Called periodically to check link status */ void (*poll)(struct net_device *dev); struct delayed_work port_periodic_work; From c76d294f324856240ee45569c7f783e86082434c Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Thu, 1 Oct 2015 21:43:57 +0300 Subject: [PATCH 1087/2431] staging: dgnc: Fix indentation warning Fixed 'suspect code indent for conditional statements (8, 24)' Warning Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_cls.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index a629a78964ce..76fe4b2935b5 100644 --- a/drivers/staging/dgnc/dgnc_cls.c +++ b/drivers/staging/dgnc/dgnc_cls.c @@ -628,13 +628,13 @@ static void cls_param(struct tty_struct *tty) * we are in hardware flow control mode, or CLOCAL/FORCEDCD is not set. */ if ((ch->ch_digi.digi_flags & CTSPACE) || - (ch->ch_digi.digi_flags & RTSPACE) || - (ch->ch_c_cflag & CRTSCTS) || - !(ch->ch_digi.digi_flags & DIGI_FORCEDCD) || - !(ch->ch_c_cflag & CLOCAL)) - ier |= UART_IER_MSI; + (ch->ch_digi.digi_flags & RTSPACE) || + (ch->ch_c_cflag & CRTSCTS) || + !(ch->ch_digi.digi_flags & DIGI_FORCEDCD) || + !(ch->ch_c_cflag & CLOCAL)) + ier |= UART_IER_MSI; else - ier &= ~UART_IER_MSI; + ier &= ~UART_IER_MSI; ier |= UART_IER_THRI; From 1657183fcc4e044b2e96bcb9150265027ad2b44b Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Thu, 1 Oct 2015 22:10:52 +0300 Subject: [PATCH 1088/2431] staging: iio: Fix comment style warning Move final */ to the next line, in accordance with the suggestion of checkpatch Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/accel/lis3l02dq_ring.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c index b892f2cf5f9e..1a0651cb2691 100644 --- a/drivers/staging/iio/accel/lis3l02dq_ring.c +++ b/drivers/staging/iio/accel/lis3l02dq_ring.c @@ -195,7 +195,8 @@ __lis3l02dq_write_data_ready_config(struct iio_dev *indio_dev, bool state) /* Enable requested */ } else if (state && !currentlyset) { /* If not set, enable requested - * first disable all events */ + * first disable all events + */ ret = lis3l02dq_disable_all_events(indio_dev); if (ret < 0) goto error_ret; @@ -255,7 +256,8 @@ static int lis3l02dq_trig_try_reen(struct iio_trigger *trig) int i; /* If gpio still high (or high again) - * In theory possible we will need to do this several times */ + * In theory possible we will need to do this several times + */ for (i = 0; i < 5; i++) if (gpio_get_value(st->gpio)) lis3l02dq_read_all(indio_dev, NULL); From d1e9aef604da38a4963998922ed0ffff675e3ede Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 2 Oct 2015 02:57:03 +0530 Subject: [PATCH 1089/2431] Staging: xgifb: vb_util: Fixed sparse warning of bit truncation due to cast Fixed the warning generated by sparse that 'cast truncates bits from constant value' by typecasting unsigned values to u8 as their logical operation is being performed with and stored in a u8 type variable. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/xgifb/vb_util.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/xgifb/vb_util.h b/drivers/staging/xgifb/vb_util.h index 7bd395fb31b2..f613f54d522f 100644 --- a/drivers/staging/xgifb/vb_util.h +++ b/drivers/staging/xgifb/vb_util.h @@ -18,7 +18,7 @@ static inline void xgifb_reg_and_or(unsigned long port, u8 index, u8 temp; temp = xgifb_reg_get(port, index); - temp = (temp & data_and) | data_or; + temp = (u8) ((temp & data_and) | data_or); xgifb_reg_set(port, index, temp); } @@ -27,7 +27,7 @@ static inline void xgifb_reg_and(unsigned long port, u8 index, unsigned data_and u8 temp; temp = xgifb_reg_get(port, index); - temp &= data_and; + temp = (u8) (temp & data_and); xgifb_reg_set(port, index, temp); } From 6fce180320ba1fb9710f5f25577da84af12447e8 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Thu, 1 Oct 2015 11:52:27 -0400 Subject: [PATCH 1090/2431] staging: unisys: remove devdata->name use netdev->name The net device already has a name, so use that instead. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visornic/visornic_main.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 9d3c1e282062..be142ebc9821 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -119,7 +119,6 @@ struct visornic_devdata { * IOPART */ struct visor_device *dev; - char name[99]; struct list_head list_all; /* < link within list_all_devices list */ struct net_device *netdev; struct net_device_stats net_stats; @@ -1388,7 +1387,6 @@ devdata_initialize(struct visornic_devdata *devdata, struct visor_device *dev) return NULL; devdata->devnum = devnum; devdata->dev = dev; - strncpy(devdata->name, dev_name(&dev->device), sizeof(devdata->name)); spin_lock(&lock_all_devices); list_add_tail(&devdata->list_all, &list_all_devices); spin_unlock(&lock_all_devices); @@ -1964,7 +1962,6 @@ static void host_side_disappeared(struct visornic_devdata *devdata) unsigned long flags; spin_lock_irqsave(&devdata->priv_lock, flags); - sprintf(devdata->name, "", devdata->devnum); devdata->dev = NULL; /* indicate device destroyed */ spin_unlock_irqrestore(&devdata->priv_lock, flags); } From f5c9598b735c55e56998fbd0c2df61d12a418167 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Thu, 1 Oct 2015 11:52:28 -0400 Subject: [PATCH 1091/2431] staging: unisys: get rid of devnum pool and dev num devnum pool and devnum are no longer needed. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../staging/unisys/visornic/visornic_main.c | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index be142ebc9821..b41dbd48eba6 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -37,9 +37,6 @@ */ #define MAX_BUF 163840 -static spinlock_t dev_num_pool_lock; -static void *dev_num_pool; /**< pool to grab device numbers from */ - static int visornic_probe(struct visor_device *dev); static void visornic_remove(struct visor_device *dev); static int visornic_pause(struct visor_device *dev, @@ -113,7 +110,6 @@ struct chanstat { }; struct visornic_devdata { - int devnum; unsigned short enabled; /* 0 disabled 1 enabled to receive */ unsigned short enab_dis_acked; /* NET_RCV_ENABLE/DISABLE acked by * IOPART @@ -1372,20 +1368,9 @@ visornic_rx(struct uiscmdrsp *cmdrsp) static struct visornic_devdata * devdata_initialize(struct visornic_devdata *devdata, struct visor_device *dev) { - int devnum = -1; - if (!devdata) return NULL; memset(devdata, '\0', sizeof(struct visornic_devdata)); - spin_lock(&dev_num_pool_lock); - devnum = find_first_zero_bit(dev_num_pool, MAXDEVICES); - set_bit(devnum, dev_num_pool); - spin_unlock(&dev_num_pool_lock); - if (devnum == MAXDEVICES) - devnum = -1; - if (devnum < 0) - return NULL; - devdata->devnum = devnum; devdata->dev = dev; spin_lock(&lock_all_devices); list_add_tail(&devdata->list_all, &list_all_devices); @@ -1402,9 +1387,6 @@ devdata_initialize(struct visornic_devdata *devdata, struct visor_device *dev) */ static void devdata_release(struct visornic_devdata *devdata) { - spin_lock(&dev_num_pool_lock); - clear_bit(devdata->devnum, dev_num_pool); - spin_unlock(&dev_num_pool_lock); spin_lock(&lock_all_devices); list_del(&devdata->list_all); spin_unlock(&lock_all_devices); @@ -2123,11 +2105,6 @@ static int visornic_init(void) if (!visornic_timeout_reset_workqueue) goto cleanup_workqueue; - spin_lock_init(&dev_num_pool_lock); - dev_num_pool = kzalloc(BITS_TO_LONGS(MAXDEVICES), GFP_KERNEL); - if (!dev_num_pool) - goto cleanup_workqueue; - err = visorbus_register_visor_driver(&visornic_driver); if (!err) return 0; @@ -2157,9 +2134,6 @@ static void visornic_cleanup(void) destroy_workqueue(visornic_timeout_reset_workqueue); } debugfs_remove_recursive(visornic_debugfs_dir); - - kfree(dev_num_pool); - dev_num_pool = NULL; } module_init(visornic_init); From 07f8260bb65676910d4a16e81a319b33095dccb6 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Thu, 1 Oct 2015 11:52:29 -0400 Subject: [PATCH 1092/2431] staging: unisys: get rid of list of devices We don't need the list of devices, we can loop through the one provided by the network api and filter on ours. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visornic/visornic_main.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index b41dbd48eba6..85c9fec6549e 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -115,7 +115,6 @@ struct visornic_devdata { * IOPART */ struct visor_device *dev; - struct list_head list_all; /* < link within list_all_devices list */ struct net_device *netdev; struct net_device_stats net_stats; atomic_t interrupt_rcvd; @@ -196,12 +195,6 @@ struct visornic_devdata { struct uiscmdrsp cmdrsp[SIZEOF_CMDRSP]; }; - -/* List of all visornic_devdata structs, - * linked via the list_all member - */ -static LIST_HEAD(list_all_devices); -static DEFINE_SPINLOCK(lock_all_devices); static int visornic_poll(struct napi_struct *napi, int budget); static void poll_for_irq(unsigned long v); @@ -1372,9 +1365,6 @@ devdata_initialize(struct visornic_devdata *devdata, struct visor_device *dev) return NULL; memset(devdata, '\0', sizeof(struct visornic_devdata)); devdata->dev = dev; - spin_lock(&lock_all_devices); - list_add_tail(&devdata->list_all, &list_all_devices); - spin_unlock(&lock_all_devices); return devdata; } @@ -1387,9 +1377,6 @@ devdata_initialize(struct visornic_devdata *devdata, struct visor_device *dev) */ static void devdata_release(struct visornic_devdata *devdata) { - spin_lock(&lock_all_devices); - list_del(&devdata->list_all); - spin_unlock(&lock_all_devices); kfree(devdata->rcvbuf); kfree(devdata->cmdrsp_rcv); kfree(devdata->xmit_cmdrsp); From f84bd6267d623b49f196d54ba9edc41ff1c4d5e3 Mon Sep 17 00:00:00 2001 From: Benjamin Romer Date: Thu, 1 Oct 2015 11:52:30 -0400 Subject: [PATCH 1093/2431] staging: unisys: correctly handle return value from queue_delayed_work() Properly handle the return value from queue_delayed_work() - it's a bool, not an int, so using a less than comparison isn't appropriate. This mistake was found by David Binderman . Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorbus/periodic_work.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/unisys/visorbus/periodic_work.c b/drivers/staging/unisys/visorbus/periodic_work.c index a3631c3591f6..115b7aa9560a 100644 --- a/drivers/staging/unisys/visorbus/periodic_work.c +++ b/drivers/staging/unisys/visorbus/periodic_work.c @@ -86,8 +86,8 @@ bool visor_periodic_work_nextperiod(struct periodic_work *pw) pw->want_to_stop = false; rc = true; /* yes, true; see visor_periodic_work_stop() */ goto unlock; - } else if (queue_delayed_work(pw->workqueue, &pw->work, - pw->jiffy_interval) < 0) { + } else if (!queue_delayed_work(pw->workqueue, &pw->work, + pw->jiffy_interval)) { pw->is_scheduled = false; rc = false; goto unlock; @@ -117,8 +117,8 @@ bool visor_periodic_work_start(struct periodic_work *pw) goto unlock; } INIT_DELAYED_WORK(&pw->work, &periodic_work_func); - if (queue_delayed_work(pw->workqueue, &pw->work, - pw->jiffy_interval) < 0) { + if (!queue_delayed_work(pw->workqueue, &pw->work, + pw->jiffy_interval)) { rc = false; goto unlock; } From 0fbc149c9426f2ca18745bf94eb854b6d41332bb Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Thu, 1 Oct 2015 12:41:58 -0400 Subject: [PATCH 1094/2431] staging: unisys: visorhid: correctly map keys with extended scancodes The most-noticed key that wasn't being mapped correctly was Right-Alt, which is the AltGr key on many non-US keyboards, used to select many extended characters. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorhid/visorhid.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/staging/unisys/visorhid/visorhid.c b/drivers/staging/unisys/visorhid/visorhid.c index cca426b8f037..119b72dd331d 100644 --- a/drivers/staging/unisys/visorhid/visorhid.c +++ b/drivers/staging/unisys/visorhid/visorhid.c @@ -213,13 +213,14 @@ static unsigned char visorkbd_keycode[256] = { /* American layout */ /* This maps the in extended scancodes of the form "0xE0 " into * keycodes. */ -static unsigned char ext_keycode[256] = { +static unsigned char visorkbd_ext_keycode[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */ 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */ 0, 0, 0, 0, KEY_KPENTER, KEY_RIGHTCTRL, 0, 0, /* 0x18 */ 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */ KEY_RIGHTALT, 0, 0, 0, 0, 0, 0, 0, /* 0x28 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */ + KEY_RIGHTALT /* AltGr */, 0, 0, 0, 0, 0, 0, 0, /* 0x38 */ 0, 0, 0, 0, 0, 0, 0, KEY_HOME, /* 0x40 */ KEY_UP, KEY_PAGEUP, 0, KEY_LEFT, 0, KEY_RIGHT, 0, KEY_END, /* 0x48 */ KEY_DOWN, KEY_PAGEDOWN, KEY_INSERT, KEY_DELETE, 0, 0, 0, 0, /* 0x50 */ @@ -348,6 +349,9 @@ register_client_keyboard(void) for (i = 1; i < ARRAY_SIZE(visorkbd_keycode); i++) set_bit(visorkbd_keycode[i], visorinput_dev->keybit); + for (i = 1; i < ARRAY_SIZE(visorkbd_ext_keycode); i++) + set_bit(visorkbd_ext_keycode[i], visorinput_dev->keybit); + error = input_register_device(visorinput_dev); if (error) { input_free_device(visorinput_dev); @@ -469,7 +473,7 @@ scancode_to_keycode(int scancode) int keycode; if (scancode > 0xff) - keycode = ext_keycode[(scancode >> 8) & 0xff]; + keycode = visorkbd_ext_keycode[(scancode >> 8) & 0xff]; else keycode = visorkbd_keycode[scancode]; return keycode; From bc719854d2c0f338fb784560e80e216dcfbe5332 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Thu, 1 Oct 2015 12:41:59 -0400 Subject: [PATCH 1095/2431] staging: unisys: visorhid: remove unnecessary include of serio.h No need for serio.h to be included. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorhid/visorhid.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/unisys/visorhid/visorhid.c b/drivers/staging/unisys/visorhid/visorhid.c index 119b72dd331d..c24aaf59be9d 100644 --- a/drivers/staging/unisys/visorhid/visorhid.c +++ b/drivers/staging/unisys/visorhid/visorhid.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include "keyboardchannel.h" From a56d092aa94ebcc9452ddaa47423b9a478aa6aa5 Mon Sep 17 00:00:00 2001 From: Rohit kumar Date: Wed, 30 Sep 2015 11:07:35 +0530 Subject: [PATCH 1096/2431] staging: ion: Fix error handling in ion_buffer_create This patch fixes error handling case when buffer->pages allocation fails. Also, it removes unreachable code of checking ret variable although it is not updated. Signed-off-by: Rohit kumar Reviewed-by: Laura Abbott Suggested-by: Pintu Kumar Reviewed-by: Pintu Kumar Reviewed-by: Gioh Kim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ion/ion.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index df3539865fb4..91b9b75e41da 100644 --- a/drivers/staging/android/ion/ion.c +++ b/drivers/staging/android/ion/ion.c @@ -213,10 +213,10 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap, "heap->ops->map_dma should return ERR_PTR on error")) table = ERR_PTR(-EINVAL); if (IS_ERR(table)) { - heap->ops->free(buffer); - kfree(buffer); - return ERR_CAST(table); + ret = -EINVAL; + goto err1; } + buffer->sg_table = table; if (ion_buffer_fault_user_mappings(buffer)) { int num_pages = PAGE_ALIGN(buffer->size) / PAGE_SIZE; @@ -226,7 +226,7 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap, buffer->pages = vmalloc(sizeof(struct page *) * num_pages); if (!buffer->pages) { ret = -ENOMEM; - goto err1; + goto err; } for_each_sg(table->sgl, sg, table->nents, i) { @@ -235,9 +235,6 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap, for (j = 0; j < sg->length / PAGE_SIZE; j++) buffer->pages[k++] = page++; } - - if (ret) - goto err; } buffer->dev = dev; @@ -263,9 +260,8 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap, err: heap->ops->unmap_dma(heap, buffer); - heap->ops->free(buffer); err1: - vfree(buffer->pages); + heap->ops->free(buffer); err2: kfree(buffer); return ERR_PTR(ret); From ea1ea695133a47302c639d9e836f513d7473562a Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 30 Sep 2015 16:43:55 +0100 Subject: [PATCH 1097/2431] staging: comedi: comedi_pci.c: Fix kernel-doc Return tags Fix the 'Return' tags in the kernel-doc comments as they currently say 'Returns', which is not recognized by kernel-doc. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_pci.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/comedi_pci.c b/drivers/staging/comedi/comedi_pci.c index 0601049d8923..51e023a1c0ee 100644 --- a/drivers/staging/comedi/comedi_pci.c +++ b/drivers/staging/comedi/comedi_pci.c @@ -28,8 +28,8 @@ * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a * a &struct device embedded in a &struct pci_dev. * - * Returns: Attached PCI device if @dev->hw_dev is non-%NULL. - * Returns %NULL if @dev->hw_dev is %NULL. + * Return: Attached PCI device if @dev->hw_dev is non-%NULL. + * Return %NULL if @dev->hw_dev is %NULL. */ struct pci_dev *comedi_to_pci_dev(struct comedi_device *dev) { @@ -48,7 +48,7 @@ EXPORT_SYMBOL_GPL(comedi_to_pci_dev); * * Calls to comedi_pci_enable() and comedi_pci_disable() cannot be nested. * - * Returns: + * Return: * 0 on success, * -%ENODEV if @dev->hw_dev is %NULL, * -%EBUSY if regions busy, @@ -143,7 +143,7 @@ EXPORT_SYMBOL_GPL(comedi_pci_detach); * "auto_attach" handler. The "auto_attach" handler may call * comedi_to_pci_dev() on the passed in COMEDI device to recover @pcidev. * - * Returns: The result of calling comedi_auto_config() (0 on success, or + * Return: The result of calling comedi_auto_config() (0 on success, or * a negative error number on failure). */ int comedi_pci_auto_config(struct pci_dev *pcidev, @@ -183,7 +183,7 @@ EXPORT_SYMBOL_GPL(comedi_pci_auto_unconfig); * to register the COMEDI driver and the PCI driver. Do not call it directly, * use the module_comedi_pci_driver() helper macro instead. * - * Returns: 0 on success, or a negative error number on failure. + * Return: 0 on success, or a negative error number on failure. */ int comedi_pci_driver_register(struct comedi_driver *comedi_driver, struct pci_driver *pci_driver) From 127a0cf9b091fe85b6624a4ac8164d6b2cf76143 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 30 Sep 2015 17:10:57 +0100 Subject: [PATCH 1098/2431] staging: comedi: comedi_pcmcia.c: improve function documentation Expand the descriptions of the functions and document the return values. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_pcmcia.c | 104 ++++++++++++++++++------- 1 file changed, 76 insertions(+), 28 deletions(-) diff --git a/drivers/staging/comedi/comedi_pcmcia.c b/drivers/staging/comedi/comedi_pcmcia.c index 7e784399a16f..d7072a5c1647 100644 --- a/drivers/staging/comedi/comedi_pcmcia.c +++ b/drivers/staging/comedi/comedi_pcmcia.c @@ -22,8 +22,14 @@ #include "comedi_pcmcia.h" /** - * comedi_to_pcmcia_dev() - comedi_device pointer to pcmcia_device pointer. - * @dev: comedi_device struct + * comedi_to_pcmcia_dev() - Return PCMCIA device attached to COMEDI device + * @dev: COMEDI device. + * + * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a + * a &struct device embedded in a &struct pcmcia_device. + * + * Return: Attached PCMCIA device if @dev->hw_dev is non-%NULL. + * Return %NULL if @dev->hw_dev is %NULL. */ struct pcmcia_device *comedi_to_pcmcia_dev(struct comedi_device *dev) { @@ -41,13 +47,35 @@ static int comedi_pcmcia_conf_check(struct pcmcia_device *link, } /** - * comedi_pcmcia_enable() - Request the regions and enable the PCMCIA device. - * @dev: comedi_device struct - * @conf_check: optional callback to check the pcmcia_device configuration + * comedi_pcmcia_enable() - Request the regions and enable the PCMCIA device + * @dev: COMEDI device. + * @conf_check: Optional callback to check each configuration option of the + * PCMCIA device and request I/O regions. * - * The comedi PCMCIA driver needs to set the link->config_flags, as - * appropriate for that driver, before calling this function in order - * to allow pcmcia_loop_config() to do its internal autoconfiguration. + * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a a + * &struct device embedded in a &struct pcmcia_device. The comedi PCMCIA + * driver needs to set the 'config_flags' member in the &struct pcmcia_device, + * as appropriate for that driver, before calling this function in order to + * allow pcmcia_loop_config() to do its internal autoconfiguration. + * + * If @conf_check is %NULL it is set to a default function. If is + * passed to pcmcia_loop_config() and should return %0 if the configuration + * is valid and I/O regions requested successfully, otherwise it should return + * a negative error value. The default function returns -%EINVAL if the + * 'config_index' member is %0, otherwise it calls pcmcia_request_io() and + * returns the result. + * + * If the above configuration check passes, pcmcia_enable_device() is called + * to set up and activate the PCMCIA device. + * + * If this function returns an error, comedi_pcmcia_disable() should be called + * to release requested resources. + * + * Return: + * 0 on success, + * -%ENODEV id @dev->hw_dev is %NULL, + * a negative error number from pcmcia_loop_config() if it fails, + * or a negative error number from pcmcia_enable_device() if it fails. */ int comedi_pcmcia_enable(struct comedi_device *dev, int (*conf_check)(struct pcmcia_device *, void *)) @@ -70,8 +98,12 @@ int comedi_pcmcia_enable(struct comedi_device *dev, EXPORT_SYMBOL_GPL(comedi_pcmcia_enable); /** - * comedi_pcmcia_disable() - Disable the PCMCIA device and release the regions. - * @dev: comedi_device struct + * comedi_pcmcia_disable() - Disable the PCMCIA device and release the regions + * @dev: COMEDI device. + * + * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a + * a &struct device embedded in a &struct pcmcia_device. Call + * pcmcia_disable_device() to disable and clean up the PCMCIA device. */ void comedi_pcmcia_disable(struct comedi_device *dev) { @@ -83,11 +115,17 @@ void comedi_pcmcia_disable(struct comedi_device *dev) EXPORT_SYMBOL_GPL(comedi_pcmcia_disable); /** - * comedi_pcmcia_auto_config() - Configure/probe a comedi PCMCIA driver. - * @link: pcmcia_device struct - * @driver: comedi_driver struct + * comedi_pcmcia_auto_config() - Configure/probe a PCMCIA COMEDI device + * @link: PCMCIA device. + * @driver: Registered COMEDI driver. * - * Typically called from the pcmcia_driver (*probe) function. + * Typically called from the pcmcia_driver (*probe) function. Auto-configure + * a COMEDI device, using a pointer to the &struct device embedded in *@link + * as the hardware device. The @driver's "auto_attach" handler may call + * comedi_to_pcmcia_dev() on the passed in COMEDI device to recover @link. + * + * Return: The result of calling comedi_auto_config() (0 on success, or a + * negative error number on failure). */ int comedi_pcmcia_auto_config(struct pcmcia_device *link, struct comedi_driver *driver) @@ -97,10 +135,18 @@ int comedi_pcmcia_auto_config(struct pcmcia_device *link, EXPORT_SYMBOL_GPL(comedi_pcmcia_auto_config); /** - * comedi_pcmcia_auto_unconfig() - Unconfigure/remove a comedi PCMCIA driver. - * @link: pcmcia_device struct + * comedi_pcmcia_auto_unconfig() - Unconfigure/remove a PCMCIA COMEDI device + * @link: PCMCIA device. * * Typically called from the pcmcia_driver (*remove) function. + * Auto-unconfigure a COMEDI device attached to this PCMCIA device, using a + * pointer to the &struct device embedded in *@link as the hardware device. + * The COMEDI driver's "detach" handler will be called during unconfiguration + * of the COMEDI device. + * + * Note that the COMEDI device may have already been unconfigured using the + * %COMEDI_DEVCONFIG ioctl, in which case this attempt to unconfigure it + * again should be ignored. */ void comedi_pcmcia_auto_unconfig(struct pcmcia_device *link) { @@ -109,13 +155,15 @@ void comedi_pcmcia_auto_unconfig(struct pcmcia_device *link) EXPORT_SYMBOL_GPL(comedi_pcmcia_auto_unconfig); /** - * comedi_pcmcia_driver_register() - Register a comedi PCMCIA driver. - * @comedi_driver: comedi_driver struct - * @pcmcia_driver: pcmcia_driver struct + * comedi_pcmcia_driver_register() - Register a PCMCIA COMEDI driver + * @comedi_driver: COMEDI driver to be registered. + * @pcmcia_driver: PCMCIA driver to be registered. * - * This function is used for the module_init() of comedi USB drivers. - * Do not call it directly, use the module_comedi_pcmcia_driver() helper - * macro instead. + * This function is used for the module_init() of PCMCIA COMEDI driver modules + * to register the COMEDI driver and the PCMCIA driver. Do not call it + * directly, use the module_comedi_pcmcia_driver() helper macro instead. + * + * Return: 0 on success, or a negative error number on failure. */ int comedi_pcmcia_driver_register(struct comedi_driver *comedi_driver, struct pcmcia_driver *pcmcia_driver) @@ -137,13 +185,13 @@ int comedi_pcmcia_driver_register(struct comedi_driver *comedi_driver, EXPORT_SYMBOL_GPL(comedi_pcmcia_driver_register); /** - * comedi_pcmcia_driver_unregister() - Unregister a comedi PCMCIA driver. - * @comedi_driver: comedi_driver struct - * @pcmcia_driver: pcmcia_driver struct + * comedi_pcmcia_driver_unregister() - Unregister a PCMCIA COMEDI driver + * @comedi_driver: COMEDI driver to be registered. + * @pcmcia_driver: PCMCIA driver to be registered. * - * This function is used for the module_exit() of comedi PCMCIA drivers. - * Do not call it directly, use the module_comedi_pcmcia_driver() helper - * macro instead. + * This function is called from the module_exit() of PCMCIA COMEDI driver + * modules to unregister the PCMCIA driver and the COMEDI driver. Do not call + * it directly, use the module_comedi_pcmcia_driver() helper macro instead. */ void comedi_pcmcia_driver_unregister(struct comedi_driver *comedi_driver, struct pcmcia_driver *pcmcia_driver) From ddf837ea95017a658d2a4bac6b89fc0989f2e5e6 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 30 Sep 2015 17:37:13 +0100 Subject: [PATCH 1099/2431] staging: comedi: comedi_usb.c: improve function documentation Expand the descriptions of the functions and document the return values. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_usb.c | 75 ++++++++++++++++++++--------- 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/drivers/staging/comedi/comedi_usb.c b/drivers/staging/comedi/comedi_usb.c index 68b75e8feec0..9c946d40b894 100644 --- a/drivers/staging/comedi/comedi_usb.c +++ b/drivers/staging/comedi/comedi_usb.c @@ -21,8 +21,14 @@ #include "comedi_usb.h" /** - * comedi_to_usb_interface() - comedi_device pointer to usb_interface pointer. - * @dev: comedi_device struct + * comedi_to_usb_interface() - Return USB interface attached to COMEDI device + * @dev: COMEDI device. + * + * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a + * a &struct device embedded in a &struct usb_interface. + * + * Return: Attached USB interface if @dev->hw_dev is non-%NULL. + * Return %NULL if @dev->hw_dev is %NULL. */ struct usb_interface *comedi_to_usb_interface(struct comedi_device *dev) { @@ -31,8 +37,14 @@ struct usb_interface *comedi_to_usb_interface(struct comedi_device *dev) EXPORT_SYMBOL_GPL(comedi_to_usb_interface); /** - * comedi_to_usb_dev() - comedi_device pointer to usb_device pointer. - * @dev: comedi_device struct + * comedi_to_usb_dev() - Return USB device attached to COMEDI device + * @dev: COMEDI device. + * + * Assuming @dev->hw_dev is non-%NULL, it is assumed to be pointing to a + * a &struct device embedded in a &struct usb_interface. + * + * Return: USB device to which the USB interface belongs if @dev->hw_dev is + * non-%NULL. Return %NULL if @dev->hw_dev is %NULL. */ struct usb_device *comedi_to_usb_dev(struct comedi_device *dev) { @@ -43,12 +55,19 @@ struct usb_device *comedi_to_usb_dev(struct comedi_device *dev) EXPORT_SYMBOL_GPL(comedi_to_usb_dev); /** - * comedi_usb_auto_config() - Configure/probe a comedi USB driver. - * @intf: usb_interface struct - * @driver: comedi_driver struct - * @context: driver specific data, passed to comedi_auto_config() + * comedi_usb_auto_config() - Configure/probe a USB COMEDI driver + * @intf: USB interface. + * @driver: Registered COMEDI driver. + * @context: Driver specific data, passed to comedi_auto_config(). * - * Typically called from the usb_driver (*probe) function. + * Typically called from the usb_driver (*probe) function. Auto-configure a + * COMEDI device, using a pointer to the &struct device embedded in *@intf as + * the hardware device. The @context value gets passed through to @driver's + * "auto_attach" handler. The "auto_attach" handler may call + * comedi_to_usb_interface() on the passed in COMEDI device to recover @intf. + * + * Return: The result of calling comedi_auto_config() (%0 on success, or + * a negative error number on failure). */ int comedi_usb_auto_config(struct usb_interface *intf, struct comedi_driver *driver, @@ -59,10 +78,18 @@ int comedi_usb_auto_config(struct usb_interface *intf, EXPORT_SYMBOL_GPL(comedi_usb_auto_config); /** - * comedi_pci_auto_unconfig() - Unconfigure/disconnect a comedi USB driver. - * @intf: usb_interface struct + * comedi_usb_auto_unconfig() - Unconfigure/disconnect a USB COMEDI device + * @intf: USB interface. * * Typically called from the usb_driver (*disconnect) function. + * Auto-unconfigure a COMEDI device attached to this USB interface, using a + * pointer to the &struct device embedded in *@intf as the hardware device. + * The COMEDI driver's "detach" handler will be called during unconfiguration + * of the COMEDI device. + * + * Note that the COMEDI device may have already been unconfigured using the + * %COMEDI_DEVCONFIG ioctl, in which case this attempt to unconfigure it + * again should be ignored. */ void comedi_usb_auto_unconfig(struct usb_interface *intf) { @@ -71,13 +98,15 @@ void comedi_usb_auto_unconfig(struct usb_interface *intf) EXPORT_SYMBOL_GPL(comedi_usb_auto_unconfig); /** - * comedi_usb_driver_register() - Register a comedi USB driver. - * @comedi_driver: comedi_driver struct - * @usb_driver: usb_driver struct + * comedi_usb_driver_register() - Register a USB COMEDI driver + * @comedi_driver: COMEDI driver to be registered. + * @usb_driver: USB driver to be registered. * - * This function is used for the module_init() of comedi USB drivers. - * Do not call it directly, use the module_comedi_usb_driver() helper - * macro instead. + * This function is called from the module_init() of USB COMEDI driver modules + * to register the COMEDI driver and the USB driver. Do not call it directly, + * use the module_comedi_usb_driver() helper macro instead. + * + * Return: %0 on success, or a negative error number on failure. */ int comedi_usb_driver_register(struct comedi_driver *comedi_driver, struct usb_driver *usb_driver) @@ -99,13 +128,13 @@ int comedi_usb_driver_register(struct comedi_driver *comedi_driver, EXPORT_SYMBOL_GPL(comedi_usb_driver_register); /** - * comedi_usb_driver_unregister() - Unregister a comedi USB driver. - * @comedi_driver: comedi_driver struct - * @usb_driver: usb_driver struct + * comedi_usb_driver_unregister() - Unregister a USB COMEDI driver + * @comedi_driver: COMEDI driver to be registered. + * @usb_driver: USB driver to be registered. * - * This function is used for the module_exit() of comedi USB drivers. - * Do not call it directly, use the module_comedi_usb_driver() helper - * macro instead. + * This function is called from the module_exit() of USB COMEDI driver modules + * to unregister the USB driver and the COMEDI driver. Do not call it + * directly, use the module_comedi_usb_driver() helper macro instead. */ void comedi_usb_driver_unregister(struct comedi_driver *comedi_driver, struct usb_driver *usb_driver) From 5f7a9424951b9d415aa61bcbd126ba5a3e09c1bc Mon Sep 17 00:00:00 2001 From: Arjun Krishna Babu Date: Wed, 30 Sep 2015 18:24:22 +0530 Subject: [PATCH 1100/2431] staging: vt6655: Fixed two lines over 80 characters long Two lines of code that were over 80 characters long is fixed by splitting them across multiple lines. The lines of code are now easier to comprehend. Issue found by checkpatch. Signed-off-by: Arjun Krishna Babu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/baseband.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/staging/vt6655/baseband.c b/drivers/staging/vt6655/baseband.c index 9e61f2df3a00..1e6c0c4a0307 100644 --- a/drivers/staging/vt6655/baseband.c +++ b/drivers/staging/vt6655/baseband.c @@ -2089,9 +2089,19 @@ bool BBbVT3253Init(struct vnt_private *priv) byVT3253B0_UW2451[ii][0], byVT3253B0_UW2451[ii][1]); - /* Init ANT B select,TX Config CR09 = 0x61->0x45, 0x45->0x41(VC1/VC2 define, make the ANT_A, ANT_B inverted) */ + /* Init ANT B select, + * TX Config CR09 = 0x61->0x45, + * 0x45->0x41(VC1/VC2 define, make the ANT_A, ANT_B inverted) + */ + /*bResult &= BBbWriteEmbedded(dwIoBase,0x09,0x41);*/ - /* Init ANT B select,RX Config CR10 = 0x28->0x2A, 0x2A->0x28(VC1/VC2 define, make the ANT_A, ANT_B inverted) */ + + /* Init ANT B select, + * RX Config CR10 = 0x28->0x2A, + * 0x2A->0x28(VC1/VC2 define, + * make the ANT_A, ANT_B inverted) + */ + /*bResult &= BBbWriteEmbedded(dwIoBase,0x0a,0x28);*/ /* Select VC1/VC2, CR215 = 0x02->0x06 */ bResult &= BBbWriteEmbedded(priv, 0xd7, 0x06); From b890d00e849384ed2529071ce4a8e51160de6055 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Wed, 30 Sep 2015 10:20:47 -0500 Subject: [PATCH 1101/2431] staging: rtl8188eu: Add missing include In commit 0a0796eb16f3, there is no include to mon.h, a newly created header file. This omission leads to the following Sparse warnings: CHECK drivers/staging/rtl8188eu/os_dep/mon.c drivers/staging/rtl8188eu/os_dep/mon.c:81:6: warning: symbol 'rtl88eu_mon_recv_hook' was not declared. Should it be static? drivers/staging/rtl8188eu/os_dep/mon.c:113:6: warning: symbol 'rtl88eu_mon_xmit_hook' was not declared. Should it be static? drivers/staging/rtl8188eu/os_dep/mon.c:167:19: warning: symbol 'rtl88eu_mon_init' was not declared. Should it be static? drivers/staging/rtl8188eu/os_dep/mon.c:188:6: warning: symbol 'rtl88eu_mon_deinit' was not declared. Should it be static? Signed-off-by: Larry Finger Cc: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/os_dep/mon.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c b/drivers/staging/rtl8188eu/os_dep/mon.c index 3dd3dc05fd53..63bb87593af0 100644 --- a/drivers/staging/rtl8188eu/os_dep/mon.c +++ b/drivers/staging/rtl8188eu/os_dep/mon.c @@ -20,6 +20,7 @@ #include #include #include +#include /** * unprotect_frame() - unset Protected flag and strip off IV and ICV/MIC From 86dc65b36cb55b81d1bd90b7483bea06375f5078 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Wed, 30 Sep 2015 13:12:11 +0100 Subject: [PATCH 1102/2431] staging: rtl8192e: rtl_wx: fix negative noise value wstats->qual.noise is of type uint8, so it shouldn't be assigned a negative number. Assigning it 0x100 - 100, which is the equivalent to -100 dBm when IW_QUAL_DBM is set. Signed-off-by: Luis de Bethencourt Tested-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 984cb9a0abae..70df6a1485d6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c @@ -1225,7 +1225,7 @@ static struct iw_statistics *_rtl92e_get_wireless_stats(struct net_device *dev) if (ieee->state < RTLLIB_LINKED) { wstats->qual.qual = 10; wstats->qual.level = 0; - wstats->qual.noise = -100; + wstats->qual.noise = 0x100 - 100; /* -100 dBm */ wstats->qual.updated = IW_QUAL_ALL_UPDATED | IW_QUAL_DBM; return wstats; } From a57ace12815d2e913f6b81e2e9e3c00e24d64594 Mon Sep 17 00:00:00 2001 From: Bryan Paul Date: Wed, 30 Sep 2015 11:05:09 -0600 Subject: [PATCH 1103/2431] staging:rtl8188eu style fix Fixed style issue if comparison should place constant on right of test Signed-off-by: Bryan Paul Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_cmd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index 89b5e48ed68a..9b7026e7d55b 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -125,7 +125,7 @@ u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) cmd_obj->padapter = padapter; res = rtw_cmd_filter(pcmdpriv, cmd_obj); - if (_FAIL == res) { + if (res == _FAIL) { rtw_free_cmd_obj(cmd_obj); goto exit; } @@ -199,7 +199,7 @@ _next: if (!pcmd) continue; - if (_FAIL == rtw_cmd_filter(pcmdpriv, pcmd)) { + if (rtw_cmd_filter(pcmdpriv, pcmd) == _FAIL) { pcmd->res = H2C_DROPPED; goto post_process; } @@ -553,7 +553,7 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueu res = rtw_enqueue_cmd(cmdpriv, cmdobj); } else { /* no need to enqueue, do the cmd hdl directly and free cmd parameter */ - if (H2C_SUCCESS != disconnect_hdl(padapter, (u8 *)param)) + if (disconnect_hdl(padapter, (u8 *)param) != H2C_SUCCESS) res = _FAIL; kfree(param); } @@ -819,7 +819,7 @@ u8 rtw_set_chplan_cmd(struct adapter *padapter, u8 chplan, u8 enqueue) res = rtw_enqueue_cmd(pcmdpriv, pcmdobj); } else { /* no need to enqueue, do the cmd hdl directly and free cmd parameter */ - if (H2C_SUCCESS != set_chplan_hdl(padapter, (unsigned char *)setChannelPlan_param)) + if (set_chplan_hdl(padapter, (unsigned char *)setChannelPlan_param) != H2C_SUCCESS) res = _FAIL; kfree(setChannelPlan_param); From 3fe1be87abfb4fab62a03ca6e1440cd4fc63dc74 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Thu, 1 Oct 2015 16:18:07 +0300 Subject: [PATCH 1104/2431] staging: rtl8712: re-use mac_pton() ...instead of custom approach Cc: Joshua Clayton Signed-off-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 28 +------------------ 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 143be0fdc578..8591d9399f11 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -72,32 +72,6 @@ static const char * const iw_operation_mode[] = { "Monitor" }; -/** - * hwaddr_aton - Convert ASCII string to MAC address - * @txt: MAC address as a string (e.g., "00:11:22:33:44:55") - * @addr: Buffer for the MAC address (ETH_ALEN = 6 bytes) - * Returns: 0 on success, -1 on failure (e.g., string not a MAC address) - */ -static int hwaddr_aton_i(const char *txt, u8 *addr) -{ - int i; - - for (i = 0; i < 6; i++) { - int a, b; - - a = hex_to_bin(*txt++); - if (a < 0) - return -1; - b = hex_to_bin(*txt++); - if (b < 0) - return -1; - *addr++ = (a << 4) | b; - if (i < 5 && *txt++ != ':') - return -1; - } - return 0; -} - void r8712_indicate_wx_assoc_event(struct _adapter *padapter) { union iwreq_data wrqu; @@ -2000,7 +1974,7 @@ static int r871x_get_ap_info(struct net_device *dev, if (end_of_queue_search(phead, plist) == true) break; pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); - if (hwaddr_aton_i(data, bssid)) { + if (!mac_pton(data, bssid)) { netdev_info(dev, "r8712u: Invalid BSSID '%s'.\n", (u8 *)data); spin_unlock_irqrestore(&(pmlmepriv->scanned_queue.lock), From 2d893537569948120332184bbea29c743f9951d9 Mon Sep 17 00:00:00 2001 From: Iban Rodriguez Date: Thu, 1 Oct 2015 22:21:40 +0200 Subject: [PATCH 1105/2431] Staging: rtl8188eu: Correct two coding style errors Correct two errors reported by checkpatch.pl because space prohibited before ','. Also split both lines into multiple lines as they are longer than 80 characters Signed-off-by: Iban Rodriguez Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c index 497fb068fdc8..1beeac46bfe7 100644 --- a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c +++ b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c @@ -159,7 +159,8 @@ u32 _rtw_free_sta_priv(struct sta_priv *pstapriv) while (phead != plist) { int i; - psta = container_of(plist, struct sta_info , hash_list); + psta = container_of(plist, struct sta_info, + hash_list); plist = plist->next; for (i = 0; i < 16; i++) { @@ -304,7 +305,11 @@ u32 rtw_free_stainfo(struct adapter *padapter, struct sta_info *psta) spin_unlock_bh(&pxmitpriv->lock); list_del_init(&psta->hash_list); - RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_err_, ("\n free number_%d stainfo with hwaddr=0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x\n", pstapriv->asoc_sta_count , psta->hwaddr[0], psta->hwaddr[1], psta->hwaddr[2], psta->hwaddr[3], psta->hwaddr[4], psta->hwaddr[5])); + RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_err_, + ("\n free number_%d stainfo with hwaddr=0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x\n", + pstapriv->asoc_sta_count, psta->hwaddr[0], psta->hwaddr[1], + psta->hwaddr[2], psta->hwaddr[3], psta->hwaddr[4], + psta->hwaddr[5])); pstapriv->asoc_sta_count--; /* re-init sta_info; 20061114 */ From 104f456ce1301fa49f7dffc129c0bce420da07df Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 1 Oct 2015 12:14:02 +0300 Subject: [PATCH 1106/2431] staging: sm750fb: remove unneeded switch statement The lynxfb_ops_check_var function has two switch statements, the first one checks for validity of var->bits_per_pixel and it is is immediatly followed by another one that sets parameters according to var->bits_per_pixel value. These switch statements can be merged into one. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 81fe3c3266d5..4d261d561053 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -537,18 +537,6 @@ static int lynxfb_ops_check_var(struct fb_var_screeninfo *var, var->yres, var->bits_per_pixel); - switch (var->bits_per_pixel) { - case 8: - case 16: - case 24: /* support 24 bpp for only lynx712/722/720 */ - case 32: - break; - default: - pr_err("bpp %d not supported\n", var->bits_per_pixel); - ret = -EINVAL; - goto exit; - } - switch (var->bits_per_pixel) { case 8: info->fix.visual = FB_VISUAL_PSEUDOCOLOR; @@ -583,8 +571,8 @@ static int lynxfb_ops_check_var(struct fb_var_screeninfo *var, info->fix.visual = FB_VISUAL_TRUECOLOR; break; default: - ret = -EINVAL; - break; + pr_err("bpp %d not supported\n", var->bits_per_pixel); + return -EINVAL; } var->height = var->width = -1; var->accel_flags = 0;/* FB_ACCELF_TEXT; */ @@ -603,7 +591,6 @@ static int lynxfb_ops_check_var(struct fb_var_screeninfo *var, ret = output->proc_checkMode(output, var); if (!ret) ret = crtc->proc_checkMode(crtc, var); -exit: return ret; } From efca4885b2b86d9c1a2eb579f6e9d573d44896f8 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 1 Oct 2015 12:14:03 +0300 Subject: [PATCH 1107/2431] staging: sm750fb: remove proc_checkMode method from lynxfb_output The proc_checkMode of lynxfb_output is set to function that always returns 0. Calling that function and checking for its return value is meaningless. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 6 +----- drivers/staging/sm750fb/sm750.h | 1 - drivers/staging/sm750fb/sm750_hw.c | 9 --------- drivers/staging/sm750fb/sm750_hw.h | 1 - 4 files changed, 1 insertion(+), 16 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 4d261d561053..646d2814ea55 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -588,10 +588,7 @@ static int lynxfb_ops_check_var(struct fb_var_screeninfo *var, return -ENOMEM; } - ret = output->proc_checkMode(output, var); - if (!ret) - ret = crtc->proc_checkMode(crtc, var); - return ret; + return crtc->proc_checkMode(crtc, var); } static int lynxfb_ops_setcolreg(unsigned regno, @@ -690,7 +687,6 @@ static int sm750fb_set_drv(struct lynxfb_par *par) crtc->ywrapstep = 0; output->proc_setMode = hw_sm750_output_setMode; - output->proc_checkMode = hw_sm750_output_checkMode; output->proc_setBLANK = (share->revid == SM750LE_REVISION_ID) ? hw_sm750le_setBLANK : hw_sm750_setBLANK; diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index b2f05f459505..1f365aeb5c97 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -143,7 +143,6 @@ struct lynxfb_output { struct fb_var_screeninfo*, struct fb_fix_screeninfo*); - int (*proc_checkMode)(struct lynxfb_output*, struct fb_var_screeninfo*); int (*proc_setBLANK)(struct lynxfb_output*, int); void (*clear)(struct lynxfb_output *); }; diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 52f5b0eb9bd2..9c2c28ac5639 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -190,15 +190,6 @@ resource_size_t hw_sm750_getVMSize(struct lynx_share *share) return ret; } - - -int hw_sm750_output_checkMode(struct lynxfb_output *output, struct fb_var_screeninfo *var) -{ - - return 0; -} - - int hw_sm750_output_setMode(struct lynxfb_output *output, struct fb_var_screeninfo *var, struct fb_fix_screeninfo *fix) { diff --git a/drivers/staging/sm750fb/sm750_hw.h b/drivers/staging/sm750fb/sm750_hw.h index 3781a1a11c68..a4d66bf346dc 100644 --- a/drivers/staging/sm750fb/sm750_hw.h +++ b/drivers/staging/sm750fb/sm750_hw.h @@ -85,7 +85,6 @@ int hw_sm750_deWait(void); int hw_sm750le_deWait(void); resource_size_t hw_sm750_getVMSize(struct lynx_share *); -int hw_sm750_output_checkMode(struct lynxfb_output*, struct fb_var_screeninfo*); int hw_sm750_output_setMode(struct lynxfb_output*, struct fb_var_screeninfo*, struct fb_fix_screeninfo*); int hw_sm750_crtc_checkMode(struct lynxfb_crtc*, struct fb_var_screeninfo*); int hw_sm750_crtc_setMode(struct lynxfb_crtc*, struct fb_var_screeninfo*, struct fb_fix_screeninfo*); From 4dc4d225550e12bb0526a2dc05c0073f44121714 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 1 Oct 2015 12:14:04 +0300 Subject: [PATCH 1108/2431] staging: sm750fb: remove clear method from lynxfb_{crtc,output} The clear methods of lynxfb_crtc and lynxfb_output are empty and therefore they can be removed. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 5 ----- drivers/staging/sm750fb/sm750.h | 2 -- drivers/staging/sm750fb/sm750_hw.c | 12 ------------ drivers/staging/sm750fb/sm750_hw.h | 2 -- 4 files changed, 21 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 646d2814ea55..494017f5235c 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -680,7 +680,6 @@ static int sm750fb_set_drv(struct lynxfb_par *par) crtc->proc_checkMode = hw_sm750_crtc_checkMode; crtc->proc_setColReg = hw_sm750_setColReg; crtc->proc_panDisplay = hw_sm750_pan_display; - crtc->clear = hw_sm750_crtc_clear; crtc->line_pad = 16; crtc->xpanstep = 8; crtc->ypanstep = 1; @@ -690,7 +689,6 @@ static int sm750fb_set_drv(struct lynxfb_par *par) output->proc_setBLANK = (share->revid == SM750LE_REVISION_ID) ? hw_sm750le_setBLANK : hw_sm750_setBLANK; - output->clear = hw_sm750_output_clear; /* chip specific phase */ share->accel.de_wait = (share->revid == SM750LE_REVISION_ID) ? hw_sm750le_deWait : hw_sm750_deWait; @@ -1219,9 +1217,6 @@ static void lynxfb_pci_remove(struct pci_dev *pdev) par = info->par; unregister_framebuffer(info); - /* clean crtc & output allocations */ - par->crtc.clear(&par->crtc); - par->output.clear(&par->output); /* release frame buffer */ framebuffer_release(info); } diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index 1f365aeb5c97..52fe945101c8 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -113,7 +113,6 @@ struct lynxfb_crtc { int (*proc_checkMode)(struct lynxfb_crtc*, struct fb_var_screeninfo*); int (*proc_setColReg)(struct lynxfb_crtc*, ushort, ushort, ushort, ushort); - void (*clear)(struct lynxfb_crtc *); /* pan display */ int (*proc_panDisplay)(struct lynxfb_crtc *, const struct fb_var_screeninfo *, @@ -144,7 +143,6 @@ struct lynxfb_output { struct fb_fix_screeninfo*); int (*proc_setBLANK)(struct lynxfb_output*, int); - void (*clear)(struct lynxfb_output *); }; struct lynxfb_par { diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 9c2c28ac5639..92e194ddb15a 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -232,12 +232,6 @@ int hw_sm750_output_setMode(struct lynxfb_output *output, return ret; } -void hw_sm750_output_clear(struct lynxfb_output *output) -{ - - return; -} - int hw_sm750_crtc_checkMode(struct lynxfb_crtc *crtc, struct fb_var_screeninfo *var) { struct lynx_share *share; @@ -387,12 +381,6 @@ exit: return ret; } -void hw_sm750_crtc_clear(struct lynxfb_crtc *crtc) -{ - - return; -} - int hw_sm750_setColReg(struct lynxfb_crtc *crtc, ushort index, ushort red, ushort green, ushort blue) { diff --git a/drivers/staging/sm750fb/sm750_hw.h b/drivers/staging/sm750fb/sm750_hw.h index a4d66bf346dc..cc8c76d0c1d2 100644 --- a/drivers/staging/sm750fb/sm750_hw.h +++ b/drivers/staging/sm750fb/sm750_hw.h @@ -91,8 +91,6 @@ int hw_sm750_crtc_setMode(struct lynxfb_crtc*, struct fb_var_screeninfo*, struct int hw_sm750_setColReg(struct lynxfb_crtc*, ushort, ushort, ushort, ushort); int hw_sm750_setBLANK(struct lynxfb_output*, int); int hw_sm750le_setBLANK(struct lynxfb_output*, int); -void hw_sm750_crtc_clear(struct lynxfb_crtc *); -void hw_sm750_output_clear(struct lynxfb_output *); int hw_sm750_pan_display(struct lynxfb_crtc *crtc, const struct fb_var_screeninfo *var, const struct fb_info *info); From 2043397283c4e1e318932bc7db285cf1c6a073fa Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:37 -0800 Subject: [PATCH 1109/2431] Staging: rtl8192u: quoted strings split across lines This is a patch to fix up instances where quoted strings are split across multiple lines in several instances in ieee80211_crypt_ccmp.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- .../rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index a66141647f2d..71e8ad500af1 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c @@ -73,8 +73,7 @@ static void *ieee80211_ccmp_init(int key_idx) priv->tfm = (void *)crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(priv->tfm)) { - printk(KERN_DEBUG "ieee80211_crypt_ccmp: could not allocate " - "crypto API aes\n"); + printk(KERN_DEBUG "ieee80211_crypt_ccmp: could not allocate crypto API aes\n"); priv->tfm = NULL; goto fail; } @@ -284,23 +283,22 @@ static int ieee80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) keyidx = pos[3]; if (!(keyidx & (1 << 5))) { if (net_ratelimit()) { - printk(KERN_DEBUG "CCMP: received packet without ExtIV" - " flag from %pM\n", hdr->addr2); + printk(KERN_DEBUG "CCMP: received packet without ExtIV flag from %pM\n", + hdr->addr2); } key->dot11RSNAStatsCCMPFormatErrors++; return -2; } keyidx >>= 6; if (key->key_idx != keyidx) { - printk(KERN_DEBUG "CCMP: RX tkey->key_idx=%d frame " - "keyidx=%d priv=%p\n", key->key_idx, keyidx, priv); + printk(KERN_DEBUG "CCMP: RX tkey->key_idx=%d frame keyidx=%d priv=%p\n", + key->key_idx, keyidx, priv); return -6; } if (!key->key_set) { if (net_ratelimit()) { - printk(KERN_DEBUG "CCMP: received packet from %pM" - " with keyid=%d that does not have a configured" - " key\n", hdr->addr2, keyidx); + printk(KERN_DEBUG "CCMP: received packet from %pM with keyid=%d that does not have a configured key\n", + hdr->addr2, keyidx); } return -3; } @@ -315,8 +313,7 @@ static int ieee80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) if (memcmp(pn, key->rx_pn, CCMP_PN_LEN) <= 0) { if (net_ratelimit()) { - printk(KERN_DEBUG "CCMP: replay detected: STA=%pM" - " previous PN %pm received PN %pm\n", + printk(KERN_DEBUG "CCMP: replay detected: STA=%pM previous PN %pm received PN %pm\n", hdr->addr2, key->rx_pn, pn); } key->dot11RSNAStatsCCMPReplays++; @@ -353,8 +350,8 @@ static int ieee80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) if (memcmp(mic, a, CCMP_MIC_LEN) != 0) { if (net_ratelimit()) { - printk(KERN_DEBUG "CCMP: decrypt failed: STA=" - "%pM\n", hdr->addr2); + printk(KERN_DEBUG "CCMP: decrypt failed: STA=%pM\n", + hdr->addr2); } key->dot11RSNAStatsCCMPDecryptErrors++; return -5; @@ -429,9 +426,7 @@ static int ieee80211_ccmp_get_key(void *key, int len, u8 *seq, void *priv) static char *ieee80211_ccmp_print_stats(char *p, void *priv) { struct ieee80211_ccmp_data *ccmp = priv; - p += sprintf(p, "key[%d] alg=CCMP key_set=%d " - "tx_pn=%pm rx_pn=%pm " - "format_errors=%d replays=%d decrypt_errors=%d\n", + p += sprintf(p, "key[%d] alg=CCMP key_set=%d tx_pn=%pm rx_pn=%pm format_errors=%d replays=%d decrypt_errors=%d\n", ccmp->key_idx, ccmp->key_set, ccmp->tx_pn, ccmp->rx_pn, ccmp->dot11RSNAStatsCCMPFormatErrors, From 28b70100dab2f58f61ac34e55b7ebe4d0e36e6f5 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:43 -0800 Subject: [PATCH 1110/2431] Staging: rtl8192u: missing blank lines after declarations This is a patch to add missing lines after variable decalarations in two functions in ieee80211_crypt_ccmp.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index 71e8ad500af1..0404654011e8 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c @@ -104,6 +104,7 @@ static void ieee80211_ccmp_deinit(void *priv) static inline void xor_block(u8 *b, u8 *a, size_t len) { int i; + for (i = 0; i < len; i++) b[i] ^= a[i]; } @@ -426,6 +427,7 @@ static int ieee80211_ccmp_get_key(void *key, int len, u8 *seq, void *priv) static char *ieee80211_ccmp_print_stats(char *p, void *priv) { struct ieee80211_ccmp_data *ccmp = priv; + p += sprintf(p, "key[%d] alg=CCMP key_set=%d tx_pn=%pm rx_pn=%pm format_errors=%d replays=%d decrypt_errors=%d\n", ccmp->key_idx, ccmp->key_set, ccmp->tx_pn, ccmp->rx_pn, From 27a98a28e09c309f3fab3ea5af6af866b8f5b1bd Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:47 -0800 Subject: [PATCH 1111/2431] Staging: rtl8192u: Fix block comment formatting This is a patch to correct block comment formatting in two instances in ieee80211_crypt_ccmp.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index 0404654011e8..ca5139aaf703 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c @@ -125,10 +125,9 @@ static void ccmp_init_blocks(struct crypto_tfm *tfm, fc = le16_to_cpu(hdr->frame_ctl); a4_included = ((fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) == (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)); - /* - qc_included = ((WLAN_FC_GET_TYPE(fc) == IEEE80211_FTYPE_DATA) && - (WLAN_FC_GET_STYPE(fc) & 0x08)); - */ + /* qc_included = ((WLAN_FC_GET_TYPE(fc) == IEEE80211_FTYPE_DATA) && + * (WLAN_FC_GET_STYPE(fc) & 0x08)); + */ /* fixed by David :2006.9.6 */ qc_included = (WLAN_FC_GET_TYPE(fc) == IEEE80211_FTYPE_DATA) && (WLAN_FC_GET_STYPE(fc) & 0x80); @@ -146,7 +145,8 @@ static void ccmp_init_blocks(struct crypto_tfm *tfm, * Flag (Include authentication header, M=3 (8-octet MIC), * L=1 (2-octet Dlen)) * Nonce: 0x00 | A2 | PN - * Dlen */ + * Dlen + */ b0[0] = 0x59; b0[1] = qc; memcpy(b0 + 2, hdr->addr2, ETH_ALEN); From d9098c551a5d96df61cd4703866e727d7b1a2af8 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:52 -0800 Subject: [PATCH 1112/2431] Staging: rtl8192u: Correct open brace placement This is a patch to move open braces to the appropriate lines in two instances in ieee80211_crypt_ccmp.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index ca5139aaf703..c8aaab3a427c 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c @@ -229,8 +229,7 @@ static int ieee80211_ccmp_encrypt(struct sk_buff *skb, int hdr_len, void *priv) hdr = (struct rtl_80211_hdr_4addr *) skb->data; - if (!tcb_desc->bHwSec) - { + if (!tcb_desc->bHwSec) { int blocks, last, len; u8 *mic; u8 *b0 = key->tx_b0; @@ -320,8 +319,7 @@ static int ieee80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) key->dot11RSNAStatsCCMPReplays++; return -4; } - if (!tcb_desc->bHwSec) - { + if (!tcb_desc->bHwSec) { size_t data_len = skb->len - hdr_len - CCMP_HDR_LEN - CCMP_MIC_LEN; u8 *mic = skb->data + skb->len - CCMP_MIC_LEN; u8 *b0 = key->rx_b0; From 0c9fc85c0eca22fff369fed0d27b814b9989c035 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:56 -0800 Subject: [PATCH 1113/2431] Staging: rtl8192u: Remove spaces at the start of lines This is a patch to correct indentation in one instance in ieee80211_crypt_ccmp.c Signed-off-by: Mike Dupuis Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index c8aaab3a427c..27ce4817faeb 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c @@ -71,7 +71,7 @@ static void *ieee80211_ccmp_init(int key_idx) goto fail; priv->key_idx = key_idx; - priv->tfm = (void *)crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC); + priv->tfm = (void *)crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(priv->tfm)) { printk(KERN_DEBUG "ieee80211_crypt_ccmp: could not allocate crypto API aes\n"); priv->tfm = NULL; From 50f415203085311aee004fdbcbf845d49faa8dd9 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:18 +0900 Subject: [PATCH 1114/2431] staging: wilc1000: remove PLL_WORKAROUND This patch removes unnecessary definition, PLL_WORKAROUND from the Makefile. There is no use throughout the driver. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index e965df9ddf70..d226ebea308d 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -9,7 +9,7 @@ ccflags-y += -DSTA_FIRMWARE=\"atmel/wilc1000_fw.bin\" \ -DP2P_CONCURRENCY_FIRMWARE=\"atmel/wilc1000_p2p_fw.bin\" ccflags-y += -I$(src)/ -D__CHECK_ENDIAN__ -DWILC_ASIC_A0 \ - -DPLL_WORKAROUND -DAGING_ALG \ + -DAGING_ALG \ -Wno-unused-function -DWILC_DEBUGFS #ccflags-y += -DTCP_ACK_FILTER From 6011b7796e8f98ace407dd06b554a8d195c0d4bc Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:19 +0900 Subject: [PATCH 1115/2431] staging: wilc1000: remove AGING_ALG This patch removes AGING_ALG from the Makefile because it is always in use. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 1 - drivers/staging/wilc1000/coreconfigurator.h | 2 -- 2 files changed, 3 deletions(-) diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index d226ebea308d..f4950619c17f 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -9,7 +9,6 @@ ccflags-y += -DSTA_FIRMWARE=\"atmel/wilc1000_fw.bin\" \ -DP2P_CONCURRENCY_FIRMWARE=\"atmel/wilc1000_p2p_fw.bin\" ccflags-y += -I$(src)/ -D__CHECK_ENDIAN__ -DWILC_ASIC_A0 \ - -DAGING_ALG \ -Wno-unused-function -DWILC_DEBUGFS #ccflags-y += -DTCP_ACK_FILTER diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 253c7f0c516b..58aa13cd954e 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -96,9 +96,7 @@ typedef struct { unsigned long u32TimeRcvdInScanCached; unsigned long u32TimeRcvdInScan; bool bNewNetwork; -#ifdef AGING_ALG u8 u8Found; -#endif u32 u32Tsf; u8 *pu8IEs; u16 u16IEsLen; From 4528bdb5d26f699175e1e199a72e349a3992b08c Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:20 +0900 Subject: [PATCH 1116/2431] staging: wilc1000: rename strHostIFscanAttr This patch renames strHostIFscanAttr to scan_info in order to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 28 +++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index be01de58e62f..a039f04ce276 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -414,7 +414,7 @@ struct sta_inactive_t { * @version 1.0 */ union message_body { - struct scan_attr strHostIFscanAttr; + struct scan_attr scan_info; struct connect_attr strHostIFconnectAttr; struct rcvd_net_info strRcvdNetworkInfo; struct rcvd_async_info strRcvdGnrlAsyncInfo; @@ -4099,7 +4099,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_SCAN: - Handle_Scan(msg.drvHandler, &msg.body.strHostIFscanAttr); + Handle_Scan(msg.drvHandler, &msg.body.scan_info); break; case HOST_IF_MSG_CONNECT: @@ -5789,26 +5789,26 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, msg.id = HOST_IF_MSG_SCAN; if (pstrHiddenNetwork != NULL) { - msg.body.strHostIFscanAttr.strHiddenNetwork.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; - msg.body.strHostIFscanAttr.strHiddenNetwork.u8ssidnum = pstrHiddenNetwork->u8ssidnum; + msg.body.scan_info.strHiddenNetwork.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; + msg.body.scan_info.strHiddenNetwork.u8ssidnum = pstrHiddenNetwork->u8ssidnum; } else PRINT_D(HOSTINF_DBG, "pstrHiddenNetwork IS EQUAL TO NULL\n"); msg.drvHandler = hWFIDrv; - msg.body.strHostIFscanAttr.u8ScanSource = u8ScanSource; - msg.body.strHostIFscanAttr.u8ScanType = u8ScanType; - msg.body.strHostIFscanAttr.pfScanResult = ScanResult; - msg.body.strHostIFscanAttr.pvUserArg = pvUserArg; + msg.body.scan_info.u8ScanSource = u8ScanSource; + msg.body.scan_info.u8ScanType = u8ScanType; + msg.body.scan_info.pfScanResult = ScanResult; + msg.body.scan_info.pvUserArg = pvUserArg; - msg.body.strHostIFscanAttr.u8ChnlListLen = u8ChnlListLen; - msg.body.strHostIFscanAttr.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.body.strHostIFscanAttr.pu8ChnlFreqList, + msg.body.scan_info.u8ChnlListLen = u8ChnlListLen; + msg.body.scan_info.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.scan_info.pu8ChnlFreqList, pu8ChnlFreqList, u8ChnlListLen); - msg.body.strHostIFscanAttr.IEsLen = IEsLen; - msg.body.strHostIFscanAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.body.strHostIFscanAttr.pu8IEs, + msg.body.scan_info.IEsLen = IEsLen; + msg.body.scan_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.scan_info.pu8IEs, pu8IEs, IEsLen); /* send the message */ From 3f501971b72bb82437b7a3566b00648e1b007a3d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:21 +0900 Subject: [PATCH 1117/2431] staging: wilc1000: rename strHostIFconnectAttr This patch renames strHostIFconnectAttr to con_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a039f04ce276..96f0b69ecbc5 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -415,7 +415,7 @@ struct sta_inactive_t { */ union message_body { struct scan_attr scan_info; - struct connect_attr strHostIFconnectAttr; + struct connect_attr con_info; struct rcvd_net_info strRcvdNetworkInfo; struct rcvd_async_info strRcvdGnrlAsyncInfo; struct key_attr strHostIFkeyAttr; @@ -4103,7 +4103,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_CONNECT: - Handle_Connect(msg.drvHandler, &msg.body.strHostIFconnectAttr); + Handle_Connect(msg.drvHandler, &msg.body.con_info); break; case HOST_IF_MSG_FLUSH_CONNECT: @@ -5084,32 +5084,32 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, msg.id = HOST_IF_MSG_CONNECT; - msg.body.strHostIFconnectAttr.u8security = u8security; - msg.body.strHostIFconnectAttr.tenuAuth_type = tenuAuth_type; - msg.body.strHostIFconnectAttr.u8channel = u8channel; - msg.body.strHostIFconnectAttr.pfConnectResult = pfConnectResult; - msg.body.strHostIFconnectAttr.pvUserArg = pvUserArg; - msg.body.strHostIFconnectAttr.pJoinParams = pJoinParams; + msg.body.con_info.u8security = u8security; + msg.body.con_info.tenuAuth_type = tenuAuth_type; + msg.body.con_info.u8channel = u8channel; + msg.body.con_info.pfConnectResult = pfConnectResult; + msg.body.con_info.pvUserArg = pvUserArg; + msg.body.con_info.pJoinParams = pJoinParams; msg.drvHandler = hWFIDrv; if (pu8bssid != NULL) { - msg.body.strHostIFconnectAttr.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.body.strHostIFconnectAttr.pu8bssid, + msg.body.con_info.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.con_info.pu8bssid, pu8bssid, 6); } if (pu8ssid != NULL) { - msg.body.strHostIFconnectAttr.ssidLen = ssidLen; - msg.body.strHostIFconnectAttr.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.body.strHostIFconnectAttr.pu8ssid, + msg.body.con_info.ssidLen = ssidLen; + msg.body.con_info.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.con_info.pu8ssid, pu8ssid, ssidLen); } if (pu8IEs != NULL) { - msg.body.strHostIFconnectAttr.IEsLen = IEsLen; - msg.body.strHostIFconnectAttr.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.body.strHostIFconnectAttr.pu8IEs, + msg.body.con_info.IEsLen = IEsLen; + msg.body.con_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.con_info.pu8IEs, pu8IEs, IEsLen); } if (pstrWFIDrv->enuHostIFstate < HOST_IF_CONNECTING) From 02d1946002a35ff9e82d0520570466aac8d58689 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:22 +0900 Subject: [PATCH 1118/2431] staging: wilc1000: rename strRcvdNetworkInfo This patch renames strRcvdNetworkInfo to net_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 96f0b69ecbc5..8a93112bb786 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -416,7 +416,7 @@ struct sta_inactive_t { union message_body { struct scan_attr scan_info; struct connect_attr con_info; - struct rcvd_net_info strRcvdNetworkInfo; + struct rcvd_net_info net_info; struct rcvd_async_info strRcvdGnrlAsyncInfo; struct key_attr strHostIFkeyAttr; struct cfg_param_attr strHostIFCfgParamAttr; @@ -4111,7 +4111,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_RCVD_NTWRK_INFO: - Handle_RcvdNtwrkInfo(msg.drvHandler, &msg.body.strRcvdNetworkInfo); + Handle_RcvdNtwrkInfo(msg.drvHandler, &msg.body.net_info); break; case HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO: @@ -6302,9 +6302,9 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.id = HOST_IF_MSG_RCVD_NTWRK_INFO; msg.drvHandler = pstrWFIDrv; - msg.body.strRcvdNetworkInfo.u32Length = u32Length; - msg.body.strRcvdNetworkInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.body.strRcvdNetworkInfo.pu8Buffer, + msg.body.net_info.u32Length = u32Length; + msg.body.net_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.net_info.pu8Buffer, pu8Buffer, u32Length); /* send the message */ From 66add622128e183e6cbe54fd653d1154af7c31c6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:23 +0900 Subject: [PATCH 1119/2431] staging: wilc1000: rename strRcvdGnrlAsyncInfo This patch renames strRcvdGnrlAsyncInfo to async_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8a93112bb786..b24c022bbc51 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -417,7 +417,7 @@ union message_body { struct scan_attr scan_info; struct connect_attr con_info; struct rcvd_net_info net_info; - struct rcvd_async_info strRcvdGnrlAsyncInfo; + struct rcvd_async_info async_info; struct key_attr strHostIFkeyAttr; struct cfg_param_attr strHostIFCfgParamAttr; struct set_channel strHostIFSetChan; @@ -4115,7 +4115,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO: - Handle_RcvdGnrlAsyncInfo(msg.drvHandler, &msg.body.strRcvdGnrlAsyncInfo); + Handle_RcvdGnrlAsyncInfo(msg.drvHandler, &msg.body.async_info); break; case HOST_IF_MSG_KEY: @@ -6359,9 +6359,9 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.drvHandler = pstrWFIDrv; - msg.body.strRcvdGnrlAsyncInfo.u32Length = u32Length; - msg.body.strRcvdGnrlAsyncInfo.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ - memcpy(msg.body.strRcvdGnrlAsyncInfo.pu8Buffer, + msg.body.async_info.u32Length = u32Length; + msg.body.async_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ + memcpy(msg.body.async_info.pu8Buffer, pu8Buffer, u32Length); /* send the message */ From 18990bfe4c82261e9bddfb972d8ef23220468992 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:24 +0900 Subject: [PATCH 1120/2431] staging: wilc1000: rename strHostIFkeyAttr This patch renames strHostIFkeyAttr to key_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 100 +++++++++++----------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b24c022bbc51..d4e81220e873 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -418,7 +418,7 @@ union message_body { struct connect_attr con_info; struct rcvd_net_info net_info; struct rcvd_async_info async_info; - struct key_attr strHostIFkeyAttr; + struct key_attr key_info; struct cfg_param_attr strHostIFCfgParamAttr; struct set_channel strHostIFSetChan; struct get_channel strHostIFGetChan; @@ -4119,7 +4119,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_KEY: - Handle_Key(msg.drvHandler, &msg.body.strHostIFkeyAttr); + Handle_Key(msg.drvHandler, &msg.body.key_info); break; case HOST_IF_MSG_CFG_PARAMS: @@ -4363,13 +4363,13 @@ s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) msg.id = HOST_IF_MSG_KEY; - msg.body.strHostIFkeyAttr.enuKeyType = WEP; - msg.body.strHostIFkeyAttr.u8KeyAction = REMOVEKEY; + msg.body.key_info.enuKeyType = WEP; + msg.body.key_info.u8KeyAction = REMOVEKEY; msg.drvHandler = hWFIDrv; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8keyIdx; /* send the message */ @@ -4411,12 +4411,12 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) msg.id = HOST_IF_MSG_KEY; - msg.body.strHostIFkeyAttr.enuKeyType = WEP; - msg.body.strHostIFkeyAttr.u8KeyAction = DEFAULTKEY; + msg.body.key_info.enuKeyType = WEP; + msg.body.key_info.u8KeyAction = DEFAULTKEY; msg.drvHandler = hWFIDrv; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Index; /* send the message */ @@ -4465,22 +4465,22 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, msg.id = HOST_IF_MSG_KEY; - msg.body.strHostIFkeyAttr.enuKeyType = WEP; - msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.body.key_info.enuKeyType = WEP; + msg.body.key_info.u8KeyAction = ADDKEY; msg.drvHandler = hWFIDrv; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, pu8WepKey, u8WepKeylen); - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen = (u8WepKeylen); - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; /* send the message */ @@ -4531,29 +4531,29 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u PRINT_INFO(HOSTAPD_DBG, "KEY is %x\n", pu8WepKey[i]); } msg.id = HOST_IF_MSG_KEY; - msg.body.strHostIFkeyAttr.enuKeyType = WEP; - msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; + msg.body.key_info.enuKeyType = WEP; + msg.body.key_info.u8KeyAction = ADDKEY_AP; msg.drvHandler = hWFIDrv; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, pu8WepKey, (u8WepKeylen)); - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen = (u8WepKeylen); - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8mode = u8mode; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type = tenuAuth_type; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4606,26 +4606,26 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, msg.id = HOST_IF_MSG_KEY; - msg.body.strHostIFkeyAttr.enuKeyType = WPAPtk; + msg.body.key_info.enuKeyType = WPAPtk; if (mode == AP_MODE) { - msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; - msg.body.strHostIFkeyAttr. + msg.body.key_info.u8KeyAction = ADDKEY_AP; + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8Idx; } if (mode == STATION_MODE) - msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.body.key_info.u8KeyAction = ADDKEY; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pu8Ptk, u8PtkKeylen); if (pu8RxMic != NULL) { - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < RX_MIC_KEY_LEN; i++) @@ -4634,7 +4634,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, } if (pu8TxMic != NULL) { - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < TX_MIC_KEY_LEN; i++) @@ -4642,12 +4642,12 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, } } - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen = u8KeyLen; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.pu8macaddr = mac_addr; msg.drvHandler = hWFIDrv; @@ -4700,51 +4700,51 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe if (pu8TxMic != NULL) u8KeyLen += TX_MIC_KEY_LEN; if (KeyRSC != NULL) { - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, KeyRSC, u32KeyRSClen); } msg.id = HOST_IF_MSG_KEY; - msg.body.strHostIFkeyAttr.enuKeyType = WPARxGtk; + msg.body.key_info.enuKeyType = WPARxGtk; msg.drvHandler = hWFIDrv; if (mode == AP_MODE) { - msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY_AP; - msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; + msg.body.key_info.u8KeyAction = ADDKEY_AP; + msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; } if (mode == STATION_MODE) - msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.body.key_info.u8KeyAction = ADDKEY; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pu8RxGtk, u8GtkKeylen); if (pu8RxMic != NULL) { - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); } if (pu8TxMic != NULL) { - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); } - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8KeyIdx; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen = u8KeyLen; - msg.body.strHostIFkeyAttr. + msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.u8seqlen = u32KeyRSClen; @@ -4798,16 +4798,16 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8Pm memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_KEY; - msg.body.strHostIFkeyAttr.enuKeyType = PMKSA; - msg.body.strHostIFkeyAttr.u8KeyAction = ADDKEY; + msg.body.key_info.enuKeyType = PMKSA; + msg.body.key_info.u8KeyAction = ADDKEY; msg.drvHandler = hWFIDrv; for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, ETH_ALEN); - memcpy(msg.body.strHostIFkeyAttr.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, + memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, PMKID_LEN); } From a2340c36ffb0285bd80943cfd6cb06e8191f27ea Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:25 +0900 Subject: [PATCH 1121/2431] staging: wilc1000: rename strHostIFCfgParamAttr This patch renames strHostIFCfgParamAttr to cfg_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d4e81220e873..76e82e60ef1a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -419,7 +419,7 @@ union message_body { struct rcvd_net_info net_info; struct rcvd_async_info async_info; struct key_attr key_info; - struct cfg_param_attr strHostIFCfgParamAttr; + struct cfg_param_attr cfg_info; struct set_channel strHostIFSetChan; struct get_channel strHostIFGetChan; struct set_beacon strHostIFSetBeacon; @@ -4124,7 +4124,7 @@ static int hostIFthread(void *pvArg) case HOST_IF_MSG_CFG_PARAMS: - Handle_CfgParam(msg.drvHandler, &msg.body.strHostIFCfgParamAttr); + Handle_CfgParam(msg.drvHandler, &msg.body.cfg_info); break; case HOST_IF_MSG_SET_CHANNEL: @@ -5854,7 +5854,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) /* prepare the WiphyParams Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_CFG_PARAMS; - msg.body.strHostIFCfgParamAttr.pstrCfgParamVal = *pstrCfgParamVal; + msg.body.cfg_info.pstrCfgParamVal = *pstrCfgParamVal; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 3962e1c4567bfff4d61fca8e021fde78b61f1108 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:26 +0900 Subject: [PATCH 1122/2431] staging: wilc1000: remove struct get_channel This patch removes struct get_channel from the driver because it is not used anywhere. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 76e82e60ef1a..e715f5438a64 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -231,20 +231,6 @@ struct set_channel { u8 u8SetChan; }; -/*! - * @struct get_channel - * @brief Get Channel message body - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 01 Jule 2012 - * @version 1.0 - */ -struct get_channel { - u8 u8GetChan; -}; - /*! * @struct tstrScanComplete * @brief hold received Async. Scan Complete message body @@ -421,7 +407,6 @@ union message_body { struct key_attr key_info; struct cfg_param_attr cfg_info; struct set_channel strHostIFSetChan; - struct get_channel strHostIFGetChan; struct set_beacon strHostIFSetBeacon; struct del_beacon strHostIFDelBeacon; struct add_sta_param strAddStaParam; From 94bdfe4243dfc230c41acdcc02bb9b4db4346e97 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:27 +0900 Subject: [PATCH 1123/2431] staging: wilc1000: rename struct set_channel This patch renames struct set_channel to channel_attr to keep the naming convention such as scan_attr and connect_attr. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e715f5438a64..e66118a66b5a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -218,7 +218,7 @@ struct rcvd_async_info { }; /*! - * @struct set_channel + * @struct channel_attr * @brief Set Channel message body * @details * @todo @@ -227,7 +227,7 @@ struct rcvd_async_info { * @date 25 March 2012 * @version 1.0 */ -struct set_channel { +struct channel_attr { u8 u8SetChan; }; @@ -406,7 +406,7 @@ union message_body { struct rcvd_async_info async_info; struct key_attr key_info; struct cfg_param_attr cfg_info; - struct set_channel strHostIFSetChan; + struct channel_attr strHostIFSetChan; struct set_beacon strHostIFSetBeacon; struct del_beacon strHostIFDelBeacon; struct add_sta_param strAddStaParam; @@ -599,14 +599,14 @@ static tstrWILC_WFIDrv *get_handler_from_id(int id) /** * @brief Handle_SetChannel * @details Sending config packet to firmware to set channel - * @param[in] struct set_channel *pstrHostIFSetChan + * @param[in] struct channel_attr *pstrHostIFSetChan * @return Error code. * @author * @date * @version 1.0 */ static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, - struct set_channel *pstrHostIFSetChan) + struct channel_attr *pstrHostIFSetChan) { s32 s32Error = 0; From ffd6dbc8694029de6939c715c5b2bc235cd124b8 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:28 +0900 Subject: [PATCH 1124/2431] staging: wilc1000: rename strHostIFSetChan This patch renames strHostIFSetChan to channel_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e66118a66b5a..4559ed57b296 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -406,7 +406,7 @@ union message_body { struct rcvd_async_info async_info; struct key_attr key_info; struct cfg_param_attr cfg_info; - struct channel_attr strHostIFSetChan; + struct channel_attr channel_info; struct set_beacon strHostIFSetBeacon; struct del_beacon strHostIFDelBeacon; struct add_sta_param strAddStaParam; @@ -4113,7 +4113,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_SET_CHANNEL: - Handle_SetChannel(msg.drvHandler, &msg.body.strHostIFSetChan); + Handle_SetChannel(msg.drvHandler, &msg.body.channel_info); break; case HOST_IF_MSG_DISCONNECT: @@ -5368,7 +5368,7 @@ s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) /* prepare the set channel message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_CHANNEL; - msg.body.strHostIFSetChan.u8SetChan = u8ChNum; + msg.body.channel_info.u8SetChan = u8ChNum; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 80bf8836bf7657000f6e49786f82207b8b5cc02f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:29 +0900 Subject: [PATCH 1125/2431] staging: wilc1000: remove struct del_beacon This patch removes struct del_beacon which is not necessary. This patch also changes Handle_DelBeacon function by removing 2nd parameter, struct del_beacon because it is not used inside. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 24 +++-------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4559ed57b296..686402a9dcf3 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -269,22 +269,6 @@ struct set_beacon { * after the TIM inormation element */ }; - - -/*! - * @struct del_beacon - * @brief Del Beacon message body - * @details - * @todo - * @sa - * @author Adham Abozaeid - * @date 15 July 2012 - * @version 1.0 - */ -struct del_beacon { - u8 u8dummy; -}; - /*! * @struct set_multicast * @brief set Multicast filter Address @@ -408,7 +392,6 @@ union message_body { struct cfg_param_attr cfg_info; struct channel_attr channel_info; struct set_beacon strHostIFSetBeacon; - struct del_beacon strHostIFDelBeacon; struct add_sta_param strAddStaParam; struct del_sta strDelStaParam; struct add_sta_param strEditStaParam; @@ -3244,14 +3227,13 @@ ERRORHANDLER: /** * @brief Handle_AddBeacon * @details Sending config packet to delete beacon - * @param[in] struct del_beacon *pstrDelBeacon + * @param[in] tstrWILC_WFIDrv *drvHandler * @return NONE * @author * @date * @version 1.0 */ -static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler, - struct del_beacon *pstrDelBeacon) +static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler) { s32 s32Error = 0; tstrWID strWID; @@ -4156,7 +4138,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_DEL_BEACON: - Handle_DelBeacon(msg.drvHandler, &msg.body.strHostIFDelBeacon); + Handle_DelBeacon(msg.drvHandler); break; case HOST_IF_MSG_ADD_STATION: From 7f33fecde162d8694fd3072aa70b59d459330d35 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:30 +0900 Subject: [PATCH 1126/2431] staging: wilc1000: rename struct set_beacon This patch renames struct set_beacon to beacon_attr to keep the naming convention as scan_attr, connect_attr and channel_attr. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 686402a9dcf3..2f211f908673 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -248,7 +248,7 @@ struct channel_attr { * } tstrScanComplete;*/ /*! - * @struct set_beacon + * @struct beacon_attr * @brief Set Beacon message body * @details * @todo @@ -257,7 +257,7 @@ struct channel_attr { * @date 10 July 2012 * @version 1.0 */ -struct set_beacon { +struct beacon_attr { u32 u32Interval; /*!< Beacon Interval. Period between two successive beacons on air */ u32 u32DTIMPeriod; /*!< DTIM Period. Indicates how many Beacon frames * (including the current frame) appear before the next DTIM */ @@ -391,7 +391,7 @@ union message_body { struct key_attr key_info; struct cfg_param_attr cfg_info; struct channel_attr channel_info; - struct set_beacon strHostIFSetBeacon; + struct beacon_attr strHostIFSetBeacon; struct add_sta_param strAddStaParam; struct del_sta strDelStaParam; struct add_sta_param strEditStaParam; @@ -3158,14 +3158,14 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, /** * @brief Handle_AddBeacon * @details Sending config packet to add beacon - * @param[in] struct set_beacon *pstrSetBeaconParam + * @param[in] struct beacon_attr *pstrSetBeaconParam * @return NONE * @author * @date * @version 1.0 */ static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, - struct set_beacon *pstrSetBeaconParam) + struct beacon_attr *pstrSetBeaconParam) { s32 s32Error = 0; tstrWID strWID; @@ -6548,7 +6548,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct set_beacon *pstrSetBeaconParam = &msg.body.strHostIFSetBeacon; + struct beacon_attr *pstrSetBeaconParam = &msg.body.strHostIFSetBeacon; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); From a98491e50d9abaf46b4e27c353c73d08f98f64bb Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:31 +0900 Subject: [PATCH 1127/2431] staging: wilc1000: rename strHostIFSetBeacon This patch renames strHostIFSetBeacon to beacon_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2f211f908673..7e53aa9468be 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -391,7 +391,7 @@ union message_body { struct key_attr key_info; struct cfg_param_attr cfg_info; struct channel_attr channel_info; - struct beacon_attr strHostIFSetBeacon; + struct beacon_attr beacon_info; struct add_sta_param strAddStaParam; struct del_sta strDelStaParam; struct add_sta_param strEditStaParam; @@ -4134,7 +4134,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_ADD_BEACON: - Handle_AddBeacon(msg.drvHandler, &msg.body.strHostIFSetBeacon); + Handle_AddBeacon(msg.drvHandler, &msg.body.beacon_info); break; case HOST_IF_MSG_DEL_BEACON: @@ -6548,7 +6548,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct beacon_attr *pstrSetBeaconParam = &msg.body.strHostIFSetBeacon; + struct beacon_attr *pstrSetBeaconParam = &msg.body.beacon_info; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); From ca8f47f8d50b5b34cba5a8dbe871c01a6a3719b6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:32 +0900 Subject: [PATCH 1128/2431] staging: wilc1000: rename strAddStaParam This patch renames strAddStaParam to add_sta_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7e53aa9468be..d9d0b2d6d17e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -392,7 +392,7 @@ union message_body { struct cfg_param_attr cfg_info; struct channel_attr channel_info; struct beacon_attr beacon_info; - struct add_sta_param strAddStaParam; + struct add_sta_param add_sta_info; struct del_sta strDelStaParam; struct add_sta_param strEditStaParam; struct timer_cb strTimerCb; @@ -4142,7 +4142,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_ADD_STATION: - Handle_AddStation(msg.drvHandler, &msg.body.strAddStaParam); + Handle_AddStation(msg.drvHandler, &msg.body.add_sta_info); break; case HOST_IF_MSG_DEL_STATION: @@ -6651,7 +6651,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct add_sta_param *pstrAddStationMsg = &msg.body.strAddStaParam; + struct add_sta_param *pstrAddStationMsg = &msg.body.add_sta_info; if (pstrWFIDrv == NULL) { @@ -6802,7 +6802,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct add_sta_param *pstrAddStationMsg = &msg.body.strAddStaParam; + struct add_sta_param *pstrAddStationMsg = &msg.body.add_sta_info; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); From 889c25bee9f59dca815f48fbd5ce02e9e29cb9f5 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:33 +0900 Subject: [PATCH 1129/2431] staging: wilc1000: rename strDelStaParam This patch renames strDelStaParam to del_sta_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d9d0b2d6d17e..94559bd6258d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -393,7 +393,7 @@ union message_body { struct channel_attr channel_info; struct beacon_attr beacon_info; struct add_sta_param add_sta_info; - struct del_sta strDelStaParam; + struct del_sta del_sta_info; struct add_sta_param strEditStaParam; struct timer_cb strTimerCb; struct power_mgmt_param strPowerMgmtparam; @@ -4146,7 +4146,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_DEL_STATION: - Handle_DelStation(msg.drvHandler, &msg.body.strDelStaParam); + Handle_DelStation(msg.drvHandler, &msg.body.del_sta_info); break; case HOST_IF_MSG_EDIT_STATION: @@ -6700,7 +6700,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct del_sta *pstrDelStationMsg = &msg.body.strDelStaParam; + struct del_sta *pstrDelStationMsg = &msg.body.del_sta_info; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); From 4a930962b03b6f5f491be3d4bce7bed741846d1e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:34 +0900 Subject: [PATCH 1130/2431] staging: wilc1000: rename strEditStaParam This patch renames strEditStaParam to edit_sta_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 94559bd6258d..da8e589d2b19 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -394,7 +394,7 @@ union message_body { struct beacon_attr beacon_info; struct add_sta_param add_sta_info; struct del_sta del_sta_info; - struct add_sta_param strEditStaParam; + struct add_sta_param edit_sta_info; struct timer_cb strTimerCb; struct power_mgmt_param strPowerMgmtparam; struct sta_inactive_t strHostIfStaInactiveT; @@ -4150,7 +4150,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_EDIT_STATION: - Handle_EditStation(msg.drvHandler, &msg.body.strEditStaParam); + Handle_EditStation(msg.drvHandler, &msg.body.edit_sta_info); break; case HOST_IF_MSG_GET_INACTIVETIME: From df0e7839ab7ef00f238bcfb39935a76e1e8ab059 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:35 +0900 Subject: [PATCH 1131/2431] staging: wilc1000: remove struct timer_cb This patch removes struct timer_cb which is not used. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index da8e589d2b19..7d511227505b 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -314,20 +314,6 @@ struct del_sta { u8 au8MacAddr[ETH_ALEN]; }; -/*! - * @struct timer_cb - * @brief Timer callback message body - * @details - * @todo - * @sa - * @author Mostafa Abu Bakr - * @date 25 March 2012 - * @version 1.0 - */ -struct timer_cb { - void *pvUsrArg; /*!< Private data passed at timer start */ -}; - /*! * @struct power_mgmt_param * @brief Power management message body @@ -395,7 +381,6 @@ union message_body { struct add_sta_param add_sta_info; struct del_sta del_sta_info; struct add_sta_param edit_sta_info; - struct timer_cb strTimerCb; struct power_mgmt_param strPowerMgmtparam; struct sta_inactive_t strHostIfStaInactiveT; struct set_ip_addr strHostIfSetIP; From 49e1f81b1e49e1458fb9e942e50bc9a2eb4c45c5 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:36 +0900 Subject: [PATCH 1132/2431] staging: wilc1000: rename strPowerMgmtparam This patch renames strPowerMgmtparam to pwr_mgmt_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7d511227505b..de64bd2785b9 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -381,7 +381,7 @@ union message_body { struct add_sta_param add_sta_info; struct del_sta del_sta_info; struct add_sta_param edit_sta_info; - struct power_mgmt_param strPowerMgmtparam; + struct power_mgmt_param pwr_mgmt_info; struct sta_inactive_t strHostIfStaInactiveT; struct set_ip_addr strHostIfSetIP; struct drv_handler strHostIfSetDrvHandler; @@ -4154,7 +4154,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_POWER_MGMT: - Handle_PowerManagement(msg.drvHandler, &msg.body.strPowerMgmtparam); + Handle_PowerManagement(msg.drvHandler, &msg.body.pwr_mgmt_info); break; case HOST_IF_MSG_SET_WFIDRV_HANDLER: @@ -6826,7 +6826,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct power_mgmt_param *pstrPowerMgmtParam = &msg.body.strPowerMgmtparam; + struct power_mgmt_param *pstrPowerMgmtParam = &msg.body.pwr_mgmt_info; PRINT_INFO(HOSTINF_DBG, "\n\n>> Setting PS to %d <<\n\n", bIsEnabled); From 66bac7f20c5e2b9794ac7f273e398de810965f2e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:37 +0900 Subject: [PATCH 1133/2431] staging: wilc1000: rename strHostIfStaInactiveT This patch renames strHostIfStaInactiveT to mac_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index de64bd2785b9..5a54608f1395 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -382,7 +382,7 @@ union message_body { struct del_sta del_sta_info; struct add_sta_param edit_sta_info; struct power_mgmt_param pwr_mgmt_info; - struct sta_inactive_t strHostIfStaInactiveT; + struct sta_inactive_t mac_info; struct set_ip_addr strHostIfSetIP; struct drv_handler strHostIfSetDrvHandler; struct set_multicast strHostIfSetMulti; @@ -4139,7 +4139,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_GET_INACTIVETIME: - Handle_Get_InActiveTime(msg.drvHandler, &msg.body.strHostIfStaInactiveT); + Handle_Get_InActiveTime(msg.drvHandler, &msg.body.mac_info); break; case HOST_IF_MSG_SCAN_TIMER_FIRED: @@ -5533,7 +5533,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 memset(&msg, 0, sizeof(struct host_if_msg)); - memcpy(msg.body.strHostIfStaInactiveT.mac, + memcpy(msg.body.mac_info.mac, mac, ETH_ALEN); msg.id = HOST_IF_MSG_GET_INACTIVETIME; From 5e4377e6ecd9ddba2eabbfb44af7a5dd1ff1154b Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:38 +0900 Subject: [PATCH 1134/2431] staging: wilc1000: rename strHostIfSetDrvHandler This patch renames strHostIfSetDrvHandler to drv to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5a54608f1395..b8ef16530ecc 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -384,7 +384,7 @@ union message_body { struct power_mgmt_param pwr_mgmt_info; struct sta_inactive_t mac_info; struct set_ip_addr strHostIfSetIP; - struct drv_handler strHostIfSetDrvHandler; + struct drv_handler drv; struct set_multicast strHostIfSetMulti; struct op_mode strHostIfSetOperationMode; struct set_mac_addr strHostIfSetMacAddress; @@ -4159,7 +4159,7 @@ static int hostIFthread(void *pvArg) case HOST_IF_MSG_SET_WFIDRV_HANDLER: Handle_SetWfiDrvHandler(msg.drvHandler, - &msg.body.strHostIfSetDrvHandler); + &msg.body.drv); break; case HOST_IF_MSG_SET_OPERATION_MODE: @@ -5382,7 +5382,7 @@ s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_WFIDRV_HANDLER; - msg.body.strHostIfSetDrvHandler.u32Address = get_id_from_handler(u32address); + msg.body.drv.u32Address = get_id_from_handler(u32address); msg.drvHandler = u32address; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From fb2d65ed73df8a1779aa16827d001e90b583e98b Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:39 +0900 Subject: [PATCH 1135/2431] staging: wilc1000: rename strHostIfSetIP This patch renames strHostIfSetIP to ip_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b8ef16530ecc..596d68fddc4b 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -383,7 +383,7 @@ union message_body { struct add_sta_param edit_sta_info; struct power_mgmt_param pwr_mgmt_info; struct sta_inactive_t mac_info; - struct set_ip_addr strHostIfSetIP; + struct set_ip_addr ip_info; struct drv_handler drv; struct set_multicast strHostIfSetMulti; struct op_mode strHostIfSetOperationMode; @@ -4168,12 +4168,12 @@ static int hostIFthread(void *pvArg) case HOST_IF_MSG_SET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_set_IPAddress(msg.drvHandler, msg.body.strHostIfSetIP.au8IPAddr, msg.body.strHostIfSetIP.idx); + Handle_set_IPAddress(msg.drvHandler, msg.body.ip_info.au8IPAddr, msg.body.ip_info.idx); break; case HOST_IF_MSG_GET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_get_IPAddress(msg.drvHandler, msg.body.strHostIfSetIP.au8IPAddr, msg.body.strHostIfSetIP.idx); + Handle_get_IPAddress(msg.drvHandler, msg.body.ip_info.au8IPAddr, msg.body.ip_info.idx); break; case HOST_IF_MSG_SET_MAC_ADDRESS: @@ -7232,9 +7232,9 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_SET_IPADDRESS; - msg.body.strHostIfSetIP.au8IPAddr = u16ipadd; + msg.body.ip_info.au8IPAddr = u16ipadd; msg.drvHandler = hWFIDrv; - msg.body.strHostIfSetIP.idx = idx; + msg.body.ip_info.idx = idx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -7269,9 +7269,9 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_GET_IPADDRESS; - msg.body.strHostIfSetIP.au8IPAddr = u16ipadd; + msg.body.ip_info.au8IPAddr = u16ipadd; msg.drvHandler = hWFIDrv; - msg.body.strHostIfSetIP.idx = idx; + msg.body.ip_info.idx = idx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) From a079cf4d5e3fcfb4a01eeae911eaadf0098d16dd Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:05 +0900 Subject: [PATCH 1136/2431] staging: wilc1000: rename strHostIfSetMulti This patch renames strHostIfSetMulti to multicast_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 596d68fddc4b..034e3d9f4452 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -385,7 +385,7 @@ union message_body { struct sta_inactive_t mac_info; struct set_ip_addr ip_info; struct drv_handler drv; - struct set_multicast strHostIfSetMulti; + struct set_multicast multicast_info; struct op_mode strHostIfSetOperationMode; struct set_mac_addr strHostIfSetMacAddress; struct get_mac_addr strHostIfGetMacAddress; @@ -4200,7 +4200,7 @@ static int hostIFthread(void *pvArg) case HOST_IF_MSG_SET_MULTICAST_FILTER: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_MULTICAST_FILTER\n"); - Handle_SetMulticastFilter(msg.drvHandler, &msg.body.strHostIfSetMulti); + Handle_SetMulticastFilter(msg.drvHandler, &msg.body.multicast_info); break; case HOST_IF_MSG_ADD_BA_SESSION: @@ -6860,7 +6860,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct set_multicast *pstrMulticastFilterParam = &msg.body.strHostIfSetMulti; + struct set_multicast *pstrMulticastFilterParam = &msg.body.multicast_info; if (pstrWFIDrv == NULL) { From 00c4630e3dda50112128c789e94bedfed0bf72c9 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:06 +0900 Subject: [PATCH 1137/2431] staging: wilc1000: rename strHostIfSetOperationMode This patch renames strHostIfSetOperationMode to mode to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 034e3d9f4452..a66f78d09500 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -386,7 +386,7 @@ union message_body { struct set_ip_addr ip_info; struct drv_handler drv; struct set_multicast multicast_info; - struct op_mode strHostIfSetOperationMode; + struct op_mode mode; struct set_mac_addr strHostIfSetMacAddress; struct get_mac_addr strHostIfGetMacAddress; struct ba_session_info strHostIfBASessionInfo; @@ -4163,7 +4163,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_SET_OPERATION_MODE: - Handle_SetOperationMode(msg.drvHandler, &msg.body.strHostIfSetOperationMode); + Handle_SetOperationMode(msg.drvHandler, &msg.body.mode); break; case HOST_IF_MSG_SET_IPADDRESS: @@ -5407,7 +5407,7 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_OPERATION_MODE; - msg.body.strHostIfSetOperationMode.u32Mode = u32mode; + msg.body.mode.u32Mode = u32mode; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 15326e281cf0484f22bd1d223bcdee5c41ff3ca1 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:07 +0900 Subject: [PATCH 1138/2431] staging: wilc1000: rename strHostIfSetMacAddress This patch renames strHostIfSetMacAddress to set_mac_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a66f78d09500..2fa1158c88a0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -387,7 +387,7 @@ union message_body { struct drv_handler drv; struct set_multicast multicast_info; struct op_mode mode; - struct set_mac_addr strHostIfSetMacAddress; + struct set_mac_addr set_mac_info; struct get_mac_addr strHostIfGetMacAddress; struct ba_session_info strHostIfBASessionInfo; struct remain_ch strHostIfRemainOnChan; @@ -4177,7 +4177,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_SET_MAC_ADDRESS: - Handle_SetMacAddress(msg.drvHandler, &msg.body.strHostIfSetMacAddress); + Handle_SetMacAddress(msg.drvHandler, &msg.body.set_mac_info); break; case HOST_IF_MSG_GET_MAC_ADDRESS: @@ -4892,7 +4892,7 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) /* prepare setting mac address message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_MAC_ADDRESS; - memcpy(msg.body.strHostIfSetMacAddress.u8MacAddress, pu8MacAddress, ETH_ALEN); + memcpy(msg.body.set_mac_info.u8MacAddress, pu8MacAddress, ETH_ALEN); msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From a584869521512432cd105f71d5bcf6949d0e798d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:08 +0900 Subject: [PATCH 1139/2431] staging: wilc1000: rename strHostIfGetMacAddress This patch renames strHostIfGetMacAddress to get_mac_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2fa1158c88a0..a6702dd1607a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -388,7 +388,7 @@ union message_body { struct set_multicast multicast_info; struct op_mode mode; struct set_mac_addr set_mac_info; - struct get_mac_addr strHostIfGetMacAddress; + struct get_mac_addr get_mac_info; struct ba_session_info strHostIfBASessionInfo; struct remain_ch strHostIfRemainOnChan; struct reg_frame strHostIfRegisterFrame; @@ -4181,7 +4181,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_GET_MAC_ADDRESS: - Handle_GetMacAddress(msg.drvHandler, &msg.body.strHostIfGetMacAddress); + Handle_GetMacAddress(msg.drvHandler, &msg.body.get_mac_info); break; case HOST_IF_MSG_REMAIN_ON_CHAN: @@ -4858,7 +4858,7 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_MAC_ADDRESS; - msg.body.strHostIfGetMacAddress.u8MacAddress = pu8MacAddress; + msg.body.get_mac_info.u8MacAddress = pu8MacAddress; msg.drvHandler = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From c833b4748a04ab13e88bbe847bb4c2c91b370266 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:09 +0900 Subject: [PATCH 1140/2431] staging: wilc1000: rename strHostIfBASessionInfo This patch renames strHostIfBASessionInfo to session_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a6702dd1607a..b7797a508869 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -389,7 +389,7 @@ union message_body { struct op_mode mode; struct set_mac_addr set_mac_info; struct get_mac_addr get_mac_info; - struct ba_session_info strHostIfBASessionInfo; + struct ba_session_info session_info; struct remain_ch strHostIfRemainOnChan; struct reg_frame strHostIfRegisterFrame; char *pUserData; @@ -4204,11 +4204,11 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_ADD_BA_SESSION: - Handle_AddBASession(msg.drvHandler, &msg.body.strHostIfBASessionInfo); + Handle_AddBASession(msg.drvHandler, &msg.body.session_info); break; case HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS: - Handle_DelAllRxBASessions(msg.drvHandler, &msg.body.strHostIfBASessionInfo); + Handle_DelAllRxBASessions(msg.drvHandler, &msg.body.session_info); break; case HOST_IF_MSG_DEL_ALL_STA: @@ -7119,7 +7119,7 @@ static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TI s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct ba_session_info *pBASessionInfo = &msg.body.strHostIfBASessionInfo; + struct ba_session_info *pBASessionInfo = &msg.body.session_info; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7150,7 +7150,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct ba_session_info *pBASessionInfo = &msg.body.strHostIfBASessionInfo; + struct ba_session_info *pBASessionInfo = &msg.body.session_info; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); @@ -7180,7 +7180,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct ba_session_info *pBASessionInfo = &msg.body.strHostIfBASessionInfo; + struct ba_session_info *pBASessionInfo = &msg.body.session_info; if (pstrWFIDrv == NULL) { PRINT_ER("driver is null\n"); From 070d365c3d54df8be8a87bce0b5c437bab6b8ab3 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:10 +0900 Subject: [PATCH 1141/2431] staging: wilc1000: rename strHostIfRemainOnChan This patch renames strHostIfRemainOnChan to remain_on_ch to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b7797a508869..9dac90686c11 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -390,7 +390,7 @@ union message_body { struct set_mac_addr set_mac_info; struct get_mac_addr get_mac_info; struct ba_session_info session_info; - struct remain_ch strHostIfRemainOnChan; + struct remain_ch remain_on_ch; struct reg_frame strHostIfRegisterFrame; char *pUserData; struct del_all_sta strHostIFDelAllSta; @@ -3693,7 +3693,7 @@ static void ListenTimerCB(unsigned long arg) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; msg.drvHandler = pstrWFIDrv; - msg.body.strHostIfRemainOnChan.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; + msg.body.remain_on_ch.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4098,7 +4098,7 @@ static int hostIFthread(void *pvArg) Handle_ScanDone(msg.drvHandler, SCAN_EVENT_DONE); if (pstrWFIDrv->u8RemainOnChan_pendingreq) - Handle_RemainOnChan(msg.drvHandler, &msg.body.strHostIfRemainOnChan); + Handle_RemainOnChan(msg.drvHandler, &msg.body.remain_on_ch); break; @@ -4186,7 +4186,7 @@ static int hostIFthread(void *pvArg) case HOST_IF_MSG_REMAIN_ON_CHAN: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REMAIN_ON_CHAN\n"); - Handle_RemainOnChan(msg.drvHandler, &msg.body.strHostIfRemainOnChan); + Handle_RemainOnChan(msg.drvHandler, &msg.body.remain_on_ch); break; case HOST_IF_MSG_REGISTER_FRAME: @@ -4195,7 +4195,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_LISTEN_TIMER_FIRED: - Handle_ListenStateExpired(msg.drvHandler, &msg.body.strHostIfRemainOnChan); + Handle_ListenStateExpired(msg.drvHandler, &msg.body.remain_on_ch); break; case HOST_IF_MSG_SET_MULTICAST_FILTER: @@ -6407,12 +6407,12 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_REMAIN_ON_CHAN; - msg.body.strHostIfRemainOnChan.u16Channel = chan; - msg.body.strHostIfRemainOnChan.pRemainOnChanExpired = RemainOnChanExpired; - msg.body.strHostIfRemainOnChan.pRemainOnChanReady = RemainOnChanReady; - msg.body.strHostIfRemainOnChan.pVoid = pvUserArg; - msg.body.strHostIfRemainOnChan.u32duration = u32duration; - msg.body.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; + msg.body.remain_on_ch.u16Channel = chan; + msg.body.remain_on_ch.pRemainOnChanExpired = RemainOnChanExpired; + msg.body.remain_on_ch.pRemainOnChanReady = RemainOnChanReady; + msg.body.remain_on_ch.pVoid = pvUserArg; + msg.body.remain_on_ch.u32duration = u32duration; + msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6454,7 +6454,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; msg.drvHandler = hWFIDrv; - msg.body.strHostIfRemainOnChan.u32ListenSessionID = u32SessionID; + msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) From 63d7ab8efd4da800848a2862624bd5ebb482354f Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:32 +0900 Subject: [PATCH 1142/2431] staging: wilc1000: remove function pointer wlan_firmware_download This patch removes function pointer wlan_firmware_download and just call the function wilc_wlan_firmware_download. Remove static from the function also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 ++- drivers/staging/wilc1000/wilc_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wlan.h | 1 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 701d3179c99a..d7909d38b79a 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -670,7 +670,8 @@ static int linux_wlan_firmware_download(linux_wlan_t *p_nic) * do the firmware download **/ PRINT_D(INIT_DBG, "Downloading Firmware ...\n"); - ret = g_linux_wlan->oup.wlan_firmware_download(g_linux_wlan->wilc_firmware->data, g_linux_wlan->wilc_firmware->size); + ret = wilc_wlan_firmware_download(g_linux_wlan->wilc_firmware->data, + g_linux_wlan->wilc_firmware->size); if (ret < 0) goto _FAIL_; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 428e94fdd716..5e9a4c2bd4bb 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1398,7 +1398,7 @@ void wilc_handle_isr(void) * Firmware download * ********************************************/ -static int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size) +int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; u32 offset; @@ -2027,7 +2027,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_firmware_download = wilc_wlan_firmware_download; oup->wlan_start = wilc_wlan_start; oup->wlan_stop = wilc_wlan_stop; oup->wlan_add_to_tx_que = wilc_wlan_txq_add_net_pkt; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 7b1a872d22b0..72d2ebf2df97 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -305,4 +305,5 @@ typedef struct { int (*cfg_init)(wilc_debug_func); } wilc_cfg_func_t; +int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 7aa317dfb180..e481446626fd 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_firmware_download)(const u8 *, u32); int (*wlan_start)(void); int (*wlan_stop)(void); int (*wlan_add_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); From e42563bbb223190575918c1706309ff99deef331 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:33 +0900 Subject: [PATCH 1143/2431] staging: wilc1000: remove function pointer wlan_start This patch removes function pointer wlan_start and just call the function wilc_wlan_start. Remove static from the function also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wlan.h | 1 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d7909d38b79a..f515fcab5615 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -622,7 +622,7 @@ static int linux_wlan_start_firmware(perInterface_wlan_t *nic) int ret = 0; /* start firmware */ PRINT_D(INIT_DBG, "Starting Firmware ...\n"); - ret = g_linux_wlan->oup.wlan_start(); + ret = wilc_wlan_start(); if (ret < 0) { PRINT_ER("Failed to start Firmware\n"); goto _fail_; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 5e9a4c2bd4bb..6e2bf4cd5c5e 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1471,7 +1471,7 @@ _fail_1: * Common * ********************************************/ -static int wilc_wlan_start(void) +int wilc_wlan_start(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; u32 reg = 0; @@ -2027,7 +2027,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_start = wilc_wlan_start; oup->wlan_stop = wilc_wlan_stop; oup->wlan_add_to_tx_que = wilc_wlan_txq_add_net_pkt; oup->wlan_handle_tx_que = wilc_wlan_handle_txq; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 72d2ebf2df97..15ae9aeeacf4 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -306,4 +306,5 @@ typedef struct { } wilc_cfg_func_t; int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size); +int wilc_wlan_start(void); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index e481446626fd..e752092f4d40 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_start)(void); int (*wlan_stop)(void); int (*wlan_add_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); int (*wlan_handle_tx_que)(u32 *); From 8cec741e4aee21b324a4c2a7e142114271dfe572 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:34 +0900 Subject: [PATCH 1144/2431] staging: wilc1000: remove function pointer wlan_stop This patch removes function pointer wlan_stop and just call the function wilc_wlan_stop. Remove static from the function also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 10 ++-------- drivers/staging/wilc1000/wilc_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wlan.h | 1 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index f515fcab5615..245357e0bd4d 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -983,10 +983,7 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) PRINT_D(INIT_DBG, "Deinitializing IRQ\n"); deinit_irq(g_linux_wlan); - if (&g_linux_wlan->oup != NULL) { - if (g_linux_wlan->oup.wlan_stop != NULL) - g_linux_wlan->oup.wlan_stop(); - } + wilc_wlan_stop(); PRINT_D(INIT_DBG, "Deinitializing WILC Wlan\n"); wilc_wlan_deinit(nic); @@ -1322,10 +1319,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) return 0; /*success*/ _fail_fw_start_: - if (&g_linux_wlan->oup != NULL) { - if (g_linux_wlan->oup.wlan_stop != NULL) - g_linux_wlan->oup.wlan_stop(); - } + wilc_wlan_stop(); _fail_irq_enable_: #if (defined WILC_SDIO) && (!defined WILC_SDIO_IRQ_GPIO) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 6e2bf4cd5c5e..745953c6b651 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1581,7 +1581,7 @@ void wilc_wlan_global_reset(void) p->hif_func.hif_write_reg(WILC_GLB_RESET_0, 0x0); release_bus(RELEASE_ONLY); } -static int wilc_wlan_stop(void) +int wilc_wlan_stop(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; u32 reg = 0; @@ -2027,7 +2027,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_stop = wilc_wlan_stop; oup->wlan_add_to_tx_que = wilc_wlan_txq_add_net_pkt; oup->wlan_handle_tx_que = wilc_wlan_handle_txq; oup->wlan_handle_rx_isr = wilc_handle_isr; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 15ae9aeeacf4..b32ba4f210b2 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -307,4 +307,5 @@ typedef struct { int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size); int wilc_wlan_start(void); +int wilc_wlan_stop(void); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index e752092f4d40..9e749c7397e2 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_stop)(void); int (*wlan_add_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); int (*wlan_handle_tx_que)(u32 *); void (*wlan_handle_rx_isr)(void); From 8fc84a6f6496e8079fed1b9c43606b82bf195c06 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:35 +0900 Subject: [PATCH 1145/2431] staging: wilc1000: remove function pointer wlan_add_to_tx_que This patch removes function pointer wlan_add_to_tx_que and just call the function wilc_wlan_txq_add_net_pkt. Remove static from the function also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 7 +++---- drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.h | 2 ++ drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 245357e0bd4d..e40ee8c98597 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1563,10 +1563,9 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) nic->netstats.tx_packets++; nic->netstats.tx_bytes += tx_data->size; tx_data->pBssid = g_linux_wlan->strInterfaceInfo[nic->u8IfIdx].aBSSID; - QueueCount = g_linux_wlan->oup.wlan_add_to_tx_que((void *)tx_data, - tx_data->buff, - tx_data->size, - linux_wlan_tx_complete); + QueueCount = wilc_wlan_txq_add_net_pkt((void *)tx_data, tx_data->buff, + tx_data->size, + linux_wlan_tx_complete); if (QueueCount > FLOW_CONTROL_UPPER_THRESHOLD) { netif_stop_queue(g_linux_wlan->strInterfaceInfo[0].wilc_netdev); diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 745953c6b651..fcc4155941bc 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -503,7 +503,8 @@ static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, u32 buffer_size) return 1; } -static int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func) +int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, + wilc_tx_complete_func_t func) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; struct txq_entry_t *tqe; @@ -2027,7 +2028,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_add_to_tx_que = wilc_wlan_txq_add_net_pkt; oup->wlan_handle_tx_que = wilc_wlan_handle_txq; oup->wlan_handle_rx_isr = wilc_handle_isr; oup->wlan_cleanup = wilc_wlan_cleanup; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index b32ba4f210b2..2af027ccc101 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -308,4 +308,6 @@ typedef struct { int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size); int wilc_wlan_start(void); int wilc_wlan_stop(void); +int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, + wilc_tx_complete_func_t func); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 9e749c7397e2..25d9d908f284 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_add_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); int (*wlan_handle_tx_que)(u32 *); void (*wlan_handle_rx_isr)(void); void (*wlan_cleanup)(void); From f590c4ce170386e8aea7745ac5d92c7cbe2ab892 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:36 +0900 Subject: [PATCH 1146/2431] staging: wilc1000: remove function pointer wlan_handle_tx_que This patch removes function pointer wlan_handle_tx_que and just call the function wilc_wlan_handle_txq. Remove static from the function also. There is one function call wlan_handle_tx_que which does not have an argument and return value. So put txq_count as argument and ret for return value. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wlan.h | 1 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index e40ee8c98597..c2c9f3a7d5f3 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -517,10 +517,10 @@ static int linux_wlan_txq_task(void *vp) } PRINT_D(TX_DBG, "txq_task handle the sending packet and let me go to sleep.\n"); #if !defined USE_TX_BACKOFF_DELAY_IF_NO_BUFFERS - g_linux_wlan->oup.wlan_handle_tx_que(); + ret = wilc_wlan_handle_txq(&txq_count); #else do { - ret = g_linux_wlan->oup.wlan_handle_tx_que(&txq_count); + ret = wilc_wlan_handle_txq(&txq_count); if (txq_count < FLOW_CONTROL_LOWER_THRESHOLD /* && netif_queue_stopped(pd->wilc_netdev)*/) { PRINT_D(TX_DBG, "Waking up queue\n"); /* netif_wake_queue(pd->wilc_netdev); */ diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index fcc4155941bc..32045a93cc91 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -816,7 +816,7 @@ void chip_sleep_manually(u32 u32SleepTime) * Tx, Rx queue handle functions * ********************************************/ -static int wilc_wlan_handle_txq(u32 *pu32TxqCount) +int wilc_wlan_handle_txq(u32 *pu32TxqCount) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; int i, entries = 0; @@ -2028,7 +2028,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_handle_tx_que = wilc_wlan_handle_txq; oup->wlan_handle_rx_isr = wilc_handle_isr; oup->wlan_cleanup = wilc_wlan_cleanup; oup->wlan_cfg_set = wilc_wlan_cfg_set; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 2af027ccc101..7a395cf239ac 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -310,4 +310,5 @@ int wilc_wlan_start(void); int wilc_wlan_stop(void); int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func); +int wilc_wlan_handle_txq(u32 *pu32TxqCount); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 25d9d908f284..d41a1d414666 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_handle_tx_que)(u32 *); void (*wlan_handle_rx_isr)(void); void (*wlan_cleanup)(void); int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32); From 46ca80cd16f650c480cde3cdf3c68c6eb1a12f58 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:37 +0900 Subject: [PATCH 1147/2431] staging: wilc1000: remove function pointer wlan_handle_rx_isr This patch removes function pointer wlan_handle_rx_isr and just call the function wilc_handle_isr. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 5 +---- drivers/staging/wilc1000/wilc_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan.h | 1 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c2c9f3a7d5f3..e278d9408a85 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -313,10 +313,7 @@ irqreturn_t isr_bh_routine(int irq, void *userdata) } PRINT_D(INT_DBG, "Interrupt received BH\n"); - if (g_linux_wlan->oup.wlan_handle_rx_isr != 0) - g_linux_wlan->oup.wlan_handle_rx_isr(); - else - PRINT_ER("wlan_handle_rx_isr() hasn't been initialized\n"); + wilc_handle_isr(); return IRQ_HANDLED; } diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 32045a93cc91..e9af7451e37a 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -2028,7 +2028,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_handle_rx_isr = wilc_handle_isr; oup->wlan_cleanup = wilc_wlan_cleanup; oup->wlan_cfg_set = wilc_wlan_cfg_set; oup->wlan_cfg_get = wilc_wlan_cfg_get; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 7a395cf239ac..2054ad5693e2 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -311,4 +311,5 @@ int wilc_wlan_stop(void); int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func); int wilc_wlan_handle_txq(u32 *pu32TxqCount); +void wilc_handle_isr(void); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index d41a1d414666..91bf68abf09b 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - void (*wlan_handle_rx_isr)(void); void (*wlan_cleanup)(void); int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32); int (*wlan_cfg_get)(int, u32, int, u32); From a17e2ec1ef681ccbc8eab4d435a227445a539488 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:38 +0900 Subject: [PATCH 1148/2431] staging: wilc1000: remove function pointer wlan_cleanup This patch removes function pointer wlan_cleanup and just call the function wilc_wlan_cleanup. Remove static from the function also. After changing function pointer wlan_cleanup with wilc_wlan_cleanup, the define wilc_wlan_deinit will be like folowing. -define wilc_wlan_deinit(nic) { wilc_wlan_cleanup(); } The define is unnecessary so just call wilc_wlan_cleanup instead of wilc_wlan_deinit() and remove the define also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 10 +++------- drivers/staging/wilc1000/wilc_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wlan.h | 1 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index e278d9408a85..9e222471e916 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -86,10 +86,6 @@ static struct notifier_block g_dev_notifier = { .notifier_call = dev_state_ev_handler }; -#define wilc_wlan_deinit(nic) { if (&g_linux_wlan->oup != NULL) \ - if (g_linux_wlan->oup.wlan_cleanup != NULL) \ - g_linux_wlan->oup.wlan_cleanup(); } - #define IRQ_WAIT 1 #define IRQ_NO_WAIT 0 /* @@ -983,7 +979,7 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) wilc_wlan_stop(); PRINT_D(INIT_DBG, "Deinitializing WILC Wlan\n"); - wilc_wlan_deinit(nic); + wilc_wlan_cleanup(); #if (defined WILC_SDIO) && (!defined WILC_SDIO_IRQ_GPIO) #if defined(PLAT_ALLWINNER_A20) || defined(PLAT_ALLWINNER_A23) || defined(PLAT_ALLWINNER_A31) PRINT_D(INIT_DBG, "Disabling IRQ 2\n"); @@ -1132,7 +1128,7 @@ u8 wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, wilc_wlan_oup_t *nwo, linux_w while ((core_11b_ready() && (READY_CHECK_THRESHOLD > (trials++)))) { PRINT_D(INIT_DBG, "11b core not ready yet: %u\n", trials); - wilc_wlan_deinit(nic); + wilc_wlan_cleanup(); wilc_wlan_global_reset(); sdio_unregister_driver(&wilc_bus); @@ -1330,7 +1326,7 @@ _fail_irq_init_: _fail_threads_: wlan_deinitialize_threads(g_linux_wlan); _fail_wilc_wlan_: - wilc_wlan_deinit(g_linux_wlan); + wilc_wlan_cleanup(); _fail_locks_: wlan_deinit_locks(g_linux_wlan); PRINT_ER("WLAN Iinitialization FAILED\n"); diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index e9af7451e37a..d352f2442049 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1652,7 +1652,7 @@ int wilc_wlan_stop(void) return ret; } -static void wilc_wlan_cleanup(void) +void wilc_wlan_cleanup(void) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; struct txq_entry_t *tqe; @@ -2028,7 +2028,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_cleanup = wilc_wlan_cleanup; oup->wlan_cfg_set = wilc_wlan_cfg_set; oup->wlan_cfg_get = wilc_wlan_cfg_get; oup->wlan_cfg_get_value = wilc_wlan_cfg_get_val; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 2054ad5693e2..198ddb7c449a 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -312,4 +312,5 @@ int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func); int wilc_wlan_handle_txq(u32 *pu32TxqCount); void wilc_handle_isr(void); +void wilc_wlan_cleanup(void); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 91bf68abf09b..624b99f09c20 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - void (*wlan_cleanup)(void); int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32); int (*wlan_cfg_get)(int, u32, int, u32); int (*wlan_cfg_get_value)(u32, u8 *, u32); From 1d4469c945bcc243b9edd2e19d5b2333bb52215c Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:39 +0900 Subject: [PATCH 1149/2431] staging: wilc1000: delete define ACTION and PROBE_REQ The define ACTION and PROBE_REQ are duplicate. They are aleady defined in host_interface.h. Just delete it. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 198ddb7c449a..bf0c7c71b2e6 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -32,8 +32,6 @@ #define ETH_CONFIG_PKT_HDR_OFFSET (ETH_ETHERNET_HDR_OFFSET + \ ETH_CONFIG_PKT_HDR_LEN) -#define ACTION 0xD0 -#define PROBE_REQ 0x40 /******************************************** * From 1028e5a4045f541662909d148d024505c01fafb7 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:40 +0900 Subject: [PATCH 1150/2431] staging: wilc1000: remove function pointer wlan_cfg_set This patch removes function pointer wlan_cfg_set and just call the function wilc_wlan_cfg_set. Remove static from the function also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 14 ++-- drivers/staging/wilc1000/linux_wlan.c | 91 ++++++++++----------- drivers/staging/wilc1000/wilc_wlan.c | 4 +- drivers/staging/wilc1000/wilc_wlan.h | 2 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 5 files changed, 55 insertions(+), 57 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index b6b19fe36ae1..4e9fecae42b8 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -11,6 +11,7 @@ #include "coreconfigurator.h" #include "wilc_wlan_if.h" +#include "wilc_wlan.h" #include #include #define TAG_PARAM_OFFSET (MAC_HDR_LEN + TIME_STAMP_LEN + \ @@ -613,8 +614,7 @@ s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, } else { PRINT_D(CORECONFIG_DBG, "Net Dev is initialized\n"); } - if (gpstrWlanOps->wlan_cfg_set == NULL || - gpstrWlanOps->wlan_cfg_get == NULL) { + if (gpstrWlanOps->wlan_cfg_get == NULL) { PRINT_D(CORECONFIG_DBG, "Set and Get is still not initialized\n"); return 1; } else { @@ -642,10 +642,12 @@ s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, } else if (u8Mode == SET_CFG) { for (counter = 0; counter < u32WIDsCount; counter++) { PRINT_D(CORECONFIG_DBG, "Sending config SET PACKET WID:%x\n", pstrWIDs[counter].u16WIDid); - if (!gpstrWlanOps->wlan_cfg_set(!counter, - pstrWIDs[counter].u16WIDid, pstrWIDs[counter].ps8WidVal, - pstrWIDs[counter].s32ValueSize, - (counter == u32WIDsCount - 1), drvHandler)) { + if (!wilc_wlan_cfg_set(!counter, + pstrWIDs[counter].u16WIDid, + pstrWIDs[counter].ps8WidVal, + pstrWIDs[counter].s32ValueSize, + (counter == u32WIDsCount - 1), + drvHandler)) { ret = -1; printk("[Sendconfigpkt]Set Timed out\n"); break; diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 9e222471e916..ad4d64e3a800 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -700,60 +700,55 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n PRINT_D(INIT_DBG, "MAC address is : %02x-%02x-%02x-%02x-%02x-%02x\n", mac_add[0], mac_add[1], mac_add[2], mac_add[3], mac_add[4], mac_add[5]); wilc_get_chipid(0); - if (g_linux_wlan->oup.wlan_cfg_set == NULL) { - PRINT_D(INIT_DBG, "Null p[ointer\n"); - goto _fail_; - } - *(int *)c_val = 1; - if (!g_linux_wlan->oup.wlan_cfg_set(1, WID_SET_DRV_HANDLER, c_val, 4, 0, 0)) + if (!wilc_wlan_cfg_set(1, WID_SET_DRV_HANDLER, c_val, 4, 0, 0)) goto _fail_; /*to tell fw that we are going to use PC test - WILC specific*/ c_val[0] = 0; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_PC_TEST_MODE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_PC_TEST_MODE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = INFRASTRUCTURE; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_BSS_TYPE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_BSS_TYPE, c_val, 1, 0, 0)) goto _fail_; /* c_val[0] = RATE_AUTO; */ c_val[0] = RATE_AUTO; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_CURRENT_TX_RATE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_CURRENT_TX_RATE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = G_MIXED_11B_2_MODE; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11G_OPERATING_MODE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11G_OPERATING_MODE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 1; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_CURRENT_CHANNEL, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_CURRENT_CHANNEL, c_val, 1, 0, 0)) goto _fail_; c_val[0] = G_SHORT_PREAMBLE; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_PREAMBLE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_PREAMBLE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = AUTO_PROT; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_PROT_MECH, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_PROT_MECH, c_val, 1, 0, 0)) goto _fail_; c_val[0] = ACTIVE_SCAN; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_SCAN_TYPE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_SCAN_TYPE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = SITE_SURVEY_OFF; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_SITE_SURVEY, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_SITE_SURVEY, c_val, 1, 0, 0)) goto _fail_; *((int *)c_val) = 0xffff; /* Never use RTS-CTS */ - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_RTS_THRESHOLD, c_val, 2, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_RTS_THRESHOLD, c_val, 2, 0, 0)) goto _fail_; *((int *)c_val) = 2346; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_FRAG_THRESHOLD, c_val, 2, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_FRAG_THRESHOLD, c_val, 2, 0, 0)) goto _fail_; /* SSID */ @@ -764,23 +759,23 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n /* to enable Broadcast SSID suppport ) */ /* -------------------------------------------------------------- */ c_val[0] = 0; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_BCAST_SSID, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_BCAST_SSID, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 1; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_QOS_ENABLE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_QOS_ENABLE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = NO_POWERSAVE; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_POWER_MANAGEMENT, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_POWER_MANAGEMENT, c_val, 1, 0, 0)) goto _fail_; c_val[0] = NO_ENCRYPT; /* NO_ENCRYPT, 0x79 */ - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11I_MODE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11I_MODE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = OPEN_SYSTEM; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_AUTH_TYPE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_AUTH_TYPE, c_val, 1, 0, 0)) goto _fail_; /* WEP/802 11I Configuration */ @@ -792,7 +787,7 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n /* ------------------------------------------------------------------ */ strcpy(c_val, "123456790abcdef1234567890"); - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_WEP_KEY_VALUE, c_val, (strlen(c_val) + 1), 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_WEP_KEY_VALUE, c_val, (strlen(c_val) + 1), 0, 0)) goto _fail_; /* WEP/802 11I Configuration */ @@ -802,7 +797,7 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n /* and less than 64 bytes */ /* ------------------------------------------------------------------ */ strcpy(c_val, "12345678"); - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11I_PSK, c_val, (strlen(c_val)), 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11I_PSK, c_val, (strlen(c_val)), 0, 0)) goto _fail_; /* IEEE802.1X Key Configuration */ @@ -812,7 +807,7 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n /* and less than 65 bytes */ /* ------------------------------------------------------------------ */ strcpy(c_val, "password"); - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_1X_KEY, c_val, (strlen(c_val) + 1), 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_1X_KEY, c_val, (strlen(c_val) + 1), 0, 0)) goto _fail_; /* IEEE802.1X Server Address Configuration */ @@ -824,31 +819,31 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n c_val[1] = 168; c_val[2] = 1; c_val[3] = 112; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_1X_SERV_ADDR, c_val, 4, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_1X_SERV_ADDR, c_val, 4, 0, 0)) goto _fail_; c_val[0] = 3; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_LISTEN_INTERVAL, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_LISTEN_INTERVAL, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 3; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_DTIM_PERIOD, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_DTIM_PERIOD, c_val, 1, 0, 0)) goto _fail_; c_val[0] = NORMAL_ACK; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_ACK_POLICY, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_ACK_POLICY, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 0; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_USER_CONTROL_ON_TX_POWER, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_USER_CONTROL_ON_TX_POWER, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 48; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_TX_POWER_LEVEL_11A, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_TX_POWER_LEVEL_11A, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 28; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_TX_POWER_LEVEL_11B, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_TX_POWER_LEVEL_11B, c_val, 1, 0, 0)) goto _fail_; /* Beacon Interval */ @@ -858,11 +853,11 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n /* -------------------------------------------------------------------- */ *((int *)c_val) = 100; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_BEACON_INTERVAL, c_val, 2, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_BEACON_INTERVAL, c_val, 2, 0, 0)) goto _fail_; c_val[0] = REKEY_DISABLE; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_REKEY_POLICY, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_REKEY_POLICY, c_val, 1, 0, 0)) goto _fail_; /* Rekey Time (s) (Used only when the Rekey policy is 2 or 4) */ @@ -871,7 +866,7 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n /* Values to set : 32-bit value */ /* -------------------------------------------------------------------- */ *((int *)c_val) = 84600; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_REKEY_PERIOD, c_val, 4, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_REKEY_PERIOD, c_val, 4, 0, 0)) goto _fail_; /* Rekey Packet Count (in 1000s; used when Rekey Policy is 3) */ @@ -880,59 +875,59 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n /* Values to set : 32-bit Value */ /* -------------------------------------------------------------------- */ *((int *)c_val) = 500; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_REKEY_PACKET_COUNT, c_val, 4, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_REKEY_PACKET_COUNT, c_val, 4, 0, 0)) goto _fail_; c_val[0] = 1; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_SHORT_SLOT_ALLOWED, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_SHORT_SLOT_ALLOWED, c_val, 1, 0, 0)) goto _fail_; c_val[0] = G_SELF_CTS_PROT; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_ERP_PROT_TYPE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_ERP_PROT_TYPE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 1; /* Enable N */ - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_ENABLE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_ENABLE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = HT_MIXED_MODE; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_OPERATING_MODE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_OPERATING_MODE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 1; /* TXOP Prot disable in N mode: No RTS-CTS on TX A-MPDUs to save air-time. */ - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_TXOP_PROT_DISABLE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_TXOP_PROT_DISABLE, c_val, 1, 0, 0)) goto _fail_; memcpy(c_val, mac_add, 6); - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_MAC_ADDR, c_val, 6, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_MAC_ADDR, c_val, 6, 0, 0)) goto _fail_; /** * AP only **/ c_val[0] = DETECT_PROTECT_REPORT; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_OBSS_NONHT_DETECTION, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_OBSS_NONHT_DETECTION, c_val, 1, 0, 0)) goto _fail_; c_val[0] = RTS_CTS_NONHT_PROT; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_HT_PROT_TYPE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_HT_PROT_TYPE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 0; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_RIFS_PROT_ENABLE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_RIFS_PROT_ENABLE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = MIMO_MODE; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_SMPS_MODE, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_SMPS_MODE, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 7; - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_CURRENT_TX_MCS, c_val, 1, 0, 0)) + if (!wilc_wlan_cfg_set(0, WID_11N_CURRENT_TX_MCS, c_val, 1, 0, 0)) goto _fail_; c_val[0] = 1; /* Enable N with immediate block ack. */ - if (!g_linux_wlan->oup.wlan_cfg_set(0, WID_11N_IMMEDIATE_BA_ENABLED, c_val, 1, 1, 1)) + if (!wilc_wlan_cfg_set(0, WID_11N_IMMEDIATE_BA_ENABLED, c_val, 1, 1, 1)) goto _fail_; return 0; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index d352f2442049..3687a06f85f0 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1748,7 +1748,8 @@ static int wilc_wlan_cfg_commit(int type, u32 drvHandler) return 0; } -static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, int commit, u32 drvHandler) +int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, + int commit, u32 drvHandler) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; u32 offset; @@ -2028,7 +2029,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_cfg_set = wilc_wlan_cfg_set; oup->wlan_cfg_get = wilc_wlan_cfg_get; oup->wlan_cfg_get_value = wilc_wlan_cfg_get_val; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index bf0c7c71b2e6..be589f0b1027 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -311,4 +311,6 @@ int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, int wilc_wlan_handle_txq(u32 *pu32TxqCount); void wilc_handle_isr(void); void wilc_wlan_cleanup(void); +int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, + int commit, u32 drvHandler); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 624b99f09c20..88979105e8e5 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32); int (*wlan_cfg_get)(int, u32, int, u32); int (*wlan_cfg_get_value)(u32, u8 *, u32); int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, From 07056a85078ad4d8114c9898799f7ded626a4023 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:41 +0900 Subject: [PATCH 1151/2431] staging: wilc1000: remove function pointer wlan_cfg_get This patch removes function pointer wlan_cfg_get and just call the function wilc_wlan_cfg_get. Remove static from the function also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 13 ++++--------- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wlan.h | 1 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 5 files changed, 7 insertions(+), 13 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 4e9fecae42b8..74ff763cc6a3 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -614,19 +614,14 @@ s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, } else { PRINT_D(CORECONFIG_DBG, "Net Dev is initialized\n"); } - if (gpstrWlanOps->wlan_cfg_get == NULL) { - PRINT_D(CORECONFIG_DBG, "Set and Get is still not initialized\n"); - return 1; - } else { - PRINT_D(CORECONFIG_DBG, "SET is initialized\n"); - } if (u8Mode == GET_CFG) { for (counter = 0; counter < u32WIDsCount; counter++) { PRINT_INFO(CORECONFIG_DBG, "Sending CFG packet [%d][%d]\n", !counter, (counter == u32WIDsCount - 1)); - if (!gpstrWlanOps->wlan_cfg_get(!counter, - pstrWIDs[counter].u16WIDid, - (counter == u32WIDsCount - 1), drvHandler)) { + if (!wilc_wlan_cfg_get(!counter, + pstrWIDs[counter].u16WIDid, + (counter == u32WIDsCount - 1), + drvHandler)) { ret = -1; printk("[Sendconfigpkt]Get Timed out\n"); break; diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index ad4d64e3a800..a1e6f6824609 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1284,7 +1284,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) wilc_bus_set_max_speed(); - if (g_linux_wlan->oup.wlan_cfg_get(1, WID_FIRMWARE_VERSION, 1, 0)) { + if (wilc_wlan_cfg_get(1, WID_FIRMWARE_VERSION, 1, 0)) { int size; char Firmware_ver[20]; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 3687a06f85f0..ce0f054c3383 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1789,7 +1789,7 @@ int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, return ret_size; } -static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) +int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; u32 offset; @@ -2029,7 +2029,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_cfg_get = wilc_wlan_cfg_get; oup->wlan_cfg_get_value = wilc_wlan_cfg_get_val; oup->wlan_add_mgmt_to_tx_que = wilc_wlan_txq_add_mgmt_pkt; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index be589f0b1027..eb61db017b8f 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -313,4 +313,5 @@ void wilc_handle_isr(void); void wilc_wlan_cleanup(void); int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, int commit, u32 drvHandler); +int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 88979105e8e5..31d8983972b1 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_cfg_get)(int, u32, int, u32); int (*wlan_cfg_get_value)(u32, u8 *, u32); int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); From 894de36b1ae8cf78514a686c381dd5c3c4812a04 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:42 +0900 Subject: [PATCH 1152/2431] staging: wilc1000: remove function pointer wlan_cfg_get_value This patch removes function pointer wlan_cfg_get_value and just call the function wilc_wlan_cfg_get_val. Remove static from the function also. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 5 +++-- drivers/staging/wilc1000/linux_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.c | 4 +--- drivers/staging/wilc1000/wilc_wlan.h | 1 + drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 74ff763cc6a3..246abb562d93 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -629,9 +629,10 @@ s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, } counter = 0; for (counter = 0; counter < u32WIDsCount; counter++) { - pstrWIDs[counter].s32ValueSize = gpstrWlanOps->wlan_cfg_get_value( + pstrWIDs[counter].s32ValueSize = wilc_wlan_cfg_get_val( pstrWIDs[counter].u16WIDid, - pstrWIDs[counter].ps8WidVal, pstrWIDs[counter].s32ValueSize); + pstrWIDs[counter].ps8WidVal, + pstrWIDs[counter].s32ValueSize); } } else if (u8Mode == SET_CFG) { diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index a1e6f6824609..e91192cd7b64 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -395,7 +395,7 @@ void linux_wlan_mac_indicate(int flag) int status; if (flag == WILC_MAC_INDICATE_STATUS) { - pd->oup.wlan_cfg_get_value(WID_STATUS, (unsigned char *)&status, 4); + wilc_wlan_cfg_get_val(WID_STATUS, (unsigned char *)&status, 4); if (pd->mac_status == WILC_MAC_STATUS_INIT) { pd->mac_status = status; up(&pd->sync_event); @@ -1288,7 +1288,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) int size; char Firmware_ver[20]; - size = g_linux_wlan->oup.wlan_cfg_get_value( + size = wilc_wlan_cfg_get_val( WID_FIRMWARE_VERSION, Firmware_ver, sizeof(Firmware_ver)); Firmware_ver[size] = '\0'; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index ce0f054c3383..f4e57d82d411 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1828,7 +1828,7 @@ int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) return ret_size; } -static int wilc_wlan_cfg_get_val(u32 wid, u8 *buffer, u32 buffer_size) +int wilc_wlan_cfg_get_val(u32 wid, u8 *buffer, u32 buffer_size) { int ret; @@ -2029,8 +2029,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) /** * export functions **/ - oup->wlan_cfg_get_value = wilc_wlan_cfg_get_val; - oup->wlan_add_mgmt_to_tx_que = wilc_wlan_txq_add_mgmt_pkt; if (!init_chip()) { diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index eb61db017b8f..3ffd558e077c 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -314,4 +314,5 @@ void wilc_wlan_cleanup(void); int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, int commit, u32 drvHandler); int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler); +int wilc_wlan_cfg_get_val(u32 wid, u8 *buffer, u32 buffer_size); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 31d8983972b1..baa13e24fdc0 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -122,7 +122,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) typedef struct { - int (*wlan_cfg_get_value)(u32, u8 *, u32); int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t); } wilc_wlan_oup_t; From c9d4834d94c5126e79984769da8c36844ae6db5d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:43 +0900 Subject: [PATCH 1153/2431] staging: wilc1000: remove function pointer wlan_add_mgmt_to_tx_que This patch removes function pointer wlan_add_mgmt_to_tx_que and just call the function wilc_wlan_txq_add_mgmt_pkt. Remove structure wilc_wlan_oup_t also because no members in it. Since wilc_wlan_oup_t is deleted, it's variable, function parameters and related codes are also deleted. - deleted variables gpstrWlanOps oup - modified functions wilc1000_prepare_11b_core wilc_wlan_init Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 6 ------ drivers/staging/wilc1000/linux_mon.c | 3 ++- drivers/staging/wilc1000/linux_wlan.c | 17 +++++------------ .../staging/wilc1000/wilc_wfi_cfgoperations.c | 4 +++- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - drivers/staging/wilc1000/wilc_wlan.c | 7 +------ drivers/staging/wilc1000/wilc_wlan.h | 2 ++ drivers/staging/wilc1000/wilc_wlan_if.h | 8 +------- 8 files changed, 14 insertions(+), 34 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 246abb562d93..136d207c8600 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -608,12 +608,6 @@ s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, { s32 counter = 0, ret = 0; - if (gpstrWlanOps == NULL) { - PRINT_D(CORECONFIG_DBG, "Net Dev is still not initialized\n"); - return 1; - } else { - PRINT_D(CORECONFIG_DBG, "Net Dev is initialized\n"); - } if (u8Mode == GET_CFG) { for (counter = 0; counter < u32WIDsCount; counter++) { PRINT_INFO(CORECONFIG_DBG, "Sending CFG packet [%d][%d]\n", !counter, diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index b1af421178f2..a943b2304da7 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -197,7 +197,8 @@ static int mon_mgmt_tx(struct net_device *dev, const u8 *buf, size_t len) mgmt_tx->size = len; memcpy(mgmt_tx->buff, buf, len); - g_linux_wlan->oup.wlan_add_mgmt_to_tx_que(mgmt_tx, mgmt_tx->buff, mgmt_tx->size, mgmt_tx_complete); + wilc_wlan_txq_add_mgmt_pkt(mgmt_tx, mgmt_tx->buff, mgmt_tx->size, + mgmt_tx_complete); netif_wake_queue(dev); return 0; diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index e91192cd7b64..c2e528f0bf70 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -115,7 +115,6 @@ static void wilc_set_multicast_list(struct net_device *dev); * and this data should be pointer to net device */ linux_wlan_t *g_linux_wlan; -wilc_wlan_oup_t *gpstrWlanOps; bool bEnablePS = true; static const struct net_device_ops wilc_netdev_ops = { @@ -1117,7 +1116,7 @@ extern u8 core_11b_ready(void); #define READY_CHECK_THRESHOLD 30 extern void wilc_wlan_global_reset(void); -u8 wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, wilc_wlan_oup_t *nwo, linux_wlan_t *nic) +u8 wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) { u8 trials = 0; @@ -1140,7 +1139,7 @@ u8 wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, wilc_wlan_oup_t *nwo, linux_w probe = 0; g_linux_wlan->wilc_sdio_func = local_sdio_func; linux_to_wlan(nwi, nic); - wilc_wlan_init(nwi, nwo); + wilc_wlan_init(nwi); } if (READY_CHECK_THRESHOLD <= trials) @@ -1154,7 +1153,6 @@ int repeat_power_cycle(perInterface_wlan_t *nic) { int ret = 0; wilc_wlan_inp_t nwi; - wilc_wlan_oup_t nwo; sdio_unregister_driver(&wilc_bus); @@ -1174,7 +1172,7 @@ int repeat_power_cycle(perInterface_wlan_t *nic) probe = 0; g_linux_wlan->wilc_sdio_func = local_sdio_func; linux_to_wlan(&nwi, g_linux_wlan); - ret = wilc_wlan_init(&nwi, &nwo); + ret = wilc_wlan_init(&nwi); g_linux_wlan->mac_status = WILC_MAC_STATUS_INIT; #if (defined WILC_SDIO) && (!defined WILC_SDIO_IRQ_GPIO) @@ -1205,7 +1203,6 @@ __fail__: int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) { wilc_wlan_inp_t nwi; - wilc_wlan_oup_t nwo; perInterface_wlan_t *nic = p_nic; int ret = 0; @@ -1218,16 +1215,12 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) linux_to_wlan(&nwi, g_linux_wlan); - ret = wilc_wlan_init(&nwi, &nwo); + ret = wilc_wlan_init(&nwi); if (ret < 0) { PRINT_ER("Initializing WILC_Wlan FAILED\n"); ret = -EIO; goto _fail_locks_; } - memcpy(&g_linux_wlan->oup, &nwo, sizeof(wilc_wlan_oup_t)); - - /*Save the oup structre into global pointer*/ - gpstrWlanOps = &g_linux_wlan->oup; ret = wlan_initialize_threads(nic); if (ret < 0) { @@ -1237,7 +1230,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) } #if (defined WILC_SDIO) && (defined COMPLEMENT_BOOT) - if (wilc1000_prepare_11b_core(&nwi, &nwo, g_linux_wlan)) { + if (wilc1000_prepare_11b_core(&nwi, g_linux_wlan)) { PRINT_ER("11b Core is not ready\n"); ret = -EIO; goto _fail_threads_; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 755a81710dc9..45d197445123 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2490,7 +2490,9 @@ static int mgmt_tx(struct wiphy *wiphy, } - g_linux_wlan->oup.wlan_add_mgmt_to_tx_que(mgmt_tx, mgmt_tx->buff, mgmt_tx->size, WILC_WFI_mgmt_tx_complete); + wilc_wlan_txq_add_mgmt_pkt(mgmt_tx, mgmt_tx->buff, + mgmt_tx->size, + WILC_WFI_mgmt_tx_complete); } else { PRINT_D(GENERIC_DBG, "This function transmits only management frames\n"); } diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index d3a03c68f803..0403bc754679 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -164,7 +164,6 @@ typedef struct { #if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) unsigned short dev_irq_num; #endif - wilc_wlan_oup_t oup; int close; u8 u8NoIfcs; tstrInterfaceInfo strInterfaceInfo[NUM_CONCURRENT_IFC]; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index f4e57d82d411..9475ec7569cf 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1949,7 +1949,7 @@ u8 core_11b_ready(void) } #endif -int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) +int wilc_wlan_init(wilc_wlan_inp_t *inp) { int ret = 0; @@ -2026,11 +2026,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup) } #endif - /** - * export functions - **/ - oup->wlan_add_mgmt_to_tx_que = wilc_wlan_txq_add_mgmt_pkt; - if (!init_chip()) { /* EIO 5 */ ret = -5; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 3ffd558e077c..1ba433cc7760 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -315,4 +315,6 @@ int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, int commit, u32 drvHandler); int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler); int wilc_wlan_cfg_get_val(u32 wid, u8 *buffer, u32 buffer_size); +int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, + wilc_tx_complete_func_t func); #endif diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index baa13e24fdc0..38d220620608 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -121,11 +121,6 @@ typedef void (*wilc_tx_complete_func_t)(void *, int); #define WILC_TX_ERR_NO_BUF (-2) -typedef struct { - int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32, - wilc_tx_complete_func_t); -} wilc_wlan_oup_t; - /******************************************** * * Wlan Configuration ID @@ -946,11 +941,10 @@ typedef enum { WID_MAX = 0xFFFF } WID_T; -int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup); +int wilc_wlan_init(wilc_wlan_inp_t *inp); void wilc_bus_set_max_speed(void); void wilc_bus_set_default_speed(void); u32 wilc_get_chipid(u8 update); -extern wilc_wlan_oup_t *gpstrWlanOps; #endif From 9dd2f7719d265fd01b9f08f6a61c97b900dd1a4e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Fri, 2 Oct 2015 14:22:03 +0900 Subject: [PATCH 1154/2431] staging: wilc1000: remove typedef from enum This patch removes typedef from enumerated types defined in coreconfigurator.c file and also changes their names to avoid CamelCase naming convention as shown: - tenuBasicFrmType to basic_frame_type - tenuFrmSubtype to sub_frame_type - tenuInfoElemID to info_element_id Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 136d207c8600..63fde5baec5a 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -18,16 +18,16 @@ BEACON_INTERVAL_LEN + CAP_INFO_LEN) /* Basic Frame Type Codes (2-bit) */ -typedef enum { +enum basic_frame_type { FRAME_TYPE_CONTROL = 0x04, FRAME_TYPE_DATA = 0x08, FRAME_TYPE_MANAGEMENT = 0x00, FRAME_TYPE_RESERVED = 0x0C, FRAME_TYPE_FORCE_32BIT = 0xFFFFFFFF -} tenuBasicFrmType; +}; /* Frame Type and Subtype Codes (6-bit) */ -typedef enum { +enum sub_frame_type { ASSOC_REQ = 0x00, ASSOC_RSP = 0x10, REASSOC_REQ = 0x20, @@ -64,10 +64,10 @@ typedef enum { BLOCKACK_REQ = 0x84, BLOCKACK = 0x94, FRAME_SUBTYPE_FORCE_32BIT = 0xFFFFFFFF -} tenuFrmSubtype; +}; /* Element ID of various Information Elements */ -typedef enum { +enum info_element_id { ISSID = 0, /* Service Set Identifier */ ISUPRATES = 1, /* Supported Rates */ IFHPARMS = 2, /* FH parameter set */ @@ -108,7 +108,7 @@ typedef enum { IWMM = 221, /* WMM parameters */ IWPAELEMENT = 221, /* WPA Information Element */ INFOELEM_ID_FORCE_32BIT = 0xFFFFFFFF -} tenuInfoElemID; +}; typedef struct { @@ -159,9 +159,9 @@ static inline u32 get_beacon_timestamp_hi(u8 *data) /* This function extracts the 'frame type and sub type' bits from the MAC */ /* header of the input frame. */ /* Returns the value in the LSB of the returned value. */ -static inline tenuFrmSubtype get_sub_type(u8 *header) +static inline enum sub_frame_type get_sub_type(u8 *header) { - return ((tenuFrmSubtype)(header[0] & 0xFC)); + return ((enum sub_frame_type)(header[0] & 0xFC)); } /* This function extracts the 'to ds' bit from the MAC header of the input */ @@ -245,7 +245,7 @@ static inline u16 get_cap_info(u8 *data) { u16 cap_info = 0; u16 index = MAC_HDR_LEN; - tenuFrmSubtype st; + enum sub_frame_type st; st = get_sub_type(data); From fdf33a76972c487511962eab9ed5f0c1fa439f4e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Fri, 2 Oct 2015 14:22:04 +0900 Subject: [PATCH 1155/2431] staging: wilc1000: coreconfigurator.c: remove unused struct This patch removes unused structure, tstrconfigPktInfo from the coreconfigurator.c file. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 63fde5baec5a..65a130ddd7d3 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -110,14 +110,6 @@ enum info_element_id { INFOELEM_ID_FORCE_32BIT = 0xFFFFFFFF }; - -typedef struct { - char *pcRespBuffer; - s32 s32MaxRespBuffLen; - s32 s32BytesRead; - bool bRespRequired; -} tstrConfigPktInfo; - /* This function extracts the beacon period field from the beacon or probe */ /* response frame. */ static inline u16 get_beacon_period(u8 *data) From 28dedb8070398561243ad3708dd4f77ca920c6dd Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:05 +0900 Subject: [PATCH 1156/2431] staging: wilc1000: wilc_wfi_netdevice.h: remove unused variables This patch removes unused variable already_claim and hWILCWFIDrv_2. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 0403bc754679..e553b0cb1db5 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -125,7 +125,6 @@ struct wilc_priv { struct net_device *dev; struct napi_struct napi; tstrWILC_WFIDrv *hWILCWFIDrv; - WILC_WFIDrvHandle hWILCWFIDrv_2; tstrHostIFpmkidAttr pmkid_list; struct WILC_WFI_stats netstats; u8 WILC_WFI_wep_default; @@ -190,7 +189,6 @@ typedef struct { struct net_device *real_ndev; #ifdef WILC_SDIO - int already_claim; struct sdio_func *wilc_sdio_func; #else struct spi_device *wilc_spidev; From 66482a56425036e605e60bf56c573b30d0596a7b Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:06 +0900 Subject: [PATCH 1157/2431] staging: wilc1000: Delete undefined DEBUG_MODE and it's related codes This patch removes undefined DEBUG_MODE and it's related codes. We won't use this at the moment. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 63 --------------------------- 1 file changed, 63 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c2e528f0bf70..c4915d3f3b8c 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -128,60 +128,6 @@ static const struct net_device_ops wilc_netdev_ops = { }; -#ifdef DEBUG_MODE - -extern volatile int timeNo; - -#define DEGUG_BUFFER_LENGTH 1000 -volatile int WatchDogdebuggerCounter; -char DebugBuffer[DEGUG_BUFFER_LENGTH + 20] = {0}; -static char *ps8current = DebugBuffer; - -void printk_later(const char *format, ...) -{ - va_list args; - - va_start(args, format); - ps8current += vsprintf(ps8current, format, args); - va_end(args); - if ((ps8current - DebugBuffer) > DEGUG_BUFFER_LENGTH) - ps8current = DebugBuffer; - -} - -void dump_logs(void) -{ - if (DebugBuffer[0]) { - DebugBuffer[DEGUG_BUFFER_LENGTH] = 0; - PRINT_INFO(GENERIC_DBG, "early printed\n"); - PRINT_D(GENERIC_DBG, ps8current + 1); - ps8current[1] = 0; - PRINT_INFO(GENERIC_DBG, "latest printed\n"); - PRINT_D(GENERIC_DBG, DebugBuffer); - DebugBuffer[0] = 0; - ps8current = DebugBuffer; - } -} - -void Reset_WatchDogdebugger(void) -{ - WatchDogdebuggerCounter = 0; -} - -static int DebuggingThreadTask(void *vp) -{ - while (1) { - while (!WatchDogdebuggerCounter) { - PRINT_D(GENERIC_DBG, "Debug Thread Running %d\n", timeNo); - WatchDogdebuggerCounter = 1; - msleep(10000); - } - dump_logs(); - WatchDogdebuggerCounter = 0; - } -} -#endif - static int dev_state_ev_handler(struct notifier_block *this, unsigned long event, void *ptr) { struct in_ifaddr *dev_iface = (struct in_ifaddr *)ptr; @@ -1072,15 +1018,6 @@ int wlan_initialize_threads(perInterface_wlan_t *nic) ret = -ENOBUFS; goto _fail_2; } -#ifdef DEBUG_MODE - PRINT_D(INIT_DBG, "Creating kthread for Debugging\n"); - g_linux_wlan->txq_thread = kthread_run(DebuggingThreadTask, (void *)g_linux_wlan, "DebugThread"); - if (g_linux_wlan->txq_thread == 0) { - PRINT_ER("couldn't create TXQ thread\n"); - ret = -ENOBUFS; - goto _fail_2; - } -#endif /* wait for TXQ task to start. */ down(&g_linux_wlan->txq_thread_started); From 17e8f16554f22e8e5e0146e1236c2ec64a047e92 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:07 +0900 Subject: [PATCH 1158/2431] staging: wilc1000: remove function pointer cfg_wid_set This patch removes function pointer cfg_wid_set and call the function wilc_wlan_cfg_set_wid instead. Remove static from the function declaration. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 5 +++-- drivers/staging/wilc1000/wilc_wlan.h | 1 - drivers/staging/wilc1000/wilc_wlan_cfg.c | 3 +-- drivers/staging/wilc1000/wilc_wlan_cfg.h | 2 ++ 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 9475ec7569cf..442fe5f10842 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -9,6 +9,7 @@ #include "wilc_wlan_if.h" #include "wilc_wlan.h" +#include "wilc_wlan_cfg.h" /******************************************** * @@ -1763,8 +1764,8 @@ int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, p->cfg_frame_offset = 0; offset = p->cfg_frame_offset; - ret_size = mac_cfg.cfg_wid_set(p->cfg_frame.frame, offset, (u16)wid, - buffer, buffer_size); + ret_size = wilc_wlan_cfg_set_wid(p->cfg_frame.frame, offset, (u16)wid, + buffer, buffer_size); offset += ret_size; p->cfg_frame_offset = offset; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 1ba433cc7760..90417d9d39ee 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -296,7 +296,6 @@ typedef struct { } wilc_cfg_rsp_t; typedef struct { - int (*cfg_wid_set)(u8 *, u32, u16, u8 *, int); int (*cfg_wid_get)(u8 *, u32, u16); int (*cfg_wid_get_val)(u16, u8 *, u32); int (*rx_indicate)(u8 *, int, wilc_cfg_rsp_t *); diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index d761a372eeea..e5296c189de4 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -386,7 +386,7 @@ static int wilc_wlan_parse_info_frame(u8 *info, int size) * ********************************************/ -static int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size) +int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size) { u8 type = (id >> 12) & 0xf; int ret = 0; @@ -566,7 +566,6 @@ static int wilc_wlan_cfg_init(wilc_debug_func func) } wilc_cfg_func_t mac_cfg = { - wilc_wlan_cfg_set_wid, wilc_wlan_cfg_get_wid, wilc_wlan_cfg_get_wid_value, wilc_wlan_cfg_indicate_rx, diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.h b/drivers/staging/wilc1000/wilc_wlan_cfg.h index ef8835804afb..326c716d5045 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.h +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.h @@ -30,4 +30,6 @@ typedef struct { u8 *str; } wilc_cfg_str_t; +int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size); + #endif From ec1b86bf6a47d6099cd502e6dc1a1217e2c6c23d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:08 +0900 Subject: [PATCH 1159/2431] staging: wilc1000: remove function pointer cfg_wid_get Remove function pointer cfg_wid_get and call the function wilc_wlan_cfg_get_wid instead. Remove static from the function declaration. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.h | 1 - drivers/staging/wilc1000/wilc_wlan_cfg.c | 3 +-- drivers/staging/wilc1000/wilc_wlan_cfg.h | 1 + 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 442fe5f10842..fbc082912671 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1804,7 +1804,7 @@ int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) p->cfg_frame_offset = 0; offset = p->cfg_frame_offset; - ret_size = mac_cfg.cfg_wid_get(p->cfg_frame.frame, offset, (u16)wid); + ret_size = wilc_wlan_cfg_get_wid(p->cfg_frame.frame, offset, (u16)wid); offset += ret_size; p->cfg_frame_offset = offset; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 90417d9d39ee..bbf3e0225971 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -296,7 +296,6 @@ typedef struct { } wilc_cfg_rsp_t; typedef struct { - int (*cfg_wid_get)(u8 *, u32, u16); int (*cfg_wid_get_val)(u16, u8 *, u32); int (*rx_indicate)(u8 *, int, wilc_cfg_rsp_t *); int (*cfg_init)(wilc_debug_func); diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index e5296c189de4..7007381a1ad8 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -411,7 +411,7 @@ int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size) return ret; } -static int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id) +int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id) { u8 *buf; @@ -566,7 +566,6 @@ static int wilc_wlan_cfg_init(wilc_debug_func func) } wilc_cfg_func_t mac_cfg = { - wilc_wlan_cfg_get_wid, wilc_wlan_cfg_get_wid_value, wilc_wlan_cfg_indicate_rx, wilc_wlan_cfg_init, diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.h b/drivers/staging/wilc1000/wilc_wlan_cfg.h index 326c716d5045..2edd74938464 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.h +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.h @@ -31,5 +31,6 @@ typedef struct { } wilc_cfg_str_t; int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size); +int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id); #endif From 355cca2ab21b06b7222e7cd8bebede9aced75374 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:09 +0900 Subject: [PATCH 1160/2431] staging: wilc1000: remove function pointer cfg_wid_get_val This patch removes cfg_wid_get_val and call the function wilc_wlan_cfg_get_wid_value. Remove static from the function declaration. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.h | 1 - drivers/staging/wilc1000/wilc_wlan_cfg.c | 3 +-- drivers/staging/wilc1000/wilc_wlan_cfg.h | 1 + 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index fbc082912671..a9a8d2467fcc 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1833,7 +1833,7 @@ int wilc_wlan_cfg_get_val(u32 wid, u8 *buffer, u32 buffer_size) { int ret; - ret = mac_cfg.cfg_wid_get_val((u16)wid, buffer, buffer_size); + ret = wilc_wlan_cfg_get_wid_value((u16)wid, buffer, buffer_size); return ret; } diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index bbf3e0225971..938693905956 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -296,7 +296,6 @@ typedef struct { } wilc_cfg_rsp_t; typedef struct { - int (*cfg_wid_get_val)(u16, u8 *, u32); int (*rx_indicate)(u8 *, int, wilc_cfg_rsp_t *); int (*cfg_init)(wilc_debug_func); } wilc_cfg_func_t; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index 7007381a1ad8..55d208326566 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -426,7 +426,7 @@ int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id) return 2; } -static int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, u32 buffer_size) +int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, u32 buffer_size) { u32 type = (wid >> 12) & 0xf; int i, ret = 0; @@ -566,7 +566,6 @@ static int wilc_wlan_cfg_init(wilc_debug_func func) } wilc_cfg_func_t mac_cfg = { - wilc_wlan_cfg_get_wid_value, wilc_wlan_cfg_indicate_rx, wilc_wlan_cfg_init, }; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.h b/drivers/staging/wilc1000/wilc_wlan_cfg.h index 2edd74938464..0efa2c57dbf7 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.h +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.h @@ -32,5 +32,6 @@ typedef struct { int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size); int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id); +int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, u32 buffer_size); #endif From 30f535a673d043d21be5d40cced45387bd51b3b9 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:10 +0900 Subject: [PATCH 1161/2431] staging: wilc1000: remove function pointer rx_indicate This patch removes function pointer rx_indicate and just call the function wilc_wlan_cfg_indicate_rx instead. Remove static from the function declration. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.h | 1 - drivers/staging/wilc1000/wilc_wlan_cfg.c | 3 +-- drivers/staging/wilc1000/wilc_wlan_cfg.h | 1 + 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index a9a8d2467fcc..cd4598aa151e 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1198,7 +1198,7 @@ static void wilc_wlan_handle_rxq(void) - mac_cfg.rx_indicate(&buffer[pkt_offset + offset], pkt_len, &rsp); + wilc_wlan_cfg_indicate_rx(&buffer[pkt_offset + offset], pkt_len, &rsp); if (rsp.type == WILC_CFG_RSP) { /** * wake up the waiting task... diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 938693905956..5099cf0d6011 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -296,7 +296,6 @@ typedef struct { } wilc_cfg_rsp_t; typedef struct { - int (*rx_indicate)(u8 *, int, wilc_cfg_rsp_t *); int (*cfg_init)(wilc_debug_func); } wilc_cfg_func_t; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index 55d208326566..2916d453495d 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -505,7 +505,7 @@ int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, u32 buffer_size) return ret; } -static int wilc_wlan_cfg_indicate_rx(u8 *frame, int size, wilc_cfg_rsp_t *rsp) +int wilc_wlan_cfg_indicate_rx(u8 *frame, int size, wilc_cfg_rsp_t *rsp) { int ret = 1; u8 msg_type; @@ -566,6 +566,5 @@ static int wilc_wlan_cfg_init(wilc_debug_func func) } wilc_cfg_func_t mac_cfg = { - wilc_wlan_cfg_indicate_rx, wilc_wlan_cfg_init, }; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.h b/drivers/staging/wilc1000/wilc_wlan_cfg.h index 0efa2c57dbf7..fe2c03829d6b 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.h +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.h @@ -33,5 +33,6 @@ typedef struct { int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size); int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id); int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, u32 buffer_size); +int wilc_wlan_cfg_indicate_rx(u8 *frame, int size, wilc_cfg_rsp_t *rsp); #endif From 814bc36807e26ffbee40dd81de3ae398b608c266 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:11 +0900 Subject: [PATCH 1162/2431] staging: wilc1000: remove function pointer cfg_init This patch removes function pointer cfg_init and call the function wilc_wlan_cfg_init instead. Remove static from function declaration. After removing cfg_init, the struct wilc_cfg_func_t is useless so just delete it and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 3 +-- drivers/staging/wilc1000/wilc_wlan.h | 4 ---- drivers/staging/wilc1000/wilc_wlan_cfg.c | 6 +----- drivers/staging/wilc1000/wilc_wlan_cfg.h | 1 + 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index cd4598aa151e..4ca872129f8c 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -18,7 +18,6 @@ ********************************************/ extern wilc_hif_func_t hif_sdio; extern wilc_hif_func_t hif_spi; -extern wilc_cfg_func_t mac_cfg; extern void WILC_WFI_mgmt_rx(u8 *buff, u32 size); u32 wilc_get_chipid(u8 update); u16 Set_machw_change_vir_if(bool bValue); @@ -1994,7 +1993,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp) /*** * mac interface init **/ - if (!mac_cfg.cfg_init(wilc_debug)) { + if (!wilc_wlan_cfg_init(wilc_debug)) { /* ENOBUFS 105 */ ret = -105; goto _fail_; diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 5099cf0d6011..bd89689fbf10 100644 --- a/drivers/staging/wilc1000/wilc_wlan.h +++ b/drivers/staging/wilc1000/wilc_wlan.h @@ -295,10 +295,6 @@ typedef struct { u32 seq_no; } wilc_cfg_rsp_t; -typedef struct { - int (*cfg_init)(wilc_debug_func); -} wilc_cfg_func_t; - int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size); int wilc_wlan_start(void); int wilc_wlan_stop(void); diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index 2916d453495d..d148d6efadbb 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -558,13 +558,9 @@ int wilc_wlan_cfg_indicate_rx(u8 *frame, int size, wilc_cfg_rsp_t *rsp) return ret; } -static int wilc_wlan_cfg_init(wilc_debug_func func) +int wilc_wlan_cfg_init(wilc_debug_func func) { memset((void *)&g_mac, 0, sizeof(wilc_mac_cfg_t)); g_mac.dPrint = func; return 1; } - -wilc_cfg_func_t mac_cfg = { - wilc_wlan_cfg_init, -}; diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.h b/drivers/staging/wilc1000/wilc_wlan_cfg.h index fe2c03829d6b..30e60ec4d29f 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.h +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.h @@ -34,5 +34,6 @@ int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size); int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id); int wilc_wlan_cfg_get_wid_value(u16 wid, u8 *buffer, u32 buffer_size); int wilc_wlan_cfg_indicate_rx(u8 *frame, int size, wilc_cfg_rsp_t *rsp); +int wilc_wlan_cfg_init(wilc_debug_func func); #endif From 9cdf6e7bd3f87485a5d1fddcbc7e9969cbb9be4b Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:12 +0900 Subject: [PATCH 1163/2431] staging: wilc1000: remove unused variable real_ndev This patch removes unused variable real_ndev. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index e553b0cb1db5..81c1ad376600 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -187,7 +187,6 @@ typedef struct { const struct firmware *wilc_firmware; - struct net_device *real_ndev; #ifdef WILC_SDIO struct sdio_func *wilc_sdio_func; #else From d3ad7f5788efc03e41a31756a01c0718324d366c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:10 +0900 Subject: [PATCH 1164/2431] staging: wilc1000: remove wilc_platform.h This patch removes wilc_platform.h file that is not used anywhere. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_platform.h | 28 ------------------------ 1 file changed, 28 deletions(-) delete mode 100644 drivers/staging/wilc1000/wilc_platform.h diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h deleted file mode 100644 index 6ec1aa34617e..000000000000 --- a/drivers/staging/wilc1000/wilc_platform.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __WILC_platform_H__ -#define __WILC_platform_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "linux/string.h" -/****************************************************************** - * OS specific types - *******************************************************************/ - - - - - - -/******************************************************************* - * others - ********************************************************************/ - -#endif From 331d80c53b2d2d11d526da5bed117119e7bd57bc Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:11 +0900 Subject: [PATCH 1165/2431] staging: wilc1000: remove commented codes This patch removes commented codes that is not used in this driver. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 3 --- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - drivers/staging/wilc1000/wilc_wlan.c | 4 ---- drivers/staging/wilc1000/wilc_wlan_if.h | 3 --- 4 files changed, 11 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c4915d3f3b8c..50631c500e2c 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1879,9 +1879,6 @@ static void __exit exit_wilc_driver(void) } } - /* WILC_WFI_deinit_mon_interface(); */ - - /* if(g_linux_wlan->open_ifcs==0) */ { #ifndef WILC_SDIO PRINT_D(INIT_DBG, "SPI unregsiter...\n"); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 81c1ad376600..f2943b2dc603 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -183,7 +183,6 @@ typedef struct { struct task_struct *txq_thread; unsigned char eth_src_address[NUM_CONCURRENT_IFC][6]; - /* unsigned char eth_dst_address[6]; */ const struct firmware *wilc_firmware; diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 4ca872129f8c..da529105f417 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -142,7 +142,6 @@ static void wilc_wlan_txq_remove(struct txq_entry_t *tqe) { wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; - /* unsigned long flags; */ if (tqe == p->txq_head) { p->txq_head = tqe->next; @@ -849,8 +848,6 @@ int wilc_wlan_handle_txq(u32 *pu32TxqCount) i = 0; sum = 0; do { - /* if ((tqe != NULL) && (i < (8)) && */ - /* if ((tqe != NULL) && (i < (WILC_VMM_TBL_SIZE-1)) && */ if ((tqe != NULL) && (i < (WILC_VMM_TBL_SIZE - 1)) /* reserve last entry to 0 */) { if (tqe->type == WILC_CFG_PKT) { @@ -973,7 +970,6 @@ int wilc_wlan_handle_txq(u32 *pu32TxqCount) * Get the entries **/ entries = ((reg >> 3) & 0x3f); - /* entries = ((reg>>3)&0x2f); */ break; } else { release_bus(RELEASE_ALLOW_SLEEP); diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 38d220620608..327ea039c946 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -10,9 +10,6 @@ #ifndef WILC_WLAN_IF_H #define WILC_WLAN_IF_H -/* #define MEMORY_STATIC */ -/* #define USE_OLD_SPI_SW */ - #include #include "linux_wlan_common.h" From afcd8c514698d96842d76db649e0237bd384d81a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:12 +0900 Subject: [PATCH 1166/2431] staging: wilc1000: remove if defined codes of USE_OLD_SPI_SW This patch removes if defined codes of USE_OLD_SPI_SW. This macro is deleted because it is commented out. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_spi.c | 125 ---------------------------- 1 file changed, 125 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index 0e06fc204c81..8acf648ead93 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -756,22 +756,6 @@ static int spi_internal_write(u32 adr, u32 dat) { int result; -#if defined USE_OLD_SPI_SW - /** - * Command - **/ - result = spi_cmd(CMD_INTERNAL_WRITE, adr, dat, 4, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed internal write cmd...\n"); - return 0; - } - - result = spi_cmd_rsp(CMD_INTERNAL_WRITE, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed internal write cmd response...\n"); - } -#else - #ifdef BIG_ENDIAN dat = BYTE_SWAP(dat); #endif @@ -780,7 +764,6 @@ static int spi_internal_write(u32 adr, u32 dat) PRINT_ER("[wilc spi]: Failed internal write cmd...\n"); } -#endif return result; } @@ -788,35 +771,11 @@ static int spi_internal_read(u32 adr, u32 *data) { int result; -#if defined USE_OLD_SPI_SW - result = spi_cmd(CMD_INTERNAL_READ, adr, 0, 4, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed internal read cmd...\n"); - return 0; - } - - result = spi_cmd_rsp(CMD_INTERNAL_READ, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed internal read cmd response...\n"); - return 0; - } - - /** - * Data - **/ - result = spi_data_read((u8 *)data, 4); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed internal read data...\n"); - return 0; - } -#else result = spi_cmd_complete(CMD_INTERNAL_READ, adr, (u8 *)data, 4, 0); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed internal read cmd...\n"); return 0; } -#endif - #ifdef BIG_ENDIAN *data = BYTE_SWAP(*data); @@ -837,24 +796,6 @@ static int spi_write_reg(u32 addr, u32 data) u8 cmd = CMD_SINGLE_WRITE; u8 clockless = 0; - -#if defined USE_OLD_SPI_SW - { - result = spi_cmd(cmd, addr, data, 4, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed cmd, write reg (%08x)...\n", addr); - return 0; - } - - result = spi_cmd_rsp(cmd, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed cmd response, write reg (%08x)...\n", addr); - return 0; - } - - return 1; - } -#else #ifdef BIG_ENDIAN data = BYTE_SWAP(data); #endif @@ -870,8 +811,6 @@ static int spi_write_reg(u32 addr, u32 data) } return result; -#endif - } static int spi_write(u32 addr, u8 *buf, u32 size) @@ -885,28 +824,11 @@ static int spi_write(u32 addr, u8 *buf, u32 size) if (size <= 4) return 0; -#if defined USE_OLD_SPI_SW - /** - * Command - **/ - result = spi_cmd(cmd, addr, 0, size, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed cmd, write block (%08x)...\n", addr); - return 0; - } - - result = spi_cmd_rsp(cmd, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi ]: Failed cmd response, write block (%08x)...\n", addr); - return 0; - } -#else result = spi_cmd_complete(cmd, addr, NULL, size, 0); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed cmd, write block (%08x)...\n", addr); return 0; } -#endif /** * Data @@ -925,24 +847,6 @@ static int spi_read_reg(u32 addr, u32 *data) u8 cmd = CMD_SINGLE_READ; u8 clockless = 0; -#if defined USE_OLD_SPI_SW - result = spi_cmd(cmd, addr, 0, 4, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed cmd, read reg (%08x)...\n", addr); - return 0; - } - result = spi_cmd_rsp(cmd, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed cmd response, read reg (%08x)...\n", addr); - return 0; - } - - result = spi_data_read((u8 *)data, 4); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed data read...\n"); - return 0; - } -#else if (addr < 0x30) { /* PRINT_ER("***** read addr %d\n\n", addr); */ /* Clockless register*/ @@ -955,8 +859,6 @@ static int spi_read_reg(u32 addr, u32 *data) PRINT_ER("[wilc spi]: Failed cmd, read reg (%08x)...\n", addr); return 0; } -#endif - #ifdef BIG_ENDIAN *data = BYTE_SWAP(*data); @@ -973,38 +875,11 @@ static int spi_read(u32 addr, u8 *buf, u32 size) if (size <= 4) return 0; -#if defined USE_OLD_SPI_SW - /** - * Command - **/ - result = spi_cmd(cmd, addr, 0, size, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed cmd, read block (%08x)...\n", addr); - return 0; - } - - result = spi_cmd_rsp(cmd, 0); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed cmd response, read block (%08x)...\n", addr); - return 0; - } - - /** - * Data - **/ - result = spi_data_read(buf, size); - if (result != N_OK) { - PRINT_ER("[wilc spi]: Failed block data read...\n"); - return 0; - } -#else result = spi_cmd_complete(cmd, addr, buf, size, 0); if (result != N_OK) { PRINT_ER("[wilc spi]: Failed cmd, read block (%08x)...\n", addr); return 0; } -#endif - return 1; } From c2eda352d046b3bd48d7916da9b2bfefbddffacf Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:13 +0900 Subject: [PATCH 1167/2431] staging: wilc1000: fix indentation level This patch removes unnecessary block braces and fix indentation. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 36 +++++++++++++-------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 50631c500e2c..f6a628719fd5 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1879,28 +1879,26 @@ static void __exit exit_wilc_driver(void) } } - { - #ifndef WILC_SDIO - PRINT_D(INIT_DBG, "SPI unregsiter...\n"); - spi_unregister_driver(&wilc_bus); - #else - PRINT_D(INIT_DBG, "SDIO unregsiter...\n"); - sdio_unregister_driver(&wilc_bus); - #endif - - if (g_linux_wlan != NULL) { - kfree(g_linux_wlan); - g_linux_wlan = NULL; - } - printk("Module_exit Done.\n"); - -#if defined(WILC_DEBUGFS) - wilc_debugfs_remove(); +#ifndef WILC_SDIO + PRINT_D(INIT_DBG, "SPI unregsiter...\n"); + spi_unregister_driver(&wilc_bus); +#else + PRINT_D(INIT_DBG, "SDIO unregsiter...\n"); + sdio_unregister_driver(&wilc_bus); #endif - linux_wlan_device_detection(0); - linux_wlan_device_power(0); + if (g_linux_wlan != NULL) { + kfree(g_linux_wlan); + g_linux_wlan = NULL; } + printk("Module_exit Done.\n"); + +#if defined(WILC_DEBUGFS) + wilc_debugfs_remove(); +#endif + + linux_wlan_device_detection(0); + linux_wlan_device_power(0); } module_exit(exit_wilc_driver); From 0981ce2bba6dd76c9fb2edf459a7e6e207a0cef3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:14 +0900 Subject: [PATCH 1168/2431] staging: wilc1000: remove #if 1 and #endif This patch removes #if 1 and #endif, which is encapsulated some codes. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 45d197445123..25643b02d867 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -3417,7 +3417,6 @@ int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed) struct wilc_priv *priv; priv = wiphy_priv(wiphy); -#if 1 switch (changed) { case WILC_WFI_RX_PKT: @@ -3440,7 +3439,6 @@ int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed) default: break; } -#endif return 0; } From 30b2ba099c799a72fa68c35e1e10016c515cac06 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:15 +0900 Subject: [PATCH 1169/2431] staging: wilc1000: remove unnecessary comment This patch removes unnecessary comment. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 ----- drivers/staging/wilc1000/host_interface.h | 16 ++++--------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 23 ++++++++----------- drivers/staging/wilc1000/wilc_wlan.c | 2 -- 4 files changed, 14 insertions(+), 33 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9dac90686c11..2cf82b2a2a0a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -12,9 +12,6 @@ extern u8 connecting; extern struct timer_list hDuringIpTimer; extern u8 g_wilc_initialized; -/*****************************************************************************/ -/* Macros */ -/*****************************************************************************/ /* Message types of the Host IF Message Queue*/ #define HOST_IF_MSG_SCAN 0 @@ -63,9 +60,6 @@ extern u8 g_wilc_initialized; #define BA_SESSION_DEFAULT_BUFFER_SIZE 16 #define BA_SESSION_DEFAULT_TIMEOUT 1000 #define BLOCK_ACK_REQ_SIZE 0x14 -/*****************************************************************************/ -/* Type Definitions */ -/*****************************************************************************/ /*! * @struct cfg_param_attr diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 56ba04226f6b..fb5cb8a984b3 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -11,9 +11,6 @@ #define HOST_INT_H #include "coreconfigurator.h" -/*****************************************************************************/ -/* Macros */ -/*****************************************************************************/ #define IP_ALEN 4 @@ -38,10 +35,10 @@ #define REMOVEKEY 0x2 #define DEFAULTKEY 0x4 #define ADDKEY_AP 0x8 -#define MAX_NUM_SCANNED_NETWORKS 100 /* 30 // rachel */ +#define MAX_NUM_SCANNED_NETWORKS 100 #define MAX_NUM_SCANNED_NETWORKS_SHADOW 130 -#define MAX_NUM_PROBED_SSID 10 /*One more than the number of scanned ssids*/ -#define CHANNEL_SCAN_TIME 250 /* 250 */ +#define MAX_NUM_PROBED_SSID 10 +#define CHANNEL_SCAN_TIME 250 #define TX_MIC_KEY_LEN 8 #define RX_MIC_KEY_LEN 8 @@ -56,7 +53,7 @@ #define PMKID_LEN 16 #define WILC_MAX_NUM_PMKIDS 16 #define WILC_SUPP_MCS_SET_SIZE 16 -#define WILC_ADD_STA_LENGTH 40 /* Not including the rates field cause it has variable length*/ +#define WILC_ADD_STA_LENGTH 40 #define SCAN_EVENT_DONE_ABORTED #define NUM_CONCURRENT_IFC 2 @@ -1202,9 +1199,4 @@ void host_int_freeJoinParams(void *pJoinParams); s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics); -/*****************************************************************************/ -/* */ -/* EOF */ -/* */ -/*****************************************************************************/ #endif diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index f2943b2dc603..d25092dccd4a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -8,12 +8,10 @@ #ifndef WILC_WFI_NETDEVICE #define WILC_WFI_NETDEVICE -/* These are the flags in the statusword */ #define WILC_WFI_RX_INTR 0x0001 #define WILC_WFI_TX_INTR 0x0002 -/* Default timeout period */ -#define WILC_WFI_TIMEOUT 5 /* In jiffies */ +#define WILC_WFI_TIMEOUT 5 #define WILC_MAX_NUM_PMKIDS 16 #define PMKID_LEN 16 #define PMKID_FOUND 1 @@ -24,16 +22,16 @@ #include #include #include -#include /* kmalloc() */ -#include /* error codes */ -#include /* size_t */ -#include /* mark_bh */ +#include +#include +#include +#include #include #include -#include /* struct device, and other headers */ -#include /* eth_type_trans */ -#include /* struct iphdr */ -#include /* struct tcphdr */ +#include +#include +#include +#include #include #include #include @@ -45,12 +43,11 @@ #include #include "host_interface.h" #include "wilc_wlan.h" -#include /* tony, 2013-06-12 */ +#include #define FLOW_CONTROL_LOWER_THRESHOLD 128 #define FLOW_CONTROL_UPPER_THRESHOLD 256 -/*iftype*/ enum stats_flags { WILC_WFI_RX_PKT = BIT(0), WILC_WFI_TX_PKT = BIT(1), diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index da529105f417..e11d3d32d371 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1165,7 +1165,6 @@ static void wilc_wlan_handle_rxq(void) break; } -/*bug 3887: [AP] Allow Management frames to be passed to the host*/ #define IS_MANAGMEMENT 0x100 #define IS_MANAGMEMENT_CALLBACK 0x080 #define IS_MGMT_STATUS_SUCCES 0x040 @@ -1177,7 +1176,6 @@ static void wilc_wlan_handle_rxq(void) WILC_WFI_mgmt_rx(&buffer[offset + HOST_HDR_OFFSET], pkt_len); } - /* BUG4530 fix */ else { From 5cc59d299f0690c5ce3b32cdf8e07ac535c2288a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:16 +0900 Subject: [PATCH 1170/2431] staging: wilc1000: use ARRAY_SIZE macro This patch uses ARRAY_SIZE macro found by checkpatch.pl WARNING: Prefer ARRAY_SIZE(wb) drivers/staging/wilc1000/wilc_spi.c:400 drivers/staging/wilc1000/wilc_spi.c:402 Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index 8acf648ead93..599508beabf8 100644 --- a/drivers/staging/wilc1000/wilc_spi.c +++ b/drivers/staging/wilc1000/wilc_spi.c @@ -397,9 +397,9 @@ static int spi_cmd_complete(u8 cmd, u32 adr, u8 *b, u32 sz, u8 clockless) } #undef NUM_DUMMY_BYTES - if (len2 > (sizeof(wb) / sizeof(wb[0]))) { + if (len2 > ARRAY_SIZE(wb)) { PRINT_ER("[wilc spi]: spi buffer size too small (%d) (%zu)\n", - len2, (sizeof(wb) / sizeof(wb[0]))); + len2, ARRAY_SIZE(wb)); result = N_FAIL; return result; } From a74cc6b8d8ee405cfef4a26f6c8259f1c1882c66 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:17 +0900 Subject: [PATCH 1171/2431] staging: wilc1000: use int instead of int8_t This patch replaces int8_t with int. The int8_t should be int. It's used as an index into an array or -1 for not found. Suggested-by: Dan Carpenter Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 25643b02d867..ea24f501cede 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -263,9 +263,9 @@ static void clear_duringIP(unsigned long arg) g_obtainingIP = false; } -int8_t is_network_in_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid) +int is_network_in_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid) { - int8_t state = -1; + int state = -1; int i; if (u32LastScannedNtwrksCountShadow == 0) { @@ -288,7 +288,7 @@ int8_t is_network_in_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid) void add_network_to_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, void *pJoinParams) { - int8_t ap_found = is_network_in_shadow(pstrNetworkInfo, pUserVoid); + int ap_found = is_network_in_shadow(pstrNetworkInfo, pUserVoid); u32 ap_index = 0; u8 rssi_index = 0; From 9a4598316e20a30a8926a81e2032f592ebe7e42a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:18 +0900 Subject: [PATCH 1172/2431] staging: wilc1000: set_channel: remove blank line after open brace This patch removes blank line after open brace '{' found by checkpatch.pl CHECK: Blank lines aren't necessary after an open brace '{' drivers/staging/wilc1000/wilc_wfi_cfgoperations.c:664: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index ea24f501cede..d71034f54ee7 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -661,7 +661,6 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, static int set_channel(struct wiphy *wiphy, struct cfg80211_chan_def *chandef) { - u32 channelnum = 0; struct wilc_priv *priv; s32 s32Error = 0; From 7584019e575286d35b2a1151a8f7f3038bf3d377 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:19 +0900 Subject: [PATCH 1173/2431] staging: wilc1000: set_channel: fix data type of s32Error This patch changes data type of s32Error variable from s32 to int because return type of this function is int. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index d71034f54ee7..ebfcad49a151 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -663,7 +663,7 @@ static int set_channel(struct wiphy *wiphy, { u32 channelnum = 0; struct wilc_priv *priv; - s32 s32Error = 0; + int s32Error = 0; priv = wiphy_priv(wiphy); From dd739ea517c43cb902d5116923c182d3f72dc9a7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:20 +0900 Subject: [PATCH 1174/2431] staging: wilc1000: set_channel: rename s32Error This patch replaces s32Error with result to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index ebfcad49a151..8545c51a61ea 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -663,7 +663,7 @@ static int set_channel(struct wiphy *wiphy, { u32 channelnum = 0; struct wilc_priv *priv; - int s32Error = 0; + int result = 0; priv = wiphy_priv(wiphy); @@ -671,12 +671,12 @@ static int set_channel(struct wiphy *wiphy, PRINT_D(CFG80211_DBG, "Setting channel %d with frequency %d\n", channelnum, chandef->chan->center_freq); u8CurrChannel = channelnum; - s32Error = host_int_set_mac_chnl_num(priv->hWILCWFIDrv, channelnum); + result = host_int_set_mac_chnl_num(priv->hWILCWFIDrv, channelnum); - if (s32Error != 0) + if (result != 0) PRINT_ER("Error in setting channel %d\n", channelnum); - return s32Error; + return result; } /** From 866a2c247fb9eebe91a11cafd38fd4dd8b25efed Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:21 +0900 Subject: [PATCH 1175/2431] staging: wilc1000: rename u8CurrChannel This patch replaces u8CurrChannel with curr_channel to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 8545c51a61ea..04838f1aadc6 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -97,7 +97,7 @@ struct p2p_mgmt_data { /*Global variable used to state the current connected STA channel*/ u8 u8WLANChannel = INVALID_CHANNEL; -u8 u8CurrChannel; +u8 curr_channel; u8 u8P2P_oui[] = {0x50, 0x6f, 0x9A, 0x09}; u8 u8P2Plocalrandom = 0x01; @@ -670,7 +670,7 @@ static int set_channel(struct wiphy *wiphy, channelnum = ieee80211_frequency_to_channel(chandef->chan->center_freq); PRINT_D(CFG80211_DBG, "Setting channel %d with frequency %d\n", channelnum, chandef->chan->center_freq); - u8CurrChannel = channelnum; + curr_channel = channelnum; result = host_int_set_mac_chnl_num(priv->hWILCWFIDrv, channelnum); if (result != 0) @@ -996,7 +996,7 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, PRINT_INFO(CFG80211_DBG, "Group encryption value = %s\n Cipher Group = %s\n WPA version = %s\n", pcgroup_encrypt_val, pccipher_group, pcwpa_version); - u8CurrChannel = pstrNetworkInfo->u8channel; + curr_channel = pstrNetworkInfo->u8channel; if (!pstrWFIDrv->u8P2PConnect) { u8WLANChannel = pstrNetworkInfo->u8channel; @@ -2093,7 +2093,7 @@ void WILC_WFI_p2p_rx (struct net_device *dev, u8 *buff, u32 size) PRINT_D(GENERIC_DBG, "Rx Frame Type:%x\n", buff[FRAME_TYPE_ID]); /*Upper layer is informed that the frame is received on this freq*/ - s32Freq = ieee80211_channel_to_frequency(u8CurrChannel, IEEE80211_BAND_2GHZ); + s32Freq = ieee80211_channel_to_frequency(curr_channel, IEEE80211_BAND_2GHZ); if (ieee80211_is_action(buff[FRAME_TYPE_ID])) { PRINT_D(GENERIC_DBG, "Rx Action Frame Type: %x %x\n", buff[ACTION_SUBTYPE_ID], buff[P2P_PUB_ACTION_SUBTYPE]); @@ -2273,7 +2273,7 @@ static int remain_on_channel(struct wiphy *wiphy, return s32Error; } - u8CurrChannel = chan->hw_value; + curr_channel = chan->hw_value; /*Setting params needed by WILC_WFI_RemainOnChannelExpired()*/ priv->strRemainOnChanParams.pstrListenChan = chan; @@ -2394,7 +2394,7 @@ static int mgmt_tx(struct wiphy *wiphy, PRINT_D(GENERIC_DBG, "Setting channel: %d\n", chan->hw_value); host_int_set_mac_chnl_num(priv->hWILCWFIDrv, chan->hw_value); /*Save the current channel after we tune to it*/ - u8CurrChannel = chan->hw_value; + curr_channel = chan->hw_value; } else if (ieee80211_is_action(mgmt->frame_control)) { PRINT_D(GENERIC_DBG, "ACTION FRAME:%x\n", (u16)mgmt->frame_control); @@ -2409,7 +2409,7 @@ static int mgmt_tx(struct wiphy *wiphy, PRINT_D(GENERIC_DBG, "Setting channel: %d\n", chan->hw_value); host_int_set_mac_chnl_num(priv->hWILCWFIDrv, chan->hw_value); /*Save the current channel after we tune to it*/ - u8CurrChannel = chan->hw_value; + curr_channel = chan->hw_value; } switch (buf[ACTION_SUBTYPE_ID]) { case GAS_INTIAL_REQ: From 1de953e77b8c8b8cb6f734733cf20e95a1b0fbb8 Mon Sep 17 00:00:00 2001 From: Crt Mori Date: Fri, 2 Oct 2015 14:24:21 +0200 Subject: [PATCH 1176/2431] iio: mlx96014: Error checking from positive to negative Dan Carpenter reported a static checker report and after his mail I noticed that we actually return from function if positive value is obtained from i2c read. This was remainder from when code was not in separate function (which I changed during the review process). Static checker reported drivers/iio/temperature/mlx90614.c:167 mlx90614_iir_search() warn: this cast is a no-op which meant that cast before negating is useless. Dan also proposed a solution on nicer bit operation form. Also changed magic number to macro in process as that was confusing. Reported-by: Dan Carpenter Signed-off-by: Crt Mori Signed-off-by: Jonathan Cameron --- drivers/iio/temperature/mlx90614.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c index 3fd3ba426a84..a570c2e2aac3 100644 --- a/drivers/iio/temperature/mlx90614.c +++ b/drivers/iio/temperature/mlx90614.c @@ -72,6 +72,7 @@ #define MLX90614_CONST_SCALE 20 /* Scale in milliKelvin (0.02 * 1000) */ #define MLX90614_CONST_RAW_EMISSIVITY_MAX 65535 /* max value for emissivity */ #define MLX90614_CONST_EMISSIVITY_RESOLUTION 15259 /* 1/65535 ~ 0.000015259 */ +#define MLX90614_CONST_FIR 0x7 /* Fixed value for FIR part of low pass filter */ struct mlx90614_data { struct i2c_client *client; @@ -156,15 +157,16 @@ static inline s32 mlx90614_iir_search(const struct i2c_client *client, * changes */ ret = i2c_smbus_read_word_data(client, MLX90614_CONFIG); - if (ret > 0) + if (ret < 0) return ret; + ret &= ~MLX90614_CONFIG_FIR_MASK; + ret |= MLX90614_CONST_FIR << MLX90614_CONFIG_FIR_SHIFT; + ret &= ~MLX90614_CONFIG_IIR_MASK; + ret |= i << MLX90614_CONFIG_IIR_SHIFT; + /* Write changed values */ - ret = mlx90614_write_word(client, MLX90614_CONFIG, - (i << MLX90614_CONFIG_IIR_SHIFT) | - (((u16) ((0x7 << MLX90614_CONFIG_FIR_SHIFT) | - ((u16) ret & (~((u16) MLX90614_CONFIG_FIR_MASK))))) & - (~(u16) MLX90614_CONFIG_IIR_MASK))); + ret = mlx90614_write_word(client, MLX90614_CONFIG, ret); return ret; } From 6839c1b0700a79375639528985a0ec0fbd58cf9a Mon Sep 17 00:00:00 2001 From: Octavian Purdila Date: Wed, 23 Sep 2015 12:02:00 +0300 Subject: [PATCH 1177/2431] iio: fix drivers that use 0 as a valid IRQ in client->irq (part 2) Since commit dab472eb931bc291 ("i2c / ACPI: Use 0 to indicate that device does not have interrupt assigned") 0 is not a valid i2c client irq anymore, so change all driver's checks accordingly. The same issue occurs when the device is instantiated via device tree with no IRQ, or from the i2c sysfs interface, even before the patch above. Signed-off-by: Octavian Purdila Signed-off-by: Jonathan Cameron --- drivers/iio/accel/stk8312.c | 2 +- drivers/iio/accel/stk8ba50.c | 2 +- drivers/iio/light/stk3310.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/iio/accel/stk8312.c b/drivers/iio/accel/stk8312.c index c764af284c94..a57869400b1a 100644 --- a/drivers/iio/accel/stk8312.c +++ b/drivers/iio/accel/stk8312.c @@ -572,7 +572,7 @@ static int stk8312_probe(struct i2c_client *client, if (client->irq < 0) client->irq = stk8312_gpio_probe(client); - if (client->irq >= 0) { + if (client->irq > 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, stk8312_data_rdy_trig_poll, NULL, diff --git a/drivers/iio/accel/stk8ba50.c b/drivers/iio/accel/stk8ba50.c index 80f77d8704b5..a59f5d87ae3a 100644 --- a/drivers/iio/accel/stk8ba50.c +++ b/drivers/iio/accel/stk8ba50.c @@ -468,7 +468,7 @@ static int stk8ba50_probe(struct i2c_client *client, if (client->irq < 0) client->irq = stk8ba50_gpio_probe(client); - if (client->irq >= 0) { + if (client->irq > 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, stk8ba50_data_rdy_trig_poll, NULL, diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c index 013b21779db9..f45b06bcf6ae 100644 --- a/drivers/iio/light/stk3310.c +++ b/drivers/iio/light/stk3310.c @@ -632,7 +632,7 @@ static int stk3310_probe(struct i2c_client *client, } } - if (client->irq >= 0) { + if (client->irq > 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, stk3310_irq_handler, stk3310_irq_event_handler, From 0f0796509c07c1c7b77671c05b2955beb245e367 Mon Sep 17 00:00:00 2001 From: Octavian Purdila Date: Wed, 23 Sep 2015 12:02:01 +0300 Subject: [PATCH 1178/2431] iio: remove gpio interrupt probing from drivers that use a single interrupt Commit 845c877009cf014b ("i2c / ACPI: Assign IRQ for devices that have GpioInt automatically") automatically assigns the first ACPI GPIO interrupt in client->irq, so we can remove the probing code from drivers that use only one interrupt. Signed-off-by: Octavian Purdila Signed-off-by: Jonathan Cameron --- drivers/iio/accel/bmc150-accel.c | 30 ----------------------- drivers/iio/accel/kxcjk-1013.c | 34 +------------------------- drivers/iio/accel/mma9553.c | 29 ---------------------- drivers/iio/accel/stk8312.c | 28 --------------------- drivers/iio/accel/stk8ba50.c | 28 --------------------- drivers/iio/imu/kmx61.c | 28 --------------------- drivers/iio/light/stk3310.c | 33 ------------------------- drivers/iio/magnetometer/bmc150_magn.c | 29 ---------------------- drivers/iio/proximity/sx9500.c | 9 ------- 9 files changed, 1 insertion(+), 247 deletions(-) diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c index 0104cdef8709..6d19d46b3474 100644 --- a/drivers/iio/accel/bmc150-accel.c +++ b/drivers/iio/accel/bmc150-accel.c @@ -38,7 +38,6 @@ #define BMC150_ACCEL_DRV_NAME "bmc150_accel" #define BMC150_ACCEL_IRQ_NAME "bmc150_accel_event" -#define BMC150_ACCEL_GPIO_NAME "bmc150_accel_int" #define BMC150_ACCEL_REG_CHIP_ID 0x00 @@ -1360,32 +1359,6 @@ static irqreturn_t bmc150_accel_irq_handler(int irq, void *private) return IRQ_NONE; } -static int bmc150_accel_gpio_probe(struct i2c_client *client, - struct bmc150_accel_data *data) -{ - struct device *dev; - struct gpio_desc *gpio; - int ret; - - if (!client) - return -EINVAL; - - dev = &client->dev; - - /* data ready gpio interrupt pin */ - gpio = devm_gpiod_get_index(dev, BMC150_ACCEL_GPIO_NAME, 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "Failed: gpio get index\n"); - return PTR_ERR(gpio); - } - - ret = gpiod_to_irq(gpio); - - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); - - return ret; -} - static const struct { int intr; const char *name; @@ -1659,9 +1632,6 @@ static int bmc150_accel_probe(struct i2c_client *client, return ret; } - if (client->irq < 0) - client->irq = bmc150_accel_gpio_probe(client, data); - if (client->irq > 0) { ret = devm_request_threaded_irq( &client->dev, client->irq, diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c index 3292bc0c1d0e..18c1b06684c1 100644 --- a/drivers/iio/accel/kxcjk-1013.c +++ b/drivers/iio/accel/kxcjk-1013.c @@ -1162,35 +1162,6 @@ static const char *kxcjk1013_match_acpi_device(struct device *dev, return dev_name(dev); } -static int kxcjk1013_gpio_probe(struct i2c_client *client, - struct kxcjk1013_data *data) -{ - struct device *dev; - struct gpio_desc *gpio; - int ret; - - if (!client) - return -EINVAL; - - if (data->is_smo8500_device) - return -ENOTSUPP; - - dev = &client->dev; - - /* data ready gpio interrupt pin */ - gpio = devm_gpiod_get_index(dev, "kxcjk1013_int", 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "acpi gpio get index failed\n"); - return PTR_ERR(gpio); - } - - ret = gpiod_to_irq(gpio); - - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); - - return ret; -} - static int kxcjk1013_probe(struct i2c_client *client, const struct i2c_device_id *id) { @@ -1237,10 +1208,7 @@ static int kxcjk1013_probe(struct i2c_client *client, indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->info = &kxcjk1013_info; - if (client->irq < 0) - client->irq = kxcjk1013_gpio_probe(client, data); - - if (client->irq > 0) { + if (client->irq > 0 && !data->is_smo8500_device) { ret = devm_request_threaded_irq(&client->dev, client->irq, kxcjk1013_data_rdy_trig_poll, kxcjk1013_event_handler, diff --git a/drivers/iio/accel/mma9553.c b/drivers/iio/accel/mma9553.c index 771858cb67a1..9408ef3add58 100644 --- a/drivers/iio/accel/mma9553.c +++ b/drivers/iio/accel/mma9553.c @@ -26,7 +26,6 @@ #define MMA9553_DRV_NAME "mma9553" #define MMA9553_IRQ_NAME "mma9553_event" -#define MMA9553_GPIO_NAME "mma9553_int" /* Pedometer configuration registers (R/W) */ #define MMA9553_REG_CONF_SLEEPMIN 0x00 @@ -1073,31 +1072,6 @@ static irqreturn_t mma9553_event_handler(int irq, void *private) return IRQ_HANDLED; } -static int mma9553_gpio_probe(struct i2c_client *client) -{ - struct device *dev; - struct gpio_desc *gpio; - int ret; - - if (!client) - return -EINVAL; - - dev = &client->dev; - - /* data ready GPIO interrupt pin */ - gpio = devm_gpiod_get_index(dev, MMA9553_GPIO_NAME, 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "ACPI GPIO get index failed\n"); - return PTR_ERR(gpio); - } - - ret = gpiod_to_irq(gpio); - - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); - - return ret; -} - static const char *mma9553_match_acpi_device(struct device *dev) { const struct acpi_device_id *id; @@ -1146,9 +1120,6 @@ static int mma9553_probe(struct i2c_client *client, indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->info = &mma9553_info; - if (client->irq < 0) - client->irq = mma9553_gpio_probe(client); - if (client->irq > 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, mma9553_irq_handler, diff --git a/drivers/iio/accel/stk8312.c b/drivers/iio/accel/stk8312.c index a57869400b1a..85fe7f7247c1 100644 --- a/drivers/iio/accel/stk8312.c +++ b/drivers/iio/accel/stk8312.c @@ -50,7 +50,6 @@ #define STK8312_ALL_CHANNEL_SIZE 3 #define STK8312_DRIVER_NAME "stk8312" -#define STK8312_GPIO "stk8312_gpio" #define STK8312_IRQ_NAME "stk8312_event" /* @@ -504,30 +503,6 @@ static const struct iio_buffer_setup_ops stk8312_buffer_setup_ops = { .postdisable = stk8312_buffer_postdisable, }; -static int stk8312_gpio_probe(struct i2c_client *client) -{ - struct device *dev; - struct gpio_desc *gpio; - int ret; - - if (!client) - return -EINVAL; - - dev = &client->dev; - - /* data ready gpio interrupt pin */ - gpio = devm_gpiod_get_index(dev, STK8312_GPIO, 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "acpi gpio get index failed\n"); - return PTR_ERR(gpio); - } - - ret = gpiod_to_irq(gpio); - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); - - return ret; -} - static int stk8312_probe(struct i2c_client *client, const struct i2c_device_id *id) { @@ -569,9 +544,6 @@ static int stk8312_probe(struct i2c_client *client, if (ret < 0) return ret; - if (client->irq < 0) - client->irq = stk8312_gpio_probe(client); - if (client->irq > 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, stk8312_data_rdy_trig_poll, diff --git a/drivers/iio/accel/stk8ba50.c b/drivers/iio/accel/stk8ba50.c index a59f5d87ae3a..5709d9eb8f34 100644 --- a/drivers/iio/accel/stk8ba50.c +++ b/drivers/iio/accel/stk8ba50.c @@ -45,7 +45,6 @@ #define STK8BA50_ALL_CHANNEL_SIZE 6 #define STK8BA50_DRIVER_NAME "stk8ba50" -#define STK8BA50_GPIO "stk8ba50_gpio" #define STK8BA50_IRQ_NAME "stk8ba50_event" #define STK8BA50_SCALE_AVAIL "0.0384 0.0767 0.1534 0.3069" @@ -388,30 +387,6 @@ static const struct iio_buffer_setup_ops stk8ba50_buffer_setup_ops = { .postdisable = stk8ba50_buffer_postdisable, }; -static int stk8ba50_gpio_probe(struct i2c_client *client) -{ - struct device *dev; - struct gpio_desc *gpio; - int ret; - - if (!client) - return -EINVAL; - - dev = &client->dev; - - /* data ready gpio interrupt pin */ - gpio = devm_gpiod_get_index(dev, STK8BA50_GPIO, 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "acpi gpio get index failed\n"); - return PTR_ERR(gpio); - } - - ret = gpiod_to_irq(gpio); - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); - - return ret; -} - static int stk8ba50_probe(struct i2c_client *client, const struct i2c_device_id *id) { @@ -465,9 +440,6 @@ static int stk8ba50_probe(struct i2c_client *client, goto err_power_off; } - if (client->irq < 0) - client->irq = stk8ba50_gpio_probe(client); - if (client->irq > 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, stk8ba50_data_rdy_trig_poll, diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c index 82cdf5090fa7..dbf5e9936635 100644 --- a/drivers/iio/imu/kmx61.c +++ b/drivers/iio/imu/kmx61.c @@ -27,7 +27,6 @@ #include #define KMX61_DRV_NAME "kmx61" -#define KMX61_GPIO_NAME "kmx61_int" #define KMX61_IRQ_NAME "kmx61_event" #define KMX61_REG_WHO_AM_I 0x00 @@ -1243,30 +1242,6 @@ static const char *kmx61_match_acpi_device(struct device *dev) return dev_name(dev); } -static int kmx61_gpio_probe(struct i2c_client *client, struct kmx61_data *data) -{ - struct device *dev; - struct gpio_desc *gpio; - int ret; - - if (!client) - return -EINVAL; - - dev = &client->dev; - - /* data ready gpio interrupt pin */ - gpio = devm_gpiod_get_index(dev, KMX61_GPIO_NAME, 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "acpi gpio get index failed\n"); - return PTR_ERR(gpio); - } - - ret = gpiod_to_irq(gpio); - - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); - return ret; -} - static struct iio_dev *kmx61_indiodev_setup(struct kmx61_data *data, const struct iio_info *info, const struct iio_chan_spec *chan, @@ -1360,9 +1335,6 @@ static int kmx61_probe(struct i2c_client *client, if (ret < 0) return ret; - if (client->irq < 0) - client->irq = kmx61_gpio_probe(client, data); - if (client->irq > 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, kmx61_data_rdy_trig_poll, diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c index f45b06bcf6ae..42d334ba612e 100644 --- a/drivers/iio/light/stk3310.c +++ b/drivers/iio/light/stk3310.c @@ -47,7 +47,6 @@ #define STK3310_DRIVER_NAME "stk3310" #define STK3310_REGMAP_NAME "stk3310_regmap" #define STK3310_EVENT "stk3310_event" -#define STK3310_GPIO "stk3310_gpio" #define STK3310_SCALE_AVAILABLE "6.4 1.6 0.4 0.1" @@ -477,30 +476,6 @@ static int stk3310_init(struct iio_dev *indio_dev) return ret; } -static int stk3310_gpio_probe(struct i2c_client *client) -{ - struct device *dev; - struct gpio_desc *gpio; - int ret; - - if (!client) - return -EINVAL; - - dev = &client->dev; - - /* gpio interrupt pin */ - gpio = devm_gpiod_get_index(dev, STK3310_GPIO, 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "acpi gpio get index failed\n"); - return PTR_ERR(gpio); - } - - ret = gpiod_to_irq(gpio); - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); - - return ret; -} - static bool stk3310_is_volatile_reg(struct device *dev, unsigned int reg) { switch (reg) { @@ -624,14 +599,6 @@ static int stk3310_probe(struct i2c_client *client, if (ret < 0) return ret; - if (client->irq < 0) { - client->irq = stk3310_gpio_probe(client); - if (client->irq < 0) { - ret = client->irq; - goto err_standby; - } - } - if (client->irq > 0) { ret = devm_request_threaded_irq(&client->dev, client->irq, stk3310_irq_handler, diff --git a/drivers/iio/magnetometer/bmc150_magn.c b/drivers/iio/magnetometer/bmc150_magn.c index d8e614ca069f..1615b23d7b2a 100644 --- a/drivers/iio/magnetometer/bmc150_magn.c +++ b/drivers/iio/magnetometer/bmc150_magn.c @@ -37,7 +37,6 @@ #define BMC150_MAGN_DRV_NAME "bmc150_magn" #define BMC150_MAGN_IRQ_NAME "bmc150_magn_event" -#define BMC150_MAGN_GPIO_INT "interrupt" #define BMC150_MAGN_REG_CHIP_ID 0x40 #define BMC150_MAGN_CHIP_ID_VAL 0x32 @@ -833,31 +832,6 @@ static const struct iio_buffer_setup_ops bmc150_magn_buffer_setup_ops = { .postdisable = bmc150_magn_buffer_postdisable, }; -static int bmc150_magn_gpio_probe(struct i2c_client *client) -{ - struct device *dev; - struct gpio_desc *gpio; - int ret; - - if (!client) - return -EINVAL; - - dev = &client->dev; - - /* data ready GPIO interrupt pin */ - gpio = devm_gpiod_get_index(dev, BMC150_MAGN_GPIO_INT, 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "ACPI GPIO get index failed\n"); - return PTR_ERR(gpio); - } - - ret = gpiod_to_irq(gpio); - - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret); - - return ret; -} - static const char *bmc150_magn_match_acpi_device(struct device *dev) { const struct acpi_device_id *id; @@ -911,9 +885,6 @@ static int bmc150_magn_probe(struct i2c_client *client, indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->info = &bmc150_magn_info; - if (client->irq <= 0) - client->irq = bmc150_magn_gpio_probe(client); - if (client->irq > 0) { data->dready_trig = devm_iio_trigger_alloc(&client->dev, "%s-dev%d", diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c index 3d756bd8c703..66cd09a18786 100644 --- a/drivers/iio/proximity/sx9500.c +++ b/drivers/iio/proximity/sx9500.c @@ -868,21 +868,12 @@ static void sx9500_gpio_probe(struct i2c_client *client, struct sx9500_data *data) { struct device *dev; - struct gpio_desc *gpio; if (!client) return; dev = &client->dev; - if (client->irq <= 0) { - gpio = devm_gpiod_get_index(dev, SX9500_GPIO_INT, 0, GPIOD_IN); - if (IS_ERR(gpio)) - dev_err(dev, "gpio get irq failed\n"); - else - client->irq = gpiod_to_irq(gpio); - } - data->gpiod_rst = devm_gpiod_get_index(dev, SX9500_GPIO_RESET, 0, GPIOD_OUT_HIGH); if (IS_ERR(data->gpiod_rst)) { From 4011eda6139b315af3483c6de7dbdded3b07aedf Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 21 Sep 2015 12:55:13 +0200 Subject: [PATCH 1179/2431] iio: bmc150: Use i2c regmap This replaces all usage of direct i2c accesses with regmap accesses. Signed-off-by: Markus Pargmann Tested-by: Irina Tirdea Signed-off-by: Jonathan Cameron --- drivers/iio/accel/Kconfig | 2 + drivers/iio/accel/bmc150-accel.c | 225 +++++++++++++------------------ 2 files changed, 99 insertions(+), 128 deletions(-) diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index 8172ae5c3d0d..dd3e293c619b 100644 --- a/drivers/iio/accel/Kconfig +++ b/drivers/iio/accel/Kconfig @@ -22,6 +22,8 @@ config BMC150_ACCEL depends on I2C select IIO_BUFFER select IIO_TRIGGERED_BUFFER + select REGMAP + select REGMAP_I2C help Say yes here to build support for the following Bosch accelerometers: BMC150, BMI055, BMA250E, BMA222E, BMA255, BMA280. diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c index 6d19d46b3474..689b1e6671bf 100644 --- a/drivers/iio/accel/bmc150-accel.c +++ b/drivers/iio/accel/bmc150-accel.c @@ -35,6 +35,7 @@ #include #include #include +#include #define BMC150_ACCEL_DRV_NAME "bmc150_accel" #define BMC150_ACCEL_IRQ_NAME "bmc150_accel_event" @@ -185,6 +186,8 @@ enum bmc150_accel_trigger_id { struct bmc150_accel_data { struct i2c_client *client; + struct regmap *regmap; + struct device *dev; struct bmc150_accel_interrupt interrupts[BMC150_ACCEL_INTERRUPTS]; atomic_t active_intr; struct bmc150_accel_trigger triggers[BMC150_ACCEL_TRIGGERS]; @@ -241,6 +244,12 @@ static const struct { {500000, BMC150_ACCEL_SLEEP_500_MS}, {1000000, BMC150_ACCEL_SLEEP_1_SEC} }; +static const struct regmap_config bmc150_i2c_regmap_conf = { + .reg_bits = 8, + .val_bits = 8, + .max_register = 0x3f, +}; + static int bmc150_accel_set_mode(struct bmc150_accel_data *data, enum bmc150_power_modes mode, int dur_us) @@ -270,8 +279,7 @@ static int bmc150_accel_set_mode(struct bmc150_accel_data *data, dev_dbg(&data->client->dev, "Set Mode bits %x\n", lpw_bits); - ret = i2c_smbus_write_byte_data(data->client, - BMC150_ACCEL_REG_PMU_LPW, lpw_bits); + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_PMU_LPW, lpw_bits); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_pmu_lpw\n"); return ret; @@ -289,8 +297,7 @@ static int bmc150_accel_set_bw(struct bmc150_accel_data *data, int val, for (i = 0; i < ARRAY_SIZE(bmc150_accel_samp_freq_table); ++i) { if (bmc150_accel_samp_freq_table[i].val == val && bmc150_accel_samp_freq_table[i].val2 == val2) { - ret = i2c_smbus_write_byte_data( - data->client, + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_PMU_BW, bmc150_accel_samp_freq_table[i].bw_bits); if (ret < 0) @@ -307,26 +314,19 @@ static int bmc150_accel_set_bw(struct bmc150_accel_data *data, int val, static int bmc150_accel_update_slope(struct bmc150_accel_data *data) { - int ret, val; + int ret; - ret = i2c_smbus_write_byte_data(data->client, BMC150_ACCEL_REG_INT_6, + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_6, data->slope_thres); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_int_6\n"); return ret; } - ret = i2c_smbus_read_byte_data(data->client, BMC150_ACCEL_REG_INT_5); + ret = regmap_update_bits(data->regmap, BMC150_ACCEL_REG_INT_5, + BMC150_ACCEL_SLOPE_DUR_MASK, data->slope_dur); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_int_5\n"); - return ret; - } - - val = (ret & ~BMC150_ACCEL_SLOPE_DUR_MASK) | data->slope_dur; - ret = i2c_smbus_write_byte_data(data->client, BMC150_ACCEL_REG_INT_5, - val); - if (ret < 0) { - dev_err(&data->client->dev, "Error write reg_int_5\n"); + dev_err(&data->client->dev, "Error updating reg_int_5\n"); return ret; } @@ -469,38 +469,18 @@ static int bmc150_accel_set_interrupt(struct bmc150_accel_data *data, int i, return ret; /* map the interrupt to the appropriate pins */ - ret = i2c_smbus_read_byte_data(data->client, info->map_reg); + ret = regmap_update_bits(data->regmap, info->map_reg, info->map_bitmask, + (state ? info->map_bitmask : 0)); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_int_map\n"); - goto out_fix_power_state; - } - if (state) - ret |= info->map_bitmask; - else - ret &= ~info->map_bitmask; - - ret = i2c_smbus_write_byte_data(data->client, info->map_reg, - ret); - if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_map\n"); + dev_err(&data->client->dev, "Error updating reg_int_map\n"); goto out_fix_power_state; } /* enable/disable the interrupt */ - ret = i2c_smbus_read_byte_data(data->client, info->en_reg); + ret = regmap_update_bits(data->regmap, info->en_reg, info->en_bitmask, + (state ? info->en_bitmask : 0)); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_int_en\n"); - goto out_fix_power_state; - } - - if (state) - ret |= info->en_bitmask; - else - ret &= ~info->en_bitmask; - - ret = i2c_smbus_write_byte_data(data->client, info->en_reg, ret); - if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_en\n"); + dev_err(&data->client->dev, "Error updating reg_int_en\n"); goto out_fix_power_state; } @@ -522,8 +502,7 @@ static int bmc150_accel_set_scale(struct bmc150_accel_data *data, int val) for (i = 0; i < ARRAY_SIZE(data->chip_info->scale_table); ++i) { if (data->chip_info->scale_table[i].scale == val) { - ret = i2c_smbus_write_byte_data( - data->client, + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_PMU_RANGE, data->chip_info->scale_table[i].reg_range); if (ret < 0) { @@ -543,16 +522,17 @@ static int bmc150_accel_set_scale(struct bmc150_accel_data *data, int val) static int bmc150_accel_get_temp(struct bmc150_accel_data *data, int *val) { int ret; + unsigned int value; mutex_lock(&data->mutex); - ret = i2c_smbus_read_byte_data(data->client, BMC150_ACCEL_REG_TEMP); + ret = regmap_read(data->regmap, BMC150_ACCEL_REG_TEMP, &value); if (ret < 0) { dev_err(&data->client->dev, "Error reading reg_temp\n"); mutex_unlock(&data->mutex); return ret; } - *val = sign_extend32(ret, 7); + *val = sign_extend32(value, 7); mutex_unlock(&data->mutex); @@ -565,6 +545,7 @@ static int bmc150_accel_get_axis(struct bmc150_accel_data *data, { int ret; int axis = chan->scan_index; + unsigned int raw_val; mutex_lock(&data->mutex); ret = bmc150_accel_set_power_state(data, true); @@ -573,15 +554,15 @@ static int bmc150_accel_get_axis(struct bmc150_accel_data *data, return ret; } - ret = i2c_smbus_read_word_data(data->client, - BMC150_ACCEL_AXIS_TO_REG(axis)); + ret = regmap_bulk_read(data->regmap, BMC150_ACCEL_AXIS_TO_REG(axis), + &raw_val, 2); if (ret < 0) { dev_err(&data->client->dev, "Error reading axis %d\n", axis); bmc150_accel_set_power_state(data, false); mutex_unlock(&data->mutex); return ret; } - *val = sign_extend32(ret >> chan->scan_type.shift, + *val = sign_extend32(raw_val >> chan->scan_type.shift, chan->scan_type.realbits - 1); ret = bmc150_accel_set_power_state(data, false); mutex_unlock(&data->mutex); @@ -845,52 +826,34 @@ static int bmc150_accel_set_watermark(struct iio_dev *indio_dev, unsigned val) * We must read at least one full frame in one burst, otherwise the rest of the * frame data is discarded. */ -static int bmc150_accel_fifo_transfer(const struct i2c_client *client, +static int bmc150_accel_fifo_transfer(struct bmc150_accel_data *data, char *buffer, int samples) { int sample_length = 3 * 2; - u8 reg_fifo_data = BMC150_ACCEL_REG_FIFO_DATA; - int ret = -EIO; + int ret; + int total_length = samples * sample_length; + int i; + size_t step = regmap_get_raw_read_max(data->regmap); - if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { - struct i2c_msg msg[2] = { - { - .addr = client->addr, - .flags = 0, - .buf = ®_fifo_data, - .len = sizeof(reg_fifo_data), - }, - { - .addr = client->addr, - .flags = I2C_M_RD, - .buf = (u8 *)buffer, - .len = samples * sample_length, - } - }; + if (!step || step > total_length) + step = total_length; + else if (step < total_length) + step = sample_length; - ret = i2c_transfer(client->adapter, msg, 2); - if (ret != 2) - ret = -EIO; - else - ret = 0; - } else { - int i, step = I2C_SMBUS_BLOCK_MAX / sample_length; - - for (i = 0; i < samples * sample_length; i += step) { - ret = i2c_smbus_read_i2c_block_data(client, - reg_fifo_data, step, - &buffer[i]); - if (ret != step) { - ret = -EIO; - break; - } - - ret = 0; - } + /* + * Seems we have a bus with size limitation so we have to execute + * multiple reads + */ + for (i = 0; i < total_length; i += step) { + ret = regmap_raw_read(data->regmap, BMC150_ACCEL_REG_FIFO_DATA, + &buffer[i], step); + if (ret) + break; } if (ret) - dev_err(&client->dev, "Error transferring data from fifo\n"); + dev_err(data->dev, "Error transferring data from fifo in single steps of %zu\n", + step); return ret; } @@ -904,15 +867,15 @@ static int __bmc150_accel_fifo_flush(struct iio_dev *indio_dev, u16 buffer[BMC150_ACCEL_FIFO_LENGTH * 3]; int64_t tstamp; uint64_t sample_period; + unsigned int val; - ret = i2c_smbus_read_byte_data(data->client, - BMC150_ACCEL_REG_FIFO_STATUS); + ret = regmap_read(data->regmap, BMC150_ACCEL_REG_FIFO_STATUS, &val); if (ret < 0) { dev_err(&data->client->dev, "Error reading reg_fifo_status\n"); return ret; } - count = ret & 0x7F; + count = val & 0x7F; if (!count) return 0; @@ -951,7 +914,7 @@ static int __bmc150_accel_fifo_flush(struct iio_dev *indio_dev, if (samples && count > samples) count = samples; - ret = bmc150_accel_fifo_transfer(data->client, (u8 *)buffer, count); + ret = bmc150_accel_fifo_transfer(data, (u8 *)buffer, count); if (ret) return ret; @@ -1154,17 +1117,19 @@ static irqreturn_t bmc150_accel_trigger_handler(int irq, void *p) struct iio_dev *indio_dev = pf->indio_dev; struct bmc150_accel_data *data = iio_priv(indio_dev); int bit, ret, i = 0; + unsigned int raw_val; mutex_lock(&data->mutex); for_each_set_bit(bit, indio_dev->active_scan_mask, indio_dev->masklength) { - ret = i2c_smbus_read_word_data(data->client, - BMC150_ACCEL_AXIS_TO_REG(bit)); + ret = regmap_bulk_read(data->regmap, + BMC150_ACCEL_AXIS_TO_REG(bit), &raw_val, + 2); if (ret < 0) { mutex_unlock(&data->mutex); goto err_read; } - data->buffer[i++] = ret; + data->buffer[i++] = raw_val; } mutex_unlock(&data->mutex); @@ -1188,10 +1153,9 @@ static int bmc150_accel_trig_try_reen(struct iio_trigger *trig) mutex_lock(&data->mutex); /* clear any latched interrupt */ - ret = i2c_smbus_write_byte_data(data->client, - BMC150_ACCEL_REG_INT_RST_LATCH, - BMC150_ACCEL_INT_MODE_LATCH_INT | - BMC150_ACCEL_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_RST_LATCH, + BMC150_ACCEL_INT_MODE_LATCH_INT | + BMC150_ACCEL_INT_MODE_LATCH_RESET); mutex_unlock(&data->mutex); if (ret < 0) { dev_err(&data->client->dev, @@ -1248,20 +1212,20 @@ static int bmc150_accel_handle_roc_event(struct iio_dev *indio_dev) struct bmc150_accel_data *data = iio_priv(indio_dev); int dir; int ret; + unsigned int val; - ret = i2c_smbus_read_byte_data(data->client, - BMC150_ACCEL_REG_INT_STATUS_2); + ret = regmap_read(data->regmap, BMC150_ACCEL_REG_INT_STATUS_2, &val); if (ret < 0) { dev_err(&data->client->dev, "Error reading reg_int_status_2\n"); return ret; } - if (ret & BMC150_ACCEL_ANY_MOTION_BIT_SIGN) + if (val & BMC150_ACCEL_ANY_MOTION_BIT_SIGN) dir = IIO_EV_DIR_FALLING; else dir = IIO_EV_DIR_RISING; - if (ret & BMC150_ACCEL_ANY_MOTION_BIT_X) + if (val & BMC150_ACCEL_ANY_MOTION_BIT_X) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, @@ -1270,7 +1234,7 @@ static int bmc150_accel_handle_roc_event(struct iio_dev *indio_dev) dir), data->timestamp); - if (ret & BMC150_ACCEL_ANY_MOTION_BIT_Y) + if (val & BMC150_ACCEL_ANY_MOTION_BIT_Y) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, @@ -1279,7 +1243,7 @@ static int bmc150_accel_handle_roc_event(struct iio_dev *indio_dev) dir), data->timestamp); - if (ret & BMC150_ACCEL_ANY_MOTION_BIT_Z) + if (val & BMC150_ACCEL_ANY_MOTION_BIT_Z) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, @@ -1314,10 +1278,9 @@ static irqreturn_t bmc150_accel_irq_thread_handler(int irq, void *private) } if (ack) { - ret = i2c_smbus_write_byte_data(data->client, - BMC150_ACCEL_REG_INT_RST_LATCH, - BMC150_ACCEL_INT_MODE_LATCH_INT | - BMC150_ACCEL_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_RST_LATCH, + BMC150_ACCEL_INT_MODE_LATCH_INT | + BMC150_ACCEL_INT_MODE_LATCH_RESET); if (ret) dev_err(&data->client->dev, "Error writing reg_int_rst_latch\n"); @@ -1432,7 +1395,7 @@ static int bmc150_accel_fifo_set_mode(struct bmc150_accel_data *data) u8 reg = BMC150_ACCEL_REG_FIFO_CONFIG1; int ret; - ret = i2c_smbus_write_byte_data(data->client, reg, data->fifo_mode); + ret = regmap_write(data->regmap, reg, data->fifo_mode); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_fifo_config1\n"); return ret; @@ -1441,9 +1404,8 @@ static int bmc150_accel_fifo_set_mode(struct bmc150_accel_data *data) if (!data->fifo_mode) return 0; - ret = i2c_smbus_write_byte_data(data->client, - BMC150_ACCEL_REG_FIFO_CONFIG0, - data->watermark); + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_FIFO_CONFIG0, + data->watermark); if (ret < 0) dev_err(&data->client->dev, "Error writing reg_fifo_config0\n"); @@ -1530,23 +1492,25 @@ static const struct iio_buffer_setup_ops bmc150_accel_buffer_ops = { static int bmc150_accel_chip_init(struct bmc150_accel_data *data) { int ret, i; + unsigned int val; - ret = i2c_smbus_read_byte_data(data->client, BMC150_ACCEL_REG_CHIP_ID); + ret = regmap_read(data->regmap, BMC150_ACCEL_REG_CHIP_ID, &val); if (ret < 0) { - dev_err(&data->client->dev, "Error: Reading chip id\n"); + dev_err(&data->client->dev, + "Error: Reading chip id\n"); return ret; } - dev_dbg(&data->client->dev, "Chip Id %x\n", ret); + dev_dbg(&data->client->dev, "Chip Id %x\n", val); for (i = 0; i < ARRAY_SIZE(bmc150_accel_chip_info_tbl); i++) { - if (bmc150_accel_chip_info_tbl[i].chip_id == ret) { + if (bmc150_accel_chip_info_tbl[i].chip_id == val) { data->chip_info = &bmc150_accel_chip_info_tbl[i]; break; } } if (!data->chip_info) { - dev_err(&data->client->dev, "Unsupported chip %x\n", ret); + dev_err(&data->client->dev, "Invalid chip %x\n", val); return -ENODEV; } @@ -1560,11 +1524,11 @@ static int bmc150_accel_chip_init(struct bmc150_accel_data *data) return ret; /* Set Default Range */ - ret = i2c_smbus_write_byte_data(data->client, - BMC150_ACCEL_REG_PMU_RANGE, - BMC150_ACCEL_DEF_RANGE_4G); + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_PMU_RANGE, + BMC150_ACCEL_DEF_RANGE_4G); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_pmu_range\n"); + dev_err(&data->client->dev, + "Error writing reg_pmu_range\n"); return ret; } @@ -1578,10 +1542,9 @@ static int bmc150_accel_chip_init(struct bmc150_accel_data *data) return ret; /* Set default as latched interrupts */ - ret = i2c_smbus_write_byte_data(data->client, - BMC150_ACCEL_REG_INT_RST_LATCH, - BMC150_ACCEL_INT_MODE_LATCH_INT | - BMC150_ACCEL_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_RST_LATCH, + BMC150_ACCEL_INT_MODE_LATCH_INT | + BMC150_ACCEL_INT_MODE_LATCH_RESET); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_int_rst_latch\n"); @@ -1606,6 +1569,13 @@ static int bmc150_accel_probe(struct i2c_client *client, data = iio_priv(indio_dev); i2c_set_clientdata(client, indio_dev); data->client = client; + data->dev = &client->dev; + + data->regmap = devm_regmap_init_i2c(client, &bmc150_i2c_regmap_conf); + if (IS_ERR(data->regmap)) { + dev_err(&client->dev, "Failed to initialize i2c regmap\n"); + return PTR_ERR(data->regmap); + } if (id) name = id->name; @@ -1649,9 +1619,8 @@ static int bmc150_accel_probe(struct i2c_client *client, * want to use latch mode when we can to prevent interrupt * flooding. */ - ret = i2c_smbus_write_byte_data(data->client, - BMC150_ACCEL_REG_INT_RST_LATCH, - BMC150_ACCEL_INT_MODE_LATCH_RESET); + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_RST_LATCH, + BMC150_ACCEL_INT_MODE_LATCH_RESET); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_int_rst_latch\n"); goto err_buffer_cleanup; From 19c95d63e7768fe8909775188f5ef948f7ce324a Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 21 Sep 2015 12:55:14 +0200 Subject: [PATCH 1180/2431] iio: bcm150: Remove i2c_client from private data i2c_client struct is now only used for debugging output. We can use the device struct as well so we can remove all struct i2c_client usage. Signed-off-by: Markus Pargmann Tested-by: Irina Tirdea Signed-off-by: Jonathan Cameron --- drivers/iio/accel/bmc150-accel.c | 104 +++++++++++++++---------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c index 689b1e6671bf..85b81967dcaa 100644 --- a/drivers/iio/accel/bmc150-accel.c +++ b/drivers/iio/accel/bmc150-accel.c @@ -185,9 +185,9 @@ enum bmc150_accel_trigger_id { }; struct bmc150_accel_data { - struct i2c_client *client; struct regmap *regmap; struct device *dev; + int irq; struct bmc150_accel_interrupt interrupts[BMC150_ACCEL_INTERRUPTS]; atomic_t active_intr; struct bmc150_accel_trigger triggers[BMC150_ACCEL_TRIGGERS]; @@ -277,11 +277,11 @@ static int bmc150_accel_set_mode(struct bmc150_accel_data *data, lpw_bits = mode << BMC150_ACCEL_PMU_MODE_SHIFT; lpw_bits |= (dur_val << BMC150_ACCEL_PMU_BIT_SLEEP_DUR_SHIFT); - dev_dbg(&data->client->dev, "Set Mode bits %x\n", lpw_bits); + dev_dbg(data->dev, "Set Mode bits %x\n", lpw_bits); ret = regmap_write(data->regmap, BMC150_ACCEL_REG_PMU_LPW, lpw_bits); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_pmu_lpw\n"); + dev_err(data->dev, "Error writing reg_pmu_lpw\n"); return ret; } @@ -319,18 +319,18 @@ static int bmc150_accel_update_slope(struct bmc150_accel_data *data) ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_6, data->slope_thres); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_6\n"); + dev_err(data->dev, "Error writing reg_int_6\n"); return ret; } ret = regmap_update_bits(data->regmap, BMC150_ACCEL_REG_INT_5, BMC150_ACCEL_SLOPE_DUR_MASK, data->slope_dur); if (ret < 0) { - dev_err(&data->client->dev, "Error updating reg_int_5\n"); + dev_err(data->dev, "Error updating reg_int_5\n"); return ret; } - dev_dbg(&data->client->dev, "%s: %x %x\n", __func__, data->slope_thres, + dev_dbg(data->dev, "%s: %x %x\n", __func__, data->slope_thres, data->slope_dur); return ret; @@ -379,17 +379,17 @@ static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on) int ret; if (on) { - ret = pm_runtime_get_sync(&data->client->dev); + ret = pm_runtime_get_sync(data->dev); } else { - pm_runtime_mark_last_busy(&data->client->dev); - ret = pm_runtime_put_autosuspend(&data->client->dev); + pm_runtime_mark_last_busy(data->dev); + ret = pm_runtime_put_autosuspend(data->dev); } if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Failed: bmc150_accel_set_power_state for %d\n", on); if (on) - pm_runtime_put_noidle(&data->client->dev); + pm_runtime_put_noidle(data->dev); return ret; } @@ -472,7 +472,7 @@ static int bmc150_accel_set_interrupt(struct bmc150_accel_data *data, int i, ret = regmap_update_bits(data->regmap, info->map_reg, info->map_bitmask, (state ? info->map_bitmask : 0)); if (ret < 0) { - dev_err(&data->client->dev, "Error updating reg_int_map\n"); + dev_err(data->dev, "Error updating reg_int_map\n"); goto out_fix_power_state; } @@ -480,7 +480,7 @@ static int bmc150_accel_set_interrupt(struct bmc150_accel_data *data, int i, ret = regmap_update_bits(data->regmap, info->en_reg, info->en_bitmask, (state ? info->en_bitmask : 0)); if (ret < 0) { - dev_err(&data->client->dev, "Error updating reg_int_en\n"); + dev_err(data->dev, "Error updating reg_int_en\n"); goto out_fix_power_state; } @@ -506,7 +506,7 @@ static int bmc150_accel_set_scale(struct bmc150_accel_data *data, int val) BMC150_ACCEL_REG_PMU_RANGE, data->chip_info->scale_table[i].reg_range); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing pmu_range\n"); return ret; } @@ -528,7 +528,7 @@ static int bmc150_accel_get_temp(struct bmc150_accel_data *data, int *val) ret = regmap_read(data->regmap, BMC150_ACCEL_REG_TEMP, &value); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_temp\n"); + dev_err(data->dev, "Error reading reg_temp\n"); mutex_unlock(&data->mutex); return ret; } @@ -557,7 +557,7 @@ static int bmc150_accel_get_axis(struct bmc150_accel_data *data, ret = regmap_bulk_read(data->regmap, BMC150_ACCEL_AXIS_TO_REG(axis), &raw_val, 2); if (ret < 0) { - dev_err(&data->client->dev, "Error reading axis %d\n", axis); + dev_err(data->dev, "Error reading axis %d\n", axis); bmc150_accel_set_power_state(data, false); mutex_unlock(&data->mutex); return ret; @@ -871,7 +871,7 @@ static int __bmc150_accel_fifo_flush(struct iio_dev *indio_dev, ret = regmap_read(data->regmap, BMC150_ACCEL_REG_FIFO_STATUS, &val); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_fifo_status\n"); + dev_err(data->dev, "Error reading reg_fifo_status\n"); return ret; } @@ -1158,7 +1158,7 @@ static int bmc150_accel_trig_try_reen(struct iio_trigger *trig) BMC150_ACCEL_INT_MODE_LATCH_RESET); mutex_unlock(&data->mutex); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_int_rst_latch\n"); return ret; } @@ -1216,7 +1216,7 @@ static int bmc150_accel_handle_roc_event(struct iio_dev *indio_dev) ret = regmap_read(data->regmap, BMC150_ACCEL_REG_INT_STATUS_2, &val); if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_int_status_2\n"); + dev_err(data->dev, "Error reading reg_int_status_2\n"); return ret; } @@ -1282,8 +1282,7 @@ static irqreturn_t bmc150_accel_irq_thread_handler(int irq, void *private) BMC150_ACCEL_INT_MODE_LATCH_INT | BMC150_ACCEL_INT_MODE_LATCH_RESET); if (ret) - dev_err(&data->client->dev, - "Error writing reg_int_rst_latch\n"); + dev_err(data->dev, "Error writing reg_int_rst_latch\n"); ret = IRQ_HANDLED; } else { @@ -1359,7 +1358,7 @@ static int bmc150_accel_triggers_setup(struct iio_dev *indio_dev, for (i = 0; i < BMC150_ACCEL_TRIGGERS; i++) { struct bmc150_accel_trigger *t = &data->triggers[i]; - t->indio_trig = devm_iio_trigger_alloc(&data->client->dev, + t->indio_trig = devm_iio_trigger_alloc(data->dev, bmc150_accel_triggers[i].name, indio_dev->name, indio_dev->id); @@ -1368,7 +1367,7 @@ static int bmc150_accel_triggers_setup(struct iio_dev *indio_dev, break; } - t->indio_trig->dev.parent = &data->client->dev; + t->indio_trig->dev.parent = data->dev; t->indio_trig->ops = &bmc150_accel_trigger_ops; t->intr = bmc150_accel_triggers[i].intr; t->data = data; @@ -1397,7 +1396,7 @@ static int bmc150_accel_fifo_set_mode(struct bmc150_accel_data *data) ret = regmap_write(data->regmap, reg, data->fifo_mode); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_fifo_config1\n"); + dev_err(data->dev, "Error writing reg_fifo_config1\n"); return ret; } @@ -1407,7 +1406,7 @@ static int bmc150_accel_fifo_set_mode(struct bmc150_accel_data *data) ret = regmap_write(data->regmap, BMC150_ACCEL_REG_FIFO_CONFIG0, data->watermark); if (ret < 0) - dev_err(&data->client->dev, "Error writing reg_fifo_config0\n"); + dev_err(data->dev, "Error writing reg_fifo_config0\n"); return ret; } @@ -1496,12 +1495,12 @@ static int bmc150_accel_chip_init(struct bmc150_accel_data *data) ret = regmap_read(data->regmap, BMC150_ACCEL_REG_CHIP_ID, &val); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error: Reading chip id\n"); return ret; } - dev_dbg(&data->client->dev, "Chip Id %x\n", val); + dev_dbg(data->dev, "Chip Id %x\n", val); for (i = 0; i < ARRAY_SIZE(bmc150_accel_chip_info_tbl); i++) { if (bmc150_accel_chip_info_tbl[i].chip_id == val) { data->chip_info = &bmc150_accel_chip_info_tbl[i]; @@ -1510,7 +1509,7 @@ static int bmc150_accel_chip_init(struct bmc150_accel_data *data) } if (!data->chip_info) { - dev_err(&data->client->dev, "Invalid chip %x\n", val); + dev_err(data->dev, "Invalid chip %x\n", val); return -ENODEV; } @@ -1527,7 +1526,7 @@ static int bmc150_accel_chip_init(struct bmc150_accel_data *data) ret = regmap_write(data->regmap, BMC150_ACCEL_REG_PMU_RANGE, BMC150_ACCEL_DEF_RANGE_4G); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_pmu_range\n"); return ret; } @@ -1546,7 +1545,7 @@ static int bmc150_accel_chip_init(struct bmc150_accel_data *data) BMC150_ACCEL_INT_MODE_LATCH_INT | BMC150_ACCEL_INT_MODE_LATCH_RESET); if (ret < 0) { - dev_err(&data->client->dev, + dev_err(data->dev, "Error writing reg_int_rst_latch\n"); return ret; } @@ -1561,6 +1560,7 @@ static int bmc150_accel_probe(struct i2c_client *client, struct iio_dev *indio_dev; int ret; const char *name = NULL; + struct device *dev; indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); if (!indio_dev) @@ -1568,12 +1568,13 @@ static int bmc150_accel_probe(struct i2c_client *client, data = iio_priv(indio_dev); i2c_set_clientdata(client, indio_dev); - data->client = client; data->dev = &client->dev; + dev = &client->dev; + data->irq = client->irq; data->regmap = devm_regmap_init_i2c(client, &bmc150_i2c_regmap_conf); if (IS_ERR(data->regmap)) { - dev_err(&client->dev, "Failed to initialize i2c regmap\n"); + dev_err(dev, "Failed to initialize i2c regmap\n"); return PTR_ERR(data->regmap); } @@ -1586,7 +1587,7 @@ static int bmc150_accel_probe(struct i2c_client *client, mutex_init(&data->mutex); - indio_dev->dev.parent = &client->dev; + indio_dev->dev.parent = dev; indio_dev->channels = data->chip_info->channels; indio_dev->num_channels = data->chip_info->num_channels; indio_dev->name = name ? name : data->chip_info->name; @@ -1598,13 +1599,13 @@ static int bmc150_accel_probe(struct i2c_client *client, bmc150_accel_trigger_handler, &bmc150_accel_buffer_ops); if (ret < 0) { - dev_err(&client->dev, "Failed: iio triggered buffer setup\n"); + dev_err(data->dev, "Failed: iio triggered buffer setup\n"); return ret; } - if (client->irq > 0) { + if (data->irq > 0) { ret = devm_request_threaded_irq( - &client->dev, client->irq, + data->dev, data->irq, bmc150_accel_irq_handler, bmc150_accel_irq_thread_handler, IRQF_TRIGGER_RISING, @@ -1622,7 +1623,7 @@ static int bmc150_accel_probe(struct i2c_client *client, ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_RST_LATCH, BMC150_ACCEL_INT_MODE_LATCH_RESET); if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_int_rst_latch\n"); + dev_err(data->dev, "Error writing reg_int_rst_latch\n"); goto err_buffer_cleanup; } @@ -1643,18 +1644,17 @@ static int bmc150_accel_probe(struct i2c_client *client, ret = iio_device_register(indio_dev); if (ret < 0) { - dev_err(&client->dev, "Unable to register iio device\n"); + dev_err(data->dev, "Unable to register iio device\n"); goto err_trigger_unregister; } - ret = pm_runtime_set_active(&client->dev); + ret = pm_runtime_set_active(dev); if (ret) goto err_iio_unregister; - pm_runtime_enable(&client->dev); - pm_runtime_set_autosuspend_delay(&client->dev, - BMC150_AUTO_SUSPEND_DELAY_MS); - pm_runtime_use_autosuspend(&client->dev); + pm_runtime_enable(dev); + pm_runtime_set_autosuspend_delay(dev, BMC150_AUTO_SUSPEND_DELAY_MS); + pm_runtime_use_autosuspend(dev); return 0; @@ -1673,9 +1673,9 @@ static int bmc150_accel_remove(struct i2c_client *client) struct iio_dev *indio_dev = i2c_get_clientdata(client); struct bmc150_accel_data *data = iio_priv(indio_dev); - pm_runtime_disable(&client->dev); - pm_runtime_set_suspended(&client->dev); - pm_runtime_put_noidle(&client->dev); + pm_runtime_disable(data->dev); + pm_runtime_set_suspended(data->dev); + pm_runtime_put_noidle(data->dev); iio_device_unregister(indio_dev); @@ -1693,7 +1693,7 @@ static int bmc150_accel_remove(struct i2c_client *client) #ifdef CONFIG_PM_SLEEP static int bmc150_accel_suspend(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev)); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmc150_accel_data *data = iio_priv(indio_dev); mutex_lock(&data->mutex); @@ -1705,7 +1705,7 @@ static int bmc150_accel_suspend(struct device *dev) static int bmc150_accel_resume(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev)); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmc150_accel_data *data = iio_priv(indio_dev); mutex_lock(&data->mutex); @@ -1721,11 +1721,11 @@ static int bmc150_accel_resume(struct device *dev) #ifdef CONFIG_PM static int bmc150_accel_runtime_suspend(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev)); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmc150_accel_data *data = iio_priv(indio_dev); int ret; - dev_dbg(&data->client->dev, __func__); + dev_dbg(data->dev, __func__); ret = bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_SUSPEND, 0); if (ret < 0) return -EAGAIN; @@ -1735,12 +1735,12 @@ static int bmc150_accel_runtime_suspend(struct device *dev) static int bmc150_accel_runtime_resume(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev)); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmc150_accel_data *data = iio_priv(indio_dev); int ret; int sleep_val; - dev_dbg(&data->client->dev, __func__); + dev_dbg(data->dev, __func__); ret = bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0); if (ret < 0) From 55637c38377a301cd0768cee73021e43d05de543 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 21 Sep 2015 12:55:15 +0200 Subject: [PATCH 1181/2431] iio: bmc150: Split the driver into core and i2c Signed-off-by: Markus Pargmann Tested-by: Irina Tirdea Signed-off-by: Jonathan Cameron --- drivers/iio/accel/Kconfig | 9 +- drivers/iio/accel/Makefile | 3 +- .../{bmc150-accel.c => bmc150-accel-core.c} | 86 +++------------ drivers/iio/accel/bmc150-accel-i2c.c | 102 ++++++++++++++++++ drivers/iio/accel/bmc150-accel.h | 20 ++++ 5 files changed, 146 insertions(+), 74 deletions(-) rename drivers/iio/accel/{bmc150-accel.c => bmc150-accel-core.c} (95%) create mode 100644 drivers/iio/accel/bmc150-accel-i2c.c create mode 100644 drivers/iio/accel/bmc150-accel.h diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index dd3e293c619b..bb00770b63bd 100644 --- a/drivers/iio/accel/Kconfig +++ b/drivers/iio/accel/Kconfig @@ -19,21 +19,22 @@ config BMA180 config BMC150_ACCEL tristate "Bosch BMC150 Accelerometer Driver" - depends on I2C select IIO_BUFFER select IIO_TRIGGERED_BUFFER select REGMAP - select REGMAP_I2C + select BMC150_ACCEL_I2C if I2C help Say yes here to build support for the following Bosch accelerometers: BMC150, BMI055, BMA250E, BMA222E, BMA255, BMA280. - Currently this only supports the device via an i2c interface. - This is a combo module with both accelerometer and magnetometer. This driver is only implementing accelerometer part, which has its own address and register map. +config BMC150_ACCEL_I2C + tristate + select REGMAP_I2C + config HID_SENSOR_ACCEL_3D depends on HID_SENSOR_HUB select IIO_BUFFER diff --git a/drivers/iio/accel/Makefile b/drivers/iio/accel/Makefile index 020dda0ae508..80764363f7b8 100644 --- a/drivers/iio/accel/Makefile +++ b/drivers/iio/accel/Makefile @@ -4,7 +4,8 @@ # When adding new entries keep the list in alphabetical order obj-$(CONFIG_BMA180) += bma180.o -obj-$(CONFIG_BMC150_ACCEL) += bmc150-accel.o +obj-$(CONFIG_BMC150_ACCEL) += bmc150-accel-core.o +obj-$(CONFIG_BMC150_ACCEL_I2C) += bmc150-accel-i2c.o obj-$(CONFIG_HID_SENSOR_ACCEL_3D) += hid-sensor-accel-3d.o obj-$(CONFIG_KXCJK1013) += kxcjk-1013.o obj-$(CONFIG_KXSD9) += kxsd9.o diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel-core.c similarity index 95% rename from drivers/iio/accel/bmc150-accel.c rename to drivers/iio/accel/bmc150-accel-core.c index 85b81967dcaa..2d33f1e821db 100644 --- a/drivers/iio/accel/bmc150-accel.c +++ b/drivers/iio/accel/bmc150-accel-core.c @@ -37,6 +37,8 @@ #include #include +#include "bmc150-accel.h" + #define BMC150_ACCEL_DRV_NAME "bmc150_accel" #define BMC150_ACCEL_IRQ_NAME "bmc150_accel_event" @@ -1014,15 +1016,6 @@ static const struct iio_chan_spec bmc150_accel_channels[] = static const struct iio_chan_spec bma280_accel_channels[] = BMC150_ACCEL_CHANNELS(14); -enum { - bmc150, - bmi055, - bma255, - bma250e, - bma222e, - bma280, -}; - static const struct bmc150_accel_chip_info bmc150_accel_chip_info_tbl[] = { [bmc150] = { .name = "BMC150A", @@ -1553,33 +1546,23 @@ static int bmc150_accel_chip_init(struct bmc150_accel_data *data) return 0; } -static int bmc150_accel_probe(struct i2c_client *client, - const struct i2c_device_id *id) +int bmc150_accel_core_probe(struct device *dev, struct regmap *regmap, int irq, + const char *name, bool block_supported) { struct bmc150_accel_data *data; struct iio_dev *indio_dev; int ret; - const char *name = NULL; - struct device *dev; - indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); + indio_dev = devm_iio_device_alloc(dev, sizeof(*data)); if (!indio_dev) return -ENOMEM; data = iio_priv(indio_dev); - i2c_set_clientdata(client, indio_dev); - data->dev = &client->dev; - dev = &client->dev; - data->irq = client->irq; + dev_set_drvdata(dev, indio_dev); + data->dev = dev; + data->irq = irq; - data->regmap = devm_regmap_init_i2c(client, &bmc150_i2c_regmap_conf); - if (IS_ERR(data->regmap)) { - dev_err(dev, "Failed to initialize i2c regmap\n"); - return PTR_ERR(data->regmap); - } - - if (id) - name = id->name; + data->regmap = regmap; ret = bmc150_accel_chip_init(data); if (ret < 0) @@ -1633,9 +1616,7 @@ static int bmc150_accel_probe(struct i2c_client *client, if (ret) goto err_buffer_cleanup; - if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C) || - i2c_check_functionality(client->adapter, - I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + if (block_supported) { indio_dev->modes |= INDIO_BUFFER_SOFTWARE; indio_dev->info = &bmc150_accel_info_fifo; indio_dev->buffer->attrs = bmc150_accel_fifo_attributes; @@ -1644,7 +1625,7 @@ static int bmc150_accel_probe(struct i2c_client *client, ret = iio_device_register(indio_dev); if (ret < 0) { - dev_err(data->dev, "Unable to register iio device\n"); + dev_err(dev, "Unable to register iio device\n"); goto err_trigger_unregister; } @@ -1667,10 +1648,11 @@ err_buffer_cleanup: return ret; } +EXPORT_SYMBOL_GPL(bmc150_accel_core_probe); -static int bmc150_accel_remove(struct i2c_client *client) +int bmc150_accel_core_remove(struct device *dev) { - struct iio_dev *indio_dev = i2c_get_clientdata(client); + struct iio_dev *indio_dev = dev_get_drvdata(dev); struct bmc150_accel_data *data = iio_priv(indio_dev); pm_runtime_disable(data->dev); @@ -1689,6 +1671,7 @@ static int bmc150_accel_remove(struct i2c_client *client) return 0; } +EXPORT_SYMBOL_GPL(bmc150_accel_core_remove); #ifdef CONFIG_PM_SLEEP static int bmc150_accel_suspend(struct device *dev) @@ -1759,47 +1742,12 @@ static int bmc150_accel_runtime_resume(struct device *dev) } #endif -static const struct dev_pm_ops bmc150_accel_pm_ops = { +const struct dev_pm_ops bmc150_accel_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(bmc150_accel_suspend, bmc150_accel_resume) SET_RUNTIME_PM_OPS(bmc150_accel_runtime_suspend, bmc150_accel_runtime_resume, NULL) }; - -static const struct acpi_device_id bmc150_accel_acpi_match[] = { - {"BSBA0150", bmc150}, - {"BMC150A", bmc150}, - {"BMI055A", bmi055}, - {"BMA0255", bma255}, - {"BMA250E", bma250e}, - {"BMA222E", bma222e}, - {"BMA0280", bma280}, - { }, -}; -MODULE_DEVICE_TABLE(acpi, bmc150_accel_acpi_match); - -static const struct i2c_device_id bmc150_accel_id[] = { - {"bmc150_accel", bmc150}, - {"bmi055_accel", bmi055}, - {"bma255", bma255}, - {"bma250e", bma250e}, - {"bma222e", bma222e}, - {"bma280", bma280}, - {} -}; - -MODULE_DEVICE_TABLE(i2c, bmc150_accel_id); - -static struct i2c_driver bmc150_accel_driver = { - .driver = { - .name = BMC150_ACCEL_DRV_NAME, - .acpi_match_table = ACPI_PTR(bmc150_accel_acpi_match), - .pm = &bmc150_accel_pm_ops, - }, - .probe = bmc150_accel_probe, - .remove = bmc150_accel_remove, - .id_table = bmc150_accel_id, -}; -module_i2c_driver(bmc150_accel_driver); +EXPORT_SYMBOL_GPL(bmc150_accel_pm_ops); MODULE_AUTHOR("Srinivas Pandruvada "); MODULE_LICENSE("GPL v2"); diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c new file mode 100644 index 000000000000..b41404ba32fc --- /dev/null +++ b/drivers/iio/accel/bmc150-accel-i2c.c @@ -0,0 +1,102 @@ +/* + * 3-axis accelerometer driver supporting following I2C Bosch-Sensortec chips: + * - BMC150 + * - BMI055 + * - BMA255 + * - BMA250E + * - BMA222E + * - BMA280 + * + * Copyright (c) 2014, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + */ + +#include +#include +#include +#include +#include +#include + +#include "bmc150-accel.h" + +static const struct regmap_config bmc150_i2c_regmap_conf = { + .reg_bits = 8, + .val_bits = 8, +}; + +static int bmc150_accel_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct regmap *regmap; + const char *name = NULL; + bool block_supported = + i2c_check_functionality(client->adapter, I2C_FUNC_I2C) || + i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_I2C_BLOCK); + + regmap = devm_regmap_init_i2c(client, &bmc150_i2c_regmap_conf); + if (IS_ERR(regmap)) { + dev_err(&client->dev, "Failed to initialize i2c regmap\n"); + return PTR_ERR(regmap); + } + + if (id) + name = id->name; + + return bmc150_accel_core_probe(&client->dev, regmap, client->irq, name, + block_supported); +} + +static int bmc150_accel_remove(struct i2c_client *client) +{ + return bmc150_accel_core_remove(&client->dev); +} + +static const struct acpi_device_id bmc150_accel_acpi_match[] = { + {"BSBA0150", bmc150}, + {"BMC150A", bmc150}, + {"BMI055A", bmi055}, + {"BMA0255", bma255}, + {"BMA250E", bma250e}, + {"BMA222E", bma222e}, + {"BMA0280", bma280}, + { }, +}; +MODULE_DEVICE_TABLE(acpi, bmc150_accel_acpi_match); + +static const struct i2c_device_id bmc150_accel_id[] = { + {"bmc150_accel", bmc150}, + {"bmi055_accel", bmi055}, + {"bma255", bma255}, + {"bma250e", bma250e}, + {"bma222e", bma222e}, + {"bma280", bma280}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, bmc150_accel_id); + +static struct i2c_driver bmc150_accel_driver = { + .driver = { + .name = "bmc150_accel_i2c", + .acpi_match_table = ACPI_PTR(bmc150_accel_acpi_match), + .pm = &bmc150_accel_pm_ops, + }, + .probe = bmc150_accel_probe, + .remove = bmc150_accel_remove, + .id_table = bmc150_accel_id, +}; +module_i2c_driver(bmc150_accel_driver); + +MODULE_AUTHOR("Srinivas Pandruvada "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("BMC150 I2C accelerometer driver"); diff --git a/drivers/iio/accel/bmc150-accel.h b/drivers/iio/accel/bmc150-accel.h new file mode 100644 index 000000000000..ba0335987f94 --- /dev/null +++ b/drivers/iio/accel/bmc150-accel.h @@ -0,0 +1,20 @@ +#ifndef _BMC150_ACCEL_H_ +#define _BMC150_ACCEL_H_ + +struct regmap; + +enum { + bmc150, + bmi055, + bma255, + bma250e, + bma222e, + bma280, +}; + +int bmc150_accel_core_probe(struct device *dev, struct regmap *regmap, int irq, + const char *name, bool block_supported); +int bmc150_accel_core_remove(struct device *dev); +extern const struct dev_pm_ops bmc150_accel_pm_ops; + +#endif /* _BMC150_ACCEL_H_ */ From f9ab96e212808123fbd9072d580a59194e5cd410 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 21 Sep 2015 12:55:16 +0200 Subject: [PATCH 1182/2431] iio: bmc150: Add SPI driver Add a simple SPI driver which initializes the spi regmap for the bmc150 core driver. Signed-off-by: Markus Pargmann Signed-off-by: Jonathan Cameron --- drivers/iio/accel/Kconfig | 5 ++ drivers/iio/accel/Makefile | 1 + drivers/iio/accel/bmc150-accel-spi.c | 91 ++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 drivers/iio/accel/bmc150-accel-spi.c diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index bb00770b63bd..969428dd6329 100644 --- a/drivers/iio/accel/Kconfig +++ b/drivers/iio/accel/Kconfig @@ -23,6 +23,7 @@ config BMC150_ACCEL select IIO_TRIGGERED_BUFFER select REGMAP select BMC150_ACCEL_I2C if I2C + select BMC150_ACCEL_SPI if SPI help Say yes here to build support for the following Bosch accelerometers: BMC150, BMI055, BMA250E, BMA222E, BMA255, BMA280. @@ -35,6 +36,10 @@ config BMC150_ACCEL_I2C tristate select REGMAP_I2C +config BMC150_ACCEL_SPI + tristate + select REGMAP_SPI + config HID_SENSOR_ACCEL_3D depends on HID_SENSOR_HUB select IIO_BUFFER diff --git a/drivers/iio/accel/Makefile b/drivers/iio/accel/Makefile index 80764363f7b8..7925f166e6e9 100644 --- a/drivers/iio/accel/Makefile +++ b/drivers/iio/accel/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_BMA180) += bma180.o obj-$(CONFIG_BMC150_ACCEL) += bmc150-accel-core.o obj-$(CONFIG_BMC150_ACCEL_I2C) += bmc150-accel-i2c.o +obj-$(CONFIG_BMC150_ACCEL_SPI) += bmc150-accel-spi.o obj-$(CONFIG_HID_SENSOR_ACCEL_3D) += hid-sensor-accel-3d.o obj-$(CONFIG_KXCJK1013) += kxcjk-1013.o obj-$(CONFIG_KXSD9) += kxsd9.o diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c new file mode 100644 index 000000000000..16b66f2a7204 --- /dev/null +++ b/drivers/iio/accel/bmc150-accel-spi.c @@ -0,0 +1,91 @@ +/* + * 3-axis accelerometer driver supporting SPI Bosch-Sensortec accelerometer chip + * Copyright © 2015 Pengutronix, Markus Pargmann + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include +#include +#include +#include +#include + +#include "bmc150-accel.h" + +static const struct regmap_config bmc150_spi_regmap_conf = { + .reg_bits = 8, + .val_bits = 8, + .max_register = 0x3f, +}; + +static int bmc150_accel_probe(struct spi_device *spi) +{ + struct regmap *regmap; + const struct spi_device_id *id = spi_get_device_id(spi); + + regmap = devm_regmap_init_spi(spi, &bmc150_spi_regmap_conf); + if (IS_ERR(regmap)) { + dev_err(&spi->dev, "Failed to initialize spi regmap\n"); + return PTR_ERR(regmap); + } + + return bmc150_accel_core_probe(&spi->dev, regmap, spi->irq, id->name, + true); +} + +static int bmc150_accel_remove(struct spi_device *spi) +{ + return bmc150_accel_core_remove(&spi->dev); +} + +static const struct acpi_device_id bmc150_accel_acpi_match[] = { + {"BSBA0150", bmc150}, + {"BMC150A", bmc150}, + {"BMI055A", bmi055}, + {"BMA0255", bma255}, + {"BMA250E", bma250e}, + {"BMA222E", bma222e}, + {"BMA0280", bma280}, + { }, +}; +MODULE_DEVICE_TABLE(acpi, bmc150_accel_acpi_match); + +static const struct spi_device_id bmc150_accel_id[] = { + {"bmc150_accel", bmc150}, + {"bmi055_accel", bmi055}, + {"bma255", bma255}, + {"bma250e", bma250e}, + {"bma222e", bma222e}, + {"bma280", bma280}, + {} +}; +MODULE_DEVICE_TABLE(spi, bmc150_accel_id); + +static struct spi_driver bmc150_accel_driver = { + .driver = { + .name = "bmc150_accel_spi", + .acpi_match_table = ACPI_PTR(bmc150_accel_acpi_match), + .pm = &bmc150_accel_pm_ops, + }, + .probe = bmc150_accel_probe, + .remove = bmc150_accel_remove, + .id_table = bmc150_accel_id, +}; +module_spi_driver(bmc150_accel_driver); + +MODULE_AUTHOR("Markus Pargmann "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("BMC150 SPI accelerometer driver"); From a305cf316239073eab9da9ba22266bb698f5c3f7 Mon Sep 17 00:00:00 2001 From: Maciek Borzecki Date: Sat, 3 Oct 2015 16:01:36 +0200 Subject: [PATCH 1183/2431] staging: wlan-ng: prism2sta: replace memcmp with ether_addr_equal Replace memcmp() with ether_addr_equal(). In every location where the replacement was done, the addresses accessed are __aligned(2). Structures accessed either stack or heap allocated, no direct memory casts to possibly unaligned structs are used. Involved structures: typedef struct hfa384x_authenticateStation_data { u8 address[ETH_ALEN]; /* 0 offset */ ... } __packed hfa384x_authenticateStation_data_t; struct prism2sta_authlist { unsigned int cnt; u8 addr[WLAN_AUTH_MAX][ETH_ALEN]; /* 4 bytes offset, addresses start at u16 boundary */ u8 assoc[WLAN_AUTH_MAX]; }; struct prism2sta_accesslist { unsigned int modify; unsigned int cnt; u8 addr[WLAN_ACCESS_MAX][ETH_ALEN]; /* 8 bytes offset, multiple of u16 */ ... u8 addr1[WLAN_ACCESS_MAX][ETH_ALEN]; /* starts at u32 boundary, struct not packed */ }; typedef struct hfa384x_AssocStatus { u16 assocstatus; u8 sta_addr[ETH_ALEN]; /* 2 bytes offset, struct is packed */ u8 old_ap_addr[ETH_ALEN]; /* 8 bytes offset */ ... } __packed hfa384x_AssocStatus_t; The patch resolves the following checkpatch warnings: WARNING: Prefer ether_addr_equal() or ether_addr_equal_unaligned() over memcmp() Signed-off-by: Maciek Borzecki Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wlan-ng/prism2sta.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wlan-ng/prism2sta.c b/drivers/staging/wlan-ng/prism2sta.c index bd979863e6a9..c57f48a1d8df 100644 --- a/drivers/staging/wlan-ng/prism2sta.c +++ b/drivers/staging/wlan-ng/prism2sta.c @@ -1490,7 +1490,7 @@ static void prism2sta_inf_assocstatus(wlandevice_t *wlandev, */ for (i = 0; i < hw->authlist.cnt; i++) - if (memcmp(rec.sta_addr, hw->authlist.addr[i], ETH_ALEN) == 0) + if (ether_addr_equal(rec.sta_addr, hw->authlist.addr[i])) break; if (i >= hw->authlist.cnt) { @@ -1572,8 +1572,8 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, */ for (i = 0; i < hw->authlist.cnt; i++) - if (memcmp(rec.address, hw->authlist.addr[i], - ETH_ALEN) == 0) { + if (ether_addr_equal(rec.address, + hw->authlist.addr[i])) { rec.status = P80211ENUM_status_successful; break; } @@ -1610,7 +1610,7 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, } for (i = 0; i < cnt; i++, addr += ETH_ALEN) - if (memcmp(rec.address, addr, ETH_ALEN) == 0) { + if (ether_addr_equal(rec.address, addr)) { rec.status = P80211ENUM_status_successful; break; } @@ -1640,7 +1640,7 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, rec.status = P80211ENUM_status_successful; for (i = 0; i < cnt; i++, addr += ETH_ALEN) - if (memcmp(rec.address, addr, ETH_ALEN) == 0) { + if (ether_addr_equal(rec.address, addr)) { rec.status = P80211ENUM_status_unspec_failure; break; } @@ -1661,8 +1661,8 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev, if (rec.status == P80211ENUM_status_successful) { for (i = 0; i < hw->authlist.cnt; i++) - if (memcmp(rec.address, hw->authlist.addr[i], ETH_ALEN) - == 0) + if (ether_addr_equal(rec.address, + hw->authlist.addr[i])) break; if (i >= hw->authlist.cnt) { From 252fb58ceb42d82931c971b11f5ea1323caa8a35 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Fri, 2 Oct 2015 13:37:48 +0300 Subject: [PATCH 1184/2431] staging: iio: cdc: use devm_iio_device_register instead iio_device_register Replace iio_device_register with resource managed devm_iio_device_register in order to ease the error path. Also delete de remove function since there is no need after this change. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/cdc/ad7150.c | 12 +----------- drivers/staging/iio/cdc/ad7152.c | 12 +----------- drivers/staging/iio/cdc/ad7746.c | 12 +----------- 3 files changed, 3 insertions(+), 33 deletions(-) diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c index a2b7ae3329c0..ff833949591c 100644 --- a/drivers/staging/iio/cdc/ad7150.c +++ b/drivers/staging/iio/cdc/ad7150.c @@ -636,7 +636,7 @@ static int ad7150_probe(struct i2c_client *client, return ret; } - ret = iio_device_register(indio_dev); + ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); if (ret) return ret; @@ -646,15 +646,6 @@ static int ad7150_probe(struct i2c_client *client, return 0; } -static int ad7150_remove(struct i2c_client *client) -{ - struct iio_dev *indio_dev = i2c_get_clientdata(client); - - iio_device_unregister(indio_dev); - - return 0; -} - static const struct i2c_device_id ad7150_id[] = { { "ad7150", 0 }, { "ad7151", 0 }, @@ -669,7 +660,6 @@ static struct i2c_driver ad7150_driver = { .name = "ad7150", }, .probe = ad7150_probe, - .remove = ad7150_remove, .id_table = ad7150_id, }; module_i2c_driver(ad7150_driver); diff --git a/drivers/staging/iio/cdc/ad7152.c b/drivers/staging/iio/cdc/ad7152.c index 87110d940e9a..c3d5531f73c2 100644 --- a/drivers/staging/iio/cdc/ad7152.c +++ b/drivers/staging/iio/cdc/ad7152.c @@ -502,7 +502,7 @@ static int ad7152_probe(struct i2c_client *client, indio_dev->num_channels = ARRAY_SIZE(ad7152_channels); indio_dev->modes = INDIO_DIRECT_MODE; - ret = iio_device_register(indio_dev); + ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); if (ret) return ret; @@ -511,15 +511,6 @@ static int ad7152_probe(struct i2c_client *client, return 0; } -static int ad7152_remove(struct i2c_client *client) -{ - struct iio_dev *indio_dev = i2c_get_clientdata(client); - - iio_device_unregister(indio_dev); - - return 0; -} - static const struct i2c_device_id ad7152_id[] = { { "ad7152", 0 }, { "ad7153", 1 }, @@ -533,7 +524,6 @@ static struct i2c_driver ad7152_driver = { .name = KBUILD_MODNAME, }, .probe = ad7152_probe, - .remove = ad7152_remove, .id_table = ad7152_id, }; module_i2c_driver(ad7152_driver); diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 10fa372a4182..999c4fa0499d 100644 --- a/drivers/staging/iio/cdc/ad7746.c +++ b/drivers/staging/iio/cdc/ad7746.c @@ -749,7 +749,7 @@ static int ad7746_probe(struct i2c_client *client, if (ret < 0) return ret; - ret = iio_device_register(indio_dev); + ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); if (ret) return ret; @@ -758,15 +758,6 @@ static int ad7746_probe(struct i2c_client *client, return 0; } -static int ad7746_remove(struct i2c_client *client) -{ - struct iio_dev *indio_dev = i2c_get_clientdata(client); - - iio_device_unregister(indio_dev); - - return 0; -} - static const struct i2c_device_id ad7746_id[] = { { "ad7745", 7745 }, { "ad7746", 7746 }, @@ -781,7 +772,6 @@ static struct i2c_driver ad7746_driver = { .name = KBUILD_MODNAME, }, .probe = ad7746_probe, - .remove = ad7746_remove, .id_table = ad7746_id, }; module_i2c_driver(ad7746_driver); From 86727e30d1d6485b5f8b4a84790ac659dc002d27 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Fri, 2 Oct 2015 13:37:49 +0300 Subject: [PATCH 1185/2431] staging: iio: light: use devm_iio_device_register instead iio_device_register Replace iio_device_register with resource managed devm_iio_device_register in order to ease the error path. Also delete the remove function since there is no need after this change. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/light/isl29028.c | 11 +---------- drivers/staging/iio/light/tsl2583.c | 10 +--------- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/drivers/staging/iio/light/isl29028.c b/drivers/staging/iio/light/isl29028.c index cd6f2727aa58..32ae1127da33 100644 --- a/drivers/staging/iio/light/isl29028.c +++ b/drivers/staging/iio/light/isl29028.c @@ -513,7 +513,7 @@ static int isl29028_probe(struct i2c_client *client, indio_dev->name = id->name; indio_dev->dev.parent = &client->dev; indio_dev->modes = INDIO_DIRECT_MODE; - ret = iio_device_register(indio_dev); + ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); if (ret < 0) { dev_err(chip->dev, "iio registration fails with error %d\n", ret); @@ -522,14 +522,6 @@ static int isl29028_probe(struct i2c_client *client, return 0; } -static int isl29028_remove(struct i2c_client *client) -{ - struct iio_dev *indio_dev = i2c_get_clientdata(client); - - iio_device_unregister(indio_dev); - return 0; -} - static const struct i2c_device_id isl29028_id[] = { {"isl29028", 0}, {} @@ -550,7 +542,6 @@ static struct i2c_driver isl29028_driver = { .of_match_table = isl29028_of_match, }, .probe = isl29028_probe, - .remove = isl29028_remove, .id_table = isl29028_id, }; diff --git a/drivers/staging/iio/light/tsl2583.c b/drivers/staging/iio/light/tsl2583.c index b5e1b8b0a6f0..df602038a4bd 100644 --- a/drivers/staging/iio/light/tsl2583.c +++ b/drivers/staging/iio/light/tsl2583.c @@ -862,7 +862,7 @@ static int taos_probe(struct i2c_client *clientp, indio_dev->dev.parent = &clientp->dev; indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->name = chip->client->name; - ret = iio_device_register(indio_dev); + ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); if (ret) { dev_err(&clientp->dev, "iio registration failed\n"); return ret; @@ -917,13 +917,6 @@ static SIMPLE_DEV_PM_OPS(taos_pm_ops, taos_suspend, taos_resume); #define TAOS_PM_OPS NULL #endif -static int taos_remove(struct i2c_client *client) -{ - iio_device_unregister(i2c_get_clientdata(client)); - - return 0; -} - static struct i2c_device_id taos_idtable[] = { { "tsl2580", 0 }, { "tsl2581", 1 }, @@ -940,7 +933,6 @@ static struct i2c_driver taos_driver = { }, .id_table = taos_idtable, .probe = taos_probe, - .remove = taos_remove, }; module_i2c_driver(taos_driver); From 877cdf9115122e068245326da519a848d2387221 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Fri, 2 Oct 2015 13:37:50 +0300 Subject: [PATCH 1186/2431] staging: iio: resolver: replace iio_device_register by devm_iio_device_register Use devm_iio_device_register instead of iio_device_register when the remove function is only used to call iio_device_unregister in order to ease the error path. Since resource managed functions implicitly call unregister at driver detach also remove iio_device_unregister Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/resolver/ad2s90.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/staging/iio/resolver/ad2s90.c b/drivers/staging/iio/resolver/ad2s90.c index e24c5890652f..c57a29616223 100644 --- a/drivers/staging/iio/resolver/ad2s90.c +++ b/drivers/staging/iio/resolver/ad2s90.c @@ -79,7 +79,7 @@ static int ad2s90_probe(struct spi_device *spi) indio_dev->num_channels = 1; indio_dev->name = spi_get_device_id(spi)->name; - ret = iio_device_register(indio_dev); + ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); if (ret) return ret; @@ -91,13 +91,6 @@ static int ad2s90_probe(struct spi_device *spi) return 0; } -static int ad2s90_remove(struct spi_device *spi) -{ - iio_device_unregister(spi_get_drvdata(spi)); - - return 0; -} - static const struct spi_device_id ad2s90_id[] = { { "ad2s90" }, {} @@ -110,7 +103,6 @@ static struct spi_driver ad2s90_driver = { .owner = THIS_MODULE, }, .probe = ad2s90_probe, - .remove = ad2s90_remove, .id_table = ad2s90_id, }; module_spi_driver(ad2s90_driver); From bdddc22f071a365de205c8396d59f8d7ad1c86a9 Mon Sep 17 00:00:00 2001 From: Hugo Camboulive Date: Sat, 3 Oct 2015 18:32:48 +0000 Subject: [PATCH 1187/2431] staging: iio: adc: fix comment block coding style issue This patch to ad7746.c makes the comment block end with a */ on a separate line. Signed-off-by: Hugo Camboulive Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/cdc/ad7746.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 999c4fa0499d..028b4e85f2b2 100644 --- a/drivers/staging/iio/cdc/ad7746.c +++ b/drivers/staging/iio/cdc/ad7746.c @@ -531,7 +531,7 @@ static int ad7746_write_raw(struct iio_dev *indio_dev, /* CAPDAC Scale = 21pF_typ / 127 * CIN Scale = 8.192pF / 2^24 * Offset Scale = CAPDAC Scale / CIN Scale = 338646 - * */ + */ val /= 338646; From 7d92ea5d0ddafea25b532eb1c0721f7e73984a76 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Sat, 3 Oct 2015 18:20:47 +0300 Subject: [PATCH 1188/2431] staging: android: Remove kernel-doc typo Fix 'No description found for parameter 'prot_mask'' and 'Excess struct/union/enum/typedef member 'prot_masks' description in 'ashmem_area'' warnings by removing typo Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ashmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index f9318003bd0b..6f277cab7c44 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -43,7 +43,7 @@ * @unpinned_list: The list of all ashmem areas * @file: The shmem-based backing file * @size: The size of the mapping, in bytes - * @prot_masks: The allowed protection bits, as vm_flags + * @prot_mask: The allowed protection bits, as vm_flags * * The lifecycle of this structure is from our parent file's open() until * its release(). It is also protected by 'ashmem_mutex' From 801b798c25b810ba036f38f6bf2e1750201485b0 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Sat, 3 Oct 2015 18:45:01 +0300 Subject: [PATCH 1189/2431] staging: android: Remove /** from regular comments Fix 'cannot understand function prototype' and 'No description found for parameter' kernel-doc warnings by replacing /** with /* in regular comments Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ashmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 6f277cab7c44..f7f8c811af22 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -82,14 +82,14 @@ struct ashmem_range { /* LRU list of unpinned pages, protected by ashmem_mutex */ static LIST_HEAD(ashmem_lru_list); -/** +/* * long lru_count - The count of pages on our LRU list. * * This is protected by ashmem_mutex. */ static unsigned long lru_count; -/** +/* * ashmem_mutex - protects the list of and each individual ashmem_area * * Lock Ordering: ashmex_mutex -> i_mutex -> i_alloc_sem From 5cff0cc99fe4e92cbb2f1680bd744b8290686e8d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:26 +0530 Subject: [PATCH 1190/2431] Staging: lustre: ptlrpc: Declare sptlrpc_rule_set_merge as static Declare sptlrpc_rule_set_merge as static since it is accessed from this particular file only. Also remove its declaration from header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 2 -- drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 1d2c5724d1df..96a717e25412 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -331,8 +331,6 @@ static inline void sptlrpc_rule_set_init(struct sptlrpc_rule_set *set) void sptlrpc_rule_set_free(struct sptlrpc_rule_set *set); int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *set); -int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *set, - struct sptlrpc_rule *rule); int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, enum lustre_sec_part from, enum lustre_sec_part to, diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c index 0d29b8734a53..6fb5b4c409d1 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c @@ -285,8 +285,8 @@ static inline int rule_match_net(struct sptlrpc_rule *r1, * merge @rule into @rset. * the @rset slots might be expanded. */ -int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *rset, - struct sptlrpc_rule *rule) +static int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *rset, + struct sptlrpc_rule *rule) { struct sptlrpc_rule *p = rset->srs_rules; int spec_dir, spec_net; @@ -370,8 +370,6 @@ int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *rset, return 0; } -EXPORT_SYMBOL(sptlrpc_rule_set_merge); - /** * given from/to/nid, determine a matching flavor in ruleset. * return 1 if a match found, otherwise return 0. From 337349fb599b75756909eb80c0b86bb332d8857b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:27 +0530 Subject: [PATCH 1191/2431] Staging: lustre: ptlrpc: Declare sptlrpc_rule_set_free as static Declare sptlrpc_rule_set_free as static since it is accessed from this particular file only. Also remove its declaration from header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 1 - drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 96a717e25412..d284f91def11 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -329,7 +329,6 @@ static inline void sptlrpc_rule_set_init(struct sptlrpc_rule_set *set) memset(set, 0, sizeof(*set)); } -void sptlrpc_rule_set_free(struct sptlrpc_rule_set *set); int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *set); int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, enum lustre_sec_part from, diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c index 6fb5b4c409d1..0309817c4ff4 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c @@ -215,7 +215,7 @@ int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule) } EXPORT_SYMBOL(sptlrpc_parse_rule); -void sptlrpc_rule_set_free(struct sptlrpc_rule_set *rset) +static void sptlrpc_rule_set_free(struct sptlrpc_rule_set *rset) { LASSERT(rset->srs_nslot || (rset->srs_nrule == 0 && rset->srs_rules == NULL)); @@ -225,7 +225,6 @@ void sptlrpc_rule_set_free(struct sptlrpc_rule_set *rset) sptlrpc_rule_set_init(rset); } } -EXPORT_SYMBOL(sptlrpc_rule_set_free); /* * return 0 if the rule set could accommodate one more rule. From 57552bf00f028f2621acdb66857a18ea83f3637f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:28 +0530 Subject: [PATCH 1192/2431] Staging: lustre: ptlrpc: Declare sptlrpc_rule_set_expand as static Declare sptlrpc_rule_set_expand as static since it is accessed from this particular file only. Also remove its declaration from header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 1 - drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index d284f91def11..4f1d98396006 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -329,7 +329,6 @@ static inline void sptlrpc_rule_set_init(struct sptlrpc_rule_set *set) memset(set, 0, sizeof(*set)); } -int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *set); int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, enum lustre_sec_part from, enum lustre_sec_part to, diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c index 0309817c4ff4..0664042fe22c 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c @@ -229,7 +229,7 @@ static void sptlrpc_rule_set_free(struct sptlrpc_rule_set *rset) /* * return 0 if the rule set could accommodate one more rule. */ -int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *rset) +static int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *rset) { struct sptlrpc_rule *rules; int nslot; From 65e4b792a770dbca4a1e3f93759a8a4a2249e235 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:29 +0530 Subject: [PATCH 1193/2431] Staging: lustre: ptlrpc: Declare sptlrpc_rule_set_choose as static Declare sptlrpc_rule_set_choose as static since it is accessed from this particular file only. Also remove its declaration from header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 6 ------ drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 11 +++++------ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 4f1d98396006..50560a8cb5b3 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -329,12 +329,6 @@ static inline void sptlrpc_rule_set_init(struct sptlrpc_rule_set *set) memset(set, 0, sizeof(*set)); } -int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, - enum lustre_sec_part from, - enum lustre_sec_part to, - lnet_nid_t nid, - struct sptlrpc_flavor *sf); - int sptlrpc_process_config(struct lustre_cfg *lcfg); void sptlrpc_conf_log_start(const char *logname); void sptlrpc_conf_log_stop(const char *logname); diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c index 0664042fe22c..7e698f34b0c1 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c @@ -373,11 +373,11 @@ static int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *rset, * given from/to/nid, determine a matching flavor in ruleset. * return 1 if a match found, otherwise return 0. */ -int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, - enum lustre_sec_part from, - enum lustre_sec_part to, - lnet_nid_t nid, - struct sptlrpc_flavor *sf) +static int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, + enum lustre_sec_part from, + enum lustre_sec_part to, + lnet_nid_t nid, + struct sptlrpc_flavor *sf) { struct sptlrpc_rule *r; int n; @@ -404,7 +404,6 @@ int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset, return 0; } -EXPORT_SYMBOL(sptlrpc_rule_set_choose); /********************************** * sptlrpc configuration support * From cf0a7f9eadce9b0dcf8099adde84696a5cad5202 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:30 +0530 Subject: [PATCH 1194/2431] Staging: lustre: ptlrpc: Declare sptlrpc_req_replace_dead_ctx as static Declare sptlrpc_req_replace_dead_ctx as static since it is accessed from this particular file only. Also remove its declaration from header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 1 - drivers/staging/lustre/lustre/ptlrpc/sec.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 50560a8cb5b3..ab963b9ea9d8 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -1026,7 +1026,6 @@ void sptlrpc_import_flush_all_ctx(struct obd_import *imp); int sptlrpc_req_get_ctx(struct ptlrpc_request *req); void sptlrpc_req_put_ctx(struct ptlrpc_request *req, int sync); int sptlrpc_req_refresh_ctx(struct ptlrpc_request *req, long timeout); -int sptlrpc_req_replace_dead_ctx(struct ptlrpc_request *req); void sptlrpc_req_set_flavor(struct ptlrpc_request *req, int opcode); int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule); diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec.c b/drivers/staging/lustre/lustre/ptlrpc/sec.c index 67604b560670..84e9881806b5 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec.c @@ -470,7 +470,7 @@ int sptlrpc_req_ctx_switch(struct ptlrpc_request *req, * \note a request must have a context, to keep other parts of code happy. * In any case of failure during the switching, we must restore the old one. */ -int sptlrpc_req_replace_dead_ctx(struct ptlrpc_request *req) +static int sptlrpc_req_replace_dead_ctx(struct ptlrpc_request *req) { struct ptlrpc_cli_ctx *oldctx = req->rq_cli_ctx; struct ptlrpc_cli_ctx *newctx; @@ -523,7 +523,6 @@ int sptlrpc_req_replace_dead_ctx(struct ptlrpc_request *req) sptlrpc_cli_ctx_put(oldctx, 1); return 0; } -EXPORT_SYMBOL(sptlrpc_req_replace_dead_ctx); static int ctx_check_refresh(struct ptlrpc_cli_ctx *ctx) From 91a3a5014e8a3d046608c3835e7c793b87dc20b6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:31 +0530 Subject: [PATCH 1195/2431] Staging: lustre: ptlrpc: Declare sptlrpc_parse_rule as static Declare sptlrpc_parse_rule as static since it is accessed from this particular file only. Also remove its declaration from header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 1 - drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index ab963b9ea9d8..fc1f57355971 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -1028,7 +1028,6 @@ void sptlrpc_req_put_ctx(struct ptlrpc_request *req, int sync); int sptlrpc_req_refresh_ctx(struct ptlrpc_request *req, long timeout); void sptlrpc_req_set_flavor(struct ptlrpc_request *req, int opcode); -int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule); /* gc */ void sptlrpc_gc_add_sec(struct ptlrpc_sec *sec); diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c index 7e698f34b0c1..c96a5c7b0494 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c @@ -159,7 +159,7 @@ static void sptlrpc_rule_init(struct sptlrpc_rule *rule) /* * format: network[.direction]=flavor */ -int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule) +static int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule) { char *flavor, *dir; int rc; @@ -213,7 +213,6 @@ int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule) return 0; } -EXPORT_SYMBOL(sptlrpc_parse_rule); static void sptlrpc_rule_set_free(struct sptlrpc_rule_set *rset) { From a9bda311cb0e8a520daebbc6d0d795d327744536 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:10 +0530 Subject: [PATCH 1196/2431] Staging: lustre: obdclass: cl_io: Declare as static Declare cl_page_list_assume, cl_io_cancel, cl_io_rw_advance, cl_page_list_del, cl_page_list_discard, cl_page_list_fini as static since they are used only in this particular file. Also remove them from corresponding header files Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/cl_object.h | 5 ---- .../staging/lustre/lustre/obdclass/cl_io.c | 28 ++++++++----------- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index b0733134ee48..75c59dfd73d0 100644 --- a/drivers/staging/lustre/lustre/include/cl_object.h +++ b/drivers/staging/lustre/lustre/include/cl_object.h @@ -3125,13 +3125,8 @@ void cl_page_list_move (struct cl_page_list *dst, struct cl_page_list *src, struct cl_page *page); void cl_page_list_splice (struct cl_page_list *list, struct cl_page_list *head); -void cl_page_list_del (const struct lu_env *env, - struct cl_page_list *plist, struct cl_page *page); void cl_page_list_disown (const struct lu_env *env, struct cl_io *io, struct cl_page_list *plist); -void cl_page_list_discard(const struct lu_env *env, - struct cl_io *io, struct cl_page_list *plist); -void cl_page_list_fini (const struct lu_env *env, struct cl_page_list *plist); void cl_2queue_init (struct cl_2queue *queue); void cl_2queue_add (struct cl_2queue *queue, struct cl_page *page); diff --git a/drivers/staging/lustre/lustre/obdclass/cl_io.c b/drivers/staging/lustre/lustre/obdclass/cl_io.c index a822a0b3464e..ef66ac9a5115 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_io.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_io.c @@ -570,7 +570,8 @@ EXPORT_SYMBOL(cl_io_iter_fini); /** * Records that read or write io progressed \a nob bytes forward. */ -void cl_io_rw_advance(const struct lu_env *env, struct cl_io *io, size_t nob) +static void cl_io_rw_advance(const struct lu_env *env, struct cl_io *io, + size_t nob) { const struct cl_io_slice *scan; @@ -589,7 +590,6 @@ void cl_io_rw_advance(const struct lu_env *env, struct cl_io *io, size_t nob) nob); } } -EXPORT_SYMBOL(cl_io_rw_advance); /** * Adds a lock to a lockset. @@ -936,8 +936,8 @@ EXPORT_SYMBOL(cl_io_submit_sync); /** * Cancel an IO which has been submitted by cl_io_submit_rw. */ -int cl_io_cancel(const struct lu_env *env, struct cl_io *io, - struct cl_page_list *queue) +static int cl_io_cancel(const struct lu_env *env, struct cl_io *io, + struct cl_page_list *queue) { struct cl_page *page; int result = 0; @@ -952,7 +952,6 @@ int cl_io_cancel(const struct lu_env *env, struct cl_io *io, } return result; } -EXPORT_SYMBOL(cl_io_cancel); /** * Main io loop. @@ -1076,8 +1075,8 @@ EXPORT_SYMBOL(cl_page_list_add); /** * Removes a page from a page list. */ -void cl_page_list_del(const struct lu_env *env, - struct cl_page_list *plist, struct cl_page *page) +static void cl_page_list_del(const struct lu_env *env, + struct cl_page_list *plist, struct cl_page *page) { LASSERT(plist->pl_nr > 0); LINVRNT(plist->pl_owner == current); @@ -1090,7 +1089,6 @@ void cl_page_list_del(const struct lu_env *env, lu_ref_del_at(&page->cp_reference, &page->cp_queue_ref, "queue", plist); cl_page_put(env, page); } -EXPORT_SYMBOL(cl_page_list_del); /** * Moves a page from one page list to another. @@ -1167,7 +1165,8 @@ EXPORT_SYMBOL(cl_page_list_disown); /** * Releases pages from queue. */ -void cl_page_list_fini(const struct lu_env *env, struct cl_page_list *plist) +static void cl_page_list_fini(const struct lu_env *env, + struct cl_page_list *plist) { struct cl_page *page; struct cl_page *temp; @@ -1178,13 +1177,12 @@ void cl_page_list_fini(const struct lu_env *env, struct cl_page_list *plist) cl_page_list_del(env, plist, page); LASSERT(plist->pl_nr == 0); } -EXPORT_SYMBOL(cl_page_list_fini); /** * Assumes all pages in a queue. */ -void cl_page_list_assume(const struct lu_env *env, - struct cl_io *io, struct cl_page_list *plist) +static void cl_page_list_assume(const struct lu_env *env, + struct cl_io *io, struct cl_page_list *plist) { struct cl_page *page; @@ -1193,13 +1191,12 @@ void cl_page_list_assume(const struct lu_env *env, cl_page_list_for_each(page, plist) cl_page_assume(env, io, page); } -EXPORT_SYMBOL(cl_page_list_assume); /** * Discards all pages in a queue. */ -void cl_page_list_discard(const struct lu_env *env, struct cl_io *io, - struct cl_page_list *plist) +static void cl_page_list_discard(const struct lu_env *env, struct cl_io *io, + struct cl_page_list *plist) { struct cl_page *page; @@ -1207,7 +1204,6 @@ void cl_page_list_discard(const struct lu_env *env, struct cl_io *io, cl_page_list_for_each(page, plist) cl_page_discard(env, io, page); } -EXPORT_SYMBOL(cl_page_list_discard); /** * Initialize dual page queue. From a90a291767ae9c37e9da3069739b609151602dbf Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:11 +0530 Subject: [PATCH 1197/2431] Staging: lustre: obdclass: cl_lock: Declare as static Declare cl_lock_intransit and cl_lock_extransit as static since they are used only in this particular file. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/cl_lock.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index 4294ca62a9af..b15c990dec6a 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c @@ -403,8 +403,8 @@ static struct cl_lock *cl_lock_alloc(const struct lu_env *env, * \post state: CLS_INTRANSIT * \see CLS_INTRANSIT */ -enum cl_lock_state cl_lock_intransit(const struct lu_env *env, - struct cl_lock *lock) +static enum cl_lock_state cl_lock_intransit(const struct lu_env *env, + struct cl_lock *lock) { enum cl_lock_state state = lock->cll_state; @@ -418,13 +418,12 @@ enum cl_lock_state cl_lock_intransit(const struct lu_env *env, cl_lock_hold_add(env, lock, "intransit", current); return state; } -EXPORT_SYMBOL(cl_lock_intransit); /** * Exit the intransit state and restore the lock state to the original state */ -void cl_lock_extransit(const struct lu_env *env, struct cl_lock *lock, - enum cl_lock_state state) +static void cl_lock_extransit(const struct lu_env *env, struct cl_lock *lock, + enum cl_lock_state state) { LASSERT(cl_lock_is_mutexed(lock)); LASSERT(lock->cll_state == CLS_INTRANSIT); @@ -435,7 +434,6 @@ void cl_lock_extransit(const struct lu_env *env, struct cl_lock *lock, cl_lock_state_set(env, lock, state); cl_lock_unhold(env, lock, "intransit", current); } -EXPORT_SYMBOL(cl_lock_extransit); /** * Checking whether the lock is intransit state From d63414eb9833ddae771102aa792178ea04624c34 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:12 +0530 Subject: [PATCH 1198/2431] Staging: lustre: obdclass: obd_config: Declare as static Declare class_add_conn, class_add_profile, class_cleanup, class_config_parse_rec, class_del_conn, class_detach, class_match_param, class_attach, class_setup as static since they are used only in this particular file. Also remove the corresponding declarations from header files. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_param.h | 1 - .../staging/lustre/lustre/include/obd_class.h | 5 ---- .../lustre/lustre/obdclass/llog_internal.h | 1 - .../lustre/lustre/obdclass/obd_config.c | 27 ++++++++----------- 4 files changed, 11 insertions(+), 23 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_param.h b/drivers/staging/lustre/lustre/include/lustre_param.h index de49b414e912..14cd2bccb78b 100644 --- a/drivers/staging/lustre/lustre/include/lustre_param.h +++ b/drivers/staging/lustre/lustre/include/lustre_param.h @@ -56,7 +56,6 @@ struct cfg_interop_param { /* obd_config.c */ int class_find_param(char *buf, char *key, char **valp); -int class_match_param(char *buf, char *key, char **valp); int class_parse_nid(char *buf, lnet_nid_t *nid, char **endh); int class_parse_nid_quiet(char *buf, lnet_nid_t *nid, char **endh); /* obd_mount.c */ diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 6fb67a6efa46..5ab72964c8f2 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -109,10 +109,6 @@ typedef int (*llog_cb_t)(const struct lu_env *, struct llog_handle *, int class_process_config(struct lustre_cfg *lcfg); int class_process_proc_param(char *prefix, struct lprocfs_vars *lvars, struct lustre_cfg *lcfg, void *data); -int class_attach(struct lustre_cfg *lcfg); -int class_setup(struct obd_device *obd, struct lustre_cfg *lcfg); -int class_cleanup(struct obd_device *obd, struct lustre_cfg *lcfg); -int class_detach(struct obd_device *obd, struct lustre_cfg *lcfg); struct obd_device *class_incref(struct obd_device *obd, const char *scope, const void *source); void class_decref(struct obd_device *obd, @@ -121,7 +117,6 @@ void dump_exports(struct obd_device *obd, int locks); int class_config_llog_handler(const struct lu_env *env, struct llog_handle *handle, struct llog_rec_hdr *rec, void *data); -int class_add_conn(struct obd_device *obd, struct lustre_cfg *lcfg); int class_add_uuid(const char *uuid, __u64 nid); /*obdecho*/ diff --git a/drivers/staging/lustre/lustre/obdclass/llog_internal.h b/drivers/staging/lustre/lustre/obdclass/llog_internal.h index 533998688fb4..5dff6170876f 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_internal.h +++ b/drivers/staging/lustre/lustre/obdclass/llog_internal.h @@ -71,7 +71,6 @@ int llog_cat_id2handle(const struct lu_env *env, struct llog_handle *cathandle, int class_config_dump_handler(const struct lu_env *env, struct llog_handle *handle, struct llog_rec_hdr *rec, void *data); -int class_config_parse_rec(struct llog_rec_hdr *rec, char *buf, int size); int llog_process_or_fork(const struct lu_env *env, struct llog_handle *loghandle, llog_cb_t cb, void *data, void *catdata, bool fork); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 66fafd3fa3a8..b8ca324b924e 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -72,7 +72,7 @@ EXPORT_SYMBOL(class_find_param); /* returns 0 if this is the first key in the buffer, else 1. valp points to first char after key. */ -int class_match_param(char *buf, char *key, char **valp) +static int class_match_param(char *buf, char *key, char **valp) { if (!buf) return 1; @@ -85,7 +85,6 @@ int class_match_param(char *buf, char *key, char **valp) return 0; } -EXPORT_SYMBOL(class_match_param); static int parse_nid(char *buf, void *value, int quiet) { @@ -175,7 +174,7 @@ EXPORT_SYMBOL(class_parse_nid_quiet); * Create a new obd device and set the type, name and uuid. If successful, * the new device can be accessed by either name or uuid. */ -int class_attach(struct lustre_cfg *lcfg) +static int class_attach(struct lustre_cfg *lcfg) { struct obd_device *obd = NULL; char *typename, *name, *uuid; @@ -278,12 +277,11 @@ int class_attach(struct lustre_cfg *lcfg) } return rc; } -EXPORT_SYMBOL(class_attach); /** Create hashes, self-export, and call type-specific setup. * Setup is effectively the "start this obd" call. */ -int class_setup(struct obd_device *obd, struct lustre_cfg *lcfg) +static int class_setup(struct obd_device *obd, struct lustre_cfg *lcfg) { int err = 0; struct obd_export *exp; @@ -373,12 +371,11 @@ err_hash: CERROR("setup %s failed (%d)\n", obd->obd_name, err); return err; } -EXPORT_SYMBOL(class_setup); /** We have finished using this obd and are ready to destroy it. * There can be no more references to this obd. */ -int class_detach(struct obd_device *obd, struct lustre_cfg *lcfg) +static int class_detach(struct obd_device *obd, struct lustre_cfg *lcfg) { if (obd->obd_set_up) { CERROR("OBD device %d still set up\n", obd->obd_minor); @@ -400,13 +397,12 @@ int class_detach(struct obd_device *obd, struct lustre_cfg *lcfg) class_decref(obd, "attach", obd); return 0; } -EXPORT_SYMBOL(class_detach); /** Start shutting down the obd. There may be in-progress ops when * this is called. We tell them to start shutting down with a call * to class_disconnect_exports(). */ -int class_cleanup(struct obd_device *obd, struct lustre_cfg *lcfg) +static int class_cleanup(struct obd_device *obd, struct lustre_cfg *lcfg) { int err = 0; char *flag; @@ -479,7 +475,6 @@ int class_cleanup(struct obd_device *obd, struct lustre_cfg *lcfg) return 0; } -EXPORT_SYMBOL(class_cleanup); struct obd_device *class_incref(struct obd_device *obd, const char *scope, const void *source) @@ -543,7 +538,7 @@ EXPORT_SYMBOL(class_decref); /** Add a failover nid location. * Client obd types contact server obd types using this nid list. */ -int class_add_conn(struct obd_device *obd, struct lustre_cfg *lcfg) +static int class_add_conn(struct obd_device *obd, struct lustre_cfg *lcfg) { struct obd_import *imp; struct obd_uuid uuid; @@ -574,11 +569,10 @@ int class_add_conn(struct obd_device *obd, struct lustre_cfg *lcfg) return rc; } -EXPORT_SYMBOL(class_add_conn); /** Remove a failover nid location. */ -int class_del_conn(struct obd_device *obd, struct lustre_cfg *lcfg) +static int class_del_conn(struct obd_device *obd, struct lustre_cfg *lcfg) { struct obd_import *imp; struct obd_uuid uuid; @@ -626,8 +620,8 @@ EXPORT_SYMBOL(class_get_profile); * This defines the mdc and osc names to use for a client. * This also is used to define the lov to be used by a mdt. */ -int class_add_profile(int proflen, char *prof, int osclen, char *osc, - int mdclen, char *mdc) +static int class_add_profile(int proflen, char *prof, int osclen, char *osc, + int mdclen, char *mdc) { struct lustre_profile *lprof; int err = 0; @@ -1303,7 +1297,8 @@ EXPORT_SYMBOL(class_config_parse_llog); * This is separated from class_config_dump_handler() to use * for ioctl needs as well */ -int class_config_parse_rec(struct llog_rec_hdr *rec, char *buf, int size) +static int class_config_parse_rec(struct llog_rec_hdr *rec, char *buf, + int size) { struct lustre_cfg *lcfg = (struct lustre_cfg *)(rec + 1); char *ptr = buf; From cbe327246da118513004f9022e1061d11a8f320b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:13 +0530 Subject: [PATCH 1199/2431] Staging: lustre: obdclass: genops: Declare as static Declare class_get_type and class_search_type as static since they are used only in this particular file. Also remove the declaration from header files. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_class.h | 2 -- drivers/staging/lustre/lustre/obdclass/genops.c | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 5ab72964c8f2..2cd445821251 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -256,8 +256,6 @@ void class_import_put(struct obd_import *); struct obd_import *class_new_import(struct obd_device *obd); void class_destroy_import(struct obd_import *exp); -struct obd_type *class_search_type(const char *name); -struct obd_type *class_get_type(const char *name); void class_put_type(struct obd_type *type); int class_connect(struct lustre_handle *conn, struct obd_device *obd, struct obd_uuid *cluuid); diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index c1bffcd8b8ef..2ae0ea903be0 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -90,7 +90,7 @@ static void obd_device_free(struct obd_device *obd) OBD_SLAB_FREE_PTR(obd, obd_device_cachep); } -struct obd_type *class_search_type(const char *name) +static struct obd_type *class_search_type(const char *name) { struct list_head *tmp; struct obd_type *type; @@ -106,9 +106,8 @@ struct obd_type *class_search_type(const char *name) spin_unlock(&obd_types_lock); return NULL; } -EXPORT_SYMBOL(class_search_type); -struct obd_type *class_get_type(const char *name) +static struct obd_type *class_get_type(const char *name) { struct obd_type *type = class_search_type(name); @@ -140,7 +139,6 @@ struct obd_type *class_get_type(const char *name) } return type; } -EXPORT_SYMBOL(class_get_type); void class_put_type(struct obd_type *type) { From fb320795704ccb6f4694801543f1418aedabad72 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:14 +0530 Subject: [PATCH 1200/2431] Staging: lustre: obdclass: class_obd: Declare as static Declare class_resolve_dev_name as static it is not used anywhere apart from this particular file.Also remove the declaration from header file Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/class_obd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index 058b859de156..d16f85b49ff4 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -133,7 +133,7 @@ static inline void obd_conn2data(struct obd_ioctl_data *data, data->ioc_cookie = conn->cookie; } -int class_resolve_dev_name(__u32 len, const char *name) +static int class_resolve_dev_name(__u32 len, const char *name) { int rc; int dev; From 961354612efa9cecb98250f4f1cfd51221af8098 Mon Sep 17 00:00:00 2001 From: Rocco Folino Date: Fri, 2 Oct 2015 23:54:26 +0200 Subject: [PATCH 1201/2431] staging/lustre: Make nrs_policy_get_info_locked() static This patch fixes the warning generated by sparse: "symbol 'nrs_policy_get_info_locked' was not declared. Should it be static?" by declaring the function static. Signed-off-by: Rocco Folino Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 3a212b4be9a1..6cf9b92c7c05 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -452,7 +452,7 @@ static const char *nrs_state2str(enum ptlrpc_nrs_pol_state state) * \param[in] policy The policy * \param[out] info Holds returned status information */ -void nrs_policy_get_info_locked(struct ptlrpc_nrs_policy *policy, +static void nrs_policy_get_info_locked(struct ptlrpc_nrs_policy *policy, struct ptlrpc_nrs_pol_info *info) { LASSERT(policy != NULL); From 7112574aea6955774638941e75bd915e59c8bca6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 18:07:04 +0530 Subject: [PATCH 1202/2431] Staging: lustre: obdclass: Remove unused functions Remove dump_exports and print_export_data as they are defined but not used anywhere. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/obd_class.h | 1 - .../staging/lustre/lustre/obdclass/genops.c | 51 ------------------- 2 files changed, 52 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 2cd445821251..882d47728781 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -113,7 +113,6 @@ struct obd_device *class_incref(struct obd_device *obd, const char *scope, const void *source); void class_decref(struct obd_device *obd, const char *scope, const void *source); -void dump_exports(struct obd_device *obd, int locks); int class_config_llog_handler(const struct lu_env *env, struct llog_handle *handle, struct llog_rec_hdr *rec, void *data); diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 2ae0ea903be0..a22b83ec9a3d 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -56,8 +56,6 @@ static spinlock_t obd_zombie_impexp_lock; static void obd_zombie_impexp_notify(void); static void obd_zombie_export_add(struct obd_export *exp); static void obd_zombie_import_add(struct obd_import *imp); -static void print_export_data(struct obd_export *exp, - const char *status, int locks); int (*ptlrpc_put_connection_superhack)(struct ptlrpc_connection *c); EXPORT_SYMBOL(ptlrpc_put_connection_superhack); @@ -1120,55 +1118,6 @@ void (*class_export_dump_hook)(struct obd_export *) = NULL; EXPORT_SYMBOL(class_export_dump_hook); #endif -static void print_export_data(struct obd_export *exp, const char *status, - int locks) -{ - struct ptlrpc_reply_state *rs; - struct ptlrpc_reply_state *first_reply = NULL; - int nreplies = 0; - - spin_lock(&exp->exp_lock); - list_for_each_entry(rs, &exp->exp_outstanding_replies, - rs_exp_list) { - if (nreplies == 0) - first_reply = rs; - nreplies++; - } - spin_unlock(&exp->exp_lock); - - CDEBUG(D_HA, "%s: %s %p %s %s %d (%d %d %d) %d %d %d: %p %s %llu\n", - exp->exp_obd->obd_name, status, exp, exp->exp_client_uuid.uuid, - obd_export_nid2str(exp), atomic_read(&exp->exp_refcount), - atomic_read(&exp->exp_rpc_count), - atomic_read(&exp->exp_cb_count), - atomic_read(&exp->exp_locks_count), - exp->exp_disconnected, exp->exp_failed, - nreplies, first_reply, nreplies > 3 ? "..." : "", - exp->exp_last_committed); -#if LUSTRE_TRACKS_LOCK_EXP_REFS - if (locks && class_export_dump_hook != NULL) - class_export_dump_hook(exp); -#endif -} - -void dump_exports(struct obd_device *obd, int locks) -{ - struct obd_export *exp; - - spin_lock(&obd->obd_dev_lock); - list_for_each_entry(exp, &obd->obd_exports, exp_obd_chain) - print_export_data(exp, "ACTIVE", locks); - list_for_each_entry(exp, &obd->obd_unlinked_exports, exp_obd_chain) - print_export_data(exp, "UNLINKED", locks); - list_for_each_entry(exp, &obd->obd_delayed_exports, exp_obd_chain) - print_export_data(exp, "DELAYED", locks); - spin_unlock(&obd->obd_dev_lock); - spin_lock(&obd_zombie_impexp_lock); - list_for_each_entry(exp, &obd_zombie_exports, exp_obd_chain) - print_export_data(exp, "ZOMBIE", locks); - spin_unlock(&obd_zombie_impexp_lock); -} -EXPORT_SYMBOL(dump_exports); /* Total amount of zombies to be destroyed */ static int zombies_count; From ea14cd2b0d9e65f8957cb991d1a7763eae985db4 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Sat, 3 Oct 2015 16:33:34 +0300 Subject: [PATCH 1203/2431] staging: octeon: Add kernel-doc params description Fix 'No description found for parameter' kernel-doc warnings Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet-rx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c index f600247e385a..6aed3cf6c0b4 100644 --- a/drivers/staging/octeon/ethernet-rx.c +++ b/drivers/staging/octeon/ethernet-rx.c @@ -49,6 +49,8 @@ static struct napi_struct cvm_oct_napi; /** * cvm_oct_do_interrupt - interrupt handler. + * @cpl: Interrupt number. Unused + * @dev_id: Cookie to identify the device. Unused * * The interrupt occurs whenever the POW has packets in our group. * From 851f306d6e42a7573dd5a9425ce929ff10215be6 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Fri, 2 Oct 2015 20:15:55 +0300 Subject: [PATCH 1204/2431] staging: dgnc: Fix line over 80 characters warning Fix 'line over 80 characters' checkpatch warning Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_tty.c | 186 ++++++++++++++++++++++---------- 1 file changed, 128 insertions(+), 58 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index fbfe79a70263..8a6f9e222e12 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -84,10 +84,14 @@ static struct ktermios DgncDefaultTermios = { /* Our function prototypes */ static int dgnc_tty_open(struct tty_struct *tty, struct file *file); static void dgnc_tty_close(struct tty_struct *tty, struct file *file); -static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struct channel_t *ch); -static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg); -static int dgnc_tty_digigeta(struct tty_struct *tty, struct digi_t __user *retinfo); -static int dgnc_tty_digiseta(struct tty_struct *tty, struct digi_t __user *new_info); +static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, + struct channel_t *ch); +static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, + unsigned long arg); +static int dgnc_tty_digigeta(struct tty_struct *tty, + struct digi_t __user *retinfo); +static int dgnc_tty_digiseta(struct tty_struct *tty, + struct digi_t __user *new_info); static int dgnc_tty_write_room(struct tty_struct *tty); static int dgnc_tty_put_char(struct tty_struct *tty, unsigned char c); static int dgnc_tty_chars_in_buffer(struct tty_struct *tty); @@ -98,14 +102,19 @@ static void dgnc_tty_unthrottle(struct tty_struct *tty); static void dgnc_tty_flush_chars(struct tty_struct *tty); static void dgnc_tty_flush_buffer(struct tty_struct *tty); static void dgnc_tty_hangup(struct tty_struct *tty); -static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command, unsigned int __user *value); -static int dgnc_get_modem_info(struct channel_t *ch, unsigned int __user *value); +static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command, + unsigned int __user *value); +static int dgnc_get_modem_info(struct channel_t *ch, + unsigned int __user *value); static int dgnc_tty_tiocmget(struct tty_struct *tty); -static int dgnc_tty_tiocmset(struct tty_struct *tty, unsigned int set, unsigned int clear); +static int dgnc_tty_tiocmset(struct tty_struct *tty, unsigned int set, + unsigned int clear); static int dgnc_tty_send_break(struct tty_struct *tty, int msec); static void dgnc_tty_wait_until_sent(struct tty_struct *tty, int timeout); -static int dgnc_tty_write(struct tty_struct *tty, const unsigned char *buf, int count); -static void dgnc_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios); +static int dgnc_tty_write(struct tty_struct *tty, const unsigned char *buf, + int count); +static void dgnc_tty_set_termios(struct tty_struct *tty, + struct ktermios *old_termios); static void dgnc_tty_send_xchar(struct tty_struct *tty, char ch); @@ -186,18 +195,24 @@ int dgnc_tty_register(struct dgnc_board *brd) brd->SerialDriver.subtype = SERIAL_TYPE_NORMAL; brd->SerialDriver.init_termios = DgncDefaultTermios; brd->SerialDriver.driver_name = DRVSTR; - brd->SerialDriver.flags = (TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV | TTY_DRIVER_HARDWARE_BREAK); + brd->SerialDriver.flags = (TTY_DRIVER_REAL_RAW | + TTY_DRIVER_DYNAMIC_DEV | + TTY_DRIVER_HARDWARE_BREAK); /* * The kernel wants space to store pointers to * tty_struct's and termios's. */ - brd->SerialDriver.ttys = kcalloc(brd->maxports, sizeof(*brd->SerialDriver.ttys), GFP_KERNEL); + brd->SerialDriver.ttys = kcalloc(brd->maxports, + sizeof(*brd->SerialDriver.ttys), + GFP_KERNEL); if (!brd->SerialDriver.ttys) return -ENOMEM; kref_init(&brd->SerialDriver.kref); - brd->SerialDriver.termios = kcalloc(brd->maxports, sizeof(*brd->SerialDriver.termios), GFP_KERNEL); + brd->SerialDriver.termios = kcalloc(brd->maxports, + sizeof(*brd->SerialDriver.termios), + GFP_KERNEL); if (!brd->SerialDriver.termios) return -ENOMEM; @@ -235,18 +250,24 @@ int dgnc_tty_register(struct dgnc_board *brd) brd->PrintDriver.subtype = SERIAL_TYPE_NORMAL; brd->PrintDriver.init_termios = DgncDefaultTermios; brd->PrintDriver.driver_name = DRVSTR; - brd->PrintDriver.flags = (TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV | TTY_DRIVER_HARDWARE_BREAK); + brd->PrintDriver.flags = (TTY_DRIVER_REAL_RAW | + TTY_DRIVER_DYNAMIC_DEV | + TTY_DRIVER_HARDWARE_BREAK); /* * The kernel wants space to store pointers to * tty_struct's and termios's. Must be separated from * the Serial Driver so we don't get confused */ - brd->PrintDriver.ttys = kcalloc(brd->maxports, sizeof(*brd->PrintDriver.ttys), GFP_KERNEL); + brd->PrintDriver.ttys = kcalloc(brd->maxports, + sizeof(*brd->PrintDriver.ttys), + GFP_KERNEL); if (!brd->PrintDriver.ttys) return -ENOMEM; kref_init(&brd->PrintDriver.kref); - brd->PrintDriver.termios = kcalloc(brd->maxports, sizeof(*brd->PrintDriver.termios), GFP_KERNEL); + brd->PrintDriver.termios = kcalloc(brd->maxports, + sizeof(*brd->PrintDriver.termios), + GFP_KERNEL); if (!brd->PrintDriver.termios) return -ENOMEM; @@ -529,8 +550,10 @@ void dgnc_input(struct channel_t *ch) * If the device is not open, or CREAD is off, * flush input data and return immediately. */ - if (!tp || (tp->magic != TTY_MAGIC) || !(ch->ch_tun.un_flags & UN_ISOPEN) || - !(tp->termios.c_cflag & CREAD) || (ch->ch_tun.un_flags & UN_CLOSING)) { + if (!tp || (tp->magic != TTY_MAGIC) || + !(ch->ch_tun.un_flags & UN_ISOPEN) || + !(tp->termios.c_cflag & CREAD) || + (ch->ch_tun.un_flags & UN_CLOSING)) { ch->ch_r_head = tail; @@ -614,16 +637,28 @@ void dgnc_input(struct channel_t *ch) if (I_PARMRK(tp) || I_BRKINT(tp) || I_INPCK(tp)) { for (i = 0; i < s; i++) { if (*(ch->ch_equeue + tail + i) & UART_LSR_BI) - tty_insert_flip_char(tp->port, *(ch->ch_rqueue + tail + i), TTY_BREAK); - else if (*(ch->ch_equeue + tail + i) & UART_LSR_PE) - tty_insert_flip_char(tp->port, *(ch->ch_rqueue + tail + i), TTY_PARITY); - else if (*(ch->ch_equeue + tail + i) & UART_LSR_FE) - tty_insert_flip_char(tp->port, *(ch->ch_rqueue + tail + i), TTY_FRAME); + tty_insert_flip_char(tp->port, + *(ch->ch_rqueue + tail + i), + TTY_BREAK); + else if (*(ch->ch_equeue + tail + i) & + UART_LSR_PE) + tty_insert_flip_char(tp->port, + *(ch->ch_rqueue + tail + i), + TTY_PARITY); + else if (*(ch->ch_equeue + tail + i) & + UART_LSR_FE) + tty_insert_flip_char(tp->port, + *(ch->ch_rqueue + tail + i), + TTY_FRAME); else - tty_insert_flip_char(tp->port, *(ch->ch_rqueue + tail + i), TTY_NORMAL); + tty_insert_flip_char(tp->port, + *(ch->ch_rqueue + tail + i), + TTY_NORMAL); } } else { - tty_insert_flip_string(tp->port, ch->ch_rqueue + tail, s); + tty_insert_flip_string(tp->port, + ch->ch_rqueue + tail, + s); } tail += s; @@ -801,8 +836,8 @@ static void dgnc_set_custom_speed(struct channel_t *ch, uint newrate) */ if (testrate_high != newrate) { /* - * Otherwise, pick the rate that is closer (i.e. whichever rate - * has a smaller delta). + * Otherwise, pick the rate that is closer + * (i.e. whichever rate has a smaller delta). */ deltahigh = testrate_high - newrate; deltalow = newrate - testrate_low; @@ -844,7 +879,8 @@ void dgnc_check_queue_flow_control(struct channel_t *ch) */ if (qleft < 256) { /* HWFLOW */ - if (ch->ch_digi.digi_flags & CTSPACE || ch->ch_c_cflag & CRTSCTS) { + if (ch->ch_digi.digi_flags & CTSPACE || + ch->ch_c_cflag & CRTSCTS) { if (!(ch->ch_flags & CH_RECEIVER_OFF)) { ch->ch_bd->bd_ops->disable_receiver(ch); ch->ch_flags |= (CH_RECEIVER_OFF); @@ -876,7 +912,8 @@ void dgnc_check_queue_flow_control(struct channel_t *ch) */ if (qleft > (RQUEUESIZE / 2)) { /* HWFLOW */ - if (ch->ch_digi.digi_flags & RTSPACE || ch->ch_c_cflag & CRTSCTS) { + if (ch->ch_digi.digi_flags & RTSPACE || + ch->ch_c_cflag & CRTSCTS) { if (ch->ch_flags & CH_RECEIVER_OFF) { ch->ch_bd->bd_ops->enable_receiver(ch); ch->ch_flags &= ~(CH_RECEIVER_OFF); @@ -928,7 +965,8 @@ void dgnc_wakeup_writes(struct channel_t *ch) * the queue AND FIFO are both empty. */ if (ch->ch_tun.un_flags & UN_EMPTY) { - if ((qlen == 0) && (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0)) { + if ((qlen == 0) && + (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0)) { ch->ch_tun.un_flags &= ~(UN_EMPTY); /* @@ -969,7 +1007,8 @@ void dgnc_wakeup_writes(struct channel_t *ch) * the queue AND FIFO are both empty. */ if (ch->ch_pun.un_flags & UN_EMPTY) { - if ((qlen == 0) && (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0)) + if ((qlen == 0) && + (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0)) ch->ch_pun.un_flags &= ~(UN_EMPTY); } @@ -1063,7 +1102,8 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file) */ spin_unlock_irqrestore(&ch->ch_lock, flags); - rc = wait_event_interruptible(ch->ch_flags_wait, ((ch->ch_flags & CH_OPENING) == 0)); + rc = wait_event_interruptible(ch->ch_flags_wait, + ((ch->ch_flags & CH_OPENING) == 0)); /* If ret is non-zero, user ctrl-c'ed us */ if (rc) @@ -1077,7 +1117,8 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file) * ch_flags_wait to wake us back up. */ rc = wait_event_interruptible(ch->ch_flags_wait, - (((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_CLOSING) == 0)); + (((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & + UN_CLOSING) == 0)); /* If ret is non-zero, user ctrl-c'ed us */ if (rc) @@ -1196,7 +1237,9 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file) * * Wait for DCD, if needed. */ -static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struct channel_t *ch) +static int dgnc_block_til_ready(struct tty_struct *tty, + struct file *file, + struct channel_t *ch) { int retval = 0; struct un_t *un = NULL; @@ -1204,7 +1247,8 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc uint old_flags = 0; int sleep_on_un_flags = 0; - if (!tty || tty->magic != TTY_MAGIC || !file || !ch || ch->magic != DGNC_CHANNEL_MAGIC) + if (!tty || tty->magic != TTY_MAGIC || !file || !ch || + ch->magic != DGNC_CHANNEL_MAGIC) return -ENXIO; un = tty->driver_data; @@ -1221,7 +1265,8 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc sleep_on_un_flags = 0; /* - * If board has failed somehow during our sleep, bail with error. + * If board has failed somehow during our sleep, + * bail with error. */ if (ch->ch_bd->state == BOARD_FAILED) { retval = -ENXIO; @@ -1241,7 +1286,9 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc * touched safely, the close routine will signal the * ch_wait_flags to wake us back up. */ - if (!((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_CLOSING)) { + if (!((ch->ch_tun.un_flags | + ch->ch_pun.un_flags) & + UN_CLOSING)) { /* * Our conditions to leave cleanly and happily: @@ -1294,11 +1341,13 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc spin_unlock_irqrestore(&ch->ch_lock, flags); /* - * Wait for something in the flags to change from the current value. + * Wait for something in the flags to change + * from the current value. */ if (sleep_on_un_flags) retval = wait_event_interruptible(un->un_flags_wait, - (old_flags != (ch->ch_tun.un_flags | ch->ch_pun.un_flags))); + (old_flags != (ch->ch_tun.un_flags | + ch->ch_pun.un_flags))); else retval = wait_event_interruptible(ch->ch_flags_wait, (old_flags != ch->ch_flags)); @@ -1417,7 +1466,8 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) * Only officially close channel if count is 0 and * DIGI_PRINTER bit is not set. */ - if ((ch->ch_open_count == 0) && !(ch->ch_digi.digi_flags & DIGI_PRINTER)) { + if ((ch->ch_open_count == 0) && + !(ch->ch_digi.digi_flags & DIGI_PRINTER)) { ch->ch_flags &= ~(CH_STOPI | CH_FORCED_STOPI); @@ -1574,15 +1624,17 @@ static int dgnc_maxcps_room(struct tty_struct *tty, int bytes_available) int cps_limit = 0; unsigned long current_time = jiffies; unsigned long buffer_time = current_time + - (HZ * ch->ch_digi.digi_bufsize) / ch->ch_digi.digi_maxcps; + (HZ * ch->ch_digi.digi_bufsize) / + ch->ch_digi.digi_maxcps; if (ch->ch_cpstime < current_time) { /* buffer is empty */ - ch->ch_cpstime = current_time; /* reset ch_cpstime */ + ch->ch_cpstime = current_time; /* reset ch_cpstime */ cps_limit = ch->ch_digi.digi_bufsize; } else if (ch->ch_cpstime < buffer_time) { /* still room in the buffer */ - cps_limit = ((buffer_time - ch->ch_cpstime) * ch->ch_digi.digi_maxcps) / HZ; + cps_limit = ((buffer_time - ch->ch_cpstime) * + ch->ch_digi.digi_maxcps) / HZ; } else { /* no room in the buffer */ cps_limit = 0; @@ -2080,7 +2132,8 @@ static inline int dgnc_get_mstat(struct channel_t *ch) /* * Return modem signals to ld. */ -static int dgnc_get_modem_info(struct channel_t *ch, unsigned int __user *value) +static int dgnc_get_modem_info(struct channel_t *ch, + unsigned int __user *value) { int result; @@ -2101,7 +2154,9 @@ static int dgnc_get_modem_info(struct channel_t *ch, unsigned int __user *value * * Set modem signals, called by ld. */ -static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command, unsigned int __user *value) +static int dgnc_set_modem_info(struct tty_struct *tty, + unsigned int command, + unsigned int __user *value) { struct dgnc_board *bd; struct channel_t *ch; @@ -2184,7 +2239,8 @@ static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command, uns * * */ -static int dgnc_tty_digigeta(struct tty_struct *tty, struct digi_t __user *retinfo) +static int dgnc_tty_digigeta(struct tty_struct *tty, + struct digi_t __user *retinfo) { struct channel_t *ch; struct un_t *un; @@ -2226,7 +2282,8 @@ static int dgnc_tty_digigeta(struct tty_struct *tty, struct digi_t __user *retin * * */ -static int dgnc_tty_digiseta(struct tty_struct *tty, struct digi_t __user *new_info) +static int dgnc_tty_digiseta(struct tty_struct *tty, + struct digi_t __user *new_info) { struct dgnc_board *bd; struct channel_t *ch; @@ -2257,17 +2314,21 @@ static int dgnc_tty_digiseta(struct tty_struct *tty, struct digi_t __user *new_i /* * Handle transistions to and from RTS Toggle. */ - if (!(ch->ch_digi.digi_flags & DIGI_RTS_TOGGLE) && (new_digi.digi_flags & DIGI_RTS_TOGGLE)) + if (!(ch->ch_digi.digi_flags & DIGI_RTS_TOGGLE) && + (new_digi.digi_flags & DIGI_RTS_TOGGLE)) ch->ch_mostat &= ~(UART_MCR_RTS); - if ((ch->ch_digi.digi_flags & DIGI_RTS_TOGGLE) && !(new_digi.digi_flags & DIGI_RTS_TOGGLE)) + if ((ch->ch_digi.digi_flags & DIGI_RTS_TOGGLE) && + !(new_digi.digi_flags & DIGI_RTS_TOGGLE)) ch->ch_mostat |= (UART_MCR_RTS); /* * Handle transistions to and from DTR Toggle. */ - if (!(ch->ch_digi.digi_flags & DIGI_DTR_TOGGLE) && (new_digi.digi_flags & DIGI_DTR_TOGGLE)) + if (!(ch->ch_digi.digi_flags & DIGI_DTR_TOGGLE) && + (new_digi.digi_flags & DIGI_DTR_TOGGLE)) ch->ch_mostat &= ~(UART_MCR_DTR); - if ((ch->ch_digi.digi_flags & DIGI_DTR_TOGGLE) && !(new_digi.digi_flags & DIGI_DTR_TOGGLE)) + if ((ch->ch_digi.digi_flags & DIGI_DTR_TOGGLE) && + !(new_digi.digi_flags & DIGI_DTR_TOGGLE)) ch->ch_mostat |= (UART_MCR_DTR); memcpy(&ch->ch_digi, &new_digi, sizeof(new_digi)); @@ -2304,7 +2365,8 @@ static int dgnc_tty_digiseta(struct tty_struct *tty, struct digi_t __user *new_i /* * dgnc_set_termios() */ -static void dgnc_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios) +static void dgnc_tty_set_termios(struct tty_struct *tty, + struct ktermios *old_termios) { struct dgnc_board *bd; struct channel_t *ch; @@ -2668,7 +2730,8 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, spin_unlock_irqrestore(&ch->ch_lock, flags); - rc = put_user(C_CLOCAL(tty) ? 1 : 0, (unsigned long __user *) arg); + rc = put_user(C_CLOCAL(tty) ? 1 : 0, + (unsigned long __user *) arg); return rc; case TIOCSSOFTCAR: @@ -2679,7 +2742,8 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, return rc; spin_lock_irqsave(&ch->ch_lock, flags); - tty->termios.c_cflag = ((tty->termios.c_cflag & ~CLOCAL) | (arg ? CLOCAL : 0)); + tty->termios.c_cflag = ((tty->termios.c_cflag & ~CLOCAL) | + (arg ? CLOCAL : 0)); ch->ch_bd->bd_ops->param(tty); spin_unlock_irqrestore(&ch->ch_lock, flags); @@ -2728,12 +2792,14 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, ch->ch_bd->bd_ops->flush_uart_write(ch); if (ch->ch_tun.un_flags & (UN_LOW|UN_EMPTY)) { - ch->ch_tun.un_flags &= ~(UN_LOW|UN_EMPTY); + ch->ch_tun.un_flags &= + ~(UN_LOW|UN_EMPTY); wake_up_interruptible(&ch->ch_tun.un_flags_wait); } if (ch->ch_pun.un_flags & (UN_LOW|UN_EMPTY)) { - ch->ch_pun.un_flags &= ~(UN_LOW|UN_EMPTY); + ch->ch_pun.un_flags &= + ~(UN_LOW|UN_EMPTY); wake_up_interruptible(&ch->ch_pun.un_flags_wait); } @@ -2817,7 +2883,9 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, case DIGI_LOOPBACK: { uint loopback = 0; - /* Let go of locks when accessing user space, could sleep */ + /* Let go of locks when accessing user space, + * could sleep + */ spin_unlock_irqrestore(&ch->ch_lock, flags); rc = get_user(loopback, (unsigned int __user *) arg); if (rc) @@ -2915,10 +2983,12 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, /* NOTE: MORE EVENTS NEEDS TO BE ADDED HERE */ if (ch->ch_flags & CH_BREAK_SENDING) events |= EV_TXB; - if ((ch->ch_flags & CH_STOP) || (ch->ch_flags & CH_FORCED_STOP)) + if ((ch->ch_flags & CH_STOP) || + (ch->ch_flags & CH_FORCED_STOP)) events |= (EV_OPU | EV_OPS); - if ((ch->ch_flags & CH_STOPI) || (ch->ch_flags & CH_FORCED_STOPI)) + if ((ch->ch_flags & CH_STOPI) || + (ch->ch_flags & CH_FORCED_STOPI)) events |= (EV_IPU | EV_IPS); spin_unlock_irqrestore(&ch->ch_lock, flags); From 2d9920eca404c785483598980547ff3be58eddd9 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:39 +0530 Subject: [PATCH 1205/2431] staging: dgnc: remove unused variables These variables were only assigned some values but were never used. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_cls.c | 4 +--- drivers/staging/dgnc/dgnc_tty.c | 11 ++--------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 76fe4b2935b5..24fc28c0c966 100644 --- a/drivers/staging/dgnc/dgnc_cls.c +++ b/drivers/staging/dgnc/dgnc_cls.c @@ -854,10 +854,8 @@ static void cls_copy_data_from_uart_to_queue(struct channel_t *ch) * Discard character if we are ignoring the error mask. */ if (linestatus & error_mask) { - unsigned char discard; - linestatus = 0; - discard = readb(&ch->ch_cls_uart->txrx); + readb(&ch->ch_cls_uart->txrx); continue; } diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index 8a6f9e222e12..cdc78f80c918 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -1398,12 +1398,10 @@ static void dgnc_tty_hangup(struct tty_struct *tty) */ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) { - struct ktermios *ts; struct dgnc_board *bd; struct channel_t *ch; struct un_t *un; unsigned long flags; - int rc = 0; if (!tty || tty->magic != TTY_MAGIC) return; @@ -1420,8 +1418,6 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) if (!bd || bd->magic != DGNC_BOARD_MAGIC) return; - ts = &tty->termios; - spin_lock_irqsave(&ch->ch_lock, flags); /* @@ -1484,7 +1480,7 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) /* wait for output to drain */ /* This will also return if we take an interrupt */ - rc = bd->bd_ops->drain(tty, 0); + bd->bd_ops->drain(tty, 0); dgnc_tty_flush_buffer(tty); tty_ldisc_flush(tty); @@ -1737,7 +1733,6 @@ static int dgnc_tty_write(struct tty_struct *tty, struct channel_t *ch = NULL; struct un_t *un = NULL; int bufcount = 0, n = 0; - int orig_count = 0; unsigned long flags; ushort head; ushort tail; @@ -1763,7 +1758,6 @@ static int dgnc_tty_write(struct tty_struct *tty, * This helps to figure out if we should ask the FEP * to send us an event when it has more space available. */ - orig_count = count; spin_lock_irqsave(&ch->ch_lock, flags); @@ -2031,7 +2025,6 @@ static void dgnc_tty_wait_until_sent(struct tty_struct *tty, int timeout) struct dgnc_board *bd; struct channel_t *ch; struct un_t *un; - int rc; if (!tty || tty->magic != TTY_MAGIC) return; @@ -2048,7 +2041,7 @@ static void dgnc_tty_wait_until_sent(struct tty_struct *tty, int timeout) if (!bd || bd->magic != DGNC_BOARD_MAGIC) return; - rc = bd->bd_ops->drain(tty, 0); + bd->bd_ops->drain(tty, 0); } From 60acb623c9f9431e84485a10347dab7e4801b3e1 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:44 +0530 Subject: [PATCH 1206/2431] staging: dgnc: change style of NULL comparison Change the NULL comparison style as warned by checkpatch. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_tty.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index cdc78f80c918..a8d50a542ad5 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -1553,7 +1553,7 @@ static int dgnc_tty_chars_in_buffer(struct tty_struct *tty) uint chars = 0; unsigned long flags; - if (tty == NULL) + if (!tty) return 0; un = tty->driver_data; @@ -1658,7 +1658,7 @@ static int dgnc_tty_write_room(struct tty_struct *tty) int ret = 0; unsigned long flags; - if (tty == NULL || dgnc_TmpWriteBuf == NULL) + if (!tty || !dgnc_TmpWriteBuf) return 0; un = tty->driver_data; @@ -1739,7 +1739,7 @@ static int dgnc_tty_write(struct tty_struct *tty, ushort tmask; uint remain; - if (tty == NULL || dgnc_TmpWriteBuf == NULL) + if (!tty || !dgnc_TmpWriteBuf) return 0; un = tty->driver_data; From e24bb0ed81795731c8cca4d3ecbac04862fbf128 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:46 +0530 Subject: [PATCH 1207/2431] staging: dgnc: remove NULL test This NULL test is not required as iounmap will validate the argument. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_cls.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 24fc28c0c966..944982a46e4b 100644 --- a/drivers/staging/dgnc/dgnc_cls.c +++ b/drivers/staging/dgnc/dgnc_cls.c @@ -1307,6 +1307,5 @@ static void cls_vpd(struct dgnc_board *brd) } pr_info("\n"); - if (re_map_vpdbase) - iounmap(re_map_vpdbase); + iounmap(re_map_vpdbase); } From 482e191d61a85c87e033a650e755d3a4361a6158 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:48 +0530 Subject: [PATCH 1208/2431] staging: dgnc: remove initialization of global globals variable will be initialied to 0 and the global pointers will be to NULL. No need to initialize them separately. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_driver.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 7546aff65002..7827ceb830a9 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -708,13 +708,6 @@ static void dgnc_poll_handler(ulong dummy) */ static void dgnc_init_globals(void) { - int i = 0; - - dgnc_NumBoards = 0; - - for (i = 0; i < MAXBOARDS; i++) - dgnc_Board[i] = NULL; - init_timer(&dgnc_poll_timer); } From 6d99d6a3cffdcbf1705ebd41b528fc31feaa7966 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:49 +0530 Subject: [PATCH 1209/2431] staging: dgnc: remove dgnc_init_globals function The dgnc_init_globals() function is only initializing the timer so initialize it directly and remove dgnc_init_globals() and change the comment appropriately. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_driver.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 7827ceb830a9..ae81a8b1184e 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -39,7 +39,6 @@ MODULE_SUPPORTED_DEVICE("dgnc"); */ static int dgnc_start(void); static int dgnc_finalize_board_init(struct dgnc_board *brd); -static void dgnc_init_globals(void); static int dgnc_found_board(struct pci_dev *pdev, int id); static void dgnc_cleanup_board(struct dgnc_board *brd); static void dgnc_poll_handler(ulong dummy); @@ -216,8 +215,8 @@ static int dgnc_start(void) unsigned long flags; struct device *dev; - /* make sure that the globals are init'd before we do anything else */ - dgnc_init_globals(); + /* make sure timer is initialized before we do anything else */ + init_timer(&dgnc_poll_timer); /* * Register our base character device into the kernel. @@ -698,16 +697,3 @@ static void dgnc_poll_handler(ulong dummy) if (!dgnc_poll_stop) add_timer(&dgnc_poll_timer); } - -/* - * dgnc_init_globals() - * - * This is where we initialize the globals from the static insmod - * configuration variables. These are declared near the head of - * this file. - */ -static void dgnc_init_globals(void) -{ - init_timer(&dgnc_poll_timer); -} - From 51abf45c23872df0a43dbe849eb4439ebda6145f Mon Sep 17 00:00:00 2001 From: Salah Triki Date: Sun, 4 Oct 2015 02:49:48 +0100 Subject: [PATCH 1210/2431] staging: dgnc: take a lock when storing value in dgnc_poll_tick Reads of dgnc_poll_tick are protected by dgnc_poll_lock spinlock, but the write to dgnc_poll_tick is not. It could theoretically race. Signed-off-by: Salah Triki Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_driver.c | 2 +- drivers/staging/dgnc/dgnc_driver.h | 1 + drivers/staging/dgnc/dgnc_sysfs.c | 9 ++++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index ae81a8b1184e..ce2d1c7ed29e 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -63,6 +63,7 @@ static const struct file_operations dgnc_BoardFops = { uint dgnc_NumBoards; struct dgnc_board *dgnc_Board[MAXBOARDS]; DEFINE_SPINLOCK(dgnc_global_lock); +DEFINE_SPINLOCK(dgnc_poll_lock); /* Poll scheduling lock */ uint dgnc_Major; int dgnc_poll_tick = 20; /* Poll interval - 20 ms */ @@ -74,7 +75,6 @@ static struct class *dgnc_class; /* * Poller stuff */ -static DEFINE_SPINLOCK(dgnc_poll_lock); /* Poll scheduling lock */ static ulong dgnc_poll_time; /* Time of next poll */ static uint dgnc_poll_stop; /* Used to tell poller to stop */ static struct timer_list dgnc_poll_timer; diff --git a/drivers/staging/dgnc/dgnc_driver.h b/drivers/staging/dgnc/dgnc_driver.h index 06ece5151fe4..c61884c14777 100644 --- a/drivers/staging/dgnc/dgnc_driver.h +++ b/drivers/staging/dgnc/dgnc_driver.h @@ -390,6 +390,7 @@ struct channel_t { extern uint dgnc_Major; /* Our driver/mgmt major */ extern int dgnc_poll_tick; /* Poll interval - 20 ms */ extern spinlock_t dgnc_global_lock; /* Driver global spinlock */ +extern spinlock_t dgnc_poll_lock; /* Poll scheduling lock */ extern uint dgnc_NumBoards; /* Total number of boards */ extern struct dgnc_board *dgnc_Board[MAXBOARDS]; /* Array of board structs */ diff --git a/drivers/staging/dgnc/dgnc_sysfs.c b/drivers/staging/dgnc/dgnc_sysfs.c index 44db8703eba4..48b605678c32 100644 --- a/drivers/staging/dgnc/dgnc_sysfs.c +++ b/drivers/staging/dgnc/dgnc_sysfs.c @@ -56,11 +56,18 @@ static ssize_t dgnc_driver_pollrate_show(struct device_driver *ddp, char *buf) static ssize_t dgnc_driver_pollrate_store(struct device_driver *ddp, const char *buf, size_t count) { + unsigned long flags; + int tick; int ret; - ret = sscanf(buf, "%d\n", &dgnc_poll_tick); + ret = sscanf(buf, "%d\n", &tick); if (ret != 1) return -EINVAL; + + spin_lock_irqsave(&dgnc_poll_lock, flags); + dgnc_poll_tick = tick; + spin_unlock_irqrestore(&dgnc_poll_lock, flags); + return count; } static DRIVER_ATTR(pollrate, (S_IRUSR | S_IWUSR), dgnc_driver_pollrate_show, From 851f7c0e62dc564bf99e295b3c498d3d96a73b4a Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 19:24:05 +0200 Subject: [PATCH 1211/2431] Staging: olpc_dcon: Replace timespec with ktime_t Struct timespec will overflow in year 2038, here it will not cause an overflow because it is used with timespec_sub, but still has to be removed as part of y2038 changes. Replace it with ktime_t. Also use monotonic instead of real-time by replacing functions getnstimeofday with ktime_get. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/olpc_dcon/olpc_dcon.c | 27 +++++++++++++-------------- drivers/staging/olpc_dcon/olpc_dcon.h | 4 ++-- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index d115f5c0e341..9038e0b3f113 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon.c +++ b/drivers/staging/olpc_dcon/olpc_dcon.c @@ -238,13 +238,12 @@ static void dcon_sleep(struct dcon_priv *dcon, bool sleep) */ static void dcon_load_holdoff(struct dcon_priv *dcon) { - struct timespec delta_t, now; + ktime_t delta_t, now; while (1) { - getnstimeofday(&now); - delta_t = timespec_sub(now, dcon->load_time); - if (delta_t.tv_sec != 0 || - delta_t.tv_nsec > NSEC_PER_MSEC * 20) { + now = ktime_get(); + delta_t = ktime_sub(now, dcon->load_time); + if (ktime_to_ns(delta_t) > NSEC_PER_MSEC * 20) { break; } mdelay(4); @@ -325,19 +324,19 @@ static void dcon_source_switch(struct work_struct *work) /* And turn off the DCON */ pdata->set_dconload(1); - getnstimeofday(&dcon->load_time); + dcon->load_time = ktime_get(); pr_info("The CPU has control\n"); break; case DCON_SOURCE_DCON: { - struct timespec delta_t; + ktime_t delta_t; pr_info("dcon_source_switch to DCON\n"); /* Clear DCONLOAD - this implies that the DCON is in control */ pdata->set_dconload(0); - getnstimeofday(&dcon->load_time); + dcon->load_time = ktime_get(); wait_event_timeout(dcon->waitq, dcon->switched, HZ/2); @@ -355,14 +354,14 @@ static void dcon_source_switch(struct work_struct *work) * deassert and reassert, and hope for the best. * see http://dev.laptop.org/ticket/9664 */ - delta_t = timespec_sub(dcon->irq_time, dcon->load_time); - if (dcon->switched && delta_t.tv_sec == 0 && - delta_t.tv_nsec < NSEC_PER_MSEC * 20) { + delta_t = ktime_sub(dcon->irq_time, dcon->load_time); + if (dcon->switched && ktime_to_ns(delta_t) + < NSEC_PER_MSEC * 20) { pr_err("missed loading, retrying\n"); pdata->set_dconload(1); mdelay(41); pdata->set_dconload(0); - getnstimeofday(&dcon->load_time); + dcon->load_time = ktime_get(); mdelay(41); } } @@ -742,7 +741,7 @@ irqreturn_t dcon_interrupt(int irq, void *id) case 2: /* switch to DCON mode */ case 1: /* switch to CPU mode */ dcon->switched = true; - getnstimeofday(&dcon->irq_time); + dcon->irq_time = ktime_get(); wake_up(&dcon->waitq); break; @@ -756,7 +755,7 @@ irqreturn_t dcon_interrupt(int irq, void *id) */ if (dcon->curr_src != dcon->pending_src && !dcon->switched) { dcon->switched = true; - getnstimeofday(&dcon->irq_time); + dcon->irq_time = ktime_get(); wake_up(&dcon->waitq); pr_debug("switching w/ status 0/0\n"); } else { diff --git a/drivers/staging/olpc_dcon/olpc_dcon.h b/drivers/staging/olpc_dcon/olpc_dcon.h index d06e19db1b80..215e7ec4dea2 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon.h +++ b/drivers/staging/olpc_dcon/olpc_dcon.h @@ -79,8 +79,8 @@ struct dcon_priv { /* Variables used during switches */ bool switched; - struct timespec irq_time; - struct timespec load_time; + ktime_t irq_time; + ktime_t load_time; /* Current output type; true == mono, false == color */ bool mono; From 4e719935ea07eae2b9674c9578e8941601e4380d Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 22:04:22 +0200 Subject: [PATCH 1212/2431] Staging: comedi: Use mutex instead of semaphore in usbduxsigma.c Replace binary semaphore with mutex because mutex gives better performance. This change is safe because the thread that decrements the value of semaphore is also the one that increments it, and acts like a mutex where owner of the lock is the only one that can release the lock. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxsigma.c | 70 ++++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index d49147bc2786..456e9f13becb 100644 --- a/drivers/staging/comedi/drivers/usbduxsigma.c +++ b/drivers/staging/comedi/drivers/usbduxsigma.c @@ -173,7 +173,7 @@ struct usbduxsigma_private { unsigned int ai_interval; /* commands */ u8 *dux_commands; - struct semaphore sem; + struct mutex mut; }; static void usbduxsigma_unlink_urbs(struct urb **urbs, int num_urbs) @@ -199,10 +199,10 @@ static int usbduxsigma_ai_cancel(struct comedi_device *dev, { struct usbduxsigma_private *devpriv = dev->private; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* unlink only if it is really running */ usbduxsigma_ai_stop(dev, devpriv->ai_cmd_running); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 0; } @@ -325,10 +325,10 @@ static int usbduxsigma_ao_cancel(struct comedi_device *dev, { struct usbduxsigma_private *devpriv = dev->private; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* unlink only if it is really running */ usbduxsigma_ao_stop(dev, devpriv->ao_cmd_running); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 0; } @@ -609,19 +609,19 @@ static int usbduxsigma_ai_inttrig(struct comedi_device *dev, if (trig_num != cmd->start_arg) return -EINVAL; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (!devpriv->ai_cmd_running) { devpriv->ai_cmd_running = 1; ret = usbduxsigma_submit_urbs(dev, devpriv->ai_urbs, devpriv->n_ai_urbs, 1); if (ret < 0) { devpriv->ai_cmd_running = 0; - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } s->async->inttrig = NULL; } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 1; } @@ -638,7 +638,7 @@ static int usbduxsigma_ai_cmd(struct comedi_device *dev, int ret; int i; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->high_speed) { /* @@ -673,7 +673,7 @@ static int usbduxsigma_ai_cmd(struct comedi_device *dev, ret = usbbuxsigma_send_cmd(dev, USBBUXSIGMA_AD_CMD); if (ret < 0) { - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -686,7 +686,7 @@ static int usbduxsigma_ai_cmd(struct comedi_device *dev, devpriv->n_ai_urbs, 1); if (ret < 0) { devpriv->ai_cmd_running = 0; - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } s->async->inttrig = NULL; @@ -694,7 +694,7 @@ static int usbduxsigma_ai_cmd(struct comedi_device *dev, s->async->inttrig = usbduxsigma_ai_inttrig; } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 0; } @@ -712,9 +712,9 @@ static int usbduxsigma_ai_insn_read(struct comedi_device *dev, int ret; int i; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->ai_cmd_running) { - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return -EBUSY; } @@ -731,7 +731,7 @@ static int usbduxsigma_ai_insn_read(struct comedi_device *dev, /* adc commands */ ret = usbbuxsigma_send_cmd(dev, USBDUXSIGMA_SINGLE_AD_CMD); if (ret < 0) { - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -740,7 +740,7 @@ static int usbduxsigma_ai_insn_read(struct comedi_device *dev, ret = usbduxsigma_receive_cmd(dev, USBDUXSIGMA_SINGLE_AD_CMD); if (ret < 0) { - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -750,7 +750,7 @@ static int usbduxsigma_ai_insn_read(struct comedi_device *dev, val &= 0x00ffffff; /* strip status byte */ data[i] = comedi_offset_munge(s, val); } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return insn->n; } @@ -763,9 +763,9 @@ static int usbduxsigma_ao_insn_read(struct comedi_device *dev, struct usbduxsigma_private *devpriv = dev->private; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); ret = comedi_readback_insn_read(dev, s, insn, data); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -780,9 +780,9 @@ static int usbduxsigma_ao_insn_write(struct comedi_device *dev, int ret; int i; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->ao_cmd_running) { - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return -EBUSY; } @@ -792,12 +792,12 @@ static int usbduxsigma_ao_insn_write(struct comedi_device *dev, devpriv->dux_commands[3] = chan; /* channel number */ ret = usbbuxsigma_send_cmd(dev, USBDUXSIGMA_DA_CMD); if (ret < 0) { - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } s->readback[chan] = data[i]; } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return insn->n; } @@ -813,19 +813,19 @@ static int usbduxsigma_ao_inttrig(struct comedi_device *dev, if (trig_num != cmd->start_arg) return -EINVAL; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (!devpriv->ao_cmd_running) { devpriv->ao_cmd_running = 1; ret = usbduxsigma_submit_urbs(dev, devpriv->ao_urbs, devpriv->n_ao_urbs, 0); if (ret < 0) { devpriv->ao_cmd_running = 0; - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } s->async->inttrig = NULL; } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 1; } @@ -856,7 +856,7 @@ static int usbduxsigma_ao_cmdtest(struct comedi_device *dev, err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); if (err) { - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 1; } @@ -905,7 +905,7 @@ static int usbduxsigma_ao_cmd(struct comedi_device *dev, struct comedi_cmd *cmd = &s->async->cmd; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* * For now, only "scan" timing is supported. A future version may @@ -924,7 +924,7 @@ static int usbduxsigma_ao_cmd(struct comedi_device *dev, devpriv->n_ao_urbs, 0); if (ret < 0) { devpriv->ao_cmd_running = 0; - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } s->async->inttrig = NULL; @@ -932,7 +932,7 @@ static int usbduxsigma_ao_cmd(struct comedi_device *dev, s->async->inttrig = usbduxsigma_ao_inttrig; } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 0; } @@ -963,7 +963,7 @@ static int usbduxsigma_dio_insn_bits(struct comedi_device *dev, struct usbduxsigma_private *devpriv = dev->private; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); comedi_dio_update_state(s, data); @@ -990,7 +990,7 @@ static int usbduxsigma_dio_insn_bits(struct comedi_device *dev, ret = insn->n; done: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -1462,7 +1462,7 @@ static int usbduxsigma_auto_attach(struct comedi_device *dev, if (!devpriv) return -ENOMEM; - sema_init(&devpriv->sem, 1); + mutex_init(&devpriv->mut); usb_set_intfdata(intf, devpriv); @@ -1576,7 +1576,7 @@ static void usbduxsigma_detach(struct comedi_device *dev) if (!devpriv) return; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* force unlink all urbs */ usbduxsigma_ai_stop(dev, 1); @@ -1585,7 +1585,7 @@ static void usbduxsigma_detach(struct comedi_device *dev) usbduxsigma_free_usb_buffers(dev); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); } static struct comedi_driver usbduxsigma_driver = { From 1e5cae2f0b3460bf68ebe948bb5caa31c0281c6c Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 22:05:57 +0200 Subject: [PATCH 1213/2431] Staging: comedi: Use mutex instead of semaphore in usbdux.c Replace binary semaphore with mutex because mutex gives better performance. This change is safe because the thread that decrements the value of semaphore is also the one that increments it, and acts like a mutex where owner of the lock is the only one that can release the lock. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbdux.c | 64 ++++++++++++------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index 39710f2297a6..f4f05d29d30d 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c @@ -210,7 +210,7 @@ struct usbdux_private { unsigned int ai_interval; /* commands */ u8 *dux_commands; - struct semaphore sem; + struct mutex mut; }; static void usbdux_unlink_urbs(struct urb **urbs, int num_urbs) @@ -237,10 +237,10 @@ static int usbdux_ai_cancel(struct comedi_device *dev, struct usbdux_private *devpriv = dev->private; /* prevent other CPUs from submitting new commands just now */ - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* unlink only if the urb really has been submitted */ usbdux_ai_stop(dev, devpriv->ai_cmd_running); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 0; } @@ -365,10 +365,10 @@ static int usbdux_ao_cancel(struct comedi_device *dev, struct usbdux_private *devpriv = dev->private; /* prevent other CPUs from submitting a command just now */ - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* unlink only if it is really running */ usbdux_ao_stop(dev, devpriv->ao_cmd_running); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 0; } @@ -646,7 +646,7 @@ static int usbdux_ai_inttrig(struct comedi_device *dev, if (trig_num != cmd->start_arg) return -EINVAL; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (!devpriv->ai_cmd_running) { devpriv->ai_cmd_running = 1; @@ -662,7 +662,7 @@ static int usbdux_ai_inttrig(struct comedi_device *dev, } ai_trig_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -675,7 +675,7 @@ static int usbdux_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) int i; /* block other CPUs from starting an ai_cmd */ - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->ai_cmd_running) goto ai_cmd_exit; @@ -736,7 +736,7 @@ static int usbdux_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) } ai_cmd_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -754,7 +754,7 @@ static int usbdux_ai_insn_read(struct comedi_device *dev, int ret = -EBUSY; int i; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->ai_cmd_running) goto ai_read_exit; @@ -782,7 +782,7 @@ static int usbdux_ai_insn_read(struct comedi_device *dev, } ai_read_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret ? ret : insn->n; } @@ -795,9 +795,9 @@ static int usbdux_ao_insn_read(struct comedi_device *dev, struct usbdux_private *devpriv = dev->private; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); ret = comedi_readback_insn_read(dev, s, insn, data); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -814,7 +814,7 @@ static int usbdux_ao_insn_write(struct comedi_device *dev, int ret = -EBUSY; int i; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->ao_cmd_running) goto ao_write_exit; @@ -838,7 +838,7 @@ static int usbdux_ao_insn_write(struct comedi_device *dev, } ao_write_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret ? ret : insn->n; } @@ -854,7 +854,7 @@ static int usbdux_ao_inttrig(struct comedi_device *dev, if (trig_num != cmd->start_arg) return -EINVAL; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (!devpriv->ao_cmd_running) { devpriv->ao_cmd_running = 1; @@ -870,7 +870,7 @@ static int usbdux_ao_inttrig(struct comedi_device *dev, } ao_trig_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -960,7 +960,7 @@ static int usbdux_ao_cmd(struct comedi_device *dev, struct comedi_subdevice *s) struct comedi_cmd *cmd = &s->async->cmd; int ret = -EBUSY; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->ao_cmd_running) goto ao_cmd_exit; @@ -1002,7 +1002,7 @@ static int usbdux_ao_cmd(struct comedi_device *dev, struct comedi_subdevice *s) } ao_cmd_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -1033,7 +1033,7 @@ static int usbdux_dio_insn_bits(struct comedi_device *dev, struct usbdux_private *devpriv = dev->private; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); comedi_dio_update_state(s, data); @@ -1055,7 +1055,7 @@ static int usbdux_dio_insn_bits(struct comedi_device *dev, data[1] = le16_to_cpu(devpriv->insn_buf[1]); dio_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret ? ret : insn->n; } @@ -1070,7 +1070,7 @@ static int usbdux_counter_read(struct comedi_device *dev, int ret = 0; int i; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); for (i = 0; i < insn->n; i++) { ret = send_dux_commands(dev, USBDUX_CMD_TIMER_RD); @@ -1084,7 +1084,7 @@ static int usbdux_counter_read(struct comedi_device *dev, } counter_read_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret ? ret : insn->n; } @@ -1100,7 +1100,7 @@ static int usbdux_counter_write(struct comedi_device *dev, int ret = 0; int i; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); devpriv->dux_commands[1] = chan; @@ -1112,7 +1112,7 @@ static int usbdux_counter_write(struct comedi_device *dev, break; } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret ? ret : insn->n; } @@ -1148,11 +1148,11 @@ static int usbdux_pwm_cancel(struct comedi_device *dev, struct usbdux_private *devpriv = dev->private; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* unlink only if it is really running */ usbdux_pwm_stop(dev, devpriv->pwm_cmd_running); ret = send_dux_commands(dev, USBDUX_CMD_PWM_OFF); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -1257,7 +1257,7 @@ static int usbdux_pwm_start(struct comedi_device *dev, struct usbdux_private *devpriv = dev->private; int ret = 0; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->pwm_cmd_running) goto pwm_start_exit; @@ -1276,7 +1276,7 @@ static int usbdux_pwm_start(struct comedi_device *dev, devpriv->pwm_cmd_running = 0; pwm_start_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -1576,7 +1576,7 @@ static int usbdux_auto_attach(struct comedi_device *dev, if (!devpriv) return -ENOMEM; - sema_init(&devpriv->sem, 1); + mutex_init(&devpriv->mut); usb_set_intfdata(intf, devpriv); @@ -1691,7 +1691,7 @@ static void usbdux_detach(struct comedi_device *dev) if (!devpriv) return; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* force unlink all urbs */ usbdux_pwm_stop(dev, 1); @@ -1700,7 +1700,7 @@ static void usbdux_detach(struct comedi_device *dev) usbdux_free_usb_buffers(dev); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); } static struct comedi_driver usbdux_driver = { From 27a90695e02759ccab58ca610af4f8ed79d8a35c Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 22:07:54 +0200 Subject: [PATCH 1214/2431] Staging: comedi: Use mutex instead of semaphore in usbduxfast.c Replace binary semaphore with mutex because mutex gives better performance. This change is safe because the thread that decrements the value of semaphore is also the one that increments it, and acts like a mutex where owner of the lock is the only one that can release the lock. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/usbduxfast.c | 36 ++++++++++----------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index c6b2a6582127..10f94ec34536 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -160,7 +160,7 @@ struct usbduxfast_private { s8 *inbuf; short int ai_cmd_running; /* asynchronous command is running */ int ignore; /* counter which ignores the first buffers */ - struct semaphore sem; + struct mutex mut; }; /* @@ -221,9 +221,9 @@ static int usbduxfast_ai_cancel(struct comedi_device *dev, struct usbduxfast_private *devpriv = dev->private; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); ret = usbduxfast_ai_stop(dev, 1); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -444,7 +444,7 @@ static int usbduxfast_ai_inttrig(struct comedi_device *dev, if (trig_num != cmd->start_arg) return -EINVAL; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (!devpriv->ai_cmd_running) { devpriv->ai_cmd_running = 1; @@ -452,14 +452,14 @@ static int usbduxfast_ai_inttrig(struct comedi_device *dev, if (ret < 0) { dev_err(dev->class_dev, "urbSubmit: err=%d\n", ret); devpriv->ai_cmd_running = 0; - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } s->async->inttrig = NULL; } else { dev_err(dev->class_dev, "ai is already running\n"); } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return 1; } @@ -472,7 +472,7 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, int j, ret; long steps, steps_tmp; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->ai_cmd_running) { ret = -EBUSY; goto cmd_exit; @@ -751,7 +751,7 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev, } cmd_exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -772,12 +772,12 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, int i, j, n, actual_length; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); if (devpriv->ai_cmd_running) { dev_err(dev->class_dev, "ai_insn_read not possible, async cmd is running\n"); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return -EBUSY; } @@ -799,7 +799,7 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, ret = usbduxfast_send_cmd(dev, SENDADCOMMANDS); if (ret < 0) { - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -809,7 +809,7 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, &actual_length, 10000); if (ret < 0) { dev_err(dev->class_dev, "insn timeout, no data\n"); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } } @@ -820,13 +820,13 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, &actual_length, 10000); if (ret < 0) { dev_err(dev->class_dev, "insn data error: %d\n", ret); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } n = actual_length / sizeof(u16); if ((n % 16) != 0) { dev_err(dev->class_dev, "insn data packet corrupted\n"); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return -EINVAL; } for (j = chan; (j < n) && (i < insn->n); j = j + 16) { @@ -835,7 +835,7 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev, } } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return insn->n; } @@ -930,7 +930,7 @@ static int usbduxfast_auto_attach(struct comedi_device *dev, if (!devpriv) return -ENOMEM; - sema_init(&devpriv->sem, 1); + mutex_init(&devpriv->mut); usb_set_intfdata(intf, devpriv); devpriv->duxbuf = kmalloc(SIZEOFDUXBUF, GFP_KERNEL); @@ -989,7 +989,7 @@ static void usbduxfast_detach(struct comedi_device *dev) if (!devpriv) return; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); usb_set_intfdata(intf, NULL); @@ -1003,7 +1003,7 @@ static void usbduxfast_detach(struct comedi_device *dev) kfree(devpriv->duxbuf); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); } static struct comedi_driver usbduxfast_driver = { From 5a731c70bc79d3d41f37d9bf4ab4d549333bff37 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 22:09:43 +0200 Subject: [PATCH 1215/2431] Staging: comedi: Use mutex instead of semaphore in ni_usb6501.c Replace binary semaphore with mutex because mutex gives better performance. This change is safe because the thread that decrements the value of semaphore is also the one that increments it, and acts like a mutex where owner of the lock is the only one that can release the lock. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ni_usb6501.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/ni_usb6501.c b/drivers/staging/comedi/drivers/ni_usb6501.c index 88de8da3eff3..95b537a8ecdb 100644 --- a/drivers/staging/comedi/drivers/ni_usb6501.c +++ b/drivers/staging/comedi/drivers/ni_usb6501.c @@ -166,7 +166,7 @@ enum commands { struct ni6501_private { struct usb_endpoint_descriptor *ep_rx; struct usb_endpoint_descriptor *ep_tx; - struct semaphore sem; + struct mutex mut; u8 *usb_rx_buf; u8 *usb_tx_buf; }; @@ -183,7 +183,7 @@ static int ni6501_port_command(struct comedi_device *dev, int command, if (command != SET_PORT_DIR && !bitmap) return -EINVAL; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); switch (command) { case READ_PORT: @@ -248,7 +248,7 @@ static int ni6501_port_command(struct comedi_device *dev, int command, ret = -EINVAL; } end: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -265,7 +265,7 @@ static int ni6501_counter_command(struct comedi_device *dev, int command, if ((command == READ_COUNTER || command == WRITE_COUNTER) && !val) return -EINVAL; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); switch (command) { case START_COUNTER: @@ -338,7 +338,7 @@ static int ni6501_counter_command(struct comedi_device *dev, int command, ret = -EINVAL; } end: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -535,7 +535,7 @@ static int ni6501_auto_attach(struct comedi_device *dev, if (ret) return ret; - sema_init(&devpriv->sem, 1); + mutex_init(&devpriv->mut); usb_set_intfdata(intf, devpriv); ret = comedi_alloc_subdevices(dev, 2); @@ -573,14 +573,14 @@ static void ni6501_detach(struct comedi_device *dev) if (!devpriv) return; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); usb_set_intfdata(intf, NULL); kfree(devpriv->usb_rx_buf); kfree(devpriv->usb_tx_buf); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); } static struct comedi_driver ni6501_driver = { From b565b3fbeca1e65702a37ab837ea625284809923 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Sat, 3 Oct 2015 14:52:09 +0300 Subject: [PATCH 1216/2431] Staging: panel: Replace NULL comparison. Use ! operating instead of NULL checks. Addresses "CHECK: Comparison to NULL" from checkpatch.pl. Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/panel/panel.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index 498d6233648f..a7e38758dc55 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c @@ -920,7 +920,7 @@ static void lcd_gotoxy(void) static void lcd_print(char c) { if (lcd.addr.x < lcd.bwidth) { - if (lcd_char_conv != NULL) + if (lcd_char_conv) c = lcd_char_conv[(unsigned char)c]; lcd_write_data(c); lcd.addr.x++; @@ -1118,7 +1118,7 @@ static inline int handle_lcd_special_code(void) break; case '*': /* flash back light using the keypad timer */ - if (scan_timer.function != NULL) { + if (scan_timer.function) { if (lcd.light_tempo == 0 && ((lcd.flags & LCD_FLAG_L) == 0)) lcd_backlight(1); @@ -1200,7 +1200,7 @@ static inline int handle_lcd_special_code(void) char value; int addr; - if (strchr(esc, ';') == NULL) + if (!strchr(esc, ';')) break; esc++; @@ -1246,7 +1246,7 @@ static inline int handle_lcd_special_code(void) } case 'x': /* gotoxy : LxXXX[yYYY]; */ case 'y': /* gotoxy : LyYYY[xXXX]; */ - if (strchr(esc, ';') == NULL) + if (!strchr(esc, ';')) break; while (*esc) { @@ -1844,7 +1844,7 @@ static inline int input_state_high(struct logical_input *input) if ((input->type == INPUT_TYPE_STD) && (input->high_timer == 0)) { input->high_timer++; - if (input->u.std.press_fct != NULL) + if (input->u.std.press_fct) input->u.std.press_fct(input->u.std.press_data); } else if (input->type == INPUT_TYPE_KBD) { /* will turn on the light */ @@ -1924,7 +1924,7 @@ static inline void input_state_falling(struct logical_input *input) if (input->type == INPUT_TYPE_STD) { void (*release_fct)(int) = input->u.std.release_fct; - if (release_fct != NULL) + if (release_fct) release_fct(input->u.std.release_data); } else if (input->type == INPUT_TYPE_KBD) { char *release_str = input->u.kbd.release_str; @@ -2025,7 +2025,7 @@ static void panel_scan_timer(void) static void init_scan_timer(void) { - if (scan_timer.function != NULL) + if (scan_timer.function) return; /* already started */ setup_timer(&scan_timer, (void *)&panel_scan_timer, 0); @@ -2229,7 +2229,7 @@ static void panel_attach(struct parport *port) /* panel_cb.flags = 0 should be PARPORT_DEV_EXCL? */ pprt = parport_register_dev_model(port, "panel", &panel_cb, 0); - if (pprt == NULL) { + if (!pprt) { pr_err("%s: port->number=%d parport=%d, parport_register_device() failed\n", __func__, port->number, parport); return; @@ -2276,10 +2276,10 @@ static void panel_detach(struct parport *port) __func__, port->number, parport); return; } - if (scan_timer.function != NULL) + if (scan_timer.function) del_timer_sync(&scan_timer); - if (pprt != NULL) { + if (pprt) { if (keypad.enabled) { misc_deregister(&keypad_dev); keypad_initialized = 0; From 8668984f8129d5ac7a90c6c0348e8ed4207fc145 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 3 Oct 2015 17:31:30 +0530 Subject: [PATCH 1217/2431] Staging: most: Use module_platform_driver Use module_platform_driver for drivers whose init and exit functions only register and unregister, respectively. Thus remove some boilerplate code. A simplified version of Coccinelle patch - @a@ identifier f, x; @@ -static f(...) { return platform_driver_register(&x); } @b depends on a@ identifier e, a.x; @@ -static e(...) { platform_driver_unregister(&x); } @c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f); @d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_platform_driver; @@ -module_exit(e); +module_platform_driver(x); Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hdm.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 1bb70b738155..c7e956f5fec0 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -926,26 +926,7 @@ static struct platform_driver dim2_driver = { }, }; -/** - * dim2_hdm_init - Driver Registration Routine - */ -static int __init dim2_hdm_init(void) -{ - pr_info("dim2_hdm_init()\n"); - return platform_driver_register(&dim2_driver); -} - -/** - * dim2_hdm_exit - Driver Cleanup Routine - **/ -static void __exit dim2_hdm_exit(void) -{ - pr_info("dim2_hdm_exit()\n"); - platform_driver_unregister(&dim2_driver); -} - -module_init(dim2_hdm_init); -module_exit(dim2_hdm_exit); +module_platform_driver(dim2_driver); MODULE_AUTHOR("Jain Roy Ambi "); MODULE_AUTHOR("Andrey Shvetsov "); From a6d3346d92356d74c7b7b31a44ae52d07fce38e9 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:47 +0900 Subject: [PATCH 1218/2431] staging: wilc1000: fix return type of host_int_set_mac_chnl_num This patch changes return type of host_int_set_mac_chnl_num from s32 to int. s32Error gets return value from wilc_mq_send function that has return type of int. It should be changed return type of host_int_set_mac_chnl_num function by int as well as data type of s32Error. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2cf82b2a2a0a..c635b84c450c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5315,9 +5315,9 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) +int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) { - s32 s32Error = 0; + int s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index fb5cb8a984b3..8bbb59e62342 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -819,7 +819,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum); +int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum); /** * @brief gets the current channel index From 3565ded9f220e86c9560f1cbaed2549edea8e7a3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:48 +0900 Subject: [PATCH 1219/2431] staging: wilc1000: fix NULL comparison style This patch changes NULL comparison style to use ! operator found by checkpatch.pl CHECK: Comparison to NULL could be written "!pstrWFIDrv" drivers/staging/wilc1000/host_interface.c:5324: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c635b84c450c..65bd3250a5fa 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5321,7 +5321,7 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!pstrWFIDrv) { PRINT_ER("driver is null\n"); return -EFAULT; } From 1ef58e42561b759c094528e3f4b1ee1b048bf751 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:49 +0900 Subject: [PATCH 1220/2431] staging: wilc1000: rename s32Error in host_int_set_mac_chnl_num This patch replaces s32Error with result to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 65bd3250a5fa..566e6185e6f1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5317,7 +5317,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, */ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) { - int s32Error = 0; + int result = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; @@ -5332,13 +5332,13 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) msg.body.channel_info.u8SetChan = u8ChNum; msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("wilc mq send fail\n"); - s32Error = -EINVAL; + result = -EINVAL; } - return s32Error; + return result; } From 1c5833ce6309d32a282ffeef86417ccfacc438e3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:51 +0900 Subject: [PATCH 1221/2431] staging: wilc1000: rename u8ChNum of host_int_set_mac_chnl_num This patch replaces u8ChNum with channel that is second argument of host_int_set_mac_chnl_num to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 566e6185e6f1..fe66417efd7c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5315,7 +5315,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, * @date 8 March 2012 * @version 1.0 */ -int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) +int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 channel) { int result = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; @@ -5329,7 +5329,7 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum) /* prepare the set channel message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_CHANNEL; - msg.body.channel_info.u8SetChan = u8ChNum; + msg.body.channel_info.u8SetChan = channel; msg.drvHandler = hWFIDrv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 8bbb59e62342..139dad00e58a 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -819,7 +819,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, * @date 8 March 2012 * @version 1.0 */ -int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 u8ChNum); +int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 channel); /** * @brief gets the current channel index From 5ba48ecca5bb528ee5893513f4e4b5f3c8a7c214 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:52 +0900 Subject: [PATCH 1222/2431] staging: wilc1000: rename hWFIDrv of host_int_set_mac_chnl_num This patch replaces hWFIDrv with wfi_drv that is first argument of host_int_set_mac_chnl_num to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fe66417efd7c..4f683c90a50e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5315,10 +5315,10 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, * @date 8 March 2012 * @version 1.0 */ -int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 channel) +int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel) { int result = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)wfi_drv; struct host_if_msg msg; if (!pstrWFIDrv) { @@ -5330,7 +5330,7 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 channel) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_CHANNEL; msg.body.channel_info.u8SetChan = channel; - msg.drvHandler = hWFIDrv; + msg.drvHandler = wfi_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 139dad00e58a..edcaf5aa0b47 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -819,7 +819,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, * @date 8 March 2012 * @version 1.0 */ -int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 channel); +int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel); /** * @brief gets the current channel index From 244efb1f5df5589c98bc1d0d1850c896151b9caa Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:53 +0900 Subject: [PATCH 1223/2431] staging: wilc1000: fix return type of host_int_wait_msg_queue_idle This patch changes return type of host_int_wait_msg_queue_idle from s32 to int. s32Error gets return value from wilc_mq_send that has return type of int. It should be changed return type of host_int_wait_msg_queue_idle by int as well as data type of s32Error. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4f683c90a50e..2777229d95b5 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5342,9 +5342,9 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel) } -s32 host_int_wait_msg_queue_idle(void) +int host_int_wait_msg_queue_idle(void) { - s32 s32Error = 0; + int s32Error = 0; struct host_if_msg msg; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index edcaf5aa0b47..bc8acdebff89 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -648,7 +648,7 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress); * @date 19 march 2014 * @version 1.0 */ -s32 host_int_wait_msg_queue_idle(void); +int host_int_wait_msg_queue_idle(void); /** * @brief sets a start scan request From 6d6c9bbb070c99d8926308f284e2e13cd8bc3982 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:54 +0900 Subject: [PATCH 1224/2431] staging: wilc1000: rename s32Error in host_int_wait_msg_queue_idle This patch replaces s32Error with result to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2777229d95b5..9f93a5274b91 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5344,7 +5344,7 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel) int host_int_wait_msg_queue_idle(void) { - int s32Error = 0; + int result = 0; struct host_if_msg msg; @@ -5352,16 +5352,16 @@ int host_int_wait_msg_queue_idle(void) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_Q_IDLE; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("wilc mq send fail\n"); - s32Error = -EINVAL; + result = -EINVAL; } /* wait untill MSG Q is empty */ down(&hWaitResponse); - return s32Error; + return result; } From 1bd6dee3c51d3d6e5dbdeec2013dbf293ef18d7a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:56 +0900 Subject: [PATCH 1225/2431] staging: wilc1000: remove blank lines before close brace This patch removes blank lines before close brace '}' CHECK: Blank lines aren't necessary before a close brace '}' drivers/staging/wilc1000/host_interface.c:5366: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9f93a5274b91..39d72acf5375 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5362,7 +5362,6 @@ int host_int_wait_msg_queue_idle(void) down(&hWaitResponse); return result; - } s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) From 63417188f10351945e23ff03af68c605cb18da52 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Sat, 3 Oct 2015 22:55:49 +0200 Subject: [PATCH 1226/2431] staging: rdma: Fix braces around if/else Get rid of all ELSE_AFTER_BRACE type errors reported by checkpatch.pl. Signed-off-by: Martin Kletzander Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ipath/ipath_driver.c | 19 ++++++++----------- drivers/staging/rdma/ipath/ipath_file_ops.c | 12 ++++++------ drivers/staging/rdma/ipath/ipath_iba6110.c | 7 +++---- drivers/staging/rdma/ipath/ipath_init_chip.c | 10 +++++----- drivers/staging/rdma/ipath/ipath_intr.c | 7 +++---- drivers/staging/rdma/ipath/ipath_sysfs.c | 7 +++---- drivers/staging/rdma/ipath/ipath_verbs.c | 4 ++-- 7 files changed, 30 insertions(+), 36 deletions(-) diff --git a/drivers/staging/rdma/ipath/ipath_driver.c b/drivers/staging/rdma/ipath/ipath_driver.c index 871dbe56216a..46d98980d66a 100644 --- a/drivers/staging/rdma/ipath/ipath_driver.c +++ b/drivers/staging/rdma/ipath/ipath_driver.c @@ -490,8 +490,7 @@ static int ipath_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) "Unable to set DMA mask for unit %u: %d\n", dd->ipath_unit, ret); goto bail_regions; - } - else { + } else { ipath_dbg("No 64bit DMA mask, used 32 bit mask\n"); ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); if (ret) @@ -501,8 +500,7 @@ static int ipath_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) dd->ipath_unit, ret); } - } - else { + } else { ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); if (ret) dev_info(&pdev->dev, @@ -1229,11 +1227,10 @@ reloop: ipath_cdbg(PKT, "typ %x, opcode %x (eager, " "qp=%x), len %x; ignored\n", etype, opcode, qp, tlen); - } - else if (etype == RCVHQ_RCV_TYPE_EXPECTED) + } else if (etype == RCVHQ_RCV_TYPE_EXPECTED) { ipath_dbg("Bug: Expected TID, opcode %x; ignored\n", be32_to_cpu(hdr->bth[0]) >> 24); - else { + } else { /* * error packet, type of error unknown. * Probably type 3, but we don't know, so don't @@ -1270,8 +1267,9 @@ reloop: pd->port_seq_cnt = 1; if (seq != pd->port_seq_cnt) last = 1; - } else if (l == hdrqtail) + } else if (l == hdrqtail) { last = 1; + } /* * update head regs on last packet, and every 16 packets. * Reduce bus traffic, while still trying to prevent @@ -1821,15 +1819,14 @@ int ipath_create_rcvhdrq(struct ipath_devdata *dd, (unsigned long) pd->port_rcvhdrq_phys, (unsigned long) pd->port_rcvhdrq_size, pd->port_port); - } - else + } else { ipath_cdbg(VERBOSE, "reuse port %d rcvhdrq @%p %llx phys; " "hdrtailaddr@%p %llx physical\n", pd->port_port, pd->port_rcvhdrq, (unsigned long long) pd->port_rcvhdrq_phys, pd->port_rcvhdrtail_kvaddr, (unsigned long long) pd->port_rcvhdrqtailaddr_phys); - + } /* clear for security and sanity on each use */ memset(pd->port_rcvhdrq, 0, pd->port_rcvhdrq_size); if (pd->port_rcvhdrtail_kvaddr) diff --git a/drivers/staging/rdma/ipath/ipath_file_ops.c b/drivers/staging/rdma/ipath/ipath_file_ops.c index 450d15965005..c796a51faa9c 100644 --- a/drivers/staging/rdma/ipath/ipath_file_ops.c +++ b/drivers/staging/rdma/ipath/ipath_file_ops.c @@ -825,13 +825,13 @@ static void ipath_clean_part_key(struct ipath_portdata *pd, ipath_stats.sps_pkeys[j] = dd->ipath_pkeys[j] = 0; pchanged++; + } else { + ipath_cdbg(VERBOSE, "p%u key %x matches #%d, " + "but ref still %d\n", pd->port_port, + pd->port_pkeys[i], j, + atomic_read(&dd->ipath_pkeyrefs[j])); + break; } - else ipath_cdbg( - VERBOSE, "p%u key %x matches #%d, " - "but ref still %d\n", pd->port_port, - pd->port_pkeys[i], j, - atomic_read(&dd->ipath_pkeyrefs[j])); - break; } pd->port_pkeys[i] = 0; } diff --git a/drivers/staging/rdma/ipath/ipath_iba6110.c b/drivers/staging/rdma/ipath/ipath_iba6110.c index 7cc305488a3d..5f13572a5e24 100644 --- a/drivers/staging/rdma/ipath/ipath_iba6110.c +++ b/drivers/staging/rdma/ipath/ipath_iba6110.c @@ -666,9 +666,9 @@ static void ipath_ht_handle_hwerrors(struct ipath_devdata *dd, char *msg, * other reset is possible. */ dd->ipath_flags &= ~IPATH_INITTED; - } - else + } else { *msg = 0; /* recovered from all of them */ + } if (*msg) ipath_dev_err(dd, "%s hardware error\n", msg); if (isfatal && !ipath_diag_inuse && dd->ipath_freezemsg) @@ -1134,8 +1134,7 @@ static void ipath_setup_ht_setextled(struct ipath_devdata *dd, extctl &= ~INFINIPATH_EXTC_LEDGBLERR_OFF; if (lst == INFINIPATH_IBCS_L_STATE_ACTIVE) extctl |= INFINIPATH_EXTC_LEDGBLOK_ON; - } - else { + } else { extctl = dd->ipath_extctrl & ~(INFINIPATH_EXTC_LED1PRIPORT_ON | INFINIPATH_EXTC_LED2PRIPORT_ON); diff --git a/drivers/staging/rdma/ipath/ipath_init_chip.c b/drivers/staging/rdma/ipath/ipath_init_chip.c index be2a60e142b0..e95af81ca3ca 100644 --- a/drivers/staging/rdma/ipath/ipath_init_chip.c +++ b/drivers/staging/rdma/ipath/ipath_init_chip.c @@ -324,10 +324,10 @@ static int init_chip_first(struct ipath_devdata *dd) dd->ipath_pio2kbase, dd->ipath_piobcnt4k, dd->ipath_piosize4k, dd->ipath_pio4kbase, dd->ipath_4kalign); + } else { + ipath_dbg("%u 2k piobufs @ %p\n", + dd->ipath_piobcnt2k, dd->ipath_pio2kbase); } - else ipath_dbg("%u 2k piobufs @ %p\n", - dd->ipath_piobcnt2k, dd->ipath_pio2kbase); - done: return ret; } @@ -903,9 +903,9 @@ int ipath_init_chip(struct ipath_devdata *dd, int reinit) ipath_dev_err(dd, "failed to allocate kernel port's " "rcvhdrq and/or egr bufs\n"); goto done; - } - else + } else { enable_chip(dd, reinit); + } /* after enable_chip, so pioavailshadow setup */ ipath_chg_pioavailkernel(dd, 0, piobufs, 1); diff --git a/drivers/staging/rdma/ipath/ipath_intr.c b/drivers/staging/rdma/ipath/ipath_intr.c index 01ba792791a0..e56897108722 100644 --- a/drivers/staging/rdma/ipath/ipath_intr.c +++ b/drivers/staging/rdma/ipath/ipath_intr.c @@ -514,15 +514,14 @@ static unsigned handle_frequent_errors(struct ipath_devdata *dd, *noprint = 1; if (!supp_msgs++) nextmsg_time = nc + HZ * 3; - } - else if (supp_msgs) { + } else if (supp_msgs) { handle_supp_msgs(dd, supp_msgs, msg, msgsz); supp_msgs = 0; nmsgs = 0; } - } - else if (!nmsgs++ || time_after(nc, nextmsg_time)) + } else if (!nmsgs++ || time_after(nc, nextmsg_time)) { nextmsg_time = nc + HZ / 2; + } return supp_msgs; } diff --git a/drivers/staging/rdma/ipath/ipath_sysfs.c b/drivers/staging/rdma/ipath/ipath_sysfs.c index 75558f33f1cb..b12b1f6caf59 100644 --- a/drivers/staging/rdma/ipath/ipath_sysfs.c +++ b/drivers/staging/rdma/ipath/ipath_sysfs.c @@ -662,8 +662,7 @@ static ssize_t store_enabled(struct device *dev, dd->ipath_flags &= ~IPATH_DISABLED; *dd->ipath_statusp &= ~IPATH_STATUS_ADMIN_DISABLED; } - } - else if (!(dd->ipath_flags & IPATH_DISABLED)) { + } else if (!(dd->ipath_flags & IPATH_DISABLED)) { dev_info(dev, "Disabling unit %d\n", dd->ipath_unit); ipath_shutdown_device(dd); dd->ipath_flags |= IPATH_DISABLED; @@ -1176,9 +1175,9 @@ int ipath_expose_reset(struct device *dev) if (!exposed) { ret = device_create_file(dev, &dev_attr_reset); exposed = 1; - } - else + } else { ret = 0; + } return ret; } diff --git a/drivers/staging/rdma/ipath/ipath_verbs.c b/drivers/staging/rdma/ipath/ipath_verbs.c index ed2bbc2f7eae..17d9dca65755 100644 --- a/drivers/staging/rdma/ipath/ipath_verbs.c +++ b/drivers/staging/rdma/ipath/ipath_verbs.c @@ -739,9 +739,9 @@ static void ipath_ib_timer(struct ipath_ibdev *dev) dev->ipath_spkts = tc - dev->ipath_spkts; dev->ipath_rpkts = td - dev->ipath_rpkts; dev->ipath_xmit_wait = te - dev->ipath_xmit_wait; - } - else + } else { dev->pma_sample_interval--; + } } spin_unlock_irqrestore(&dev->pending_lock, flags); From 6ea9b6e6a78cec3e8cb2e77019795aa4a1c8c42c Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:15 -0400 Subject: [PATCH 1227/2431] staging: unisys: visorhid: rename to visorinput This visorhid driver provides a Human Interface Device, but is not at all using HID, the protocol. It's a plain input driver, so for clarity, it is being renamed to visorinput. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../staging/unisys/Documentation/overview.txt | 22 ++--- drivers/staging/unisys/Kconfig | 2 +- drivers/staging/unisys/Makefile | 2 +- drivers/staging/unisys/visorhid/Kconfig | 10 --- drivers/staging/unisys/visorhid/Makefile | 7 -- drivers/staging/unisys/visorinput/Kconfig | 10 +++ drivers/staging/unisys/visorinput/Makefile | 7 ++ .../keyboardchannel.h | 0 .../{visorhid => visorinput}/mousechannel.h | 0 .../ultrainputreport.h | 0 .../visorhid.c => visorinput/visorinput.c} | 90 +++++++++---------- 11 files changed, 75 insertions(+), 75 deletions(-) delete mode 100644 drivers/staging/unisys/visorhid/Kconfig delete mode 100644 drivers/staging/unisys/visorhid/Makefile create mode 100644 drivers/staging/unisys/visorinput/Kconfig create mode 100644 drivers/staging/unisys/visorinput/Makefile rename drivers/staging/unisys/{visorhid => visorinput}/keyboardchannel.h (100%) rename drivers/staging/unisys/{visorhid => visorinput}/mousechannel.h (100%) rename drivers/staging/unisys/{visorhid => visorinput}/ultrainputreport.h (100%) rename drivers/staging/unisys/{visorhid/visorhid.c => visorinput/visorinput.c} (88%) diff --git a/drivers/staging/unisys/Documentation/overview.txt b/drivers/staging/unisys/Documentation/overview.txt index 25f93f2a1e33..c2d8dd4a2e41 100644 --- a/drivers/staging/unisys/Documentation/overview.txt +++ b/drivers/staging/unisys/Documentation/overview.txt @@ -12,7 +12,7 @@ normally be unsharable, specifically: * visornic - network interface * visorhba - scsi disk adapter -* visorhid - keyboard and mouse +* visorinput - keyboard and mouse These drivers conform to the standard Linux bus/device model described within Documentation/driver-model/, and utilize a driver named visorbus to @@ -44,7 +44,7 @@ NOT covered in this document: * Because the s-Par back-end provides a standard EFI framebuffer to each guest, the already-existing efifb Linux driver is used to provide guest video access. Thus, the only s-Par-unique support that is necessary to - provide a guest graphics console are for keyboard and mouse (via visorhid). + provide a guest graphics console are for keyboard and mouse (via visorinput). 2. Driver Descriptions @@ -296,13 +296,13 @@ i.e.: alias visorbus:8cd5994d-c58e-11da-95a9-00e08161165f visornic -2.4. visorhid -------------- +2.4. visorinput +--------------- -The visorhid driver registers with visorbus as the function driver to +The visorinput driver registers with visorbus as the function driver to handle human input devices, specified using the SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID and SPAR_MOUSE_CHANNEL_PROTOCOL_UUID -types in the visorbus_register_visor_driver() call. visorhid uses +types in the visorbus_register_visor_driver() call. visorinput uses input_register_device() to expose devices of class input (e.g., /sys/class/input/) for virtual keyboard and virtual mouse devices. A s-Par virtual keyboard device maps 1-to-1 with a Linux input device @@ -312,7 +312,7 @@ devices created for it: 1 named "visor Wheel", and 1 named "visor Mouse". By registering as input class devices, modern versions of X will automatically find and properly use s-Par virtual keyboard and mouse devices. As the s-Par back-end reports keyboard and mouse activity via events on the -virtual device channel, the visorhid driver delivers the activity to the +virtual device channel, the visorinput driver delivers the activity to the Linux environment by calling input_report_key() and input_report_abs(). You can interact with the guest console using the usyscon Partition Desktop @@ -322,7 +322,7 @@ usyscon_partitiondesktop-*.rpm, or into a Windows environment via PartitionDesktop.msi, you will be able to launch a console for your guest Linux environment by clicking the console icon in the s-Par web UI. -When compiled as a module, visorhid can be autoloaded by visorbus in +When compiled as a module, visorinput can be autoloaded by visorbus in standard udev/systemd environments, as it includes the modules.alias definition: @@ -331,8 +331,8 @@ definition: i.e.: - alias visorbus:c73416d0-b0b8-44af-b304-9d2ae99f1b3d visorhid - alias visorbus:addf07d4-94a9-46e2-81c3-61abcdbdbd87 visorhid + alias visorbus:c73416d0-b0b8-44af-b304-9d2ae99f1b3d visorinput + alias visorbus:addf07d4-94a9-46e2-81c3-61abcdbdbd87 visorinput 3. Minimum Required Driver Set @@ -352,5 +352,5 @@ the s-Par back-end, which is the default configuration. However, for configurations where the Linux guest is provided with an SR-IOV NIC for example, visornic is not technically required. -visorhid is only required for a Linux guest running under s-Par if you +visorinput is only required for a Linux guest running under s-Par if you require graphics-mode access to your guest console. diff --git a/drivers/staging/unisys/Kconfig b/drivers/staging/unisys/Kconfig index 5cbb791053ed..4f1f5e624604 100644 --- a/drivers/staging/unisys/Kconfig +++ b/drivers/staging/unisys/Kconfig @@ -13,7 +13,7 @@ if UNISYSSPAR source "drivers/staging/unisys/visorbus/Kconfig" source "drivers/staging/unisys/visornic/Kconfig" -source "drivers/staging/unisys/visorhid/Kconfig" +source "drivers/staging/unisys/visorinput/Kconfig" source "drivers/staging/unisys/visorhba/Kconfig" endif # UNISYSSPAR diff --git a/drivers/staging/unisys/Makefile b/drivers/staging/unisys/Makefile index 79c9036edb5c..20eb098538d3 100644 --- a/drivers/staging/unisys/Makefile +++ b/drivers/staging/unisys/Makefile @@ -3,5 +3,5 @@ # obj-$(CONFIG_UNISYS_VISORBUS) += visorbus/ obj-$(CONFIG_UNISYS_VISORNIC) += visornic/ -obj-$(CONFIG_UNISYS_VISORHID) += visorhid/ +obj-$(CONFIG_UNISYS_VISORINPUT) += visorinput/ obj-$(CONFIG_UNISYS_VISORHBA) += visorhba/ diff --git a/drivers/staging/unisys/visorhid/Kconfig b/drivers/staging/unisys/visorhid/Kconfig deleted file mode 100644 index 3b83e2cc2016..000000000000 --- a/drivers/staging/unisys/visorhid/Kconfig +++ /dev/null @@ -1,10 +0,0 @@ -# -# Unisys visorhid configuration -# - -config UNISYS_VISORHID - tristate "Unisys visorhid driver" - depends on UNISYSSPAR && UNISYS_VISORBUS && FB - ---help--- - If you say Y here, you will enable the Unisys visorhid driver. - diff --git a/drivers/staging/unisys/visorhid/Makefile b/drivers/staging/unisys/visorhid/Makefile deleted file mode 100644 index e457bd14f7e8..000000000000 --- a/drivers/staging/unisys/visorhid/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# -# Makefile for Unisys visorhid -# - -obj-$(CONFIG_UNISYS_VISORHID) += visorhid.o - -ccflags-y += -Idrivers/staging/unisys/include diff --git a/drivers/staging/unisys/visorinput/Kconfig b/drivers/staging/unisys/visorinput/Kconfig new file mode 100644 index 000000000000..d83deb4137e8 --- /dev/null +++ b/drivers/staging/unisys/visorinput/Kconfig @@ -0,0 +1,10 @@ +# +# Unisys visorinput configuration +# + +config UNISYS_VISORINPUT + tristate "Unisys visorinput driver" + depends on UNISYSSPAR && UNISYS_VISORBUS && FB + ---help--- + If you say Y here, you will enable the Unisys visorinput driver. + diff --git a/drivers/staging/unisys/visorinput/Makefile b/drivers/staging/unisys/visorinput/Makefile new file mode 100644 index 000000000000..beedca7f0e09 --- /dev/null +++ b/drivers/staging/unisys/visorinput/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for Unisys visorinput +# + +obj-$(CONFIG_UNISYS_VISORINPUT) += visorinput.o + +ccflags-y += -Idrivers/staging/unisys/include diff --git a/drivers/staging/unisys/visorhid/keyboardchannel.h b/drivers/staging/unisys/visorinput/keyboardchannel.h similarity index 100% rename from drivers/staging/unisys/visorhid/keyboardchannel.h rename to drivers/staging/unisys/visorinput/keyboardchannel.h diff --git a/drivers/staging/unisys/visorhid/mousechannel.h b/drivers/staging/unisys/visorinput/mousechannel.h similarity index 100% rename from drivers/staging/unisys/visorhid/mousechannel.h rename to drivers/staging/unisys/visorinput/mousechannel.h diff --git a/drivers/staging/unisys/visorhid/ultrainputreport.h b/drivers/staging/unisys/visorinput/ultrainputreport.h similarity index 100% rename from drivers/staging/unisys/visorhid/ultrainputreport.h rename to drivers/staging/unisys/visorinput/ultrainputreport.h diff --git a/drivers/staging/unisys/visorhid/visorhid.c b/drivers/staging/unisys/visorinput/visorinput.c similarity index 88% rename from drivers/staging/unisys/visorhid/visorhid.c rename to drivers/staging/unisys/visorinput/visorinput.c index c24aaf59be9d..e1c328e402e3 100644 --- a/drivers/staging/unisys/visorhid/visorhid.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -1,4 +1,4 @@ -/* visorhid.c +/* visorinput.c * * Copyright (C) 2011 - 2015 UNISYS CORPORATION * All rights reserved. @@ -38,24 +38,24 @@ static const uuid_le spar_keyboard_channel_protocol_uuid = SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID; static const uuid_le spar_mouse_channel_protocol_uuid = SPAR_MOUSE_CHANNEL_PROTOCOL_UUID; -static int visorhid_probe(struct visor_device *dev); -static void visorhid_remove(struct visor_device *dev); -static void visorhid_channel_interrupt(struct visor_device *dev); -static int visorhid_pause(struct visor_device *dev, +static int visorinput_probe(struct visor_device *dev); +static void visorinput_remove(struct visor_device *dev); +static void visorinput_channel_interrupt(struct visor_device *dev); +static int visorinput_pause(struct visor_device *dev, visorbus_state_complete_func complete_func); -static int visorhid_resume(struct visor_device *dev, +static int visorinput_resume(struct visor_device *dev, visorbus_state_complete_func complete_func); static struct input_dev *register_client_keyboard(void); static struct input_dev *register_client_mouse(void); static void unregister_client_input(struct input_dev *visorinput_dev); /* GUIDS for all channel types supported by this driver. */ -static struct visor_channeltype_descriptor visorhid_channel_types[] = { +static struct visor_channeltype_descriptor visorinput_channel_types[] = { { SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID, "keyboard"}, { SPAR_MOUSE_CHANNEL_PROTOCOL_UUID, "mouse"}, { NULL_UUID_LE, NULL } }; -MODULE_DEVICE_TABLE(visorbus, visorhid_channel_types); +MODULE_DEVICE_TABLE(visorbus, visorinput_channel_types); MODULE_ALIAS("visorbus:" SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR); MODULE_ALIAS("visorbus:" SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR); @@ -63,28 +63,28 @@ MODULE_ALIAS("visorbus:" SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR); * we support, and what functions to call when a visor device that we support * is attached or removed. */ -static struct visor_driver visorhid_driver = { - .name = "visorhid", +static struct visor_driver visorinput_driver = { + .name = "visorinput", .vertag = NULL, .owner = THIS_MODULE, - .channel_types = visorhid_channel_types, - .probe = visorhid_probe, - .remove = visorhid_remove, - .channel_interrupt = visorhid_channel_interrupt, - .pause = visorhid_pause, - .resume = visorhid_resume, + .channel_types = visorinput_channel_types, + .probe = visorinput_probe, + .remove = visorinput_remove, + .channel_interrupt = visorinput_channel_interrupt, + .pause = visorinput_pause, + .resume = visorinput_resume, }; -enum visorhid_device_type { - visorhid_keyboard, - visorhid_mouse, +enum visorinput_device_type { + visorinput_keyboard, + visorinput_mouse, }; /* This is the private data that we store for each device. * A pointer to this struct is maintained via * dev_get_drvdata() / dev_set_drvdata() for each struct device. */ -struct visorhid_devdata { +struct visorinput_devdata { struct visor_device *dev; /** lock for dev */ struct rw_semaphore lock_visor_dev; @@ -228,10 +228,10 @@ static unsigned char visorkbd_ext_keycode[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */ }; -static struct visorhid_devdata * -devdata_create(struct visor_device *dev, enum visorhid_device_type devtype) +static struct visorinput_devdata * +devdata_create(struct visor_device *dev, enum visorinput_device_type devtype) { - struct visorhid_devdata *devdata = NULL; + struct visorinput_devdata *devdata = NULL; devdata = kzalloc(sizeof(*devdata), GFP_KERNEL); if (!devdata) @@ -243,12 +243,12 @@ devdata_create(struct visor_device *dev, enum visorhid_device_type devtype) * deliver our inputs to the guest OS. */ switch (devtype) { - case visorhid_keyboard: + case visorinput_keyboard: devdata->visorinput_dev = register_client_keyboard(); if (!devdata->visorinput_dev) goto cleanups_register; break; - case visorhid_mouse: + case visorinput_mouse: devdata->visorinput_dev = register_client_mouse(); if (!devdata->visorinput_dev) goto cleanups_register; @@ -265,17 +265,17 @@ cleanups_register: } static int -visorhid_probe(struct visor_device *dev) +visorinput_probe(struct visor_device *dev) { - struct visorhid_devdata *devdata = NULL; + struct visorinput_devdata *devdata = NULL; uuid_le guid; - enum visorhid_device_type devtype; + enum visorinput_device_type devtype; guid = visorchannel_get_uuid(dev->visorchannel); if (uuid_le_cmp(guid, spar_mouse_channel_protocol_uuid) == 0) - devtype = visorhid_mouse; + devtype = visorinput_mouse; else if (uuid_le_cmp(guid, spar_keyboard_channel_protocol_uuid) == 0) - devtype = visorhid_keyboard; + devtype = visorinput_keyboard; else return -ENODEV; devdata = devdata_create(dev, devtype); @@ -287,9 +287,9 @@ visorhid_probe(struct visor_device *dev) } static void -visorhid_remove(struct visor_device *dev) +visorinput_remove(struct visor_device *dev) { - struct visorhid_devdata *devdata = dev_get_drvdata(&dev->device); + struct visorinput_devdata *devdata = dev_get_drvdata(&dev->device); if (!devdata) return; @@ -297,7 +297,7 @@ visorhid_remove(struct visor_device *dev) visorbus_disable_channel_interrupts(dev); /* due to above, at this time no thread of execution will be - * in visorhid_channel_interrupt() + * in visorinput_channel_interrupt() */ down_write(&devdata->lock_visor_dev); @@ -498,7 +498,7 @@ calc_button(int x) * from the channel, and deliver them to the guest OS. */ static void -visorhid_channel_interrupt(struct visor_device *dev) +visorinput_channel_interrupt(struct visor_device *dev) { struct ultra_inputreport r; int scancode, keycode; @@ -506,7 +506,7 @@ visorhid_channel_interrupt(struct visor_device *dev) int xmotion, ymotion, zmotion, button; int i; - struct visorhid_devdata *devdata = dev_get_drvdata(&dev->device); + struct visorinput_devdata *devdata = dev_get_drvdata(&dev->device); if (!devdata) return; @@ -600,11 +600,11 @@ out_locked: } static int -visorhid_pause(struct visor_device *dev, +visorinput_pause(struct visor_device *dev, visorbus_state_complete_func complete_func) { int rc; - struct visorhid_devdata *devdata = dev_get_drvdata(&dev->device); + struct visorinput_devdata *devdata = dev_get_drvdata(&dev->device); if (!devdata) { rc = -ENODEV; @@ -626,11 +626,11 @@ out: } static int -visorhid_resume(struct visor_device *dev, +visorinput_resume(struct visor_device *dev, visorbus_state_complete_func complete_func) { int rc; - struct visorhid_devdata *devdata = dev_get_drvdata(&dev->device); + struct visorinput_devdata *devdata = dev_get_drvdata(&dev->device); if (!devdata) { rc = -ENODEV; @@ -651,19 +651,19 @@ out: } static int -visorhid_init(void) +visorinput_init(void) { - return visorbus_register_visor_driver(&visorhid_driver); + return visorbus_register_visor_driver(&visorinput_driver); } static void -visorhid_cleanup(void) +visorinput_cleanup(void) { - visorbus_unregister_visor_driver(&visorhid_driver); + visorbus_unregister_visor_driver(&visorinput_driver); } -module_init(visorhid_init); -module_exit(visorhid_cleanup); +module_init(visorinput_init); +module_exit(visorinput_cleanup); MODULE_AUTHOR("Unisys"); MODULE_LICENSE("GPL"); From dabf6c399e27e21db9f1b438467bb9b7cfc8b834 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:16 -0400 Subject: [PATCH 1228/2431] staging: unisys: visorinput: subsume .h files directly into visorinput.c keyboardchannel.h and mousechannel.h are now included within visorinput.c directly. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../unisys/visorinput/keyboardchannel.h | 32 ------------------ .../staging/unisys/visorinput/mousechannel.h | 33 ------------------- .../staging/unisys/visorinput/visorinput.c | 19 +++++++++-- 3 files changed, 17 insertions(+), 67 deletions(-) delete mode 100644 drivers/staging/unisys/visorinput/keyboardchannel.h delete mode 100644 drivers/staging/unisys/visorinput/mousechannel.h diff --git a/drivers/staging/unisys/visorinput/keyboardchannel.h b/drivers/staging/unisys/visorinput/keyboardchannel.h deleted file mode 100644 index 2ed2602b427c..000000000000 --- a/drivers/staging/unisys/visorinput/keyboardchannel.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2010 - 2015 UNISYS CORPORATION - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or - * NON INFRINGEMENT. See the GNU General Public License for more - * details. - */ - -#ifndef __SPAR_KEYBOARDCHANNEL_H__ -#define __SPAR_KEYBOARDCHANNEL_H__ - -#include -#include - -#include "channel.h" -#include "ultrainputreport.h" - -/* {c73416d0-b0b8-44af-b304-9d2ae99f1b3d} */ -#define SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID \ - UUID_LE(0xc73416d0, 0xb0b8, 0x44af, \ - 0xb3, 0x4, 0x9d, 0x2a, 0xe9, 0x9f, 0x1b, 0x3d) -#define SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR "c73416d0-b0b8-44af-b304-9d2ae99f1b3d" -#define SPAR_KEYBOARD_CHANNEL_PROTOCOL_VERSIONID 1 -#define KEYBOARD_MAXINPUTREPORTS 50 - -#endif diff --git a/drivers/staging/unisys/visorinput/mousechannel.h b/drivers/staging/unisys/visorinput/mousechannel.h deleted file mode 100644 index 256477ae6e5e..000000000000 --- a/drivers/staging/unisys/visorinput/mousechannel.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 2010 - 2015 UNISYS CORPORATION - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or - * NON INFRINGEMENT. See the GNU General Public License for more - * details. - */ - -#ifndef __SPAR_MOUSECHANNEL_H__ -#define __SPAR_MOUSECHANNEL_H__ - -#include -#include - -#include "channel.h" -#include "ultrainputreport.h" - -/* {addf07d4-94a9-46e2-81c3-61abcdbdbd87} */ -#define SPAR_MOUSE_CHANNEL_PROTOCOL_UUID \ - UUID_LE(0xaddf07d4, 0x94a9, 0x46e2, \ - 0x81, 0xc3, 0x61, 0xab, 0xcd, 0xbd, 0xbd, 0x87) -#define SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR \ - "addf07d4-94a9-46e2-81c3-61abcdbdbd87" -#define SPAR_MOUSE_CHANNEL_PROTOCOL_VERSIONID 1 -#define MOUSE_MAXINPUTREPORTS 50 - -#endif diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index e1c328e402e3..4c5b594548d8 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -25,11 +25,26 @@ #include #include #include +#include +#include -#include "keyboardchannel.h" -#include "mousechannel.h" #include "version.h" #include "visorbus.h" +#include "channel.h" +#include "ultrainputreport.h" + +/* Keyboard channel {c73416d0-b0b8-44af-b304-9d2ae99f1b3d} */ +#define SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID \ + UUID_LE(0xc73416d0, 0xb0b8, 0x44af, \ + 0xb3, 0x4, 0x9d, 0x2a, 0xe9, 0x9f, 0x1b, 0x3d) +#define SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR "c73416d0-b0b8-44af-b304-9d2ae99f1b3d" + +/* Mouse channel {addf07d4-94a9-46e2-81c3-61abcdbdbd87} */ +#define SPAR_MOUSE_CHANNEL_PROTOCOL_UUID \ + UUID_LE(0xaddf07d4, 0x94a9, 0x46e2, \ + 0x81, 0xc3, 0x61, 0xab, 0xcd, 0xbd, 0xbd, 0x87) +#define SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR \ + "addf07d4-94a9-46e2-81c3-61abcdbdbd87" #define PIXELS_ACROSS_DEFAULT 800 #define PIXELS_DOWN_DEFAULT 600 From b3d5d05dcc4ac1d349c51ea743092375701aa8e1 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:17 -0400 Subject: [PATCH 1229/2431] staging: unisys: visorinput: re-order declarations for consistency In order to be more consistent with kernel conventions used elsewhere, I have re-ordered declarations in visorinput.c to follow this general order (where possible): * #defines * struct/enum/union declarations * static declarations (const if possible for all of them) * forward function declarations where absolutely necessary Exceptions were made for the static declarations like the driver declaration, given that it depends on previously-defined callbacks. So such declarations are at the end of visorinput.c. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../staging/unisys/visorinput/visorinput.c | 242 +++++++++--------- 1 file changed, 115 insertions(+), 127 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 4c5b594548d8..a15924cfb380 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -49,47 +49,6 @@ #define PIXELS_ACROSS_DEFAULT 800 #define PIXELS_DOWN_DEFAULT 600 -static const uuid_le spar_keyboard_channel_protocol_uuid = - SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID; -static const uuid_le spar_mouse_channel_protocol_uuid = - SPAR_MOUSE_CHANNEL_PROTOCOL_UUID; -static int visorinput_probe(struct visor_device *dev); -static void visorinput_remove(struct visor_device *dev); -static void visorinput_channel_interrupt(struct visor_device *dev); -static int visorinput_pause(struct visor_device *dev, - visorbus_state_complete_func complete_func); -static int visorinput_resume(struct visor_device *dev, - visorbus_state_complete_func complete_func); -static struct input_dev *register_client_keyboard(void); -static struct input_dev *register_client_mouse(void); -static void unregister_client_input(struct input_dev *visorinput_dev); - -/* GUIDS for all channel types supported by this driver. */ -static struct visor_channeltype_descriptor visorinput_channel_types[] = { - { SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID, "keyboard"}, - { SPAR_MOUSE_CHANNEL_PROTOCOL_UUID, "mouse"}, - { NULL_UUID_LE, NULL } -}; -MODULE_DEVICE_TABLE(visorbus, visorinput_channel_types); -MODULE_ALIAS("visorbus:" SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR); -MODULE_ALIAS("visorbus:" SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR); - -/** This is used to tell the visor bus driver which types of visor devices - * we support, and what functions to call when a visor device that we support - * is attached or removed. - */ -static struct visor_driver visorinput_driver = { - .name = "visorinput", - .vertag = NULL, - .owner = THIS_MODULE, - .channel_types = visorinput_channel_types, - .probe = visorinput_probe, - .remove = visorinput_remove, - .channel_interrupt = visorinput_channel_interrupt, - .pause = visorinput_pause, - .resume = visorinput_resume, -}; - enum visorinput_device_type { visorinput_keyboard, visorinput_mouse, @@ -107,6 +66,11 @@ struct visorinput_devdata { bool paused; }; +static const uuid_le spar_keyboard_channel_protocol_uuid = + SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID; +static const uuid_le spar_mouse_channel_protocol_uuid = + SPAR_MOUSE_CHANNEL_PROTOCOL_UUID; + /* Borrowed from drivers/input/keyboard/atakbd.c */ /* This maps 1-byte scancodes to keycodes. */ static unsigned char visorkbd_keycode[256] = { /* American layout */ @@ -243,92 +207,6 @@ static unsigned char visorkbd_ext_keycode[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */ }; -static struct visorinput_devdata * -devdata_create(struct visor_device *dev, enum visorinput_device_type devtype) -{ - struct visorinput_devdata *devdata = NULL; - - devdata = kzalloc(sizeof(*devdata), GFP_KERNEL); - if (!devdata) - return NULL; - devdata->dev = dev; - - /* This is an input device in a client guest partition, - * so we need to create whatever gizmos are necessary to - * deliver our inputs to the guest OS. - */ - switch (devtype) { - case visorinput_keyboard: - devdata->visorinput_dev = register_client_keyboard(); - if (!devdata->visorinput_dev) - goto cleanups_register; - break; - case visorinput_mouse: - devdata->visorinput_dev = register_client_mouse(); - if (!devdata->visorinput_dev) - goto cleanups_register; - break; - } - - init_rwsem(&devdata->lock_visor_dev); - - return devdata; - -cleanups_register: - kfree(devdata); - return NULL; -} - -static int -visorinput_probe(struct visor_device *dev) -{ - struct visorinput_devdata *devdata = NULL; - uuid_le guid; - enum visorinput_device_type devtype; - - guid = visorchannel_get_uuid(dev->visorchannel); - if (uuid_le_cmp(guid, spar_mouse_channel_protocol_uuid) == 0) - devtype = visorinput_mouse; - else if (uuid_le_cmp(guid, spar_keyboard_channel_protocol_uuid) == 0) - devtype = visorinput_keyboard; - else - return -ENODEV; - devdata = devdata_create(dev, devtype); - if (!devdata) - return -ENOMEM; - dev_set_drvdata(&dev->device, devdata); - visorbus_enable_channel_interrupts(dev); - return 0; -} - -static void -visorinput_remove(struct visor_device *dev) -{ - struct visorinput_devdata *devdata = dev_get_drvdata(&dev->device); - - if (!devdata) - return; - - visorbus_disable_channel_interrupts(dev); - - /* due to above, at this time no thread of execution will be - * in visorinput_channel_interrupt() - */ - - down_write(&devdata->lock_visor_dev); - dev_set_drvdata(&dev->device, NULL); - unregister_client_input(devdata->visorinput_dev); - up_write(&devdata->lock_visor_dev); - kfree(devdata); -} - -static void -unregister_client_input(struct input_dev *visorinput_dev) -{ - if (visorinput_dev) - input_unregister_device(visorinput_dev); -} - /* register_client_keyboard() initializes and returns a Linux gizmo that we * can use to deliver keyboard inputs to Linux. We of course do this when * we see keyboard inputs coming in on a keyboard channel. @@ -431,6 +309,92 @@ register_client_mouse(void) return visorinput_dev; } +static struct visorinput_devdata * +devdata_create(struct visor_device *dev, enum visorinput_device_type devtype) +{ + struct visorinput_devdata *devdata = NULL; + + devdata = kzalloc(sizeof(*devdata), GFP_KERNEL); + if (!devdata) + return NULL; + devdata->dev = dev; + + /* This is an input device in a client guest partition, + * so we need to create whatever gizmos are necessary to + * deliver our inputs to the guest OS. + */ + switch (devtype) { + case visorinput_keyboard: + devdata->visorinput_dev = register_client_keyboard(); + if (!devdata->visorinput_dev) + goto cleanups_register; + break; + case visorinput_mouse: + devdata->visorinput_dev = register_client_mouse(); + if (!devdata->visorinput_dev) + goto cleanups_register; + break; + } + + init_rwsem(&devdata->lock_visor_dev); + + return devdata; + +cleanups_register: + kfree(devdata); + return NULL; +} + +static int +visorinput_probe(struct visor_device *dev) +{ + struct visorinput_devdata *devdata = NULL; + uuid_le guid; + enum visorinput_device_type devtype; + + guid = visorchannel_get_uuid(dev->visorchannel); + if (uuid_le_cmp(guid, spar_mouse_channel_protocol_uuid) == 0) + devtype = visorinput_mouse; + else if (uuid_le_cmp(guid, spar_keyboard_channel_protocol_uuid) == 0) + devtype = visorinput_keyboard; + else + return -ENODEV; + devdata = devdata_create(dev, devtype); + if (!devdata) + return -ENOMEM; + dev_set_drvdata(&dev->device, devdata); + visorbus_enable_channel_interrupts(dev); + return 0; +} + +static void +unregister_client_input(struct input_dev *visorinput_dev) +{ + if (visorinput_dev) + input_unregister_device(visorinput_dev); +} + +static void +visorinput_remove(struct visor_device *dev) +{ + struct visorinput_devdata *devdata = dev_get_drvdata(&dev->device); + + if (!devdata) + return; + + visorbus_disable_channel_interrupts(dev); + + /* due to above, at this time no thread of execution will be + * in visorinput_channel_interrupt() + */ + + down_write(&devdata->lock_visor_dev); + dev_set_drvdata(&dev->device, NULL); + unregister_client_input(devdata->visorinput_dev); + up_write(&devdata->lock_visor_dev); + kfree(devdata); +} + static void do_key(struct input_dev *inpt, int keycode, int down) { @@ -665,6 +629,25 @@ out: return rc; } +/* GUIDS for all channel types supported by this driver. */ +static struct visor_channeltype_descriptor visorinput_channel_types[] = { + { SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID, "keyboard"}, + { SPAR_MOUSE_CHANNEL_PROTOCOL_UUID, "mouse"}, + { NULL_UUID_LE, NULL } +}; + +static struct visor_driver visorinput_driver = { + .name = "visorinput", + .vertag = NULL, + .owner = THIS_MODULE, + .channel_types = visorinput_channel_types, + .probe = visorinput_probe, + .remove = visorinput_remove, + .channel_interrupt = visorinput_channel_interrupt, + .pause = visorinput_pause, + .resume = visorinput_resume, +}; + static int visorinput_init(void) { @@ -680,7 +663,12 @@ visorinput_cleanup(void) module_init(visorinput_init); module_exit(visorinput_cleanup); +MODULE_DEVICE_TABLE(visorbus, visorinput_channel_types); + MODULE_AUTHOR("Unisys"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("s-Par human input driver for guest Linux"); MODULE_VERSION(VERSION); + +MODULE_ALIAS("visorbus:" SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR); +MODULE_ALIAS("visorbus:" SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR); From f9bda156cfd22f8a6598729bac831308f6db7997 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:19 -0400 Subject: [PATCH 1230/2431] staging: unisys: visorinput: make structs & arrays const where possible This also gave me a warning with the assignment: visorinput_dev->keycode = visorkbd_keycode; because input_dev->keycode is NOT static but visorkbd_keycode now is, so I went ahead and also added logic to stash away non-static copies of visorkbd_keycode[] and visorkbd_ext_keycode[] within visorinput_devdata, and use the copy to assign to visorinput_dev->keycode. This change is also technically required, because user-space can remap keys, and we don't want this to be shared with the other keyboard devices running on the same system. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../staging/unisys/visorinput/visorinput.c | 42 +++++++++++++------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index a15924cfb380..52d01e45f7dd 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -48,6 +48,7 @@ #define PIXELS_ACROSS_DEFAULT 800 #define PIXELS_DOWN_DEFAULT 600 +#define KEYCODE_TABLE_BYTES 256 enum visorinput_device_type { visorinput_keyboard, @@ -64,6 +65,9 @@ struct visorinput_devdata { struct rw_semaphore lock_visor_dev; struct input_dev *visorinput_dev; bool paused; + unsigned int keycode_table_bytes; /* size of following array */ + /* for keyboard devices: visorkbd_keycode[] + visorkbd_ext_keycode[] */ + unsigned char keycode_table[0]; }; static const uuid_le spar_keyboard_channel_protocol_uuid = @@ -73,7 +77,8 @@ static const uuid_le spar_mouse_channel_protocol_uuid = /* Borrowed from drivers/input/keyboard/atakbd.c */ /* This maps 1-byte scancodes to keycodes. */ -static unsigned char visorkbd_keycode[256] = { /* American layout */ +static const unsigned char visorkbd_keycode[KEYCODE_TABLE_BYTES] = { + /* American layout */ [0] = KEY_GRAVE, [1] = KEY_ESC, [2] = KEY_1, @@ -191,7 +196,7 @@ static unsigned char visorkbd_keycode[256] = { /* American layout */ /* This maps the in extended scancodes of the form "0xE0 " into * keycodes. */ -static unsigned char visorkbd_ext_keycode[256] = { +static const unsigned char visorkbd_ext_keycode[KEYCODE_TABLE_BYTES] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */ 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */ 0, 0, 0, 0, KEY_KPENTER, KEY_RIGHTCTRL, 0, 0, /* 0x18 */ @@ -212,7 +217,8 @@ static unsigned char visorkbd_ext_keycode[256] = { * we see keyboard inputs coming in on a keyboard channel. */ static struct input_dev * -register_client_keyboard(void) +register_client_keyboard(unsigned char *keycode_table) + { int i, error; struct input_dev *visorinput_dev = NULL; @@ -234,15 +240,15 @@ register_client_keyboard(void) visorinput_dev->ledbit[0] = BIT_MASK(LED_CAPSL) | BIT_MASK(LED_SCROLLL) | BIT_MASK(LED_NUML); - visorinput_dev->keycode = visorkbd_keycode; - visorinput_dev->keycodesize = sizeof(unsigned char); - visorinput_dev->keycodemax = ARRAY_SIZE(visorkbd_keycode); + visorinput_dev->keycode = keycode_table; + visorinput_dev->keycodesize = 1; /* sizeof(unsigned char) */ + visorinput_dev->keycodemax = KEYCODE_TABLE_BYTES; - for (i = 1; i < ARRAY_SIZE(visorkbd_keycode); i++) - set_bit(visorkbd_keycode[i], visorinput_dev->keybit); - - for (i = 1; i < ARRAY_SIZE(visorkbd_ext_keycode); i++) - set_bit(visorkbd_ext_keycode[i], visorinput_dev->keybit); + for (i = 1; i < visorinput_dev->keycodemax; i++) + set_bit(keycode_table[i], visorinput_dev->keybit); + for (i = 1; i < visorinput_dev->keycodemax; i++) + set_bit(keycode_table[i + KEYCODE_TABLE_BYTES], + visorinput_dev->keybit); error = input_register_device(visorinput_dev); if (error) { @@ -313,8 +319,12 @@ static struct visorinput_devdata * devdata_create(struct visor_device *dev, enum visorinput_device_type devtype) { struct visorinput_devdata *devdata = NULL; + unsigned int extra_bytes = 0; - devdata = kzalloc(sizeof(*devdata), GFP_KERNEL); + if (devtype == visorinput_keyboard) + /* allocate room for devdata->keycode_table, filled in below */ + extra_bytes = KEYCODE_TABLE_BYTES * 2; + devdata = kzalloc(sizeof(*devdata) + extra_bytes, GFP_KERNEL); if (!devdata) return NULL; devdata->dev = dev; @@ -325,7 +335,13 @@ devdata_create(struct visor_device *dev, enum visorinput_device_type devtype) */ switch (devtype) { case visorinput_keyboard: - devdata->visorinput_dev = register_client_keyboard(); + devdata->keycode_table_bytes = extra_bytes; + memcpy(devdata->keycode_table, visorkbd_keycode, + KEYCODE_TABLE_BYTES); + memcpy(devdata->keycode_table + KEYCODE_TABLE_BYTES, + visorkbd_ext_keycode, KEYCODE_TABLE_BYTES); + devdata->visorinput_dev = register_client_keyboard + (devdata->keycode_table); if (!devdata->visorinput_dev) goto cleanups_register; break; From cb3690fe4e45649dad5cbec3f9aa451fc8bcd9c5 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:20 -0400 Subject: [PATCH 1231/2431] staging: unisys: visorinput: correct code comments per kernel conventions Multi-line comments were modified to conform to kernel conventions: /* * multi-line * comments */ doc-test /** */ for some comments was removed. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../staging/unisys/visorinput/visorinput.c | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 52d01e45f7dd..976effa531cc 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -14,7 +14,8 @@ * details. */ -/* This driver lives in a generic guest Linux partition, and registers to +/* + * This driver lives in a generic guest Linux partition, and registers to * receive keyboard and mouse channels from the visorbus driver. It reads * inputs from such channels, and delivers it to the Linux OS in the * standard way the Linux expects for input drivers. @@ -55,14 +56,14 @@ enum visorinput_device_type { visorinput_mouse, }; -/* This is the private data that we store for each device. - * A pointer to this struct is maintained via - * dev_get_drvdata() / dev_set_drvdata() for each struct device. +/* + * This is the private data that we store for each device. + * A pointer to this struct is maintained via + * dev_get_drvdata() / dev_set_drvdata() for each struct device. */ struct visorinput_devdata { struct visor_device *dev; - /** lock for dev */ - struct rw_semaphore lock_visor_dev; + struct rw_semaphore lock_visor_dev; /* lock for dev */ struct input_dev *visorinput_dev; bool paused; unsigned int keycode_table_bytes; /* size of following array */ @@ -75,8 +76,10 @@ static const uuid_le spar_keyboard_channel_protocol_uuid = static const uuid_le spar_mouse_channel_protocol_uuid = SPAR_MOUSE_CHANNEL_PROTOCOL_UUID; -/* Borrowed from drivers/input/keyboard/atakbd.c */ -/* This maps 1-byte scancodes to keycodes. */ +/* + * Borrowed from drivers/input/keyboard/atakbd.c + * This maps 1-byte scancodes to keycodes. + */ static const unsigned char visorkbd_keycode[KEYCODE_TABLE_BYTES] = { /* American layout */ [0] = KEY_GRAVE, @@ -193,7 +196,8 @@ static const unsigned char visorkbd_keycode[KEYCODE_TABLE_BYTES] = { [113] = KEY_MUTE }; -/* This maps the in extended scancodes of the form "0xE0 " into +/* + * This maps the in extended scancodes of the form "0xE0 " into * keycodes. */ static const unsigned char visorkbd_ext_keycode[KEYCODE_TABLE_BYTES] = { @@ -212,7 +216,8 @@ static const unsigned char visorkbd_ext_keycode[KEYCODE_TABLE_BYTES] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */ }; -/* register_client_keyboard() initializes and returns a Linux gizmo that we +/* + * register_client_keyboard() initializes and returns a Linux gizmo that we * can use to deliver keyboard inputs to Linux. We of course do this when * we see keyboard inputs coming in on a keyboard channel. */ @@ -299,7 +304,8 @@ register_client_mouse(void) return NULL; } - /* Sending top-left and bottom-right positions is ABSOLUTELY + /* + * Sending top-left and bottom-right positions is ABSOLUTELY * REQUIRED if we want X to move the mouse to the exact points * we tell it. I have NO IDEA why. */ @@ -329,7 +335,8 @@ devdata_create(struct visor_device *dev, enum visorinput_device_type devtype) return NULL; devdata->dev = dev; - /* This is an input device in a client guest partition, + /* + * This is an input device in a client guest partition, * so we need to create whatever gizmos are necessary to * deliver our inputs to the guest OS. */ @@ -400,9 +407,10 @@ visorinput_remove(struct visor_device *dev) visorbus_disable_channel_interrupts(dev); - /* due to above, at this time no thread of execution will be - * in visorinput_channel_interrupt() - */ + /* + * due to above, at this time no thread of execution will be + * in visorinput_channel_interrupt() + */ down_write(&devdata->lock_visor_dev); dev_set_drvdata(&dev->device, NULL); @@ -417,7 +425,8 @@ do_key(struct input_dev *inpt, int keycode, int down) input_report_key(inpt, keycode, down); } -/* Make it so the current locking state of the locking key indicated by +/* + * Make it so the current locking state of the locking key indicated by * is as indicated by (1=locked, 0=unlocked). */ static void @@ -457,7 +466,8 @@ handle_locking_key(struct input_dev *visorinput_dev, } } -/* is either a 1-byte scancode, or an extended 16-bit scancode +/* + * is either a 1-byte scancode, or an extended 16-bit scancode * with 0xE0 in the low byte and the extended scancode value in the next * higher byte. */ @@ -488,7 +498,8 @@ calc_button(int x) } } -/* This is used only when this driver is active as an input driver in the +/* + * This is used only when this driver is active as an input driver in the * client guest partition. It is called periodically so we can obtain inputs * from the channel, and deliver them to the guest OS. */ From ade7280ff53c000c87e416fcf466081990d62c9a Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:21 -0400 Subject: [PATCH 1232/2431] staging: unisys: visorinput: comment tweaks - s/gizmo/input node/g Just a simple search and replace in the comments. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 976effa531cc..adc2cc90aef3 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -217,8 +217,8 @@ static const unsigned char visorkbd_ext_keycode[KEYCODE_TABLE_BYTES] = { }; /* - * register_client_keyboard() initializes and returns a Linux gizmo that we - * can use to deliver keyboard inputs to Linux. We of course do this when + * register_client_keyboard() initializes and returns a Linux input node that + * we can use to deliver keyboard inputs to Linux. We of course do this when * we see keyboard inputs coming in on a keyboard channel. */ static struct input_dev * @@ -337,7 +337,7 @@ devdata_create(struct visor_device *dev, enum visorinput_device_type devtype) /* * This is an input device in a client guest partition, - * so we need to create whatever gizmos are necessary to + * so we need to create whatever input nodes are necessary to * deliver our inputs to the guest OS. */ switch (devtype) { From add282479665cfbe5767524630086871e12d49f1 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:22 -0400 Subject: [PATCH 1233/2431] staging: unisys: visorinput: change input bus type to BUS_VIRTUAL (6) BUS_HOST wasn't really appropriate, so I changed to BUS_VIRTUAL, which is what virtio uses. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index adc2cc90aef3..d47cc2b643f8 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -234,7 +234,7 @@ register_client_keyboard(unsigned char *keycode_table) visorinput_dev->name = "visor Keyboard"; visorinput_dev->phys = "visorkbd:input0"; - visorinput_dev->id.bustype = BUS_HOST; + visorinput_dev->id.bustype = BUS_VIRTUAL; visorinput_dev->id.vendor = 0x0001; visorinput_dev->id.product = 0x0001; visorinput_dev->id.version = 0x0100; @@ -277,7 +277,7 @@ register_client_mouse(void) visorinput_dev->name = "visor Mouse"; visorinput_dev->phys = "visormou:input0"; - visorinput_dev->id.bustype = BUS_HOST; + visorinput_dev->id.bustype = BUS_VIRTUAL; visorinput_dev->id.vendor = 0x0001; visorinput_dev->id.product = 0x0002; visorinput_dev->id.version = 0x0100; From bc49496d2924d8fd5974053207d477d1bb6ba6ee Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:23 -0400 Subject: [PATCH 1234/2431] staging: unisys: visorinput: register & use input_dev open() and close() Registration of visorinput_open() and visorinput_close() for each device allow us to eliminate unnecessary activity when nobody in user-land cares. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../staging/unisys/visorinput/visorinput.c | 55 +++++++++++++++++-- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index d47cc2b643f8..103f72b76332 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -66,6 +66,7 @@ struct visorinput_devdata { struct rw_semaphore lock_visor_dev; /* lock for dev */ struct input_dev *visorinput_dev; bool paused; + unsigned int opened; unsigned int keycode_table_bytes; /* size of following array */ /* for keyboard devices: visorkbd_keycode[] + visorkbd_ext_keycode[] */ unsigned char keycode_table[0]; @@ -216,13 +217,50 @@ static const unsigned char visorkbd_ext_keycode[KEYCODE_TABLE_BYTES] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */ }; +static int visorinput_open(struct input_dev *visorinput_dev) +{ + struct visorinput_devdata *devdata = input_get_drvdata(visorinput_dev); + + if (!devdata) { + pr_err("%s input_get_drvdata(%p) returned NULL\n", + __func__, visorinput_dev); + return -EINVAL; + } + devdata->opened++; + dev_dbg(&visorinput_dev->dev, "%s opened %d\n", __func__, + devdata->opened); + if (devdata->opened == 1) + visorbus_enable_channel_interrupts(devdata->dev); + return 0; +} + +static void visorinput_close(struct input_dev *visorinput_dev) +{ + struct visorinput_devdata *devdata = input_get_drvdata(visorinput_dev); + + if (!devdata) { + pr_err("%s input_get_drvdata(%p) returned NULL\n", + __func__, visorinput_dev); + return; + } + if (devdata->opened) { + devdata->opened--; + dev_dbg(&visorinput_dev->dev, "%s closed %d\n", __func__, + devdata->opened); + if (devdata->opened == 0) + visorbus_disable_channel_interrupts(devdata->dev); + } else + dev_err(&visorinput_dev->dev, "%s not open\n", __func__); +} + /* * register_client_keyboard() initializes and returns a Linux input node that * we can use to deliver keyboard inputs to Linux. We of course do this when * we see keyboard inputs coming in on a keyboard channel. */ static struct input_dev * -register_client_keyboard(unsigned char *keycode_table) +register_client_keyboard(void *devdata, /* opaque on purpose */ + unsigned char *keycode_table) { int i, error; @@ -255,6 +293,10 @@ register_client_keyboard(unsigned char *keycode_table) set_bit(keycode_table[i + KEYCODE_TABLE_BYTES], visorinput_dev->keybit); + visorinput_dev->open = visorinput_open; + visorinput_dev->close = visorinput_close; + input_set_drvdata(visorinput_dev, devdata); /* pre input_register! */ + error = input_register_device(visorinput_dev); if (error) { input_free_device(visorinput_dev); @@ -264,7 +306,7 @@ register_client_keyboard(unsigned char *keycode_table) } static struct input_dev * -register_client_mouse(void) +register_client_mouse(void *devdata /* opaque on purpose */) { int error; struct input_dev *visorinput_dev = NULL; @@ -298,6 +340,10 @@ register_client_mouse(void) input_set_abs_params(visorinput_dev, ABS_X, 0, xres, 0, 0); input_set_abs_params(visorinput_dev, ABS_Y, 0, yres, 0, 0); + visorinput_dev->open = visorinput_open; + visorinput_dev->close = visorinput_close; + input_set_drvdata(visorinput_dev, devdata); /* pre input_register! */ + error = input_register_device(visorinput_dev); if (error) { input_free_device(visorinput_dev); @@ -348,12 +394,12 @@ devdata_create(struct visor_device *dev, enum visorinput_device_type devtype) memcpy(devdata->keycode_table + KEYCODE_TABLE_BYTES, visorkbd_ext_keycode, KEYCODE_TABLE_BYTES); devdata->visorinput_dev = register_client_keyboard - (devdata->keycode_table); + (devdata, devdata->keycode_table); if (!devdata->visorinput_dev) goto cleanups_register; break; case visorinput_mouse: - devdata->visorinput_dev = register_client_mouse(); + devdata->visorinput_dev = register_client_mouse(devdata); if (!devdata->visorinput_dev) goto cleanups_register; break; @@ -386,7 +432,6 @@ visorinput_probe(struct visor_device *dev) if (!devdata) return -ENOMEM; dev_set_drvdata(&dev->device, devdata); - visorbus_enable_channel_interrupts(dev); return 0; } From b4f033f2d01b6b7ab9273b8e93256673c235f5c8 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:24 -0400 Subject: [PATCH 1235/2431] staging: unisys: visorinput: remove extraneous mouse logic Removes a cursor positioning hack that no longer seems to be required. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 103f72b76332..a002e072429b 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -350,18 +350,6 @@ register_client_mouse(void *devdata /* opaque on purpose */) return NULL; } - /* - * Sending top-left and bottom-right positions is ABSOLUTELY - * REQUIRED if we want X to move the mouse to the exact points - * we tell it. I have NO IDEA why. - */ - input_report_abs(visorinput_dev, ABS_X, 0); - input_report_abs(visorinput_dev, ABS_Y, 0); - input_sync(visorinput_dev); - input_report_abs(visorinput_dev, ABS_X, xres - 1); - input_report_abs(visorinput_dev, ABS_Y, yres - 1); - input_sync(visorinput_dev); - input_set_capability(visorinput_dev, EV_REL, REL_WHEEL); return visorinput_dev; From 464b577c8bf5a150638baee151d083790190c1b7 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:25 -0400 Subject: [PATCH 1236/2431] staging: unisys: visorinput: remove extraneous do_key function do_key() is no longer needed. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index a002e072429b..3a1b24fc4831 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -452,12 +452,6 @@ visorinput_remove(struct visor_device *dev) kfree(devdata); } -static void -do_key(struct input_dev *inpt, int keycode, int down) -{ - input_report_key(inpt, keycode, down); -} - /* * Make it so the current locking state of the locking key indicated by * is as indicated by (1=locked, 0=unlocked). @@ -490,9 +484,9 @@ handle_locking_key(struct input_dev *visorinput_dev, int old_state = (test_bit(led, visorinput_dev->led) != 0); if (old_state != desired_state) { - do_key(visorinput_dev, keycode, 1); + input_report_key(visorinput_dev, keycode, 1); input_sync(visorinput_dev); - do_key(visorinput_dev, keycode, 0); + input_report_key(visorinput_dev, keycode, 0); input_sync(visorinput_dev); __change_bit(led, visorinput_dev->led); } @@ -563,17 +557,17 @@ visorinput_channel_interrupt(struct visor_device *dev) keycode = scancode_to_keycode(scancode); switch (r.activity.action) { case inputaction_key_down: - do_key(visorinput_dev, keycode, 1); + input_report_key(visorinput_dev, keycode, 1); input_sync(visorinput_dev); break; case inputaction_key_up: - do_key(visorinput_dev, keycode, 0); + input_report_key(visorinput_dev, keycode, 0); input_sync(visorinput_dev); break; case inputaction_key_down_up: - do_key(visorinput_dev, keycode, 1); + input_report_key(visorinput_dev, keycode, 1); input_sync(visorinput_dev); - do_key(visorinput_dev, keycode, 0); + input_report_key(visorinput_dev, keycode, 0); input_sync(visorinput_dev); break; case inputaction_set_locking_key_state: From 78e0e85376ab41d86f4bb8bc8d498b495c1dde8b Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:22 +0100 Subject: [PATCH 1237/2431] staging: vt6655: device_main replace pDevice with priv. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 578 +++++++++++++-------------- 1 file changed, 287 insertions(+), 291 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 07ebdea7aa34..603f18987e45 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -134,24 +134,24 @@ static const struct pci_device_id vt6655_pci_id_table[] = { /*--------------------- Static Functions --------------------------*/ static int vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent); -static void device_free_info(struct vnt_private *pDevice); -static void device_print_info(struct vnt_private *pDevice); +static void device_free_info(struct vnt_private *priv); +static void device_print_info(struct vnt_private *priv); -static void device_init_rd0_ring(struct vnt_private *pDevice); -static void device_init_rd1_ring(struct vnt_private *pDevice); -static void device_init_td0_ring(struct vnt_private *pDevice); -static void device_init_td1_ring(struct vnt_private *pDevice); +static void device_init_rd0_ring(struct vnt_private *priv); +static void device_init_rd1_ring(struct vnt_private *priv); +static void device_init_td0_ring(struct vnt_private *priv); +static void device_init_td1_ring(struct vnt_private *priv); -static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx); -static int device_tx_srv(struct vnt_private *pDevice, unsigned int uIdx); +static int device_rx_srv(struct vnt_private *priv, unsigned int uIdx); +static int device_tx_srv(struct vnt_private *priv, unsigned int uIdx); static bool device_alloc_rx_buf(struct vnt_private *, struct vnt_rx_desc *); -static void device_init_registers(struct vnt_private *pDevice); +static void device_init_registers(struct vnt_private *priv); static void device_free_tx_buf(struct vnt_private *, struct vnt_tx_desc *); -static void device_free_td0_ring(struct vnt_private *pDevice); -static void device_free_td1_ring(struct vnt_private *pDevice); -static void device_free_rd0_ring(struct vnt_private *pDevice); -static void device_free_rd1_ring(struct vnt_private *pDevice); -static void device_free_rings(struct vnt_private *pDevice); +static void device_free_td0_ring(struct vnt_private *priv); +static void device_free_td1_ring(struct vnt_private *priv); +static void device_free_rd0_ring(struct vnt_private *priv); +static void device_free_rd1_ring(struct vnt_private *priv); +static void device_free_rings(struct vnt_private *priv); /*--------------------- Export Variables --------------------------*/ @@ -159,16 +159,16 @@ static void device_free_rings(struct vnt_private *pDevice); static void vt6655_remove(struct pci_dev *pcid) { - struct vnt_private *pDevice = pci_get_drvdata(pcid); + struct vnt_private *priv = pci_get_drvdata(pcid); - if (pDevice == NULL) + if (priv == NULL) return; - device_free_info(pDevice); + device_free_info(priv); } -static void device_get_options(struct vnt_private *pDevice) +static void device_get_options(struct vnt_private *priv) { - POPTIONS pOpts = &(pDevice->sOpts); + POPTIONS pOpts = &priv->sOpts; pOpts->nRxDescs0 = RX_DESC_DEF0; pOpts->nRxDescs1 = RX_DESC_DEF1; @@ -182,28 +182,28 @@ static void device_get_options(struct vnt_private *pDevice) } static void -device_set_options(struct vnt_private *pDevice) +device_set_options(struct vnt_private *priv) { - pDevice->byShortRetryLimit = pDevice->sOpts.short_retry; - pDevice->byLongRetryLimit = pDevice->sOpts.long_retry; - pDevice->byBBType = pDevice->sOpts.bbp_type; - pDevice->byPacketType = pDevice->byBBType; - pDevice->byAutoFBCtrl = AUTO_FB_0; - pDevice->bUpdateBBVGA = true; - pDevice->byPreambleType = 0; + priv->byShortRetryLimit = priv->sOpts.short_retry; + priv->byLongRetryLimit = priv->sOpts.long_retry; + priv->byBBType = priv->sOpts.bbp_type; + priv->byPacketType = priv->byBBType; + priv->byAutoFBCtrl = AUTO_FB_0; + priv->bUpdateBBVGA = true; + priv->byPreambleType = 0; - pr_debug(" byShortRetryLimit= %d\n", (int)pDevice->byShortRetryLimit); - pr_debug(" byLongRetryLimit= %d\n", (int)pDevice->byLongRetryLimit); - pr_debug(" byPreambleType= %d\n", (int)pDevice->byPreambleType); - pr_debug(" byShortPreamble= %d\n", (int)pDevice->byShortPreamble); - pr_debug(" byBBType= %d\n", (int)pDevice->byBBType); + pr_debug(" byShortRetryLimit= %d\n", (int)priv->byShortRetryLimit); + pr_debug(" byLongRetryLimit= %d\n", (int)priv->byLongRetryLimit); + pr_debug(" byPreambleType= %d\n", (int)priv->byPreambleType); + pr_debug(" byShortPreamble= %d\n", (int)priv->byShortPreamble); + pr_debug(" byBBType= %d\n", (int)priv->byBBType); } /* * Initialisation of MAC & BBP registers */ -static void device_init_registers(struct vnt_private *pDevice) +static void device_init_registers(struct vnt_private *priv) { unsigned long flags; unsigned int ii; @@ -211,45 +211,45 @@ static void device_init_registers(struct vnt_private *pDevice) unsigned char byCCKPwrdBm = 0; unsigned char byOFDMPwrdBm = 0; - MACbShutdown(pDevice->PortOffset); - BBvSoftwareReset(pDevice); + MACbShutdown(priv->PortOffset); + BBvSoftwareReset(priv); /* Do MACbSoftwareReset in MACvInitialize */ - MACbSoftwareReset(pDevice->PortOffset); + MACbSoftwareReset(priv->PortOffset); - pDevice->bAES = false; + priv->bAES = false; /* Only used in 11g type, sync with ERP IE */ - pDevice->bProtectMode = false; + priv->bProtectMode = false; - pDevice->bNonERPPresent = false; - pDevice->bBarkerPreambleMd = false; - pDevice->wCurrentRate = RATE_1M; - pDevice->byTopOFDMBasicRate = RATE_24M; - pDevice->byTopCCKBasicRate = RATE_1M; + priv->bNonERPPresent = false; + priv->bBarkerPreambleMd = false; + priv->wCurrentRate = RATE_1M; + priv->byTopOFDMBasicRate = RATE_24M; + priv->byTopCCKBasicRate = RATE_1M; /* init MAC */ - MACvInitialize(pDevice->PortOffset); + MACvInitialize(priv->PortOffset); /* Get Local ID */ - VNSvInPortB(pDevice->PortOffset + MAC_REG_LOCALID, &pDevice->byLocalID); + VNSvInPortB(priv->PortOffset + MAC_REG_LOCALID, &priv->byLocalID); - spin_lock_irqsave(&pDevice->lock, flags); + spin_lock_irqsave(&priv->lock, flags); - SROMvReadAllContents(pDevice->PortOffset, pDevice->abyEEPROM); + SROMvReadAllContents(priv->PortOffset, priv->abyEEPROM); - spin_unlock_irqrestore(&pDevice->lock, flags); + spin_unlock_irqrestore(&priv->lock, flags); /* Get Channel range */ - pDevice->byMinChannel = 1; - pDevice->byMaxChannel = CB_MAX_CHANNEL; + priv->byMinChannel = 1; + priv->byMaxChannel = CB_MAX_CHANNEL; /* Get Antena */ - byValue = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_ANTENNA); + byValue = SROMbyReadEmbedded(priv->PortOffset, EEP_OFS_ANTENNA); if (byValue & EEP_ANTINV) - pDevice->bTxRxAntInv = true; + priv->bTxRxAntInv = true; else - pDevice->bTxRxAntInv = false; + priv->bTxRxAntInv = false; byValue &= (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN); /* if not set default is All */ @@ -257,352 +257,348 @@ static void device_init_registers(struct vnt_private *pDevice) byValue = (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN); if (byValue == (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN)) { - pDevice->byAntennaCount = 2; - pDevice->byTxAntennaMode = ANT_B; - pDevice->dwTxAntennaSel = 1; - pDevice->dwRxAntennaSel = 1; + priv->byAntennaCount = 2; + priv->byTxAntennaMode = ANT_B; + priv->dwTxAntennaSel = 1; + priv->dwRxAntennaSel = 1; - if (pDevice->bTxRxAntInv) - pDevice->byRxAntennaMode = ANT_A; + if (priv->bTxRxAntInv) + priv->byRxAntennaMode = ANT_A; else - pDevice->byRxAntennaMode = ANT_B; + priv->byRxAntennaMode = ANT_B; } else { - pDevice->byAntennaCount = 1; - pDevice->dwTxAntennaSel = 0; - pDevice->dwRxAntennaSel = 0; + priv->byAntennaCount = 1; + priv->dwTxAntennaSel = 0; + priv->dwRxAntennaSel = 0; if (byValue & EEP_ANTENNA_AUX) { - pDevice->byTxAntennaMode = ANT_A; + priv->byTxAntennaMode = ANT_A; - if (pDevice->bTxRxAntInv) - pDevice->byRxAntennaMode = ANT_B; + if (priv->bTxRxAntInv) + priv->byRxAntennaMode = ANT_B; else - pDevice->byRxAntennaMode = ANT_A; + priv->byRxAntennaMode = ANT_A; } else { - pDevice->byTxAntennaMode = ANT_B; + priv->byTxAntennaMode = ANT_B; - if (pDevice->bTxRxAntInv) - pDevice->byRxAntennaMode = ANT_A; + if (priv->bTxRxAntInv) + priv->byRxAntennaMode = ANT_A; else - pDevice->byRxAntennaMode = ANT_B; + priv->byRxAntennaMode = ANT_B; } } /* Set initial antenna mode */ - BBvSetTxAntennaMode(pDevice, pDevice->byTxAntennaMode); - BBvSetRxAntennaMode(pDevice, pDevice->byRxAntennaMode); + BBvSetTxAntennaMode(priv, priv->byTxAntennaMode); + BBvSetRxAntennaMode(priv, priv->byRxAntennaMode); /* zonetype initial */ - pDevice->byOriginalZonetype = pDevice->abyEEPROM[EEP_OFS_ZONETYPE]; + priv->byOriginalZonetype = priv->abyEEPROM[EEP_OFS_ZONETYPE]; - if (!pDevice->bZoneRegExist) - pDevice->byZoneType = pDevice->abyEEPROM[EEP_OFS_ZONETYPE]; + if (!priv->bZoneRegExist) + priv->byZoneType = priv->abyEEPROM[EEP_OFS_ZONETYPE]; - pr_debug("pDevice->byZoneType = %x\n", pDevice->byZoneType); + pr_debug("priv->byZoneType = %x\n", priv->byZoneType); /* Init RF module */ - RFbInit(pDevice); + RFbInit(priv); /* Get Desire Power Value */ - pDevice->byCurPwr = 0xFF; - pDevice->byCCKPwr = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_PWR_CCK); - pDevice->byOFDMPwrG = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_PWR_OFDMG); + priv->byCurPwr = 0xFF; + priv->byCCKPwr = SROMbyReadEmbedded(priv->PortOffset, EEP_OFS_PWR_CCK); + priv->byOFDMPwrG = SROMbyReadEmbedded(priv->PortOffset, EEP_OFS_PWR_OFDMG); /* Load power Table */ for (ii = 0; ii < CB_MAX_CHANNEL_24G; ii++) { - pDevice->abyCCKPwrTbl[ii + 1] = - SROMbyReadEmbedded(pDevice->PortOffset, + priv->abyCCKPwrTbl[ii + 1] = + SROMbyReadEmbedded(priv->PortOffset, (unsigned char)(ii + EEP_OFS_CCK_PWR_TBL)); - if (pDevice->abyCCKPwrTbl[ii + 1] == 0) - pDevice->abyCCKPwrTbl[ii+1] = pDevice->byCCKPwr; + if (priv->abyCCKPwrTbl[ii + 1] == 0) + priv->abyCCKPwrTbl[ii+1] = priv->byCCKPwr; - pDevice->abyOFDMPwrTbl[ii + 1] = - SROMbyReadEmbedded(pDevice->PortOffset, + priv->abyOFDMPwrTbl[ii + 1] = + SROMbyReadEmbedded(priv->PortOffset, (unsigned char)(ii + EEP_OFS_OFDM_PWR_TBL)); - if (pDevice->abyOFDMPwrTbl[ii + 1] == 0) - pDevice->abyOFDMPwrTbl[ii + 1] = pDevice->byOFDMPwrG; + if (priv->abyOFDMPwrTbl[ii + 1] == 0) + priv->abyOFDMPwrTbl[ii + 1] = priv->byOFDMPwrG; - pDevice->abyCCKDefaultPwr[ii + 1] = byCCKPwrdBm; - pDevice->abyOFDMDefaultPwr[ii + 1] = byOFDMPwrdBm; + priv->abyCCKDefaultPwr[ii + 1] = byCCKPwrdBm; + priv->abyOFDMDefaultPwr[ii + 1] = byOFDMPwrdBm; } /* recover 12,13 ,14channel for EUROPE by 11 channel */ for (ii = 11; ii < 14; ii++) { - pDevice->abyCCKPwrTbl[ii] = pDevice->abyCCKPwrTbl[10]; - pDevice->abyOFDMPwrTbl[ii] = pDevice->abyOFDMPwrTbl[10]; + priv->abyCCKPwrTbl[ii] = priv->abyCCKPwrTbl[10]; + priv->abyOFDMPwrTbl[ii] = priv->abyOFDMPwrTbl[10]; } /* Load OFDM A Power Table */ for (ii = 0; ii < CB_MAX_CHANNEL_5G; ii++) { - pDevice->abyOFDMPwrTbl[ii + CB_MAX_CHANNEL_24G + 1] = - SROMbyReadEmbedded(pDevice->PortOffset, + priv->abyOFDMPwrTbl[ii + CB_MAX_CHANNEL_24G + 1] = + SROMbyReadEmbedded(priv->PortOffset, (unsigned char)(ii + EEP_OFS_OFDMA_PWR_TBL)); - pDevice->abyOFDMDefaultPwr[ii + CB_MAX_CHANNEL_24G + 1] = - SROMbyReadEmbedded(pDevice->PortOffset, + priv->abyOFDMDefaultPwr[ii + CB_MAX_CHANNEL_24G + 1] = + SROMbyReadEmbedded(priv->PortOffset, (unsigned char)(ii + EEP_OFS_OFDMA_PWR_dBm)); } - if (pDevice->byLocalID > REV_ID_VT3253_B1) { - MACvSelectPage1(pDevice->PortOffset); + if (priv->byLocalID > REV_ID_VT3253_B1) { + MACvSelectPage1(priv->PortOffset); - VNSvOutPortB(pDevice->PortOffset + MAC_REG_MSRCTL + 1, + VNSvOutPortB(priv->PortOffset + MAC_REG_MSRCTL + 1, (MSRCTL1_TXPWR | MSRCTL1_CSAPAREN)); - MACvSelectPage0(pDevice->PortOffset); + MACvSelectPage0(priv->PortOffset); } /* use relative tx timeout and 802.11i D4 */ - MACvWordRegBitsOn(pDevice->PortOffset, + MACvWordRegBitsOn(priv->PortOffset, MAC_REG_CFG, (CFG_TKIPOPT | CFG_NOTXTIMEOUT)); /* set performance parameter by registry */ - MACvSetShortRetryLimit(pDevice->PortOffset, pDevice->byShortRetryLimit); - MACvSetLongRetryLimit(pDevice->PortOffset, pDevice->byLongRetryLimit); + MACvSetShortRetryLimit(priv->PortOffset, priv->byShortRetryLimit); + MACvSetLongRetryLimit(priv->PortOffset, priv->byLongRetryLimit); /* reset TSF counter */ - VNSvOutPortB(pDevice->PortOffset + MAC_REG_TFTCTL, TFTCTL_TSFCNTRST); + VNSvOutPortB(priv->PortOffset + MAC_REG_TFTCTL, TFTCTL_TSFCNTRST); /* enable TSF counter */ - VNSvOutPortB(pDevice->PortOffset + MAC_REG_TFTCTL, TFTCTL_TSFCNTREN); + VNSvOutPortB(priv->PortOffset + MAC_REG_TFTCTL, TFTCTL_TSFCNTREN); /* initialize BBP registers */ - BBbVT3253Init(pDevice); + BBbVT3253Init(priv); - if (pDevice->bUpdateBBVGA) { - pDevice->byBBVGACurrent = pDevice->abyBBVGA[0]; - pDevice->byBBVGANew = pDevice->byBBVGACurrent; - BBvSetVGAGainOffset(pDevice, pDevice->abyBBVGA[0]); + if (priv->bUpdateBBVGA) { + priv->byBBVGACurrent = priv->abyBBVGA[0]; + priv->byBBVGANew = priv->byBBVGACurrent; + BBvSetVGAGainOffset(priv, priv->abyBBVGA[0]); } - BBvSetRxAntennaMode(pDevice, pDevice->byRxAntennaMode); - BBvSetTxAntennaMode(pDevice, pDevice->byTxAntennaMode); + BBvSetRxAntennaMode(priv, priv->byRxAntennaMode); + BBvSetTxAntennaMode(priv, priv->byTxAntennaMode); /* Set BB and packet type at the same time. */ /* Set Short Slot Time, xIFS, and RSPINF. */ - pDevice->wCurrentRate = RATE_54M; + priv->wCurrentRate = RATE_54M; - pDevice->bRadioOff = false; + priv->bRadioOff = false; - pDevice->byRadioCtl = SROMbyReadEmbedded(pDevice->PortOffset, + priv->byRadioCtl = SROMbyReadEmbedded(priv->PortOffset, EEP_OFS_RADIOCTL); - pDevice->bHWRadioOff = false; + priv->bHWRadioOff = false; - if (pDevice->byRadioCtl & EEP_RADIOCTL_ENABLE) { + if (priv->byRadioCtl & EEP_RADIOCTL_ENABLE) { /* Get GPIO */ - MACvGPIOIn(pDevice->PortOffset, &pDevice->byGPIO); + MACvGPIOIn(priv->PortOffset, &priv->byGPIO); - if (((pDevice->byGPIO & GPIO0_DATA) && - !(pDevice->byRadioCtl & EEP_RADIOCTL_INV)) || - (!(pDevice->byGPIO & GPIO0_DATA) && - (pDevice->byRadioCtl & EEP_RADIOCTL_INV))) - pDevice->bHWRadioOff = true; + if (((priv->byGPIO & GPIO0_DATA) && + !(priv->byRadioCtl & EEP_RADIOCTL_INV)) || + (!(priv->byGPIO & GPIO0_DATA) && + (priv->byRadioCtl & EEP_RADIOCTL_INV))) + priv->bHWRadioOff = true; } - if (pDevice->bHWRadioOff || pDevice->bRadioControlOff) - CARDbRadioPowerOff(pDevice); + if (priv->bHWRadioOff || priv->bRadioControlOff) + CARDbRadioPowerOff(priv); /* get Permanent network address */ - SROMvReadEtherAddress(pDevice->PortOffset, pDevice->abyCurrentNetAddr); - pr_debug("Network address = %pM\n", pDevice->abyCurrentNetAddr); + SROMvReadEtherAddress(priv->PortOffset, priv->abyCurrentNetAddr); + pr_debug("Network address = %pM\n", priv->abyCurrentNetAddr); /* reset Tx pointer */ - CARDvSafeResetRx(pDevice); + CARDvSafeResetRx(priv); /* reset Rx pointer */ - CARDvSafeResetTx(pDevice); + CARDvSafeResetTx(priv); - if (pDevice->byLocalID <= REV_ID_VT3253_A1) - MACvRegBitsOn(pDevice->PortOffset, MAC_REG_RCR, RCR_WPAERR); + if (priv->byLocalID <= REV_ID_VT3253_A1) + MACvRegBitsOn(priv->PortOffset, MAC_REG_RCR, RCR_WPAERR); /* Turn On Rx DMA */ - MACvReceive0(pDevice->PortOffset); - MACvReceive1(pDevice->PortOffset); + MACvReceive0(priv->PortOffset); + MACvReceive1(priv->PortOffset); /* start the adapter */ - MACvStart(pDevice->PortOffset); + MACvStart(priv->PortOffset); } -static void device_print_info(struct vnt_private *pDevice) +static void device_print_info(struct vnt_private *priv) { - dev_info(&pDevice->pcid->dev, "MAC=%pM IO=0x%lx Mem=0x%lx IRQ=%d\n", - pDevice->abyCurrentNetAddr, (unsigned long)pDevice->ioaddr, - (unsigned long)pDevice->PortOffset, pDevice->pcid->irq); + dev_info(&priv->pcid->dev, "MAC=%pM IO=0x%lx Mem=0x%lx IRQ=%d\n", + priv->abyCurrentNetAddr, (unsigned long)priv->ioaddr, + (unsigned long)priv->PortOffset, priv->pcid->irq); } -static void device_free_info(struct vnt_private *pDevice) +static void device_free_info(struct vnt_private *priv) { - if (!pDevice) + if (!priv) return; - if (pDevice->mac_hw) - ieee80211_unregister_hw(pDevice->hw); + if (priv->mac_hw) + ieee80211_unregister_hw(priv->hw); - if (pDevice->PortOffset) - iounmap(pDevice->PortOffset); + if (priv->PortOffset) + iounmap(priv->PortOffset); - if (pDevice->pcid) - pci_release_regions(pDevice->pcid); + if (priv->pcid) + pci_release_regions(priv->pcid); - if (pDevice->hw) - ieee80211_free_hw(pDevice->hw); + if (priv->hw) + ieee80211_free_hw(priv->hw); } -static bool device_init_rings(struct vnt_private *pDevice) +static bool device_init_rings(struct vnt_private *priv) { void *vir_pool; /*allocate all RD/TD rings a single pool*/ - vir_pool = dma_zalloc_coherent(&pDevice->pcid->dev, - pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + - pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + - pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + - pDevice->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), - &pDevice->pool_dma, GFP_ATOMIC); + vir_pool = dma_zalloc_coherent(&priv->pcid->dev, + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + + priv->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), + &priv->pool_dma, GFP_ATOMIC); if (vir_pool == NULL) { - dev_err(&pDevice->pcid->dev, "allocate desc dma memory failed\n"); + dev_err(&priv->pcid->dev, "allocate desc dma memory failed\n"); return false; } - pDevice->aRD0Ring = vir_pool; - pDevice->aRD1Ring = vir_pool + - pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc); + priv->aRD0Ring = vir_pool; + priv->aRD1Ring = vir_pool + + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc); - pDevice->rd0_pool_dma = pDevice->pool_dma; - pDevice->rd1_pool_dma = pDevice->rd0_pool_dma + - pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc); + priv->rd0_pool_dma = priv->pool_dma; + priv->rd1_pool_dma = priv->rd0_pool_dma + + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc); - pDevice->tx0_bufs = dma_zalloc_coherent(&pDevice->pcid->dev, - pDevice->sOpts.nTxDescs[0] * PKT_BUF_SZ + - pDevice->sOpts.nTxDescs[1] * PKT_BUF_SZ + - CB_BEACON_BUF_SIZE + - CB_MAX_BUF_SIZE, - &pDevice->tx_bufs_dma0, - GFP_ATOMIC); - if (pDevice->tx0_bufs == NULL) { - dev_err(&pDevice->pcid->dev, "allocate buf dma memory failed\n"); + priv->tx0_bufs = dma_zalloc_coherent(&priv->pcid->dev, + priv->sOpts.nTxDescs[0] * PKT_BUF_SZ + + priv->sOpts.nTxDescs[1] * PKT_BUF_SZ + + CB_BEACON_BUF_SIZE + + CB_MAX_BUF_SIZE, + &priv->tx_bufs_dma0, + GFP_ATOMIC); + if (priv->tx0_bufs == NULL) { + dev_err(&priv->pcid->dev, "allocate buf dma memory failed\n"); - dma_free_coherent(&pDevice->pcid->dev, - pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + - pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + - pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + - pDevice->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), - vir_pool, pDevice->pool_dma - ); + dma_free_coherent(&priv->pcid->dev, + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + + priv->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), + vir_pool, priv->pool_dma); return false; } - pDevice->td0_pool_dma = pDevice->rd1_pool_dma + - pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc); + priv->td0_pool_dma = priv->rd1_pool_dma + + priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc); - pDevice->td1_pool_dma = pDevice->td0_pool_dma + - pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc); + priv->td1_pool_dma = priv->td0_pool_dma + + priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc); /* vir_pool: pvoid type */ - pDevice->apTD0Rings = vir_pool - + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) - + pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc); + priv->apTD0Rings = vir_pool + + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc); - pDevice->apTD1Rings = vir_pool - + pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) - + pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) - + pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc); + priv->apTD1Rings = vir_pool + + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc); - pDevice->tx1_bufs = pDevice->tx0_bufs + - pDevice->sOpts.nTxDescs[0] * PKT_BUF_SZ; + priv->tx1_bufs = priv->tx0_bufs + + priv->sOpts.nTxDescs[0] * PKT_BUF_SZ; - pDevice->tx_beacon_bufs = pDevice->tx1_bufs + - pDevice->sOpts.nTxDescs[1] * PKT_BUF_SZ; + priv->tx_beacon_bufs = priv->tx1_bufs + + priv->sOpts.nTxDescs[1] * PKT_BUF_SZ; - pDevice->pbyTmpBuff = pDevice->tx_beacon_bufs + + priv->pbyTmpBuff = priv->tx_beacon_bufs + CB_BEACON_BUF_SIZE; - pDevice->tx_bufs_dma1 = pDevice->tx_bufs_dma0 + - pDevice->sOpts.nTxDescs[0] * PKT_BUF_SZ; + priv->tx_bufs_dma1 = priv->tx_bufs_dma0 + + priv->sOpts.nTxDescs[0] * PKT_BUF_SZ; - pDevice->tx_beacon_dma = pDevice->tx_bufs_dma1 + - pDevice->sOpts.nTxDescs[1] * PKT_BUF_SZ; + priv->tx_beacon_dma = priv->tx_bufs_dma1 + + priv->sOpts.nTxDescs[1] * PKT_BUF_SZ; return true; } -static void device_free_rings(struct vnt_private *pDevice) +static void device_free_rings(struct vnt_private *priv) { - dma_free_coherent(&pDevice->pcid->dev, - pDevice->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + - pDevice->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + - pDevice->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + - pDevice->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc) - , - pDevice->aRD0Ring, pDevice->pool_dma - ); + dma_free_coherent(&priv->pcid->dev, + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + + priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + + priv->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), + priv->aRD0Ring, priv->pool_dma); - if (pDevice->tx0_bufs) - dma_free_coherent(&pDevice->pcid->dev, - pDevice->sOpts.nTxDescs[0] * PKT_BUF_SZ + - pDevice->sOpts.nTxDescs[1] * PKT_BUF_SZ + - CB_BEACON_BUF_SIZE + - CB_MAX_BUF_SIZE, - pDevice->tx0_bufs, pDevice->tx_bufs_dma0 - ); + if (priv->tx0_bufs) + dma_free_coherent(&priv->pcid->dev, + priv->sOpts.nTxDescs[0] * PKT_BUF_SZ + + priv->sOpts.nTxDescs[1] * PKT_BUF_SZ + + CB_BEACON_BUF_SIZE + + CB_MAX_BUF_SIZE, + priv->tx0_bufs, priv->tx_bufs_dma0); } -static void device_init_rd0_ring(struct vnt_private *pDevice) +static void device_init_rd0_ring(struct vnt_private *priv) { int i; - dma_addr_t curr = pDevice->rd0_pool_dma; + dma_addr_t curr = priv->rd0_pool_dma; struct vnt_rx_desc *pDesc; /* Init the RD0 ring entries */ - for (i = 0; i < pDevice->sOpts.nRxDescs0; + for (i = 0; i < priv->sOpts.nRxDescs0; i ++, curr += sizeof(struct vnt_rx_desc)) { - pDesc = &(pDevice->aRD0Ring[i]); + pDesc = &(priv->aRD0Ring[i]); pDesc->rd_info = alloc_rd_info(); - if (!device_alloc_rx_buf(pDevice, pDesc)) - dev_err(&pDevice->pcid->dev, "can not alloc rx bufs\n"); + if (!device_alloc_rx_buf(priv, pDesc)) + dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); - pDesc->next = &(pDevice->aRD0Ring[(i+1) % pDevice->sOpts.nRxDescs0]); + pDesc->next = &(priv->aRD0Ring[(i+1) % priv->sOpts.nRxDescs0]); pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } if (i > 0) - pDevice->aRD0Ring[i-1].next_desc = cpu_to_le32(pDevice->rd0_pool_dma); - pDevice->pCurrRD[0] = &(pDevice->aRD0Ring[0]); + priv->aRD0Ring[i-1].next_desc = cpu_to_le32(priv->rd0_pool_dma); + priv->pCurrRD[0] = &priv->aRD0Ring[0]; } -static void device_init_rd1_ring(struct vnt_private *pDevice) +static void device_init_rd1_ring(struct vnt_private *priv) { int i; - dma_addr_t curr = pDevice->rd1_pool_dma; + dma_addr_t curr = priv->rd1_pool_dma; struct vnt_rx_desc *pDesc; /* Init the RD1 ring entries */ - for (i = 0; i < pDevice->sOpts.nRxDescs1; + for (i = 0; i < priv->sOpts.nRxDescs1; i ++, curr += sizeof(struct vnt_rx_desc)) { - pDesc = &(pDevice->aRD1Ring[i]); + pDesc = &(priv->aRD1Ring[i]); pDesc->rd_info = alloc_rd_info(); - if (!device_alloc_rx_buf(pDevice, pDesc)) - dev_err(&pDevice->pcid->dev, "can not alloc rx bufs\n"); + if (!device_alloc_rx_buf(priv, pDesc)) + dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); - pDesc->next = &(pDevice->aRD1Ring[(i+1) % pDevice->sOpts.nRxDescs1]); + pDesc->next = &(priv->aRD1Ring[(i+1) % priv->sOpts.nRxDescs1]); pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } if (i > 0) - pDevice->aRD1Ring[i-1].next_desc = cpu_to_le32(pDevice->rd1_pool_dma); - pDevice->pCurrRD[1] = &(pDevice->aRD1Ring[0]); + priv->aRD1Ring[i-1].next_desc = cpu_to_le32(priv->rd1_pool_dma); + priv->pCurrRD[1] = &priv->aRD1Ring[0]; } -static void device_free_rd0_ring(struct vnt_private *pDevice) +static void device_free_rd0_ring(struct vnt_private *priv) { int i; - for (i = 0; i < pDevice->sOpts.nRxDescs0; i++) { - struct vnt_rx_desc *pDesc = &(pDevice->aRD0Ring[i]); + for (i = 0; i < priv->sOpts.nRxDescs0; i++) { + struct vnt_rx_desc *pDesc = &(priv->aRD0Ring[i]); struct vnt_rd_info *rd_info = pDesc->rd_info; - dma_unmap_single(&pDevice->pcid->dev, rd_info->skb_dma, - pDevice->rx_buf_sz, DMA_FROM_DEVICE); + dma_unmap_single(&priv->pcid->dev, rd_info->skb_dma, + priv->rx_buf_sz, DMA_FROM_DEVICE); dev_kfree_skb(rd_info->skb); @@ -610,16 +606,16 @@ static void device_free_rd0_ring(struct vnt_private *pDevice) } } -static void device_free_rd1_ring(struct vnt_private *pDevice) +static void device_free_rd1_ring(struct vnt_private *priv) { int i; - for (i = 0; i < pDevice->sOpts.nRxDescs1; i++) { - struct vnt_rx_desc *pDesc = &(pDevice->aRD1Ring[i]); + for (i = 0; i < priv->sOpts.nRxDescs1; i++) { + struct vnt_rx_desc *pDesc = &(priv->aRD1Ring[i]); struct vnt_rd_info *rd_info = pDesc->rd_info; - dma_unmap_single(&pDevice->pcid->dev, rd_info->skb_dma, - pDevice->rx_buf_sz, DMA_FROM_DEVICE); + dma_unmap_single(&priv->pcid->dev, rd_info->skb_dma, + priv->rx_buf_sz, DMA_FROM_DEVICE); dev_kfree_skb(rd_info->skb); @@ -627,61 +623,61 @@ static void device_free_rd1_ring(struct vnt_private *pDevice) } } -static void device_init_td0_ring(struct vnt_private *pDevice) +static void device_init_td0_ring(struct vnt_private *priv) { int i; dma_addr_t curr; struct vnt_tx_desc *pDesc; - curr = pDevice->td0_pool_dma; - for (i = 0; i < pDevice->sOpts.nTxDescs[0]; + curr = priv->td0_pool_dma; + for (i = 0; i < priv->sOpts.nTxDescs[0]; i++, curr += sizeof(struct vnt_tx_desc)) { - pDesc = &(pDevice->apTD0Rings[i]); + pDesc = &(priv->apTD0Rings[i]); pDesc->td_info = alloc_td_info(); - pDesc->td_info->buf = pDevice->tx0_bufs + i * PKT_BUF_SZ; - pDesc->td_info->buf_dma = pDevice->tx_bufs_dma0 + i * PKT_BUF_SZ; + pDesc->td_info->buf = priv->tx0_bufs + i * PKT_BUF_SZ; + pDesc->td_info->buf_dma = priv->tx_bufs_dma0 + i * PKT_BUF_SZ; - pDesc->next = &(pDevice->apTD0Rings[(i+1) % pDevice->sOpts.nTxDescs[0]]); + pDesc->next = &(priv->apTD0Rings[(i+1) % priv->sOpts.nTxDescs[0]]); pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } if (i > 0) - pDevice->apTD0Rings[i-1].next_desc = cpu_to_le32(pDevice->td0_pool_dma); - pDevice->apTailTD[0] = pDevice->apCurrTD[0] = &(pDevice->apTD0Rings[0]); + priv->apTD0Rings[i-1].next_desc = cpu_to_le32(priv->td0_pool_dma); + priv->apTailTD[0] = priv->apCurrTD[0] = &priv->apTD0Rings[0]; } -static void device_init_td1_ring(struct vnt_private *pDevice) +static void device_init_td1_ring(struct vnt_private *priv) { int i; dma_addr_t curr; struct vnt_tx_desc *pDesc; /* Init the TD ring entries */ - curr = pDevice->td1_pool_dma; - for (i = 0; i < pDevice->sOpts.nTxDescs[1]; + curr = priv->td1_pool_dma; + for (i = 0; i < priv->sOpts.nTxDescs[1]; i++, curr += sizeof(struct vnt_tx_desc)) { - pDesc = &(pDevice->apTD1Rings[i]); + pDesc = &(priv->apTD1Rings[i]); pDesc->td_info = alloc_td_info(); - pDesc->td_info->buf = pDevice->tx1_bufs + i * PKT_BUF_SZ; - pDesc->td_info->buf_dma = pDevice->tx_bufs_dma1 + i * PKT_BUF_SZ; + pDesc->td_info->buf = priv->tx1_bufs + i * PKT_BUF_SZ; + pDesc->td_info->buf_dma = priv->tx_bufs_dma1 + i * PKT_BUF_SZ; - pDesc->next = &(pDevice->apTD1Rings[(i + 1) % pDevice->sOpts.nTxDescs[1]]); + pDesc->next = &(priv->apTD1Rings[(i + 1) % priv->sOpts.nTxDescs[1]]); pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } if (i > 0) - pDevice->apTD1Rings[i-1].next_desc = cpu_to_le32(pDevice->td1_pool_dma); - pDevice->apTailTD[1] = pDevice->apCurrTD[1] = &(pDevice->apTD1Rings[0]); + priv->apTD1Rings[i-1].next_desc = cpu_to_le32(priv->td1_pool_dma); + priv->apTailTD[1] = priv->apCurrTD[1] = &priv->apTD1Rings[0]; } -static void device_free_td0_ring(struct vnt_private *pDevice) +static void device_free_td0_ring(struct vnt_private *priv) { int i; - for (i = 0; i < pDevice->sOpts.nTxDescs[0]; i++) { - struct vnt_tx_desc *pDesc = &pDevice->apTD0Rings[i]; + for (i = 0; i < priv->sOpts.nTxDescs[0]; i++) { + struct vnt_tx_desc *pDesc = &priv->apTD0Rings[i]; struct vnt_td_info *pTDInfo = pDesc->td_info; dev_kfree_skb(pTDInfo->skb); @@ -689,12 +685,12 @@ static void device_free_td0_ring(struct vnt_private *pDevice) } } -static void device_free_td1_ring(struct vnt_private *pDevice) +static void device_free_td1_ring(struct vnt_private *priv) { int i; - for (i = 0; i < pDevice->sOpts.nTxDescs[1]; i++) { - struct vnt_tx_desc *pDesc = &pDevice->apTD1Rings[i]; + for (i = 0; i < priv->sOpts.nTxDescs[1]; i++) { + struct vnt_tx_desc *pDesc = &priv->apTD1Rings[i]; struct vnt_td_info *pTDInfo = pDesc->td_info; dev_kfree_skb(pTDInfo->skb); @@ -704,12 +700,12 @@ static void device_free_td1_ring(struct vnt_private *pDevice) /*-----------------------------------------------------------------*/ -static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) +static int device_rx_srv(struct vnt_private *priv, unsigned int uIdx) { struct vnt_rx_desc *pRD; int works = 0; - for (pRD = pDevice->pCurrRD[uIdx]; + for (pRD = priv->pCurrRD[uIdx]; pRD->rd0.owner == OWNED_BY_HOST; pRD = pRD->next) { if (works++ > 15) @@ -718,9 +714,9 @@ static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) if (!pRD->rd_info->skb) break; - if (vnt_receive_frame(pDevice, pRD)) { - if (!device_alloc_rx_buf(pDevice, pRD)) { - dev_err(&pDevice->pcid->dev, + if (vnt_receive_frame(priv, pRD)) { + if (!device_alloc_rx_buf(priv, pRD)) { + dev_err(&priv->pcid->dev, "can not allocate rx buf\n"); break; } @@ -728,30 +724,30 @@ static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) pRD->rd0.owner = OWNED_BY_NIC; } - pDevice->pCurrRD[uIdx] = pRD; + priv->pCurrRD[uIdx] = pRD; return works; } -static bool device_alloc_rx_buf(struct vnt_private *pDevice, +static bool device_alloc_rx_buf(struct vnt_private *priv, struct vnt_rx_desc *pRD) { struct vnt_rd_info *pRDInfo = pRD->rd_info; - pRDInfo->skb = dev_alloc_skb((int)pDevice->rx_buf_sz); + pRDInfo->skb = dev_alloc_skb((int)priv->rx_buf_sz); if (pRDInfo->skb == NULL) return false; pRDInfo->skb_dma = - dma_map_single(&pDevice->pcid->dev, + dma_map_single(&priv->pcid->dev, skb_put(pRDInfo->skb, skb_tailroom(pRDInfo->skb)), - pDevice->rx_buf_sz, DMA_FROM_DEVICE); + priv->rx_buf_sz, DMA_FROM_DEVICE); *((unsigned int *)&pRD->rd0) = 0; /* FIX cast */ - pRD->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); + pRD->rd0.res_count = cpu_to_le16(priv->rx_buf_sz); pRD->rd0.owner = OWNED_BY_NIC; - pRD->rd1.req_count = cpu_to_le16(pDevice->rx_buf_sz); + pRD->rd1.req_count = cpu_to_le16(priv->rx_buf_sz); pRD->buff_addr = cpu_to_le32(pRDInfo->skb_dma); return true; @@ -833,14 +829,14 @@ static int vnt_int_report_rate(struct vnt_private *priv, return 0; } -static int device_tx_srv(struct vnt_private *pDevice, unsigned int uIdx) +static int device_tx_srv(struct vnt_private *priv, unsigned int uIdx) { struct vnt_tx_desc *pTD; int works = 0; unsigned char byTsr0; unsigned char byTsr1; - for (pTD = pDevice->apTailTD[uIdx]; pDevice->iTDUsed[uIdx] > 0; pTD = pTD->next) { + for (pTD = priv->apTailTD[uIdx]; priv->iTDUsed[uIdx] > 0; pTD = pTD->next) { if (pTD->td0.owner == OWNED_BY_NIC) break; if (works++ > 15) @@ -871,36 +867,36 @@ static int device_tx_srv(struct vnt_private *pDevice, unsigned int uIdx) } } - vnt_int_report_rate(pDevice, pTD->td_info, byTsr0, byTsr1); + vnt_int_report_rate(priv, pTD->td_info, byTsr0, byTsr1); - device_free_tx_buf(pDevice, pTD); - pDevice->iTDUsed[uIdx]--; + device_free_tx_buf(priv, pTD); + priv->iTDUsed[uIdx]--; } } - pDevice->apTailTD[uIdx] = pTD; + priv->apTailTD[uIdx] = pTD; return works; } -static void device_error(struct vnt_private *pDevice, unsigned short status) +static void device_error(struct vnt_private *priv, unsigned short status) { if (status & ISR_FETALERR) { - dev_err(&pDevice->pcid->dev, "Hardware fatal error\n"); + dev_err(&priv->pcid->dev, "Hardware fatal error\n"); - MACbShutdown(pDevice->PortOffset); + MACbShutdown(priv->PortOffset); return; } } -static void device_free_tx_buf(struct vnt_private *pDevice, +static void device_free_tx_buf(struct vnt_private *priv, struct vnt_tx_desc *pDesc) { struct vnt_td_info *pTDInfo = pDesc->td_info; struct sk_buff *skb = pTDInfo->skb; if (skb) - ieee80211_tx_status_irqsafe(pDevice->hw, skb); + ieee80211_tx_status_irqsafe(priv->hw, skb); pTDInfo->skb = NULL; pTDInfo->flags = 0; From 5e76c8f4aa4dc952baf62cbaa33785d93cbc10f8 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:23 +0100 Subject: [PATCH 1238/2431] staging: vt6655: device_main.c replace pDesc with desc. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 80 ++++++++++++++-------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 603f18987e45..41c08b3ac80f 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -545,19 +545,19 @@ static void device_init_rd0_ring(struct vnt_private *priv) { int i; dma_addr_t curr = priv->rd0_pool_dma; - struct vnt_rx_desc *pDesc; + struct vnt_rx_desc *desc; /* Init the RD0 ring entries */ for (i = 0; i < priv->sOpts.nRxDescs0; i ++, curr += sizeof(struct vnt_rx_desc)) { - pDesc = &(priv->aRD0Ring[i]); - pDesc->rd_info = alloc_rd_info(); + desc = &priv->aRD0Ring[i]; + desc->rd_info = alloc_rd_info(); - if (!device_alloc_rx_buf(priv, pDesc)) + if (!device_alloc_rx_buf(priv, desc)) dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); - pDesc->next = &(priv->aRD0Ring[(i+1) % priv->sOpts.nRxDescs0]); - pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); + desc->next = &(priv->aRD0Ring[(i+1) % priv->sOpts.nRxDescs0]); + desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } if (i > 0) @@ -569,19 +569,19 @@ static void device_init_rd1_ring(struct vnt_private *priv) { int i; dma_addr_t curr = priv->rd1_pool_dma; - struct vnt_rx_desc *pDesc; + struct vnt_rx_desc *desc; /* Init the RD1 ring entries */ for (i = 0; i < priv->sOpts.nRxDescs1; i ++, curr += sizeof(struct vnt_rx_desc)) { - pDesc = &(priv->aRD1Ring[i]); - pDesc->rd_info = alloc_rd_info(); + desc = &priv->aRD1Ring[i]; + desc->rd_info = alloc_rd_info(); - if (!device_alloc_rx_buf(priv, pDesc)) + if (!device_alloc_rx_buf(priv, desc)) dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); - pDesc->next = &(priv->aRD1Ring[(i+1) % priv->sOpts.nRxDescs1]); - pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); + desc->next = &(priv->aRD1Ring[(i+1) % priv->sOpts.nRxDescs1]); + desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } if (i > 0) @@ -594,15 +594,15 @@ static void device_free_rd0_ring(struct vnt_private *priv) int i; for (i = 0; i < priv->sOpts.nRxDescs0; i++) { - struct vnt_rx_desc *pDesc = &(priv->aRD0Ring[i]); - struct vnt_rd_info *rd_info = pDesc->rd_info; + struct vnt_rx_desc *desc = &(priv->aRD0Ring[i]); + struct vnt_rd_info *rd_info = desc->rd_info; dma_unmap_single(&priv->pcid->dev, rd_info->skb_dma, priv->rx_buf_sz, DMA_FROM_DEVICE); dev_kfree_skb(rd_info->skb); - kfree(pDesc->rd_info); + kfree(desc->rd_info); } } @@ -611,15 +611,15 @@ static void device_free_rd1_ring(struct vnt_private *priv) int i; for (i = 0; i < priv->sOpts.nRxDescs1; i++) { - struct vnt_rx_desc *pDesc = &(priv->aRD1Ring[i]); - struct vnt_rd_info *rd_info = pDesc->rd_info; + struct vnt_rx_desc *desc = &priv->aRD1Ring[i]; + struct vnt_rd_info *rd_info = desc->rd_info; dma_unmap_single(&priv->pcid->dev, rd_info->skb_dma, priv->rx_buf_sz, DMA_FROM_DEVICE); dev_kfree_skb(rd_info->skb); - kfree(pDesc->rd_info); + kfree(desc->rd_info); } } @@ -627,19 +627,19 @@ static void device_init_td0_ring(struct vnt_private *priv) { int i; dma_addr_t curr; - struct vnt_tx_desc *pDesc; + struct vnt_tx_desc *desc; curr = priv->td0_pool_dma; for (i = 0; i < priv->sOpts.nTxDescs[0]; i++, curr += sizeof(struct vnt_tx_desc)) { - pDesc = &(priv->apTD0Rings[i]); - pDesc->td_info = alloc_td_info(); + desc = &priv->apTD0Rings[i]; + desc->td_info = alloc_td_info(); - pDesc->td_info->buf = priv->tx0_bufs + i * PKT_BUF_SZ; - pDesc->td_info->buf_dma = priv->tx_bufs_dma0 + i * PKT_BUF_SZ; + desc->td_info->buf = priv->tx0_bufs + i * PKT_BUF_SZ; + desc->td_info->buf_dma = priv->tx_bufs_dma0 + i * PKT_BUF_SZ; - pDesc->next = &(priv->apTD0Rings[(i+1) % priv->sOpts.nTxDescs[0]]); - pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); + desc->next = &(priv->apTD0Rings[(i+1) % priv->sOpts.nTxDescs[0]]); + desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } if (i > 0) @@ -651,20 +651,20 @@ static void device_init_td1_ring(struct vnt_private *priv) { int i; dma_addr_t curr; - struct vnt_tx_desc *pDesc; + struct vnt_tx_desc *desc; /* Init the TD ring entries */ curr = priv->td1_pool_dma; for (i = 0; i < priv->sOpts.nTxDescs[1]; i++, curr += sizeof(struct vnt_tx_desc)) { - pDesc = &(priv->apTD1Rings[i]); - pDesc->td_info = alloc_td_info(); + desc = &priv->apTD1Rings[i]; + desc->td_info = alloc_td_info(); - pDesc->td_info->buf = priv->tx1_bufs + i * PKT_BUF_SZ; - pDesc->td_info->buf_dma = priv->tx_bufs_dma1 + i * PKT_BUF_SZ; + desc->td_info->buf = priv->tx1_bufs + i * PKT_BUF_SZ; + desc->td_info->buf_dma = priv->tx_bufs_dma1 + i * PKT_BUF_SZ; - pDesc->next = &(priv->apTD1Rings[(i + 1) % priv->sOpts.nTxDescs[1]]); - pDesc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); + desc->next = &(priv->apTD1Rings[(i + 1) % priv->sOpts.nTxDescs[1]]); + desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } if (i > 0) @@ -677,11 +677,11 @@ static void device_free_td0_ring(struct vnt_private *priv) int i; for (i = 0; i < priv->sOpts.nTxDescs[0]; i++) { - struct vnt_tx_desc *pDesc = &priv->apTD0Rings[i]; - struct vnt_td_info *pTDInfo = pDesc->td_info; + struct vnt_tx_desc *desc = &priv->apTD0Rings[i]; + struct vnt_td_info *pTDInfo = desc->td_info; dev_kfree_skb(pTDInfo->skb); - kfree(pDesc->td_info); + kfree(desc->td_info); } } @@ -690,11 +690,11 @@ static void device_free_td1_ring(struct vnt_private *priv) int i; for (i = 0; i < priv->sOpts.nTxDescs[1]; i++) { - struct vnt_tx_desc *pDesc = &priv->apTD1Rings[i]; - struct vnt_td_info *pTDInfo = pDesc->td_info; + struct vnt_tx_desc *desc = &priv->apTD1Rings[i]; + struct vnt_td_info *pTDInfo = desc->td_info; dev_kfree_skb(pTDInfo->skb); - kfree(pDesc->td_info); + kfree(desc->td_info); } } @@ -890,9 +890,9 @@ static void device_error(struct vnt_private *priv, unsigned short status) } static void device_free_tx_buf(struct vnt_private *priv, - struct vnt_tx_desc *pDesc) + struct vnt_tx_desc *desc) { - struct vnt_td_info *pTDInfo = pDesc->td_info; + struct vnt_td_info *pTDInfo = desc->td_info; struct sk_buff *skb = pTDInfo->skb; if (skb) From 5e011b433639a5485480a8abc9f5b70a049057cb Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:24 +0100 Subject: [PATCH 1239/2431] staging: vt6655: device_alloc_rx_buf replace pRDInfo with rd_info. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 41c08b3ac80f..b33037985ee9 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -732,15 +732,15 @@ static int device_rx_srv(struct vnt_private *priv, unsigned int uIdx) static bool device_alloc_rx_buf(struct vnt_private *priv, struct vnt_rx_desc *pRD) { - struct vnt_rd_info *pRDInfo = pRD->rd_info; + struct vnt_rd_info *rd_info = pRD->rd_info; - pRDInfo->skb = dev_alloc_skb((int)priv->rx_buf_sz); - if (pRDInfo->skb == NULL) + rd_info->skb = dev_alloc_skb((int)priv->rx_buf_sz); + if (rd_info->skb == NULL) return false; - pRDInfo->skb_dma = + rd_info->skb_dma = dma_map_single(&priv->pcid->dev, - skb_put(pRDInfo->skb, skb_tailroom(pRDInfo->skb)), + skb_put(rd_info->skb, skb_tailroom(rd_info->skb)), priv->rx_buf_sz, DMA_FROM_DEVICE); *((unsigned int *)&pRD->rd0) = 0; /* FIX cast */ @@ -748,7 +748,7 @@ static bool device_alloc_rx_buf(struct vnt_private *priv, pRD->rd0.res_count = cpu_to_le16(priv->rx_buf_sz); pRD->rd0.owner = OWNED_BY_NIC; pRD->rd1.req_count = cpu_to_le16(priv->rx_buf_sz); - pRD->buff_addr = cpu_to_le32(pRDInfo->skb_dma); + pRD->buff_addr = cpu_to_le32(rd_info->skb_dma); return true; } From 480fc5b8f6b55173bd26f016118cab0416e96d5d Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:25 +0100 Subject: [PATCH 1240/2431] staging: vt6655: device_main replace pRD with rd. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 32 ++++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index b33037985ee9..7e76176adbfe 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -702,37 +702,37 @@ static void device_free_td1_ring(struct vnt_private *priv) static int device_rx_srv(struct vnt_private *priv, unsigned int uIdx) { - struct vnt_rx_desc *pRD; + struct vnt_rx_desc *rd; int works = 0; - for (pRD = priv->pCurrRD[uIdx]; - pRD->rd0.owner == OWNED_BY_HOST; - pRD = pRD->next) { + for (rd = priv->pCurrRD[uIdx]; + rd->rd0.owner == OWNED_BY_HOST; + rd = rd->next) { if (works++ > 15) break; - if (!pRD->rd_info->skb) + if (!rd->rd_info->skb) break; - if (vnt_receive_frame(priv, pRD)) { - if (!device_alloc_rx_buf(priv, pRD)) { + if (vnt_receive_frame(priv, rd)) { + if (!device_alloc_rx_buf(priv, rd)) { dev_err(&priv->pcid->dev, "can not allocate rx buf\n"); break; } } - pRD->rd0.owner = OWNED_BY_NIC; + rd->rd0.owner = OWNED_BY_NIC; } - priv->pCurrRD[uIdx] = pRD; + priv->pCurrRD[uIdx] = rd; return works; } static bool device_alloc_rx_buf(struct vnt_private *priv, - struct vnt_rx_desc *pRD) + struct vnt_rx_desc *rd) { - struct vnt_rd_info *rd_info = pRD->rd_info; + struct vnt_rd_info *rd_info = rd->rd_info; rd_info->skb = dev_alloc_skb((int)priv->rx_buf_sz); if (rd_info->skb == NULL) @@ -743,12 +743,12 @@ static bool device_alloc_rx_buf(struct vnt_private *priv, skb_put(rd_info->skb, skb_tailroom(rd_info->skb)), priv->rx_buf_sz, DMA_FROM_DEVICE); - *((unsigned int *)&pRD->rd0) = 0; /* FIX cast */ + *((unsigned int *)&rd->rd0) = 0; /* FIX cast */ - pRD->rd0.res_count = cpu_to_le16(priv->rx_buf_sz); - pRD->rd0.owner = OWNED_BY_NIC; - pRD->rd1.req_count = cpu_to_le16(priv->rx_buf_sz); - pRD->buff_addr = cpu_to_le32(rd_info->skb_dma); + rd->rd0.res_count = cpu_to_le16(priv->rx_buf_sz); + rd->rd0.owner = OWNED_BY_NIC; + rd->rd1.req_count = cpu_to_le16(priv->rx_buf_sz); + rd->buff_addr = cpu_to_le32(rd_info->skb_dma); return true; } From 12f2ee356ef6658d7311e051a4a481b553155185 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:26 +0100 Subject: [PATCH 1241/2431] staging: vt6655: device_main replace pTDInfo with td_info. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 7e76176adbfe..ff329bde19c2 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -678,9 +678,9 @@ static void device_free_td0_ring(struct vnt_private *priv) for (i = 0; i < priv->sOpts.nTxDescs[0]; i++) { struct vnt_tx_desc *desc = &priv->apTD0Rings[i]; - struct vnt_td_info *pTDInfo = desc->td_info; + struct vnt_td_info *td_info = desc->td_info; - dev_kfree_skb(pTDInfo->skb); + dev_kfree_skb(td_info->skb); kfree(desc->td_info); } } @@ -691,9 +691,9 @@ static void device_free_td1_ring(struct vnt_private *priv) for (i = 0; i < priv->sOpts.nTxDescs[1]; i++) { struct vnt_tx_desc *desc = &priv->apTD1Rings[i]; - struct vnt_td_info *pTDInfo = desc->td_info; + struct vnt_td_info *td_info = desc->td_info; - dev_kfree_skb(pTDInfo->skb); + dev_kfree_skb(td_info->skb); kfree(desc->td_info); } } @@ -892,14 +892,14 @@ static void device_error(struct vnt_private *priv, unsigned short status) static void device_free_tx_buf(struct vnt_private *priv, struct vnt_tx_desc *desc) { - struct vnt_td_info *pTDInfo = desc->td_info; - struct sk_buff *skb = pTDInfo->skb; + struct vnt_td_info *td_info = desc->td_info; + struct sk_buff *skb = td_info->skb; if (skb) ieee80211_tx_status_irqsafe(priv->hw, skb); - pTDInfo->skb = NULL; - pTDInfo->flags = 0; + td_info->skb = NULL; + td_info->flags = 0; } static void vnt_check_bb_vga(struct vnt_private *priv) From 9f31b6955932f9ec2dbf1a1e1827e18ce7239943 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:27 +0100 Subject: [PATCH 1242/2431] staging: vt6655: device_tx_srv rename pTD Following the convention elsewhere for vnt_tx_desc rename desc. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index ff329bde19c2..673ca47e1889 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -831,23 +831,23 @@ static int vnt_int_report_rate(struct vnt_private *priv, static int device_tx_srv(struct vnt_private *priv, unsigned int uIdx) { - struct vnt_tx_desc *pTD; + struct vnt_tx_desc *desc; int works = 0; unsigned char byTsr0; unsigned char byTsr1; - for (pTD = priv->apTailTD[uIdx]; priv->iTDUsed[uIdx] > 0; pTD = pTD->next) { - if (pTD->td0.owner == OWNED_BY_NIC) + for (desc = priv->apTailTD[uIdx]; priv->iTDUsed[uIdx] > 0; desc = desc->next) { + if (desc->td0.owner == OWNED_BY_NIC) break; if (works++ > 15) break; - byTsr0 = pTD->td0.tsr0; - byTsr1 = pTD->td0.tsr1; + byTsr0 = desc->td0.tsr0; + byTsr1 = desc->td0.tsr1; /* Only the status of first TD in the chain is correct */ - if (pTD->td1.tcr & TCR_STP) { - if ((pTD->td_info->flags & TD_FLAGS_NETIF_SKB) != 0) { + if (desc->td1.tcr & TCR_STP) { + if ((desc->td_info->flags & TD_FLAGS_NETIF_SKB) != 0) { if (!(byTsr1 & TSR1_TERR)) { if (byTsr0 != 0) { pr_debug(" Tx[%d] OK but has error. tsr1[%02X] tsr0[%02X]\n", @@ -861,20 +861,20 @@ static int device_tx_srv(struct vnt_private *priv, unsigned int uIdx) } if (byTsr1 & TSR1_TERR) { - if ((pTD->td_info->flags & TD_FLAGS_PRIV_SKB) != 0) { + if ((desc->td_info->flags & TD_FLAGS_PRIV_SKB) != 0) { pr_debug(" Tx[%d] fail has error. tsr1[%02X] tsr0[%02X]\n", (int)uIdx, byTsr1, byTsr0); } } - vnt_int_report_rate(priv, pTD->td_info, byTsr0, byTsr1); + vnt_int_report_rate(priv, desc->td_info, byTsr0, byTsr1); - device_free_tx_buf(priv, pTD); + device_free_tx_buf(priv, desc); priv->iTDUsed[uIdx]--; } } - priv->apTailTD[uIdx] = pTD; + priv->apTailTD[uIdx] = desc; return works; } From 14f928054a057edf80d154314946664bbc4c2a46 Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:50 +0300 Subject: [PATCH 1243/2431] staging: fsl-mc: abstract test for existence of fsl-mc bus Add function to test for existence of an fsl-mc bus instance instead of doing this by looking directly at a field in the bus type struct. Signed-off-by: Itai Katz Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-bus.c | 13 +++++++++++-- drivers/staging/fsl-mc/include/mc.h | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 92e070237aa9..2aaeb3ae7c77 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -39,7 +39,7 @@ static int fsl_mc_bus_match(struct device *dev, struct device_driver *drv) bool major_version_mismatch = false; bool minor_version_mismatch = false; - if (WARN_ON(!fsl_mc_bus_type.dev_root)) + if (WARN_ON(!fsl_mc_bus_exists())) goto out; if (!mc_drv->match_id_table) @@ -206,6 +206,15 @@ void fsl_mc_driver_unregister(struct fsl_mc_driver *mc_driver) } EXPORT_SYMBOL_GPL(fsl_mc_driver_unregister); +/** + * fsl_mc_bus_exists - check if a root dprc exists + */ +bool fsl_mc_bus_exists(void) +{ + return fsl_mc_bus_type.dev_root; +} +EXPORT_SYMBOL_GPL(fsl_mc_bus_exists); + static int get_dprc_icid(struct fsl_mc_io *mc_io, int container_id, u16 *icid) { @@ -407,7 +416,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, mc_io2 = mc_io; - if (!fsl_mc_bus_type.dev_root) + if (!fsl_mc_bus_exists()) fsl_mc_bus_type.dev_root = &mc_dev->dev; } diff --git a/drivers/staging/fsl-mc/include/mc.h b/drivers/staging/fsl-mc/include/mc.h index 860bf264404f..a933291e400a 100644 --- a/drivers/staging/fsl-mc/include/mc.h +++ b/drivers/staging/fsl-mc/include/mc.h @@ -182,6 +182,8 @@ int __must_check __fsl_mc_driver_register(struct fsl_mc_driver *fsl_mc_driver, void fsl_mc_driver_unregister(struct fsl_mc_driver *driver); +bool fsl_mc_bus_exists(void); + int __must_check fsl_mc_portal_allocate(struct fsl_mc_device *mc_dev, u16 mc_io_flags, struct fsl_mc_io **new_mc_io); From b55f00c6edf380e8bb2211dfd466f7c36500f2fe Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:51 +0300 Subject: [PATCH 1244/2431] staging: fsl-mc: abstract test for whether a dprc is a root dprc Instead of relying on assumptions about fields in data structures, abstract the test for whether a dprc is a root dprc into a function. Signed-off-by: Itai Katz Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-bus.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 2aaeb3ae7c77..6a6c5a618fff 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -22,6 +22,8 @@ static struct kmem_cache *mc_dev_cache; +static bool fsl_mc_is_root_dprc(struct device *dev); + /** * fsl_mc_bus_match - device to driver matching callback * @dev: the MC object device structure to match against @@ -50,7 +52,7 @@ static int fsl_mc_bus_match(struct device *dev, struct device_driver *drv) * Only exception is the root DPRC, which is a special case. */ if ((mc_dev->obj_desc.state & DPRC_OBJ_STATE_PLUGGED) == 0 && - &mc_dev->dev != fsl_mc_bus_type.dev_root) + !fsl_mc_is_root_dprc(&mc_dev->dev)) goto out; /* @@ -215,6 +217,14 @@ bool fsl_mc_bus_exists(void) } EXPORT_SYMBOL_GPL(fsl_mc_bus_exists); +/** + * fsl_mc_is_root_dprc - function to check if a given device is a root dprc + */ +static bool fsl_mc_is_root_dprc(struct device *dev) +{ + return dev == fsl_mc_bus_type.dev_root; +} + static int get_dprc_icid(struct fsl_mc_io *mc_io, int container_id, u16 *icid) { @@ -500,7 +510,7 @@ void fsl_mc_device_remove(struct fsl_mc_device *mc_dev) mc_dev->mc_io = NULL; } - if (&mc_dev->dev == fsl_mc_bus_type.dev_root) + if (fsl_mc_is_root_dprc(&mc_dev->dev)) fsl_mc_bus_type.dev_root = NULL; } @@ -726,7 +736,7 @@ static int fsl_mc_bus_remove(struct platform_device *pdev) { struct fsl_mc *mc = platform_get_drvdata(pdev); - if (WARN_ON(&mc->root_mc_bus_dev->dev != fsl_mc_bus_type.dev_root)) + if (WARN_ON(!fsl_mc_is_root_dprc(&mc->root_mc_bus_dev->dev))) return -EINVAL; fsl_mc_device_remove(mc->root_mc_bus_dev); From e4ea40f98d2fd9ec01893c0c1a4718f92adac800 Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:52 +0300 Subject: [PATCH 1245/2431] staging: fsl-mc: add function to return pointer to root dprc To support multiple root dprcs, instead of relying on the dev_root field of the bus type struct, instead create a function to traverse to the root dprc and return a pointer to the device struct Signed-off-by: Itai Katz Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-bus.c | 38 ++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 6a6c5a618fff..37f51f30be98 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -217,12 +217,35 @@ bool fsl_mc_bus_exists(void) } EXPORT_SYMBOL_GPL(fsl_mc_bus_exists); +/** +* fsl_mc_get_root_dprc - function to traverse to the root dprc +*/ +static void fsl_mc_get_root_dprc(struct device *dev, + struct device **root_dprc_dev) +{ + if (WARN_ON(!dev)) { + *root_dprc_dev = NULL; + } else if (WARN_ON(dev->bus != &fsl_mc_bus_type)) { + *root_dprc_dev = NULL; + } else { + *root_dprc_dev = dev; + while ((*root_dprc_dev)->parent->bus == &fsl_mc_bus_type) + *root_dprc_dev = (*root_dprc_dev)->parent; + } +} + /** * fsl_mc_is_root_dprc - function to check if a given device is a root dprc */ static bool fsl_mc_is_root_dprc(struct device *dev) { - return dev == fsl_mc_bus_type.dev_root; + struct device *root_dprc_dev; + + fsl_mc_get_root_dprc(dev, &root_dprc_dev); + if (!root_dprc_dev) + return false; + else + return dev == root_dprc_dev; } static int get_dprc_icid(struct fsl_mc_io *mc_io, @@ -253,11 +276,18 @@ common_cleanup: return error; } -static int translate_mc_addr(enum dprc_region_type mc_region_type, +static int translate_mc_addr(struct fsl_mc_device *mc_dev, + enum dprc_region_type mc_region_type, u64 mc_offset, phys_addr_t *phys_addr) { int i; - struct fsl_mc *mc = dev_get_drvdata(fsl_mc_bus_type.dev_root->parent); + struct device *root_dprc_dev; + struct fsl_mc *mc; + + fsl_mc_get_root_dprc(&mc_dev->dev, &root_dprc_dev); + if (WARN_ON(!root_dprc_dev)) + return -EINVAL; + mc = dev_get_drvdata(root_dprc_dev->parent); if (mc->num_translation_ranges == 0) { /* @@ -328,7 +358,7 @@ static int fsl_mc_device_get_mmio_regions(struct fsl_mc_device *mc_dev, } WARN_ON(region_desc.size == 0); - error = translate_mc_addr(mc_region_type, + error = translate_mc_addr(mc_dev, mc_region_type, region_desc.base_offset, ®ions[i].start); if (error < 0) { From 565b94506f7e2f77dc0d94b4722532358d5965c7 Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:53 +0300 Subject: [PATCH 1246/2431] staging: fsl-mc: add counter to track number of root DPRCs Add a counter to track the number of root DPRCs. When this counter is greater then 0 it means that at least one root DPRC device exists. Signed-off-by: Itai Katz Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-bus.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 37f51f30be98..8a2b99c9f822 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -109,6 +109,8 @@ struct bus_type fsl_mc_bus_type = { }; EXPORT_SYMBOL_GPL(fsl_mc_bus_type); +static atomic_t root_dprc_count = ATOMIC_INIT(0); + static int fsl_mc_driver_probe(struct device *dev) { struct fsl_mc_driver *mc_drv; @@ -213,7 +215,7 @@ EXPORT_SYMBOL_GPL(fsl_mc_driver_unregister); */ bool fsl_mc_bus_exists(void) { - return fsl_mc_bus_type.dev_root; + return atomic_read(&root_dprc_count) > 0; } EXPORT_SYMBOL_GPL(fsl_mc_bus_exists); @@ -458,6 +460,8 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, if (!fsl_mc_bus_exists()) fsl_mc_bus_type.dev_root = &mc_dev->dev; + + atomic_inc(&root_dprc_count); } error = get_dprc_icid(mc_io2, obj_desc->id, &mc_dev->icid); @@ -540,8 +544,13 @@ void fsl_mc_device_remove(struct fsl_mc_device *mc_dev) mc_dev->mc_io = NULL; } - if (fsl_mc_is_root_dprc(&mc_dev->dev)) + if (fsl_mc_is_root_dprc(&mc_dev->dev)) { fsl_mc_bus_type.dev_root = NULL; + if (atomic_read(&root_dprc_count) > 0) + atomic_dec(&root_dprc_count); + else + WARN_ON(1); + } } if (mc_bus) From 757e0cb5f16964d637dffa1bce734208659b7f6e Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:54 +0300 Subject: [PATCH 1247/2431] staging: fsl-mc: remove references to dev_root The dev_root field in the bus type struct has been replaced by a new mechanism to identify the root dprc. Remove all references to dev_root. Signed-off-by: Itai Katz Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-bus.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 8a2b99c9f822..fd13053cbd9b 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -458,9 +458,6 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, mc_io2 = mc_io; - if (!fsl_mc_bus_exists()) - fsl_mc_bus_type.dev_root = &mc_dev->dev; - atomic_inc(&root_dprc_count); } @@ -545,7 +542,6 @@ void fsl_mc_device_remove(struct fsl_mc_device *mc_dev) } if (fsl_mc_is_root_dprc(&mc_dev->dev)) { - fsl_mc_bus_type.dev_root = NULL; if (atomic_read(&root_dprc_count) > 0) atomic_dec(&root_dprc_count); else From 53856b23201c780599c877d66b625fcbc5bc9dd3 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:09 +0530 Subject: [PATCH 1248/2431] Staging: lustre: ptlrpc: nrs: Declare as static Declare ptlrpc_nrs_policy_register as static since it is used only in this particular file. Also remove corresponding declaration from header files. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_net.h | 5 ----- drivers/staging/lustre/lustre/ptlrpc/nrs.c | 3 +-- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index af3bf2164ef9..428b83d0db5e 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -1528,11 +1528,6 @@ static inline int ptlrpc_req_interpret(const struct lu_env *env, return rc; } -/** \addtogroup nrs - * @{ - */ -int ptlrpc_nrs_policy_register(struct ptlrpc_nrs_pol_conf *conf); - /* * Can the request be moved from the regular NRS head to the high-priority NRS * head (of the same PTLRPC service partition), if any? diff --git a/drivers/staging/lustre/lustre/ptlrpc/nrs.c b/drivers/staging/lustre/lustre/ptlrpc/nrs.c index 2476cf22c184..3fe96a183401 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/nrs.c +++ b/drivers/staging/lustre/lustre/ptlrpc/nrs.c @@ -1111,7 +1111,7 @@ again: * \retval -ve error * \retval 0 success */ -int ptlrpc_nrs_policy_register(struct ptlrpc_nrs_pol_conf *conf) +static int ptlrpc_nrs_policy_register(struct ptlrpc_nrs_pol_conf *conf) { struct ptlrpc_service *svc; struct ptlrpc_nrs_pol_desc *desc; @@ -1247,7 +1247,6 @@ fail: return rc; } -EXPORT_SYMBOL(ptlrpc_nrs_policy_register); /** * Setup NRS heads on all service partitions of service \a svc, and register From e4ec6d23df2e5e7791fb55247a5481bb2c8d6b39 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:10 +0530 Subject: [PATCH 1249/2431] Staging: lustre: ptlrpc: events: Declare as static Declare ptl_get_pid as static since it is used only in this particular file. Also remove declaration from corresponding header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_net.h | 1 - drivers/staging/lustre/lustre/ptlrpc/events.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 428b83d0db5e..c8d62078c6b9 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2289,7 +2289,6 @@ int ptlrpc_connection_put(struct ptlrpc_connection *c); struct ptlrpc_connection *ptlrpc_connection_addref(struct ptlrpc_connection *); int ptlrpc_connection_init(void); void ptlrpc_connection_fini(void); -lnet_pid_t ptl_get_pid(void); /* ptlrpc/niobuf.c */ /** diff --git a/drivers/staging/lustre/lustre/ptlrpc/events.c b/drivers/staging/lustre/lustre/ptlrpc/events.c index afd869b205a5..183e4156950d 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/events.c +++ b/drivers/staging/lustre/lustre/ptlrpc/events.c @@ -521,7 +521,7 @@ static void ptlrpc_ni_fini(void) /* notreached */ } -lnet_pid_t ptl_get_pid(void) +static lnet_pid_t ptl_get_pid(void) { lnet_pid_t pid; From 4ed50b03160b3435006cba231afd60dffdd1ffb0 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:11 +0530 Subject: [PATCH 1250/2431] Staging: lustre: ptlrpc: pinger: Declare as static Declare ptlrpc_pinger_remove_timeouts as static since it is used only in this particular file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index 74fab7e21926..a608165d1c2b 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pinger.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pinger.c @@ -313,7 +313,7 @@ int ptlrpc_start_pinger(void) return 0; } -int ptlrpc_pinger_remove_timeouts(void); +static int ptlrpc_pinger_remove_timeouts(void); int ptlrpc_stop_pinger(void) { @@ -497,7 +497,7 @@ int ptlrpc_del_timeout_client(struct list_head *obd_list, } EXPORT_SYMBOL(ptlrpc_del_timeout_client); -int ptlrpc_pinger_remove_timeouts(void) +static int ptlrpc_pinger_remove_timeouts(void) { struct timeout_item *item, *tmp; From 98e0a2881878dca4dbd4e9104c8153871d824ee4 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:12 +0530 Subject: [PATCH 1251/2431] Staging: lustre: ptlrpc: layout: Declare as static Declare req_capsule_init_area and req_capsule_field_present as static since they are used only in this particular file. Also remove the corresponding declarations from header files. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lustre_req_layout.h | 4 ---- drivers/staging/lustre/lustre/ptlrpc/layout.c | 10 ++++------ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_req_layout.h b/drivers/staging/lustre/lustre/include/lustre_req_layout.h index cfcc995585c0..df292f6d4a85 100644 --- a/drivers/staging/lustre/lustre/include/lustre_req_layout.h +++ b/drivers/staging/lustre/lustre/include/lustre_req_layout.h @@ -80,7 +80,6 @@ void req_capsule_init(struct req_capsule *pill, struct ptlrpc_request *req, void req_capsule_fini(struct req_capsule *pill); void req_capsule_set(struct req_capsule *pill, const struct req_format *fmt); -void req_capsule_init_area(struct req_capsule *pill); int req_capsule_filled_sizes(struct req_capsule *pill, enum req_location loc); int req_capsule_server_pack(struct req_capsule *pill); @@ -118,9 +117,6 @@ void req_capsule_extend(struct req_capsule *pill, const struct req_format *fmt); int req_capsule_has_field(const struct req_capsule *pill, const struct req_msg_field *field, enum req_location loc); -int req_capsule_field_present(const struct req_capsule *pill, - const struct req_msg_field *field, - enum req_location loc); void req_capsule_shrink(struct req_capsule *pill, const struct req_msg_field *field, unsigned int newlen, diff --git a/drivers/staging/lustre/lustre/ptlrpc/layout.c b/drivers/staging/lustre/lustre/ptlrpc/layout.c index 991fb74c8d08..36876a803b41 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/layout.c +++ b/drivers/staging/lustre/lustre/ptlrpc/layout.c @@ -1679,7 +1679,7 @@ EXPORT_SYMBOL(req_layout_fini); * req_capsule_msg_size(). The \a rc_area information is used by. * ptlrpc_request_set_replen(). */ -void req_capsule_init_area(struct req_capsule *pill) +static void req_capsule_init_area(struct req_capsule *pill) { int i; @@ -1688,7 +1688,6 @@ void req_capsule_init_area(struct req_capsule *pill) pill->rc_area[RCL_SERVER][i] = -1; } } -EXPORT_SYMBOL(req_capsule_init_area); /** * Initialize a pill. @@ -2260,9 +2259,9 @@ EXPORT_SYMBOL(req_capsule_has_field); * Returns a non-zero value if the given \a field is present in the given \a * pill's PTLRPC request or reply (\a loc), else it returns 0. */ -int req_capsule_field_present(const struct req_capsule *pill, - const struct req_msg_field *field, - enum req_location loc) +static int req_capsule_field_present(const struct req_capsule *pill, + const struct req_msg_field *field, + enum req_location loc) { int offset; @@ -2272,7 +2271,6 @@ int req_capsule_field_present(const struct req_capsule *pill, offset = __req_capsule_offset(pill, field, loc); return lustre_msg_bufcount(__req_msg(pill, loc)) > offset; } -EXPORT_SYMBOL(req_capsule_field_present); /** * This function shrinks the size of the _buffer_ of the \a pill's PTLRPC From 12d0be620fb1cb57ed15c9e167bfab42156594fc Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:13 +0530 Subject: [PATCH 1252/2431] Staging: lustre: ptlrpc: niobuf: Declare as static Declare ptlrpc_register_bulk as static since it is used only in this particular file.Also remove the declaration from header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_net.h | 1 - drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index c8d62078c6b9..51a4e64e56a2 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2296,7 +2296,6 @@ void ptlrpc_connection_fini(void); * @{ */ -int ptlrpc_register_bulk(struct ptlrpc_request *req); int ptlrpc_unregister_bulk(struct ptlrpc_request *req, int async); static inline int ptlrpc_client_bulk_active(struct ptlrpc_request *req) diff --git a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c index 13632cde571a..d93c6b2524b9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c +++ b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c @@ -111,7 +111,7 @@ static void mdunlink_iterate_helper(lnet_handle_md_t *bd_mds, int count) * Register bulk at the sender for later transfer. * Returns 0 on success or error code. */ -int ptlrpc_register_bulk(struct ptlrpc_request *req) +static int ptlrpc_register_bulk(struct ptlrpc_request *req) { struct ptlrpc_bulk_desc *desc = req->rq_bulk; lnet_process_id_t peer; @@ -232,7 +232,6 @@ int ptlrpc_register_bulk(struct ptlrpc_request *req) return 0; } -EXPORT_SYMBOL(ptlrpc_register_bulk); /** * Disconnect a bulk desc from the network. Idempotent. Not From 63e9a7485d7a7d7a216f32f9db0b4cc444decab4 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:14 +0530 Subject: [PATCH 1253/2431] Staging: lustre: obdclass: genops: Declare as static Declare obd_export_nid2str and obd_zombie_impexp_cull as static since they are used only in this particular file. Also remove the corresponding declarations from header file Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_class.h | 3 --- drivers/staging/lustre/lustre/obdclass/genops.c | 5 ++--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 882d47728781..648132a75cea 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -92,13 +92,10 @@ struct obd_device *class_num2obd(int num); int class_notify_sptlrpc_conf(const char *fsname, int namelen); -char *obd_export_nid2str(struct obd_export *exp); - int obd_connect_flags2str(char *page, int count, __u64 flags, char *sep); int obd_zombie_impexp_init(void); void obd_zombie_impexp_stop(void); -void obd_zombie_impexp_cull(void); void obd_zombie_barrier(void); struct llog_handle; diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index a22b83ec9a3d..fbf216ba1cad 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -1104,14 +1104,13 @@ void class_fail_export(struct obd_export *exp) } EXPORT_SYMBOL(class_fail_export); -char *obd_export_nid2str(struct obd_export *exp) +static char *obd_export_nid2str(struct obd_export *exp) { if (exp->exp_connection != NULL) return libcfs_nid2str(exp->exp_connection->c_peer.nid); return "(no nid)"; } -EXPORT_SYMBOL(obd_export_nid2str); #if LUSTRE_TRACKS_LOCK_EXP_REFS void (*class_export_dump_hook)(struct obd_export *) = NULL; @@ -1125,7 +1124,7 @@ static int zombies_count; /** * kill zombie imports and exports */ -void obd_zombie_impexp_cull(void) +static void obd_zombie_impexp_cull(void) { struct obd_import *import; struct obd_export *export; From 28fcc6626f1b3880e989f73d0472f54fdb72835f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:15 +0530 Subject: [PATCH 1254/2431] Staging: lustre: obdclass: class_obd: Declare as static Declare obd_init_checks as static since it is used only in this particular file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/class_obd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index d16f85b49ff4..e8a155809872 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -403,7 +403,7 @@ int class_handle_ioctl(unsigned int cmd, unsigned long arg) } /* class_handle_ioctl */ #define OBD_INIT_CHECK -int obd_init_checks(void) +static int obd_init_checks(void) { __u64 u64val, div64val; char buf[64]; From fa9df8e31addd4ae26d8317f166bc09921b3629d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:16 +0530 Subject: [PATCH 1255/2431] Staging: lustre: obdclass: obd_mount: Declare as static Declare lustre_fs_type, do_lcfg, lustre_fill_super, lustre_put_lsi, lustre_init_lsi, lustre_start_simple, server_name2index and server_name2fsname as static since they are used only in this particular file.Also remove corresponding declarations from header files. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre_disk.h | 5 ---- .../lustre/lustre/include/lustre_param.h | 3 --- .../lustre/lustre/obdclass/obd_mount.c | 25 +++++++++---------- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 4178c8563dd3..f1dc967a2d48 100644 --- a/drivers/staging/lustre/lustre/include/lustre_disk.h +++ b/drivers/staging/lustre/lustre/include/lustre_disk.h @@ -383,12 +383,7 @@ struct lustre_mount_info { /****************** prototypes *********************/ /* obd_mount.c */ -int server_name2fsname(const char *svname, char *fsname, const char **endptr); -int server_name2index(const char *svname, __u32 *idx, const char **endptr); -int lustre_put_lsi(struct super_block *sb); -int lustre_start_simple(char *obdname, char *type, char *uuid, - char *s1, char *s2, char *s3, char *s4); int lustre_start_mgc(struct super_block *sb); void lustre_register_client_fill_super(int (*cfs)(struct super_block *sb, struct vfsmount *mnt)); diff --git a/drivers/staging/lustre/lustre/include/lustre_param.h b/drivers/staging/lustre/lustre/include/lustre_param.h index 14cd2bccb78b..26f558e83755 100644 --- a/drivers/staging/lustre/lustre/include/lustre_param.h +++ b/drivers/staging/lustre/lustre/include/lustre_param.h @@ -58,9 +58,6 @@ struct cfg_interop_param { int class_find_param(char *buf, char *key, char **valp); int class_parse_nid(char *buf, lnet_nid_t *nid, char **endh); int class_parse_nid_quiet(char *buf, lnet_nid_t *nid, char **endh); -/* obd_mount.c */ -int do_lcfg(char *cfgname, lnet_nid_t nid, int cmd, - char *s1, char *s2, char *s3, char *s4); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index bc15e1546844..de42acd56b91 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -143,8 +143,8 @@ EXPORT_SYMBOL(lustre_end_log); /** lustre_cfg_bufs are a holdover from 1.4; we can still set these up from * lctl (and do for echo cli/srv. */ -int do_lcfg(char *cfgname, lnet_nid_t nid, int cmd, - char *s1, char *s2, char *s3, char *s4) +static int do_lcfg(char *cfgname, lnet_nid_t nid, int cmd, + char *s1, char *s2, char *s3, char *s4) { struct lustre_cfg_bufs bufs; struct lustre_cfg *lcfg = NULL; @@ -169,13 +169,12 @@ int do_lcfg(char *cfgname, lnet_nid_t nid, int cmd, lustre_cfg_free(lcfg); return rc; } -EXPORT_SYMBOL(do_lcfg); /** Call class_attach and class_setup. These methods in turn call * obd type-specific methods. */ -int lustre_start_simple(char *obdname, char *type, char *uuid, - char *s1, char *s2, char *s3, char *s4) +static int lustre_start_simple(char *obdname, char *type, char *uuid, + char *s1, char *s2, char *s3, char *s4) { int rc; CDEBUG(D_MOUNT, "Starting obd %s (typ=%s)\n", obdname, type); @@ -488,7 +487,7 @@ out: /***************** lustre superblock **************/ -struct lustre_sb_info *lustre_init_lsi(struct super_block *sb) +static struct lustre_sb_info *lustre_init_lsi(struct super_block *sb) { struct lustre_sb_info *lsi; @@ -547,7 +546,7 @@ static int lustre_free_lsi(struct super_block *sb) /* The lsi has one reference for every server that is using the disk - e.g. MDT, MGS, and potentially MGC */ -int lustre_put_lsi(struct super_block *sb) +static int lustre_put_lsi(struct super_block *sb) { struct lustre_sb_info *lsi = s2lsi(sb); @@ -577,7 +576,8 @@ int lustre_put_lsi(struct super_block *sb) * @param [out] endptr if endptr isn't NULL it is set to end of fsname * rc < 0 on error */ -int server_name2fsname(const char *svname, char *fsname, const char **endptr) +static int server_name2fsname(const char *svname, char *fsname, + const char **endptr) { const char *dash; @@ -597,13 +597,13 @@ int server_name2fsname(const char *svname, char *fsname, const char **endptr) return 0; } -EXPORT_SYMBOL(server_name2fsname); /* Get the index from the obd name. rc = server type, or rc < 0 on error if endptr isn't NULL it is set to end of name */ -int server_name2index(const char *svname, __u32 *idx, const char **endptr) +static int server_name2index(const char *svname, __u32 *idx, + const char **endptr) { unsigned long index; int rc; @@ -642,7 +642,6 @@ int server_name2index(const char *svname, __u32 *idx, const char **endptr) return rc; } -EXPORT_SYMBOL(server_name2index); /*************** mount common between server and client ***************/ @@ -1074,7 +1073,7 @@ struct lustre_mount_data2 { * and this is where we start setting things up. * @param data Mount options (e.g. -o flock,abort_recov) */ -int lustre_fill_super(struct super_block *sb, void *data, int silent) +static int lustre_fill_super(struct super_block *sb, void *data, int silent) { struct lustre_mount_data *lmd; struct lustre_mount_data2 *lmd2 = data; @@ -1185,7 +1184,7 @@ static void lustre_kill_super(struct super_block *sb) /** Register the "lustre" fs type */ -struct file_system_type lustre_fs_type = { +static struct file_system_type lustre_fs_type = { .owner = THIS_MODULE, .name = "lustre", .mount = lustre_mount, From 54a5e02abb03d296c07426d51ddaea8f4cc9ca39 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 1 Oct 2015 11:05:57 -0700 Subject: [PATCH 1256/2431] staging: comedi: 8255: prefer using the BIT macro Fix the checkpatch.pl issues. Signed-off-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/8255.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/8255.h b/drivers/staging/comedi/drivers/8255.h index 41823de69b77..55a67af5152d 100644 --- a/drivers/staging/comedi/drivers/8255.h +++ b/drivers/staging/comedi/drivers/8255.h @@ -25,13 +25,13 @@ #define I8255_DATA_B_REG 0x01 #define I8255_DATA_C_REG 0x02 #define I8255_CTRL_REG 0x03 -#define I8255_CTRL_C_LO_IO (1 << 0) -#define I8255_CTRL_B_IO (1 << 1) -#define I8255_CTRL_B_MODE (1 << 2) -#define I8255_CTRL_C_HI_IO (1 << 3) -#define I8255_CTRL_A_IO (1 << 4) +#define I8255_CTRL_C_LO_IO BIT(0) +#define I8255_CTRL_B_IO BIT(1) +#define I8255_CTRL_B_MODE BIT(2) +#define I8255_CTRL_C_HI_IO BIT(3) +#define I8255_CTRL_A_IO BIT(4) #define I8255_CTRL_A_MODE(x) ((x) << 5) -#define I8255_CTRL_CW (1 << 7) +#define I8255_CTRL_CW BIT(7) struct comedi_device; struct comedi_subdevice; From 5cc95cd81bca06698e64b4189a34cb57ec941d0d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 14:58:01 +0530 Subject: [PATCH 1257/2431] Staging: lustre: obdclass: Remove unused function obd_export_nid2str Remove obd_export_nid2str as it is defined but not used anymore. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/genops.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index fbf216ba1cad..e0b8150db71d 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -1104,14 +1104,6 @@ void class_fail_export(struct obd_export *exp) } EXPORT_SYMBOL(class_fail_export); -static char *obd_export_nid2str(struct obd_export *exp) -{ - if (exp->exp_connection != NULL) - return libcfs_nid2str(exp->exp_connection->c_peer.nid); - - return "(no nid)"; -} - #if LUSTRE_TRACKS_LOCK_EXP_REFS void (*class_export_dump_hook)(struct obd_export *) = NULL; EXPORT_SYMBOL(class_export_dump_hook); From 3a81fc20eadcf193a4517fd5ee862c3d465aceb3 Mon Sep 17 00:00:00 2001 From: Tetsuo Handa Date: Sun, 6 Sep 2015 14:25:35 +0900 Subject: [PATCH 1258/2431] android, lmk: Send SIGKILL before setting TIF_MEMDIE. It was observed that setting TIF_MEMDIE before sending SIGKILL at oom_kill_process() allows memory reserves to be depleted by allocations which are not needed for terminating the OOM victim. This patch reverts commit 6bc2b856bb7c ("staging: android: lowmemorykiller: set TIF_MEMDIE before send kill sig"), for oom_kill_process() was updated to send SIGKILL before setting TIF_MEMDIE. Signed-off-by: Tetsuo Handa Acked-by: Michal Hocko Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/lowmemorykiller.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c index 872bd603fd0d..569d12c02877 100644 --- a/drivers/staging/android/lowmemorykiller.c +++ b/drivers/staging/android/lowmemorykiller.c @@ -157,26 +157,22 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc) } if (selected) { task_lock(selected); - if (!selected->mm) { - /* Already exited, cannot do mark_tsk_oom_victim() */ - task_unlock(selected); - goto out; - } + send_sig(SIGKILL, selected, 0); /* * FIXME: lowmemorykiller shouldn't abuse global OOM killer * infrastructure. There is no real reason why the selected * task should have access to the memory reserves. */ - mark_oom_victim(selected); + if (selected->mm) + mark_oom_victim(selected); task_unlock(selected); lowmem_print(1, "send sigkill to %d (%s), adj %hd, size %d\n", selected->pid, selected->comm, selected_oom_score_adj, selected_tasksize); lowmem_deathpending_timeout = jiffies + HZ; - send_sig(SIGKILL, selected, 0); rem += selected_tasksize; } -out: + lowmem_print(4, "lowmem_scan %lu, %x, return %lu\n", sc->nr_to_scan, sc->gfp_mask, rem); rcu_read_unlock(); From e260e404ba45422e816eb3af01687870097745ac Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sat, 3 Oct 2015 10:34:59 +0800 Subject: [PATCH 1259/2431] IB/hfi1: use offset_in_page macro Use offset_in_page macro instead of (addr & ~PAGE_MASK). Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/file_ops.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rdma/hfi1/file_ops.c b/drivers/staging/rdma/hfi1/file_ops.c index 9a77221855e2..7d2868050981 100644 --- a/drivers/staging/rdma/hfi1/file_ops.c +++ b/drivers/staging/rdma/hfi1/file_ops.c @@ -168,7 +168,7 @@ enum mmap_types { HFI1_MMAP_TOKEN_SET(TYPE, type) | \ HFI1_MMAP_TOKEN_SET(CTXT, ctxt) | \ HFI1_MMAP_TOKEN_SET(SUBCTXT, subctxt) | \ - HFI1_MMAP_TOKEN_SET(OFFSET, ((unsigned long)addr & ~PAGE_MASK))) + HFI1_MMAP_TOKEN_SET(OFFSET, (offset_in_page(addr)))) #define EXP_TID_SET(field, value) \ (((value) & EXP_TID_TID##field##_MASK) << \ @@ -1335,9 +1335,9 @@ static int get_base_info(struct file *fp, void __user *ubase, __u32 len) */ binfo.user_regbase = HFI1_MMAP_TOKEN(UREGS, uctxt->ctxt, subctxt_fp(fp), 0); - offset = ((((uctxt->ctxt - dd->first_user_ctxt) * + offset = offset_in_page((((uctxt->ctxt - dd->first_user_ctxt) * HFI1_MAX_SHARED_CTXTS) + subctxt_fp(fp)) * - sizeof(*dd->events)) & ~PAGE_MASK; + sizeof(*dd->events)); binfo.events_bufbase = HFI1_MMAP_TOKEN(EVENTS, uctxt->ctxt, subctxt_fp(fp), offset); @@ -1573,7 +1573,7 @@ static int exp_tid_setup(struct file *fp, struct hfi1_tid_info *tinfo) vaddr = tinfo->vaddr; - if (vaddr & ~PAGE_MASK) { + if (offset_in_page(vaddr)) { ret = -EINVAL; goto bail; } From e1ab75dd6212992cdc0803315f29fdefc45735f1 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sat, 3 Oct 2015 10:43:11 +0800 Subject: [PATCH 1260/2431] IB/ipath: use offset_in_page macro Use offset_in_page macro instead of (addr & ~PAGE_MASK). Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ipath/ipath_user_sdma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rdma/ipath/ipath_user_sdma.c b/drivers/staging/rdma/ipath/ipath_user_sdma.c index cc04b7ba3488..e82b3ee2dbe0 100644 --- a/drivers/staging/rdma/ipath/ipath_user_sdma.c +++ b/drivers/staging/rdma/ipath/ipath_user_sdma.c @@ -239,7 +239,7 @@ static int ipath_user_sdma_num_pages(const struct iovec *iov) /* truncate length to page boundary */ static int ipath_user_sdma_page_length(unsigned long addr, unsigned long len) { - const unsigned long offset = addr & ~PAGE_MASK; + const unsigned long offset = offset_in_page(addr); return ((offset + len) > PAGE_SIZE) ? (PAGE_SIZE - offset) : len; } @@ -298,7 +298,7 @@ static int ipath_user_sdma_pin_pages(const struct ipath_devdata *dd, dma_addr_t dma_addr = dma_map_page(&dd->pcidev->dev, pages[j], 0, flen, DMA_TO_DEVICE); - unsigned long fofs = addr & ~PAGE_MASK; + unsigned long fofs = offset_in_page(addr); if (dma_mapping_error(&dd->pcidev->dev, dma_addr)) { ret = -ENOMEM; From 0bc2763f569ff9533a8222bcb884ef0e22569a72 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sat, 3 Oct 2015 11:00:14 +0800 Subject: [PATCH 1261/2431] RDMA/amso1100: use offset_in_page macro Use offset_in_page macro instead of (addr & ~PAGE_MASK). Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/amso1100/c2_alloc.c | 2 +- drivers/staging/rdma/amso1100/c2_provider.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rdma/amso1100/c2_alloc.c b/drivers/staging/rdma/amso1100/c2_alloc.c index 78d247ec6961..039872dfabbc 100644 --- a/drivers/staging/rdma/amso1100/c2_alloc.c +++ b/drivers/staging/rdma/amso1100/c2_alloc.c @@ -131,7 +131,7 @@ void c2_free_mqsp(__be16 *mqsp) *mqsp = (__force __be16) head->head; /* Compute the shared_ptr index */ - idx = ((unsigned long) mqsp & ~PAGE_MASK) >> 1; + idx = (offset_in_page(mqsp)) >> 1; idx -= (unsigned long) &(((struct sp_chunk *) 0)->shared_ptr[0]) >> 1; /* Point this index at the head */ diff --git a/drivers/staging/rdma/amso1100/c2_provider.c b/drivers/staging/rdma/amso1100/c2_provider.c index 25c3f0085563..956d76b111b0 100644 --- a/drivers/staging/rdma/amso1100/c2_provider.c +++ b/drivers/staging/rdma/amso1100/c2_provider.c @@ -359,7 +359,7 @@ static struct ib_mr *c2_reg_phys_mr(struct ib_pd *ib_pd, for (i = 0; i < num_phys_buf; i++) { - if (buffer_list[i].addr & ~PAGE_MASK) { + if (offset_in_page(buffer_list[i].addr)) { pr_debug("Unaligned Memory Buffer: 0x%x\n", (unsigned int) buffer_list[i].addr); return ERR_PTR(-EINVAL); From d574a87cc311cb01486b8947a9133814a79e2e6e Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:36 +0200 Subject: [PATCH 1262/2431] Add meas-spec sensors common part Measurement specialties drivers common part. These functions are used by further drivers in the patchset: TSYS01, TSYS02D, HTU21, MS5637, MS8607 Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron --- drivers/iio/common/Kconfig | 1 + drivers/iio/common/Makefile | 1 + drivers/iio/common/ms_sensors/Kconfig | 6 + drivers/iio/common/ms_sensors/Makefile | 5 + .../iio/common/ms_sensors/ms_sensors_i2c.c | 651 ++++++++++++++++++ .../iio/common/ms_sensors/ms_sensors_i2c.h | 66 ++ 6 files changed, 730 insertions(+) create mode 100644 drivers/iio/common/ms_sensors/Kconfig create mode 100644 drivers/iio/common/ms_sensors/Makefile create mode 100644 drivers/iio/common/ms_sensors/ms_sensors_i2c.c create mode 100644 drivers/iio/common/ms_sensors/ms_sensors_i2c.h diff --git a/drivers/iio/common/Kconfig b/drivers/iio/common/Kconfig index 790f106d719c..26a6026de614 100644 --- a/drivers/iio/common/Kconfig +++ b/drivers/iio/common/Kconfig @@ -3,5 +3,6 @@ # source "drivers/iio/common/hid-sensors/Kconfig" +source "drivers/iio/common/ms_sensors/Kconfig" source "drivers/iio/common/ssp_sensors/Kconfig" source "drivers/iio/common/st_sensors/Kconfig" diff --git a/drivers/iio/common/Makefile b/drivers/iio/common/Makefile index b1e4d9c9591c..585da6a1b188 100644 --- a/drivers/iio/common/Makefile +++ b/drivers/iio/common/Makefile @@ -8,5 +8,6 @@ # When adding new entries keep the list in alphabetical order obj-y += hid-sensors/ +obj-y += ms_sensors/ obj-y += ssp_sensors/ obj-y += st_sensors/ diff --git a/drivers/iio/common/ms_sensors/Kconfig b/drivers/iio/common/ms_sensors/Kconfig new file mode 100644 index 000000000000..b28a92b97cf9 --- /dev/null +++ b/drivers/iio/common/ms_sensors/Kconfig @@ -0,0 +1,6 @@ +# +# Measurements Specialties sensors common library +# + +config IIO_MS_SENSORS_I2C + tristate diff --git a/drivers/iio/common/ms_sensors/Makefile b/drivers/iio/common/ms_sensors/Makefile new file mode 100644 index 000000000000..7846428abe06 --- /dev/null +++ b/drivers/iio/common/ms_sensors/Makefile @@ -0,0 +1,5 @@ +# +# Makefile for the Measurement Specialties sensor common modules. +# + +obj-$(CONFIG_IIO_MS_SENSORS_I2C) += ms_sensors_i2c.o diff --git a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c new file mode 100644 index 000000000000..056c4f3bf497 --- /dev/null +++ b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c @@ -0,0 +1,651 @@ +/* + * Measurements Specialties driver common i2c functions + * + * Copyright (c) 2015 Measurement-Specialties + * + * Licensed under the GPL-2. + */ + +#include +#include +#include +#include + +#include "ms_sensors_i2c.h" + +/* Conversion times in us */ +static const u16 ms_sensors_ht_t_conversion_time[] = { 50000, 25000, + 13000, 7000 }; +static const u16 ms_sensors_ht_h_conversion_time[] = { 16000, 3000, + 5000, 8000 }; +static const u16 ms_sensors_tp_conversion_time[] = { 500, 1100, 2100, + 4100, 8220, 16440 }; + +#define MS_SENSORS_SERIAL_READ_MSB 0xFA0F +#define MS_SENSORS_SERIAL_READ_LSB 0xFCC9 +#define MS_SENSORS_CONFIG_REG_WRITE 0xE6 +#define MS_SENSORS_CONFIG_REG_READ 0xE7 +#define MS_SENSORS_HT_T_CONVERSION_START 0xF3 +#define MS_SENSORS_HT_H_CONVERSION_START 0xF5 + +#define MS_SENSORS_TP_PROM_READ 0xA0 +#define MS_SENSORS_TP_T_CONVERSION_START 0x50 +#define MS_SENSORS_TP_P_CONVERSION_START 0x40 +#define MS_SENSORS_TP_ADC_READ 0x00 + +#define MS_SENSORS_NO_READ_CMD 0xFF + +/** + * ms_sensors_reset() - Reset function + * @cli: pointer to device client + * @cmd: reset cmd. Depends on device in use + * @delay: usleep minimal delay after reset command is issued + * + * Generic I2C reset function for Measurement Specialties devices. + * + * Return: 0 on success, negative errno otherwise. + */ +int ms_sensors_reset(void *cli, u8 cmd, unsigned int delay) +{ + int ret; + struct i2c_client *client = cli; + + ret = i2c_smbus_write_byte(client, cmd); + if (ret) { + dev_err(&client->dev, "Failed to reset device\n"); + return ret; + } + usleep_range(delay, delay + 1000); + + return 0; +} +EXPORT_SYMBOL(ms_sensors_reset); + +/** + * ms_sensors_read_prom_word() - PROM word read function + * @cli: pointer to device client + * @cmd: PROM read cmd. Depends on device and prom id + * @word: pointer to word destination value + * + * Generic i2c prom word read function for Measurement Specialties devices. + * + * Return: 0 on success, negative errno otherwise. + */ +int ms_sensors_read_prom_word(void *cli, int cmd, u16 *word) +{ + int ret; + struct i2c_client *client = (struct i2c_client *)cli; + + ret = i2c_smbus_read_word_swapped(client, cmd); + if (ret < 0) { + dev_err(&client->dev, "Failed to read prom word\n"); + return ret; + } + *word = ret; + + return 0; +} +EXPORT_SYMBOL(ms_sensors_read_prom_word); + +/** + * ms_sensors_convert_and_read() - ADC conversion & read function + * @cli: pointer to device client + * @conv: ADC conversion command. Depends on device in use + * @rd: ADC read command. Depends on device in use + * @delay: usleep minimal delay after conversion command is issued + * @adc: pointer to ADC destination value + * + * Generic ADC conversion & read function for Measurement Specialties + * devices. + * The function will issue conversion command, sleep appopriate delay, and + * issue command to read ADC. + * + * Return: 0 on success, negative errno otherwise. + */ +int ms_sensors_convert_and_read(void *cli, u8 conv, u8 rd, + unsigned int delay, u32 *adc) +{ + int ret; + u32 buf = 0; + struct i2c_client *client = (struct i2c_client *)cli; + + /* Trigger conversion */ + ret = i2c_smbus_write_byte(client, conv); + if (ret) + goto err; + usleep_range(delay, delay + 1000); + + /* Retrieve ADC value */ + if (rd != MS_SENSORS_NO_READ_CMD) + ret = i2c_smbus_read_i2c_block_data(client, rd, 3, (u8 *)&buf); + else + ret = i2c_master_recv(client, (u8 *)&buf, 3); + if (ret < 0) + goto err; + + dev_dbg(&client->dev, "ADC raw value : %x\n", be32_to_cpu(buf) >> 8); + *adc = be32_to_cpu(buf) >> 8; + + return 0; +err: + dev_err(&client->dev, "Unable to make sensor adc conversion\n"); + return ret; +} +EXPORT_SYMBOL(ms_sensors_convert_and_read); + +/** + * ms_sensors_crc_valid() - CRC check function + * @value: input and CRC compare value + * + * Cyclic Redundancy Check function used in TSYS02D, HTU21, MS8607. + * This function performs a x^8 + x^5 + x^4 + 1 polynomial CRC. + * The argument contains CRC value in LSB byte while the bytes 1 and 2 + * are used for CRC computation. + * + * Return: 1 if CRC is valid, 0 otherwise. + */ +static bool ms_sensors_crc_valid(u32 value) +{ + u32 polynom = 0x988000; /* x^8 + x^5 + x^4 + 1 */ + u32 msb = 0x800000; + u32 mask = 0xFF8000; + u32 result = value & 0xFFFF00; + u8 crc = value & 0xFF; + + while (msb != 0x80) { + if (result & msb) + result = ((result ^ polynom) & mask) + | (result & ~mask); + msb >>= 1; + mask >>= 1; + polynom >>= 1; + } + + return result == crc; +} + +/** + * ms_sensors_read_serial() - Serial number read function + * @cli: pointer to i2c client + * @sn: pointer to 64-bits destination value + * + * Generic i2c serial number read function for Measurement Specialties devices. + * This function is used for TSYS02d, HTU21, MS8607 chipset. + * Refer to datasheet: + * http://www.meas-spec.com/downloads/HTU2X_Serial_Number_Reading.pdf + * + * Sensor raw MSB serial number format is the following : + * [ SNB3, CRC, SNB2, CRC, SNB1, CRC, SNB0, CRC] + * Sensor raw LSB serial number format is the following : + * [ X, X, SNC1, SNC0, CRC, SNA1, SNA0, CRC] + * The resulting serial number is following : + * [ SNA1, SNA0, SNB3, SNB2, SNB1, SNB0, SNC1, SNC0] + * + * Return: 0 on success, negative errno otherwise. + */ +int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) +{ + u8 i; + u64 rcv_buf = 0; + u16 send_buf; + int ret; + + struct i2c_msg msg[2] = { + { + .addr = client->addr, + .flags = client->flags, + .len = 2, + .buf = (__u8 *)&send_buf, + }, + { + .addr = client->addr, + .flags = client->flags | I2C_M_RD, + .buf = (__u8 *)&rcv_buf, + }, + }; + + /* Read MSB part of serial number */ + send_buf = cpu_to_be16(MS_SENSORS_SERIAL_READ_MSB); + msg[1].len = 8; + ret = i2c_transfer(client->adapter, msg, 2); + if (ret < 0) { + dev_err(&client->dev, "Unable to read device serial number"); + return ret; + } + + rcv_buf = be64_to_cpu(rcv_buf); + dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_buf); + + for (i = 0; i < 64; i += 16) { + if (!ms_sensors_crc_valid((rcv_buf >> i) & 0xFFFF)) + return -ENODEV; + } + + *sn = (((rcv_buf >> 32) & 0xFF000000) | + ((rcv_buf >> 24) & 0x00FF0000) | + ((rcv_buf >> 16) & 0x0000FF00) | + ((rcv_buf >> 8) & 0x000000FF)) << 16; + + /* Read LSB part of serial number */ + send_buf = cpu_to_be16(MS_SENSORS_SERIAL_READ_LSB); + msg[1].len = 6; + rcv_buf = 0; + ret = i2c_transfer(client->adapter, msg, 2); + if (ret < 0) { + dev_err(&client->dev, "Unable to read device serial number"); + return ret; + } + + rcv_buf = be64_to_cpu(rcv_buf) >> 16; + dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_buf); + + for (i = 0; i < 48; i += 24) { + if (!ms_sensors_crc_valid((rcv_buf >> i) & 0xFFFFFF)) + return -ENODEV; + } + + *sn |= (rcv_buf & 0xFFFF00) << 40 | (rcv_buf >> 32); + + return 0; +} +EXPORT_SYMBOL(ms_sensors_read_serial); + +static int ms_sensors_read_config_reg(struct i2c_client *client, + u8 *config_reg) +{ + int ret; + + ret = i2c_smbus_write_byte(client, MS_SENSORS_CONFIG_REG_READ); + if (ret) { + dev_err(&client->dev, "Unable to read config register"); + return ret; + } + + ret = i2c_master_recv(client, config_reg, 1); + if (ret < 0) { + dev_err(&client->dev, "Unable to read config register"); + return ret; + } + dev_dbg(&client->dev, "Config register :%x\n", *config_reg); + + return 0; +} + +/** + * ms_sensors_write_resolution() - Set resolution function + * @dev_data: pointer to temperature/humidity device data + * @i: resolution index to set + * + * This function will program the appropriate resolution based on the index + * provided when user space will set samp_freq channel. + * This function is used for TSYS02D, HTU21 and MS8607 chipsets. + * + * Return: 0 on success, negative errno otherwise. + */ +ssize_t ms_sensors_write_resolution(struct ms_ht_dev *dev_data, + u8 i) +{ + u8 config_reg; + int ret; + + ret = ms_sensors_read_config_reg(dev_data->client, &config_reg); + if (ret) + return ret; + + config_reg &= 0x7E; + config_reg |= ((i & 1) << 7) + ((i & 2) >> 1); + + return i2c_smbus_write_byte_data(dev_data->client, + MS_SENSORS_CONFIG_REG_WRITE, + config_reg); +} +EXPORT_SYMBOL(ms_sensors_write_resolution); + +/** + * ms_sensors_show_battery_low() - Show device battery low indicator + * @dev_data: pointer to temperature/humidity device data + * @buf: pointer to char buffer to write result + * + * This function will read battery indicator value in the device and + * return 1 if the device voltage is below 2.25V. + * This function is used for TSYS02D, HTU21 and MS8607 chipsets. + * + * Return: length of sprintf on success, negative errno otherwise. + */ +ssize_t ms_sensors_show_battery_low(struct ms_ht_dev *dev_data, + char *buf) +{ + int ret; + u8 config_reg; + + mutex_lock(&dev_data->lock); + ret = ms_sensors_read_config_reg(dev_data->client, &config_reg); + mutex_unlock(&dev_data->lock); + if (ret) + return ret; + + return sprintf(buf, "%d\n", (config_reg & 0x40) >> 6); +} +EXPORT_SYMBOL(ms_sensors_show_battery_low); + +/** + * ms_sensors_show_heater() - Show device heater + * @dev_data: pointer to temperature/humidity device data + * @buf: pointer to char buffer to write result + * + * This function will read heater enable value in the device and + * return 1 if the heater is enabled. + * This function is used for HTU21 and MS8607 chipsets. + * + * Return: length of sprintf on success, negative errno otherwise. + */ +ssize_t ms_sensors_show_heater(struct ms_ht_dev *dev_data, + char *buf) +{ + u8 config_reg; + int ret; + + mutex_lock(&dev_data->lock); + ret = ms_sensors_read_config_reg(dev_data->client, &config_reg); + mutex_unlock(&dev_data->lock); + if (ret) + return ret; + + return sprintf(buf, "%d\n", (config_reg & 0x4) >> 2); +} +EXPORT_SYMBOL(ms_sensors_show_heater); + +/** + * ms_sensors_write_heater() - Write device heater + * @dev_data: pointer to temperature/humidity device data + * @buf: pointer to char buffer from user space + * @len: length of buf + * + * This function will write 1 or 0 value in the device + * to enable or disable heater. + * This function is used for HTU21 and MS8607 chipsets. + * + * Return: length of buffer, negative errno otherwise. + */ +ssize_t ms_sensors_write_heater(struct ms_ht_dev *dev_data, + const char *buf, size_t len) +{ + u8 val, config_reg; + int ret; + + ret = kstrtou8(buf, 10, &val); + if (ret) + return ret; + + if (val > 1) + return -EINVAL; + + mutex_lock(&dev_data->lock); + ret = ms_sensors_read_config_reg(dev_data->client, &config_reg); + if (ret) { + mutex_unlock(&dev_data->lock); + return ret; + } + + config_reg &= 0xFB; + config_reg |= val << 2; + + ret = i2c_smbus_write_byte_data(dev_data->client, + MS_SENSORS_CONFIG_REG_WRITE, + config_reg); + mutex_unlock(&dev_data->lock); + if (ret) { + dev_err(&dev_data->client->dev, "Unable to write config register\n"); + return ret; + } + + return len; +} +EXPORT_SYMBOL(ms_sensors_write_heater); + +/** + * ms_sensors_ht_read_temperature() - Read temperature + * @dev_data: pointer to temperature/humidity device data + * @temperature:pointer to temperature destination value + * + * This function will get temperature ADC value from the device, + * check the CRC and compute the temperature value. + * This function is used for TSYS02D, HTU21 and MS8607 chipsets. + * + * Return: 0 on success, negative errno otherwise. + */ +int ms_sensors_ht_read_temperature(struct ms_ht_dev *dev_data, + s32 *temperature) +{ + int ret; + u32 adc; + u16 delay; + + mutex_lock(&dev_data->lock); + delay = ms_sensors_ht_t_conversion_time[dev_data->res_index]; + ret = ms_sensors_convert_and_read(dev_data->client, + MS_SENSORS_HT_T_CONVERSION_START, + MS_SENSORS_NO_READ_CMD, + delay, &adc); + mutex_unlock(&dev_data->lock); + if (ret) + return ret; + + if (!ms_sensors_crc_valid(adc)) { + dev_err(&dev_data->client->dev, + "Temperature read crc check error\n"); + return -ENODEV; + } + + /* Temperature algorithm */ + *temperature = (((s64)(adc >> 8) * 175720) >> 16) - 46850; + + return 0; +} +EXPORT_SYMBOL(ms_sensors_ht_read_temperature); + +/** + * ms_sensors_ht_read_humidity() - Read humidity + * @dev_data: pointer to temperature/humidity device data + * @humidity: pointer to humidity destination value + * + * This function will get humidity ADC value from the device, + * check the CRC and compute the temperature value. + * This function is used for HTU21 and MS8607 chipsets. + * + * Return: 0 on success, negative errno otherwise. + */ +int ms_sensors_ht_read_humidity(struct ms_ht_dev *dev_data, + u32 *humidity) +{ + int ret; + u32 adc; + u16 delay; + + mutex_lock(&dev_data->lock); + delay = ms_sensors_ht_h_conversion_time[dev_data->res_index]; + ret = ms_sensors_convert_and_read(dev_data->client, + MS_SENSORS_HT_H_CONVERSION_START, + MS_SENSORS_NO_READ_CMD, + delay, &adc); + mutex_unlock(&dev_data->lock); + if (ret) + return ret; + + if (!ms_sensors_crc_valid(adc)) { + dev_err(&dev_data->client->dev, + "Humidity read crc check error\n"); + return -ENODEV; + } + + /* Humidity algorithm */ + *humidity = (((s32)(adc >> 8) * 12500) >> 16) * 10 - 6000; + if (*humidity >= 100000) + *humidity = 100000; + + return 0; +} +EXPORT_SYMBOL(ms_sensors_ht_read_humidity); + +/** + * ms_sensors_tp_crc_valid() - CRC check function for + * Temperature and pressure devices. + * This function is only used when reading PROM coefficients + * + * @prom: pointer to PROM coefficients array + * @len: length of PROM coefficients array + * + * Return: True if CRC is ok. + */ +static bool ms_sensors_tp_crc_valid(u16 *prom, u8 len) +{ + unsigned int cnt, n_bit; + u16 n_rem = 0x0000, crc_read = prom[0], crc = (*prom & 0xF000) >> 12; + + prom[len - 1] = 0; + prom[0] &= 0x0FFF; /* Clear the CRC computation part */ + + for (cnt = 0; cnt < len * 2; cnt++) { + if (cnt % 2 == 1) + n_rem ^= prom[cnt >> 1] & 0x00FF; + else + n_rem ^= prom[cnt >> 1] >> 8; + + for (n_bit = 8; n_bit > 0; n_bit--) { + if (n_rem & 0x8000) + n_rem = (n_rem << 1) ^ 0x3000; + else + n_rem <<= 1; + } + } + n_rem >>= 12; + prom[0] = crc_read; + + return n_rem == crc; +} + +/** + * ms_sensors_tp_read_prom() - prom coeff read function + * @dev_data: pointer to temperature/pressure device data + * + * This function will read prom coefficients and check CRC. + * This function is used for MS5637 and MS8607 chipsets. + * + * Return: 0 on success, negative errno otherwise. + */ +int ms_sensors_tp_read_prom(struct ms_tp_dev *dev_data) +{ + int i, ret; + + for (i = 0; i < MS_SENSORS_TP_PROM_WORDS_NB; i++) { + ret = ms_sensors_read_prom_word( + dev_data->client, + MS_SENSORS_TP_PROM_READ + (i << 1), + &dev_data->prom[i]); + + if (ret) + return ret; + } + + if (!ms_sensors_tp_crc_valid(dev_data->prom, + MS_SENSORS_TP_PROM_WORDS_NB + 1)) { + dev_err(&dev_data->client->dev, + "Calibration coefficients crc check error\n"); + return -ENODEV; + } + + return 0; +} +EXPORT_SYMBOL(ms_sensors_tp_read_prom); + +/** + * ms_sensors_read_temp_and_pressure() - read temp and pressure + * @dev_data: pointer to temperature/pressure device data + * @temperature:pointer to temperature destination value + * @pressure: pointer to pressure destination value + * + * This function will read ADC and compute pressure and temperature value. + * This function is used for MS5637 and MS8607 chipsets. + * + * Return: 0 on success, negative errno otherwise. + */ +int ms_sensors_read_temp_and_pressure(struct ms_tp_dev *dev_data, + int *temperature, + unsigned int *pressure) +{ + int ret; + u32 t_adc, p_adc; + s32 dt, temp; + s64 off, sens, t2, off2, sens2; + u16 *prom = dev_data->prom, delay; + + mutex_lock(&dev_data->lock); + delay = ms_sensors_tp_conversion_time[dev_data->res_index]; + + ret = ms_sensors_convert_and_read( + dev_data->client, + MS_SENSORS_TP_T_CONVERSION_START + + dev_data->res_index * 2, + MS_SENSORS_TP_ADC_READ, + delay, &t_adc); + if (ret) { + mutex_unlock(&dev_data->lock); + return ret; + } + + ret = ms_sensors_convert_and_read( + dev_data->client, + MS_SENSORS_TP_P_CONVERSION_START + + dev_data->res_index * 2, + MS_SENSORS_TP_ADC_READ, + delay, &p_adc); + mutex_unlock(&dev_data->lock); + if (ret) + return ret; + + dt = (s32)t_adc - (prom[5] << 8); + + /* Actual temperature = 2000 + dT * TEMPSENS */ + temp = 2000 + (((s64)dt * prom[6]) >> 23); + + /* Second order temperature compensation */ + if (temp < 2000) { + s64 tmp = (s64)temp - 2000; + + t2 = (3 * ((s64)dt * (s64)dt)) >> 33; + off2 = (61 * tmp * tmp) >> 4; + sens2 = (29 * tmp * tmp) >> 4; + + if (temp < -1500) { + s64 tmp = (s64)temp + 1500; + + off2 += 17 * tmp * tmp; + sens2 += 9 * tmp * tmp; + } + } else { + t2 = (5 * ((s64)dt * (s64)dt)) >> 38; + off2 = 0; + sens2 = 0; + } + + /* OFF = OFF_T1 + TCO * dT */ + off = (((s64)prom[2]) << 17) + ((((s64)prom[4]) * (s64)dt) >> 6); + off -= off2; + + /* Sensitivity at actual temperature = SENS_T1 + TCS * dT */ + sens = (((s64)prom[1]) << 16) + (((s64)prom[3] * dt) >> 7); + sens -= sens2; + + /* Temperature compensated pressure = D1 * SENS - OFF */ + *temperature = (temp - t2) * 10; + *pressure = (u32)(((((s64)p_adc * sens) >> 21) - off) >> 15); + + return 0; +} +EXPORT_SYMBOL(ms_sensors_read_temp_and_pressure); + +MODULE_DESCRIPTION("Measurement-Specialties common i2c driver"); +MODULE_AUTHOR("William Markezana "); +MODULE_AUTHOR("Ludovic Tancerel "); +MODULE_LICENSE("GPL v2"); + diff --git a/drivers/iio/common/ms_sensors/ms_sensors_i2c.h b/drivers/iio/common/ms_sensors/ms_sensors_i2c.h new file mode 100644 index 000000000000..7b614adc5cae --- /dev/null +++ b/drivers/iio/common/ms_sensors/ms_sensors_i2c.h @@ -0,0 +1,66 @@ +/* + * Measurements Specialties common sensor driver + * + * Copyright (c) 2015 Measurement-Specialties + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef _MS_SENSORS_I2C_H +#define _MS_SENSORS_I2C_H + +#include +#include + +#define MS_SENSORS_TP_PROM_WORDS_NB 7 + +/** + * struct ms_ht_dev - Humidity/Temperature sensor device structure + * @client: i2c client + * @lock: lock protecting the i2c conversion + * @res_index: index to selected sensor resolution + */ +struct ms_ht_dev { + struct i2c_client *client; + struct mutex lock; + u8 res_index; +}; + +/** + * struct ms_tp_dev - Temperature/Pressure sensor device structure + * @client: i2c client + * @lock: lock protecting the i2c conversion + * @prom: array of PROM coefficients used for conversion. Added element + * for CRC computation + * @res_index: index to selected sensor resolution + */ +struct ms_tp_dev { + struct i2c_client *client; + struct mutex lock; + u16 prom[MS_SENSORS_TP_PROM_WORDS_NB + 1]; + u8 res_index; +}; + +int ms_sensors_reset(void *cli, u8 cmd, unsigned int delay); +int ms_sensors_read_prom_word(void *cli, int cmd, u16 *word); +int ms_sensors_convert_and_read(void *cli, u8 conv, u8 rd, + unsigned int delay, u32 *adc); +int ms_sensors_read_serial(struct i2c_client *client, u64 *sn); +ssize_t ms_sensors_show_serial(struct ms_ht_dev *dev_data, char *buf); +ssize_t ms_sensors_write_resolution(struct ms_ht_dev *dev_data, u8 i); +ssize_t ms_sensors_show_battery_low(struct ms_ht_dev *dev_data, char *buf); +ssize_t ms_sensors_show_heater(struct ms_ht_dev *dev_data, char *buf); +ssize_t ms_sensors_write_heater(struct ms_ht_dev *dev_data, + const char *buf, size_t len); +int ms_sensors_ht_read_temperature(struct ms_ht_dev *dev_data, + s32 *temperature); +int ms_sensors_ht_read_humidity(struct ms_ht_dev *dev_data, + u32 *humidity); +int ms_sensors_tp_read_prom(struct ms_tp_dev *dev_data); +int ms_sensors_read_temp_and_pressure(struct ms_tp_dev *dev_data, + int *temperature, + unsigned int *pressure); + +#endif /* _MS_SENSORS_I2C_H */ From 43e53407f6805044bd13e8bf837e169d38ad0458 Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:37 +0200 Subject: [PATCH 1263/2431] Add tsys01 meas-spec driver support Support for TSYS01 temperature sensor Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron --- drivers/iio/temperature/Kconfig | 11 ++ drivers/iio/temperature/Makefile | 1 + drivers/iio/temperature/tsys01.c | 230 +++++++++++++++++++++++++++++++ 3 files changed, 242 insertions(+) create mode 100644 drivers/iio/temperature/tsys01.c diff --git a/drivers/iio/temperature/Kconfig b/drivers/iio/temperature/Kconfig index 21feaa4661b4..35712032b4b9 100644 --- a/drivers/iio/temperature/Kconfig +++ b/drivers/iio/temperature/Kconfig @@ -23,4 +23,15 @@ config TMP006 This driver can also be built as a module. If so, the module will be called tmp006. +config TSYS01 + tristate "Measurement Specialties TSYS01 temperature sensor using I2C bus connection" + depends on I2C + select IIO_MS_SENSORS_I2C + help + If you say yes here you get support for the Measurement Specialties + TSYS01 I2C temperature sensor. + + This driver can also be built as a module. If so, the module will + be called tsys01. + endmenu diff --git a/drivers/iio/temperature/Makefile b/drivers/iio/temperature/Makefile index 40710a81158e..368a2a2ffe52 100644 --- a/drivers/iio/temperature/Makefile +++ b/drivers/iio/temperature/Makefile @@ -4,3 +4,4 @@ obj-$(CONFIG_MLX90614) += mlx90614.o obj-$(CONFIG_TMP006) += tmp006.o +obj-$(CONFIG_TSYS01) += tsys01.o diff --git a/drivers/iio/temperature/tsys01.c b/drivers/iio/temperature/tsys01.c new file mode 100644 index 000000000000..05c12060ce8d --- /dev/null +++ b/drivers/iio/temperature/tsys01.c @@ -0,0 +1,230 @@ +/* + * tsys01.c - Support for Measurement-Specialties tsys01 temperature sensor + * + * Copyright (c) 2015 Measurement-Specialties + * + * Licensed under the GPL-2. + * + * Datasheet: + * http://www.meas-spec.com/downloads/TSYS01_Digital_Temperature_Sensor.pdf + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "../common/ms_sensors/ms_sensors_i2c.h" + +/* TSYS01 Commands */ +#define TSYS01_RESET 0x1E +#define TSYS01_CONVERSION_START 0x48 +#define TSYS01_ADC_READ 0x00 +#define TSYS01_PROM_READ 0xA0 + +#define TSYS01_PROM_WORDS_NB 8 + +struct tsys01_dev { + void *client; + struct mutex lock; /* lock during conversion */ + + int (*reset)(void *cli, u8 cmd, unsigned int delay); + int (*convert_and_read)(void *cli, u8 conv, u8 rd, + unsigned int delay, u32 *adc); + int (*read_prom_word)(void *cli, int cmd, u16 *word); + + u16 prom[TSYS01_PROM_WORDS_NB]; +}; + +/* Multiplication coefficients for temperature computation */ +static const int coeff_mul[] = { -1500000, 1000000, -2000000, + 4000000, -2000000 }; + +static int tsys01_read_temperature(struct iio_dev *indio_dev, + s32 *temperature) +{ + int ret, i; + u32 adc; + s64 temp = 0; + struct tsys01_dev *dev_data = iio_priv(indio_dev); + + mutex_lock(&dev_data->lock); + ret = dev_data->convert_and_read(dev_data->client, + TSYS01_CONVERSION_START, + TSYS01_ADC_READ, 9000, &adc); + mutex_unlock(&dev_data->lock); + if (ret) + return ret; + + adc >>= 8; + + /* Temperature algorithm */ + for (i = 4; i > 0; i--) { + temp += coeff_mul[i] * + (s64)dev_data->prom[5 - i]; + temp *= (s64)adc; + temp = div64_s64(temp, 100000); + } + temp *= 10; + temp += coeff_mul[0] * (s64)dev_data->prom[5]; + temp = div64_s64(temp, 100000); + + *temperature = temp; + + return 0; +} + +static int tsys01_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *channel, int *val, + int *val2, long mask) +{ + int ret; + s32 temperature; + + switch (mask) { + case IIO_CHAN_INFO_PROCESSED: + switch (channel->type) { + case IIO_TEMP: /* in milli °C */ + ret = tsys01_read_temperature(indio_dev, &temperature); + if (ret) + return ret; + *val = temperature; + + return IIO_VAL_INT; + default: + return -EINVAL; + } + default: + return -EINVAL; + } +} + +static const struct iio_chan_spec tsys01_channels[] = { + { + .type = IIO_TEMP, + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_PROCESSED), + } +}; + +static const struct iio_info tsys01_info = { + .read_raw = tsys01_read_raw, + .driver_module = THIS_MODULE, +}; + +static bool tsys01_crc_valid(u16 *n_prom) +{ + u8 cnt; + u8 sum = 0; + + for (cnt = 0; cnt < TSYS01_PROM_WORDS_NB; cnt++) + sum += ((n_prom[0] >> 8) + (n_prom[0] & 0xFF)); + + return (sum == 0); +} + +static int tsys01_read_prom(struct iio_dev *indio_dev) +{ + int i, ret; + struct tsys01_dev *dev_data = iio_priv(indio_dev); + char buf[7 * TSYS01_PROM_WORDS_NB + 1]; + char *ptr = buf; + + for (i = 0; i < TSYS01_PROM_WORDS_NB; i++) { + ret = dev_data->read_prom_word(dev_data->client, + TSYS01_PROM_READ + (i << 1), + &dev_data->prom[i]); + if (ret) + return ret; + + ret = sprintf(ptr, "0x%04x ", dev_data->prom[i]); + ptr += ret; + } + + if (!tsys01_crc_valid(dev_data->prom)) { + dev_err(&indio_dev->dev, "prom crc check error\n"); + return -ENODEV; + } + *ptr = 0; + dev_info(&indio_dev->dev, "PROM coefficients : %s\n", buf); + + return 0; +} + +static int tsys01_probe(struct iio_dev *indio_dev, struct device *dev) +{ + int ret; + struct tsys01_dev *dev_data = iio_priv(indio_dev); + + mutex_init(&dev_data->lock); + + indio_dev->info = &tsys01_info; + indio_dev->name = dev->driver->name; + indio_dev->dev.parent = dev; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->channels = tsys01_channels; + indio_dev->num_channels = ARRAY_SIZE(tsys01_channels); + + ret = dev_data->reset(dev_data->client, TSYS01_RESET, 3000); + if (ret) + return ret; + + ret = tsys01_read_prom(indio_dev); + if (ret) + return ret; + + return devm_iio_device_register(dev, indio_dev); +} + +static int tsys01_i2c_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct tsys01_dev *dev_data; + struct iio_dev *indio_dev; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WORD_DATA | + I2C_FUNC_SMBUS_WRITE_BYTE | + I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + dev_err(&client->dev, + "Adapter does not support some i2c transaction\n"); + return -ENODEV; + } + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*dev_data)); + if (!indio_dev) + return -ENOMEM; + + dev_data = iio_priv(indio_dev); + dev_data->client = client; + dev_data->reset = ms_sensors_reset; + dev_data->read_prom_word = ms_sensors_read_prom_word; + dev_data->convert_and_read = ms_sensors_convert_and_read; + + i2c_set_clientdata(client, indio_dev); + + return tsys01_probe(indio_dev, &client->dev); +} + +static const struct i2c_device_id tsys01_id[] = { + {"tsys01", 0}, + {} +}; +MODULE_DEVICE_TABLE(i2c, tsys01_id); + +static struct i2c_driver tsys01_driver = { + .probe = tsys01_i2c_probe, + .id_table = tsys01_id, + .driver = { + .name = "tsys01", + }, +}; + +module_i2c_driver(tsys01_driver); + +MODULE_DESCRIPTION("Measurement-Specialties tsys01 temperature driver"); +MODULE_AUTHOR("William Markezana "); +MODULE_AUTHOR("Ludovic Tancerel "); +MODULE_LICENSE("GPL v2"); From 43b2ec01d2140964d98ea7812ca2f9dff67d2db2 Mon Sep 17 00:00:00 2001 From: Andrzej Hajda Date: Mon, 21 Sep 2015 15:33:36 +0200 Subject: [PATCH 1264/2431] IB/ehca: fix handling idr_alloc result The function can return negative value. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda Acked-by: Doug Ledford Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ehca/ehca_cq.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rdma/ehca/ehca_cq.c b/drivers/staging/rdma/ehca/ehca_cq.c index 9b68b175069b..ea1b5c1203b4 100644 --- a/drivers/staging/rdma/ehca/ehca_cq.c +++ b/drivers/staging/rdma/ehca/ehca_cq.c @@ -130,7 +130,7 @@ struct ib_cq *ehca_create_cq(struct ib_device *device, void *vpage; u32 counter; u64 rpage, cqx_fec, h_ret; - int ipz_rc, i; + int rc, i; unsigned long flags; if (attr->flags) @@ -170,16 +170,17 @@ struct ib_cq *ehca_create_cq(struct ib_device *device, idr_preload(GFP_KERNEL); write_lock_irqsave(&ehca_cq_idr_lock, flags); - my_cq->token = idr_alloc(&ehca_cq_idr, my_cq, 0, 0x2000000, GFP_NOWAIT); + rc = idr_alloc(&ehca_cq_idr, my_cq, 0, 0x2000000, GFP_NOWAIT); write_unlock_irqrestore(&ehca_cq_idr_lock, flags); idr_preload_end(); - if (my_cq->token < 0) { + if (rc < 0) { cq = ERR_PTR(-ENOMEM); ehca_err(device, "Can't allocate new idr entry. device=%p", device); goto create_cq_exit1; } + my_cq->token = rc; /* * CQs maximum depth is 4GB-64, but we need additional 20 as buffer @@ -195,11 +196,11 @@ struct ib_cq *ehca_create_cq(struct ib_device *device, goto create_cq_exit2; } - ipz_rc = ipz_queue_ctor(NULL, &my_cq->ipz_queue, param.act_pages, + rc = ipz_queue_ctor(NULL, &my_cq->ipz_queue, param.act_pages, EHCA_PAGESIZE, sizeof(struct ehca_cqe), 0, 0); - if (!ipz_rc) { + if (!rc) { ehca_err(device, "ipz_queue_ctor() failed ipz_rc=%i device=%p", - ipz_rc, device); + rc, device); cq = ERR_PTR(-EINVAL); goto create_cq_exit3; } From da5ae8a991d35d73b3875de0298afaf033d85363 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Wed, 8 Jul 2015 17:42:17 +0300 Subject: [PATCH 1265/2431] vme: lower alignment requirement in pci bridge drivers Universe II allows PCI address grannularity of 4K or 64K depending on the window id. tsi148 only supports 64K. Existing driver implementations are validating window size against this grannularity and then use that very size as alignment parameter to pci_bus_alloc_resource. This constraint is excessive, alignment by granularity should be enough. This changes alignment constraint from size to a fixed constraint of 64K. Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman --- drivers/vme/bridges/vme_ca91cx42.c | 2 +- drivers/vme/bridges/vme_tsi148.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/vme/bridges/vme_ca91cx42.c b/drivers/vme/bridges/vme_ca91cx42.c index f692efcf683f..1d41cf21319b 100644 --- a/drivers/vme/bridges/vme_ca91cx42.c +++ b/drivers/vme/bridges/vme_ca91cx42.c @@ -554,7 +554,7 @@ static int ca91cx42_alloc_resource(struct vme_master_resource *image, image->bus_resource.flags = IORESOURCE_MEM; retval = pci_bus_alloc_resource(pdev->bus, - &image->bus_resource, size, size, PCIBIOS_MIN_MEM, + &image->bus_resource, size, 0x10000, PCIBIOS_MIN_MEM, 0, NULL, NULL); if (retval) { dev_err(ca91cx42_bridge->parent, "Failed to allocate mem " diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index fb1e7ad272ec..6c40f282c267 100644 --- a/drivers/vme/bridges/vme_tsi148.c +++ b/drivers/vme/bridges/vme_tsi148.c @@ -846,7 +846,7 @@ static int tsi148_alloc_resource(struct vme_master_resource *image, image->bus_resource.flags = IORESOURCE_MEM; retval = pci_bus_alloc_resource(pdev->bus, - &image->bus_resource, size, size, PCIBIOS_MIN_MEM, + &image->bus_resource, size, 0x10000, PCIBIOS_MIN_MEM, 0, NULL, NULL); if (retval) { dev_err(tsi148_bridge->parent, "Failed to allocate mem " From e2c6393fda98dde5534dd6f83bd15f76abed6555 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 18 Sep 2015 02:01:42 +0300 Subject: [PATCH 1266/2431] vme: move tsi148 error handling into VME subsystem Error handling code found in tsi148 is not device specific. In fact it already relies on shared vme_bus_error struct and vme_bridge.vme_errors field. The other bridge driver could reuse this code if it is shared. This introduces a slight behavior change: vme error message won't be triggered in a rare case when err_chk=1 and kmalloc fails. Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Acked-by: Martyn Welch Signed-off-by: Greg Kroah-Hartman --- drivers/vme/bridges/vme_tsi148.c | 93 +++----------------------------- drivers/vme/vme.c | 86 +++++++++++++++++++++++++++++ drivers/vme/vme_bridge.h | 6 +++ 3 files changed, 99 insertions(+), 86 deletions(-) diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index 6c40f282c267..60c4933ca0c8 100644 --- a/drivers/vme/bridges/vme_tsi148.c +++ b/drivers/vme/bridges/vme_tsi148.c @@ -169,7 +169,6 @@ static u32 tsi148_VERR_irqhandler(struct vme_bridge *tsi148_bridge) unsigned int error_addr_high, error_addr_low; unsigned long long error_addr; u32 error_attrib; - struct vme_bus_error *error = NULL; struct tsi148_driver *bridge; bridge = tsi148_bridge->driver_priv; @@ -186,23 +185,12 @@ static u32 tsi148_VERR_irqhandler(struct vme_bridge *tsi148_bridge) "Occurred\n"); } - if (err_chk) { - error = kmalloc(sizeof(struct vme_bus_error), GFP_ATOMIC); - if (error) { - error->address = error_addr; - error->attributes = error_attrib; - list_add_tail(&error->list, &tsi148_bridge->vme_errors); - } else { - dev_err(tsi148_bridge->parent, - "Unable to alloc memory for VMEbus Error reporting\n"); - } - } - - if (!error) { + if (err_chk) + vme_bus_error_handler(tsi148_bridge, error_addr, error_attrib); + else dev_err(tsi148_bridge->parent, "VME Bus Error at address: 0x%llx, attributes: %08x\n", error_addr, error_attrib); - } /* Clear Status */ iowrite32be(TSI148_LCSR_VEAT_VESCL, bridge->base + TSI148_LCSR_VEAT); @@ -482,73 +470,6 @@ static int tsi148_irq_generate(struct vme_bridge *tsi148_bridge, int level, return 0; } -/* - * Find the first error in this address range - */ -static struct vme_bus_error *tsi148_find_error(struct vme_bridge *tsi148_bridge, - u32 aspace, unsigned long long address, size_t count) -{ - struct list_head *err_pos; - struct vme_bus_error *vme_err, *valid = NULL; - unsigned long long bound; - - bound = address + count; - - /* - * XXX We are currently not looking at the address space when parsing - * for errors. This is because parsing the Address Modifier Codes - * is going to be quite resource intensive to do properly. We - * should be OK just looking at the addresses and this is certainly - * much better than what we had before. - */ - err_pos = NULL; - /* Iterate through errors */ - list_for_each(err_pos, &tsi148_bridge->vme_errors) { - vme_err = list_entry(err_pos, struct vme_bus_error, list); - if ((vme_err->address >= address) && - (vme_err->address < bound)) { - - valid = vme_err; - break; - } - } - - return valid; -} - -/* - * Clear errors in the provided address range. - */ -static void tsi148_clear_errors(struct vme_bridge *tsi148_bridge, - u32 aspace, unsigned long long address, size_t count) -{ - struct list_head *err_pos, *temp; - struct vme_bus_error *vme_err; - unsigned long long bound; - - bound = address + count; - - /* - * XXX We are currently not looking at the address space when parsing - * for errors. This is because parsing the Address Modifier Codes - * is going to be quite resource intensive to do properly. We - * should be OK just looking at the addresses and this is certainly - * much better than what we had before. - */ - err_pos = NULL; - /* Iterate through errors */ - list_for_each_safe(err_pos, temp, &tsi148_bridge->vme_errors) { - vme_err = list_entry(err_pos, struct vme_bus_error, list); - - if ((vme_err->address >= address) && - (vme_err->address < bound)) { - - list_del(err_pos); - kfree(vme_err); - } - } -} - /* * Initialize a slave window with the requested attributes. */ @@ -1323,14 +1244,14 @@ out: __tsi148_master_get(image, &enabled, &vme_base, &size, &aspace, &cycle, &dwidth); - vme_err = tsi148_find_error(tsi148_bridge, aspace, vme_base + offset, + vme_err = vme_find_error(tsi148_bridge, aspace, vme_base + offset, count); if (vme_err != NULL) { dev_err(image->parent->parent, "First VME read error detected " "an at address 0x%llx\n", vme_err->address); retval = vme_err->address - (vme_base + offset); /* Clear down save errors in this address range */ - tsi148_clear_errors(tsi148_bridge, aspace, vme_base + offset, + vme_clear_errors(tsi148_bridge, aspace, vme_base + offset, count); } @@ -1422,14 +1343,14 @@ out: ioread16(bridge->flush_image->kern_base + 0x7F000); - vme_err = tsi148_find_error(tsi148_bridge, aspace, vme_base + offset, + vme_err = vme_find_error(tsi148_bridge, aspace, vme_base + offset, count); if (vme_err != NULL) { dev_warn(tsi148_bridge->parent, "First VME write error detected" " an at address 0x%llx\n", vme_err->address); retval = vme_err->address - (vme_base + offset); /* Clear down save errors in this address range */ - tsi148_clear_errors(tsi148_bridge, aspace, vme_base + offset, + vme_clear_errors(tsi148_bridge, aspace, vme_base + offset, count); } diff --git a/drivers/vme/vme.c b/drivers/vme/vme.c index 56708915ebbe..6803744978b2 100644 --- a/drivers/vme/vme.c +++ b/drivers/vme/vme.c @@ -990,6 +990,92 @@ int vme_dma_free(struct vme_resource *resource) } EXPORT_SYMBOL(vme_dma_free); +void vme_bus_error_handler(struct vme_bridge *bridge, + unsigned long long address, u32 attributes) +{ + struct vme_bus_error *error; + + error = kmalloc(sizeof(struct vme_bus_error), GFP_ATOMIC); + if (error) { + error->address = address; + error->attributes = attributes; + list_add_tail(&error->list, &bridge->vme_errors); + } else { + dev_err(bridge->parent, + "Unable to alloc memory for VMEbus Error reporting\n"); + } +} +EXPORT_SYMBOL(vme_bus_error_handler); + +/* + * Find the first error in this address range + */ +struct vme_bus_error *vme_find_error(struct vme_bridge *bridge, u32 aspace, + unsigned long long address, size_t count) +{ + struct list_head *err_pos; + struct vme_bus_error *vme_err, *valid = NULL; + unsigned long long bound; + + bound = address + count; + + /* + * XXX We are currently not looking at the address space when parsing + * for errors. This is because parsing the Address Modifier Codes + * is going to be quite resource intensive to do properly. We + * should be OK just looking at the addresses and this is certainly + * much better than what we had before. + */ + err_pos = NULL; + /* Iterate through errors */ + list_for_each(err_pos, &bridge->vme_errors) { + vme_err = list_entry(err_pos, struct vme_bus_error, list); + if ((vme_err->address >= address) && + (vme_err->address < bound)) { + + valid = vme_err; + break; + } + } + + return valid; +} +EXPORT_SYMBOL(vme_find_error); + +/* + * Clear errors in the provided address range. + */ +void vme_clear_errors(struct vme_bridge *bridge, u32 aspace, + unsigned long long address, size_t count) +{ + struct list_head *err_pos, *temp; + struct vme_bus_error *vme_err; + unsigned long long bound; + + bound = address + count; + + /* + * XXX We are currently not looking at the address space when parsing + * for errors. This is because parsing the Address Modifier Codes + * is going to be quite resource intensive to do properly. We + * should be OK just looking at the addresses and this is certainly + * much better than what we had before. + */ + err_pos = NULL; + /* Iterate through errors */ + list_for_each_safe(err_pos, temp, &bridge->vme_errors) { + vme_err = list_entry(err_pos, struct vme_bus_error, list); + + if ((vme_err->address >= address) && + (vme_err->address < bound)) { + + list_del(err_pos); + kfree(vme_err); + } + } +} +EXPORT_SYMBOL(vme_clear_errors); + void vme_irq_handler(struct vme_bridge *bridge, int level, int statid) { void (*call)(int, int, void *); diff --git a/drivers/vme/vme_bridge.h b/drivers/vme/vme_bridge.h index 934949abd745..d8d6b144003b 100644 --- a/drivers/vme/vme_bridge.h +++ b/drivers/vme/vme_bridge.h @@ -166,6 +166,12 @@ struct vme_bridge { void *vaddr, dma_addr_t dma); }; +void vme_bus_error_handler(struct vme_bridge *bridge, + unsigned long long address, u32 attributes); +struct vme_bus_error *vme_find_error(struct vme_bridge *bridge, u32 aspace, + unsigned long long address, size_t count); +void vme_clear_errors(struct vme_bridge *bridge, u32 aspace, + unsigned long long address, size_t count); void vme_irq_handler(struct vme_bridge *, int, int); int vme_register_bridge(struct vme_bridge *); From 472f16f33c7d53515af83c805d4babd8a6c24a19 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 18 Sep 2015 02:01:43 +0300 Subject: [PATCH 1267/2431] vme: include address space in error filtering Also changes vme_bus_error_handler to take generic address modifier code instead of raw contents of a device-specific attribute register. Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Acked-by: Martyn Welch Signed-off-by: Greg Kroah-Hartman --- drivers/vme/bridges/vme_tsi148.c | 4 ++- drivers/vme/vme.c | 61 +++++++++++++++++++++----------- drivers/vme/vme_bridge.h | 4 +-- 3 files changed, 46 insertions(+), 23 deletions(-) diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index 60c4933ca0c8..4520d985379f 100644 --- a/drivers/vme/bridges/vme_tsi148.c +++ b/drivers/vme/bridges/vme_tsi148.c @@ -169,6 +169,7 @@ static u32 tsi148_VERR_irqhandler(struct vme_bridge *tsi148_bridge) unsigned int error_addr_high, error_addr_low; unsigned long long error_addr; u32 error_attrib; + int error_am; struct tsi148_driver *bridge; bridge = tsi148_bridge->driver_priv; @@ -176,6 +177,7 @@ static u32 tsi148_VERR_irqhandler(struct vme_bridge *tsi148_bridge) error_addr_high = ioread32be(bridge->base + TSI148_LCSR_VEAU); error_addr_low = ioread32be(bridge->base + TSI148_LCSR_VEAL); error_attrib = ioread32be(bridge->base + TSI148_LCSR_VEAT); + error_am = (error_attrib & TSI148_LCSR_VEAT_AM_M) >> 8; reg_join(error_addr_high, error_addr_low, &error_addr); @@ -186,7 +188,7 @@ static u32 tsi148_VERR_irqhandler(struct vme_bridge *tsi148_bridge) } if (err_chk) - vme_bus_error_handler(tsi148_bridge, error_addr, error_attrib); + vme_bus_error_handler(tsi148_bridge, error_addr, error_am); else dev_err(tsi148_bridge->parent, "VME Bus Error at address: 0x%llx, attributes: %08x\n", diff --git a/drivers/vme/vme.c b/drivers/vme/vme.c index 6803744978b2..2b79cd2715da 100644 --- a/drivers/vme/vme.c +++ b/drivers/vme/vme.c @@ -223,6 +223,39 @@ int vme_check_window(u32 aspace, unsigned long long vme_base, } EXPORT_SYMBOL(vme_check_window); +static u32 vme_get_aspace(int am) +{ + switch (am) { + case 0x29: + case 0x2D: + return VME_A16; + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + return VME_A24; + case 0x8: + case 0x9: + case 0xA: + case 0xB: + case 0xC: + case 0xD: + case 0xE: + case 0xF: + return VME_A32; + case 0x0: + case 0x1: + case 0x3: + return VME_A64; + } + + return 0; +} + /* * Request a slave image with specific attributes, return some unique * identifier. @@ -991,14 +1024,14 @@ int vme_dma_free(struct vme_resource *resource) EXPORT_SYMBOL(vme_dma_free); void vme_bus_error_handler(struct vme_bridge *bridge, - unsigned long long address, u32 attributes) + unsigned long long address, int am) { struct vme_bus_error *error; error = kmalloc(sizeof(struct vme_bus_error), GFP_ATOMIC); if (error) { + error->aspace = vme_get_aspace(am); error->address = address; - error->attributes = attributes; list_add_tail(&error->list, &bridge->vme_errors); } else { dev_err(bridge->parent, @@ -1019,19 +1052,13 @@ struct vme_bus_error *vme_find_error(struct vme_bridge *bridge, u32 aspace, bound = address + count; - /* - * XXX We are currently not looking at the address space when parsing - * for errors. This is because parsing the Address Modifier Codes - * is going to be quite resource intensive to do properly. We - * should be OK just looking at the addresses and this is certainly - * much better than what we had before. - */ err_pos = NULL; /* Iterate through errors */ list_for_each(err_pos, &bridge->vme_errors) { vme_err = list_entry(err_pos, struct vme_bus_error, list); - if ((vme_err->address >= address) && - (vme_err->address < bound)) { + if ((vme_err->aspace == aspace) && + (vme_err->address >= address) && + (vme_err->address < bound)) { valid = vme_err; break; @@ -1054,20 +1081,14 @@ void vme_clear_errors(struct vme_bridge *bridge, u32 aspace, bound = address + count; - /* - * XXX We are currently not looking at the address space when parsing - * for errors. This is because parsing the Address Modifier Codes - * is going to be quite resource intensive to do properly. We - * should be OK just looking at the addresses and this is certainly - * much better than what we had before. - */ err_pos = NULL; /* Iterate through errors */ list_for_each_safe(err_pos, temp, &bridge->vme_errors) { vme_err = list_entry(err_pos, struct vme_bus_error, list); - if ((vme_err->address >= address) && - (vme_err->address < bound)) { + if ((vme_err->aspace == aspace) && + (vme_err->address >= address) && + (vme_err->address < bound)) { list_del(err_pos); kfree(vme_err); diff --git a/drivers/vme/vme_bridge.h b/drivers/vme/vme_bridge.h index d8d6b144003b..92fbe18cbc42 100644 --- a/drivers/vme/vme_bridge.h +++ b/drivers/vme/vme_bridge.h @@ -77,8 +77,8 @@ struct vme_lm_resource { struct vme_bus_error { struct list_head list; + u32 aspace; unsigned long long address; - u32 attributes; }; struct vme_callback { @@ -167,7 +167,7 @@ struct vme_bridge { }; void vme_bus_error_handler(struct vme_bridge *bridge, - unsigned long long address, u32 attributes); + unsigned long long address, int am); struct vme_bus_error *vme_find_error(struct vme_bridge *bridge, u32 aspace, unsigned long long address, size_t count); void vme_clear_errors(struct vme_bridge *bridge, u32 aspace, From 0b0496625715374c7d0b747268c11528e8af32a3 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 18 Sep 2015 02:01:44 +0300 Subject: [PATCH 1268/2431] vme: change bus error handling scheme The current VME bus error handler adds errors to the bridge error list. vme_master_{read,write} then traverses that list to look for relevant errors. Such scheme didn't work well for accesses going through vme_master_mmap because they would also allocate a vme_bus_error, but have no way to do vme_clear_errors call to free that memory. This changes the error handling process to be other way around: now vme_master_{read,write} defines a window in VME address space that will catch possible errors. VME bus error interrupt only traverses these windows and marks those that had errors in them. Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman --- drivers/vme/bridges/vme_ca91cx42.c | 3 +- drivers/vme/bridges/vme_tsi148.c | 83 +++++++++++++-------------- drivers/vme/vme.c | 90 +++++++++++------------------- drivers/vme/vme_bridge.h | 23 +++++--- 4 files changed, 90 insertions(+), 109 deletions(-) diff --git a/drivers/vme/bridges/vme_ca91cx42.c b/drivers/vme/bridges/vme_ca91cx42.c index 1d41cf21319b..b79a74a98a23 100644 --- a/drivers/vme/bridges/vme_ca91cx42.c +++ b/drivers/vme/bridges/vme_ca91cx42.c @@ -204,8 +204,7 @@ static int ca91cx42_irq_init(struct vme_bridge *ca91cx42_bridge) /* Need pdev */ pdev = container_of(ca91cx42_bridge->parent, struct pci_dev, dev); - /* Initialise list for VME bus errors */ - INIT_LIST_HEAD(&ca91cx42_bridge->vme_errors); + INIT_LIST_HEAD(&ca91cx42_bridge->vme_error_handlers); mutex_init(&ca91cx42_bridge->irq_mtx); diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index 4520d985379f..d1e383bc1f17 100644 --- a/drivers/vme/bridges/vme_tsi148.c +++ b/drivers/vme/bridges/vme_tsi148.c @@ -314,8 +314,7 @@ static int tsi148_irq_init(struct vme_bridge *tsi148_bridge) bridge = tsi148_bridge->driver_priv; - /* Initialise list for VME bus errors */ - INIT_LIST_HEAD(&tsi148_bridge->vme_errors); + INIT_LIST_HEAD(&tsi148_bridge->vme_error_handlers); mutex_init(&tsi148_bridge->irq_mtx); @@ -1187,7 +1186,7 @@ static ssize_t tsi148_master_read(struct vme_master_resource *image, void *buf, int retval, enabled; unsigned long long vme_base, size; u32 aspace, cycle, dwidth; - struct vme_bus_error *vme_err = NULL; + struct vme_error_handler *handler; struct vme_bridge *tsi148_bridge; void __iomem *addr = image->kern_base + offset; unsigned int done = 0; @@ -1197,6 +1196,17 @@ static ssize_t tsi148_master_read(struct vme_master_resource *image, void *buf, spin_lock(&image->lock); + if (err_chk) { + __tsi148_master_get(image, &enabled, &vme_base, &size, &aspace, + &cycle, &dwidth); + handler = vme_register_error_handler(tsi148_bridge, aspace, + vme_base + offset, count); + if (!handler) { + spin_unlock(&image->lock); + return -ENOMEM; + } + } + /* The following code handles VME address alignment. We cannot use * memcpy_xxx here because it may cut data transfers in to 8-bit * cycles when D16 or D32 cycles are required on the VME bus. @@ -1240,24 +1250,16 @@ static ssize_t tsi148_master_read(struct vme_master_resource *image, void *buf, out: retval = count; - if (!err_chk) - goto skip_chk; - - __tsi148_master_get(image, &enabled, &vme_base, &size, &aspace, &cycle, - &dwidth); - - vme_err = vme_find_error(tsi148_bridge, aspace, vme_base + offset, - count); - if (vme_err != NULL) { - dev_err(image->parent->parent, "First VME read error detected " - "an at address 0x%llx\n", vme_err->address); - retval = vme_err->address - (vme_base + offset); - /* Clear down save errors in this address range */ - vme_clear_errors(tsi148_bridge, aspace, vme_base + offset, - count); + if (err_chk) { + if (handler->num_errors) { + dev_err(image->parent->parent, + "First VME read error detected an at address 0x%llx\n", + handler->first_error); + retval = handler->first_error - (vme_base + offset); + } + vme_unregister_error_handler(handler); } -skip_chk: spin_unlock(&image->lock); return retval; @@ -1274,7 +1276,7 @@ static ssize_t tsi148_master_write(struct vme_master_resource *image, void *buf, unsigned int done = 0; unsigned int count32; - struct vme_bus_error *vme_err = NULL; + struct vme_error_handler *handler; struct vme_bridge *tsi148_bridge; struct tsi148_driver *bridge; @@ -1284,6 +1286,17 @@ static ssize_t tsi148_master_write(struct vme_master_resource *image, void *buf, spin_lock(&image->lock); + if (err_chk) { + __tsi148_master_get(image, &enabled, &vme_base, &size, &aspace, + &cycle, &dwidth); + handler = vme_register_error_handler(tsi148_bridge, aspace, + vme_base + offset, count); + if (!handler) { + spin_unlock(&image->lock); + return -ENOMEM; + } + } + /* Here we apply for the same strategy we do in master_read * function in order to assure the correct cycles. */ @@ -1333,30 +1346,18 @@ out: * We check for saved errors in the written address range/space. */ - if (!err_chk) - goto skip_chk; + if (err_chk) { + ioread16(bridge->flush_image->kern_base + 0x7F000); - /* - * Get window info first, to maximise the time that the buffers may - * fluch on their own - */ - __tsi148_master_get(image, &enabled, &vme_base, &size, &aspace, &cycle, - &dwidth); - - ioread16(bridge->flush_image->kern_base + 0x7F000); - - vme_err = vme_find_error(tsi148_bridge, aspace, vme_base + offset, - count); - if (vme_err != NULL) { - dev_warn(tsi148_bridge->parent, "First VME write error detected" - " an at address 0x%llx\n", vme_err->address); - retval = vme_err->address - (vme_base + offset); - /* Clear down save errors in this address range */ - vme_clear_errors(tsi148_bridge, aspace, vme_base + offset, - count); + if (handler->num_errors) { + dev_warn(tsi148_bridge->parent, + "First VME write error detected an at address 0x%llx\n", + handler->first_error); + retval = handler->first_error - (vme_base + offset); + } + vme_unregister_error_handler(handler); } -skip_chk: spin_unlock(&image->lock); return retval; diff --git a/drivers/vme/vme.c b/drivers/vme/vme.c index 2b79cd2715da..7a10d926ebb4 100644 --- a/drivers/vme/vme.c +++ b/drivers/vme/vme.c @@ -1026,76 +1026,52 @@ EXPORT_SYMBOL(vme_dma_free); void vme_bus_error_handler(struct vme_bridge *bridge, unsigned long long address, int am) { - struct vme_bus_error *error; + struct list_head *handler_pos = NULL; + struct vme_error_handler *handler; + u32 aspace = vme_get_aspace(am); - error = kmalloc(sizeof(struct vme_bus_error), GFP_ATOMIC); - if (error) { - error->aspace = vme_get_aspace(am); - error->address = address; - list_add_tail(&error->list, &bridge->vme_errors); - } else { - dev_err(bridge->parent, - "Unable to alloc memory for VMEbus Error reporting\n"); + list_for_each(handler_pos, &bridge->vme_error_handlers) { + handler = list_entry(handler_pos, struct vme_error_handler, + list); + if ((aspace == handler->aspace) && + (address >= handler->start) && + (address < handler->end)) { + if (!handler->num_errors) + handler->first_error = address; + if (handler->num_errors != UINT_MAX) + handler->num_errors++; + } } } EXPORT_SYMBOL(vme_bus_error_handler); -/* - * Find the first error in this address range - */ -struct vme_bus_error *vme_find_error(struct vme_bridge *bridge, u32 aspace, - unsigned long long address, size_t count) +struct vme_error_handler *vme_register_error_handler( + struct vme_bridge *bridge, u32 aspace, + unsigned long long address, size_t len) { - struct list_head *err_pos; - struct vme_bus_error *vme_err, *valid = NULL; - unsigned long long bound; + struct vme_error_handler *handler; - bound = address + count; + handler = kmalloc(sizeof(*handler), GFP_KERNEL); + if (!handler) + return NULL; - err_pos = NULL; - /* Iterate through errors */ - list_for_each(err_pos, &bridge->vme_errors) { - vme_err = list_entry(err_pos, struct vme_bus_error, list); - if ((vme_err->aspace == aspace) && - (vme_err->address >= address) && - (vme_err->address < bound)) { + handler->aspace = aspace; + handler->start = address; + handler->end = address + len; + handler->num_errors = 0; + handler->first_error = 0; + list_add_tail(&handler->list, &bridge->vme_error_handlers); - valid = vme_err; - break; - } - } - - return valid; + return handler; } -EXPORT_SYMBOL(vme_find_error); +EXPORT_SYMBOL(vme_register_error_handler); -/* - * Clear errors in the provided address range. - */ -void vme_clear_errors(struct vme_bridge *bridge, u32 aspace, - unsigned long long address, size_t count) +void vme_unregister_error_handler(struct vme_error_handler *handler) { - struct list_head *err_pos, *temp; - struct vme_bus_error *vme_err; - unsigned long long bound; - - bound = address + count; - - err_pos = NULL; - /* Iterate through errors */ - list_for_each_safe(err_pos, temp, &bridge->vme_errors) { - vme_err = list_entry(err_pos, struct vme_bus_error, list); - - if ((vme_err->aspace == aspace) && - (vme_err->address >= address) && - (vme_err->address < bound)) { - - list_del(err_pos); - kfree(vme_err); - } - } + list_del(&handler->list); + kfree(handler); } -EXPORT_SYMBOL(vme_clear_errors); +EXPORT_SYMBOL(vme_unregister_error_handler); void vme_irq_handler(struct vme_bridge *bridge, int level, int statid) { diff --git a/drivers/vme/vme_bridge.h b/drivers/vme/vme_bridge.h index 92fbe18cbc42..397578a73883 100644 --- a/drivers/vme/vme_bridge.h +++ b/drivers/vme/vme_bridge.h @@ -75,10 +75,13 @@ struct vme_lm_resource { int monitors; }; -struct vme_bus_error { +struct vme_error_handler { struct list_head list; - u32 aspace; - unsigned long long address; + unsigned long long start; /* Beginning of error window */ + unsigned long long end; /* End of error window */ + unsigned long long first_error; /* Address of the first error */ + u32 aspace; /* Address space of error window*/ + unsigned num_errors; /* Number of errors */ }; struct vme_callback { @@ -106,8 +109,10 @@ struct vme_bridge { struct list_head dma_resources; struct list_head lm_resources; - struct list_head vme_errors; /* List for errors generated on VME */ - struct list_head devices; /* List of devices on this bridge */ + /* List for registered errors handlers */ + struct list_head vme_error_handlers; + /* List of devices on this bridge */ + struct list_head devices; /* Bridge Info - XXX Move to private structure? */ struct device *parent; /* Parent device (eg. pdev->dev for PCI) */ @@ -168,13 +173,13 @@ struct vme_bridge { void vme_bus_error_handler(struct vme_bridge *bridge, unsigned long long address, int am); -struct vme_bus_error *vme_find_error(struct vme_bridge *bridge, u32 aspace, - unsigned long long address, size_t count); -void vme_clear_errors(struct vme_bridge *bridge, u32 aspace, - unsigned long long address, size_t count); void vme_irq_handler(struct vme_bridge *, int, int); int vme_register_bridge(struct vme_bridge *); void vme_unregister_bridge(struct vme_bridge *); +struct vme_error_handler *vme_register_error_handler( + struct vme_bridge *bridge, u32 aspace, + unsigned long long address, size_t len); +void vme_unregister_error_handler(struct vme_error_handler *handler); #endif /* _VME_BRIDGE_H_ */ From 448535a35010253f21ed913a05abe3d0adb47743 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 18 Sep 2015 02:01:45 +0300 Subject: [PATCH 1269/2431] vme: print unhandled VME access errors This will enable error messages for accesses done through mmap. Signed-off-by: Dmitry Kalinkin Acked-by: Martyn Welch Signed-off-by: Greg Kroah-Hartman --- drivers/vme/vme.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/vme/vme.c b/drivers/vme/vme.c index 7a10d926ebb4..72924b0632b7 100644 --- a/drivers/vme/vme.c +++ b/drivers/vme/vme.c @@ -1028,6 +1028,7 @@ void vme_bus_error_handler(struct vme_bridge *bridge, { struct list_head *handler_pos = NULL; struct vme_error_handler *handler; + int handler_triggered = 0; u32 aspace = vme_get_aspace(am); list_for_each(handler_pos, &bridge->vme_error_handlers) { @@ -1040,8 +1041,14 @@ void vme_bus_error_handler(struct vme_bridge *bridge, handler->first_error = address; if (handler->num_errors != UINT_MAX) handler->num_errors++; + handler_triggered = 1; } } + + if (!handler_triggered) + dev_err(bridge->parent, + "Unhandled VME access error at address 0x%llx\n", + address); } EXPORT_SYMBOL(vme_bus_error_handler); From d3337eb1e113bed287b58677e755c807be88d507 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Mon, 5 Oct 2015 06:59:17 +0300 Subject: [PATCH 1270/2431] vme: tsi148: silence uninitialized variable warning The warning is a false positive. drivers/vme/bridges/vme_tsi148.c: In function 'tsi148_master_write': drivers/vme/bridges/vme_tsi148.c:1358:31: warning: 'handler' may be used uninitialized in this function [-Wmaybe-uninitialized] vme_unregister_error_handler(handler); ^ drivers/vme/bridges/vme_tsi148.c: In function 'tsi148_master_read': drivers/vme/bridges/vme_tsi148.c:1260:31: warning: 'handler' may be used uninitialized in this function [-Wmaybe-uninitialized] vme_unregister_error_handler(handler); ^ Fixes: 0b0496625715 ("vme: change bus error handling scheme") Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman --- drivers/vme/bridges/vme_tsi148.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index d1e383bc1f17..60524834dba3 100644 --- a/drivers/vme/bridges/vme_tsi148.c +++ b/drivers/vme/bridges/vme_tsi148.c @@ -1186,7 +1186,7 @@ static ssize_t tsi148_master_read(struct vme_master_resource *image, void *buf, int retval, enabled; unsigned long long vme_base, size; u32 aspace, cycle, dwidth; - struct vme_error_handler *handler; + struct vme_error_handler *handler = NULL; struct vme_bridge *tsi148_bridge; void __iomem *addr = image->kern_base + offset; unsigned int done = 0; @@ -1276,7 +1276,7 @@ static ssize_t tsi148_master_write(struct vme_master_resource *image, void *buf, unsigned int done = 0; unsigned int count32; - struct vme_error_handler *handler; + struct vme_error_handler *handler = NULL; struct vme_bridge *tsi148_bridge; struct tsi148_driver *bridge; From c18c331193b2270a5d47f4108ab0fc2bf97c3b51 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 4 Oct 2015 20:07:53 +0530 Subject: [PATCH 1271/2431] staging: sm750fb: Add space around '/' Add space around operator '/'. Problem found using checkpatch.pl CHECK: spaces preferred around that '/' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index e987971cce28..8d167fc08f83 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -391,10 +391,10 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) if (pll->clockType != MXCLK_PLL) { xparm = &xparm_PIXEL[0]; - xcnt = sizeof(xparm_PIXEL)/sizeof(xparm_PIXEL[0]); + xcnt = sizeof(xparm_PIXEL) / sizeof(xparm_PIXEL[0]); } else { xparm = &xparm_MXCLK[0]; - xcnt = sizeof(xparm_MXCLK)/sizeof(xparm_MXCLK[0]); + xcnt = sizeof(xparm_MXCLK) / sizeof(xparm_MXCLK[0]); } From f40917ea0b976de81d8c77b8c81f9105f363a54b Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 4 Oct 2015 20:12:30 +0530 Subject: [PATCH 1272/2431] staging: sm750fb: Add space around '*' Add space around operator '*'. Problem found using checkpatch.pl CHECK: spaces preferred around that '*' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 8d167fc08f83..057a4c3f7236 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -407,10 +407,10 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) for (d = xcnt - 1; d >= 0; d--) { X = xparm[d].value; - M = quo*X; + M = quo * X; M += fl_quo * X / 10000; /* round step */ - M += (fl_quo*X % 10000) > 5000?1:0; + M += (fl_quo * X % 10000) > 5000?1:0; if (M < 256 && M > 0) { unsigned int diff; From 31418e37019ec188f4201587c7234bfb463e7bf4 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 4 Oct 2015 20:15:34 +0530 Subject: [PATCH 1273/2431] staging: sm750fb: Add space around '?' Add space around operator '?'. Problem found using checkpatch.pl CHECK: spaces preferred around that '?' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 057a4c3f7236..2aacb01d2e3d 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -410,7 +410,7 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) M = quo * X; M += fl_quo * X / 10000; /* round step */ - M += (fl_quo * X % 10000) > 5000?1:0; + M += (fl_quo * X % 10000) > 5000 ? 1:0; if (M < 256 && M > 0) { unsigned int diff; From 07387cba8168b8dbffe17301290d65e893b831a2 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 4 Oct 2015 20:18:32 +0530 Subject: [PATCH 1274/2431] staging: sm750fb: Add space around ':' Add space around operator ':'. Problem found using checkpatch.pl CHECK: spaces preferred around that ':' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 2aacb01d2e3d..03e259da622e 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -410,7 +410,7 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) M = quo * X; M += fl_quo * X / 10000; /* round step */ - M += (fl_quo * X % 10000) > 5000 ? 1:0; + M += (fl_quo * X % 10000) > 5000 ? 1 : 0; if (M < 256 && M > 0) { unsigned int diff; From 0ce5fdb14b8ede01a59f378a2f7fcee877dab8ad Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 8 Oct 2015 07:53:58 +0530 Subject: [PATCH 1275/2431] staging: sm750fb: Remove multiple blank lines Remove multiple blank lines. Problem found using checkpatch.pl CHECK: Please don't use multiple blank lines Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 03e259da622e..0734044d7040 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -12,7 +12,6 @@ typedef struct _pllcalparam { } pllcalparam; - logical_chip_type_t getChipType(void) { unsigned short physicalID; @@ -74,7 +73,6 @@ static unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL) return calcPLL(pPLL); } - static unsigned int getChipClock(void) { pll_value_t pll; @@ -86,7 +84,6 @@ static unsigned int getChipClock(void) return getPllValue(MXCLK_PLL, &pll); } - /* * This function set up the main chip clock. * @@ -121,8 +118,6 @@ static void setChipClock(unsigned int frequency) } } - - static void setMemoryClock(unsigned int frequency) { unsigned int ulReg, divisor; @@ -162,7 +157,6 @@ static void setMemoryClock(unsigned int frequency) } } - /* * This function set up the master clock (MCLK). * @@ -210,7 +204,6 @@ static void setMasterClock(unsigned int frequency) } } - unsigned int ddk750_getVMSize(void) { unsigned int reg; From 38a70c9b62f4a71125701cbf488160a31356b965 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 05:32:36 +0530 Subject: [PATCH 1276/2431] Staging: lustre: obdclass: llog_swab: Declare local functions as static Declare functions lustre_swab_llog_id and lustre_swab_ll_fid as static since they are used only in this particular file. Also remove them from corresponding header files. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre/lustre_idl.h | 2 -- drivers/staging/lustre/lustre/obdclass/llog_swab.c | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 9cc92bbc21d5..94d4028af49f 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -2116,7 +2116,6 @@ void lustre_swab_generic_32s(__u32 *val); /* This FULL lock is useful to take on unlink sort of operations */ #define MDS_INODELOCK_FULL ((1<<(MDS_INODELOCK_MAXSHIFT+1))-1) -void lustre_swab_ll_fid(struct ll_fid *fid); /* NOTE: until Lustre 1.8.7/2.1.1 the fid_ver() was packed into name[2], * but was moved into name[1] along with the OID to avoid consuming the @@ -3349,7 +3348,6 @@ void lustre_swab_llogd_body(struct llogd_body *d); void lustre_swab_llog_hdr(struct llog_log_hdr *h); void lustre_swab_llogd_conn_body(struct llogd_conn_body *d); void lustre_swab_llog_rec(struct llog_rec_hdr *rec); -void lustre_swab_llog_id(struct llog_logid *lid); struct lustre_cfg; void lustre_swab_lustre_cfg(struct lustre_cfg *lcfg); diff --git a/drivers/staging/lustre/lustre/obdclass/llog_swab.c b/drivers/staging/lustre/lustre/obdclass/llog_swab.c index a2d5aa105d6b..054fd31bb1c4 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_swab.c +++ b/drivers/staging/lustre/lustre/obdclass/llog_swab.c @@ -78,13 +78,12 @@ void lustre_swab_ost_id(struct ost_id *oid) } EXPORT_SYMBOL(lustre_swab_ost_id); -void lustre_swab_llog_id(struct llog_logid *log_id) +static void lustre_swab_llog_id(struct llog_logid *log_id) { __swab64s(&log_id->lgl_oi.oi.oi_id); __swab64s(&log_id->lgl_oi.oi.oi_seq); __swab32s(&log_id->lgl_ogen); } -EXPORT_SYMBOL(lustre_swab_llog_id); void lustre_swab_llogd_body(struct llogd_body *d) { @@ -109,13 +108,12 @@ void lustre_swab_llogd_conn_body(struct llogd_conn_body *d) } EXPORT_SYMBOL(lustre_swab_llogd_conn_body); -void lustre_swab_ll_fid(struct ll_fid *fid) +static void lustre_swab_ll_fid(struct ll_fid *fid) { __swab64s(&fid->id); __swab32s(&fid->generation); __swab32s(&fid->f_type); } -EXPORT_SYMBOL(lustre_swab_ll_fid); void lustre_swab_lu_seq_range(struct lu_seq_range *range) { From 09eb98b356e4df300d80f819fea6e64a741dd5d9 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 05:32:38 +0530 Subject: [PATCH 1277/2431] Staging: lustre: ptlrpc: pack_generic: Declare local functions as static Declare functions lustre_swab_ldlm_lock_desc and dump_obdo as static since they are used only in this particular file. Also remove them from corresponding header files. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre/lustre_idl.h | 3 --- drivers/staging/lustre/lustre/ptlrpc/pack_generic.c | 5 ++--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 94d4028af49f..e629ca391201 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -2785,8 +2785,6 @@ struct ldlm_lock_desc { ldlm_wire_policy_data_t l_policy_data; }; -void lustre_swab_ldlm_lock_desc(struct ldlm_lock_desc *l); - #define LDLM_LOCKREQ_HANDLES 2 #define LDLM_ENQUEUE_CANCEL_OFF 1 @@ -3355,7 +3353,6 @@ void lustre_swab_lustre_cfg(struct lustre_cfg *lcfg); /* Functions for dumping PTLRPC fields */ void dump_rniobuf(struct niobuf_remote *rnb); void dump_ioo(struct obd_ioobj *nb); -void dump_obdo(struct obdo *oa); void dump_ost_body(struct ost_body *ob); void dump_rcs(__u32 *rc); diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index 3241b1f89c50..23cf1b0fa9b9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -1977,14 +1977,13 @@ void lustre_swab_ldlm_resource_desc(struct ldlm_resource_desc *r) } EXPORT_SYMBOL(lustre_swab_ldlm_resource_desc); -void lustre_swab_ldlm_lock_desc(struct ldlm_lock_desc *l) +static void lustre_swab_ldlm_lock_desc(struct ldlm_lock_desc *l) { lustre_swab_ldlm_resource_desc(&l->l_resource); __swab32s(&l->l_req_mode); __swab32s(&l->l_granted_mode); lustre_swab_ldlm_policy_data(&l->l_policy_data); } -EXPORT_SYMBOL(lustre_swab_ldlm_lock_desc); void lustre_swab_ldlm_request(struct ldlm_request *rq) { @@ -2033,7 +2032,7 @@ void dump_rniobuf(struct niobuf_remote *nb) } EXPORT_SYMBOL(dump_rniobuf); -void dump_obdo(struct obdo *oa) +static void dump_obdo(struct obdo *oa) { __u32 valid = oa->o_valid; From be23ce1dfb6ba9dcd2fce9dcc91e6307fc906597 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 05:32:39 +0530 Subject: [PATCH 1278/2431] Staging: lustre: ptlrcpc: sec: Declare local functions as static Declare functions sptlrpc_secflags2str, sptlrpc_sec_get and sptlrpc_svc_install_rvs_ctx as static since they are used only in this particular file. Also remove them from corresponding header files. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 7 ------- drivers/staging/lustre/lustre/ptlrpc/sec.c | 10 ++++------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index fc1f57355971..76b3a84a9342 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -916,7 +916,6 @@ const char *sptlrpc_flavor2name_base(__u32 flvr); char *sptlrpc_flavor2name_bulk(struct sptlrpc_flavor *sf, char *buf, int bufsize); char *sptlrpc_flavor2name(struct sptlrpc_flavor *sf, char *buf, int bufsize); -char *sptlrpc_secflags2str(__u32 flags, char *buf, int bufsize); static inline struct ptlrpc_sec_policy *sptlrpc_policy_get(struct ptlrpc_sec_policy *policy) @@ -979,7 +978,6 @@ int cli_ctx_is_eternal(struct ptlrpc_cli_ctx *ctx) /* * sec get/put */ -struct ptlrpc_sec *sptlrpc_sec_get(struct ptlrpc_sec *sec); void sptlrpc_sec_put(struct ptlrpc_sec *sec); /* @@ -1058,11 +1056,6 @@ void sptlrpc_svc_ctx_decref(struct ptlrpc_request *req); int sptlrpc_target_export_check(struct obd_export *exp, struct ptlrpc_request *req); -/* - * reverse context - */ -int sptlrpc_svc_install_rvs_ctx(struct obd_import *imp, - struct ptlrpc_svc_ctx *ctx); /* bulk security api */ void sptlrpc_enc_pool_put_pages(struct ptlrpc_bulk_desc *desc); diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec.c b/drivers/staging/lustre/lustre/ptlrpc/sec.c index 84e9881806b5..3a6539c4c81f 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec.c @@ -227,7 +227,7 @@ char *sptlrpc_flavor2name(struct sptlrpc_flavor *sf, char *buf, int bufsize) } EXPORT_SYMBOL(sptlrpc_flavor2name); -char *sptlrpc_secflags2str(__u32 flags, char *buf, int bufsize) +static char *sptlrpc_secflags2str(__u32 flags, char *buf, int bufsize) { buf[0] = '\0'; @@ -244,7 +244,6 @@ char *sptlrpc_secflags2str(__u32 flags, char *buf, int bufsize) return buf; } -EXPORT_SYMBOL(sptlrpc_secflags2str); /************************************************** * client context APIs * @@ -1199,14 +1198,13 @@ static void sptlrpc_sec_kill(struct ptlrpc_sec *sec) } } -struct ptlrpc_sec *sptlrpc_sec_get(struct ptlrpc_sec *sec) +static struct ptlrpc_sec *sptlrpc_sec_get(struct ptlrpc_sec *sec) { if (sec) atomic_inc(&sec->ps_refcount); return sec; } -EXPORT_SYMBOL(sptlrpc_sec_get); void sptlrpc_sec_put(struct ptlrpc_sec *sec) { @@ -1643,8 +1641,8 @@ void sptlrpc_cli_free_repbuf(struct ptlrpc_request *req) req->rq_repmsg = NULL; } -int sptlrpc_svc_install_rvs_ctx(struct obd_import *imp, - struct ptlrpc_svc_ctx *ctx) +static int sptlrpc_svc_install_rvs_ctx(struct obd_import *imp, + struct ptlrpc_svc_ctx *ctx) { struct ptlrpc_sec_policy *policy = ctx->sc_policy; From 17ad0ce6058df4a3d85024e86ce554ff1f559cbb Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:04 +0530 Subject: [PATCH 1279/2431] Staging: lustre: obdclass: llog_cat: Declare local functions as static Declare llog_cat_id2handle and llog_cat_process_or_fork as static since they are used only in this particular file. Also remove the corresponding declarations from header files. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/lustre_log.h | 3 --- drivers/staging/lustre/lustre/obdclass/llog_cat.c | 15 ++++++++------- .../lustre/lustre/obdclass/llog_internal.h | 2 -- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_log.h b/drivers/staging/lustre/lustre/include/lustre_log.h index 958d012a4388..5d3b2df02321 100644 --- a/drivers/staging/lustre/lustre/include/lustre_log.h +++ b/drivers/staging/lustre/lustre/include/lustre_log.h @@ -165,9 +165,6 @@ struct llog_process_cat_data { struct thandle; int llog_cat_close(const struct lu_env *env, struct llog_handle *cathandle); -int llog_cat_process_or_fork(const struct lu_env *env, - struct llog_handle *cat_llh, llog_cb_t cb, - void *data, int startcat, int startidx, bool fork); int llog_cat_process(const struct lu_env *env, struct llog_handle *cat_llh, llog_cb_t cb, void *data, int startcat, int startidx); diff --git a/drivers/staging/lustre/lustre/obdclass/llog_cat.c b/drivers/staging/lustre/lustre/obdclass/llog_cat.c index 3984445f8442..c63b720172b4 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_cat.c +++ b/drivers/staging/lustre/lustre/obdclass/llog_cat.c @@ -62,8 +62,10 @@ * This takes extra reference on llog_handle via llog_handle_get() and require * this reference to be put by caller using llog_handle_put() */ -int llog_cat_id2handle(const struct lu_env *env, struct llog_handle *cathandle, - struct llog_handle **res, struct llog_logid *logid) +static int llog_cat_id2handle(const struct lu_env *env, + struct llog_handle *cathandle, + struct llog_handle **res, + struct llog_logid *logid) { struct llog_handle *loghandle; int rc = 0; @@ -189,10 +191,10 @@ static int llog_cat_process_cb(const struct lu_env *env, return rc; } -int llog_cat_process_or_fork(const struct lu_env *env, - struct llog_handle *cat_llh, - llog_cb_t cb, void *data, int startcat, - int startidx, bool fork) +static int llog_cat_process_or_fork(const struct lu_env *env, + struct llog_handle *cat_llh, + llog_cb_t cb, void *data, int startcat, + int startidx, bool fork) { struct llog_process_data d; struct llog_log_hdr *llh = cat_llh->lgh_hdr; @@ -228,7 +230,6 @@ int llog_cat_process_or_fork(const struct lu_env *env, return rc; } -EXPORT_SYMBOL(llog_cat_process_or_fork); int llog_cat_process(const struct lu_env *env, struct llog_handle *cat_llh, llog_cb_t cb, void *data, int startcat, int startidx) diff --git a/drivers/staging/lustre/lustre/obdclass/llog_internal.h b/drivers/staging/lustre/lustre/obdclass/llog_internal.h index 5dff6170876f..b9fe4b01c690 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_internal.h +++ b/drivers/staging/lustre/lustre/obdclass/llog_internal.h @@ -66,8 +66,6 @@ void llog_info_fini(void); void llog_handle_get(struct llog_handle *loghandle); void llog_handle_put(struct llog_handle *loghandle); -int llog_cat_id2handle(const struct lu_env *env, struct llog_handle *cathandle, - struct llog_handle **res, struct llog_logid *logid); int class_config_dump_handler(const struct lu_env *env, struct llog_handle *handle, struct llog_rec_hdr *rec, void *data); From fcdf51c179d50e71ce9e5a11d87c32baef3c1004 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:05 +0530 Subject: [PATCH 1280/2431] Staging: lustre: ptlrpc: pack_generic: Declare local functions as static Declare lustre_swab_ldlm_resource_desc, lustre_swab_obdo, lustre_swab_ldlm_res_id, lustre_swab_ldlm_policy_data as static since they are used only in this particular file. Also remove the corresponding declarations from header file. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre/lustre_idl.h | 8 -------- drivers/staging/lustre/lustre/ptlrpc/pack_generic.c | 12 ++++-------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index e629ca391201..c4d6c56fc7df 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -2679,8 +2679,6 @@ struct ldlm_res_id { #define PLDLMRES(res) (res)->lr_name.name[0], (res)->lr_name.name[1], \ (res)->lr_name.name[2], (res)->lr_name.name[3] -void lustre_swab_ldlm_res_id(struct ldlm_res_id *id); - static inline int ldlm_res_eq(const struct ldlm_res_id *res0, const struct ldlm_res_id *res1) { @@ -2756,8 +2754,6 @@ typedef union { struct ldlm_inodebits l_inodebits; } ldlm_wire_policy_data_t; -void lustre_swab_ldlm_policy_data(ldlm_wire_policy_data_t *d); - union ldlm_gl_desc { struct ldlm_gl_lquota_desc lquota_desc; }; @@ -2776,8 +2772,6 @@ struct ldlm_resource_desc { struct ldlm_res_id lr_name; }; -void lustre_swab_ldlm_resource_desc(struct ldlm_resource_desc *r); - struct ldlm_lock_desc { struct ldlm_resource_desc l_resource; ldlm_mode_t l_req_mode; @@ -3317,8 +3311,6 @@ static inline void lustre_get_wire_obdo(struct obd_connect_data *ocd, } } -void lustre_swab_obdo(struct obdo *o); - /* request structure for OST's */ struct ost_body { struct obdo oa; diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index 23cf1b0fa9b9..973ff8ddb0c9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -1501,7 +1501,7 @@ void lustre_swab_connect(struct obd_connect_data *ocd) CLASSERT(offsetof(typeof(*ocd), paddingF) != 0); } -void lustre_swab_obdo(struct obdo *o) +static void lustre_swab_obdo(struct obdo *o) { __swab64s(&o->o_valid); lustre_swab_ost_id(&o->o_oi); @@ -1533,7 +1533,6 @@ void lustre_swab_obdo(struct obdo *o) CLASSERT(offsetof(typeof(*o), o_padding_6) != 0); } -EXPORT_SYMBOL(lustre_swab_obdo); void lustre_swab_obd_statfs(struct obd_statfs *os) { @@ -1941,16 +1940,15 @@ void lustre_swab_lov_user_md_objects(struct lov_user_ost_data *lod, } EXPORT_SYMBOL(lustre_swab_lov_user_md_objects); -void lustre_swab_ldlm_res_id(struct ldlm_res_id *id) +static void lustre_swab_ldlm_res_id(struct ldlm_res_id *id) { int i; for (i = 0; i < RES_NAME_SIZE; i++) __swab64s(&id->name[i]); } -EXPORT_SYMBOL(lustre_swab_ldlm_res_id); -void lustre_swab_ldlm_policy_data(ldlm_wire_policy_data_t *d) +static void lustre_swab_ldlm_policy_data(ldlm_wire_policy_data_t *d) { /* the lock data is a union and the first two fields are always an * extent so it's ok to process an LDLM_EXTENT and LDLM_FLOCK lock @@ -1961,7 +1959,6 @@ void lustre_swab_ldlm_policy_data(ldlm_wire_policy_data_t *d) __swab64s(&d->l_flock.lfw_owner); __swab32s(&d->l_flock.lfw_pid); } -EXPORT_SYMBOL(lustre_swab_ldlm_policy_data); void lustre_swab_ldlm_intent(struct ldlm_intent *i) { @@ -1969,13 +1966,12 @@ void lustre_swab_ldlm_intent(struct ldlm_intent *i) } EXPORT_SYMBOL(lustre_swab_ldlm_intent); -void lustre_swab_ldlm_resource_desc(struct ldlm_resource_desc *r) +static void lustre_swab_ldlm_resource_desc(struct ldlm_resource_desc *r) { __swab32s(&r->lr_type); CLASSERT(offsetof(typeof(*r), lr_padding) != 0); lustre_swab_ldlm_res_id(&r->lr_name); } -EXPORT_SYMBOL(lustre_swab_ldlm_resource_desc); static void lustre_swab_ldlm_lock_desc(struct ldlm_lock_desc *l) { From 9dd7d427ab6e26e68d9c245b579a0acde8b671ee Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:06 +0530 Subject: [PATCH 1281/2431] Staging: lustre: ptlrpc: import: Declare deuuidify as static Declare function deuuidify as static since it is used only in this particular file.Also remove the corresponding declaration from header files. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_net.h | 2 -- drivers/staging/lustre/lustre/ptlrpc/import.c | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 51a4e64e56a2..b88c971fd32f 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2523,8 +2523,6 @@ int ptlrpc_connect_import(struct obd_import *imp); int ptlrpc_init_import(struct obd_import *imp); int ptlrpc_disconnect_import(struct obd_import *imp, int noclose); int ptlrpc_import_recovery_state_machine(struct obd_import *imp); -void deuuidify(char *uuid, const char *prefix, char **uuid_start, - int *uuid_len); /* ptlrpc/pack_generic.c */ int ptlrpc_reconnect_import(struct obd_import *imp); diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 1ac265dfce2f..5aaf42f2631d 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -128,7 +128,8 @@ int ptlrpc_init_import(struct obd_import *imp) EXPORT_SYMBOL(ptlrpc_init_import); #define UUID_STR "_UUID" -void deuuidify(char *uuid, const char *prefix, char **uuid_start, int *uuid_len) +static void deuuidify(char *uuid, const char *prefix, char **uuid_start, + int *uuid_len) { *uuid_start = !prefix || strncmp(uuid, prefix, strlen(prefix)) ? uuid : uuid + strlen(prefix); From 230a8da1c5229fbf0824542987b8febb367a5a14 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:07 +0530 Subject: [PATCH 1282/2431] Staging: lustre: ptlrpc: service: Declare local functions as static Declare ptlrpc_server_drop_request and ptlrpc_stop_all_threads as static since they are used only in this particular file.Also remove the corresponding declaration from header files. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_net.h | 2 -- drivers/staging/lustre/lustre/ptlrpc/service.c | 5 ++--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index b88c971fd32f..93a039dffcc9 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2502,12 +2502,10 @@ struct ptlrpc_service *ptlrpc_register_service( struct ptlrpc_service_conf *conf, struct kset *parent, struct dentry *debugfs_entry); -void ptlrpc_stop_all_threads(struct ptlrpc_service *svc); int ptlrpc_start_threads(struct ptlrpc_service *svc); int ptlrpc_unregister_service(struct ptlrpc_service *service); int liblustre_check_services(void *arg); -void ptlrpc_server_drop_request(struct ptlrpc_request *req); int ptlrpc_hr_init(void); void ptlrpc_hr_fini(void); diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 44fde0bae632..01313612aef2 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -715,7 +715,7 @@ static void ptlrpc_server_free_request(struct ptlrpc_request *req) * drop a reference count of the request. if it reaches 0, we either * put it into history list, or free it immediately. */ -void ptlrpc_server_drop_request(struct ptlrpc_request *req) +static void ptlrpc_server_drop_request(struct ptlrpc_request *req) { struct ptlrpc_request_buffer_desc *rqbd = req->rq_rqbd; struct ptlrpc_service_part *svcpt = rqbd->rqbd_svcpt; @@ -2327,7 +2327,7 @@ static void ptlrpc_svcpt_stop_threads(struct ptlrpc_service_part *svcpt) /** * Stops all threads of a particular service \a svc */ -void ptlrpc_stop_all_threads(struct ptlrpc_service *svc) +static void ptlrpc_stop_all_threads(struct ptlrpc_service *svc) { struct ptlrpc_service_part *svcpt; int i; @@ -2337,7 +2337,6 @@ void ptlrpc_stop_all_threads(struct ptlrpc_service *svc) ptlrpc_svcpt_stop_threads(svcpt); } } -EXPORT_SYMBOL(ptlrpc_stop_all_threads); int ptlrpc_start_threads(struct ptlrpc_service *svc) { From b438000683c91b8c30f889a25ce01868dbc161bc Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:08 +0530 Subject: [PATCH 1283/2431] Staging: lustre: obdclass: obdo: Declare iattr_from_obdo as static Declare iattr_from_obdo as static since it is used only in this particular file.Also remove the corresponding declaration from header file. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_class.h | 1 - drivers/staging/lustre/lustre/obdclass/obdo.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 648132a75cea..82f1a2670928 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -271,7 +271,6 @@ struct obdo; void obdo_refresh_inode(struct inode *dst, struct obdo *src, u32 valid); void obdo_to_ioobj(struct obdo *oa, struct obd_ioobj *ioobj); -void iattr_from_obdo(struct iattr *attr, struct obdo *oa, u32 valid); void md_from_obdo(struct md_op_data *op_data, struct obdo *oa, u32 valid); #define OBT(dev) (dev)->obd_type diff --git a/drivers/staging/lustre/lustre/obdclass/obdo.c b/drivers/staging/lustre/lustre/obdclass/obdo.c index 1a950fb8e769..75e1deadddd9 100644 --- a/drivers/staging/lustre/lustre/obdclass/obdo.c +++ b/drivers/staging/lustre/lustre/obdclass/obdo.c @@ -127,7 +127,7 @@ void obdo_to_ioobj(struct obdo *oa, struct obd_ioobj *ioobj) } EXPORT_SYMBOL(obdo_to_ioobj); -void iattr_from_obdo(struct iattr *attr, struct obdo *oa, u32 valid) +static void iattr_from_obdo(struct iattr *attr, struct obdo *oa, u32 valid) { valid &= oa->o_valid; @@ -174,7 +174,6 @@ void iattr_from_obdo(struct iattr *attr, struct obdo *oa, u32 valid) attr->ia_valid |= ATTR_GID; } } -EXPORT_SYMBOL(iattr_from_obdo); void md_from_obdo(struct md_op_data *op_data, struct obdo *oa, u32 valid) { From 137e37d0edaec1c6d08159e06253c1057f281182 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Mon, 5 Oct 2015 19:50:50 +0530 Subject: [PATCH 1284/2431] staging: vt6655: Remove true comparison Remove comparison to true in if statement. Problem found using checkpatch.pl CHECK: Using comparison to true is error prone Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index ecbe94f41e22..f842be64a139 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -428,7 +428,7 @@ bool CARDbRadioPowerOff(struct vnt_private *pDevice) { bool bResult = true; - if (pDevice->bRadioOff == true) + if (pDevice->bRadioOff) return true; switch (pDevice->byRFType) { From b3845d02395ae0800829beed9f199ec4648a750e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 6 Oct 2015 00:40:16 +0530 Subject: [PATCH 1285/2431] staging: rtl8712: Add space around '+' Add space around operator '+'. Problem found using checkpatch.pl CHECK: spaces preferred around that '+' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/hal_init.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 0a1c6313e781..601d8c63e0f0 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -122,15 +122,15 @@ static void fill_fwpriv(struct _adapter *padapter, struct fw_priv *pfwpriv) static void update_fwhdr(struct fw_hdr *pfwhdr, const u8 *pmappedfw) { pfwhdr->signature = le16_to_cpu(*(u16 *)pmappedfw); - pfwhdr->version = le16_to_cpu(*(u16 *)(pmappedfw+2)); + pfwhdr->version = le16_to_cpu(*(u16 *)(pmappedfw + 2)); /* define the size of boot loader */ - pfwhdr->dmem_size = le32_to_cpu(*(uint *)(pmappedfw+4)); + pfwhdr->dmem_size = le32_to_cpu(*(uint *)(pmappedfw + 4)); /* define the size of FW in IMEM */ - pfwhdr->img_IMEM_size = le32_to_cpu(*(uint *)(pmappedfw+8)); + pfwhdr->img_IMEM_size = le32_to_cpu(*(uint *)(pmappedfw + 8)); /* define the size of FW in SRAM */ - pfwhdr->img_SRAM_size = le32_to_cpu(*(uint *)(pmappedfw+12)); + pfwhdr->img_SRAM_size = le32_to_cpu(*(uint *)(pmappedfw + 12)); /* define the size of DMEM variable */ - pfwhdr->fw_priv_sz = le32_to_cpu(*(uint *)(pmappedfw+16)); + pfwhdr->fw_priv_sz = le32_to_cpu(*(uint *)(pmappedfw + 16)); } static u8 chk_fwhdr(struct fw_hdr *pfwhdr, u32 ulfilelength) @@ -230,7 +230,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) 0x0000ffff); memcpy(ppayload, ptr, dump_emem_sz); r8712_write_mem(padapter, RTL8712_DMA_VOQ, - dump_emem_sz+TXDESC_SIZE, (u8 *)ptx_desc); + dump_emem_sz + TXDESC_SIZE, (u8 *)ptx_desc); ptr += dump_emem_sz; emem_sz -= dump_emem_sz; } while (emem_sz > 0); @@ -252,7 +252,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) goto exit_fail; tmp8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN+1, tmp8|BIT(2)); + r8712_write8(padapter, SYS_FUNC_EN + 1, tmp8|BIT(2)); tmp8_a = r8712_read8(padapter, SYS_FUNC_EN + 1); if (tmp8_a != (tmp8|BIT(2))) goto exit_fail; @@ -362,20 +362,20 @@ uint rtl8712_hal_deinit(struct _adapter *padapter) /* Turn off BB */ msleep(20); /* Turn off MAC */ - r8712_write8(padapter, SYS_CLKR+1, 0x38); /* Switch Control Path */ - r8712_write8(padapter, SYS_FUNC_EN+1, 0x70); + r8712_write8(padapter, SYS_CLKR + 1, 0x38); /* Switch Control Path */ + r8712_write8(padapter, SYS_FUNC_EN + 1, 0x70); r8712_write8(padapter, PMC_FSM, 0x06); /* Enable Loader Data Keep */ r8712_write8(padapter, SYS_ISO_CTRL, 0xF9); /* Isolation signals from * CORE, PLL */ - r8712_write8(padapter, SYS_ISO_CTRL+1, 0xe8); /* Enable EFUSE 1.2V */ + r8712_write8(padapter, SYS_ISO_CTRL + 1, 0xe8); /* Enable EFUSE 1.2V */ r8712_write8(padapter, AFE_PLL_CTRL, 0x00); /* Disable AFE PLL. */ r8712_write8(padapter, LDOA15_CTRL, 0x54); /* Disable A15V */ - r8712_write8(padapter, SYS_FUNC_EN+1, 0x50); /* Disable E-Fuse 1.2V */ + r8712_write8(padapter, SYS_FUNC_EN + 1, 0x50); /* Disable E-Fuse 1.2V */ r8712_write8(padapter, LDOV12D_CTRL, 0x24); /* Disable LDO12(for CE) */ r8712_write8(padapter, AFE_MISC, 0x30); /* Disable AFE BG&MB */ /* Option for Disable 1.6V LDO. */ r8712_write8(padapter, SPS0_CTRL, 0x56); /* Disable 1.6V LDO */ - r8712_write8(padapter, SPS0_CTRL+1, 0x43); /* Set SW PFM */ + r8712_write8(padapter, SPS0_CTRL + 1, 0x43); /* Set SW PFM */ return _SUCCESS; } From 7ab4609a5dce8816166a2d46c31c603db6edda1a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 6 Oct 2015 00:44:42 +0530 Subject: [PATCH 1286/2431] staging: rtl8712: Add spaces around '|' Add space around operator '|'. Problem found using checkpatch.pl CHECK: spaces preferred around that '|' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/hal_init.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 601d8c63e0f0..425c2b1438e5 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -246,15 +246,15 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) /* 3.Enable CPU */ tmp8 = r8712_read8(padapter, SYS_CLKR); - r8712_write8(padapter, SYS_CLKR, tmp8|BIT(2)); + r8712_write8(padapter, SYS_CLKR, tmp8 | BIT(2)); tmp8_a = r8712_read8(padapter, SYS_CLKR); - if (tmp8_a != (tmp8|BIT(2))) + if (tmp8_a != (tmp8 | BIT(2))) goto exit_fail; tmp8 = r8712_read8(padapter, SYS_FUNC_EN + 1); - r8712_write8(padapter, SYS_FUNC_EN + 1, tmp8|BIT(2)); + r8712_write8(padapter, SYS_FUNC_EN + 1, tmp8 | BIT(2)); tmp8_a = r8712_read8(padapter, SYS_FUNC_EN + 1); - if (tmp8_a != (tmp8|BIT(2))) + if (tmp8_a != (tmp8 | BIT(2))) goto exit_fail; r8712_read32(padapter, TCR); @@ -335,7 +335,7 @@ uint rtl8712_hal_init(struct _adapter *padapter) netdev_info(padapter->pnetdev, "2 RCR=0x%x\n", r8712_read32(padapter, RCR)); val32 = r8712_read32(padapter, RCR); - r8712_write32(padapter, RCR, (val32|BIT(25))); /* Append PHY status */ + r8712_write32(padapter, RCR, (val32 | BIT(25))); /* Append PHY status */ val32 = 0; val32 = r8712_read32(padapter, 0x10250040); r8712_write32(padapter, 0x10250040, (val32&0x00FFFFFF)); From 335b9efa7265d56890cc8ed3bafd78c86c33e664 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 6 Oct 2015 00:48:52 +0530 Subject: [PATCH 1287/2431] staging: rtl8712: Add space around '&' Add space around operator '&'. Problem found using checkpatch.pl CHECK: spaces preferred around that '&' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/hal_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 425c2b1438e5..469c5662c3bb 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -278,7 +278,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) } /* 5.Download DMEM code size and Load EMEM Code Section */ memset(ptx_desc, 0, TXDESC_SIZE); - ptx_desc->txdw0 |= cpu_to_le32(fwhdr.fw_priv_sz&0x0000ffff); + ptx_desc->txdw0 |= cpu_to_le32(fwhdr.fw_priv_sz & 0x0000ffff); ptx_desc->txdw0 |= cpu_to_le32(BIT(28)); memcpy(ppayload, &fwhdr.fwpriv, fwhdr.fw_priv_sz); r8712_write_mem(padapter, RTL8712_DMA_VOQ, @@ -338,7 +338,7 @@ uint rtl8712_hal_init(struct _adapter *padapter) r8712_write32(padapter, RCR, (val32 | BIT(25))); /* Append PHY status */ val32 = 0; val32 = r8712_read32(padapter, 0x10250040); - r8712_write32(padapter, 0x10250040, (val32&0x00FFFFFF)); + r8712_write32(padapter, 0x10250040, (val32 & 0x00FFFFFF)); /* for usb rx aggregation */ r8712_write8(padapter, 0x102500B5, r8712_read8(padapter, 0x102500B5) | BIT(0)); /* page = 128bytes */ From 29b1b61435cd3e2890883b218a4c96c7df81f3c5 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Tue, 6 Oct 2015 14:40:58 -0700 Subject: [PATCH 1288/2431] staging: rtl8712: Move constant to right of test or replace with "!" Move constant to the right side of comparison operator or replace equality operator (==) with the unary negation operator (!) if the comparison is to zero. Addesses multiple instances of the checkpatch.pl warning: WARNING: Comparisons should place the constant on the right side of the test Signed-off-by: Alison Schofield Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 8591d9399f11..57ec8dfacc8b 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -114,7 +114,7 @@ static inline void handle_pairwise_key(struct sta_info *psta, static inline void handle_group_key(struct ieee_param *param, struct _adapter *padapter) { - if (0 < param->u.crypt.idx && + if (param->u.crypt.idx > 0 && param->u.crypt.idx < 3) { /* group key idx is 1 or 2 */ memcpy(padapter->securitypriv.XGrpKey[param->u.crypt. @@ -931,7 +931,7 @@ static int r871x_wx_set_priv(struct net_device *dev, if (IS_ERR(ext)) return PTR_ERR(ext); - if (0 == strcasecmp(ext, "RSSI")) { + if (!strcasecmp(ext, "RSSI")) { /*Return received signal strength indicator in -db for */ /* current AP */ /* Rssi xx */ @@ -948,7 +948,7 @@ static int r871x_wx_set_priv(struct net_device *dev, } else { sprintf(ext, "OK"); } - } else if (0 == strcasecmp(ext, "LINKSPEED")) { + } else if (!strcasecmp(ext, "LINKSPEED")) { /*Return link speed in MBPS */ /*LinkSpeed xx */ union iwreq_data wrqd; @@ -956,30 +956,30 @@ static int r871x_wx_set_priv(struct net_device *dev, int mbps; ret_inner = r8711_wx_get_rate(dev, info, &wrqd, extra); - if (0 != ret_inner) + if (ret_inner != 0) mbps = 0; else mbps = wrqd.bitrate.value / 1000000; sprintf(ext, "LINKSPEED %d", mbps); - } else if (0 == strcasecmp(ext, "MACADDR")) { + } else if (!strcasecmp(ext, "MACADDR")) { /*Return mac address of the station */ /* Macaddr = xx:xx:xx:xx:xx:xx */ sprintf(ext, "MACADDR = %pM", dev->dev_addr); - } else if (0 == strcasecmp(ext, "SCAN-ACTIVE")) { + } else if (!strcasecmp(ext, "SCAN-ACTIVE")) { /*Set scan type to active */ /*OK if successful */ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; pmlmepriv->passive_mode = 1; sprintf(ext, "OK"); - } else if (0 == strcasecmp(ext, "SCAN-PASSIVE")) { + } else if (!strcasecmp(ext, "SCAN-PASSIVE")) { /*Set scan type to passive */ /*OK if successful */ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; pmlmepriv->passive_mode = 0; sprintf(ext, "OK"); - } else if (0 == strncmp(ext, "DCE-E", 5)) { + } else if (!strncmp(ext, "DCE-E", 5)) { /*Set scan type to passive */ /*OK if successful */ r8712_disconnectCtrlEx_cmd(padapter @@ -989,7 +989,7 @@ static int r871x_wx_set_priv(struct net_device *dev, , 5000 /*u32 firstStageTO */ ); sprintf(ext, "OK"); - } else if (0 == strncmp(ext, "DCE-D", 5)) { + } else if (!strncmp(ext, "DCE-D", 5)) { /*Set scan type to passive */ /*OK if successfu */ r8712_disconnectCtrlEx_cmd(padapter @@ -1428,7 +1428,7 @@ static int r8711_wx_get_rate(struct net_device *dev, if (ht_cap == true) { if (mcs_rate & 0x8000 /* MCS15 */ && - RTL8712_RF_2T2R == rf_type) + rf_type == RTL8712_RF_2T2R) max_rate = (bw_40MHz) ? ((short_GI) ? 300 : 270) : ((short_GI) ? 144 : 130); else /* default MCS7 */ From 2a1283606f5f83f975f4f1abb34242004110f959 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Wed, 7 Oct 2015 10:56:23 +0530 Subject: [PATCH 1289/2431] staging: rtl8712: Remove NULL comparison Remove NULL comparison by using '!' operator. Problem found using checkpatch.pl CHECK: Comparison to NULL could be written "!ptmpchar" Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/hal_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 469c5662c3bb..db0c1de8dc25 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -178,7 +178,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) fwhdr.img_IMEM_size : fwhdr.img_SRAM_size; maxlen += txdscp_sz; ptmpchar = kmalloc(maxlen + FWBUFF_ALIGN_SZ, GFP_ATOMIC); - if (ptmpchar == NULL) + if (!ptmpchar) return ret; ptx_desc = (struct tx_desc *)(ptmpchar + FWBUFF_ALIGN_SZ - From 8d2884ace7919eadcc220934052ba65baae986e2 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Wed, 7 Oct 2015 10:58:18 +0530 Subject: [PATCH 1290/2431] staging: rtl8712: Remove NULL comparison Remove NULL comparison by using '!' operator. Problem found using checkpatch.pl CHECK: Comparison to NULL could be written "!padapter->halpriv.hal_bus_init" Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/hal_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index db0c1de8dc25..15c6160fc32a 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -382,7 +382,7 @@ uint rtl8712_hal_deinit(struct _adapter *padapter) uint rtl871x_hal_init(struct _adapter *padapter) { padapter->hw_init_completed = false; - if (padapter->halpriv.hal_bus_init == NULL) + if (!padapter->halpriv.hal_bus_init) return _FAIL; if (padapter->halpriv.hal_bus_init(padapter) != _SUCCESS) return _FAIL; From 0c9968ef9b9df5fc9468a23c6a5b7456ccddb25f Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:13 +0530 Subject: [PATCH 1291/2431] Staging: rtl8712: drv_types.h:Coding style warnings fix for block comments This is patch to the drv_types.h file that fixes up following warning reported by checkpatch.pl : -Block comments use * on subsequent lines -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/drv_types.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8712/drv_types.h b/drivers/staging/rtl8712/drv_types.h index e62543d22b86..3d64feeb80e7 100644 --- a/drivers/staging/rtl8712/drv_types.h +++ b/drivers/staging/rtl8712/drv_types.h @@ -23,11 +23,12 @@ * Larry Finger * ******************************************************************************/ -/*--------------------------------------------------------------------- - - For type defines and data structure defines - ------------------------------------------------------------------------*/ +/* --------------------------------------------------------------------- + * + * For type defines and data structure defines + * + * --------------------------------------------------------------------- + */ #ifndef __DRV_TYPES_H__ #define __DRV_TYPES_H__ From 4fd8cba1407b3432bc3ecc26c45bf43a1060d2e7 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:15 +0530 Subject: [PATCH 1292/2431] Staging: rtl8712: ieee80211.c: Coding style warnings fix for block comments This is patch to the ieee80211.c file that fixes up following warning reported by checkpatch.pl : -Block comments use * on subsequent lines -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/ieee80211.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8712/ieee80211.c b/drivers/staging/rtl8712/ieee80211.c index c5527c1ccaa6..261a97304dfe 100644 --- a/drivers/staging/rtl8712/ieee80211.c +++ b/drivers/staging/rtl8712/ieee80211.c @@ -107,9 +107,10 @@ u8 *r8712_set_ie(u8 *pbuf, sint index, uint len, u8 *source, uint *frlen) return pbuf + len + 2; } -/*---------------------------------------------------------------------------- -index: the information element id index, limit is the limit for search ------------------------------------------------------------------------------*/ +/* --------------------------------------------------------------------------- + * index: the information element id index, limit is the limit for search + * --------------------------------------------------------------------------- + */ u8 *r8712_get_ie(u8 *pbuf, sint index, sint *len, sint limit) { sint tmp, i; From 652199cc2850b8ada082be3d856605aeb59b22b0 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:16 +0530 Subject: [PATCH 1293/2431] Staging: rtl8712: ieee80211.h: Coding style warnings fix for block comments This is patch to the ieee80211.h file that fixes up following warning reported by checkpatch.pl : -Block comments use * on subsequent lines -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/ieee80211.h | 48 ++++++++++++++++------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/drivers/staging/rtl8712/ieee80211.h b/drivers/staging/rtl8712/ieee80211.h index 6e813a9c1aa2..d374824c4f33 100644 --- a/drivers/staging/rtl8712/ieee80211.h +++ b/drivers/staging/rtl8712/ieee80211.h @@ -120,12 +120,13 @@ struct ieee_param { #define IEEE80211_DATA_LEN 2304 /* Maximum size for the MA-UNITDATA primitive, 802.11 standard section - 6.2.1.1.2. - - The figure in section 7.1.2 suggests a body size of up to 2312 - bytes is allowed, which is a bit confusing, I suspect this - represents the 2304 bytes of real data, plus a possible 8 bytes of - WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) */ + * 6.2.1.1.2. + * + * The figure in section 7.1.2 suggests a body size of up to 2312 + * bytes is allowed, which is a bit confusing, I suspect this + * represents the 2304 bytes of real data, plus a possible 8 bytes of + * WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) + */ #define IEEE80211_HLEN 30 #define IEEE80211_FRAME_LEN (IEEE80211_DATA_LEN + IEEE80211_HLEN) @@ -405,7 +406,8 @@ struct ieee80211_snap_hdr { /* NOTE: This data is for statistical purposes; not all hardware provides this * information for frames received. Not setting these will not cause - * any adverse affects. */ + * any adverse affects. + */ struct ieee80211_rx_stats { s8 rssi; u8 signal; @@ -420,7 +422,8 @@ struct ieee80211_rx_stats { /* IEEE 802.11 requires that STA supports concurrent reception of at least * three fragmented frames. This define can be increased to support more * concurrent frames, but it should be noted that each entry can consume about - * 2 kB of RAM and increasing cache size will slow down frame reassembly. */ + * 2 kB of RAM and increasing cache size will slow down frame reassembly. + */ #define IEEE80211_FRAG_CACHE_LEN 4 struct ieee80211_frag_entry { @@ -510,19 +513,19 @@ struct ieee80211_security { } __packed; /* - - 802.11 data frame from AP - - ,-------------------------------------------------------------------. -Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 | - |------|------|---------|---------|---------|------|---------|------| -Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | frame | fcs | - | | tion | (BSSID) | | | ence | data | | - `-------------------------------------------------------------------' - -Total: 28-2340 bytes - -*/ + * + * 802.11 data frame from AP + * + * ,-------------------------------------------------------------------. + * Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 | + * |------|------|---------|---------|---------|------|---------|------| + * Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | frame | fcs | + * | | tion | (BSSID) | | | ence | data | | + * `-------------------------------------------------------------------' + * + * Total: 28-2340 bytes + * + */ struct ieee80211_header_data { u16 frame_ctl; @@ -628,7 +631,8 @@ struct ieee80211_txb { /* MAX_RATES_LENGTH needs to be 12. The spec says 8, and many APs * only use 8, and then use extended rates for the remaining supported * rates. Other APs, however, stick all of their supported rates on the - * main rates information element... */ + * main rates information element... + */ #define MAX_RATES_LENGTH ((u8)12) #define MAX_RATES_EX_LENGTH ((u8)16) #define MAX_NETWORK_COUNT 128 From 852681eb4a4356859e7c99551bbdccebb7ce1b53 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:18 +0530 Subject: [PATCH 1294/2431] Staging: rtl8712: os_intfs.c : Coding style warning fix for block comment This is patch to the os_intfs.c file that fixes up following warning reported by checkpatch.pl : -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/os_intfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 5d551a1ba3dc..f34a9635217b 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -366,7 +366,8 @@ static void enable_video_mode(struct _adapter *padapter, int cbw40_value) if (cbw40_value) { /* if the driver supports the 40M bandwidth, - * we can enable the bit 9.*/ + * we can enable the bit 9. + */ intcmd |= 0x200; } r8712_fw_cmd(padapter, intcmd); From 61172e0c888b4f6b4608c22162df0cf23bd6e9ce Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:19 +0530 Subject: [PATCH 1295/2431] Staging: rtl8712: recv_linux.c: Coding style warning fix for block comment This is patch to the recv_linux.c file that fixes up following warning reported by checkpatch.pl : -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/recv_linux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/recv_linux.c b/drivers/staging/rtl8712/recv_linux.c index 4201ce776e0c..2f5460dbda8b 100644 --- a/drivers/staging/rtl8712/recv_linux.c +++ b/drivers/staging/rtl8712/recv_linux.c @@ -127,7 +127,8 @@ void r8712_recv_indicatepkt(struct _adapter *padapter, skb->protocol = eth_type_trans(skb, padapter->pnetdev); netif_rx(skb); precv_frame->u.hdr.pkt = NULL; /* pointers to NULL before - * r8712_free_recvframe() */ + * r8712_free_recvframe() + */ r8712_free_recvframe(precv_frame, pfree_recv_queue); return; _recv_indicatepkt_drop: From ed9c838a5d1e3a27acc7d1848cee4faa810225ff Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:20 +0530 Subject: [PATCH 1296/2431] Staging: rtl8712: rtl8712_cmd.c: Coding style warnings fix for block comments This is patch to the rtl8712_cmd.c file that fixes up following warning reported by checkpatch.pl : -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl8712_cmd.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index 007f0a3ab13d..b755ab4bd1d3 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -64,10 +64,12 @@ static void check_hw_pbc(struct _adapter *padapter) return; if (tmp1byte&HAL_8192S_HW_GPIO_WPS_BIT) { /* Here we only set bPbcPressed to true - * After trigger PBC, the variable will be set to false */ + * After trigger PBC, the variable will be set to false + */ DBG_8712("CheckPbcGPIO - PBC is pressed !!!!\n"); /* 0 is the default value and it means the application monitors - * the HW PBC doesn't provide its pid to driver. */ + * the HW PBC doesn't provide its pid to driver. + */ if (padapter->pid == 0) return; kill_pid(find_vpid(padapter->pid), SIGUSR1, 1); @@ -76,7 +78,8 @@ static void check_hw_pbc(struct _adapter *padapter) /* query rx phy status from fw. * Adhoc mode: beacon. - * Infrastructure mode: beacon , data. */ + * Infrastructure mode: beacon , data. + */ static void query_fw_rx_phy_status(struct _adapter *padapter) { u32 val32 = 0; @@ -257,7 +260,8 @@ static struct cmd_obj *cmd_hdl_filter(struct _adapter *padapter, /* Before set JoinBss_CMD to FW, driver must ensure FW is in * PS_MODE_ACTIVE. Directly write rpwm to radio on and assign * new pwr_mode to Driver, instead of use workitem to change - * state. */ + * state. + */ if (padapter->pwrctrlpriv.pwr_mode > PS_MODE_ACTIVE) { padapter->pwrctrlpriv.pwr_mode = PS_MODE_ACTIVE; _enter_pwrlock(&(padapter->pwrctrlpriv.lock)); From 602cac56ddee29603bf50278d4bb1d1b198687f0 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:21 +0530 Subject: [PATCH 1297/2431] Staging: rtl8712: rtl8712_cmdctrl_bitdef.h: Coding style warning fix for block comment This is patch to the rtl8712_cmdctrl_bitdef.h file that fixes up following warning reported by checkpatch.pl : -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h b/drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h index 8dffe101becf..b7dda903001f 100644 --- a/drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h +++ b/drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h @@ -21,7 +21,8 @@ #define __RTL8712_CMDCTRL_BITDEF_H__ /* - * 2. Command Control Registers (Offset: 0x0040 - 0x004F)*/ + * 2. Command Control Registers (Offset: 0x0040 - 0x004F) + */ /*--------------------------------------------------------------------------*/ /* 8192S (CMD) command register bits (Offset 0x40, 16 bits)*/ /*--------------------------------------------------------------------------*/ From 3d228d87fc35965f6f563f2b8111ef6c057f0702 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:22 +0530 Subject: [PATCH 1298/2431] Staging: rtl8712: rtl8712_gp_bitdef.h: Coding style warning fix for block comment This is patch to the rtl8712_gp_bitdef.h file that fixes up following warning reported by checkpatch.pl : -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl8712_gp_bitdef.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/rtl8712_gp_bitdef.h b/drivers/staging/rtl8712/rtl8712_gp_bitdef.h index 138ea453d9df..44c906097530 100644 --- a/drivers/staging/rtl8712/rtl8712_gp_bitdef.h +++ b/drivers/staging/rtl8712/rtl8712_gp_bitdef.h @@ -64,7 +64,8 @@ #define GPIOMUX_EN BIT(3) /* When this bit is set to "1", * GPIO PINs will switch to MAC - * GPIO Function*/ + * GPIO Function + */ #define GPIOSEL_GPIO 0 /* UART or JTAG or pure GPIO*/ #define GPIOSEL_PHYDBG 1 /* PHYDBG*/ #define GPIOSEL_BT 2 /* BT_coex*/ From cbe396fbacc7b9e877a97a394ce2cd4a50a74160 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:23 +0530 Subject: [PATCH 1299/2431] Staging: rtl8712: rtl8712_hal.h: Coding style warnings fix for block comments This is patch to the rtl8712_hal.h file that fixes up following warning reported by checkpatch.pl : -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl8712_hal.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8712/rtl8712_hal.h b/drivers/staging/rtl8712/rtl8712_hal.h index 4c51fa373b54..57d5d2db3c77 100644 --- a/drivers/staging/rtl8712/rtl8712_hal.h +++ b/drivers/staging/rtl8712/rtl8712_hal.h @@ -68,12 +68,14 @@ struct fw_priv { /*8-bytes alignment required*/ unsigned char signature_0; /*0x12: CE product, 0x92: IT product*/ unsigned char signature_1; /*0x87: CE product, 0x81: IT product*/ unsigned char hci_sel; /*0x81: PCI-AP, 01:PCIe, 02: 92S-U, 0x82: USB-AP, - * 0x12: 72S-U, 03:SDIO*/ + * 0x12: 72S-U, 03:SDIO + */ unsigned char chip_version; /*the same value as register value*/ unsigned char customer_ID_0; /*customer ID low byte*/ unsigned char customer_ID_1; /*customer ID high byte*/ unsigned char rf_config; /*0x11: 1T1R, 0x12: 1T2R, 0x92: 1T2R turbo, - * 0x22: 2T2R*/ + * 0x22: 2T2R + */ unsigned char usb_ep_num; /* 4: 4EP, 6: 6EP, 11: 11EP*/ /*--- long word 1 ----*/ unsigned char regulatory_class_0; /*regulatory class bit map 0*/ @@ -97,7 +99,8 @@ struct fw_priv { /*8-bytes alignment required*/ unsigned char qos_en; /*1: QoS enable*/ unsigned char bw_40MHz_en; /*1: 40MHz BW enable*/ unsigned char AMSDU2AMPDU_en; /*1: 4181 convert AMSDU to AMPDU, - * 0: disable*/ + * 0: disable + */ unsigned char AMPDU_en; /*1: 11n AMPDU enable*/ unsigned char rate_control_offload; /*1: FW offloads,0: driver handles*/ unsigned char aggregation_offload; /*1: FW offloads,0: driver handles*/ @@ -125,8 +128,9 @@ struct fw_priv { /*8-bytes alignment required*/ struct fw_hdr {/*8-byte alignment required*/ unsigned short signature; - unsigned short version; /*0x8000 ~ 0x8FFF for FPGA version, - *0x0000 ~ 0x7FFF for ASIC version,*/ + unsigned short version; /* 0x8000 ~ 0x8FFF for FPGA version, + * 0x0000 ~ 0x7FFF for ASIC version, + */ unsigned int dmem_size; /*define the size of boot loader*/ unsigned int img_IMEM_size; /*define the size of FW in IMEM*/ unsigned int img_SRAM_size; /*define the size of FW in SRAM*/ From 1df7e0a10b012b2e3652edcea3536aa10b48e0e9 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 6 Oct 2015 13:26:50 +0530 Subject: [PATCH 1300/2431] staging: vt6656: Remove space after opening brace Remove space after opening brace '{'. Problem found using checkpatch.pl CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/baseband.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c index 26b16772fc40..3bdbae80d40c 100644 --- a/drivers/staging/vt6656/baseband.c +++ b/drivers/staging/vt6656/baseband.c @@ -527,7 +527,6 @@ void vnt_set_short_slot_time(struct vnt_private *priv) void vnt_set_vga_gain_offset(struct vnt_private *priv, u8 data) { - vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0xE7, data); /* patch for 3253B0 Baseband with Cardbus module */ From 2136c81fd9e108c0ff6627e86d7ccdd8e4c7f586 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Wed, 7 Oct 2015 10:29:43 +0530 Subject: [PATCH 1301/2431] staging: vt6656: Remove space before closing brace Remove space before closing brace '}'. Problem found using checkpatch.pl CHECK: Blank lines aren't necessary before a close brace '}' Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/baseband.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c index 3bdbae80d40c..e5be261f2e69 100644 --- a/drivers/staging/vt6656/baseband.c +++ b/drivers/staging/vt6656/baseband.c @@ -810,7 +810,6 @@ void vnt_update_pre_ed_threshold(struct vnt_private *priv, int scanning) cr_206 = 0x38; } break; - } if (ed_inx == priv->bb_pre_ed_index && !scanning) From f34b77ec86ec15b3dfe4e82161d77ff96bf6666b Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Tue, 6 Oct 2015 11:35:19 +0300 Subject: [PATCH 1302/2431] staging: rdma: amso1100: remove label indentation Remove label indentation to follow kernel coding style Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/amso1100/c2.c | 4 ++-- drivers/staging/rdma/amso1100/c2_cq.c | 12 +++++------ drivers/staging/rdma/amso1100/c2_mm.c | 10 ++++----- drivers/staging/rdma/amso1100/c2_qp.c | 20 +++++++++--------- drivers/staging/rdma/amso1100/c2_rnic.c | 28 ++++++++++++------------- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/drivers/staging/rdma/amso1100/c2.c b/drivers/staging/rdma/amso1100/c2.c index 766a71ccefed..7f1e794a858c 100644 --- a/drivers/staging/rdma/amso1100/c2.c +++ b/drivers/staging/rdma/amso1100/c2.c @@ -675,11 +675,11 @@ static int c2_up(struct net_device *netdev) return 0; - bail1: +bail1: c2_rx_clean(c2_port); kfree(c2_port->rx_ring.start); - bail0: +bail0: pci_free_consistent(c2dev->pcidev, c2_port->mem_size, c2_port->mem, c2_port->dma); diff --git a/drivers/staging/rdma/amso1100/c2_cq.c b/drivers/staging/rdma/amso1100/c2_cq.c index 1b63185b4ad4..3ef881f2da0f 100644 --- a/drivers/staging/rdma/amso1100/c2_cq.c +++ b/drivers/staging/rdma/amso1100/c2_cq.c @@ -374,13 +374,13 @@ int c2_init_cq(struct c2_dev *c2dev, int entries, return 0; - bail3: +bail3: vq_repbuf_free(c2dev, reply); - bail2: +bail2: vq_req_free(c2dev, vq_req); - bail1: +bail1: c2_free_cq_buf(c2dev, &cq->mq); - bail0: +bail0: c2_free_mqsp(cq->mq.shared); return err; @@ -429,9 +429,9 @@ void c2_free_cq(struct c2_dev *c2dev, struct c2_cq *cq) reply = (struct c2wr_cq_destroy_rep *) (unsigned long) (vq_req->reply_msg); if (reply) vq_repbuf_free(c2dev, reply); - bail1: +bail1: vq_req_free(c2dev, vq_req); - bail0: +bail0: if (cq->is_kernel) { c2_free_cq_buf(c2dev, &cq->mq); } diff --git a/drivers/staging/rdma/amso1100/c2_mm.c b/drivers/staging/rdma/amso1100/c2_mm.c index 119c4f3d9791..25081e2913de 100644 --- a/drivers/staging/rdma/amso1100/c2_mm.c +++ b/drivers/staging/rdma/amso1100/c2_mm.c @@ -164,7 +164,7 @@ send_pbl_messages(struct c2_dev *c2dev, __be32 stag_index, err = c2_errno(reply); vq_repbuf_free(c2dev, reply); - bail0: +bail0: kfree(wr); return err; } @@ -304,11 +304,11 @@ c2_nsmr_register_phys_kern(struct c2_dev *c2dev, u64 *addr_list, return err; - bail2: +bail2: vq_repbuf_free(c2dev, reply); - bail1: +bail1: kfree(wr); - bail0: +bail0: vq_req_free(c2dev, vq_req); return err; } @@ -371,7 +371,7 @@ int c2_stag_dealloc(struct c2_dev *c2dev, u32 stag_index) err = c2_errno(reply); vq_repbuf_free(c2dev, reply); - bail0: +bail0: vq_req_free(c2dev, vq_req); return err; } diff --git a/drivers/staging/rdma/amso1100/c2_qp.c b/drivers/staging/rdma/amso1100/c2_qp.c index 86708dee58b1..e0a7aff0eb2a 100644 --- a/drivers/staging/rdma/amso1100/c2_qp.c +++ b/drivers/staging/rdma/amso1100/c2_qp.c @@ -240,7 +240,7 @@ int c2_qp_modify(struct c2_dev *c2dev, struct c2_qp *qp, spin_unlock_irqrestore(&qp->lock, flags); vq_repbuf_free(c2dev, reply); - bail0: +bail0: vq_req_free(c2dev, vq_req); pr_debug("%s:%d qp=%p, cur_state=%s\n", @@ -294,7 +294,7 @@ int c2_qp_set_read_limits(struct c2_dev *c2dev, struct c2_qp *qp, err = c2_errno(reply); vq_repbuf_free(c2dev, reply); - bail0: +bail0: vq_req_free(c2dev, vq_req); return err; } @@ -373,7 +373,7 @@ static int destroy_qp(struct c2_dev *c2dev, struct c2_qp *qp) spin_unlock_irqrestore(&qp->lock, flags); vq_repbuf_free(c2dev, reply); - bail0: +bail0: vq_req_free(c2dev, vq_req); return err; } @@ -554,19 +554,19 @@ int c2_alloc_qp(struct c2_dev *c2dev, return 0; - bail6: +bail6: iounmap(qp->sq_mq.peer); - bail5: +bail5: destroy_qp(c2dev, qp); - bail4: +bail4: vq_repbuf_free(c2dev, reply); - bail3: +bail3: vq_req_free(c2dev, vq_req); - bail2: +bail2: c2_free_mqsp(qp->rq_mq.shared); - bail1: +bail1: c2_free_mqsp(qp->sq_mq.shared); - bail0: +bail0: c2_free_qpn(c2dev, qp->qpn); return err; } diff --git a/drivers/staging/rdma/amso1100/c2_rnic.c b/drivers/staging/rdma/amso1100/c2_rnic.c index d2a6d961344b..d3c0f77767d9 100644 --- a/drivers/staging/rdma/amso1100/c2_rnic.c +++ b/drivers/staging/rdma/amso1100/c2_rnic.c @@ -261,9 +261,9 @@ int c2_add_addr(struct c2_dev *c2dev, __be32 inaddr, __be32 inmask) err = c2_errno(reply); vq_repbuf_free(c2dev, reply); - bail1: +bail1: kfree(wr); - bail0: +bail0: vq_req_free(c2dev, vq_req); return err; } @@ -323,9 +323,9 @@ int c2_del_addr(struct c2_dev *c2dev, __be32 inaddr, __be32 inmask) err = c2_errno(reply); vq_repbuf_free(c2dev, reply); - bail1: +bail1: kfree(wr); - bail0: +bail0: vq_req_free(c2dev, vq_req); return err; } @@ -378,9 +378,9 @@ static int c2_rnic_open(struct c2_dev *c2dev) c2dev->adapter_handle = reply->rnic_handle; - bail1: +bail1: vq_repbuf_free(c2dev, reply); - bail0: +bail0: vq_req_free(c2dev, vq_req); return err; } @@ -430,9 +430,9 @@ static int c2_rnic_close(struct c2_dev *c2dev) c2dev->adapter_handle = 0; - bail1: +bail1: vq_repbuf_free(c2dev, reply); - bail0: +bail0: vq_req_free(c2dev, vq_req); return err; } @@ -589,21 +589,21 @@ int c2_rnic_init(struct c2_dev *c2dev) c2_init_qp_table(c2dev); return 0; - bail5: +bail5: c2_rnic_close(c2dev); - bail4: +bail4: vq_term(c2dev); - bail3: +bail3: dma_free_coherent(&c2dev->pcidev->dev, c2dev->aeq.q_size * c2dev->aeq.msg_size, q2_pages, dma_unmap_addr(&c2dev->aeq, mapping)); - bail2: +bail2: dma_free_coherent(&c2dev->pcidev->dev, c2dev->rep_vq.q_size * c2dev->rep_vq.msg_size, q1_pages, dma_unmap_addr(&c2dev->rep_vq, mapping)); - bail1: +bail1: c2_free_mqsp_pool(c2dev, c2dev->kern_mqsp_pool); - bail0: +bail0: vfree(c2dev->qptr_array); return err; From f60c265159e832ae389f3ab1acf9343d9e86a19a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 7 Oct 2015 18:19:37 +0530 Subject: [PATCH 1303/2431] Staging: speakup: Use ARRAY_SIZE macro ARRAY_SIZE is more concise to use when the size of an array is divided by the size of its type or the size of its first element. Changes made using Coccinelle- @@ type T; T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/i18n.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/speakup/i18n.c b/drivers/staging/speakup/i18n.c index f061747546a6..12f880ed4ddf 100644 --- a/drivers/staging/speakup/i18n.c +++ b/drivers/staging/speakup/i18n.c @@ -389,7 +389,7 @@ static struct msg_group_t all_groups[] = { }, }; -static const int num_groups = sizeof(all_groups) / sizeof(struct msg_group_t); +static const int num_groups = ARRAY_SIZE(all_groups); char *spk_msg_get(enum msg_index_t index) { From 367e8560e8d7a62d96e9b1d644028a3816e04206 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Wed, 7 Oct 2015 22:06:55 +0200 Subject: [PATCH 1304/2431] Staging: fbtbt: Replace timespec with ktime_t struct timespec will overflow in year 2038, so replace it with ktime_t. And replace functions that use struct timespec, timespec_sub with ktime_sub. Also use monotonic time instead of real time, by replacing getnstimeofday with ktime_get, to be more robust against leap seconds and settimeofday() calls. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft-core.c | 32 ++++++++++-------------------- drivers/staging/fbtft/fbtft.h | 2 +- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index bfbf15c31d0f..deccb1d99251 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -346,8 +346,7 @@ static void fbtft_update_display(struct fbtft_par *par, unsigned start_line, unsigned end_line) { size_t offset, len; - struct timespec ts_start, ts_end, ts_fps, ts_duration; - long fps_ms, fps_us, duration_ms, duration_us; + ktime_t ts_start, ts_end; long fps, throughput; bool timeit = false; int ret = 0; @@ -355,7 +354,7 @@ static void fbtft_update_display(struct fbtft_par *par, unsigned start_line, if (unlikely(par->debug & (DEBUG_TIME_FIRST_UPDATE | DEBUG_TIME_EACH_UPDATE))) { if ((par->debug & DEBUG_TIME_EACH_UPDATE) || ((par->debug & DEBUG_TIME_FIRST_UPDATE) && !par->first_update_done)) { - getnstimeofday(&ts_start); + ts_start = ktime_get(); timeit = true; } } @@ -392,30 +391,21 @@ static void fbtft_update_display(struct fbtft_par *par, unsigned start_line, __func__); if (unlikely(timeit)) { - getnstimeofday(&ts_end); - if (par->update_time.tv_nsec == 0 && par->update_time.tv_sec == 0) { - par->update_time.tv_sec = ts_start.tv_sec; - par->update_time.tv_nsec = ts_start.tv_nsec; - } - ts_fps = timespec_sub(ts_start, par->update_time); - par->update_time.tv_sec = ts_start.tv_sec; - par->update_time.tv_nsec = ts_start.tv_nsec; - fps_ms = (ts_fps.tv_sec * 1000) + ((ts_fps.tv_nsec / 1000000) % 1000); - fps_us = (ts_fps.tv_nsec / 1000) % 1000; - fps = fps_ms * 1000 + fps_us; + ts_end = ktime_get(); + if (ktime_to_ns(par->update_time)) + par->update_time = ts_start; + + par->update_time = ts_start; + fps = ktime_us_delta(ts_start, par->update_time); fps = fps ? 1000000 / fps : 0; - ts_duration = timespec_sub(ts_end, ts_start); - duration_ms = (ts_duration.tv_sec * 1000) + ((ts_duration.tv_nsec / 1000000) % 1000); - duration_us = (ts_duration.tv_nsec / 1000) % 1000; - throughput = duration_ms * 1000 + duration_us; + throughput = ktime_us_delta(ts_end, ts_start); throughput = throughput ? (len * 1000) / throughput : 0; throughput = throughput * 1000 / 1024; dev_info(par->info->device, - "Display update: %ld kB/s (%ld.%.3ld ms), fps=%ld (%ld.%.3ld ms)\n", - throughput, duration_ms, duration_us, - fps, fps_ms, fps_us); + "Display update: %ld kB/s, fps=%ld\n", + throughput, fps); par->first_update_done = true; } } diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h index 6dd42b28d594..20e69f0b5cb0 100644 --- a/drivers/staging/fbtft/fbtft.h +++ b/drivers/staging/fbtft/fbtft.h @@ -246,7 +246,7 @@ struct fbtft_par { } gamma; unsigned long debug; bool first_update_done; - struct timespec update_time; + ktime_t update_time; bool bgr; void *extra; }; From 157da215b5312017889dc856e770c422db336aac Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 11:07:21 +0900 Subject: [PATCH 1305/2431] staging: wilc1000: remove pstrWFIDrv in host_int_set_mac_chnl_num This patch removes pstrWFIDrv variable in host_int_set_mac_chnl_num function. There is no need to make another variable to check if first arugment is NULL or not. It is able to use wfi_drv directly that is first argument of this function. Suggested-by: Greg Kroah-Hartman Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 39d72acf5375..47ccaa81b660 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5318,10 +5318,9 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel) { int result = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)wfi_drv; struct host_if_msg msg; - if (!pstrWFIDrv) { + if (!wfi_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } From 792fb25b1be8a61f623438abe40efcdbcb9597a3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 11:07:22 +0900 Subject: [PATCH 1306/2431] staging: wilc1000: return error code directly in host_int_set_mac_chnl_num There is no need to pass the error code to the variable 'result'. Just return the error directly when error occurs. Return 0 at the end of this function when error is not happened. Suggested-by: Julian Calaby Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 47ccaa81b660..b1aa7dd701f7 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5317,7 +5317,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, */ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel) { - int result = 0; + int result; struct host_if_msg msg; if (!wfi_drv) { @@ -5334,10 +5334,10 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel) result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { PRINT_ER("wilc mq send fail\n"); - result = -EINVAL; + return -EINVAL; } - return result; + return 0; } From 5c4008dba721a8e83f9ae8064b1add747ac33927 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 5 Oct 2015 13:50:44 +0900 Subject: [PATCH 1307/2431] staging: wilc1000: rename strHostIfRegisterFrame This patch renames strHostIfRegisterFrame to reg_frame to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b1aa7dd701f7..a43eee7e221d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -385,7 +385,7 @@ union message_body { struct get_mac_addr get_mac_info; struct ba_session_info session_info; struct remain_ch remain_on_ch; - struct reg_frame strHostIfRegisterFrame; + struct reg_frame reg_frame; char *pUserData; struct del_all_sta strHostIFDelAllSta; }; @@ -4185,7 +4185,7 @@ static int hostIFthread(void *pvArg) case HOST_IF_MSG_REGISTER_FRAME: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REGISTER_FRAME\n"); - Handle_RegisterFrame(msg.drvHandler, &msg.body.strHostIfRegisterFrame); + Handle_RegisterFrame(msg.drvHandler, &msg.body.reg_frame); break; case HOST_IF_MSG_LISTEN_TIMER_FIRED: @@ -6481,20 +6481,20 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe switch (u16FrameType) { case ACTION: PRINT_D(HOSTINF_DBG, "ACTION\n"); - msg.body.strHostIfRegisterFrame.u8Regid = ACTION_FRM_IDX; + msg.body.reg_frame.u8Regid = ACTION_FRM_IDX; break; case PROBE_REQ: PRINT_D(HOSTINF_DBG, "PROBE REQ\n"); - msg.body.strHostIfRegisterFrame.u8Regid = PROBE_REQ_IDX; + msg.body.reg_frame.u8Regid = PROBE_REQ_IDX; break; default: PRINT_D(HOSTINF_DBG, "Not valid frame type\n"); break; } - msg.body.strHostIfRegisterFrame.u16FrameType = u16FrameType; - msg.body.strHostIfRegisterFrame.bReg = bReg; + msg.body.reg_frame.u16FrameType = u16FrameType; + msg.body.reg_frame.bReg = bReg; msg.drvHandler = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From e60831e9749bd616512295d7d4b383a9a9dee129 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 5 Oct 2015 13:50:45 +0900 Subject: [PATCH 1308/2431] staging: wilc1000: rename pUserData This patch renames pUserData to data to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a43eee7e221d..a68bb52e50ed 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -386,7 +386,7 @@ union message_body { struct ba_session_info session_info; struct remain_ch remain_on_ch; struct reg_frame reg_frame; - char *pUserData; + char *data; struct del_all_sta strHostIFDelAllSta; }; @@ -4105,7 +4105,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_GET_STATISTICS: - Handle_GetStatistics(msg.drvHandler, (tstrStatistics *)msg.body.pUserData); + Handle_GetStatistics(msg.drvHandler, (tstrStatistics *)msg.body.data); break; case HOST_IF_MSG_GET_CHNL: @@ -5681,7 +5681,7 @@ s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatis memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_STATISTICS; - msg.body.pUserData = (char *)pstrStatistics; + msg.body.data = (char *)pstrStatistics; msg.drvHandler = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From b0c1e80e42d7505d16dca4b1bd992299030a12dd Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 5 Oct 2015 13:50:46 +0900 Subject: [PATCH 1309/2431] staging: wilc1000: rename strHostIFDelAllSta This patch renames strHostIFDelAllSta to del_all_sta_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a68bb52e50ed..28b616de7b92 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -387,7 +387,7 @@ union message_body { struct remain_ch remain_on_ch; struct reg_frame reg_frame; char *data; - struct del_all_sta strHostIFDelAllSta; + struct del_all_sta del_all_sta_info; }; /*! @@ -4206,7 +4206,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_DEL_ALL_STA: - Handle_DelAllSta(msg.drvHandler, &msg.body.strHostIFDelAllSta); + Handle_DelAllSta(msg.drvHandler, &msg.body.del_all_sta_info); break; default: @@ -6718,7 +6718,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; - struct del_all_sta *pstrDelAllStationMsg = &msg.body.strHostIFDelAllSta; + struct del_all_sta *pstrDelAllStationMsg = &msg.body.del_all_sta_info; u8 au8Zero_Buff[ETH_ALEN] = {0}; u32 i; u8 u8AssocNumb = 0; From ba1d1a695e90756f7bbb45e4e782bede43054c87 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:36 +0900 Subject: [PATCH 1310/2431] staging: wilc1000: rename tWILCpfScanResult This patch renames tWILCpfScanResult to wilc_scan_result. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 28b616de7b92..474f3dcf6e53 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -167,7 +167,7 @@ struct scan_attr { u8 u8ChnlListLen; u8 *pu8IEs; size_t IEsLen; - tWILCpfScanResult pfScanResult; + wilc_scan_result pfScanResult; void *pvUserArg; tstrHiddenNetwork strHiddenNetwork; }; @@ -5714,7 +5714,7 @@ s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatis s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, u8 u8ScanType, u8 *pu8ChnlFreqList, u8 u8ChnlListLen, const u8 *pu8IEs, - size_t IEsLen, tWILCpfScanResult ScanResult, + size_t IEsLen, wilc_scan_result ScanResult, void *pvUserArg, tstrHiddenNetwork *pstrHiddenNetwork) { s32 s32Error = 0; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index bc8acdebff89..c9ea34e17f5d 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -181,7 +181,7 @@ typedef enum { /*Scan callBack function definition*/ -typedef void (*tWILCpfScanResult)(tenuScanEvent, tstrNetworkInfo *, void *, void *); +typedef void (*wilc_scan_result)(tenuScanEvent, tstrNetworkInfo *, void *, void *); /*Connect callBack function definition*/ typedef void (*tWILCpfConnectResult)(tenuConnDisconnEvent, @@ -228,7 +228,7 @@ typedef struct _tstrHiddenNetwork { typedef struct { /* Scan user call back function */ - tWILCpfScanResult pfUserScanResult; + wilc_scan_result pfUserScanResult; /* User specific parameter to be delivered through the Scan User Callback function */ void *u32UserScanPvoid; @@ -872,7 +872,7 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd); s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, u8 u8ScanType, u8 *pu8ChnlFreqList, u8 u8ChnlListLen, const u8 *pu8IEs, - size_t IEsLen, tWILCpfScanResult ScanResult, + size_t IEsLen, wilc_scan_result ScanResult, void *pvUserArg, tstrHiddenNetwork *pstrHiddenNetwork); /** * @brief sets configuration wids values From 607db44794eec00bfd88616dfb30d793c23c3950 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:37 +0900 Subject: [PATCH 1311/2431] staging: wilc1000: remove typedef from tstrHiddenNetwork This patch removes typedef from the struct tstrHiddenNetwork. And, rename it to hidden_network. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 +++-- drivers/staging/wilc1000/host_interface.h | 8 ++++---- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 474f3dcf6e53..143a086c05b0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -169,7 +169,7 @@ struct scan_attr { size_t IEsLen; wilc_scan_result pfScanResult; void *pvUserArg; - tstrHiddenNetwork strHiddenNetwork; + struct hidden_network strHiddenNetwork; }; /*! @@ -5715,7 +5715,8 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, u8 u8ScanType, u8 *pu8ChnlFreqList, u8 u8ChnlListLen, const u8 *pu8IEs, size_t IEsLen, wilc_scan_result ScanResult, - void *pvUserArg, tstrHiddenNetwork *pstrHiddenNetwork) + void *pvUserArg, + struct hidden_network *pstrHiddenNetwork) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index c9ea34e17f5d..458b1e1d38ee 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -219,12 +219,11 @@ typedef struct _tstrHiddenNetworkInfo { } tstrHiddenNetworkInfo; -typedef struct _tstrHiddenNetwork { +struct hidden_network { /* MAX_SSID_LEN */ tstrHiddenNetworkInfo *pstrHiddenNetworkInfo; u8 u8ssidnum; - -} tstrHiddenNetwork; +}; typedef struct { /* Scan user call back function */ @@ -873,7 +872,8 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, u8 u8ScanType, u8 *pu8ChnlFreqList, u8 u8ChnlListLen, const u8 *pu8IEs, size_t IEsLen, wilc_scan_result ScanResult, - void *pvUserArg, tstrHiddenNetwork *pstrHiddenNetwork); + void *pvUserArg, + struct hidden_network *pstrHiddenNetwork); /** * @brief sets configuration wids values * @details diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 04838f1aadc6..f3720e7fa992 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -698,7 +698,7 @@ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) u32 i; s32 s32Error = 0; u8 au8ScanChanList[MAX_NUM_SCANNED_NETWORKS]; - tstrHiddenNetwork strHiddenNetwork; + struct hidden_network strHiddenNetwork; priv = wiphy_priv(wiphy); @@ -727,7 +727,7 @@ static int scan(struct wiphy *wiphy, struct cfg80211_scan_request *request) if (request->n_ssids >= 1) { - strHiddenNetwork.pstrHiddenNetworkInfo = kmalloc(request->n_ssids * sizeof(tstrHiddenNetwork), GFP_KERNEL); + strHiddenNetwork.pstrHiddenNetworkInfo = kmalloc(request->n_ssids * sizeof(struct hidden_network), GFP_KERNEL); strHiddenNetwork.u8ssidnum = request->n_ssids; From b6ab85fe61f7d436650197cb100f35971367cbdd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:38 +0900 Subject: [PATCH 1312/2431] staging: wilc1000: rename tWILCpfConnectResult This patch renames tWILCpfConnectResult to wilc_connect_result. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 143a086c05b0..1986271a3f2d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -189,7 +189,7 @@ struct connect_attr { u8 *pu8IEs; size_t IEsLen; u8 u8security; - tWILCpfConnectResult pfConnectResult; + wilc_connect_result pfConnectResult; void *pvUserArg; AUTHTYPE_T tenuAuth_type; u8 u8channel; @@ -4999,7 +4999,7 @@ s32 host_int_get_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ScanSource) s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, const u8 *pu8ssid, size_t ssidLen, const u8 *pu8IEs, size_t IEsLen, - tWILCpfConnectResult pfConnectResult, void *pvUserArg, + wilc_connect_result pfConnectResult, void *pvUserArg, u8 u8security, AUTHTYPE_T tenuAuth_type, u8 u8channel, void *pJoinParams) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 458b1e1d38ee..bed8f98019fb 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -184,7 +184,7 @@ typedef enum { typedef void (*wilc_scan_result)(tenuScanEvent, tstrNetworkInfo *, void *, void *); /*Connect callBack function definition*/ -typedef void (*tWILCpfConnectResult)(tenuConnDisconnEvent, +typedef void (*wilc_connect_result)(tenuConnDisconnEvent, tstrConnectInfo *, u8, tstrDisconnectNotifInfo *, @@ -245,7 +245,7 @@ typedef struct { u8 *pu8ConnReqIEs; size_t ConnReqIEsLen; /* Connect user call back function */ - tWILCpfConnectResult pfUserConnectResult; + wilc_connect_result pfUserConnectResult; bool IsHTCapable; /* User specific parameter to be delivered through the Connect User Callback function */ void *u32UserConnectPvoid; @@ -698,7 +698,7 @@ s32 host_int_get_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ScanSource); s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, const u8 *pu8ssid, size_t ssidLen, const u8 *pu8IEs, size_t IEsLen, - tWILCpfConnectResult pfConnectResult, void *pvUserArg, + wilc_connect_result pfConnectResult, void *pvUserArg, u8 u8security, AUTHTYPE_T tenuAuth_type, u8 u8channel, void *pJoinParams); From 841dfc428dc0fac52122644cf32f227ecb6f9e16 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:39 +0900 Subject: [PATCH 1313/2431] staging: wilc1000: remove typedef from AUTHTYPE_T This patch removes typedef from the enum AUTHTYPE_T. And, rename it to AUTHTYPE. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 6 +++--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan_if.h | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1986271a3f2d..38f1f5d0bdb8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -111,7 +111,7 @@ typedef struct _tstrHostIFwepAttr { u8 u8WepKeylen; u8 u8Wepidx; u8 u8mode; - AUTHTYPE_T tenuAuth_type; + enum AUTHTYPE tenuAuth_type; } tstrHostIFwepAttr; @@ -191,7 +191,7 @@ struct connect_attr { u8 u8security; wilc_connect_result pfConnectResult; void *pvUserArg; - AUTHTYPE_T tenuAuth_type; + enum AUTHTYPE tenuAuth_type; u8 u8channel; void *pJoinParams; }; @@ -4455,7 +4455,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, * @date 28 FEB 2013 * @version 1.0 */ -s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, AUTHTYPE_T tenuAuth_type) +s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, enum AUTHTYPE tenuAuth_type) { s32 s32Error = 0; @@ -5000,7 +5000,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, const u8 *pu8ssid, size_t ssidLen, const u8 *pu8IEs, size_t IEsLen, wilc_connect_result pfConnectResult, void *pvUserArg, - u8 u8security, AUTHTYPE_T tenuAuth_type, + u8 u8security, enum AUTHTYPE tenuAuth_type, u8 u8channel, void *pJoinParams) { diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index bed8f98019fb..779ff99aca2b 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -240,7 +240,7 @@ typedef struct { u8 *pu8bssid; u8 *pu8ssid; u8 u8security; - AUTHTYPE_T tenuAuth_type; + enum AUTHTYPE tenuAuth_type; size_t ssidLen; u8 *pu8ConnReqIEs; size_t ConnReqIEsLen; @@ -455,7 +455,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, * @date 28 Feb 2013 * @version 1.0 */ -s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, AUTHTYPE_T tenuAuth_type); +s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, enum AUTHTYPE tenuAuth_type); /** * @brief adds ptk Key @@ -699,7 +699,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, const u8 *pu8ssid, size_t ssidLen, const u8 *pu8IEs, size_t IEsLen, wilc_connect_result pfConnectResult, void *pvUserArg, - u8 u8security, AUTHTYPE_T tenuAuth_type, + u8 u8security, enum AUTHTYPE tenuAuth_type, u8 u8channel, void *pJoinParams); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index f3720e7fa992..788cfaa661ec 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -786,7 +786,7 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, s32 s32Error = 0; u32 i; u8 u8security = NO_ENCRYPT; - AUTHTYPE_T tenuAuth_type = ANY; + enum AUTHTYPE tenuAuth_type = ANY; char *pcgroup_encrypt_val = NULL; char *pccipher_group = NULL; char *pcwpa_version = NULL; @@ -1085,7 +1085,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, u8 u8mode = NO_ENCRYPT; u8 u8gmode = NO_ENCRYPT; u8 u8pmode = NO_ENCRYPT; - AUTHTYPE_T tenuAuth_type = ANY; + enum AUTHTYPE tenuAuth_type = ANY; priv = wiphy_priv(wiphy); diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 327ea039c946..b5b5c678b820 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -219,12 +219,12 @@ typedef enum { WPA2_AES_TKIP = 0x71, /* Aes or Tkip */ } SECURITY_T; -typedef enum { +enum AUTHTYPE { OPEN_SYSTEM = 1, SHARED_KEY = 2, ANY = 3, IEEE8021 = 5 -} AUTHTYPE_T; +}; typedef enum { SITE_SURVEY_1CH = 0, From b9d963333de75d295d344f100fa95d776018b5f0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:40 +0900 Subject: [PATCH 1314/2431] staging: wilc1000: remove typedef from tenuKeyType This patch remove typedef from the enum tenuKeyType. And rename it to KEY_TYPE. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 38f1f5d0bdb8..3bfff777c00c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -142,7 +142,7 @@ typedef union _tuniHostIFkeyAttr { * @version 1.0 */ struct key_attr { - tenuKeyType enuKeyType; + enum KEY_TYPE enuKeyType; u8 u8KeyAction; tuniHostIFkeyAttr uniHostIFkeyAttr; }; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 779ff99aca2b..856cab086563 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -172,12 +172,12 @@ typedef enum { CONN_DISCONN_EVENT_FORCE_32BIT = 0xFFFFFFFF } tenuConnDisconnEvent; -typedef enum { +enum KEY_TYPE { WEP, WPARxGtk, WPAPtk, PMKSA, -} tenuKeyType; +}; /*Scan callBack function definition*/ From 40cc2c90adfcf1519aa457fc9fedec2ee0856fd5 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:41 +0900 Subject: [PATCH 1315/2431] staging: wilc1000: remove typedef from tuniHostIFkeyAttr This patch remove typedef from the union tuniHostIFkeyAttr. And rename it to host_if_key_attr. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3bfff777c00c..5c85bf9ddcc8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -116,7 +116,7 @@ typedef struct _tstrHostIFwepAttr { } tstrHostIFwepAttr; /*! - * @struct tuniHostIFkeyAttr + * @struct host_if_key_attr * @brief Structure to hold Host IF Scan Attributes * @details * @todo @@ -125,11 +125,11 @@ typedef struct _tstrHostIFwepAttr { * @date 25 March 2012 * @version 1.0 */ -typedef union _tuniHostIFkeyAttr { +union host_if_key_attr { tstrHostIFwepAttr strHostIFwepAttr; tstrHostIFwpaAttr strHostIFwpaAttr; tstrHostIFpmkidAttr strHostIFpmkidAttr; -} tuniHostIFkeyAttr; +}; /*! * @struct key_attr @@ -144,7 +144,7 @@ typedef union _tuniHostIFkeyAttr { struct key_attr { enum KEY_TYPE enuKeyType; u8 u8KeyAction; - tuniHostIFkeyAttr uniHostIFkeyAttr; + union host_if_key_attr uniHostIFkeyAttr; }; From c276c44aacb61b93cc42dd26f630d90b0517e0bd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:42 +0900 Subject: [PATCH 1316/2431] staging: wilc1000: remove typedef from tstrHostIFwepAttr This patch removes typedef from the struct tstrHostIFwepAttr. And rename it to host_if_wep_attr. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5c85bf9ddcc8..b742e24d9cac 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -97,7 +97,7 @@ typedef struct _tstrHostIFwpaAttr { /*! - * @struct tstrHostIFwepAttr + * @struct host_if_wep_attr * @brief Structure to hold Host IF Scan Attributes * @details * @todo @@ -106,14 +106,13 @@ typedef struct _tstrHostIFwpaAttr { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrHostIFwepAttr { +struct host_if_wep_attr { u8 *pu8WepKey; u8 u8WepKeylen; u8 u8Wepidx; u8 u8mode; enum AUTHTYPE tenuAuth_type; - -} tstrHostIFwepAttr; +}; /*! * @struct host_if_key_attr @@ -126,7 +125,7 @@ typedef struct _tstrHostIFwepAttr { * @version 1.0 */ union host_if_key_attr { - tstrHostIFwepAttr strHostIFwepAttr; + struct host_if_wep_attr strHostIFwepAttr; tstrHostIFwpaAttr strHostIFwpaAttr; tstrHostIFpmkidAttr strHostIFpmkidAttr; }; From 4372d3d3c9d14fab2d31d328bfbcba77d7b276da Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:43 +0900 Subject: [PATCH 1317/2431] staging: wilc1000: remove typedef from tstrHostIFwpaAttr This patch removes typedef from the struct tstrHostIFwpaAttr. And rename it to host_if_wpa_attr. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b742e24d9cac..33988117d787 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -76,7 +76,7 @@ struct cfg_param_attr { }; /*! - * @struct tstrHostIFwpaAttr + * @struct host_if_wpa_attr * @brief Structure to hold Host IF Scan Attributes * @details * @todo @@ -85,7 +85,7 @@ struct cfg_param_attr { * @date 25 March 2012 * @version 1.0 */ -typedef struct _tstrHostIFwpaAttr { +struct host_if_wpa_attr { u8 *pu8key; const u8 *pu8macaddr; u8 *pu8seq; @@ -93,7 +93,7 @@ typedef struct _tstrHostIFwpaAttr { u8 u8keyidx; u8 u8Keylen; u8 u8Ciphermode; -} tstrHostIFwpaAttr; +}; /*! @@ -126,7 +126,7 @@ struct host_if_wep_attr { */ union host_if_key_attr { struct host_if_wep_attr strHostIFwepAttr; - tstrHostIFwpaAttr strHostIFwpaAttr; + struct host_if_wpa_attr strHostIFwpaAttr; tstrHostIFpmkidAttr strHostIFpmkidAttr; }; From a949f9095d29f7307dac036c8b7182cb42adad61 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:44 +0900 Subject: [PATCH 1318/2431] staging: wilc1000: remove typedef from tstrHostIFpmkidAttr This patch removes typedef from the struct tstrHostIFpmkidAttr. And rename it to host_if_pmkid_attr. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 6 +++--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 33988117d787..50426bfc008b 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -127,7 +127,7 @@ struct host_if_wep_attr { union host_if_key_attr { struct host_if_wep_attr strHostIFwepAttr; struct host_if_wpa_attr strHostIFwpaAttr; - tstrHostIFpmkidAttr strHostIFpmkidAttr; + struct host_if_pmkid_attr strHostIFpmkidAttr; }; /*! @@ -4725,7 +4725,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8PmkidInfoArray) +s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, struct host_if_pmkid_attr *pu8PmkidInfoArray) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 856cab086563..e9a97150e07c 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -88,10 +88,10 @@ typedef struct _tstrHostIFpmkid { u8 pmkid[PMKID_LEN]; } tstrHostIFpmkid; -typedef struct _tstrHostIFpmkidAttr { +struct host_if_pmkid_attr { u8 numpmkid; tstrHostIFpmkid pmkidlist[WILC_MAX_NUM_PMKIDS]; -} tstrHostIFpmkidAttr; +}; typedef enum { AUTORATE = 0, @@ -550,7 +550,7 @@ s32 host_int_add_tx_gtk(tstrWILC_WFIDrv *hWFIDrv, u8 u8KeyLen, u8 *pu8TxGtk, u8 * @version 1.0 */ -s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, tstrHostIFpmkidAttr *pu8PmkidInfoArray); +s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, struct host_if_pmkid_attr *pu8PmkidInfoArray); /** * @brief gets the cached the pmkid info * @details valid only in BSS STA mode if External Supplicant diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 788cfaa661ec..eac77ce3cd0d 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1924,7 +1924,7 @@ static int flush_pmksa(struct wiphy *wiphy, struct net_device *netdev) PRINT_D(CFG80211_DBG, "Flushing PMKID key values\n"); /*Get cashed Pmkids and set all with zeros*/ - memset(&priv->pmkid_list, 0, sizeof(tstrHostIFpmkidAttr)); + memset(&priv->pmkid_list, 0, sizeof(struct host_if_pmkid_attr)); return 0; } diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index d25092dccd4a..cb21968c0873 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -122,7 +122,7 @@ struct wilc_priv { struct net_device *dev; struct napi_struct napi; tstrWILC_WFIDrv *hWILCWFIDrv; - tstrHostIFpmkidAttr pmkid_list; + struct host_if_pmkid_attr pmkid_list; struct WILC_WFI_stats netstats; u8 WILC_WFI_wep_default; u8 WILC_WFI_wep_key[4][WLAN_KEY_LEN_WEP104]; From cd1e6cb4c9e165b37632995deb722becbaf2e91b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:45 +0900 Subject: [PATCH 1319/2431] staging: wilc1000: remove typedef from tstrHostIFpmkid This patch removes typedef from the struct tstrHostIFpmkid. And rename it to host_if_pmkid. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 6 +++--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index e9a97150e07c..460c73bd7cc8 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -83,14 +83,14 @@ typedef enum { HOST_IF_FORCE_32BIT = 0xFFFFFFFF } tenuHostIFstate; -typedef struct _tstrHostIFpmkid { +struct host_if_pmkid { u8 bssid[ETH_ALEN]; u8 pmkid[PMKID_LEN]; -} tstrHostIFpmkid; +}; struct host_if_pmkid_attr { u8 numpmkid; - tstrHostIFpmkid pmkidlist[WILC_MAX_NUM_PMKIDS]; + struct host_if_pmkid pmkidlist[WILC_MAX_NUM_PMKIDS]; }; typedef enum { diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index eac77ce3cd0d..8068a7e591c2 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1885,7 +1885,7 @@ static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, ETH_ALEN)) { /*If bssid is found, reset the values*/ PRINT_D(CFG80211_DBG, "Reseting PMKID values\n"); - memset(&priv->pmkid_list.pmkidlist[i], 0, sizeof(tstrHostIFpmkid)); + memset(&priv->pmkid_list.pmkidlist[i], 0, sizeof(struct host_if_pmkid)); flag = PMKID_FOUND; break; } From 9529650a55f69362c386463001ded3ec0c5f99b3 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:46 +0900 Subject: [PATCH 1320/2431] staging: wilc1000: remove typedef from tstrCfgParamVal This patch removes typedef from the struct tstrCfgParamVal. And rename it to cfg_param_val. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 8 ++++---- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 50426bfc008b..8c2ececf3699 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -72,7 +72,7 @@ extern u8 g_wilc_initialized; * @version 1.0 */ struct cfg_param_attr { - tstrCfgParamVal pstrCfgParamVal; + struct cfg_param_val pstrCfgParamVal; }; /*! @@ -5782,7 +5782,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, * @date 8 March 2012 * @version 1.0 */ -s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal) +s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal) { s32 s32Error = 0; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 460c73bd7cc8..69c5a946fda1 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -109,7 +109,7 @@ typedef enum { MBPS_54 = 54 } CURRENT_TX_RATE_T; -typedef struct { +struct cfg_param_val { u32 u32SetCfgFlag; u8 ht_enable; u8 bss_type; @@ -132,7 +132,7 @@ typedef struct { u16 passive_scan_time; CURRENT_TX_RATE_T curr_tx_rate; -} tstrCfgParamVal; +}; typedef enum { RETRY_SHORT = BIT(0), @@ -319,7 +319,7 @@ typedef struct { tenuHostIFstate enuHostIFstate; u8 au8AssociatedBSSID[ETH_ALEN]; - tstrCfgParamVal strCfgValues; + struct cfg_param_val strCfgValues; /* semaphores */ struct semaphore gtOsCfgValuesSem; struct semaphore hSemTestKeyBlock; @@ -885,7 +885,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, * @date 8 March 2012 * @version 1.0 */ -s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, tstrCfgParamVal *pstrCfgParamVal); +s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal); /** * @brief gets configuration wids values diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 8068a7e591c2..5905040e98fa 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1742,7 +1742,7 @@ static int WILC_WFI_disassoc(struct wiphy *wiphy, struct net_device *dev, static int set_wiphy_params(struct wiphy *wiphy, u32 changed) { s32 s32Error = 0; - tstrCfgParamVal pstrCfgParamVal; + struct cfg_param_val pstrCfgParamVal; struct wilc_priv *priv; priv = wiphy_priv(wiphy); From 073b8d0ca73c252a4e3c5fa71a00b2d41dd274d0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:47 +0900 Subject: [PATCH 1321/2431] staging: wilc1000: remove typedef from SITE_SURVEY_T This patch remove typedef from the enum SITE_SURVEY_T. And rename it to SITESURVEY. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 69c5a946fda1..1ed21a20b70f 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -125,7 +125,7 @@ struct cfg_param_val { u8 txop_prot_disabled; u16 beacon_interval; u16 dtim_period; - SITE_SURVEY_T site_survey_enabled; + enum SITESURVEY site_survey_enabled; u16 site_survey_scan_time; u8 scan_source; u16 active_scan_time; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index b5b5c678b820..8fec64d12cbd 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -226,11 +226,11 @@ enum AUTHTYPE { IEEE8021 = 5 }; -typedef enum { +enum SITESURVEY { SITE_SURVEY_1CH = 0, SITE_SURVEY_ALL_CH = 1, SITE_SURVEY_OFF = 2 -} SITE_SURVEY_T; +}; typedef enum { NORMAL_ACK = 0, From 430a78cf77236e5cdb514459ffb38609bd9c10b1 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:48 +0900 Subject: [PATCH 1322/2431] staging: wilc1000: remove typedef from CURRENT_TX_RATE_T This patch remove typedef from the enum CURRENT_TX_RATE_T. And rename it to CURRENT_TXRATE. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8c2ececf3699..07ce4b88aa4e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1155,7 +1155,7 @@ static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, u8WidCnt++; } if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & CURRENT_TX_RATE) { - CURRENT_TX_RATE_T curr_tx_rate = strHostIFCfgParamAttr->pstrCfgParamVal.curr_tx_rate; + enum CURRENT_TXRATE curr_tx_rate = strHostIFCfgParamAttr->pstrCfgParamVal.curr_tx_rate; /*----------------------------------------------------------------------*/ /*Rates: 1 2 5.5 11 6 9 12 18 24 36 48 54 Auto */ /*InputValues: 1 2 3 4 5 6 7 8 9 10 11 12 0 */ diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 1ed21a20b70f..5993cd8f210f 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -93,7 +93,7 @@ struct host_if_pmkid_attr { struct host_if_pmkid pmkidlist[WILC_MAX_NUM_PMKIDS]; }; -typedef enum { +enum CURRENT_TXRATE { AUTORATE = 0, MBPS_1 = 1, MBPS_2 = 2, @@ -107,7 +107,7 @@ typedef enum { MBPS_36 = 36, MBPS_48 = 48, MBPS_54 = 54 -} CURRENT_TX_RATE_T; +}; struct cfg_param_val { u32 u32SetCfgFlag; @@ -130,7 +130,7 @@ struct cfg_param_val { u8 scan_source; u16 active_scan_time; u16 passive_scan_time; - CURRENT_TX_RATE_T curr_tx_rate; + enum CURRENT_TXRATE curr_tx_rate; }; From fdc22a49b1c04a020c0222ba2ff32eca339fbaef Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:49 +0900 Subject: [PATCH 1323/2431] staging: wilc1000: rename tWILCpfRemainOnChanExpired This patch renames tWILCpfRemainOnChanExpired to wilc_remain_on_chan_expired. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 07ce4b88aa4e..ddc729cc8a88 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6383,7 +6383,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) * @date * @version 1.0 */ -s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, tWILCpfRemainOnChanExpired RemainOnChanExpired, tWILCpfRemainOnChanReady RemainOnChanReady, void *pvUserArg) +s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, tWILCpfRemainOnChanReady RemainOnChanReady, void *pvUserArg) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 5993cd8f210f..d33e4ee81c31 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -190,7 +190,7 @@ typedef void (*wilc_connect_result)(tenuConnDisconnEvent, tstrDisconnectNotifInfo *, void *); -typedef void (*tWILCpfRemainOnChanExpired)(void *, u32); /*Remain on channel expiration callback function*/ +typedef void (*wilc_remain_on_chan_expired)(void *, u32); /*Remain on channel expiration callback function*/ typedef void (*tWILCpfRemainOnChanReady)(void *); /*Remain on channel callback function*/ /* typedef u32 WILC_WFIDrvHandle; */ @@ -277,7 +277,7 @@ struct ba_session_info { struct remain_ch { u16 u16Channel; u32 u32duration; - tWILCpfRemainOnChanExpired pRemainOnChanExpired; + wilc_remain_on_chan_expired pRemainOnChanExpired; tWILCpfRemainOnChanReady pRemainOnChanReady; void *pVoid; u32 u32ListenSessionID; @@ -1149,7 +1149,7 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx); * @date * @version 1.0 */ -s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, tWILCpfRemainOnChanExpired RemainOnChanExpired, tWILCpfRemainOnChanReady RemainOnChanReady, void *pvUserArg); +s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, tWILCpfRemainOnChanReady RemainOnChanReady, void *pvUserArg); /** * @brief host_int_ListenStateExpired From fc1848acb93b655219d097045bfb50e8bfcab279 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:50 +0900 Subject: [PATCH 1324/2431] staging: wilc1000: rename tWILCpfRemainOnChanReady This patch renames tWILCpfRemainOnChanReady to wilc_remain_on_chan_ready. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ddc729cc8a88..e8057870cde1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6383,7 +6383,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) * @date * @version 1.0 */ -s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, tWILCpfRemainOnChanReady RemainOnChanReady, void *pvUserArg) +s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg) { s32 s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index d33e4ee81c31..7c2846e9eb99 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -191,7 +191,7 @@ typedef void (*wilc_connect_result)(tenuConnDisconnEvent, void *); typedef void (*wilc_remain_on_chan_expired)(void *, u32); /*Remain on channel expiration callback function*/ -typedef void (*tWILCpfRemainOnChanReady)(void *); /*Remain on channel callback function*/ +typedef void (*wilc_remain_on_chan_ready)(void *); /*Remain on channel callback function*/ /* typedef u32 WILC_WFIDrvHandle; */ typedef struct { @@ -278,7 +278,7 @@ struct remain_ch { u16 u16Channel; u32 u32duration; wilc_remain_on_chan_expired pRemainOnChanExpired; - tWILCpfRemainOnChanReady pRemainOnChanReady; + wilc_remain_on_chan_ready pRemainOnChanReady; void *pVoid; u32 u32ListenSessionID; }; @@ -1149,7 +1149,7 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx); * @date * @version 1.0 */ -s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, tWILCpfRemainOnChanReady RemainOnChanReady, void *pvUserArg); +s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg); /** * @brief host_int_ListenStateExpired From e4bc3d677e533abcc1cdc8e271ce239d6956ae12 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:51 +0900 Subject: [PATCH 1325/2431] staging: wilc1000: wilc_wfi_cfgoperations.c : remove unused functions This patch removes unused functions from the wilc_wfi_cfgoperations.c. - WILC_WFI_dump_survey - WILC_WFI_auth - WILC_WFI_assoc - WILC_WFI_deauth - WILC_WFI_disassoc - WILC_WFI_set_bitrate_mask Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 109 ------------------ 1 file changed, 109 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5905040e98fa..2f67546f3fac 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1532,31 +1532,6 @@ static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 ke return s32Error; } -/** - * @brief WILC_WFI_dump_survey - * @details Get site survey information - * @param[in] - * @return int : Return 0 on Success. - * @author mdaftedar - * @date 01 MAR 2012 - * @version 1.0 - */ -static int WILC_WFI_dump_survey(struct wiphy *wiphy, struct net_device *netdev, - int idx, struct survey_info *info) -{ - s32 s32Error = 0; - - - if (idx != 0) { - s32Error = -ENOENT; - PRINT_ER("Error Idx value doesn't equal zero: Error(%d)\n", s32Error); - - } - - return s32Error; -} - - /** * @brief get_station * @details Get station information for the station identified by @mac @@ -1665,70 +1640,6 @@ static int change_bss(struct wiphy *wiphy, struct net_device *dev, return 0; } -/** - * @brief WILC_WFI_auth - * @details Request to authenticate with the specified peer - * @param[in] - * @return int : Return 0 on Success. - * @author mdaftedar - * @date 01 MAR 2012 - * @version 1.0 - */ -static int WILC_WFI_auth(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_auth_request *req) -{ - PRINT_D(CFG80211_DBG, "In Authentication Function\n"); - return 0; -} - -/** - * @brief WILC_WFI_assoc - * @details Request to (re)associate with the specified peer - * @param[in] - * @return int : Return 0 on Success. - * @author mdaftedar - * @date 01 MAR 2012 - * @version 1.0 - */ -static int WILC_WFI_assoc(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_assoc_request *req) -{ - PRINT_D(CFG80211_DBG, "In Association Function\n"); - return 0; -} - -/** - * @brief WILC_WFI_deauth - * @details Request to deauthenticate from the specified peer - * @param[in] - * @return int : Return 0 on Success. - * @author mdaftedar - * @date 01 MAR 2012 - * @version 1.0 - */ -static int WILC_WFI_deauth(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_deauth_request *req, void *cookie) -{ - PRINT_D(CFG80211_DBG, "In De-authentication Function\n"); - return 0; -} - -/** - * @brief WILC_WFI_disassoc - * @details Request to disassociate from the specified peer - * @param[in] - * @return int : Return 0 on Success - * @author mdaftedar - * @date 01 MAR 2012 - * @version 1.0 - */ -static int WILC_WFI_disassoc(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_disassoc_request *req, void *cookie) -{ - PRINT_D(CFG80211_DBG, "In Disassociation Function\n"); - return 0; -} - /** * @brief set_wiphy_params * @details Notify that wiphy parameters have changed; @@ -1787,26 +1698,6 @@ static int set_wiphy_params(struct wiphy *wiphy, u32 changed) return s32Error; } -/** - * @brief WILC_WFI_set_bitrate_mask - * @details set the bitrate mask configuration - * @param[in] - * @return int : Return 0 on Success - * @author mdaftedar - * @date 01 MAR 2012 - * @version 1.0 - */ -static int WILC_WFI_set_bitrate_mask(struct wiphy *wiphy, - struct net_device *dev, const u8 *peer, - const struct cfg80211_bitrate_mask *mask) -{ - s32 s32Error = 0; - - PRINT_D(CFG80211_DBG, "Setting Bitrate mask function\n"); - return s32Error; - -} - /** * @brief set_pmksa * @details Cache a PMKID for a BSSID. This is mostly useful for fullmac From feea5c4121cf83aab46f9d1a7ab49bc748c3d4a7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:52 +0900 Subject: [PATCH 1326/2431] staging: wilc1000: remove unused functions This patch removes unused functions. - drivers/staging/wilc1000/linux_mon.c : WILC_WFI_mon_setup - drivers/staging/wilc1000/wilc_sdio.o : sdio_set_func0_csa_address_byte0 Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_mon.c | 26 -------------------------- drivers/staging/wilc1000/wilc_sdio.c | 22 ---------------------- 2 files changed, 48 deletions(-) diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index a943b2304da7..bde409526774 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -310,32 +310,6 @@ static const struct net_device_ops wilc_wfi_netdev_ops = { }; -/** - * @brief WILC_WFI_mon_setup - * @details - * @param[in] - * @return int : Return 0 on Success - * @author mdaftedar - * @date 12 JUL 2012 - * @version 1.0 - */ -static void WILC_WFI_mon_setup(struct net_device *dev) -{ - - dev->netdev_ops = &wilc_wfi_netdev_ops; - PRINT_INFO(CORECONFIG_DBG, "In Ethernet setup function\n"); - ether_setup(dev); - dev->priv_flags |= IFF_NO_QUEUE; - dev->type = ARPHRD_IEEE80211_RADIOTAP; - eth_zero_addr(dev->dev_addr); - - { - unsigned char mac_add[] = {0x00, 0x50, 0xc2, 0x5e, 0x10, 0x8f}; - memcpy(dev->dev_addr, mac_add, ETH_ALEN); - } - -} - /** * @brief WILC_WFI_init_mon_interface * @details diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index 6e28ca08288b..300c571e4e2d 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -75,28 +75,6 @@ _fail_: return 0; } -static int sdio_set_func0_csa_address_byte0(u32 adr) -{ - sdio_cmd52_t cmd; - - /** - * Review: BIG ENDIAN - **/ - cmd.read_write = 1; - cmd.function = 0; - cmd.raw = 0; - cmd.address = 0x10c; - cmd.data = (u8)adr; - if (!g_sdio.sdio_cmd52(&cmd)) { - g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10c data...\n"); - goto _fail_; - } - - return 1; -_fail_: - return 0; -} - static int sdio_set_func0_block_size(u32 block_size) { sdio_cmd52_t cmd; From 2a02a3415cf46e1367f647c539c56beb6a92e1d9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:53 +0900 Subject: [PATCH 1327/2431] staging: wilc1000: host_interface.c : remove unused functions This patch removes unused functions from the host_interface.c(h). - Switch_Log_Terminal - Handle_DelBASession - host_int_addBASession This patch includes the removal of the comment for host_int_addBASession as well. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 143 ---------------------- drivers/staging/wilc1000/host_interface.h | 4 - 2 files changed, 147 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e8057870cde1..6413a2af7b8c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -2260,7 +2260,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, /* open a BA session if possible */ /* if(pstrWFIDrv->strWILC_UsrConnReq.IsHTCapable) */ - /* host_int_addBASession(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid,0, */ /* BA_SESSION_DEFAULT_BUFFER_SIZE,BA_SESSION_DEFAULT_TIMEOUT); */ } else { PRINT_D(HOSTINF_DBG, "MAC status : %d and Connect Status : %d\n", u8MacStatus, strConnectInfo.u16ConnectStatus); @@ -2884,34 +2883,6 @@ void resolve_disconnect_aberration(tstrWILC_WFIDrv *drvHandler) host_int_disconnect(pstrWFIDrv, 1); } } -static s32 Switch_Log_Terminal(tstrWILC_WFIDrv *drvHandler) -{ - - - s32 s32Error = 0; - tstrWID strWID; - static char dummy = 9; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; - - strWID.u16WIDid = (u16)WID_LOGTerminal_Switch; - strWID.enuWIDtype = WID_CHAR; - strWID.ps8WidVal = &dummy; - strWID.s32ValueSize = sizeof(char); - - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); - - - if (s32Error) { - PRINT_D(HOSTINF_DBG, "Failed to switch log terminal\n"); - PRINT_ER("Failed to switch log terminal\n"); - return -EINVAL; - } - - PRINT_INFO(HOSTINF_DBG, "MAC address set ::\n"); - - return s32Error; -} /** * @brief Handle_GetChnl @@ -3870,79 +3841,6 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, } - -/** - * @brief Handle_DelBASession - * @details Delete block ack session - * @param[in] tstrHostIFSetMulti* strHostIfSetMulti - * @return NONE - * @author Amr Abdel-Moghny - * @date Feb. 2013 - * @version 9.0 - */ -static s32 Handle_DelBASession(tstrWILC_WFIDrv *drvHandler, - struct ba_session_info *strHostIfBASessionInfo) -{ - s32 s32Error = 0; - tstrWID strWID; - char *ptr = NULL; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; - - PRINT_D(GENERIC_DBG, "Delete Block Ack session with\nBSSID = %.2x:%.2x:%.2x\nTID=%d\n", - strHostIfBASessionInfo->au8Bssid[0], - strHostIfBASessionInfo->au8Bssid[1], - strHostIfBASessionInfo->au8Bssid[2], - strHostIfBASessionInfo->u8Ted); - - strWID.u16WIDid = (u16)WID_11E_P_ACTION_REQ; - strWID.enuWIDtype = WID_STR; - strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); - strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; - ptr = strWID.ps8WidVal; - /* *ptr++ = 0x14; */ - *ptr++ = 0x14; - *ptr++ = 0x3; - *ptr++ = 0x2; - memcpy(ptr, strHostIfBASessionInfo->au8Bssid, ETH_ALEN); - ptr += ETH_ALEN; - *ptr++ = strHostIfBASessionInfo->u8Ted; - /* BA direction = recipent*/ - *ptr++ = 0; - /* Delba Reason */ - *ptr++ = 32; /* Unspecific QOS reason */ - - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); - if (s32Error) - PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); - - - strWID.u16WIDid = (u16)WID_11E_P_ACTION_REQ; - strWID.enuWIDtype = WID_STR; - strWID.s32ValueSize = 15; - ptr = strWID.ps8WidVal; - /* *ptr++ = 0x14; */ - *ptr++ = 15; - *ptr++ = 7; - *ptr++ = 0x3; - memcpy(ptr, strHostIfBASessionInfo->au8Bssid, ETH_ALEN); - ptr += ETH_ALEN; - /* TID*/ - *ptr++ = strHostIfBASessionInfo->u8Ted; - - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); - - if (strWID.ps8WidVal != NULL) - kfree(strWID.ps8WidVal); - - up(&hWaitResponse); - - return s32Error; - -} - - /** * @brief Handle_DelAllRxBASessions * @details Delete all Rx BA sessions @@ -7096,47 +6994,6 @@ void host_int_freeJoinParams(void *pJoinParams) PRINT_ER("Unable to FREE null pointer\n"); } -/** - * @brief host_int_addBASession - * @details Open a block Ack session with the given parameters - * @param[in] tstrNetworkInfo* ptstrNetworkInfo - * @return - * @author anoureldin - * @date - * @version 1.0**/ - -static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID, short int BufferSize, - short int SessionTimeout, void *drvHandler) -{ - s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - struct host_if_msg msg; - struct ba_session_info *pBASessionInfo = &msg.body.session_info; - - if (pstrWFIDrv == NULL) { - PRINT_ER("driver is null\n"); - return -EFAULT; - } - - memset(&msg, 0, sizeof(struct host_if_msg)); - - /* prepare the WiphyParams Message */ - msg.id = HOST_IF_MSG_ADD_BA_SESSION; - - memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); - pBASessionInfo->u8Ted = TID; - pBASessionInfo->u16BufferSize = BufferSize; - pBASessionInfo->u16SessionTimeout = SessionTimeout; - msg.drvHandler = hWFIDrv; - - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); - if (s32Error) - PRINT_ER("wilc_mq_send fail\n"); - - return s32Error; -} - - s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) { s32 s32Error = 0; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 7c2846e9eb99..739190358225 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -1191,10 +1191,6 @@ s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode); static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent); -static int host_int_addBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID, short int BufferSize, - short int SessionTimeout, void *drvHandler); - - void host_int_freeJoinParams(void *pJoinParams); s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics); From 8f7f06cffb8f2aba83e4033aff1a1359abf294a4 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:45 +0900 Subject: [PATCH 1328/2431] staging: wilc1000: fix return type of host_int_set_wfi_drv_handler This patch changes return type of host_int_set_wfi_drv_handler from s32 to int. s32Error gets return value from wilc_mq_send that has return type of int. It should be changed return type by int as well as data type of s32Error. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6413a2af7b8c..82c1d03f6dcc 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5260,9 +5260,9 @@ int host_int_wait_msg_queue_idle(void) return result; } -s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) +int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) { - s32 s32Error = 0; + int s32Error = 0; struct host_if_msg msg; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 739190358225..6e3980909ad8 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -1186,7 +1186,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe * @date * @version 1.0 */ -s32 host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address); +int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address); s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode); static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent); From 909cccd9523c5ead7712c7d21dbcba4d35f28f8a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:46 +0900 Subject: [PATCH 1329/2431] staging: wilc1000: remove multiple blank lines This patch removes multiple blank lines found by checkpatch CHECK: Please don't use multiple blank lines FILE: drivers/staging/wilc1000/host_interface.c:5343: FILE: drivers/staging/wilc1000/host_interface.c:5372: FILE: drivers/staging/wilc1000/host_interface.c:5389: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 82c1d03f6dcc..6c6c66eed1d8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5237,7 +5237,6 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel) return 0; } - int host_int_wait_msg_queue_idle(void) { int result = 0; @@ -5283,15 +5282,12 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) return s32Error; } - - s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) { s32 s32Error = 0; struct host_if_msg msg; - /* prepare the set driver handler message */ memset(&msg, 0, sizeof(struct host_if_msg)); From a094101cdc86d102e651342ee1078e147203f13f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:47 +0900 Subject: [PATCH 1330/2431] staging: wilc1000: rename s32Error in host_int_set_wfi_drv_handler This patch replaces s32Error with result to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6c6c66eed1d8..dcd2d5c26a10 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5261,7 +5261,7 @@ int host_int_wait_msg_queue_idle(void) int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) { - int s32Error = 0; + int result = 0; struct host_if_msg msg; @@ -5273,13 +5273,13 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) msg.body.drv.u32Address = get_id_from_handler(u32address); msg.drvHandler = u32address; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("wilc mq send fail\n"); - s32Error = -EINVAL; + result = -EINVAL; } - return s32Error; + return result; } s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) From 3c5f3e5ad15c162f8bf86c218a02e5cc0e55bc44 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:48 +0900 Subject: [PATCH 1331/2431] staging: wilc1000: rename u32address in host_int_set_wfi_drv_handler This patch replaces u32address with address to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index dcd2d5c26a10..8311d53f923b 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5259,7 +5259,7 @@ int host_int_wait_msg_queue_idle(void) return result; } -int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) +int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address) { int result = 0; @@ -5270,8 +5270,8 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_WFIDRV_HANDLER; - msg.body.drv.u32Address = get_id_from_handler(u32address); - msg.drvHandler = u32address; + msg.body.drv.u32Address = get_id_from_handler(address); + msg.drvHandler = address; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 6e3980909ad8..314cd4190262 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -1186,7 +1186,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe * @date * @version 1.0 */ -int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *u32address); +int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address); s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode); static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent); From d491ef72be51177a41d247a73f4b06cf5d3b084f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:49 +0900 Subject: [PATCH 1332/2431] staging: wilc1000: fix return type of host_int_set_operation_mode This patch changes return type of host_int_set_operation_mode from s32 to int. s32Error gets return value from wilc_mq_send that has return type of int. It should be changed return type by int as well as data type of s32Error. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8311d53f923b..605bb2b50ec9 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5282,9 +5282,9 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address) return result; } -s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) +int host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) { - s32 s32Error = 0; + int s32Error = 0; struct host_if_msg msg; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 314cd4190262..fb135bdb5b01 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -1187,7 +1187,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe * @version 1.0 */ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address); -s32 host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode); +int host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode); static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent); From a0c1ee0cb999b726b206039aad459ea3038f7142 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:50 +0900 Subject: [PATCH 1333/2431] staging: wilc1000: rename s32Error in host_int_set_operation_mode This patch replaces s32Error with result to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 605bb2b50ec9..b8f639e15ade 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5284,7 +5284,7 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address) int host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) { - int s32Error = 0; + int result = 0; struct host_if_msg msg; @@ -5295,13 +5295,13 @@ int host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) msg.body.mode.u32Mode = u32mode; msg.drvHandler = hWFIDrv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("wilc mq send fail\n"); - s32Error = -EINVAL; + result = -EINVAL; } - return s32Error; + return result; } /** From 230819267c3daad2414d87ab9addeb4164adae74 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:51 +0900 Subject: [PATCH 1334/2431] staging: wilc1000: rename hWFIDrv in host_int_set_operation_mode This patch replaces hWFIDrv with wfi_drv that is first argument of host_int_set_operation_mode to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b8f639e15ade..9de4b72e8de6 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5282,7 +5282,7 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address) return result; } -int host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) +int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 u32mode) { int result = 0; @@ -5293,7 +5293,7 @@ int host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_OPERATION_MODE; msg.body.mode.u32Mode = u32mode; - msg.drvHandler = hWFIDrv; + msg.drvHandler = wfi_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index fb135bdb5b01..d77ef20d9a33 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -1187,7 +1187,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe * @version 1.0 */ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address); -int host_int_set_operation_mode(tstrWILC_WFIDrv *hWFIDrv, u32 u32mode); +int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 u32mode); static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent); From 49fb6f714c75c77b3dc230c204b6aed8a7f22dd7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:52 +0900 Subject: [PATCH 1335/2431] staging: wilc1000: rename u32mode in host_int_set_operation_mode This patch replaces u32mode with mode that is second argument of host_int_set_operation_mode to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9de4b72e8de6..09ebc6f9b42d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5282,7 +5282,7 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address) return result; } -int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 u32mode) +int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 mode) { int result = 0; @@ -5292,7 +5292,7 @@ int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 u32mode) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_OPERATION_MODE; - msg.body.mode.u32Mode = u32mode; + msg.body.mode.u32Mode = mode; msg.drvHandler = wfi_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index d77ef20d9a33..cf93d0de87ba 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -1187,7 +1187,7 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe * @version 1.0 */ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address); -int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 u32mode); +int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 mode); static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent); From 2c28293b4882598880534b9d8f5d2e073c32c1c9 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:53 +0900 Subject: [PATCH 1336/2431] staging: wilc1000: delete multiple blank lines This patch deletes multiple blank lines found by checkpatch CHECK: Please don't use multiple blank lines FILE: drivers/staging/wilc1000/host_interface.c:5393: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 09ebc6f9b42d..f5ece1fa8806 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5265,7 +5265,6 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address) struct host_if_msg msg; - /* prepare the set driver handler message */ memset(&msg, 0, sizeof(struct host_if_msg)); From 23fdedfcca5282e626532359dde6e86fa9c9a3ba Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:54 +0900 Subject: [PATCH 1337/2431] staging: wilc1000: remove host_int_test_set_int_wid This function is defined but never used anywhere, so just delete it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 43 ----------------------- 1 file changed, 43 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f5ece1fa8806..32ad1d32f450 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5349,49 +5349,6 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) } - -/** - * @brief host_int_test_set_int_wid - * @details Test function for setting wids - * @param[in,out] WILC_WFIDrvHandle hWFIDrv, u32 u32TestMemAddr - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ -s32 host_int_test_set_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 u32TestMemAddr) -{ - s32 s32Error = 0; - tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; - - - if (pstrWFIDrv == NULL) { - PRINT_ER("driver is null\n"); - return -EFAULT; - } - - /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_MEMORY_ADDRESS; - strWID.enuWIDtype = WID_INT; - strWID.ps8WidVal = (char *)&u32TestMemAddr; - strWID.s32ValueSize = sizeof(u32); - - /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, - get_id_from_handler(pstrWFIDrv)); - if (s32Error) { - PRINT_ER("Failed to set wid value\n"); - return -EINVAL; - } else { - PRINT_D(HOSTINF_DBG, "Successfully set wid value\n"); - - } - - return s32Error; -} - /** * @brief host_int_get_inactive_time * @details From 33e8ce215aff1ea662bdb44e0b30ac461f1c4003 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:57 +0900 Subject: [PATCH 1338/2431] staging: wilc1000: fix return type of host_int_remove_wep_key This patch changes return type of host_int_remove_wep_key from s32 to int. s32Error gets return value from wilc_mq_send that has return type of int. It should be changed return type by int as well as data type of s32Error. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 32ad1d32f450..42e8b390fc6f 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4188,9 +4188,9 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) +int host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) { - s32 s32Error = 0; + int s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; struct host_if_msg msg; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index cf93d0de87ba..c02d72712fdc 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -406,7 +406,7 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index); +int host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index); /** * @brief sets WEP deafault key * @details Sets the index of the WEP encryption key in use, From c54a9fb8492e5e53edf0b075e501fdaff54abf4e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:58 +0900 Subject: [PATCH 1339/2431] staging: wilc1000: rename hWFIDrv in host_int_remove_wep_key This patch replaces hWFIDrv with wfi_drv that is first argument of host_int_remove_wep_key to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 42e8b390fc6f..7a93f7541581 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4188,10 +4188,10 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) * @date 8 March 2012 * @version 1.0 */ -int host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) +int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 u8keyIdx) { int s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)wfi_drv; struct host_if_msg msg; @@ -4208,7 +4208,7 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8keyIdx) msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = REMOVEKEY; - msg.drvHandler = hWFIDrv; + msg.drvHandler = wfi_drv; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index c02d72712fdc..e3d24847034f 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -406,7 +406,7 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress); * @date 8 March 2012 * @version 1.0 */ -int host_int_remove_wep_key(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index); +int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 u8Index); /** * @brief sets WEP deafault key * @details Sets the index of the WEP encryption key in use, From 517af2f582a93f2f48042b550daab6dbdf395690 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:59 +0900 Subject: [PATCH 1340/2431] staging: wilc1000: rename u8keyIdx in host_int_remove_wep_key This patch replaces u8keyIdx with index that is secondard argument of host_int_remove_wep_key to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7a93f7541581..7867078acc52 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4188,7 +4188,7 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) * @date 8 March 2012 * @version 1.0 */ -int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 u8keyIdx) +int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) { int s32Error = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)wfi_drv; @@ -4213,7 +4213,7 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 u8keyIdx) msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8keyIdx; + uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = index; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index e3d24847034f..9bb55abd79ee 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -406,7 +406,7 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress); * @date 8 March 2012 * @version 1.0 */ -int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 u8Index); +int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index); /** * @brief sets WEP deafault key * @details Sets the index of the WEP encryption key in use, From 9e5e8b44bc67d2d06f660b6f3e8270f862078011 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:00 +0900 Subject: [PATCH 1341/2431] staging: wilc1000: rename s32Error in host_int_remove_wep_key This patch replaces s32Error with result in host_int_remove_wep_key to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7867078acc52..7acd744efed6 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4190,15 +4190,15 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) */ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) { - int s32Error = 0; + int result = 0; tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)wfi_drv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("Failed to send setup multicast config packet\n"); - return s32Error; + return result; } /* prepare the Remove Wep Key Message */ @@ -4216,12 +4216,12 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = index; /* send the message */ - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); down(&(pstrWFIDrv->hSemTestKeyBlock)); - return s32Error; + return result; } /** From 754d8c9016e00fc34dc6460ec00db2544033a12b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:01 +0900 Subject: [PATCH 1342/2431] staging: wilc1000: remove pstrWFIDrv in host_int_remove_key This patch remove pstrWFIDrv in host_int_remove_key. There is no need to make another variable to check if first argument is NULL or not. It is able to use wfi_drv directly that is first argument of this function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7acd744efed6..1e465522d4e8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4191,11 +4191,10 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) { int result = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)wfi_drv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (wfi_drv == NULL) { result = -EFAULT; PRINT_ER("Failed to send setup multicast config packet\n"); return result; @@ -4219,7 +4218,7 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); - down(&(pstrWFIDrv->hSemTestKeyBlock)); + down(&(wfi_drv->hSemTestKeyBlock)); return result; } From 0c694d829c5dfaf33dfcc47c6c2559f238de5978 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:02 +0900 Subject: [PATCH 1343/2431] staging: wilc1000: remove multiple blank in host_int_remove_wep_key This patch removes multiple blank in host_int_remove_wep_key found by checkpatch. CHECK: Please don't use multiple blank lines FILE: drivers/staging/wilc1000/host_interface.c:4299: FILE: drivers/staging/wilc1000/host_interface.c:4309: FILE: drivers/staging/wilc1000/host_interface.c:4315: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1e465522d4e8..593d41aae18a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4193,7 +4193,6 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) int result = 0; struct host_if_msg msg; - if (wfi_drv == NULL) { result = -EFAULT; PRINT_ER("Failed to send setup multicast config packet\n"); @@ -4203,14 +4202,11 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) /* prepare the Remove Wep Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = REMOVEKEY; msg.drvHandler = wfi_drv; - - msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = index; From 4929affee3a71243154873bb55763bb923e6bba9 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:03 +0900 Subject: [PATCH 1344/2431] staging: wilc1000: fix NULL comparison in host_int_remove_wep_key This patch fixes NULL comparison style in host_int_remove_wep_key found by checkpatch. CHECK: Comparison to NULL could be written "!wfi_drv" FILE: drivers/staging/wilc1000/host_interface.c:4300 Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 593d41aae18a..917cdcc16fde 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4193,7 +4193,7 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) int result = 0; struct host_if_msg msg; - if (wfi_drv == NULL) { + if (!wfi_drv) { result = -EFAULT; PRINT_ER("Failed to send setup multicast config packet\n"); return result; From 8a3c033262311ad274ef40f5ab4f2ec1d453ad72 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:04 +0900 Subject: [PATCH 1345/2431] staging: wilc1000: remove unnecessary parentheses in host_int_remove_wep_key This patch removes unnecessary parentheses in host_int_remove_wep_key found by checkpatch. CHECK: Unnecessary parentheses around wfi_drv->hSemTestKeyBlock FILE: drivers/staging/wilc1000/host_interface.c:4320: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 917cdcc16fde..80697232f772 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4214,7 +4214,7 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); - down(&(wfi_drv->hSemTestKeyBlock)); + down(&wfi_drv->hSemTestKeyBlock); return result; } From bcf0265384ded8c89264202faf59fb538c6b25c4 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 17:00:32 +0530 Subject: [PATCH 1346/2431] Staging: wilc1000: wilc_wfi_cfgoperations: Replace memset with eth_zero_addr Use eth_zero_addr to assign the zero address to the given address array instead of memset when second argument is address of zero. The Coccinelle patch used - // @eth_zero_addr@ expression e; @@ -memset(e,0x00,ETH_ALEN); +eth_zero_addr(e); // Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 2f67546f3fac..64727774235b 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -562,7 +562,7 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, * = SUCCESSFUL_STATUSCODE, while mac status is MAC_DISCONNECTED (which means something wrong happened) */ u16ConnectStatus = WLAN_STATUS_UNSPECIFIED_FAILURE; linux_wlan_set_bssid(priv->dev, NullBssid); - memset(u8ConnectedSSID, 0, ETH_ALEN); + eth_zero_addr(u8ConnectedSSID); /*Invalidate u8WLANChannel value on wlan0 disconnect*/ if (!pstrWFIDrv->u8P2PConnect) @@ -619,9 +619,9 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, u8P2Plocalrandom = 0x01; u8P2Precvrandom = 0x00; bWilc_ie = false; - memset(priv->au8AssociatedBss, 0, ETH_ALEN); + eth_zero_addr(priv->au8AssociatedBss); linux_wlan_set_bssid(priv->dev, NullBssid); - memset(u8ConnectedSSID, 0, ETH_ALEN); + eth_zero_addr(u8ConnectedSSID); /*Invalidate u8WLANChannel value on wlan0 disconnect*/ if (!pstrWFIDrv->u8P2PConnect) From 281dd5ac142fc9ae19ba12353e860cfcab13b8ab Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 17:00:33 +0530 Subject: [PATCH 1347/2431] Staging: wilc1000: host_interface: Replace memset with eth_zero_addr Use eth_zero_addr to assign the zero address to the given address array instead of memset when second argument is address of zero. The Coccinelle patch used - // @eth_zero_addr@ expression e; @@ -memset(e,0x00,ETH_ALEN); +eth_zero_addr(e); // Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 80697232f772..ba1d05d5e926 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -6,6 +6,7 @@ #include "coreconfigurator.h" #include "wilc_wlan_if.h" #include "wilc_msgqueue.h" +#include extern u8 connecting; @@ -1949,7 +1950,7 @@ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = NULL; } - memset(u8ConnectedSSID, 0, ETH_ALEN); + eth_zero_addr(u8ConnectedSSID); /*Freeing flushed join request params on connect timeout*/ if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { kfree(gu8FlushedJoinReq); @@ -2205,11 +2206,11 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, if ((u8MacStatus == MAC_CONNECTED) && (strConnectInfo.u16ConnectStatus != SUCCESSFUL_STATUSCODE)) { PRINT_ER("Received MAC status is MAC_CONNECTED while the received status code in Asoc Resp is not SUCCESSFUL_STATUSCODE\n"); - memset(u8ConnectedSSID, 0, ETH_ALEN); + eth_zero_addr(u8ConnectedSSID); } else if (u8MacStatus == MAC_DISCONNECTED) { PRINT_ER("Received MAC status is MAC_DISCONNECTED\n"); - memset(u8ConnectedSSID, 0, ETH_ALEN); + eth_zero_addr(u8ConnectedSSID); } /* TODO: mostafa: correct BSSID should be retrieved from actual BSSID received from AP */ @@ -2327,7 +2328,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, PRINT_ER("Connect result callback function is NULL\n"); } - memset(pstrWFIDrv->au8AssociatedBSSID, 0, ETH_ALEN); + eth_zero_addr(pstrWFIDrv->au8AssociatedBSSID); /* Deallocation */ @@ -2789,7 +2790,7 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) g_obtainingIP = false; host_int_set_power_mgmt(pstrWFIDrv, 0, 0); - memset(u8ConnectedSSID, 0, ETH_ALEN); + eth_zero_addr(u8ConnectedSSID); s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, get_id_from_handler(pstrWFIDrv)); @@ -2831,7 +2832,7 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; - memset(pstrWFIDrv->au8AssociatedBSSID, 0, ETH_ALEN); + eth_zero_addr(pstrWFIDrv->au8AssociatedBSSID); /* Deallocation */ From 960819a1e572df82cfa8197133ed3f8aca487e1b Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Tue, 6 Oct 2015 22:14:02 +0300 Subject: [PATCH 1348/2431] Staging: wilc1000: fix spelling mistake. This patch corrects the spelling of the word function by adding missing letter. Problem found by checkpatch.pl : CHECK: 'funcion' may be misspelled - perhaps 'function'? Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 65a130ddd7d3..9f87d05d6d02 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -264,7 +264,7 @@ static inline u16 get_assoc_resp_cap_info(u8 *data) return cap_info; } -/* This funcion extracts the association status code from the incoming */ +/* This function extracts the association status code from the incoming */ /* association response frame and returns association status code */ static inline u16 get_asoc_status(u8 *data) { From 17db84eba18eaa20fab687bf38418a2286cb085a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincent=20Stehl=C3=A9?= Date: Wed, 7 Oct 2015 07:08:25 +0200 Subject: [PATCH 1349/2431] staging: wilc1000: avoid NULL pointer dereference on error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The host_int_init() function can dereference the pstrWFIDrv pointer while it is NULL on its error path. Jump directly to the _fail_ error label in the end of the error handling path to avoid that. By doing that we also skip stopping our kthread and destroying our message queue, but they were not started or created yet in that case anyway. This fixes the following coccinelle error: drivers/staging/wilc1000/host_interface.c:6100:17-33: ERROR: pstrWFIDrv is NULL but dereferenced. Signed-off-by: Vincent Stehlé Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Cc: Nicolas Ferre Cc: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ba1d05d5e926..bb833d3cfd04 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -5861,7 +5861,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) pstrWFIDrv = kzalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); if (!pstrWFIDrv) { result = -ENOMEM; - goto _fail_timer_2; + goto _fail_; } *phWFIDrv = pstrWFIDrv; err = add_handler_in_list(pstrWFIDrv); From 53bf4d067d5115ac740bdc907023afe95e449fdd Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:38 +0200 Subject: [PATCH 1350/2431] Add tsys02d meas-spec driver support Support for TSYS02D temperature sensor Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron --- .../ABI/testing/sysfs-bus-iio-meas-spec | 7 + drivers/iio/temperature/Kconfig | 11 + drivers/iio/temperature/Makefile | 1 + drivers/iio/temperature/tsys02d.c | 191 ++++++++++++++++++ 4 files changed, 210 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-meas-spec create mode 100644 drivers/iio/temperature/tsys02d.c diff --git a/Documentation/ABI/testing/sysfs-bus-iio-meas-spec b/Documentation/ABI/testing/sysfs-bus-iio-meas-spec new file mode 100644 index 000000000000..6d47e548eee5 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-iio-meas-spec @@ -0,0 +1,7 @@ +What: /sys/bus/iio/devices/iio:deviceX/battery_low +KernelVersion: 4.1.0 +Contact: linux-iio@vger.kernel.org +Description: + Reading returns either '1' or '0'. '1' means that the + battery level supplied to sensor is below 2.25V. + This ABI is available for tsys02d, htu21, ms8607 diff --git a/drivers/iio/temperature/Kconfig b/drivers/iio/temperature/Kconfig index 35712032b4b9..c4664e5de791 100644 --- a/drivers/iio/temperature/Kconfig +++ b/drivers/iio/temperature/Kconfig @@ -34,4 +34,15 @@ config TSYS01 This driver can also be built as a module. If so, the module will be called tsys01. +config TSYS02D + tristate "Measurement Specialties TSYS02D temperature sensor" + depends on I2C + select IIO_MS_SENSORS_I2C + help + If you say yes here you get support for the Measurement Specialties + TSYS02D temperature sensor. + + This driver can also be built as a module. If so, the module will + be called tsys02d. + endmenu diff --git a/drivers/iio/temperature/Makefile b/drivers/iio/temperature/Makefile index 368a2a2ffe52..02bc79d49b24 100644 --- a/drivers/iio/temperature/Makefile +++ b/drivers/iio/temperature/Makefile @@ -5,3 +5,4 @@ obj-$(CONFIG_MLX90614) += mlx90614.o obj-$(CONFIG_TMP006) += tmp006.o obj-$(CONFIG_TSYS01) += tsys01.o +obj-$(CONFIG_TSYS02D) += tsys02d.o diff --git a/drivers/iio/temperature/tsys02d.c b/drivers/iio/temperature/tsys02d.c new file mode 100644 index 000000000000..4c1fbd52ea08 --- /dev/null +++ b/drivers/iio/temperature/tsys02d.c @@ -0,0 +1,191 @@ +/* + * tsys02d.c - Support for Measurement-Specialties tsys02d temperature sensor + * + * Copyright (c) 2015 Measurement-Specialties + * + * Licensed under the GPL-2. + * + * (7-bit I2C slave address 0x40) + * + * Datasheet: + * http://www.meas-spec.com/downloads/Digital_Sensor_TSYS02D.pdf + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "../common/ms_sensors/ms_sensors_i2c.h" + +#define TSYS02D_RESET 0xFE + +static const int tsys02d_samp_freq[4] = { 20, 40, 70, 140 }; +/* String copy of the above const for readability purpose */ +static const char tsys02d_show_samp_freq[] = "20 40 70 140"; + +static int tsys02d_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *channel, int *val, + int *val2, long mask) +{ + int ret; + s32 temperature; + struct ms_ht_dev *dev_data = iio_priv(indio_dev); + + switch (mask) { + case IIO_CHAN_INFO_PROCESSED: + switch (channel->type) { + case IIO_TEMP: /* in milli °C */ + ret = ms_sensors_ht_read_temperature(dev_data, + &temperature); + if (ret) + return ret; + *val = temperature; + + return IIO_VAL_INT; + default: + return -EINVAL; + } + case IIO_CHAN_INFO_SAMP_FREQ: + *val = tsys02d_samp_freq[dev_data->res_index]; + + return IIO_VAL_INT; + default: + return -EINVAL; + } +} + +static int tsys02d_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct ms_ht_dev *dev_data = iio_priv(indio_dev); + int i, ret; + + switch (mask) { + case IIO_CHAN_INFO_SAMP_FREQ: + i = ARRAY_SIZE(tsys02d_samp_freq); + while (i-- > 0) + if (val == tsys02d_samp_freq[i]) + break; + if (i < 0) + return -EINVAL; + mutex_lock(&dev_data->lock); + dev_data->res_index = i; + ret = ms_sensors_write_resolution(dev_data, i); + mutex_unlock(&dev_data->lock); + + return ret; + default: + return -EINVAL; + } +} + +static const struct iio_chan_spec tsys02d_channels[] = { + { + .type = IIO_TEMP, + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_PROCESSED), + .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), + } +}; + +static ssize_t tsys02_read_battery_low(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct iio_dev *indio_dev = dev_to_iio_dev(dev); + struct ms_ht_dev *dev_data = iio_priv(indio_dev); + + return ms_sensors_show_battery_low(dev_data, buf); +} + +static IIO_CONST_ATTR_SAMP_FREQ_AVAIL(tsys02d_show_samp_freq); +static IIO_DEVICE_ATTR(battery_low, S_IRUGO, + tsys02_read_battery_low, NULL, 0); + +static struct attribute *tsys02d_attributes[] = { + &iio_const_attr_sampling_frequency_available.dev_attr.attr, + &iio_dev_attr_battery_low.dev_attr.attr, + NULL, +}; + +static const struct attribute_group tsys02d_attribute_group = { + .attrs = tsys02d_attributes, +}; + +static const struct iio_info tsys02d_info = { + .read_raw = tsys02d_read_raw, + .write_raw = tsys02d_write_raw, + .attrs = &tsys02d_attribute_group, + .driver_module = THIS_MODULE, +}; + +static int tsys02d_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct ms_ht_dev *dev_data; + struct iio_dev *indio_dev; + int ret; + u64 serial_number; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WRITE_BYTE_DATA | + I2C_FUNC_SMBUS_WRITE_BYTE | + I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + dev_err(&client->dev, + "Adapter does not support some i2c transaction\n"); + return -ENODEV; + } + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*dev_data)); + if (!indio_dev) + return -ENOMEM; + + dev_data = iio_priv(indio_dev); + dev_data->client = client; + dev_data->res_index = 0; + mutex_init(&dev_data->lock); + + indio_dev->info = &tsys02d_info; + indio_dev->name = id->name; + indio_dev->dev.parent = &client->dev; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->channels = tsys02d_channels; + indio_dev->num_channels = ARRAY_SIZE(tsys02d_channels); + + i2c_set_clientdata(client, indio_dev); + + ret = ms_sensors_reset(client, TSYS02D_RESET, 15000); + if (ret) + return ret; + + ret = ms_sensors_read_serial(client, &serial_number); + if (ret) + return ret; + dev_info(&client->dev, "Serial number : %llx", serial_number); + + return devm_iio_device_register(&client->dev, indio_dev); +} + +static const struct i2c_device_id tsys02d_id[] = { + {"tsys02d", 0}, + {} +}; + +static struct i2c_driver tsys02d_driver = { + .probe = tsys02d_probe, + .id_table = tsys02d_id, + .driver = { + .name = "tsys02d", + }, +}; + +module_i2c_driver(tsys02d_driver); + +MODULE_DESCRIPTION("Measurement-Specialties tsys02d temperature driver"); +MODULE_AUTHOR("William Markezana "); +MODULE_AUTHOR("Ludovic Tancerel "); +MODULE_LICENSE("GPL v2"); From 2b5c53d2c958bda92310d1b371a9314f4aa8c274 Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:39 +0200 Subject: [PATCH 1351/2431] Add htu21 meas-spec driver support Support for HTU21 temperature & humidity sensor Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron --- Documentation/ABI/testing/sysfs-bus-iio | 10 ++ drivers/iio/humidity/Kconfig | 11 ++ drivers/iio/humidity/Makefile | 1 + drivers/iio/humidity/htu21.c | 226 ++++++++++++++++++++++++ 4 files changed, 248 insertions(+) create mode 100644 drivers/iio/humidity/htu21.c diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 37868634945d..0439c2aaf741 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio @@ -1481,3 +1481,13 @@ Contact: linux-iio@vger.kernel.org Description: Raw (unscaled no offset etc.) resistance reading that can be processed into an ohm value. + +What: /sys/bus/iio/devices/iio:deviceX/heater_enable +KernelVersion: 4.1.0 +Contact: linux-iio@vger.kernel.org +Description: + '1' (enable) or '0' (disable) specifying the enable + of heater function. Same reading values apply + This ABI is especially applicable for humidity sensors + to heatup the device and get rid of any condensation + in some humidity environment diff --git a/drivers/iio/humidity/Kconfig b/drivers/iio/humidity/Kconfig index 353ee9ade95d..a7e5ee51e021 100644 --- a/drivers/iio/humidity/Kconfig +++ b/drivers/iio/humidity/Kconfig @@ -22,6 +22,17 @@ config HDC100X To compile this driver as a module, choose M here: the module will be called hdc100x. +config HTU21 + tristate "Measurement Specialties HTU21 humidity & temperature sensor" + depends on I2C + select IIO_MS_SENSORS_I2C + help + If you say yes here you get support for the Measurement Specialties + HTU21 humidity and temperature sensor. + + This driver can also be built as a module. If so, the module will + be called htu21. + config SI7005 tristate "SI7005 relative humidity and temperature sensor" depends on I2C diff --git a/drivers/iio/humidity/Makefile b/drivers/iio/humidity/Makefile index 3e62c0a12d5e..c9f089a9a6b8 100644 --- a/drivers/iio/humidity/Makefile +++ b/drivers/iio/humidity/Makefile @@ -4,5 +4,6 @@ obj-$(CONFIG_DHT11) += dht11.o obj-$(CONFIG_HDC100X) += hdc100x.o +obj-$(CONFIG_HTU21) += htu21.o obj-$(CONFIG_SI7005) += si7005.o obj-$(CONFIG_SI7020) += si7020.o diff --git a/drivers/iio/humidity/htu21.c b/drivers/iio/humidity/htu21.c new file mode 100644 index 000000000000..b7f8d0520dde --- /dev/null +++ b/drivers/iio/humidity/htu21.c @@ -0,0 +1,226 @@ +/* + * htu21.c - Support for Measurement-Specialties + * htu21 temperature & humidity sensor + * + * Copyright (c) 2014 Measurement-Specialties + * + * Licensed under the GPL-2. + * + * (7-bit I2C slave address 0x40) + * + * Datasheet: + * http://www.meas-spec.com/downloads/HTU21D.pdf + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "../common/ms_sensors/ms_sensors_i2c.h" + +#define HTU21_RESET 0xFE + +static const int htu21_samp_freq[4] = { 20, 40, 70, 120 }; +/* String copy of the above const for readability purpose */ +static const char htu21_show_samp_freq[] = "20 40 70 120"; + +static int htu21_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *channel, int *val, + int *val2, long mask) +{ + int ret, temperature; + unsigned int humidity; + struct ms_ht_dev *dev_data = iio_priv(indio_dev); + + switch (mask) { + case IIO_CHAN_INFO_PROCESSED: + switch (channel->type) { + case IIO_TEMP: /* in milli °C */ + ret = ms_sensors_ht_read_temperature(dev_data, + &temperature); + if (ret) + return ret; + *val = temperature; + + return IIO_VAL_INT; + case IIO_HUMIDITYRELATIVE: /* in milli %RH */ + ret = ms_sensors_ht_read_humidity(dev_data, + &humidity); + if (ret) + return ret; + *val = humidity; + + return IIO_VAL_INT; + default: + return -EINVAL; + } + case IIO_CHAN_INFO_SAMP_FREQ: + *val = htu21_samp_freq[dev_data->res_index]; + + return IIO_VAL_INT; + default: + return -EINVAL; + } +} + +static int htu21_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct ms_ht_dev *dev_data = iio_priv(indio_dev); + int i, ret; + + switch (mask) { + case IIO_CHAN_INFO_SAMP_FREQ: + i = ARRAY_SIZE(htu21_samp_freq); + while (i-- > 0) + if (val == htu21_samp_freq[i]) + break; + if (i < 0) + return -EINVAL; + mutex_lock(&dev_data->lock); + dev_data->res_index = i; + ret = ms_sensors_write_resolution(dev_data, i); + mutex_unlock(&dev_data->lock); + + return ret; + default: + return -EINVAL; + } +} + +static const struct iio_chan_spec htu21_channels[] = { + { + .type = IIO_TEMP, + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_PROCESSED), + .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), + }, + { + .type = IIO_HUMIDITYRELATIVE, + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_PROCESSED), + .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), + } +}; + +static ssize_t htu21_show_battery_low(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct iio_dev *indio_dev = dev_to_iio_dev(dev); + struct ms_ht_dev *dev_data = iio_priv(indio_dev); + + return ms_sensors_show_battery_low(dev_data, buf); +} + +static ssize_t htu21_show_heater(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct iio_dev *indio_dev = dev_to_iio_dev(dev); + struct ms_ht_dev *dev_data = iio_priv(indio_dev); + + return ms_sensors_show_heater(dev_data, buf); +} + +static ssize_t htu21_write_heater(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t len) +{ + struct iio_dev *indio_dev = dev_to_iio_dev(dev); + struct ms_ht_dev *dev_data = iio_priv(indio_dev); + + return ms_sensors_write_heater(dev_data, buf, len); +} + +static IIO_CONST_ATTR_SAMP_FREQ_AVAIL(htu21_show_samp_freq); +static IIO_DEVICE_ATTR(battery_low, S_IRUGO, + htu21_show_battery_low, NULL, 0); +static IIO_DEVICE_ATTR(heater_enable, S_IRUGO | S_IWUSR, + htu21_show_heater, htu21_write_heater, 0); + +static struct attribute *htu21_attributes[] = { + &iio_const_attr_sampling_frequency_available.dev_attr.attr, + &iio_dev_attr_battery_low.dev_attr.attr, + &iio_dev_attr_heater_enable.dev_attr.attr, + NULL, +}; + +static const struct attribute_group htu21_attribute_group = { + .attrs = htu21_attributes, +}; + +static const struct iio_info htu21_info = { + .read_raw = htu21_read_raw, + .write_raw = htu21_write_raw, + .attrs = &htu21_attribute_group, + .driver_module = THIS_MODULE, +}; + +static int htu21_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct ms_ht_dev *dev_data; + struct iio_dev *indio_dev; + int ret; + u64 serial_number; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WRITE_BYTE_DATA | + I2C_FUNC_SMBUS_WRITE_BYTE | + I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + dev_err(&client->dev, + "Adapter does not support some i2c transaction\n"); + return -ENODEV; + } + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*dev_data)); + if (!indio_dev) + return -ENOMEM; + + dev_data = iio_priv(indio_dev); + dev_data->client = client; + dev_data->res_index = 0; + mutex_init(&dev_data->lock); + + indio_dev->info = &htu21_info; + indio_dev->name = id->name; + indio_dev->dev.parent = &client->dev; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->channels = htu21_channels; + indio_dev->num_channels = ARRAY_SIZE(htu21_channels); + + i2c_set_clientdata(client, indio_dev); + + ret = ms_sensors_reset(client, HTU21_RESET, 15000); + if (ret) + return ret; + + ret = ms_sensors_read_serial(client, &serial_number); + if (ret) + return ret; + dev_info(&client->dev, "Serial number : %llx", serial_number); + + return devm_iio_device_register(&client->dev, indio_dev); +} + +static const struct i2c_device_id htu21_id[] = { + {"htu21", 0}, + {} +}; + +static struct i2c_driver htu21_driver = { + .probe = htu21_probe, + .id_table = htu21_id, + .driver = { + .name = "htu21", + }, +}; + +module_i2c_driver(htu21_driver); + +MODULE_DESCRIPTION("Measurement-Specialties htu21 temperature and humidity driver"); +MODULE_AUTHOR("William Markezana "); +MODULE_AUTHOR("Ludovic Tancerel "); +MODULE_LICENSE("GPL v2"); From 64a70c6502111a2d5bd1dd5eddfa33039aa897b7 Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:40 +0200 Subject: [PATCH 1352/2431] Add ms5637 meas-spec driver support Support for MS5637 temperature & pressure sensor Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron --- drivers/iio/pressure/Kconfig | 11 ++ drivers/iio/pressure/Makefile | 1 + drivers/iio/pressure/ms5637.c | 186 ++++++++++++++++++++++++++++++++++ 3 files changed, 198 insertions(+) create mode 100644 drivers/iio/pressure/ms5637.c diff --git a/drivers/iio/pressure/Kconfig b/drivers/iio/pressure/Kconfig index 4745179ff64b..9282ec4319fc 100644 --- a/drivers/iio/pressure/Kconfig +++ b/drivers/iio/pressure/Kconfig @@ -79,6 +79,17 @@ config MS5611_SPI To compile this driver as a module, choose M here: the module will be called ms5611_spi. +config MS5637 + tristate "Measurement Specialties MS5637 pressure & temperature sensor" + depends on I2C + select IIO_MS_SENSORS_I2C + help + If you say yes here you get support for the Measurement Specialties + MS5637 pressure and temperature sensor. + + This driver can also be built as a module. If so, the module will + be called ms5637. + config IIO_ST_PRESS tristate "STMicroelectronics pressure sensor Driver" depends on (I2C || SPI_MASTER) && SYSFS diff --git a/drivers/iio/pressure/Makefile b/drivers/iio/pressure/Makefile index a4f98f8d90ed..46571c96823f 100644 --- a/drivers/iio/pressure/Makefile +++ b/drivers/iio/pressure/Makefile @@ -10,6 +10,7 @@ obj-$(CONFIG_MPL3115) += mpl3115.o obj-$(CONFIG_MS5611) += ms5611_core.o obj-$(CONFIG_MS5611_I2C) += ms5611_i2c.o obj-$(CONFIG_MS5611_SPI) += ms5611_spi.o +obj-$(CONFIG_MS5637) += ms5637.o obj-$(CONFIG_IIO_ST_PRESS) += st_pressure.o st_pressure-y := st_pressure_core.o st_pressure-$(CONFIG_IIO_BUFFER) += st_pressure_buffer.o diff --git a/drivers/iio/pressure/ms5637.c b/drivers/iio/pressure/ms5637.c new file mode 100644 index 000000000000..e3ad9d39b966 --- /dev/null +++ b/drivers/iio/pressure/ms5637.c @@ -0,0 +1,186 @@ +/* + * ms5637.c - Support for Measurement-Specialties ms5637 + * pressure & temperature sensor + * + * Copyright (c) 2015 Measurement-Specialties + * + * Licensed under the GPL-2. + * + * (7-bit I2C slave address 0x76) + * + * Datasheet: + * http://www.meas-spec.com/downloads/MS5637-02BA03.pdf + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../common/ms_sensors/ms_sensors_i2c.h" + +static const int ms5637_samp_freq[6] = { 960, 480, 240, 120, 60, 30 }; +/* String copy of the above const for readability purpose */ +static const char ms5637_show_samp_freq[] = "960 480 240 120 60 30"; + +static int ms5637_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *channel, int *val, + int *val2, long mask) +{ + int ret; + int temperature; + unsigned int pressure; + struct ms_tp_dev *dev_data = iio_priv(indio_dev); + + switch (mask) { + case IIO_CHAN_INFO_PROCESSED: + ret = ms_sensors_read_temp_and_pressure(dev_data, + &temperature, + &pressure); + if (ret) + return ret; + + switch (channel->type) { + case IIO_TEMP: /* in milli °C */ + *val = temperature; + + return IIO_VAL_INT; + case IIO_PRESSURE: /* in kPa */ + *val = pressure / 1000; + *val2 = (pressure % 1000) * 1000; + + return IIO_VAL_INT_PLUS_MICRO; + default: + return -EINVAL; + } + case IIO_CHAN_INFO_SAMP_FREQ: + *val = ms5637_samp_freq[dev_data->res_index]; + + return IIO_VAL_INT; + default: + return -EINVAL; + } +} + +static int ms5637_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct ms_tp_dev *dev_data = iio_priv(indio_dev); + int i; + + switch (mask) { + case IIO_CHAN_INFO_SAMP_FREQ: + i = ARRAY_SIZE(ms5637_samp_freq); + while (i-- > 0) + if (val == ms5637_samp_freq[i]) + break; + if (i < 0) + return -EINVAL; + dev_data->res_index = i; + + return 0; + default: + return -EINVAL; + } +} + +static const struct iio_chan_spec ms5637_channels[] = { + { + .type = IIO_TEMP, + .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), + .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), + }, + { + .type = IIO_PRESSURE, + .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), + .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), + } +}; + +static IIO_CONST_ATTR_SAMP_FREQ_AVAIL(ms5637_show_samp_freq); + +static struct attribute *ms5637_attributes[] = { + &iio_const_attr_sampling_frequency_available.dev_attr.attr, + NULL, +}; + +static const struct attribute_group ms5637_attribute_group = { + .attrs = ms5637_attributes, +}; + +static const struct iio_info ms5637_info = { + .read_raw = ms5637_read_raw, + .write_raw = ms5637_write_raw, + .attrs = &ms5637_attribute_group, + .driver_module = THIS_MODULE, +}; + +static int ms5637_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct ms_tp_dev *dev_data; + struct iio_dev *indio_dev; + int ret; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_WORD_DATA | + I2C_FUNC_SMBUS_WRITE_BYTE | + I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + dev_err(&client->dev, + "Adapter does not support some i2c transaction\n"); + return -ENODEV; + } + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*dev_data)); + if (!indio_dev) + return -ENOMEM; + + dev_data = iio_priv(indio_dev); + dev_data->client = client; + dev_data->res_index = 5; + mutex_init(&dev_data->lock); + + indio_dev->info = &ms5637_info; + indio_dev->name = id->name; + indio_dev->dev.parent = &client->dev; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->channels = ms5637_channels; + indio_dev->num_channels = ARRAY_SIZE(ms5637_channels); + + i2c_set_clientdata(client, indio_dev); + + ret = ms_sensors_reset(client, 0x1E, 3000); + if (ret) + return ret; + + ret = ms_sensors_tp_read_prom(dev_data); + if (ret) + return ret; + + return devm_iio_device_register(&client->dev, indio_dev); +} + +static const struct i2c_device_id ms5637_id[] = { + {"ms5637", 0}, + {} +}; + +static struct i2c_driver ms5637_driver = { + .probe = ms5637_probe, + .id_table = ms5637_id, + .driver = { + .name = "ms5637" + }, +}; + +module_i2c_driver(ms5637_driver); + +MODULE_DESCRIPTION("Measurement-Specialties ms5637 temperature & pressure driver"); +MODULE_AUTHOR("William Markezana "); +MODULE_AUTHOR("Ludovic Tancerel "); +MODULE_LICENSE("GPL v2"); From 1b75ce658775c9131ea6689ffadcde2663983b6c Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:41 +0200 Subject: [PATCH 1353/2431] Add ms8607 meas-spec driver support Support for MS8607 temperature, pressure & humidity sensor. This part is using functions from MS5637 for temperature and pressure and HTU21 for humidity Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron --- .../ABI/testing/sysfs-bus-iio-meas-spec | 1 + drivers/iio/humidity/Kconfig | 2 ++ drivers/iio/humidity/htu21.c | 33 +++++++++++++++++-- drivers/iio/pressure/Kconfig | 2 ++ drivers/iio/pressure/ms5637.c | 6 +++- 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-bus-iio-meas-spec b/Documentation/ABI/testing/sysfs-bus-iio-meas-spec index 6d47e548eee5..1a6265e92e2f 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio-meas-spec +++ b/Documentation/ABI/testing/sysfs-bus-iio-meas-spec @@ -5,3 +5,4 @@ Description: Reading returns either '1' or '0'. '1' means that the battery level supplied to sensor is below 2.25V. This ABI is available for tsys02d, htu21, ms8607 + This ABI is available for htu21, ms8607 diff --git a/drivers/iio/humidity/Kconfig b/drivers/iio/humidity/Kconfig index a7e5ee51e021..6a23698d347c 100644 --- a/drivers/iio/humidity/Kconfig +++ b/drivers/iio/humidity/Kconfig @@ -29,6 +29,8 @@ config HTU21 help If you say yes here you get support for the Measurement Specialties HTU21 humidity and temperature sensor. + This driver is also used for MS8607 temperature, pressure & humidity + sensor This driver can also be built as a module. If so, the module will be called htu21. diff --git a/drivers/iio/humidity/htu21.c b/drivers/iio/humidity/htu21.c index b7f8d0520dde..d1636a74980e 100644 --- a/drivers/iio/humidity/htu21.c +++ b/drivers/iio/humidity/htu21.c @@ -1,6 +1,7 @@ /* * htu21.c - Support for Measurement-Specialties * htu21 temperature & humidity sensor + * and humidity part of MS8607 sensor * * Copyright (c) 2014 Measurement-Specialties * @@ -10,6 +11,8 @@ * * Datasheet: * http://www.meas-spec.com/downloads/HTU21D.pdf + * Datasheet: + * http://www.meas-spec.com/downloads/MS8607-02BA01.pdf */ #include @@ -24,6 +27,11 @@ #define HTU21_RESET 0xFE +enum { + HTU21, + MS8607 +}; + static const int htu21_samp_freq[4] = { 20, 40, 70, 120 }; /* String copy of the above const for readability purpose */ static const char htu21_show_samp_freq[] = "20 40 70 120"; @@ -106,6 +114,18 @@ static const struct iio_chan_spec htu21_channels[] = { } }; +/* + * Meas Spec recommendation is to not read temperature + * on this driver part for MS8607 + */ +static const struct iio_chan_spec ms8607_channels[] = { + { + .type = IIO_HUMIDITYRELATIVE, + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_PROCESSED), + .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), + } +}; + static ssize_t htu21_show_battery_low(struct device *dev, struct device_attribute *attr, char *buf) { @@ -188,8 +208,14 @@ static int htu21_probe(struct i2c_client *client, indio_dev->name = id->name; indio_dev->dev.parent = &client->dev; indio_dev->modes = INDIO_DIRECT_MODE; - indio_dev->channels = htu21_channels; - indio_dev->num_channels = ARRAY_SIZE(htu21_channels); + + if (id->driver_data == MS8607) { + indio_dev->channels = ms8607_channels; + indio_dev->num_channels = ARRAY_SIZE(ms8607_channels); + } else { + indio_dev->channels = htu21_channels; + indio_dev->num_channels = ARRAY_SIZE(htu21_channels); + } i2c_set_clientdata(client, indio_dev); @@ -206,7 +232,8 @@ static int htu21_probe(struct i2c_client *client, } static const struct i2c_device_id htu21_id[] = { - {"htu21", 0}, + {"htu21", HTU21}, + {"ms8607-humidity", MS8607}, {} }; diff --git a/drivers/iio/pressure/Kconfig b/drivers/iio/pressure/Kconfig index 9282ec4319fc..6f2e7c9ac23e 100644 --- a/drivers/iio/pressure/Kconfig +++ b/drivers/iio/pressure/Kconfig @@ -86,6 +86,8 @@ config MS5637 help If you say yes here you get support for the Measurement Specialties MS5637 pressure and temperature sensor. + This driver is also used for MS8607 temperature, pressure & humidity + sensor This driver can also be built as a module. If so, the module will be called ms5637. diff --git a/drivers/iio/pressure/ms5637.c b/drivers/iio/pressure/ms5637.c index e3ad9d39b966..e8d0e0da938d 100644 --- a/drivers/iio/pressure/ms5637.c +++ b/drivers/iio/pressure/ms5637.c @@ -1,5 +1,5 @@ /* - * ms5637.c - Support for Measurement-Specialties ms5637 + * ms5637.c - Support for Measurement-Specialties ms5637 and ms8607 * pressure & temperature sensor * * Copyright (c) 2015 Measurement-Specialties @@ -10,7 +10,10 @@ * * Datasheet: * http://www.meas-spec.com/downloads/MS5637-02BA03.pdf + * Datasheet: + * http://www.meas-spec.com/downloads/MS8607-02BA01.pdf */ + #include #include #include @@ -167,6 +170,7 @@ static int ms5637_probe(struct i2c_client *client, static const struct i2c_device_id ms5637_id[] = { {"ms5637", 0}, + {"ms8607-temppressure", 1}, {} }; From 18a16b5e26c74dda2881c8f2977d702fd0e13fda Mon Sep 17 00:00:00 2001 From: Hugo Camboulive Date: Sun, 4 Oct 2015 16:30:45 +0000 Subject: [PATCH 1354/2431] staging: iio: adc: fix comment block coding style issue This patch to ad7746.c makes the comment blocks end with a */ on a separate line, and start with a /* on an empty line. Signed-off-by: Hugo Camboulive Signed-off-by: Jonathan Cameron --- drivers/staging/iio/cdc/ad7746.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index ca7d33f3b629..c7fa2a6ac878 100644 --- a/drivers/staging/iio/cdc/ad7746.c +++ b/drivers/staging/iio/cdc/ad7746.c @@ -528,10 +528,11 @@ static int ad7746_write_raw(struct iio_dev *indio_dev, goto out; } - /* CAPDAC Scale = 21pF_typ / 127 + /* + * CAPDAC Scale = 21pF_typ / 127 * CIN Scale = 8.192pF / 2^24 * Offset Scale = CAPDAC Scale / CIN Scale = 338646 - * */ + */ val /= 338646; @@ -600,7 +601,8 @@ static int ad7746_read_raw(struct iio_dev *indio_dev, switch (chan->type) { case IIO_TEMP: - /* temperature in milli degrees Celsius + /* + * temperature in milli degrees Celsius * T = ((*val / 2048) - 4096) * 1000 */ *val = (*val * 125) / 256; From d3a21ce0c60365991e59bbe848457c08f0c3c7ca Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sat, 26 Sep 2015 23:18:57 -0700 Subject: [PATCH 1355/2431] iio: hdc100x: correct IIO_CHAN_INFO_OFFSET value Previous offset wasn't applied in the correct order and invalid. This patchset fixes this issue, and also has the correct scale value applied to the offset. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron --- drivers/iio/humidity/hdc100x.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/iio/humidity/hdc100x.c b/drivers/iio/humidity/hdc100x.c index 28245782ecfb..a7f61e881a49 100644 --- a/drivers/iio/humidity/hdc100x.c +++ b/drivers/iio/humidity/hdc100x.c @@ -221,8 +221,9 @@ static int hdc100x_read_raw(struct iio_dev *indio_dev, } break; case IIO_CHAN_INFO_OFFSET: - *val = -40; - return IIO_VAL_INT; + *val = -3971; + *val2 = 879096; + return IIO_VAL_INT_PLUS_MICRO; default: return -EINVAL; } From 862a76acb2a033b886880fc70db19f00a036b4aa Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:53 +0200 Subject: [PATCH 1356/2431] iio:dac:m62332: share scale and offset This device simply uses its Vcc as reference voltage, so the same scale applies for all channels. Also offset doesn't appear to be different for any channel. Represent this by switching these two attributes to info_mask_shared_by_type. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- drivers/iio/dac/m62332.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index c23d7fa889ee..cffc0630ed32 100644 --- a/drivers/iio/dac/m62332.c +++ b/drivers/iio/dac/m62332.c @@ -173,15 +173,15 @@ static const struct iio_info m62332_info = { .driver_module = THIS_MODULE, }; -#define M62332_CHANNEL(chan) { \ - .type = IIO_VOLTAGE, \ - .indexed = 1, \ - .output = 1, \ - .channel = (chan), \ - .datasheet_name = "CH" #chan, \ - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \ - BIT(IIO_CHAN_INFO_SCALE) | \ - BIT(IIO_CHAN_INFO_OFFSET), \ +#define M62332_CHANNEL(chan) { \ + .type = IIO_VOLTAGE, \ + .indexed = 1, \ + .output = 1, \ + .channel = (chan), \ + .datasheet_name = "CH" #chan, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) | \ + BIT(IIO_CHAN_INFO_OFFSET), \ } static const struct iio_chan_spec m62332_channels[M62332_CHANNELS] = { From 847e3928de0998883219d7052cf4c049c21966e9 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:54 +0200 Subject: [PATCH 1357/2431] iio:dac:m62332: shutdown on remove The regulator framework requests to balance regulator_enable() calls with regulator_disable() calls. To meet this requirement, set channels to 0 on remove, which implies a regulator_disable() call in case that channel was enabled. Signed-off-by: Hartmut Knaack Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron --- drivers/iio/dac/m62332.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index cffc0630ed32..c61720de8606 100644 --- a/drivers/iio/dac/m62332.c +++ b/drivers/iio/dac/m62332.c @@ -243,6 +243,8 @@ static int m62332_remove(struct i2c_client *client) iio_device_unregister(indio_dev); iio_map_array_unregister(indio_dev); + m62332_set_value(indio_dev, 0, 0); + m62332_set_value(indio_dev, 0, 1); return 0; } From 7d2da8eaa92585769dfbafe285b94c8f743510f6 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:55 +0200 Subject: [PATCH 1358/2431] iio:dac:m62332: use ARRAY_SIZE Make use of ARRAY_SIZE to prevent buffer issues. Signed-off-by: Hartmut Knaack Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron --- drivers/iio/dac/m62332.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index c61720de8606..fe750982b502 100644 --- a/drivers/iio/dac/m62332.c +++ b/drivers/iio/dac/m62332.c @@ -62,8 +62,8 @@ static int m62332_set_value(struct iio_dev *indio_dev, goto out; } - res = i2c_master_send(client, outbuf, 2); - if (res >= 0 && res != 2) + res = i2c_master_send(client, outbuf, ARRAY_SIZE(outbuf)); + if (res >= 0 && res != ARRAY_SIZE(outbuf)) res = -EIO; if (res < 0) goto out; @@ -212,7 +212,7 @@ static int m62332_probe(struct i2c_client *client, /* establish that the iio_dev is a child of the i2c device */ indio_dev->dev.parent = &client->dev; - indio_dev->num_channels = M62332_CHANNELS; + indio_dev->num_channels = ARRAY_SIZE(m62332_channels); indio_dev->channels = m62332_channels; indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->info = &m62332_info; From 11687d4aaeb074e0a51c8008c80a14c6b8937b3d Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:56 +0200 Subject: [PATCH 1359/2431] iio:dac:m62332: drop unrequired variable A return variable is not required in _write_raw(), and dropping it reduces complexity, as well. Signed-off-by: Hartmut Knaack Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron --- drivers/iio/dac/m62332.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index fe750982b502..1b65fc007bce 100644 --- a/drivers/iio/dac/m62332.c +++ b/drivers/iio/dac/m62332.c @@ -112,21 +112,17 @@ static int m62332_read_raw(struct iio_dev *indio_dev, static int m62332_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int val, int val2, long mask) { - int ret; - switch (mask) { case IIO_CHAN_INFO_RAW: if (val < 0 || val > 255) return -EINVAL; - ret = m62332_set_value(indio_dev, val, chan->channel); - break; + return m62332_set_value(indio_dev, val, chan->channel); default: - ret = -EINVAL; break; } - return ret; + return -EINVAL; } #ifdef CONFIG_PM_SLEEP From acf2f67d055c656938a3980a0745ed62fb7985c9 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:57 +0200 Subject: [PATCH 1360/2431] iio:dac:m62332: address some style issues Fix some indentation issues and separate returns by empty lines (IIO style). Also rename the channel mask in _read_raw() to mask. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- drivers/iio/dac/m62332.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index 1b65fc007bce..fdb3e042c14d 100644 --- a/drivers/iio/dac/m62332.c +++ b/drivers/iio/dac/m62332.c @@ -40,8 +40,7 @@ struct m62332_data { #endif }; -static int m62332_set_value(struct iio_dev *indio_dev, - u8 val, int channel) +static int m62332_set_value(struct iio_dev *indio_dev, u8 val, int channel) { struct m62332_data *data = iio_priv(indio_dev); struct i2c_client *client = data->client; @@ -87,30 +86,35 @@ static int m62332_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, - long m) + long mask) { struct m62332_data *data = iio_priv(indio_dev); - switch (m) { + switch (mask) { case IIO_CHAN_INFO_SCALE: /* Corresponds to Vref / 2^(bits) */ *val = data->vref_mv; *val2 = 8; + return IIO_VAL_FRACTIONAL_LOG2; case IIO_CHAN_INFO_RAW: *val = data->raw[chan->channel]; + return IIO_VAL_INT; case IIO_CHAN_INFO_OFFSET: *val = 1; + return IIO_VAL_INT; default: break; } + return -EINVAL; } static int m62332_write_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, int val, int val2, long mask) + struct iio_chan_spec const *chan, int val, int val2, + long mask) { switch (mask) { case IIO_CHAN_INFO_RAW: @@ -195,6 +199,7 @@ static int m62332_probe(struct i2c_client *client, indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); if (!indio_dev) return -ENOMEM; + data = iio_priv(indio_dev); i2c_set_clientdata(client, indio_dev); data->client = client; @@ -230,6 +235,7 @@ static int m62332_probe(struct i2c_client *client, err: iio_map_array_unregister(indio_dev); + return ret; } From 399910534cca5f00d22438e80ecc7ccc7f4b8a14 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:58 +0200 Subject: [PATCH 1361/2431] iio:dac:m62332: use dynamic scale Some regulators can supply multiple voltages. To take changing voltages into account, the scale needs to be calculated on every read access. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- drivers/iio/dac/m62332.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index fdb3e042c14d..76e8b044b979 100644 --- a/drivers/iio/dac/m62332.c +++ b/drivers/iio/dac/m62332.c @@ -31,7 +31,6 @@ struct m62332_data { struct i2c_client *client; - u16 vref_mv; struct regulator *vcc; struct mutex mutex; u8 raw[M62332_CHANNELS]; @@ -89,11 +88,16 @@ static int m62332_read_raw(struct iio_dev *indio_dev, long mask) { struct m62332_data *data = iio_priv(indio_dev); + int ret; switch (mask) { case IIO_CHAN_INFO_SCALE: /* Corresponds to Vref / 2^(bits) */ - *val = data->vref_mv; + ret = regulator_get_voltage(data->vcc); + if (ret < 0) + return ret; + + *val = ret / 1000; /* mV */ *val2 = 8; return IIO_VAL_FRACTIONAL_LOG2; @@ -218,11 +222,6 @@ static int m62332_probe(struct i2c_client *client, indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->info = &m62332_info; - ret = regulator_get_voltage(data->vcc); - if (ret < 0) - return ret; - data->vref_mv = ret / 1000; /* mV */ - ret = iio_map_array_register(indio_dev, client->dev.platform_data); if (ret < 0) return ret; From c04782177f212686cd1d74225df34a5c292be25b Mon Sep 17 00:00:00 2001 From: Jonathan Cameron Date: Sun, 11 Oct 2015 12:55:11 +0100 Subject: [PATCH 1362/2431] iio:measurement specialties core: Fix endian sparse warnings. This patch changes various types to the appropriate endian specific versions. Also introduces an additional local variable to avoid a single variable being used for both be and cpu endianness. These aren't bugs as such, but clearing them up does make the code clearer. Warning was: sparse warnings: (new ones prefixed by >>) >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: sparse: incorrect type in assignment (different base types) drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: expected unsigned short [unsigned] [addressable] [usertype] send_buf drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: got restricted __be16 [usertype] >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: sparse: incorrect type in assignment (different base types) drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: expected unsigned short [unsigned] [addressable] [usertype] send_buf drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: got restricted __be16 [usertype] drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 Reported-by: kbuild test robot Signed-off-by: Jonathan Cameron --- .../iio/common/ms_sensors/ms_sensors_i2c.c | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c index 056c4f3bf497..669dc7c270f5 100644 --- a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c +++ b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c @@ -106,7 +106,7 @@ int ms_sensors_convert_and_read(void *cli, u8 conv, u8 rd, unsigned int delay, u32 *adc) { int ret; - u32 buf = 0; + __be32 buf = 0; struct i2c_client *client = (struct i2c_client *)cli; /* Trigger conversion */ @@ -186,8 +186,9 @@ static bool ms_sensors_crc_valid(u32 value) int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) { u8 i; - u64 rcv_buf = 0; - u16 send_buf; + __be64 rcv_buf = 0; + u64 rcv_val; + __be16 send_buf; int ret; struct i2c_msg msg[2] = { @@ -213,18 +214,18 @@ int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) return ret; } - rcv_buf = be64_to_cpu(rcv_buf); - dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_buf); + rcv_val = be64_to_cpu(rcv_buf); + dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_val); for (i = 0; i < 64; i += 16) { - if (!ms_sensors_crc_valid((rcv_buf >> i) & 0xFFFF)) + if (!ms_sensors_crc_valid((rcv_val >> i) & 0xFFFF)) return -ENODEV; } - *sn = (((rcv_buf >> 32) & 0xFF000000) | - ((rcv_buf >> 24) & 0x00FF0000) | - ((rcv_buf >> 16) & 0x0000FF00) | - ((rcv_buf >> 8) & 0x000000FF)) << 16; + *sn = (((rcv_val >> 32) & 0xFF000000) | + ((rcv_val >> 24) & 0x00FF0000) | + ((rcv_val >> 16) & 0x0000FF00) | + ((rcv_val >> 8) & 0x000000FF)) << 16; /* Read LSB part of serial number */ send_buf = cpu_to_be16(MS_SENSORS_SERIAL_READ_LSB); @@ -236,15 +237,15 @@ int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) return ret; } - rcv_buf = be64_to_cpu(rcv_buf) >> 16; - dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_buf); + rcv_val = be64_to_cpu(rcv_buf) >> 16; + dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_val); for (i = 0; i < 48; i += 24) { - if (!ms_sensors_crc_valid((rcv_buf >> i) & 0xFFFFFF)) + if (!ms_sensors_crc_valid((rcv_val >> i) & 0xFFFFFF)) return -ENODEV; } - *sn |= (rcv_buf & 0xFFFF00) << 40 | (rcv_buf >> 32); + *sn |= (rcv_val & 0xFFFF00) << 40 | (rcv_val >> 32); return 0; } From 801ab33596f3e2a70a3b3599618d966736299014 Mon Sep 17 00:00:00 2001 From: Jonathan Cameron Date: Wed, 23 Sep 2015 20:36:02 +0100 Subject: [PATCH 1363/2431] iio:light:apds9960 Fix sparse endian warnings. This patch is a tidy up of warnings from the autobuilder. >> drivers/iio/light/apds9960.c:495:32: sparse: cast to restricted __le16 drivers/iio/light/apds9960.c:635:24: sparse: cast to restricted __le16 >> drivers/iio/light/apds9960.c:672:21: sparse: incorrect type in assignment (different base types) drivers/iio/light/apds9960.c:672:21: expected unsigned short [unsigned] [usertype] buf drivers/iio/light/apds9960.c:672:21: got restricted __le16 [usertype] Signed-off-by: Jonathan Cameron Cc: mranostay@gmail.com Signed-off-by: Jonathan Cameron --- drivers/iio/light/apds9960.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c index bf80ce47926b..7d269ef9e062 100644 --- a/drivers/iio/light/apds9960.c +++ b/drivers/iio/light/apds9960.c @@ -472,7 +472,7 @@ static int apds9960_read_raw(struct iio_dev *indio_dev, int *val, int *val2, long mask) { struct apds9960_data *data = iio_priv(indio_dev); - u16 buf; + __le16 buf; int ret = -EINVAL; if (data->gesture_mode_running) @@ -613,7 +613,7 @@ static int apds9960_read_event(struct iio_dev *indio_dev, int *val, int *val2) { u8 reg; - u16 buf; + __le16 buf; int ret = 0; struct apds9960_data *data = iio_priv(indio_dev); @@ -649,7 +649,7 @@ static int apds9960_write_event(struct iio_dev *indio_dev, int val, int val2) { u8 reg; - u16 buf; + __le16 buf; int ret = 0; struct apds9960_data *data = iio_priv(indio_dev); From 7d27a1846ccc27000d9e5027a289ad9e35a88d60 Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Thu, 8 Oct 2015 21:58:36 -0700 Subject: [PATCH 1364/2431] staging: skein: fix block comment style Use a separate line for the opening marker of a comment block, a leading asterisk in front of subsequent lines in the block comment, and a separate line for the closing marker of the comment block. This patch fixes the checkpatch.pl warnings: WARNING: Block comments use a trailing */ on a separate line WARNING: Block comments use * on subsequent lines Signed-off-by: Deepa Dinamani Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_api.c | 47 +++++++++++++++--------------- drivers/staging/skein/skein_base.c | 18 ++++++++---- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/drivers/staging/skein/skein_api.c b/drivers/staging/skein/skein_api.c index 5bfce076f7c8..e6c2b06aef80 100644 --- a/drivers/staging/skein/skein_api.c +++ b/drivers/staging/skein/skein_api.c @@ -1,28 +1,27 @@ /* -Copyright (c) 2010 Werner Dittmann - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -*/ + * Copyright (c) 2010 Werner Dittmann + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ #include #include "skein_api.h" diff --git a/drivers/staging/skein/skein_base.c b/drivers/staging/skein/skein_base.c index 7e700a6b5788..bfb08fa4045c 100644 --- a/drivers/staging/skein/skein_base.c +++ b/drivers/staging/skein/skein_base.c @@ -75,8 +75,10 @@ int skein_256_init(struct skein_256_ctx *ctx, size_t hash_bit_len) /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /* init the context for a MAC and/or tree hash operation */ -/* [identical to skein_256_init() when key_bytes == 0 && \ - * tree_info == SKEIN_CFG_TREE_INFO_SEQUENTIAL] */ +/* + * [identical to skein_256_init() when key_bytes == 0 && \ + * tree_info == SKEIN_CFG_TREE_INFO_SEQUENTIAL] + */ int skein_256_init_ext(struct skein_256_ctx *ctx, size_t hash_bit_len, u64 tree_info, const u8 *key, size_t key_bytes) { @@ -301,8 +303,10 @@ int skein_512_init(struct skein_512_ctx *ctx, size_t hash_bit_len) /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /* init the context for a MAC and/or tree hash operation */ -/* [identical to skein_512_init() when key_bytes == 0 && \ - * tree_info == SKEIN_CFG_TREE_INFO_SEQUENTIAL] */ +/* + * [identical to skein_512_init() when key_bytes == 0 && \ + * tree_info == SKEIN_CFG_TREE_INFO_SEQUENTIAL] + */ int skein_512_init_ext(struct skein_512_ctx *ctx, size_t hash_bit_len, u64 tree_info, const u8 *key, size_t key_bytes) { @@ -520,8 +524,10 @@ int skein_1024_init(struct skein_1024_ctx *ctx, size_t hash_bit_len) /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /* init the context for a MAC and/or tree hash operation */ -/* [identical to skein_1024_init() when key_bytes == 0 && \ - * tree_info == SKEIN_CFG_TREE_INFO_SEQUENTIAL] */ +/* + * [identical to skein_1024_init() when key_bytes == 0 && \ + * tree_info == SKEIN_CFG_TREE_INFO_SEQUENTIAL] + */ int skein_1024_init_ext(struct skein_1024_ctx *ctx, size_t hash_bit_len, u64 tree_info, const u8 *key, size_t key_bytes) { From c6045d565283f4dea87be87c94d517b37940a3ef Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Thu, 8 Oct 2015 21:57:25 -0700 Subject: [PATCH 1365/2431] staging: skein: remove extra indentation Fix macros containing do/while blocks to be indented uniformly. This patch fixes the checkpatch.pl warning: WARNING: suspect code indent for conditional statements Signed-off-by: Deepa Dinamani Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_block.c | 372 ++++++++++++++-------------- 1 file changed, 186 insertions(+), 186 deletions(-) diff --git a/drivers/staging/skein/skein_block.c b/drivers/staging/skein/skein_block.c index b0cd9357348f..dda5c003ad31 100644 --- a/drivers/staging/skein/skein_block.c +++ b/drivers/staging/skein/skein_block.c @@ -56,57 +56,57 @@ #error "Invalid SKEIN_UNROLL_256" /* sanity check on unroll count */ #endif #endif -#define ROUND256(p0, p1, p2, p3, ROT, r_num) \ -do { \ - X##p0 += X##p1; \ - X##p1 = rotl_64(X##p1, ROT##_0); \ - X##p1 ^= X##p0; \ - X##p2 += X##p3; \ - X##p3 = rotl_64(X##p3, ROT##_1); \ - X##p3 ^= X##p2; \ -} while (0) +#define ROUND256(p0, p1, p2, p3, ROT, r_num) \ + do { \ + X##p0 += X##p1; \ + X##p1 = rotl_64(X##p1, ROT##_0); \ + X##p1 ^= X##p0; \ + X##p2 += X##p3; \ + X##p3 = rotl_64(X##p3, ROT##_1); \ + X##p3 ^= X##p2; \ + } while (0) #if SKEIN_UNROLL_256 == 0 #define R256(p0, p1, p2, p3, ROT, r_num) /* fully unrolled */ \ ROUND256(p0, p1, p2, p3, ROT, r_num) -#define I256(R) \ -do { \ - /* inject the key schedule value */ \ - X0 += ks[((R) + 1) % 5]; \ - X1 += ks[((R) + 2) % 5] + ts[((R) + 1) % 3]; \ - X2 += ks[((R) + 3) % 5] + ts[((R) + 2) % 3]; \ - X3 += ks[((R) + 4) % 5] + (R) + 1; \ -} while (0) +#define I256(R) \ + do { \ + /* inject the key schedule value */ \ + X0 += ks[((R) + 1) % 5]; \ + X1 += ks[((R) + 2) % 5] + ts[((R) + 1) % 3]; \ + X2 += ks[((R) + 3) % 5] + ts[((R) + 2) % 3]; \ + X3 += ks[((R) + 4) % 5] + (R) + 1; \ + } while (0) #else /* looping version */ #define R256(p0, p1, p2, p3, ROT, r_num) ROUND256(p0, p1, p2, p3, ROT, r_num) -#define I256(R) \ -do { \ - /* inject the key schedule value */ \ - X0 += ks[r + (R) + 0]; \ - X1 += ks[r + (R) + 1] + ts[r + (R) + 0]; \ - X2 += ks[r + (R) + 2] + ts[r + (R) + 1]; \ - X3 += ks[r + (R) + 3] + r + (R); \ - /* rotate key schedule */ \ - ks[r + (R) + 4] = ks[r + (R) - 1]; \ - ts[r + (R) + 2] = ts[r + (R) - 1]; \ -} while (0) +#define I256(R) \ + do { \ + /* inject the key schedule value */ \ + X0 += ks[r + (R) + 0]; \ + X1 += ks[r + (R) + 1] + ts[r + (R) + 0];\ + X2 += ks[r + (R) + 2] + ts[r + (R) + 1];\ + X3 += ks[r + (R) + 3] + r + (R); \ + /* rotate key schedule */ \ + ks[r + (R) + 4] = ks[r + (R) - 1]; \ + ts[r + (R) + 2] = ts[r + (R) - 1]; \ + } while (0) #endif -#define R256_8_ROUNDS(R) \ -do { \ - R256(0, 1, 2, 3, R_256_0, 8 * (R) + 1); \ - R256(0, 3, 2, 1, R_256_1, 8 * (R) + 2); \ - R256(0, 1, 2, 3, R_256_2, 8 * (R) + 3); \ - R256(0, 3, 2, 1, R_256_3, 8 * (R) + 4); \ - I256(2 * (R)); \ - R256(0, 1, 2, 3, R_256_4, 8 * (R) + 5); \ - R256(0, 3, 2, 1, R_256_5, 8 * (R) + 6); \ - R256(0, 1, 2, 3, R_256_6, 8 * (R) + 7); \ - R256(0, 3, 2, 1, R_256_7, 8 * (R) + 8); \ - I256(2 * (R) + 1); \ -} while (0) +#define R256_8_ROUNDS(R) \ + do { \ + R256(0, 1, 2, 3, R_256_0, 8 * (R) + 1); \ + R256(0, 3, 2, 1, R_256_1, 8 * (R) + 2); \ + R256(0, 1, 2, 3, R_256_2, 8 * (R) + 3); \ + R256(0, 3, 2, 1, R_256_3, 8 * (R) + 4); \ + I256(2 * (R)); \ + R256(0, 1, 2, 3, R_256_4, 8 * (R) + 5); \ + R256(0, 3, 2, 1, R_256_5, 8 * (R) + 6); \ + R256(0, 1, 2, 3, R_256_6, 8 * (R) + 7); \ + R256(0, 3, 2, 1, R_256_7, 8 * (R) + 8); \ + I256(2 * (R) + 1); \ + } while (0) #define R256_UNROLL_R(NN) \ ((SKEIN_UNROLL_256 == 0 && \ @@ -133,71 +133,71 @@ do { \ #error "Invalid SKEIN_UNROLL_512" /* sanity check on unroll count */ #endif #endif -#define ROUND512(p0, p1, p2, p3, p4, p5, p6, p7, ROT, r_num) \ -do { \ - X##p0 += X##p1; \ - X##p1 = rotl_64(X##p1, ROT##_0); \ - X##p1 ^= X##p0; \ - X##p2 += X##p3; \ - X##p3 = rotl_64(X##p3, ROT##_1); \ - X##p3 ^= X##p2; \ - X##p4 += X##p5; \ - X##p5 = rotl_64(X##p5, ROT##_2); \ - X##p5 ^= X##p4; \ - X##p6 += X##p7; X##p7 = rotl_64(X##p7, ROT##_3); \ - X##p7 ^= X##p6; \ -} while (0) +#define ROUND512(p0, p1, p2, p3, p4, p5, p6, p7, ROT, r_num) \ + do { \ + X##p0 += X##p1; \ + X##p1 = rotl_64(X##p1, ROT##_0); \ + X##p1 ^= X##p0; \ + X##p2 += X##p3; \ + X##p3 = rotl_64(X##p3, ROT##_1); \ + X##p3 ^= X##p2; \ + X##p4 += X##p5; \ + X##p5 = rotl_64(X##p5, ROT##_2); \ + X##p5 ^= X##p4; \ + X##p6 += X##p7; X##p7 = rotl_64(X##p7, ROT##_3);\ + X##p7 ^= X##p6; \ + } while (0) #if SKEIN_UNROLL_512 == 0 #define R512(p0, p1, p2, p3, p4, p5, p6, p7, ROT, r_num) /* unrolled */ \ ROUND512(p0, p1, p2, p3, p4, p5, p6, p7, ROT, r_num) -#define I512(R) \ -do { \ - /* inject the key schedule value */ \ - X0 += ks[((R) + 1) % 9]; \ - X1 += ks[((R) + 2) % 9]; \ - X2 += ks[((R) + 3) % 9]; \ - X3 += ks[((R) + 4) % 9]; \ - X4 += ks[((R) + 5) % 9]; \ - X5 += ks[((R) + 6) % 9] + ts[((R) + 1) % 3]; \ - X6 += ks[((R) + 7) % 9] + ts[((R) + 2) % 3]; \ - X7 += ks[((R) + 8) % 9] + (R) + 1; \ -} while (0) +#define I512(R) \ + do { \ + /* inject the key schedule value */ \ + X0 += ks[((R) + 1) % 9]; \ + X1 += ks[((R) + 2) % 9]; \ + X2 += ks[((R) + 3) % 9]; \ + X3 += ks[((R) + 4) % 9]; \ + X4 += ks[((R) + 5) % 9]; \ + X5 += ks[((R) + 6) % 9] + ts[((R) + 1) % 3]; \ + X6 += ks[((R) + 7) % 9] + ts[((R) + 2) % 3]; \ + X7 += ks[((R) + 8) % 9] + (R) + 1; \ + } while (0) #else /* looping version */ #define R512(p0, p1, p2, p3, p4, p5, p6, p7, ROT, r_num) \ ROUND512(p0, p1, p2, p3, p4, p5, p6, p7, ROT, r_num) \ -#define I512(R) \ -do { \ - /* inject the key schedule value */ \ - X0 += ks[r + (R) + 0]; \ - X1 += ks[r + (R) + 1]; \ - X2 += ks[r + (R) + 2]; \ - X3 += ks[r + (R) + 3]; \ - X4 += ks[r + (R) + 4]; \ - X5 += ks[r + (R) + 5] + ts[r + (R) + 0]; \ - X6 += ks[r + (R) + 6] + ts[r + (R) + 1]; \ - X7 += ks[r + (R) + 7] + r + (R); \ - /* rotate key schedule */ \ - ks[r + (R) + 8] = ks[r + (R) - 1]; \ - ts[r + (R) + 2] = ts[r + (R) - 1]; \ -} while (0) +#define I512(R) \ + do { \ + /* inject the key schedule value */ \ + X0 += ks[r + (R) + 0]; \ + X1 += ks[r + (R) + 1]; \ + X2 += ks[r + (R) + 2]; \ + X3 += ks[r + (R) + 3]; \ + X4 += ks[r + (R) + 4]; \ + X5 += ks[r + (R) + 5] + ts[r + (R) + 0]; \ + X6 += ks[r + (R) + 6] + ts[r + (R) + 1]; \ + X7 += ks[r + (R) + 7] + r + (R); \ + /* rotate key schedule */ \ + ks[r + (R) + 8] = ks[r + (R) - 1]; \ + ts[r + (R) + 2] = ts[r + (R) - 1]; \ + } while (0) #endif /* end of looped code definitions */ -#define R512_8_ROUNDS(R) /* do 8 full rounds */ \ -do { \ - R512(0, 1, 2, 3, 4, 5, 6, 7, R_512_0, 8 * (R) + 1); \ - R512(2, 1, 4, 7, 6, 5, 0, 3, R_512_1, 8 * (R) + 2); \ - R512(4, 1, 6, 3, 0, 5, 2, 7, R_512_2, 8 * (R) + 3); \ - R512(6, 1, 0, 7, 2, 5, 4, 3, R_512_3, 8 * (R) + 4); \ - I512(2 * (R)); \ - R512(0, 1, 2, 3, 4, 5, 6, 7, R_512_4, 8 * (R) + 5); \ - R512(2, 1, 4, 7, 6, 5, 0, 3, R_512_5, 8 * (R) + 6); \ - R512(4, 1, 6, 3, 0, 5, 2, 7, R_512_6, 8 * (R) + 7); \ - R512(6, 1, 0, 7, 2, 5, 4, 3, R_512_7, 8 * (R) + 8); \ - I512(2 * (R) + 1); /* and key injection */ \ -} while (0) +#define R512_8_ROUNDS(R) /* do 8 full rounds */ \ + do { \ + R512(0, 1, 2, 3, 4, 5, 6, 7, R_512_0, 8 * (R) + 1); \ + R512(2, 1, 4, 7, 6, 5, 0, 3, R_512_1, 8 * (R) + 2); \ + R512(4, 1, 6, 3, 0, 5, 2, 7, R_512_2, 8 * (R) + 3); \ + R512(6, 1, 0, 7, 2, 5, 4, 3, R_512_3, 8 * (R) + 4); \ + I512(2 * (R)); \ + R512(0, 1, 2, 3, 4, 5, 6, 7, R_512_4, 8 * (R) + 5); \ + R512(2, 1, 4, 7, 6, 5, 0, 3, R_512_5, 8 * (R) + 6); \ + R512(4, 1, 6, 3, 0, 5, 2, 7, R_512_6, 8 * (R) + 7); \ + R512(6, 1, 0, 7, 2, 5, 4, 3, R_512_7, 8 * (R) + 8); \ + I512(2 * (R) + 1); /* and key injection */ \ + } while (0) #define R512_UNROLL_R(NN) \ ((SKEIN_UNROLL_512 == 0 && \ SKEIN_512_ROUNDS_TOTAL/8 > (NN)) || \ @@ -224,32 +224,32 @@ do { \ #endif #define ROUND1024(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, pA, pB, pC, pD, pE, \ pF, ROT, r_num) \ -do { \ - X##p0 += X##p1; \ - X##p1 = rotl_64(X##p1, ROT##_0); \ - X##p1 ^= X##p0; \ - X##p2 += X##p3; \ - X##p3 = rotl_64(X##p3, ROT##_1); \ - X##p3 ^= X##p2; \ - X##p4 += X##p5; \ - X##p5 = rotl_64(X##p5, ROT##_2); \ - X##p5 ^= X##p4; \ - X##p6 += X##p7; \ - X##p7 = rotl_64(X##p7, ROT##_3); \ - X##p7 ^= X##p6; \ - X##p8 += X##p9; \ - X##p9 = rotl_64(X##p9, ROT##_4); \ - X##p9 ^= X##p8; \ - X##pA += X##pB; \ - X##pB = rotl_64(X##pB, ROT##_5); \ - X##pB ^= X##pA; \ - X##pC += X##pD; \ - X##pD = rotl_64(X##pD, ROT##_6); \ - X##pD ^= X##pC; \ - X##pE += X##pF; \ - X##pF = rotl_64(X##pF, ROT##_7); \ - X##pF ^= X##pE; \ -} while (0) + do { \ + X##p0 += X##p1; \ + X##p1 = rotl_64(X##p1, ROT##_0); \ + X##p1 ^= X##p0; \ + X##p2 += X##p3; \ + X##p3 = rotl_64(X##p3, ROT##_1); \ + X##p3 ^= X##p2; \ + X##p4 += X##p5; \ + X##p5 = rotl_64(X##p5, ROT##_2); \ + X##p5 ^= X##p4; \ + X##p6 += X##p7; \ + X##p7 = rotl_64(X##p7, ROT##_3); \ + X##p7 ^= X##p6; \ + X##p8 += X##p9; \ + X##p9 = rotl_64(X##p9, ROT##_4); \ + X##p9 ^= X##p8; \ + X##pA += X##pB; \ + X##pB = rotl_64(X##pB, ROT##_5); \ + X##pB ^= X##pA; \ + X##pC += X##pD; \ + X##pD = rotl_64(X##pD, ROT##_6); \ + X##pD ^= X##pC; \ + X##pE += X##pF; \ + X##pF = rotl_64(X##pF, ROT##_7); \ + X##pF ^= X##pE; \ + } while (0) #if SKEIN_UNROLL_1024 == 0 #define R1024(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, pA, pB, pC, pD, pE, pF, \ @@ -257,82 +257,82 @@ do { \ ROUND1024(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, pA, pB, pC, pD, pE, \ pF, ROT, rn) \ -#define I1024(R) \ -do { \ - /* inject the key schedule value */ \ - X00 += ks[((R) + 1) % 17]; \ - X01 += ks[((R) + 2) % 17]; \ - X02 += ks[((R) + 3) % 17]; \ - X03 += ks[((R) + 4) % 17]; \ - X04 += ks[((R) + 5) % 17]; \ - X05 += ks[((R) + 6) % 17]; \ - X06 += ks[((R) + 7) % 17]; \ - X07 += ks[((R) + 8) % 17]; \ - X08 += ks[((R) + 9) % 17]; \ - X09 += ks[((R) + 10) % 17]; \ - X10 += ks[((R) + 11) % 17]; \ - X11 += ks[((R) + 12) % 17]; \ - X12 += ks[((R) + 13) % 17]; \ - X13 += ks[((R) + 14) % 17] + ts[((R) + 1) % 3]; \ - X14 += ks[((R) + 15) % 17] + ts[((R) + 2) % 3]; \ - X15 += ks[((R) + 16) % 17] + (R) + 1; \ -} while (0) +#define I1024(R) \ + do { \ + /* inject the key schedule value */ \ + X00 += ks[((R) + 1) % 17]; \ + X01 += ks[((R) + 2) % 17]; \ + X02 += ks[((R) + 3) % 17]; \ + X03 += ks[((R) + 4) % 17]; \ + X04 += ks[((R) + 5) % 17]; \ + X05 += ks[((R) + 6) % 17]; \ + X06 += ks[((R) + 7) % 17]; \ + X07 += ks[((R) + 8) % 17]; \ + X08 += ks[((R) + 9) % 17]; \ + X09 += ks[((R) + 10) % 17]; \ + X10 += ks[((R) + 11) % 17]; \ + X11 += ks[((R) + 12) % 17]; \ + X12 += ks[((R) + 13) % 17]; \ + X13 += ks[((R) + 14) % 17] + ts[((R) + 1) % 3]; \ + X14 += ks[((R) + 15) % 17] + ts[((R) + 2) % 3]; \ + X15 += ks[((R) + 16) % 17] + (R) + 1; \ + } while (0) #else /* looping version */ #define R1024(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, pA, pB, pC, pD, pE, pF, \ ROT, rn) \ ROUND1024(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, pA, pB, pC, pD, pE, \ pF, ROT, rn) \ -#define I1024(R) \ -do { \ - /* inject the key schedule value */ \ - X00 += ks[r + (R) + 0]; \ - X01 += ks[r + (R) + 1]; \ - X02 += ks[r + (R) + 2]; \ - X03 += ks[r + (R) + 3]; \ - X04 += ks[r + (R) + 4]; \ - X05 += ks[r + (R) + 5]; \ - X06 += ks[r + (R) + 6]; \ - X07 += ks[r + (R) + 7]; \ - X08 += ks[r + (R) + 8]; \ - X09 += ks[r + (R) + 9]; \ - X10 += ks[r + (R) + 10]; \ - X11 += ks[r + (R) + 11]; \ - X12 += ks[r + (R) + 12]; \ - X13 += ks[r + (R) + 13] + ts[r + (R) + 0]; \ - X14 += ks[r + (R) + 14] + ts[r + (R) + 1]; \ - X15 += ks[r + (R) + 15] + r + (R); \ - /* rotate key schedule */ \ - ks[r + (R) + 16] = ks[r + (R) - 1]; \ - ts[r + (R) + 2] = ts[r + (R) - 1]; \ -} while (0) +#define I1024(R) \ + do { \ + /* inject the key schedule value */ \ + X00 += ks[r + (R) + 0]; \ + X01 += ks[r + (R) + 1]; \ + X02 += ks[r + (R) + 2]; \ + X03 += ks[r + (R) + 3]; \ + X04 += ks[r + (R) + 4]; \ + X05 += ks[r + (R) + 5]; \ + X06 += ks[r + (R) + 6]; \ + X07 += ks[r + (R) + 7]; \ + X08 += ks[r + (R) + 8]; \ + X09 += ks[r + (R) + 9]; \ + X10 += ks[r + (R) + 10]; \ + X11 += ks[r + (R) + 11]; \ + X12 += ks[r + (R) + 12]; \ + X13 += ks[r + (R) + 13] + ts[r + (R) + 0]; \ + X14 += ks[r + (R) + 14] + ts[r + (R) + 1]; \ + X15 += ks[r + (R) + 15] + r + (R); \ + /* rotate key schedule */ \ + ks[r + (R) + 16] = ks[r + (R) - 1]; \ + ts[r + (R) + 2] = ts[r + (R) - 1]; \ + } while (0) #endif -#define R1024_8_ROUNDS(R) \ -do { \ - R1024(00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, \ - R1024_0, 8*(R) + 1); \ - R1024(00, 09, 02, 13, 06, 11, 04, 15, 10, 07, 12, 03, 14, 05, 08, 01, \ - R1024_1, 8*(R) + 2); \ - R1024(00, 07, 02, 05, 04, 03, 06, 01, 12, 15, 14, 13, 08, 11, 10, 09, \ - R1024_2, 8*(R) + 3); \ - R1024(00, 15, 02, 11, 06, 13, 04, 09, 14, 01, 08, 05, 10, 03, 12, 07, \ - R1024_3, 8*(R) + 4); \ - I1024(2*(R)); \ - R1024(00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, \ - R1024_4, 8*(R) + 5); \ - R1024(00, 09, 02, 13, 06, 11, 04, 15, 10, 07, 12, 03, 14, 05, 08, 01, \ - R1024_5, 8*(R) + 6); \ - R1024(00, 07, 02, 05, 04, 03, 06, 01, 12, 15, 14, 13, 08, 11, 10, 09, \ - R1024_6, 8*(R) + 7); \ - R1024(00, 15, 02, 11, 06, 13, 04, 09, 14, 01, 08, 05, 10, 03, 12, 07, \ - R1024_7, 8*(R) + 8); \ - I1024(2*(R)+1); \ -} while (0) +#define R1024_8_ROUNDS(R) \ + do { \ + R1024(00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, \ + 13, 14, 15, R1024_0, 8*(R) + 1); \ + R1024(00, 09, 02, 13, 06, 11, 04, 15, 10, 07, 12, 03, 14, \ + 05, 08, 01, R1024_1, 8*(R) + 2); \ + R1024(00, 07, 02, 05, 04, 03, 06, 01, 12, 15, 14, 13, 08, \ + 11, 10, 09, R1024_2, 8*(R) + 3); \ + R1024(00, 15, 02, 11, 06, 13, 04, 09, 14, 01, 08, 05, 10, \ + 03, 12, 07, R1024_3, 8*(R) + 4); \ + I1024(2*(R)); \ + R1024(00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, \ + 13, 14, 15, R1024_4, 8*(R) + 5); \ + R1024(00, 09, 02, 13, 06, 11, 04, 15, 10, 07, 12, 03, 14, \ + 05, 08, 01, R1024_5, 8*(R) + 6); \ + R1024(00, 07, 02, 05, 04, 03, 06, 01, 12, 15, 14, 13, 08, \ + 11, 10, 09, R1024_6, 8*(R) + 7); \ + R1024(00, 15, 02, 11, 06, 13, 04, 09, 14, 01, 08, 05, 10, \ + 03, 12, 07, R1024_7, 8*(R) + 8); \ + I1024(2*(R)+1); \ + } while (0) #define R1024_UNROLL_R(NN) \ ((SKEIN_UNROLL_1024 == 0 && \ - SKEIN_1024_ROUNDS_TOTAL/8 > (NN)) || \ + SKEIN_1024_ROUNDS_TOTAL/8 > (NN)) || \ (SKEIN_UNROLL_1024 > (NN))) #if (SKEIN_UNROLL_1024 > 14) From 07a5a4b1ae83914147edc0dfaa5ac5fe3be20c62 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 9 Oct 2015 16:31:37 +0300 Subject: [PATCH 1366/2431] Staging: skein: Remove multiple blank lines Remove multiple blank lines. Problem found using checkpatch.pl CHECK: Please don't use multiple blank lines. Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_generic.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/skein/skein_generic.c b/drivers/staging/skein/skein_generic.c index 899078f1b8bc..c11269422f30 100644 --- a/drivers/staging/skein/skein_generic.c +++ b/drivers/staging/skein/skein_generic.c @@ -20,7 +20,6 @@ #include #include "skein_base.h" - static int skein256_init(struct shash_desc *desc) { return skein_256_init((struct skein_256_ctx *) shash_desc_ctx(desc), From de7be81decb6b6a96ea8380b87f9c462e22c5b89 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 9 Oct 2015 16:31:38 +0300 Subject: [PATCH 1367/2431] Staging: skein: Remove space after cast Remove unnecessary space after cast. Problem found using checkpatch.pl CHECK: No space is necessary after a cast. Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/skein/skein_generic.c b/drivers/staging/skein/skein_generic.c index c11269422f30..e29b9abaa4e6 100644 --- a/drivers/staging/skein/skein_generic.c +++ b/drivers/staging/skein/skein_generic.c @@ -22,7 +22,7 @@ static int skein256_init(struct shash_desc *desc) { - return skein_256_init((struct skein_256_ctx *) shash_desc_ctx(desc), + return skein_256_init((struct skein_256_ctx *)shash_desc_ctx(desc), SKEIN256_DIGEST_BIT_SIZE); } From 6db8b7b4860d54f26a9a907b918aa06daf28948b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 23:36:47 +0530 Subject: [PATCH 1368/2431] Staging: lustre: Remove unused libiam.h header Remove libiam.h since it is not used anywhere throughout the kernel. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/lustre/libiam.h | 145 ------------------ 1 file changed, 145 deletions(-) delete mode 100644 drivers/staging/lustre/lustre/include/lustre/libiam.h diff --git a/drivers/staging/lustre/lustre/include/lustre/libiam.h b/drivers/staging/lustre/lustre/include/lustre/libiam.h deleted file mode 100644 index e8e0b084a6bc..000000000000 --- a/drivers/staging/lustre/lustre/include/lustre/libiam.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - * - * lustre/include/lustre/libiam.h - * - * iam user level library - * - * Author: Wang Di - * Author: Nikita Danilov - * Author: Fan Yong - */ - -/* - * lustre/libiam.h - */ - -#ifndef __IAM_ULIB_H__ -#define __IAM_ULIB_H__ - -/** \defgroup libiam libiam - * - * @{ - */ - - -#define DX_FMT_NAME_LEN 16 - -enum iam_fmt_t { - FMT_LFIX, - FMT_LVAR -}; - -struct iam_uapi_info { - __u16 iui_keysize; - __u16 iui_recsize; - __u16 iui_ptrsize; - __u16 iui_height; - char iui_fmt_name[DX_FMT_NAME_LEN]; -}; - -/* - * Creat an iam file, but do NOT open it. - * Return 0 if success, else -1. - */ -int iam_creat(char *filename, enum iam_fmt_t fmt, - int blocksize, int keysize, int recsize, int ptrsize); - -/* - * Open an iam file, but do NOT creat it if the file doesn't exist. - * Please use iam_creat for creating the file before use iam_open. - * Return file id (fd) if success, else -1. - */ -int iam_open(char *filename, struct iam_uapi_info *ua); - -/* - * Close file opened by iam_open. - */ -int iam_close(int fd); - -/* - * Please use iam_open before use this function. - */ -int iam_insert(int fd, struct iam_uapi_info *ua, - int key_need_convert, char *keybuf, - int rec_need_convert, char *recbuf); - -/* - * Please use iam_open before use this function. - */ -int iam_lookup(int fd, struct iam_uapi_info *ua, - int key_need_convert, char *key_buf, - int *keysize, char *save_key, - int rec_need_convert, char *rec_buf, - int *recsize, char *save_rec); - -/* - * Please use iam_open before use this function. - */ -int iam_delete(int fd, struct iam_uapi_info *ua, - int key_need_convert, char *keybuf, - int rec_need_convert, char *recbuf); - -/* - * Please use iam_open before use this function. - */ -int iam_it_start(int fd, struct iam_uapi_info *ua, - int key_need_convert, char *key_buf, - int *keysize, char *save_key, - int rec_need_convert, char *rec_buf, - int *recsize, char *save_rec); - -/* - * Please use iam_open before use this function. - */ -int iam_it_next(int fd, struct iam_uapi_info *ua, - int key_need_convert, char *key_buf, - int *keysize, char *save_key, - int rec_need_convert, char *rec_buf, - int *recsize, char *save_rec); - -/* - * Please use iam_open before use this function. - */ -int iam_it_stop(int fd, struct iam_uapi_info *ua, - int key_need_convert, char *keybuf, - int rec_need_convert, char *recbuf); - -/* - * Change iam file mode. - */ -int iam_polymorph(char *filename, unsigned long mode); - -/** @} libiam */ - -#endif From 848333219c3370a9f6473b50debefbfa467f7b23 Mon Sep 17 00:00:00 2001 From: Yazen Ghannam Date: Thu, 8 Oct 2015 19:01:16 -0400 Subject: [PATCH 1369/2431] staging/lustre: Remove unused, commented function call Also fixes a coding style error. Signed-off-by: Yazen Ghannam Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/obd_config.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index b8ca324b924e..f0140155bd5d 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -1070,8 +1070,6 @@ int class_config_llog_handler(const struct lu_env *env, char *cfg_buf = (char *) (rec + 1); int rc = 0; - //class_config_dump_handler(handle, rec, data); - switch (rec->lrh_type) { case OBD_CFG_REC: { struct lustre_cfg *lcfg, *lcfg_new; From 5913ef5eb950ff397363201d59f93210a6ccc16f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 22:40:06 +0530 Subject: [PATCH 1370/2431] Staging: lustre: obdclass: lu_object: Declare local functions as static Declare lu_dev_add_linkage and lu_object_find as static since they are used only in this particular file. Also remove the corresponding declarations from header file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lu_object.h | 5 ----- drivers/staging/lustre/lustre/obdclass/lu_object.c | 11 +++++------ 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index e2199c2cea44..7dafc28efea4 100644 --- a/drivers/staging/lustre/lustre/include/lu_object.h +++ b/drivers/staging/lustre/lustre/include/lu_object.h @@ -671,8 +671,6 @@ void lu_object_fini (struct lu_object *o); void lu_object_add_top (struct lu_object_header *h, struct lu_object *o); void lu_object_add (struct lu_object *before, struct lu_object *o); -void lu_dev_add_linkage(struct lu_site *s, struct lu_device *d); - /** * Helpers to initialize and finalize device types. */ @@ -715,9 +713,6 @@ int lu_site_purge(const struct lu_env *env, struct lu_site *s, int nr); void lu_site_print(const struct lu_env *env, struct lu_site *s, void *cookie, lu_printer_t printer); -struct lu_object *lu_object_find(const struct lu_env *env, - struct lu_device *dev, const struct lu_fid *f, - const struct lu_object_conf *conf); struct lu_object *lu_object_find_at(const struct lu_env *env, struct lu_device *dev, const struct lu_fid *f, diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 814e56aaeef0..a801b6cc518a 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -572,13 +572,13 @@ static struct lu_object *htable_lookup(struct lu_site *s, * return it. Otherwise, create new object, insert it into cache and return * it. In any case, additional reference is acquired on the returned object. */ -struct lu_object *lu_object_find(const struct lu_env *env, - struct lu_device *dev, const struct lu_fid *f, - const struct lu_object_conf *conf) +static struct lu_object *lu_object_find(const struct lu_env *env, + struct lu_device *dev, + const struct lu_fid *f, + const struct lu_object_conf *conf) { return lu_object_find_at(env, dev->ld_site->ls_top_dev, f, conf); } -EXPORT_SYMBOL(lu_object_find); static struct lu_object *lu_object_new(const struct lu_env *env, struct lu_device *dev, @@ -925,14 +925,13 @@ cfs_hash_ops_t lu_site_hash_ops = { .hs_put_locked = lu_obj_hop_put_locked, }; -void lu_dev_add_linkage(struct lu_site *s, struct lu_device *d) +static void lu_dev_add_linkage(struct lu_site *s, struct lu_device *d) { spin_lock(&s->ls_ld_lock); if (list_empty(&d->ld_linkage)) list_add(&d->ld_linkage, &s->ls_ld_linkage); spin_unlock(&s->ls_ld_lock); } -EXPORT_SYMBOL(lu_dev_add_linkage); /** * Initialize site \a s, with \a d as the top level device. From 2e33ffb6d55ede834864861a4a47122e2aa2b6e2 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 22:40:07 +0530 Subject: [PATCH 1371/2431] Staging: lustre: obdclass: lprocfs_status: Declare local functions as static Declare lustre_attr_show and lustre_attr_store as static since they are used only in this particular file. Also remove them from corresponding header files. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lprocfs_status.h | 5 ----- .../staging/lustre/lustre/obdclass/lprocfs_status.c | 10 ++++------ 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 22f3777c72b8..6d127a0c1829 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -713,11 +713,6 @@ static struct lustre_attr lustre_attr_##name = __ATTR(name, mode, show, store) #define LUSTRE_RO_ATTR(name) LUSTRE_ATTR(name, 0444, name##_show, NULL) #define LUSTRE_RW_ATTR(name) LUSTRE_ATTR(name, 0644, name##_show, name##_store) -ssize_t lustre_attr_show(struct kobject *kobj, struct attribute *attr, - char *buf); -ssize_t lustre_attr_store(struct kobject *kobj, struct attribute *attr, - const char *buf, size_t len); - extern const struct sysfs_ops lustre_sysfs_ops; /* all quota proc functions */ diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index da4afe08ca62..c8a5ff497143 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -1467,23 +1467,21 @@ void lprocfs_oh_clear(struct obd_histogram *oh) } EXPORT_SYMBOL(lprocfs_oh_clear); -ssize_t lustre_attr_show(struct kobject *kobj, - struct attribute *attr, char *buf) +static ssize_t lustre_attr_show(struct kobject *kobj, + struct attribute *attr, char *buf) { struct lustre_attr *a = container_of(attr, struct lustre_attr, attr); return a->show ? a->show(kobj, attr, buf) : 0; } -EXPORT_SYMBOL_GPL(lustre_attr_show); -ssize_t lustre_attr_store(struct kobject *kobj, struct attribute *attr, - const char *buf, size_t len) +static ssize_t lustre_attr_store(struct kobject *kobj, struct attribute *attr, + const char *buf, size_t len) { struct lustre_attr *a = container_of(attr, struct lustre_attr, attr); return a->store ? a->store(kobj, attr, buf, len) : len; } -EXPORT_SYMBOL_GPL(lustre_attr_store); const struct sysfs_ops lustre_sysfs_ops = { .show = lustre_attr_show, From 03a7fc24e82985e0f1b4c543d310acde9ec84a42 Mon Sep 17 00:00:00 2001 From: Ryan Van Quinlan Date: Sat, 10 Oct 2015 21:53:50 -0700 Subject: [PATCH 1372/2431] staging: lustre: lclient: NULL comparison style Fixes checkpatch.pl checks: CHECK: Comparison to NULL could be written ... Signed-off-by: Ryan Van Quinlan Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lclient/glimpse.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/lclient/glimpse.c b/drivers/staging/lustre/lustre/lclient/glimpse.c index b9f2bb66de21..8533a1e539f4 100644 --- a/drivers/staging/lustre/lustre/lclient/glimpse.c +++ b/drivers/staging/lustre/lustre/lclient/glimpse.c @@ -73,7 +73,7 @@ blkcnt_t dirty_cnt(struct inode *inode) struct ccc_object *vob = cl_inode2ccc(inode); void *results[1]; - if (inode->i_mapping != NULL) + if (inode->i_mapping) cnt += radix_tree_gang_lookup_tag(&inode->i_mapping->page_tree, results, 0, 1, PAGECACHE_TAG_DIRTY); @@ -129,7 +129,7 @@ int cl_glimpse_lock(const struct lu_env *env, struct cl_io *io, current); cio->cui_glimpse = 0; - if (lock == NULL) + if (!lock) return 0; if (IS_ERR(lock)) @@ -255,7 +255,7 @@ int cl_local_size(struct inode *inode) *descr = whole_file; descr->cld_obj = clob; lock = cl_lock_peek(env, io, descr, "localsize", current); - if (lock != NULL) { + if (lock) { cl_merge_lvb(env, inode); cl_unuse(env, lock); cl_lock_release(env, lock, "localsize", current); From f999d0987ec1e88c455fb95e48a12a98a9fbd9a6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 12 Oct 2015 20:49:18 +0530 Subject: [PATCH 1373/2431] Staging: lustre: osc: Remove null check before kfree kfree on NULL pointer is a no-op. The semantic patch used to find such an instance where NULL check is present before kfree- // @@ expression E; @@ - if (E != NULL) { kfree(E); } + kfree(E); @@ expression E; @@ - if (E != NULL) { kfree(E); E = NULL; } + kfree(E); + E = NULL; // smpl> Signed-off-by: Shraddha Barke Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/osc_request.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 225e5ed6714f..86c0303eb24a 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -1998,9 +1998,7 @@ out: if (mem_tight != 0) cfs_memory_pressure_restore(mpflag); - if (crattr != NULL) { - kfree(crattr); - } + kfree(crattr); if (rc != 0) { LASSERT(req == NULL); From f9459c0aa4d924fb12e2f490bcbe790fa77ceb1e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 13 Oct 2015 03:13:02 +0530 Subject: [PATCH 1374/2431] staging: lustre: llite: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/statahead.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/statahead.c b/drivers/staging/lustre/lustre/llite/statahead.c index c8602818836d..18f5f2b7e902 100644 --- a/drivers/staging/lustre/lustre/llite/statahead.c +++ b/drivers/staging/lustre/lustre/llite/statahead.c @@ -947,7 +947,7 @@ static void ll_statahead_one(struct dentry *parent, const char *entry_name, static int ll_agl_thread(void *arg) { - struct dentry *parent = (struct dentry *)arg; + struct dentry *parent = arg; struct inode *dir = d_inode(parent); struct ll_inode_info *plli = ll_i2info(dir); struct ll_inode_info *clli; @@ -1038,7 +1038,7 @@ static void ll_start_agl(struct dentry *parent, struct ll_statahead_info *sai) static int ll_statahead_thread(void *arg) { - struct dentry *parent = (struct dentry *)arg; + struct dentry *parent = arg; struct inode *dir = d_inode(parent); struct ll_inode_info *plli = ll_i2info(dir); struct ll_inode_info *clli; From 80fb74c38709fd12e73f33ae464b37821cb01136 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 00:55:17 +0530 Subject: [PATCH 1375/2431] Staging: sm750fb: Use ARRAY_SIZE macro ARRAY_SIZE is more concise to use when the size of an array is divided by the size of its first element. Changes made using Coccinelle- @@ type T; T[] E; @@ - (sizeof(E)/sizeof(E[...])) + ARRAY_SIZE(E) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 0734044d7040..02e6f640f3d4 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -384,10 +384,10 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) if (pll->clockType != MXCLK_PLL) { xparm = &xparm_PIXEL[0]; - xcnt = sizeof(xparm_PIXEL) / sizeof(xparm_PIXEL[0]); + xcnt = ARRAY_SIZE(xparm_PIXEL); } else { xparm = &xparm_MXCLK[0]; - xcnt = sizeof(xparm_MXCLK) / sizeof(xparm_MXCLK[0]); + xcnt = ARRAY_SIZE(xparm_MXCLK); } From a0fd4b57ba0258c84b5208913943eece7bf1c8f1 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 9 Oct 2015 03:10:15 +0530 Subject: [PATCH 1376/2431] staging: sm750fb: Remove space after cast Remove unnecessary space after cast. Problem found using checkpatch.pl CHECK: No space is necessary after a cast Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 02e6f640f3d4..1c13e5b0a57a 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -133,7 +133,7 @@ static void setMemoryClock(unsigned int frequency) frequency = MHz(336); /* Calculate the divisor */ - divisor = (unsigned int) roundedDiv(getChipClock(), frequency); + divisor = (unsigned int)roundedDiv(getChipClock(), frequency); /* Set the corresponding divisor in the register. */ ulReg = PEEK32(CURRENT_GATE); @@ -180,7 +180,7 @@ static void setMasterClock(unsigned int frequency) frequency = MHz(190); /* Calculate the divisor */ - divisor = (unsigned int) roundedDiv(getChipClock(), frequency); + divisor = (unsigned int)roundedDiv(getChipClock(), frequency); /* Set the corresponding divisor in the register. */ ulReg = PEEK32(CURRENT_GATE); From 2a66a986b412d96cfa6bf700b721729b722bed9b Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 9 Oct 2015 03:11:59 +0530 Subject: [PATCH 1377/2431] staging: sm750fb: Remove space before closing brace Remove space before closing brace '}'. Problem found using checkpatch.pl CHECK: Blank lines aren't necessary before a close brace '}' Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 1c13e5b0a57a..5f8c4aa81abc 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -234,7 +234,6 @@ unsigned int ddk750_getVMSize(void) break; } return data; - } int ddk750_initHw(initchip_param_t *pInitParam) From a76f23d66df1cf41c759fe877e77441c9dd65e5e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 9 Oct 2015 03:15:01 +0530 Subject: [PATCH 1378/2431] staging: sm750fb: Remove space after opening brace Remove space after opening brace '{'. Problem found using checkpatch.pl CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 5f8c4aa81abc..453c86e5b0e0 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -238,7 +238,6 @@ unsigned int ddk750_getVMSize(void) int ddk750_initHw(initchip_param_t *pInitParam) { - unsigned int ulReg; if (pInitParam->powerMode != 0) From 43ce0b538a5e2b8117337e6509f667943222ef3e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:14:27 +0530 Subject: [PATCH 1379/2431] staging: sm750fb: Rename miniDiff Rename miniDiff to mini_diff to avoid CamelCase. Problem found using checkpatch.pl CHECK: Avoid CamelCase: Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 453c86e5b0e0..8b8ec14965a1 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -359,7 +359,7 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) /* as sm750 register definition, N located in 2,15 and M located in 1,255 */ int N, M, X, d; int xcnt; - int miniDiff; + int mini_diff; unsigned int RN, quo, rem, fl_quo; unsigned int input, request; unsigned int tmpClock, ret; @@ -374,7 +374,7 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) #endif ret = 0; - miniDiff = ~0; + mini_diff = ~0; request = request_orig / 1000; input = pll->inputFreq / 1000; @@ -407,12 +407,12 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) tmpClock = pll->inputFreq * M / N / X; diff = absDiff(tmpClock, request_orig); - if (diff < miniDiff) { + if (diff < mini_diff) { pll->M = M; pll->N = N; pll->OD = xparm[d].od; pll->POD = xparm[d].pod; - miniDiff = diff; + mini_diff = diff; ret = tmpClock; } } From 0221381c46457c5c305b9cb5bc4f84b8e29e4d71 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:16:02 +0530 Subject: [PATCH 1380/2431] staging: sm750fb: Remove multiple blank lines Remove multiple blank lines. Problem found using checkpatch.pl CHECK: Please don't use multiple blank lines Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.h b/drivers/staging/sm750fb/ddk750_chip.h index 6e87a1792c8b..0891384ef3e5 100644 --- a/drivers/staging/sm750fb/ddk750_chip.h +++ b/drivers/staging/sm750fb/ddk750_chip.h @@ -16,7 +16,6 @@ typedef enum _logical_chip_type_t { } logical_chip_type_t; - typedef enum _clock_type_t { MXCLK_PLL, PRIMARY_PLL, @@ -70,7 +69,6 @@ typedef struct _initchip_param_t { } initchip_param_t; - logical_chip_type_t getChipType(void); unsigned int calcPllValue(unsigned int request, pll_value_t *pll); unsigned int formatPllReg(pll_value_t *pPLL); @@ -78,5 +76,4 @@ void ddk750_set_mmio(void __iomem *, unsigned short, char); unsigned int ddk750_getVMSize(void); int ddk750_initHw(initchip_param_t *); - #endif From edb23022f2c8d58d109e43c3e7428771a724c747 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:17:44 +0530 Subject: [PATCH 1381/2431] staging: sm750fb: Rename dispState Rename dispState to disp_state to avoid CamelCase. Problem found using checkpatch.pl CHECK: Avoid CamelCase: Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_display.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 24c1c8291702..3691db1c01a4 100644 --- a/drivers/staging/sm750fb/ddk750_display.c +++ b/drivers/staging/sm750fb/ddk750_display.c @@ -6,7 +6,7 @@ #define primaryWaitVerticalSync(delay) waitNextVerticalSync(0, delay) -static void setDisplayControl(int ctrl, int dispState) +static void setDisplayControl(int ctrl, int disp_state) { /* state != 0 means turn on both timing & plane en_bit */ unsigned long ulDisplayCtrlReg, ulReservedBits; @@ -18,7 +18,7 @@ static void setDisplayControl(int ctrl, int dispState) if (!ctrl) { ulDisplayCtrlReg = PEEK32(PANEL_DISPLAY_CTRL); /* Turn on/off the Panel display control */ - if (dispState) { + if (disp_state) { /* Timing should be enabled first before enabling the plane * because changing at the same time does not guarantee that * the plane will also enabled or disabled. @@ -70,7 +70,7 @@ static void setDisplayControl(int ctrl, int dispState) /* Set the secondary display control */ ulDisplayCtrlReg = PEEK32(CRT_DISPLAY_CTRL); - if (dispState) { + if (disp_state) { /* Timing should be enabled first before enabling the plane because changing at the same time does not guarantee that the plane will also enabled or disabled. */ From aa355c8645c1f26bef432f66c8943e6fb97ac351 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:19:00 +0530 Subject: [PATCH 1382/2431] staging: sm750fb: Remove multiple blank lines Remove multiple blank lines. Problem found using checkpatch.pl CHECK: Please don't use multiple blank lines Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_display.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 3691db1c01a4..91ee375b1924 100644 --- a/drivers/staging/sm750fb/ddk750_display.c +++ b/drivers/staging/sm750fb/ddk750_display.c @@ -117,7 +117,6 @@ static void setDisplayControl(int ctrl, int disp_state) } } - static void waitNextVerticalSync(int ctrl, int delay) { unsigned int status; @@ -189,7 +188,6 @@ static void swPanelPowerSequence(int disp, int delay) POKE32(PANEL_DISPLAY_CTRL, reg); primaryWaitVerticalSync(delay); - reg = PEEK32(PANEL_DISPLAY_CTRL); reg = FIELD_VALUE(reg, PANEL_DISPLAY_CTRL, DATA, disp); POKE32(PANEL_DISPLAY_CTRL, reg); @@ -200,7 +198,6 @@ static void swPanelPowerSequence(int disp, int delay) POKE32(PANEL_DISPLAY_CTRL, reg); primaryWaitVerticalSync(delay); - reg = PEEK32(PANEL_DISPLAY_CTRL); reg = FIELD_VALUE(reg, PANEL_DISPLAY_CTRL, FPEN, disp); POKE32(PANEL_DISPLAY_CTRL, reg); From e80ef45dadf7895b87d40f053ba861d318a9426a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:20:36 +0530 Subject: [PATCH 1383/2431] staging: sm750fb: Add space around '<<' Add space around operator '<<'. Problem found using checkpatch.pl CHECK: spaces preferred around that '<<' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_display.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 91ee375b1924..f8005c2f3be9 100644 --- a/drivers/staging/sm750fb/ddk750_display.c +++ b/drivers/staging/sm750fb/ddk750_display.c @@ -228,21 +228,21 @@ void ddk750_setLogicalDispOut(disp_output_t output) if (output & PRI_TP_USAGE) { /* set primary timing and plane en_bit */ - setDisplayControl(0, (output&PRI_TP_MASK)>>PRI_TP_OFFSET); + setDisplayControl(0, (output&PRI_TP_MASK) >> PRI_TP_OFFSET); } if (output & SEC_TP_USAGE) { /* set secondary timing and plane en_bit*/ - setDisplayControl(1, (output&SEC_TP_MASK)>>SEC_TP_OFFSET); + setDisplayControl(1, (output&SEC_TP_MASK) >> SEC_TP_OFFSET); } if (output & PNL_SEQ_USAGE) { /* set panel sequence */ - swPanelPowerSequence((output&PNL_SEQ_MASK)>>PNL_SEQ_OFFSET, 4); + swPanelPowerSequence((output&PNL_SEQ_MASK) >> PNL_SEQ_OFFSET, 4); } if (output & DAC_USAGE) - setDAC((output & DAC_MASK)>>DAC_OFFSET); + setDAC((output & DAC_MASK) >> DAC_OFFSET); if (output & DPMS_USAGE) ddk750_setDPMS((output & DPMS_MASK) >> DPMS_OFFSET); From aeec43da3e4927e33b598b05925046eb1ab9d963 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:21:30 +0530 Subject: [PATCH 1384/2431] staging: sm750fb: Add space around '&' Add space around operator '&'. Problem found using checkpatch.pl CHECK: spaces preferred around that '&' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_display.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index f8005c2f3be9..84f6e8b8c0e2 100644 --- a/drivers/staging/sm750fb/ddk750_display.c +++ b/drivers/staging/sm750fb/ddk750_display.c @@ -228,17 +228,17 @@ void ddk750_setLogicalDispOut(disp_output_t output) if (output & PRI_TP_USAGE) { /* set primary timing and plane en_bit */ - setDisplayControl(0, (output&PRI_TP_MASK) >> PRI_TP_OFFSET); + setDisplayControl(0, (output & PRI_TP_MASK) >> PRI_TP_OFFSET); } if (output & SEC_TP_USAGE) { /* set secondary timing and plane en_bit*/ - setDisplayControl(1, (output&SEC_TP_MASK) >> SEC_TP_OFFSET); + setDisplayControl(1, (output & SEC_TP_MASK) >> SEC_TP_OFFSET); } if (output & PNL_SEQ_USAGE) { /* set panel sequence */ - swPanelPowerSequence((output&PNL_SEQ_MASK) >> PNL_SEQ_OFFSET, 4); + swPanelPowerSequence((output & PNL_SEQ_MASK) >> PNL_SEQ_OFFSET, 4); } if (output & DAC_USAGE) From 31557ea0337eb3db5937f441bfa028caba5836d6 Mon Sep 17 00:00:00 2001 From: Binbin Zhou Date: Mon, 12 Oct 2015 09:48:27 +0800 Subject: [PATCH 1385/2431] staging: sm750fb: Fix the power state error in resume The PM_EVENT_RESUME state is needed when SM750 resume, otherwise it will be failed in the second time of continuous suspend/resume. Cc: Sudip Mukherjee Signed-off-by: Binbin Zhou Reviewed-by: Huacai Chen Reviewed-by: Teddy Wang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 494017f5235c..8c1ecb32f953 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -511,6 +511,7 @@ static int lynxfb_resume(struct pci_dev *pdev) fb_set_suspend(info, 0); } + pdev->dev.power.power_state.event = PM_EVENT_RESUME; console_unlock(); return ret; } From 9f17591fa757a089348c251f23bb9bcebaf08cb1 Mon Sep 17 00:00:00 2001 From: Masanari Iida Date: Sat, 10 Oct 2015 13:42:49 +0900 Subject: [PATCH 1386/2431] Staging: most: Fix typo in staging/most This patch fix spelling typo found in most Signed-off-by: Masanari Iida Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/Documentation/ABI/sysfs-class-most.txt | 2 +- drivers/staging/most/hdm-dim2/Kconfig | 2 +- drivers/staging/most/hdm-usb/hdm_usb.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/most/Documentation/ABI/sysfs-class-most.txt b/drivers/staging/most/Documentation/ABI/sysfs-class-most.txt index 380c137089d0..42ff0d8b2ead 100644 --- a/drivers/staging/most/Documentation/ABI/sysfs-class-most.txt +++ b/drivers/staging/most/Documentation/ABI/sysfs-class-most.txt @@ -47,7 +47,7 @@ Date: June 2015 KernelVersion: 4.3 Contact: Christian Gromm Description: - Indicates the type of peripherial interface the current device + Indicates the type of peripheral interface the current device uses. Users: diff --git a/drivers/staging/most/hdm-dim2/Kconfig b/drivers/staging/most/hdm-dim2/Kconfig index fc548769479b..28a0e1791600 100644 --- a/drivers/staging/most/hdm-dim2/Kconfig +++ b/drivers/staging/most/hdm-dim2/Kconfig @@ -9,7 +9,7 @@ config HDM_DIM2 ---help--- Say Y here if you want to connect via MediaLB to network transceiver. - This device driver is platform dependent and needs an addtional + This device driver is platform dependent and needs an additional platform driver to be installed. For more information contact maintainer of this driver. diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index fcd75590146f..a73eb5f5ac90 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -431,7 +431,7 @@ static void hdm_write_completion(struct urb *urb) } /** - * hdm_read_completion - completion funciton for submitted Rx URBs + * hdm_read_completion - completion function for submitted Rx URBs * @urb: the URB that has been completed * * This checks the status of the completed URB. In case the URB has been @@ -767,7 +767,7 @@ static int hdm_configure_channel(struct most_interface *iface, int channel, tmp_val = conf->buffer_size / frame_size; conf->buffer_size = tmp_val * frame_size; dev_notice(dev, - "Channel %d - rouding buffer size to %d bytes, " + "Channel %d - rounding buffer size to %d bytes, " "channel config says %d bytes\n", channel, conf->buffer_size, From 514d4d744d5c40aed94c4424a715227698935be9 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 12 Oct 2015 18:44:34 +0530 Subject: [PATCH 1387/2431] Staging: most: hdm-i2c: Drop owner assignment from i2c driver i2c_driver does not need to set an owner because core will set it Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-i2c/hdm_i2c.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index cffea40d09d0..976828164ccd 100644 --- a/drivers/staging/most/hdm-i2c/hdm_i2c.c +++ b/drivers/staging/most/hdm-i2c/hdm_i2c.c @@ -416,7 +416,6 @@ MODULE_DEVICE_TABLE(i2c, i2c_id); static struct i2c_driver i2c_driver = { .driver = { .name = "hdm_i2c", - .owner = THIS_MODULE, }, .probe = i2c_probe, .remove = i2c_remove, From 4ecc4a18d987e7e9f4b7eff2bf9215ac02c8a980 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 9 Oct 2015 15:56:59 +0200 Subject: [PATCH 1388/2431] Staging: rdma: Use memdup_user Use memdup_user when user data is immediately copied into the allocated region. Issue found using coccinelle. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ipath/ipath_fs.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/staging/rdma/ipath/ipath_fs.c b/drivers/staging/rdma/ipath/ipath_fs.c index 25422a3a7238..796af6867007 100644 --- a/drivers/staging/rdma/ipath/ipath_fs.c +++ b/drivers/staging/rdma/ipath/ipath_fs.c @@ -195,16 +195,9 @@ static ssize_t flash_write(struct file *file, const char __user *buf, goto bail; } - tmp = kmalloc(count, GFP_KERNEL); - if (!tmp) { - ret = -ENOMEM; - goto bail; - } - - if (copy_from_user(tmp, buf, count)) { - ret = -EFAULT; - goto bail_tmp; - } + tmp = memdup_user(buf, count); + if (IS_ERR(tmp)) + return PTR_ERR(tmp); dd = file_inode(file)->i_private; if (ipath_eeprom_write(dd, pos, tmp, count)) { From 314fcc0d53261a984788d09a1076c17a919504fe Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 21:03:26 +0530 Subject: [PATCH 1389/2431] Staging: rdma: hfi1: Use kcalloc instead of kzalloc to allocate array The advantage of kcalloc is, that will prevent integer overflows which could result from the multiplication of number of elements and size and it is also a bit nicer to read. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/diag.c | 5 ++--- drivers/staging/rdma/hfi1/init.c | 14 ++++++++------ drivers/staging/rdma/hfi1/user_sdma.c | 4 ++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/staging/rdma/hfi1/diag.c b/drivers/staging/rdma/hfi1/diag.c index 3e8d5ac4c626..3d025d7c5a73 100644 --- a/drivers/staging/rdma/hfi1/diag.c +++ b/drivers/staging/rdma/hfi1/diag.c @@ -1159,9 +1159,8 @@ static long hfi1_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) filter_cmd.opcode, filter_cmd.length, filter_cmd.value_ptr); - filter_value = kzalloc( - filter_cmd.length * sizeof(u8), - GFP_KERNEL); + filter_value = kcalloc(filter_cmd.length, sizeof(u8), + GFP_KERNEL); if (!filter_value) { pr_alert("Not enough memory\n"); ret = -ENOMEM; diff --git a/drivers/staging/rdma/hfi1/init.c b/drivers/staging/rdma/hfi1/init.c index a877eda8c13c..84e6213a73c1 100644 --- a/drivers/staging/rdma/hfi1/init.c +++ b/drivers/staging/rdma/hfi1/init.c @@ -293,12 +293,14 @@ struct hfi1_ctxtdata *hfi1_create_ctxtdata(struct hfi1_pportdata *ppd, u32 ctxt) * The resulting value will be rounded down to the closest * multiple of dd->rcv_entries.group_size. */ - rcd->egrbufs.buffers = kzalloc(sizeof(*rcd->egrbufs.buffers) * - rcd->egrbufs.count, GFP_KERNEL); + rcd->egrbufs.buffers = kcalloc(rcd->egrbufs.count, + sizeof(*rcd->egrbufs.buffers), + GFP_KERNEL); if (!rcd->egrbufs.buffers) goto bail; - rcd->egrbufs.rcvtids = kzalloc(sizeof(*rcd->egrbufs.rcvtids) * - rcd->egrbufs.count, GFP_KERNEL); + rcd->egrbufs.rcvtids = kcalloc(rcd->egrbufs.count, + sizeof(*rcd->egrbufs.rcvtids), + GFP_KERNEL); if (!rcd->egrbufs.rcvtids) goto bail; rcd->egrbufs.size = eager_buffer_size; @@ -1050,8 +1052,8 @@ struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev, size_t extra) if (!hfi1_cpulist_count) { u32 count = num_online_cpus(); - hfi1_cpulist = kzalloc(BITS_TO_LONGS(count) * - sizeof(long), GFP_KERNEL); + hfi1_cpulist = kcalloc(BITS_TO_LONGS(count), sizeof(long), + GFP_KERNEL); if (hfi1_cpulist) hfi1_cpulist_count = count; else diff --git a/drivers/staging/rdma/hfi1/user_sdma.c b/drivers/staging/rdma/hfi1/user_sdma.c index 66202625a58c..368878f8e673 100644 --- a/drivers/staging/rdma/hfi1/user_sdma.c +++ b/drivers/staging/rdma/hfi1/user_sdma.c @@ -1050,8 +1050,8 @@ static int pin_vector_pages(struct user_sdma_request *req, unsigned pinned; iovec->npages = num_user_pages(&iovec->iov); - iovec->pages = kzalloc(sizeof(*iovec->pages) * - iovec->npages, GFP_KERNEL); + iovec->pages = kcalloc(iovec->npages, sizeof(*iovec->pages), + GFP_KERNEL); if (!iovec->pages) { SDMA_DBG(req, "Failed page array alloc"); ret = -ENOMEM; From be036bbe2c16929806ab747bfe8a88f5d6dbd0e5 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 21:03:27 +0530 Subject: [PATCH 1390/2431] Staging: rdma: ipath: Use kcalloc instead of kzalloc to allocate array The advantage of kcalloc is, that will prevent integer overflows which could result from the multiplication of number of elements and size and it is also a bit nicer to read. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ipath/ipath_init_chip.c | 2 +- drivers/staging/rdma/ipath/ipath_qp.c | 2 +- drivers/staging/rdma/ipath/ipath_verbs.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rdma/ipath/ipath_init_chip.c b/drivers/staging/rdma/ipath/ipath_init_chip.c index e95af81ca3ca..cec1ebbb86d2 100644 --- a/drivers/staging/rdma/ipath/ipath_init_chip.c +++ b/drivers/staging/rdma/ipath/ipath_init_chip.c @@ -264,7 +264,7 @@ static int init_chip_first(struct ipath_devdata *dd) * Allocate full portcnt array, rather than just cfgports, because * cleanup iterates across all possible ports. */ - dd->ipath_pd = kzalloc(sizeof(*dd->ipath_pd) * dd->ipath_portcnt, + dd->ipath_pd = kcalloc(dd->ipath_portcnt, sizeof(*dd->ipath_pd), GFP_KERNEL); if (!dd->ipath_pd) { diff --git a/drivers/staging/rdma/ipath/ipath_qp.c b/drivers/staging/rdma/ipath/ipath_qp.c index face87602dc1..b2c67662081b 100644 --- a/drivers/staging/rdma/ipath/ipath_qp.c +++ b/drivers/staging/rdma/ipath/ipath_qp.c @@ -1027,7 +1027,7 @@ int ipath_init_qp_table(struct ipath_ibdev *idev, int size) idev->qp_table.last = 1; /* QPN 0 and 1 are special. */ idev->qp_table.max = size; idev->qp_table.nmaps = 1; - idev->qp_table.table = kzalloc(size * sizeof(*idev->qp_table.table), + idev->qp_table.table = kcalloc(size, sizeof(*idev->qp_table.table), GFP_KERNEL); if (idev->qp_table.table == NULL) { ret = -ENOMEM; diff --git a/drivers/staging/rdma/ipath/ipath_verbs.c b/drivers/staging/rdma/ipath/ipath_verbs.c index 17d9dca65755..40f7f059f6b2 100644 --- a/drivers/staging/rdma/ipath/ipath_verbs.c +++ b/drivers/staging/rdma/ipath/ipath_verbs.c @@ -2059,7 +2059,7 @@ int ipath_register_ib_device(struct ipath_devdata *dd) * the LKEY). The remaining bits act as a generation number or tag. */ idev->lk_table.max = 1 << ib_ipath_lkey_table_size; - idev->lk_table.table = kzalloc(idev->lk_table.max * + idev->lk_table.table = kcalloc(idev->lk_table.max, sizeof(*idev->lk_table.table), GFP_KERNEL); if (idev->lk_table.table == NULL) { From 806e6e1bec9c2e7a749748f4edb2e812b6b2fdeb Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Mon, 12 Oct 2015 14:28:36 -0700 Subject: [PATCH 1391/2431] staging: rdma: hfi1: remove unnecessary out of memory messages Out of memory messages are unnecssary in the drivers as they are reported by memory management. Addresses checkpatch.pl: WARNING: Possible unnecessary 'out of memory' message Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/chip.c | 1 - drivers/staging/rdma/hfi1/init.c | 11 ++--------- drivers/staging/rdma/hfi1/pio.c | 7 +------ drivers/staging/rdma/hfi1/user_sdma.c | 27 +++++++-------------------- 4 files changed, 10 insertions(+), 36 deletions(-) diff --git a/drivers/staging/rdma/hfi1/chip.c b/drivers/staging/rdma/hfi1/chip.c index aa58e597df06..11523596ca57 100644 --- a/drivers/staging/rdma/hfi1/chip.c +++ b/drivers/staging/rdma/hfi1/chip.c @@ -8991,7 +8991,6 @@ static int set_up_interrupts(struct hfi1_devdata *dd) entries = kcalloc(total, sizeof(*entries), GFP_KERNEL); if (!entries) { - dd_dev_err(dd, "cannot allocate msix table\n"); ret = -ENOMEM; goto fail; } diff --git a/drivers/staging/rdma/hfi1/init.c b/drivers/staging/rdma/hfi1/init.c index 84e6213a73c1..cd1508ec0914 100644 --- a/drivers/staging/rdma/hfi1/init.c +++ b/drivers/staging/rdma/hfi1/init.c @@ -134,11 +134,8 @@ int hfi1_create_ctxts(struct hfi1_devdata *dd) dd->assigned_node_id = local_node_id; dd->rcd = kcalloc(dd->num_rcv_contexts, sizeof(*dd->rcd), GFP_KERNEL); - if (!dd->rcd) { - dd_dev_err(dd, - "Unable to allocate receive context array, failing\n"); + if (!dd->rcd) goto nomem; - } /* create one or more kernel contexts */ for (i = 0; i < dd->first_user_ctxt; ++i) { @@ -320,12 +317,8 @@ struct hfi1_ctxtdata *hfi1_create_ctxtdata(struct hfi1_pportdata *ppd, u32 ctxt) if (ctxt < dd->first_user_ctxt) { /* N/A for PSM contexts */ rcd->opstats = kzalloc(sizeof(*rcd->opstats), GFP_KERNEL); - if (!rcd->opstats) { - dd_dev_err(dd, - "ctxt%u: Unable to allocate per ctxt stats buffer\n", - rcd->ctxt); + if (!rcd->opstats) goto bail; - } } } return rcd; diff --git a/drivers/staging/rdma/hfi1/pio.c b/drivers/staging/rdma/hfi1/pio.c index 9991814a8f05..67dd93a6888c 100644 --- a/drivers/staging/rdma/hfi1/pio.c +++ b/drivers/staging/rdma/hfi1/pio.c @@ -435,7 +435,6 @@ int init_send_contexts(struct hfi1_devdata *dd) sizeof(struct send_context_info), GFP_KERNEL); if (!dd->send_contexts || !dd->hw_to_sw) { - dd_dev_err(dd, "Unable to allocate send context arrays\n"); kfree(dd->hw_to_sw); kfree(dd->send_contexts); free_credit_return(dd); @@ -684,10 +683,8 @@ struct send_context *sc_alloc(struct hfi1_devdata *dd, int type, return NULL; sc = kzalloc_node(sizeof(struct send_context), GFP_KERNEL, numa); - if (!sc) { - dd_dev_err(dd, "Cannot allocate send context structure\n"); + if (!sc) return NULL; - } spin_lock_irqsave(&dd->sc_lock, flags); ret = sc_hw_alloc(dd, type, &sw_index, &hw_context); @@ -813,8 +810,6 @@ struct send_context *sc_alloc(struct hfi1_devdata *dd, int type, sc->sr = kzalloc_node(sizeof(union pio_shadow_ring) * sc->sr_size, GFP_KERNEL, numa); if (!sc->sr) { - dd_dev_err(dd, - "Cannot allocate send context shadow ring structure\n"); sc_free(sc); return NULL; } diff --git a/drivers/staging/rdma/hfi1/user_sdma.c b/drivers/staging/rdma/hfi1/user_sdma.c index 368878f8e673..10ab8073d3f2 100644 --- a/drivers/staging/rdma/hfi1/user_sdma.c +++ b/drivers/staging/rdma/hfi1/user_sdma.c @@ -378,20 +378,14 @@ int hfi1_user_sdma_alloc_queues(struct hfi1_ctxtdata *uctxt, struct file *fp) dd = uctxt->dd; pq = kzalloc(sizeof(*pq), GFP_KERNEL); - if (!pq) { - dd_dev_err(dd, - "[%u:%u] Failed to allocate SDMA request struct\n", - uctxt->ctxt, subctxt_fp(fp)); + if (!pq) goto pq_nomem; - } + memsize = sizeof(*pq->reqs) * hfi1_sdma_comp_ring_size; pq->reqs = kmalloc(memsize, GFP_KERNEL); - if (!pq->reqs) { - dd_dev_err(dd, - "[%u:%u] Failed to allocate SDMA request queue (%u)\n", - uctxt->ctxt, subctxt_fp(fp), memsize); + if (!pq->reqs) goto pq_reqs_nomem; - } + INIT_LIST_HEAD(&pq->list); pq->dd = dd; pq->ctxt = uctxt->ctxt; @@ -417,22 +411,15 @@ int hfi1_user_sdma_alloc_queues(struct hfi1_ctxtdata *uctxt, struct file *fp) } user_sdma_pkt_fp(fp) = pq; cq = kzalloc(sizeof(*cq), GFP_KERNEL); - if (!cq) { - dd_dev_err(dd, - "[%u:%u] Failed to allocate SDMA completion queue\n", - uctxt->ctxt, subctxt_fp(fp)); + if (!cq) goto cq_nomem; - } memsize = ALIGN(sizeof(*cq->comps) * hfi1_sdma_comp_ring_size, PAGE_SIZE); cq->comps = vmalloc_user(memsize); - if (!cq->comps) { - dd_dev_err(dd, - "[%u:%u] Failed to allocate SDMA completion queue entries\n", - uctxt->ctxt, subctxt_fp(fp)); + if (!cq->comps) goto cq_comps_nomem; - } + cq->nentries = hfi1_sdma_comp_ring_size; user_sdma_comp_fp(fp) = cq; From 075eb0dc3670328fa62425449ca4b52bde2d3c17 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Thu, 8 Oct 2015 17:21:49 +0200 Subject: [PATCH 1392/2431] Staging: rtl8192u: Do not DMA on the stack Fix error "doing DMA on the stack" by using kzalloc for buffer allocation. Issue found by smatch. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 72 ++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 9 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 28b54babf498..0bae93b1132f 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -259,10 +259,16 @@ void write_nic_byte_E(struct net_device *dev, int indx, u8 data) int status; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u8 *usbdata = kzalloc(sizeof(data), GFP_KERNEL); + + if (!usbdata) + return; + *usbdata = data; status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, - indx | 0xfe00, 0, &data, 1, HZ / 2); + indx | 0xfe00, 0, usbdata, 1, HZ / 2); + kfree(usbdata); if (status < 0) netdev_err(dev, "write_nic_byte_E TimeOut! status: %d\n", @@ -274,10 +280,16 @@ int read_nic_byte_E(struct net_device *dev, int indx, u8 *data) int status; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u8 *usbdata = kzalloc(sizeof(u8), GFP_KERNEL); + + if (!usbdata) + return -ENOMEM; status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, - indx | 0xfe00, 0, data, 1, HZ / 2); + indx | 0xfe00, 0, usbdata, 1, HZ / 2); + *data = *usbdata; + kfree(usbdata); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); @@ -293,11 +305,17 @@ void write_nic_byte(struct net_device *dev, int indx, u8 data) struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u8 *usbdata = kzalloc(sizeof(data), GFP_KERNEL); + + if (!usbdata) + return; + *usbdata = data; status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, - &data, 1, HZ / 2); + usbdata, 1, HZ / 2); + kfree(usbdata); if (status < 0) netdev_err(dev, "write_nic_byte TimeOut! status: %d\n", status); @@ -313,11 +331,17 @@ void write_nic_word(struct net_device *dev, int indx, u16 data) struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u16 *usbdata = kzalloc(sizeof(data), GFP_KERNEL); + + if (!usbdata) + return; + *usbdata = data; status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, - &data, 2, HZ / 2); + usbdata, 2, HZ / 2); + kfree(usbdata); if (status < 0) netdev_err(dev, "write_nic_word TimeOut! status: %d\n", status); @@ -332,11 +356,17 @@ void write_nic_dword(struct net_device *dev, int indx, u32 data) struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u32 *usbdata = kzalloc(sizeof(data), GFP_KERNEL); + + if (!usbdata) + return; + *usbdata = data; status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE, (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, - &data, 4, HZ / 2); + usbdata, 4, HZ / 2); + kfree(usbdata); if (status < 0) @@ -352,11 +382,17 @@ int read_nic_byte(struct net_device *dev, int indx, u8 *data) int status; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u8 *usbdata = kzalloc(sizeof(u8), GFP_KERNEL); + + if (!usbdata) + return -ENOMEM; status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, - data, 1, HZ / 2); + usbdata, 1, HZ / 2); + *data = *usbdata; + kfree(usbdata); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); @@ -373,11 +409,17 @@ int read_nic_word(struct net_device *dev, int indx, u16 *data) int status; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u16 *usbdata = kzalloc(sizeof(u16), GFP_KERNEL); + + if (!usbdata) + return -ENOMEM; status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, - data, 2, HZ / 2); + usbdata, 2, HZ / 2); + *data = *usbdata; + kfree(usbdata); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); @@ -392,10 +434,16 @@ static int read_nic_word_E(struct net_device *dev, int indx, u16 *data) int status; struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u16 *usbdata = kzalloc(sizeof(u16), GFP_KERNEL); + + if (!usbdata) + return -ENOMEM; status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, - indx | 0xfe00, 0, data, 2, HZ / 2); + indx | 0xfe00, 0, usbdata, 2, HZ / 2); + *data = *usbdata; + kfree(usbdata); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); @@ -411,11 +459,17 @@ int read_nic_dword(struct net_device *dev, int indx, u32 *data) struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct usb_device *udev = priv->udev; + u32 *usbdata = kzalloc(sizeof(u32), GFP_KERNEL); + + if (!usbdata) + return -ENOMEM; status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8187_REQ_GET_REGS, RTL8187_REQT_READ, (indx & 0xff) | 0xff00, (indx >> 8) & 0x0f, - data, 4, HZ / 2); + usbdata, 4, HZ / 2); + *data = *usbdata; + kfree(usbdata); if (status < 0) { netdev_err(dev, "%s failure status: %d\n", __func__, status); From d0ac7d896ab4f0f7dbe6ba771677491f46e8569b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 11 Oct 2015 10:41:21 +0530 Subject: [PATCH 1393/2431] Staging: rtl8192u: ieee80211: ieee80211_softmac: Remove commented printk messages Remove commented printk since it is not needed Signed-off-by: Shraddha Barke Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index f2d09feccfc3..c443e2eee8d3 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c @@ -1272,7 +1272,6 @@ static void ieee80211_associate_step1(struct ieee80211_device *ieee) else{ ieee->state = IEEE80211_ASSOCIATING_AUTHENTICATING ; IEEE80211_DEBUG_MGMT("Sending authentication request\n"); - //printk(KERN_WARNING "Sending authentication request\n"); softmac_mgmt_xmit(skb, ieee); //BUGON when you try to add_timer twice, using mod_timer may be better, john0709 if (!timer_pending(&ieee->associate_timer)) { @@ -1735,11 +1734,9 @@ static short ieee80211_sta_ps_sleep(struct ieee80211_device *ieee, u32 *time_h, return 0; */ dtim = ieee->current_network.dtim_data; - //printk("DTIM\n"); if(!(dtim & IEEE80211_DTIM_VALID)) return 0; timeout = ieee->current_network.beacon_interval; //should we use ps_timeout value or beacon_interval - //printk("VALID\n"); ieee->current_network.dtim_data = IEEE80211_DTIM_INVALID; if(dtim & ((IEEE80211_DTIM_UCAST | IEEE80211_DTIM_MBCAST)& ieee->ps)) From d91398347dade7a234f2d44a2475afca28e3b53a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 11 Oct 2015 10:41:22 +0530 Subject: [PATCH 1394/2431] Staging: rtl8192u: ieee80211: ieee80211_wx: Remove commented printk messages Remove commented out printk messages since they are not needed Signed-off-by: Shraddha Barke Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c index ae1b3cf2866c..208be5fc527a 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c @@ -522,7 +522,6 @@ int ieee80211_wx_set_encode_ext(struct ieee80211_device *ieee, struct ieee80211_security sec = { .flags = 0, }; - //printk("======>encoding flag:%x,ext flag:%x, ext alg:%d\n", encoding->flags,ext->ext_flags, ext->alg); idx = encoding->flags & IW_ENCODE_INDEX; if (idx) { if (idx < 1 || idx > WEP_KEYS) @@ -538,7 +537,6 @@ int ieee80211_wx_set_encode_ext(struct ieee80211_device *ieee, group_key = 1; } else { /* some Cisco APs use idx>0 for unicast in dynamic WEP */ - //printk("not group key, flags:%x, ext->alg:%d\n", ext->ext_flags, ext->alg); if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP) return -EINVAL; if (ieee->iw_mode == IW_MODE_INFRA) @@ -567,7 +565,6 @@ int ieee80211_wx_set_encode_ext(struct ieee80211_device *ieee, sec.level = SEC_LEVEL_0; sec.flags |= SEC_LEVEL; } - //printk("disabled: flag:%x\n", encoding->flags); goto done; } @@ -638,7 +635,6 @@ int ieee80211_wx_set_encode_ext(struct ieee80211_device *ieee, goto done; } //skip_host_crypt: - //printk("skip_host_crypt:ext_flags:%x\n", ext->ext_flags); if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) { ieee->tx_keyidx = idx; sec.active_key = idx; @@ -760,7 +756,6 @@ int ieee80211_wx_set_auth(struct ieee80211_device *ieee, switch (data->flags & IW_AUTH_INDEX) { case IW_AUTH_WPA_VERSION: /*need to support wpa2 here*/ - //printk("wpa version:%x\n", data->value); break; case IW_AUTH_CIPHER_PAIRWISE: case IW_AUTH_CIPHER_GROUP: @@ -791,16 +786,13 @@ int ieee80211_wx_set_auth(struct ieee80211_device *ieee, else if(data->value & IW_AUTH_ALG_LEAP){ ieee->open_wep = 1; ieee->auth_mode = 2; - //printk("hahahaa:LEAP\n"); } else return -EINVAL; - //printk("open_wep:%d\n", ieee->open_wep); break; case IW_AUTH_WPA_ENABLED: ieee->wpa_enabled = (data->value)?1:0; - //printk("enalbe wpa:%d\n", ieee->wpa_enabled); break; case IW_AUTH_RX_UNENCRYPTED_EAPOL: From 879f3074c2484e7fc972cebf23d0a55fd2430605 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 11 Oct 2015 10:41:23 +0530 Subject: [PATCH 1395/2431] Staging: rtl8192u: ieee80211: ieee80211_rx: Remove commented printk messages Remove commented out printk messages since they are not needed. Also remove the unnecessary braces and blank lines Signed-off-by: Shraddha Barke Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c index 0aa9021cb95e..4b5f32dda8b8 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c @@ -492,14 +492,10 @@ static int is_duplicate_packet(struct ieee80211_device *ieee, // } if ((*last_seq == seq) && time_after(*last_time + IEEE_PACKET_RETRY_TIME, jiffies)) { - if (*last_frag == frag){ - //printk(KERN_WARNING "[1] go drop!\n"); + if (*last_frag == frag) goto drop; - - } if (*last_frag + 1 != frag) /* out-of-order fragment */ - //printk(KERN_WARNING "[2] go drop!\n"); goto drop; } else *last_seq = seq; @@ -510,7 +506,6 @@ static int is_duplicate_packet(struct ieee80211_device *ieee, drop: // BUG_ON(!(fc & IEEE80211_FCTL_RETRY)); -// printk("DUP\n"); return 1; } @@ -578,14 +573,12 @@ void ieee80211_indicate_packets(struct ieee80211_device *ieee, struct ieee80211_ /* Indicat the packets to upper layer */ if (sub_skb) { - //printk("0skb_len(%d)\n", skb->len); sub_skb->protocol = eth_type_trans(sub_skb, ieee->dev); memset(sub_skb->cb, 0, sizeof(sub_skb->cb)); sub_skb->dev = ieee->dev; sub_skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */ //skb->ip_summed = CHECKSUM_UNNECESSARY; /* 802.11 crc not sufficient */ ieee->last_rx_ps_time = jiffies; - //printk("1skb_len(%d)\n", skb->len); netif_rx(sub_skb); } } @@ -795,7 +788,6 @@ static u8 parse_subframe(struct sk_buff *skb, if (rx_stats->bContainHTC) { LLCOffset += sHTCLng; } - //printk("ChkLength = %d\n", LLCOffset); // Null packet, don't indicate it to upper layer ChkLength = LLCOffset;/* + (Frame_WEP(frame)!=0 ?Adapter->MgntInfo.SecurityInfo.EncryptionHeadOverhead:0);*/ @@ -1340,14 +1332,12 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb, } /* Indicat the packets to upper layer */ - //printk("0skb_len(%d)\n", skb->len); sub_skb->protocol = eth_type_trans(sub_skb, dev); memset(sub_skb->cb, 0, sizeof(sub_skb->cb)); sub_skb->dev = dev; sub_skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */ //skb->ip_summed = CHECKSUM_UNNECESSARY; /* 802.11 crc not sufficient */ ieee->last_rx_ps_time = jiffies; - //printk("1skb_len(%d)\n", skb->len); netif_rx(sub_skb); } } @@ -1758,8 +1748,6 @@ int ieee80211_parse_info_param(struct ieee80211_device *ieee, offset = (info_element->data[2] >> 1)*2; - //printk("offset1:%x aid:%x\n",offset, ieee->assoc_id); - if(ieee->assoc_id < 8*offset || ieee->assoc_id > 8*(offset + info_element->len -3)) @@ -2070,7 +2058,6 @@ int ieee80211_parse_info_param(struct ieee80211_device *ieee, case MFIE_TYPE_COUNTRY: IEEE80211_DEBUG_SCAN("MFIE_TYPE_COUNTRY: %d bytes\n", info_element->len); - //printk("=====>Receive <%s> Country IE\n",network->ssid); ieee80211_extract_country_ie(ieee, info_element, network, network->bssid);//addr2 is same as addr3 when from an AP break; /* TODO */ From f517f3bf07f1f776f12b2413dbefa21523021ac1 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sun, 11 Oct 2015 14:31:07 +0100 Subject: [PATCH 1396/2431] staging: rtl8192u: r8192U_core: fix negative noise value ieee80211_rx_stats.noise is of type uint8, so it shouldn't be assigned a negative number. Assigning it 0x100 - 98, which is the equivalent to -98 dBm when IW_QUAL_DBM is set. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 0bae93b1132f..eab0d811e85a 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -4778,7 +4778,7 @@ static void rtl8192_rx_nomal(struct sk_buff *skb) struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); struct ieee80211_rx_stats stats = { .signal = 0, - .noise = -98, + .noise = 0x100 - 98, .rate = 0, .freq = IEEE80211_24GHZ_BAND, }; @@ -4889,7 +4889,7 @@ static void rtl8192_rx_cmd(struct sk_buff *skb) /* TODO */ struct ieee80211_rx_stats stats = { .signal = 0, - .noise = -98, + .noise = 0x100 - 98, .rate = 0, .freq = IEEE80211_24GHZ_BAND, }; From 3cd66a18138ce6439ef11dca6347c6c1e180189c Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sun, 11 Oct 2015 14:42:01 +0100 Subject: [PATCH 1397/2431] staging: rtl8192u: r8192U_wx: fix negative noise and level values range->max_qual.noise and level are of type uint8, so they shouldn't be assigned a negative number. Assigning them 0x100 - 98, and 0x100 - 78 which are the equivalent to -98 dBm and -78 dBm, respectively, when IW_QUAL_DBM is set. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_wx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_wx.c b/drivers/staging/rtl8192u/r8192U_wx.c index 83597051a448..4911fef2e2e5 100644 --- a/drivers/staging/rtl8192u/r8192U_wx.c +++ b/drivers/staging/rtl8192u/r8192U_wx.c @@ -263,12 +263,12 @@ static int rtl8180_wx_get_range(struct net_device *dev, range->max_qual.qual = 100; /* TODO: Find real max RSSI and stick here */ range->max_qual.level = 0; - range->max_qual.noise = -98; + range->max_qual.noise = 0x100 - 98; range->max_qual.updated = 7; /* Updated all three */ range->avg_qual.qual = 92; /* > 8% missed beacons is 'bad' */ /* TODO: Find real 'good' to 'bad' threshold value for RSSI */ - range->avg_qual.level = 20 + -98; + range->avg_qual.level = 0x100 - 78; range->avg_qual.noise = 0; range->avg_qual.updated = 7; /* Updated all three */ From eef6c808d3828d55334023c13c96e1ca5cd1008b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 00:55:18 +0530 Subject: [PATCH 1398/2431] Staging: rtl8712: Use ARRAY_SIZE macro ARRAY_SIZE is more concise to use when the size of an array is divided by the size of its type Changes made using Coccinelle- @@ type T; T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/usb_intf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c index f8b5b332e7c3..4c63baa66335 100644 --- a/drivers/staging/rtl8712/usb_intf.c +++ b/drivers/staging/rtl8712/usb_intf.c @@ -330,8 +330,7 @@ static void disable_ht_for_spec_devid(const struct usb_device_id *pdid, u16 vid, pid; u32 flags; int i; - int num = sizeof(specific_device_id_tbl) / - sizeof(struct specific_device_id); + int num = ARRAY_SIZE(specific_device_id_tbl); for (i = 0; i < num; i++) { vid = specific_device_id_tbl[i].idVendor; From b33fc7229154341c466cbc5c5b7ca69d16054771 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 14:31:11 +0530 Subject: [PATCH 1399/2431] staging: rtl8712: Replace GFP_ATOMIC with GFP_KERNEL Replace GFP_ATOMIC with GFP_KERNEL since GFP_ATOMIC is used in atomic context and only needed when functions are not allowed to sleep whereas the function is later calling msleep(). Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/hal_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 15c6160fc32a..d3a12083e86d 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -177,7 +177,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) maxlen = (fwhdr.img_IMEM_size > fwhdr.img_SRAM_size) ? fwhdr.img_IMEM_size : fwhdr.img_SRAM_size; maxlen += txdscp_sz; - ptmpchar = kmalloc(maxlen + FWBUFF_ALIGN_SZ, GFP_ATOMIC); + ptmpchar = kmalloc(maxlen + FWBUFF_ALIGN_SZ, GFP_KERNEL); if (!ptmpchar) return ret; From 942eaa867f321380129d8519e5279a67e8f4c04e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 17:54:09 +0530 Subject: [PATCH 1400/2431] staging: rtl8712: usleep_range is preferred over udelay Fix checkpatch.pl issue: "CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt". Replace `udelay()` with a call to `usleep_range()` with a reasonable upper limit determined by the other sleeping functions present. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/hal_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index d3a12083e86d..e0ae57d32fa1 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -209,7 +209,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) i = 10; tmp16 = r8712_read16(padapter, TCR); while (((tmp16 & _IMEM_CODE_DONE) == 0) && (i > 0)) { - udelay(10); + usleep_range(10, 1000); tmp16 = r8712_read16(padapter, TCR); i--; } @@ -237,7 +237,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) i = 5; tmp16 = r8712_read16(padapter, TCR); while (((tmp16 & _EMEM_CODE_DONE) == 0) && (i > 0)) { - udelay(10); + usleep_range(10, 1000); tmp16 = r8712_read16(padapter, TCR); i--; } From 681cd988d3587ca2b3afa3db598a2ecab572b742 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sun, 11 Oct 2015 14:16:57 +0100 Subject: [PATCH 1401/2431] staging: rtl8712: fix negative level value range->avg_qual.level is of type uint8, so it shouldn't be assigned a negative number. Assigning it 0x100 - 78, which is the equivalent to (20 + -98) dBm when IW_QUAL_DBM is set. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 57ec8dfacc8b..4e6db88e36ff 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -883,7 +883,7 @@ static int r8711_wx_get_range(struct net_device *dev, range->max_qual.updated = 7; /* Updated all three */ range->avg_qual.qual = 92; /* > 8% missed beacons is 'bad' */ /* TODO: Find real 'good' to 'bad' threshold value for RSSI */ - range->avg_qual.level = 20 + -98; + range->avg_qual.level = 0x100 - 78; range->avg_qual.noise = 0; range->avg_qual.updated = 7; /* Updated all three */ range->num_bitrates = RATE_COUNT; From 19fac3bbe2d797be29665347f3f37dd4ceb29061 Mon Sep 17 00:00:00 2001 From: Iban Rodriguez Date: Mon, 5 Oct 2015 21:18:09 +0200 Subject: [PATCH 1402/2431] Staging: rtl8188eu: Correct coding style errors Correct errors reported by checkpatch.pl because space prohibited before ','. Also split one line into two as it was longer than 80 characters Signed-off-by: Iban Rodriguez Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/odm.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/odm.c b/drivers/staging/rtl8188eu/hal/odm.c index 710fdc3449f8..46be4de50629 100644 --- a/drivers/staging/rtl8188eu/hal/odm.c +++ b/drivers/staging/rtl8188eu/hal/odm.c @@ -881,7 +881,7 @@ void ODM_RF_Saving(struct odm_dm_struct *pDM_Odm, u8 bForceInNormal) if (pDM_PSTable->PreRFState != pDM_PSTable->CurRFState) { if (pDM_PSTable->CurRFState == RF_Save) { - phy_set_bb_reg(adapter, 0x874 , 0x1C0000, 0x2); /* Reg874[20:18]=3'b010 */ + phy_set_bb_reg(adapter, 0x874, 0x1C0000, 0x2); /* Reg874[20:18]=3'b010 */ phy_set_bb_reg(adapter, 0xc70, BIT3, 0); /* RegC70[3]=1'b0 */ phy_set_bb_reg(adapter, 0x85c, 0xFF000000, 0x63); /* Reg85C[31:24]=0x63 */ phy_set_bb_reg(adapter, 0x874, 0xC000, 0x2); /* Reg874[15:14]=2'b10 */ @@ -889,7 +889,7 @@ void ODM_RF_Saving(struct odm_dm_struct *pDM_Odm, u8 bForceInNormal) phy_set_bb_reg(adapter, 0x818, BIT28, 0x0); /* Reg818[28]=1'b0 */ phy_set_bb_reg(adapter, 0x818, BIT28, 0x1); /* Reg818[28]=1'b1 */ } else { - phy_set_bb_reg(adapter, 0x874 , 0x1CC000, pDM_PSTable->Reg874); + phy_set_bb_reg(adapter, 0x874, 0x1CC000, pDM_PSTable->Reg874); phy_set_bb_reg(adapter, 0xc70, BIT3, pDM_PSTable->RegC70); phy_set_bb_reg(adapter, 0x85c, 0xFF000000, pDM_PSTable->Reg85C); phy_set_bb_reg(adapter, 0xa74, 0xF000, pDM_PSTable->RegA74); @@ -1043,7 +1043,7 @@ void odm_RefreshRateAdaptiveMaskCE(struct odm_dm_struct *pDM_Odm) for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) { struct sta_info *pstat = pDM_Odm->pODM_StaInfo[i]; if (IS_STA_VALID(pstat)) { - if (ODM_RAStateCheck(pDM_Odm, pstat->rssi_stat.UndecoratedSmoothedPWDB, false , &pstat->rssi_level)) { + if (ODM_RAStateCheck(pDM_Odm, pstat->rssi_stat.UndecoratedSmoothedPWDB, false, &pstat->rssi_level)) { ODM_RT_TRACE(pDM_Odm, ODM_COMP_RA_MASK, ODM_DBG_LOUD, ("RSSI:%d, RSSI_LEVEL:%d\n", pstat->rssi_stat.UndecoratedSmoothedPWDB, pstat->rssi_level)); @@ -1188,7 +1188,8 @@ void odm_RSSIMonitorCheckCE(struct odm_dm_struct *pDM_Odm) pdmpriv->EntryMinUndecoratedSmoothedPWDB = 0; FindMinimumRSSI(Adapter); - ODM_CmnInfoUpdate(&pHalData->odmpriv , ODM_CMNINFO_RSSI_MIN, pdmpriv->MinUndecoratedPWDBForDM); + ODM_CmnInfoUpdate(&pHalData->odmpriv, ODM_CMNINFO_RSSI_MIN, + pdmpriv->MinUndecoratedPWDBForDM); } /* 3============================================================ */ From d84d66f6f7f33f74abe4a8446006fe44fcc90a1f Mon Sep 17 00:00:00 2001 From: Ivan Safonov Date: Thu, 8 Oct 2015 13:40:11 +0700 Subject: [PATCH 1403/2431] staging: rtl8188eu: unused macro read_next_pair removed Unused macro read_next_pair removed from rtl8188eu driver. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/bb_cfg.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/bb_cfg.c b/drivers/staging/rtl8188eu/hal/bb_cfg.c index 9c7e626aa703..fa461b45b82a 100644 --- a/drivers/staging/rtl8188eu/hal/bb_cfg.c +++ b/drivers/staging/rtl8188eu/hal/bb_cfg.c @@ -22,14 +22,6 @@ #include -#define read_next_pair(array, v1, v2, i) \ - do { \ - i += 2; \ - v1 = array[i]; \ - v2 = array[i+1]; \ - } while (0) - - /* AGC_TAB_1T.TXT */ static u32 array_agc_tab_1t_8188e[] = { From e525e7a63ba4b544f47fe57a3ed3480af288f8eb Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 00:55:19 +0530 Subject: [PATCH 1404/2431] Staging: rtl8188eu: core: Use ARRAY_SIZE macro ARRAY_SIZE is more concise to use when the size of an array is divided by the size of its type. Changes made using Coccinelle- @@ type T; T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 2 +- drivers/staging/rtl8188eu/core/rtw_rf.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index 0270755ec546..d8a0895aa86f 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c @@ -3926,7 +3926,7 @@ static unsigned int OnAction(struct adapter *padapter, category = frame_body[0]; - for (i = 0; i < sizeof(OnAction_tbl)/sizeof(struct action_handler); i++) { + for (i = 0; i < ARRAY_SIZE(OnAction_tbl); i++) { ptable = &OnAction_tbl[i]; if (category == ptable->num) ptable->func(padapter, precv_frame); diff --git a/drivers/staging/rtl8188eu/core/rtw_rf.c b/drivers/staging/rtl8188eu/core/rtw_rf.c index 1170dd001c1f..6983c572b358 100644 --- a/drivers/staging/rtl8188eu/core/rtw_rf.c +++ b/drivers/staging/rtl8188eu/core/rtw_rf.c @@ -52,7 +52,7 @@ static struct ch_freq ch_freq_map[] = { {216, 5080},/* Japan, means J16 */ }; -static int ch_freq_map_num = (sizeof(ch_freq_map) / sizeof(struct ch_freq)); +static int ch_freq_map_num = ARRAY_SIZE(ch_freq_map); u32 rtw_ch2freq(u32 channel) { From 59056281af5d4b011380bfbb59436a392c452bde Mon Sep 17 00:00:00 2001 From: Ivan Safonov Date: Sat, 10 Oct 2015 19:21:54 +0700 Subject: [PATCH 1405/2431] staging: rtl8188eu: ARRAY_SIZE instead of sizeof/sizeof used This patch inserts ARRAY_SIZE instead of sizeof(type array[])/sizeof(type), made arraylen variable constant and removes unnecessary default value in variable definition. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/bb_cfg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/bb_cfg.c b/drivers/staging/rtl8188eu/hal/bb_cfg.c index fa461b45b82a..88c3ad7a1cc7 100644 --- a/drivers/staging/rtl8188eu/hal/bb_cfg.c +++ b/drivers/staging/rtl8188eu/hal/bb_cfg.c @@ -158,7 +158,7 @@ static u32 array_agc_tab_1t_8188e[] = { static bool set_baseband_agc_config(struct adapter *adapt) { u32 i; - u32 arraylen = sizeof(array_agc_tab_1t_8188e)/sizeof(u32); + const u32 arraylen = ARRAY_SIZE(array_agc_tab_1t_8188e); u32 *array = array_agc_tab_1t_8188e; for (i = 0; i < arraylen; i += 2) { @@ -393,7 +393,7 @@ static void rtl_bb_delay(struct adapter *adapt, u32 addr, u32 data) static bool set_baseband_phy_config(struct adapter *adapt) { u32 i; - u32 arraylen = sizeof(array_phy_reg_1t_8188e)/sizeof(u32); + const u32 arraylen = ARRAY_SIZE(array_phy_reg_1t_8188e); u32 *array = array_phy_reg_1t_8188e; for (i = 0; i < arraylen; i += 2) { @@ -574,8 +574,8 @@ static void rtl_addr_delay(struct adapter *adapt, static bool config_bb_with_pgheader(struct adapter *adapt) { - u32 i = 0; - u32 arraylen = sizeof(array_phy_reg_pg_8188e) / sizeof(u32); + u32 i; + const u32 arraylen = ARRAY_SIZE(array_phy_reg_pg_8188e); u32 *array = array_phy_reg_pg_8188e; for (i = 0; i < arraylen; i += 3) { From bb30b15aeaeacc980facbe877ed23882e35fcd8c Mon Sep 17 00:00:00 2001 From: Ivan Safonov Date: Sat, 10 Oct 2015 19:23:50 +0700 Subject: [PATCH 1406/2431] staging: rtl8188eu: spaces preferred around that + inserted This patch inserts spaces preferred around that '+' found by checkpatch. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/bb_cfg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/bb_cfg.c b/drivers/staging/rtl8188eu/hal/bb_cfg.c index 88c3ad7a1cc7..4eb982bdbfc0 100644 --- a/drivers/staging/rtl8188eu/hal/bb_cfg.c +++ b/drivers/staging/rtl8188eu/hal/bb_cfg.c @@ -163,7 +163,7 @@ static bool set_baseband_agc_config(struct adapter *adapt) for (i = 0; i < arraylen; i += 2) { u32 v1 = array[i]; - u32 v2 = array[i+1]; + u32 v2 = array[i + 1]; if (v1 < 0xCDCDCDCD) { phy_set_bb_reg(adapt, v1, bMaskDWord, v2); @@ -398,7 +398,7 @@ static bool set_baseband_phy_config(struct adapter *adapt) for (i = 0; i < arraylen; i += 2) { u32 v1 = array[i]; - u32 v2 = array[i+1]; + u32 v2 = array[i + 1]; if (v1 < 0xCDCDCDCD) rtl_bb_delay(adapt, v1, v2); @@ -580,8 +580,8 @@ static bool config_bb_with_pgheader(struct adapter *adapt) for (i = 0; i < arraylen; i += 3) { u32 v1 = array[i]; - u32 v2 = array[i+1]; - u32 v3 = array[i+2]; + u32 v2 = array[i + 1]; + u32 v3 = array[i + 2]; if (v1 < 0xCDCDCDCD) rtl_addr_delay(adapt, v1, v2, v3); From 5e757bc58d15b9fc7d36bb4fcc6f068489e2d29d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 21:03:28 +0530 Subject: [PATCH 1407/2431] Staging: unisys: Use kcalloc instead of kzalloc to allocate array The advantage of kcalloc is, that will prevent integer overflows which could result from the multiplication of number of elements and size and it is also a bit nicer to read. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visornic/visornic_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 85c9fec6549e..6db74ded184c 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -1797,8 +1797,8 @@ static int visornic_probe(struct visor_device *dev) goto cleanup_netdev; } - devdata->rcvbuf = kzalloc(sizeof(struct sk_buff *) * - devdata->num_rcv_bufs, GFP_KERNEL); + devdata->rcvbuf = kcalloc(devdata->num_rcv_bufs, + sizeof(struct sk_buff *), GFP_KERNEL); if (!devdata->rcvbuf) { err = -ENOMEM; goto cleanup_rcvbuf; From 91678f37004d84757738790a7257b87cc909f483 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Mon, 12 Oct 2015 15:28:57 -0400 Subject: [PATCH 1408/2431] staging: unisys: visornic: prevent faults if driver re-loaded during stress Prevent faults that would occur during this sequence of activity during network stress: rmmod visornic modprobe visornic /etc/init.d/network restart The problem fixed was that the back-end IO partition was holding onto stale receive buffers after the "rmmod visornic", and erroneously completing them after a subsequent "modprobe visornic". This is fixed in this patch as follows: * Tell the back-end IO partition that we want it to employ its "incarnation mechanism" to ensure it does not complete stale receive buffers after the guest virtual device environment changes (e.g., by re-loading the driver), by setting the ULTRA_IO_DRIVER_SUPPORTS_ENHANCED_RCVBUF_CHECKING feature bit, and supplying a unique incarnation number in rcvpost.unique_num for each receive buffer posted. * When visornic loads, make sure we drain and ignore any possible-stale data in the channel before beginning network operation. Prior to this patch, faults like this would occur almost every time if you attempted to rmmod + modprobe the visornic driver and restart the network service during heavy network activity: BUG: spinlock bad magic on CPU#0, ksoftirqd/0/3 lock: 0xffff88002d8a56d8, .magic: ffff8800, .owner: /-1, .owner_cpu: 2304 CPU: 0 PID: 3 Comm: ksoftirqd/0 Tainted: G C 4.3.0-rc3-ARCH+ #74 Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../staging/unisys/visornic/visornic_main.c | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 6db74ded184c..296b11cea247 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -120,7 +120,7 @@ struct visornic_devdata { atomic_t interrupt_rcvd; wait_queue_head_t rsp_queue; struct sk_buff **rcvbuf; - u64 uniquenum; /* TODO figure out why not used */ + u64 incarnation_id; /* lets IOPART know about re-birth */ unsigned short old_flags; /* flags as they were prior to * set_multicast_list */ @@ -431,7 +431,7 @@ post_skb(struct uiscmdrsp *cmdrsp, cmdrsp->net.rcvpost.frag.pi_off = (unsigned long)skb->data & PI_PAGE_MASK; cmdrsp->net.rcvpost.frag.pi_len = skb->len; - cmdrsp->net.rcvpost.unique_num = devdata->uniquenum; + cmdrsp->net.rcvpost.unique_num = devdata->incarnation_id; if ((cmdrsp->net.rcvpost.frag.pi_off + skb->len) <= PI_PAGE_SIZE) { cmdrsp->net.type = NET_RCV_POST; @@ -1365,6 +1365,7 @@ devdata_initialize(struct visornic_devdata *devdata, struct visor_device *dev) return NULL; memset(devdata, '\0', sizeof(struct visornic_devdata)); devdata->dev = dev; + devdata->incarnation_id = get_jiffies_64(); return devdata; } @@ -1588,7 +1589,21 @@ send_rcv_posts_if_needed(struct visornic_devdata *devdata) } /** - * draing_queue - drains the response queue + * drain_resp_queue - drains and ignores all messages from the resp queue + * @cmdrsp: io channel command response message + * @devdata: visornic device to drain + */ +static void +drain_resp_queue(struct uiscmdrsp *cmdrsp, struct visornic_devdata *devdata) +{ + while (visorchannel_signalremove(devdata->dev->visorchannel, + IOCHAN_FROM_IOPART, + cmdrsp)) + ; +} + +/** + * service_resp_queue - drains the response queue * @cmdrsp: io channel command response message * @devdata: visornic device to drain * @@ -1777,6 +1792,8 @@ static int visornic_probe(struct visor_device *dev) err = -ENOMEM; goto cleanup_netdev; } + /* don't trust messages laying around in the channel */ + drain_resp_queue(devdata->cmdrsp, devdata); devdata->netdev = netdev; dev_set_drvdata(&dev->device, devdata); @@ -1868,6 +1885,7 @@ static int visornic_probe(struct visor_device *dev) } features |= ULTRA_IO_CHANNEL_IS_POLLING; + features |= ULTRA_IO_DRIVER_SUPPORTS_ENHANCED_RCVBUF_CHECKING; err = visorbus_write_channel(dev, channel_offset, &features, 8); if (err) { dev_err(&dev->device, From 9f00be7f9e08c8f95663cda9635d81a87c9ded7f Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:39 -0400 Subject: [PATCH 1409/2431] staging: unisys: channel.h covert from pragma to __packed Need to convert from #pragma to __packed for channel structures. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/include/channel.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/unisys/include/channel.h b/drivers/staging/unisys/include/channel.h index da0b5387f884..698adeb08965 100644 --- a/drivers/staging/unisys/include/channel.h +++ b/drivers/staging/unisys/include/channel.h @@ -152,7 +152,6 @@ ULTRA_CHANNELCLI_STRING(u32 v) #define ULTRA_IO_DRIVER_DISABLES_INTS (0x1ULL << 5) #define ULTRA_IO_DRIVER_SUPPORTS_ENHANCED_RCVBUF_CHECKING (0x1ULL << 6) -#pragma pack(push, 1) /* both GCC and VC now allow this pragma */ /* Common Channel Header */ struct channel_header { u64 signature; /* Signature */ @@ -192,7 +191,7 @@ struct channel_header { u8 filler[1]; /* Pad out to 128 byte cacheline */ /* Please add all new single-byte values below here */ u8 recover_channel; -}; +} __packed; #define ULTRA_CHANNEL_ENABLE_INTS (0x1ULL << 0) @@ -230,9 +229,8 @@ struct signal_queue_header { * to denote trouble with client's * fields */ u8 filler[12]; /* Pad out to 64 byte cacheline */ -}; +} __packed; -#pragma pack(pop) #define spar_signal_init(chan, QHDRFLD, QDATAFLD, QDATATYPE, ver, typ) \ do { \ From 54bf4d454e37d66041871775ce66cda972c70cea Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:40 -0400 Subject: [PATCH 1410/2431] staging: unisys: channel.h Fix spacing around operands. Clean up the seven checks reported by checkpatch.pl --strict. CHECK: spaces preferred around that '<<' (ctx:VxV) +#define SIGNATURE_16(A, B) ((A) | (B<<8)) ^ CHECK: spaces preferred around that '+' (ctx:VxV) +#define COVERQ(v, d) (((v)+(d)-1) / (d)) ^ CHECK: spaces preferred around that '-' (ctx:VxV) +#define COVERQ(v, d) (((v)+(d)-1) / (d)) ^ CHECK: spaces preferred around that '*' (ctx:VxV) +#define COVER(v, d) ((d)*COVERQ(v, d)) ^ CHECK: spaces preferred around that '-' (ctx:VxE) + chan->QHDRFLD.sig_base_offset = (u64)(chan->QDATAFLD)- \ ^ CHECK: spaces preferred around that '/' (ctx:VxV) + sizeof(chan->QDATAFLD)/sizeof(QDATATYPE); \ ^ CHECK: spaces preferred around that '-' (ctx:VxV) + chan->QHDRFLD.max_signals = chan->QHDRFLD.max_slots-1; \ Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/include/channel.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/staging/unisys/include/channel.h b/drivers/staging/unisys/include/channel.h index 698adeb08965..c6c24423a7f0 100644 --- a/drivers/staging/unisys/include/channel.h +++ b/drivers/staging/unisys/include/channel.h @@ -32,7 +32,7 @@ */ #define __SUPERVISOR_CHANNEL_H__ -#define SIGNATURE_16(A, B) ((A) | (B<<8)) +#define SIGNATURE_16(A, B) ((A) | (B << 8)) #define SIGNATURE_32(A, B, C, D) \ (SIGNATURE_16(A, B) | (SIGNATURE_16(C, D) << 16)) #define SIGNATURE_64(A, B, C, D, E, F, G, H) \ @@ -42,10 +42,10 @@ #define lengthof(TYPE, MEMBER) (sizeof(((TYPE *)0)->MEMBER)) #endif #ifndef COVERQ -#define COVERQ(v, d) (((v)+(d)-1) / (d)) +#define COVERQ(v, d) (((v) + (d) - 1) / (d)) #endif #ifndef COVER -#define COVER(v, d) ((d)*COVERQ(v, d)) +#define COVER(v, d) ((d) * COVERQ(v, d)) #endif #define ULTRA_CHANNEL_PROTOCOL_SIGNATURE SIGNATURE_32('E', 'C', 'N', 'L') @@ -231,7 +231,6 @@ struct signal_queue_header { u8 filler[12]; /* Pad out to 64 byte cacheline */ } __packed; - #define spar_signal_init(chan, QHDRFLD, QDATAFLD, QDATATYPE, ver, typ) \ do { \ memset(&chan->QHDRFLD, 0, sizeof(chan->QHDRFLD)); \ @@ -239,11 +238,11 @@ struct signal_queue_header { chan->QHDRFLD.chtype = typ; \ chan->QHDRFLD.size = sizeof(chan->QDATAFLD); \ chan->QHDRFLD.signal_size = sizeof(QDATATYPE); \ - chan->QHDRFLD.sig_base_offset = (u64)(chan->QDATAFLD)- \ + chan->QHDRFLD.sig_base_offset = (u64)(chan->QDATAFLD) - \ (u64)(&chan->QHDRFLD); \ chan->QHDRFLD.max_slots = \ - sizeof(chan->QDATAFLD)/sizeof(QDATATYPE); \ - chan->QHDRFLD.max_signals = chan->QHDRFLD.max_slots-1; \ + sizeof(chan->QDATAFLD) / sizeof(QDATATYPE); \ + chan->QHDRFLD.max_signals = chan->QHDRFLD.max_slots - 1;\ } while (0) /* Generic function useful for validating any type of channel when it is From ad1a71546cd1cb8cf009fdbc15aad9bc7efb820f Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:41 -0400 Subject: [PATCH 1411/2431] staging: unisys: visorchannel.c fix spacing around cast Clean up the following checkpatch.pl --strict checks: CHECK: No space is necessary after a cast + buf = (u8 *) __get_free_page(GFP_KERNEL); CHECK: No space is necessary after a cast + free_page((unsigned long) buf); CHECK: spaces preferred around that '+' (ctx:VxE) + SIG_QUEUE_OFFSET(&channel->chan_hdr, queue)+ \ ^ Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorbus/visorchannel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c index 2693c46afdc0..0b6a210962d3 100644 --- a/drivers/staging/unisys/visorbus/visorchannel.c +++ b/drivers/staging/unisys/visorbus/visorchannel.c @@ -279,7 +279,7 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch, int written = 0; u8 *buf; - buf = (u8 *) __get_free_page(GFP_KERNEL); + buf = (u8 *)__get_free_page(GFP_KERNEL); if (!buf) return -ENOMEM; @@ -301,7 +301,7 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch, err = 0; cleanup: - free_page((unsigned long) buf); + free_page((unsigned long)buf); return err; } EXPORT_SYMBOL_GPL(visorchannel_clear); @@ -332,7 +332,7 @@ EXPORT_SYMBOL_GPL(visorchannel_get_header); */ #define SIG_WRITE_FIELD(channel, queue, sig_hdr, FIELD) \ (visorchannel_write(channel, \ - SIG_QUEUE_OFFSET(&channel->chan_hdr, queue)+ \ + SIG_QUEUE_OFFSET(&channel->chan_hdr, queue) +\ offsetof(struct signal_queue_header, FIELD), \ &((sig_hdr)->FIELD), \ sizeof((sig_hdr)->FIELD)) >= 0) From f4b97f9c15da4f86acc98da4d67be2305751fd21 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:42 -0400 Subject: [PATCH 1412/2431] staging: unisys: visorchannel.c remove unneeded parenthesis Fix the checkpatch.pl -strict check: CHECK: Unnecessary parentheses around sig_hdr.num_overflows + &(sig_hdr.num_overflows), Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorbus/visorchannel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c index 0b6a210962d3..a4e117f101cf 100644 --- a/drivers/staging/unisys/visorbus/visorchannel.c +++ b/drivers/staging/unisys/visorbus/visorchannel.c @@ -468,7 +468,7 @@ signalinsert_inner(struct visorchannel *channel, u32 queue, void *msg) SIG_QUEUE_OFFSET(&channel->chan_hdr, queue) + offsetof(struct signal_queue_header, num_overflows), - &(sig_hdr.num_overflows), + &sig_hdr.num_overflows, sizeof(sig_hdr.num_overflows)); return false; } From 0435d1449bca964182588c6673a944239f279785 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:43 -0400 Subject: [PATCH 1413/2431] staging: unisys: periodic_work.h Fix parenthesis alignment Cleanup the checkpatch.pl check alignment should match open parenthesis, in visor_periodic_work_create(). Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/include/periodic_work.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/staging/unisys/include/periodic_work.h b/drivers/staging/unisys/include/periodic_work.h index 4e19c28dc3d0..d42b2d0a70d8 100644 --- a/drivers/staging/unisys/include/periodic_work.h +++ b/drivers/staging/unisys/include/periodic_work.h @@ -27,11 +27,12 @@ */ struct periodic_work; -struct periodic_work *visor_periodic_work_create(ulong jiffy_interval, - struct workqueue_struct *workqueue, - void (*workfunc)(void *), - void *workfuncarg, - const char *devnam); +struct periodic_work * +visor_periodic_work_create(ulong jiffy_interval, + struct workqueue_struct *workqueue, + void (*workfunc)(void *), + void *workfuncarg, + const char *devnam); void visor_periodic_work_destroy(struct periodic_work *pw); bool visor_periodic_work_nextperiod(struct periodic_work *pw); bool visor_periodic_work_start(struct periodic_work *pw); From 3204d5a28f129800e1e7ca78acd2d30f5752090a Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:44 -0400 Subject: [PATCH 1414/2431] staging: unisys: periodic_work.h Fix spacing Cleanup the multiple blank lines check in periodic_work.h. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/include/periodic_work.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/unisys/include/periodic_work.h b/drivers/staging/unisys/include/periodic_work.h index d42b2d0a70d8..0b3335a4b206 100644 --- a/drivers/staging/unisys/include/periodic_work.h +++ b/drivers/staging/unisys/include/periodic_work.h @@ -21,7 +21,6 @@ #include #include - /* PERIODIC_WORK an opaque structure to users. * Fields are declared only in the implementation .c files. */ From b1121ab49f72faeccef3be4eb3ff9548582084c7 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:45 -0400 Subject: [PATCH 1415/2431] staging: unisys: diagchannel.h: get rid of unused fields Some more churn of the drivers have made more fields unused, get rid of them. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/include/diagchannel.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/unisys/include/diagchannel.h b/drivers/staging/unisys/include/diagchannel.h index d2d35685d69f..6e813c77b97e 100644 --- a/drivers/staging/unisys/include/diagchannel.h +++ b/drivers/staging/unisys/include/diagchannel.h @@ -16,11 +16,6 @@ #ifndef _DIAG_CHANNEL_H_ #define _DIAG_CHANNEL_H_ -#define MAX_MODULE_NAME_SIZE 128 /* Maximum length of module name... */ -#define MAX_ADDITIONAL_INFO_SIZE 256 /* Maximum length of any additional - * info accompanying event... - */ - /* Levels of severity for diagnostic events, in order from lowest severity to * highest (i.e. fatal errors are the most severe, and should always be logged, * but info events rarely need to be logged except during debugging). The From aa1a9c016115152b1b0349a018bf2c743a04ef72 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:46 -0400 Subject: [PATCH 1416/2431] staging: unisys: vmcallinterface.h: Cleanup unused fields With the simplified driver models we have more vmcalls that aren't supported by linux guests. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- .../staging/unisys/visorbus/vmcallinterface.h | 46 ------------------- 1 file changed, 46 deletions(-) diff --git a/drivers/staging/unisys/visorbus/vmcallinterface.h b/drivers/staging/unisys/visorbus/vmcallinterface.h index 7abd27a618f8..7a18aa8ee4da 100644 --- a/drivers/staging/unisys/visorbus/vmcallinterface.h +++ b/drivers/staging/unisys/visorbus/vmcallinterface.h @@ -46,21 +46,13 @@ enum vmcall_monitor_interface_method_tuple { /* VMCALL identification tuples */ VMCALL_IO_CONTROLVM_ADDR = 0x0501, /* used by all Guests, not just * IO */ - VMCALL_IO_DIAG_ADDR = 0x0508, - VMCALL_IO_VISORSERIAL_ADDR = 0x0509, VMCALL_QUERY_GUEST_VIRTUAL_TIME_OFFSET = 0x0708, /* Allow caller to * query virtual time * offset */ - VMCALL_CHANNEL_VERSION_MISMATCH = 0x0709, VMCALL_POST_CODE_LOGEVENT = 0x070B, /* LOGEVENT Post Code (RDX) with * specified subsystem mask (RCX * - monitor_subsystems.h) and * severity (RDX) */ - VMCALL_GENERIC_SURRENDER_QUANTUM_FOREVER = 0x0802, /* Yield the - * remainder & all - * future quantums of - * the caller */ - VMCALL_MEASUREMENT_DO_NOTHING = 0x0901, VMCALL_UPDATE_PHYSICAL_TIME = 0x0a02 /* Allow * ULTRA_SERVICE_CAPABILITY_TIME * capable guest to make @@ -107,42 +99,4 @@ struct vmcall_io_controlvm_addr_params { #pragma pack(pop) /* ///////////// END PRAGMA PACK PUSH 1 /////////////////////////// */ -/* ///////////// BEGIN PRAGMA PACK PUSH 1 ///////////////////////// */ -/* ///////////// ONLY STRUCT TYPE SHOULD BE BELOW */ -#pragma pack(push, 1) -/* Parameters to VMCALL_IO_DIAG_ADDR interface */ -struct vmcall_io_diag_addr_params { - /* The Guest-relative physical address of the diagnostic channel. - * This VMCall fills this in with the appropriate address. */ - u64 address; /* contents provided by this VMCALL (OUT) */ -}; - -#pragma pack(pop) -/* ///////////// END PRAGMA PACK PUSH 1 /////////////////////////// */ - -/* ///////////// BEGIN PRAGMA PACK PUSH 1 ///////////////////////// */ -/* ///////////// ONLY STRUCT TYPE SHOULD BE BELOW */ -#pragma pack(push, 1) -/* Parameters to VMCALL_IO_VISORSERIAL_ADDR interface */ -struct vmcall_io_visorserial_addr_params { - /* The Guest-relative physical address of the serial console - * channel. This VMCall fills this in with the appropriate - * address. */ - u64 address; /* contents provided by this VMCALL (OUT) */ -}; - -#pragma pack(pop) -/* ///////////// END PRAGMA PACK PUSH 1 /////////////////////////// */ - -/* Parameters to VMCALL_CHANNEL_MISMATCH interface */ -struct vmcall_channel_version_mismatch_params { - u8 chname[32]; /* Null terminated string giving name of channel - * (IN) */ - u8 item_name[32]; /* Null terminated string giving name of - * mismatched item (IN) */ - u32 line_no; /* line# where invoked. (IN) */ - u8 file_name[36]; /* source code where invoked - Null terminated - * string (IN) */ -}; - #endif /* __IOMONINTF_H__ */ From b775df29f0ba51f16fae46b6e7c2c6a38f39e33c Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Fri, 9 Oct 2015 22:17:56 +0300 Subject: [PATCH 1417/2431] staging: octeon: Remove extra line from kernel-doc Fix 'bad line' kernel-doc warning Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index c9183e05615c..63aefb8583ae 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -368,7 +368,7 @@ static void cvm_oct_common_set_multicast_list(struct net_device *dev) * cvm_oct_common_set_mac_address - set the hardware MAC address for a device * @dev: The device in question. * @addr: Address structure to change it too. - + * * Returns Zero on success */ static int cvm_oct_set_mac_filter(struct net_device *dev) From d0fbf9f303b2d0791953ca13bb6b17f8081cc36a Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Fri, 9 Oct 2015 22:17:57 +0300 Subject: [PATCH 1418/2431] staging: octeon: Remove /** from regular comments Fix kernel-doc warnings 'cannot understand function prototype' by removing /** from regular comments Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index 63aefb8583ae..5b3be9bb5c5a 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -86,19 +86,19 @@ int rx_napi_weight = 32; module_param(rx_napi_weight, int, 0444); MODULE_PARM_DESC(rx_napi_weight, "The NAPI WEIGHT parameter."); -/** +/* * cvm_oct_poll_queue - Workqueue for polling operations. */ struct workqueue_struct *cvm_oct_poll_queue; -/** +/* * cvm_oct_poll_queue_stopping - flag to indicate polling should stop. * * Set to one right before cvm_oct_poll_queue is destroyed. */ atomic_t cvm_oct_poll_queue_stopping = ATOMIC_INIT(0); -/** +/* * Array of every ethernet device owned by this driver indexed by * the ipd input port number. */ From 905907500cd9bae3f6bef24925d5887d5c27e5aa Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Fri, 9 Oct 2015 22:17:58 +0300 Subject: [PATCH 1419/2431] staging: octeon: Fix kernel-doc function description Fix kernel-doc 'Excess function parameter' by moving the description to the correct location. Also corrected parameter description Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index 5b3be9bb5c5a..9dc5cc927b9b 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -364,13 +364,6 @@ static void cvm_oct_common_set_multicast_list(struct net_device *dev) } } -/** - * cvm_oct_common_set_mac_address - set the hardware MAC address for a device - * @dev: The device in question. - * @addr: Address structure to change it too. - * - * Returns Zero on success - */ static int cvm_oct_set_mac_filter(struct net_device *dev) { struct octeon_ethernet *priv = netdev_priv(dev); @@ -413,6 +406,13 @@ static int cvm_oct_set_mac_filter(struct net_device *dev) return 0; } +/** + * cvm_oct_common_set_mac_address - set the hardware MAC address for a device + * @dev: The device in question. + * @addr: Socket address. + * + * Returns Zero on success + */ static int cvm_oct_common_set_mac_address(struct net_device *dev, void *addr) { int r = eth_mac_addr(dev, addr); From d4583edb221eb7297bcbc6f0febe895a96fed5f7 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Mon, 12 Oct 2015 16:12:33 +0300 Subject: [PATCH 1420/2431] staging: octeon-ethernet: xaui: don't register poll function in init Link status poll function is already controlled by open/stop functions, so we don't need to do it on init. This eliminates a redundant xaui link status notification when the module is loaded. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet-xaui.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/octeon/ethernet-xaui.c b/drivers/staging/octeon/ethernet-xaui.c index 4b47bcfaabb1..9097edf10230 100644 --- a/drivers/staging/octeon/ethernet-xaui.c +++ b/drivers/staging/octeon/ethernet-xaui.c @@ -32,11 +32,7 @@ int cvm_oct_xaui_open(struct net_device *dev) int cvm_oct_xaui_init(struct net_device *dev) { - struct octeon_ethernet *priv = netdev_priv(dev); - cvm_oct_common_init(dev); - if (!octeon_is_simulation() && priv->phydev == NULL) - priv->poll = cvm_oct_link_poll; return 0; } From 41cb5786550ef67f970a2c1446f480d1ee0e2b69 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Mon, 12 Oct 2015 16:12:34 +0300 Subject: [PATCH 1421/2431] staging: octeon-ethernet: xaui: use common init Use common init. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet-xaui.c | 7 ------- drivers/staging/octeon/ethernet.c | 2 +- drivers/staging/octeon/octeon-ethernet.h | 1 - 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/staging/octeon/ethernet-xaui.c b/drivers/staging/octeon/ethernet-xaui.c index 9097edf10230..c26d1e666cd7 100644 --- a/drivers/staging/octeon/ethernet-xaui.c +++ b/drivers/staging/octeon/ethernet-xaui.c @@ -29,10 +29,3 @@ int cvm_oct_xaui_open(struct net_device *dev) { return cvm_oct_common_open(dev, cvm_oct_link_poll, true); } - -int cvm_oct_xaui_init(struct net_device *dev) -{ - cvm_oct_common_init(dev); - - return 0; -} diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index 9dc5cc927b9b..d6f8a10a60b3 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -554,7 +554,7 @@ static const struct net_device_ops cvm_oct_npi_netdev_ops = { #endif }; static const struct net_device_ops cvm_oct_xaui_netdev_ops = { - .ndo_init = cvm_oct_xaui_init, + .ndo_init = cvm_oct_common_init, .ndo_uninit = cvm_oct_common_uninit, .ndo_open = cvm_oct_xaui_open, .ndo_stop = cvm_oct_common_stop, diff --git a/drivers/staging/octeon/octeon-ethernet.h b/drivers/staging/octeon/octeon-ethernet.h index 67f640f1c668..dfb808f4ee5c 100644 --- a/drivers/staging/octeon/octeon-ethernet.h +++ b/drivers/staging/octeon/octeon-ethernet.h @@ -62,7 +62,6 @@ int cvm_oct_sgmii_open(struct net_device *dev); int cvm_oct_spi_init(struct net_device *dev); void cvm_oct_spi_uninit(struct net_device *dev); -int cvm_oct_xaui_init(struct net_device *dev); int cvm_oct_xaui_open(struct net_device *dev); int cvm_oct_common_init(struct net_device *dev); From 749f3c05004ea9bf5b8cfca2c9edd41c764d68c2 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 21:03:29 +0530 Subject: [PATCH 1422/2431] Staging: rtl8192e: Use kcalloc instead of kzalloc to allocate array The advantage of kcalloc is, that will prevent integer overflows which could result from the multiplication of number of elements and size and it is also a bit nicer to read. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtllib_module.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c index a0d55466888d..113fbf7fbb17 100644 --- a/drivers/staging/rtl8192e/rtllib_module.c +++ b/drivers/staging/rtl8192e/rtllib_module.c @@ -59,9 +59,8 @@ static inline int rtllib_networks_allocate(struct rtllib_device *ieee) if (ieee->networks) return 0; - ieee->networks = kzalloc( - MAX_NETWORK_COUNT * sizeof(struct rtllib_network), - GFP_KERNEL); + ieee->networks = kcalloc(MAX_NETWORK_COUNT, + sizeof(struct rtllib_network), GFP_KERNEL); if (!ieee->networks) return -ENOMEM; From c1aa41dc7b8ef94c36a1213b475bbe7fe1e81304 Mon Sep 17 00:00:00 2001 From: Paul McQuade Date: Sun, 11 Oct 2015 16:22:10 +0100 Subject: [PATCH 1423/2431] Staging: vt6655: Renamed uRATE to rate Renamed uRATE to rate to avoid camelcase Signed-off-by: Paul McQuade Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/rf.c | 12 ++++++------ drivers/staging/vt6655/rf.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/vt6655/rf.c b/drivers/staging/vt6655/rf.c index c537321444be..4c22bb318c79 100644 --- a/drivers/staging/vt6655/rf.c +++ b/drivers/staging/vt6655/rf.c @@ -768,7 +768,7 @@ bool RFvWriteWakeProgSyn(struct vnt_private *priv, unsigned char byRFType, */ bool RFbSetPower( struct vnt_private *priv, - unsigned int uRATE, + unsigned int rate, u16 uCH ) { @@ -782,7 +782,7 @@ bool RFbSetPower( if ((uCH < 1) || (uCH > CB_MAX_CHANNEL)) return false; - switch (uRATE) { + switch (rate) { case RATE_1M: case RATE_2M: case RATE_5M: @@ -818,7 +818,7 @@ bool RFbSetPower( if (priv->byCurPwr == byPwr) return true; - bResult = RFbRawSetPower(priv, byPwr, uRATE); + bResult = RFbRawSetPower(priv, byPwr, rate); if (bResult) priv->byCurPwr = byPwr; @@ -842,7 +842,7 @@ bool RFbSetPower( bool RFbRawSetPower( struct vnt_private *priv, unsigned char byPwr, - unsigned int uRATE + unsigned int rate ) { bool bResult = true; @@ -854,7 +854,7 @@ bool RFbRawSetPower( switch (priv->byRFType) { case RF_AIROHA: bResult &= IFRFbWriteEmbedded(priv, dwAL2230PowerTable[byPwr]); - if (uRATE <= RATE_11M) + if (rate <= RATE_11M) bResult &= IFRFbWriteEmbedded(priv, 0x0001B400+(BY_AL2230_REG_LEN<<3)+IFREGCTL_REGW); else bResult &= IFRFbWriteEmbedded(priv, 0x0005A400+(BY_AL2230_REG_LEN<<3)+IFREGCTL_REGW); @@ -863,7 +863,7 @@ bool RFbRawSetPower( case RF_AL2230S: bResult &= IFRFbWriteEmbedded(priv, dwAL2230PowerTable[byPwr]); - if (uRATE <= RATE_11M) { + if (rate <= RATE_11M) { bResult &= IFRFbWriteEmbedded(priv, 0x040C1400+(BY_AL2230_REG_LEN<<3)+IFREGCTL_REGW); bResult &= IFRFbWriteEmbedded(priv, 0x00299B00+(BY_AL2230_REG_LEN<<3)+IFREGCTL_REGW); } else { diff --git a/drivers/staging/vt6655/rf.h b/drivers/staging/vt6655/rf.h index b5fc3eed06fb..e9c786995506 100644 --- a/drivers/staging/vt6655/rf.h +++ b/drivers/staging/vt6655/rf.h @@ -79,11 +79,11 @@ bool RFbInit( struct vnt_private * ); bool RFvWriteWakeProgSyn(struct vnt_private *, unsigned char byRFType, u16); -bool RFbSetPower(struct vnt_private *, unsigned int uRATE, u16); +bool RFbSetPower(struct vnt_private *, unsigned int rate, u16); bool RFbRawSetPower( struct vnt_private *, unsigned char byPwr, - unsigned int uRATE + unsigned int rate ); void From b2d44fe3ec1b2f0db17e33de62daacc11275d0e3 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Mon, 12 Oct 2015 00:49:08 +0530 Subject: [PATCH 1424/2431] Staging: vt6655: rxtx: Remove extra space character Remove unnecessary space character after the variable RATE_16M preserving the alignment of all other variables and comments. Fixes the warning by checkpatch: space prohibited before that ',' (ctx:WxW) Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/rxtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/rxtx.c b/drivers/staging/vt6655/rxtx.c index 5875d655dd55..0c1f6a11cd61 100644 --- a/drivers/staging/vt6655/rxtx.c +++ b/drivers/staging/vt6655/rxtx.c @@ -78,7 +78,7 @@ static const unsigned short wFB_Opt0[2][5] = { }; static const unsigned short wFB_Opt1[2][5] = { {RATE_12M, RATE_18M, RATE_24M, RATE_24M, RATE_36M}, /* fallback_rate0 */ - {RATE_6M , RATE_6M, RATE_12M, RATE_12M, RATE_18M}, /* fallback_rate1 */ + {RATE_6M, RATE_6M, RATE_12M, RATE_12M, RATE_18M}, /* fallback_rate1 */ }; #define RTSDUR_BB 0 From 45e68e45d38871ff76d838a0410fabbd5d26aed0 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Mon, 12 Oct 2015 00:49:34 +0530 Subject: [PATCH 1425/2431] Staging: vt6655: rxtx: Remove extra parentheses Remove unnecessary parentheses around if test expressions. Fixes checkpatch warning : unnecessary parentheses Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/rxtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/vt6655/rxtx.c b/drivers/staging/vt6655/rxtx.c index 0c1f6a11cd61..b668db6a45fb 100644 --- a/drivers/staging/vt6655/rxtx.c +++ b/drivers/staging/vt6655/rxtx.c @@ -566,7 +566,7 @@ s_uFillDataHead( return buf->duration_a; } /* if (byFBOption == AUTO_FB_NONE) */ } else if (byPktType == PK_TYPE_11A) { - if ((byFBOption != AUTO_FB_NONE)) { + if (byFBOption != AUTO_FB_NONE) { /* Auto Fallback */ struct vnt_tx_datahead_a_fb *buf = pTxDataHead; /* Get SignalField, ServiceField & Length */ @@ -1008,7 +1008,7 @@ s_vGenerateTxParameter( buf->rrv_time = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11A, cbFrameSize, wCurrentRate, bNeedACK); } } else if (byPktType == PK_TYPE_11B) { - if ((pvRTS != NULL)) {/* RTS_need, non PCF mode */ + if (pvRTS != NULL) {/* RTS_need, non PCF mode */ struct vnt_rrv_time_ab *buf = pvRrvTime; buf->rts_rrv_time = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate); From 4188e5862f40cb64256127b1ef7acfcc17e5467f Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Mon, 12 Oct 2015 23:14:15 +0530 Subject: [PATCH 1426/2431] Staging: vt6655: mac: Remove extra braces Remove braces from an if block as it comprises of a single statement. Fix checkpatch warning: braces {} are not necessary for single statement blocks Signed-off-by: Shivani Bhardwaj Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/mac.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/vt6655/mac.c b/drivers/staging/vt6655/mac.c index 3dfd333475c0..688c3be168d1 100644 --- a/drivers/staging/vt6655/mac.c +++ b/drivers/staging/vt6655/mac.c @@ -689,9 +689,8 @@ void MACvSetCurrAC0DescAddrEx(void __iomem *dwIoBase, if (!(byData & DMACTL_RUN)) break; } - if (ww == W_MAX_TIMEOUT) { + if (ww == W_MAX_TIMEOUT) pr_debug(" DBG_PORT80(0x26)\n"); - } VNSvOutPortD(dwIoBase + MAC_REG_AC0DMAPTR, dwCurrDescAddr); if (byOrgDMACtl & DMACTL_RUN) VNSvOutPortB(dwIoBase + MAC_REG_AC0DMACTL, DMACTL_RUN); From 0a589f4f1b6505e26dc592e1aba360af5d6f8dc6 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Mon, 12 Oct 2015 13:53:22 -0700 Subject: [PATCH 1427/2431] staging: gdmwm: move variables to right side of comparison test Move variables to right side of comparison test to improve readability. Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm72xx/gdm_wimax.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/gdm72xx/gdm_wimax.c b/drivers/staging/gdm72xx/gdm_wimax.c index 6e8dbaf35445..69f00cc49bad 100644 --- a/drivers/staging/gdm72xx/gdm_wimax.c +++ b/drivers/staging/gdm72xx/gdm_wimax.c @@ -581,8 +581,8 @@ static int gdm_wimax_get_prepared_info(struct net_device *dev, char *buf, } pos += gdm_wimax_hci_get_tlv(&buf[pos], &T, &L, &V); - if (T == TLV_T(T_MAC_ADDRESS)) { - if (L != dev->addr_len) { + if (TLV_T(T_MAC_ADDRESS) == T) { + if (dev->addr_len != L) { netdev_err(dev, "%s Invalid information result T/L [%x/%d]\n", __func__, T, L); From 441dc609da9d64f18026f1b0fb73a2d5f1e0d023 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:35 +0900 Subject: [PATCH 1428/2431] staging: wilc1000: remove typedef from tstrWILC_WFIDrv This patch removes typedef from the struct tstrWILC_WFIDrv and rename it to host_if_drv. This patch includes the removal of the comment for tstrWILC_WFIDrv as well. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 354 +++++++++--------- drivers/staging/wilc1000/host_interface.h | 108 +++--- drivers/staging/wilc1000/linux_wlan.c | 16 +- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 24 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 +- 5 files changed, 249 insertions(+), 257 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index bb833d3cfd04..e9df5a42a7e2 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -403,7 +403,7 @@ union message_body { struct host_if_msg { u16 id; /*!< Message ID */ union message_body body; /*!< Message body */ - tstrWILC_WFIDrv *drvHandler; + struct host_if_drv *drvHandler; }; typedef struct _tstrWidJoinReqExt { @@ -461,9 +461,9 @@ typedef enum { /* */ /*****************************************************************************/ /* Zero is not used, because a zero ID means termination */ -static tstrWILC_WFIDrv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; -tstrWILC_WFIDrv *terminated_handle; -tstrWILC_WFIDrv *gWFiDrvHandle; +static struct host_if_drv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; +struct host_if_drv *terminated_handle; +struct host_if_drv *gWFiDrvHandle; bool g_obtainingIP = false; u8 P2P_LISTEN_STATE; static struct task_struct *HostIFthreadHandler; @@ -498,7 +498,7 @@ u8 gu8Flushed11iMode; u8 gu8FlushedAuthType; u32 gu32FlushedJoinReqSize; u32 gu32FlushedInfoElemAsocSize; -tstrWILC_WFIDrv *gu8FlushedJoinReqDrvHandler; +struct host_if_drv *gu8FlushedJoinReqDrvHandler; #define REAL_JOIN_REQ 0 #define FLUSHED_JOIN_REQ 1 #define FLUSHED_BYTE_POS 79 /* Position the byte indicating flushing in the flushed request */ @@ -508,7 +508,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo); extern void chip_sleep_manually(u32 u32SleepTime); extern int linux_wlan_get_num_conn_ifcs(void); -static int add_handler_in_list(tstrWILC_WFIDrv *handler) +static int add_handler_in_list(struct host_if_drv *handler) { int i; @@ -522,7 +522,7 @@ static int add_handler_in_list(tstrWILC_WFIDrv *handler) return -ENOBUFS; } -static int remove_handler_in_list(tstrWILC_WFIDrv *handler) +static int remove_handler_in_list(struct host_if_drv *handler) { int i; @@ -536,7 +536,7 @@ static int remove_handler_in_list(tstrWILC_WFIDrv *handler) return -EINVAL; } -static int get_id_from_handler(tstrWILC_WFIDrv *handler) +static int get_id_from_handler(struct host_if_drv *handler) { int i; @@ -551,7 +551,7 @@ static int get_id_from_handler(tstrWILC_WFIDrv *handler) return 0; } -static tstrWILC_WFIDrv *get_handler_from_id(int id) +static struct host_if_drv *get_handler_from_id(int id) { if (id <= 0 || id >= ARRAY_SIZE(wfidrv_list)) return NULL; @@ -567,13 +567,13 @@ static tstrWILC_WFIDrv *get_handler_from_id(int id) * @date * @version 1.0 */ -static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_SetChannel(struct host_if_drv *drvHandler, struct channel_attr *pstrHostIFSetChan) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_CURRENT_CHANNEL; @@ -602,13 +602,13 @@ static s32 Handle_SetChannel(tstrWILC_WFIDrv *drvHandler, * @date * @version 1.0 */ -static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, struct drv_handler *pstrHostIfSetDrvHandler) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = drvHandler; + struct host_if_drv *pstrWFIDrv = drvHandler; /*prepare configuration packet*/ @@ -643,13 +643,13 @@ static s32 Handle_SetWfiDrvHandler(tstrWILC_WFIDrv *drvHandler, * @date * @version 1.0 */ -static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, struct op_mode *pstrHostIfSetOperationMode) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ @@ -686,13 +686,13 @@ static s32 Handle_SetOperationMode(tstrWILC_WFIDrv *drvHandler, * @date * @version 1.0 */ -s32 Handle_set_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) +s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) { s32 s32Error = 0; tstrWID strWID; char firmwareIPAddress[4] = {0}; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; if (pu8IPAddr[0] < 192) pu8IPAddr[0] = 0; @@ -733,12 +733,12 @@ s32 Handle_set_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) * @date * @version 1.0 */ -s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) +s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_IP_ADDRESS; @@ -781,13 +781,13 @@ s32 Handle_get_IPAddress(tstrWILC_WFIDrv *drvHandler, u8 *pu8IPAddr, u8 idx) * @date November 2013 * @version 7.0 */ -static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, struct set_mac_addr *pstrHostIfSetMacAddress) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; u8 *mac_buf = kmalloc(ETH_ALEN, GFP_KERNEL); if (mac_buf == NULL) { @@ -824,7 +824,7 @@ static s32 Handle_SetMacAddress(tstrWILC_WFIDrv *drvHandler, * @date JAN 2013 * @version 8.0 */ -static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, struct get_mac_addr *pstrHostIfGetMacAddress) { @@ -859,13 +859,13 @@ static s32 Handle_GetMacAddress(tstrWILC_WFIDrv *drvHandler, * @date * @version 1.0 */ -static s32 Handle_CfgParam(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_CfgParam(struct host_if_drv *drvHandler, struct cfg_param_attr *strHostIFCfgParamAttr) { s32 s32Error = 0; tstrWID strWIDList[32]; u8 u8WidCnt = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; down(&(pstrWFIDrv->gtOsCfgValuesSem)); @@ -1219,7 +1219,7 @@ static s32 Handle_wait_msg_q_empty(void) * @date * @version 1.0 */ -static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_Scan(struct host_if_drv *drvHandler, struct scan_attr *pstrHostIFscanAttr) { s32 s32Error = 0; @@ -1229,7 +1229,7 @@ static s32 Handle_Scan(tstrWILC_WFIDrv *drvHandler, u8 *pu8Buffer; u8 valuesize = 0; u8 *pu8HdnNtwrksWidVal = NULL; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; PRINT_D(HOSTINF_DBG, "Setting SCAN params\n"); PRINT_D(HOSTINF_DBG, "Scanning: In [%d] state\n", pstrWFIDrv->enuHostIFstate); @@ -1386,11 +1386,11 @@ ERRORHANDLER: * @date * @version 1.0 */ -static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent) +static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEvent) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; u8 u8abort_running_scan; @@ -1443,10 +1443,10 @@ static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent) * @version 1.0 */ u8 u8ConnectedSSID[6] = {0}; -static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_Connect(struct host_if_drv *drvHandler, struct connect_attr *pstrHostIFconnectAttr) { - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; s32 s32Error = 0; tstrWID strWIDList[8]; u32 u32WidsCount = 0, dummyval = 0; @@ -1806,7 +1806,7 @@ ERRORHANDLER: * @version 8.0 */ -static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) +static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) { s32 s32Error = 0; tstrWID strWIDList[5]; @@ -1865,13 +1865,13 @@ static s32 Handle_FlushConnect(tstrWILC_WFIDrv *drvHandler) * @date * @version 1.0 */ -static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) +static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) { s32 s32Error = 0; tstrConnectInfo strConnectInfo; tstrWID strWID; u16 u16DummyReasonCode = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; if (pstrWFIDrv == NULL) { PRINT_ER("Driver handler is NULL\n"); @@ -1973,7 +1973,7 @@ static s32 Handle_ConnectTimeout(tstrWILC_WFIDrv *drvHandler) * @date * @version 1.0 */ -static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *drvHandler, struct rcvd_net_info *pstrRcvdNetworkInfo) { u32 i; @@ -1985,7 +1985,7 @@ static s32 Handle_RcvdNtwrkInfo(tstrWILC_WFIDrv *drvHandler, tstrNetworkInfo *pstrNetworkInfo = NULL; void *pJoinParams = NULL; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -2089,7 +2089,7 @@ done: * @date * @version 1.0 */ -static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, struct rcvd_async_info *pstrRcvdGnrlAsyncInfo) { /* TODO: mostafa: till now, this function just handles only the received mac status msg, */ @@ -2106,7 +2106,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, tstrConnectInfo strConnectInfo; tstrDisconnectNotifInfo strDisconnectNotifInfo; s32 s32Err = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; if (!pstrWFIDrv) { PRINT_ER("Driver handler is NULL\n"); @@ -2405,7 +2405,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(tstrWILC_WFIDrv *drvHandler, * @date * @version 1.0 */ -static int Handle_Key(tstrWILC_WFIDrv *drvHandler, +static int Handle_Key(struct host_if_drv *drvHandler, struct key_attr *pstrHostIFkeyAttr) { s32 s32Error = 0; @@ -2415,7 +2415,7 @@ static int Handle_Key(tstrWILC_WFIDrv *drvHandler, u8 *pu8keybuf; s8 s8idxarray[1]; s8 ret = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; switch (pstrHostIFkeyAttr->enuKeyType) { @@ -2769,13 +2769,13 @@ _WPAPtk_end_case_: * @date * @version 1.0 */ -static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) +static void Handle_Disconnect(struct host_if_drv *drvHandler) { tstrWID strWID; s32 s32Error = 0; u16 u16DummyReasonCode = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_DISCONNECT; @@ -2872,11 +2872,11 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) } -void resolve_disconnect_aberration(tstrWILC_WFIDrv *drvHandler) +void resolve_disconnect_aberration(struct host_if_drv *drvHandler) { - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; - pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + pstrWFIDrv = (struct host_if_drv *)drvHandler; if (pstrWFIDrv == NULL) return; if ((pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) || (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTING)) { @@ -2895,13 +2895,12 @@ void resolve_disconnect_aberration(tstrWILC_WFIDrv *drvHandler) * @date * @version 1.0 */ -static s32 Handle_GetChnl(tstrWILC_WFIDrv *drvHandler) +static s32 Handle_GetChnl(struct host_if_drv *drvHandler) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_CURRENT_CHANNEL; strWID.enuWIDtype = WID_CHAR; @@ -2936,11 +2935,11 @@ static s32 Handle_GetChnl(tstrWILC_WFIDrv *drvHandler) * @date * @version 1.0 */ -static void Handle_GetRssi(tstrWILC_WFIDrv *drvHandler) +static void Handle_GetRssi(struct host_if_drv *drvHandler) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_RSSI; strWID.enuWIDtype = WID_CHAR; @@ -2963,11 +2962,11 @@ static void Handle_GetRssi(tstrWILC_WFIDrv *drvHandler) } -static void Handle_GetLinkspeed(tstrWILC_WFIDrv *drvHandler) +static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; gs8lnkspd = 0; @@ -2990,7 +2989,7 @@ static void Handle_GetLinkspeed(tstrWILC_WFIDrv *drvHandler) } -s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatistics) +s32 Handle_GetStatistics(struct host_if_drv *drvHandler, tstrStatistics *pstrStatistics) { tstrWID strWIDList[5]; u32 u32WidsCount = 0, s32Error = 0; @@ -3047,14 +3046,14 @@ s32 Handle_GetStatistics(tstrWILC_WFIDrv *drvHandler, tstrStatistics *pstrStatis * @date * @version 1.0 */ -static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, struct sta_inactive_t *strHostIfStaInactiveT) { s32 s32Error = 0; u8 *stamac; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_SET_STA_MAC_INACTIVE_TIME; @@ -3114,13 +3113,13 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, * @date * @version 1.0 */ -static void Handle_AddBeacon(tstrWILC_WFIDrv *drvHandler, +static void Handle_AddBeacon(struct host_if_drv *drvHandler, struct beacon_attr *pstrSetBeaconParam) { s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Adding BEACON\n"); @@ -3177,18 +3176,18 @@ ERRORHANDLER: /** * @brief Handle_AddBeacon * @details Sending config packet to delete beacon - * @param[in] tstrWILC_WFIDrv *drvHandler + * @param[in] struct host_if_drv *drvHandler * @return NONE * @author * @date * @version 1.0 */ -static void Handle_DelBeacon(tstrWILC_WFIDrv *drvHandler) +static void Handle_DelBeacon(struct host_if_drv *drvHandler) { s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_DEL_BEACON; strWID.enuWIDtype = WID_CHAR; @@ -3275,13 +3274,13 @@ static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, * @date * @version 1.0 */ -static void Handle_AddStation(tstrWILC_WFIDrv *drvHandler, +static void Handle_AddStation(struct host_if_drv *drvHandler, struct add_sta_param *pstrStationParam) { s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Handling add station\n"); strWID.u16WIDid = (u16)WID_ADD_STA; @@ -3315,14 +3314,14 @@ ERRORHANDLER: * @date * @version 1.0 */ -static void Handle_DelAllSta(tstrWILC_WFIDrv *drvHandler, +static void Handle_DelAllSta(struct host_if_drv *drvHandler, struct del_all_sta *pstrDelAllStaParam) { s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; u8 i; u8 au8Zero_Buff[6] = {0}; @@ -3371,13 +3370,13 @@ ERRORHANDLER: * @date * @version 1.0 */ -static void Handle_DelStation(tstrWILC_WFIDrv *drvHandler, +static void Handle_DelStation(struct host_if_drv *drvHandler, struct del_sta *pstrDelStaParam) { s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_REMOVE_STA; strWID.enuWIDtype = WID_BIN; @@ -3413,13 +3412,13 @@ ERRORHANDLER: * @date * @version 1.0 */ -static void Handle_EditStation(tstrWILC_WFIDrv *drvHandler, +static void Handle_EditStation(struct host_if_drv *drvHandler, struct add_sta_param *pstrStationParam) { s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_EDIT_STA; strWID.enuWIDtype = WID_BIN; @@ -3453,13 +3452,13 @@ ERRORHANDLER: * @date * @version 1.0 */ -static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, +static int Handle_RemainOnChan(struct host_if_drv *drvHandler, struct remain_ch *pstrHostIfRemainOnChan) { s32 s32Error = 0; u8 u8remain_on_chan_flag; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; /*If it's a pendig remain-on-channel, don't overwrite gWFiDrvHandle values (since incoming msg is garbbage)*/ if (!pstrWFIDrv->u8RemainOnChan_pendingreq) { @@ -3540,13 +3539,13 @@ ERRORHANDLER: * @date * @version 1.0 */ -static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, +static int Handle_RegisterFrame(struct host_if_drv *drvHandler, struct reg_frame *pstrHostIfRegisterFrame) { s32 s32Error = 0; tstrWID strWID; u8 *pu8CurrByte; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Handling frame register Flag : %d FrameType: %d\n", pstrHostIfRegisterFrame->bReg, pstrHostIfRegisterFrame->u16FrameType); @@ -3589,13 +3588,13 @@ static int Handle_RegisterFrame(tstrWILC_WFIDrv *drvHandler, * @version 1.0 */ #define FALSE_FRMWR_CHANNEL 100 -static u32 Handle_ListenStateExpired(tstrWILC_WFIDrv *drvHandler, +static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, struct remain_ch *pstrHostIfRemainOnChan) { u8 u8remain_on_chan_flag; tstrWID strWID; s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *) drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; PRINT_D(HOSTINF_DBG, "CANCEL REMAIN ON CHAN\n"); @@ -3650,7 +3649,7 @@ static void ListenTimerCB(unsigned long arg) { s32 s32Error = 0; struct host_if_msg msg; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)arg; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)arg; /*Stopping remain-on-channel timer*/ del_timer(&pstrWFIDrv->hRemainOnChannel); @@ -3675,13 +3674,13 @@ static void ListenTimerCB(unsigned long arg) * @date * @version 1.0 */ -static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, +static void Handle_PowerManagement(struct host_if_drv *drvHandler, struct power_mgmt_param *strPowerMgmtParam) { s32 s32Error = 0; tstrWID strWID; s8 s8PowerMode; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_POWER_MANAGEMENT; @@ -3711,7 +3710,7 @@ static void Handle_PowerManagement(tstrWILC_WFIDrv *drvHandler, * @date * @version 1.0 */ -static void Handle_SetMulticastFilter(tstrWILC_WFIDrv *drvHandler, +static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, struct set_multicast *strHostIfSetMulti) { s32 s32Error = 0; @@ -3762,14 +3761,14 @@ ERRORHANDLER: * @date Feb. 2014 * @version 9.0 */ -static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_AddBASession(struct host_if_drv *drvHandler, struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; tstrWID strWID; int AddbaTimeout = 100; char *ptr = NULL; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Opening Block Ack session with\nBSSID = %.2x:%.2x:%.2x\nTID=%d\nBufferSize == %d\nSessionTimeOut = %d\n", strHostIfBASessionInfo->au8Bssid[0], @@ -3851,13 +3850,13 @@ static s32 Handle_AddBASession(tstrWILC_WFIDrv *drvHandler, * @date Feb. 2013 * @version 9.0 */ -static s32 Handle_DelAllRxBASessions(tstrWILC_WFIDrv *drvHandler, +static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; tstrWID strWID; char *ptr = NULL; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)drvHandler; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(GENERIC_DBG, "Delete Block Ack session with\nBSSID = %.2x:%.2x:%.2x\nTID=%d\n", strHostIfBASessionInfo->au8Bssid[0], @@ -3909,13 +3908,13 @@ static int hostIFthread(void *pvArg) { u32 u32Ret; struct host_if_msg msg; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; memset(&msg, 0, sizeof(struct host_if_msg)); while (1) { wilc_mq_recv(&gMsgQHostIF, &msg, sizeof(struct host_if_msg), &u32Ret); - pstrWFIDrv = (tstrWILC_WFIDrv *)msg.drvHandler; + pstrWFIDrv = (struct host_if_drv *)msg.drvHandler; if (msg.id == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); break; @@ -4160,11 +4159,10 @@ static void TimerCB_Connect(unsigned long arg) * @version 1.0 */ /* Check implementation in core adding 9 bytes to the input! */ -s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) +s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ strWID.u16WIDid = (u16)WID_REMOVE_KEY; strWID.enuWIDtype = WID_STR; @@ -4189,7 +4187,7 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress) * @date 8 March 2012 * @version 1.0 */ -int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) +int host_int_remove_wep_key(struct host_if_drv *wfi_drv, u8 index) { int result = 0; struct host_if_msg msg; @@ -4232,10 +4230,10 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) +s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hWFIDrv, u8 u8Index) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; @@ -4286,11 +4284,11 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx) +s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -4348,11 +4346,11 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, * @date 28 FEB 2013 * @version 1.0 */ -s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, enum AUTHTYPE tenuAuth_type) +s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, enum AUTHTYPE tenuAuth_type) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; u8 i; @@ -4421,11 +4419,11 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, +s32 host_int_add_ptk(struct host_if_drv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, const u8 *mac_addr, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode, u8 u8Idx) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; u8 u8KeyLen = u8PtkKeylen; u32 i; @@ -4516,12 +4514,12 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKeylen, +s32 host_int_add_rx_gtk(struct host_if_drv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKeylen, u8 u8KeyIdx, u32 u32KeyRSClen, const u8 *KeyRSC, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; u8 u8KeyLen = u8GtkKeylen; @@ -4619,10 +4617,10 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, struct host_if_pmkid_attr *pu8PmkidInfoArray) +s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_attr *pu8PmkidInfoArray) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; u32 i; @@ -4679,12 +4677,11 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, struct host_if_pmkid_attr * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PmkidInfoArray, +s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, u32 u32PmkidInfoLen) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ strWID.u16WIDid = (u16)WID_PMKID_INFO; strWID.enuWIDtype = WID_STR; @@ -4708,7 +4705,7 @@ s32 host_int_get_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PmkidInfoArray, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPhrase, +s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength) { s32 s32Error = 0; @@ -4735,7 +4732,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPh * @date 19 April 2012 * @version 1.0 */ -s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) +s32 host_int_get_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) { s32 s32Error = 0; struct host_if_msg msg; @@ -4769,7 +4766,7 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) * @date 16 July 2012 * @version 1.0 */ -s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) +s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) { s32 s32Error = 0; struct host_if_msg msg; @@ -4804,12 +4801,11 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, +s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ strWID.u16WIDid = (u16)WID_11I_PSK; strWID.enuWIDtype = WID_STR; @@ -4834,11 +4830,10 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 scanSource) +s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ strWID.u16WIDid = (u16)WID_START_SCAN_REQ; strWID.enuWIDtype = WID_CHAR; @@ -4864,11 +4859,10 @@ s32 host_int_set_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 scanSource) * @version 1.0 */ -s32 host_int_get_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ScanSource) +s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ strWID.u16WIDid = (u16)WID_START_SCAN_REQ; strWID.enuWIDtype = WID_CHAR; @@ -4889,7 +4883,7 @@ s32 host_int_get_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ScanSource) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, +s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, const u8 *pu8ssid, size_t ssidLen, const u8 *pu8IEs, size_t IEsLen, wilc_connect_result pfConnectResult, void *pvUserArg, @@ -4898,7 +4892,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, void *pJoinParams) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; tenuScanConnTimer enuScanConnTimer; @@ -4983,7 +4977,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, * @version 8.0 */ -s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) +s32 host_int_flush_join_req(struct host_if_drv *hWFIDrv) { s32 s32Error = 0; struct host_if_msg msg; @@ -5024,11 +5018,11 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) +s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode) { s32 s32Error = 0; struct host_if_msg msg; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; if (pstrWFIDrv == NULL) { PRINT_ER("Driver is null\n"); @@ -5063,11 +5057,10 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_disconnect_station(tstrWILC_WFIDrv *hWFIDrv, u8 assoc_id) +s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ strWID.u16WIDid = (u16)WID_DISCONNECT; strWID.enuWIDtype = WID_CHAR; @@ -5103,12 +5096,11 @@ s32 host_int_disconnect_station(tstrWILC_WFIDrv *hWFIDrv, u8 assoc_id) * @version 1.0 */ -s32 host_int_get_assoc_req_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocReqInfo, +s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo, u32 u32AssocReqInfoLen) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ strWID.u16WIDid = (u16)WID_ASSOC_REQ_INFO; strWID.enuWIDtype = WID_STR; @@ -5130,12 +5122,12 @@ s32 host_int_get_assoc_req_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocReqInfo, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, +s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInfo, u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; if (pstrWFIDrv == NULL) { PRINT_ER("Driver is null\n"); @@ -5177,12 +5169,11 @@ s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, +s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel, u32 u32RxPowerLevelLen) { s32 s32Error = 0; tstrWID strWID; - /* tstrWILC_WFIDrv * pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; */ strWID.u16WIDid = (u16)WID_RX_POWER_LEVEL; strWID.enuWIDtype = WID_STR; @@ -5208,7 +5199,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, * @date 8 March 2012 * @version 1.0 */ -int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel) +int host_int_set_mac_chnl_num(struct host_if_drv *wfi_drv, u8 channel) { int result; struct host_if_msg msg; @@ -5255,7 +5246,7 @@ int host_int_wait_msg_queue_idle(void) return result; } -int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address) +int host_int_set_wfi_drv_handler(struct host_if_drv *address) { int result = 0; @@ -5277,7 +5268,7 @@ int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address) return result; } -int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 mode) +int host_int_set_operation_mode(struct host_if_drv *wfi_drv, u32 mode) { int result = 0; @@ -5314,10 +5305,10 @@ int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 mode) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) +s32 host_int_get_host_chnl_num(struct host_if_drv *hWFIDrv, u8 *pu8ChNo) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -5356,10 +5347,10 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo) * @date * @version 1.0 */ -s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu32InactiveTime) +s32 host_int_get_inactive_time(struct host_if_drv *hWFIDrv, const u8 *mac, u32 *pu32InactiveTime) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -5398,12 +5389,12 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 * @date 8 March 2012 * @version 1.0 */ -s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) +s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) { s32 s32Error = 0; tstrWID strWID; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; if (pstrWFIDrv == NULL) { @@ -5444,11 +5435,11 @@ s32 host_int_test_get_int_wid(tstrWILC_WFIDrv *hWFIDrv, u32 *pu32TestMemAddr) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) +s32 host_int_get_rssi(struct host_if_drv *hWFIDrv, s8 *ps8Rssi) { s32 s32Error = 0; struct host_if_msg msg; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; /* prepare the Get RSSI Message */ @@ -5479,12 +5470,12 @@ s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi) return s32Error; } -s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) +s32 host_int_get_link_speed(struct host_if_drv *hWFIDrv, s8 *ps8lnkspd) { struct host_if_msg msg; s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; @@ -5516,7 +5507,7 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd) return s32Error; } -s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics) +s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, tstrStatistics *pstrStatistics) { s32 s32Error = 0; struct host_if_msg msg; @@ -5556,7 +5547,7 @@ s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatis * @date 8 March 2012 * @version 1.0 */ -s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, +s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource, u8 u8ScanType, u8 *pu8ChnlFreqList, u8 u8ChnlListLen, const u8 *pu8IEs, size_t IEsLen, wilc_scan_result ScanResult, @@ -5564,7 +5555,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, struct hidden_network *pstrHiddenNetwork) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; tenuScanConnTimer enuScanConnTimer; @@ -5628,11 +5619,11 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, * @date 8 March 2012 * @version 1.0 */ -s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal) +s32 hif_set_cfg(struct host_if_drv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; @@ -5667,10 +5658,10 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal) * @date 8 March 2012 * @version 1.0 */ -s32 hif_get_cfg(tstrWILC_WFIDrv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value) +s32 hif_get_cfg(struct host_if_drv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; down(&(pstrWFIDrv->gtOsCfgValuesSem)); @@ -5801,7 +5792,7 @@ void host_int_send_join_leave_info_to_host static void GetPeriodicRSSI(unsigned long arg) { - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)arg; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)arg; if (pstrWFIDrv == NULL) { PRINT_ER("Driver handler is NULL\n"); @@ -5845,10 +5836,10 @@ void host_int_send_network_info_to_host */ static u32 clients_count; -s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) +s32 host_int_init(struct host_if_drv **phWFIDrv) { s32 result = 0; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; int err; PRINT_D(HOSTINF_DBG, "Initializing host interface for client %d\n", clients_count + 1); @@ -5858,7 +5849,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv) sema_init(&hWaitResponse, 0); /*Allocate host interface private structure*/ - pstrWFIDrv = kzalloc(sizeof(tstrWILC_WFIDrv), GFP_KERNEL); + pstrWFIDrv = kzalloc(sizeof(struct host_if_drv), GFP_KERNEL); if (!pstrWFIDrv) { result = -ENOMEM; goto _fail_; @@ -5960,14 +5951,14 @@ _fail_: * @version 1.0 */ -s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv) +s32 host_int_deinit(struct host_if_drv *hWFIDrv) { s32 s32Error = 0; struct host_if_msg msg; int ret; /*obtain driver handle*/ - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; if (pstrWFIDrv == NULL) { PRINT_ER("pstrWFIDrv = NULL\n"); @@ -6073,7 +6064,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) s32 s32Error = 0; struct host_if_msg msg; int id; - tstrWILC_WFIDrv *pstrWFIDrv = NULL; + struct host_if_drv *pstrWFIDrv = NULL; id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); pstrWFIDrv = get_handler_from_id(id); @@ -6119,7 +6110,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) s32 s32Error = 0; struct host_if_msg msg; int id; - tstrWILC_WFIDrv *pstrWFIDrv = NULL; + struct host_if_drv *pstrWFIDrv = NULL; down(&hSemHostIntDeinit); @@ -6176,7 +6167,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) s32 s32Error = 0; struct host_if_msg msg; int id; - tstrWILC_WFIDrv *pstrWFIDrv = NULL; + struct host_if_drv *pstrWFIDrv = NULL; id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); pstrWFIDrv = get_handler_from_id(id); @@ -6229,10 +6220,10 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) * @date * @version 1.0 */ -s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg) +s32 host_int_remain_on_channel(struct host_if_drv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -6274,10 +6265,10 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u * @date * @version 1.0 */ -s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) +s32 host_int_ListenStateExpired(struct host_if_drv *hWFIDrv, u32 u32SessionID) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -6309,10 +6300,10 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID) * @author * @date * @version 1.0*/ -s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bReg) +s32 host_int_frame_register(struct host_if_drv *hWFIDrv, u16 u16FrameType, bool bReg) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -6363,13 +6354,13 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe * @date * @version 1.0 */ -s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, +s32 host_int_add_beacon(struct host_if_drv *hWFIDrv, u32 u32Interval, u32 u32DTIMPeriod, u32 u32HeadLen, u8 *pu8Head, u32 u32TailLen, u8 *pu8Tail) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct beacon_attr *pstrSetBeaconParam = &msg.body.beacon_info; @@ -6435,10 +6426,10 @@ ERRORHANDLER: * @date * @version 1.0 */ -s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) +s32 host_int_del_beacon(struct host_if_drv *hWFIDrv) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { @@ -6468,11 +6459,11 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv) * @date * @version 1.0 */ -s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, +s32 host_int_add_station(struct host_if_drv *hWFIDrv, struct add_sta_param *pstrStaParams) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct add_sta_param *pstrAddStationMsg = &msg.body.add_sta_info; @@ -6518,10 +6509,10 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, * @date * @version 1.0 */ -s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) +s32 host_int_del_station(struct host_if_drv *hWFIDrv, const u8 *pu8MacAddr) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct del_sta *pstrDelStationMsg = &msg.body.del_sta_info; @@ -6559,10 +6550,11 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr) * @date * @version 1.0 */ -s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) +s32 host_int_del_allstation(struct host_if_drv *hWFIDrv, + u8 pu8MacAddr[][ETH_ALEN]) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct del_all_sta *pstrDelAllStationMsg = &msg.body.del_all_sta_info; u8 au8Zero_Buff[ETH_ALEN] = {0}; @@ -6619,11 +6611,11 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) * @date * @version 1.0 */ -s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, +s32 host_int_edit_station(struct host_if_drv *hWFIDrv, struct add_sta_param *pstrStaParams) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct add_sta_param *pstrAddStationMsg = &msg.body.add_sta_info; @@ -6659,10 +6651,10 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, return s32Error; } -s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Timeout) +s32 host_int_set_power_mgmt(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u32Timeout) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct power_mgmt_param *pstrPowerMgmtParam = &msg.body.pwr_mgmt_info; @@ -6692,11 +6684,11 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti return s32Error; } -s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32count) +s32 host_int_setup_multicast_filter(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u32count) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct set_multicast *pstrMulticastFilterParam = &msg.body.multicast_info; @@ -6942,10 +6934,10 @@ void host_int_freeJoinParams(void *pJoinParams) PRINT_ER("Unable to FREE null pointer\n"); } -s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) +s32 host_int_delBASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct ba_session_info *pBASessionInfo = &msg.body.session_info; @@ -6972,10 +6964,10 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) return s32Error; } -s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID) +s32 host_int_del_All_Rx_BASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct ba_session_info *pBASessionInfo = &msg.body.session_info; @@ -7010,10 +7002,10 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T * @author Abdelrahman Sobhy * @date * @version 1.0*/ -s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) +s32 host_int_setup_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; /* TODO: Enable This feature on softap firmware */ @@ -7050,10 +7042,10 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) * @author Abdelrahman Sobhy * @date * @version 1.0*/ -s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *u16ipadd, u8 idx) +s32 host_int_get_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv; + struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; if (pstrWFIDrv == NULL) { diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 9bb55abd79ee..6f6362e8bf50 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -303,7 +303,7 @@ enum p2p_listen_state { P2P_GRP_FORMATION }; -typedef struct { +struct host_if_drv { /* Scan user structure */ tstrWILC_UsrScanReq strWILC_UsrScanReq; @@ -335,7 +335,7 @@ typedef struct { struct timer_list hRemainOnChannel; bool IFC_UP; -} tstrWILC_WFIDrv; +}; /*! * @enum tenuWILC_StaFlag @@ -391,7 +391,7 @@ struct add_sta_param { * @date 8 March 2012 * @version 1.0 */ -s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress); +s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress); /** * @brief removes WEP key * @details valid only in BSS STA mode if External Supplicant support is enabled. @@ -406,7 +406,7 @@ s32 host_int_remove_key(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8StaAddress); * @date 8 March 2012 * @version 1.0 */ -int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index); +int host_int_remove_wep_key(struct host_if_drv *wfi_drv, u8 index); /** * @brief sets WEP deafault key * @details Sets the index of the WEP encryption key in use, @@ -419,7 +419,7 @@ int host_int_remove_wep_key(tstrWILC_WFIDrv *wfi_drv, u8 index); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index); +s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hWFIDrv, u8 u8Index); /** * @brief sets WEP deafault key @@ -440,7 +440,7 @@ s32 host_int_set_WEPDefaultKeyID(tstrWILC_WFIDrv *hWFIDrv, u8 u8Index); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx); +s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx); /** * @brief host_int_add_wep_key_bss_ap * @details valid only in AP mode if External Supplicant support is enabled. @@ -455,7 +455,7 @@ s32 host_int_add_wep_key_bss_sta(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, * @date 28 Feb 2013 * @version 1.0 */ -s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, enum AUTHTYPE tenuAuth_type); +s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, enum AUTHTYPE tenuAuth_type); /** * @brief adds ptk Key @@ -473,7 +473,7 @@ s32 host_int_add_wep_key_bss_ap(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8WepKey, u * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, +s32 host_int_add_ptk(struct host_if_drv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, const u8 *mac_addr, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode, u8 u8Idx); /** @@ -488,7 +488,7 @@ s32 host_int_add_ptk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, * @date 15 April 2013 * @version 1.0 */ -s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu32InactiveTime); +s32 host_int_get_inactive_time(struct host_if_drv *hWFIDrv, const u8 *mac, u32 *pu32InactiveTime); /** * @brief adds Rx GTk Key @@ -506,7 +506,7 @@ s32 host_int_get_inactive_time(tstrWILC_WFIDrv *hWFIDrv, const u8 *mac, u32 *pu3 * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKeylen, +s32 host_int_add_rx_gtk(struct host_if_drv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKeylen, u8 u8KeyIdx, u32 u32KeyRSClen, const u8 *KeyRSC, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode); @@ -527,7 +527,7 @@ s32 host_int_add_rx_gtk(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKe * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_tx_gtk(tstrWILC_WFIDrv *hWFIDrv, u8 u8KeyLen, u8 *pu8TxGtk, u8 u8KeyIdx); +s32 host_int_add_tx_gtk(struct host_if_drv *hWFIDrv, u8 u8KeyLen, u8 *pu8TxGtk, u8 u8KeyIdx); /** * @brief caches the pmkid @@ -550,7 +550,7 @@ s32 host_int_add_tx_gtk(tstrWILC_WFIDrv *hWFIDrv, u8 u8KeyLen, u8 *pu8TxGtk, u8 * @version 1.0 */ -s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, struct host_if_pmkid_attr *pu8PmkidInfoArray); +s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_attr *pu8PmkidInfoArray); /** * @brief gets the cached the pmkid info * @details valid only in BSS STA mode if External Supplicant @@ -574,7 +574,7 @@ s32 host_int_set_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, struct host_if_pmkid_attr * @version 1.0 */ -s32 host_int_get_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PmkidInfoArray, +s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, u32 u32PmkidInfoLen); /** @@ -591,7 +591,7 @@ s32 host_int_get_pmkid_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PmkidInfoArray, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPhrase, +s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength); /** * @brief gets the pass phrase @@ -607,7 +607,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8PassPh * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, +s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength); /** @@ -621,7 +621,7 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, * @date 19 April 2012 * @version 1.0 */ -s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress); +s32 host_int_get_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress); /** * @brief sets mac address @@ -634,7 +634,7 @@ s32 host_int_get_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress); * @date 16 July 2012 * @version 1.0 */ -s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress); +s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress); /** * @brief wait until msg q is empty @@ -665,7 +665,7 @@ int host_int_wait_msg_queue_idle(void); * @version 1.0 */ -s32 host_int_set_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 scanSource); +s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource); /** * @brief gets scan source of the last scan * @details @@ -681,7 +681,7 @@ s32 host_int_set_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 scanSource); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ScanSource); +s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource); /** * @brief sets a join request @@ -695,7 +695,7 @@ s32 host_int_get_start_scan_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ScanSource); * @version 1.0 */ -s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, +s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, const u8 *pu8ssid, size_t ssidLen, const u8 *pu8IEs, size_t IEsLen, wilc_connect_result pfConnectResult, void *pvUserArg, @@ -715,7 +715,7 @@ s32 host_int_set_join_req(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8bssid, * @version 8.0 */ -s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv); +s32 host_int_flush_join_req(struct host_if_drv *hWFIDrv); /** @@ -729,7 +729,7 @@ s32 host_int_flush_join_req(tstrWILC_WFIDrv *hWFIDrv); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode); +s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode); /** * @brief disconnects a sta @@ -742,7 +742,7 @@ s32 host_int_disconnect(tstrWILC_WFIDrv *hWFIDrv, u16 u16ReasonCode); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_disconnect_station(tstrWILC_WFIDrv *hWFIDrv, u8 assoc_id); +s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id); /** * @brief gets a Association request info * @details @@ -769,7 +769,7 @@ s32 host_int_disconnect_station(tstrWILC_WFIDrv *hWFIDrv, u8 assoc_id); * @version 1.0 */ -s32 host_int_get_assoc_req_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocReqInfo, +s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo, u32 u32AssocReqInfoLen); /** * @brief gets a Association Response info @@ -783,7 +783,7 @@ s32 host_int_get_assoc_req_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocReqInfo, * @version 1.0 */ -s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, +s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInfo, u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen); /** * @brief gets a Association Response info @@ -800,7 +800,7 @@ s32 host_int_get_assoc_res_info(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8AssocRespInfo, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, +s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel, u32 u32RxPowerLevelLen); /** @@ -818,7 +818,7 @@ s32 host_int_get_rx_power_level(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8RxPowerLevel, * @date 8 March 2012 * @version 1.0 */ -int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel); +int host_int_set_mac_chnl_num(struct host_if_drv *wfi_drv, u8 channel); /** * @brief gets the current channel index @@ -835,7 +835,7 @@ int host_int_set_mac_chnl_num(tstrWILC_WFIDrv *wfi_drv, u8 channel); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo); +s32 host_int_get_host_chnl_num(struct host_if_drv *hWFIDrv, u8 *pu8ChNo); /** * @brief gets the sta rssi * @details gets the currently maintained RSSI value for the station. @@ -849,8 +849,8 @@ s32 host_int_get_host_chnl_num(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8ChNo); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_rssi(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8Rssi); -s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd); +s32 host_int_get_rssi(struct host_if_drv *hWFIDrv, s8 *ps8Rssi); +s32 host_int_get_link_speed(struct host_if_drv *hWFIDrv, s8 *ps8lnkspd); /** * @brief scans a set of channels * @details @@ -868,7 +868,7 @@ s32 host_int_get_link_speed(tstrWILC_WFIDrv *hWFIDrv, s8 *ps8lnkspd); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, +s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource, u8 u8ScanType, u8 *pu8ChnlFreqList, u8 u8ChnlListLen, const u8 *pu8IEs, size_t IEsLen, wilc_scan_result ScanResult, @@ -885,7 +885,7 @@ s32 host_int_scan(tstrWILC_WFIDrv *hWFIDrv, u8 u8ScanSource, * @date 8 March 2012 * @version 1.0 */ -s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal); +s32 hif_set_cfg(struct host_if_drv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal); /** * @brief gets configuration wids values @@ -899,7 +899,7 @@ s32 hif_set_cfg(tstrWILC_WFIDrv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal) * @date 8 March 2012 * @version 1.0 */ -s32 hif_get_cfg(tstrWILC_WFIDrv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value); +s32 hif_get_cfg(struct host_if_drv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value); /*****************************************************************************/ /* Notification Functions */ /*****************************************************************************/ @@ -946,7 +946,7 @@ void host_int_send_network_info_to_host * @date 8 March 2012 * @version 1.0 */ -s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv); +s32 host_int_init(struct host_if_drv **phWFIDrv); /** * @brief host interface initialization function @@ -957,7 +957,7 @@ s32 host_int_init(tstrWILC_WFIDrv **phWFIDrv); * @date 8 March 2012 * @version 1.0 */ -s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv); +s32 host_int_deinit(struct host_if_drv *hWFIDrv); /*! @@ -982,7 +982,7 @@ s32 host_int_deinit(tstrWILC_WFIDrv *hWFIDrv); * @version 1.0 Description * */ -s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, +s32 host_int_add_beacon(struct host_if_drv *hWFIDrv, u32 u32Interval, u32 u32DTIMPeriod, u32 u32HeadLen, u8 *pu8Head, u32 u32TailLen, u8 *pu8tail); @@ -1000,7 +1000,7 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, * @date 10 Julys 2012 * @version 1.0 Description */ -s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv); +s32 host_int_del_beacon(struct host_if_drv *hWFIDrv); /*! * @fn s32 host_int_add_station(WILC_WFIDrvHandle hWFIDrv, @@ -1016,7 +1016,7 @@ s32 host_int_del_beacon(tstrWILC_WFIDrv *hWFIDrv); * @date 12 July 2012 * @version 1.0 Description */ -s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, +s32 host_int_add_station(struct host_if_drv *hWFIDrv, struct add_sta_param *pstrStaParams); /*! @@ -1032,7 +1032,7 @@ s32 host_int_add_station(tstrWILC_WFIDrv *hWFIDrv, * @date 09 April 2014 * @version 1.0 Description */ -s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]); +s32 host_int_del_allstation(struct host_if_drv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]); /*! * @fn s32 host_int_del_station(WILC_WFIDrvHandle hWFIDrv, u8* pu8MacAddr) @@ -1047,7 +1047,7 @@ s32 host_int_del_allstation(tstrWILC_WFIDrv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]) * @date 15 July 2012 * @version 1.0 Description */ -s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr); +s32 host_int_del_station(struct host_if_drv *hWFIDrv, const u8 *pu8MacAddr); /*! * @fn s32 host_int_edit_station(WILC_WFIDrvHandle hWFIDrv, @@ -1063,7 +1063,7 @@ s32 host_int_del_station(tstrWILC_WFIDrv *hWFIDrv, const u8 *pu8MacAddr); * @date 15 July 2012 * @version 1.0 Description */ -s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, +s32 host_int_edit_station(struct host_if_drv *hWFIDrv, struct add_sta_param *pstrStaParams); /*! @@ -1081,7 +1081,7 @@ s32 host_int_edit_station(tstrWILC_WFIDrv *hWFIDrv, * @date 24 November 2012 * @version 1.0 Description */ -s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Timeout); +s32 host_int_set_power_mgmt(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u32Timeout); /* @param[in,out] hWFIDrv handle to the wifi driver * @param[in] bIsEnabled TRUE if enabled, FALSE otherwise * @param[in] u8count count of mac address entries in the filter table @@ -1093,7 +1093,7 @@ s32 host_int_set_power_mgmt(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32Ti * @date 24 November 2012 * @version 1.0 Description */ -s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u32 u32count); +s32 host_int_setup_multicast_filter(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u32count); /** * @brief host_int_setup_ipaddress * @details set IP address on firmware @@ -1103,7 +1103,7 @@ s32 host_int_setup_multicast_filter(tstrWILC_WFIDrv *hWFIDrv, bool bIsEnabled, u * @date * @version 1.0 */ -s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx); +s32 host_int_setup_ipaddress(struct host_if_drv *hWFIDrv, u8 *pu8IPAddr, u8 idx); /** @@ -1115,7 +1115,7 @@ s32 host_int_setup_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx); * @date * @version 1.0 */ -s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID); +s32 host_int_delBASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID); /** * @brief host_int_delBASession @@ -1126,7 +1126,7 @@ s32 host_int_delBASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID); * @date * @version 1.0 */ -s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char TID); +s32 host_int_del_All_Rx_BASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID); /** @@ -1138,7 +1138,7 @@ s32 host_int_del_All_Rx_BASession(tstrWILC_WFIDrv *hWFIDrv, char *pBSSID, char T * @date * @version 1.0 */ -s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx); +s32 host_int_get_ipaddress(struct host_if_drv *hWFIDrv, u8 *pu8IPAddr, u8 idx); /** * @brief host_int_remain_on_channel @@ -1149,7 +1149,7 @@ s32 host_int_get_ipaddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8IPAddr, u8 idx); * @date * @version 1.0 */ -s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg); +s32 host_int_remain_on_channel(struct host_if_drv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg); /** * @brief host_int_ListenStateExpired @@ -1165,7 +1165,7 @@ s32 host_int_remain_on_channel(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID, u32 u * @date * @version 1.0 */ -s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID); +s32 host_int_ListenStateExpired(struct host_if_drv *hWFIDrv, u32 u32SessionID); /** * @brief host_int_frame_register @@ -1176,7 +1176,7 @@ s32 host_int_ListenStateExpired(tstrWILC_WFIDrv *hWFIDrv, u32 u32SessionID); * @date * @version 1.0 */ -s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bReg); +s32 host_int_frame_register(struct host_if_drv *hWFIDrv, u16 u16FrameType, bool bReg); /** * @brief host_int_set_wfi_drv_handler * @details @@ -1186,13 +1186,13 @@ s32 host_int_frame_register(tstrWILC_WFIDrv *hWFIDrv, u16 u16FrameType, bool bRe * @date * @version 1.0 */ -int host_int_set_wfi_drv_handler(tstrWILC_WFIDrv *address); -int host_int_set_operation_mode(tstrWILC_WFIDrv *wfi_drv, u32 mode); +int host_int_set_wfi_drv_handler(struct host_if_drv *address); +int host_int_set_operation_mode(struct host_if_drv *wfi_drv, u32 mode); -static s32 Handle_ScanDone(tstrWILC_WFIDrv *drvHandler, tenuScanEvent enuEvent); +static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEvent); void host_int_freeJoinParams(void *pJoinParams); -s32 host_int_get_statistics(tstrWILC_WFIDrv *hWFIDrv, tstrStatistics *pstrStatistics); +s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, tstrStatistics *pstrStatistics); #endif diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index f6a628719fd5..fe4f3051916d 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -132,7 +132,7 @@ static int dev_state_ev_handler(struct notifier_block *this, unsigned long event { struct in_ifaddr *dev_iface = (struct in_ifaddr *)ptr; struct wilc_priv *priv; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; struct net_device *dev; u8 *pIP_Add_buff; perInterface_wlan_t *nic; @@ -159,7 +159,7 @@ static int dev_state_ev_handler(struct notifier_block *this, unsigned long event PRINT_D(GENERIC_DBG, "No Wireless Priv\n"); return NOTIFY_DONE; } - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; nic = netdev_priv(dev); if (nic == NULL || pstrWFIDrv == NULL) { PRINT_D(GENERIC_DBG, "No Wireless Priv\n"); @@ -633,13 +633,13 @@ static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_n unsigned char mac_add[] = {0x00, 0x80, 0xC2, 0x5E, 0xa2, 0xff}; struct wilc_priv *priv; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; PRINT_D(TX_DBG, "Start configuring Firmware\n"); get_random_bytes(&mac_add[5], 1); get_random_bytes(&mac_add[4], 1); priv = wiphy_priv(dev->ieee80211_ptr->wiphy); - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; PRINT_D(INIT_DBG, "Host = %p\n", pstrWFIDrv); PRINT_D(INIT_DBG, "MAC address is : %02x-%02x-%02x-%02x-%02x-%02x\n", mac_add[0], mac_add[1], mac_add[2], mac_add[3], mac_add[4], mac_add[5]); @@ -1364,11 +1364,11 @@ static void wilc_set_multicast_list(struct net_device *dev) struct netdev_hw_addr *ha; struct wilc_priv *priv; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; int i = 0; priv = wiphy_priv(dev->ieee80211_ptr->wiphy); - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; if (!dev) return; @@ -1497,7 +1497,7 @@ int mac_close(struct net_device *ndev) { struct wilc_priv *priv; perInterface_wlan_t *nic; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; nic = netdev_priv(ndev); @@ -1513,7 +1513,7 @@ int mac_close(struct net_device *ndev) return 0; } - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; PRINT_D(GENERIC_DBG, "Mac close\n"); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 64727774235b..04b8dae4373d 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -539,14 +539,14 @@ static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, { struct wilc_priv *priv; struct net_device *dev; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; u8 NullBssid[ETH_ALEN] = {0}; connecting = 0; priv = (struct wilc_priv *)pUserVoid; dev = priv->dev; - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; if (enuConnDisconnEvent == CONN_DISCONN_EVENT_CONN_RESP) { /*Initialization*/ @@ -792,13 +792,13 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, char *pcwpa_version = NULL; struct wilc_priv *priv; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; tstrNetworkInfo *pstrNetworkInfo = NULL; connecting = 1; priv = wiphy_priv(wiphy); - pstrWFIDrv = (tstrWILC_WFIDrv *)(priv->hWILCWFIDrv); + pstrWFIDrv = (struct host_if_drv *)(priv->hWILCWFIDrv); host_int_set_wfi_drv_handler(priv->hWILCWFIDrv); @@ -1034,14 +1034,14 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_co { s32 s32Error = 0; struct wilc_priv *priv; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; u8 NullBssid[ETH_ALEN] = {0}; connecting = 0; priv = wiphy_priv(wiphy); /*Invalidate u8WLANChannel value on wlan0 disconnect*/ - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; if (!pstrWFIDrv->u8P2PConnect) u8WLANChannel = INVALID_CHANNEL; linux_wlan_set_bssid(priv->dev, NullBssid); @@ -1948,12 +1948,12 @@ void WILC_WFI_p2p_rx (struct net_device *dev, u8 *buff, u32 size) struct wilc_priv *priv; u32 header, pkt_offset; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; u32 i = 0; s32 s32Freq; priv = wiphy_priv(dev->ieee80211_ptr->wiphy); - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; /* Get WILC header */ memcpy(&header, (buff - HOST_HDR_OFFSET), HOST_HDR_OFFSET); @@ -2249,14 +2249,14 @@ static int mgmt_tx(struct wiphy *wiphy, struct p2p_mgmt_data *mgmt_tx; struct wilc_priv *priv; s32 s32Error = 0; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; u32 i; perInterface_wlan_t *nic; u32 buf_len = len + sizeof(u8P2P_vendorspec) + sizeof(u8P2Plocalrandom); nic = netdev_priv(wdev->netdev); priv = wiphy_priv(wiphy); - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; *cookie = (unsigned long)buf; priv->u64tx_cookie = *cookie; @@ -2394,10 +2394,10 @@ static int mgmt_tx_cancel_wait(struct wiphy *wiphy, u64 cookie) { struct wilc_priv *priv; - tstrWILC_WFIDrv *pstrWFIDrv; + struct host_if_drv *pstrWFIDrv; priv = wiphy_priv(wiphy); - pstrWFIDrv = (tstrWILC_WFIDrv *)priv->hWILCWFIDrv; + pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; PRINT_D(GENERIC_DBG, "Tx Cancel wait :%lu\n", jiffies); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index cb21968c0873..8bcfcc298d59 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -121,7 +121,7 @@ struct wilc_priv { spinlock_t lock; struct net_device *dev; struct napi_struct napi; - tstrWILC_WFIDrv *hWILCWFIDrv; + struct host_if_drv *hWILCWFIDrv; struct host_if_pmkid_attr pmkid_list; struct WILC_WFI_stats netstats; u8 WILC_WFI_wep_default; @@ -151,7 +151,7 @@ typedef struct { typedef struct { u8 aSrcAddress[ETH_ALEN]; u8 aBSSID[ETH_ALEN]; - tstrWILC_WFIDrv *drvHandler; + struct host_if_drv *drvHandler; struct net_device *wilc_netdev; } tstrInterfaceInfo; typedef struct { From 2482a79f48e5f8ba567887ee8a9a0f38cd09863b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:36 +0900 Subject: [PATCH 1429/2431] staging: wilc1000: rename the member variable, drvHandler of host_if_msg This patch renames drvHandler of struct host_if_msg to drv. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 168 +++++++++++----------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e9df5a42a7e2..667eb4fa1947 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -403,7 +403,7 @@ union message_body { struct host_if_msg { u16 id; /*!< Message ID */ union message_body body; /*!< Message body */ - struct host_if_drv *drvHandler; + struct host_if_drv *drv; }; typedef struct _tstrWidJoinReqExt { @@ -3656,7 +3656,7 @@ static void ListenTimerCB(unsigned long arg) /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; - msg.drvHandler = pstrWFIDrv; + msg.drv = pstrWFIDrv; msg.body.remain_on_ch.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; /* send the message */ @@ -3914,7 +3914,7 @@ static int hostIFthread(void *pvArg) while (1) { wilc_mq_recv(&gMsgQHostIF, &msg, sizeof(struct host_if_msg), &u32Ret); - pstrWFIDrv = (struct host_if_drv *)msg.drvHandler; + pstrWFIDrv = (struct host_if_drv *)msg.drv; if (msg.id == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); break; @@ -3942,40 +3942,40 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_SCAN: - Handle_Scan(msg.drvHandler, &msg.body.scan_info); + Handle_Scan(msg.drv, &msg.body.scan_info); break; case HOST_IF_MSG_CONNECT: - Handle_Connect(msg.drvHandler, &msg.body.con_info); + Handle_Connect(msg.drv, &msg.body.con_info); break; case HOST_IF_MSG_FLUSH_CONNECT: - Handle_FlushConnect(msg.drvHandler); + Handle_FlushConnect(msg.drv); break; case HOST_IF_MSG_RCVD_NTWRK_INFO: - Handle_RcvdNtwrkInfo(msg.drvHandler, &msg.body.net_info); + Handle_RcvdNtwrkInfo(msg.drv, &msg.body.net_info); break; case HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO: - Handle_RcvdGnrlAsyncInfo(msg.drvHandler, &msg.body.async_info); + Handle_RcvdGnrlAsyncInfo(msg.drv, &msg.body.async_info); break; case HOST_IF_MSG_KEY: - Handle_Key(msg.drvHandler, &msg.body.key_info); + Handle_Key(msg.drv, &msg.body.key_info); break; case HOST_IF_MSG_CFG_PARAMS: - Handle_CfgParam(msg.drvHandler, &msg.body.cfg_info); + Handle_CfgParam(msg.drv, &msg.body.cfg_info); break; case HOST_IF_MSG_SET_CHANNEL: - Handle_SetChannel(msg.drvHandler, &msg.body.channel_info); + Handle_SetChannel(msg.drv, &msg.body.channel_info); break; case HOST_IF_MSG_DISCONNECT: - Handle_Disconnect(msg.drvHandler); + Handle_Disconnect(msg.drv); break; case HOST_IF_MSG_RCVD_SCAN_COMPLETE: @@ -3986,124 +3986,124 @@ static int hostIFthread(void *pvArg) if (!linux_wlan_get_num_conn_ifcs()) chip_sleep_manually(INFINITE_SLEEP_TIME); - Handle_ScanDone(msg.drvHandler, SCAN_EVENT_DONE); + Handle_ScanDone(msg.drv, SCAN_EVENT_DONE); if (pstrWFIDrv->u8RemainOnChan_pendingreq) - Handle_RemainOnChan(msg.drvHandler, &msg.body.remain_on_ch); + Handle_RemainOnChan(msg.drv, &msg.body.remain_on_ch); break; case HOST_IF_MSG_GET_RSSI: - Handle_GetRssi(msg.drvHandler); + Handle_GetRssi(msg.drv); break; case HOST_IF_MSG_GET_LINKSPEED: - Handle_GetLinkspeed(msg.drvHandler); + Handle_GetLinkspeed(msg.drv); break; case HOST_IF_MSG_GET_STATISTICS: - Handle_GetStatistics(msg.drvHandler, (tstrStatistics *)msg.body.data); + Handle_GetStatistics(msg.drv, (tstrStatistics *)msg.body.data); break; case HOST_IF_MSG_GET_CHNL: - Handle_GetChnl(msg.drvHandler); + Handle_GetChnl(msg.drv); break; case HOST_IF_MSG_ADD_BEACON: - Handle_AddBeacon(msg.drvHandler, &msg.body.beacon_info); + Handle_AddBeacon(msg.drv, &msg.body.beacon_info); break; case HOST_IF_MSG_DEL_BEACON: - Handle_DelBeacon(msg.drvHandler); + Handle_DelBeacon(msg.drv); break; case HOST_IF_MSG_ADD_STATION: - Handle_AddStation(msg.drvHandler, &msg.body.add_sta_info); + Handle_AddStation(msg.drv, &msg.body.add_sta_info); break; case HOST_IF_MSG_DEL_STATION: - Handle_DelStation(msg.drvHandler, &msg.body.del_sta_info); + Handle_DelStation(msg.drv, &msg.body.del_sta_info); break; case HOST_IF_MSG_EDIT_STATION: - Handle_EditStation(msg.drvHandler, &msg.body.edit_sta_info); + Handle_EditStation(msg.drv, &msg.body.edit_sta_info); break; case HOST_IF_MSG_GET_INACTIVETIME: - Handle_Get_InActiveTime(msg.drvHandler, &msg.body.mac_info); + Handle_Get_InActiveTime(msg.drv, &msg.body.mac_info); break; case HOST_IF_MSG_SCAN_TIMER_FIRED: PRINT_D(HOSTINF_DBG, "Scan Timeout\n"); - Handle_ScanDone(msg.drvHandler, SCAN_EVENT_ABORTED); + Handle_ScanDone(msg.drv, SCAN_EVENT_ABORTED); break; case HOST_IF_MSG_CONNECT_TIMER_FIRED: PRINT_D(HOSTINF_DBG, "Connect Timeout\n"); - Handle_ConnectTimeout(msg.drvHandler); + Handle_ConnectTimeout(msg.drv); break; case HOST_IF_MSG_POWER_MGMT: - Handle_PowerManagement(msg.drvHandler, &msg.body.pwr_mgmt_info); + Handle_PowerManagement(msg.drv, &msg.body.pwr_mgmt_info); break; case HOST_IF_MSG_SET_WFIDRV_HANDLER: - Handle_SetWfiDrvHandler(msg.drvHandler, + Handle_SetWfiDrvHandler(msg.drv, &msg.body.drv); break; case HOST_IF_MSG_SET_OPERATION_MODE: - Handle_SetOperationMode(msg.drvHandler, &msg.body.mode); + Handle_SetOperationMode(msg.drv, &msg.body.mode); break; case HOST_IF_MSG_SET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_set_IPAddress(msg.drvHandler, msg.body.ip_info.au8IPAddr, msg.body.ip_info.idx); + Handle_set_IPAddress(msg.drv, msg.body.ip_info.au8IPAddr, msg.body.ip_info.idx); break; case HOST_IF_MSG_GET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_get_IPAddress(msg.drvHandler, msg.body.ip_info.au8IPAddr, msg.body.ip_info.idx); + Handle_get_IPAddress(msg.drv, msg.body.ip_info.au8IPAddr, msg.body.ip_info.idx); break; case HOST_IF_MSG_SET_MAC_ADDRESS: - Handle_SetMacAddress(msg.drvHandler, &msg.body.set_mac_info); + Handle_SetMacAddress(msg.drv, &msg.body.set_mac_info); break; case HOST_IF_MSG_GET_MAC_ADDRESS: - Handle_GetMacAddress(msg.drvHandler, &msg.body.get_mac_info); + Handle_GetMacAddress(msg.drv, &msg.body.get_mac_info); break; case HOST_IF_MSG_REMAIN_ON_CHAN: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REMAIN_ON_CHAN\n"); - Handle_RemainOnChan(msg.drvHandler, &msg.body.remain_on_ch); + Handle_RemainOnChan(msg.drv, &msg.body.remain_on_ch); break; case HOST_IF_MSG_REGISTER_FRAME: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_REGISTER_FRAME\n"); - Handle_RegisterFrame(msg.drvHandler, &msg.body.reg_frame); + Handle_RegisterFrame(msg.drv, &msg.body.reg_frame); break; case HOST_IF_MSG_LISTEN_TIMER_FIRED: - Handle_ListenStateExpired(msg.drvHandler, &msg.body.remain_on_ch); + Handle_ListenStateExpired(msg.drv, &msg.body.remain_on_ch); break; case HOST_IF_MSG_SET_MULTICAST_FILTER: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_MULTICAST_FILTER\n"); - Handle_SetMulticastFilter(msg.drvHandler, &msg.body.multicast_info); + Handle_SetMulticastFilter(msg.drv, &msg.body.multicast_info); break; case HOST_IF_MSG_ADD_BA_SESSION: - Handle_AddBASession(msg.drvHandler, &msg.body.session_info); + Handle_AddBASession(msg.drv, &msg.body.session_info); break; case HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS: - Handle_DelAllRxBASessions(msg.drvHandler, &msg.body.session_info); + Handle_DelAllRxBASessions(msg.drv, &msg.body.session_info); break; case HOST_IF_MSG_DEL_ALL_STA: - Handle_DelAllSta(msg.drvHandler, &msg.body.del_all_sta_info); + Handle_DelAllSta(msg.drv, &msg.body.del_all_sta_info); break; default: @@ -4124,7 +4124,7 @@ static void TimerCB_Scan(unsigned long arg) /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.drvHandler = pvArg; + msg.drv = pvArg; msg.id = HOST_IF_MSG_SCAN_TIMER_FIRED; /* send the message */ @@ -4138,7 +4138,7 @@ static void TimerCB_Connect(unsigned long arg) /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); - msg.drvHandler = pvArg; + msg.drv = pvArg; msg.id = HOST_IF_MSG_CONNECT_TIMER_FIRED; /* send the message */ @@ -4204,7 +4204,7 @@ int host_int_remove_wep_key(struct host_if_drv *wfi_drv, u8 index) msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = REMOVEKEY; - msg.drvHandler = wfi_drv; + msg.drv = wfi_drv; msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = index; @@ -4250,7 +4250,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hWFIDrv, u8 u8Index) msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = DEFAULTKEY; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; msg.body.key_info. @@ -4304,7 +4304,7 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hWFIDrv, const u8 *pu8WepKe msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = ADDKEY; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; msg.body.key_info. @@ -4370,7 +4370,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = ADDKEY_AP; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; msg.body.key_info. @@ -4486,7 +4486,7 @@ s32 host_int_add_ptk(struct host_if_drv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeyl uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.pu8macaddr = mac_addr; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4547,7 +4547,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hWFIDrv, const u8 *pu8RxGtk, u8 u8Gt msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WPARxGtk; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; if (mode == AP_MODE) { msg.body.key_info.u8KeyAction = ADDKEY_AP; @@ -4637,7 +4637,7 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_at msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = PMKSA; msg.body.key_info.u8KeyAction = ADDKEY; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { @@ -4743,7 +4743,7 @@ s32 host_int_get_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) msg.id = HOST_IF_MSG_GET_MAC_ADDRESS; msg.body.get_mac_info.u8MacAddress = pu8MacAddress; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { @@ -4777,7 +4777,7 @@ s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_MAC_ADDRESS; memcpy(msg.body.set_mac_info.u8MacAddress, pu8MacAddress, ETH_ALEN); - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -4923,7 +4923,7 @@ s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, msg.body.con_info.pfConnectResult = pfConnectResult; msg.body.con_info.pvUserArg = pvUserArg; msg.body.con_info.pJoinParams = pJoinParams; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; if (pu8bssid != NULL) { msg.body.con_info.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ @@ -4995,7 +4995,7 @@ s32 host_int_flush_join_req(struct host_if_drv *hWFIDrv) } msg.id = HOST_IF_MSG_FLUSH_CONNECT; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5033,7 +5033,7 @@ s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_DISCONNECT; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5213,7 +5213,7 @@ int host_int_set_mac_chnl_num(struct host_if_drv *wfi_drv, u8 channel) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_CHANNEL; msg.body.channel_info.u8SetChan = channel; - msg.drvHandler = wfi_drv; + msg.drv = wfi_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { @@ -5257,7 +5257,7 @@ int host_int_set_wfi_drv_handler(struct host_if_drv *address) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_WFIDRV_HANDLER; msg.body.drv.u32Address = get_id_from_handler(address); - msg.drvHandler = address; + msg.drv = address; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { @@ -5279,7 +5279,7 @@ int host_int_set_operation_mode(struct host_if_drv *wfi_drv, u32 mode) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_OPERATION_MODE; msg.body.mode.u32Mode = mode; - msg.drvHandler = wfi_drv; + msg.drv = wfi_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { @@ -5320,7 +5320,7 @@ s32 host_int_get_host_chnl_num(struct host_if_drv *hWFIDrv, u8 *pu8ChNo) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_CHNL; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5365,7 +5365,7 @@ s32 host_int_get_inactive_time(struct host_if_drv *hWFIDrv, const u8 *mac, u32 * mac, ETH_ALEN); msg.id = HOST_IF_MSG_GET_INACTIVETIME; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5446,7 +5446,7 @@ s32 host_int_get_rssi(struct host_if_drv *hWFIDrv, s8 *ps8Rssi) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_RSSI; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5483,7 +5483,7 @@ s32 host_int_get_link_speed(struct host_if_drv *hWFIDrv, s8 *ps8lnkspd) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_LINKSPEED; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5518,7 +5518,7 @@ s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, tstrStatistics *pstrSta msg.id = HOST_IF_MSG_GET_STATISTICS; msg.body.data = (char *)pstrStatistics; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { @@ -5576,7 +5576,7 @@ s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource, } else PRINT_D(HOSTINF_DBG, "pstrHiddenNetwork IS EQUAL TO NULL\n"); - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; msg.body.scan_info.u8ScanSource = u8ScanSource; msg.body.scan_info.u8ScanType = u8ScanType; msg.body.scan_info.pfScanResult = ScanResult; @@ -5636,7 +5636,7 @@ s32 hif_set_cfg(struct host_if_drv *hWFIDrv, struct cfg_param_val *pstrCfgParamV memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_CFG_PARAMS; msg.body.cfg_info.pstrCfgParamVal = *pstrCfgParamVal; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5807,7 +5807,7 @@ static void GetPeriodicRSSI(unsigned long arg) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_RSSI; - msg.drvHandler = pstrWFIDrv; + msg.drv = pstrWFIDrv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6015,7 +6015,7 @@ s32 host_int_deinit(struct host_if_drv *hWFIDrv) /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } msg.id = HOST_IF_MSG_EXIT; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6081,7 +6081,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_RCVD_NTWRK_INFO; - msg.drvHandler = pstrWFIDrv; + msg.drv = pstrWFIDrv; msg.body.net_info.u32Length = u32Length; msg.body.net_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ @@ -6137,7 +6137,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.id = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; - msg.drvHandler = pstrWFIDrv; + msg.drv = pstrWFIDrv; msg.body.async_info.u32Length = u32Length; @@ -6184,7 +6184,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_RCVD_SCAN_COMPLETE; - msg.drvHandler = pstrWFIDrv; + msg.drv = pstrWFIDrv; /* will be deallocated by the receiving thread */ @@ -6242,7 +6242,7 @@ s32 host_int_remain_on_channel(struct host_if_drv *hWFIDrv, u32 u32SessionID, u3 msg.body.remain_on_ch.pVoid = pvUserArg; msg.body.remain_on_ch.u32duration = u32duration; msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -6282,7 +6282,7 @@ s32 host_int_ListenStateExpired(struct host_if_drv *hWFIDrv, u32 u32SessionID) /* prepare the timer fire Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6332,7 +6332,7 @@ s32 host_int_frame_register(struct host_if_drv *hWFIDrv, u16 u16FrameType, bool } msg.body.reg_frame.u16FrameType = u16FrameType; msg.body.reg_frame.bReg = bReg; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -6376,7 +6376,7 @@ s32 host_int_add_beacon(struct host_if_drv *hWFIDrv, u32 u32Interval, /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_ADD_BEACON; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; pstrSetBeaconParam->u32Interval = u32Interval; pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; pstrSetBeaconParam->u32HeadLen = u32HeadLen; @@ -6439,7 +6439,7 @@ s32 host_int_del_beacon(struct host_if_drv *hWFIDrv) /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_BEACON; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6480,7 +6480,7 @@ s32 host_int_add_station(struct host_if_drv *hWFIDrv, /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_ADD_STATION; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; memcpy(pstrAddStationMsg, pstrStaParams, sizeof(struct add_sta_param)); if (pstrAddStationMsg->u8NumRates > 0) { @@ -6529,7 +6529,7 @@ s32 host_int_del_station(struct host_if_drv *hWFIDrv, const u8 *pu8MacAddr) /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_STATION; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; if (pu8MacAddr == NULL) memset(pstrDelStationMsg->au8MacAddr, 255, ETH_ALEN); @@ -6573,7 +6573,7 @@ s32 host_int_del_allstation(struct host_if_drv *hWFIDrv, /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_ALL_STA; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; /* Handling situation of deauthenticing all associated stations*/ for (i = 0; i < MAX_NUM_STA; i++) { @@ -6631,7 +6631,7 @@ s32 host_int_edit_station(struct host_if_drv *hWFIDrv, /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_EDIT_STATION; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; memcpy(pstrAddStationMsg, pstrStaParams, sizeof(struct add_sta_param)); if (pstrAddStationMsg->u8NumRates > 0) { @@ -6672,7 +6672,7 @@ s32 host_int_set_power_mgmt(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u3 /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_POWER_MGMT; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; pstrPowerMgmtParam->bIsEnabled = bIsEnabled; pstrPowerMgmtParam->u32Timeout = u32Timeout; @@ -6705,7 +6705,7 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hWFIDrv, bool bIsEnabled /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_SET_MULTICAST_FILTER; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; pstrMulticastFilterParam->bIsEnabled = bIsEnabled; pstrMulticastFilterParam->u32count = u32count; @@ -6953,7 +6953,7 @@ s32 host_int_delBASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID) memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -6983,7 +6983,7 @@ s32 host_int_del_All_Rx_BASession(struct host_if_drv *hWFIDrv, char *pBSSID, cha memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -7022,7 +7022,7 @@ s32 host_int_setup_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) msg.id = HOST_IF_MSG_SET_IPADDRESS; msg.body.ip_info.au8IPAddr = u16ipadd; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; msg.body.ip_info.idx = idx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -7059,7 +7059,7 @@ s32 host_int_get_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) msg.id = HOST_IF_MSG_GET_IPADDRESS; msg.body.ip_info.au8IPAddr = u16ipadd; - msg.drvHandler = hWFIDrv; + msg.drv = hWFIDrv; msg.body.ip_info.idx = idx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From b68d820bb5f47a230998c59b6cc10a269a9f107a Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:37 +0900 Subject: [PATCH 1430/2431] staging: wilc1000: host_interface.c : removes unused local variables This patch removes unused local variables from host_interface.c. The unused local variable, s32Error is used just to return zero, so this patch calls "returns 0" instead of "return s32Error" after removing s32Error. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 34 +++++++---------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 667eb4fa1947..02bb3f4363e3 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1203,11 +1203,9 @@ ERRORHANDLER: */ static s32 Handle_wait_msg_q_empty(void) { - s32 s32Error = 0; - g_wilc_initialized = 0; up(&hWaitResponse); - return s32Error; + return 0; } /** @@ -4161,7 +4159,6 @@ static void TimerCB_Connect(unsigned long arg) /* Check implementation in core adding 9 bytes to the input! */ s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) { - s32 s32Error = 0; tstrWID strWID; strWID.u16WIDid = (u16)WID_REMOVE_KEY; @@ -4169,8 +4166,7 @@ s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) strWID.ps8WidVal = (s8 *)pu8StaAddress; strWID.s32ValueSize = 6; - return s32Error; - + return 0; } /** @@ -4680,7 +4676,6 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_at s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, u32 u32PmkidInfoLen) { - s32 s32Error = 0; tstrWID strWID; strWID.u16WIDid = (u16)WID_PMKID_INFO; @@ -4688,7 +4683,7 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, strWID.s32ValueSize = u32PmkidInfoLen; strWID.ps8WidVal = pu8PmkidInfoArray; - return s32Error; + return 0; } /** @@ -4708,7 +4703,6 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength) { - s32 s32Error = 0; tstrWID strWID; /*validating psk length*/ @@ -4719,7 +4713,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8Pas strWID.s32ValueSize = u8Psklength; } - return s32Error; + return 0; } /** * @brief host_int_get_MacAddress @@ -4804,7 +4798,6 @@ s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength) { - s32 s32Error = 0; tstrWID strWID; strWID.u16WIDid = (u16)WID_11I_PSK; @@ -4812,7 +4805,7 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, strWID.s32ValueSize = u8Psklength; strWID.ps8WidVal = pu8PassPhrase; - return s32Error; + return 0; } /** @@ -4832,7 +4825,6 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, */ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) { - s32 s32Error = 0; tstrWID strWID; strWID.u16WIDid = (u16)WID_START_SCAN_REQ; @@ -4840,7 +4832,7 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) strWID.ps8WidVal = (s8 *)&scanSource; strWID.s32ValueSize = sizeof(char); - return s32Error; + return 0; } /** @@ -4861,7 +4853,6 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) { - s32 s32Error = 0; tstrWID strWID; strWID.u16WIDid = (u16)WID_START_SCAN_REQ; @@ -4869,7 +4860,7 @@ s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) strWID.ps8WidVal = (s8 *)pu8ScanSource; strWID.s32ValueSize = sizeof(char); - return s32Error; + return 0; } /** @@ -5059,7 +5050,6 @@ s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode) */ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) { - s32 s32Error = 0; tstrWID strWID; strWID.u16WIDid = (u16)WID_DISCONNECT; @@ -5067,7 +5057,7 @@ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) strWID.ps8WidVal = (s8 *)&assoc_id; strWID.s32ValueSize = sizeof(char); - return s32Error; + return 0; } /** @@ -5099,7 +5089,6 @@ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo, u32 u32AssocReqInfoLen) { - s32 s32Error = 0; tstrWID strWID; strWID.u16WIDid = (u16)WID_ASSOC_REQ_INFO; @@ -5107,8 +5096,7 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo strWID.ps8WidVal = pu8AssocReqInfo; strWID.s32ValueSize = u32AssocReqInfoLen; - - return s32Error; + return 0; } /** @@ -5172,7 +5160,6 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel, u32 u32RxPowerLevelLen) { - s32 s32Error = 0; tstrWID strWID; strWID.u16WIDid = (u16)WID_RX_POWER_LEVEL; @@ -5180,8 +5167,7 @@ s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel strWID.ps8WidVal = pu8RxPowerLevel; strWID.s32ValueSize = u32RxPowerLevelLen; - - return s32Error; + return 0; } /** From aaed3290f9ffe1428ba8a7f4284f80a165cf453f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:38 +0900 Subject: [PATCH 1431/2431] staging: wilc1000: wilc_wfi_cfgoperations.c : removes unused local variables This patch removes useless local variable, s32Error and returns directly zero from wilc_wfi_cfgoperations.c and also removes incorrect break in switch-case statement. The break is not useless which is being called right after return statement. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 30 ++++++------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 04b8dae4373d..a5617de4c3b7 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1360,7 +1360,6 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac_addr) { struct wilc_priv *priv; - s32 s32Error = 0; priv = wiphy_priv(wiphy); @@ -1446,7 +1445,7 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, host_int_remove_key(priv->hWILCWFIDrv, mac_addr); } - return s32Error; + return 0; } /** @@ -1466,9 +1465,6 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool pairwise, const u8 *mac_addr, void *cookie, void (*callback)(void *cookie, struct key_params *)) { - - s32 s32Error = 0; - struct wilc_priv *priv; struct key_params key_params; u32 i; @@ -1501,7 +1497,7 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, callback(cookie, &key_params); - return s32Error; /* priv->wilc_gtk->key_len ?0 : -ENOENT; */ + return 0; /* priv->wilc_gtk->key_len ?0 : -ENOENT; */ } /** @@ -1516,7 +1512,6 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool unicast, bool multicast) { - s32 s32Error = 0; struct wilc_priv *priv; @@ -1529,7 +1524,7 @@ static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 ke host_int_set_WEPDefaultKeyID(priv->hWILCWFIDrv, key_index); } - return s32Error; + return 0; } /** @@ -1545,7 +1540,6 @@ static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 ke static int get_station(struct wiphy *wiphy, struct net_device *dev, const u8 *mac, struct station_info *sinfo) { - s32 s32Error = 0; struct wilc_priv *priv; perInterface_wlan_t *nic; u32 i = 0; @@ -1569,10 +1563,8 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, } if (associatedsta == -1) { - s32Error = -ENOENT; - PRINT_ER("Station required is not associated : Error(%d)\n", s32Error); - - return s32Error; + PRINT_ER("Station required is not associated\n"); + return -ENOENT; } sinfo->filled |= BIT(NL80211_STA_INFO_INACTIVE_TIME); @@ -1608,7 +1600,7 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CORECONFIG_DBG, "*** stats[%d][%d][%d][%d][%d]\n", sinfo->signal, sinfo->rx_packets, sinfo->tx_packets, sinfo->tx_failed, sinfo->txrate.legacy); } - return s32Error; + return 0; } @@ -2248,7 +2240,6 @@ static int mgmt_tx(struct wiphy *wiphy, const struct ieee80211_mgmt *mgmt; struct p2p_mgmt_data *mgmt_tx; struct wilc_priv *priv; - s32 s32Error = 0; struct host_if_drv *pstrWFIDrv; u32 i; perInterface_wlan_t *nic; @@ -2386,7 +2377,7 @@ static int mgmt_tx(struct wiphy *wiphy, } else { PRINT_D(GENERIC_DBG, "This function transmits only management frames\n"); } - return s32Error; + return 0; } static int mgmt_tx_cancel_wait(struct wiphy *wiphy, @@ -2574,7 +2565,6 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic); static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, enum nl80211_iftype type, u32 *flags, struct vif_params *params) { - s32 s32Error = 0; struct wilc_priv *priv; perInterface_wlan_t *nic; u8 interface_type; @@ -2885,12 +2875,10 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, default: PRINT_ER("Unknown interface type= %d\n", type); - s32Error = -EINVAL; - return s32Error; - break; + return -EINVAL; } - return s32Error; + return 0; } /* (austin.2013-07-23) From 033622862c5a2277c6cfdea9e141d45fcd2e9924 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:55:39 +0900 Subject: [PATCH 1432/2431] staging: wilc1000: remove bool bRespRequired from send_config_pkt This patch removes 4th parameter, bool bRespRequired from the send_config_pkt function because it is not used inside the funcntion. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/host_interface.c | 90 ++++++++++----------- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 9f87d05d6d02..3244e2a06160 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -596,7 +596,7 @@ s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo) * @version 1.0 */ s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, - u32 u32WIDsCount, bool bRespRequired, u32 drvHandler) + u32 u32WIDsCount, u32 drvHandler) { s32 counter = 0, ret = 0; diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 58aa13cd954e..4d650888bb8d 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -129,7 +129,7 @@ typedef struct { } tstrDisconnectNotifInfo; s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, - u32 u32WIDsCount, bool bRespRequired, u32 drvHandler); + u32 u32WIDsCount, u32 drvHandler); s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo); diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 02bb3f4363e3..ad77121d98a9 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -583,7 +583,7 @@ static s32 Handle_SetChannel(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Setting channel\n"); /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set channel\n"); @@ -619,7 +619,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, pstrHostIfSetDrvHandler->u32Address); if (pstrWFIDrv == NULL) @@ -661,7 +661,7 @@ static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, /*Sending Cfg*/ PRINT_INFO(HOSTINF_DBG, "pstrWFIDrv= %p\n", pstrWFIDrv); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -707,7 +707,7 @@ s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.ps8WidVal = (u8 *)pu8IPAddr; strWID.s32ValueSize = IP_ALEN; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -746,7 +746,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.ps8WidVal = kmalloc(IP_ALEN, GFP_KERNEL); strWID.s32ValueSize = IP_ALEN; - s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.ps8WidVal); @@ -803,7 +803,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, strWID.s32ValueSize = ETH_ALEN; PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.ps8WidVal); /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set mac address\n"); @@ -838,7 +838,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, strWID.s32ValueSize = ETH_ALEN; /*Sending Cfg*/ - s32Error = send_config_pkt(GET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(drvHandler)); if (s32Error) { PRINT_ER("Failed to get mac address\n"); @@ -1180,7 +1180,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, } u8WidCnt++; } - s32Error = send_config_pkt(SET_CFG, strWIDList, u8WidCnt, false, + s32Error = send_config_pkt(SET_CFG, strWIDList, u8WidCnt, get_id_from_handler(pstrWFIDrv)); if (s32Error) @@ -1332,7 +1332,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, else if (pstrWFIDrv->enuHostIFstate == HOST_IF_IDLE) gbScanWhileConnected = false; - s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, + s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, get_id_from_handler(pstrWFIDrv)); if (s32Error) @@ -1407,7 +1407,7 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEven strWID.s32ValueSize = sizeof(char); /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to set abort running scan\n"); @@ -1718,7 +1718,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, PRINT_D(GENERIC_DBG, "save bssid = %pM\n", u8ConnectedSSID); } - s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, + s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("failed to send config packet\n"); @@ -1844,7 +1844,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) u32WidsCount++; - s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false, + s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, get_id_from_handler(gu8FlushedJoinReqDrvHandler)); if (s32Error) { PRINT_ER("failed to send config packet\n"); @@ -1925,7 +1925,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send dissconect config packet\n"); @@ -2462,7 +2462,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWIDList[3].ps8WidVal = (s8 *)pu8keybuf; - s32Error = send_config_pkt(SET_CFG, strWIDList, 4, true, + s32Error = send_config_pkt(SET_CFG, strWIDList, 4, get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2490,7 +2490,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); } else if (pstrHostIFkeyAttr->u8KeyAction & REMOVEKEY) { @@ -2503,7 +2503,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.ps8WidVal = s8idxarray; strWID.s32ValueSize = 1; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); } else { strWID.u16WIDid = (u16)WID_KEY_ID; @@ -2513,7 +2513,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Setting default key index\n"); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); } up(&(pstrWFIDrv->hSemTestKeyBlock)); @@ -2559,7 +2559,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = RX_MIC_KEY_MSG_LEN; - s32Error = send_config_pkt(SET_CFG, strWIDList, 2, true, + s32Error = send_config_pkt(SET_CFG, strWIDList, 2, get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2605,7 +2605,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = RX_MIC_KEY_MSG_LEN; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2662,7 +2662,7 @@ _WPARxGtk_end_case_: strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = PTK_KEY_MSG_LEN + 1; - s32Error = send_config_pkt(SET_CFG, strWIDList, 2, true, + s32Error = send_config_pkt(SET_CFG, strWIDList, 2, get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2703,7 +2703,7 @@ _WPARxGtk_end_case_: strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = PTK_KEY_MSG_LEN; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2743,7 +2743,7 @@ _WPAPtk_end_case_: strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); kfree(pu8keybuf); @@ -2790,7 +2790,7 @@ static void Handle_Disconnect(struct host_if_drv *drvHandler) eth_zero_addr(u8ConnectedSSID); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) { @@ -2907,7 +2907,7 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) PRINT_D(HOSTINF_DBG, "Getting channel value\n"); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { @@ -2947,7 +2947,7 @@ static void Handle_GetRssi(struct host_if_drv *drvHandler) /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to get RSSI value\n"); @@ -2975,7 +2975,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to get LINKSPEED value\n"); @@ -3022,7 +3022,7 @@ s32 Handle_GetStatistics(struct host_if_drv *drvHandler, tstrStatistics *pstrSta strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxFailureCount)); u32WidsCount++; - s32Error = send_config_pkt(GET_CFG, strWIDList, u32WidsCount, false, + s32Error = send_config_pkt(GET_CFG, strWIDList, u32WidsCount, get_id_from_handler(drvHandler)); if (s32Error) @@ -3067,7 +3067,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, PRINT_D(CFG80211_DBG, "SETING STA inactive time\n"); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { @@ -3082,7 +3082,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, strWID.s32ValueSize = sizeof(u32); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { @@ -3159,7 +3159,7 @@ static void Handle_AddBeacon(struct host_if_drv *drvHandler, /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send add beacon config packet\n"); @@ -3201,7 +3201,7 @@ static void Handle_DelBeacon(struct host_if_drv *drvHandler) /* TODO: build del beacon message*/ /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send delete beacon config packet\n"); @@ -3293,7 +3293,7 @@ static void Handle_AddStation(struct host_if_drv *drvHandler, pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error != 0) PRINT_ER("Failed to send add station config packet\n"); @@ -3347,7 +3347,7 @@ static void Handle_DelAllSta(struct host_if_drv *drvHandler, } /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send add station config packet\n"); @@ -3391,7 +3391,7 @@ static void Handle_DelStation(struct host_if_drv *drvHandler, memcpy(pu8CurrByte, pstrDelStaParam->au8MacAddr, ETH_ALEN); /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send add station config packet\n"); @@ -3431,7 +3431,7 @@ static void Handle_EditStation(struct host_if_drv *drvHandler, pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send edit station config packet\n"); @@ -3505,7 +3505,7 @@ static int Handle_RemainOnChan(struct host_if_drv *drvHandler, strWID.ps8WidVal[1] = (s8)pstrHostIfRemainOnChan->u16Channel; /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error != 0) PRINT_ER("Failed to set remain on channel\n"); @@ -3565,7 +3565,7 @@ static int Handle_RegisterFrame(struct host_if_drv *drvHandler, /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Failed to frame register config packet\n"); @@ -3612,7 +3612,7 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, strWID.ps8WidVal[1] = FALSE_FRMWR_CHANNEL; /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error != 0) { PRINT_ER("Failed to set remain on channel\n"); @@ -3693,7 +3693,7 @@ static void Handle_PowerManagement(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling Power Management\n"); /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_ER("Failed to send power management config packet\n"); @@ -3739,7 +3739,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, memcpy(pu8CurrByte, gau8MulticastMacAddrList, ((strHostIfSetMulti->u32count) * ETH_ALEN)); /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, false, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(drvHandler)); if (s32Error) PRINT_ER("Failed to send setup multicast config packet\n"); @@ -3804,7 +3804,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, /* Group Buffer Timeout */ *ptr++ = 0; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't open BA Session\n"); @@ -3829,7 +3829,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, *ptr++ = ((strHostIfBASessionInfo->u16SessionTimeout >> 16) & 0xFF); /*Ack-Policy */ *ptr++ = 3; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (strWID.ps8WidVal != NULL) @@ -3878,7 +3878,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, /* Delba Reason */ *ptr++ = 32; /* Unspecific QOS reason */ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); @@ -5129,7 +5129,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf /* Sending Configuration packet */ - s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); if (s32Error) { *pu32RcvdAssocRespInfoLen = 0; @@ -5393,7 +5393,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) strWID.ps8WidVal = (s8 *)pu32TestMemAddr; strWID.s32ValueSize = sizeof(u32); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, true, + s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); /*get the value by searching the local copy*/ if (s32Error) { From 684125a25e46214145dd4349d8326bf40c829a93 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:55:40 +0900 Subject: [PATCH 1433/2431] staging: wilc1000: change parameter names in send_config_pkt This patch changes the parameter names in send_config_pkt function as the followings: - u8Mode to mode - pstrWIDs to wids - u32WIDsCount to count - drvHandler to drv Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 41 ++++++++++----------- drivers/staging/wilc1000/coreconfigurator.h | 3 +- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 3244e2a06160..1d45869327c8 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -595,41 +595,40 @@ s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo) * @date 1 Mar 2012 * @version 1.0 */ -s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, - u32 u32WIDsCount, u32 drvHandler) +s32 send_config_pkt(u8 mode, tstrWID *wids, u32 count, u32 drv) { s32 counter = 0, ret = 0; - if (u8Mode == GET_CFG) { - for (counter = 0; counter < u32WIDsCount; counter++) { + if (mode == GET_CFG) { + for (counter = 0; counter < count; counter++) { PRINT_INFO(CORECONFIG_DBG, "Sending CFG packet [%d][%d]\n", !counter, - (counter == u32WIDsCount - 1)); + (counter == count - 1)); if (!wilc_wlan_cfg_get(!counter, - pstrWIDs[counter].u16WIDid, - (counter == u32WIDsCount - 1), - drvHandler)) { + wids[counter].u16WIDid, + (counter == count - 1), + drv)) { ret = -1; printk("[Sendconfigpkt]Get Timed out\n"); break; } } counter = 0; - for (counter = 0; counter < u32WIDsCount; counter++) { - pstrWIDs[counter].s32ValueSize = wilc_wlan_cfg_get_val( - pstrWIDs[counter].u16WIDid, - pstrWIDs[counter].ps8WidVal, - pstrWIDs[counter].s32ValueSize); + for (counter = 0; counter < count; counter++) { + wids[counter].s32ValueSize = wilc_wlan_cfg_get_val( + wids[counter].u16WIDid, + wids[counter].ps8WidVal, + wids[counter].s32ValueSize); } - } else if (u8Mode == SET_CFG) { - for (counter = 0; counter < u32WIDsCount; counter++) { - PRINT_D(CORECONFIG_DBG, "Sending config SET PACKET WID:%x\n", pstrWIDs[counter].u16WIDid); + } else if (mode == SET_CFG) { + for (counter = 0; counter < count; counter++) { + PRINT_D(CORECONFIG_DBG, "Sending config SET PACKET WID:%x\n", wids[counter].u16WIDid); if (!wilc_wlan_cfg_set(!counter, - pstrWIDs[counter].u16WIDid, - pstrWIDs[counter].ps8WidVal, - pstrWIDs[counter].s32ValueSize, - (counter == u32WIDsCount - 1), - drvHandler)) { + wids[counter].u16WIDid, + wids[counter].ps8WidVal, + wids[counter].s32ValueSize, + (counter == count - 1), + drv)) { ret = -1; printk("[Sendconfigpkt]Set Timed out\n"); break; diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 4d650888bb8d..8ba30dcdb381 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -128,8 +128,7 @@ typedef struct { size_t ie_len; } tstrDisconnectNotifInfo; -s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs, - u32 u32WIDsCount, u32 drvHandler); +s32 send_config_pkt(u8 mode, tstrWID *wids, u32 count, u32 drv); s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo); From e9e0c260996f7ef1e5aa050a687d0e8086749478 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:41 +0900 Subject: [PATCH 1434/2431] staging: wilc1000: remove typedef from tstrWID This patch removes typedef from the struct tstrWID and rename it to wid. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/coreconfigurator.h | 7 +- drivers/staging/wilc1000/host_interface.c | 90 ++++++++++----------- 3 files changed, 49 insertions(+), 50 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 1d45869327c8..2e063f643f75 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -595,7 +595,7 @@ s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo) * @date 1 Mar 2012 * @version 1.0 */ -s32 send_config_pkt(u8 mode, tstrWID *wids, u32 count, u32 drv) +s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv) { s32 counter = 0, ret = 0; diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 8ba30dcdb381..306efc999daf 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -70,13 +70,12 @@ typedef enum { CONNECT_STS_FORCE_16_BIT = 0xFFFF } tenuConnectSts; -typedef struct { +struct wid { u16 u16WIDid; tenuWIDtype enuWIDtype; s32 s32ValueSize; s8 *ps8WidVal; - -} tstrWID; +}; typedef struct { u8 u8Full; @@ -128,7 +127,7 @@ typedef struct { size_t ie_len; } tstrDisconnectNotifInfo; -s32 send_config_pkt(u8 mode, tstrWID *wids, u32 count, u32 drv); +s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv); s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo); diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ad77121d98a9..25834cd50c7a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -572,7 +572,7 @@ static s32 Handle_SetChannel(struct host_if_drv *drvHandler, { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ @@ -607,7 +607,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = drvHandler; @@ -648,7 +648,7 @@ static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -690,7 +690,7 @@ s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; char firmwareIPAddress[4] = {0}; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -737,7 +737,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ @@ -786,7 +786,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; u8 *mac_buf = kmalloc(ETH_ALEN, GFP_KERNEL); @@ -829,7 +829,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_MAC_ADDR; @@ -863,7 +863,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, struct cfg_param_attr *strHostIFCfgParamAttr) { s32 s32Error = 0; - tstrWID strWIDList[32]; + struct wid strWIDList[32]; u8 u8WidCnt = 0; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -1221,7 +1221,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, struct scan_attr *pstrHostIFscanAttr) { s32 s32Error = 0; - tstrWID strWIDList[5]; + struct wid strWIDList[5]; u32 u32WidsCount = 0; u32 i; u8 *pu8Buffer; @@ -1392,7 +1392,7 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEven u8 u8abort_running_scan; - tstrWID strWID; + struct wid strWID; PRINT_D(HOSTINF_DBG, "in Handle_ScanDone()\n"); @@ -1446,7 +1446,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, { struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; s32 s32Error = 0; - tstrWID strWIDList[8]; + struct wid strWIDList[8]; u32 u32WidsCount = 0, dummyval = 0; /* char passphrase[] = "12345678"; */ u8 *pu8CurrByte = NULL; @@ -1807,7 +1807,7 @@ ERRORHANDLER: static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) { s32 s32Error = 0; - tstrWID strWIDList[5]; + struct wid strWIDList[5]; u32 u32WidsCount = 0; u8 *pu8CurrByte = NULL; @@ -1867,7 +1867,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) { s32 s32Error = 0; tstrConnectInfo strConnectInfo; - tstrWID strWID; + struct wid strWID; u16 u16DummyReasonCode = 0; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; @@ -2407,8 +2407,8 @@ static int Handle_Key(struct host_if_drv *drvHandler, struct key_attr *pstrHostIFkeyAttr) { s32 s32Error = 0; - tstrWID strWID; - tstrWID strWIDList[5]; + struct wid strWID; + struct wid strWIDList[5]; u8 i; u8 *pu8keybuf; s8 s8idxarray[1]; @@ -2769,7 +2769,7 @@ _WPAPtk_end_case_: */ static void Handle_Disconnect(struct host_if_drv *drvHandler) { - tstrWID strWID; + struct wid strWID; s32 s32Error = 0; u16 u16DummyReasonCode = 0; @@ -2897,7 +2897,7 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_CURRENT_CHANNEL; @@ -2936,7 +2936,7 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) static void Handle_GetRssi(struct host_if_drv *drvHandler) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_RSSI; @@ -2963,7 +2963,7 @@ static void Handle_GetRssi(struct host_if_drv *drvHandler) static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; gs8lnkspd = 0; @@ -2989,7 +2989,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) s32 Handle_GetStatistics(struct host_if_drv *drvHandler, tstrStatistics *pstrStatistics) { - tstrWID strWIDList[5]; + struct wid strWIDList[5]; u32 u32WidsCount = 0, s32Error = 0; strWIDList[u32WidsCount].u16WIDid = WID_LINKSPEED; @@ -3050,7 +3050,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, s32 s32Error = 0; u8 *stamac; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3115,7 +3115,7 @@ static void Handle_AddBeacon(struct host_if_drv *drvHandler, struct beacon_attr *pstrSetBeaconParam) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3183,7 +3183,7 @@ ERRORHANDLER: static void Handle_DelBeacon(struct host_if_drv *drvHandler) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3276,7 +3276,7 @@ static void Handle_AddStation(struct host_if_drv *drvHandler, struct add_sta_param *pstrStationParam) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3317,7 +3317,7 @@ static void Handle_DelAllSta(struct host_if_drv *drvHandler, { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; u8 i; @@ -3372,7 +3372,7 @@ static void Handle_DelStation(struct host_if_drv *drvHandler, struct del_sta *pstrDelStaParam) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3414,7 +3414,7 @@ static void Handle_EditStation(struct host_if_drv *drvHandler, struct add_sta_param *pstrStationParam) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3455,7 +3455,7 @@ static int Handle_RemainOnChan(struct host_if_drv *drvHandler, { s32 s32Error = 0; u8 u8remain_on_chan_flag; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; /*If it's a pendig remain-on-channel, don't overwrite gWFiDrvHandle values (since incoming msg is garbbage)*/ @@ -3541,7 +3541,7 @@ static int Handle_RegisterFrame(struct host_if_drv *drvHandler, struct reg_frame *pstrHostIfRegisterFrame) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3590,7 +3590,7 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, struct remain_ch *pstrHostIfRemainOnChan) { u8 u8remain_on_chan_flag; - tstrWID strWID; + struct wid strWID; s32 s32Error = 0; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; @@ -3676,7 +3676,7 @@ static void Handle_PowerManagement(struct host_if_drv *drvHandler, struct power_mgmt_param *strPowerMgmtParam) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; s8 s8PowerMode; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3712,7 +3712,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, struct set_multicast *strHostIfSetMulti) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; u8 *pu8CurrByte; PRINT_D(HOSTINF_DBG, "Setup Multicast Filter\n"); @@ -3763,7 +3763,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; int AddbaTimeout = 100; char *ptr = NULL; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -3852,7 +3852,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; char *ptr = NULL; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; @@ -4159,7 +4159,7 @@ static void TimerCB_Connect(unsigned long arg) /* Check implementation in core adding 9 bytes to the input! */ s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) { - tstrWID strWID; + struct wid strWID; strWID.u16WIDid = (u16)WID_REMOVE_KEY; strWID.enuWIDtype = WID_STR; @@ -4676,7 +4676,7 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_at s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, u32 u32PmkidInfoLen) { - tstrWID strWID; + struct wid strWID; strWID.u16WIDid = (u16)WID_PMKID_INFO; strWID.enuWIDtype = WID_STR; @@ -4703,7 +4703,7 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength) { - tstrWID strWID; + struct wid strWID; /*validating psk length*/ if ((u8Psklength > 7) && (u8Psklength < 65)) { @@ -4798,7 +4798,7 @@ s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, u8 u8Psklength) { - tstrWID strWID; + struct wid strWID; strWID.u16WIDid = (u16)WID_11I_PSK; strWID.enuWIDtype = WID_STR; @@ -4825,7 +4825,7 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, */ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) { - tstrWID strWID; + struct wid strWID; strWID.u16WIDid = (u16)WID_START_SCAN_REQ; strWID.enuWIDtype = WID_CHAR; @@ -4853,7 +4853,7 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) { - tstrWID strWID; + struct wid strWID; strWID.u16WIDid = (u16)WID_START_SCAN_REQ; strWID.enuWIDtype = WID_CHAR; @@ -5050,7 +5050,7 @@ s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode) */ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) { - tstrWID strWID; + struct wid strWID; strWID.u16WIDid = (u16)WID_DISCONNECT; strWID.enuWIDtype = WID_CHAR; @@ -5089,7 +5089,7 @@ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo, u32 u32AssocReqInfoLen) { - tstrWID strWID; + struct wid strWID; strWID.u16WIDid = (u16)WID_ASSOC_REQ_INFO; strWID.enuWIDtype = WID_STR; @@ -5114,7 +5114,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; if (pstrWFIDrv == NULL) { @@ -5160,7 +5160,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel, u32 u32RxPowerLevelLen) { - tstrWID strWID; + struct wid strWID; strWID.u16WIDid = (u16)WID_RX_POWER_LEVEL; strWID.enuWIDtype = WID_STR; @@ -5379,7 +5379,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) { s32 s32Error = 0; - tstrWID strWID; + struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; From 20212c033aff93330c9f327574159bf6f3c2a49b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:42 +0900 Subject: [PATCH 1435/2431] staging: wilc1000: remove typedef from tenuWIDtype This patch remove typedef from the enum tenuWIDtype and rename it to WID_TYPE. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 306efc999daf..02faf58feffb 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -72,7 +72,7 @@ typedef enum { struct wid { u16 u16WIDid; - tenuWIDtype enuWIDtype; + enum WID_TYPE enuWIDtype; s32 s32ValueSize; s8 *ps8WidVal; }; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 6f6362e8bf50..3ab92207463d 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -59,7 +59,7 @@ typedef struct { u16 cfg_wid; - WID_TYPE_T cfg_type; + enum WID_TYPE cfg_type; s8 *pu8Para; } cfg_param_t; diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 8fec64d12cbd..be972afe6e62 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -315,7 +315,7 @@ typedef enum { SW_TRIGGER_ABORT, } TX_ABORT_OPTION_T; -typedef enum { +enum WID_TYPE { WID_CHAR = 0, WID_SHORT = 1, WID_INT = 2, @@ -326,8 +326,7 @@ typedef enum { WID_ADR = 7, WID_UNDEF = 8, WID_TYPE_FORCE_32BIT = 0xFFFFFFFF - -} WID_TYPE_T, tenuWIDtype; +}; typedef enum { WID_NIL = 0xffff, From 416d8321f597217240f2a287f70b4e7d72266d35 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:43 +0900 Subject: [PATCH 1436/2431] staging: wilc1000: rename the member variable, enuWIDtype of wid This patch renames enuWIDtype of struct wid to type. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/host_interface.c | 184 ++++++++++---------- 2 files changed, 93 insertions(+), 93 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 02faf58feffb..27c1a86738b7 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -72,7 +72,7 @@ typedef enum { struct wid { u16 u16WIDid; - enum WID_TYPE enuWIDtype; + enum WID_TYPE type; s32 s32ValueSize; s8 *ps8WidVal; }; diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 25834cd50c7a..1e18d500fdbd 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -577,7 +577,7 @@ static s32 Handle_SetChannel(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_CURRENT_CHANNEL; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (char *)&(pstrHostIFSetChan->u8SetChan); strWID.s32ValueSize = sizeof(char); @@ -613,7 +613,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_SET_DRV_HANDLER; - strWID.enuWIDtype = WID_INT; + strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&(pstrHostIfSetDrvHandler->u32Address); strWID.s32ValueSize = sizeof(u32); @@ -654,7 +654,7 @@ static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_SET_OPERATION_MODE; - strWID.enuWIDtype = WID_INT; + strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&(pstrHostIfSetOperationMode->u32Mode); strWID.s32ValueSize = sizeof(u32); @@ -703,7 +703,7 @@ s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_IP_ADDRESS; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = (u8 *)pu8IPAddr; strWID.s32ValueSize = IP_ALEN; @@ -742,7 +742,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_IP_ADDRESS; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(IP_ALEN, GFP_KERNEL); strWID.s32ValueSize = IP_ALEN; @@ -798,7 +798,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_MAC_ADDR; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = mac_buf; strWID.s32ValueSize = ETH_ALEN; PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.ps8WidVal); @@ -833,7 +833,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_MAC_ADDR; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = pstrHostIfGetMacAddress->u8MacAddress; strWID.s32ValueSize = ETH_ALEN; @@ -883,7 +883,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.bss_type < 6) { strWIDList[u8WidCnt].u16WIDid = WID_BSS_TYPE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; - strWIDList[u8WidCnt].enuWIDtype = WID_CHAR; + strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; } else { @@ -903,7 +903,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if ((strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 1 || (strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 2 || (strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 5) { strWIDList[u8WidCnt].u16WIDid = WID_AUTH_TYPE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; - strWIDList[u8WidCnt].enuWIDtype = WID_CHAR; + strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; } else { @@ -918,7 +918,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout < 65536) { strWIDList[u8WidCnt].u16WIDid = WID_AUTH_TIMEOUT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; } else { @@ -939,7 +939,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode < 5) { strWIDList[u8WidCnt].u16WIDid = WID_POWER_MANAGEMENT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; - strWIDList[u8WidCnt].enuWIDtype = WID_CHAR; + strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; } else { @@ -954,7 +954,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if ((strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit > 0) && (strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit < 256)) { strWIDList[u8WidCnt].u16WIDid = WID_SHORT_RETRY_LIMIT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; } else { @@ -970,7 +970,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].u16WIDid = WID_LONG_RETRY_LIMIT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.long_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; } else { @@ -985,7 +985,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold > 255 && strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold < 7937) { strWIDList[u8WidCnt].u16WIDid = WID_FRAG_THRESHOLD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; } else { @@ -1000,7 +1000,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold > 255 && strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold < 65536) { strWIDList[u8WidCnt].u16WIDid = WID_RTS_THRESHOLD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; } else { @@ -1019,7 +1019,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type < 3) { strWIDList[u8WidCnt].u16WIDid = WID_PREAMBLE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; - strWIDList[u8WidCnt].enuWIDtype = WID_CHAR; + strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.preamble_type = strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; } else { @@ -1033,7 +1033,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed < 2) { strWIDList[u8WidCnt].u16WIDid = WID_SHORT_SLOT_ALLOWED; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; - strWIDList[u8WidCnt].enuWIDtype = WID_CHAR; + strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; } else { @@ -1051,7 +1051,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled < 2) { strWIDList[u8WidCnt].u16WIDid = WID_11N_TXOP_PROT_DISABLE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; - strWIDList[u8WidCnt].enuWIDtype = WID_CHAR; + strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; } else { @@ -1066,7 +1066,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval < 65536) { strWIDList[u8WidCnt].u16WIDid = WID_BEACON_INTERVAL; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; } else { @@ -1081,7 +1081,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period < 256) { strWIDList[u8WidCnt].u16WIDid = WID_DTIM_PERIOD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; - strWIDList[u8WidCnt].enuWIDtype = WID_CHAR; + strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.dtim_period = strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; } else { @@ -1100,7 +1100,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled < 3) { strWIDList[u8WidCnt].u16WIDid = WID_SITE_SURVEY; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; - strWIDList[u8WidCnt].enuWIDtype = WID_CHAR; + strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); pstrWFIDrv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; } else { @@ -1115,7 +1115,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time < 65536) { strWIDList[u8WidCnt].u16WIDid = WID_SITE_SURVEY_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; } else { @@ -1130,7 +1130,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time < 65536) { strWIDList[u8WidCnt].u16WIDid = WID_ACTIVE_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; } else { @@ -1145,7 +1145,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time < 65536) { strWIDList[u8WidCnt].u16WIDid = WID_PASSIVE_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; } else { @@ -1170,7 +1170,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, || curr_tx_rate == MBPS_36 || curr_tx_rate == MBPS_48 || curr_tx_rate == MBPS_54) { strWIDList[u8WidCnt].u16WIDid = WID_CURRENT_TX_RATE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&curr_tx_rate; - strWIDList[u8WidCnt].enuWIDtype = WID_SHORT; + strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); pstrWFIDrv->strCfgValues.curr_tx_rate = (u8)curr_tx_rate; } else { @@ -1256,7 +1256,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount = 0; strWIDList[u32WidsCount].u16WIDid = (u16)WID_SSID_PROBE_REQ; - strWIDList[u32WidsCount].enuWIDtype = WID_STR; + strWIDList[u32WidsCount].type = WID_STR; for (i = 0; i < pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum; i++) valuesize += ((pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo[i].u8ssidlen) + 1); @@ -1287,7 +1287,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, { /* IEs to be inserted in Probe Request */ strWIDList[u32WidsCount].u16WIDid = WID_INFO_ELEMENT_PROBE; - strWIDList[u32WidsCount].enuWIDtype = WID_BIN_DATA; + strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = pstrHostIFscanAttr->pu8IEs; strWIDList[u32WidsCount].s32ValueSize = pstrHostIFscanAttr->IEsLen; u32WidsCount++; @@ -1295,14 +1295,14 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, /*Scan Type*/ strWIDList[u32WidsCount].u16WIDid = WID_SCAN_TYPE; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; + strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrHostIFscanAttr->u8ScanType)); u32WidsCount++; /*list of channels to be scanned*/ strWIDList[u32WidsCount].u16WIDid = WID_SCAN_CHANNEL_LIST; - strWIDList[u32WidsCount].enuWIDtype = WID_BIN_DATA; + strWIDList[u32WidsCount].type = WID_BIN_DATA; if (pstrHostIFscanAttr->pu8ChnlFreqList != NULL && pstrHostIFscanAttr->u8ChnlListLen > 0) { int i; @@ -1319,7 +1319,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, /*Scan Request*/ strWIDList[u32WidsCount].u16WIDid = WID_START_SCAN_REQ; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; + strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrHostIFscanAttr->u8ScanSource)); u32WidsCount++; @@ -1402,7 +1402,7 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEven PRINT_D(GENERIC_DBG, "Abort running scan\n"); u8abort_running_scan = 1; strWID.u16WIDid = (u16)WID_ABORT_RUNNING_SCAN; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u8abort_running_scan; strWID.s32ValueSize = sizeof(char); @@ -1498,19 +1498,19 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg; strWIDList[u32WidsCount].u16WIDid = WID_SUCCESS_FRAME_COUNT; - strWIDList[u32WidsCount].enuWIDtype = WID_INT; + strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); u32WidsCount++; strWIDList[u32WidsCount].u16WIDid = WID_RECEIVED_FRAGMENT_COUNT; - strWIDList[u32WidsCount].enuWIDtype = WID_INT; + strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); u32WidsCount++; strWIDList[u32WidsCount].u16WIDid = WID_FAILED_COUNT; - strWIDList[u32WidsCount].enuWIDtype = WID_INT; + strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); u32WidsCount++; @@ -1520,7 +1520,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, { /* IEs to be inserted in Association Request */ strWIDList[u32WidsCount].u16WIDid = WID_INFO_ELEMENT_ASSOCIATE; - strWIDList[u32WidsCount].enuWIDtype = WID_BIN_DATA; + strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs; strWIDList[u32WidsCount].s32ValueSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; u32WidsCount++; @@ -1534,7 +1534,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, } } strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_MODE; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; + strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security)); u32WidsCount++; @@ -1546,7 +1546,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].u16WIDid = (u16)WID_AUTH_TYPE; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; + strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); u32WidsCount++; @@ -1567,7 +1567,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->u8channel); strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ_EXTENDED; - strWIDList[u32WidsCount].enuWIDtype = WID_STR; + strWIDList[u32WidsCount].type = WID_STR; /*Sending NoA attributes during connection*/ strWIDList[u32WidsCount].s32ValueSize = 112; /* 79; */ @@ -1814,13 +1814,13 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) /* IEs to be inserted in Association Request */ strWIDList[u32WidsCount].u16WIDid = WID_INFO_ELEMENT_ASSOCIATE; - strWIDList[u32WidsCount].enuWIDtype = WID_BIN_DATA; + strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = gu8FlushedInfoElemAsoc; strWIDList[u32WidsCount].s32ValueSize = gu32FlushedInfoElemAsocSize; u32WidsCount++; strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_MODE; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; + strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(gu8Flushed11iMode)); u32WidsCount++; @@ -1828,13 +1828,13 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) strWIDList[u32WidsCount].u16WIDid = (u16)WID_AUTH_TYPE; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; + strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&gu8FlushedAuthType); u32WidsCount++; strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ_EXTENDED; - strWIDList[u32WidsCount].enuWIDtype = WID_STR; + strWIDList[u32WidsCount].type = WID_STR; strWIDList[u32WidsCount].s32ValueSize = gu32FlushedJoinReqSize; strWIDList[u32WidsCount].ps8WidVal = (s8 *)gu8FlushedJoinReq; pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; @@ -1919,7 +1919,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) /* Here we will notify our firmware also with the Connection failure {through sending to it Cfg packet carrying * WID_DISCONNECT} */ strWID.u16WIDid = (u16)WID_DISCONNECT; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u16DummyReasonCode; strWID.s32ValueSize = sizeof(char); @@ -2426,17 +2426,17 @@ static int Handle_Key(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); strWIDList[0].u16WIDid = (u16)WID_11I_MODE; - strWIDList[0].enuWIDtype = WID_CHAR; + strWIDList[0].type = WID_CHAR; strWIDList[0].s32ValueSize = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8mode)); strWIDList[1].u16WIDid = WID_AUTH_TYPE; - strWIDList[1].enuWIDtype = WID_CHAR; + strWIDList[1].type = WID_CHAR; strWIDList[1].s32ValueSize = sizeof(char); strWIDList[1].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type)); strWIDList[2].u16WIDid = (u16)WID_KEY_ID; - strWIDList[2].enuWIDtype = WID_CHAR; + strWIDList[2].type = WID_CHAR; strWIDList[2].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); strWIDList[2].s32ValueSize = sizeof(char); @@ -2457,7 +2457,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey); strWIDList[3].u16WIDid = (u16)WID_WEP_KEY_VALUE; - strWIDList[3].enuWIDtype = WID_STR; + strWIDList[3].type = WID_STR; strWIDList[3].s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen; strWIDList[3].ps8WidVal = (s8 *)pu8keybuf; @@ -2486,7 +2486,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey); strWID.u16WIDid = (u16)WID_ADD_WEP_KEY; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; @@ -2497,7 +2497,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Removing key\n"); strWID.u16WIDid = (u16)WID_REMOVE_WEP_KEY; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx; strWID.ps8WidVal = s8idxarray; @@ -2507,7 +2507,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, get_id_from_handler(pstrWFIDrv)); } else { strWID.u16WIDid = (u16)WID_KEY_ID; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); strWID.s32ValueSize = sizeof(char); @@ -2550,12 +2550,12 @@ static int Handle_Key(struct host_if_drv *drvHandler, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); /* pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = 0X51; */ strWIDList[0].u16WIDid = (u16)WID_11I_MODE; - strWIDList[0].enuWIDtype = WID_CHAR; + strWIDList[0].type = WID_CHAR; strWIDList[0].s32ValueSize = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); strWIDList[1].u16WIDid = (u16)WID_ADD_RX_GTK; - strWIDList[1].enuWIDtype = WID_STR; + strWIDList[1].type = WID_STR; strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = RX_MIC_KEY_MSG_LEN; @@ -2601,7 +2601,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); strWID.u16WIDid = (u16)WID_ADD_RX_GTK; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = RX_MIC_KEY_MSG_LEN; @@ -2653,12 +2653,12 @@ _WPARxGtk_end_case_: strWIDList[0].u16WIDid = (u16)WID_11I_MODE; - strWIDList[0].enuWIDtype = WID_CHAR; + strWIDList[0].type = WID_CHAR; strWIDList[0].s32ValueSize = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); strWIDList[1].u16WIDid = (u16)WID_ADD_PTK; - strWIDList[1].enuWIDtype = WID_STR; + strWIDList[1].type = WID_STR; strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = PTK_KEY_MSG_LEN + 1; @@ -2699,7 +2699,7 @@ _WPARxGtk_end_case_: strWID.u16WIDid = (u16)WID_ADD_PTK; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = PTK_KEY_MSG_LEN; @@ -2739,7 +2739,7 @@ _WPAPtk_end_case_: } strWID.u16WIDid = (u16)WID_PMKID_INFO; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; @@ -2777,7 +2777,7 @@ static void Handle_Disconnect(struct host_if_drv *drvHandler) strWID.u16WIDid = (u16)WID_DISCONNECT; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u16DummyReasonCode; strWID.s32ValueSize = sizeof(char); @@ -2901,7 +2901,7 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_CURRENT_CHANNEL; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&gu8Chnl; strWID.s32ValueSize = sizeof(char); @@ -2940,7 +2940,7 @@ static void Handle_GetRssi(struct host_if_drv *drvHandler) struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_RSSI; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = &gs8Rssi; strWID.s32ValueSize = sizeof(char); @@ -2969,7 +2969,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) gs8lnkspd = 0; strWID.u16WIDid = (u16)WID_LINKSPEED; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = &gs8lnkspd; strWID.s32ValueSize = sizeof(char); /*Sending Cfg*/ @@ -2993,31 +2993,31 @@ s32 Handle_GetStatistics(struct host_if_drv *drvHandler, tstrStatistics *pstrSta u32 u32WidsCount = 0, s32Error = 0; strWIDList[u32WidsCount].u16WIDid = WID_LINKSPEED; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; + strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u8LinkSpeed)); u32WidsCount++; strWIDList[u32WidsCount].u16WIDid = WID_RSSI; - strWIDList[u32WidsCount].enuWIDtype = WID_CHAR; + strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->s8RSSI)); u32WidsCount++; strWIDList[u32WidsCount].u16WIDid = WID_SUCCESS_FRAME_COUNT; - strWIDList[u32WidsCount].enuWIDtype = WID_INT; + strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxCount)); u32WidsCount++; strWIDList[u32WidsCount].u16WIDid = WID_RECEIVED_FRAGMENT_COUNT; - strWIDList[u32WidsCount].enuWIDtype = WID_INT; + strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32RxCount)); u32WidsCount++; strWIDList[u32WidsCount].u16WIDid = WID_FAILED_COUNT; - strWIDList[u32WidsCount].enuWIDtype = WID_INT; + strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxFailureCount)); u32WidsCount++; @@ -3055,7 +3055,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, strWID.u16WIDid = (u16)WID_SET_STA_MAC_INACTIVE_TIME; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.s32ValueSize = ETH_ALEN; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3077,7 +3077,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, strWID.u16WIDid = (u16)WID_GET_INACTIVE_TIME; - strWID.enuWIDtype = WID_INT; + strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&gu32InactiveTime; strWID.s32ValueSize = sizeof(u32); @@ -3122,7 +3122,7 @@ static void Handle_AddBeacon(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Adding BEACON\n"); strWID.u16WIDid = (u16)WID_ADD_BEACON; - strWID.enuWIDtype = WID_BIN; + strWID.type = WID_BIN; strWID.s32ValueSize = pstrSetBeaconParam->u32HeadLen + pstrSetBeaconParam->u32TailLen + 16; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) @@ -3188,7 +3188,7 @@ static void Handle_DelBeacon(struct host_if_drv *drvHandler) struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_DEL_BEACON; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.s32ValueSize = sizeof(char); strWID.ps8WidVal = &gu8DelBcn; @@ -3282,7 +3282,7 @@ static void Handle_AddStation(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling add station\n"); strWID.u16WIDid = (u16)WID_ADD_STA; - strWID.enuWIDtype = WID_BIN; + strWID.type = WID_BIN; strWID.s32ValueSize = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3324,7 +3324,7 @@ static void Handle_DelAllSta(struct host_if_drv *drvHandler, u8 au8Zero_Buff[6] = {0}; strWID.u16WIDid = (u16)WID_DEL_ALL_STA; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.s32ValueSize = (pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1; PRINT_D(HOSTINF_DBG, "Handling delete station\n"); @@ -3377,7 +3377,7 @@ static void Handle_DelStation(struct host_if_drv *drvHandler, struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_REMOVE_STA; - strWID.enuWIDtype = WID_BIN; + strWID.type = WID_BIN; strWID.s32ValueSize = ETH_ALEN; PRINT_D(HOSTINF_DBG, "Handling delete station\n"); @@ -3419,7 +3419,7 @@ static void Handle_EditStation(struct host_if_drv *drvHandler, struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.u16WIDid = (u16)WID_EDIT_STA; - strWID.enuWIDtype = WID_BIN; + strWID.type = WID_BIN; strWID.s32ValueSize = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; PRINT_D(HOSTINF_DBG, "Handling edit station\n"); @@ -3492,7 +3492,7 @@ static int Handle_RemainOnChan(struct host_if_drv *drvHandler, u8remain_on_chan_flag = true; strWID.u16WIDid = (u16)WID_REMAIN_ON_CHAN; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.s32ValueSize = 2; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3549,7 +3549,7 @@ static int Handle_RegisterFrame(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.u16WIDid = (u16)WID_REGISTER_FRAME; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(sizeof(u16) + 2, GFP_KERNEL); if (strWID.ps8WidVal == NULL) return -ENOMEM; @@ -3601,7 +3601,7 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, if (P2P_LISTEN_STATE) { u8remain_on_chan_flag = false; strWID.u16WIDid = (u16)WID_REMAIN_ON_CHAN; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.s32ValueSize = 2; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3718,7 +3718,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Setup Multicast Filter\n"); strWID.u16WIDid = (u16)WID_SETUP_MULTICAST_FILTER; - strWID.enuWIDtype = WID_BIN; + strWID.type = WID_BIN; strWID.s32ValueSize = sizeof(struct set_multicast) + ((strHostIfSetMulti->u32count) * ETH_ALEN); strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); if (strWID.ps8WidVal == NULL) @@ -3777,7 +3777,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, strHostIfBASessionInfo->u8Ted); strWID.u16WIDid = (u16)WID_11E_P_ACTION_REQ; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; ptr = strWID.ps8WidVal; @@ -3811,7 +3811,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, strWID.u16WIDid = (u16)WID_11E_P_ACTION_REQ; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.s32ValueSize = 15; ptr = strWID.ps8WidVal; /* *ptr++ = 0x14; */ @@ -3863,7 +3863,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, strHostIfBASessionInfo->u8Ted); strWID.u16WIDid = (u16)WID_DEL_ALL_RX_BA; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; ptr = strWID.ps8WidVal; @@ -4162,7 +4162,7 @@ s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) struct wid strWID; strWID.u16WIDid = (u16)WID_REMOVE_KEY; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8StaAddress; strWID.s32ValueSize = 6; @@ -4679,7 +4679,7 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, struct wid strWID; strWID.u16WIDid = (u16)WID_PMKID_INFO; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.s32ValueSize = u32PmkidInfoLen; strWID.ps8WidVal = pu8PmkidInfoArray; @@ -4708,7 +4708,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8Pas /*validating psk length*/ if ((u8Psklength > 7) && (u8Psklength < 65)) { strWID.u16WIDid = (u16)WID_11I_PSK; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = pu8PassPhrase; strWID.s32ValueSize = u8Psklength; } @@ -4801,7 +4801,7 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, struct wid strWID; strWID.u16WIDid = (u16)WID_11I_PSK; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.s32ValueSize = u8Psklength; strWID.ps8WidVal = pu8PassPhrase; @@ -4828,7 +4828,7 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) struct wid strWID; strWID.u16WIDid = (u16)WID_START_SCAN_REQ; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&scanSource; strWID.s32ValueSize = sizeof(char); @@ -4856,7 +4856,7 @@ s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) struct wid strWID; strWID.u16WIDid = (u16)WID_START_SCAN_REQ; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)pu8ScanSource; strWID.s32ValueSize = sizeof(char); @@ -5053,7 +5053,7 @@ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) struct wid strWID; strWID.u16WIDid = (u16)WID_DISCONNECT; - strWID.enuWIDtype = WID_CHAR; + strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&assoc_id; strWID.s32ValueSize = sizeof(char); @@ -5092,7 +5092,7 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo struct wid strWID; strWID.u16WIDid = (u16)WID_ASSOC_REQ_INFO; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = pu8AssocReqInfo; strWID.s32ValueSize = u32AssocReqInfoLen; @@ -5123,7 +5123,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf } strWID.u16WIDid = (u16)WID_ASSOC_RES_INFO; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = pu8AssocRespInfo; strWID.s32ValueSize = u32MaxAssocRespInfoLen; @@ -5163,7 +5163,7 @@ s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel struct wid strWID; strWID.u16WIDid = (u16)WID_RX_POWER_LEVEL; - strWID.enuWIDtype = WID_STR; + strWID.type = WID_STR; strWID.ps8WidVal = pu8RxPowerLevel; strWID.s32ValueSize = u32RxPowerLevelLen; @@ -5389,7 +5389,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) } strWID.u16WIDid = (u16)WID_MEMORY_ADDRESS; - strWID.enuWIDtype = WID_INT; + strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)pu32TestMemAddr; strWID.s32ValueSize = sizeof(u32); From daaf16babf759b29c154e124586909a0b74d403b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:44 +0900 Subject: [PATCH 1437/2431] staging: wilc1000: rename the member variable, u16WIDid of wid This patch renames u16WIDid of struct wid to id. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 8 +- drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/host_interface.c | 186 ++++++++++---------- 3 files changed, 98 insertions(+), 98 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 2e063f643f75..05a0c1604a34 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -604,7 +604,7 @@ s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv) PRINT_INFO(CORECONFIG_DBG, "Sending CFG packet [%d][%d]\n", !counter, (counter == count - 1)); if (!wilc_wlan_cfg_get(!counter, - wids[counter].u16WIDid, + wids[counter].id, (counter == count - 1), drv)) { ret = -1; @@ -615,16 +615,16 @@ s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv) counter = 0; for (counter = 0; counter < count; counter++) { wids[counter].s32ValueSize = wilc_wlan_cfg_get_val( - wids[counter].u16WIDid, + wids[counter].id, wids[counter].ps8WidVal, wids[counter].s32ValueSize); } } else if (mode == SET_CFG) { for (counter = 0; counter < count; counter++) { - PRINT_D(CORECONFIG_DBG, "Sending config SET PACKET WID:%x\n", wids[counter].u16WIDid); + PRINT_D(CORECONFIG_DBG, "Sending config SET PACKET WID:%x\n", wids[counter].id); if (!wilc_wlan_cfg_set(!counter, - wids[counter].u16WIDid, + wids[counter].id, wids[counter].ps8WidVal, wids[counter].s32ValueSize, (counter == count - 1), diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 27c1a86738b7..0d3bff78604c 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -71,7 +71,7 @@ typedef enum { } tenuConnectSts; struct wid { - u16 u16WIDid; + u16 id; enum WID_TYPE type; s32 s32ValueSize; s8 *ps8WidVal; diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1e18d500fdbd..443e7838ed48 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -576,7 +576,7 @@ static s32 Handle_SetChannel(struct host_if_drv *drvHandler, struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_CURRENT_CHANNEL; + strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; strWID.ps8WidVal = (char *)&(pstrHostIFSetChan->u8SetChan); strWID.s32ValueSize = sizeof(char); @@ -612,7 +612,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_SET_DRV_HANDLER; + strWID.id = (u16)WID_SET_DRV_HANDLER; strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&(pstrHostIfSetDrvHandler->u32Address); strWID.s32ValueSize = sizeof(u32); @@ -653,7 +653,7 @@ static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_SET_OPERATION_MODE; + strWID.id = (u16)WID_SET_OPERATION_MODE; strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&(pstrHostIfSetOperationMode->u32Mode); strWID.s32ValueSize = sizeof(u32); @@ -702,7 +702,7 @@ s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) memcpy(gs8SetIP[idx], pu8IPAddr, IP_ALEN); /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_IP_ADDRESS; + strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; strWID.ps8WidVal = (u8 *)pu8IPAddr; strWID.s32ValueSize = IP_ALEN; @@ -741,7 +741,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_IP_ADDRESS; + strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(IP_ALEN, GFP_KERNEL); strWID.s32ValueSize = IP_ALEN; @@ -797,7 +797,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, memcpy(mac_buf, pstrHostIfSetMacAddress->u8MacAddress, ETH_ALEN); /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_MAC_ADDR; + strWID.id = (u16)WID_MAC_ADDR; strWID.type = WID_STR; strWID.ps8WidVal = mac_buf; strWID.s32ValueSize = ETH_ALEN; @@ -832,7 +832,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, struct wid strWID; /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_MAC_ADDR; + strWID.id = (u16)WID_MAC_ADDR; strWID.type = WID_STR; strWID.ps8WidVal = pstrHostIfGetMacAddress->u8MacAddress; strWID.s32ValueSize = ETH_ALEN; @@ -881,7 +881,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /*----------------------------------------------------------*/ /* validate input then copy>> need to check value 4 and 5 */ if (strHostIFCfgParamAttr->pstrCfgParamVal.bss_type < 6) { - strWIDList[u8WidCnt].u16WIDid = WID_BSS_TYPE; + strWIDList[u8WidCnt].id = WID_BSS_TYPE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); @@ -901,7 +901,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /*------------------------------------------------------*/ /*validate Possible values*/ if ((strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 1 || (strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 2 || (strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 5) { - strWIDList[u8WidCnt].u16WIDid = WID_AUTH_TYPE; + strWIDList[u8WidCnt].id = WID_AUTH_TYPE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); @@ -916,7 +916,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & AUTHEN_TIMEOUT) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout < 65536) { - strWIDList[u8WidCnt].u16WIDid = WID_AUTH_TIMEOUT; + strWIDList[u8WidCnt].id = WID_AUTH_TIMEOUT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -937,7 +937,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* MAX_PSPOLL_PS = 4 */ /*----------------------------------------------------------*/ if (strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode < 5) { - strWIDList[u8WidCnt].u16WIDid = WID_POWER_MANAGEMENT; + strWIDList[u8WidCnt].id = WID_POWER_MANAGEMENT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); @@ -952,7 +952,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & RETRY_SHORT) { /* range from 1 to 256 */ if ((strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit > 0) && (strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit < 256)) { - strWIDList[u8WidCnt].u16WIDid = WID_SHORT_RETRY_LIMIT; + strWIDList[u8WidCnt].id = WID_SHORT_RETRY_LIMIT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -967,7 +967,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & RETRY_LONG) { /* range from 1 to 256 */ if ((strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit > 0) && (strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit < 256)) { - strWIDList[u8WidCnt].u16WIDid = WID_LONG_RETRY_LIMIT; + strWIDList[u8WidCnt].id = WID_LONG_RETRY_LIMIT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; @@ -983,7 +983,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & FRAG_THRESHOLD) { if (strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold > 255 && strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold < 7937) { - strWIDList[u8WidCnt].u16WIDid = WID_FRAG_THRESHOLD; + strWIDList[u8WidCnt].id = WID_FRAG_THRESHOLD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -998,7 +998,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & RTS_THRESHOLD) { /* range 256 to 65535 */ if (strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold > 255 && strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold < 65536) { - strWIDList[u8WidCnt].u16WIDid = WID_RTS_THRESHOLD; + strWIDList[u8WidCnt].id = WID_RTS_THRESHOLD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -1017,7 +1017,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* Auto= 2 */ /*------------------------------------------------------*/ if (strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type < 3) { - strWIDList[u8WidCnt].u16WIDid = WID_PREAMBLE; + strWIDList[u8WidCnt].id = WID_PREAMBLE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); @@ -1031,7 +1031,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, } if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & SHORT_SLOT_ALLOWED) { if (strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed < 2) { - strWIDList[u8WidCnt].u16WIDid = WID_SHORT_SLOT_ALLOWED; + strWIDList[u8WidCnt].id = WID_SHORT_SLOT_ALLOWED; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); @@ -1049,7 +1049,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* this information is useful for external supplicant */ /*Input Values: 1 for enable and 0 for disable. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled < 2) { - strWIDList[u8WidCnt].u16WIDid = WID_11N_TXOP_PROT_DISABLE; + strWIDList[u8WidCnt].id = WID_11N_TXOP_PROT_DISABLE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); @@ -1064,7 +1064,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & BEACON_INTERVAL) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval < 65536) { - strWIDList[u8WidCnt].u16WIDid = WID_BEACON_INTERVAL; + strWIDList[u8WidCnt].id = WID_BEACON_INTERVAL; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -1079,7 +1079,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & DTIM_PERIOD) { /* range is 1 to 255. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period < 256) { - strWIDList[u8WidCnt].u16WIDid = WID_DTIM_PERIOD; + strWIDList[u8WidCnt].id = WID_DTIM_PERIOD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); @@ -1098,7 +1098,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* SITE_SURVEY_OFF = 2 */ /*----------------------------------------------------------------------*/ if (strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled < 3) { - strWIDList[u8WidCnt].u16WIDid = WID_SITE_SURVEY; + strWIDList[u8WidCnt].id = WID_SITE_SURVEY; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].s32ValueSize = sizeof(char); @@ -1113,7 +1113,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & SITE_SURVEY_SCAN_TIME) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time < 65536) { - strWIDList[u8WidCnt].u16WIDid = WID_SITE_SURVEY_SCAN_TIME; + strWIDList[u8WidCnt].id = WID_SITE_SURVEY_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -1128,7 +1128,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & ACTIVE_SCANTIME) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time < 65536) { - strWIDList[u8WidCnt].u16WIDid = WID_ACTIVE_SCAN_TIME; + strWIDList[u8WidCnt].id = WID_ACTIVE_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -1143,7 +1143,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & PASSIVE_SCANTIME) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time < 65536) { - strWIDList[u8WidCnt].u16WIDid = WID_PASSIVE_SCAN_TIME; + strWIDList[u8WidCnt].id = WID_PASSIVE_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -1168,7 +1168,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, || curr_tx_rate == MBPS_9 || curr_tx_rate == MBPS_12 || curr_tx_rate == MBPS_18 || curr_tx_rate == MBPS_24 || curr_tx_rate == MBPS_36 || curr_tx_rate == MBPS_48 || curr_tx_rate == MBPS_54) { - strWIDList[u8WidCnt].u16WIDid = WID_CURRENT_TX_RATE; + strWIDList[u8WidCnt].id = WID_CURRENT_TX_RATE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&curr_tx_rate; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); @@ -1255,7 +1255,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount = 0; - strWIDList[u32WidsCount].u16WIDid = (u16)WID_SSID_PROBE_REQ; + strWIDList[u32WidsCount].id = (u16)WID_SSID_PROBE_REQ; strWIDList[u32WidsCount].type = WID_STR; for (i = 0; i < pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum; i++) @@ -1286,7 +1286,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, /* if((pstrHostIFscanAttr->pu8IEs != NULL) && (pstrHostIFscanAttr->IEsLen != 0)) */ { /* IEs to be inserted in Probe Request */ - strWIDList[u32WidsCount].u16WIDid = WID_INFO_ELEMENT_PROBE; + strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_PROBE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = pstrHostIFscanAttr->pu8IEs; strWIDList[u32WidsCount].s32ValueSize = pstrHostIFscanAttr->IEsLen; @@ -1294,14 +1294,14 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, } /*Scan Type*/ - strWIDList[u32WidsCount].u16WIDid = WID_SCAN_TYPE; + strWIDList[u32WidsCount].id = WID_SCAN_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrHostIFscanAttr->u8ScanType)); u32WidsCount++; /*list of channels to be scanned*/ - strWIDList[u32WidsCount].u16WIDid = WID_SCAN_CHANNEL_LIST; + strWIDList[u32WidsCount].id = WID_SCAN_CHANNEL_LIST; strWIDList[u32WidsCount].type = WID_BIN_DATA; if (pstrHostIFscanAttr->pu8ChnlFreqList != NULL && pstrHostIFscanAttr->u8ChnlListLen > 0) { @@ -1318,7 +1318,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, u32WidsCount++; /*Scan Request*/ - strWIDList[u32WidsCount].u16WIDid = WID_START_SCAN_REQ; + strWIDList[u32WidsCount].id = WID_START_SCAN_REQ; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrHostIFscanAttr->u8ScanSource)); @@ -1401,7 +1401,7 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEven if (enuEvent == SCAN_EVENT_ABORTED) { PRINT_D(GENERIC_DBG, "Abort running scan\n"); u8abort_running_scan = 1; - strWID.u16WIDid = (u16)WID_ABORT_RUNNING_SCAN; + strWID.id = (u16)WID_ABORT_RUNNING_SCAN; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u8abort_running_scan; strWID.s32ValueSize = sizeof(char); @@ -1497,19 +1497,19 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->pfConnectResult; pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg; - strWIDList[u32WidsCount].u16WIDid = WID_SUCCESS_FRAME_COUNT; + strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); u32WidsCount++; - strWIDList[u32WidsCount].u16WIDid = WID_RECEIVED_FRAGMENT_COUNT; + strWIDList[u32WidsCount].id = WID_RECEIVED_FRAGMENT_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); u32WidsCount++; - strWIDList[u32WidsCount].u16WIDid = WID_FAILED_COUNT; + strWIDList[u32WidsCount].id = WID_FAILED_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); @@ -1519,7 +1519,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, /* (gWFiDrvHandle->strWILC_UsrConnReq.ConnReqIEsLen != 0)) */ { /* IEs to be inserted in Association Request */ - strWIDList[u32WidsCount].u16WIDid = WID_INFO_ELEMENT_ASSOCIATE; + strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs; strWIDList[u32WidsCount].s32ValueSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; @@ -1533,7 +1533,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, gu32FlushedInfoElemAsocSize); } } - strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_MODE; + strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security)); @@ -1545,7 +1545,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, PRINT_INFO(HOSTINF_DBG, "Encrypt Mode = %x\n", pstrWFIDrv->strWILC_UsrConnReq.u8security); - strWIDList[u32WidsCount].u16WIDid = (u16)WID_AUTH_TYPE; + strWIDList[u32WidsCount].id = (u16)WID_AUTH_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); @@ -1566,7 +1566,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Connecting to network of SSID %s on channel %d\n", pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->u8channel); - strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ_EXTENDED; + strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; /*Sending NoA attributes during connection*/ @@ -1813,13 +1813,13 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) /* IEs to be inserted in Association Request */ - strWIDList[u32WidsCount].u16WIDid = WID_INFO_ELEMENT_ASSOCIATE; + strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = gu8FlushedInfoElemAsoc; strWIDList[u32WidsCount].s32ValueSize = gu32FlushedInfoElemAsocSize; u32WidsCount++; - strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_MODE; + strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(gu8Flushed11iMode)); @@ -1827,13 +1827,13 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) - strWIDList[u32WidsCount].u16WIDid = (u16)WID_AUTH_TYPE; + strWIDList[u32WidsCount].id = (u16)WID_AUTH_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&gu8FlushedAuthType); u32WidsCount++; - strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ_EXTENDED; + strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; strWIDList[u32WidsCount].s32ValueSize = gu32FlushedJoinReqSize; strWIDList[u32WidsCount].ps8WidVal = (s8 *)gu8FlushedJoinReq; @@ -1918,7 +1918,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) /* Here we will notify our firmware also with the Connection failure {through sending to it Cfg packet carrying * WID_DISCONNECT} */ - strWID.u16WIDid = (u16)WID_DISCONNECT; + strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u16DummyReasonCode; strWID.s32ValueSize = sizeof(char); @@ -2425,17 +2425,17 @@ static int Handle_Key(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); - strWIDList[0].u16WIDid = (u16)WID_11I_MODE; + strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].s32ValueSize = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8mode)); - strWIDList[1].u16WIDid = WID_AUTH_TYPE; + strWIDList[1].id = WID_AUTH_TYPE; strWIDList[1].type = WID_CHAR; strWIDList[1].s32ValueSize = sizeof(char); strWIDList[1].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type)); - strWIDList[2].u16WIDid = (u16)WID_KEY_ID; + strWIDList[2].id = (u16)WID_KEY_ID; strWIDList[2].type = WID_CHAR; strWIDList[2].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); @@ -2456,7 +2456,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey); - strWIDList[3].u16WIDid = (u16)WID_WEP_KEY_VALUE; + strWIDList[3].id = (u16)WID_WEP_KEY_VALUE; strWIDList[3].type = WID_STR; strWIDList[3].s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen; strWIDList[3].ps8WidVal = (s8 *)pu8keybuf; @@ -2485,7 +2485,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey); - strWID.u16WIDid = (u16)WID_ADD_WEP_KEY; + strWID.id = (u16)WID_ADD_WEP_KEY; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; @@ -2496,7 +2496,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, } else if (pstrHostIFkeyAttr->u8KeyAction & REMOVEKEY) { PRINT_D(HOSTINF_DBG, "Removing key\n"); - strWID.u16WIDid = (u16)WID_REMOVE_WEP_KEY; + strWID.id = (u16)WID_REMOVE_WEP_KEY; strWID.type = WID_STR; s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx; @@ -2506,7 +2506,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); } else { - strWID.u16WIDid = (u16)WID_KEY_ID; + strWID.id = (u16)WID_KEY_ID; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); strWID.s32ValueSize = sizeof(char); @@ -2549,12 +2549,12 @@ static int Handle_Key(struct host_if_drv *drvHandler, memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); /* pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = 0X51; */ - strWIDList[0].u16WIDid = (u16)WID_11I_MODE; + strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].s32ValueSize = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); - strWIDList[1].u16WIDid = (u16)WID_ADD_RX_GTK; + strWIDList[1].id = (u16)WID_ADD_RX_GTK; strWIDList[1].type = WID_STR; strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = RX_MIC_KEY_MSG_LEN; @@ -2600,7 +2600,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); - strWID.u16WIDid = (u16)WID_ADD_RX_GTK; + strWID.id = (u16)WID_ADD_RX_GTK; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = RX_MIC_KEY_MSG_LEN; @@ -2652,12 +2652,12 @@ _WPARxGtk_end_case_: pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); - strWIDList[0].u16WIDid = (u16)WID_11I_MODE; + strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].s32ValueSize = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); - strWIDList[1].u16WIDid = (u16)WID_ADD_PTK; + strWIDList[1].id = (u16)WID_ADD_PTK; strWIDList[1].type = WID_STR; strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; strWIDList[1].s32ValueSize = PTK_KEY_MSG_LEN + 1; @@ -2698,7 +2698,7 @@ _WPARxGtk_end_case_: pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); - strWID.u16WIDid = (u16)WID_ADD_PTK; + strWID.id = (u16)WID_ADD_PTK; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = PTK_KEY_MSG_LEN; @@ -2738,7 +2738,7 @@ _WPAPtk_end_case_: memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + ETH_ALEN + 1), pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, PMKID_LEN); } - strWID.u16WIDid = (u16)WID_PMKID_INFO; + strWID.id = (u16)WID_PMKID_INFO; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; strWID.s32ValueSize = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; @@ -2776,7 +2776,7 @@ static void Handle_Disconnect(struct host_if_drv *drvHandler) struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.u16WIDid = (u16)WID_DISCONNECT; + strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u16DummyReasonCode; strWID.s32ValueSize = sizeof(char); @@ -2900,7 +2900,7 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.u16WIDid = (u16)WID_CURRENT_CHANNEL; + strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&gu8Chnl; strWID.s32ValueSize = sizeof(char); @@ -2939,7 +2939,7 @@ static void Handle_GetRssi(struct host_if_drv *drvHandler) struct wid strWID; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.u16WIDid = (u16)WID_RSSI; + strWID.id = (u16)WID_RSSI; strWID.type = WID_CHAR; strWID.ps8WidVal = &gs8Rssi; strWID.s32ValueSize = sizeof(char); @@ -2968,7 +2968,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) gs8lnkspd = 0; - strWID.u16WIDid = (u16)WID_LINKSPEED; + strWID.id = (u16)WID_LINKSPEED; strWID.type = WID_CHAR; strWID.ps8WidVal = &gs8lnkspd; strWID.s32ValueSize = sizeof(char); @@ -2992,31 +2992,31 @@ s32 Handle_GetStatistics(struct host_if_drv *drvHandler, tstrStatistics *pstrSta struct wid strWIDList[5]; u32 u32WidsCount = 0, s32Error = 0; - strWIDList[u32WidsCount].u16WIDid = WID_LINKSPEED; + strWIDList[u32WidsCount].id = WID_LINKSPEED; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u8LinkSpeed)); u32WidsCount++; - strWIDList[u32WidsCount].u16WIDid = WID_RSSI; + strWIDList[u32WidsCount].id = WID_RSSI; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].s32ValueSize = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->s8RSSI)); u32WidsCount++; - strWIDList[u32WidsCount].u16WIDid = WID_SUCCESS_FRAME_COUNT; + strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxCount)); u32WidsCount++; - strWIDList[u32WidsCount].u16WIDid = WID_RECEIVED_FRAGMENT_COUNT; + strWIDList[u32WidsCount].id = WID_RECEIVED_FRAGMENT_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32RxCount)); u32WidsCount++; - strWIDList[u32WidsCount].u16WIDid = WID_FAILED_COUNT; + strWIDList[u32WidsCount].id = WID_FAILED_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxFailureCount)); @@ -3054,7 +3054,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.u16WIDid = (u16)WID_SET_STA_MAC_INACTIVE_TIME; + strWID.id = (u16)WID_SET_STA_MAC_INACTIVE_TIME; strWID.type = WID_STR; strWID.s32ValueSize = ETH_ALEN; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3076,7 +3076,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, } - strWID.u16WIDid = (u16)WID_GET_INACTIVE_TIME; + strWID.id = (u16)WID_GET_INACTIVE_TIME; strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&gu32InactiveTime; strWID.s32ValueSize = sizeof(u32); @@ -3121,7 +3121,7 @@ static void Handle_AddBeacon(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Adding BEACON\n"); - strWID.u16WIDid = (u16)WID_ADD_BEACON; + strWID.id = (u16)WID_ADD_BEACON; strWID.type = WID_BIN; strWID.s32ValueSize = pstrSetBeaconParam->u32HeadLen + pstrSetBeaconParam->u32TailLen + 16; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3187,7 +3187,7 @@ static void Handle_DelBeacon(struct host_if_drv *drvHandler) u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.u16WIDid = (u16)WID_DEL_BEACON; + strWID.id = (u16)WID_DEL_BEACON; strWID.type = WID_CHAR; strWID.s32ValueSize = sizeof(char); strWID.ps8WidVal = &gu8DelBcn; @@ -3281,7 +3281,7 @@ static void Handle_AddStation(struct host_if_drv *drvHandler, struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Handling add station\n"); - strWID.u16WIDid = (u16)WID_ADD_STA; + strWID.id = (u16)WID_ADD_STA; strWID.type = WID_BIN; strWID.s32ValueSize = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; @@ -3323,7 +3323,7 @@ static void Handle_DelAllSta(struct host_if_drv *drvHandler, u8 i; u8 au8Zero_Buff[6] = {0}; - strWID.u16WIDid = (u16)WID_DEL_ALL_STA; + strWID.id = (u16)WID_DEL_ALL_STA; strWID.type = WID_STR; strWID.s32ValueSize = (pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1; @@ -3376,7 +3376,7 @@ static void Handle_DelStation(struct host_if_drv *drvHandler, u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.u16WIDid = (u16)WID_REMOVE_STA; + strWID.id = (u16)WID_REMOVE_STA; strWID.type = WID_BIN; strWID.s32ValueSize = ETH_ALEN; @@ -3418,7 +3418,7 @@ static void Handle_EditStation(struct host_if_drv *drvHandler, u8 *pu8CurrByte; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.u16WIDid = (u16)WID_EDIT_STA; + strWID.id = (u16)WID_EDIT_STA; strWID.type = WID_BIN; strWID.s32ValueSize = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; @@ -3491,7 +3491,7 @@ static int Handle_RemainOnChan(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Setting channel :%d\n", pstrHostIfRemainOnChan->u16Channel); u8remain_on_chan_flag = true; - strWID.u16WIDid = (u16)WID_REMAIN_ON_CHAN; + strWID.id = (u16)WID_REMAIN_ON_CHAN; strWID.type = WID_STR; strWID.s32ValueSize = 2; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3548,7 +3548,7 @@ static int Handle_RegisterFrame(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling frame register Flag : %d FrameType: %d\n", pstrHostIfRegisterFrame->bReg, pstrHostIfRegisterFrame->u16FrameType); /*prepare configuration packet*/ - strWID.u16WIDid = (u16)WID_REGISTER_FRAME; + strWID.id = (u16)WID_REGISTER_FRAME; strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(sizeof(u16) + 2, GFP_KERNEL); if (strWID.ps8WidVal == NULL) @@ -3600,7 +3600,7 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, /*This is to handle duplicate expiry messages (listen timer fired and supplicant called cancel_remain_on_channel())*/ if (P2P_LISTEN_STATE) { u8remain_on_chan_flag = false; - strWID.u16WIDid = (u16)WID_REMAIN_ON_CHAN; + strWID.id = (u16)WID_REMAIN_ON_CHAN; strWID.type = WID_STR; strWID.s32ValueSize = 2; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3680,7 +3680,7 @@ static void Handle_PowerManagement(struct host_if_drv *drvHandler, s8 s8PowerMode; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.u16WIDid = (u16)WID_POWER_MANAGEMENT; + strWID.id = (u16)WID_POWER_MANAGEMENT; if (strPowerMgmtParam->bIsEnabled == true) s8PowerMode = MIN_FAST_PS; @@ -3717,7 +3717,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Setup Multicast Filter\n"); - strWID.u16WIDid = (u16)WID_SETUP_MULTICAST_FILTER; + strWID.id = (u16)WID_SETUP_MULTICAST_FILTER; strWID.type = WID_BIN; strWID.s32ValueSize = sizeof(struct set_multicast) + ((strHostIfSetMulti->u32count) * ETH_ALEN); strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); @@ -3776,7 +3776,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, strHostIfBASessionInfo->u16SessionTimeout, strHostIfBASessionInfo->u8Ted); - strWID.u16WIDid = (u16)WID_11E_P_ACTION_REQ; + strWID.id = (u16)WID_11E_P_ACTION_REQ; strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; @@ -3810,7 +3810,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Couldn't open BA Session\n"); - strWID.u16WIDid = (u16)WID_11E_P_ACTION_REQ; + strWID.id = (u16)WID_11E_P_ACTION_REQ; strWID.type = WID_STR; strWID.s32ValueSize = 15; ptr = strWID.ps8WidVal; @@ -3862,7 +3862,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, strHostIfBASessionInfo->au8Bssid[2], strHostIfBASessionInfo->u8Ted); - strWID.u16WIDid = (u16)WID_DEL_ALL_RX_BA; + strWID.id = (u16)WID_DEL_ALL_RX_BA; strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; @@ -4161,7 +4161,7 @@ s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) { struct wid strWID; - strWID.u16WIDid = (u16)WID_REMOVE_KEY; + strWID.id = (u16)WID_REMOVE_KEY; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8StaAddress; strWID.s32ValueSize = 6; @@ -4678,7 +4678,7 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, { struct wid strWID; - strWID.u16WIDid = (u16)WID_PMKID_INFO; + strWID.id = (u16)WID_PMKID_INFO; strWID.type = WID_STR; strWID.s32ValueSize = u32PmkidInfoLen; strWID.ps8WidVal = pu8PmkidInfoArray; @@ -4707,7 +4707,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8Pas /*validating psk length*/ if ((u8Psklength > 7) && (u8Psklength < 65)) { - strWID.u16WIDid = (u16)WID_11I_PSK; + strWID.id = (u16)WID_11I_PSK; strWID.type = WID_STR; strWID.ps8WidVal = pu8PassPhrase; strWID.s32ValueSize = u8Psklength; @@ -4800,7 +4800,7 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, { struct wid strWID; - strWID.u16WIDid = (u16)WID_11I_PSK; + strWID.id = (u16)WID_11I_PSK; strWID.type = WID_STR; strWID.s32ValueSize = u8Psklength; strWID.ps8WidVal = pu8PassPhrase; @@ -4827,7 +4827,7 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) { struct wid strWID; - strWID.u16WIDid = (u16)WID_START_SCAN_REQ; + strWID.id = (u16)WID_START_SCAN_REQ; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&scanSource; strWID.s32ValueSize = sizeof(char); @@ -4855,7 +4855,7 @@ s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) { struct wid strWID; - strWID.u16WIDid = (u16)WID_START_SCAN_REQ; + strWID.id = (u16)WID_START_SCAN_REQ; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)pu8ScanSource; strWID.s32ValueSize = sizeof(char); @@ -5052,7 +5052,7 @@ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) { struct wid strWID; - strWID.u16WIDid = (u16)WID_DISCONNECT; + strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&assoc_id; strWID.s32ValueSize = sizeof(char); @@ -5091,7 +5091,7 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo { struct wid strWID; - strWID.u16WIDid = (u16)WID_ASSOC_REQ_INFO; + strWID.id = (u16)WID_ASSOC_REQ_INFO; strWID.type = WID_STR; strWID.ps8WidVal = pu8AssocReqInfo; strWID.s32ValueSize = u32AssocReqInfoLen; @@ -5122,7 +5122,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf return -EFAULT; } - strWID.u16WIDid = (u16)WID_ASSOC_RES_INFO; + strWID.id = (u16)WID_ASSOC_RES_INFO; strWID.type = WID_STR; strWID.ps8WidVal = pu8AssocRespInfo; strWID.s32ValueSize = u32MaxAssocRespInfoLen; @@ -5162,7 +5162,7 @@ s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel { struct wid strWID; - strWID.u16WIDid = (u16)WID_RX_POWER_LEVEL; + strWID.id = (u16)WID_RX_POWER_LEVEL; strWID.type = WID_STR; strWID.ps8WidVal = pu8RxPowerLevel; strWID.s32ValueSize = u32RxPowerLevelLen; @@ -5388,7 +5388,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) return -EFAULT; } - strWID.u16WIDid = (u16)WID_MEMORY_ADDRESS; + strWID.id = (u16)WID_MEMORY_ADDRESS; strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)pu32TestMemAddr; strWID.s32ValueSize = sizeof(u32); From 2fd3e44354370aea686a50e9f18b92d6a8d2b5fe Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:45 +0900 Subject: [PATCH 1438/2431] staging: wilc1000: rename the member variable, s32ValueSize of wid This patch renames s32ValueSize of struct wid to size. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 6 +- drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/host_interface.c | 208 ++++++++++---------- 3 files changed, 108 insertions(+), 108 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 05a0c1604a34..e51ae3a4439e 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -614,10 +614,10 @@ s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv) } counter = 0; for (counter = 0; counter < count; counter++) { - wids[counter].s32ValueSize = wilc_wlan_cfg_get_val( + wids[counter].size = wilc_wlan_cfg_get_val( wids[counter].id, wids[counter].ps8WidVal, - wids[counter].s32ValueSize); + wids[counter].size); } } else if (mode == SET_CFG) { @@ -626,7 +626,7 @@ s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv) if (!wilc_wlan_cfg_set(!counter, wids[counter].id, wids[counter].ps8WidVal, - wids[counter].s32ValueSize, + wids[counter].size, (counter == count - 1), drv)) { ret = -1; diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 0d3bff78604c..3595a0af6e45 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -73,7 +73,7 @@ typedef enum { struct wid { u16 id; enum WID_TYPE type; - s32 s32ValueSize; + s32 size; s8 *ps8WidVal; }; diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 443e7838ed48..fae96fc8c101 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -579,7 +579,7 @@ static s32 Handle_SetChannel(struct host_if_drv *drvHandler, strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; strWID.ps8WidVal = (char *)&(pstrHostIFSetChan->u8SetChan); - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting channel\n"); /*Sending Cfg*/ @@ -615,7 +615,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, strWID.id = (u16)WID_SET_DRV_HANDLER; strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&(pstrHostIfSetDrvHandler->u32Address); - strWID.s32ValueSize = sizeof(u32); + strWID.size = sizeof(u32); /*Sending Cfg*/ @@ -656,7 +656,7 @@ static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, strWID.id = (u16)WID_SET_OPERATION_MODE; strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&(pstrHostIfSetOperationMode->u32Mode); - strWID.s32ValueSize = sizeof(u32); + strWID.size = sizeof(u32); /*Sending Cfg*/ PRINT_INFO(HOSTINF_DBG, "pstrWFIDrv= %p\n", pstrWFIDrv); @@ -705,7 +705,7 @@ s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; strWID.ps8WidVal = (u8 *)pu8IPAddr; - strWID.s32ValueSize = IP_ALEN; + strWID.size = IP_ALEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -744,7 +744,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(IP_ALEN, GFP_KERNEL); - strWID.s32ValueSize = IP_ALEN; + strWID.size = IP_ALEN; s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -800,7 +800,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, strWID.id = (u16)WID_MAC_ADDR; strWID.type = WID_STR; strWID.ps8WidVal = mac_buf; - strWID.s32ValueSize = ETH_ALEN; + strWID.size = ETH_ALEN; PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.ps8WidVal); /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -835,7 +835,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, strWID.id = (u16)WID_MAC_ADDR; strWID.type = WID_STR; strWID.ps8WidVal = pstrHostIfGetMacAddress->u8MacAddress; - strWID.s32ValueSize = ETH_ALEN; + strWID.size = ETH_ALEN; /*Sending Cfg*/ s32Error = send_config_pkt(GET_CFG, &strWID, 1, @@ -884,7 +884,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_BSS_TYPE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; strWIDList[u8WidCnt].type = WID_CHAR; - strWIDList[u8WidCnt].s32ValueSize = sizeof(char); + strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; } else { PRINT_ER("check value 6 over\n"); @@ -904,7 +904,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_AUTH_TYPE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; strWIDList[u8WidCnt].type = WID_CHAR; - strWIDList[u8WidCnt].s32ValueSize = sizeof(char); + strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; } else { PRINT_ER("Impossible value \n"); @@ -919,7 +919,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_AUTH_TIMEOUT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; } else { PRINT_ER("Range(1 ~ 65535) over\n"); @@ -940,7 +940,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_POWER_MANAGEMENT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; strWIDList[u8WidCnt].type = WID_CHAR; - strWIDList[u8WidCnt].s32ValueSize = sizeof(char); + strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; } else { PRINT_ER("Invalide power mode\n"); @@ -955,7 +955,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_SHORT_RETRY_LIMIT; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; } else { PRINT_ER("Range(1~256) over\n"); @@ -971,7 +971,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.long_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; } else { PRINT_ER("Range(1~256) over\n"); @@ -986,7 +986,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_FRAG_THRESHOLD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; } else { PRINT_ER("Threshold Range fail\n"); @@ -1001,7 +1001,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_RTS_THRESHOLD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; } else { PRINT_ER("Threshold Range fail\n"); @@ -1020,7 +1020,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_PREAMBLE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; strWIDList[u8WidCnt].type = WID_CHAR; - strWIDList[u8WidCnt].s32ValueSize = sizeof(char); + strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.preamble_type = strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; } else { PRINT_ER("Preamle Range(0~2) over\n"); @@ -1034,7 +1034,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_SHORT_SLOT_ALLOWED; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; strWIDList[u8WidCnt].type = WID_CHAR; - strWIDList[u8WidCnt].s32ValueSize = sizeof(char); + strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; } else { PRINT_ER("Short slot(2) over\n"); @@ -1052,7 +1052,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_11N_TXOP_PROT_DISABLE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; strWIDList[u8WidCnt].type = WID_CHAR; - strWIDList[u8WidCnt].s32ValueSize = sizeof(char); + strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; } else { PRINT_ER("TXOP prot disable\n"); @@ -1067,7 +1067,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_BEACON_INTERVAL; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; } else { PRINT_ER("Beacon interval(1~65535) fail\n"); @@ -1082,7 +1082,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_DTIM_PERIOD; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; strWIDList[u8WidCnt].type = WID_CHAR; - strWIDList[u8WidCnt].s32ValueSize = sizeof(char); + strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.dtim_period = strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; } else { PRINT_ER("DTIM range(1~255) fail\n"); @@ -1101,7 +1101,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_SITE_SURVEY; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; strWIDList[u8WidCnt].type = WID_CHAR; - strWIDList[u8WidCnt].s32ValueSize = sizeof(char); + strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; } else { PRINT_ER("Site survey disable\n"); @@ -1116,7 +1116,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_SITE_SURVEY_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; } else { PRINT_ER("Site survey scan time(1~65535) over\n"); @@ -1131,7 +1131,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_ACTIVE_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; } else { PRINT_ER("Active scan time(1~65535) over\n"); @@ -1146,7 +1146,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_PASSIVE_SCAN_TIME; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; } else { PRINT_ER("Passive scan time(1~65535) over\n"); @@ -1171,7 +1171,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].id = WID_CURRENT_TX_RATE; strWIDList[u8WidCnt].ps8WidVal = (s8 *)&curr_tx_rate; strWIDList[u8WidCnt].type = WID_SHORT; - strWIDList[u8WidCnt].s32ValueSize = sizeof(u16); + strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.curr_tx_rate = (u8)curr_tx_rate; } else { PRINT_ER("out of TX rate\n"); @@ -1277,7 +1277,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, - strWIDList[u32WidsCount].s32ValueSize = (s32)(valuesize + 1); + strWIDList[u32WidsCount].size = (s32)(valuesize + 1); u32WidsCount++; } @@ -1289,14 +1289,14 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_PROBE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = pstrHostIFscanAttr->pu8IEs; - strWIDList[u32WidsCount].s32ValueSize = pstrHostIFscanAttr->IEsLen; + strWIDList[u32WidsCount].size = pstrHostIFscanAttr->IEsLen; u32WidsCount++; } /*Scan Type*/ strWIDList[u32WidsCount].id = WID_SCAN_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); + strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrHostIFscanAttr->u8ScanType)); u32WidsCount++; @@ -1314,13 +1314,13 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, } strWIDList[u32WidsCount].ps8WidVal = pstrHostIFscanAttr->pu8ChnlFreqList; - strWIDList[u32WidsCount].s32ValueSize = pstrHostIFscanAttr->u8ChnlListLen; + strWIDList[u32WidsCount].size = pstrHostIFscanAttr->u8ChnlListLen; u32WidsCount++; /*Scan Request*/ strWIDList[u32WidsCount].id = WID_START_SCAN_REQ; strWIDList[u32WidsCount].type = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); + strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrHostIFscanAttr->u8ScanSource)); u32WidsCount++; @@ -1404,7 +1404,7 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEven strWID.id = (u16)WID_ABORT_RUNNING_SCAN; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u8abort_running_scan; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -1499,19 +1499,19 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; strWIDList[u32WidsCount].type = WID_INT; - strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); + strWIDList[u32WidsCount].size = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_RECEIVED_FRAGMENT_COUNT; strWIDList[u32WidsCount].type = WID_INT; - strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); + strWIDList[u32WidsCount].size = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_FAILED_COUNT; strWIDList[u32WidsCount].type = WID_INT; - strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); + strWIDList[u32WidsCount].size = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); u32WidsCount++; @@ -1522,7 +1522,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs; - strWIDList[u32WidsCount].s32ValueSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; + strWIDList[u32WidsCount].size = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { @@ -1535,7 +1535,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, } strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; strWIDList[u32WidsCount].type = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); + strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security)); u32WidsCount++; @@ -1547,7 +1547,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = (u16)WID_AUTH_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); + strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); u32WidsCount++; @@ -1570,11 +1570,11 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].type = WID_STR; /*Sending NoA attributes during connection*/ - strWIDList[u32WidsCount].s32ValueSize = 112; /* 79; */ - strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].s32ValueSize, GFP_KERNEL); + strWIDList[u32WidsCount].size = 112; /* 79; */ + strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].size, GFP_KERNEL); if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { - gu32FlushedJoinReqSize = strWIDList[u32WidsCount].s32ValueSize; + gu32FlushedJoinReqSize = strWIDList[u32WidsCount].size; gu8FlushedJoinReq = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); } if (strWIDList[u32WidsCount].ps8WidVal == NULL) { @@ -1816,12 +1816,12 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].ps8WidVal = gu8FlushedInfoElemAsoc; - strWIDList[u32WidsCount].s32ValueSize = gu32FlushedInfoElemAsocSize; + strWIDList[u32WidsCount].size = gu32FlushedInfoElemAsocSize; u32WidsCount++; strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; strWIDList[u32WidsCount].type = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); + strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(gu8Flushed11iMode)); u32WidsCount++; @@ -1829,13 +1829,13 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) strWIDList[u32WidsCount].id = (u16)WID_AUTH_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); + strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&gu8FlushedAuthType); u32WidsCount++; strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; - strWIDList[u32WidsCount].s32ValueSize = gu32FlushedJoinReqSize; + strWIDList[u32WidsCount].size = gu32FlushedJoinReqSize; strWIDList[u32WidsCount].ps8WidVal = (s8 *)gu8FlushedJoinReq; pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; @@ -1921,7 +1921,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u16DummyReasonCode; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); @@ -2427,19 +2427,19 @@ static int Handle_Key(struct host_if_drv *drvHandler, PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; - strWIDList[0].s32ValueSize = sizeof(char); + strWIDList[0].size = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8mode)); strWIDList[1].id = WID_AUTH_TYPE; strWIDList[1].type = WID_CHAR; - strWIDList[1].s32ValueSize = sizeof(char); + strWIDList[1].size = sizeof(char); strWIDList[1].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type)); strWIDList[2].id = (u16)WID_KEY_ID; strWIDList[2].type = WID_CHAR; strWIDList[2].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); - strWIDList[2].s32ValueSize = sizeof(char); + strWIDList[2].size = sizeof(char); pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen, GFP_KERNEL); @@ -2458,7 +2458,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWIDList[3].id = (u16)WID_WEP_KEY_VALUE; strWIDList[3].type = WID_STR; - strWIDList[3].s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen; + strWIDList[3].size = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen; strWIDList[3].ps8WidVal = (s8 *)pu8keybuf; @@ -2488,7 +2488,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.id = (u16)WID_ADD_WEP_KEY; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; - strWID.s32ValueSize = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; + strWID.size = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -2501,7 +2501,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx; strWID.ps8WidVal = s8idxarray; - strWID.s32ValueSize = 1; + strWID.size = 1; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -2509,7 +2509,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.id = (u16)WID_KEY_ID; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting default key index\n"); @@ -2551,13 +2551,13 @@ static int Handle_Key(struct host_if_drv *drvHandler, /* pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = 0X51; */ strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; - strWIDList[0].s32ValueSize = sizeof(char); + strWIDList[0].size = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); strWIDList[1].id = (u16)WID_ADD_RX_GTK; strWIDList[1].type = WID_STR; strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; - strWIDList[1].s32ValueSize = RX_MIC_KEY_MSG_LEN; + strWIDList[1].size = RX_MIC_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, strWIDList, 2, get_id_from_handler(pstrWFIDrv)); @@ -2603,7 +2603,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.id = (u16)WID_ADD_RX_GTK; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; - strWID.s32ValueSize = RX_MIC_KEY_MSG_LEN; + strWID.size = RX_MIC_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -2654,13 +2654,13 @@ _WPARxGtk_end_case_: strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; - strWIDList[0].s32ValueSize = sizeof(char); + strWIDList[0].size = sizeof(char); strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); strWIDList[1].id = (u16)WID_ADD_PTK; strWIDList[1].type = WID_STR; strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; - strWIDList[1].s32ValueSize = PTK_KEY_MSG_LEN + 1; + strWIDList[1].size = PTK_KEY_MSG_LEN + 1; s32Error = send_config_pkt(SET_CFG, strWIDList, 2, get_id_from_handler(pstrWFIDrv)); @@ -2701,7 +2701,7 @@ _WPARxGtk_end_case_: strWID.id = (u16)WID_ADD_PTK; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; - strWID.s32ValueSize = PTK_KEY_MSG_LEN; + strWID.size = PTK_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -2741,7 +2741,7 @@ _WPAPtk_end_case_: strWID.id = (u16)WID_PMKID_INFO; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8keybuf; - strWID.s32ValueSize = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; + strWID.size = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -2779,7 +2779,7 @@ static void Handle_Disconnect(struct host_if_drv *drvHandler) strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&u16DummyReasonCode; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); @@ -2903,7 +2903,7 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&gu8Chnl; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Getting channel value\n"); @@ -2942,7 +2942,7 @@ static void Handle_GetRssi(struct host_if_drv *drvHandler) strWID.id = (u16)WID_RSSI; strWID.type = WID_CHAR; strWID.ps8WidVal = &gs8Rssi; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); @@ -2971,7 +2971,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) strWID.id = (u16)WID_LINKSPEED; strWID.type = WID_CHAR; strWID.ps8WidVal = &gs8lnkspd; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); @@ -2994,31 +2994,31 @@ s32 Handle_GetStatistics(struct host_if_drv *drvHandler, tstrStatistics *pstrSta strWIDList[u32WidsCount].id = WID_LINKSPEED; strWIDList[u32WidsCount].type = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); + strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u8LinkSpeed)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_RSSI; strWIDList[u32WidsCount].type = WID_CHAR; - strWIDList[u32WidsCount].s32ValueSize = sizeof(char); + strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->s8RSSI)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; strWIDList[u32WidsCount].type = WID_INT; - strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); + strWIDList[u32WidsCount].size = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxCount)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_RECEIVED_FRAGMENT_COUNT; strWIDList[u32WidsCount].type = WID_INT; - strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); + strWIDList[u32WidsCount].size = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32RxCount)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_FAILED_COUNT; strWIDList[u32WidsCount].type = WID_INT; - strWIDList[u32WidsCount].s32ValueSize = sizeof(u32); + strWIDList[u32WidsCount].size = sizeof(u32); strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxFailureCount)); u32WidsCount++; @@ -3056,8 +3056,8 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, strWID.id = (u16)WID_SET_STA_MAC_INACTIVE_TIME; strWID.type = WID_STR; - strWID.s32ValueSize = ETH_ALEN; - strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); + strWID.size = ETH_ALEN; + strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); stamac = strWID.ps8WidVal; @@ -3079,7 +3079,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, strWID.id = (u16)WID_GET_INACTIVE_TIME; strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)&gu32InactiveTime; - strWID.s32ValueSize = sizeof(u32); + strWID.size = sizeof(u32); s32Error = send_config_pkt(GET_CFG, &strWID, 1, @@ -3123,8 +3123,8 @@ static void Handle_AddBeacon(struct host_if_drv *drvHandler, strWID.id = (u16)WID_ADD_BEACON; strWID.type = WID_BIN; - strWID.s32ValueSize = pstrSetBeaconParam->u32HeadLen + pstrSetBeaconParam->u32TailLen + 16; - strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); + strWID.size = pstrSetBeaconParam->u32HeadLen + pstrSetBeaconParam->u32TailLen + 16; + strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); if (strWID.ps8WidVal == NULL) goto ERRORHANDLER; @@ -3189,7 +3189,7 @@ static void Handle_DelBeacon(struct host_if_drv *drvHandler) strWID.id = (u16)WID_DEL_BEACON; strWID.type = WID_CHAR; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); strWID.ps8WidVal = &gu8DelBcn; if (strWID.ps8WidVal == NULL) @@ -3283,9 +3283,9 @@ static void Handle_AddStation(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling add station\n"); strWID.id = (u16)WID_ADD_STA; strWID.type = WID_BIN; - strWID.s32ValueSize = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; + strWID.size = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; - strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); + strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); if (strWID.ps8WidVal == NULL) goto ERRORHANDLER; @@ -3325,7 +3325,7 @@ static void Handle_DelAllSta(struct host_if_drv *drvHandler, strWID.id = (u16)WID_DEL_ALL_STA; strWID.type = WID_STR; - strWID.s32ValueSize = (pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1; + strWID.size = (pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1; PRINT_D(HOSTINF_DBG, "Handling delete station\n"); @@ -3378,11 +3378,11 @@ static void Handle_DelStation(struct host_if_drv *drvHandler, strWID.id = (u16)WID_REMOVE_STA; strWID.type = WID_BIN; - strWID.s32ValueSize = ETH_ALEN; + strWID.size = ETH_ALEN; PRINT_D(HOSTINF_DBG, "Handling delete station\n"); - strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); + strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); if (strWID.ps8WidVal == NULL) goto ERRORHANDLER; @@ -3420,10 +3420,10 @@ static void Handle_EditStation(struct host_if_drv *drvHandler, strWID.id = (u16)WID_EDIT_STA; strWID.type = WID_BIN; - strWID.s32ValueSize = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; + strWID.size = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; PRINT_D(HOSTINF_DBG, "Handling edit station\n"); - strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); + strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); if (strWID.ps8WidVal == NULL) goto ERRORHANDLER; @@ -3493,8 +3493,8 @@ static int Handle_RemainOnChan(struct host_if_drv *drvHandler, u8remain_on_chan_flag = true; strWID.id = (u16)WID_REMAIN_ON_CHAN; strWID.type = WID_STR; - strWID.s32ValueSize = 2; - strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); + strWID.size = 2; + strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); if (strWID.ps8WidVal == NULL) { s32Error = -ENOMEM; @@ -3561,7 +3561,7 @@ static int Handle_RegisterFrame(struct host_if_drv *drvHandler, memcpy(pu8CurrByte, &(pstrHostIfRegisterFrame->u16FrameType), sizeof(u16)); - strWID.s32ValueSize = sizeof(u16) + 2; + strWID.size = sizeof(u16) + 2; /*Sending Cfg*/ @@ -3602,8 +3602,8 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, u8remain_on_chan_flag = false; strWID.id = (u16)WID_REMAIN_ON_CHAN; strWID.type = WID_STR; - strWID.s32ValueSize = 2; - strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); + strWID.size = 2; + strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); if (strWID.ps8WidVal == NULL) PRINT_ER("Failed to allocate memory\n"); @@ -3688,7 +3688,7 @@ static void Handle_PowerManagement(struct host_if_drv *drvHandler, s8PowerMode = NO_POWERSAVE; PRINT_D(HOSTINF_DBG, "Handling power mgmt to %d\n", s8PowerMode); strWID.ps8WidVal = &s8PowerMode; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Handling Power Management\n"); @@ -3719,8 +3719,8 @@ static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, strWID.id = (u16)WID_SETUP_MULTICAST_FILTER; strWID.type = WID_BIN; - strWID.s32ValueSize = sizeof(struct set_multicast) + ((strHostIfSetMulti->u32count) * ETH_ALEN); - strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); + strWID.size = sizeof(struct set_multicast) + ((strHostIfSetMulti->u32count) * ETH_ALEN); + strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); if (strWID.ps8WidVal == NULL) goto ERRORHANDLER; @@ -3779,7 +3779,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, strWID.id = (u16)WID_11E_P_ACTION_REQ; strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); - strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; + strWID.size = BLOCK_ACK_REQ_SIZE; ptr = strWID.ps8WidVal; /* *ptr++ = 0x14; */ *ptr++ = 0x14; @@ -3812,7 +3812,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, strWID.id = (u16)WID_11E_P_ACTION_REQ; strWID.type = WID_STR; - strWID.s32ValueSize = 15; + strWID.size = 15; ptr = strWID.ps8WidVal; /* *ptr++ = 0x14; */ *ptr++ = 15; @@ -3865,7 +3865,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, strWID.id = (u16)WID_DEL_ALL_RX_BA; strWID.type = WID_STR; strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); - strWID.s32ValueSize = BLOCK_ACK_REQ_SIZE; + strWID.size = BLOCK_ACK_REQ_SIZE; ptr = strWID.ps8WidVal; *ptr++ = 0x14; *ptr++ = 0x3; @@ -4164,7 +4164,7 @@ s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) strWID.id = (u16)WID_REMOVE_KEY; strWID.type = WID_STR; strWID.ps8WidVal = (s8 *)pu8StaAddress; - strWID.s32ValueSize = 6; + strWID.size = 6; return 0; } @@ -4680,7 +4680,7 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, strWID.id = (u16)WID_PMKID_INFO; strWID.type = WID_STR; - strWID.s32ValueSize = u32PmkidInfoLen; + strWID.size = u32PmkidInfoLen; strWID.ps8WidVal = pu8PmkidInfoArray; return 0; @@ -4710,7 +4710,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8Pas strWID.id = (u16)WID_11I_PSK; strWID.type = WID_STR; strWID.ps8WidVal = pu8PassPhrase; - strWID.s32ValueSize = u8Psklength; + strWID.size = u8Psklength; } return 0; @@ -4802,7 +4802,7 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, strWID.id = (u16)WID_11I_PSK; strWID.type = WID_STR; - strWID.s32ValueSize = u8Psklength; + strWID.size = u8Psklength; strWID.ps8WidVal = pu8PassPhrase; return 0; @@ -4830,7 +4830,7 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) strWID.id = (u16)WID_START_SCAN_REQ; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&scanSource; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); return 0; } @@ -4858,7 +4858,7 @@ s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) strWID.id = (u16)WID_START_SCAN_REQ; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)pu8ScanSource; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); return 0; } @@ -5055,7 +5055,7 @@ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; strWID.ps8WidVal = (s8 *)&assoc_id; - strWID.s32ValueSize = sizeof(char); + strWID.size = sizeof(char); return 0; } @@ -5094,7 +5094,7 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo strWID.id = (u16)WID_ASSOC_REQ_INFO; strWID.type = WID_STR; strWID.ps8WidVal = pu8AssocReqInfo; - strWID.s32ValueSize = u32AssocReqInfoLen; + strWID.size = u32AssocReqInfoLen; return 0; } @@ -5125,7 +5125,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf strWID.id = (u16)WID_ASSOC_RES_INFO; strWID.type = WID_STR; strWID.ps8WidVal = pu8AssocRespInfo; - strWID.s32ValueSize = u32MaxAssocRespInfoLen; + strWID.size = u32MaxAssocRespInfoLen; /* Sending Configuration packet */ @@ -5136,7 +5136,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf PRINT_ER("Failed to send association response config packet\n"); return -EINVAL; } else { - *pu32RcvdAssocRespInfoLen = strWID.s32ValueSize; + *pu32RcvdAssocRespInfoLen = strWID.size; } return s32Error; @@ -5165,7 +5165,7 @@ s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel strWID.id = (u16)WID_RX_POWER_LEVEL; strWID.type = WID_STR; strWID.ps8WidVal = pu8RxPowerLevel; - strWID.s32ValueSize = u32RxPowerLevelLen; + strWID.size = u32RxPowerLevelLen; return 0; } @@ -5391,7 +5391,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) strWID.id = (u16)WID_MEMORY_ADDRESS; strWID.type = WID_INT; strWID.ps8WidVal = (s8 *)pu32TestMemAddr; - strWID.s32ValueSize = sizeof(u32); + strWID.size = sizeof(u32); s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); From 900bb4a6523e7fa0db8aee0e84036a6de2da23fd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:46 +0900 Subject: [PATCH 1439/2431] staging: wilc1000: rename the member variable, ps8WidVal of wid This patch renames ps8WidVal of struct wid to val. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 4 +- drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/host_interface.c | 276 ++++++++++---------- 3 files changed, 141 insertions(+), 141 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index e51ae3a4439e..39e463c6f9a8 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -616,7 +616,7 @@ s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv) for (counter = 0; counter < count; counter++) { wids[counter].size = wilc_wlan_cfg_get_val( wids[counter].id, - wids[counter].ps8WidVal, + wids[counter].val, wids[counter].size); } @@ -625,7 +625,7 @@ s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv) PRINT_D(CORECONFIG_DBG, "Sending config SET PACKET WID:%x\n", wids[counter].id); if (!wilc_wlan_cfg_set(!counter, wids[counter].id, - wids[counter].ps8WidVal, + wids[counter].val, wids[counter].size, (counter == count - 1), drv)) { diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 3595a0af6e45..6294d929a800 100644 --- a/drivers/staging/wilc1000/coreconfigurator.h +++ b/drivers/staging/wilc1000/coreconfigurator.h @@ -74,7 +74,7 @@ struct wid { u16 id; enum WID_TYPE type; s32 size; - s8 *ps8WidVal; + s8 *val; }; typedef struct { diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fae96fc8c101..5ee8c3a287ea 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -578,7 +578,7 @@ static s32 Handle_SetChannel(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; - strWID.ps8WidVal = (char *)&(pstrHostIFSetChan->u8SetChan); + strWID.val = (char *)&(pstrHostIFSetChan->u8SetChan); strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting channel\n"); @@ -614,7 +614,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.id = (u16)WID_SET_DRV_HANDLER; strWID.type = WID_INT; - strWID.ps8WidVal = (s8 *)&(pstrHostIfSetDrvHandler->u32Address); + strWID.val = (s8 *)&(pstrHostIfSetDrvHandler->u32Address); strWID.size = sizeof(u32); /*Sending Cfg*/ @@ -655,7 +655,7 @@ static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.id = (u16)WID_SET_OPERATION_MODE; strWID.type = WID_INT; - strWID.ps8WidVal = (s8 *)&(pstrHostIfSetOperationMode->u32Mode); + strWID.val = (s8 *)&(pstrHostIfSetOperationMode->u32Mode); strWID.size = sizeof(u32); /*Sending Cfg*/ @@ -704,7 +704,7 @@ s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) /*prepare configuration packet*/ strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; - strWID.ps8WidVal = (u8 *)pu8IPAddr; + strWID.val = (u8 *)pu8IPAddr; strWID.size = IP_ALEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -743,18 +743,18 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) /*prepare configuration packet*/ strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; - strWID.ps8WidVal = kmalloc(IP_ALEN, GFP_KERNEL); + strWID.val = kmalloc(IP_ALEN, GFP_KERNEL); strWID.size = IP_ALEN; s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); - PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.ps8WidVal); + PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.val); - memcpy(gs8GetIP[idx], strWID.ps8WidVal, IP_ALEN); + memcpy(gs8GetIP[idx], strWID.val, IP_ALEN); /*get the value by searching the local copy*/ - kfree(strWID.ps8WidVal); + kfree(strWID.val); if (memcmp(gs8GetIP[idx], gs8SetIP[idx], IP_ALEN) != 0) host_int_setup_ipaddress(pstrWFIDrv, gs8SetIP[idx], idx); @@ -799,9 +799,9 @@ static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.id = (u16)WID_MAC_ADDR; strWID.type = WID_STR; - strWID.ps8WidVal = mac_buf; + strWID.val = mac_buf; strWID.size = ETH_ALEN; - PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.ps8WidVal); + PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.val); /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); @@ -834,7 +834,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.id = (u16)WID_MAC_ADDR; strWID.type = WID_STR; - strWID.ps8WidVal = pstrHostIfGetMacAddress->u8MacAddress; + strWID.val = pstrHostIfGetMacAddress->u8MacAddress; strWID.size = ETH_ALEN; /*Sending Cfg*/ @@ -882,7 +882,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* validate input then copy>> need to check value 4 and 5 */ if (strHostIFCfgParamAttr->pstrCfgParamVal.bss_type < 6) { strWIDList[u8WidCnt].id = WID_BSS_TYPE; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; @@ -902,7 +902,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /*validate Possible values*/ if ((strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 1 || (strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 2 || (strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 5) { strWIDList[u8WidCnt].id = WID_AUTH_TYPE; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; @@ -917,7 +917,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout < 65536) { strWIDList[u8WidCnt].id = WID_AUTH_TIMEOUT; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; @@ -938,7 +938,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /*----------------------------------------------------------*/ if (strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode < 5) { strWIDList[u8WidCnt].id = WID_POWER_MANAGEMENT; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; @@ -953,7 +953,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range from 1 to 256 */ if ((strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit > 0) && (strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit < 256)) { strWIDList[u8WidCnt].id = WID_SHORT_RETRY_LIMIT; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; @@ -968,7 +968,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range from 1 to 256 */ if ((strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit > 0) && (strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit < 256)) { strWIDList[u8WidCnt].id = WID_LONG_RETRY_LIMIT; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); @@ -984,7 +984,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold > 255 && strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold < 7937) { strWIDList[u8WidCnt].id = WID_FRAG_THRESHOLD; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; @@ -999,7 +999,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range 256 to 65535 */ if (strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold > 255 && strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold < 65536) { strWIDList[u8WidCnt].id = WID_RTS_THRESHOLD; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; @@ -1018,7 +1018,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /*------------------------------------------------------*/ if (strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type < 3) { strWIDList[u8WidCnt].id = WID_PREAMBLE; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.preamble_type = strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; @@ -1032,7 +1032,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & SHORT_SLOT_ALLOWED) { if (strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed < 2) { strWIDList[u8WidCnt].id = WID_SHORT_SLOT_ALLOWED; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; @@ -1050,7 +1050,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /*Input Values: 1 for enable and 0 for disable. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled < 2) { strWIDList[u8WidCnt].id = WID_11N_TXOP_PROT_DISABLE; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; @@ -1065,7 +1065,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval < 65536) { strWIDList[u8WidCnt].id = WID_BEACON_INTERVAL; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; @@ -1080,7 +1080,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range is 1 to 255. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period < 256) { strWIDList[u8WidCnt].id = WID_DTIM_PERIOD; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.dtim_period = strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; @@ -1099,7 +1099,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /*----------------------------------------------------------------------*/ if (strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled < 3) { strWIDList[u8WidCnt].id = WID_SITE_SURVEY; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); pstrWFIDrv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; @@ -1114,7 +1114,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_SITE_SURVEY_SCAN_TIME; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; @@ -1129,7 +1129,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_ACTIVE_SCAN_TIME; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; @@ -1144,7 +1144,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_PASSIVE_SCAN_TIME; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; @@ -1169,7 +1169,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, || curr_tx_rate == MBPS_18 || curr_tx_rate == MBPS_24 || curr_tx_rate == MBPS_36 || curr_tx_rate == MBPS_48 || curr_tx_rate == MBPS_54) { strWIDList[u8WidCnt].id = WID_CURRENT_TX_RATE; - strWIDList[u8WidCnt].ps8WidVal = (s8 *)&curr_tx_rate; + strWIDList[u8WidCnt].val = (s8 *)&curr_tx_rate; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); pstrWFIDrv->strCfgValues.curr_tx_rate = (u8)curr_tx_rate; @@ -1261,9 +1261,9 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, for (i = 0; i < pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum; i++) valuesize += ((pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo[i].u8ssidlen) + 1); pu8HdnNtwrksWidVal = kmalloc(valuesize + 1, GFP_KERNEL); - strWIDList[u32WidsCount].ps8WidVal = pu8HdnNtwrksWidVal; - if (strWIDList[u32WidsCount].ps8WidVal != NULL) { - pu8Buffer = strWIDList[u32WidsCount].ps8WidVal; + strWIDList[u32WidsCount].val = pu8HdnNtwrksWidVal; + if (strWIDList[u32WidsCount].val != NULL) { + pu8Buffer = strWIDList[u32WidsCount].val; *pu8Buffer++ = pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum; @@ -1288,7 +1288,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, /* IEs to be inserted in Probe Request */ strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_PROBE; strWIDList[u32WidsCount].type = WID_BIN_DATA; - strWIDList[u32WidsCount].ps8WidVal = pstrHostIFscanAttr->pu8IEs; + strWIDList[u32WidsCount].val = pstrHostIFscanAttr->pu8IEs; strWIDList[u32WidsCount].size = pstrHostIFscanAttr->IEsLen; u32WidsCount++; } @@ -1297,7 +1297,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = WID_SCAN_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrHostIFscanAttr->u8ScanType)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrHostIFscanAttr->u8ScanType)); u32WidsCount++; /*list of channels to be scanned*/ @@ -1313,7 +1313,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, } } - strWIDList[u32WidsCount].ps8WidVal = pstrHostIFscanAttr->pu8ChnlFreqList; + strWIDList[u32WidsCount].val = pstrHostIFscanAttr->pu8ChnlFreqList; strWIDList[u32WidsCount].size = pstrHostIFscanAttr->u8ChnlListLen; u32WidsCount++; @@ -1321,7 +1321,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = WID_START_SCAN_REQ; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrHostIFscanAttr->u8ScanSource)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrHostIFscanAttr->u8ScanSource)); u32WidsCount++; /*keep the state as is , no need to change it*/ @@ -1403,7 +1403,7 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEven u8abort_running_scan = 1; strWID.id = (u16)WID_ABORT_RUNNING_SCAN; strWID.type = WID_CHAR; - strWID.ps8WidVal = (s8 *)&u8abort_running_scan; + strWID.val = (s8 *)&u8abort_running_scan; strWID.size = sizeof(char); /*Sending Cfg*/ @@ -1500,19 +1500,19 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].size = sizeof(u32); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); + strWIDList[u32WidsCount].val = (s8 *)(&(dummyval)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_RECEIVED_FRAGMENT_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].size = sizeof(u32); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); + strWIDList[u32WidsCount].val = (s8 *)(&(dummyval)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_FAILED_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].size = sizeof(u32); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(dummyval)); + strWIDList[u32WidsCount].val = (s8 *)(&(dummyval)); u32WidsCount++; /* if((gWFiDrvHandle->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) && */ @@ -1521,7 +1521,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, /* IEs to be inserted in Association Request */ strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; - strWIDList[u32WidsCount].ps8WidVal = pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs; + strWIDList[u32WidsCount].val = pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs; strWIDList[u32WidsCount].size = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; u32WidsCount++; @@ -1536,7 +1536,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security)); u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) @@ -1548,7 +1548,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, strWIDList[u32WidsCount].id = (u16)WID_AUTH_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); + strWIDList[u32WidsCount].val = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) @@ -1571,18 +1571,18 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, /*Sending NoA attributes during connection*/ strWIDList[u32WidsCount].size = 112; /* 79; */ - strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].size, GFP_KERNEL); + strWIDList[u32WidsCount].val = kmalloc(strWIDList[u32WidsCount].size, GFP_KERNEL); if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { gu32FlushedJoinReqSize = strWIDList[u32WidsCount].size; gu8FlushedJoinReq = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); } - if (strWIDList[u32WidsCount].ps8WidVal == NULL) { + if (strWIDList[u32WidsCount].val == NULL) { s32Error = -EFAULT; goto ERRORHANDLER; } - pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; + pu8CurrByte = strWIDList[u32WidsCount].val; if (pstrHostIFconnectAttr->pu8ssid != NULL) { @@ -1694,7 +1694,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "NOA not present\n"); /* keep the buffer at the start of the allocated pointer to use it with the free*/ - pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; + pu8CurrByte = strWIDList[u32WidsCount].val; u32WidsCount++; /* A temporary workaround to avoid handling the misleading MAC_DISCONNECTED raised from the @@ -1815,14 +1815,14 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) /* IEs to be inserted in Association Request */ strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; - strWIDList[u32WidsCount].ps8WidVal = gu8FlushedInfoElemAsoc; + strWIDList[u32WidsCount].val = gu8FlushedInfoElemAsoc; strWIDList[u32WidsCount].size = gu32FlushedInfoElemAsocSize; u32WidsCount++; strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(gu8Flushed11iMode)); + strWIDList[u32WidsCount].val = (s8 *)(&(gu8Flushed11iMode)); u32WidsCount++; @@ -1830,14 +1830,14 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) strWIDList[u32WidsCount].id = (u16)WID_AUTH_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&gu8FlushedAuthType); + strWIDList[u32WidsCount].val = (s8 *)(&gu8FlushedAuthType); u32WidsCount++; strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; strWIDList[u32WidsCount].size = gu32FlushedJoinReqSize; - strWIDList[u32WidsCount].ps8WidVal = (s8 *)gu8FlushedJoinReq; - pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; + strWIDList[u32WidsCount].val = (s8 *)gu8FlushedJoinReq; + pu8CurrByte = strWIDList[u32WidsCount].val; pu8CurrByte += FLUSHED_BYTE_POS; *(pu8CurrByte) = FLUSHED_JOIN_REQ; @@ -1920,7 +1920,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) * WID_DISCONNECT} */ strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; - strWID.ps8WidVal = (s8 *)&u16DummyReasonCode; + strWID.val = (s8 *)&u16DummyReasonCode; strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); @@ -2428,17 +2428,17 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8mode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8mode)); strWIDList[1].id = WID_AUTH_TYPE; strWIDList[1].type = WID_CHAR; strWIDList[1].size = sizeof(char); - strWIDList[1].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type)); + strWIDList[1].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type)); strWIDList[2].id = (u16)WID_KEY_ID; strWIDList[2].type = WID_CHAR; - strWIDList[2].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); + strWIDList[2].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); strWIDList[2].size = sizeof(char); @@ -2459,7 +2459,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWIDList[3].id = (u16)WID_WEP_KEY_VALUE; strWIDList[3].type = WID_STR; strWIDList[3].size = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen; - strWIDList[3].ps8WidVal = (s8 *)pu8keybuf; + strWIDList[3].val = (s8 *)pu8keybuf; s32Error = send_config_pkt(SET_CFG, strWIDList, 4, @@ -2487,7 +2487,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.id = (u16)WID_ADD_WEP_KEY; strWID.type = WID_STR; - strWID.ps8WidVal = (s8 *)pu8keybuf; + strWID.val = (s8 *)pu8keybuf; strWID.size = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -2500,7 +2500,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.type = WID_STR; s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx; - strWID.ps8WidVal = s8idxarray; + strWID.val = s8idxarray; strWID.size = 1; s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -2508,7 +2508,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, } else { strWID.id = (u16)WID_KEY_ID; strWID.type = WID_CHAR; - strWID.ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); + strWID.val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting default key index\n"); @@ -2552,11 +2552,11 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); strWIDList[1].id = (u16)WID_ADD_RX_GTK; strWIDList[1].type = WID_STR; - strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; + strWIDList[1].val = (s8 *)pu8keybuf; strWIDList[1].size = RX_MIC_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, strWIDList, 2, @@ -2602,7 +2602,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.id = (u16)WID_ADD_RX_GTK; strWID.type = WID_STR; - strWID.ps8WidVal = (s8 *)pu8keybuf; + strWID.val = (s8 *)pu8keybuf; strWID.size = RX_MIC_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -2655,11 +2655,11 @@ _WPARxGtk_end_case_: strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].ps8WidVal = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); strWIDList[1].id = (u16)WID_ADD_PTK; strWIDList[1].type = WID_STR; - strWIDList[1].ps8WidVal = (s8 *)pu8keybuf; + strWIDList[1].val = (s8 *)pu8keybuf; strWIDList[1].size = PTK_KEY_MSG_LEN + 1; s32Error = send_config_pkt(SET_CFG, strWIDList, 2, @@ -2700,7 +2700,7 @@ _WPARxGtk_end_case_: strWID.id = (u16)WID_ADD_PTK; strWID.type = WID_STR; - strWID.ps8WidVal = (s8 *)pu8keybuf; + strWID.val = (s8 *)pu8keybuf; strWID.size = PTK_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -2740,7 +2740,7 @@ _WPAPtk_end_case_: strWID.id = (u16)WID_PMKID_INFO; strWID.type = WID_STR; - strWID.ps8WidVal = (s8 *)pu8keybuf; + strWID.val = (s8 *)pu8keybuf; strWID.size = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -2778,7 +2778,7 @@ static void Handle_Disconnect(struct host_if_drv *drvHandler) strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; - strWID.ps8WidVal = (s8 *)&u16DummyReasonCode; + strWID.val = (s8 *)&u16DummyReasonCode; strWID.size = sizeof(char); @@ -2902,7 +2902,7 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; - strWID.ps8WidVal = (s8 *)&gu8Chnl; + strWID.val = (s8 *)&gu8Chnl; strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Getting channel value\n"); @@ -2941,7 +2941,7 @@ static void Handle_GetRssi(struct host_if_drv *drvHandler) strWID.id = (u16)WID_RSSI; strWID.type = WID_CHAR; - strWID.ps8WidVal = &gs8Rssi; + strWID.val = &gs8Rssi; strWID.size = sizeof(char); /*Sending Cfg*/ @@ -2970,7 +2970,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) strWID.id = (u16)WID_LINKSPEED; strWID.type = WID_CHAR; - strWID.ps8WidVal = &gs8lnkspd; + strWID.val = &gs8lnkspd; strWID.size = sizeof(char); /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); @@ -2995,31 +2995,31 @@ s32 Handle_GetStatistics(struct host_if_drv *drvHandler, tstrStatistics *pstrSta strWIDList[u32WidsCount].id = WID_LINKSPEED; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u8LinkSpeed)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrStatistics->u8LinkSpeed)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_RSSI; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->s8RSSI)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrStatistics->s8RSSI)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].size = sizeof(u32); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxCount)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrStatistics->u32TxCount)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_RECEIVED_FRAGMENT_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].size = sizeof(u32); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32RxCount)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrStatistics->u32RxCount)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_FAILED_COUNT; strWIDList[u32WidsCount].type = WID_INT; strWIDList[u32WidsCount].size = sizeof(u32); - strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrStatistics->u32TxFailureCount)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrStatistics->u32TxFailureCount)); u32WidsCount++; s32Error = send_config_pkt(GET_CFG, strWIDList, u32WidsCount, @@ -3057,10 +3057,10 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, strWID.id = (u16)WID_SET_STA_MAC_INACTIVE_TIME; strWID.type = WID_STR; strWID.size = ETH_ALEN; - strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); + strWID.val = kmalloc(strWID.size, GFP_KERNEL); - stamac = strWID.ps8WidVal; + stamac = strWID.val; memcpy(stamac, strHostIfStaInactiveT->mac, ETH_ALEN); @@ -3078,7 +3078,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, strWID.id = (u16)WID_GET_INACTIVE_TIME; strWID.type = WID_INT; - strWID.ps8WidVal = (s8 *)&gu32InactiveTime; + strWID.val = (s8 *)&gu32InactiveTime; strWID.size = sizeof(u32); @@ -3124,11 +3124,11 @@ static void Handle_AddBeacon(struct host_if_drv *drvHandler, strWID.id = (u16)WID_ADD_BEACON; strWID.type = WID_BIN; strWID.size = pstrSetBeaconParam->u32HeadLen + pstrSetBeaconParam->u32TailLen + 16; - strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) + strWID.val = kmalloc(strWID.size, GFP_KERNEL); + if (strWID.val == NULL) goto ERRORHANDLER; - pu8CurrByte = strWID.ps8WidVal; + pu8CurrByte = strWID.val; *pu8CurrByte++ = (pstrSetBeaconParam->u32Interval & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->u32Interval >> 8) & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->u32Interval >> 16) & 0xFF); @@ -3165,7 +3165,7 @@ static void Handle_AddBeacon(struct host_if_drv *drvHandler, PRINT_ER("Failed to send add beacon config packet\n"); ERRORHANDLER: - kfree(strWID.ps8WidVal); + kfree(strWID.val); kfree(pstrSetBeaconParam->pu8Head); kfree(pstrSetBeaconParam->pu8Tail); } @@ -3190,12 +3190,12 @@ static void Handle_DelBeacon(struct host_if_drv *drvHandler) strWID.id = (u16)WID_DEL_BEACON; strWID.type = WID_CHAR; strWID.size = sizeof(char); - strWID.ps8WidVal = &gu8DelBcn; + strWID.val = &gu8DelBcn; - if (strWID.ps8WidVal == NULL) + if (strWID.val == NULL) return; - pu8CurrByte = strWID.ps8WidVal; + pu8CurrByte = strWID.val; PRINT_D(HOSTINF_DBG, "Deleting BEACON\n"); /* TODO: build del beacon message*/ @@ -3285,11 +3285,11 @@ static void Handle_AddStation(struct host_if_drv *drvHandler, strWID.type = WID_BIN; strWID.size = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; - strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) + strWID.val = kmalloc(strWID.size, GFP_KERNEL); + if (strWID.val == NULL) goto ERRORHANDLER; - pu8CurrByte = strWID.ps8WidVal; + pu8CurrByte = strWID.val; pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); /*Sending Cfg*/ @@ -3300,7 +3300,7 @@ static void Handle_AddStation(struct host_if_drv *drvHandler, ERRORHANDLER: kfree(pstrStationParam->pu8Rates); - kfree(strWID.ps8WidVal); + kfree(strWID.val); } /** @@ -3329,11 +3329,11 @@ static void Handle_DelAllSta(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling delete station\n"); - strWID.ps8WidVal = kmalloc((pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) + strWID.val = kmalloc((pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1, GFP_KERNEL); + if (strWID.val == NULL) goto ERRORHANDLER; - pu8CurrByte = strWID.ps8WidVal; + pu8CurrByte = strWID.val; *(pu8CurrByte++) = pstrDelAllStaParam->u8Num_AssocSta; @@ -3353,7 +3353,7 @@ static void Handle_DelAllSta(struct host_if_drv *drvHandler, PRINT_ER("Failed to send add station config packet\n"); ERRORHANDLER: - kfree(strWID.ps8WidVal); + kfree(strWID.val); up(&hWaitResponse); } @@ -3382,11 +3382,11 @@ static void Handle_DelStation(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Handling delete station\n"); - strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) + strWID.val = kmalloc(strWID.size, GFP_KERNEL); + if (strWID.val == NULL) goto ERRORHANDLER; - pu8CurrByte = strWID.ps8WidVal; + pu8CurrByte = strWID.val; memcpy(pu8CurrByte, pstrDelStaParam->au8MacAddr, ETH_ALEN); @@ -3397,7 +3397,7 @@ static void Handle_DelStation(struct host_if_drv *drvHandler, PRINT_ER("Failed to send add station config packet\n"); ERRORHANDLER: - kfree(strWID.ps8WidVal); + kfree(strWID.val); } @@ -3423,11 +3423,11 @@ static void Handle_EditStation(struct host_if_drv *drvHandler, strWID.size = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; PRINT_D(HOSTINF_DBG, "Handling edit station\n"); - strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) + strWID.val = kmalloc(strWID.size, GFP_KERNEL); + if (strWID.val == NULL) goto ERRORHANDLER; - pu8CurrByte = strWID.ps8WidVal; + pu8CurrByte = strWID.val; pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); /*Sending Cfg*/ @@ -3438,7 +3438,7 @@ static void Handle_EditStation(struct host_if_drv *drvHandler, ERRORHANDLER: kfree(pstrStationParam->pu8Rates); - kfree(strWID.ps8WidVal); + kfree(strWID.val); } /** @@ -3494,15 +3494,15 @@ static int Handle_RemainOnChan(struct host_if_drv *drvHandler, strWID.id = (u16)WID_REMAIN_ON_CHAN; strWID.type = WID_STR; strWID.size = 2; - strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); + strWID.val = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) { + if (strWID.val == NULL) { s32Error = -ENOMEM; goto ERRORHANDLER; } - strWID.ps8WidVal[0] = u8remain_on_chan_flag; - strWID.ps8WidVal[1] = (s8)pstrHostIfRemainOnChan->u16Channel; + strWID.val[0] = u8remain_on_chan_flag; + strWID.val[1] = (s8)pstrHostIfRemainOnChan->u16Channel; /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -3550,11 +3550,11 @@ static int Handle_RegisterFrame(struct host_if_drv *drvHandler, /*prepare configuration packet*/ strWID.id = (u16)WID_REGISTER_FRAME; strWID.type = WID_STR; - strWID.ps8WidVal = kmalloc(sizeof(u16) + 2, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) + strWID.val = kmalloc(sizeof(u16) + 2, GFP_KERNEL); + if (strWID.val == NULL) return -ENOMEM; - pu8CurrByte = strWID.ps8WidVal; + pu8CurrByte = strWID.val; *pu8CurrByte++ = pstrHostIfRegisterFrame->bReg; *pu8CurrByte++ = pstrHostIfRegisterFrame->u8Regid; @@ -3603,13 +3603,13 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, strWID.id = (u16)WID_REMAIN_ON_CHAN; strWID.type = WID_STR; strWID.size = 2; - strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); + strWID.val = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) + if (strWID.val == NULL) PRINT_ER("Failed to allocate memory\n"); - strWID.ps8WidVal[0] = u8remain_on_chan_flag; - strWID.ps8WidVal[1] = FALSE_FRMWR_CHANNEL; + strWID.val[0] = u8remain_on_chan_flag; + strWID.val[1] = FALSE_FRMWR_CHANNEL; /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -3687,7 +3687,7 @@ static void Handle_PowerManagement(struct host_if_drv *drvHandler, else s8PowerMode = NO_POWERSAVE; PRINT_D(HOSTINF_DBG, "Handling power mgmt to %d\n", s8PowerMode); - strWID.ps8WidVal = &s8PowerMode; + strWID.val = &s8PowerMode; strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Handling Power Management\n"); @@ -3720,11 +3720,11 @@ static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, strWID.id = (u16)WID_SETUP_MULTICAST_FILTER; strWID.type = WID_BIN; strWID.size = sizeof(struct set_multicast) + ((strHostIfSetMulti->u32count) * ETH_ALEN); - strWID.ps8WidVal = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) + strWID.val = kmalloc(strWID.size, GFP_KERNEL); + if (strWID.val == NULL) goto ERRORHANDLER; - pu8CurrByte = strWID.ps8WidVal; + pu8CurrByte = strWID.val; *pu8CurrByte++ = (strHostIfSetMulti->bIsEnabled & 0xFF); *pu8CurrByte++ = ((strHostIfSetMulti->bIsEnabled >> 8) & 0xFF); *pu8CurrByte++ = ((strHostIfSetMulti->bIsEnabled >> 16) & 0xFF); @@ -3745,7 +3745,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, PRINT_ER("Failed to send setup multicast config packet\n"); ERRORHANDLER: - kfree(strWID.ps8WidVal); + kfree(strWID.val); } @@ -3778,9 +3778,9 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, strWID.id = (u16)WID_11E_P_ACTION_REQ; strWID.type = WID_STR; - strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); + strWID.val = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.size = BLOCK_ACK_REQ_SIZE; - ptr = strWID.ps8WidVal; + ptr = strWID.val; /* *ptr++ = 0x14; */ *ptr++ = 0x14; *ptr++ = 0x3; @@ -3813,7 +3813,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, strWID.id = (u16)WID_11E_P_ACTION_REQ; strWID.type = WID_STR; strWID.size = 15; - ptr = strWID.ps8WidVal; + ptr = strWID.val; /* *ptr++ = 0x14; */ *ptr++ = 15; *ptr++ = 7; @@ -3832,8 +3832,8 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(pstrWFIDrv)); - if (strWID.ps8WidVal != NULL) - kfree(strWID.ps8WidVal); + if (strWID.val != NULL) + kfree(strWID.val); return s32Error; @@ -3864,9 +3864,9 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, strWID.id = (u16)WID_DEL_ALL_RX_BA; strWID.type = WID_STR; - strWID.ps8WidVal = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); + strWID.val = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.size = BLOCK_ACK_REQ_SIZE; - ptr = strWID.ps8WidVal; + ptr = strWID.val; *ptr++ = 0x14; *ptr++ = 0x3; *ptr++ = 0x2; @@ -3884,8 +3884,8 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); - if (strWID.ps8WidVal != NULL) - kfree(strWID.ps8WidVal); + if (strWID.val != NULL) + kfree(strWID.val); up(&hWaitResponse); @@ -4163,7 +4163,7 @@ s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) strWID.id = (u16)WID_REMOVE_KEY; strWID.type = WID_STR; - strWID.ps8WidVal = (s8 *)pu8StaAddress; + strWID.val = (s8 *)pu8StaAddress; strWID.size = 6; return 0; @@ -4681,7 +4681,7 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, strWID.id = (u16)WID_PMKID_INFO; strWID.type = WID_STR; strWID.size = u32PmkidInfoLen; - strWID.ps8WidVal = pu8PmkidInfoArray; + strWID.val = pu8PmkidInfoArray; return 0; } @@ -4709,7 +4709,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8Pas if ((u8Psklength > 7) && (u8Psklength < 65)) { strWID.id = (u16)WID_11I_PSK; strWID.type = WID_STR; - strWID.ps8WidVal = pu8PassPhrase; + strWID.val = pu8PassPhrase; strWID.size = u8Psklength; } @@ -4803,7 +4803,7 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, strWID.id = (u16)WID_11I_PSK; strWID.type = WID_STR; strWID.size = u8Psklength; - strWID.ps8WidVal = pu8PassPhrase; + strWID.val = pu8PassPhrase; return 0; } @@ -4829,7 +4829,7 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) strWID.id = (u16)WID_START_SCAN_REQ; strWID.type = WID_CHAR; - strWID.ps8WidVal = (s8 *)&scanSource; + strWID.val = (s8 *)&scanSource; strWID.size = sizeof(char); return 0; @@ -4857,7 +4857,7 @@ s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) strWID.id = (u16)WID_START_SCAN_REQ; strWID.type = WID_CHAR; - strWID.ps8WidVal = (s8 *)pu8ScanSource; + strWID.val = (s8 *)pu8ScanSource; strWID.size = sizeof(char); return 0; @@ -5054,7 +5054,7 @@ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; - strWID.ps8WidVal = (s8 *)&assoc_id; + strWID.val = (s8 *)&assoc_id; strWID.size = sizeof(char); return 0; @@ -5093,7 +5093,7 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo strWID.id = (u16)WID_ASSOC_REQ_INFO; strWID.type = WID_STR; - strWID.ps8WidVal = pu8AssocReqInfo; + strWID.val = pu8AssocReqInfo; strWID.size = u32AssocReqInfoLen; return 0; @@ -5124,7 +5124,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf strWID.id = (u16)WID_ASSOC_RES_INFO; strWID.type = WID_STR; - strWID.ps8WidVal = pu8AssocRespInfo; + strWID.val = pu8AssocRespInfo; strWID.size = u32MaxAssocRespInfoLen; @@ -5164,7 +5164,7 @@ s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel strWID.id = (u16)WID_RX_POWER_LEVEL; strWID.type = WID_STR; - strWID.ps8WidVal = pu8RxPowerLevel; + strWID.val = pu8RxPowerLevel; strWID.size = u32RxPowerLevelLen; return 0; @@ -5390,7 +5390,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) strWID.id = (u16)WID_MEMORY_ADDRESS; strWID.type = WID_INT; - strWID.ps8WidVal = (s8 *)pu32TestMemAddr; + strWID.val = (s8 *)pu32TestMemAddr; strWID.size = sizeof(u32); s32Error = send_config_pkt(GET_CFG, &strWID, 1, From fa2ce581c9582f4ab1458f886341df16497f5b46 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:47 +0900 Subject: [PATCH 1440/2431] staging: wilc1000: remove unused struct tstrWidJoinReqExt This patch removes struct tstrWidJoinReqExt because it's not used. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5ee8c3a287ea..77aefafe1a47 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -406,12 +406,6 @@ struct host_if_msg { struct host_if_drv *drv; }; -typedef struct _tstrWidJoinReqExt { - char SSID[MAX_SSID_LEN]; - u8 u8channel; - u8 BSSID[6]; -} tstrWidJoinReqExt; - /*Struct containg joinParam of each AP*/ typedef struct _tstrJoinBssParam { BSSTYPE_T bss_type; From c0dba8d3bbdac36d5e01e09ef9363ea1de84b304 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:48 +0900 Subject: [PATCH 1441/2431] staging: wilc1000: remove unused struct tstrBssTable This patch removes struct tstrBssTable with related comment. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 77aefafe1a47..89b6cdd9ed84 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -436,12 +436,6 @@ typedef struct _tstrJoinBssParam { u8 au8Interval[4]; u8 au8StartTime[4]; } tstrJoinBssParam; -/*a linked list table containing needed join parameters entries for each AP found in most recent scan*/ -typedef struct _tstrBssTable { - u8 u8noBssEntries; - tstrJoinBssParam *head; - tstrJoinBssParam *tail; -} tstrBssTable; typedef enum { SCAN_TIMER = 0, From e0a122178bb0529720e0cdaadb9dd9a126e16796 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:49 +0900 Subject: [PATCH 1442/2431] staging: wilc1000: remove typedef from tstrJoinBssParam This patch removes typedef from the struct tstrJoinBssParam and renames it to join_bss_param. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 89b6cdd9ed84..0d83351a2db9 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -407,7 +407,7 @@ struct host_if_msg { }; /*Struct containg joinParam of each AP*/ -typedef struct _tstrJoinBssParam { +struct join_bss_param { BSSTYPE_T bss_type; u8 dtim_period; u16 beacon_period; @@ -435,7 +435,7 @@ typedef struct _tstrJoinBssParam { u8 au8Duration[4]; u8 au8Interval[4]; u8 au8StartTime[4]; -} tstrJoinBssParam; +}; typedef enum { SCAN_TIMER = 0, @@ -1438,7 +1438,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, u32 u32WidsCount = 0, dummyval = 0; /* char passphrase[] = "12345678"; */ u8 *pu8CurrByte = NULL; - tstrJoinBssParam *ptstrJoinBssParam; + struct join_bss_param *ptstrJoinBssParam; PRINT_D(GENERIC_DBG, "Handling connect request\n"); @@ -1453,7 +1453,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n"); - ptstrJoinBssParam = (tstrJoinBssParam *)pstrHostIFconnectAttr->pJoinParams; + ptstrJoinBssParam = (struct join_bss_param *)pstrHostIFconnectAttr->pJoinParams; if (ptstrJoinBssParam == NULL) { PRINT_ER("Required BSSID not found\n"); s32Error = -ENOENT; @@ -6700,7 +6700,7 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hWFIDrv, bool bIsEnabled * @version 1.0**/ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) { - tstrJoinBssParam *pNewJoinBssParam = NULL; + struct join_bss_param *pNewJoinBssParam = NULL; u8 *pu8IEs; u16 u16IEsLen; u16 index = 0; @@ -6716,9 +6716,9 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pu8IEs = ptstrNetworkInfo->pu8IEs; u16IEsLen = ptstrNetworkInfo->u16IEsLen; - pNewJoinBssParam = kmalloc(sizeof(tstrJoinBssParam), GFP_KERNEL); + pNewJoinBssParam = kmalloc(sizeof(struct join_bss_param), GFP_KERNEL); if (pNewJoinBssParam != NULL) { - memset(pNewJoinBssParam, 0, sizeof(tstrJoinBssParam)); + memset(pNewJoinBssParam, 0, sizeof(struct join_bss_param)); pNewJoinBssParam->dtim_period = ptstrNetworkInfo->u8DtimPeriod; pNewJoinBssParam->beacon_period = ptstrNetworkInfo->u16BeaconPeriod; pNewJoinBssParam->cap_info = ptstrNetworkInfo->u16CapInfo; @@ -6902,8 +6902,8 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) void host_int_freeJoinParams(void *pJoinParams) { - if ((tstrJoinBssParam *)pJoinParams != NULL) - kfree((tstrJoinBssParam *)pJoinParams); + if ((struct bss_param *)pJoinParams != NULL) + kfree((struct bss_param *)pJoinParams); else PRINT_ER("Unable to FREE null pointer\n"); } From 541963223be3d557dcff30c2aa3c0b2b641fcb97 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:50 +0900 Subject: [PATCH 1443/2431] staging: wilc1000: remove _tstrJoinParam from join_bss_param This patch removes struct _tstrJoinParam from the struct join_bss_param because it is not used inside the struct. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0d83351a2db9..fdde38722f3f 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -425,7 +425,6 @@ struct join_bss_param { u8 rsn_pcip_policy[3]; u8 rsn_auth_policy[3]; u8 rsn_cap[2]; - struct _tstrJoinParam *nextJoinBss; u32 tsf; u8 u8NoaEnbaled; u8 u8OppEnable; From b4fe59d8e8691ade69a075cc2fd6646e3452701e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:51 +0900 Subject: [PATCH 1444/2431] staging: wilc1000: remove typedef from tstrWILC_UsrScanReq This patch removes typedef from the struct tstrWILC_UsrScanReq with related comments and renames it to user_scan_req. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 3ab92207463d..b71859861061 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -225,7 +225,7 @@ struct hidden_network { u8 u8ssidnum; }; -typedef struct { +struct user_scan_req { /* Scan user call back function */ wilc_scan_result pfUserScanResult; @@ -234,7 +234,7 @@ typedef struct { u32 u32RcvdChCount; tstrFoundNetworkInfo astrFoundNetworkInfo[MAX_NUM_SCANNED_NETWORKS]; -} tstrWILC_UsrScanReq; +}; typedef struct { u8 *pu8bssid; @@ -304,8 +304,7 @@ enum p2p_listen_state { }; struct host_if_drv { - /* Scan user structure */ - tstrWILC_UsrScanReq strWILC_UsrScanReq; + struct user_scan_req strWILC_UsrScanReq; /* Connect User structure */ tstrWILC_UsrConnReq strWILC_UsrConnReq; From c944a4e8ad2fca231f7a1c1b03aac761b814cb14 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:52 +0900 Subject: [PATCH 1445/2431] staging: wilc1000: remove typedef from tstrWILC_UsrConnReq This patch removes typedef from the struct tstrWILC_UsrConnReq with the related comments and renames it to user_conn_req. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index b71859861061..9cf1e992e0c4 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -236,7 +236,7 @@ struct user_scan_req { tstrFoundNetworkInfo astrFoundNetworkInfo[MAX_NUM_SCANNED_NETWORKS]; }; -typedef struct { +struct user_conn_req { u8 *pu8bssid; u8 *pu8ssid; u8 u8security; @@ -249,7 +249,7 @@ typedef struct { bool IsHTCapable; /* User specific parameter to be delivered through the Connect User Callback function */ void *u32UserConnectPvoid; -} tstrWILC_UsrConnReq; +}; struct drv_handler { u32 u32Address; @@ -305,9 +305,7 @@ enum p2p_listen_state { struct host_if_drv { struct user_scan_req strWILC_UsrScanReq; - - /* Connect User structure */ - tstrWILC_UsrConnReq strWILC_UsrConnReq; + struct user_conn_req strWILC_UsrConnReq; /*Remain on channel struvture*/ struct remain_ch strHostIfRemainOnChan; From db9f1b1284d704152517d9bba343530b22129394 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:53 +0900 Subject: [PATCH 1446/2431] staging: wilc1000: remove typedef from tenuHostIFstate This patch removes typedef from the enum tenuHostIFstate and rename it to host_if_state. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 9cf1e992e0c4..0460af24a694 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -72,8 +72,7 @@ typedef struct _tstrStatistics { } tstrStatistics; - -typedef enum { +enum host_if_state { HOST_IF_IDLE = 0, HOST_IF_SCANNING = 1, HOST_IF_CONNECTING = 2, @@ -81,7 +80,7 @@ typedef enum { HOST_IF_CONNECTED = 4, HOST_IF_P2P_LISTEN = 5, HOST_IF_FORCE_32BIT = 0xFFFFFFFF -} tenuHostIFstate; +}; struct host_if_pmkid { u8 bssid[ETH_ALEN]; @@ -313,7 +312,7 @@ struct host_if_drv { u64 u64P2p_MgmtTimeout; u8 u8P2PConnect; - tenuHostIFstate enuHostIFstate; + enum host_if_state enuHostIFstate; u8 au8AssociatedBSSID[ETH_ALEN]; struct cfg_param_val strCfgValues; From 73735e49383675ee1caf7a93dfd61976c2244fc8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:54 +0900 Subject: [PATCH 1447/2431] staging: wilc1000: remove typedef from tstrFoundNetworkInfo This patch removes typedef from the struct tstrFoundNetworkInfo and rename it to found_net_info. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 0460af24a694..0f5fcca636dd 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -155,10 +155,10 @@ typedef enum { HT_ENABLE = BIT(18), } tenuCfgParam; -typedef struct { +struct found_net_info { u8 au8bssid[6]; s8 s8rssi; -} tstrFoundNetworkInfo; +}; typedef enum {SCAN_EVENT_NETWORK_FOUND = 0, SCAN_EVENT_DONE = 1, @@ -232,7 +232,7 @@ struct user_scan_req { void *u32UserScanPvoid; u32 u32RcvdChCount; - tstrFoundNetworkInfo astrFoundNetworkInfo[MAX_NUM_SCANNED_NETWORKS]; + struct found_net_info astrFoundNetworkInfo[MAX_NUM_SCANNED_NETWORKS]; }; struct user_conn_req { From ad61fcea233c09884ebe07762e99536bb54e27e8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:55 +0900 Subject: [PATCH 1448/2431] staging: wilc1000: remove typedef from tstrHiddenNetworkInfo This patch removes typedef from the struct tstrHiddenNetworkInfo with related comments and renames it to hidden_net_info. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 0f5fcca636dd..cfe2ceddb0e9 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -212,15 +212,13 @@ struct rcvd_net_info { u32 u32Length; }; -typedef struct _tstrHiddenNetworkInfo { +struct hidden_net_info { u8 *pu8ssid; u8 u8ssidlen; - -} tstrHiddenNetworkInfo; +}; struct hidden_network { - /* MAX_SSID_LEN */ - tstrHiddenNetworkInfo *pstrHiddenNetworkInfo; + struct hidden_net_info *pstrHiddenNetworkInfo; u8 u8ssidnum; }; From 8b58a2b6580ef6dda2051b3289d735f45ef8bd02 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:56 +0900 Subject: [PATCH 1449/2431] staging: wilc1000: remove unused struct WILC_WFIDrvHandle This patch removes unused the struct WILC_WFIDrvHandle with related commnets. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index cfe2ceddb0e9..20fd876816ef 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -192,11 +192,6 @@ typedef void (*wilc_connect_result)(tenuConnDisconnEvent, typedef void (*wilc_remain_on_chan_expired)(void *, u32); /*Remain on channel expiration callback function*/ typedef void (*wilc_remain_on_chan_ready)(void *); /*Remain on channel callback function*/ -/* typedef u32 WILC_WFIDrvHandle; */ -typedef struct { - s32 s32Dummy; -} *WILC_WFIDrvHandle; - /*! * @struct rcvd_net_info * @brief Structure to hold Received Asynchronous Network info From 4ef4d19593278905644a5ec6f477b73191a37ab6 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:57 +0900 Subject: [PATCH 1450/2431] staging: wilc1000: remove unused struct cfg_param_t This patch removes unused the struct cfg_param_t. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 20fd876816ef..c3379ecb1b97 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -57,12 +57,6 @@ #define SCAN_EVENT_DONE_ABORTED #define NUM_CONCURRENT_IFC 2 -typedef struct { - u16 cfg_wid; - enum WID_TYPE cfg_type; - s8 *pu8Para; -} cfg_param_t; - typedef struct _tstrStatistics { u8 u8LinkSpeed; s8 s8RSSI; From 03e7b9c4283b325362e9c6b2640e21d2a3e131a7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:58 +0900 Subject: [PATCH 1451/2431] staging: wilc1000: remove typedef from tstrStatistics This patch removes typedef from the struct tstrStatistics and rename it to rf_info. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 7 +++---- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fdde38722f3f..6f4eda6c1425 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -2974,7 +2974,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) } -s32 Handle_GetStatistics(struct host_if_drv *drvHandler, tstrStatistics *pstrStatistics) +s32 Handle_GetStatistics(struct host_if_drv *drvHandler, struct rf_info *pstrStatistics) { struct wid strWIDList[5]; u32 u32WidsCount = 0, s32Error = 0; @@ -3987,7 +3987,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_GET_STATISTICS: - Handle_GetStatistics(msg.drv, (tstrStatistics *)msg.body.data); + Handle_GetStatistics(msg.drv, (struct rf_info *)msg.body.data); break; case HOST_IF_MSG_GET_CHNL: @@ -5480,7 +5480,7 @@ s32 host_int_get_link_speed(struct host_if_drv *hWFIDrv, s8 *ps8lnkspd) return s32Error; } -s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, tstrStatistics *pstrStatistics) +s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, struct rf_info *pstrStatistics) { s32 s32Error = 0; struct host_if_msg msg; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index c3379ecb1b97..1097f106bd6e 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -57,14 +57,13 @@ #define SCAN_EVENT_DONE_ABORTED #define NUM_CONCURRENT_IFC 2 -typedef struct _tstrStatistics { +struct rf_info { u8 u8LinkSpeed; s8 s8RSSI; u32 u32TxCount; u32 u32RxCount; u32 u32TxFailureCount; - -} tstrStatistics; +}; enum host_if_state { HOST_IF_IDLE = 0, @@ -1176,6 +1175,6 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEven void host_int_freeJoinParams(void *pJoinParams); -s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, tstrStatistics *pstrStatistics); +s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, struct rf_info *pstrStatistics); #endif diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index a5617de4c3b7..dd96909c3870 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1576,7 +1576,7 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev, } if (nic->iftype == STATION_MODE) { - tstrStatistics strStatistics; + struct rf_info strStatistics; host_int_get_statistics(priv->hWILCWFIDrv, &strStatistics); From 1ec3815f38d74c6ef99dc48d9a7cc18555108565 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:59 +0900 Subject: [PATCH 1452/2431] staging: wilc1000: remove typedef from tenuScanEvent This patch removes typedef from the enum tenuScanEvent and rename it to scan_event. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 15 +++++++++------ drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6f4eda6c1425..54b2a6119b54 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1371,7 +1371,7 @@ ERRORHANDLER: * @date * @version 1.0 */ -static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEvent) +static s32 Handle_ScanDone(struct host_if_drv *drvHandler, enum scan_event enuEvent) { s32 s32Error = 0; diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 1097f106bd6e..64ee05444cc3 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -153,10 +153,12 @@ struct found_net_info { s8 s8rssi; }; -typedef enum {SCAN_EVENT_NETWORK_FOUND = 0, - SCAN_EVENT_DONE = 1, - SCAN_EVENT_ABORTED = 2, - SCAN_EVENT_FORCE_32BIT = 0xFFFFFFFF} tenuScanEvent; +enum scan_event { + SCAN_EVENT_NETWORK_FOUND = 0, + SCAN_EVENT_DONE = 1, + SCAN_EVENT_ABORTED = 2, + SCAN_EVENT_FORCE_32BIT = 0xFFFFFFFF +}; typedef enum { CONN_DISCONN_EVENT_CONN_RESP = 0, @@ -173,7 +175,8 @@ enum KEY_TYPE { /*Scan callBack function definition*/ -typedef void (*wilc_scan_result)(tenuScanEvent, tstrNetworkInfo *, void *, void *); +typedef void (*wilc_scan_result)(enum scan_event, tstrNetworkInfo *, + void *, void *); /*Connect callBack function definition*/ typedef void (*wilc_connect_result)(tenuConnDisconnEvent, @@ -1171,7 +1174,7 @@ s32 host_int_frame_register(struct host_if_drv *hWFIDrv, u16 u16FrameType, bool int host_int_set_wfi_drv_handler(struct host_if_drv *address); int host_int_set_operation_mode(struct host_if_drv *wfi_drv, u32 mode); -static s32 Handle_ScanDone(struct host_if_drv *drvHandler, tenuScanEvent enuEvent); +static s32 Handle_ScanDone(struct host_if_drv *drvHandler, enum scan_event enuEvent); void host_int_freeJoinParams(void *pJoinParams); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index dd96909c3870..45a10c58be52 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -357,7 +357,7 @@ void add_network_to_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, vo * @date * @version 1.0 */ -static void CfgScanResult(tenuScanEvent enuScanEvent, tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, void *pJoinParams) +static void CfgScanResult(enum scan_event enuScanEvent, tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid, void *pJoinParams) { struct wilc_priv *priv; struct wiphy *wiphy; From 200ac21b0de03a8775763404baa95c373a1b8fd1 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:56:00 +0900 Subject: [PATCH 1453/2431] staging: wilc1000: rename typedef from tenuCfgParam This patch rename typedef from the enum tenuCfgParamand rename it to cfg_param. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 64ee05444cc3..ad4c1c4a4483 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -126,7 +126,7 @@ struct cfg_param_val { }; -typedef enum { +enum cfg_param { RETRY_SHORT = BIT(0), RETRY_LONG = BIT(1), FRAG_THRESHOLD = BIT(2), @@ -146,7 +146,7 @@ typedef enum { PASSIVE_SCANTIME = BIT(16), CURRENT_TX_RATE = BIT(17), HT_ENABLE = BIT(18), -} tenuCfgParam; +}; struct found_net_info { u8 au8bssid[6]; From ed3f0379a272d7ef4e787f42575eac642b5b020e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:56:01 +0900 Subject: [PATCH 1454/2431] staging: wilc1000: remove typedef from tenuConnDisconnEvent This patch removes typedef from the enum tenuConnDisconnEvent and renames it to conn_event. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 6 +++--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index ad4c1c4a4483..a88fd822921c 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -160,11 +160,11 @@ enum scan_event { SCAN_EVENT_FORCE_32BIT = 0xFFFFFFFF }; -typedef enum { +enum conn_event { CONN_DISCONN_EVENT_CONN_RESP = 0, CONN_DISCONN_EVENT_DISCONN_NOTIF = 1, CONN_DISCONN_EVENT_FORCE_32BIT = 0xFFFFFFFF -} tenuConnDisconnEvent; +}; enum KEY_TYPE { WEP, @@ -179,7 +179,7 @@ typedef void (*wilc_scan_result)(enum scan_event, tstrNetworkInfo *, void *, void *); /*Connect callBack function definition*/ -typedef void (*wilc_connect_result)(tenuConnDisconnEvent, +typedef void (*wilc_connect_result)(enum conn_event, tstrConnectInfo *, u8, tstrDisconnectNotifInfo *, diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 45a10c58be52..11f9d465ece6 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -531,7 +531,7 @@ int linux_wlan_set_bssid(struct net_device *wilc_netdev, u8 *pBSSID); */ int connecting; -static void CfgConnectResult(tenuConnDisconnEvent enuConnDisconnEvent, +static void CfgConnectResult(enum conn_event enuConnDisconnEvent, tstrConnectInfo *pstrConnectInfo, u8 u8MacStatus, tstrDisconnectNotifInfo *pstrDisconnectNotifInfo, From 7696edf4d57f7a3d8a45ccf01f201b980c077d08 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:56:02 +0900 Subject: [PATCH 1455/2431] staging: wilc1000: remove typedef from tenuScanConnTimer This patch removes typedef from the enum tenuScanConnTimer and renames it to scan_conn_timer. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 54b2a6119b54..6826298537ce 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -436,11 +436,11 @@ struct join_bss_param { u8 au8StartTime[4]; }; -typedef enum { +enum scan_conn_timer { SCAN_TIMER = 0, CONNECT_TIMER = 1, SCAN_CONNECT_TIMER_FORCE_32BIT = 0xFFFFFFFF -} tenuScanConnTimer; +}; /*****************************************************************************/ /* */ @@ -4872,7 +4872,7 @@ s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, s32 s32Error = 0; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - tenuScanConnTimer enuScanConnTimer; + enum scan_conn_timer enuScanConnTimer; if (pstrWFIDrv == NULL || pfConnectResult == NULL) { s32Error = -EFAULT; @@ -5530,7 +5530,7 @@ s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource, s32 s32Error = 0; struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - tenuScanConnTimer enuScanConnTimer; + enum scan_conn_timer enuScanConnTimer; if (pstrWFIDrv == NULL || ScanResult == NULL) { PRINT_ER("pstrWFIDrv or ScanResult = NULL\n"); From f6e55e043f9fbf3c0a04485ec5ffc5d0ba76d498 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:03 +0900 Subject: [PATCH 1456/2431] staging: wilc1000: host_infterface.h: remove unused enum tenuWILC_StaFlag This patch removes unused enum tenuWILC_StaFlag from the host_interface.h. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.h | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index a88fd822921c..c6dbb6e45c87 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -322,26 +322,6 @@ struct host_if_drv { bool IFC_UP; }; -/*! - * @enum tenuWILC_StaFlag - * @brief Used to decode the station flag set and mask in tstrWILC_AddStaParam - * @details - * @todo - * @sa tstrWILC_AddStaParam, enum nl80211_sta_flags - * @author Enumeraion's creator - * @date 12 July 2012 - * @version 1.0 Description - */ - -typedef enum { - WILC_STA_FLAG_INVALID = 0, - WILC_STA_FLAG_AUTHORIZED, /*!< station is authorized (802.1X)*/ - WILC_STA_FLAG_SHORT_PREAMBLE, /*!< station is capable of receiving frames with short barker preamble*/ - WILC_STA_FLAG_WME, /*!< station is WME/QoS capable*/ - WILC_STA_FLAG_MFP, /*!< station uses management frame protection*/ - WILC_STA_FLAG_AUTHENTICATED /*!< station is authenticated*/ -} tenuWILC_StaFlag; - struct add_sta_param { u8 au8BSSID[ETH_ALEN]; u16 u16AssocID; From 60bd1003e1045732233493595367bf1d6d5df9f2 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:04 +0900 Subject: [PATCH 1457/2431] staging: wilc1000: remove wilc_wlan.c included in wilc_wfi_cfgoperations.c This patch removes "wilc_wlan.c" from the wilc_wfi_cfgoperation.c file and adds wilc_wlan.o into Makefile to compile it because there is few benefits. This patch also adds "wilc_wfi_netdevice.h" in the wilc_wlan.c file to avoid the compile errors. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Makefile | 3 ++- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 1 - drivers/staging/wilc1000/wilc_wlan.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index f4950619c17f..64c2f1b83dfb 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -21,7 +21,8 @@ ccflags-$(CONFIG_WILC1000_DYNAMICALLY_ALLOCATE_MEMROY) += -DWILC_NORMAL_ALLOC wilc1000-objs := wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \ wilc_msgqueue.o \ coreconfigurator.o host_interface.o \ - wilc_sdio.o wilc_spi.o wilc_wlan_cfg.o wilc_debugfs.o + wilc_sdio.o wilc_spi.o wilc_wlan_cfg.o wilc_debugfs.o \ + wilc_wlan.o wilc1000-$(CONFIG_WILC1000_SDIO) += linux_wlan_sdio.o wilc1000-$(CONFIG_WILC1000_SPI) += linux_wlan_spi.o diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 11f9d465ece6..7abdd530c13a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -11,7 +11,6 @@ */ #include "wilc_wfi_cfgoperations.h" -#include "wilc_wlan.c" #ifdef WILC_SDIO #include "linux_wlan_sdio.h" #endif diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index e11d3d32d371..1d23badb5453 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -8,7 +8,7 @@ /* //////////////////////////////////////////////////////////////////////////// */ #include "wilc_wlan_if.h" -#include "wilc_wlan.h" +#include "wilc_wfi_netdevice.h" #include "wilc_wlan_cfg.h" /******************************************** From a4ab1ade75a3ae1d252efb2d38865a677d503e8f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:05 +0900 Subject: [PATCH 1458/2431] staging: wilc1000: replace drvHandler and hWFIDrv with hif_drv This patch replaces the variable names of struct host_if_drv used as the functions' input parameter, drvHandler and hWFIDrv with hif_drv. In addition, the local variable declared in many functions, pstrWFIDrv is removed and hif_drv is directly used. A debug message printing pstrWFIDrv is deleted while removing the local variable because it is not useful as well. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1255 ++++++++++----------- 1 file changed, 569 insertions(+), 686 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6826298537ce..9309678d13bc 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -554,13 +554,12 @@ static struct host_if_drv *get_handler_from_id(int id) * @date * @version 1.0 */ -static s32 Handle_SetChannel(struct host_if_drv *drvHandler, +static s32 Handle_SetChannel(struct host_if_drv *hif_drv, struct channel_attr *pstrHostIFSetChan) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ strWID.id = (u16)WID_CURRENT_CHANNEL; @@ -571,7 +570,7 @@ static s32 Handle_SetChannel(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Setting channel\n"); /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("Failed to set channel\n"); return -EINVAL; @@ -589,14 +588,12 @@ static s32 Handle_SetChannel(struct host_if_drv *drvHandler, * @date * @version 1.0 */ -static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, +static s32 Handle_SetWfiDrvHandler(struct host_if_drv *hif_drv, struct drv_handler *pstrHostIfSetDrvHandler) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = drvHandler; - /*prepare configuration packet*/ strWID.id = (u16)WID_SET_DRV_HANDLER; @@ -609,7 +606,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, s32Error = send_config_pkt(SET_CFG, &strWID, 1, pstrHostIfSetDrvHandler->u32Address); - if (pstrWFIDrv == NULL) + if (!hif_drv) up(&hSemDeinitDrvHandle); @@ -630,14 +627,12 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *drvHandler, * @date * @version 1.0 */ -static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, +static s32 Handle_SetOperationMode(struct host_if_drv *hif_drv, struct op_mode *pstrHostIfSetOperationMode) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - /*prepare configuration packet*/ strWID.id = (u16)WID_SET_OPERATION_MODE; @@ -645,11 +640,8 @@ static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, strWID.val = (s8 *)&(pstrHostIfSetOperationMode->u32Mode); strWID.size = sizeof(u32); - /*Sending Cfg*/ - PRINT_INFO(HOSTINF_DBG, "pstrWFIDrv= %p\n", pstrWFIDrv); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if ((pstrHostIfSetOperationMode->u32Mode) == IDLE_MODE) @@ -673,13 +665,12 @@ static s32 Handle_SetOperationMode(struct host_if_drv *drvHandler, * @date * @version 1.0 */ -s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) +s32 Handle_set_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) { s32 s32Error = 0; struct wid strWID; char firmwareIPAddress[4] = {0}; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; if (pu8IPAddr[0] < 192) pu8IPAddr[0] = 0; @@ -695,10 +686,10 @@ s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.size = IP_ALEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); - host_int_get_ipaddress(drvHandler, firmwareIPAddress, idx); + host_int_get_ipaddress(hif_drv, firmwareIPAddress, idx); if (s32Error) { PRINT_ER("Failed to set IP address\n"); @@ -720,12 +711,11 @@ s32 Handle_set_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) * @date * @version 1.0 */ -s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) +s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; /*prepare configuration packet*/ strWID.id = (u16)WID_IP_ADDRESS; @@ -734,7 +724,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) strWID.size = IP_ALEN; s32Error = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.val); @@ -744,7 +734,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) kfree(strWID.val); if (memcmp(gs8GetIP[idx], gs8SetIP[idx], IP_ALEN) != 0) - host_int_setup_ipaddress(pstrWFIDrv, gs8SetIP[idx], idx); + host_int_setup_ipaddress(hif_drv, gs8SetIP[idx], idx); if (s32Error != 0) { PRINT_ER("Failed to get IP address\n"); @@ -768,13 +758,12 @@ s32 Handle_get_IPAddress(struct host_if_drv *drvHandler, u8 *pu8IPAddr, u8 idx) * @date November 2013 * @version 7.0 */ -static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, +static s32 Handle_SetMacAddress(struct host_if_drv *hif_drv, struct set_mac_addr *pstrHostIfSetMacAddress) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; u8 *mac_buf = kmalloc(ETH_ALEN, GFP_KERNEL); if (mac_buf == NULL) { @@ -791,7 +780,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.val); /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("Failed to set mac address\n"); s32Error = -EFAULT; @@ -811,7 +800,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *drvHandler, * @date JAN 2013 * @version 8.0 */ -static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, +static s32 Handle_GetMacAddress(struct host_if_drv *hif_drv, struct get_mac_addr *pstrHostIfGetMacAddress) { @@ -826,7 +815,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(drvHandler)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("Failed to get mac address\n"); s32Error = -EFAULT; @@ -846,16 +835,14 @@ static s32 Handle_GetMacAddress(struct host_if_drv *drvHandler, * @date * @version 1.0 */ -static s32 Handle_CfgParam(struct host_if_drv *drvHandler, +static s32 Handle_CfgParam(struct host_if_drv *hif_drv, struct cfg_param_attr *strHostIFCfgParamAttr) { s32 s32Error = 0; struct wid strWIDList[32]; u8 u8WidCnt = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - - down(&(pstrWFIDrv->gtOsCfgValuesSem)); + down(&hif_drv->gtOsCfgValuesSem); PRINT_D(HOSTINF_DBG, "Setting CFG params\n"); @@ -872,7 +859,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - pstrWFIDrv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; + hif_drv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; } else { PRINT_ER("check value 6 over\n"); s32Error = -EINVAL; @@ -892,7 +879,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - pstrWFIDrv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; + hif_drv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; } else { PRINT_ER("Impossible value \n"); s32Error = -EINVAL; @@ -907,7 +894,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; + hif_drv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; } else { PRINT_ER("Range(1 ~ 65535) over\n"); s32Error = -EINVAL; @@ -928,7 +915,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - pstrWFIDrv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; + hif_drv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; } else { PRINT_ER("Invalide power mode\n"); s32Error = -EINVAL; @@ -943,7 +930,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; + hif_drv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; } else { PRINT_ER("Range(1~256) over\n"); s32Error = -EINVAL; @@ -959,7 +946,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.long_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; + hif_drv->strCfgValues.long_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; } else { PRINT_ER("Range(1~256) over\n"); s32Error = -EINVAL; @@ -974,7 +961,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; + hif_drv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; } else { PRINT_ER("Threshold Range fail\n"); s32Error = -EINVAL; @@ -989,7 +976,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; + hif_drv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; } else { PRINT_ER("Threshold Range fail\n"); s32Error = -EINVAL; @@ -1008,7 +995,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - pstrWFIDrv->strCfgValues.preamble_type = strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; + hif_drv->strCfgValues.preamble_type = strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; } else { PRINT_ER("Preamle Range(0~2) over\n"); s32Error = -EINVAL; @@ -1022,7 +1009,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - pstrWFIDrv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; + hif_drv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; } else { PRINT_ER("Short slot(2) over\n"); s32Error = -EINVAL; @@ -1040,7 +1027,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - pstrWFIDrv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; + hif_drv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; } else { PRINT_ER("TXOP prot disable\n"); s32Error = -EINVAL; @@ -1055,7 +1042,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; + hif_drv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; } else { PRINT_ER("Beacon interval(1~65535) fail\n"); s32Error = -EINVAL; @@ -1070,7 +1057,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - pstrWFIDrv->strCfgValues.dtim_period = strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; + hif_drv->strCfgValues.dtim_period = strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; } else { PRINT_ER("DTIM range(1~255) fail\n"); s32Error = -EINVAL; @@ -1089,7 +1076,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - pstrWFIDrv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; + hif_drv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; } else { PRINT_ER("Site survey disable\n"); s32Error = -EINVAL; @@ -1104,7 +1091,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; + hif_drv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; } else { PRINT_ER("Site survey scan time(1~65535) over\n"); s32Error = -EINVAL; @@ -1119,7 +1106,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; + hif_drv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; } else { PRINT_ER("Active scan time(1~65535) over\n"); s32Error = -EINVAL; @@ -1134,7 +1121,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; + hif_drv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; } else { PRINT_ER("Passive scan time(1~65535) over\n"); s32Error = -EINVAL; @@ -1159,7 +1146,7 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, strWIDList[u8WidCnt].val = (s8 *)&curr_tx_rate; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - pstrWFIDrv->strCfgValues.curr_tx_rate = (u8)curr_tx_rate; + hif_drv->strCfgValues.curr_tx_rate = (u8)curr_tx_rate; } else { PRINT_ER("out of TX rate\n"); s32Error = -EINVAL; @@ -1168,13 +1155,13 @@ static s32 Handle_CfgParam(struct host_if_drv *drvHandler, u8WidCnt++; } s32Error = send_config_pkt(SET_CFG, strWIDList, u8WidCnt, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Error in setting CFG params\n"); ERRORHANDLER: - up(&(pstrWFIDrv->gtOsCfgValuesSem)); + up(&hif_drv->gtOsCfgValuesSem); return s32Error; } @@ -1204,7 +1191,7 @@ static s32 Handle_wait_msg_q_empty(void) * @date * @version 1.0 */ -static s32 Handle_Scan(struct host_if_drv *drvHandler, +static s32 Handle_Scan(struct host_if_drv *hif_drv, struct scan_attr *pstrHostIFscanAttr) { s32 s32Error = 0; @@ -1214,17 +1201,16 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, u8 *pu8Buffer; u8 valuesize = 0; u8 *pu8HdnNtwrksWidVal = NULL; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; PRINT_D(HOSTINF_DBG, "Setting SCAN params\n"); - PRINT_D(HOSTINF_DBG, "Scanning: In [%d] state\n", pstrWFIDrv->enuHostIFstate); + PRINT_D(HOSTINF_DBG, "Scanning: In [%d] state\n", hif_drv->enuHostIFstate); - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult = pstrHostIFscanAttr->pfScanResult; - pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid = pstrHostIFscanAttr->pvUserArg; + hif_drv->strWILC_UsrScanReq.pfUserScanResult = pstrHostIFscanAttr->pfScanResult; + hif_drv->strWILC_UsrScanReq.u32UserScanPvoid = pstrHostIFscanAttr->pvUserArg; - if ((pstrWFIDrv->enuHostIFstate >= HOST_IF_SCANNING) && (pstrWFIDrv->enuHostIFstate < HOST_IF_CONNECTED)) { + if ((hif_drv->enuHostIFstate >= HOST_IF_SCANNING) && (hif_drv->enuHostIFstate < HOST_IF_CONNECTED)) { /* here we either in HOST_IF_SCANNING, HOST_IF_WAITING_CONN_REQ or HOST_IF_WAITING_CONN_RESP */ - PRINT_D(GENERIC_DBG, "Don't scan we are already in [%d] state\n", pstrWFIDrv->enuHostIFstate); + PRINT_D(GENERIC_DBG, "Don't scan we are already in [%d] state\n", hif_drv->enuHostIFstate); PRINT_ER("Already scan\n"); s32Error = -EBUSY; goto ERRORHANDLER; @@ -1240,7 +1226,7 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Setting SCAN params\n"); - pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount = 0; + hif_drv->strWILC_UsrScanReq.u32RcvdChCount = 0; strWIDList[u32WidsCount].id = (u16)WID_SSID_PROBE_REQ; strWIDList[u32WidsCount].type = WID_STR; @@ -1314,13 +1300,13 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, /*keep the state as is , no need to change it*/ /* gWFiDrvHandle->enuHostIFstate = HOST_IF_SCANNING; */ - if (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED) + if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) gbScanWhileConnected = true; - else if (pstrWFIDrv->enuHostIFstate == HOST_IF_IDLE) + else if (hif_drv->enuHostIFstate == HOST_IF_IDLE) gbScanWhileConnected = false; s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send scan paramters config packet\n"); @@ -1329,9 +1315,9 @@ static s32 Handle_Scan(struct host_if_drv *drvHandler, ERRORHANDLER: if (s32Error) { - del_timer(&pstrWFIDrv->hScanTimer); + del_timer(&hif_drv->hScanTimer); /*if there is an ongoing scan request*/ - Handle_ScanDone(drvHandler, SCAN_EVENT_ABORTED); + Handle_ScanDone(hif_drv, SCAN_EVENT_ABORTED); } /* Deallocate pstrHostIFscanAttr->u8ChnlListLen which was prevoisuly allocated by the sending thread */ @@ -1371,13 +1357,10 @@ ERRORHANDLER: * @date * @version 1.0 */ -static s32 Handle_ScanDone(struct host_if_drv *drvHandler, enum scan_event enuEvent) +static s32 Handle_ScanDone(struct host_if_drv *hif_drv, + enum scan_event enuEvent) { s32 s32Error = 0; - - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - - u8 u8abort_running_scan; struct wid strWID; @@ -1395,24 +1378,24 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, enum scan_event enuEv /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("Failed to set abort running scan\n"); s32Error = -EFAULT; } } - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("Driver handler is NULL\n"); return s32Error; } /*if there is an ongoing scan request*/ - if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult(enuEvent, NULL, - pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { + hif_drv->strWILC_UsrScanReq.pfUserScanResult(enuEvent, NULL, + hif_drv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); /*delete current scan request*/ - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult = NULL; + hif_drv->strWILC_UsrScanReq.pfUserScanResult = NULL; } return s32Error; @@ -1428,10 +1411,9 @@ static s32 Handle_ScanDone(struct host_if_drv *drvHandler, enum scan_event enuEv * @version 1.0 */ u8 u8ConnectedSSID[6] = {0}; -static s32 Handle_Connect(struct host_if_drv *drvHandler, +static s32 Handle_Connect(struct host_if_drv *hif_drv, struct connect_attr *pstrHostIFconnectAttr) { - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; s32 s32Error = 0; struct wid strWIDList[8]; u32 u32WidsCount = 0, dummyval = 0; @@ -1460,29 +1442,29 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, } if (pstrHostIFconnectAttr->pu8bssid != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL); - memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->pu8bssid, 6); + hif_drv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL); + memcpy(hif_drv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->pu8bssid, 6); } - pstrWFIDrv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen; + hif_drv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen; if (pstrHostIFconnectAttr->pu8ssid != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssidLen + 1, GFP_KERNEL); - memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->pu8ssid, + hif_drv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssidLen + 1, GFP_KERNEL); + memcpy(hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->pu8ssid, pstrHostIFconnectAttr->ssidLen); - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssidLen] = '\0'; + hif_drv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssidLen] = '\0'; } - pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen; + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen; if (pstrHostIFconnectAttr->pu8IEs != NULL) { - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); - memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->pu8IEs, + hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); + memcpy(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->pu8IEs, pstrHostIFconnectAttr->IEsLen); } - pstrWFIDrv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->u8security; - pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->tenuAuth_type; - pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->pfConnectResult; - pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg; + hif_drv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->u8security; + hif_drv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->tenuAuth_type; + hif_drv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->pfConnectResult; + hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg; strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; strWIDList[u32WidsCount].type = WID_INT; @@ -1508,40 +1490,40 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, /* IEs to be inserted in Association Request */ strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; - strWIDList[u32WidsCount].val = pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs; - strWIDList[u32WidsCount].size = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; + strWIDList[u32WidsCount].val = hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs; + strWIDList[u32WidsCount].size = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { - gu32FlushedInfoElemAsocSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; + gu32FlushedInfoElemAsocSize = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; gu8FlushedInfoElemAsoc = kmalloc(gu32FlushedInfoElemAsocSize, GFP_KERNEL); - memcpy(gu8FlushedInfoElemAsoc, pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, + memcpy(gu8FlushedInfoElemAsoc, hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, gu32FlushedInfoElemAsocSize); } } strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].val = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security)); + strWIDList[u32WidsCount].val = (s8 *)(&(hif_drv->strWILC_UsrConnReq.u8security)); u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) - gu8Flushed11iMode = pstrWFIDrv->strWILC_UsrConnReq.u8security; + gu8Flushed11iMode = hif_drv->strWILC_UsrConnReq.u8security; - PRINT_INFO(HOSTINF_DBG, "Encrypt Mode = %x\n", pstrWFIDrv->strWILC_UsrConnReq.u8security); + PRINT_INFO(HOSTINF_DBG, "Encrypt Mode = %x\n", hif_drv->strWILC_UsrConnReq.u8security); strWIDList[u32WidsCount].id = (u16)WID_AUTH_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].val = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); + strWIDList[u32WidsCount].val = (s8 *)(&hif_drv->strWILC_UsrConnReq.tenuAuth_type); u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) - gu8FlushedAuthType = (u8)pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type; + gu8FlushedAuthType = (u8)hif_drv->strWILC_UsrConnReq.tenuAuth_type; - PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type); + PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", hif_drv->strWILC_UsrConnReq.tenuAuth_type); /* * strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_PSK; * strWIDList[u32WidsCount].enuWIDtype = WID_STR; @@ -1551,7 +1533,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, */ PRINT_D(HOSTINF_DBG, "Connecting to network of SSID %s on channel %d\n", - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->u8channel); + hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->u8channel); strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; @@ -1622,7 +1604,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, /* ht cap*/ *(pu8CurrByte++) = ptstrJoinBssParam->ht_capable; /* copy this information to the user request */ - pstrWFIDrv->strWILC_UsrConnReq.IsHTCapable = ptstrJoinBssParam->ht_capable; + hif_drv->strWILC_UsrConnReq.IsHTCapable = ptstrJoinBssParam->ht_capable; /* rsn found*/ *(pu8CurrByte++) = ptstrJoinBssParam->rsn_found; @@ -1693,7 +1675,7 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { memcpy(gu8FlushedJoinReq, pu8CurrByte, gu32FlushedJoinReqSize); - gu8FlushedJoinReqDrvHandler = pstrWFIDrv; + gu8FlushedJoinReqDrvHandler = hif_drv; } PRINT_D(GENERIC_DBG, "send HOST_IF_WAITING_CONN_RESP\n"); @@ -1706,21 +1688,21 @@ static s32 Handle_Connect(struct host_if_drv *drvHandler, } s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("failed to send config packet\n"); s32Error = -EFAULT; goto ERRORHANDLER; } else { PRINT_D(GENERIC_DBG, "set HOST_IF_WAITING_CONN_RESP\n"); - pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP; + hif_drv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP; } ERRORHANDLER: if (s32Error) { tstrConnectInfo strConnectInfo; - del_timer(&pstrWFIDrv->hConnectTimer); + del_timer(&hif_drv->hConnectTimer); PRINT_D(HOSTINF_DBG, "could not start connecting to the required network\n"); @@ -1744,7 +1726,7 @@ ERRORHANDLER: NULL, pstrHostIFconnectAttr->pvUserArg); /*Change state to idle*/ - pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; + hif_drv->enuHostIFstate = HOST_IF_IDLE; /* Deallocation */ if (strConnectInfo.pu8ReqIEs != NULL) { kfree(strConnectInfo.pu8ReqIEs); @@ -1791,7 +1773,7 @@ ERRORHANDLER: * @version 8.0 */ -static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) +static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) { s32 s32Error = 0; struct wid strWIDList[5]; @@ -1850,20 +1832,19 @@ static s32 Handle_FlushConnect(struct host_if_drv *drvHandler) * @date * @version 1.0 */ -static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) +static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) { s32 s32Error = 0; tstrConnectInfo strConnectInfo; struct wid strWID; u16 u16DummyReasonCode = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("Driver handler is NULL\n"); return s32Error; } - pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; + hif_drv->enuHostIFstate = HOST_IF_IDLE; gbScanWhileConnected = false; @@ -1874,25 +1855,25 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) /* First, we will notify the upper layer with the Connection failure {through the Connect Callback function}, * then we will notify our firmware also with the Connection failure {through sending to it Cfg packet carrying * WID_DISCONNECT} */ - if (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { - if (pstrWFIDrv->strWILC_UsrConnReq.pu8bssid != NULL) { + if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { + if (hif_drv->strWILC_UsrConnReq.pu8bssid != NULL) { memcpy(strConnectInfo.au8bssid, - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid, 6); + hif_drv->strWILC_UsrConnReq.pu8bssid, 6); } - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { - strConnectInfo.ReqIEsLen = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; - strConnectInfo.pu8ReqIEs = kmalloc(pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); + if (hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { + strConnectInfo.ReqIEsLen = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; + strConnectInfo.pu8ReqIEs = kmalloc(hif_drv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, - pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen); + hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen); } - pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_CONN_RESP, + hif_drv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_CONN_RESP, &strConnectInfo, MAC_DISCONNECTED, NULL, - pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid); + hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid); /* Deallocation of strConnectInfo.pu8ReqIEs */ if (strConnectInfo.pu8ReqIEs != NULL) { @@ -1913,35 +1894,24 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send dissconect config packet\n"); /* Deallocation of the Saved Connect Request in the global Handle */ - pstrWFIDrv->strWILC_UsrConnReq.ssidLen = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ssid != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid); - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = NULL; - } - - if (pstrWFIDrv->strWILC_UsrConnReq.pu8bssid != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid); - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = NULL; - } - - pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs); - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = NULL; - } + hif_drv->strWILC_UsrConnReq.ssidLen = 0; + kfree(hif_drv->strWILC_UsrConnReq.pu8ssid); + kfree(hif_drv->strWILC_UsrConnReq.pu8bssid); + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; + kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); eth_zero_addr(u8ConnectedSSID); /*Freeing flushed join request params on connect timeout*/ - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { + if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { + if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedInfoElemAsoc); gu8FlushedInfoElemAsoc = NULL; } @@ -1958,7 +1928,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *drvHandler) * @date * @version 1.0 */ -static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *drvHandler, +static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, struct rcvd_net_info *pstrRcvdNetworkInfo) { u32 i; @@ -1970,32 +1940,28 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *drvHandler, tstrNetworkInfo *pstrNetworkInfo = NULL; void *pJoinParams = NULL; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - - - bNewNtwrkFound = true; PRINT_INFO(HOSTINF_DBG, "Handling received network info\n"); /*if there is a an ongoing scan request*/ - if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { PRINT_D(HOSTINF_DBG, "State: Scanning, parsing network information received\n"); parse_network_info(pstrRcvdNetworkInfo->pu8Buffer, &pstrNetworkInfo); if ((pstrNetworkInfo == NULL) - || (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult == NULL)) { + || (hif_drv->strWILC_UsrScanReq.pfUserScanResult == NULL)) { PRINT_ER("driver is null\n"); s32Error = -EINVAL; goto done; } /* check whether this network is discovered before */ - for (i = 0; i < pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount; i++) { + for (i = 0; i < hif_drv->strWILC_UsrScanReq.u32RcvdChCount; i++) { - if ((pstrWFIDrv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid != NULL) && + if ((hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid != NULL) && (pstrNetworkInfo->au8bssid != NULL)) { - if (memcmp(pstrWFIDrv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid, + if (memcmp(hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid, pstrNetworkInfo->au8bssid, 6) == 0) { - if (pstrNetworkInfo->s8rssi <= pstrWFIDrv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].s8rssi) { + if (pstrNetworkInfo->s8rssi <= hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].s8rssi) { /*we have already found this network with better rssi, so keep the old cached one and don't * send anything to the upper layer */ PRINT_D(HOSTINF_DBG, "Network previously discovered\n"); @@ -2004,7 +1970,7 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *drvHandler, /* here the same already found network is found again but with a better rssi, so just update * the rssi for this cached network and send this updated network to the upper layer but * don't add a new record for it */ - pstrWFIDrv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].s8rssi = pstrNetworkInfo->s8rssi; + hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].s8rssi = pstrNetworkInfo->s8rssi; bNewNtwrkFound = false; break; } @@ -2018,22 +1984,22 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "New network found\n"); - if (pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount < MAX_NUM_SCANNED_NETWORKS) { - pstrWFIDrv->strWILC_UsrScanReq.astrFoundNetworkInfo[pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount].s8rssi = pstrNetworkInfo->s8rssi; + if (hif_drv->strWILC_UsrScanReq.u32RcvdChCount < MAX_NUM_SCANNED_NETWORKS) { + hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].s8rssi = pstrNetworkInfo->s8rssi; - if ((pstrWFIDrv->strWILC_UsrScanReq.astrFoundNetworkInfo[pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid != NULL) + if ((hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid != NULL) && (pstrNetworkInfo->au8bssid != NULL)) { - memcpy(pstrWFIDrv->strWILC_UsrScanReq.astrFoundNetworkInfo[pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid, + memcpy(hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid, pstrNetworkInfo->au8bssid, 6); - pstrWFIDrv->strWILC_UsrScanReq.u32RcvdChCount++; + hif_drv->strWILC_UsrScanReq.u32RcvdChCount++; pstrNetworkInfo->bNewNetwork = true; /* add new BSS to JoinBssTable */ pJoinParams = host_int_ParseJoinBssParam(pstrNetworkInfo); - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_NETWORK_FOUND, pstrNetworkInfo, - pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid, + hif_drv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_NETWORK_FOUND, pstrNetworkInfo, + hif_drv->strWILC_UsrScanReq.u32UserScanPvoid, pJoinParams); @@ -2044,8 +2010,8 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *drvHandler, } else { pstrNetworkInfo->bNewNetwork = false; /* just call the User CallBack function to send the same discovered network with its updated RSSI */ - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_NETWORK_FOUND, pstrNetworkInfo, - pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); + hif_drv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_NETWORK_FOUND, pstrNetworkInfo, + hif_drv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); } } @@ -2074,7 +2040,7 @@ done: * @date * @version 1.0 */ -static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, +static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, struct rcvd_async_info *pstrRcvdGnrlAsyncInfo) { /* TODO: mostafa: till now, this function just handles only the received mac status msg, */ @@ -2091,20 +2057,19 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, tstrConnectInfo strConnectInfo; tstrDisconnectNotifInfo strDisconnectNotifInfo; s32 s32Err = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; - if (!pstrWFIDrv) { + if (!hif_drv) { PRINT_ER("Driver handler is NULL\n"); return -ENODEV; } - PRINT_D(GENERIC_DBG, "Current State = %d,Received state = %d\n", pstrWFIDrv->enuHostIFstate, + PRINT_D(GENERIC_DBG, "Current State = %d,Received state = %d\n", hif_drv->enuHostIFstate, pstrRcvdGnrlAsyncInfo->pu8Buffer[7]); - if ((pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) || - (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED) || - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { + if ((hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) || + (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) || + hif_drv->strWILC_UsrScanReq.pfUserScanResult) { if ((pstrRcvdGnrlAsyncInfo->pu8Buffer == NULL) || - (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult == NULL)) { + (hif_drv->strWILC_UsrConnReq.pfUserConnectResult == NULL)) { PRINT_ER("driver is null\n"); return -EINVAL; } @@ -2134,7 +2099,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, u8MacStatusReasonCode = pstrRcvdGnrlAsyncInfo->pu8Buffer[8]; u8MacStatusAdditionalInfo = pstrRcvdGnrlAsyncInfo->pu8Buffer[9]; PRINT_INFO(HOSTINF_DBG, "Recieved MAC status = %d with Reason = %d , Info = %d\n", u8MacStatus, u8MacStatusReasonCode, u8MacStatusAdditionalInfo); - if (pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { + if (hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { /* our station had sent Association Request frame, so here it will get the Association Response frame then parse it */ u32 u32RcvdAssocRespInfoLen; tstrConnectRespInfo *pstrConnectRespInfo = NULL; @@ -2146,7 +2111,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, if (u8MacStatus == MAC_CONNECTED) { memset(gapu8RcvdAssocResp, 0, MAX_ASSOC_RESP_FRAME_SIZE); - host_int_get_assoc_res_info(pstrWFIDrv, + host_int_get_assoc_res_info(hif_drv, gapu8RcvdAssocResp, MAX_ASSOC_RESP_FRAME_SIZE, &u32RcvdAssocRespInfoLen); @@ -2200,33 +2165,33 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, /* TODO: mostafa: correct BSSID should be retrieved from actual BSSID received from AP */ /* through a structure of type tstrConnectRespInfo */ - if (pstrWFIDrv->strWILC_UsrConnReq.pu8bssid != NULL) { + if (hif_drv->strWILC_UsrConnReq.pu8bssid != NULL) { PRINT_D(HOSTINF_DBG, "Retrieving actual BSSID from AP\n"); - memcpy(strConnectInfo.au8bssid, pstrWFIDrv->strWILC_UsrConnReq.pu8bssid, 6); + memcpy(strConnectInfo.au8bssid, hif_drv->strWILC_UsrConnReq.pu8bssid, 6); if ((u8MacStatus == MAC_CONNECTED) && (strConnectInfo.u16ConnectStatus == SUCCESSFUL_STATUSCODE)) { - memcpy(pstrWFIDrv->au8AssociatedBSSID, - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid, ETH_ALEN); + memcpy(hif_drv->au8AssociatedBSSID, + hif_drv->strWILC_UsrConnReq.pu8bssid, ETH_ALEN); } } - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { - strConnectInfo.ReqIEsLen = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen; - strConnectInfo.pu8ReqIEs = kmalloc(pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); + if (hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { + strConnectInfo.ReqIEsLen = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; + strConnectInfo.pu8ReqIEs = kmalloc(hif_drv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, - pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen); + hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen); } - del_timer(&pstrWFIDrv->hConnectTimer); - pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_CONN_RESP, + del_timer(&hif_drv->hConnectTimer); + hif_drv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_CONN_RESP, &strConnectInfo, u8MacStatus, NULL, - pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid); + hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid); /* if received mac status is MAC_CONNECTED and @@ -2234,10 +2199,10 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, * else change state to IDLE */ if ((u8MacStatus == MAC_CONNECTED) && (strConnectInfo.u16ConnectStatus == SUCCESSFUL_STATUSCODE)) { - host_int_set_power_mgmt(pstrWFIDrv, 0, 0); + host_int_set_power_mgmt(hif_drv, 0, 0); PRINT_D(HOSTINF_DBG, "MAC status : CONNECTED and Connect Status : Successful\n"); - pstrWFIDrv->enuHostIFstate = HOST_IF_CONNECTED; + hif_drv->enuHostIFstate = HOST_IF_CONNECTED; PRINT_D(GENERIC_DBG, "Obtaining an IP, Disable Scan\n"); g_obtainingIP = true; @@ -2249,7 +2214,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, /* BA_SESSION_DEFAULT_BUFFER_SIZE,BA_SESSION_DEFAULT_TIMEOUT); */ } else { PRINT_D(HOSTINF_DBG, "MAC status : %d and Connect Status : %d\n", u8MacStatus, strConnectInfo.u16ConnectStatus); - pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; + hif_drv->enuHostIFstate = HOST_IF_IDLE; gbScanWhileConnected = false; } @@ -2263,57 +2228,43 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, kfree(strConnectInfo.pu8ReqIEs); strConnectInfo.pu8ReqIEs = NULL; } - - - pstrWFIDrv->strWILC_UsrConnReq.ssidLen = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ssid != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid); - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = NULL; - } - - if (pstrWFIDrv->strWILC_UsrConnReq.pu8bssid != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid); - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = NULL; - } - - pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs); - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = NULL; - } - + hif_drv->strWILC_UsrConnReq.ssidLen = 0; + kfree(hif_drv->strWILC_UsrConnReq.pu8ssid); + kfree(hif_drv->strWILC_UsrConnReq.pu8bssid); + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; + kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); } else if ((u8MacStatus == MAC_DISCONNECTED) && - (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED)) { + (hif_drv->enuHostIFstate == HOST_IF_CONNECTED)) { /* Disassociation or Deauthentication frame has been received */ PRINT_D(HOSTINF_DBG, "Received MAC_DISCONNECTED from the FW\n"); memset(&strDisconnectNotifInfo, 0, sizeof(tstrDisconnectNotifInfo)); - if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { PRINT_D(HOSTINF_DBG, "\n\n<< Abort the running OBSS Scan >>\n\n"); - del_timer(&pstrWFIDrv->hScanTimer); - Handle_ScanDone((void *)pstrWFIDrv, SCAN_EVENT_ABORTED); + del_timer(&hif_drv->hScanTimer); + Handle_ScanDone((void *)hif_drv, SCAN_EVENT_ABORTED); } strDisconnectNotifInfo.u16reason = 0; strDisconnectNotifInfo.ie = NULL; strDisconnectNotifInfo.ie_len = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { + if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { g_obtainingIP = false; - host_int_set_power_mgmt(pstrWFIDrv, 0, 0); + host_int_set_power_mgmt(hif_drv, 0, 0); - pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_DISCONN_NOTIF, + hif_drv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_DISCONN_NOTIF, NULL, 0, &strDisconnectNotifInfo, - pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid); + hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid); } else { PRINT_ER("Connect result callback function is NULL\n"); } - eth_zero_addr(pstrWFIDrv->au8AssociatedBSSID); + eth_zero_addr(hif_drv->au8AssociatedBSSID); /* Deallocation */ @@ -2328,45 +2279,34 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, * } */ - pstrWFIDrv->strWILC_UsrConnReq.ssidLen = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ssid != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid); - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = NULL; - } - - if (pstrWFIDrv->strWILC_UsrConnReq.pu8bssid != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid); - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = NULL; - } - - pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs); - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = NULL; - } + hif_drv->strWILC_UsrConnReq.ssidLen = 0; + kfree(hif_drv->strWILC_UsrConnReq.pu8ssid); + kfree(hif_drv->strWILC_UsrConnReq.pu8bssid); + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; + kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); /*Freeing flushed join request params on receiving*/ /*MAC_DISCONNECTED while connected*/ - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { + if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { + if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedInfoElemAsoc); gu8FlushedInfoElemAsoc = NULL; } - pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; + hif_drv->enuHostIFstate = HOST_IF_IDLE; gbScanWhileConnected = false; } else if ((u8MacStatus == MAC_DISCONNECTED) && - (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL)) { + (hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL)) { PRINT_D(HOSTINF_DBG, "Received MAC_DISCONNECTED from the FW while scanning\n"); PRINT_D(HOSTINF_DBG, "\n\n<< Abort the running Scan >>\n\n"); /*Abort the running scan*/ - del_timer(&pstrWFIDrv->hScanTimer); - if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) - Handle_ScanDone(pstrWFIDrv, SCAN_EVENT_ABORTED); + del_timer(&hif_drv->hScanTimer); + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) + Handle_ScanDone(hif_drv, SCAN_EVENT_ABORTED); } @@ -2390,7 +2330,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *drvHandler, * @date * @version 1.0 */ -static int Handle_Key(struct host_if_drv *drvHandler, +static int Handle_Key(struct host_if_drv *hif_drv, struct key_attr *pstrHostIFkeyAttr) { s32 s32Error = 0; @@ -2400,8 +2340,6 @@ static int Handle_Key(struct host_if_drv *drvHandler, u8 *pu8keybuf; s8 s8idxarray[1]; s8 ret = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - switch (pstrHostIFkeyAttr->enuKeyType) { @@ -2450,7 +2388,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, s32Error = send_config_pkt(SET_CFG, strWIDList, 4, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); @@ -2478,7 +2416,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.size = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); } else if (pstrHostIFkeyAttr->u8KeyAction & REMOVEKEY) { @@ -2491,7 +2429,7 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.size = 1; s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); } else { strWID.id = (u16)WID_KEY_ID; strWID.type = WID_CHAR; @@ -2501,9 +2439,9 @@ static int Handle_Key(struct host_if_drv *drvHandler, PRINT_D(HOSTINF_DBG, "Setting default key index\n"); s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); } - up(&(pstrWFIDrv->hSemTestKeyBlock)); + up(&hif_drv->hSemTestKeyBlock); break; case WPARxGtk: @@ -2547,12 +2485,12 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWIDList[1].size = RX_MIC_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, strWIDList, 2, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); /* ////////////////////////// */ - up(&(pstrWFIDrv->hSemTestKeyBlock)); + up(&hif_drv->hSemTestKeyBlock); /* ///////////////////////// */ } @@ -2574,8 +2512,8 @@ static int Handle_Key(struct host_if_drv *drvHandler, * |------------|---------|-------|------------|---------------|----------------| | 6 bytes | 8 byte |1 byte | 1 byte | 16 bytes | 8 bytes |*/ - if (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED) - memcpy(pu8keybuf, pstrWFIDrv->au8AssociatedBSSID, ETH_ALEN); + if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) + memcpy(pu8keybuf, hif_drv->au8AssociatedBSSID, ETH_ALEN); else PRINT_ER("Couldn't handle WPARxGtk while enuHostIFstate is not HOST_IF_CONNECTED\n"); @@ -2593,12 +2531,12 @@ static int Handle_Key(struct host_if_drv *drvHandler, strWID.size = RX_MIC_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); /* ////////////////////////// */ - up(&(pstrWFIDrv->hSemTestKeyBlock)); + up(&hif_drv->hSemTestKeyBlock); /* ///////////////////////// */ } _WPARxGtk_end_case_: @@ -2650,11 +2588,11 @@ _WPARxGtk_end_case_: strWIDList[1].size = PTK_KEY_MSG_LEN + 1; s32Error = send_config_pkt(SET_CFG, strWIDList, 2, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); /* ////////////////////////// */ - up(&(pstrWFIDrv->hSemTestKeyBlock)); + up(&hif_drv->hSemTestKeyBlock); /* ///////////////////////// */ } if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { @@ -2691,11 +2629,11 @@ _WPARxGtk_end_case_: strWID.size = PTK_KEY_MSG_LEN; s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); /* ////////////////////////// */ - up(&(pstrWFIDrv->hSemTestKeyBlock)); + up(&hif_drv->hSemTestKeyBlock); /* ///////////////////////// */ } @@ -2731,7 +2669,7 @@ _WPAPtk_end_case_: strWID.size = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); break; @@ -2754,14 +2692,12 @@ _WPAPtk_end_case_: * @date * @version 1.0 */ -static void Handle_Disconnect(struct host_if_drv *drvHandler) +static void Handle_Disconnect(struct host_if_drv *hif_drv) { struct wid strWID; s32 s32Error = 0; u16 u16DummyReasonCode = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; @@ -2773,12 +2709,12 @@ static void Handle_Disconnect(struct host_if_drv *drvHandler) PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); g_obtainingIP = false; - host_int_set_power_mgmt(pstrWFIDrv, 0, 0); + host_int_set_power_mgmt(hif_drv, 0, 0); eth_zero_addr(u8ConnectedSSID); s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("Failed to send dissconect config packet\n"); @@ -2791,59 +2727,47 @@ static void Handle_Disconnect(struct host_if_drv *drvHandler) strDisconnectNotifInfo.ie = NULL; strDisconnectNotifInfo.ie_len = 0; - if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { - del_timer(&pstrWFIDrv->hScanTimer); - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_ABORTED, NULL, - pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { + del_timer(&hif_drv->hScanTimer); + hif_drv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_ABORTED, NULL, + hif_drv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult = NULL; + hif_drv->strWILC_UsrScanReq.pfUserScanResult = NULL; } - if (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { + if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { /*Stop connect timer, if connection in progress*/ - if (pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { + if (hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { PRINT_D(HOSTINF_DBG, "Upper layer requested termination of connection\n"); - del_timer(&pstrWFIDrv->hConnectTimer); + del_timer(&hif_drv->hConnectTimer); } - pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_DISCONN_NOTIF, NULL, - 0, &strDisconnectNotifInfo, pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid); + hif_drv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_DISCONN_NOTIF, NULL, + 0, &strDisconnectNotifInfo, hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid); } else { PRINT_ER("strWILC_UsrConnReq.pfUserConnectResult = NULL\n"); } gbScanWhileConnected = false; - pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; + hif_drv->enuHostIFstate = HOST_IF_IDLE; - eth_zero_addr(pstrWFIDrv->au8AssociatedBSSID); + eth_zero_addr(hif_drv->au8AssociatedBSSID); /* Deallocation */ - pstrWFIDrv->strWILC_UsrConnReq.ssidLen = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ssid != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid); - pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = NULL; - } + hif_drv->strWILC_UsrConnReq.ssidLen = 0; + kfree(hif_drv->strWILC_UsrConnReq.pu8ssid); + kfree(hif_drv->strWILC_UsrConnReq.pu8bssid); + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; + kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); - if (pstrWFIDrv->strWILC_UsrConnReq.pu8bssid != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid); - pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = NULL; - } - - pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = 0; - if (pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { - kfree(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs); - pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = NULL; - } - - - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { + if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == drvHandler) { + if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedInfoElemAsoc); gu8FlushedInfoElemAsoc = NULL; } @@ -2851,22 +2775,19 @@ static void Handle_Disconnect(struct host_if_drv *drvHandler) } /* ////////////////////////// */ - up(&(pstrWFIDrv->hSemTestDisconnectBlock)); + up(&hif_drv->hSemTestDisconnectBlock); /* ///////////////////////// */ } -void resolve_disconnect_aberration(struct host_if_drv *drvHandler) +void resolve_disconnect_aberration(struct host_if_drv *hif_drv) { - struct host_if_drv *pstrWFIDrv; - - pstrWFIDrv = (struct host_if_drv *)drvHandler; - if (pstrWFIDrv == NULL) + if (!hif_drv) return; - if ((pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) || (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTING)) { + if ((hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) || (hif_drv->enuHostIFstate == HOST_IF_CONNECTING)) { PRINT_D(HOSTINF_DBG, "\n\n<< correcting Supplicant state machine >>\n\n"); - host_int_disconnect(pstrWFIDrv, 1); + host_int_disconnect(hif_drv, 1); } } @@ -2880,12 +2801,11 @@ void resolve_disconnect_aberration(struct host_if_drv *drvHandler) * @date * @version 1.0 */ -static s32 Handle_GetChnl(struct host_if_drv *drvHandler) +static s32 Handle_GetChnl(struct host_if_drv *hif_drv) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; @@ -2895,14 +2815,14 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) PRINT_D(HOSTINF_DBG, "Getting channel value\n"); s32Error = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get channel number\n"); s32Error = -EFAULT; } - up(&(pstrWFIDrv->hSemGetCHNL)); + up(&hif_drv->hSemGetCHNL); return s32Error; @@ -2920,11 +2840,10 @@ static s32 Handle_GetChnl(struct host_if_drv *drvHandler) * @date * @version 1.0 */ -static void Handle_GetRssi(struct host_if_drv *drvHandler) +static void Handle_GetRssi(struct host_if_drv *hif_drv) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.id = (u16)WID_RSSI; strWID.type = WID_CHAR; @@ -2935,23 +2854,22 @@ static void Handle_GetRssi(struct host_if_drv *drvHandler) PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); s32Error = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("Failed to get RSSI value\n"); s32Error = -EFAULT; } - up(&(pstrWFIDrv->hSemGetRSSI)); + up(&hif_drv->hSemGetRSSI); } -static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) +static void Handle_GetLinkspeed(struct host_if_drv *hif_drv) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; gs8lnkspd = 0; @@ -2963,18 +2881,18 @@ static void Handle_GetLinkspeed(struct host_if_drv *drvHandler) PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); s32Error = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("Failed to get LINKSPEED value\n"); s32Error = -EFAULT; } - up(&(pstrWFIDrv->hSemGetLINKSPEED)); + up(&(hif_drv->hSemGetLINKSPEED)); } -s32 Handle_GetStatistics(struct host_if_drv *drvHandler, struct rf_info *pstrStatistics) +s32 Handle_GetStatistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatistics) { struct wid strWIDList[5]; u32 u32WidsCount = 0, s32Error = 0; @@ -3010,7 +2928,7 @@ s32 Handle_GetStatistics(struct host_if_drv *drvHandler, struct rf_info *pstrSta u32WidsCount++; s32Error = send_config_pkt(GET_CFG, strWIDList, u32WidsCount, - get_id_from_handler(drvHandler)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send scan paramters config packet\n"); @@ -3031,15 +2949,13 @@ s32 Handle_GetStatistics(struct host_if_drv *drvHandler, struct rf_info *pstrSta * @date * @version 1.0 */ -static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, +static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, struct sta_inactive_t *strHostIfStaInactiveT) { s32 s32Error = 0; u8 *stamac; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; - strWID.id = (u16)WID_SET_STA_MAC_INACTIVE_TIME; strWID.type = WID_STR; @@ -3055,7 +2971,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to SET incative time\n"); @@ -3070,7 +2986,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, s32Error = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get incative time\n"); @@ -3080,7 +2996,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, PRINT_D(CFG80211_DBG, "Getting inactive time : %d\n", gu32InactiveTime); - up(&(pstrWFIDrv->hSemInactiveTime)); + up(&hif_drv->hSemInactiveTime); return s32Error; @@ -3098,13 +3014,12 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *drvHandler, * @date * @version 1.0 */ -static void Handle_AddBeacon(struct host_if_drv *drvHandler, +static void Handle_AddBeacon(struct host_if_drv *hif_drv, struct beacon_attr *pstrSetBeaconParam) { s32 s32Error = 0; struct wid strWID; u8 *pu8CurrByte; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Adding BEACON\n"); @@ -3147,7 +3062,7 @@ static void Handle_AddBeacon(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send add beacon config packet\n"); @@ -3167,12 +3082,11 @@ ERRORHANDLER: * @date * @version 1.0 */ -static void Handle_DelBeacon(struct host_if_drv *drvHandler) +static void Handle_DelBeacon(struct host_if_drv *hif_drv) { s32 s32Error = 0; struct wid strWID; u8 *pu8CurrByte; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.id = (u16)WID_DEL_BEACON; strWID.type = WID_CHAR; @@ -3189,7 +3103,7 @@ static void Handle_DelBeacon(struct host_if_drv *drvHandler) /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send delete beacon config packet\n"); } @@ -3259,13 +3173,12 @@ static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, * @date * @version 1.0 */ -static void Handle_AddStation(struct host_if_drv *drvHandler, +static void Handle_AddStation(struct host_if_drv *hif_drv, struct add_sta_param *pstrStationParam) { s32 s32Error = 0; struct wid strWID; u8 *pu8CurrByte; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Handling add station\n"); strWID.id = (u16)WID_ADD_STA; @@ -3281,7 +3194,7 @@ static void Handle_AddStation(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error != 0) PRINT_ER("Failed to send add station config packet\n"); @@ -3299,14 +3212,13 @@ ERRORHANDLER: * @date * @version 1.0 */ -static void Handle_DelAllSta(struct host_if_drv *drvHandler, +static void Handle_DelAllSta(struct host_if_drv *hif_drv, struct del_all_sta *pstrDelAllStaParam) { s32 s32Error = 0; struct wid strWID; u8 *pu8CurrByte; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; u8 i; u8 au8Zero_Buff[6] = {0}; @@ -3335,7 +3247,7 @@ static void Handle_DelAllSta(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send add station config packet\n"); @@ -3355,13 +3267,12 @@ ERRORHANDLER: * @date * @version 1.0 */ -static void Handle_DelStation(struct host_if_drv *drvHandler, +static void Handle_DelStation(struct host_if_drv *hif_drv, struct del_sta *pstrDelStaParam) { s32 s32Error = 0; struct wid strWID; u8 *pu8CurrByte; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.id = (u16)WID_REMOVE_STA; strWID.type = WID_BIN; @@ -3379,7 +3290,7 @@ static void Handle_DelStation(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send add station config packet\n"); @@ -3397,13 +3308,12 @@ ERRORHANDLER: * @date * @version 1.0 */ -static void Handle_EditStation(struct host_if_drv *drvHandler, +static void Handle_EditStation(struct host_if_drv *hif_drv, struct add_sta_param *pstrStationParam) { s32 s32Error = 0; struct wid strWID; u8 *pu8CurrByte; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.id = (u16)WID_EDIT_STA; strWID.type = WID_BIN; @@ -3419,7 +3329,7 @@ static void Handle_EditStation(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send edit station config packet\n"); @@ -3437,33 +3347,32 @@ ERRORHANDLER: * @date * @version 1.0 */ -static int Handle_RemainOnChan(struct host_if_drv *drvHandler, +static int Handle_RemainOnChan(struct host_if_drv *hif_drv, struct remain_ch *pstrHostIfRemainOnChan) { s32 s32Error = 0; u8 u8remain_on_chan_flag; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; /*If it's a pendig remain-on-channel, don't overwrite gWFiDrvHandle values (since incoming msg is garbbage)*/ - if (!pstrWFIDrv->u8RemainOnChan_pendingreq) { - pstrWFIDrv->strHostIfRemainOnChan.pVoid = pstrHostIfRemainOnChan->pVoid; - pstrWFIDrv->strHostIfRemainOnChan.pRemainOnChanExpired = pstrHostIfRemainOnChan->pRemainOnChanExpired; - pstrWFIDrv->strHostIfRemainOnChan.pRemainOnChanReady = pstrHostIfRemainOnChan->pRemainOnChanReady; - pstrWFIDrv->strHostIfRemainOnChan.u16Channel = pstrHostIfRemainOnChan->u16Channel; - pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID = pstrHostIfRemainOnChan->u32ListenSessionID; + if (!hif_drv->u8RemainOnChan_pendingreq) { + hif_drv->strHostIfRemainOnChan.pVoid = pstrHostIfRemainOnChan->pVoid; + hif_drv->strHostIfRemainOnChan.pRemainOnChanExpired = pstrHostIfRemainOnChan->pRemainOnChanExpired; + hif_drv->strHostIfRemainOnChan.pRemainOnChanReady = pstrHostIfRemainOnChan->pRemainOnChanReady; + hif_drv->strHostIfRemainOnChan.u16Channel = pstrHostIfRemainOnChan->u16Channel; + hif_drv->strHostIfRemainOnChan.u32ListenSessionID = pstrHostIfRemainOnChan->u32ListenSessionID; } else { /*Set the channel to use it as a wid val*/ - pstrHostIfRemainOnChan->u16Channel = pstrWFIDrv->strHostIfRemainOnChan.u16Channel; + pstrHostIfRemainOnChan->u16Channel = hif_drv->strHostIfRemainOnChan.u16Channel; } - if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while scanning return\n"); - pstrWFIDrv->u8RemainOnChan_pendingreq = 1; + hif_drv->u8RemainOnChan_pendingreq = 1; s32Error = -EBUSY; goto ERRORHANDLER; } - if (pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { + if (hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while connecting return\n"); s32Error = -EBUSY; goto ERRORHANDLER; @@ -3493,24 +3402,24 @@ static int Handle_RemainOnChan(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error != 0) PRINT_ER("Failed to set remain on channel\n"); ERRORHANDLER: { P2P_LISTEN_STATE = 1; - pstrWFIDrv->hRemainOnChannel.data = (unsigned long)pstrWFIDrv; - mod_timer(&pstrWFIDrv->hRemainOnChannel, + hif_drv->hRemainOnChannel.data = (unsigned long)hif_drv; + mod_timer(&hif_drv->hRemainOnChannel, jiffies + msecs_to_jiffies(pstrHostIfRemainOnChan->u32duration)); /*Calling CFG ready_on_channel*/ - if (pstrWFIDrv->strHostIfRemainOnChan.pRemainOnChanReady) - pstrWFIDrv->strHostIfRemainOnChan.pRemainOnChanReady(pstrWFIDrv->strHostIfRemainOnChan.pVoid); + if (hif_drv->strHostIfRemainOnChan.pRemainOnChanReady) + hif_drv->strHostIfRemainOnChan.pRemainOnChanReady(hif_drv->strHostIfRemainOnChan.pVoid); - if (pstrWFIDrv->u8RemainOnChan_pendingreq) - pstrWFIDrv->u8RemainOnChan_pendingreq = 0; + if (hif_drv->u8RemainOnChan_pendingreq) + hif_drv->u8RemainOnChan_pendingreq = 0; } return s32Error; } @@ -3524,13 +3433,12 @@ ERRORHANDLER: * @date * @version 1.0 */ -static int Handle_RegisterFrame(struct host_if_drv *drvHandler, +static int Handle_RegisterFrame(struct host_if_drv *hif_drv, struct reg_frame *pstrHostIfRegisterFrame) { s32 s32Error = 0; struct wid strWID; u8 *pu8CurrByte; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Handling frame register Flag : %d FrameType: %d\n", pstrHostIfRegisterFrame->bReg, pstrHostIfRegisterFrame->u16FrameType); @@ -3553,7 +3461,7 @@ static int Handle_RegisterFrame(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { PRINT_ER("Failed to frame register config packet\n"); s32Error = -EINVAL; @@ -3573,13 +3481,12 @@ static int Handle_RegisterFrame(struct host_if_drv *drvHandler, * @version 1.0 */ #define FALSE_FRMWR_CHANNEL 100 -static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, +static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, struct remain_ch *pstrHostIfRemainOnChan) { u8 u8remain_on_chan_flag; struct wid strWID; s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *) drvHandler; PRINT_D(HOSTINF_DBG, "CANCEL REMAIN ON CHAN\n"); @@ -3600,14 +3507,14 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error != 0) { PRINT_ER("Failed to set remain on channel\n"); goto _done_; } - if (pstrWFIDrv->strHostIfRemainOnChan.pRemainOnChanExpired) { - pstrWFIDrv->strHostIfRemainOnChan.pRemainOnChanExpired(pstrWFIDrv->strHostIfRemainOnChan.pVoid + if (hif_drv->strHostIfRemainOnChan.pRemainOnChanExpired) { + hif_drv->strHostIfRemainOnChan.pRemainOnChanExpired(hif_drv->strHostIfRemainOnChan.pVoid , pstrHostIfRemainOnChan->u32ListenSessionID); } P2P_LISTEN_STATE = 0; @@ -3634,15 +3541,15 @@ static void ListenTimerCB(unsigned long arg) { s32 s32Error = 0; struct host_if_msg msg; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)arg; + struct host_if_drv *hif_drv = (struct host_if_drv *)arg; /*Stopping remain-on-channel timer*/ - del_timer(&pstrWFIDrv->hRemainOnChannel); + del_timer(&hif_drv->hRemainOnChannel); /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; - msg.drv = pstrWFIDrv; - msg.body.remain_on_ch.u32ListenSessionID = pstrWFIDrv->strHostIfRemainOnChan.u32ListenSessionID; + msg.drv = hif_drv; + msg.body.remain_on_ch.u32ListenSessionID = hif_drv->strHostIfRemainOnChan.u32ListenSessionID; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -3659,13 +3566,12 @@ static void ListenTimerCB(unsigned long arg) * @date * @version 1.0 */ -static void Handle_PowerManagement(struct host_if_drv *drvHandler, +static void Handle_PowerManagement(struct host_if_drv *hif_drv, struct power_mgmt_param *strPowerMgmtParam) { s32 s32Error = 0; struct wid strWID; s8 s8PowerMode; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; strWID.id = (u16)WID_POWER_MANAGEMENT; @@ -3681,7 +3587,7 @@ static void Handle_PowerManagement(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send power management config packet\n"); } @@ -3695,7 +3601,7 @@ static void Handle_PowerManagement(struct host_if_drv *drvHandler, * @date * @version 1.0 */ -static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, +static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, struct set_multicast *strHostIfSetMulti) { s32 s32Error = 0; @@ -3727,7 +3633,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *drvHandler, /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(drvHandler)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send setup multicast config packet\n"); @@ -3746,14 +3652,13 @@ ERRORHANDLER: * @date Feb. 2014 * @version 9.0 */ -static s32 Handle_AddBASession(struct host_if_drv *drvHandler, +static s32 Handle_AddBASession(struct host_if_drv *hif_drv, struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; struct wid strWID; int AddbaTimeout = 100; char *ptr = NULL; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(HOSTINF_DBG, "Opening Block Ack session with\nBSSID = %.2x:%.2x:%.2x\nTID=%d\nBufferSize == %d\nSessionTimeOut = %d\n", strHostIfBASessionInfo->au8Bssid[0], @@ -3792,7 +3697,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, *ptr++ = 0; s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't open BA Session\n"); @@ -3817,7 +3722,7 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, /*Ack-Policy */ *ptr++ = 3; s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (strWID.val != NULL) kfree(strWID.val); @@ -3835,13 +3740,12 @@ static s32 Handle_AddBASession(struct host_if_drv *drvHandler, * @date Feb. 2013 * @version 9.0 */ -static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, +static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, struct ba_session_info *strHostIfBASessionInfo) { s32 s32Error = 0; struct wid strWID; char *ptr = NULL; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)drvHandler; PRINT_D(GENERIC_DBG, "Delete Block Ack session with\nBSSID = %.2x:%.2x:%.2x\nTID=%d\n", strHostIfBASessionInfo->au8Bssid[0], @@ -3866,7 +3770,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *drvHandler, *ptr++ = 32; /* Unspecific QOS reason */ s32Error = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); @@ -3893,13 +3797,13 @@ static int hostIFthread(void *pvArg) { u32 u32Ret; struct host_if_msg msg; - struct host_if_drv *pstrWFIDrv; + struct host_if_drv *hif_drv; memset(&msg, 0, sizeof(struct host_if_msg)); while (1) { wilc_mq_recv(&gMsgQHostIF, &msg, sizeof(struct host_if_msg), &u32Ret); - pstrWFIDrv = (struct host_if_drv *)msg.drv; + hif_drv = (struct host_if_drv *)msg.drv; if (msg.id == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); break; @@ -3914,7 +3818,7 @@ static int hostIFthread(void *pvArg) continue; } - if (msg.id == HOST_IF_MSG_CONNECT && pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { + if (msg.id == HOST_IF_MSG_CONNECT && hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_D(HOSTINF_DBG, "Requeue connect request till scan done received\n"); wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); usleep_range(2 * 1000, 2 * 1000); @@ -3964,7 +3868,7 @@ static int hostIFthread(void *pvArg) break; case HOST_IF_MSG_RCVD_SCAN_COMPLETE: - del_timer(&pstrWFIDrv->hScanTimer); + del_timer(&hif_drv->hScanTimer); PRINT_D(HOSTINF_DBG, "scan completed successfully\n"); /*Allow chip sleep, only if both interfaces are not connected*/ @@ -3973,7 +3877,7 @@ static int hostIFthread(void *pvArg) Handle_ScanDone(msg.drv, SCAN_EVENT_DONE); - if (pstrWFIDrv->u8RemainOnChan_pendingreq) + if (hif_drv->u8RemainOnChan_pendingreq) Handle_RemainOnChan(msg.drv, &msg.body.remain_on_ch); break; @@ -4144,7 +4048,7 @@ static void TimerCB_Connect(unsigned long arg) * @version 1.0 */ /* Check implementation in core adding 9 bytes to the input! */ -s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) +s32 host_int_remove_key(struct host_if_drv *hif_drv, const u8 *pu8StaAddress) { struct wid strWID; @@ -4170,12 +4074,12 @@ s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress) * @date 8 March 2012 * @version 1.0 */ -int host_int_remove_wep_key(struct host_if_drv *wfi_drv, u8 index) +int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) { int result = 0; struct host_if_msg msg; - if (!wfi_drv) { + if (!hif_drv) { result = -EFAULT; PRINT_ER("Failed to send setup multicast config packet\n"); return result; @@ -4187,7 +4091,7 @@ int host_int_remove_wep_key(struct host_if_drv *wfi_drv, u8 index) msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = REMOVEKEY; - msg.drv = wfi_drv; + msg.drv = hif_drv; msg.body.key_info. uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = index; @@ -4196,7 +4100,7 @@ int host_int_remove_wep_key(struct host_if_drv *wfi_drv, u8 index) result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); - down(&wfi_drv->hSemTestKeyBlock); + down(&hif_drv->hSemTestKeyBlock); return result; } @@ -4213,14 +4117,13 @@ int host_int_remove_wep_key(struct host_if_drv *wfi_drv, u8 index) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hWFIDrv, u8 u8Index) +s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { s32Error = -EFAULT; PRINT_ER("driver is null\n"); return s32Error; @@ -4233,7 +4136,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hWFIDrv, u8 u8Index) msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = DEFAULTKEY; - msg.drv = hWFIDrv; + msg.drv = hif_drv; msg.body.key_info. @@ -4243,7 +4146,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hWFIDrv, u8 u8Index) s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Default key index\n"); - down(&(pstrWFIDrv->hSemTestKeyBlock)); + down(&hif_drv->hSemTestKeyBlock); return s32Error; } @@ -4267,14 +4170,16 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hWFIDrv, u8 u8Index) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx) +s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, + const u8 *pu8WepKey, + u8 u8WepKeylen, + u8 u8Keyidx) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { s32Error = -EFAULT; PRINT_ER("driver is null\n"); return s32Error; @@ -4287,7 +4192,7 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hWFIDrv, const u8 *pu8WepKe msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = ADDKEY; - msg.drv = hWFIDrv; + msg.drv = hif_drv; msg.body.key_info. @@ -4307,7 +4212,7 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hWFIDrv, const u8 *pu8WepKe s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); - down(&(pstrWFIDrv->hSemTestKeyBlock)); + down(&hif_drv->hSemTestKeyBlock); return s32Error; @@ -4329,15 +4234,19 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hWFIDrv, const u8 *pu8WepKe * @date 28 FEB 2013 * @version 1.0 */ -s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, enum AUTHTYPE tenuAuth_type) +s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, + const u8 *pu8WepKey, + u8 u8WepKeylen, + u8 u8Keyidx, + u8 u8mode, + enum AUTHTYPE tenuAuth_type) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; u8 i; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { s32Error = -EFAULT; PRINT_ER("driver is null\n"); return s32Error; @@ -4353,7 +4262,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = ADDKEY_AP; - msg.drv = hWFIDrv; + msg.drv = hif_drv; msg.body.key_info. @@ -4380,7 +4289,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); - down(&(pstrWFIDrv->hSemTestKeyBlock)); + down(&hif_drv->hSemTestKeyBlock); return s32Error; @@ -4402,16 +4311,17 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_ptk(struct host_if_drv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen, - const u8 *mac_addr, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode, u8 u8Idx) +s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, + u8 u8PtkKeylen, const u8 *mac_addr, + const u8 *pu8RxMic, const u8 *pu8TxMic, + u8 mode, u8 u8Ciphermode, u8 u8Idx) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; u8 u8KeyLen = u8PtkKeylen; u32 i; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { s32Error = -EFAULT; PRINT_ER("driver is null\n"); return s32Error; @@ -4469,7 +4379,7 @@ s32 host_int_add_ptk(struct host_if_drv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeyl uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; msg.body.key_info. uniHostIFkeyAttr.strHostIFwpaAttr.pu8macaddr = mac_addr; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4478,7 +4388,7 @@ s32 host_int_add_ptk(struct host_if_drv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeyl PRINT_ER("Error in sending message queue: PTK Key\n"); /* ////////////// */ - down(&(pstrWFIDrv->hSemTestKeyBlock)); + down(&hif_drv->hSemTestKeyBlock); /* /////// */ return s32Error; @@ -4497,16 +4407,17 @@ s32 host_int_add_ptk(struct host_if_drv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeyl * @date 8 March 2012 * @version 1.0 */ -s32 host_int_add_rx_gtk(struct host_if_drv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKeylen, - u8 u8KeyIdx, u32 u32KeyRSClen, const u8 *KeyRSC, - const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode) +s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, + u8 u8GtkKeylen, u8 u8KeyIdx, + u32 u32KeyRSClen, const u8 *KeyRSC, + const u8 *pu8RxMic, const u8 *pu8TxMic, + u8 mode, u8 u8Ciphermode) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; u8 u8KeyLen = u8GtkKeylen; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { s32Error = -EFAULT; PRINT_ER("driver is null\n"); return s32Error; @@ -4530,7 +4441,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hWFIDrv, const u8 *pu8RxGtk, u8 u8Gt msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = WPARxGtk; - msg.drv = hWFIDrv; + msg.drv = hif_drv; if (mode == AP_MODE) { msg.body.key_info.u8KeyAction = ADDKEY_AP; @@ -4574,7 +4485,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hWFIDrv, const u8 *pu8RxGtk, u8 u8Gt if (s32Error) PRINT_ER("Error in sending message queue: RX GTK\n"); /* ////////////// */ - down(&(pstrWFIDrv->hSemTestKeyBlock)); + down(&hif_drv->hSemTestKeyBlock); /* /////// */ return s32Error; @@ -4600,15 +4511,14 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hWFIDrv, const u8 *pu8RxGtk, u8 u8Gt * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_attr *pu8PmkidInfoArray) +s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_attr *pu8PmkidInfoArray) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; u32 i; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { s32Error = -EFAULT; PRINT_ER("driver is null\n"); return s32Error; @@ -4620,7 +4530,7 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_at msg.id = HOST_IF_MSG_KEY; msg.body.key_info.enuKeyType = PMKSA; msg.body.key_info.u8KeyAction = ADDKEY; - msg.drv = hWFIDrv; + msg.drv = hif_drv; for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { @@ -4660,8 +4570,9 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_at * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, - u32 u32PmkidInfoLen) +s32 host_int_get_pmkid_info(struct host_if_drv *hif_drv, + u8 *pu8PmkidInfoArray, + u32 u32PmkidInfoLen) { struct wid strWID; @@ -4687,8 +4598,9 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase, - u8 u8Psklength) +s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hif_drv, + u8 *pu8PassPhrase, + u8 u8Psklength) { struct wid strWID; @@ -4713,7 +4625,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8Pas * @date 19 April 2012 * @version 1.0 */ -s32 host_int_get_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) +s32 host_int_get_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) { s32 s32Error = 0; struct host_if_msg msg; @@ -4724,7 +4636,7 @@ s32 host_int_get_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) msg.id = HOST_IF_MSG_GET_MAC_ADDRESS; msg.body.get_mac_info.u8MacAddress = pu8MacAddress; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { @@ -4747,7 +4659,7 @@ s32 host_int_get_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) * @date 16 July 2012 * @version 1.0 */ -s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) +s32 host_int_set_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) { s32 s32Error = 0; struct host_if_msg msg; @@ -4758,7 +4670,7 @@ s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_MAC_ADDRESS; memcpy(msg.body.set_mac_info.u8MacAddress, pu8MacAddress, ETH_ALEN); - msg.drv = hWFIDrv; + msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -4782,8 +4694,8 @@ s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, - u8 *pu8PassPhrase, u8 u8Psklength) +s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hif_drv, + u8 *pu8PassPhrase, u8 u8Psklength) { struct wid strWID; @@ -4810,7 +4722,7 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) +s32 host_int_set_start_scan_req(struct host_if_drv *hif_drv, u8 scanSource) { struct wid strWID; @@ -4838,7 +4750,7 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource) * @version 1.0 */ -s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) +s32 host_int_get_start_scan_req(struct host_if_drv *hif_drv, u8 *pu8ScanSource) { struct wid strWID; @@ -4861,26 +4773,24 @@ s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, - const u8 *pu8ssid, size_t ssidLen, - const u8 *pu8IEs, size_t IEsLen, - wilc_connect_result pfConnectResult, void *pvUserArg, - u8 u8security, enum AUTHTYPE tenuAuth_type, - u8 u8channel, - void *pJoinParams) +s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, + const u8 *pu8ssid, size_t ssidLen, + const u8 *pu8IEs, size_t IEsLen, + wilc_connect_result pfConnectResult, void *pvUserArg, + u8 u8security, enum AUTHTYPE tenuAuth_type, + u8 u8channel, void *pJoinParams) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; enum scan_conn_timer enuScanConnTimer; - if (pstrWFIDrv == NULL || pfConnectResult == NULL) { + if (!hif_drv || pfConnectResult == NULL) { s32Error = -EFAULT; PRINT_ER("Driver is null\n"); return s32Error; } - if (hWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("Driver is null\n"); return -EFAULT; } @@ -4901,7 +4811,7 @@ s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, msg.body.con_info.pfConnectResult = pfConnectResult; msg.body.con_info.pvUserArg = pvUserArg; msg.body.con_info.pJoinParams = pJoinParams; - msg.drv = hWFIDrv; + msg.drv = hif_drv ; if (pu8bssid != NULL) { msg.body.con_info.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ @@ -4923,10 +4833,10 @@ s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, memcpy(msg.body.con_info.pu8IEs, pu8IEs, IEsLen); } - if (pstrWFIDrv->enuHostIFstate < HOST_IF_CONNECTING) - pstrWFIDrv->enuHostIFstate = HOST_IF_CONNECTING; + if (hif_drv->enuHostIFstate < HOST_IF_CONNECTING) + hif_drv->enuHostIFstate = HOST_IF_CONNECTING; else - PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", pstrWFIDrv->enuHostIFstate); + PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", hif_drv->enuHostIFstate); /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4936,8 +4846,8 @@ s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, } enuScanConnTimer = CONNECT_TIMER; - pstrWFIDrv->hConnectTimer.data = (unsigned long)hWFIDrv; - mod_timer(&pstrWFIDrv->hConnectTimer, + hif_drv->hConnectTimer.data = (unsigned long)hif_drv; + mod_timer(&hif_drv->hConnectTimer, jiffies + msecs_to_jiffies(HOST_IF_CONNECT_TIMEOUT)); return s32Error; @@ -4955,7 +4865,7 @@ s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid, * @version 8.0 */ -s32 host_int_flush_join_req(struct host_if_drv *hWFIDrv) +s32 host_int_flush_join_req(struct host_if_drv *hif_drv) { s32 s32Error = 0; struct host_if_msg msg; @@ -4966,14 +4876,14 @@ s32 host_int_flush_join_req(struct host_if_drv *hWFIDrv) } - if (hWFIDrv == NULL) { + if (!hif_drv) { s32Error = -EFAULT; PRINT_ER("Driver is null\n"); return s32Error; } msg.id = HOST_IF_MSG_FLUSH_CONNECT; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4996,13 +4906,12 @@ s32 host_int_flush_join_req(struct host_if_drv *hWFIDrv) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode) +s32 host_int_disconnect(struct host_if_drv *hif_drv, u16 u16ReasonCode) { s32 s32Error = 0; struct host_if_msg msg; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("Driver is null\n"); return -EFAULT; } @@ -5011,14 +4920,14 @@ s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_DISCONNECT; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: disconnect\n"); /* ////////////// */ - down(&(pstrWFIDrv->hSemTestDisconnectBlock)); + down(&hif_drv->hSemTestDisconnectBlock); /* /////// */ return s32Error; @@ -5035,7 +4944,7 @@ s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) +s32 host_int_disconnect_station(struct host_if_drv *hif_drv, u8 assoc_id) { struct wid strWID; @@ -5073,7 +4982,7 @@ s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id) * @version 1.0 */ -s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo, +s32 host_int_get_assoc_req_info(struct host_if_drv *hif_drv, u8 *pu8AssocReqInfo, u32 u32AssocReqInfoLen) { struct wid strWID; @@ -5097,14 +5006,13 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInfo, +s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInfo, u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("Driver is null\n"); return -EFAULT; } @@ -5117,7 +5025,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf /* Sending Configuration packet */ s32Error = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); if (s32Error) { *pu32RcvdAssocRespInfoLen = 0; PRINT_ER("Failed to send association response config packet\n"); @@ -5144,7 +5052,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInf * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel, +s32 host_int_get_rx_power_level(struct host_if_drv *hif_drv, u8 *pu8RxPowerLevel, u32 u32RxPowerLevelLen) { struct wid strWID; @@ -5172,12 +5080,12 @@ s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel * @date 8 March 2012 * @version 1.0 */ -int host_int_set_mac_chnl_num(struct host_if_drv *wfi_drv, u8 channel) +int host_int_set_mac_chnl_num(struct host_if_drv *hif_drv, u8 channel) { int result; struct host_if_msg msg; - if (!wfi_drv) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -5186,7 +5094,7 @@ int host_int_set_mac_chnl_num(struct host_if_drv *wfi_drv, u8 channel) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_CHANNEL; msg.body.channel_info.u8SetChan = channel; - msg.drv = wfi_drv; + msg.drv = hif_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { @@ -5219,7 +5127,7 @@ int host_int_wait_msg_queue_idle(void) return result; } -int host_int_set_wfi_drv_handler(struct host_if_drv *address) +int host_int_set_wfi_drv_handler(struct host_if_drv *hif_drv) { int result = 0; @@ -5229,8 +5137,8 @@ int host_int_set_wfi_drv_handler(struct host_if_drv *address) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_WFIDRV_HANDLER; - msg.body.drv.u32Address = get_id_from_handler(address); - msg.drv = address; + msg.body.drv.u32Address = get_id_from_handler(hif_drv); + msg.drv = hif_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { @@ -5241,7 +5149,7 @@ int host_int_set_wfi_drv_handler(struct host_if_drv *address) return result; } -int host_int_set_operation_mode(struct host_if_drv *wfi_drv, u32 mode) +int host_int_set_operation_mode(struct host_if_drv *hif_drv, u32 mode) { int result = 0; @@ -5252,7 +5160,7 @@ int host_int_set_operation_mode(struct host_if_drv *wfi_drv, u32 mode) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_OPERATION_MODE; msg.body.mode.u32Mode = mode; - msg.drv = wfi_drv; + msg.drv = hif_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) { @@ -5278,13 +5186,12 @@ int host_int_set_operation_mode(struct host_if_drv *wfi_drv, u32 mode) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_host_chnl_num(struct host_if_drv *hWFIDrv, u8 *pu8ChNo) +s32 host_int_get_host_chnl_num(struct host_if_drv *hif_drv, u8 *pu8ChNo) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -5293,13 +5200,13 @@ s32 host_int_get_host_chnl_num(struct host_if_drv *hWFIDrv, u8 *pu8ChNo) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_CHNL; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); - down(&(pstrWFIDrv->hSemGetCHNL)); + down(&hif_drv->hSemGetCHNL); /* gu8Chnl = 11; */ *pu8ChNo = gu8Chnl; @@ -5320,13 +5227,13 @@ s32 host_int_get_host_chnl_num(struct host_if_drv *hWFIDrv, u8 *pu8ChNo) * @date * @version 1.0 */ -s32 host_int_get_inactive_time(struct host_if_drv *hWFIDrv, const u8 *mac, u32 *pu32InactiveTime) +s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, + const u8 *mac, u32 *pu32InactiveTime) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -5338,14 +5245,14 @@ s32 host_int_get_inactive_time(struct host_if_drv *hWFIDrv, const u8 *mac, u32 * mac, ETH_ALEN); msg.id = HOST_IF_MSG_GET_INACTIVETIME; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send get host channel param's message queue "); - down(&(pstrWFIDrv->hSemInactiveTime)); + down(&hif_drv->hSemInactiveTime); *pu32InactiveTime = gu32InactiveTime; @@ -5362,15 +5269,13 @@ s32 host_int_get_inactive_time(struct host_if_drv *hWFIDrv, const u8 *mac, u32 * * @date 8 March 2012 * @version 1.0 */ -s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) +s32 host_int_test_get_int_wid(struct host_if_drv *hif_drv, u32 *pu32TestMemAddr) { s32 s32Error = 0; struct wid strWID; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; - - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -5381,7 +5286,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) strWID.size = sizeof(u32); s32Error = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(pstrWFIDrv)); + get_id_from_handler(hif_drv)); /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get wid value\n"); @@ -5408,18 +5313,16 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hWFIDrv, u32 *pu32TestMemAddr) * @date 8 March 2012 * @version 1.0 */ -s32 host_int_get_rssi(struct host_if_drv *hWFIDrv, s8 *ps8Rssi) +s32 host_int_get_rssi(struct host_if_drv *hif_drv, s8 *ps8Rssi) { s32 s32Error = 0; struct host_if_msg msg; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; - /* prepare the Get RSSI Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_RSSI; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5428,7 +5331,7 @@ s32 host_int_get_rssi(struct host_if_drv *hWFIDrv, s8 *ps8Rssi) return -EFAULT; } - down(&(pstrWFIDrv->hSemGetRSSI)); + down(&hif_drv->hSemGetRSSI); if (ps8Rssi == NULL) { @@ -5443,20 +5346,16 @@ s32 host_int_get_rssi(struct host_if_drv *hWFIDrv, s8 *ps8Rssi) return s32Error; } -s32 host_int_get_link_speed(struct host_if_drv *hWFIDrv, s8 *ps8lnkspd) +s32 host_int_get_link_speed(struct host_if_drv *hif_drv, s8 *ps8lnkspd) { struct host_if_msg msg; s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; - - - /* prepare the Get LINKSPEED Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_LINKSPEED; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5465,7 +5364,7 @@ s32 host_int_get_link_speed(struct host_if_drv *hWFIDrv, s8 *ps8lnkspd) return -EFAULT; } - down(&(pstrWFIDrv->hSemGetLINKSPEED)); + down(&hif_drv->hSemGetLINKSPEED); if (ps8lnkspd == NULL) { @@ -5480,7 +5379,7 @@ s32 host_int_get_link_speed(struct host_if_drv *hWFIDrv, s8 *ps8lnkspd) return s32Error; } -s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, struct rf_info *pstrStatistics) +s32 host_int_get_statistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatistics) { s32 s32Error = 0; struct host_if_msg msg; @@ -5491,7 +5390,7 @@ s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, struct rf_info *pstrSta msg.id = HOST_IF_MSG_GET_STATISTICS; msg.body.data = (char *)pstrStatistics; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { @@ -5520,20 +5419,18 @@ s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, struct rf_info *pstrSta * @date 8 March 2012 * @version 1.0 */ -s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource, - u8 u8ScanType, u8 *pu8ChnlFreqList, - u8 u8ChnlListLen, const u8 *pu8IEs, - size_t IEsLen, wilc_scan_result ScanResult, - void *pvUserArg, - struct hidden_network *pstrHiddenNetwork) +s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, + u8 u8ScanType, u8 *pu8ChnlFreqList, + u8 u8ChnlListLen, const u8 *pu8IEs, + size_t IEsLen, wilc_scan_result ScanResult, + void *pvUserArg, struct hidden_network *pstrHiddenNetwork) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; enum scan_conn_timer enuScanConnTimer; - if (pstrWFIDrv == NULL || ScanResult == NULL) { - PRINT_ER("pstrWFIDrv or ScanResult = NULL\n"); + if (!hif_drv || ScanResult == NULL) { + PRINT_ER("hif_drv or ScanResult = NULL\n"); return -EFAULT; } @@ -5549,7 +5446,7 @@ s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource, } else PRINT_D(HOSTINF_DBG, "pstrHiddenNetwork IS EQUAL TO NULL\n"); - msg.drv = hWFIDrv; + msg.drv = hif_drv; msg.body.scan_info.u8ScanSource = u8ScanSource; msg.body.scan_info.u8ScanType = u8ScanType; msg.body.scan_info.pfScanResult = ScanResult; @@ -5574,8 +5471,8 @@ s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource, enuScanConnTimer = SCAN_TIMER; PRINT_D(HOSTINF_DBG, ">> Starting the SCAN timer\n"); - pstrWFIDrv->hScanTimer.data = (unsigned long)hWFIDrv; - mod_timer(&pstrWFIDrv->hScanTimer, + hif_drv->hScanTimer.data = (unsigned long)hif_drv; + mod_timer(&hif_drv->hScanTimer, jiffies + msecs_to_jiffies(HOST_IF_SCAN_TIMEOUT)); return s32Error; @@ -5592,24 +5489,23 @@ s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource, * @date 8 March 2012 * @version 1.0 */ -s32 hif_set_cfg(struct host_if_drv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal) +s32 hif_set_cfg(struct host_if_drv *hif_drv, + struct cfg_param_val *pstrCfgParamVal) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; - struct host_if_msg msg; - if (pstrWFIDrv == NULL) { - PRINT_ER("pstrWFIDrv NULL\n"); + if (!hif_drv) { + PRINT_ER("hif_drv NULL\n"); return -EFAULT; } /* prepare the WiphyParams Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_CFG_PARAMS; msg.body.cfg_info.pstrCfgParamVal = *pstrCfgParamVal; - msg.drv = hWFIDrv; + msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5631,97 +5527,96 @@ s32 hif_set_cfg(struct host_if_drv *hWFIDrv, struct cfg_param_val *pstrCfgParamV * @date 8 March 2012 * @version 1.0 */ -s32 hif_get_cfg(struct host_if_drv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value) +s32 hif_get_cfg(struct host_if_drv *hif_drv, u16 u16WID, u16 *pu16WID_Value) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; - down(&(pstrWFIDrv->gtOsCfgValuesSem)); + down(&hif_drv->gtOsCfgValuesSem); - if (pstrWFIDrv == NULL) { - PRINT_ER("pstrWFIDrv NULL\n"); + if (!hif_drv) { + PRINT_ER("hif_drv NULL\n"); return -EFAULT; } PRINT_D(HOSTINF_DBG, "Getting configuration parameters\n"); switch (u16WID) { case WID_BSS_TYPE: - *pu16WID_Value = (u16)pstrWFIDrv->strCfgValues.bss_type; + *pu16WID_Value = (u16)hif_drv->strCfgValues.bss_type; break; case WID_AUTH_TYPE: - *pu16WID_Value = (u16)pstrWFIDrv->strCfgValues.auth_type; + *pu16WID_Value = (u16)hif_drv->strCfgValues.auth_type; break; case WID_AUTH_TIMEOUT: - *pu16WID_Value = pstrWFIDrv->strCfgValues.auth_timeout; + *pu16WID_Value = hif_drv->strCfgValues.auth_timeout; break; case WID_POWER_MANAGEMENT: - *pu16WID_Value = (u16)pstrWFIDrv->strCfgValues.power_mgmt_mode; + *pu16WID_Value = (u16)hif_drv->strCfgValues.power_mgmt_mode; break; case WID_SHORT_RETRY_LIMIT: - *pu16WID_Value = pstrWFIDrv->strCfgValues.short_retry_limit; + *pu16WID_Value = hif_drv->strCfgValues.short_retry_limit; break; case WID_LONG_RETRY_LIMIT: - *pu16WID_Value = pstrWFIDrv->strCfgValues.long_retry_limit; + *pu16WID_Value = hif_drv->strCfgValues.long_retry_limit; break; case WID_FRAG_THRESHOLD: - *pu16WID_Value = pstrWFIDrv->strCfgValues.frag_threshold; + *pu16WID_Value = hif_drv->strCfgValues.frag_threshold; break; case WID_RTS_THRESHOLD: - *pu16WID_Value = pstrWFIDrv->strCfgValues.rts_threshold; + *pu16WID_Value = hif_drv->strCfgValues.rts_threshold; break; case WID_PREAMBLE: - *pu16WID_Value = (u16)pstrWFIDrv->strCfgValues.preamble_type; + *pu16WID_Value = (u16)hif_drv->strCfgValues.preamble_type; break; case WID_SHORT_SLOT_ALLOWED: - *pu16WID_Value = (u16) pstrWFIDrv->strCfgValues.short_slot_allowed; + *pu16WID_Value = (u16) hif_drv->strCfgValues.short_slot_allowed; break; case WID_11N_TXOP_PROT_DISABLE: - *pu16WID_Value = (u16)pstrWFIDrv->strCfgValues.txop_prot_disabled; + *pu16WID_Value = (u16)hif_drv->strCfgValues.txop_prot_disabled; break; case WID_BEACON_INTERVAL: - *pu16WID_Value = pstrWFIDrv->strCfgValues.beacon_interval; + *pu16WID_Value = hif_drv->strCfgValues.beacon_interval; break; case WID_DTIM_PERIOD: - *pu16WID_Value = (u16)pstrWFIDrv->strCfgValues.dtim_period; + *pu16WID_Value = (u16)hif_drv->strCfgValues.dtim_period; break; case WID_SITE_SURVEY: - *pu16WID_Value = (u16)pstrWFIDrv->strCfgValues.site_survey_enabled; + *pu16WID_Value = (u16)hif_drv->strCfgValues.site_survey_enabled; break; case WID_SITE_SURVEY_SCAN_TIME: - *pu16WID_Value = pstrWFIDrv->strCfgValues.site_survey_scan_time; + *pu16WID_Value = hif_drv->strCfgValues.site_survey_scan_time; break; case WID_ACTIVE_SCAN_TIME: - *pu16WID_Value = pstrWFIDrv->strCfgValues.active_scan_time; + *pu16WID_Value = hif_drv->strCfgValues.active_scan_time; break; case WID_PASSIVE_SCAN_TIME: - *pu16WID_Value = pstrWFIDrv->strCfgValues.passive_scan_time; + *pu16WID_Value = hif_drv->strCfgValues.passive_scan_time; break; case WID_CURRENT_TX_RATE: - *pu16WID_Value = pstrWFIDrv->strCfgValues.curr_tx_rate; + *pu16WID_Value = hif_drv->strCfgValues.curr_tx_rate; break; default: break; } - up(&(pstrWFIDrv->gtOsCfgValuesSem)); + up(&hif_drv->gtOsCfgValuesSem); return s32Error; @@ -5765,14 +5660,14 @@ void host_int_send_join_leave_info_to_host static void GetPeriodicRSSI(unsigned long arg) { - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)arg; + struct host_if_drv *hif_drv = (struct host_if_drv *)arg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("Driver handler is NULL\n"); return; } - if (pstrWFIDrv->enuHostIFstate == HOST_IF_CONNECTED) { + if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) { s32 s32Error = 0; struct host_if_msg msg; @@ -5780,7 +5675,7 @@ static void GetPeriodicRSSI(unsigned long arg) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_RSSI; - msg.drv = pstrWFIDrv; + msg.drv = hif_drv; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5789,7 +5684,7 @@ static void GetPeriodicRSSI(unsigned long arg) return; } } - g_hPeriodicRSSI.data = (unsigned long)pstrWFIDrv; + g_hPeriodicRSSI.data = (unsigned long)hif_drv; mod_timer(&g_hPeriodicRSSI, jiffies + msecs_to_jiffies(5000)); } @@ -5809,10 +5704,10 @@ void host_int_send_network_info_to_host */ static u32 clients_count; -s32 host_int_init(struct host_if_drv **phWFIDrv) +s32 host_int_init(struct host_if_drv **hif_drv_handler) { s32 result = 0; - struct host_if_drv *pstrWFIDrv; + struct host_if_drv *hif_drv; int err; PRINT_D(HOSTINF_DBG, "Initializing host interface for client %d\n", clients_count + 1); @@ -5822,13 +5717,13 @@ s32 host_int_init(struct host_if_drv **phWFIDrv) sema_init(&hWaitResponse, 0); /*Allocate host interface private structure*/ - pstrWFIDrv = kzalloc(sizeof(struct host_if_drv), GFP_KERNEL); - if (!pstrWFIDrv) { + hif_drv = kzalloc(sizeof(struct host_if_drv), GFP_KERNEL); + if (!hif_drv) { result = -ENOMEM; goto _fail_; } - *phWFIDrv = pstrWFIDrv; - err = add_handler_in_list(pstrWFIDrv); + *hif_drv_handler = hif_drv; + err = add_handler_in_list(hif_drv); if (err) { result = -EFAULT; goto _fail_timer_2; @@ -5836,19 +5731,19 @@ s32 host_int_init(struct host_if_drv **phWFIDrv) g_obtainingIP = false; - PRINT_D(HOSTINF_DBG, "Global handle pointer value=%p\n", pstrWFIDrv); + PRINT_D(HOSTINF_DBG, "Global handle pointer value=%p\n", hif_drv); if (clients_count == 0) { sema_init(&hSemHostIFthrdEnd, 0); sema_init(&hSemDeinitDrvHandle, 0); sema_init(&hSemHostIntDeinit, 1); } - sema_init(&pstrWFIDrv->hSemTestKeyBlock, 0); - sema_init(&pstrWFIDrv->hSemTestDisconnectBlock, 0); - sema_init(&pstrWFIDrv->hSemGetRSSI, 0); - sema_init(&pstrWFIDrv->hSemGetLINKSPEED, 0); - sema_init(&pstrWFIDrv->hSemGetCHNL, 0); - sema_init(&pstrWFIDrv->hSemInactiveTime, 0); + sema_init(&hif_drv->hSemTestKeyBlock, 0); + sema_init(&hif_drv->hSemTestDisconnectBlock, 0); + sema_init(&hif_drv->hSemGetRSSI, 0); + sema_init(&hif_drv->hSemGetLINKSPEED, 0); + sema_init(&hif_drv->hSemGetCHNL, 0); + sema_init(&hif_drv->hSemInactiveTime, 0); PRINT_D(HOSTINF_DBG, "INIT: CLIENT COUNT %d\n", clients_count); @@ -5866,48 +5761,48 @@ s32 host_int_init(struct host_if_drv **phWFIDrv) goto _fail_mq_; } setup_timer(&g_hPeriodicRSSI, GetPeriodicRSSI, - (unsigned long)pstrWFIDrv); + (unsigned long)hif_drv); mod_timer(&g_hPeriodicRSSI, jiffies + msecs_to_jiffies(5000)); } - setup_timer(&pstrWFIDrv->hScanTimer, TimerCB_Scan, 0); + setup_timer(&hif_drv->hScanTimer, TimerCB_Scan, 0); - setup_timer(&pstrWFIDrv->hConnectTimer, TimerCB_Connect, 0); + setup_timer(&hif_drv->hConnectTimer, TimerCB_Connect, 0); /*Remain on channel timer*/ - setup_timer(&pstrWFIDrv->hRemainOnChannel, ListenTimerCB, 0); + setup_timer(&hif_drv->hRemainOnChannel, ListenTimerCB, 0); - sema_init(&(pstrWFIDrv->gtOsCfgValuesSem), 1); - down(&pstrWFIDrv->gtOsCfgValuesSem); + sema_init(&(hif_drv->gtOsCfgValuesSem), 1); + down(&hif_drv->gtOsCfgValuesSem); - pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; + hif_drv->enuHostIFstate = HOST_IF_IDLE; /*Initialize CFG WIDS Defualt Values*/ - pstrWFIDrv->strCfgValues.site_survey_enabled = SITE_SURVEY_OFF; - pstrWFIDrv->strCfgValues.scan_source = DEFAULT_SCAN; - pstrWFIDrv->strCfgValues.active_scan_time = ACTIVE_SCAN_TIME; - pstrWFIDrv->strCfgValues.passive_scan_time = PASSIVE_SCAN_TIME; - pstrWFIDrv->strCfgValues.curr_tx_rate = AUTORATE; + hif_drv->strCfgValues.site_survey_enabled = SITE_SURVEY_OFF; + hif_drv->strCfgValues.scan_source = DEFAULT_SCAN; + hif_drv->strCfgValues.active_scan_time = ACTIVE_SCAN_TIME; + hif_drv->strCfgValues.passive_scan_time = PASSIVE_SCAN_TIME; + hif_drv->strCfgValues.curr_tx_rate = AUTORATE; - pstrWFIDrv->u64P2p_MgmtTimeout = 0; + hif_drv->u64P2p_MgmtTimeout = 0; PRINT_INFO(HOSTINF_DBG, "Initialization values, Site survey value: %d\n Scan source: %d\n Active scan time: %d\n Passive scan time: %d\nCurrent tx Rate = %d\n", - pstrWFIDrv->strCfgValues.site_survey_enabled, pstrWFIDrv->strCfgValues.scan_source, - pstrWFIDrv->strCfgValues.active_scan_time, pstrWFIDrv->strCfgValues.passive_scan_time, - pstrWFIDrv->strCfgValues.curr_tx_rate); + hif_drv->strCfgValues.site_survey_enabled, hif_drv->strCfgValues.scan_source, + hif_drv->strCfgValues.active_scan_time, hif_drv->strCfgValues.passive_scan_time, + hif_drv->strCfgValues.curr_tx_rate); - up(&pstrWFIDrv->gtOsCfgValuesSem); + up(&hif_drv->gtOsCfgValuesSem); clients_count++; /* increase number of created entities */ return result; _fail_timer_2: - up(&pstrWFIDrv->gtOsCfgValuesSem); - del_timer_sync(&pstrWFIDrv->hConnectTimer); - del_timer_sync(&pstrWFIDrv->hScanTimer); + up(&hif_drv->gtOsCfgValuesSem); + del_timer_sync(&hif_drv->hConnectTimer); + del_timer_sync(&hif_drv->hScanTimer); kthread_stop(HostIFthreadHandler); _fail_mq_: wilc_mq_destroy(&gMsgQHostIF); @@ -5924,33 +5819,32 @@ _fail_: * @version 1.0 */ -s32 host_int_deinit(struct host_if_drv *hWFIDrv) +s32 host_int_deinit(struct host_if_drv *hif_drv) { s32 s32Error = 0; struct host_if_msg msg; int ret; /*obtain driver handle*/ - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; - if (pstrWFIDrv == NULL) { - PRINT_ER("pstrWFIDrv = NULL\n"); + if (!hif_drv) { + PRINT_ER("hif_drv = NULL\n"); return 0; } down(&hSemHostIntDeinit); - terminated_handle = pstrWFIDrv; + terminated_handle = hif_drv; PRINT_D(HOSTINF_DBG, "De-initializing host interface for client %d\n", clients_count); /*Destroy all timers before acquiring hSemDeinitDrvHandle*/ /*to guarantee handling all messages befor proceeding*/ - if (del_timer_sync(&pstrWFIDrv->hScanTimer)) { + if (del_timer_sync(&hif_drv->hScanTimer)) { PRINT_D(HOSTINF_DBG, ">> Scan timer is active\n"); /* msleep(HOST_IF_SCAN_TIMEOUT+1000); */ } - if (del_timer_sync(&pstrWFIDrv->hConnectTimer)) { + if (del_timer_sync(&hif_drv->hConnectTimer)) { PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } @@ -5962,21 +5856,21 @@ s32 host_int_deinit(struct host_if_drv *hWFIDrv) } /*Destroy Remain-onchannel Timer*/ - del_timer_sync(&pstrWFIDrv->hRemainOnChannel); + del_timer_sync(&hif_drv->hRemainOnChannel); host_int_set_wfi_drv_handler(NULL); down(&hSemDeinitDrvHandle); /*Calling the CFG80211 scan done function with the abort flag set to true*/ - if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_ABORTED, NULL, - pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { + hif_drv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_ABORTED, NULL, + hif_drv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); - pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult = NULL; + hif_drv->strWILC_UsrScanReq.pfUserScanResult = NULL; } - pstrWFIDrv->enuHostIFstate = HOST_IF_IDLE; + hif_drv->enuHostIFstate = HOST_IF_IDLE; gbScanWhileConnected = false; @@ -5988,7 +5882,7 @@ s32 host_int_deinit(struct host_if_drv *hWFIDrv) /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } msg.id = HOST_IF_MSG_EXIT; - msg.drv = hWFIDrv; + msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6000,19 +5894,15 @@ s32 host_int_deinit(struct host_if_drv *hWFIDrv) wilc_mq_destroy(&gMsgQHostIF); } - down(&(pstrWFIDrv->gtOsCfgValuesSem)); + down(&(hif_drv->gtOsCfgValuesSem)); /*Setting the gloabl driver handler with NULL*/ /* gWFiDrvHandle = NULL; */ - ret = remove_handler_in_list(pstrWFIDrv); + ret = remove_handler_in_list(hif_drv); if (ret) s32Error = -ENOENT; - if (pstrWFIDrv != NULL) { - kfree(pstrWFIDrv); - /* pstrWFIDrv=NULL; */ - - } + kfree(hif_drv); clients_count--; /* Decrease number of created entities */ terminated_handle = NULL; @@ -6037,16 +5927,16 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) s32 s32Error = 0; struct host_if_msg msg; int id; - struct host_if_drv *pstrWFIDrv = NULL; + struct host_if_drv *hif_drv = NULL; id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); - pstrWFIDrv = get_handler_from_id(id); + hif_drv = get_handler_from_id(id); - if (pstrWFIDrv == NULL || pstrWFIDrv == terminated_handle) { - PRINT_ER("NetworkInfo received but driver not init[%p]\n", pstrWFIDrv); + if (!hif_drv || hif_drv == terminated_handle) { + PRINT_ER("NetworkInfo received but driver not init[%p]\n", hif_drv); return; } @@ -6054,7 +5944,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_RCVD_NTWRK_INFO; - msg.drv = pstrWFIDrv; + msg.drv = hif_drv; msg.body.net_info.u32Length = u32Length; msg.body.net_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ @@ -6083,22 +5973,22 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) s32 s32Error = 0; struct host_if_msg msg; int id; - struct host_if_drv *pstrWFIDrv = NULL; + struct host_if_drv *hif_drv = NULL; down(&hSemHostIntDeinit); id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); - pstrWFIDrv = get_handler_from_id(id); + hif_drv = get_handler_from_id(id); PRINT_D(HOSTINF_DBG, "General asynchronous info packet received\n"); - if (pstrWFIDrv == NULL || pstrWFIDrv == terminated_handle) { + if (!hif_drv || hif_drv == terminated_handle) { PRINT_D(HOSTINF_DBG, "Wifi driver handler is equal to NULL\n"); up(&hSemHostIntDeinit); return; } - if (pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult == NULL) { + if (!hif_drv->strWILC_UsrConnReq.pfUserConnectResult) { /* received mac status is not needed when there is no current Connect Request */ PRINT_ER("Received mac status is not needed when there is no current Connect Reques\n"); up(&hSemHostIntDeinit); @@ -6110,7 +6000,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.id = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; - msg.drv = pstrWFIDrv; + msg.drv = hif_drv; msg.body.async_info.u32Length = u32Length; @@ -6140,24 +6030,24 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) s32 s32Error = 0; struct host_if_msg msg; int id; - struct host_if_drv *pstrWFIDrv = NULL; + struct host_if_drv *hif_drv = NULL; id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); - pstrWFIDrv = get_handler_from_id(id); + hif_drv = get_handler_from_id(id); - PRINT_D(GENERIC_DBG, "Scan notification received %p\n", pstrWFIDrv); + PRINT_D(GENERIC_DBG, "Scan notification received %p\n", hif_drv); - if (pstrWFIDrv == NULL || pstrWFIDrv == terminated_handle) + if (!hif_drv || hif_drv == terminated_handle) return; /*if there is an ongoing scan request*/ - if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) { + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { /* prepare theScan Done message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_RCVD_SCAN_COMPLETE; - msg.drv = pstrWFIDrv; + msg.drv = hif_drv; /* will be deallocated by the receiving thread */ @@ -6193,13 +6083,16 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) * @date * @version 1.0 */ -s32 host_int_remain_on_channel(struct host_if_drv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg) +s32 host_int_remain_on_channel(struct host_if_drv *hif_drv, u32 u32SessionID, + u32 u32duration, u16 chan, + wilc_remain_on_chan_expired RemainOnChanExpired, + wilc_remain_on_chan_ready RemainOnChanReady, + void *pvUserArg) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6215,7 +6108,7 @@ s32 host_int_remain_on_channel(struct host_if_drv *hWFIDrv, u32 u32SessionID, u3 msg.body.remain_on_ch.pVoid = pvUserArg; msg.body.remain_on_ch.u32duration = u32duration; msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; - msg.drv = hWFIDrv; + msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -6238,24 +6131,23 @@ s32 host_int_remain_on_channel(struct host_if_drv *hWFIDrv, u32 u32SessionID, u3 * @date * @version 1.0 */ -s32 host_int_ListenStateExpired(struct host_if_drv *hWFIDrv, u32 u32SessionID) +s32 host_int_ListenStateExpired(struct host_if_drv *hif_drv, u32 u32SessionID) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } /*Stopping remain-on-channel timer*/ - del_timer(&pstrWFIDrv->hRemainOnChannel); + del_timer(&hif_drv->hRemainOnChannel); /* prepare the timer fire Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; - msg.drv = hWFIDrv; + msg.drv = hif_drv; msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6273,13 +6165,12 @@ s32 host_int_ListenStateExpired(struct host_if_drv *hWFIDrv, u32 u32SessionID) * @author * @date * @version 1.0*/ -s32 host_int_frame_register(struct host_if_drv *hWFIDrv, u16 u16FrameType, bool bReg) +s32 host_int_frame_register(struct host_if_drv *hif_drv, u16 u16FrameType, bool bReg) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6305,7 +6196,7 @@ s32 host_int_frame_register(struct host_if_drv *hWFIDrv, u16 u16FrameType, bool } msg.body.reg_frame.u16FrameType = u16FrameType; msg.body.reg_frame.bReg = bReg; - msg.drv = hWFIDrv; + msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -6327,17 +6218,15 @@ s32 host_int_frame_register(struct host_if_drv *hWFIDrv, u16 u16FrameType, bool * @date * @version 1.0 */ -s32 host_int_add_beacon(struct host_if_drv *hWFIDrv, u32 u32Interval, - u32 u32DTIMPeriod, - u32 u32HeadLen, u8 *pu8Head, - u32 u32TailLen, u8 *pu8Tail) +s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, + u32 u32DTIMPeriod, u32 u32HeadLen, u8 *pu8Head, + u32 u32TailLen, u8 *pu8Tail) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct beacon_attr *pstrSetBeaconParam = &msg.body.beacon_info; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6349,7 +6238,7 @@ s32 host_int_add_beacon(struct host_if_drv *hWFIDrv, u32 u32Interval, /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_ADD_BEACON; - msg.drv = hWFIDrv; + msg.drv = hif_drv; pstrSetBeaconParam->u32Interval = u32Interval; pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; pstrSetBeaconParam->u32HeadLen = u32HeadLen; @@ -6399,20 +6288,19 @@ ERRORHANDLER: * @date * @version 1.0 */ -s32 host_int_del_beacon(struct host_if_drv *hWFIDrv) +s32 host_int_del_beacon(struct host_if_drv *hif_drv) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_BEACON; - msg.drv = hWFIDrv; + msg.drv = hif_drv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -6432,16 +6320,15 @@ s32 host_int_del_beacon(struct host_if_drv *hWFIDrv) * @date * @version 1.0 */ -s32 host_int_add_station(struct host_if_drv *hWFIDrv, +s32 host_int_add_station(struct host_if_drv *hif_drv, struct add_sta_param *pstrStaParams) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct add_sta_param *pstrAddStationMsg = &msg.body.add_sta_info; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6453,7 +6340,7 @@ s32 host_int_add_station(struct host_if_drv *hWFIDrv, /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_ADD_STATION; - msg.drv = hWFIDrv; + msg.drv = hif_drv; memcpy(pstrAddStationMsg, pstrStaParams, sizeof(struct add_sta_param)); if (pstrAddStationMsg->u8NumRates > 0) { @@ -6482,14 +6369,13 @@ s32 host_int_add_station(struct host_if_drv *hWFIDrv, * @date * @version 1.0 */ -s32 host_int_del_station(struct host_if_drv *hWFIDrv, const u8 *pu8MacAddr) +s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct del_sta *pstrDelStationMsg = &msg.body.del_sta_info; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6502,7 +6388,7 @@ s32 host_int_del_station(struct host_if_drv *hWFIDrv, const u8 *pu8MacAddr) /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_STATION; - msg.drv = hWFIDrv; + msg.drv = hif_drv; if (pu8MacAddr == NULL) memset(pstrDelStationMsg->au8MacAddr, 255, ETH_ALEN); @@ -6523,11 +6409,10 @@ s32 host_int_del_station(struct host_if_drv *hWFIDrv, const u8 *pu8MacAddr) * @date * @version 1.0 */ -s32 host_int_del_allstation(struct host_if_drv *hWFIDrv, +s32 host_int_del_allstation(struct host_if_drv *hif_drv, u8 pu8MacAddr[][ETH_ALEN]) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct del_all_sta *pstrDelAllStationMsg = &msg.body.del_all_sta_info; u8 au8Zero_Buff[ETH_ALEN] = {0}; @@ -6535,7 +6420,7 @@ s32 host_int_del_allstation(struct host_if_drv *hWFIDrv, u8 u8AssocNumb = 0; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6546,7 +6431,7 @@ s32 host_int_del_allstation(struct host_if_drv *hWFIDrv, /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_ALL_STA; - msg.drv = hWFIDrv; + msg.drv = hif_drv; /* Handling situation of deauthenticing all associated stations*/ for (i = 0; i < MAX_NUM_STA; i++) { @@ -6584,15 +6469,14 @@ s32 host_int_del_allstation(struct host_if_drv *hWFIDrv, * @date * @version 1.0 */ -s32 host_int_edit_station(struct host_if_drv *hWFIDrv, +s32 host_int_edit_station(struct host_if_drv *hif_drv, struct add_sta_param *pstrStaParams) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct add_sta_param *pstrAddStationMsg = &msg.body.add_sta_info; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6604,7 +6488,7 @@ s32 host_int_edit_station(struct host_if_drv *hWFIDrv, /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_EDIT_STATION; - msg.drv = hWFIDrv; + msg.drv = hif_drv; memcpy(pstrAddStationMsg, pstrStaParams, sizeof(struct add_sta_param)); if (pstrAddStationMsg->u8NumRates > 0) { @@ -6624,16 +6508,17 @@ s32 host_int_edit_station(struct host_if_drv *hWFIDrv, return s32Error; } -s32 host_int_set_power_mgmt(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u32Timeout) +s32 host_int_set_power_mgmt(struct host_if_drv *hif_drv, + bool bIsEnabled, + u32 u32Timeout) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct power_mgmt_param *pstrPowerMgmtParam = &msg.body.pwr_mgmt_info; PRINT_INFO(HOSTINF_DBG, "\n\n>> Setting PS to %d <<\n\n", bIsEnabled); - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6645,7 +6530,7 @@ s32 host_int_set_power_mgmt(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u3 /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_POWER_MGMT; - msg.drv = hWFIDrv; + msg.drv = hif_drv; pstrPowerMgmtParam->bIsEnabled = bIsEnabled; pstrPowerMgmtParam->u32Timeout = u32Timeout; @@ -6657,16 +6542,16 @@ s32 host_int_set_power_mgmt(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u3 return s32Error; } -s32 host_int_setup_multicast_filter(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u32count) +s32 host_int_setup_multicast_filter(struct host_if_drv *hif_drv, + bool bIsEnabled, + u32 u32count) { s32 s32Error = 0; - - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct set_multicast *pstrMulticastFilterParam = &msg.body.multicast_info; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6678,7 +6563,7 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hWFIDrv, bool bIsEnabled /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_SET_MULTICAST_FILTER; - msg.drv = hWFIDrv; + msg.drv = hif_drv; pstrMulticastFilterParam->bIsEnabled = bIsEnabled; pstrMulticastFilterParam->u32count = u32count; @@ -6907,14 +6792,13 @@ void host_int_freeJoinParams(void *pJoinParams) PRINT_ER("Unable to FREE null pointer\n"); } -s32 host_int_delBASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID) +s32 host_int_delBASession(struct host_if_drv *hif_drv, char *pBSSID, char TID) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct ba_session_info *pBASessionInfo = &msg.body.session_info; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6926,7 +6810,7 @@ s32 host_int_delBASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID) memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; - msg.drv = hWFIDrv; + msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -6937,14 +6821,15 @@ s32 host_int_delBASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID) return s32Error; } -s32 host_int_del_All_Rx_BASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID) +s32 host_int_del_All_Rx_BASession(struct host_if_drv *hif_drv, + char *pBSSID, + char TID) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; struct ba_session_info *pBASessionInfo = &msg.body.session_info; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6956,7 +6841,7 @@ s32 host_int_del_All_Rx_BASession(struct host_if_drv *hWFIDrv, char *pBSSID, cha memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); pBASessionInfo->u8Ted = TID; - msg.drv = hWFIDrv; + msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -6975,16 +6860,15 @@ s32 host_int_del_All_Rx_BASession(struct host_if_drv *hWFIDrv, char *pBSSID, cha * @author Abdelrahman Sobhy * @date * @version 1.0*/ -s32 host_int_setup_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) +s32 host_int_setup_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; /* TODO: Enable This feature on softap firmware */ return 0; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -6995,7 +6879,7 @@ s32 host_int_setup_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) msg.id = HOST_IF_MSG_SET_IPADDRESS; msg.body.ip_info.au8IPAddr = u16ipadd; - msg.drv = hWFIDrv; + msg.drv = hif_drv; msg.body.ip_info.idx = idx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -7015,13 +6899,12 @@ s32 host_int_setup_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) * @author Abdelrahman Sobhy * @date * @version 1.0*/ -s32 host_int_get_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) +s32 host_int_get_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; - struct host_if_drv *pstrWFIDrv = (struct host_if_drv *)hWFIDrv; struct host_if_msg msg; - if (pstrWFIDrv == NULL) { + if (!hif_drv) { PRINT_ER("driver is null\n"); return -EFAULT; } @@ -7032,7 +6915,7 @@ s32 host_int_get_ipaddress(struct host_if_drv *hWFIDrv, u8 *u16ipadd, u8 idx) msg.id = HOST_IF_MSG_GET_IPADDRESS; msg.body.ip_info.au8IPAddr = u16ipadd; - msg.drv = hWFIDrv; + msg.drv = hif_drv; msg.body.ip_info.idx = idx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 221371e5b286ed3b199b24a345f0db79d84dce2f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:06 +0900 Subject: [PATCH 1459/2431] staging: wilc1000: rename pstrCfgParamVal in struct cfg_param_attr This patch renames a variable of struct cfg_param_val in struct cfg_param_attr, pstrCfgParamVal to cfg_attr_info to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 144 +++++++++++----------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9309678d13bc..4bf10eb57691 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -73,7 +73,7 @@ extern u8 g_wilc_initialized; * @version 1.0 */ struct cfg_param_attr { - struct cfg_param_val pstrCfgParamVal; + struct cfg_param_val cfg_attr_info; }; /*! @@ -847,19 +847,19 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting CFG params\n"); - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & BSS_TYPE) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & BSS_TYPE) { /*----------------------------------------------------------*/ /*Input Value: INFRASTRUCTURE = 1, */ /* INDEPENDENT= 2, */ /* ANY_BSS= 3 */ /*----------------------------------------------------------*/ /* validate input then copy>> need to check value 4 and 5 */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.bss_type < 6) { + if (strHostIFCfgParamAttr->cfg_attr_info.bss_type < 6) { strWIDList[u8WidCnt].id = WID_BSS_TYPE; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.bss_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - hif_drv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.bss_type; + hif_drv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->cfg_attr_info.bss_type; } else { PRINT_ER("check value 6 over\n"); s32Error = -EINVAL; @@ -867,19 +867,19 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & AUTH_TYPE) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & AUTH_TYPE) { /*------------------------------------------------------*/ /*Input Values: OPEN_SYSTEM = 0, */ /* SHARED_KEY = 1, */ /* ANY = 2 */ /*------------------------------------------------------*/ /*validate Possible values*/ - if ((strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 1 || (strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 2 || (strHostIFCfgParamAttr->pstrCfgParamVal.auth_type) == 5) { + if ((strHostIFCfgParamAttr->cfg_attr_info.auth_type) == 1 || (strHostIFCfgParamAttr->cfg_attr_info.auth_type) == 2 || (strHostIFCfgParamAttr->cfg_attr_info.auth_type) == 5) { strWIDList[u8WidCnt].id = WID_AUTH_TYPE; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.auth_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - hif_drv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.auth_type; + hif_drv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->cfg_attr_info.auth_type; } else { PRINT_ER("Impossible value \n"); s32Error = -EINVAL; @@ -887,14 +887,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & AUTHEN_TIMEOUT) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & AUTHEN_TIMEOUT) { /* range is 1 to 65535. */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout < 65536) { + if (strHostIFCfgParamAttr->cfg_attr_info.auth_timeout > 0 && strHostIFCfgParamAttr->cfg_attr_info.auth_timeout < 65536) { strWIDList[u8WidCnt].id = WID_AUTH_TIMEOUT; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.auth_timeout; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->pstrCfgParamVal.auth_timeout; + hif_drv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->cfg_attr_info.auth_timeout; } else { PRINT_ER("Range(1 ~ 65535) over\n"); s32Error = -EINVAL; @@ -902,7 +902,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & POWER_MANAGEMENT) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & POWER_MANAGEMENT) { /*-----------------------------------------------------------*/ /*Input Values: NO_POWERSAVE = 0, */ /* MIN_FAST_PS = 1, */ @@ -910,12 +910,12 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, /* MIN_PSPOLL_PS = 3, */ /* MAX_PSPOLL_PS = 4 */ /*----------------------------------------------------------*/ - if (strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode < 5) { + if (strHostIFCfgParamAttr->cfg_attr_info.power_mgmt_mode < 5) { strWIDList[u8WidCnt].id = WID_POWER_MANAGEMENT; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.power_mgmt_mode; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - hif_drv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.power_mgmt_mode; + hif_drv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->cfg_attr_info.power_mgmt_mode; } else { PRINT_ER("Invalide power mode\n"); s32Error = -EINVAL; @@ -923,14 +923,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & RETRY_SHORT) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & RETRY_SHORT) { /* range from 1 to 256 */ - if ((strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit > 0) && (strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit < 256)) { + if ((strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit > 0) && (strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit < 256)) { strWIDList[u8WidCnt].id = WID_SHORT_RETRY_LIMIT; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.short_retry_limit; + hif_drv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit; } else { PRINT_ER("Range(1~256) over\n"); s32Error = -EINVAL; @@ -938,15 +938,15 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & RETRY_LONG) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & RETRY_LONG) { /* range from 1 to 256 */ - if ((strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit > 0) && (strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit < 256)) { + if ((strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit > 0) && (strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit < 256)) { strWIDList[u8WidCnt].id = WID_LONG_RETRY_LIMIT; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.long_retry_limit = strHostIFCfgParamAttr->pstrCfgParamVal.long_retry_limit; + hif_drv->strCfgValues.long_retry_limit = strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit; } else { PRINT_ER("Range(1~256) over\n"); s32Error = -EINVAL; @@ -954,14 +954,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & FRAG_THRESHOLD) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & FRAG_THRESHOLD) { - if (strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold > 255 && strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold < 7937) { + if (strHostIFCfgParamAttr->cfg_attr_info.frag_threshold > 255 && strHostIFCfgParamAttr->cfg_attr_info.frag_threshold < 7937) { strWIDList[u8WidCnt].id = WID_FRAG_THRESHOLD; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.frag_threshold; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.frag_threshold; + hif_drv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->cfg_attr_info.frag_threshold; } else { PRINT_ER("Threshold Range fail\n"); s32Error = -EINVAL; @@ -969,14 +969,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & RTS_THRESHOLD) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & RTS_THRESHOLD) { /* range 256 to 65535 */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold > 255 && strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold < 65536) { + if (strHostIFCfgParamAttr->cfg_attr_info.rts_threshold > 255 && strHostIFCfgParamAttr->cfg_attr_info.rts_threshold < 65536) { strWIDList[u8WidCnt].id = WID_RTS_THRESHOLD; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.rts_threshold; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->pstrCfgParamVal.rts_threshold; + hif_drv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->cfg_attr_info.rts_threshold; } else { PRINT_ER("Threshold Range fail\n"); s32Error = -EINVAL; @@ -984,18 +984,18 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & PREAMBLE) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & PREAMBLE) { /*-----------------------------------------------------*/ /*Input Values: Short= 0, */ /* Long= 1, */ /* Auto= 2 */ /*------------------------------------------------------*/ - if (strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type < 3) { + if (strHostIFCfgParamAttr->cfg_attr_info.preamble_type < 3) { strWIDList[u8WidCnt].id = WID_PREAMBLE; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.preamble_type; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - hif_drv->strCfgValues.preamble_type = strHostIFCfgParamAttr->pstrCfgParamVal.preamble_type; + hif_drv->strCfgValues.preamble_type = strHostIFCfgParamAttr->cfg_attr_info.preamble_type; } else { PRINT_ER("Preamle Range(0~2) over\n"); s32Error = -EINVAL; @@ -1003,13 +1003,13 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & SHORT_SLOT_ALLOWED) { - if (strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed < 2) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & SHORT_SLOT_ALLOWED) { + if (strHostIFCfgParamAttr->cfg_attr_info.short_slot_allowed < 2) { strWIDList[u8WidCnt].id = WID_SHORT_SLOT_ALLOWED; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.short_slot_allowed; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - hif_drv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.short_slot_allowed; + hif_drv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->cfg_attr_info.short_slot_allowed; } else { PRINT_ER("Short slot(2) over\n"); s32Error = -EINVAL; @@ -1017,17 +1017,17 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & TXOP_PROT_DISABLE) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & TXOP_PROT_DISABLE) { /*Description: used to Disable RTS-CTS protection for TXOP burst*/ /*transmission when the acknowledgement policy is No-Ack or Block-Ack */ /* this information is useful for external supplicant */ /*Input Values: 1 for enable and 0 for disable. */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled < 2) { + if (strHostIFCfgParamAttr->cfg_attr_info.txop_prot_disabled < 2) { strWIDList[u8WidCnt].id = WID_11N_TXOP_PROT_DISABLE; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.txop_prot_disabled; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - hif_drv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.txop_prot_disabled; + hif_drv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->cfg_attr_info.txop_prot_disabled; } else { PRINT_ER("TXOP prot disable\n"); s32Error = -EINVAL; @@ -1035,14 +1035,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & BEACON_INTERVAL) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & BEACON_INTERVAL) { /* range is 1 to 65535. */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval < 65536) { + if (strHostIFCfgParamAttr->cfg_attr_info.beacon_interval > 0 && strHostIFCfgParamAttr->cfg_attr_info.beacon_interval < 65536) { strWIDList[u8WidCnt].id = WID_BEACON_INTERVAL; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.beacon_interval; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->pstrCfgParamVal.beacon_interval; + hif_drv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->cfg_attr_info.beacon_interval; } else { PRINT_ER("Beacon interval(1~65535) fail\n"); s32Error = -EINVAL; @@ -1050,14 +1050,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & DTIM_PERIOD) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & DTIM_PERIOD) { /* range is 1 to 255. */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period < 256) { + if (strHostIFCfgParamAttr->cfg_attr_info.dtim_period > 0 && strHostIFCfgParamAttr->cfg_attr_info.dtim_period < 256) { strWIDList[u8WidCnt].id = WID_DTIM_PERIOD; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.dtim_period; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - hif_drv->strCfgValues.dtim_period = strHostIFCfgParamAttr->pstrCfgParamVal.dtim_period; + hif_drv->strCfgValues.dtim_period = strHostIFCfgParamAttr->cfg_attr_info.dtim_period; } else { PRINT_ER("DTIM range(1~255) fail\n"); s32Error = -EINVAL; @@ -1065,18 +1065,18 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & SITE_SURVEY) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & SITE_SURVEY) { /*----------------------------------------------------------------------*/ /*Input Values: SITE_SURVEY_1CH = 0, i.e.: currently set channel */ /* SITE_SURVEY_ALL_CH = 1, */ /* SITE_SURVEY_OFF = 2 */ /*----------------------------------------------------------------------*/ - if (strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled < 3) { + if (strHostIFCfgParamAttr->cfg_attr_info.site_survey_enabled < 3) { strWIDList[u8WidCnt].id = WID_SITE_SURVEY; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.site_survey_enabled; strWIDList[u8WidCnt].type = WID_CHAR; strWIDList[u8WidCnt].size = sizeof(char); - hif_drv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_enabled; + hif_drv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->cfg_attr_info.site_survey_enabled; } else { PRINT_ER("Site survey disable\n"); s32Error = -EINVAL; @@ -1084,14 +1084,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & SITE_SURVEY_SCAN_TIME) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & SITE_SURVEY_SCAN_TIME) { /* range is 1 to 65535. */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time < 65536) { + if (strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_SITE_SURVEY_SCAN_TIME; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.site_survey_scan_time; + hif_drv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time; } else { PRINT_ER("Site survey scan time(1~65535) over\n"); s32Error = -EINVAL; @@ -1099,14 +1099,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & ACTIVE_SCANTIME) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & ACTIVE_SCANTIME) { /* range is 1 to 65535. */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time < 65536) { + if (strHostIFCfgParamAttr->cfg_attr_info.active_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.active_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_ACTIVE_SCAN_TIME; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.active_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.active_scan_time; + hif_drv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->cfg_attr_info.active_scan_time; } else { PRINT_ER("Active scan time(1~65535) over\n"); s32Error = -EINVAL; @@ -1114,14 +1114,14 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & PASSIVE_SCANTIME) { + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & PASSIVE_SCANTIME) { /* range is 1 to 65535. */ - if (strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time > 0 && strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time < 65536) { + if (strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_PASSIVE_SCAN_TIME; - strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; + strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time; strWIDList[u8WidCnt].type = WID_SHORT; strWIDList[u8WidCnt].size = sizeof(u16); - hif_drv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->pstrCfgParamVal.passive_scan_time; + hif_drv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time; } else { PRINT_ER("Passive scan time(1~65535) over\n"); s32Error = -EINVAL; @@ -1129,8 +1129,8 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->pstrCfgParamVal.u32SetCfgFlag & CURRENT_TX_RATE) { - enum CURRENT_TXRATE curr_tx_rate = strHostIFCfgParamAttr->pstrCfgParamVal.curr_tx_rate; + if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & CURRENT_TX_RATE) { + enum CURRENT_TXRATE curr_tx_rate = strHostIFCfgParamAttr->cfg_attr_info.curr_tx_rate; /*----------------------------------------------------------------------*/ /*Rates: 1 2 5.5 11 6 9 12 18 24 36 48 54 Auto */ /*InputValues: 1 2 3 4 5 6 7 8 9 10 11 12 0 */ @@ -5504,7 +5504,7 @@ s32 hif_set_cfg(struct host_if_drv *hif_drv, /* prepare the WiphyParams Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_CFG_PARAMS; - msg.body.cfg_info.pstrCfgParamVal = *pstrCfgParamVal; + msg.body.cfg_info.cfg_attr_info = *pstrCfgParamVal; msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 87c05b286316f0dc3ba5f42f16043b213fb71d88 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:07 +0900 Subject: [PATCH 1460/2431] staging: wilc1000: rename u32SetCfgFlag of struct cfg_param_val This patch renames u32SetCfgFlag of struct cfg_param_val to flag to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 36 +++++++++---------- drivers/staging/wilc1000/host_interface.h | 2 +- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 10 +++--- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4bf10eb57691..d905e17e7fb2 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -847,7 +847,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting CFG params\n"); - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & BSS_TYPE) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & BSS_TYPE) { /*----------------------------------------------------------*/ /*Input Value: INFRASTRUCTURE = 1, */ /* INDEPENDENT= 2, */ @@ -867,7 +867,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & AUTH_TYPE) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & AUTH_TYPE) { /*------------------------------------------------------*/ /*Input Values: OPEN_SYSTEM = 0, */ /* SHARED_KEY = 1, */ @@ -887,7 +887,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & AUTHEN_TIMEOUT) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & AUTHEN_TIMEOUT) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.auth_timeout > 0 && strHostIFCfgParamAttr->cfg_attr_info.auth_timeout < 65536) { strWIDList[u8WidCnt].id = WID_AUTH_TIMEOUT; @@ -902,7 +902,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & POWER_MANAGEMENT) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & POWER_MANAGEMENT) { /*-----------------------------------------------------------*/ /*Input Values: NO_POWERSAVE = 0, */ /* MIN_FAST_PS = 1, */ @@ -923,7 +923,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & RETRY_SHORT) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & RETRY_SHORT) { /* range from 1 to 256 */ if ((strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit > 0) && (strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit < 256)) { strWIDList[u8WidCnt].id = WID_SHORT_RETRY_LIMIT; @@ -938,7 +938,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & RETRY_LONG) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & RETRY_LONG) { /* range from 1 to 256 */ if ((strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit > 0) && (strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit < 256)) { strWIDList[u8WidCnt].id = WID_LONG_RETRY_LIMIT; @@ -954,7 +954,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & FRAG_THRESHOLD) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & FRAG_THRESHOLD) { if (strHostIFCfgParamAttr->cfg_attr_info.frag_threshold > 255 && strHostIFCfgParamAttr->cfg_attr_info.frag_threshold < 7937) { strWIDList[u8WidCnt].id = WID_FRAG_THRESHOLD; @@ -969,7 +969,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & RTS_THRESHOLD) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & RTS_THRESHOLD) { /* range 256 to 65535 */ if (strHostIFCfgParamAttr->cfg_attr_info.rts_threshold > 255 && strHostIFCfgParamAttr->cfg_attr_info.rts_threshold < 65536) { strWIDList[u8WidCnt].id = WID_RTS_THRESHOLD; @@ -984,7 +984,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & PREAMBLE) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & PREAMBLE) { /*-----------------------------------------------------*/ /*Input Values: Short= 0, */ /* Long= 1, */ @@ -1003,7 +1003,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & SHORT_SLOT_ALLOWED) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & SHORT_SLOT_ALLOWED) { if (strHostIFCfgParamAttr->cfg_attr_info.short_slot_allowed < 2) { strWIDList[u8WidCnt].id = WID_SHORT_SLOT_ALLOWED; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.short_slot_allowed; @@ -1017,7 +1017,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & TXOP_PROT_DISABLE) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & TXOP_PROT_DISABLE) { /*Description: used to Disable RTS-CTS protection for TXOP burst*/ /*transmission when the acknowledgement policy is No-Ack or Block-Ack */ /* this information is useful for external supplicant */ @@ -1035,7 +1035,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & BEACON_INTERVAL) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & BEACON_INTERVAL) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.beacon_interval > 0 && strHostIFCfgParamAttr->cfg_attr_info.beacon_interval < 65536) { strWIDList[u8WidCnt].id = WID_BEACON_INTERVAL; @@ -1050,7 +1050,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & DTIM_PERIOD) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & DTIM_PERIOD) { /* range is 1 to 255. */ if (strHostIFCfgParamAttr->cfg_attr_info.dtim_period > 0 && strHostIFCfgParamAttr->cfg_attr_info.dtim_period < 256) { strWIDList[u8WidCnt].id = WID_DTIM_PERIOD; @@ -1065,7 +1065,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & SITE_SURVEY) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & SITE_SURVEY) { /*----------------------------------------------------------------------*/ /*Input Values: SITE_SURVEY_1CH = 0, i.e.: currently set channel */ /* SITE_SURVEY_ALL_CH = 1, */ @@ -1084,7 +1084,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & SITE_SURVEY_SCAN_TIME) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & SITE_SURVEY_SCAN_TIME) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_SITE_SURVEY_SCAN_TIME; @@ -1099,7 +1099,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & ACTIVE_SCANTIME) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & ACTIVE_SCANTIME) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.active_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.active_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_ACTIVE_SCAN_TIME; @@ -1114,7 +1114,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & PASSIVE_SCANTIME) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & PASSIVE_SCANTIME) { /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_PASSIVE_SCAN_TIME; @@ -1129,7 +1129,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } u8WidCnt++; } - if (strHostIFCfgParamAttr->cfg_attr_info.u32SetCfgFlag & CURRENT_TX_RATE) { + if (strHostIFCfgParamAttr->cfg_attr_info.flag & CURRENT_TX_RATE) { enum CURRENT_TXRATE curr_tx_rate = strHostIFCfgParamAttr->cfg_attr_info.curr_tx_rate; /*----------------------------------------------------------------------*/ /*Rates: 1 2 5.5 11 6 9 12 18 24 36 48 54 Auto */ diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index c6dbb6e45c87..0c5f395155b0 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -102,7 +102,7 @@ enum CURRENT_TXRATE { }; struct cfg_param_val { - u32 u32SetCfgFlag; + u32 flag; u8 ht_enable; u8 bss_type; u8 auth_type; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 7abdd530c13a..cb2144f99084 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1649,25 +1649,25 @@ static int set_wiphy_params(struct wiphy *wiphy, u32 changed) priv = wiphy_priv(wiphy); - pstrCfgParamVal.u32SetCfgFlag = 0; + pstrCfgParamVal.flag = 0; PRINT_D(CFG80211_DBG, "Setting Wiphy params\n"); if (changed & WIPHY_PARAM_RETRY_SHORT) { PRINT_D(CFG80211_DBG, "Setting WIPHY_PARAM_RETRY_SHORT %d\n", priv->dev->ieee80211_ptr->wiphy->retry_short); - pstrCfgParamVal.u32SetCfgFlag |= RETRY_SHORT; + pstrCfgParamVal.flag |= RETRY_SHORT; pstrCfgParamVal.short_retry_limit = priv->dev->ieee80211_ptr->wiphy->retry_short; } if (changed & WIPHY_PARAM_RETRY_LONG) { PRINT_D(CFG80211_DBG, "Setting WIPHY_PARAM_RETRY_LONG %d\n", priv->dev->ieee80211_ptr->wiphy->retry_long); - pstrCfgParamVal.u32SetCfgFlag |= RETRY_LONG; + pstrCfgParamVal.flag |= RETRY_LONG; pstrCfgParamVal.long_retry_limit = priv->dev->ieee80211_ptr->wiphy->retry_long; } if (changed & WIPHY_PARAM_FRAG_THRESHOLD) { PRINT_D(CFG80211_DBG, "Setting WIPHY_PARAM_FRAG_THRESHOLD %d\n", priv->dev->ieee80211_ptr->wiphy->frag_threshold); - pstrCfgParamVal.u32SetCfgFlag |= FRAG_THRESHOLD; + pstrCfgParamVal.flag |= FRAG_THRESHOLD; pstrCfgParamVal.frag_threshold = priv->dev->ieee80211_ptr->wiphy->frag_threshold; } @@ -1675,7 +1675,7 @@ static int set_wiphy_params(struct wiphy *wiphy, u32 changed) if (changed & WIPHY_PARAM_RTS_THRESHOLD) { PRINT_D(CFG80211_DBG, "Setting WIPHY_PARAM_RTS_THRESHOLD %d\n", priv->dev->ieee80211_ptr->wiphy->rts_threshold); - pstrCfgParamVal.u32SetCfgFlag |= RTS_THRESHOLD; + pstrCfgParamVal.flag |= RTS_THRESHOLD; pstrCfgParamVal.rts_threshold = priv->dev->ieee80211_ptr->wiphy->rts_threshold; } From 2ed7a2fbddcd0069801ab4aae928d2036a08b9da Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:08 +0900 Subject: [PATCH 1461/2431] staging: wilc1000: rename strHostIFwepAttr of union host_if_key_attr This patch renames strHostIFwepAttr of union host_if_key_attr to wep to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 71 ++++++++++------------- 1 file changed, 31 insertions(+), 40 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d905e17e7fb2..d03643dfe276 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -126,7 +126,7 @@ struct host_if_wep_attr { * @version 1.0 */ union host_if_key_attr { - struct host_if_wep_attr strHostIFwepAttr; + struct host_if_wep_attr wep; struct host_if_wpa_attr strHostIFwpaAttr; struct host_if_pmkid_attr strHostIFpmkidAttr; }; @@ -2349,25 +2349,25 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); - PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); + PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx)); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8mode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8mode)); strWIDList[1].id = WID_AUTH_TYPE; strWIDList[1].type = WID_CHAR; strWIDList[1].size = sizeof(char); - strWIDList[1].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type)); + strWIDList[1].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.tenuAuth_type)); strWIDList[2].id = (u16)WID_KEY_ID; strWIDList[2].type = WID_CHAR; - strWIDList[2].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); + strWIDList[2].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx)); strWIDList[2].size = sizeof(char); - pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen, GFP_KERNEL); + pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen, GFP_KERNEL); if (pu8keybuf == NULL) { @@ -2375,15 +2375,15 @@ static int Handle_Key(struct host_if_drv *hif_drv, return -1; } - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, - pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen); + memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.pu8WepKey, + pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen); - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey); + kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.pu8WepKey); strWIDList[3].id = (u16)WID_WEP_KEY_VALUE; strWIDList[3].type = WID_STR; - strWIDList[3].size = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen; + strWIDList[3].size = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen; strWIDList[3].val = (s8 *)pu8keybuf; @@ -2396,24 +2396,24 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); - pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2, GFP_KERNEL); + pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen + 2, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send Key\n"); return -1; } - pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx; + pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx; - memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen, 1); + memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen, 1); - memcpy(pu8keybuf + 2, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, - pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen); + memcpy(pu8keybuf + 2, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.pu8WepKey, + pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen); - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey); + kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.pu8WepKey); strWID.id = (u16)WID_ADD_WEP_KEY; strWID.type = WID_STR; strWID.val = (s8 *)pu8keybuf; - strWID.size = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen + 2; + strWID.size = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen + 2; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -2424,7 +2424,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.id = (u16)WID_REMOVE_WEP_KEY; strWID.type = WID_STR; - s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx; + s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx; strWID.val = s8idxarray; strWID.size = 1; @@ -2433,7 +2433,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, } else { strWID.id = (u16)WID_KEY_ID; strWID.type = WID_CHAR; - strWID.val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx)); + strWID.val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx)); strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting default key index\n"); @@ -4092,9 +4092,7 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = REMOVEKEY; msg.drv = hif_drv; - - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = index; + msg.body.key_info.uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = index; /* send the message */ result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4139,8 +4137,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) msg.drv = hif_drv; - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Index; + msg.body.key_info.uniHostIFkeyAttr.wep.u8Wepidx = u8Index; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4196,17 +4193,15 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); + uniHostIFkeyAttr.wep.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wep.pu8WepKey, pu8WepKey, u8WepKeylen); - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen = (u8WepKeylen); + msg.body.key_info.uniHostIFkeyAttr.wep.u8WepKeylen = (u8WepKeylen); - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; + msg.body.key_info.uniHostIFkeyAttr.wep.u8Wepidx = u8Keyidx; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4266,24 +4261,20 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); + uniHostIFkeyAttr.wep.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwepAttr.pu8WepKey, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wep.pu8WepKey, pu8WepKey, (u8WepKeylen)); - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.u8WepKeylen = (u8WepKeylen); + msg.body.key_info.uniHostIFkeyAttr.wep.u8WepKeylen = (u8WepKeylen); - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = u8Keyidx; + msg.body.key_info.uniHostIFkeyAttr.wep.u8Wepidx = u8Keyidx; - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.u8mode = u8mode; + msg.body.key_info.uniHostIFkeyAttr.wep.u8mode = u8mode; - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwepAttr.tenuAuth_type = tenuAuth_type; + msg.body.key_info.uniHostIFkeyAttr.wep.tenuAuth_type = tenuAuth_type; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From e3501a4d7c0bd3bb74440ad6c1e175e669079ddf Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:09 +0900 Subject: [PATCH 1462/2431] staging: wilc1000: rename strHostIFwpaAttr of union host_if_key_attr This patch renames strHostIFwpaAttr of union host_if_key_attr to wpa to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 95 +++++++++++------------ 1 file changed, 44 insertions(+), 51 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d03643dfe276..83818b8723a1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -127,7 +127,7 @@ struct host_if_wep_attr { */ union host_if_key_attr { struct host_if_wep_attr wep; - struct host_if_wpa_attr strHostIFwpaAttr; + struct host_if_wpa_attr wpa; struct host_if_pmkid_attr strHostIFpmkidAttr; }; @@ -2463,21 +2463,21 @@ static int Handle_Key(struct host_if_drv *hif_drv, - if (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq != NULL) - memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, 8); + if (pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq != NULL) + memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq, 8); - memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx, 1); + memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8keyidx, 1); - memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen, 1); + memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); - memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); + memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, + pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); /* pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = 0X51; */ strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Ciphermode)); strWIDList[1].id = (u16)WID_ADD_RX_GTK; strWIDList[1].type = WID_STR; @@ -2517,13 +2517,13 @@ static int Handle_Key(struct host_if_drv *hif_drv, else PRINT_ER("Couldn't handle WPARxGtk while enuHostIFstate is not HOST_IF_CONNECTED\n"); - memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, 8); + memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq, 8); - memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx, 1); + memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8keyidx, 1); - memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen, 1); - memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); + memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, + pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); strWID.id = (u16)WID_ADD_RX_GTK; strWID.type = WID_STR; @@ -2540,8 +2540,8 @@ static int Handle_Key(struct host_if_drv *hif_drv, /* ///////////////////////// */ } _WPARxGtk_end_case_: - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8key); - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq); + kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key); + kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq); if (ret == -1) return ret; @@ -2568,19 +2568,19 @@ _WPARxGtk_end_case_: | 6 bytes | 1 byte | 1byte | 16 bytes | 8 bytes | 8 bytes | |-----------------------------------------------------------------------------|*/ - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8macaddr, 6); /*1 bytes Key Length */ + memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8macaddr, 6); /*1 bytes Key Length */ - memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx, 1); - memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen, 1); + memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8keyidx, 1); + memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); /*16 byte TK*/ - memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); + memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, + pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Ciphermode)); strWIDList[1].id = (u16)WID_ADD_PTK; strWIDList[1].type = WID_STR; @@ -2615,12 +2615,12 @@ _WPARxGtk_end_case_: | 6 bytes | 1byte | 16 bytes | 8 bytes | 8 bytes | |-----------------------------------------------------------------------------|*/ - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8macaddr, 6); /*1 bytes Key Length */ + memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8macaddr, 6); /*1 bytes Key Length */ - memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen, 1); + memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); /*16 byte TK*/ - memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen); + memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, + pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); strWID.id = (u16)WID_ADD_PTK; @@ -2638,7 +2638,7 @@ _WPARxGtk_end_case_: } _WPAPtk_end_case_: - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.pu8key); + kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key); if (ret == -1) return ret; @@ -4330,23 +4330,22 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.body.key_info.enuKeyType = WPAPtk; if (mode == AP_MODE) { msg.body.key_info.u8KeyAction = ADDKEY_AP; - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8Idx; + msg.body.key_info.uniHostIFkeyAttr.wpa.u8keyidx = u8Idx; } if (mode == STATION_MODE) msg.body.key_info.u8KeyAction = ADDKEY; msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); + uniHostIFkeyAttr.wpa.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key, pu8Ptk, u8PtkKeylen); if (pu8RxMic != NULL) { - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < RX_MIC_KEY_LEN; i++) @@ -4355,7 +4354,7 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, } if (pu8TxMic != NULL) { - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < TX_MIC_KEY_LEN; i++) @@ -4363,13 +4362,10 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, } } - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen = u8KeyLen; + msg.body.key_info.uniHostIFkeyAttr.wpa.u8Keylen = u8KeyLen; - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.pu8macaddr = mac_addr; + msg.body.key_info.uniHostIFkeyAttr.wpa.u8Ciphermode = u8Ciphermode; + msg.body.key_info.uniHostIFkeyAttr.wpa.pu8macaddr = mac_addr; msg.drv = hif_drv; /* send the message */ @@ -4423,9 +4419,9 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, u8KeyLen += TX_MIC_KEY_LEN; if (KeyRSC != NULL) { msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); + uniHostIFkeyAttr.wpa.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8seq, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8seq, KeyRSC, u32KeyRSClen); } @@ -4436,38 +4432,35 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, if (mode == AP_MODE) { msg.body.key_info.u8KeyAction = ADDKEY_AP; - msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = u8Ciphermode; + msg.body.key_info.uniHostIFkeyAttr.wpa.u8Ciphermode = u8Ciphermode; } if (mode == STATION_MODE) msg.body.key_info.u8KeyAction = ADDKEY; msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); + uniHostIFkeyAttr.wpa.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key, pu8RxGtk, u8GtkKeylen); if (pu8RxMic != NULL) { - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 16, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); } if (pu8TxMic != NULL) { - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFwpaAttr.pu8key + 24, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); } - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.u8keyidx = u8KeyIdx; - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.u8Keylen = u8KeyLen; + msg.body.key_info.uniHostIFkeyAttr.wpa.u8keyidx = u8KeyIdx; + msg.body.key_info.uniHostIFkeyAttr.wpa.u8Keylen = u8KeyLen; - msg.body.key_info. - uniHostIFkeyAttr.strHostIFwpaAttr.u8seqlen = u32KeyRSClen; + msg.body.key_info.uniHostIFkeyAttr.wpa.u8seqlen = u32KeyRSClen; From 610e38680fdcaec5911619df317eeea20672fdc6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:10 +0900 Subject: [PATCH 1463/2431] staging: wilc1000: rename strHostIFpmkidAttr of union host_if_key_attr This patch renames strHostIFpmkidAttr of union host_if_key_attr to pmkid to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 83818b8723a1..3437d8c59952 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -128,7 +128,7 @@ struct host_if_wep_attr { union host_if_key_attr { struct host_if_wep_attr wep; struct host_if_wpa_attr wpa; - struct host_if_pmkid_attr strHostIFpmkidAttr; + struct host_if_pmkid_attr pmkid; }; /*! @@ -2649,24 +2649,24 @@ _WPAPtk_end_case_: PRINT_D(HOSTINF_DBG, "Handling PMKSA key\n"); - pu8keybuf = kmalloc((pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1, GFP_KERNEL); + pu8keybuf = kmalloc((pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send PMKSA Key\n"); return -1; } - pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid; + pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.numpmkid; - for (i = 0; i < pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid; i++) { + for (i = 0; i < pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.numpmkid; i++) { - memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + 1), pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].bssid, ETH_ALEN); - memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + ETH_ALEN + 1), pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, PMKID_LEN); + memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + 1), pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.pmkidlist[i].bssid, ETH_ALEN); + memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + ETH_ALEN + 1), pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.pmkidlist[i].pmkid, PMKID_LEN); } strWID.id = (u16)WID_PMKID_INFO; strWID.type = WID_STR; strWID.val = (s8 *)pu8keybuf; - strWID.size = (pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFpmkidAttr.numpmkid * PMKSA_KEY_LEN) + 1; + strWID.size = (pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -4518,10 +4518,10 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, + memcpy(msg.body.key_info.uniHostIFkeyAttr.pmkid.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, ETH_ALEN); - memcpy(msg.body.key_info.uniHostIFkeyAttr.strHostIFpmkidAttr.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, + memcpy(msg.body.key_info.uniHostIFkeyAttr.pmkid.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, PMKID_LEN); } From e5538d34b323065f321eea8f2847c2b21bef16e8 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:11 +0900 Subject: [PATCH 1464/2431] staging: wilc1000: rename pu8WepKey of struct host_if_wep_attr This patch renames pu8WepKey of struct host_if_wep_attr to key in order to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3437d8c59952..b331a7b7fbe1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -108,7 +108,7 @@ struct host_if_wpa_attr { * @version 1.0 */ struct host_if_wep_attr { - u8 *pu8WepKey; + u8 *key; u8 u8WepKeylen; u8 u8Wepidx; u8 u8mode; @@ -2375,11 +2375,11 @@ static int Handle_Key(struct host_if_drv *hif_drv, return -1; } - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.pu8WepKey, + memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen); - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.pu8WepKey); + kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key); strWIDList[3].id = (u16)WID_WEP_KEY_VALUE; strWIDList[3].type = WID_STR; @@ -2405,10 +2405,10 @@ static int Handle_Key(struct host_if_drv *hif_drv, memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen, 1); - memcpy(pu8keybuf + 2, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.pu8WepKey, + memcpy(pu8keybuf + 2, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen); - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.pu8WepKey); + kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key); strWID.id = (u16)WID_ADD_WEP_KEY; strWID.type = WID_STR; @@ -4193,9 +4193,9 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.body.key_info. - uniHostIFkeyAttr.wep.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); + uniHostIFkeyAttr.wep.key = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(msg.body.key_info.uniHostIFkeyAttr.wep.pu8WepKey, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wep.key, pu8WepKey, u8WepKeylen); @@ -4261,10 +4261,10 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info. - uniHostIFkeyAttr.wep.pu8WepKey = kmalloc(u8WepKeylen, GFP_KERNEL); + uniHostIFkeyAttr.wep.key = kmalloc(u8WepKeylen, GFP_KERNEL); - memcpy(msg.body.key_info.uniHostIFkeyAttr.wep.pu8WepKey, + memcpy(msg.body.key_info.uniHostIFkeyAttr.wep.key, pu8WepKey, (u8WepKeylen)); From d520e35522055199c011fbc79e4bd8e6a28eb960 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:12 +0900 Subject: [PATCH 1465/2431] staging: wilc1000: rename u8WepKeylen of struct host_if_wep_attr This patch renames u8WepKeylen of struct host_if_wep_attr to key_len to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b331a7b7fbe1..c4c570ae4b96 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -109,7 +109,7 @@ struct host_if_wpa_attr { */ struct host_if_wep_attr { u8 *key; - u8 u8WepKeylen; + u8 key_len; u8 u8Wepidx; u8 u8mode; enum AUTHTYPE tenuAuth_type; @@ -2367,7 +2367,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[2].size = sizeof(char); - pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen, GFP_KERNEL); + pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len, GFP_KERNEL); if (pu8keybuf == NULL) { @@ -2376,14 +2376,14 @@ static int Handle_Key(struct host_if_drv *hif_drv, } memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen); + pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len); kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key); strWIDList[3].id = (u16)WID_WEP_KEY_VALUE; strWIDList[3].type = WID_STR; - strWIDList[3].size = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen; + strWIDList[3].size = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len; strWIDList[3].val = (s8 *)pu8keybuf; @@ -2396,24 +2396,24 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); - pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen + 2, GFP_KERNEL); + pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len + 2, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send Key\n"); return -1; } pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx; - memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen, 1); + memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len, 1); memcpy(pu8keybuf + 2, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen); + pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len); kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key); strWID.id = (u16)WID_ADD_WEP_KEY; strWID.type = WID_STR; strWID.val = (s8 *)pu8keybuf; - strWID.size = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8WepKeylen + 2; + strWID.size = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len + 2; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -4199,7 +4199,7 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, pu8WepKey, u8WepKeylen); - msg.body.key_info.uniHostIFkeyAttr.wep.u8WepKeylen = (u8WepKeylen); + msg.body.key_info.uniHostIFkeyAttr.wep.key_len = (u8WepKeylen); msg.body.key_info.uniHostIFkeyAttr.wep.u8Wepidx = u8Keyidx; @@ -4268,7 +4268,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, pu8WepKey, (u8WepKeylen)); - msg.body.key_info.uniHostIFkeyAttr.wep.u8WepKeylen = (u8WepKeylen); + msg.body.key_info.uniHostIFkeyAttr.wep.key_len = (u8WepKeylen); msg.body.key_info.uniHostIFkeyAttr.wep.u8Wepidx = u8Keyidx; From 259b3aa61efb5b94bf72e1da8b404bff6b88fa34 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:13 +0900 Subject: [PATCH 1466/2431] staging: wilc1000: rename u8Wepidx of struct host_if_wep_attr This patch renames u8Wepidx of struct host_if_wep_attr to index to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c4c570ae4b96..c808f928b1e7 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -110,7 +110,7 @@ struct host_if_wpa_attr { struct host_if_wep_attr { u8 *key; u8 key_len; - u8 u8Wepidx; + u8 index; u8 u8mode; enum AUTHTYPE tenuAuth_type; }; @@ -2349,7 +2349,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); - PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx)); + PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index)); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); @@ -2363,7 +2363,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[2].id = (u16)WID_KEY_ID; strWIDList[2].type = WID_CHAR; - strWIDList[2].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx)); + strWIDList[2].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index)); strWIDList[2].size = sizeof(char); @@ -2401,7 +2401,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, PRINT_ER("No buffer to send Key\n"); return -1; } - pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx; + pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index; memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len, 1); @@ -2424,7 +2424,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.id = (u16)WID_REMOVE_WEP_KEY; strWID.type = WID_STR; - s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx; + s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index; strWID.val = s8idxarray; strWID.size = 1; @@ -2433,7 +2433,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, } else { strWID.id = (u16)WID_KEY_ID; strWID.type = WID_CHAR; - strWID.val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8Wepidx)); + strWID.val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index)); strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting default key index\n"); @@ -4092,7 +4092,7 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) msg.body.key_info.enuKeyType = WEP; msg.body.key_info.u8KeyAction = REMOVEKEY; msg.drv = hif_drv; - msg.body.key_info.uniHostIFkeyAttr.strHostIFwepAttr.u8Wepidx = index; + msg.body.key_info.uniHostIFkeyAttr.wep.index = index; /* send the message */ result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4137,7 +4137,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) msg.drv = hif_drv; - msg.body.key_info.uniHostIFkeyAttr.wep.u8Wepidx = u8Index; + msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Index; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4201,7 +4201,7 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.body.key_info.uniHostIFkeyAttr.wep.key_len = (u8WepKeylen); - msg.body.key_info.uniHostIFkeyAttr.wep.u8Wepidx = u8Keyidx; + msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Keyidx; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4270,7 +4270,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info.uniHostIFkeyAttr.wep.key_len = (u8WepKeylen); - msg.body.key_info.uniHostIFkeyAttr.wep.u8Wepidx = u8Keyidx; + msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Keyidx; msg.body.key_info.uniHostIFkeyAttr.wep.u8mode = u8mode; From b5eaff1278a283a8eb94b82b965009f92d78fbe2 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:14 +0900 Subject: [PATCH 1467/2431] staging: wilc1000: rename u8mode of struct host_if_wep_attr This patch renames u8mode of struct host_if_wep_attr to mode to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c808f928b1e7..edea2654c9ea 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -111,7 +111,7 @@ struct host_if_wep_attr { u8 *key; u8 key_len; u8 index; - u8 u8mode; + u8 mode; enum AUTHTYPE tenuAuth_type; }; @@ -2353,7 +2353,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.u8mode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.mode)); strWIDList[1].id = WID_AUTH_TYPE; strWIDList[1].type = WID_CHAR; @@ -4272,7 +4272,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Keyidx; - msg.body.key_info.uniHostIFkeyAttr.wep.u8mode = u8mode; + msg.body.key_info.uniHostIFkeyAttr.wep.mode = u8mode; msg.body.key_info.uniHostIFkeyAttr.wep.tenuAuth_type = tenuAuth_type; /* send the message */ From 7fa252e7ef373be0c263635ecdd8987b1db61939 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:15 +0900 Subject: [PATCH 1468/2431] staging: wilc1000: rename tenuAuth_type of struct host_if_wep_attr This patch renames tenuAuth_type of struct host_if_wep_attr to auth_type to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index edea2654c9ea..ec04aecb0c7c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -112,7 +112,7 @@ struct host_if_wep_attr { u8 key_len; u8 index; u8 mode; - enum AUTHTYPE tenuAuth_type; + enum AUTHTYPE auth_type; }; /*! @@ -2358,7 +2358,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[1].id = WID_AUTH_TYPE; strWIDList[1].type = WID_CHAR; strWIDList[1].size = sizeof(char); - strWIDList[1].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.tenuAuth_type)); + strWIDList[1].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.auth_type)); strWIDList[2].id = (u16)WID_KEY_ID; strWIDList[2].type = WID_CHAR; @@ -4274,7 +4274,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info.uniHostIFkeyAttr.wep.mode = u8mode; - msg.body.key_info.uniHostIFkeyAttr.wep.tenuAuth_type = tenuAuth_type; + msg.body.key_info.uniHostIFkeyAttr.wep.auth_type = tenuAuth_type; /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 6b69b4f0aa7d3e3d5810f5c8c1c55c55be0927d2 Mon Sep 17 00:00:00 2001 From: Stanislav Kholmanskikh Date: Thu, 8 Oct 2015 21:23:13 +0300 Subject: [PATCH 1469/2431] staging: wilc1000: linux_wlan_spi: correct types linux_spi_write(), linux_spi_read(), linux_spi_write_read(): nwi->io_func.u.spi.spi_tx = linux_spi_write; nwi->io_func.u.spi.spi_rx = linux_spi_read; nwi->io_func.u.spi.spi_trx = linux_spi_write_read; are expected to accept arguments of 'u8 *', u32 types: struct { int (*spi_max_speed)(void); int (*spi_tx)(u8 *, u32); int (*spi_rx)(u8 *, u32); int (*spi_trx)(u8 *, u8 *, u32); } spi; However, linux_spi_read() and linux_spi_write_read() do not do this, they use 'unsigned char *' and 'unsigned long' instead. Changed the types of their arguments to satisfy the expectations. Signed-off-by: Stanislav Kholmanskikh Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan_spi.c | 12 ++++++------ drivers/staging/wilc1000/linux_wlan_spi.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 51bbd969e96b..c6c1f6ec8c71 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -243,7 +243,7 @@ int linux_spi_write(u8 *b, u32 len) #if defined(TXRX_PHASE_SIZE) -int linux_spi_read(unsigned char *rb, unsigned long rlen) +int linux_spi_read(u8 *rb, u32 rlen) { int ret; @@ -307,7 +307,7 @@ int linux_spi_read(unsigned char *rb, unsigned long rlen) kfree(t_buffer); } else { - PRINT_ER("can't read data with the following length: %ld\n", rlen); + PRINT_ER("can't read data with the following length: %u\n", rlen); ret = -1; } /* change return value to match WILC interface */ @@ -317,7 +317,7 @@ int linux_spi_read(unsigned char *rb, unsigned long rlen) } #else -int linux_spi_read(unsigned char *rb, unsigned long rlen) +int linux_spi_read(u8 *rb, u32 rlen) { int ret; @@ -351,7 +351,7 @@ int linux_spi_read(unsigned char *rb, unsigned long rlen) } kfree(t_buffer); } else { - PRINT_ER("can't read data with the following length: %ld\n", rlen); + PRINT_ER("can't read data with the following length: %u\n", rlen); ret = -1; } /* change return value to match WILC interface */ @@ -362,7 +362,7 @@ int linux_spi_read(unsigned char *rb, unsigned long rlen) #endif -int linux_spi_write_read(unsigned char *wb, unsigned char *rb, unsigned int rlen) +int linux_spi_write_read(u8 *wb, u8 *rb, u32 rlen) { int ret; @@ -390,7 +390,7 @@ int linux_spi_write_read(unsigned char *wb, unsigned char *rb, unsigned int rlen PRINT_ER("SPI transaction failed\n"); } } else { - PRINT_ER("can't read data with the following length: %d\n", rlen); + PRINT_ER("can't read data with the following length: %u\n", rlen); ret = -1; } /* change return value to match WILC interface */ diff --git a/drivers/staging/wilc1000/linux_wlan_spi.h b/drivers/staging/wilc1000/linux_wlan_spi.h index d8eed0f52f8b..7356785296f9 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.h +++ b/drivers/staging/wilc1000/linux_wlan_spi.h @@ -9,6 +9,6 @@ int linux_spi_init(void *vp); void linux_spi_deinit(void *vp); int linux_spi_write(u8 *b, u32 len); int linux_spi_read(u8 *rb, u32 rlen); -int linux_spi_write_read(unsigned char *wb, unsigned char *rb, unsigned int rlen); +int linux_spi_write_read(u8 *wb, u8 *rb, u32 rlen); int linux_spi_set_max_speed(void); #endif From 56293ff232b9e2b071ffff177010b296acda0523 Mon Sep 17 00:00:00 2001 From: Stanislav Kholmanskikh Date: Thu, 8 Oct 2015 21:23:14 +0300 Subject: [PATCH 1470/2431] staging: wilc1000: linux_wlan_spi: include header A check using 'sparse' shows warnings in linux_wlan_spi.c: drivers/staging/wilc1000/linux_wlan_spi.c:43:19: warning: symbol 'wilc_spi_dev' was not declared. Should it be static? drivers/staging/wilc1000/linux_wlan_spi.c:71:19: warning: symbol 'wilc_bus' was not declared. Should it be static? drivers/staging/wilc1000/linux_wlan_spi.c:95:5: warning: symbol 'linux_spi_init' was not declared. Should it be static? drivers/staging/wilc1000/linux_wlan_spi.c:195:5: warning: symbol 'linux_spi_write' was not declared. Should it be static? drivers/staging/wilc1000/linux_wlan_spi.c:320:5: warning: symbol 'linux_spi_read' was not declared. Should it be static? drivers/staging/wilc1000/linux_wlan_spi.c:365:5: warning: symbol 'linux_spi_write_read' was not declared. Should it be static? drivers/staging/wilc1000/linux_wlan_spi.c:402:5: warning: symbol 'linux_spi_set_max_speed' was not declared. Should it be static? Let's avoid it by including "linux_wlan_spi.h" header. Signed-off-by: Stanislav Kholmanskikh Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan_spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index c6c1f6ec8c71..760b72a9a6ff 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -10,6 +10,7 @@ #include #include "linux_wlan_common.h" +#include "linux_wlan_spi.h" #define USE_SPI_DMA 0 /* johnny add */ @@ -40,7 +41,6 @@ static u32 SPEED = MIN_SPEED; -struct spi_device *wilc_spi_dev; void linux_spi_deinit(void *vp); static int __init wilc_bus_probe(struct spi_device *spi) From 39823a50ff371cbaa0baa7ccb7a479e61375b4a0 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Thu, 8 Oct 2015 21:18:03 -0700 Subject: [PATCH 1471/2431] staging: wilc1000: remove braces around single statement blocks Remove excess braces as suggested by checkpatch.pl: WARNING: braces {} are not necessary for single statement blocks Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 73 +++++++++++++--------------- 1 file changed, 33 insertions(+), 40 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 1d23badb5453..d3f39557c64a 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -171,9 +171,9 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) if (p->txq_head) { tqe = p->txq_head; p->txq_head = tqe->next; - if (p->txq_head) { + if (p->txq_head) p->txq_head->prev = NULL; - } + p->txq_entries -= 1; @@ -312,9 +312,8 @@ static inline int add_TCP_track_session(u32 src_prt, u32 dst_prt, u32 seq) static inline int Update_TCP_track_session(u32 index, u32 Ack) { - if (Ack > Acks_keep_track_info[index].Bigger_Ack_num) { + if (Ack > Acks_keep_track_info[index].Bigger_Ack_num) Acks_keep_track_info[index].Bigger_Ack_num = Ack; - } return 0; } @@ -388,9 +387,9 @@ static inline int tcp_process(struct txq_entry_t *tqe) break; } } - if (i == Opened_TCP_session) { + if (i == Opened_TCP_session) add_TCP_track_session(0, 0, seq_no); - } + add_TCP_Pending_Ack(Ack_no, i, tqe); @@ -671,9 +670,9 @@ static inline void chip_wakeup(void) usleep_range(2 * 1000, 2 * 1000); /* Make sure chip is awake. This is an extra step that can be removed */ /* later to avoid the bus access overhead */ - if ((wilc_get_chipid(true) == 0)) { + if ((wilc_get_chipid(true) == 0)) wilc_debug(N_ERR, "Couldn't read chip id. Wake up failed\n"); - } + } while ((wilc_get_chipid(true) == 0) && ((++trials % 3) == 0)); } while (wilc_get_chipid(true) == 0); @@ -697,9 +696,9 @@ static inline void chip_wakeup(void) /* later to avoid the bus access overhead */ g_wlan.hif_func.hif_read_reg(0xf1, &clk_status_reg); - if ((clk_status_reg & 0x1) == 0) { + if ((clk_status_reg & 0x1) == 0) wilc_debug(N_ERR, "clocks still OFF. Wake up failed\n"); - } + } /* in case of failure, Reset the wakeup bit to introduce a new edge on the next loop */ if ((clk_status_reg & 0x1) == 0) { @@ -761,9 +760,9 @@ static inline void chip_wakeup(void) /* Make sure chip is awake. This is an extra step that can be removed */ /* later to avoid the bus access overhead */ - if ((wilc_get_chipid(true) == 0)) { + if ((wilc_get_chipid(true) == 0)) wilc_debug(N_ERR, "Couldn't read chip id. Wake up failed\n"); - } + } while ((wilc_get_chipid(true) == 0) && ((++trials % 3) == 0)); } while (wilc_get_chipid(true) == 0); @@ -850,23 +849,23 @@ int wilc_wlan_handle_txq(u32 *pu32TxqCount) do { if ((tqe != NULL) && (i < (WILC_VMM_TBL_SIZE - 1)) /* reserve last entry to 0 */) { - if (tqe->type == WILC_CFG_PKT) { + if (tqe->type == WILC_CFG_PKT) vmm_sz = ETH_CONFIG_PKT_HDR_OFFSET; - } - else if (tqe->type == WILC_NET_PKT) { + + else if (tqe->type == WILC_NET_PKT) vmm_sz = ETH_ETHERNET_HDR_OFFSET; - } - else { + + else vmm_sz = HOST_HDR_OFFSET; - } + vmm_sz += tqe->buffer_size; PRINT_D(TX_DBG, "VMM Size before alignment = %d\n", vmm_sz); if (vmm_sz & 0x3) { /* has to be word aligned */ vmm_sz = (vmm_sz + 4) & ~0x3; } - if ((sum + vmm_sz) > LINUX_TX_SIZE) { + if ((sum + vmm_sz) > LINUX_TX_SIZE) break; - } + PRINT_D(TX_DBG, "VMM Size AFTER alignment = %d\n", vmm_sz); vmm_table[i] = vmm_sz / 4; /* table take the word size */ PRINT_D(TX_DBG, "VMMTable entry size = %d\n", vmm_table[i]); @@ -929,9 +928,8 @@ int wilc_wlan_handle_txq(u32 *pu32TxqCount) } } while (!p->quit); - if (!ret) { + if (!ret) goto _end_; - } timeout = 200; do { @@ -983,9 +981,8 @@ int wilc_wlan_handle_txq(u32 *pu32TxqCount) break; } - if (!ret) { + if (!ret) break; - } if (entries == 0) { PRINT_WRN(GENERIC_DBG, "[wilc txq]: no more buffer in the chip (reg: %08x), retry later [[ %d, %x ]]\n", reg, i, vmm_table[i - 1]); @@ -1008,9 +1005,9 @@ int wilc_wlan_handle_txq(u32 *pu32TxqCount) } } while (1); - if (!ret) { + if (!ret) goto _end_; - } + if (entries == 0) { ret = WILC_TX_ERR_NO_BUF; goto _end_; @@ -1066,9 +1063,8 @@ int wilc_wlan_handle_txq(u32 *pu32TxqCount) if (tqe->tx_complete_func) tqe->tx_complete_func(tqe->priv, tqe->status); #ifdef TCP_ACK_FILTER - if (tqe->tcp_PendingAck_index != NOT_TCP_ACK) { + if (tqe->tcp_PendingAck_index != NOT_TCP_ACK) Pending_Acks_info[tqe->tcp_PendingAck_index].txqe = NULL; - } #endif kfree(tqe); } else { @@ -1197,9 +1193,8 @@ static void wilc_wlan_handle_rxq(void) * wake up the waiting task... **/ PRINT_D(RX_DBG, "p->cfg_seq_no = %d - rsp.seq_no = %d\n", p->cfg_seq_no, rsp.seq_no); - if (p->cfg_seq_no == rsp.seq_no) { + if (p->cfg_seq_no == rsp.seq_no) up(&g_linux_wlan->cfg_event); - } } else if (rsp.type == WILC_CFG_RSP_STATUS) { /** * Call back to indicate status... @@ -1222,9 +1217,9 @@ static void wilc_wlan_handle_rxq(void) #endif kfree(rqe); - if (has_packet) { + if (has_packet) linux_wlan_rx_complete(); - } + } while (1); p->rxq_exit = 1; @@ -1365,9 +1360,9 @@ void wilc_handle_isr(void) acquire_bus(ACQUIRE_AND_WAKEUP); g_wlan.hif_func.hif_read_int(&int_status); - if (int_status & PLL_INT_EXT) { + if (int_status & PLL_INT_EXT) wilc_pllupdate_isr_ext(int_status); - } + if (int_status & DATA_INT_EXT) { wilc_wlan_handle_isr_ext(int_status); #ifndef WILC_OPTIMIZE_SLEEP_INT @@ -1375,9 +1370,8 @@ void wilc_handle_isr(void) genuChipPSstate = CHIP_WAKEDUP; #endif } - if (int_status & SLEEP_INT_EXT) { + if (int_status & SLEEP_INT_EXT) wilc_sleeptimer_isr_ext(int_status); - } if (!(int_status & (ALL_INT_EXT))) { #ifdef WILC_SDIO @@ -2052,9 +2046,8 @@ u16 Set_machw_change_vir_if(bool bValue) /*Reset WILC_CHANGING_VIR_IF register to allow adding futrue keys to CE H/W*/ mutex_lock(&g_linux_wlan->hif_cs); ret = (&g_wlan)->hif_func.hif_read_reg(WILC_CHANGING_VIR_IF, ®); - if (!ret) { + if (!ret) PRINT_ER("Error while Reading reg WILC_CHANGING_VIR_IF\n"); - } if (bValue) reg |= BIT(31); @@ -2063,9 +2056,9 @@ u16 Set_machw_change_vir_if(bool bValue) ret = (&g_wlan)->hif_func.hif_write_reg(WILC_CHANGING_VIR_IF, reg); - if (!ret) { + if (!ret) PRINT_ER("Error while writing reg WILC_CHANGING_VIR_IF\n"); - } + mutex_unlock(&g_linux_wlan->hif_cs); return ret; From c22cbec069b532c4a9a33236305ee4d833ec67e6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 11 Oct 2015 22:01:37 +0530 Subject: [PATCH 1472/2431] Staging: wilc1000: wilc_msgqueue: Use kmemdup instead of kmalloc and memcpy Replace kmalloc and memcpy with kmemdup. Problem found using coccicheck Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_msgqueue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index d5ebd6d08db7..b13809a4b556 100644 --- a/drivers/staging/wilc1000/wilc_msgqueue.c +++ b/drivers/staging/wilc1000/wilc_msgqueue.c @@ -80,12 +80,12 @@ int wilc_mq_send(WILC_MsgQueueHandle *pHandle, return -ENOMEM; pstrMessage->u32Length = u32SendBufferSize; pstrMessage->pstrNext = NULL; - pstrMessage->pvBuffer = kmalloc(u32SendBufferSize, GFP_ATOMIC); + pstrMessage->pvBuffer = kmemdup(pvSendBuffer, u32SendBufferSize, + GFP_ATOMIC); if (!pstrMessage->pvBuffer) { result = -ENOMEM; goto ERRORHANDLER; } - memcpy(pstrMessage->pvBuffer, pvSendBuffer, u32SendBufferSize); /* add it to the message queue */ if (!pHandle->pstrMessageList) { From cccfc39e5cf502334558ed511873195d5b8df03f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 12 Oct 2015 20:49:19 +0530 Subject: [PATCH 1473/2431] Staging: wilc1000: wilc_wfi_cfgoperations: Remove NULL check before kfree kfree on NULL pointer is a no-op. The semantic patch used- // @@ expression E; @@ - if (E != NULL) { kfree(E); } + kfree(E); @@ expression E; @@ - if (E != NULL) { kfree(E); E = NULL; } + kfree(E); + E = NULL; // smpl> Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 76 ++++++------------- 1 file changed, 24 insertions(+), 52 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index cb2144f99084..6430bbfc13b9 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -233,10 +233,8 @@ static void remove_network_from_shadow(unsigned long arg) if (time_after(now, astrLastScannedNtwrksShadow[i].u32TimeRcvdInScan + (unsigned long)(SCAN_RESULT_EXPIRE))) { PRINT_D(CFG80211_DBG, "Network expired in ScanShadow: %s\n", astrLastScannedNtwrksShadow[i].au8ssid); - if (astrLastScannedNtwrksShadow[i].pu8IEs != NULL) { - kfree(astrLastScannedNtwrksShadow[i].pu8IEs); - astrLastScannedNtwrksShadow[i].pu8IEs = NULL; - } + kfree(astrLastScannedNtwrksShadow[i].pu8IEs); + astrLastScannedNtwrksShadow[i].pu8IEs = NULL; host_int_freeJoinParams(astrLastScannedNtwrksShadow[i].pJoinParams); @@ -1171,15 +1169,13 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, KeyLen = params->key_len - 16; } /* if there has been previous allocation for the same index through its key, free that memory and allocate again*/ - if (priv->wilc_gtk[key_index]->key) - kfree(priv->wilc_gtk[key_index]->key); + kfree(priv->wilc_gtk[key_index]->key); priv->wilc_gtk[key_index]->key = kmalloc(params->key_len, GFP_KERNEL); memcpy(priv->wilc_gtk[key_index]->key, params->key, params->key_len); /* if there has been previous allocation for the same index through its seq, free that memory and allocate again*/ - if (priv->wilc_gtk[key_index]->seq) - kfree(priv->wilc_gtk[key_index]->seq); + kfree(priv->wilc_gtk[key_index]->seq); if ((params->seq_len) > 0) { priv->wilc_gtk[key_index]->seq = kmalloc(params->seq_len, GFP_KERNEL); @@ -1217,13 +1213,11 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, KeyLen = params->key_len - 16; } - if (priv->wilc_ptk[key_index]->key) - kfree(priv->wilc_ptk[key_index]->key); + kfree(priv->wilc_ptk[key_index]->key); priv->wilc_ptk[key_index]->key = kmalloc(params->key_len, GFP_KERNEL); - if (priv->wilc_ptk[key_index]->seq) - kfree(priv->wilc_ptk[key_index]->seq); + kfree(priv->wilc_ptk[key_index]->seq); if ((params->seq_len) > 0) priv->wilc_ptk[key_index]->seq = kmalloc(params->seq_len, GFP_KERNEL); @@ -1369,25 +1363,17 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, g_wep_keys_saved = false; /*Delete saved WEP keys params, if any*/ - if (g_key_wep_params.key != NULL) { - kfree(g_key_wep_params.key); - g_key_wep_params.key = NULL; - } + kfree(g_key_wep_params.key); + g_key_wep_params.key = NULL; /*freeing memory allocated by "wilc_gtk" and "wilc_ptk" in "WILC_WIFI_ADD_KEY"*/ if ((priv->wilc_gtk[key_index]) != NULL) { - if (priv->wilc_gtk[key_index]->key != NULL) { - - kfree(priv->wilc_gtk[key_index]->key); - priv->wilc_gtk[key_index]->key = NULL; - } - if (priv->wilc_gtk[key_index]->seq) { - - kfree(priv->wilc_gtk[key_index]->seq); - priv->wilc_gtk[key_index]->seq = NULL; - } + kfree(priv->wilc_gtk[key_index]->key); + priv->wilc_gtk[key_index]->key = NULL; + kfree(priv->wilc_gtk[key_index]->seq); + priv->wilc_gtk[key_index]->seq = NULL; kfree(priv->wilc_gtk[key_index]); priv->wilc_gtk[key_index] = NULL; @@ -1396,38 +1382,24 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, if ((priv->wilc_ptk[key_index]) != NULL) { - if (priv->wilc_ptk[key_index]->key) { - - kfree(priv->wilc_ptk[key_index]->key); - priv->wilc_ptk[key_index]->key = NULL; - } - if (priv->wilc_ptk[key_index]->seq) { - - kfree(priv->wilc_ptk[key_index]->seq); - priv->wilc_ptk[key_index]->seq = NULL; - } + kfree(priv->wilc_ptk[key_index]->key); + priv->wilc_ptk[key_index]->key = NULL; + kfree(priv->wilc_ptk[key_index]->seq); + priv->wilc_ptk[key_index]->seq = NULL; kfree(priv->wilc_ptk[key_index]); priv->wilc_ptk[key_index] = NULL; } /*Delete saved PTK and GTK keys params, if any*/ - if (g_key_ptk_params.key != NULL) { - kfree(g_key_ptk_params.key); - g_key_ptk_params.key = NULL; - } - if (g_key_ptk_params.seq != NULL) { - kfree(g_key_ptk_params.seq); - g_key_ptk_params.seq = NULL; - } + kfree(g_key_ptk_params.key); + g_key_ptk_params.key = NULL; + kfree(g_key_ptk_params.seq); + g_key_ptk_params.seq = NULL; - if (g_key_gtk_params.key != NULL) { - kfree(g_key_gtk_params.key); - g_key_gtk_params.key = NULL; - } - if (g_key_gtk_params.seq != NULL) { - kfree(g_key_gtk_params.seq); - g_key_gtk_params.seq = NULL; - } + kfree(g_key_gtk_params.key); + g_key_gtk_params.key = NULL; + kfree(g_key_gtk_params.seq); + g_key_gtk_params.seq = NULL; /*Reset WILC_CHANGING_VIR_IF register to allow adding futrue keys to CE H/W*/ Set_machw_change_vir_if(false); From fbeb0dab5e6c3013d176a9070ffa8a1eb250d5f1 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 12 Oct 2015 20:49:20 +0530 Subject: [PATCH 1474/2431] Staging: wilc1000: linux_wlan: Remove NULL check before kfree kfree on NULL pointer is a no-op. The semantic patch used - // @@ expression E; @@ - if (E != NULL) { kfree(E); } + kfree(E); @@ expression E; @@ - if (E != NULL) { kfree(E); E = NULL; } + kfree(E); + E = NULL; // smpl> Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index fe4f3051916d..ccab89f8b0cc 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1887,10 +1887,8 @@ static void __exit exit_wilc_driver(void) sdio_unregister_driver(&wilc_bus); #endif - if (g_linux_wlan != NULL) { - kfree(g_linux_wlan); - g_linux_wlan = NULL; - } + kfree(g_linux_wlan); + g_linux_wlan = NULL; printk("Module_exit Done.\n"); #if defined(WILC_DEBUGFS) From 3604af50a24ec45f76088e2da7bfb5758a5c1d7b Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Mon, 12 Oct 2015 13:22:44 -0700 Subject: [PATCH 1475/2431] staging: wilc1000: move open brace in line with control flow statement Move open braces to be in line with "if" control flow statements. Addresses checkpatch.pl: ERROR: that open brace { should be on the previous line Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 6430bbfc13b9..004f4419a044 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1443,8 +1443,7 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, priv = wiphy_priv(wiphy); - if (!pairwise) - { + if (!pairwise) { PRINT_D(CFG80211_DBG, "Getting group key idx: %x\n", key_index); key_params.key = priv->wilc_gtk[key_index]->key; @@ -1817,9 +1816,8 @@ void WILC_WFI_CfgParseRxAction(u8 *buf, u32 len) op_channel_attr_index = index; index += buf[index + 1] + 3; /* ID,Length byte */ } + if (u8WLANChannel != INVALID_CHANNEL) { - if (u8WLANChannel != INVALID_CHANNEL) - { /*Modify channel list attribute*/ if (channel_list_attr_index) { PRINT_D(GENERIC_DBG, "Modify channel list attribute\n"); @@ -1872,9 +1870,8 @@ void WILC_WFI_CfgParseTxAction(u8 *buf, u32 len, bool bOperChan, u8 iftype) op_channel_attr_index = index; index += buf[index + 1] + 3; /* ID,Length byte */ } + if (u8WLANChannel != INVALID_CHANNEL && bOperChan) { - if (u8WLANChannel != INVALID_CHANNEL && bOperChan) - { /*Modify channel list attribute*/ if (channel_list_attr_index) { PRINT_D(GENERIC_DBG, "Modify channel list attribute\n"); From 9753007ed793b41d95d8719594c2029e54c26a90 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:10 +0530 Subject: [PATCH 1476/2431] staging: dgnc: remove multiple blank lines checkpatch warns us about multiple blank lines which are not needed. Remove them. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_driver.c | 10 ------ drivers/staging/dgnc/dgnc_mgmt.c | 5 --- drivers/staging/dgnc/dgnc_neo.c | 37 ---------------------- drivers/staging/dgnc/dgnc_sysfs.c | 37 ---------------------- drivers/staging/dgnc/dgnc_tty.c | 51 ------------------------------ 5 files changed, 140 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index ce2d1c7ed29e..926808b5f77b 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -13,7 +13,6 @@ * PURPOSE. See the GNU General Public License for more details. */ - #include #include #include @@ -56,7 +55,6 @@ static const struct file_operations dgnc_BoardFops = { .release = dgnc_mgmt_close }; - /* * Globals */ @@ -79,7 +77,6 @@ static ulong dgnc_poll_time; /* Time of next poll */ static uint dgnc_poll_stop; /* Used to tell poller to stop */ static struct timer_list dgnc_poll_timer; - static const struct pci_device_id dgnc_pci_tbl[] = { {PCI_DEVICE(DIGI_VID, PCI_DEVICE_CLASSIC_4_DID), .driver_data = 0}, {PCI_DEVICE(DIGI_VID, PCI_DEVICE_CLASSIC_4_422_DID), .driver_data = 1}, @@ -354,13 +351,11 @@ static void dgnc_cleanup_board(struct dgnc_board *brd) } } - dgnc_Board[brd->boardnum] = NULL; kfree(brd); } - /* * dgnc_found_board() * @@ -421,7 +416,6 @@ static int dgnc_found_board(struct pci_dev *pdev, int id) pci_irq = pdev->irq; brd->irq = pci_irq; - switch (brd->device) { case PCI_DEVICE_CLASSIC_4_DID: @@ -441,7 +435,6 @@ static int dgnc_found_board(struct pci_dev *pdev, int id) * 4 Memory Mapped UARTs and Status */ - /* get the PCI Base Address Registers */ brd->membase = pci_resource_start(pdev, 4); @@ -482,7 +475,6 @@ static int dgnc_found_board(struct pci_dev *pdev, int id) break; - case PCI_DEVICE_NEO_4_DID: case PCI_DEVICE_NEO_8_DID: case PCI_DEVICE_NEO_2DB9_DID: @@ -592,7 +584,6 @@ failed: } - static int dgnc_finalize_board_init(struct dgnc_board *brd) { int rc = 0; @@ -627,7 +618,6 @@ static void dgnc_do_remap(struct dgnc_board *brd) brd->re_map_membase = ioremap(brd->membase, 0x1000); } - /***************************************************************************** * * Function: diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c index 81c793af9aba..81f0da23539c 100644 --- a/drivers/staging/dgnc/dgnc_mgmt.c +++ b/drivers/staging/dgnc/dgnc_mgmt.c @@ -32,11 +32,9 @@ #include "dgnc_pci.h" #include "dgnc_mgmt.h" - /* Our "in use" variables, to enforce 1 open only */ static int dgnc_mgmt_in_use[MAXMGMTDEVICES]; - /* * dgnc_mgmt_open() * @@ -67,7 +65,6 @@ int dgnc_mgmt_open(struct inode *inode, struct file *file) return 0; } - /* * dgnc_mgmt_close() * @@ -90,7 +87,6 @@ int dgnc_mgmt_close(struct inode *inode, struct file *file) return 0; } - /* * dgnc_mgmt_ioctl() * @@ -256,7 +252,6 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) break; } - } return 0; diff --git a/drivers/staging/dgnc/dgnc_neo.c b/drivers/staging/dgnc/dgnc_neo.c index 900e3ae55a38..09d3de76c956 100644 --- a/drivers/staging/dgnc/dgnc_neo.c +++ b/drivers/staging/dgnc/dgnc_neo.c @@ -13,7 +13,6 @@ * PURPOSE. See the GNU General Public License for more details. */ - #include #include /* For jiffies, task states */ #include /* For tasklet and interrupt structs/defines */ @@ -57,7 +56,6 @@ static uint neo_get_uart_bytes_left(struct channel_t *ch); static void neo_send_immediate_char(struct channel_t *ch, unsigned char c); static irqreturn_t neo_intr(int irq, void *voidbrd); - struct board_ops dgnc_neo_ops = { .tasklet = neo_tasklet, .intr = neo_intr, @@ -81,7 +79,6 @@ struct board_ops dgnc_neo_ops = { static uint dgnc_offset_table[8] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }; - /* * This function allows calls to ensure that all outstanding * PCI writes have been completed, by doing a PCI read against @@ -100,7 +97,6 @@ static inline void neo_set_cts_flow_control(struct channel_t *ch) unsigned char ier = readb(&ch->ch_neo_uart->ier); unsigned char efr = readb(&ch->ch_neo_uart->efr); - /* Turn on auto CTS flow control */ #if 1 ier |= UART_17158_IER_CTSDSR; @@ -131,7 +127,6 @@ static inline void neo_set_cts_flow_control(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - static inline void neo_set_rts_flow_control(struct channel_t *ch) { unsigned char ier = readb(&ch->ch_neo_uart->ier); @@ -174,7 +169,6 @@ static inline void neo_set_rts_flow_control(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - static inline void neo_set_ixon_flow_control(struct channel_t *ch) { unsigned char ier = readb(&ch->ch_neo_uart->ier); @@ -211,7 +205,6 @@ static inline void neo_set_ixon_flow_control(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - static inline void neo_set_ixoff_flow_control(struct channel_t *ch) { unsigned char ier = readb(&ch->ch_neo_uart->ier); @@ -249,7 +242,6 @@ static inline void neo_set_ixoff_flow_control(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - static inline void neo_set_no_input_flow_control(struct channel_t *ch) { unsigned char ier = readb(&ch->ch_neo_uart->ier); @@ -266,7 +258,6 @@ static inline void neo_set_no_input_flow_control(struct channel_t *ch) else efr &= ~(UART_17158_EFR_ECB | UART_17158_EFR_IXOFF); - /* Why? Becuz Exar's spec says we have to zero it out before setting it */ writeb(0, &ch->ch_neo_uart->efr); @@ -289,7 +280,6 @@ static inline void neo_set_no_input_flow_control(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - static inline void neo_set_no_output_flow_control(struct channel_t *ch) { unsigned char ier = readb(&ch->ch_neo_uart->ier); @@ -327,7 +317,6 @@ static inline void neo_set_no_output_flow_control(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - /* change UARTs start/stop chars */ static inline void neo_set_new_start_stop_chars(struct channel_t *ch) { @@ -346,7 +335,6 @@ static inline void neo_set_new_start_stop_chars(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - /* * No locks are assumed to be held when calling this function. */ @@ -377,7 +365,6 @@ static inline void neo_clear_break(struct channel_t *ch, int force) spin_unlock_irqrestore(&ch->ch_lock, flags); } - /* * Parse the ISR register. */ @@ -507,7 +494,6 @@ static inline void neo_parse_isr(struct dgnc_board *brd, uint port) } } - static inline void neo_parse_lsr(struct dgnc_board *brd, uint port) { struct channel_t *ch; @@ -587,7 +573,6 @@ static inline void neo_parse_lsr(struct dgnc_board *brd, uint port) } } - /* * neo_param() * Send any/all changes to the line to the UART. @@ -841,7 +826,6 @@ static void neo_param(struct tty_struct *tty) neo_parse_modem(ch, readb(&ch->ch_neo_uart->msr)); } - /* * Our board poller function. */ @@ -920,7 +904,6 @@ static void neo_tasklet(unsigned long data) } - /* * dgnc_neo_intr() * @@ -1067,7 +1050,6 @@ static irqreturn_t neo_intr(int irq, void *voidbrd) return IRQ_HANDLED; } - /* * Neo specific way of turning off the receiver. * Used as a way to enforce queue flow control when in @@ -1082,7 +1064,6 @@ static void neo_disable_receiver(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - /* * Neo specific way of turning on the receiver. * Used as a way to un-enforce queue flow control when in @@ -1097,7 +1078,6 @@ static void neo_enable_receiver(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - static void neo_copy_data_from_uart_to_queue(struct channel_t *ch) { int qleft = 0; @@ -1153,7 +1133,6 @@ static void neo_copy_data_from_uart_to_queue(struct channel_t *ch) total -= 3; } - /* * Finally, bound the copy to make sure we don't overflow * our own queue... @@ -1306,7 +1285,6 @@ static void neo_copy_data_from_uart_to_queue(struct channel_t *ch) spin_unlock_irqrestore(&ch->ch_lock, flags); } - /* * This function basically goes to sleep for secs, or until * it gets signalled that the port has fully drained. @@ -1345,7 +1323,6 @@ static int neo_drain(struct tty_struct *tty, uint seconds) return rc; } - /* * Flush the WRITE FIFO on the Neo. * @@ -1375,7 +1352,6 @@ static void neo_flush_uart_write(struct channel_t *ch) ch->ch_flags |= (CH_TX_FIFO_EMPTY | CH_TX_FIFO_LWM); } - /* * Flush the READ FIFO on the Neo. * @@ -1403,7 +1379,6 @@ static void neo_flush_uart_read(struct channel_t *ch) } } - static void neo_copy_data_from_queue_to_uart(struct channel_t *ch) { ushort head; @@ -1551,7 +1526,6 @@ exit_unlock: spin_unlock_irqrestore(&ch->ch_lock, flags); } - static void neo_parse_modem(struct channel_t *ch, unsigned char signals) { unsigned char msignals = signals; @@ -1608,7 +1582,6 @@ static void neo_parse_modem(struct channel_t *ch, unsigned char signals) ch->ch_mistat &= ~UART_MSR_CTS; } - /* Make the UART raise any of the output signals we want up */ static void neo_assert_modem_signals(struct channel_t *ch) { @@ -1629,7 +1602,6 @@ static void neo_assert_modem_signals(struct channel_t *ch) udelay(10); } - static void neo_send_start_character(struct channel_t *ch) { if (!ch || ch->magic != DGNC_CHANNEL_MAGIC) @@ -1643,7 +1615,6 @@ static void neo_send_start_character(struct channel_t *ch) } } - static void neo_send_stop_character(struct channel_t *ch) { if (!ch || ch->magic != DGNC_CHANNEL_MAGIC) @@ -1657,7 +1628,6 @@ static void neo_send_stop_character(struct channel_t *ch) } } - /* * neo_uart_init */ @@ -1668,7 +1638,6 @@ static void neo_uart_init(struct channel_t *ch) writeb(0, &ch->ch_neo_uart->efr); writeb(UART_EFR_ECB, &ch->ch_neo_uart->efr); - /* Clear out UART and FIFO */ readb(&ch->ch_neo_uart->txrx); writeb((UART_FCR_ENABLE_FIFO|UART_FCR_CLEAR_RCVR|UART_FCR_CLEAR_XMIT), &ch->ch_neo_uart->isr_fcr); @@ -1682,7 +1651,6 @@ static void neo_uart_init(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - /* * Make the UART completely turn off. */ @@ -1696,7 +1664,6 @@ static void neo_uart_off(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); } - static uint neo_get_uart_bytes_left(struct channel_t *ch) { unsigned char left = 0; @@ -1718,7 +1685,6 @@ static uint neo_get_uart_bytes_left(struct channel_t *ch) return left; } - /* Channel lock MUST be held by the calling function! */ static void neo_send_break(struct channel_t *ch, int msecs) { @@ -1754,7 +1720,6 @@ static void neo_send_break(struct channel_t *ch, int msecs) } } - /* * neo_send_immediate_char. * @@ -1772,7 +1737,6 @@ static void neo_send_immediate_char(struct channel_t *ch, unsigned char c) neo_pci_posting_flush(ch->ch_bd); } - static unsigned int neo_read_eeprom(unsigned char __iomem *base, unsigned int address) { unsigned int enable; @@ -1813,7 +1777,6 @@ static unsigned int neo_read_eeprom(unsigned char __iomem *base, unsigned int ad return val; } - static void neo_vpd(struct dgnc_board *brd) { unsigned int i = 0; diff --git a/drivers/staging/dgnc/dgnc_sysfs.c b/drivers/staging/dgnc/dgnc_sysfs.c index 48b605678c32..c8a6c284202e 100644 --- a/drivers/staging/dgnc/dgnc_sysfs.c +++ b/drivers/staging/dgnc/dgnc_sysfs.c @@ -13,7 +13,6 @@ * PURPOSE. See the GNU General Public License for more details. */ - #include #include #include @@ -26,28 +25,24 @@ #include "dgnc_driver.h" #include "dgnc_mgmt.h" - static ssize_t dgnc_driver_version_show(struct device_driver *ddp, char *buf) { return snprintf(buf, PAGE_SIZE, "%s\n", DG_PART); } static DRIVER_ATTR(version, S_IRUSR, dgnc_driver_version_show, NULL); - static ssize_t dgnc_driver_boards_show(struct device_driver *ddp, char *buf) { return snprintf(buf, PAGE_SIZE, "%d\n", dgnc_NumBoards); } static DRIVER_ATTR(boards, S_IRUSR, dgnc_driver_boards_show, NULL); - static ssize_t dgnc_driver_maxboards_show(struct device_driver *ddp, char *buf) { return snprintf(buf, PAGE_SIZE, "%d\n", MAXBOARDS); } static DRIVER_ATTR(maxboards, S_IRUSR, dgnc_driver_maxboards_show, NULL); - static ssize_t dgnc_driver_pollrate_show(struct device_driver *ddp, char *buf) { return snprintf(buf, PAGE_SIZE, "%dms\n", dgnc_poll_tick); @@ -73,7 +68,6 @@ static ssize_t dgnc_driver_pollrate_store(struct device_driver *ddp, static DRIVER_ATTR(pollrate, (S_IRUSR | S_IWUSR), dgnc_driver_pollrate_show, dgnc_driver_pollrate_store); - void dgnc_create_driver_sysfiles(struct pci_driver *dgnc_driver) { int rc = 0; @@ -87,7 +81,6 @@ void dgnc_create_driver_sysfiles(struct pci_driver *dgnc_driver) pr_err("DGNC: sysfs driver_create_file failed!\n"); } - void dgnc_remove_driver_sysfiles(struct pci_driver *dgnc_driver) { struct device_driver *driverfs = &dgnc_driver->driver; @@ -98,7 +91,6 @@ void dgnc_remove_driver_sysfiles(struct pci_driver *dgnc_driver) driver_remove_file(driverfs, &driver_attr_pollrate); } - #define DGNC_VERIFY_BOARD(p, bd) \ do { \ if (!p) \ @@ -111,8 +103,6 @@ void dgnc_remove_driver_sysfiles(struct pci_driver *dgnc_driver) return 0; \ } while (0) - - static ssize_t dgnc_vpd_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -152,7 +142,6 @@ static ssize_t dgnc_serial_number_show(struct device *p, } static DEVICE_ATTR(serial_number, S_IRUSR, dgnc_serial_number_show, NULL); - static ssize_t dgnc_ports_state_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -171,7 +160,6 @@ static ssize_t dgnc_ports_state_show(struct device *p, } static DEVICE_ATTR(ports_state, S_IRUSR, dgnc_ports_state_show, NULL); - static ssize_t dgnc_ports_baud_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -190,7 +178,6 @@ static ssize_t dgnc_ports_baud_show(struct device *p, } static DEVICE_ATTR(ports_baud, S_IRUSR, dgnc_ports_baud_show, NULL); - static ssize_t dgnc_ports_msignals_show(struct device *p, struct device_attribute *attr, char *buf) @@ -221,7 +208,6 @@ static ssize_t dgnc_ports_msignals_show(struct device *p, } static DEVICE_ATTR(ports_msignals, S_IRUSR, dgnc_ports_msignals_show, NULL); - static ssize_t dgnc_ports_iflag_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -240,7 +226,6 @@ static ssize_t dgnc_ports_iflag_show(struct device *p, } static DEVICE_ATTR(ports_iflag, S_IRUSR, dgnc_ports_iflag_show, NULL); - static ssize_t dgnc_ports_cflag_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -259,7 +244,6 @@ static ssize_t dgnc_ports_cflag_show(struct device *p, } static DEVICE_ATTR(ports_cflag, S_IRUSR, dgnc_ports_cflag_show, NULL); - static ssize_t dgnc_ports_oflag_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -278,7 +262,6 @@ static ssize_t dgnc_ports_oflag_show(struct device *p, } static DEVICE_ATTR(ports_oflag, S_IRUSR, dgnc_ports_oflag_show, NULL); - static ssize_t dgnc_ports_lflag_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -297,7 +280,6 @@ static ssize_t dgnc_ports_lflag_show(struct device *p, } static DEVICE_ATTR(ports_lflag, S_IRUSR, dgnc_ports_lflag_show, NULL); - static ssize_t dgnc_ports_digi_flag_show(struct device *p, struct device_attribute *attr, char *buf) @@ -317,7 +299,6 @@ static ssize_t dgnc_ports_digi_flag_show(struct device *p, } static DEVICE_ATTR(ports_digi_flag, S_IRUSR, dgnc_ports_digi_flag_show, NULL); - static ssize_t dgnc_ports_rxcount_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -336,7 +317,6 @@ static ssize_t dgnc_ports_rxcount_show(struct device *p, } static DEVICE_ATTR(ports_rxcount, S_IRUSR, dgnc_ports_rxcount_show, NULL); - static ssize_t dgnc_ports_txcount_show(struct device *p, struct device_attribute *attr, char *buf) { @@ -355,7 +335,6 @@ static ssize_t dgnc_ports_txcount_show(struct device *p, } static DEVICE_ATTR(ports_txcount, S_IRUSR, dgnc_ports_txcount_show, NULL); - /* this function creates the sys files that will export each signal status * to sysfs each value will be put in a separate filename */ @@ -380,7 +359,6 @@ void dgnc_create_ports_sysfiles(struct dgnc_board *bd) dev_err(&bd->pdev->dev, "dgnc: sysfs device_create_file failed!\n"); } - /* removes all the sys files created for that port */ void dgnc_remove_ports_sysfiles(struct dgnc_board *bd) { @@ -398,7 +376,6 @@ void dgnc_remove_ports_sysfiles(struct dgnc_board *bd) device_remove_file(&(bd->pdev->dev), &dev_attr_serial_number); } - static ssize_t dgnc_tty_state_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -425,7 +402,6 @@ static ssize_t dgnc_tty_state_show(struct device *d, } static DEVICE_ATTR(state, S_IRUSR, dgnc_tty_state_show, NULL); - static ssize_t dgnc_tty_baud_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -451,7 +427,6 @@ static ssize_t dgnc_tty_baud_show(struct device *d, } static DEVICE_ATTR(baud, S_IRUSR, dgnc_tty_baud_show, NULL); - static ssize_t dgnc_tty_msignals_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -486,7 +461,6 @@ static ssize_t dgnc_tty_msignals_show(struct device *d, } static DEVICE_ATTR(msignals, S_IRUSR, dgnc_tty_msignals_show, NULL); - static ssize_t dgnc_tty_iflag_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -512,7 +486,6 @@ static ssize_t dgnc_tty_iflag_show(struct device *d, } static DEVICE_ATTR(iflag, S_IRUSR, dgnc_tty_iflag_show, NULL); - static ssize_t dgnc_tty_cflag_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -538,7 +511,6 @@ static ssize_t dgnc_tty_cflag_show(struct device *d, } static DEVICE_ATTR(cflag, S_IRUSR, dgnc_tty_cflag_show, NULL); - static ssize_t dgnc_tty_oflag_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -564,7 +536,6 @@ static ssize_t dgnc_tty_oflag_show(struct device *d, } static DEVICE_ATTR(oflag, S_IRUSR, dgnc_tty_oflag_show, NULL); - static ssize_t dgnc_tty_lflag_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -590,7 +561,6 @@ static ssize_t dgnc_tty_lflag_show(struct device *d, } static DEVICE_ATTR(lflag, S_IRUSR, dgnc_tty_lflag_show, NULL); - static ssize_t dgnc_tty_digi_flag_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -616,7 +586,6 @@ static ssize_t dgnc_tty_digi_flag_show(struct device *d, } static DEVICE_ATTR(digi_flag, S_IRUSR, dgnc_tty_digi_flag_show, NULL); - static ssize_t dgnc_tty_rxcount_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -642,7 +611,6 @@ static ssize_t dgnc_tty_rxcount_show(struct device *d, } static DEVICE_ATTR(rxcount, S_IRUSR, dgnc_tty_rxcount_show, NULL); - static ssize_t dgnc_tty_txcount_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -668,7 +636,6 @@ static ssize_t dgnc_tty_txcount_show(struct device *d, } static DEVICE_ATTR(txcount, S_IRUSR, dgnc_tty_txcount_show, NULL); - static ssize_t dgnc_tty_name_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -696,7 +663,6 @@ static ssize_t dgnc_tty_name_show(struct device *d, } static DEVICE_ATTR(custom_name, S_IRUSR, dgnc_tty_name_show, NULL); - static struct attribute *dgnc_sysfs_tty_entries[] = { &dev_attr_state.attr, &dev_attr_baud.attr, @@ -712,13 +678,11 @@ static struct attribute *dgnc_sysfs_tty_entries[] = { NULL }; - static struct attribute_group dgnc_tty_attribute_group = { .name = NULL, .attrs = dgnc_sysfs_tty_entries, }; - void dgnc_create_tty_sysfs(struct un_t *un, struct device *c) { int ret; @@ -734,7 +698,6 @@ void dgnc_create_tty_sysfs(struct un_t *un, struct device *c) } - void dgnc_remove_tty_sysfs(struct device *c) { sysfs_remove_group(&c->kobj, &dgnc_tty_attribute_group); diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index a8d50a542ad5..497e1f4227bd 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -63,7 +63,6 @@ static struct digi_t dgnc_digi_init = { .digi_term = "ansi" /* default terminal type */ }; - /* * Define a local default termios struct. All ports will be created * with this termios initially. @@ -80,7 +79,6 @@ static struct ktermios DgncDefaultTermios = { .c_line = 0, }; - /* Our function prototypes */ static int dgnc_tty_open(struct tty_struct *tty, struct file *file); static void dgnc_tty_close(struct tty_struct *tty, struct file *file); @@ -117,7 +115,6 @@ static void dgnc_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios); static void dgnc_tty_send_xchar(struct tty_struct *tty, char ch); - static const struct tty_operations dgnc_tty_ops = { .open = dgnc_tty_open, .close = dgnc_tty_close, @@ -172,7 +169,6 @@ int dgnc_tty_preinit(void) return 0; } - /* * dgnc_tty_register() * @@ -296,7 +292,6 @@ int dgnc_tty_register(struct dgnc_board *brd) return rc; } - /* * dgnc_tty_init() * @@ -392,7 +387,6 @@ err_free_channels: return -ENOMEM; } - /* * dgnc_tty_post_uninit() * @@ -404,7 +398,6 @@ void dgnc_tty_post_uninit(void) dgnc_TmpWriteBuf = NULL; } - /* * dgnc_tty_uninit() * @@ -497,9 +490,6 @@ static void dgnc_wmove(struct channel_t *ch, char *buf, uint n) ch->ch_w_head = head; } - - - /*======================================================================= * * dgnc_input - Process received data. @@ -685,7 +675,6 @@ exit_unlock: tty_ldisc_deref(ld); } - /************************************************************************ * Determines when CARRIER changes state and takes appropriate * action. @@ -852,7 +841,6 @@ static void dgnc_set_custom_speed(struct channel_t *ch, uint newrate) ch->ch_custom_speed = newrate; } - void dgnc_check_queue_flow_control(struct channel_t *ch) { int qleft = 0; @@ -927,7 +915,6 @@ void dgnc_check_queue_flow_control(struct channel_t *ch) } } - void dgnc_wakeup_writes(struct channel_t *ch) { int qlen = 0; @@ -1018,8 +1005,6 @@ void dgnc_wakeup_writes(struct channel_t *ch) spin_unlock_irqrestore(&ch->ch_lock, flags); } - - /************************************************************************ * * TTY Entry points and helper functions @@ -1126,11 +1111,9 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file) spin_lock_irqsave(&ch->ch_lock, flags); - /* Store our unit into driver_data, so we always have it available. */ tty->driver_data = un; - /* * Initialize tty's */ @@ -1141,7 +1124,6 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file) /* Maybe do something here to the TTY struct as well? */ } - /* * Allocate channel buffers for read/write/error. * Set flag, so we don't get trounced on. @@ -1231,7 +1213,6 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file) return rc; } - /* * dgnc_block_til_ready() * @@ -1369,7 +1350,6 @@ static int dgnc_block_til_ready(struct tty_struct *tty, return 0; } - /* * dgnc_tty_hangup() * @@ -1391,7 +1371,6 @@ static void dgnc_tty_hangup(struct tty_struct *tty) } - /* * dgnc_tty_close() * @@ -1457,7 +1436,6 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) tty->closing = 1; - /* * Only officially close channel if count is 0 and * DIGI_PRINTER bit is not set. @@ -1534,7 +1512,6 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) spin_unlock_irqrestore(&ch->ch_lock, flags); } - /* * dgnc_tty_chars_in_buffer() * @@ -1584,7 +1561,6 @@ static int dgnc_tty_chars_in_buffer(struct tty_struct *tty) return chars; } - /* * dgnc_maxcps_room * @@ -1642,7 +1618,6 @@ static int dgnc_maxcps_room(struct tty_struct *tty, int bytes_available) return bytes_available; } - /* * dgnc_tty_write_room() * @@ -1703,7 +1678,6 @@ static int dgnc_tty_write_room(struct tty_struct *tty) return ret; } - /* * dgnc_tty_put_char() * @@ -1720,7 +1694,6 @@ static int dgnc_tty_put_char(struct tty_struct *tty, unsigned char c) return 1; } - /* * dgnc_tty_write() * @@ -1864,7 +1837,6 @@ exit_retry: return 0; } - /* * Return modem signals to ld. */ @@ -1912,7 +1884,6 @@ static int dgnc_tty_tiocmget(struct tty_struct *tty) return result; } - /* * dgnc_tty_tiocmset() * @@ -1964,7 +1935,6 @@ static int dgnc_tty_tiocmset(struct tty_struct *tty, return 0; } - /* * dgnc_tty_send_break() * @@ -2014,7 +1984,6 @@ static int dgnc_tty_send_break(struct tty_struct *tty, int msec) } - /* * dgnc_tty_wait_until_sent() * @@ -2044,7 +2013,6 @@ static void dgnc_tty_wait_until_sent(struct tty_struct *tty, int timeout) bd->bd_ops->drain(tty, 0); } - /* * dgnc_send_xchar() * @@ -2081,9 +2049,6 @@ static void dgnc_tty_send_xchar(struct tty_struct *tty, char c) dev_dbg(tty->dev, "dgnc_tty_send_xchar finish\n"); } - - - /* * Return modem signals to ld. */ @@ -2120,8 +2085,6 @@ static inline int dgnc_get_mstat(struct channel_t *ch) return result; } - - /* * Return modem signals to ld. */ @@ -2141,7 +2104,6 @@ static int dgnc_get_modem_info(struct channel_t *ch, return put_user(result, value); } - /* * dgnc_set_modem_info() * @@ -2223,7 +2185,6 @@ static int dgnc_set_modem_info(struct tty_struct *tty, return 0; } - /* * dgnc_tty_digigeta() * @@ -2266,7 +2227,6 @@ static int dgnc_tty_digigeta(struct tty_struct *tty, return 0; } - /* * dgnc_tty_digiseta() * @@ -2354,7 +2314,6 @@ static int dgnc_tty_digiseta(struct tty_struct *tty, return 0; } - /* * dgnc_set_termios() */ @@ -2396,7 +2355,6 @@ static void dgnc_tty_set_termios(struct tty_struct *tty, spin_unlock_irqrestore(&ch->ch_lock, flags); } - static void dgnc_tty_throttle(struct tty_struct *tty) { struct channel_t *ch; @@ -2421,7 +2379,6 @@ static void dgnc_tty_throttle(struct tty_struct *tty) spin_unlock_irqrestore(&ch->ch_lock, flags); } - static void dgnc_tty_unthrottle(struct tty_struct *tty) { struct channel_t *ch; @@ -2446,7 +2403,6 @@ static void dgnc_tty_unthrottle(struct tty_struct *tty) spin_unlock_irqrestore(&ch->ch_lock, flags); } - static void dgnc_tty_start(struct tty_struct *tty) { struct dgnc_board *bd; @@ -2476,7 +2432,6 @@ static void dgnc_tty_start(struct tty_struct *tty) spin_unlock_irqrestore(&ch->ch_lock, flags); } - static void dgnc_tty_stop(struct tty_struct *tty) { struct dgnc_board *bd; @@ -2506,7 +2461,6 @@ static void dgnc_tty_stop(struct tty_struct *tty) spin_unlock_irqrestore(&ch->ch_lock, flags); } - /* * dgnc_tty_flush_chars() * @@ -2549,8 +2503,6 @@ static void dgnc_tty_flush_chars(struct tty_struct *tty) spin_unlock_irqrestore(&ch->ch_lock, flags); } - - /* * dgnc_tty_flush_buffer() * @@ -2595,8 +2547,6 @@ static void dgnc_tty_flush_buffer(struct tty_struct *tty) spin_unlock_irqrestore(&ch->ch_lock, flags); } - - /***************************************************************************** * * The IOCTL function and all of its helpers @@ -2672,7 +2622,6 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, return 0; - case TCSBRKP: /* support for POSIX tcsendbreak() * According to POSIX.1 spec (7.2.2.1.2) breaks should be From 40215ddffc2fb6ada9fdcd7461a2f0bf922bcca0 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:11 +0530 Subject: [PATCH 1477/2431] staging: dgnc: remove blankline before brace Blank lines are not needed before closing braces. checkpatch was giving warning about this. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_cls.c | 7 ------- drivers/staging/dgnc/dgnc_driver.c | 2 -- drivers/staging/dgnc/dgnc_mgmt.c | 1 - drivers/staging/dgnc/dgnc_neo.c | 1 - drivers/staging/dgnc/dgnc_sysfs.c | 1 - drivers/staging/dgnc/dgnc_tty.c | 4 ---- 6 files changed, 16 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 944982a46e4b..e7c946e1ec9f 100644 --- a/drivers/staging/dgnc/dgnc_cls.c +++ b/drivers/staging/dgnc/dgnc_cls.c @@ -115,7 +115,6 @@ static inline void cls_set_cts_flow_control(struct channel_t *ch) &ch->ch_cls_uart->isr_fcr); ch->ch_t_tlevel = 16; - } static inline void cls_set_ixon_flow_control(struct channel_t *ch) @@ -161,7 +160,6 @@ static inline void cls_set_ixon_flow_control(struct channel_t *ch) writeb((UART_FCR_ENABLE_FIFO | UART_16654_FCR_RXTRIGGER_16 | UART_16654_FCR_TXTRIGGER_16 | UART_FCR_CLEAR_RCVR), &ch->ch_cls_uart->isr_fcr); - } static inline void cls_set_no_output_flow_control(struct channel_t *ch) @@ -205,7 +203,6 @@ static inline void cls_set_no_output_flow_control(struct channel_t *ch) ch->ch_r_watermark = 0; ch->ch_t_tlevel = 16; ch->ch_r_tlevel = 16; - } static inline void cls_set_rts_flow_control(struct channel_t *ch) @@ -244,7 +241,6 @@ static inline void cls_set_rts_flow_control(struct channel_t *ch) ch->ch_r_watermark = 4; ch->ch_r_tlevel = 8; - } static inline void cls_set_ixoff_flow_control(struct channel_t *ch) @@ -286,7 +282,6 @@ static inline void cls_set_ixoff_flow_control(struct channel_t *ch) writeb((UART_FCR_ENABLE_FIFO | UART_16654_FCR_RXTRIGGER_16 | UART_16654_FCR_TXTRIGGER_16 | UART_FCR_CLEAR_RCVR), &ch->ch_cls_uart->isr_fcr); - } static inline void cls_set_no_input_flow_control(struct channel_t *ch) @@ -325,7 +320,6 @@ static inline void cls_set_no_input_flow_control(struct channel_t *ch) ch->ch_t_tlevel = 16; ch->ch_r_tlevel = 16; - } /* @@ -746,7 +740,6 @@ static void cls_tasklet(unsigned long data) } spin_unlock_irqrestore(&bd->bd_intr_lock, flags); - } /* diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 926808b5f77b..4bb3e6fb7fa6 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -529,7 +529,6 @@ static int dgnc_found_board(struct pci_dev *pdev, int id) dev_err(&brd->pdev->dev, "Didn't find any compatible Neo/Classic PCI boards.\n"); return -ENXIO; - } /* @@ -581,7 +580,6 @@ failed: brd->dpastatus = BD_NOFEP; return -ENXIO; - } static int dgnc_finalize_board_init(struct dgnc_board *brd) diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c index 81f0da23539c..e8aaf352927a 100644 --- a/drivers/staging/dgnc/dgnc_mgmt.c +++ b/drivers/staging/dgnc/dgnc_mgmt.c @@ -251,7 +251,6 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) break; } - } return 0; diff --git a/drivers/staging/dgnc/dgnc_neo.c b/drivers/staging/dgnc/dgnc_neo.c index 09d3de76c956..fb95282cdeac 100644 --- a/drivers/staging/dgnc/dgnc_neo.c +++ b/drivers/staging/dgnc/dgnc_neo.c @@ -901,7 +901,6 @@ static void neo_tasklet(unsigned long data) /* Allow interrupt routine to access the interrupt register again */ spin_unlock_irqrestore(&bd->bd_intr_lock, flags); - } /* diff --git a/drivers/staging/dgnc/dgnc_sysfs.c b/drivers/staging/dgnc/dgnc_sysfs.c index c8a6c284202e..dffb4af12023 100644 --- a/drivers/staging/dgnc/dgnc_sysfs.c +++ b/drivers/staging/dgnc/dgnc_sysfs.c @@ -695,7 +695,6 @@ void dgnc_create_tty_sysfs(struct un_t *un, struct device *c) } dev_set_drvdata(c, un); - } void dgnc_remove_tty_sysfs(struct device *c) diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index 497e1f4227bd..ddf0e412daae 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -374,7 +374,6 @@ int dgnc_tty_init(struct dgnc_board *brd) ch->ch_pun.un_sysfs = classp; dgnc_create_tty_sysfs(&ch->ch_pun, classp); } - } return 0; @@ -1368,7 +1367,6 @@ static void dgnc_tty_hangup(struct tty_struct *tty) /* flush the transmit queues */ dgnc_tty_flush_buffer(tty); - } /* @@ -1981,7 +1979,6 @@ static int dgnc_tty_send_break(struct tty_struct *tty, int msec) spin_unlock_irqrestore(&ch->ch_lock, flags); return 0; - } /* @@ -2744,7 +2741,6 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, ~(UN_LOW|UN_EMPTY); wake_up_interruptible(&ch->ch_pun.un_flags_wait); } - } } From 205fc1fc9520461a18810dc659bdb3fba2d88287 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:12 +0530 Subject: [PATCH 1478/2431] staging: dgnc: remove blankline after brace Blank lines are not needed after opening braces. checkpatch was giving us warnings about this. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_cls.c | 4 ---- drivers/staging/dgnc/dgnc_driver.c | 3 --- drivers/staging/dgnc/dgnc_mgmt.c | 1 - drivers/staging/dgnc/dgnc_neo.c | 11 ----------- drivers/staging/dgnc/dgnc_tty.c | 11 ----------- 5 files changed, 30 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index e7c946e1ec9f..5a3580838a3d 100644 --- a/drivers/staging/dgnc/dgnc_cls.c +++ b/drivers/staging/dgnc/dgnc_cls.c @@ -378,7 +378,6 @@ static inline void cls_parse_isr(struct dgnc_board *brd, uint port) /* Here we try to figure out what caused the interrupt to happen */ while (1) { - isr = readb(&ch->ch_cls_uart->isr_fcr); /* Bail if no pending interrupt on port */ @@ -472,7 +471,6 @@ static void cls_param(struct tty_struct *tty) ch->ch_old_baud = 0; return; } else if (ch->ch_custom_speed) { - baud = ch->ch_custom_speed; /* Handle transition from B0 */ if (ch->ch_flags & CH_BAUD0) { @@ -704,7 +702,6 @@ static void cls_tasklet(unsigned long data) * If board is ready, parse deeper to see if there is anything to do. */ if ((state == BOARD_READY) && (ports > 0)) { - /* Loop on each port */ for (i = 0; i < ports; i++) { ch = bd->channels[i]; @@ -999,7 +996,6 @@ static void cls_copy_data_from_queue_to_uart(struct channel_t *ch) n = min(n, qlen); while (n > 0) { - /* * If RTS Toggle mode is on, turn on RTS now if not already set, * and make sure we get an event when the data transfer has diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 4bb3e6fb7fa6..fc3eff9417bb 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -417,7 +417,6 @@ static int dgnc_found_board(struct pci_dev *pdev, int id) brd->irq = pci_irq; switch (brd->device) { - case PCI_DEVICE_CLASSIC_4_DID: case PCI_DEVICE_CLASSIC_8_DID: case PCI_DEVICE_CLASSIC_4_422_DID: @@ -516,7 +515,6 @@ static int dgnc_found_board(struct pci_dev *pdev, int id) dgnc_do_remap(brd); if (brd->re_map_membase) { - /* Read and store the dvid after remapping */ brd->dvid = readb(brd->re_map_membase + 0x8D); @@ -609,7 +607,6 @@ static int dgnc_finalize_board_init(struct dgnc_board *brd) */ static void dgnc_do_remap(struct dgnc_board *brd) { - if (!brd || brd->magic != DGNC_BOARD_MAGIC) return; diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c index e8aaf352927a..5f46e6950651 100644 --- a/drivers/staging/dgnc/dgnc_mgmt.c +++ b/drivers/staging/dgnc/dgnc_mgmt.c @@ -99,7 +99,6 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) void __user *uarg = (void __user *) arg; switch (cmd) { - case DIGI_GETDD: { /* diff --git a/drivers/staging/dgnc/dgnc_neo.c b/drivers/staging/dgnc/dgnc_neo.c index fb95282cdeac..3dd7342650a8 100644 --- a/drivers/staging/dgnc/dgnc_neo.c +++ b/drivers/staging/dgnc/dgnc_neo.c @@ -320,7 +320,6 @@ static inline void neo_set_no_output_flow_control(struct channel_t *ch) /* change UARTs start/stop chars */ static inline void neo_set_new_start_stop_chars(struct channel_t *ch) { - /* if hardware flow control is set, then skip this whole thing */ if (ch->ch_digi.digi_flags & (CTSPACE | RTSPACE) || ch->ch_c_cflag & CRTSCTS) return; @@ -387,7 +386,6 @@ static inline void neo_parse_isr(struct dgnc_board *brd, uint port) /* Here we try to figure out what caused the interrupt to happen */ while (1) { - isr = readb(&ch->ch_neo_uart->isr_fcr); /* Bail if no pending interrupt */ @@ -626,7 +624,6 @@ static void neo_param(struct tty_struct *tty) return; } else if (ch->ch_custom_speed) { - baud = ch->ch_custom_speed; /* Handle transition from B0 */ if (ch->ch_flags & CH_BAUD0) { @@ -954,7 +951,6 @@ static irqreturn_t neo_intr(int irq, void *voidbrd) /* Loop on each port */ while ((uart_poll & 0xff) != 0) { - tmp = uart_poll; /* Check current port to see if it has interrupt pending */ @@ -977,7 +973,6 @@ static irqreturn_t neo_intr(int irq, void *voidbrd) /* Switch on type of interrupt we have */ switch (type) { - case UART_17158_RXRDY_TIMEOUT: /* * RXRDY Time-out is cleared by reading data in the @@ -1141,7 +1136,6 @@ static void neo_copy_data_from_uart_to_queue(struct channel_t *ch) total = min(total, qleft); while (total > 0) { - /* * Grab the linestatus register, we need to check * to see if there are any errors in the FIFO. @@ -1206,7 +1200,6 @@ static void neo_copy_data_from_uart_to_queue(struct channel_t *ch) * Also deal with any possible queue overflow here as well. */ while (1) { - /* * Its possible we have a linestatus from the loop above * this, so we "OR" on any extra bits. @@ -1339,7 +1332,6 @@ static void neo_flush_uart_write(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); for (i = 0; i < 10; i++) { - /* Check to see if the UART feels it completely flushed the FIFO. */ tmp = readb(&ch->ch_neo_uart->isr_fcr); if (tmp & 4) @@ -1368,7 +1360,6 @@ static void neo_flush_uart_read(struct channel_t *ch) neo_pci_posting_flush(ch->ch_bd); for (i = 0; i < 10; i++) { - /* Check to see if the UART feels it completely flushed the FIFO. */ tmp = readb(&ch->ch_neo_uart->isr_fcr); if (tmp & 2) @@ -1473,7 +1464,6 @@ static void neo_copy_data_from_queue_to_uart(struct channel_t *ch) n = min(n, qlen); while (n > 0) { - s = ((head >= tail) ? head : WQUEUESIZE) - tail; s = min(s, n); @@ -1632,7 +1622,6 @@ static void neo_send_stop_character(struct channel_t *ch) */ static void neo_uart_init(struct channel_t *ch) { - writeb(0, &ch->ch_neo_uart->ier); writeb(0, &ch->ch_neo_uart->efr); writeb(UART_EFR_ECB, &ch->ch_neo_uart->efr); diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index ddf0e412daae..d44ee4e8ca7d 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -543,7 +543,6 @@ void dgnc_input(struct channel_t *ch) !(ch->ch_tun.un_flags & UN_ISOPEN) || !(tp->termios.c_cflag & CREAD) || (ch->ch_tun.un_flags & UN_CLOSING)) { - ch->ch_r_head = tail; /* Force queue flow control to be released, if needed */ @@ -706,7 +705,6 @@ void dgnc_carrier(struct channel_t *ch) * Test for a VIRTUAL carrier transition to HIGH. */ if (((ch->ch_flags & CH_FCAR) == 0) && (virt_carrier == 1)) { - /* * When carrier rises, wake any threads waiting * for carrier in the open routine. @@ -720,7 +718,6 @@ void dgnc_carrier(struct channel_t *ch) * Test for a PHYSICAL carrier transition to HIGH. */ if (((ch->ch_flags & CH_CD) == 0) && (phys_carrier == 1)) { - /* * When carrier rises, wake any threads waiting * for carrier in the open routine. @@ -741,7 +738,6 @@ void dgnc_carrier(struct channel_t *ch) */ if ((virt_carrier == 0) && ((ch->ch_flags & CH_CD) != 0) && (phys_carrier == 0)) { - /* * When carrier drops: * @@ -1148,7 +1144,6 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file) * Initialize if neither terminal or printer is open. */ if (!((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_ISOPEN)) { - /* * Flush input queues. */ @@ -1241,7 +1236,6 @@ static int dgnc_block_til_ready(struct tty_struct *tty, /* Loop forever */ while (1) { - sleep_on_un_flags = 0; /* @@ -1269,7 +1263,6 @@ static int dgnc_block_til_ready(struct tty_struct *tty, if (!((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_CLOSING)) { - /* * Our conditions to leave cleanly and happily: * 1) NONBLOCKING on the tty is set. @@ -1440,7 +1433,6 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) */ if ((ch->ch_open_count == 0) && !(ch->ch_digi.digi_flags & DIGI_PRINTER)) { - ch->ch_flags &= ~(CH_STOPI | CH_FORCED_STOPI); /* @@ -1469,7 +1461,6 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) * If we have HUPCL set, lower DTR and RTS */ if (ch->ch_c_cflag & HUPCL) { - /* Drop RTS/DTR */ ch->ch_mostat &= ~(UART_MCR_DTR | UART_MCR_RTS); bd->bd_ops->assert_modem_signals(ch); @@ -2588,7 +2579,6 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, } switch (cmd) { - /* Here are all the standard ioctl's that we MUST implement */ case TCSBRK: @@ -2801,7 +2791,6 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, /* set information for ditty */ if (cmd == (DIGI_SETAW)) { - spin_unlock_irqrestore(&ch->ch_lock, flags); rc = ch->ch_bd->bd_ops->drain(tty, 0); From 6f418259ec2c94205730d1946082cfb7d2f9e62e Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:13 +0530 Subject: [PATCH 1479/2431] staging: dgnc: remove space after cast Space is not necessary after typecast. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_cls.c | 6 +++--- drivers/staging/dgnc/dgnc_driver.c | 6 +++--- drivers/staging/dgnc/dgnc_mgmt.c | 6 +++--- drivers/staging/dgnc/dgnc_neo.c | 12 ++++++------ drivers/staging/dgnc/dgnc_tty.c | 24 ++++++++++++------------ 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 5a3580838a3d..50fe22b4bcc6 100644 --- a/drivers/staging/dgnc/dgnc_cls.c +++ b/drivers/staging/dgnc/dgnc_cls.c @@ -438,7 +438,7 @@ static void cls_param(struct tty_struct *tty) if (!tty || tty->magic != TTY_MAGIC) return; - un = (struct un_t *) tty->driver_data; + un = (struct un_t *)tty->driver_data; if (!un || un->magic != DGNC_UNIT_MAGIC) return; @@ -676,7 +676,7 @@ static void cls_param(struct tty_struct *tty) */ static void cls_tasklet(unsigned long data) { - struct dgnc_board *bd = (struct dgnc_board *) data; + struct dgnc_board *bd = (struct dgnc_board *)data; struct channel_t *ch; unsigned long flags; int i; @@ -904,7 +904,7 @@ static int cls_drain(struct tty_struct *tty, uint seconds) if (!tty || tty->magic != TTY_MAGIC) return -ENXIO; - un = (struct un_t *) tty->driver_data; + un = (struct un_t *)tty->driver_data; if (!un || un->magic != DGNC_UNIT_MAGIC) return -ENXIO; diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index fc3eff9417bb..033666615e49 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -452,7 +452,7 @@ static int dgnc_found_board(struct pci_dev *pdev, int id) brd->iobase = pci_resource_start(pdev, 1); brd->iobase_end = pci_resource_end(pdev, 1); - brd->iobase = ((unsigned int) (brd->iobase)) & 0xFFFE; + brd->iobase = ((unsigned int)(brd->iobase)) & 0xFFFE; /* Assign the board_ops struct */ brd->bd_ops = &dgnc_cls_ops; @@ -559,7 +559,7 @@ static int dgnc_found_board(struct pci_dev *pdev, int id) /* init our poll helper tasklet */ tasklet_init(&brd->helper_tasklet, brd->bd_ops->tasklet, - (unsigned long) brd); + (unsigned long)brd); spin_lock_irqsave(&dgnc_global_lock, flags); brd->msgbuf = NULL; @@ -672,7 +672,7 @@ static void dgnc_poll_handler(ulong dummy) new_time = dgnc_poll_time - jiffies; - if ((ulong) new_time >= 2 * dgnc_poll_tick) + if ((ulong)new_time >= 2 * dgnc_poll_tick) dgnc_poll_time = jiffies + dgnc_jiffies_from_ms(dgnc_poll_tick); setup_timer(&dgnc_poll_timer, dgnc_poll_handler, 0); diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c index 5f46e6950651..9ec3efe0a287 100644 --- a/drivers/staging/dgnc/dgnc_mgmt.c +++ b/drivers/staging/dgnc/dgnc_mgmt.c @@ -96,7 +96,7 @@ int dgnc_mgmt_close(struct inode *inode, struct file *file) long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { unsigned long flags; - void __user *uarg = (void __user *) arg; + void __user *uarg = (void __user *)arg; switch (cmd) { case DIGI_GETDD: @@ -142,8 +142,8 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) di.info_bdtype = dgnc_Board[brd]->dpatype; di.info_bdstate = dgnc_Board[brd]->dpastatus; di.info_ioport = 0; - di.info_physaddr = (ulong) dgnc_Board[brd]->membase; - di.info_physsize = (ulong) dgnc_Board[brd]->membase + di.info_physaddr = (ulong)dgnc_Board[brd]->membase; + di.info_physsize = (ulong)dgnc_Board[brd]->membase - dgnc_Board[brd]->membase_end; if (dgnc_Board[brd]->state != BOARD_FAILED) di.info_nports = dgnc_Board[brd]->nasync; diff --git a/drivers/staging/dgnc/dgnc_neo.c b/drivers/staging/dgnc/dgnc_neo.c index 3dd7342650a8..0d7ba53f9ed2 100644 --- a/drivers/staging/dgnc/dgnc_neo.c +++ b/drivers/staging/dgnc/dgnc_neo.c @@ -590,7 +590,7 @@ static void neo_param(struct tty_struct *tty) if (!tty || tty->magic != TTY_MAGIC) return; - un = (struct un_t *) tty->driver_data; + un = (struct un_t *)tty->driver_data; if (!un || un->magic != DGNC_UNIT_MAGIC) return; @@ -828,7 +828,7 @@ static void neo_param(struct tty_struct *tty) */ static void neo_tasklet(unsigned long data) { - struct dgnc_board *bd = (struct dgnc_board *) data; + struct dgnc_board *bd = (struct dgnc_board *)data; struct channel_t *ch; unsigned long flags; int i; @@ -1151,7 +1151,7 @@ static void neo_copy_data_from_uart_to_queue(struct channel_t *ch) break; /* Make sure we don't go over the end of our queue */ - n = min(((uint) total), (RQUEUESIZE - (uint) head)); + n = min(((uint)total), (RQUEUESIZE - (uint)head)); /* * Cut down n even further if needed, this is to fix @@ -1256,7 +1256,7 @@ static void neo_copy_data_from_uart_to_queue(struct channel_t *ch) } memcpy_fromio(ch->ch_rqueue + head, &ch->ch_neo_uart->txrxburst, 1); - ch->ch_equeue[head] = (unsigned char) linestatus; + ch->ch_equeue[head] = (unsigned char)linestatus; /* Ditch any remaining linestatus value. */ linestatus = 0; @@ -1291,7 +1291,7 @@ static int neo_drain(struct tty_struct *tty, uint seconds) if (!tty || tty->magic != TTY_MAGIC) return -ENXIO; - un = (struct un_t *) tty->driver_data; + un = (struct un_t *)tty->driver_data; if (!un || un->magic != DGNC_UNIT_MAGIC) return -ENXIO; @@ -1447,7 +1447,7 @@ static void neo_copy_data_from_queue_to_uart(struct channel_t *ch) n = readb(&ch->ch_neo_uart->tfifo); - if ((unsigned int) n > ch->ch_t_tlevel) + if ((unsigned int)n > ch->ch_t_tlevel) goto exit_unlock; n = UART_17158_TX_FIFOSIZE - ch->ch_t_tlevel; diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index d44ee4e8ca7d..6c71a2f5bc22 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -1440,7 +1440,7 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) */ if ((un->un_type == DGNC_PRINT) && (ch->ch_flags & CH_PRON)) { dgnc_wmove(ch, ch->ch_digi.digi_offstr, - (int) ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); ch->ch_flags &= ~CH_PRON; } @@ -1487,7 +1487,7 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) */ if ((un->un_type == DGNC_PRINT) && (ch->ch_flags & CH_PRON)) { dgnc_wmove(ch, ch->ch_digi.digi_offstr, - (int) ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); ch->ch_flags &= ~CH_PRON; } } @@ -1756,7 +1756,7 @@ static int dgnc_tty_write(struct tty_struct *tty, */ if ((un->un_type == DGNC_PRINT) && !(ch->ch_flags & CH_PRON)) { dgnc_wmove(ch, ch->ch_digi.digi_onstr, - (int) ch->ch_digi.digi_onlen); + (int)ch->ch_digi.digi_onlen); head = (ch->ch_w_head) & tmask; ch->ch_flags |= CH_PRON; } @@ -1767,7 +1767,7 @@ static int dgnc_tty_write(struct tty_struct *tty, */ if ((un->un_type != DGNC_PRINT) && (ch->ch_flags & CH_PRON)) { dgnc_wmove(ch, ch->ch_digi.digi_offstr, - (int) ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); head = (ch->ch_w_head) & tmask; ch->ch_flags &= ~CH_PRON; } @@ -2554,7 +2554,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, struct un_t *un; int rc; unsigned long flags; - void __user *uarg = (void __user *) arg; + void __user *uarg = (void __user *)arg; if (!tty || tty->magic != TTY_MAGIC) return -ENODEV; @@ -2660,13 +2660,13 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, spin_unlock_irqrestore(&ch->ch_lock, flags); rc = put_user(C_CLOCAL(tty) ? 1 : 0, - (unsigned long __user *) arg); + (unsigned long __user *)arg); return rc; case TIOCSSOFTCAR: spin_unlock_irqrestore(&ch->ch_lock, flags); - rc = get_user(arg, (unsigned long __user *) arg); + rc = get_user(arg, (unsigned long __user *)arg); if (rc) return rc; @@ -2814,7 +2814,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, * could sleep */ spin_unlock_irqrestore(&ch->ch_lock, flags); - rc = get_user(loopback, (unsigned int __user *) arg); + rc = get_user(loopback, (unsigned int __user *)arg); if (rc) return rc; spin_lock_irqsave(&ch->ch_lock, flags); @@ -2832,7 +2832,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, case DIGI_GETCUSTOMBAUD: spin_unlock_irqrestore(&ch->ch_lock, flags); - rc = put_user(ch->ch_custom_speed, (unsigned int __user *) arg); + rc = put_user(ch->ch_custom_speed, (unsigned int __user *)arg); return rc; case DIGI_SETCUSTOMBAUD: @@ -2840,7 +2840,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, int new_rate; /* Let go of locks when accessing user space, could sleep */ spin_unlock_irqrestore(&ch->ch_lock, flags); - rc = get_user(new_rate, (int __user *) arg); + rc = get_user(new_rate, (int __user *)arg); if (rc) return rc; spin_lock_irqsave(&ch->ch_lock, flags); @@ -2862,7 +2862,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned char c; spin_unlock_irqrestore(&ch->ch_lock, flags); - rc = get_user(c, (unsigned char __user *) arg); + rc = get_user(c, (unsigned char __user *)arg); if (rc) return rc; spin_lock_irqsave(&ch->ch_lock, flags); @@ -2919,7 +2919,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, events |= (EV_IPU | EV_IPS); spin_unlock_irqrestore(&ch->ch_lock, flags); - rc = put_user(events, (unsigned int __user *) arg); + rc = put_user(events, (unsigned int __user *)arg); return rc; } From e352d3f19e12416c4bb489640e8da70657886854 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:14 +0530 Subject: [PATCH 1480/2431] staging: dgnc: alignment style checkpatch was warning us that the alignment should match the open parenthesis. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_cls.c | 14 +++++++------- drivers/staging/dgnc/dgnc_driver.c | 2 +- drivers/staging/dgnc/dgnc_neo.c | 2 +- drivers/staging/dgnc/dgnc_tty.c | 26 +++++++++++++------------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 50fe22b4bcc6..75040daa40ce 100644 --- a/drivers/staging/dgnc/dgnc_cls.c +++ b/drivers/staging/dgnc/dgnc_cls.c @@ -518,7 +518,7 @@ static void cls_param(struct tty_struct *tty) * unit is NOT open */ if (!(ch->ch_tun.un_flags & UN_ISOPEN) && - (un->un_type == DGNC_PRINT)) + (un->un_type == DGNC_PRINT)) baud = C_BAUD(ch->ch_pun.un_tty) & 0xff; else baud = C_BAUD(ch->ch_tun.un_tty) & 0xff; @@ -532,7 +532,7 @@ static void cls_param(struct tty_struct *tty) jindex = baud; if ((iindex >= 0) && (iindex < 4) && (jindex >= 0) && - (jindex < 16)) { + (jindex < 16)) { baud = bauds[iindex][jindex]; } else { baud = 0; @@ -641,7 +641,7 @@ static void cls_param(struct tty_struct *tty) * disable flow control */ if ((ch->ch_startc == _POSIX_VDISABLE) || - (ch->ch_stopc == _POSIX_VDISABLE)) + (ch->ch_stopc == _POSIX_VDISABLE)) cls_set_no_output_flow_control(ch); else cls_set_ixon_flow_control(ch); @@ -657,7 +657,7 @@ static void cls_param(struct tty_struct *tty) * flow control */ if ((ch->ch_startc == _POSIX_VDISABLE) || - (ch->ch_stopc == _POSIX_VDISABLE)) + (ch->ch_stopc == _POSIX_VDISABLE)) cls_set_no_input_flow_control(ch); else cls_set_ixoff_flow_control(ch); @@ -933,7 +933,7 @@ static void cls_flush_uart_write(struct channel_t *ch) return; writeb((UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_XMIT), - &ch->ch_cls_uart->isr_fcr); + &ch->ch_cls_uart->isr_fcr); udelay(10); ch->ch_flags |= (CH_TX_FIFO_EMPTY | CH_TX_FIFO_LWM); @@ -979,7 +979,7 @@ static void cls_copy_data_from_queue_to_uart(struct channel_t *ch) /* If port is "stopped", don't send any data to the UART */ if ((ch->ch_flags & CH_FORCED_STOP) || - (ch->ch_flags & CH_BREAK_SENDING)) + (ch->ch_flags & CH_BREAK_SENDING)) goto exit_unlock; if (!(ch->ch_flags & (CH_TX_FIFO_EMPTY | CH_TX_FIFO_LWM))) @@ -1169,7 +1169,7 @@ static void cls_uart_init(struct channel_t *ch) readb(&ch->ch_cls_uart->txrx); writeb((UART_FCR_ENABLE_FIFO|UART_FCR_CLEAR_RCVR|UART_FCR_CLEAR_XMIT), - &ch->ch_cls_uart->isr_fcr); + &ch->ch_cls_uart->isr_fcr); udelay(10); ch->ch_flags |= (CH_FIFO_ENABLED | CH_TX_FIFO_EMPTY | CH_TX_FIFO_LWM); diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 033666615e49..619baa9e0c12 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -237,7 +237,7 @@ static int dgnc_start(void) } dev = device_create(dgnc_class, NULL, - MKDEV(dgnc_Major, 0), + MKDEV(dgnc_Major, 0), NULL, "dgnc_mgmt"); if (IS_ERR(dev)) { rc = PTR_ERR(dev); diff --git a/drivers/staging/dgnc/dgnc_neo.c b/drivers/staging/dgnc/dgnc_neo.c index 0d7ba53f9ed2..99287bb90b59 100644 --- a/drivers/staging/dgnc/dgnc_neo.c +++ b/drivers/staging/dgnc/dgnc_neo.c @@ -1390,7 +1390,7 @@ static void neo_copy_data_from_queue_to_uart(struct channel_t *ch) /* If port is "stopped", don't send any data to the UART */ if ((ch->ch_flags & CH_FORCED_STOP) || - (ch->ch_flags & CH_BREAK_SENDING)) + (ch->ch_flags & CH_BREAK_SENDING)) goto exit_unlock; /* diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index 6c71a2f5bc22..18f0dae6e038 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -365,12 +365,12 @@ int dgnc_tty_init(struct dgnc_board *brd) struct device *classp; classp = tty_register_device(&brd->SerialDriver, i, - &(ch->ch_bd->pdev->dev)); + &(ch->ch_bd->pdev->dev)); ch->ch_tun.un_sysfs = classp; dgnc_create_tty_sysfs(&ch->ch_tun, classp); classp = tty_register_device(&brd->PrintDriver, i, - &(ch->ch_bd->pdev->dev)); + &(ch->ch_bd->pdev->dev)); ch->ch_pun.un_sysfs = classp; dgnc_create_tty_sysfs(&ch->ch_pun, classp); } @@ -934,7 +934,7 @@ void dgnc_wakeup_writes(struct channel_t *ch) if (ch->ch_tun.un_flags & UN_ISOPEN) { if ((ch->ch_tun.un_tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) && - ch->ch_tun.un_tty->ldisc->ops->write_wakeup) { + ch->ch_tun.un_tty->ldisc->ops->write_wakeup) { spin_unlock_irqrestore(&ch->ch_lock, flags); (ch->ch_tun.un_tty->ldisc->ops->write_wakeup)(ch->ch_tun.un_tty); spin_lock_irqsave(&ch->ch_lock, flags); @@ -948,7 +948,7 @@ void dgnc_wakeup_writes(struct channel_t *ch) */ if (ch->ch_tun.un_flags & UN_EMPTY) { if ((qlen == 0) && - (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0)) { + (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0)) { ch->ch_tun.un_flags &= ~(UN_EMPTY); /* @@ -976,7 +976,7 @@ void dgnc_wakeup_writes(struct channel_t *ch) if (ch->ch_pun.un_flags & UN_ISOPEN) { if ((ch->ch_pun.un_tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) && - ch->ch_pun.un_tty->ldisc->ops->write_wakeup) { + ch->ch_pun.un_tty->ldisc->ops->write_wakeup) { spin_unlock_irqrestore(&ch->ch_lock, flags); (ch->ch_pun.un_tty->ldisc->ops->write_wakeup)(ch->ch_pun.un_tty); spin_lock_irqsave(&ch->ch_lock, flags); @@ -1038,7 +1038,7 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file) * sleep waiting for it to happen or they cancel the open. */ rc = wait_event_interruptible(brd->state_wait, - (brd->state & BOARD_READY)); + (brd->state & BOARD_READY)); if (rc) return rc; @@ -1440,7 +1440,7 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) */ if ((un->un_type == DGNC_PRINT) && (ch->ch_flags & CH_PRON)) { dgnc_wmove(ch, ch->ch_digi.digi_offstr, - (int)ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); ch->ch_flags &= ~CH_PRON; } @@ -1487,7 +1487,7 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file) */ if ((un->un_type == DGNC_PRINT) && (ch->ch_flags & CH_PRON)) { dgnc_wmove(ch, ch->ch_digi.digi_offstr, - (int)ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); ch->ch_flags &= ~CH_PRON; } } @@ -1690,7 +1690,7 @@ static int dgnc_tty_put_char(struct tty_struct *tty, unsigned char c) * In here exists all the Transparent Print magic as well. */ static int dgnc_tty_write(struct tty_struct *tty, - const unsigned char *buf, int count) + const unsigned char *buf, int count) { struct channel_t *ch = NULL; struct un_t *un = NULL; @@ -1756,7 +1756,7 @@ static int dgnc_tty_write(struct tty_struct *tty, */ if ((un->un_type == DGNC_PRINT) && !(ch->ch_flags & CH_PRON)) { dgnc_wmove(ch, ch->ch_digi.digi_onstr, - (int)ch->ch_digi.digi_onlen); + (int)ch->ch_digi.digi_onlen); head = (ch->ch_w_head) & tmask; ch->ch_flags |= CH_PRON; } @@ -1767,7 +1767,7 @@ static int dgnc_tty_write(struct tty_struct *tty, */ if ((un->un_type != DGNC_PRINT) && (ch->ch_flags & CH_PRON)) { dgnc_wmove(ch, ch->ch_digi.digi_offstr, - (int)ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); head = (ch->ch_w_head) & tmask; ch->ch_flags &= ~CH_PRON; } @@ -1880,7 +1880,7 @@ static int dgnc_tty_tiocmget(struct tty_struct *tty) */ static int dgnc_tty_tiocmset(struct tty_struct *tty, - unsigned int set, unsigned int clear) + unsigned int set, unsigned int clear) { struct dgnc_board *bd; struct channel_t *ch; @@ -2547,7 +2547,7 @@ static void dgnc_tty_flush_buffer(struct tty_struct *tty) * The usual assortment of ioctl's */ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, - unsigned long arg) + unsigned long arg) { struct dgnc_board *bd; struct channel_t *ch; From 7df227c4ece0968a625f0fda1e19d2980f6859b9 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:15 +0530 Subject: [PATCH 1481/2431] staging: dgnc: remove parenthesis checkpatch was warning us about extra unneeded parenthesis. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_neo.c | 2 +- drivers/staging/dgnc/dgnc_sysfs.c | 48 +++++++++++++++---------------- drivers/staging/dgnc/dgnc_tty.c | 14 ++++----- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_neo.c b/drivers/staging/dgnc/dgnc_neo.c index 99287bb90b59..8106f5234bf5 100644 --- a/drivers/staging/dgnc/dgnc_neo.c +++ b/drivers/staging/dgnc/dgnc_neo.c @@ -1792,6 +1792,6 @@ static void neo_vpd(struct dgnc_board *brd) /* Search for the serial number */ for (i = 0; i < NEO_VPD_IMAGEBYTES - 3; i++) if (brd->vpd[i] == 'S' && brd->vpd[i + 1] == 'N') - strncpy(brd->serial_num, &(brd->vpd[i + 3]), 9); + strncpy(brd->serial_num, &brd->vpd[i + 3], 9); } } diff --git a/drivers/staging/dgnc/dgnc_sysfs.c b/drivers/staging/dgnc/dgnc_sysfs.c index dffb4af12023..74a072599126 100644 --- a/drivers/staging/dgnc/dgnc_sysfs.c +++ b/drivers/staging/dgnc/dgnc_sysfs.c @@ -343,18 +343,18 @@ void dgnc_create_ports_sysfiles(struct dgnc_board *bd) int rc = 0; dev_set_drvdata(&bd->pdev->dev, bd); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_state); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_baud); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_msignals); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_iflag); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_cflag); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_oflag); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_lflag); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_digi_flag); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_rxcount); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_ports_txcount); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_vpd); - rc |= device_create_file(&(bd->pdev->dev), &dev_attr_serial_number); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_state); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_baud); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_msignals); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_iflag); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_cflag); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_oflag); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_lflag); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_digi_flag); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_rxcount); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_ports_txcount); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_vpd); + rc |= device_create_file(&bd->pdev->dev, &dev_attr_serial_number); if (rc) dev_err(&bd->pdev->dev, "dgnc: sysfs device_create_file failed!\n"); } @@ -362,18 +362,18 @@ void dgnc_create_ports_sysfiles(struct dgnc_board *bd) /* removes all the sys files created for that port */ void dgnc_remove_ports_sysfiles(struct dgnc_board *bd) { - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_state); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_baud); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_msignals); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_iflag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_cflag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_oflag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_lflag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_digi_flag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_rxcount); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_txcount); - device_remove_file(&(bd->pdev->dev), &dev_attr_vpd); - device_remove_file(&(bd->pdev->dev), &dev_attr_serial_number); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_state); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_baud); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_msignals); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_iflag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_cflag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_oflag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_lflag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_digi_flag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_rxcount); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_txcount); + device_remove_file(&bd->pdev->dev, &dev_attr_vpd); + device_remove_file(&bd->pdev->dev, &dev_attr_serial_number); } static ssize_t dgnc_tty_state_show(struct device *d, diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index 18f0dae6e038..8489e5a1dae8 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -365,12 +365,12 @@ int dgnc_tty_init(struct dgnc_board *brd) struct device *classp; classp = tty_register_device(&brd->SerialDriver, i, - &(ch->ch_bd->pdev->dev)); + &ch->ch_bd->pdev->dev); ch->ch_tun.un_sysfs = classp; dgnc_create_tty_sysfs(&ch->ch_tun, classp); classp = tty_register_device(&brd->PrintDriver, i, - &(ch->ch_bd->pdev->dev)); + &ch->ch_bd->pdev->dev); ch->ch_pun.un_sysfs = classp; dgnc_create_tty_sysfs(&ch->ch_pun, classp); } @@ -710,7 +710,7 @@ void dgnc_carrier(struct channel_t *ch) * for carrier in the open routine. */ - if (waitqueue_active(&(ch->ch_flags_wait))) + if (waitqueue_active(&ch->ch_flags_wait)) wake_up_interruptible(&ch->ch_flags_wait); } @@ -723,7 +723,7 @@ void dgnc_carrier(struct channel_t *ch) * for carrier in the open routine. */ - if (waitqueue_active(&(ch->ch_flags_wait))) + if (waitqueue_active(&ch->ch_flags_wait)) wake_up_interruptible(&ch->ch_flags_wait); } @@ -750,7 +750,7 @@ void dgnc_carrier(struct channel_t *ch) * * Enable all select calls. */ - if (waitqueue_active(&(ch->ch_flags_wait))) + if (waitqueue_active(&ch->ch_flags_wait)) wake_up_interruptible(&ch->ch_flags_wait); if (ch->ch_tun.un_open_count > 0) @@ -936,7 +936,7 @@ void dgnc_wakeup_writes(struct channel_t *ch) if ((ch->ch_tun.un_tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) && ch->ch_tun.un_tty->ldisc->ops->write_wakeup) { spin_unlock_irqrestore(&ch->ch_lock, flags); - (ch->ch_tun.un_tty->ldisc->ops->write_wakeup)(ch->ch_tun.un_tty); + ch->ch_tun.un_tty->ldisc->ops->write_wakeup(ch->ch_tun.un_tty); spin_lock_irqsave(&ch->ch_lock, flags); } @@ -978,7 +978,7 @@ void dgnc_wakeup_writes(struct channel_t *ch) if ((ch->ch_pun.un_tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) && ch->ch_pun.un_tty->ldisc->ops->write_wakeup) { spin_unlock_irqrestore(&ch->ch_lock, flags); - (ch->ch_pun.un_tty->ldisc->ops->write_wakeup)(ch->ch_pun.un_tty); + ch->ch_pun.un_tty->ldisc->ops->write_wakeup(ch->ch_pun.un_tty); spin_lock_irqsave(&ch->ch_lock, flags); } From 35e942f3167a2ba18bd3db9c964183d81c130a7d Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 21:19:20 +0530 Subject: [PATCH 1482/2431] staging: dgap: remove unused configuration The IO configuration was not used to configure the board. It was only read from the configuration file. Stop reading it and also remove the other related variables defined for it. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 21 --------------------- drivers/staging/dgap/dgap.h | 4 ---- 2 files changed, 25 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 64f6149652d9..aa3aa720724c 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -248,7 +248,6 @@ static struct toklist dgap_tlist[] = { { BEGIN, "config_begin" }, { END, "config_end" }, { BOARD, "board" }, - { IO, "io" }, { PCIINFO, "pciinfo" }, { LINE, "line" }, { CONC, "conc" }, @@ -662,25 +661,6 @@ static int dgap_parsefile(char **in) break; - case IO: /* i/o port */ - if (p->type != BNODE) { - pr_err("IO port only valid for boards"); - return -1; - } - s = dgap_getword(in); - if (!s) { - pr_err("unexpected end of file"); - return -1; - } - kfree(p->u.board.portstr); - p->u.board.portstr = kstrdup(s, GFP_KERNEL); - if (kstrtol(s, 0, &p->u.board.port)) { - pr_err("bad number for IO port"); - return -1; - } - p->u.board.v_port = 1; - break; - case MEM: /* memory address */ if (p->type != BNODE) { pr_err("memory address only valid for boards"); @@ -1296,7 +1276,6 @@ static void dgap_cleanup_nodes(void) switch (p->type) { case BNODE: - kfree(p->u.board.portstr); kfree(p->u.board.addrstr); kfree(p->u.board.pcibusstr); kfree(p->u.board.pcislotstr); diff --git a/drivers/staging/dgap/dgap.h b/drivers/staging/dgap/dgap.h index e707ed5fe949..c84dbf2a0684 100644 --- a/drivers/staging/dgap/dgap.h +++ b/drivers/staging/dgap/dgap.h @@ -409,7 +409,6 @@ #define ID 76 #define CABLE 77 #define CONNECT 78 -#define IO 79 #define MEM 80 #define DPSZ 81 @@ -1152,8 +1151,6 @@ struct cnode { union { struct { char type; /* Board Type */ - long port; /* I/O Address */ - char *portstr; /* I/O Address in string */ long addr; /* Memory Address */ char *addrstr; /* Memory Address in string */ long pcibus; /* PCI BUS */ @@ -1164,7 +1161,6 @@ struct cnode { char *id; /* tty id */ long start; /* start of tty counting */ char *method; /* Install method */ - char v_port; char v_addr; char v_pcibus; char v_pcislot; From 36e712a8a14d336a2f6433f64a8e2bb974138aec Mon Sep 17 00:00:00 2001 From: Parshuram Thombare Date: Sat, 10 Oct 2015 19:06:44 -0400 Subject: [PATCH 1483/2431] staging: dgnc: simplify a trivial if-return sequence Signed-off-by: Parshuram Thombare Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_tty.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index 8489e5a1dae8..4ac9092da392 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -1336,10 +1336,7 @@ static int dgnc_block_til_ready(struct tty_struct *tty, spin_unlock_irqrestore(&ch->ch_lock, flags); - if (retval) - return retval; - - return 0; + return retval; } /* From cea07e523c218ba45b9448ff78e18357880a2548 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 10 Oct 2015 17:21:42 +0200 Subject: [PATCH 1484/2431] Staging: olpc_dcon: Remove braces Braces in single statement blocks are not needed. Found by checkpatch.pl Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman --- drivers/staging/olpc_dcon/olpc_dcon.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index 9038e0b3f113..3f424d14c334 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon.c +++ b/drivers/staging/olpc_dcon/olpc_dcon.c @@ -243,9 +243,8 @@ static void dcon_load_holdoff(struct dcon_priv *dcon) while (1) { now = ktime_get(); delta_t = ktime_sub(now, dcon->load_time); - if (ktime_to_ns(delta_t) > NSEC_PER_MSEC * 20) { + if (ktime_to_ns(delta_t) > NSEC_PER_MSEC * 20) break; - } mdelay(4); } } From 30d7979259663ce3e0b942498a890a0977a667d6 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:29 -0400 Subject: [PATCH 1485/2431] drivers/staging: make android ion_page_pool.c explicitly non-modular MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Kconfig currently controlling compilation of this code is: drivers/staging/android/ion/Kconfig:menuconfig ION drivers/staging/android/ion/Kconfig: bool "Ion Memory Manager" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. Cc: Greg Kroah-Hartman Cc: "Arve HjønnevÃ¥g" Cc: Riley Andrews Cc: devel@driverdev.osuosl.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ion/ion_page_pool.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/android/ion/ion_page_pool.c b/drivers/staging/android/ion/ion_page_pool.c index 19ad3aba499a..fd7e23e0c06e 100644 --- a/drivers/staging/android/ion/ion_page_pool.c +++ b/drivers/staging/android/ion/ion_page_pool.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include "ion_priv.h" @@ -174,10 +174,4 @@ static int __init ion_page_pool_init(void) { return 0; } - -static void __exit ion_page_pool_exit(void) -{ -} - -module_init(ion_page_pool_init); -module_exit(ion_page_pool_exit); +device_initcall(ion_page_pool_init); From 35890c28eec9535d910380b598712bd4b6d7717d Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:30 -0400 Subject: [PATCH 1486/2431] drivers/staging: make android tegra_ion.c properly tristate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Kconfig currently controlling compilation of this code is: drivers/staging/android/ion/Kconfig:config ION_TEGRA drivers/staging/android/ion/Kconfig: tristate "Ion for Tegra" ...which led me to incorrectly conclude this file was built modular earlier. However the above CONFIG is just used to enter the dir and once we do enter that dir, we see the build is unconditional: drivers/staging/android/ion/Makefile:obj-$(CONFIG_ION_TEGRA) += tegra/ drivers/staging/android/ion/tegra/Makefile:obj-y += tegra_ion.o ...meaning that it currently is not being built as a module by anyone. However, given that the Kconfig did explicitly choose tristate, and that the dummy ion driver is (functionally) tristate, I chose to make the Makefile do the right thing for it to build as a module. After this change, on an ARM allmodconfig, we see: CC [M] drivers/staging/android/ion/tegra/tegra_ion.o so it does build OK as a module. I can't vouch for the modular functionality however, so consider this compile tested only. Cc: Greg Kroah-Hartman Cc: "Arve HjønnevÃ¥g" Cc: Riley Andrews Cc: Stephen Warren Cc: Thierry Reding Cc: Alexandre Courbot Cc: Markus Elfring Cc: devel@driverdev.osuosl.org Cc: linux-tegra@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ion/tegra/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/android/ion/tegra/Makefile b/drivers/staging/android/ion/tegra/Makefile index 11cd003fb08f..808f1f53f11a 100644 --- a/drivers/staging/android/ion/tegra/Makefile +++ b/drivers/staging/android/ion/tegra/Makefile @@ -1 +1 @@ -obj-y += tegra_ion.o +obj-$(CONFIG_ION_TEGRA) += tegra_ion.o From 12950595906f9879cd0e61da6fa7b1ff6553180b Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:28 -0400 Subject: [PATCH 1487/2431] drivers/staging: make android ashmem.c explicitly non-modular MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Kconfig currently controlling compilation of this code is: drivers/staging/android/Kconfig:config ASHMEM drivers/staging/android/Kconfig: bool "Enable the Anonymous Shared Memory Subsystem" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We replace module.h with init.h and export.h ; the latter since this file uses the global THIS_MODULE. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: "Arve HjønnevÃ¥g" Cc: Riley Andrews Cc: devel@driverdev.osuosl.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ashmem.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index f7f8c811af22..3f2a3d611e4b 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -18,7 +18,8 @@ #define pr_fmt(fmt) "ashmem: " fmt -#include +#include +#include #include #include #include @@ -860,19 +861,4 @@ static int __init ashmem_init(void) return 0; } - -static void __exit ashmem_exit(void) -{ - unregister_shrinker(&ashmem_shrinker); - - misc_deregister(&ashmem_misc); - kmem_cache_destroy(ashmem_range_cachep); - kmem_cache_destroy(ashmem_area_cachep); - - pr_info("unloaded\n"); -} - -module_init(ashmem_init); -module_exit(ashmem_exit); - -MODULE_LICENSE("GPL"); +device_initcall(ashmem_init); From db1ad33bcfc45bd90994d3855a255e2daf746a3c Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:31 -0400 Subject: [PATCH 1488/2431] drivers/staging: make android sw_sync.c explicitly non-modular MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Kconfig currently controlling compilation of this code is: staging/android/Kconfig:config SW_SYNC staging/android/Kconfig: bool "Software synchronization objects" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: "Arve HjønnevÃ¥g" Cc: Riley Andrews Cc: devel@driverdev.osuosl.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/sw_sync.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/staging/android/sw_sync.c b/drivers/staging/android/sw_sync.c index 29b5c3567180..c4ff1679ebbc 100644 --- a/drivers/staging/android/sw_sync.c +++ b/drivers/staging/android/sw_sync.c @@ -15,11 +15,11 @@ */ #include +#include #include #include #include #include -#include #include #include @@ -255,13 +255,6 @@ static int __init sw_sync_device_init(void) { return misc_register(&sw_sync_dev); } - -static void __exit sw_sync_device_remove(void) -{ - misc_deregister(&sw_sync_dev); -} - -module_init(sw_sync_device_init); -module_exit(sw_sync_device_remove); +device_initcall(sw_sync_device_init); #endif /* CONFIG_SW_SYNC_USER */ From 380b6549e5f799fabc5523a09446aa8c4da8c26b Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:32 -0400 Subject: [PATCH 1489/2431] drivers/staging: make android lowmemorykiller.c explicitly non-modular MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Kconfig currently controlling compilation of this code is: drivers/staging/android/Kconfig:config ANDROID_LOW_MEMORY_KILLER drivers/staging/android/Kconfig: bool "Android Low Memory Killer" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We replace module.h with init.h and moduleparam.h ; the latter since this file was previously implicitly relying on getting that header. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: "Arve HjønnevÃ¥g" Cc: Riley Andrews Cc: devel@driverdev.osuosl.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/lowmemorykiller.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c index 569d12c02877..e679d8432810 100644 --- a/drivers/staging/android/lowmemorykiller.c +++ b/drivers/staging/android/lowmemorykiller.c @@ -32,7 +32,8 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -#include +#include +#include #include #include #include @@ -190,12 +191,12 @@ static int __init lowmem_init(void) register_shrinker(&lowmem_shrinker); return 0; } +device_initcall(lowmem_init); -static void __exit lowmem_exit(void) -{ - unregister_shrinker(&lowmem_shrinker); -} - +/* + * not really modular, but the easiest way to keep compat with existing + * bootargs behaviour is to continue using module_param here. + */ module_param_named(cost, lowmem_shrinker.seeks, int, S_IRUGO | S_IWUSR); module_param_array_named(adj, lowmem_adj, short, &lowmem_adj_size, S_IRUGO | S_IWUSR); @@ -203,8 +204,3 @@ module_param_array_named(minfree, lowmem_minfree, uint, &lowmem_minfree_size, S_IRUGO | S_IWUSR); module_param_named(debug_level, lowmem_debug_level, uint, S_IRUGO | S_IWUSR); -module_init(lowmem_init); -module_exit(lowmem_exit); - -MODULE_LICENSE("GPL"); - From e20ec73ac2f3b896592a2922104379af1052e581 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:33 -0400 Subject: [PATCH 1490/2431] drivers/staging: make android timed_output.c explicitly non-modular MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Kconfig currently controlling compilation of this code is: drivers/staging/android/Kconfig:config ANDROID_TIMED_OUTPUT drivers/staging/android/Kconfig: bool "Timed output class driver" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We replace module.h with init.h and export.h ; the latter since this file does actually export some symbols. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: "Arve HjønnevÃ¥g" Cc: Riley Andrews Cc: devel@driverdev.osuosl.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/timed_output.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c index b41429f379fe..aff9cdb007e5 100644 --- a/drivers/staging/android/timed_output.c +++ b/drivers/staging/android/timed_output.c @@ -16,7 +16,8 @@ #define pr_fmt(fmt) "timed_output: " fmt -#include +#include +#include #include #include #include @@ -106,15 +107,4 @@ static int __init timed_output_init(void) { return create_timed_output_class(); } - -static void __exit timed_output_exit(void) -{ - class_destroy(timed_output_class); -} - -module_init(timed_output_init); -module_exit(timed_output_exit); - -MODULE_AUTHOR("Mike Lockwood "); -MODULE_DESCRIPTION("timed output class driver"); -MODULE_LICENSE("GPL"); +device_initcall(timed_output_init); From 0af61e66ee16211a970839c5faac8a4c9869eb49 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:34 -0400 Subject: [PATCH 1491/2431] drivers/staging: make emxx_udc.c explicitly non-modular The Kconfig currently controlling compilation of this code is: drivers/staging/emxx_udc/Kconfig:config USB_EMXX drivers/staging/emxx_udc/Kconfig: bool "EMXX USB Function Device Controller" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. The .remove function was declared __exit, so it wouldn't have been available for a sysfs bind/unbind anyway, so lets be explicit here and use ".suppress_bind_attrs = true" to prevent root from doing something silly. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: Vincenzo Scotti Cc: Haneen Mohammed Cc: Felipe Balbi Cc: Roberta Dobrescu Cc: Tapasweni Pathak Cc: Peter Chen Cc: Robert Baldyga Cc: Chris Rorvick Cc: "Gujulan Elango, Hari Prasath (H.)" Cc: devel@driverdev.osuosl.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 37 ++++------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index f62636462fe4..049274738a2e 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -15,7 +15,7 @@ */ #include -#include +#include #include #include #include @@ -40,11 +40,9 @@ #include "emxx_udc.h" -#define DRIVER_DESC "EMXX UDC driver" #define DMA_ADDR_INVALID (~(dma_addr_t)0) static const char driver_name[] = "emxx_udc"; -static const char driver_desc[] = DRIVER_DESC; /*===========================================================================*/ /* Prototype */ @@ -3320,28 +3318,6 @@ static void nbu2ss_drv_shutdown(struct platform_device *pdev) _nbu2ss_disable_controller(udc); } -/*-------------------------------------------------------------------------*/ -static int __exit nbu2ss_drv_remove(struct platform_device *pdev) -{ - struct nbu2ss_udc *udc; - struct nbu2ss_ep *ep; - int i; - - udc = &udc_controller; - - for (i = 0; i < NUM_ENDPOINTS; i++) { - ep = &udc->ep[i]; - if (ep->virt_buf) - dma_free_coherent(NULL, PAGE_SIZE, - (void *)ep->virt_buf, ep->phys_buf); - } - - /* Interrupt Handler - Release */ - free_irq(INT_VBUS, udc); - - return 0; -} - /*-------------------------------------------------------------------------*/ static int nbu2ss_drv_suspend(struct platform_device *pdev, pm_message_t state) { @@ -3394,17 +3370,12 @@ static int nbu2ss_drv_resume(struct platform_device *pdev) static struct platform_driver udc_driver = { .probe = nbu2ss_drv_probe, .shutdown = nbu2ss_drv_shutdown, - .remove = __exit_p(nbu2ss_drv_remove), .suspend = nbu2ss_drv_suspend, .resume = nbu2ss_drv_resume, .driver = { - .name = driver_name, + .name = driver_name, + .suppress_bind_attrs = true, }, }; -module_platform_driver(udc_driver); - -MODULE_DESCRIPTION(DRIVER_DESC); -MODULE_AUTHOR("Renesas Electronics Corporation"); -MODULE_LICENSE("GPL"); - +builtin_platform_driver(udc_driver); From 629af2407d78b3cda77856fd7f5b000d24d7e12f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 1 Oct 2015 11:59:27 -0700 Subject: [PATCH 1492/2431] staging: comedi: pcm3724: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcm3724.c | 44 ++++++++++-------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcm3724.c b/drivers/staging/comedi/drivers/pcm3724.c index 6176dfa24801..3149c0150d0b 100644 --- a/drivers/staging/comedi/drivers/pcm3724.c +++ b/drivers/staging/comedi/drivers/pcm3724.c @@ -1,31 +1,25 @@ /* - comedi/drivers/pcm724.c + * pcm3724.c + * Comedi driver for Advantech PCM-3724 Digital I/O board + * + * Drew Csillag + */ - Drew Csillag - - hardware driver for Advantech card: - card: PCM-3724 - driver: pcm3724 - - Options for PCM-3724 - [0] - IO Base -*/ /* -Driver: pcm3724 -Description: Advantech PCM-3724 -Author: Drew Csillag -Devices: [Advantech] PCM-3724 (pcm724) -Status: tested - -This is driver for digital I/O boards PCM-3724 with 48 DIO. -It needs 8255.o for operations and only immediate mode is supported. -See the source for configuration details. - -Copy/pasted/hacked from pcm724.c -*/ -/* - * check_driver overrides: - * struct comedi_insn + * Driver: pcm3724 + * Description: Advantech PCM-3724 + * Devices: [Advantech] PCM-3724 (pcm3724) + * Author: Drew Csillag + * Status: tested + * + * This is driver for digital I/O boards PCM-3724 with 48 DIO. + * It needs 8255.o for operations and only immediate mode is supported. + * See the source for configuration details. + * + * Copy/pasted/hacked from pcm724.c + * + * Configuration Options: + * [0] - I/O port base address */ #include From 5891b5b2aafda9f0013b3bf46ea12d41e094f1bf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 1 Oct 2015 11:59:28 -0700 Subject: [PATCH 1493/2431] staging: comedi: pcm3724: tidy up register map defines For aesthetics, rename the register map defines so they have namespace associated with the driver and use the BIT macro to define the bits. Add the missing defines for the registers and use them to remove the magic values from the driver. Add a comment about the extra registers to explain why this driver doesn't just use the standard 8255 driver instead. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcm3724.c | 66 ++++++++++++++---------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcm3724.c b/drivers/staging/comedi/drivers/pcm3724.c index 3149c0150d0b..be5fe0456e13 100644 --- a/drivers/staging/comedi/drivers/pcm3724.c +++ b/drivers/staging/comedi/drivers/pcm3724.c @@ -27,19 +27,31 @@ #include "8255.h" -#define BUF_C0 0x1 -#define BUF_B0 0x2 -#define BUF_A0 0x4 -#define BUF_C1 0x8 -#define BUF_B1 0x10 -#define BUF_A1 0x20 - -#define GATE_A0 0x4 -#define GATE_B0 0x2 -#define GATE_C0 0x1 -#define GATE_A1 0x20 -#define GATE_B1 0x10 -#define GATE_C1 0x8 +/* + * Register I/O Map + * + * This board has two standard 8255 devices that provide six 8-bit DIO ports + * (48 channels total). Six 74HCT245 chips (one for each port) buffer the + * I/O lines to increase driving capability. Because the 74HCT245 is a + * bidirectional, tri-state line buffer, two additional I/O ports are used + * to control the direction of data and the enable of each port. + */ +#define PCM3724_8255_0_BASE 0x00 +#define PCM3724_8255_1_BASE 0x04 +#define PCM3724_DIO_DIR_REG 0x08 +#define PCM3724_DIO_DIR_C0_OUT BIT(0) +#define PCM3724_DIO_DIR_B0_OUT BIT(1) +#define PCM3724_DIO_DIR_A0_OUT BIT(2) +#define PCM3724_DIO_DIR_C1_OUT BIT(3) +#define PCM3724_DIO_DIR_B1_OUT BIT(4) +#define PCM3724_DIO_DIR_A1_OUT BIT(5) +#define PCM3724_GATE_CTRL_REG 0x09 +#define PCM3724_GATE_CTRL_C0_ENA BIT(0) +#define PCM3724_GATE_CTRL_B0_ENA BIT(1) +#define PCM3724_GATE_CTRL_A0_ENA BIT(2) +#define PCM3724_GATE_CTRL_C1_ENA BIT(3) +#define PCM3724_GATE_CTRL_B1_ENA BIT(4) +#define PCM3724_GATE_CTRL_A1_ENA BIT(5) /* used to track configured dios */ struct priv_pcm3724 { @@ -52,21 +64,21 @@ static int compute_buffer(int config, int devno, struct comedi_subdevice *s) /* 1 in io_bits indicates output */ if (s->io_bits & 0x0000ff) { if (devno == 0) - config |= BUF_A0; + config |= PCM3724_DIO_DIR_A0_OUT; else - config |= BUF_A1; + config |= PCM3724_DIO_DIR_A1_OUT; } if (s->io_bits & 0x00ff00) { if (devno == 0) - config |= BUF_B0; + config |= PCM3724_DIO_DIR_B0_OUT; else - config |= BUF_B1; + config |= PCM3724_DIO_DIR_B1_OUT; } if (s->io_bits & 0xff0000) { if (devno == 0) - config |= BUF_C0; + config |= PCM3724_DIO_DIR_C0_OUT; else - config |= BUF_C1; + config |= PCM3724_DIO_DIR_C1_OUT; } return config; } @@ -101,7 +113,7 @@ static void do_3724_config(struct comedi_device *dev, else port_8255_cfg = dev->iobase + I8255_SIZE + I8255_CTRL_REG; - outb(buffer_config, dev->iobase + 8); /* update buffer register */ + outb(buffer_config, dev->iobase + PCM3724_DIO_DIR_REG); outb(config, port_8255_cfg); } @@ -123,24 +135,24 @@ static void enable_chan(struct comedi_device *dev, struct comedi_subdevice *s, priv->dio_2 |= mask; if (priv->dio_1 & 0xff0000) - gatecfg |= GATE_C0; + gatecfg |= PCM3724_GATE_CTRL_C0_ENA; if (priv->dio_1 & 0xff00) - gatecfg |= GATE_B0; + gatecfg |= PCM3724_GATE_CTRL_B0_ENA; if (priv->dio_1 & 0xff) - gatecfg |= GATE_A0; + gatecfg |= PCM3724_GATE_CTRL_A0_ENA; if (priv->dio_2 & 0xff0000) - gatecfg |= GATE_C1; + gatecfg |= PCM3724_GATE_CTRL_C1_ENA; if (priv->dio_2 & 0xff00) - gatecfg |= GATE_B1; + gatecfg |= PCM3724_GATE_CTRL_B1_ENA; if (priv->dio_2 & 0xff) - gatecfg |= GATE_A1; + gatecfg |= PCM3724_GATE_CTRL_A1_ENA; - outb(gatecfg, dev->iobase + 9); + outb(gatecfg, dev->iobase + PCM3724_GATE_CTRL_REG); } /* overriding the 8255 insn config */ From 647d8aec47336aff073b10ca2de036c1a1f66b6f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 1 Oct 2015 11:59:29 -0700 Subject: [PATCH 1494/2431] staging: comedi: pcm3724: update the MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more usefull than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcm3724.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/pcm3724.c b/drivers/staging/comedi/drivers/pcm3724.c index be5fe0456e13..588ae5ecec66 100644 --- a/drivers/staging/comedi/drivers/pcm3724.c +++ b/drivers/staging/comedi/drivers/pcm3724.c @@ -222,5 +222,5 @@ static struct comedi_driver pcm3724_driver = { module_comedi_driver(pcm3724_driver); MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); +MODULE_DESCRIPTION("Comedi driver for Advantech PCM-3724 Digital I/O board"); MODULE_LICENSE("GPL"); From 23d4f0245f6f48ee374069110b86c75166d1e152 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:48 -0700 Subject: [PATCH 1495/2431] staging: comedi: quatech_daqp_cs: there are 4 digital outputs This board has 4 digital outputs not 1. Fix the subdevice init. The digital output lines are used for the external channel selection when the expansion mode is enabled. Add a comment about this. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 152cb146fc16..a4a5244ab8a8 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -748,10 +748,17 @@ static int daqp_auto_attach(struct comedi_device *dev, s->maxdata = 1; s->insn_bits = daqp_di_insn_bits; + /* + * Digital Output subdevice + * NOTE: The digital output lines share the same pins on the + * interface connector as the four external channel selection + * bits. If expansion mode is used the digital outputs do not + * work. + */ s = &dev->subdevices[3]; s->type = COMEDI_SUBD_DO; s->subdev_flags = SDF_WRITABLE; - s->n_chan = 1; + s->n_chan = 4; s->maxdata = 1; s->insn_bits = daqp_do_insn_bits; From 4d6b700801bfeef15a059fc6739bfcd741cd9c15 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:49 -0700 Subject: [PATCH 1496/2431] staging: comedi: quatech_daqp_cs: there are 4 digital inputs This board has 4 digital inputs not 1. Fix the subdevice init. The digital input lines are shared with other functions. Add a comment about this. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index a4a5244ab8a8..b2effb876b77 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -741,10 +741,21 @@ static int daqp_auto_attach(struct comedi_device *dev, if (ret) return ret; + /* + * Digital Input subdevice + * NOTE: The digital input lines are shared: + * + * Chan Normal Mode Expansion Mode + * ---- ----------------- ---------------------------- + * 0 DI0, ext. trigger Same as normal mode + * 1 DI1 External gain select, lo bit + * 2 DI2, ext. clock Same as normal mode + * 3 DI3 External gain select, hi bit + */ s = &dev->subdevices[2]; s->type = COMEDI_SUBD_DI; s->subdev_flags = SDF_READABLE; - s->n_chan = 1; + s->n_chan = 4; s->maxdata = 1; s->insn_bits = daqp_di_insn_bits; From c3f7e15383a9e86a56820c34d5ef761c4682e47b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:50 -0700 Subject: [PATCH 1497/2431] staging: comedi: quatech_daqp_cs: introduce daqp_ai_get_sample() Introduce a helper function to get a two's complement sample from the FIFO and munge it to the offset binary format that comedi uses. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index b2effb876b77..cf144ce553c1 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -172,6 +172,20 @@ static int daqp_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) return 0; } +static unsigned int daqp_ai_get_sample(struct comedi_device *dev, + struct comedi_subdevice *s) +{ + unsigned int val; + + /* + * Get a two's complement sample from the FIFO and + * return the munged offset binary value. + */ + val = inb(dev->iobase + DAQP_FIFO); + val |= inb(dev->iobase + DAQP_FIFO) << 8; + return comedi_offset_munge(s, val); +} + /* Interrupt handler * * Operates in one of two modes. If devpriv->interrupt_mode is @@ -209,10 +223,7 @@ static enum irqreturn daqp_interrupt(int irq, void *dev_id) break; } - data = inb(dev->iobase + DAQP_FIFO); - data |= inb(dev->iobase + DAQP_FIFO) << 8; - data ^= 0x8000; - + data = daqp_ai_get_sample(dev, s); comedi_buf_write_samples(s, &data, 1); /* If there's a limit, decrement it @@ -323,9 +334,7 @@ static int daqp_ai_insn_read(struct comedi_device *dev, if (wait_for_completion_interruptible(&devpriv->eos)) return -EINTR; - data[i] = inb(dev->iobase + DAQP_FIFO); - data[i] |= inb(dev->iobase + DAQP_FIFO) << 8; - data[i] ^= 0x8000; + data[i] = daqp_ai_get_sample(dev, s); } return insn->n; From 1271dd24c63478b08fc574ec8b4fa50902b368f0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:51 -0700 Subject: [PATCH 1498/2431] staging: comedi: quatech_daqp_cs: use comedi_offset_munge() in ao (*insn_write) Use the comedi_offset_munge() helper to do the offset binary to two's complement conversion when writing a new analog output value. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index cf144ce553c1..4f87147213d1 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -655,11 +655,9 @@ static int daqp_ao_insn_write(struct comedi_device *dev, s->readback[chan] = val; - val &= 0x0fff; - val ^= 0x0800; /* Flip the sign */ - val |= (chan << 12); - - outw(val, dev->iobase + DAQP_DA); + /* write the two's complement value to the channel */ + outw((chan << 12) | comedi_offset_munge(s, val), + dev->iobase + DAQP_DA); } return insn->n; From e031642eccc040648b09cfc7d632e2e8d0b6f94f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:52 -0700 Subject: [PATCH 1499/2431] staging: comedi: quatech_daqp_cs: use comedi_timeout() in ao (*insn_write) The data link between the D/A data port and the D/A converter is a serial link. The serial link requires about 8ms to complete a transfer. Use the comedi_timeout() helper to ensure that there is not a previous transfer still happening before trying to write new data to the channel. For aesthetics, save the readback value after updating the hardware. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 4f87147213d1..ab336ce329f2 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -635,6 +635,19 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) return 0; } +static int daqp_ao_empty(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned long context) +{ + unsigned int status; + + status = inb(dev->iobase + DAQP_AUX); + if ((status & DAQP_AUX_DA_BUFFER) == 0) + return 0; + return -EBUSY; +} + static int daqp_ao_insn_write(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -652,12 +665,18 @@ static int daqp_ao_insn_write(struct comedi_device *dev, for (i = 0; i > insn->n; i++) { unsigned val = data[i]; + int ret; - s->readback[chan] = val; + /* D/A transfer rate is about 8ms */ + ret = comedi_timeout(dev, s, insn, daqp_ao_empty, 0); + if (ret) + return ret; /* write the two's complement value to the channel */ outw((chan << 12) | comedi_offset_munge(s, val), dev->iobase + DAQP_DA); + + s->readback[chan] = val; } return insn->n; From 491205bbc6fbab7388732297037a9a2fc16c3616 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:53 -0700 Subject: [PATCH 1500/2431] staging: comedi: quatech_daqp_cs: spaces preferred around that '<<' Fix the checkpatch.pl issues about: CHECK: spaces preferred around that '<<' (ctx:VxV) Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index ab336ce329f2..a2bbba1bfc04 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -79,10 +79,10 @@ struct daqp_private { #define DAQP_AUX 15 #define DAQP_SCANLIST_DIFFERENTIAL 0x4000 -#define DAQP_SCANLIST_GAIN(x) ((x)<<12) -#define DAQP_SCANLIST_CHANNEL(x) ((x)<<8) +#define DAQP_SCANLIST_GAIN(x) ((x) << 12) +#define DAQP_SCANLIST_CHANNEL(x) ((x) << 8) #define DAQP_SCANLIST_START 0x0080 -#define DAQP_SCANLIST_EXT_GAIN(x) ((x)<<4) +#define DAQP_SCANLIST_EXT_GAIN(x) ((x) << 4) #define DAQP_SCANLIST_EXT_CHANNEL(x) (x) #define DAQP_CONTROL_PACER_100kHz 0xc0 From 075d58164e1271d9da3796fb883db9928b13f91b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:54 -0700 Subject: [PATCH 1501/2431] staging: comedi: quatech_daqp_cs: redefine pacer clock options For aesthetics, define a macro for the pacer clock options and rename the CamelCase. Remove the unnecessary local variables used to set the control register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index a2bbba1bfc04..0d814fff94ff 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -85,10 +85,11 @@ struct daqp_private { #define DAQP_SCANLIST_EXT_GAIN(x) ((x) << 4) #define DAQP_SCANLIST_EXT_CHANNEL(x) (x) -#define DAQP_CONTROL_PACER_100kHz 0xc0 -#define DAQP_CONTROL_PACER_1MHz 0x80 -#define DAQP_CONTROL_PACER_5MHz 0x40 -#define DAQP_CONTROL_PACER_EXTERNAL 0x00 +#define DAQP_CONTROL_PACER_CLK(x) (((x) & 0x3) << 6) +#define DAQP_CONTROL_PACER_CLK_EXT DAQP_CONTROL_PACER_CLK(0) +#define DAQP_CONTROL_PACER_CLK_5MHZ DAQP_CONTROL_PACER_CLK(1) +#define DAQP_CONTROL_PACER_CLK_1MHZ DAQP_CONTROL_PACER_CLK(2) +#define DAQP_CONTROL_PACER_CLK_100KHZ DAQP_CONTROL_PACER_CLK(3) #define DAQP_CONTORL_EXPANSION 0x20 #define DAQP_CONTROL_EOS_INT_ENABLE 0x10 #define DAQP_CONTROL_FIFO_INT_ENABLE 0x08 @@ -280,7 +281,6 @@ static int daqp_ai_insn_read(struct comedi_device *dev, { struct daqp_private *devpriv = dev->private; int i; - int v; int counter = 10000; if (devpriv->stop) @@ -302,11 +302,9 @@ static int daqp_ai_insn_read(struct comedi_device *dev, outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_COMMAND); /* Set trigger */ - - v = DAQP_CONTROL_TRIGGER_ONESHOT | DAQP_CONTROL_TRIGGER_INTERNAL - | DAQP_CONTROL_PACER_100kHz | DAQP_CONTROL_EOS_INT_ENABLE; - - outb(v, dev->iobase + DAQP_CONTROL); + outb(DAQP_CONTROL_TRIGGER_ONESHOT | DAQP_CONTROL_TRIGGER_INTERNAL | + DAQP_CONTROL_PACER_CLK_100KHZ | DAQP_CONTROL_EOS_INT_ENABLE, + dev->iobase + DAQP_CONTROL); /* Reset any pending interrupts (my card has a tendency to require * require multiple reads on the status register to achieve this) @@ -459,9 +457,7 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) int counter; int scanlist_start_on_every_entry; int threshold; - int i; - int v; if (devpriv->stop) return -EIO; @@ -607,11 +603,9 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) outb((DAQP_FIFO_SIZE - threshold) >> 8, dev->iobase + DAQP_FIFO); /* Set trigger */ - - v = DAQP_CONTROL_TRIGGER_CONTINUOUS | DAQP_CONTROL_TRIGGER_INTERNAL - | DAQP_CONTROL_PACER_5MHz | DAQP_CONTROL_FIFO_INT_ENABLE; - - outb(v, dev->iobase + DAQP_CONTROL); + outb(DAQP_CONTROL_TRIGGER_CONTINUOUS | DAQP_CONTROL_TRIGGER_INTERNAL | + DAQP_CONTROL_PACER_CLK_5MHZ | DAQP_CONTROL_FIFO_INT_ENABLE, + dev->iobase + DAQP_CONTROL); /* Reset any pending interrupts (my card has a tendency to require * require multiple reads on the status register to achieve this) From d9952688a33a79cf756de6a8392b9c1eec90cab1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:55 -0700 Subject: [PATCH 1502/2431] staging: comedi: quatech_daqp_cs: introduce daqp_clear_events() Introduce a helper function for the common code used to clear any pending interrupts. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 0d814fff94ff..2f353050e9e6 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -154,6 +154,23 @@ static const struct comedi_lrange range_daqp_ai = { } }; +static int daqp_clear_events(struct comedi_device *dev, int loops) +{ + unsigned int status; + + /* + * Reset any pending interrupts (my card has a tendency to require + * require multiple reads on the status register to achieve this). + */ + while (--loops) { + status = inb(dev->iobase + DAQP_STATUS); + if ((status & DAQP_STATUS_EVENTS) == 0) + return 0; + } + dev_err(dev->class_dev, "couldn't clear events in status register\n"); + return -EBUSY; +} + /* Cancel a running acquisition */ static int daqp_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) @@ -280,8 +297,8 @@ static int daqp_ai_insn_read(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { struct daqp_private *devpriv = dev->private; + int ret; int i; - int counter = 10000; if (devpriv->stop) return -EIO; @@ -306,18 +323,9 @@ static int daqp_ai_insn_read(struct comedi_device *dev, DAQP_CONTROL_PACER_CLK_100KHZ | DAQP_CONTROL_EOS_INT_ENABLE, dev->iobase + DAQP_CONTROL); - /* Reset any pending interrupts (my card has a tendency to require - * require multiple reads on the status register to achieve this) - */ - - while (--counter - && (inb(dev->iobase + DAQP_STATUS) & DAQP_STATUS_EVENTS)) - ; - if (!counter) { - dev_err(dev->class_dev, - "couldn't clear interrupts in status register\n"); - return -1; - } + ret = daqp_clear_events(dev, 10000); + if (ret) + return ret; init_completion(&devpriv->eos); devpriv->interrupt_mode = semaphore; @@ -457,6 +465,7 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) int counter; int scanlist_start_on_every_entry; int threshold; + int ret; int i; if (devpriv->stop) @@ -607,18 +616,9 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) DAQP_CONTROL_PACER_CLK_5MHZ | DAQP_CONTROL_FIFO_INT_ENABLE, dev->iobase + DAQP_CONTROL); - /* Reset any pending interrupts (my card has a tendency to require - * require multiple reads on the status register to achieve this) - */ - counter = 100; - while (--counter - && (inb(dev->iobase + DAQP_STATUS) & DAQP_STATUS_EVENTS)) - ; - if (!counter) { - dev_err(dev->class_dev, - "couldn't clear interrupts in status register\n"); - return -1; - } + ret = daqp_clear_events(dev, 100); + if (ret) + return ret; devpriv->interrupt_mode = buffer; From ed811a328a161794e1e2dda0a75c6925cfd6ddcd Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:56 -0700 Subject: [PATCH 1503/2431] staging: comedi: quatech_daqp_cs: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 84 +++++++++---------- 1 file changed, 38 insertions(+), 46 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 2f353050e9e6..a027d20b9763 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -1,51 +1,43 @@ -/*====================================================================== - - comedi/drivers/quatech_daqp_cs.c - - Quatech DAQP PCMCIA data capture cards COMEDI client driver - Copyright (C) 2000, 2003 Brent Baccala - The DAQP interface code in this file is released into the public domain. - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 1998 David A. Schleef - http://www.comedi.org/ - - quatech_daqp_cs.c 1.10 - - Documentation for the DAQP PCMCIA cards can be found on Quatech's site: - - ftp://ftp.quatech.com/Manuals/daqp-208.pdf - - This manual is for both the DAQP-208 and the DAQP-308. - - What works: - - - A/D conversion - - 8 channels - - 4 gain ranges - - ground ref or differential - - single-shot and timed both supported - - D/A conversion, single-shot - - digital I/O - - What doesn't: - - - any kind of triggering - external or D/A channel 1 - - the card's optional expansion board - - the card's timer (for anything other than A/D conversion) - - D/A update modes other than immediate (i.e, timed) - - fancier timing modes - - setting card's FIFO buffer thresholds to anything but default - -======================================================================*/ +/* + * quatech_daqp_cs.c + * Quatech DAQP PCMCIA data capture cards COMEDI client driver + * Copyright (C) 2000, 2003 Brent Baccala + * The DAQP interface code in this file is released into the public domain. + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 1998 David A. Schleef + * http://www.comedi.org/ + * + * Documentation for the DAQP PCMCIA cards can be found on Quatech's site: + * ftp://ftp.quatech.com/Manuals/daqp-208.pdf + * + * This manual is for both the DAQP-208 and the DAQP-308. + * + * What works: + * - A/D conversion + * - 8 channels + * - 4 gain ranges + * - ground ref or differential + * - single-shot and timed both supported + * - D/A conversion, single-shot + * - digital I/O + * + * What doesn't: + * - any kind of triggering - external or D/A channel 1 + * - the card's optional expansion board + * - the card's timer (for anything other than A/D conversion) + * - D/A update modes other than immediate (i.e, timed) + * - fancier timing modes + * - setting card's FIFO buffer thresholds to anything but default + */ /* -Driver: quatech_daqp_cs -Description: Quatech DAQP PCMCIA data capture cards -Author: Brent Baccala -Status: works -Devices: [Quatech] DAQP-208 (daqp), DAQP-308 -*/ + * Driver: quatech_daqp_cs + * Description: Quatech DAQP PCMCIA data capture cards + * Devices: [Quatech] DAQP-208 (daqp), DAQP-308 + * Author: Brent Baccala + * Status: works + */ #include #include From bd9d00f105bf0fb26a85f5ad3b75d0b161304478 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:57 -0700 Subject: [PATCH 1504/2431] staging: comedi: quatech_daqp_cs: rename register offsets For aesthetics, rename the register map defines and convert the values to hex. Also, move the private data definition and DAQP_FIFO_SIZE define after the register definitions. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 123 ++++++++++-------- 1 file changed, 66 insertions(+), 57 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index a027d20b9763..29eb5bcaa9f5 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -45,30 +45,28 @@ #include "../comedi_pcmcia.h" -struct daqp_private { - int stop; - - enum { semaphore, buffer } interrupt_mode; - - struct completion eos; -}; - -/* The DAQP communicates with the system through a 16 byte I/O window. */ - -#define DAQP_FIFO_SIZE 4096 - -#define DAQP_FIFO 0 -#define DAQP_SCANLIST 1 -#define DAQP_CONTROL 2 -#define DAQP_STATUS 2 -#define DAQP_DIGITAL_IO 3 -#define DAQP_PACER_LOW 4 -#define DAQP_PACER_MID 5 -#define DAQP_PACER_HIGH 6 -#define DAQP_COMMAND 7 -#define DAQP_DA 8 -#define DAQP_TIMER 10 -#define DAQP_AUX 15 +/* + * Register I/O map + * + * The D/A and timer registers can be accessed with 16-bit or 8-bit I/O + * instructions. All other registers can only use 8-bit instructions. + * + * The FIFO and scanlist registers require two 8-bit instructions to + * access the 16-bit data. Data is transferred LSB then MSB. + */ +#define DAQP_AI_FIFO_REG 0x00 +#define DAQP_SCANLIST_REG 0x01 +#define DAQP_CTRL_REG 0x02 +#define DAQP_STATUS_REG 0x02 +#define DAQP_DI_REG 0x03 +#define DAQP_DO_REG 0x03 +#define DAQP_PACER_LOW_REG 0x04 +#define DAQP_PACER_MID_REG 0x05 +#define DAQP_PACER_HIGH_REG 0x06 +#define DAQP_CMD_REG 0x07 +#define DAQP_AO_REG 0x08 +#define DAQP_TIMER_REG 0x0a +#define DAQP_AUX_REG 0x0f #define DAQP_SCANLIST_DIFFERENTIAL 0x4000 #define DAQP_SCANLIST_GAIN(x) ((x) << 12) @@ -137,6 +135,16 @@ struct daqp_private { #define DAQP_AUX_FIFO_NEARFULL 0x02 #define DAQP_AUX_FIFO_EMPTY 0x01 +#define DAQP_FIFO_SIZE 4096 + +struct daqp_private { + int stop; + + enum { semaphore, buffer } interrupt_mode; + + struct completion eos; +}; + static const struct comedi_lrange range_daqp_ai = { 4, { BIP_RANGE(10), @@ -155,7 +163,7 @@ static int daqp_clear_events(struct comedi_device *dev, int loops) * require multiple reads on the status register to achieve this). */ while (--loops) { - status = inb(dev->iobase + DAQP_STATUS); + status = inb(dev->iobase + DAQP_STATUS_REG); if ((status & DAQP_STATUS_EVENTS) == 0) return 0; } @@ -172,10 +180,10 @@ static int daqp_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) if (devpriv->stop) return -EIO; - outb(DAQP_COMMAND_STOP, dev->iobase + DAQP_COMMAND); + outb(DAQP_COMMAND_STOP, dev->iobase + DAQP_CMD_REG); /* flush any linguring data in FIFO - superfluous here */ - /* outb(DAQP_COMMAND_RSTF, dev->iobase+DAQP_COMMAND); */ + /* outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_CMD_REG); */ devpriv->interrupt_mode = semaphore; @@ -191,8 +199,8 @@ static unsigned int daqp_ai_get_sample(struct comedi_device *dev, * Get a two's complement sample from the FIFO and * return the munged offset binary value. */ - val = inb(dev->iobase + DAQP_FIFO); - val |= inb(dev->iobase + DAQP_FIFO) << 8; + val = inb(dev->iobase + DAQP_AI_FIFO_REG); + val |= inb(dev->iobase + DAQP_AI_FIFO_REG) << 8; return comedi_offset_munge(s, val); } @@ -223,7 +231,7 @@ static enum irqreturn daqp_interrupt(int irq, void *dev_id) break; case buffer: - while (!((status = inb(dev->iobase + DAQP_STATUS)) + while (!((status = inb(dev->iobase + DAQP_STATUS_REG)) & DAQP_STATUS_FIFO_EMPTY)) { unsigned short data; @@ -278,8 +286,8 @@ static void daqp_ai_set_one_scanlist_entry(struct comedi_device *dev, if (start) val |= DAQP_SCANLIST_START; - outb(val & 0xff, dev->iobase + DAQP_SCANLIST); - outb((val >> 8) & 0xff, dev->iobase + DAQP_SCANLIST); + outb(val & 0xff, dev->iobase + DAQP_SCANLIST_REG); + outb((val >> 8) & 0xff, dev->iobase + DAQP_SCANLIST_REG); } /* One-shot analog data acquisition routine */ @@ -298,22 +306,22 @@ static int daqp_ai_insn_read(struct comedi_device *dev, /* Stop any running conversion */ daqp_ai_cancel(dev, s); - outb(0, dev->iobase + DAQP_AUX); + outb(0, dev->iobase + DAQP_AUX_REG); /* Reset scan list queue */ - outb(DAQP_COMMAND_RSTQ, dev->iobase + DAQP_COMMAND); + outb(DAQP_COMMAND_RSTQ, dev->iobase + DAQP_CMD_REG); /* Program one scan list entry */ daqp_ai_set_one_scanlist_entry(dev, insn->chanspec, 1); /* Reset data FIFO (see page 28 of DAQP User's Manual) */ - outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_COMMAND); + outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_CMD_REG); /* Set trigger */ outb(DAQP_CONTROL_TRIGGER_ONESHOT | DAQP_CONTROL_TRIGGER_INTERNAL | DAQP_CONTROL_PACER_CLK_100KHZ | DAQP_CONTROL_EOS_INT_ENABLE, - dev->iobase + DAQP_CONTROL); + dev->iobase + DAQP_CTRL_REG); ret = daqp_clear_events(dev, 10000); if (ret) @@ -325,7 +333,7 @@ static int daqp_ai_insn_read(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { /* Start conversion */ outb(DAQP_COMMAND_ARM | DAQP_COMMAND_FIFO_DATA, - dev->iobase + DAQP_COMMAND); + dev->iobase + DAQP_CMD_REG); /* Wait for interrupt service routine to unblock completion */ /* Maybe could use a timeout here, but it's interruptible */ @@ -466,10 +474,10 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) /* Stop any running conversion */ daqp_ai_cancel(dev, s); - outb(0, dev->iobase + DAQP_AUX); + outb(0, dev->iobase + DAQP_AUX_REG); /* Reset scan list queue */ - outb(DAQP_COMMAND_RSTQ, dev->iobase + DAQP_COMMAND); + outb(DAQP_COMMAND_RSTQ, dev->iobase + DAQP_CMD_REG); /* Program pacer clock * @@ -486,15 +494,15 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) if (cmd->convert_src == TRIG_TIMER) { counter = daqp_ns_to_timer(&cmd->convert_arg, cmd->flags); - outb(counter & 0xff, dev->iobase + DAQP_PACER_LOW); - outb((counter >> 8) & 0xff, dev->iobase + DAQP_PACER_MID); - outb((counter >> 16) & 0xff, dev->iobase + DAQP_PACER_HIGH); + outb(counter & 0xff, dev->iobase + DAQP_PACER_LOW_REG); + outb((counter >> 8) & 0xff, dev->iobase + DAQP_PACER_MID_REG); + outb((counter >> 16) & 0xff, dev->iobase + DAQP_PACER_HIGH_REG); scanlist_start_on_every_entry = 1; } else { counter = daqp_ns_to_timer(&cmd->scan_begin_arg, cmd->flags); - outb(counter & 0xff, dev->iobase + DAQP_PACER_LOW); - outb((counter >> 8) & 0xff, dev->iobase + DAQP_PACER_MID); - outb((counter >> 16) & 0xff, dev->iobase + DAQP_PACER_HIGH); + outb(counter & 0xff, dev->iobase + DAQP_PACER_LOW_REG); + outb((counter >> 8) & 0xff, dev->iobase + DAQP_PACER_MID_REG); + outb((counter >> 16) & 0xff, dev->iobase + DAQP_PACER_HIGH_REG); scanlist_start_on_every_entry = 0; } @@ -587,7 +595,7 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) /* Reset data FIFO (see page 28 of DAQP User's Manual) */ - outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_COMMAND); + outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_CMD_REG); /* Set FIFO threshold. First two bytes are near-empty * threshold, which is unused; next two bytes are near-full @@ -597,16 +605,17 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) * when the interrupt is to happen. */ - outb(0x00, dev->iobase + DAQP_FIFO); - outb(0x00, dev->iobase + DAQP_FIFO); + outb(0x00, dev->iobase + DAQP_AI_FIFO_REG); + outb(0x00, dev->iobase + DAQP_AI_FIFO_REG); - outb((DAQP_FIFO_SIZE - threshold) & 0xff, dev->iobase + DAQP_FIFO); - outb((DAQP_FIFO_SIZE - threshold) >> 8, dev->iobase + DAQP_FIFO); + outb((DAQP_FIFO_SIZE - threshold) & 0xff, + dev->iobase + DAQP_AI_FIFO_REG); + outb((DAQP_FIFO_SIZE - threshold) >> 8, dev->iobase + DAQP_AI_FIFO_REG); /* Set trigger */ outb(DAQP_CONTROL_TRIGGER_CONTINUOUS | DAQP_CONTROL_TRIGGER_INTERNAL | DAQP_CONTROL_PACER_CLK_5MHZ | DAQP_CONTROL_FIFO_INT_ENABLE, - dev->iobase + DAQP_CONTROL); + dev->iobase + DAQP_CTRL_REG); ret = daqp_clear_events(dev, 100); if (ret) @@ -616,7 +625,7 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) /* Start conversion */ outb(DAQP_COMMAND_ARM | DAQP_COMMAND_FIFO_DATA, - dev->iobase + DAQP_COMMAND); + dev->iobase + DAQP_CMD_REG); return 0; } @@ -628,7 +637,7 @@ static int daqp_ao_empty(struct comedi_device *dev, { unsigned int status; - status = inb(dev->iobase + DAQP_AUX); + status = inb(dev->iobase + DAQP_AUX_REG); if ((status & DAQP_AUX_DA_BUFFER) == 0) return 0; return -EBUSY; @@ -647,7 +656,7 @@ static int daqp_ao_insn_write(struct comedi_device *dev, return -EIO; /* Make sure D/A update mode is direct update */ - outb(0, dev->iobase + DAQP_AUX); + outb(0, dev->iobase + DAQP_AUX_REG); for (i = 0; i > insn->n; i++) { unsigned val = data[i]; @@ -660,7 +669,7 @@ static int daqp_ao_insn_write(struct comedi_device *dev, /* write the two's complement value to the channel */ outw((chan << 12) | comedi_offset_munge(s, val), - dev->iobase + DAQP_DA); + dev->iobase + DAQP_AO_REG); s->readback[chan] = val; } @@ -678,7 +687,7 @@ static int daqp_di_insn_bits(struct comedi_device *dev, if (devpriv->stop) return -EIO; - data[0] = inb(dev->iobase + DAQP_DIGITAL_IO); + data[0] = inb(dev->iobase + DAQP_DI_REG); return insn->n; } @@ -694,7 +703,7 @@ static int daqp_do_insn_bits(struct comedi_device *dev, return -EIO; if (comedi_dio_update_state(s, data)) - outb(s->state, dev->iobase + DAQP_DIGITAL_IO); + outb(s->state, dev->iobase + DAQP_DO_REG); data[1] = s->state; From 77e546de4cc688b8045686b079e438dafbf9812c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:58 -0700 Subject: [PATCH 1505/2431] staging: comedi: quatech_daqp_cs: tidy up scanlist register bits For aesthetics, move the bit defines for this register and use the BIT macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 29eb5bcaa9f5..8d8ffd371a08 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -55,7 +55,15 @@ * access the 16-bit data. Data is transferred LSB then MSB. */ #define DAQP_AI_FIFO_REG 0x00 + #define DAQP_SCANLIST_REG 0x01 +#define DAQP_SCANLIST_DIFFERENTIAL BIT(14) +#define DAQP_SCANLIST_GAIN(x) (((x) & 0x3) << 12) +#define DAQP_SCANLIST_CHANNEL(x) (((x) & 0xf) << 8) +#define DAQP_SCANLIST_START BIT(7) +#define DAQP_SCANLIST_EXT_GAIN(x) (((x) & 0x3) << 4) +#define DAQP_SCANLIST_EXT_CHANNEL(x) (((x) & 0xf) << 0) + #define DAQP_CTRL_REG 0x02 #define DAQP_STATUS_REG 0x02 #define DAQP_DI_REG 0x03 @@ -68,13 +76,6 @@ #define DAQP_TIMER_REG 0x0a #define DAQP_AUX_REG 0x0f -#define DAQP_SCANLIST_DIFFERENTIAL 0x4000 -#define DAQP_SCANLIST_GAIN(x) ((x) << 12) -#define DAQP_SCANLIST_CHANNEL(x) ((x) << 8) -#define DAQP_SCANLIST_START 0x0080 -#define DAQP_SCANLIST_EXT_GAIN(x) ((x) << 4) -#define DAQP_SCANLIST_EXT_CHANNEL(x) (x) - #define DAQP_CONTROL_PACER_CLK(x) (((x) & 0x3) << 6) #define DAQP_CONTROL_PACER_CLK_EXT DAQP_CONTROL_PACER_CLK(0) #define DAQP_CONTROL_PACER_CLK_5MHZ DAQP_CONTROL_PACER_CLK(1) From b0f9b0ad0fe7146fd5b23ad592ffafc541be286d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:59 -0700 Subject: [PATCH 1506/2431] staging: comedi: quatech_daqp_cs: tidy up control register bits For aesthetics, move the bit defines for this register and use the BIT macro to define the bits. Rename the defines to match the register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 8d8ffd371a08..825661559cbc 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -65,6 +65,18 @@ #define DAQP_SCANLIST_EXT_CHANNEL(x) (((x) & 0xf) << 0) #define DAQP_CTRL_REG 0x02 +#define DAQP_CTRL_PACER_CLK(x) (((x) & 0x3) << 6) +#define DAQP_CTRL_PACER_CLK_EXT DAQP_CTRL_PACER_CLK(0) +#define DAQP_CTRL_PACER_CLK_5MHZ DAQP_CTRL_PACER_CLK(1) +#define DAQP_CTRL_PACER_CLK_1MHZ DAQP_CTRL_PACER_CLK(2) +#define DAQP_CTRL_PACER_CLK_100KHZ DAQP_CTRL_PACER_CLK(3) +#define DAQP_CTRL_EXPANSION BIT(5) +#define DAQP_CTRL_EOS_INT_ENA BIT(4) +#define DAQP_CTRL_FIFO_INT_ENA BIT(3) +#define DAQP_CTRL_TRIG_MODE BIT(2) /* 0=one-shot; 1=continuous */ +#define DAQP_CTRL_TRIG_SRC BIT(1) /* 0=internal; 1=external */ +#define DAQP_CTRL_TRIG_EDGE BIT(0) /* 0=rising; 1=falling */ + #define DAQP_STATUS_REG 0x02 #define DAQP_DI_REG 0x03 #define DAQP_DO_REG 0x03 @@ -76,21 +88,6 @@ #define DAQP_TIMER_REG 0x0a #define DAQP_AUX_REG 0x0f -#define DAQP_CONTROL_PACER_CLK(x) (((x) & 0x3) << 6) -#define DAQP_CONTROL_PACER_CLK_EXT DAQP_CONTROL_PACER_CLK(0) -#define DAQP_CONTROL_PACER_CLK_5MHZ DAQP_CONTROL_PACER_CLK(1) -#define DAQP_CONTROL_PACER_CLK_1MHZ DAQP_CONTROL_PACER_CLK(2) -#define DAQP_CONTROL_PACER_CLK_100KHZ DAQP_CONTROL_PACER_CLK(3) -#define DAQP_CONTORL_EXPANSION 0x20 -#define DAQP_CONTROL_EOS_INT_ENABLE 0x10 -#define DAQP_CONTROL_FIFO_INT_ENABLE 0x08 -#define DAQP_CONTROL_TRIGGER_ONESHOT 0x00 -#define DAQP_CONTROL_TRIGGER_CONTINUOUS 0x04 -#define DAQP_CONTROL_TRIGGER_INTERNAL 0x00 -#define DAQP_CONTROL_TRIGGER_EXTERNAL 0x02 -#define DAQP_CONTROL_TRIGGER_RISING 0x00 -#define DAQP_CONTROL_TRIGGER_FALLING 0x01 - #define DAQP_STATUS_IDLE 0x80 #define DAQP_STATUS_RUNNING 0x40 #define DAQP_STATUS_EVENTS 0x38 @@ -319,9 +316,8 @@ static int daqp_ai_insn_read(struct comedi_device *dev, outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_CMD_REG); - /* Set trigger */ - outb(DAQP_CONTROL_TRIGGER_ONESHOT | DAQP_CONTROL_TRIGGER_INTERNAL | - DAQP_CONTROL_PACER_CLK_100KHZ | DAQP_CONTROL_EOS_INT_ENABLE, + /* Set trigger - one-shot, internal */ + outb(DAQP_CTRL_PACER_CLK_100KHZ | DAQP_CTRL_EOS_INT_ENA, dev->iobase + DAQP_CTRL_REG); ret = daqp_clear_events(dev, 10000); @@ -613,10 +609,9 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) dev->iobase + DAQP_AI_FIFO_REG); outb((DAQP_FIFO_SIZE - threshold) >> 8, dev->iobase + DAQP_AI_FIFO_REG); - /* Set trigger */ - outb(DAQP_CONTROL_TRIGGER_CONTINUOUS | DAQP_CONTROL_TRIGGER_INTERNAL | - DAQP_CONTROL_PACER_CLK_5MHZ | DAQP_CONTROL_FIFO_INT_ENABLE, - dev->iobase + DAQP_CTRL_REG); + /* Set trigger - continuous, internal */ + outb(DAQP_CTRL_TRIG_MODE | DAQP_CTRL_PACER_CLK_5MHZ | + DAQP_CTRL_FIFO_INT_ENA, dev->iobase + DAQP_CTRL_REG); ret = daqp_clear_events(dev, 100); if (ret) From cd644206e2db1d0249534e2c4e86cbfada4f5bd2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:00 -0700 Subject: [PATCH 1507/2431] staging: comedi: quatech_daqp_cs: tidy up status register bits For aesthetics, move the bit defines for this register and use the BIT macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 825661559cbc..29df086aa37e 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -78,6 +78,19 @@ #define DAQP_CTRL_TRIG_EDGE BIT(0) /* 0=rising; 1=falling */ #define DAQP_STATUS_REG 0x02 +#define DAQP_STATUS_IDLE BIT(7) +#define DAQP_STATUS_RUNNING BIT(6) +#define DAQP_STATUS_DATA_LOST BIT(5) +#define DAQP_STATUS_END_OF_SCAN BIT(4) +#define DAQP_STATUS_FIFO_THRESHOLD BIT(3) +#define DAQP_STATUS_FIFO_FULL BIT(2) +#define DAQP_STATUS_FIFO_NEARFULL BIT(1) +#define DAQP_STATUS_FIFO_EMPTY BIT(0) +/* these bits clear when the status register is read */ +#define DAQP_STATUS_EVENTS (DAQP_STATUS_DATA_LOST | \ + DAQP_STATUS_END_OF_SCAN | \ + DAQP_STATUS_FIFO_THRESHOLD) + #define DAQP_DI_REG 0x03 #define DAQP_DO_REG 0x03 #define DAQP_PACER_LOW_REG 0x04 @@ -88,16 +101,6 @@ #define DAQP_TIMER_REG 0x0a #define DAQP_AUX_REG 0x0f -#define DAQP_STATUS_IDLE 0x80 -#define DAQP_STATUS_RUNNING 0x40 -#define DAQP_STATUS_EVENTS 0x38 -#define DAQP_STATUS_DATA_LOST 0x20 -#define DAQP_STATUS_END_OF_SCAN 0x10 -#define DAQP_STATUS_FIFO_THRESHOLD 0x08 -#define DAQP_STATUS_FIFO_FULL 0x04 -#define DAQP_STATUS_FIFO_NEARFULL 0x02 -#define DAQP_STATUS_FIFO_EMPTY 0x01 - #define DAQP_COMMAND_ARM 0x80 #define DAQP_COMMAND_RSTF 0x40 #define DAQP_COMMAND_RSTQ 0x20 From f765b2f4fb45a9625bce619c6652b9f48510cef1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:01 -0700 Subject: [PATCH 1508/2431] staging: comedi: quatech_daqp_cs: tidy up command register bits For aesthetics, move the bit defines for this register and use the BIT macro to define the bits. Define a macro for the scanrate bits and use it to remove the CamelCase. Rename the defines to match the register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 29df086aa37e..b7a20f7e9f35 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -93,25 +93,28 @@ #define DAQP_DI_REG 0x03 #define DAQP_DO_REG 0x03 + #define DAQP_PACER_LOW_REG 0x04 #define DAQP_PACER_MID_REG 0x05 #define DAQP_PACER_HIGH_REG 0x06 + #define DAQP_CMD_REG 0x07 +/* the monostable bits are self-clearing after the function is complete */ +#define DAQP_CMD_ARM BIT(7) /* monostable */ +#define DAQP_CMD_RSTF BIT(6) /* monostable */ +#define DAQP_CMD_RSTQ BIT(5) /* monostable */ +#define DAQP_CMD_STOP BIT(4) /* monostable */ +#define DAQP_CMD_LATCH BIT(3) /* monostable */ +#define DAQP_CMD_SCANRATE(x) (((x) & 0x3) << 1) +#define DAQP_CMD_SCANRATE_100KHZ DAQP_CMD_SCANRATE(0) +#define DAQP_CMD_SCANRATE_50KHZ DAQP_CMD_SCANRATE(1) +#define DAQP_CMD_SCANRATE_25KHZ DAQP_CMD_SCANRATE(2) +#define DAQP_CMD_FIFO_DATA BIT(0) + #define DAQP_AO_REG 0x08 #define DAQP_TIMER_REG 0x0a #define DAQP_AUX_REG 0x0f -#define DAQP_COMMAND_ARM 0x80 -#define DAQP_COMMAND_RSTF 0x40 -#define DAQP_COMMAND_RSTQ 0x20 -#define DAQP_COMMAND_STOP 0x10 -#define DAQP_COMMAND_LATCH 0x08 -#define DAQP_COMMAND_100kHz 0x00 -#define DAQP_COMMAND_50kHz 0x02 -#define DAQP_COMMAND_25kHz 0x04 -#define DAQP_COMMAND_FIFO_DATA 0x01 -#define DAQP_COMMAND_FIFO_PROGRAM 0x00 - #define DAQP_AUX_TRIGGER_TTL 0x00 #define DAQP_AUX_TRIGGER_ANALOG 0x80 #define DAQP_AUX_TRIGGER_PRETRIGGER 0x40 @@ -181,10 +184,10 @@ static int daqp_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) if (devpriv->stop) return -EIO; - outb(DAQP_COMMAND_STOP, dev->iobase + DAQP_CMD_REG); + outb(DAQP_CMD_STOP, dev->iobase + DAQP_CMD_REG); /* flush any linguring data in FIFO - superfluous here */ - /* outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_CMD_REG); */ + /* outb(DAQP_CMD_RSTF, dev->iobase + DAQP_CMD_REG); */ devpriv->interrupt_mode = semaphore; @@ -310,14 +313,14 @@ static int daqp_ai_insn_read(struct comedi_device *dev, outb(0, dev->iobase + DAQP_AUX_REG); /* Reset scan list queue */ - outb(DAQP_COMMAND_RSTQ, dev->iobase + DAQP_CMD_REG); + outb(DAQP_CMD_RSTQ, dev->iobase + DAQP_CMD_REG); /* Program one scan list entry */ daqp_ai_set_one_scanlist_entry(dev, insn->chanspec, 1); /* Reset data FIFO (see page 28 of DAQP User's Manual) */ - outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_CMD_REG); + outb(DAQP_CMD_RSTF, dev->iobase + DAQP_CMD_REG); /* Set trigger - one-shot, internal */ outb(DAQP_CTRL_PACER_CLK_100KHZ | DAQP_CTRL_EOS_INT_ENA, @@ -332,7 +335,7 @@ static int daqp_ai_insn_read(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { /* Start conversion */ - outb(DAQP_COMMAND_ARM | DAQP_COMMAND_FIFO_DATA, + outb(DAQP_CMD_ARM | DAQP_CMD_FIFO_DATA, dev->iobase + DAQP_CMD_REG); /* Wait for interrupt service routine to unblock completion */ @@ -477,7 +480,7 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) outb(0, dev->iobase + DAQP_AUX_REG); /* Reset scan list queue */ - outb(DAQP_COMMAND_RSTQ, dev->iobase + DAQP_CMD_REG); + outb(DAQP_CMD_RSTQ, dev->iobase + DAQP_CMD_REG); /* Program pacer clock * @@ -595,7 +598,7 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) /* Reset data FIFO (see page 28 of DAQP User's Manual) */ - outb(DAQP_COMMAND_RSTF, dev->iobase + DAQP_CMD_REG); + outb(DAQP_CMD_RSTF, dev->iobase + DAQP_CMD_REG); /* Set FIFO threshold. First two bytes are near-empty * threshold, which is unused; next two bytes are near-full @@ -623,8 +626,7 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) devpriv->interrupt_mode = buffer; /* Start conversion */ - outb(DAQP_COMMAND_ARM | DAQP_COMMAND_FIFO_DATA, - dev->iobase + DAQP_CMD_REG); + outb(DAQP_CMD_ARM | DAQP_CMD_FIFO_DATA, dev->iobase + DAQP_CMD_REG); return 0; } From c06c3c953a9b89c1ffe70ba57762fbaafdcd6613 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:02 -0700 Subject: [PATCH 1509/2431] staging: comedi: quatech_daqp_cs: document the 16-bit registers All the registers are 8-bit except for the analog output and timer registers. For clarity, add some comments. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index b7a20f7e9f35..c575104528cf 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -111,8 +111,10 @@ #define DAQP_CMD_SCANRATE_25KHZ DAQP_CMD_SCANRATE(2) #define DAQP_CMD_FIFO_DATA BIT(0) -#define DAQP_AO_REG 0x08 -#define DAQP_TIMER_REG 0x0a +#define DAQP_AO_REG 0x08 /* and 0x09 (16-bit) */ + +#define DAQP_TIMER_REG 0x0a /* and 0x0b (16-bit) */ + #define DAQP_AUX_REG 0x0f #define DAQP_AUX_TRIGGER_TTL 0x00 From 3c56cdc5cc16dabd6ed0867977a6e374a3cc0da7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:03 -0700 Subject: [PATCH 1510/2431] staging: comedi: quatech_daqp_cs: tidy up aux register bitss For aesthetics, and use the BIT macro to define the bits and define some macros for the timer mode and d/a update bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index c575104528cf..17b614c1f831 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -116,30 +116,30 @@ #define DAQP_TIMER_REG 0x0a /* and 0x0b (16-bit) */ #define DAQP_AUX_REG 0x0f - -#define DAQP_AUX_TRIGGER_TTL 0x00 -#define DAQP_AUX_TRIGGER_ANALOG 0x80 -#define DAQP_AUX_TRIGGER_PRETRIGGER 0x40 -#define DAQP_AUX_TIMER_INT_ENABLE 0x20 -#define DAQP_AUX_TIMER_RELOAD 0x00 -#define DAQP_AUX_TIMER_PAUSE 0x08 -#define DAQP_AUX_TIMER_GO 0x10 -#define DAQP_AUX_TIMER_GO_EXTERNAL 0x18 -#define DAQP_AUX_TIMER_EXTERNAL_SRC 0x04 -#define DAQP_AUX_TIMER_INTERNAL_SRC 0x00 -#define DAQP_AUX_DA_DIRECT 0x00 -#define DAQP_AUX_DA_OVERFLOW 0x01 -#define DAQP_AUX_DA_EXTERNAL 0x02 -#define DAQP_AUX_DA_PACER 0x03 - -#define DAQP_AUX_RUNNING 0x80 -#define DAQP_AUX_TRIGGERED 0x40 -#define DAQP_AUX_DA_BUFFER 0x20 -#define DAQP_AUX_TIMER_OVERFLOW 0x10 -#define DAQP_AUX_CONVERSION 0x08 -#define DAQP_AUX_DATA_LOST 0x04 -#define DAQP_AUX_FIFO_NEARFULL 0x02 -#define DAQP_AUX_FIFO_EMPTY 0x01 +/* Auxiliary Control register bits (write) */ +#define DAQP_AUX_EXT_ANALOG_TRIG BIT(7) +#define DAQP_AUX_PRETRIG BIT(6) +#define DAQP_AUX_TIMER_INT_ENA BIT(5) +#define DAQP_AUX_TIMER_MODE(x) (((x) & 0x3) << 3) +#define DAQP_AUX_TIMER_MODE_RELOAD DAQP_AUX_TIMER_MODE(0) +#define DAQP_AUX_TIMER_MODE_PAUSE DAQP_AUX_TIMER_MODE(1) +#define DAQP_AUX_TIMER_MODE_GO DAQP_AUX_TIMER_MODE(2) +#define DAQP_AUX_TIMER_MODE_EXT DAQP_AUX_TIMER_MODE(3) +#define DAQP_AUX_TIMER_CLK_SRC_EXT BIT(2) +#define DAQP_AUX_DA_UPDATE(x) (((x) & 0x3) << 0) +#define DAQP_AUX_DA_UPDATE_DIRECT DAQP_AUX_DA_UPDATE(0) +#define DAQP_AUX_DA_UPDATE_OVERFLOW DAQP_AUX_DA_UPDATE(1) +#define DAQP_AUX_DA_UPDATE_EXTERNAL DAQP_AUX_DA_UPDATE(2) +#define DAQP_AUX_DA_UPDATE_PACER DAQP_AUX_DA_UPDATE(3) +/* Auxiliary Status register bits (read) */ +#define DAQP_AUX_RUNNING BIT(7) +#define DAQP_AUX_TRIGGERED BIT(6) +#define DAQP_AUX_DA_BUFFER BIT(5) +#define DAQP_AUX_TIMER_OVERFLOW BIT(4) +#define DAQP_AUX_CONVERSION BIT(3) +#define DAQP_AUX_DATA_LOST BIT(2) +#define DAQP_AUX_FIFO_NEARFULL BIT(1) +#define DAQP_AUX_FIFO_EMPTY BIT(0) #define DAQP_FIFO_SIZE 4096 From 16d6b58753ccc34e6d915118984b60457d2c3327 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:04 -0700 Subject: [PATCH 1511/2431] staging: comedi: quatech_daqp_cs: don't use interrupts for ai (*insn_read) The comedi (*insn_read) functions are supposed to do simple one-shot reading of an analog input channel. Currently this driver enables interrupts and uses wait_for_completion_interruptible() to allow the interrupt routine to let the analog input (*insn_read) know that the end-of-conversion has occured. Simplify the function by using the comedi_timeout() helper to check the aux status register to see when the conversion is finished. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 57 +++++++++---------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 17b614c1f831..82378263a317 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -40,8 +40,6 @@ */ #include -#include -#include #include "../comedi_pcmcia.h" @@ -147,8 +145,6 @@ struct daqp_private { int stop; enum { semaphore, buffer } interrupt_mode; - - struct completion eos; }; static const struct comedi_lrange range_daqp_ai = { @@ -210,15 +206,6 @@ static unsigned int daqp_ai_get_sample(struct comedi_device *dev, return comedi_offset_munge(s, val); } -/* Interrupt handler - * - * Operates in one of two modes. If devpriv->interrupt_mode is - * 'semaphore', just signal the devpriv->eos completion and return - * (one-shot mode). Otherwise (continuous mode), read data in from - * the card, transfer it to the buffer provided by the higher-level - * comedi kernel module, and signal various comedi callback routines, - * which run pretty quick. - */ static enum irqreturn daqp_interrupt(int irq, void *dev_id) { struct comedi_device *dev = dev_id; @@ -233,7 +220,6 @@ static enum irqreturn daqp_interrupt(int irq, void *dev_id) switch (devpriv->interrupt_mode) { case semaphore: - complete(&devpriv->eos); break; case buffer: @@ -296,14 +282,26 @@ static void daqp_ai_set_one_scanlist_entry(struct comedi_device *dev, outb((val >> 8) & 0xff, dev->iobase + DAQP_SCANLIST_REG); } -/* One-shot analog data acquisition routine */ +static int daqp_ai_eos(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned long context) +{ + unsigned int status; + + status = inb(dev->iobase + DAQP_AUX_REG); + if (status & DAQP_AUX_CONVERSION) + return 0; + return -EBUSY; +} static int daqp_ai_insn_read(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) + struct comedi_insn *insn, + unsigned int *data) { struct daqp_private *devpriv = dev->private; - int ret; + int ret = 0; int i; if (devpriv->stop) @@ -321,34 +319,35 @@ static int daqp_ai_insn_read(struct comedi_device *dev, daqp_ai_set_one_scanlist_entry(dev, insn->chanspec, 1); /* Reset data FIFO (see page 28 of DAQP User's Manual) */ - outb(DAQP_CMD_RSTF, dev->iobase + DAQP_CMD_REG); - /* Set trigger - one-shot, internal */ - outb(DAQP_CTRL_PACER_CLK_100KHZ | DAQP_CTRL_EOS_INT_ENA, - dev->iobase + DAQP_CTRL_REG); + /* Set trigger - one-shot, internal, no interrupts */ + outb(DAQP_CTRL_PACER_CLK_100KHZ, dev->iobase + DAQP_CTRL_REG); ret = daqp_clear_events(dev, 10000); if (ret) return ret; - init_completion(&devpriv->eos); - devpriv->interrupt_mode = semaphore; - for (i = 0; i < insn->n; i++) { /* Start conversion */ outb(DAQP_CMD_ARM | DAQP_CMD_FIFO_DATA, dev->iobase + DAQP_CMD_REG); - /* Wait for interrupt service routine to unblock completion */ - /* Maybe could use a timeout here, but it's interruptible */ - if (wait_for_completion_interruptible(&devpriv->eos)) - return -EINTR; + ret = comedi_timeout(dev, s, insn, daqp_ai_eos, 0); + if (ret) + break; + + /* clear the status event flags */ + inb(dev->iobase + DAQP_STATUS_REG); data[i] = daqp_ai_get_sample(dev, s); } - return insn->n; + /* stop any conversions and clear the status event flags */ + outb(DAQP_CMD_STOP, dev->iobase + DAQP_CMD_REG); + inb(dev->iobase + DAQP_STATUS_REG); + + return ret ? ret : insn->n; } /* This function converts ns nanoseconds to a counter value suitable From 7689f55b62836a5e5de2f9a5cd8d215071636013 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:05 -0700 Subject: [PATCH 1512/2431] staging: comedi: quatech_daqp_cs: only hook up cmd support if we have an IRQ Interrupts are only needed by this driver to support the analog input async commands. Don't hook up the command support if pcmcia_request_irq() fails instead of completely failing the (*auto_attach). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 82378263a317..bab3293a8705 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -732,25 +732,28 @@ static int daqp_auto_attach(struct comedi_device *dev, link->priv = dev; ret = pcmcia_request_irq(link, daqp_interrupt); - if (ret) - return ret; + if (ret == 0) + dev->irq = link->irq; ret = comedi_alloc_subdevices(dev, 4); if (ret) return ret; s = &dev->subdevices[0]; - dev->read_subdev = s; s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF | SDF_CMD_READ; + s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; s->n_chan = 8; - s->len_chanlist = 2048; s->maxdata = 0xffff; s->range_table = &range_daqp_ai; s->insn_read = daqp_ai_insn_read; - s->do_cmdtest = daqp_ai_cmdtest; - s->do_cmd = daqp_ai_cmd; - s->cancel = daqp_ai_cancel; + if (dev->irq) { + dev->read_subdev = s; + s->subdev_flags |= SDF_CMD_READ; + s->len_chanlist = 2048; + s->do_cmdtest = daqp_ai_cmdtest; + s->do_cmd = daqp_ai_cmd; + s->cancel = daqp_ai_cancel; + } s = &dev->subdevices[1]; s->type = COMEDI_SUBD_AO; From f676376d692d8e02603e2bf1d0b4e8ca1b56506d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:06 -0700 Subject: [PATCH 1513/2431] staging: comedi: quatech_daqp_cs: remove 'interrupt_mode' The interrupt handler is now only used for the ai async command. Remove the unnecessary 'interrupt_mode' from the private data and tidy up the interrupt handler. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 70 ++++++++----------- 1 file changed, 28 insertions(+), 42 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index bab3293a8705..7432e5761539 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -143,8 +143,6 @@ struct daqp_private { int stop; - - enum { semaphore, buffer } interrupt_mode; }; static const struct comedi_lrange range_daqp_ai = { @@ -187,8 +185,6 @@ static int daqp_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) /* flush any linguring data in FIFO - superfluous here */ /* outb(DAQP_CMD_RSTF, dev->iobase + DAQP_CMD_REG); */ - devpriv->interrupt_mode = semaphore; - return 0; } @@ -206,10 +202,9 @@ static unsigned int daqp_ai_get_sample(struct comedi_device *dev, return comedi_offset_munge(s, val); } -static enum irqreturn daqp_interrupt(int irq, void *dev_id) +static irqreturn_t daqp_interrupt(int irq, void *dev_id) { struct comedi_device *dev = dev_id; - struct daqp_private *devpriv = dev->private; struct comedi_subdevice *s = dev->read_subdev; struct comedi_cmd *cmd = &s->async->cmd; int loop_limit = 10000; @@ -218,46 +213,39 @@ static enum irqreturn daqp_interrupt(int irq, void *dev_id) if (!dev->attached) return IRQ_NONE; - switch (devpriv->interrupt_mode) { - case semaphore: - break; + status = inb(dev->iobase + DAQP_STATUS_REG); + while (!(status & DAQP_STATUS_FIFO_EMPTY)) { + unsigned short data; - case buffer: - while (!((status = inb(dev->iobase + DAQP_STATUS_REG)) - & DAQP_STATUS_FIFO_EMPTY)) { - unsigned short data; - - if (status & DAQP_STATUS_DATA_LOST) { - s->async->events |= COMEDI_CB_OVERFLOW; - dev_warn(dev->class_dev, "data lost\n"); - break; - } - - data = daqp_ai_get_sample(dev, s); - comedi_buf_write_samples(s, &data, 1); - - /* If there's a limit, decrement it - * and stop conversion if zero - */ - - if (cmd->stop_src == TRIG_COUNT && - s->async->scans_done >= cmd->stop_arg) { - s->async->events |= COMEDI_CB_EOA; - break; - } - - if ((loop_limit--) <= 0) - break; + if (status & DAQP_STATUS_DATA_LOST) { + s->async->events |= COMEDI_CB_OVERFLOW; + dev_warn(dev->class_dev, "data lost\n"); + break; } - if (loop_limit <= 0) { - dev_warn(dev->class_dev, - "loop_limit reached in daqp_interrupt()\n"); - s->async->events |= COMEDI_CB_ERROR; + data = daqp_ai_get_sample(dev, s); + comedi_buf_write_samples(s, &data, 1); + + if (cmd->stop_src == TRIG_COUNT && + s->async->scans_done >= cmd->stop_arg) { + s->async->events |= COMEDI_CB_EOA; + break; } - comedi_handle_events(dev, s); + if ((loop_limit--) <= 0) + break; + + status = inb(dev->iobase + DAQP_STATUS_REG); } + + if (loop_limit <= 0) { + dev_warn(dev->class_dev, + "loop_limit reached in daqp_interrupt()\n"); + s->async->events |= COMEDI_CB_ERROR; + } + + comedi_handle_events(dev, s); + return IRQ_HANDLED; } @@ -624,8 +612,6 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) if (ret) return ret; - devpriv->interrupt_mode = buffer; - /* Start conversion */ outb(DAQP_CMD_ARM | DAQP_CMD_FIFO_DATA, dev->iobase + DAQP_CMD_REG); From 77e7c200f37536e05f714bcebc34f58aba9eabfc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:07 -0700 Subject: [PATCH 1514/2431] staging: comedi: quatech_daqp_cs: handle shared interrupt This is a PCMCIA driver and interrupts are always shared. Detect if the hardware did not produce the interrupt and return IRQ_NONE so that other drivers might handle it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 7432e5761539..c44e7ec19e47 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -214,6 +214,9 @@ static irqreturn_t daqp_interrupt(int irq, void *dev_id) return IRQ_NONE; status = inb(dev->iobase + DAQP_STATUS_REG); + if (!(status & DAQP_STATUS_EVENTS)) + return IRQ_NONE; + while (!(status & DAQP_STATUS_FIFO_EMPTY)) { unsigned short data; From 848a7f7af0fb490274dc6031b0a79f4440a4948f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:08 -0700 Subject: [PATCH 1515/2431] staging: comedi: quatech_daqp_cs: fix daqp_ai_cancel() Make sure interrupts are disabled and the event flags are cleared when an analog input async command is canceled. Remove the unnecessary calls to stop any running conversions in the (*insn_read) and (*do_cmd) functions. The comedi core will only call these functions if the subdevice is not busy (it has already been canceled). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index c44e7ec19e47..4b9626b832ca 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -171,19 +171,21 @@ static int daqp_clear_events(struct comedi_device *dev, int loops) return -EBUSY; } -/* Cancel a running acquisition */ - -static int daqp_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) +static int daqp_ai_cancel(struct comedi_device *dev, + struct comedi_subdevice *s) { struct daqp_private *devpriv = dev->private; if (devpriv->stop) return -EIO; + /* + * Stop any conversions, disable interrupts, and clear + * the status event flags. + */ outb(DAQP_CMD_STOP, dev->iobase + DAQP_CMD_REG); - - /* flush any linguring data in FIFO - superfluous here */ - /* outb(DAQP_CMD_RSTF, dev->iobase + DAQP_CMD_REG); */ + outb(0, dev->iobase + DAQP_CTRL_REG); + inb(dev->iobase + DAQP_STATUS_REG); return 0; } @@ -298,9 +300,6 @@ static int daqp_ai_insn_read(struct comedi_device *dev, if (devpriv->stop) return -EIO; - /* Stop any running conversion */ - daqp_ai_cancel(dev, s); - outb(0, dev->iobase + DAQP_AUX_REG); /* Reset scan list queue */ @@ -466,9 +465,6 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) if (devpriv->stop) return -EIO; - /* Stop any running conversion */ - daqp_ai_cancel(dev, s); - outb(0, dev->iobase + DAQP_AUX_REG); /* Reset scan list queue */ From ac315c17f91d740c3cba4e83fcc73d7f75c967c0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:09 -0700 Subject: [PATCH 1516/2431] staging: comedi: quatech_daqp_cs: cleanup Step 3 of ai (*do_cmdtest) Step 3 of the (*do_cmdtest) trivially validates the async command arguments. The validations also modify the arguments if they are invalid so that the user gets valid values if the test fails. Reorder the checks so that if any of the checks fail proper values are used for subsequent checks. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 4b9626b832ca..0ea02f0e1aa2 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -141,6 +141,8 @@ #define DAQP_FIFO_SIZE 4096 +#define DAQP_MAX_TIMER_SPEED 10000 /* 100 kHz in nanoseconds */ + struct daqp_private { int stop; }; @@ -399,30 +401,30 @@ static int daqp_ai_cmdtest(struct comedi_device *dev, err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); -#define MAX_SPEED 10000 /* 100 kHz - in nanoseconds */ + err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); + err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, + cmd->chanlist_len); - if (cmd->scan_begin_src == TRIG_TIMER) { + if (cmd->scan_begin_src == TRIG_TIMER) err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, - MAX_SPEED); - } - - /* If both scan_begin and convert are both timer values, the only - * way that can make sense is if the scan time is the number of - * conversions times the convert time - */ - - if (cmd->scan_begin_src == TRIG_TIMER && cmd->convert_src == TRIG_TIMER - && cmd->scan_begin_arg != cmd->convert_arg * cmd->scan_end_arg) { - err |= -EINVAL; - } + DAQP_MAX_TIMER_SPEED); if (cmd->convert_src == TRIG_TIMER) { err |= comedi_check_trigger_arg_min(&cmd->convert_arg, - MAX_SPEED); - } + DAQP_MAX_TIMER_SPEED); - err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, - cmd->chanlist_len); + if (cmd->scan_begin_src == TRIG_TIMER) { + /* + * If both scan_begin and convert are both timer + * values, the only way that can make sense is if + * the scan time is the number of conversions times + * the convert time. + */ + arg = cmd->convert_arg * cmd->scan_end_arg; + err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, + arg); + } + } if (cmd->stop_src == TRIG_COUNT) err |= comedi_check_trigger_arg_max(&cmd->stop_arg, 0x00ffffff); From 0d77ef8b43d6a9124f37b2f098b6d65573db0de3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:10 -0700 Subject: [PATCH 1517/2431] staging: comedi: quatech_daqp_cs: ai async command requires a pacer The ai (*do_cmd) assumes that either the convert_src is TRIG_TIMER or the scan_begin_src is TRIG_TIMER and always programs the pacer clock with the appropriate trigger argument. Add a Step 2b check to the (*do_cmdtest) to ensure that at least one of the triggers is TRIG_TIMER. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 0ea02f0e1aa2..b56d126869e3 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -394,6 +394,10 @@ static int daqp_ai_cmdtest(struct comedi_device *dev, /* Step 2b : and mutually compatible */ + /* the async command requires a pacer */ + if (cmd->scan_begin_src != TRIG_TIMER && cmd->convert_src != TRIG_TIMER) + err |= -EINVAL; + if (err) return 2; From 62319bceef42015d5e774e1db2e21fb5853a01bc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:11 -0700 Subject: [PATCH 1518/2431] staging: comedi: quatech_daqp_cs: avoid calculating pacer divisor multiple times The pacer will either be used to trigger each conversion or to start each scan. Modify the (*do_cmdtest) so that one one divisor calculation is needed. Save the divisor value in the private data so that the (*do_cmd) does not have to do the calculation again. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/quatech_daqp_cs.c | 45 ++++++++----------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index b56d126869e3..e9e43139157d 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -144,6 +144,7 @@ #define DAQP_MAX_TIMER_SPEED 10000 /* 100 kHz in nanoseconds */ struct daqp_private { + unsigned int pacer_div; int stop; }; @@ -359,17 +360,18 @@ static int daqp_ns_to_timer(unsigned int *ns, unsigned int flags) return timer; } -/* cmdtest tests a particular command to see if it is valid. - * Using the cmdtest ioctl, a user can create a valid cmd - * and then have it executed by the cmd ioctl. - * - * cmdtest returns 1,2,3,4 or 0, depending on which tests - * the command passes. - */ +static void daqp_set_pacer(struct comedi_device *dev, unsigned int val) +{ + outb(val & 0xff, dev->iobase + DAQP_PACER_LOW_REG); + outb((val >> 8) & 0xff, dev->iobase + DAQP_PACER_MID_REG); + outb((val >> 16) & 0xff, dev->iobase + DAQP_PACER_HIGH_REG); +} static int daqp_ai_cmdtest(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_cmd *cmd) + struct comedi_subdevice *s, + struct comedi_cmd *cmd) { + struct daqp_private *devpriv = dev->private; int err = 0; unsigned int arg; @@ -440,16 +442,14 @@ static int daqp_ai_cmdtest(struct comedi_device *dev, /* step 4: fix up any arguments */ - if (cmd->scan_begin_src == TRIG_TIMER) { - arg = cmd->scan_begin_arg; - daqp_ns_to_timer(&arg, cmd->flags); - err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); - } - if (cmd->convert_src == TRIG_TIMER) { arg = cmd->convert_arg; - daqp_ns_to_timer(&arg, cmd->flags); + devpriv->pacer_div = daqp_ns_to_timer(&arg, cmd->flags); err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); + } else if (cmd->scan_begin_src == TRIG_TIMER) { + arg = cmd->scan_begin_arg; + devpriv->pacer_div = daqp_ns_to_timer(&arg, cmd->flags); + err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); } if (err) @@ -462,7 +462,6 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) { struct daqp_private *devpriv = dev->private; struct comedi_cmd *cmd = &s->async->cmd; - int counter; int scanlist_start_on_every_entry; int threshold; int ret; @@ -488,20 +487,12 @@ static int daqp_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) * each scan, so we program the pacer clock to this frequency * and only set the SCANLIST_START bit on the first entry. */ + daqp_set_pacer(dev, devpriv->pacer_div); - if (cmd->convert_src == TRIG_TIMER) { - counter = daqp_ns_to_timer(&cmd->convert_arg, cmd->flags); - outb(counter & 0xff, dev->iobase + DAQP_PACER_LOW_REG); - outb((counter >> 8) & 0xff, dev->iobase + DAQP_PACER_MID_REG); - outb((counter >> 16) & 0xff, dev->iobase + DAQP_PACER_HIGH_REG); + if (cmd->convert_src == TRIG_TIMER) scanlist_start_on_every_entry = 1; - } else { - counter = daqp_ns_to_timer(&cmd->scan_begin_arg, cmd->flags); - outb(counter & 0xff, dev->iobase + DAQP_PACER_LOW_REG); - outb((counter >> 8) & 0xff, dev->iobase + DAQP_PACER_MID_REG); - outb((counter >> 16) & 0xff, dev->iobase + DAQP_PACER_HIGH_REG); + else scanlist_start_on_every_entry = 0; - } /* Program scan list */ for (i = 0; i < cmd->chanlist_len; i++) { From d8e66cfd55d2e4e41f2832a9400b142beed95e75 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:07 -0700 Subject: [PATCH 1519/2431] staging: comedi: multiq3: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 54 ++++++++++++++---------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 8471219210b6..42ef1a6684e6 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -1,28 +1,38 @@ /* - comedi/drivers/multiq3.c - Hardware driver for Quanser Consulting MultiQ-3 board - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 1999 Anders Blomdell - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + * multiq3.c + * Hardware driver for Quanser Consulting MultiQ-3 board + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 1999 Anders Blomdell + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. */ -/* -Driver: multiq3 -Description: Quanser Consulting MultiQ-3 -Author: Anders Blomdell -Status: works -Devices: [Quanser Consulting] MultiQ-3 (multiq3) -*/ +/* + * Driver: multiq3 + * Description: Quanser Consulting MultiQ-3 + * Devices: [Quanser Consulting] MultiQ-3 (multiq3) + * Author: Anders Blomdell + * Status: works + * + * Configuration Options: + * [0] - I/O port base address + * [1] - IRQ (not used) + * [2] - Number of optional encoder chips installed on board + * 0 = none + * 1 = 2 inputs (Model -2E) + * 2 = 4 inputs (Model -4E) + * 3 = 6 inputs (Model -6E) + * 4 = 8 inputs (Model -8E) + */ #include #include From 5affcdc236f1685122a6fdcb1a3c698f96f145ce Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:08 -0700 Subject: [PATCH 1520/2431] staging: comedi: multiq3: tidy up multiq3_ai_insn_read() For aesthetics, use the proper symbol when reading the A/D data register to get the 16-bit sample data. Use the comedi_offset_munge() to do the 2's complement to offset binary munging of the sample data. Tidy up the function a bit. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 42ef1a6684e6..fabc321a1b1c 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -100,14 +100,14 @@ static int multiq3_ai_status(struct comedi_device *dev, static int multiq3_ai_insn_read(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) + struct comedi_insn *insn, + unsigned int *data) { - int n; - int chan; - unsigned int hi, lo; + unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int val; int ret; + int i; - chan = CR_CHAN(insn->chanspec); outw(MULTIQ3_CONTROL_MUST | MULTIQ3_AD_MUX_EN | (chan << 3), dev->iobase + MULTIQ3_CONTROL); @@ -116,7 +116,7 @@ static int multiq3_ai_insn_read(struct comedi_device *dev, if (ret) return ret; - for (n = 0; n < insn->n; n++) { + for (i = 0; i < insn->n; i++) { outw(0, dev->iobase + MULTIQ3_AD_CS); ret = comedi_timeout(dev, s, insn, multiq3_ai_status, @@ -124,12 +124,16 @@ static int multiq3_ai_insn_read(struct comedi_device *dev, if (ret) return ret; - hi = inb(dev->iobase + MULTIQ3_AD_CS); - lo = inb(dev->iobase + MULTIQ3_AD_CS); - data[n] = (((hi << 8) | lo) + 0x1000) & 0x1fff; + /* get a 16-bit sample; mask it to the subdevice resolution */ + val = inb(dev->iobase + MULTIQ3_AD_DATA) << 8; + val |= inb(dev->iobase + MULTIQ3_AD_DATA); + val &= s->maxdata; + + /* munge the 2's complement value to offset binary */ + data[i] = comedi_offset_munge(s, val); } - return n; + return insn->n; } static int multiq3_ao_insn_write(struct comedi_device *dev, From 6f60d35f31782e194eb46357ff2e8aad3c126ce6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:09 -0700 Subject: [PATCH 1521/2431] staging: comedi: multiq3: tidy up subdevice init For aesthetics, add some whitespace to the subdevice init and rearrange the initialization a bit. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 71 ++++++++++++------------ 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index fabc321a1b1c..1cfd7fa904d9 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -235,55 +235,54 @@ static int multiq3_attach(struct comedi_device *dev, if (ret) return ret; + /* Analog Input subdevice */ s = &dev->subdevices[0]; - /* ai subdevice */ - s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_GROUND; - s->n_chan = 8; - s->insn_read = multiq3_ai_insn_read; - s->maxdata = 0x1fff; - s->range_table = &range_bipolar5; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_GROUND; + s->n_chan = 8; + s->maxdata = 0x1fff; + s->range_table = &range_bipolar5; + s->insn_read = multiq3_ai_insn_read; + /* Analog Output subdevice */ s = &dev->subdevices[1]; - /* ao subdevice */ - s->type = COMEDI_SUBD_AO; - s->subdev_flags = SDF_WRITABLE; - s->n_chan = 8; - s->maxdata = 0xfff; - s->range_table = &range_bipolar5; - s->insn_write = multiq3_ao_insn_write; + s->type = COMEDI_SUBD_AO; + s->subdev_flags = SDF_WRITABLE; + s->n_chan = 8; + s->maxdata = 0x0fff; + s->range_table = &range_bipolar5; + s->insn_write = multiq3_ao_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) return ret; + /* Digital Input subdevice */ s = &dev->subdevices[2]; - /* di subdevice */ - s->type = COMEDI_SUBD_DI; - s->subdev_flags = SDF_READABLE; - s->n_chan = 16; - s->insn_bits = multiq3_di_insn_bits; - s->maxdata = 1; - s->range_table = &range_digital; + s->type = COMEDI_SUBD_DI; + s->subdev_flags = SDF_READABLE; + s->n_chan = 16; + s->maxdata = 1; + s->range_table = &range_digital; + s->insn_bits = multiq3_di_insn_bits; + /* Digital Output subdevice */ s = &dev->subdevices[3]; - /* do subdevice */ - s->type = COMEDI_SUBD_DO; - s->subdev_flags = SDF_WRITABLE; - s->n_chan = 16; - s->insn_bits = multiq3_do_insn_bits; - s->maxdata = 1; - s->range_table = &range_digital; - s->state = 0; + s->type = COMEDI_SUBD_DO; + s->subdev_flags = SDF_WRITABLE; + s->n_chan = 16; + s->maxdata = 1; + s->range_table = &range_digital; + s->insn_bits = multiq3_do_insn_bits; + /* Encoder (Counter) subdevice */ s = &dev->subdevices[4]; - /* encoder (counter) subdevice */ - s->type = COMEDI_SUBD_COUNTER; - s->subdev_flags = SDF_READABLE | SDF_LSAMPL; - s->n_chan = it->options[2] * 2; - s->insn_read = multiq3_encoder_insn_read; - s->maxdata = 0xffffff; - s->range_table = &range_unknown; + s->type = COMEDI_SUBD_COUNTER; + s->subdev_flags = SDF_READABLE | SDF_LSAMPL; + s->n_chan = it->options[2] * 2; + s->maxdata = 0x00ffffff; + s->range_table = &range_unknown; + s->insn_read = multiq3_encoder_insn_read; encoder_reset(dev); From 889031c7d8c0a243a97b40c93bb5e769e055fbd5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:10 -0700 Subject: [PATCH 1522/2431] staging: comedi: multiq3: tidy up register map defines For auesthetics, rename the register map defines. Convert the offset values to hex and add some whitespace. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 70 ++++++++++++------------ 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 1cfd7fa904d9..bf4ab32cda81 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -39,18 +39,18 @@ #include "../comedidev.h" /* - * MULTIQ-3 port offsets + * Register map */ -#define MULTIQ3_DIGIN_PORT 0 -#define MULTIQ3_DIGOUT_PORT 0 -#define MULTIQ3_DAC_DATA 2 -#define MULTIQ3_AD_DATA 4 -#define MULTIQ3_AD_CS 4 -#define MULTIQ3_STATUS 6 -#define MULTIQ3_CONTROL 6 -#define MULTIQ3_CLK_DATA 8 -#define MULTIQ3_ENC_DATA 12 -#define MULTIQ3_ENC_CONTROL 14 +#define MULTIQ3_DI_REG 0x00 +#define MULTIQ3_DO_REG 0x00 +#define MULTIQ3_AO_REG 0x02 +#define MULTIQ3_AI_REG 0x04 +#define MULTIQ3_AI_CONV_REG 0x04 +#define MULTIQ3_STATUS_REG 0x06 +#define MULTIQ3_CTRL_REG 0x06 +#define MULTIQ3_CLK_REG 0x08 +#define MULTIQ3_ENC_DATA_REG 0x0c +#define MULTIQ3_ENC_CTRL_REG 0x0e /* * flags for CONTROL register @@ -92,7 +92,7 @@ static int multiq3_ai_status(struct comedi_device *dev, { unsigned int status; - status = inw(dev->iobase + MULTIQ3_STATUS); + status = inw(dev->iobase + MULTIQ3_STATUS_REG); if (status & context) return 0; return -EBUSY; @@ -109,7 +109,7 @@ static int multiq3_ai_insn_read(struct comedi_device *dev, int i; outw(MULTIQ3_CONTROL_MUST | MULTIQ3_AD_MUX_EN | (chan << 3), - dev->iobase + MULTIQ3_CONTROL); + dev->iobase + MULTIQ3_CTRL_REG); ret = comedi_timeout(dev, s, insn, multiq3_ai_status, MULTIQ3_STATUS_EOC); @@ -117,7 +117,7 @@ static int multiq3_ai_insn_read(struct comedi_device *dev, return ret; for (i = 0; i < insn->n; i++) { - outw(0, dev->iobase + MULTIQ3_AD_CS); + outw(0, dev->iobase + MULTIQ3_AI_CONV_REG); ret = comedi_timeout(dev, s, insn, multiq3_ai_status, MULTIQ3_STATUS_EOC_I); @@ -125,8 +125,8 @@ static int multiq3_ai_insn_read(struct comedi_device *dev, return ret; /* get a 16-bit sample; mask it to the subdevice resolution */ - val = inb(dev->iobase + MULTIQ3_AD_DATA) << 8; - val |= inb(dev->iobase + MULTIQ3_AD_DATA); + val = inb(dev->iobase + MULTIQ3_AI_REG) << 8; + val |= inb(dev->iobase + MULTIQ3_AI_REG); val &= s->maxdata; /* munge the 2's complement value to offset binary */ @@ -148,9 +148,9 @@ static int multiq3_ao_insn_write(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { val = data[i]; outw(MULTIQ3_CONTROL_MUST | MULTIQ3_DA_LOAD | chan, - dev->iobase + MULTIQ3_CONTROL); - outw(val, dev->iobase + MULTIQ3_DAC_DATA); - outw(MULTIQ3_CONTROL_MUST, dev->iobase + MULTIQ3_CONTROL); + dev->iobase + MULTIQ3_CTRL_REG); + outw(val, dev->iobase + MULTIQ3_AO_REG); + outw(MULTIQ3_CONTROL_MUST, dev->iobase + MULTIQ3_CTRL_REG); } s->readback[chan] = val; @@ -161,7 +161,7 @@ static int multiq3_di_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) { - data[1] = inw(dev->iobase + MULTIQ3_DIGIN_PORT); + data[1] = inw(dev->iobase + MULTIQ3_DI_REG); return insn->n; } @@ -172,7 +172,7 @@ static int multiq3_do_insn_bits(struct comedi_device *dev, unsigned int *data) { if (comedi_dio_update_state(s, data)) - outw(s->state, dev->iobase + MULTIQ3_DIGOUT_PORT); + outw(s->state, dev->iobase + MULTIQ3_DO_REG); data[1] = s->state; @@ -190,12 +190,12 @@ static int multiq3_encoder_insn_read(struct comedi_device *dev, int n; for (n = 0; n < insn->n; n++) { - outw(control, dev->iobase + MULTIQ3_CONTROL); - outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CONTROL); - outb(MULTIQ3_TRSFRCNTR_OL, dev->iobase + MULTIQ3_ENC_CONTROL); - value = inb(dev->iobase + MULTIQ3_ENC_DATA); - value |= (inb(dev->iobase + MULTIQ3_ENC_DATA) << 8); - value |= (inb(dev->iobase + MULTIQ3_ENC_DATA) << 16); + outw(control, dev->iobase + MULTIQ3_CTRL_REG); + outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_TRSFRCNTR_OL, dev->iobase + MULTIQ3_ENC_CTRL_REG); + value = inb(dev->iobase + MULTIQ3_ENC_DATA_REG); + value |= (inb(dev->iobase + MULTIQ3_ENC_DATA_REG) << 8); + value |= (inb(dev->iobase + MULTIQ3_ENC_DATA_REG) << 16); data[n] = (value + 0x800000) & 0xffffff; } @@ -210,14 +210,14 @@ static void encoder_reset(struct comedi_device *dev) for (chan = 0; chan < s->n_chan; chan++) { int control = MULTIQ3_CONTROL_MUST | MULTIQ3_AD_MUX_EN | (chan << 3); - outw(control, dev->iobase + MULTIQ3_CONTROL); - outb(MULTIQ3_EFLAG_RESET, dev->iobase + MULTIQ3_ENC_CONTROL); - outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CONTROL); - outb(MULTIQ3_CLOCK_DATA, dev->iobase + MULTIQ3_ENC_DATA); - outb(MULTIQ3_CLOCK_SETUP, dev->iobase + MULTIQ3_ENC_CONTROL); - outb(MULTIQ3_INPUT_SETUP, dev->iobase + MULTIQ3_ENC_CONTROL); - outb(MULTIQ3_QUAD_X4, dev->iobase + MULTIQ3_ENC_CONTROL); - outb(MULTIQ3_CNTR_RESET, dev->iobase + MULTIQ3_ENC_CONTROL); + outw(control, dev->iobase + MULTIQ3_CTRL_REG); + outb(MULTIQ3_EFLAG_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_CLOCK_DATA, dev->iobase + MULTIQ3_ENC_DATA_REG); + outb(MULTIQ3_CLOCK_SETUP, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_INPUT_SETUP, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_QUAD_X4, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_CNTR_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); } } From 2f8d129ed917d96dd74887e14b0c66366875cfa5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:11 -0700 Subject: [PATCH 1523/2431] staging: comedi: multiq3: tidy up status register bit defines For aesthetics, move these defines closer to the register define and use the BIT macro to define the bits. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index bf4ab32cda81..7fb3a5953838 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -47,6 +47,8 @@ #define MULTIQ3_AI_REG 0x04 #define MULTIQ3_AI_CONV_REG 0x04 #define MULTIQ3_STATUS_REG 0x06 +#define MULTIQ3_STATUS_EOC BIT(3) +#define MULTIQ3_STATUS_EOC_I BIT(4) #define MULTIQ3_CTRL_REG 0x06 #define MULTIQ3_CLK_REG 0x08 #define MULTIQ3_ENC_DATA_REG 0x0c @@ -64,12 +66,6 @@ #define MULTIQ3_CONTROL_MUST 0x0600 -/* - * flags for STATUS register - */ -#define MULTIQ3_STATUS_EOC 0x008 -#define MULTIQ3_STATUS_EOC_I 0x010 - /* * flags for encoder control */ From 7dfeacb43453205d97259a5dc3007565f699585b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:12 -0700 Subject: [PATCH 1524/2431] staging: comedi: multiq3: introduce multiq3_set_ctrl() According to the programming manual. the 'SH' and 'CLK' bits in the control register need to be kept high at all times. Clarify this by introducing a helper function to set the control register. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 27 +++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 7fb3a5953838..0662c365d656 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -64,8 +64,6 @@ #define MULTIQ3_AD_CLOCK_4M 0x0400 #define MULTIQ3_DA_LOAD 0x1800 -#define MULTIQ3_CONTROL_MUST 0x0600 - /* * flags for encoder control */ @@ -81,6 +79,16 @@ #define MULTIQ3_TIMEOUT 30 +static void multiq3_set_ctrl(struct comedi_device *dev, unsigned int bits) +{ + /* + * According to the programming manual, the SH and CLK bits should + * be kept high at all times. + */ + outw(MULTIQ3_AD_SH | MULTIQ3_AD_CLOCK_4M | bits, + dev->iobase + MULTIQ3_CTRL_REG); +} + static int multiq3_ai_status(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -104,8 +112,7 @@ static int multiq3_ai_insn_read(struct comedi_device *dev, int ret; int i; - outw(MULTIQ3_CONTROL_MUST | MULTIQ3_AD_MUX_EN | (chan << 3), - dev->iobase + MULTIQ3_CTRL_REG); + multiq3_set_ctrl(dev, MULTIQ3_AD_MUX_EN | (chan << 3)); ret = comedi_timeout(dev, s, insn, multiq3_ai_status, MULTIQ3_STATUS_EOC); @@ -143,10 +150,9 @@ static int multiq3_ao_insn_write(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { val = data[i]; - outw(MULTIQ3_CONTROL_MUST | MULTIQ3_DA_LOAD | chan, - dev->iobase + MULTIQ3_CTRL_REG); + multiq3_set_ctrl(dev, MULTIQ3_DA_LOAD | chan); outw(val, dev->iobase + MULTIQ3_AO_REG); - outw(MULTIQ3_CONTROL_MUST, dev->iobase + MULTIQ3_CTRL_REG); + multiq3_set_ctrl(dev, 0); } s->readback[chan] = val; @@ -181,12 +187,11 @@ static int multiq3_encoder_insn_read(struct comedi_device *dev, unsigned int *data) { int chan = CR_CHAN(insn->chanspec); - int control = MULTIQ3_CONTROL_MUST | MULTIQ3_AD_MUX_EN | (chan << 3); int value; int n; for (n = 0; n < insn->n; n++) { - outw(control, dev->iobase + MULTIQ3_CTRL_REG); + multiq3_set_ctrl(dev, MULTIQ3_AD_MUX_EN | (chan << 3)); outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); outb(MULTIQ3_TRSFRCNTR_OL, dev->iobase + MULTIQ3_ENC_CTRL_REG); value = inb(dev->iobase + MULTIQ3_ENC_DATA_REG); @@ -204,9 +209,7 @@ static void encoder_reset(struct comedi_device *dev) int chan; for (chan = 0; chan < s->n_chan; chan++) { - int control = - MULTIQ3_CONTROL_MUST | MULTIQ3_AD_MUX_EN | (chan << 3); - outw(control, dev->iobase + MULTIQ3_CTRL_REG); + multiq3_set_ctrl(dev, MULTIQ3_AD_MUX_EN | (chan << 3)); outb(MULTIQ3_EFLAG_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); outb(MULTIQ3_CLOCK_DATA, dev->iobase + MULTIQ3_ENC_DATA_REG); From 6dfb66d8992bb0e1244db36b72ba0c5bb05fb858 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:13 -0700 Subject: [PATCH 1525/2431] staging: comedi: multiq3: tidy up control register bit defines For aesthetics, move these defines closer to the register define and use the BIT macro to define the bits. Add macros to set the bits needed to select the channel for the analog output, analog input, and encoder (counter) subdevices as well as the realtime clock registers. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 33 +++++++++++++----------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 0662c365d656..dac1879fc86f 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -50,20 +50,20 @@ #define MULTIQ3_STATUS_EOC BIT(3) #define MULTIQ3_STATUS_EOC_I BIT(4) #define MULTIQ3_CTRL_REG 0x06 +#define MULTIQ3_CTRL_AO_CHAN(x) (((x) & 0x7) << 0) +#define MULTIQ3_CTRL_RC(x) (((x) & 0x3) << 0) +#define MULTIQ3_CTRL_AI_CHAN(x) (((x) & 0x7) << 3) +#define MULTIQ3_CTRL_E_CHAN(x) (((x) & 0x7) << 3) +#define MULTIQ3_CTRL_EN BIT(6) +#define MULTIQ3_CTRL_AZ BIT(7) +#define MULTIQ3_CTRL_CAL BIT(8) +#define MULTIQ3_CTRL_SH BIT(9) +#define MULTIQ3_CTRL_CLK BIT(10) +#define MULTIQ3_CTRL_LD (3 << 11) #define MULTIQ3_CLK_REG 0x08 #define MULTIQ3_ENC_DATA_REG 0x0c #define MULTIQ3_ENC_CTRL_REG 0x0e -/* - * flags for CONTROL register - */ -#define MULTIQ3_AD_MUX_EN 0x0040 -#define MULTIQ3_AD_AUTOZ 0x0080 -#define MULTIQ3_AD_AUTOCAL 0x0100 -#define MULTIQ3_AD_SH 0x0200 -#define MULTIQ3_AD_CLOCK_4M 0x0400 -#define MULTIQ3_DA_LOAD 0x1800 - /* * flags for encoder control */ @@ -85,7 +85,7 @@ static void multiq3_set_ctrl(struct comedi_device *dev, unsigned int bits) * According to the programming manual, the SH and CLK bits should * be kept high at all times. */ - outw(MULTIQ3_AD_SH | MULTIQ3_AD_CLOCK_4M | bits, + outw(MULTIQ3_CTRL_SH | MULTIQ3_CTRL_CLK | bits, dev->iobase + MULTIQ3_CTRL_REG); } @@ -112,7 +112,7 @@ static int multiq3_ai_insn_read(struct comedi_device *dev, int ret; int i; - multiq3_set_ctrl(dev, MULTIQ3_AD_MUX_EN | (chan << 3)); + multiq3_set_ctrl(dev, MULTIQ3_CTRL_EN | MULTIQ3_CTRL_AI_CHAN(chan)); ret = comedi_timeout(dev, s, insn, multiq3_ai_status, MULTIQ3_STATUS_EOC); @@ -150,7 +150,8 @@ static int multiq3_ao_insn_write(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { val = data[i]; - multiq3_set_ctrl(dev, MULTIQ3_DA_LOAD | chan); + multiq3_set_ctrl(dev, MULTIQ3_CTRL_LD | + MULTIQ3_CTRL_AO_CHAN(chan)); outw(val, dev->iobase + MULTIQ3_AO_REG); multiq3_set_ctrl(dev, 0); } @@ -191,7 +192,8 @@ static int multiq3_encoder_insn_read(struct comedi_device *dev, int n; for (n = 0; n < insn->n; n++) { - multiq3_set_ctrl(dev, MULTIQ3_AD_MUX_EN | (chan << 3)); + multiq3_set_ctrl(dev, MULTIQ3_CTRL_EN | + MULTIQ3_CTRL_E_CHAN(chan)); outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); outb(MULTIQ3_TRSFRCNTR_OL, dev->iobase + MULTIQ3_ENC_CTRL_REG); value = inb(dev->iobase + MULTIQ3_ENC_DATA_REG); @@ -209,7 +211,8 @@ static void encoder_reset(struct comedi_device *dev) int chan; for (chan = 0; chan < s->n_chan; chan++) { - multiq3_set_ctrl(dev, MULTIQ3_AD_MUX_EN | (chan << 3)); + multiq3_set_ctrl(dev, MULTIQ3_CTRL_EN | + MULTIQ3_CTRL_E_CHAN(chan)); outb(MULTIQ3_EFLAG_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); outb(MULTIQ3_CLOCK_DATA, dev->iobase + MULTIQ3_ENC_DATA_REG); From 014d8414ce40e3f2e9733bdde39f474299283290 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:14 -0700 Subject: [PATCH 1526/2431] staging: comedi: multiq3: document the encoder chip commands Add some comments to document the commands that are sent to the encoder chips. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index dac1879fc86f..02d41fc4d82f 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -65,17 +65,17 @@ #define MULTIQ3_ENC_CTRL_REG 0x0e /* - * flags for encoder control + * Encoder chip commands (from the programming manual) */ -#define MULTIQ3_CLOCK_DATA 0x00 -#define MULTIQ3_CLOCK_SETUP 0x18 -#define MULTIQ3_INPUT_SETUP 0x41 -#define MULTIQ3_QUAD_X4 0x38 -#define MULTIQ3_BP_RESET 0x01 -#define MULTIQ3_CNTR_RESET 0x02 -#define MULTIQ3_TRSFRPR_CTR 0x08 -#define MULTIQ3_TRSFRCNTR_OL 0x10 -#define MULTIQ3_EFLAG_RESET 0x06 +#define MULTIQ3_CLOCK_DATA 0x00 /* FCK frequency divider */ +#define MULTIQ3_CLOCK_SETUP 0x18 /* xfer PR0 to PSC */ +#define MULTIQ3_INPUT_SETUP 0x41 /* enable inputs A and B */ +#define MULTIQ3_QUAD_X4 0x38 /* quadrature */ +#define MULTIQ3_BP_RESET 0x01 /* reset byte pointer */ +#define MULTIQ3_CNTR_RESET 0x02 /* reset counter */ +#define MULTIQ3_TRSFRPR_CTR 0x08 /* xfre preset reg to counter */ +#define MULTIQ3_TRSFRCNTR_OL 0x10 /* xfer CNTR to OL (x and y) */ +#define MULTIQ3_EFLAG_RESET 0x06 /* reset E bit of flag reg */ #define MULTIQ3_TIMEOUT 30 From 0a0ca07cc1bf65a3a84d68ca337e649c0cfdc22e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:15 -0700 Subject: [PATCH 1527/2431] staging: comedi: multiq3: allow user to reset encoder channels Currently this driver resets all the encoder channels when the driver is first attached. Add a (*insn_config) to the subdevice to allow the use to reset the channels manually. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 44 ++++++++++++++++-------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 02d41fc4d82f..f789d6e7eb92 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -205,22 +205,35 @@ static int multiq3_encoder_insn_read(struct comedi_device *dev, return n; } -static void encoder_reset(struct comedi_device *dev) +static void multiq3_encoder_reset(struct comedi_device *dev, + unsigned int chan) { - struct comedi_subdevice *s = &dev->subdevices[4]; - int chan; + multiq3_set_ctrl(dev, MULTIQ3_CTRL_EN | MULTIQ3_CTRL_E_CHAN(chan)); + outb(MULTIQ3_EFLAG_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_CLOCK_DATA, dev->iobase + MULTIQ3_ENC_DATA_REG); + outb(MULTIQ3_CLOCK_SETUP, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_INPUT_SETUP, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_QUAD_X4, dev->iobase + MULTIQ3_ENC_CTRL_REG); + outb(MULTIQ3_CNTR_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); +} - for (chan = 0; chan < s->n_chan; chan++) { - multiq3_set_ctrl(dev, MULTIQ3_CTRL_EN | - MULTIQ3_CTRL_E_CHAN(chan)); - outb(MULTIQ3_EFLAG_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); - outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); - outb(MULTIQ3_CLOCK_DATA, dev->iobase + MULTIQ3_ENC_DATA_REG); - outb(MULTIQ3_CLOCK_SETUP, dev->iobase + MULTIQ3_ENC_CTRL_REG); - outb(MULTIQ3_INPUT_SETUP, dev->iobase + MULTIQ3_ENC_CTRL_REG); - outb(MULTIQ3_QUAD_X4, dev->iobase + MULTIQ3_ENC_CTRL_REG); - outb(MULTIQ3_CNTR_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); +static int multiq3_encoder_insn_config(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) +{ + unsigned int chan = CR_CHAN(insn->chanspec); + + switch (data[0]) { + case INSN_CONFIG_RESET: + multiq3_encoder_reset(dev, chan); + break; + default: + return -EINVAL; } + + return insn->n; } static int multiq3_attach(struct comedi_device *dev, @@ -228,6 +241,7 @@ static int multiq3_attach(struct comedi_device *dev, { struct comedi_subdevice *s; int ret; + int i; ret = comedi_request_region(dev, it->options[0], 0x10); if (ret) @@ -285,8 +299,10 @@ static int multiq3_attach(struct comedi_device *dev, s->maxdata = 0x00ffffff; s->range_table = &range_unknown; s->insn_read = multiq3_encoder_insn_read; + s->insn_config = multiq3_encoder_insn_config; - encoder_reset(dev); + for (i = 0; i < s->n_chan; i++) + multiq3_encoder_reset(dev, i); return 0; } From fc19858e1bbf9a9092eeeb7f670fdab7f11c57ac Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:16 -0700 Subject: [PATCH 1528/2431] staging: comedi: multiq3: remove unnecessary define This define is not needed. Remove it. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index f789d6e7eb92..b5d23540f768 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -77,8 +77,6 @@ #define MULTIQ3_TRSFRCNTR_OL 0x10 /* xfer CNTR to OL (x and y) */ #define MULTIQ3_EFLAG_RESET 0x06 /* reset E bit of flag reg */ -#define MULTIQ3_TIMEOUT 30 - static void multiq3_set_ctrl(struct comedi_device *dev, unsigned int bits) { /* From 47f1fa37dbd17014724bd22e9e8fba9f538d27d8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:17 -0700 Subject: [PATCH 1529/2431] staging: comedi: multiq3: tidy up multiq3_encoder_insn_read() Encoders are not a "normal" subdevice in comedi. For aesthetics, tidy up this function and add a couple comments to clarify the function and explain the strange munging of the data. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 41 ++++++++++++++++++------ 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index b5d23540f768..fa63637baa13 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -185,22 +185,45 @@ static int multiq3_encoder_insn_read(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - int chan = CR_CHAN(insn->chanspec); - int value; - int n; + unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int val; + int i; - for (n = 0; n < insn->n; n++) { + for (i = 0; i < insn->n; i++) { + /* select encoder channel */ multiq3_set_ctrl(dev, MULTIQ3_CTRL_EN | MULTIQ3_CTRL_E_CHAN(chan)); + + /* reset the byte pointer */ outb(MULTIQ3_BP_RESET, dev->iobase + MULTIQ3_ENC_CTRL_REG); + + /* latch the data */ outb(MULTIQ3_TRSFRCNTR_OL, dev->iobase + MULTIQ3_ENC_CTRL_REG); - value = inb(dev->iobase + MULTIQ3_ENC_DATA_REG); - value |= (inb(dev->iobase + MULTIQ3_ENC_DATA_REG) << 8); - value |= (inb(dev->iobase + MULTIQ3_ENC_DATA_REG) << 16); - data[n] = (value + 0x800000) & 0xffffff; + + /* read the 24-bit encoder data (lsb/mid/msb) */ + val = inb(dev->iobase + MULTIQ3_ENC_DATA_REG); + val |= (inb(dev->iobase + MULTIQ3_ENC_DATA_REG) << 8); + val |= (inb(dev->iobase + MULTIQ3_ENC_DATA_REG) << 16); + + /* + * Munge the data so that the reset value is in the middle + * of the maxdata range, i.e.: + * + * real value comedi value + * 0xffffff 0x7fffff 1 negative count + * 0x000000 0x800000 reset value + * 0x000001 0x800001 1 positive count + * + * It's possible for the 24-bit counter to overflow but it + * would normally take _quite_ a few turns. A 2000 line + * encoder in quadrature results in 8000 counts/rev. So about + * 1048 turns in either direction can be measured without + * an overflow. + */ + data[i] = (val + ((s->maxdata + 1) >> 1)) & s->maxdata; } - return n; + return insn->n; } static void multiq3_encoder_reset(struct comedi_device *dev, From 03a1847719b2bf8f3da1c89b0ae359cb1f92dea6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:18 -0700 Subject: [PATCH 1530/2431] staging: comedi: multiq3: remove unnecessary include This driver does not use interrupts. Remove the include. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index fa63637baa13..fc743dff6e2f 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -35,7 +35,7 @@ */ #include -#include + #include "../comedidev.h" /* From 4976034f37b53ffbe4e8aaf3fbeb23f3e55b97c7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:20 -0700 Subject: [PATCH 1531/2431] staging: comedi: multiq3: update the MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more useful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/multiq3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index fc743dff6e2f..b5a26f7b4332 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -337,5 +337,5 @@ static struct comedi_driver multiq3_driver = { module_comedi_driver(multiq3_driver); MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); +MODULE_DESCRIPTION("Comedi driver for Quanser Consulting MultiQ-3 board"); MODULE_LICENSE("GPL"); From 0bbf3ea6c4173fc6586326e1d46877168309d00a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:40:22 -0700 Subject: [PATCH 1532/2431] staging: comedi: pcl818: prefer using the BIT macro Fix the checkpatch.pl issues. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl818.c | 31 ++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl818.c b/drivers/staging/comedi/drivers/pcl818.c index e1bdde977302..913251458a1b 100644 --- a/drivers/staging/comedi/drivers/pcl818.c +++ b/drivers/staging/comedi/drivers/pcl818.c @@ -124,23 +124,22 @@ #define PCL818_AO_MSB_REG(x) (0x05 + ((x) * 2)) #define PCL818_STATUS_REG 0x08 #define PCL818_STATUS_NEXT_CHAN_MASK (0xf << 0) -#define PCL818_STATUS_INT (1 << 4) -#define PCL818_STATUS_MUX (1 << 5) -#define PCL818_STATUS_UNI (1 << 6) -#define PCL818_STATUS_EOC (1 << 7) +#define PCL818_STATUS_INT BIT(4) +#define PCL818_STATUS_MUX BIT(5) +#define PCL818_STATUS_UNI BIT(6) +#define PCL818_STATUS_EOC BIT(7) #define PCL818_CTRL_REG 0x09 -#define PCL818_CTRL_DISABLE_TRIG (0 << 0) -#define PCL818_CTRL_SOFT_TRIG (1 << 0) -#define PCL818_CTRL_EXT_TRIG (2 << 0) -#define PCL818_CTRL_PACER_TRIG (3 << 0) -#define PCL818_CTRL_DMAE (1 << 2) +#define PCL818_CTRL_TRIG(x) (((x) & 0x3) << 0) +#define PCL818_CTRL_DISABLE_TRIG PCL818_CTRL_TRIG(0) +#define PCL818_CTRL_SOFT_TRIG PCL818_CTRL_TRIG(1) +#define PCL818_CTRL_EXT_TRIG PCL818_CTRL_TRIG(2) +#define PCL818_CTRL_PACER_TRIG PCL818_CTRL_TRIG(3) +#define PCL818_CTRL_DMAE BIT(2) #define PCL818_CTRL_IRQ(x) ((x) << 4) -#define PCL818_CTRL_INTE (1 << 7) +#define PCL818_CTRL_INTE BIT(7) #define PCL818_CNTENABLE_REG 0x0a -#define PCL818_CNTENABLE_PACER_ENA (0 << 0) -#define PCL818_CNTENABLE_PACER_TRIG0 (1 << 0) -#define PCL818_CNTENABLE_CNT0_EXT_CLK (0 << 1) -#define PCL818_CNTENABLE_CNT0_INT_CLK (1 << 1) +#define PCL818_CNTENABLE_PACER_TRIG0 BIT(0) +#define PCL818_CNTENABLE_CNT0_INT_CLK BIT(1) /* 0=ext clk */ #define PCL818_DO_DI_MSB_REG 0x0b #define PCL818_TIMER_BASE 0x0c @@ -740,7 +739,7 @@ static int pcl818_ai_cmd(struct comedi_device *dev, else ctrl |= PCL818_CTRL_EXT_TRIG; - outb(PCL818_CNTENABLE_PACER_ENA, dev->iobase + PCL818_CNTENABLE_REG); + outb(0, dev->iobase + PCL818_CNTENABLE_REG); if (dma) { /* setup and enable dma for the first buffer */ @@ -902,7 +901,7 @@ static void pcl818_reset(struct comedi_device *dev) pcl818_ai_set_chan_range(dev, 0, 0); /* stop pacer */ - outb(PCL818_CNTENABLE_PACER_ENA, dev->iobase + PCL818_CNTENABLE_REG); + outb(0, dev->iobase + PCL818_CNTENABLE_REG); /* set analog output channels to 0V */ for (chan = 0; chan < board->n_aochan; chan++) { From 699849fe452471cfa740cd659f42d349cf0b4bd1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:40:23 -0700 Subject: [PATCH 1533/2431] staging: comedi: pcl818: remove unused "boards constants" These defines are not used. Remove them to get rid of the checkpatch.pl issue about avoiding CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl818.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl818.c b/drivers/staging/comedi/drivers/pcl818.c index 913251458a1b..5aeed44dff70 100644 --- a/drivers/staging/comedi/drivers/pcl818.c +++ b/drivers/staging/comedi/drivers/pcl818.c @@ -102,15 +102,6 @@ #include "comedi_isadma.h" #include "comedi_8254.h" -/* boards constants */ - -#define boardPCL818L 0 -#define boardPCL818H 1 -#define boardPCL818HD 2 -#define boardPCL818HG 3 -#define boardPCL818 4 -#define boardPCL718 5 - /* * Register I/O map */ From fdb3be16df0b4859a4fb21a02357e2007ffe5dbb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:44:02 -0700 Subject: [PATCH 1534/2431] staging: comedi: pcl816: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl816.c | 57 ++++++++++++------------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c index a353d1b155bb..0f9b54b3fb00 100644 --- a/drivers/staging/comedi/drivers/pcl816.c +++ b/drivers/staging/comedi/drivers/pcl816.c @@ -1,36 +1,33 @@ /* - comedi/drivers/pcl816.c + * pcl816.c + * Comedi driver for Advantech PCL-816 cards + * + * Author: Juan Grigera + * based on pcl818 by Michal Dobes and bits of pcl812 + */ - Author: Juan Grigera - based on pcl818 by Michal Dobes and bits of pcl812 - - hardware driver for Advantech cards: - card: PCL-816, PCL814B - driver: pcl816 -*/ /* -Driver: pcl816 -Description: Advantech PCL-816 cards, PCL-814 -Author: Juan Grigera -Devices: [Advantech] PCL-816 (pcl816), PCL-814B (pcl814b) -Status: works -Updated: Tue, 2 Apr 2002 23:15:21 -0800 - -PCL 816 and 814B have 16 SE/DIFF ADCs, 16 DACs, 16 DI and 16 DO. -Differences are at resolution (16 vs 12 bits). - -The driver support AI command mode, other subdevices not written. - -Analog output and digital input and output are not supported. - -Configuration Options: - [0] - IO Base - [1] - IRQ (0=disable, 2, 3, 4, 5, 6, 7) - [2] - DMA (0=disable, 1, 3) - [3] - 0, 10=10MHz clock for 8254 - 1= 1MHz clock for 8254 - -*/ + * Driver: pcl816 + * Description: Advantech PCL-816 cards, PCL-814 + * Devices: [Advantech] PCL-816 (pcl816), PCL-814B (pcl814b) + * Author: Juan Grigera + * Status: works + * Updated: Tue, 2 Apr 2002 23:15:21 -0800 + * + * PCL 816 and 814B have 16 SE/DIFF ADCs, 16 DACs, 16 DI and 16 DO. + * Differences are at resolution (16 vs 12 bits). + * + * The driver support AI command mode, other subdevices not written. + * + * Analog output and digital input and output are not supported. + * + * Configuration Options: + * [0] - IO Base + * [1] - IRQ (0=disable, 2, 3, 4, 5, 6, 7) + * [2] - DMA (0=disable, 1, 3) + * [3] - 0, 10=10MHz clock for 8254 + * 1= 1MHz clock for 8254 + */ #include #include From 2d8ea89191c3820bd3c08e75fff2f4d9fbd20f21 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:44:03 -0700 Subject: [PATCH 1535/2431] staging: comedi: pcl816: prefer using the BIT macro Fix the checkpatch.pl issues. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl816.c | 38 +++++++++++-------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c index 0f9b54b3fb00..aa775b6aa825 100644 --- a/drivers/staging/comedi/drivers/pcl816.c +++ b/drivers/staging/comedi/drivers/pcl816.c @@ -53,25 +53,20 @@ #define PCL816_MUX_REG 0x0b #define PCL816_MUX_SCAN(_first, _last) (((_last) << 4) | (_first)) #define PCL816_CTRL_REG 0x0c -#define PCL816_CTRL_DISABLE_TRIG (0 << 0) -#define PCL816_CTRL_SOFT_TRIG (1 << 0) -#define PCL816_CTRL_PACER_TRIG (1 << 1) -#define PCL816_CTRL_EXT_TRIG (1 << 2) -#define PCL816_CTRL_POE (1 << 3) -#define PCL816_CTRL_DMAEN (1 << 4) -#define PCL816_CTRL_INTEN (1 << 5) -#define PCL816_CTRL_DMASRC_SLOT0 (0 << 6) -#define PCL816_CTRL_DMASRC_SLOT1 (1 << 6) -#define PCL816_CTRL_DMASRC_SLOT2 (2 << 6) +#define PCL816_CTRL_SOFT_TRIG BIT(0) +#define PCL816_CTRL_PACER_TRIG BIT(1) +#define PCL816_CTRL_EXT_TRIG BIT(2) +#define PCL816_CTRL_POE BIT(3) +#define PCL816_CTRL_DMAEN BIT(4) +#define PCL816_CTRL_INTEN BIT(5) +#define PCL816_CTRL_DMASRC_SLOT(x) (((x) & 0x3) << 6) #define PCL816_STATUS_REG 0x0d #define PCL816_STATUS_NEXT_CHAN_MASK (0xf << 0) -#define PCL816_STATUS_INTSRC_MASK (3 << 4) -#define PCL816_STATUS_INTSRC_SLOT0 (0 << 4) -#define PCL816_STATUS_INTSRC_SLOT1 (1 << 4) -#define PCL816_STATUS_INTSRC_SLOT2 (2 << 4) -#define PCL816_STATUS_INTSRC_DMA (3 << 4) -#define PCL816_STATUS_INTACT (1 << 6) -#define PCL816_STATUS_DRDY (1 << 7) +#define PCL816_STATUS_INTSRC_SLOT(x) (((x) & 0x3) << 4) +#define PCL816_STATUS_INTSRC_DMA PCL816_STATUS_INTSRC_SLOT(3) +#define PCL816_STATUS_INTSRC_MASK PCL816_STATUS_INTSRC_SLOT(3) +#define PCL816_STATUS_INTACT BIT(6) +#define PCL816_STATUS_DRDY BIT(7) #define MAGIC_DMA_WORD 0x5a5a @@ -440,7 +435,8 @@ static int pcl816_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) comedi_8254_update_divisors(dev->pacer); comedi_8254_pacer_enable(dev->pacer, 1, 2, true); - ctrl = PCL816_CTRL_INTEN | PCL816_CTRL_DMAEN | PCL816_CTRL_DMASRC_SLOT0; + ctrl = PCL816_CTRL_INTEN | PCL816_CTRL_DMAEN | + PCL816_CTRL_DMASRC_SLOT(0); if (cmd->convert_src == TRIG_TIMER) ctrl |= PCL816_CTRL_PACER_TRIG; else /* TRIG_EXT */ @@ -494,7 +490,7 @@ static int pcl816_ai_cancel(struct comedi_device *dev, if (!devpriv->ai_cmd_running) return 0; - outb(PCL816_CTRL_DISABLE_TRIG, dev->iobase + PCL816_CTRL_REG); + outb(0, dev->iobase + PCL816_CTRL_REG); pcl816_ai_clear_eoc(dev); comedi_8254_pacer_enable(dev->pacer, 1, 2, false); @@ -530,7 +526,7 @@ static int pcl816_ai_insn_read(struct comedi_device *dev, data[i] = pcl816_ai_get_sample(dev, s); } - outb(PCL816_CTRL_DISABLE_TRIG, dev->iobase + PCL816_CTRL_REG); + outb(0, dev->iobase + PCL816_CTRL_REG); pcl816_ai_clear_eoc(dev); return ret ? ret : insn->n; @@ -564,7 +560,7 @@ static int pcl816_do_insn_bits(struct comedi_device *dev, static void pcl816_reset(struct comedi_device *dev) { - outb(PCL816_CTRL_DISABLE_TRIG, dev->iobase + PCL816_CTRL_REG); + outb(0, dev->iobase + PCL816_CTRL_REG); pcl816_ai_set_chan_range(dev, 0, 0); pcl816_ai_clear_eoc(dev); From 026d7877c89ee23d632181f23b4a37e73fe985b7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:44:04 -0700 Subject: [PATCH 1536/2431] staging: comedi: pcl816: remove #if 0'ed out code Remove the #if 0'ed out code that would initialize an analog output subdevice. The hardware does not normally support an analog output subdevice. Analog outputs are only supported with additional "piggyback" modules. Support for these modules is not included in the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl816.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c index aa775b6aa825..c00a71f538ef 100644 --- a/drivers/staging/comedi/drivers/pcl816.c +++ b/drivers/staging/comedi/drivers/pcl816.c @@ -86,7 +86,6 @@ static const struct comedi_lrange range_pcl816 = { struct pcl816_board { const char *name; int ai_maxdata; - int ao_maxdata; int ai_chanlist; }; @@ -94,12 +93,10 @@ static const struct pcl816_board boardtypes[] = { { .name = "pcl816", .ai_maxdata = 0xffff, - .ao_maxdata = 0xffff, .ai_chanlist = 1024, }, { .name = "pcl814b", .ai_maxdata = 0x3fff, - .ao_maxdata = 0x3fff, .ai_chanlist = 1024, }, }; @@ -645,16 +642,9 @@ static int pcl816_attach(struct comedi_device *dev, struct comedi_devconfig *it) s->cancel = pcl816_ai_cancel; } - /* Analog OUtput subdevice */ - s = &dev->subdevices[2]; + /* Piggyback Slot1 subdevice */ + s = &dev->subdevices[1]; s->type = COMEDI_SUBD_UNUSED; -#if 0 - subdevs[1] = COMEDI_SUBD_AO; - s->subdev_flags = SDF_WRITABLE | SDF_GROUND; - s->n_chan = 1; - s->maxdata = board->ao_maxdata; - s->range_table = &range_pcl816; -#endif /* Digital Input subdevice */ s = &dev->subdevices[2]; From b20d6f793c5bd0493b26d04cbc7ce04c1c5cea0e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:47:25 -0700 Subject: [PATCH 1537/2431] staging: comedi: pcl812: convert hardware type defines into an enum For aesthetics, convert these defines into an enum and rename the CamelCase. Fix the switch() code to use the enum without warnings. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl812.c | 135 +++++++++++++----------- 1 file changed, 76 insertions(+), 59 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl812.c b/drivers/staging/comedi/drivers/pcl812.c index 48f6cdf440b9..8ef9fe2018e4 100644 --- a/drivers/staging/comedi/drivers/pcl812.c +++ b/drivers/staging/comedi/drivers/pcl812.c @@ -119,17 +119,6 @@ #include "comedi_isadma.h" #include "comedi_8254.h" -/* hardware types of the cards */ -#define boardPCL812PG 0 /* and ACL-8112PG */ -#define boardPCL813B 1 -#define boardPCL812 2 -#define boardPCL813 3 -#define boardISO813 5 -#define boardACL8113 6 -#define boardACL8112 7 /* ACL-8112DG/HG, A-822PGL/PGH, A-823PGL/PGH */ -#define boardACL8216 8 /* and ICP DAS A-826PG */ -#define boardA821 9 /* PGH, PGL, PGL/NDA versions */ - /* * Register I/O map */ @@ -327,9 +316,21 @@ static const struct comedi_lrange range_a821pgh_ai = { } }; +enum pcl812_boardtype { + BOARD_PCL812PG = 0, /* and ACL-8112PG */ + BOARD_PCL813B = 1, + BOARD_PCL812 = 2, + BOARD_PCL813 = 3, + BOARD_ISO813 = 5, + BOARD_ACL8113 = 6, + BOARD_ACL8112 = 7, /* ACL-8112DG/HG, A-822PGL/PGH, A-823PGL/PGH */ + BOARD_ACL8216 = 8, /* and ICP DAS A-826PG */ + BOARD_A821 = 9, /* PGH, PGL, PGL/NDA versions */ +}; + struct pcl812_board { const char *name; - int board_type; + enum pcl812_boardtype board_type; int n_aichan; int n_aochan; unsigned int ai_ns_min; @@ -344,7 +345,7 @@ struct pcl812_board { static const struct pcl812_board boardtypes[] = { { .name = "pcl812", - .board_type = boardPCL812, + .board_type = BOARD_PCL812, .n_aichan = 16, .n_aochan = 2, .ai_ns_min = 33000, @@ -354,7 +355,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "pcl812pg", - .board_type = boardPCL812PG, + .board_type = BOARD_PCL812PG, .n_aichan = 16, .n_aochan = 2, .ai_ns_min = 33000, @@ -364,7 +365,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "acl8112pg", - .board_type = boardPCL812PG, + .board_type = BOARD_PCL812PG, .n_aichan = 16, .n_aochan = 2, .ai_ns_min = 10000, @@ -374,7 +375,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "acl8112dg", - .board_type = boardACL8112, + .board_type = BOARD_ACL8112, .n_aichan = 16, /* 8 differential */ .n_aochan = 2, .ai_ns_min = 10000, @@ -385,7 +386,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "acl8112hg", - .board_type = boardACL8112, + .board_type = BOARD_ACL8112, .n_aichan = 16, /* 8 differential */ .n_aochan = 2, .ai_ns_min = 10000, @@ -396,7 +397,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "a821pgl", - .board_type = boardA821, + .board_type = BOARD_A821, .n_aichan = 16, /* 8 differential */ .n_aochan = 1, .ai_ns_min = 10000, @@ -405,14 +406,14 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "a821pglnda", - .board_type = boardA821, + .board_type = BOARD_A821, .n_aichan = 16, /* 8 differential */ .ai_ns_min = 10000, .rangelist_ai = &range_pcl813b_ai, .IRQbits = 0x000c, }, { .name = "a821pgh", - .board_type = boardA821, + .board_type = BOARD_A821, .n_aichan = 16, /* 8 differential */ .n_aochan = 1, .ai_ns_min = 10000, @@ -421,7 +422,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "a822pgl", - .board_type = boardACL8112, + .board_type = BOARD_ACL8112, .n_aichan = 16, /* 8 differential */ .n_aochan = 2, .ai_ns_min = 10000, @@ -431,7 +432,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "a822pgh", - .board_type = boardACL8112, + .board_type = BOARD_ACL8112, .n_aichan = 16, /* 8 differential */ .n_aochan = 2, .ai_ns_min = 10000, @@ -441,7 +442,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "a823pgl", - .board_type = boardACL8112, + .board_type = BOARD_ACL8112, .n_aichan = 16, /* 8 differential */ .n_aochan = 2, .ai_ns_min = 8000, @@ -451,7 +452,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "a823pgh", - .board_type = boardACL8112, + .board_type = BOARD_ACL8112, .n_aichan = 16, /* 8 differential */ .n_aochan = 2, .ai_ns_min = 8000, @@ -461,27 +462,27 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "pcl813", - .board_type = boardPCL813, + .board_type = BOARD_PCL813, .n_aichan = 32, .rangelist_ai = &range_pcl813b_ai, }, { .name = "pcl813b", - .board_type = boardPCL813B, + .board_type = BOARD_PCL813B, .n_aichan = 32, .rangelist_ai = &range_pcl813b_ai, }, { .name = "acl8113", - .board_type = boardACL8113, + .board_type = BOARD_ACL8113, .n_aichan = 32, .rangelist_ai = &range_acl8113_1_ai, }, { .name = "iso813", - .board_type = boardISO813, + .board_type = BOARD_ISO813, .n_aichan = 32, .rangelist_ai = &range_iso813_1_ai, }, { .name = "acl8216", - .board_type = boardACL8216, + .board_type = BOARD_ACL8216, .n_aichan = 16, /* 8 differential */ .n_aochan = 2, .ai_ns_min = 10000, @@ -493,7 +494,7 @@ static const struct pcl812_board boardtypes[] = { .has_dio = 1, }, { .name = "a826pg", - .board_type = boardACL8216, + .board_type = BOARD_ACL8216, .n_aichan = 16, /* 8 differential */ .n_aochan = 2, .ai_ns_min = 10000, @@ -1017,16 +1018,14 @@ static void pcl812_set_ai_range_table(struct comedi_device *dev, const struct pcl812_board *board = dev->board_ptr; struct pcl812_private *devpriv = dev->private; - /* default to the range table from the boardinfo */ - s->range_table = board->rangelist_ai; - - /* now check the user config option based on the boardtype */ switch (board->board_type) { - case boardPCL812PG: + case BOARD_PCL812PG: if (it->options[4] == 1) s->range_table = &range_pcl812pg2_ai; + else + s->range_table = board->rangelist_ai; break; - case boardPCL812: + case BOARD_PCL812: switch (it->options[4]) { case 0: s->range_table = &range_bipolar10; @@ -1051,11 +1050,13 @@ static void pcl812_set_ai_range_table(struct comedi_device *dev, break; } break; - case boardPCL813B: + case BOARD_PCL813B: if (it->options[1] == 1) s->range_table = &range_pcl813b2_ai; + else + s->range_table = board->rangelist_ai; break; - case boardISO813: + case BOARD_ISO813: switch (it->options[1]) { case 0: s->range_table = &range_iso813_1_ai; @@ -1076,7 +1077,7 @@ static void pcl812_set_ai_range_table(struct comedi_device *dev, break; } break; - case boardACL8113: + case BOARD_ACL8113: switch (it->options[1]) { case 0: s->range_table = &range_acl8113_1_ai; @@ -1097,6 +1098,9 @@ static void pcl812_set_ai_range_table(struct comedi_device *dev, break; } break; + default: + s->range_table = board->rangelist_ai; + break; } } @@ -1159,15 +1163,17 @@ static int pcl812_attach(struct comedi_device *dev, struct comedi_devconfig *it) /* differential analog inputs? */ switch (board->board_type) { - case boardA821: + case BOARD_A821: if (it->options[2] == 1) devpriv->use_diff = 1; break; - case boardACL8112: - case boardACL8216: + case BOARD_ACL8112: + case BOARD_ACL8216: if (it->options[4] == 1) devpriv->use_diff = 1; break; + default: + break; } n_subdevices = 1; /* all boardtypes have analog inputs */ @@ -1220,20 +1226,31 @@ static int pcl812_attach(struct comedi_device *dev, struct comedi_devconfig *it) s->subdev_flags = SDF_WRITABLE | SDF_GROUND; s->n_chan = board->n_aochan; s->maxdata = 0xfff; - s->range_table = &range_unipolar5; switch (board->board_type) { - case boardA821: + case BOARD_A821: if (it->options[3] == 1) s->range_table = &range_unipolar10; + else + s->range_table = &range_unipolar5; break; - case boardPCL812: - case boardACL8112: - case boardPCL812PG: - case boardACL8216: - if (it->options[5] == 1) + case BOARD_PCL812: + case BOARD_ACL8112: + case BOARD_PCL812PG: + case BOARD_ACL8216: + switch (it->options[5]) { + case 1: s->range_table = &range_unipolar10; - if (it->options[5] == 2) + break; + case 2: s->range_table = &range_unknown; + break; + default: + s->range_table = &range_unipolar5; + break; + } + break; + default: + s->range_table = &range_unipolar5; break; } s->insn_write = pcl812_ao_insn_write; @@ -1268,23 +1285,23 @@ static int pcl812_attach(struct comedi_device *dev, struct comedi_devconfig *it) } switch (board->board_type) { - case boardACL8216: - case boardPCL812PG: - case boardPCL812: - case boardACL8112: + case BOARD_ACL8216: + case BOARD_PCL812PG: + case BOARD_PCL812: + case BOARD_ACL8112: devpriv->max_812_ai_mode0_rangewait = 1; if (it->options[3] > 0) /* we use external trigger */ devpriv->use_ext_trg = 1; break; - case boardA821: + case BOARD_A821: devpriv->max_812_ai_mode0_rangewait = 1; devpriv->mode_reg_int = (dev->irq << 4) & 0xf0; break; - case boardPCL813B: - case boardPCL813: - case boardISO813: - case boardACL8113: + case BOARD_PCL813B: + case BOARD_PCL813: + case BOARD_ISO813: + case BOARD_ACL8113: /* maybe there must by greatest timeout */ devpriv->max_812_ai_mode0_rangewait = 5; break; From 94e9ef19854c8a9c71fdbabdf2c053b18da0aa0d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:47:26 -0700 Subject: [PATCH 1538/2431] staging: comedi: pcl812: prefer using the BIT macro Fix the checkpatch.pl issues. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl812.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl812.c b/drivers/staging/comedi/drivers/pcl812.c index 8ef9fe2018e4..607cc880b7eb 100644 --- a/drivers/staging/comedi/drivers/pcl812.c +++ b/drivers/staging/comedi/drivers/pcl812.c @@ -125,23 +125,24 @@ #define PCL812_TIMER_BASE 0x00 #define PCL812_AI_LSB_REG 0x04 #define PCL812_AI_MSB_REG 0x05 -#define PCL812_AI_MSB_DRDY (1 << 4) +#define PCL812_AI_MSB_DRDY BIT(4) #define PCL812_AO_LSB_REG(x) (0x04 + ((x) * 2)) #define PCL812_AO_MSB_REG(x) (0x05 + ((x) * 2)) #define PCL812_DI_LSB_REG 0x06 #define PCL812_DI_MSB_REG 0x07 #define PCL812_STATUS_REG 0x08 -#define PCL812_STATUS_DRDY (1 << 5) +#define PCL812_STATUS_DRDY BIT(5) #define PCL812_RANGE_REG 0x09 #define PCL812_MUX_REG 0x0a #define PCL812_MUX_CHAN(x) ((x) << 0) -#define PCL812_MUX_CS0 (1 << 4) -#define PCL812_MUX_CS1 (1 << 5) +#define PCL812_MUX_CS0 BIT(4) +#define PCL812_MUX_CS1 BIT(5) #define PCL812_CTRL_REG 0x0b -#define PCL812_CTRL_DISABLE_TRIG (0 << 0) -#define PCL812_CTRL_SOFT_TRIG (1 << 0) -#define PCL812_CTRL_PACER_DMA_TRIG (2 << 0) -#define PCL812_CTRL_PACER_EOC_TRIG (6 << 0) +#define PCL812_CTRL_TRIG(x) (((x) & 0x7) << 0) +#define PCL812_CTRL_DISABLE_TRIG PCL812_CTRL_TRIG(0) +#define PCL812_CTRL_SOFT_TRIG PCL812_CTRL_TRIG(1) +#define PCL812_CTRL_PACER_DMA_TRIG PCL812_CTRL_TRIG(2) +#define PCL812_CTRL_PACER_EOC_TRIG PCL812_CTRL_TRIG(6) #define PCL812_SOFTTRIG_REG 0x0c #define PCL812_DO_LSB_REG 0x0d #define PCL812_DO_MSB_REG 0x0e From 97c153da56d0e4ece56cb0065b8e3f40ba29a00b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:47:27 -0700 Subject: [PATCH 1539/2431] staging: comedi: pcl812: rename private data 'IRQbits' Rename this CamelCase symbol. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl812.c | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl812.c b/drivers/staging/comedi/drivers/pcl812.c index 607cc880b7eb..9c75065dd26a 100644 --- a/drivers/staging/comedi/drivers/pcl812.c +++ b/drivers/staging/comedi/drivers/pcl812.c @@ -336,7 +336,7 @@ struct pcl812_board { int n_aochan; unsigned int ai_ns_min; const struct comedi_lrange *rangelist_ai; - unsigned int IRQbits; + unsigned int irq_bits; unsigned int has_dma:1; unsigned int has_16bit_ai:1; unsigned int has_mpc508_mux:1; @@ -351,7 +351,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 33000, .rangelist_ai = &range_bipolar10, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_dio = 1, }, { @@ -361,7 +361,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 33000, .rangelist_ai = &range_pcl812pg_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_dio = 1, }, { @@ -371,7 +371,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 10000, .rangelist_ai = &range_pcl812pg_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_dio = 1, }, { @@ -381,7 +381,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 10000, .rangelist_ai = &range_acl8112dg_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_mpc508_mux = 1, .has_dio = 1, @@ -392,7 +392,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 10000, .rangelist_ai = &range_acl8112hg_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_mpc508_mux = 1, .has_dio = 1, @@ -403,7 +403,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 1, .ai_ns_min = 10000, .rangelist_ai = &range_pcl813b_ai, - .IRQbits = 0x000c, + .irq_bits = 0x000c, .has_dio = 1, }, { .name = "a821pglnda", @@ -411,7 +411,7 @@ static const struct pcl812_board boardtypes[] = { .n_aichan = 16, /* 8 differential */ .ai_ns_min = 10000, .rangelist_ai = &range_pcl813b_ai, - .IRQbits = 0x000c, + .irq_bits = 0x000c, }, { .name = "a821pgh", .board_type = BOARD_A821, @@ -419,7 +419,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 1, .ai_ns_min = 10000, .rangelist_ai = &range_a821pgh_ai, - .IRQbits = 0x000c, + .irq_bits = 0x000c, .has_dio = 1, }, { .name = "a822pgl", @@ -428,7 +428,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 10000, .rangelist_ai = &range_acl8112dg_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_dio = 1, }, { @@ -438,7 +438,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 10000, .rangelist_ai = &range_acl8112hg_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_dio = 1, }, { @@ -448,7 +448,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 8000, .rangelist_ai = &range_acl8112dg_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_dio = 1, }, { @@ -458,7 +458,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 8000, .rangelist_ai = &range_acl8112hg_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_dio = 1, }, { @@ -488,7 +488,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 10000, .rangelist_ai = &range_pcl813b2_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_16bit_ai = 1, .has_mpc508_mux = 1, @@ -500,7 +500,7 @@ static const struct pcl812_board boardtypes[] = { .n_aochan = 2, .ai_ns_min = 10000, .rangelist_ai = &range_pcl813b2_ai, - .IRQbits = 0xdcfc, + .irq_bits = 0xdcfc, .has_dma = 1, .has_16bit_ai = 1, .has_dio = 1, @@ -1143,14 +1143,14 @@ static int pcl812_attach(struct comedi_device *dev, struct comedi_devconfig *it) if (ret) return ret; - if (board->IRQbits) { + if (board->irq_bits) { dev->pacer = comedi_8254_init(dev->iobase + PCL812_TIMER_BASE, I8254_OSC_BASE_2MHZ, I8254_IO8, 0); if (!dev->pacer) return -ENOMEM; - if ((1 << it->options[1]) & board->IRQbits) { + if ((1 << it->options[1]) & board->irq_bits) { ret = request_irq(it->options[1], pcl812_interrupt, 0, dev->board_name, dev); if (ret == 0) From c9ffbfb066698141a7959de2e91d3fdfd05991b3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:49:54 -0700 Subject: [PATCH 1540/2431] staging: comedi: pcl711: prefer using the BIT marco Fix the checkpatch.pl issues. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/pcl711.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/pcl711.c b/drivers/staging/comedi/drivers/pcl711.c index cfc3a627d0ca..3774daa9d661 100644 --- a/drivers/staging/comedi/drivers/pcl711.c +++ b/drivers/staging/comedi/drivers/pcl711.c @@ -49,7 +49,7 @@ #define PCL711_TIMER_BASE 0x00 #define PCL711_AI_LSB_REG 0x04 #define PCL711_AI_MSB_REG 0x05 -#define PCL711_AI_MSB_DRDY (1 << 4) +#define PCL711_AI_MSB_DRDY BIT(4) #define PCL711_AO_LSB_REG(x) (0x04 + ((x) * 2)) #define PCL711_AO_MSB_REG(x) (0x05 + ((x) * 2)) #define PCL711_DI_LSB_REG 0x06 @@ -60,16 +60,17 @@ #define PCL711_AI_GAIN(x) (((x) & 0xf) << 0) #define PCL711_MUX_REG 0x0a #define PCL711_MUX_CHAN(x) (((x) & 0xf) << 0) -#define PCL711_MUX_CS0 (1 << 4) -#define PCL711_MUX_CS1 (1 << 5) +#define PCL711_MUX_CS0 BIT(4) +#define PCL711_MUX_CS1 BIT(5) #define PCL711_MUX_DIFF (PCL711_MUX_CS0 | PCL711_MUX_CS1) #define PCL711_MODE_REG 0x0b -#define PCL711_MODE_DEFAULT (0 << 0) -#define PCL711_MODE_SOFTTRIG (1 << 0) -#define PCL711_MODE_EXT (2 << 0) -#define PCL711_MODE_EXT_IRQ (3 << 0) -#define PCL711_MODE_PACER (4 << 0) -#define PCL711_MODE_PACER_IRQ (6 << 0) +#define PCL711_MODE(x) (((x) & 0x7) << 0) +#define PCL711_MODE_DEFAULT PCL711_MODE(0) +#define PCL711_MODE_SOFTTRIG PCL711_MODE(1) +#define PCL711_MODE_EXT PCL711_MODE(2) +#define PCL711_MODE_EXT_IRQ PCL711_MODE(3) +#define PCL711_MODE_PACER PCL711_MODE(4) +#define PCL711_MODE_PACER_IRQ PCL711_MODE(6) #define PCL711_MODE_IRQ(x) (((x) & 0x7) << 4) #define PCL711_SOFTTRIG_REG 0x0c #define PCL711_SOFTTRIG (0 << 0) /* any value will work */ From e437b1abab7486c5100606fcdeba8b1f60884a5d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:26 -0700 Subject: [PATCH 1541/2431] staging: comedi: mpc624: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 99 +++++++++++++------------ 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 8e9204150eb7..56f799d61403 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -1,55 +1,56 @@ /* - comedi/drivers/mpc624.c - Hardware driver for a Micro/sys inc. MPC-624 PC/104 board + * mpc624.c + * Hardware driver for a Micro/sys inc. MPC-624 PC/104 board + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 2000 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 2000 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ /* -Driver: mpc624 -Description: Micro/sys MPC-624 PC/104 board -Devices: [Micro/sys] MPC-624 (mpc624) -Author: Stanislaw Raczynski -Updated: Thu, 15 Sep 2005 12:01:18 +0200 -Status: working - - The Micro/sys MPC-624 board is based on the LTC2440 24-bit sigma-delta - ADC chip. - - Subdevices supported by the driver: - - Analog In: supported - - Digital I/O: not supported - - LEDs: not supported - - EEPROM: not supported - -Configuration Options: - [0] - I/O base address - [1] - conversion rate - Conversion rate RMS noise Effective Number Of Bits - 0 3.52kHz 23uV 17 - 1 1.76kHz 3.5uV 20 - 2 880Hz 2uV 21.3 - 3 440Hz 1.4uV 21.8 - 4 220Hz 1uV 22.4 - 5 110Hz 750uV 22.9 - 6 55Hz 510nV 23.4 - 7 27.5Hz 375nV 24 - 8 13.75Hz 250nV 24.4 - 9 6.875Hz 200nV 24.6 - [2] - voltage range - 0 -1.01V .. +1.01V - 1 -10.1V .. +10.1V -*/ + * Driver: mpc624 + * Description: Micro/sys MPC-624 PC/104 board + * Devices: [Micro/sys] MPC-624 (mpc624) + * Author: Stanislaw Raczynski + * Updated: Thu, 15 Sep 2005 12:01:18 +0200 + * Status: working + * + * The Micro/sys MPC-624 board is based on the LTC2440 24-bit sigma-delta + * ADC chip. + * + * Subdevices supported by the driver: + * - Analog In: supported + * - Digital I/O: not supported + * - LEDs: not supported + * - EEPROM: not supported + * + * Configuration Options: + * [0] - I/O base address + * [1] - conversion rate + * Conversion rate RMS noise Effective Number Of Bits + * 0 3.52kHz 23uV 17 + * 1 1.76kHz 3.5uV 20 + * 2 880Hz 2uV 21.3 + * 3 440Hz 1.4uV 21.8 + * 4 220Hz 1uV 22.4 + * 5 110Hz 750uV 22.9 + * 6 55Hz 510nV 23.4 + * 7 27.5Hz 375nV 24 + * 8 13.75Hz 250nV 24.4 + * 9 6.875Hz 200nV 24.6 + * [2] - voltage range + * 0 -1.01V .. +1.01V + * 1 -10.1V .. +10.1V + */ #include #include "../comedidev.h" From 00dd53e00566b1b40f82945f2294602e71582bdb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:27 -0700 Subject: [PATCH 1542/2431] staging: comedi: mpc624: tidy up the ai conversion speed code Rename the CamelCase private data 'ulConvertionRate' and MPC624_SPEED_* defines. Create a macro to set the OSR bits that set the ai conversion speed and use it for the various MPC624_SPEED_* defines. Remove the unnecessary comment describing the speeds, this information is alread in the comedi driver comment block. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 74 +++++++++---------------- 1 file changed, 25 insertions(+), 49 deletions(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 56f799d61403..6fa69fb57b5d 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -74,50 +74,26 @@ #define MPC624_ADSCK BIT(1) #define MPC624_ADSDI BIT(0) -/* SDI Speed/Resolution Programming bits */ -#define MPC624_OSR4 BIT(31) -#define MPC624_OSR3 BIT(30) -#define MPC624_OSR2 BIT(29) -#define MPC624_OSR1 BIT(28) -#define MPC624_OSR0 BIT(27) - /* 32-bit output value bits' names */ #define MPC624_EOC_BIT BIT(31) #define MPC624_DMY_BIT BIT(30) #define MPC624_SGN_BIT BIT(29) -/* Conversion speeds */ -/* OSR4 OSR3 OSR2 OSR1 OSR0 Conversion rate RMS noise ENOB^ - * X 0 0 0 1 3.52kHz 23uV 17 - * X 0 0 1 0 1.76kHz 3.5uV 20 - * X 0 0 1 1 880Hz 2uV 21.3 - * X 0 1 0 0 440Hz 1.4uV 21.8 - * X 0 1 0 1 220Hz 1uV 22.4 - * X 0 1 1 0 110Hz 750uV 22.9 - * X 0 1 1 1 55Hz 510nV 23.4 - * X 1 0 0 0 27.5Hz 375nV 24 - * X 1 0 0 1 13.75Hz 250nV 24.4 - * X 1 1 1 1 6.875Hz 200nV 24.6 - * - * ^ - Effective Number Of Bits - */ +/* SDI Speed/Resolution Programming bits */ +#define MPC624_OSR(x) (((x) & 0x1f) << 27) +#define MPC624_SPEED_3_52_KHZ MPC624_OSR(0x11) +#define MPC624_SPEED_1_76_KHZ MPC624_OSR(0x12) +#define MPC624_SPEED_880_HZ MPC624_OSR(0x13) +#define MPC624_SPEED_440_HZ MPC624_OSR(0x14) +#define MPC624_SPEED_220_HZ MPC624_OSR(0x15) +#define MPC624_SPEED_110_HZ MPC624_OSR(0x16) +#define MPC624_SPEED_55_HZ MPC624_OSR(0x17) +#define MPC624_SPEED_27_5_HZ MPC624_OSR(0x18) +#define MPC624_SPEED_13_75_HZ MPC624_OSR(0x19) +#define MPC624_SPEED_6_875_HZ MPC624_OSR(0x1f) -#define MPC624_SPEED_3_52_kHz (MPC624_OSR4 | MPC624_OSR0) -#define MPC624_SPEED_1_76_kHz (MPC624_OSR4 | MPC624_OSR1) -#define MPC624_SPEED_880_Hz (MPC624_OSR4 | MPC624_OSR1 | MPC624_OSR0) -#define MPC624_SPEED_440_Hz (MPC624_OSR4 | MPC624_OSR2) -#define MPC624_SPEED_220_Hz (MPC624_OSR4 | MPC624_OSR2 | MPC624_OSR0) -#define MPC624_SPEED_110_Hz (MPC624_OSR4 | MPC624_OSR2 | MPC624_OSR1) -#define MPC624_SPEED_55_Hz \ - (MPC624_OSR4 | MPC624_OSR2 | MPC624_OSR1 | MPC624_OSR0) -#define MPC624_SPEED_27_5_Hz (MPC624_OSR4 | MPC624_OSR3) -#define MPC624_SPEED_13_75_Hz (MPC624_OSR4 | MPC624_OSR3 | MPC624_OSR0) -#define MPC624_SPEED_6_875_Hz \ - (MPC624_OSR4 | MPC624_OSR3 | MPC624_OSR2 | MPC624_OSR1 | MPC624_OSR0) -/* -------------------------------------------------------------------------- */ struct mpc624_private { - /* set by mpc624_attach() from driver's parameters */ - unsigned long int ulConvertionRate; + unsigned long int ai_speed; }; /* -------------------------------------------------------------------------- */ @@ -183,7 +159,7 @@ static int mpc624_ai_rinsn(struct comedi_device *dev, /* Start reading data */ data_in = 0; - data_out = devpriv->ulConvertionRate; + data_out = devpriv->ai_speed; udelay(1); for (i = 0; i < 32; i++) { /* Set the clock low */ @@ -286,37 +262,37 @@ static int mpc624_attach(struct comedi_device *dev, struct comedi_devconfig *it) switch (it->options[1]) { case 0: - devpriv->ulConvertionRate = MPC624_SPEED_3_52_kHz; + devpriv->ai_speed = MPC624_SPEED_3_52_KHZ; break; case 1: - devpriv->ulConvertionRate = MPC624_SPEED_1_76_kHz; + devpriv->ai_speed = MPC624_SPEED_1_76_KHZ; break; case 2: - devpriv->ulConvertionRate = MPC624_SPEED_880_Hz; + devpriv->ai_speed = MPC624_SPEED_880_HZ; break; case 3: - devpriv->ulConvertionRate = MPC624_SPEED_440_Hz; + devpriv->ai_speed = MPC624_SPEED_440_HZ; break; case 4: - devpriv->ulConvertionRate = MPC624_SPEED_220_Hz; + devpriv->ai_speed = MPC624_SPEED_220_HZ; break; case 5: - devpriv->ulConvertionRate = MPC624_SPEED_110_Hz; + devpriv->ai_speed = MPC624_SPEED_110_HZ; break; case 6: - devpriv->ulConvertionRate = MPC624_SPEED_55_Hz; + devpriv->ai_speed = MPC624_SPEED_55_HZ; break; case 7: - devpriv->ulConvertionRate = MPC624_SPEED_27_5_Hz; + devpriv->ai_speed = MPC624_SPEED_27_5_HZ; break; case 8: - devpriv->ulConvertionRate = MPC624_SPEED_13_75_Hz; + devpriv->ai_speed = MPC624_SPEED_13_75_HZ; break; case 9: - devpriv->ulConvertionRate = MPC624_SPEED_6_875_Hz; + devpriv->ai_speed = MPC624_SPEED_6_875_HZ; break; default: - devpriv->ulConvertionRate = MPC624_SPEED_3_52_kHz; + devpriv->ai_speed = MPC624_SPEED_3_52_KHZ; } ret = comedi_alloc_subdevices(dev, 1); From 3f1fd22caac0c8c1085dcf6bda143496a7ffd0ce Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:28 -0700 Subject: [PATCH 1543/2431] staging: comedi: mpc624: update MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more useful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 6fa69fb57b5d..41b0e85e55b7 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -330,5 +330,5 @@ static struct comedi_driver mpc624_driver = { module_comedi_driver(mpc624_driver); MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); +MODULE_DESCRIPTION("Comedi driver for Micro/sys MPC-624 PC/104 board"); MODULE_LICENSE("GPL"); From 70e803352f100a9404ace6d06a6f7bec3909fb2d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:29 -0700 Subject: [PATCH 1544/2431] staging: comedi: mpc624: tidy up subdevice init For aesthetics, add some whitespace to the subdevice init. Remove the unnecessary switch() code used to set the maxdata and range_table. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 41b0e85e55b7..7df81cf84d12 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -299,24 +299,15 @@ static int mpc624_attach(struct comedi_device *dev, struct comedi_devconfig *it) if (ret) return ret; + /* Analog Input subdevice */ s = &dev->subdevices[0]; - s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_DIFF; - s->n_chan = 8; - switch (it->options[1]) { - default: - s->maxdata = 0x3FFFFFFF; - } - - switch (it->options[1]) { - case 0: - s->range_table = &range_mpc624_bipolar1; - break; - default: - s->range_table = &range_mpc624_bipolar10; - } - s->len_chanlist = 1; - s->insn_read = mpc624_ai_rinsn; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_DIFF; + s->n_chan = 8; + s->maxdata = 0x3fffffff; + s->range_table = (it->options[1] == 0) ? &range_mpc624_bipolar1 + : &range_mpc624_bipolar10; + s->insn_read = mpc624_ai_rinsn; return 0; } From 4b7b3d04f45b89c1c145737528c7b9c87b92a057 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:30 -0700 Subject: [PATCH 1545/2431] staging: comedi: mpc624: there are only 4 analog inputs According to the datasheet, this board has 4 differential analog input channels not 8. Fix the subdevice init. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 7df81cf84d12..0527d3e18623 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -303,7 +303,7 @@ static int mpc624_attach(struct comedi_device *dev, struct comedi_devconfig *it) s = &dev->subdevices[0]; s->type = COMEDI_SUBD_AI; s->subdev_flags = SDF_READABLE | SDF_DIFF; - s->n_chan = 8; + s->n_chan = 4; s->maxdata = 0x3fffffff; s->range_table = (it->options[1] == 0) ? &range_mpc624_bipolar1 : &range_mpc624_bipolar10; From aa0cf376b9dc3b09af0f40ce7ace76e3d45c33a9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:31 -0700 Subject: [PATCH 1546/2431] staging: comedi: mpc624: rename mpc624_ai_rinsn() For aesthetics, rename this function to follow the normal convention in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 0527d3e18623..0e8976045bff 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -128,9 +128,10 @@ static int mpc624_ai_eoc(struct comedi_device *dev, return -EBUSY; } -static int mpc624_ai_rinsn(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, - unsigned int *data) +static int mpc624_ai_insn_read(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct mpc624_private *devpriv = dev->private; int n, i; @@ -307,7 +308,7 @@ static int mpc624_attach(struct comedi_device *dev, struct comedi_devconfig *it) s->maxdata = 0x3fffffff; s->range_table = (it->options[1] == 0) ? &range_mpc624_bipolar1 : &range_mpc624_bipolar10; - s->insn_read = mpc624_ai_rinsn; + s->insn_read = mpc624_ai_insn_read; return 0; } From f5fbccb9eea7354b7aaf41b10a1b44cf4c7b8d99 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:32 -0700 Subject: [PATCH 1547/2431] staging: comedi: mpc624: introduce mpc624_ai_get_sample() Introduce a helper function to read the analog sample from the serially connected A/D converter and handle the munging of the data. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 172 ++++++++++++------------ 1 file changed, 83 insertions(+), 89 deletions(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 0e8976045bff..3763dc52e48e 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -115,6 +115,85 @@ static const struct comedi_lrange range_mpc624_bipolar10 = { } }; +static unsigned int mpc624_ai_get_sample(struct comedi_device *dev, + struct comedi_subdevice *s) +{ + struct mpc624_private *devpriv = dev->private; + unsigned int data_out = devpriv->ai_speed; + unsigned int data_in = 0; + unsigned int bit; + int i; + + /* Start reading data */ + udelay(1); + for (i = 0; i < 32; i++) { + /* Set the clock low */ + outb(0, dev->iobase + MPC624_ADC); + udelay(1); + + /* Set the ADSDI line for the next bit (send to MPC624) */ + bit = (data_out & BIT(31)) ? MPC624_ADSDI : 0; + outb(bit, dev->iobase + MPC624_ADC); + udelay(1); + + /* Set the clock high */ + outb(MPC624_ADSCK | bit, dev->iobase + MPC624_ADC); + udelay(1); + + /* Read ADSDO on high clock (receive from MPC624) */ + data_in <<= 1; + data_in |= (inb(dev->iobase + MPC624_ADC) & MPC624_ADSDO) >> 4; + udelay(1); + + data_out <<= 1; + } + + /* + * Received 32-bit long value consist of: + * 31: EOC - (End Of Transmission) bit - should be 0 + * 30: DMY - (Dummy) bit - should be 0 + * 29: SIG - (Sign) bit - 1 if positive, 0 if negative + * 28: MSB - (Most Significant Bit) - the first bit of the + * conversion result + * .... + * 05: LSB - (Least Significant Bit)- the last bit of the + * conversion result + * 04-00: sub-LSB - sub-LSBs are basically noise, but when + * averaged properly, they can increase + * conversion precision up to 29 bits; + * they can be discarded without loss of + * resolution. + */ + if (data_in & MPC624_EOC_BIT) + dev_dbg(dev->class_dev, "EOC bit is set!"); + if (data_in & MPC624_DMY_BIT) + dev_dbg(dev->class_dev, "DMY bit is set!"); + + if (data_in & MPC624_SGN_BIT) { + /* + * Voltage is positive + * + * comedi operates on unsigned numbers, so mask off EOC + * and DMY and don't clear the SGN bit + */ + data_in &= 0x3fffffff; + } else { + /* + * The voltage is negative + * + * data_in contains a number in 30-bit two's complement + * code and we must deal with it + */ + data_in |= MPC624_SGN_BIT; + data_in = ~data_in; + data_in += 1; + /* clear EOC and DMY bits */ + data_in &= ~(MPC624_EOC_BIT | MPC624_DMY_BIT); + data_in = 0x20000000 - data_in; + } + return data_in; +} + static int mpc624_ai_eoc(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -133,10 +212,8 @@ static int mpc624_ai_insn_read(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - struct mpc624_private *devpriv = dev->private; - int n, i; - unsigned long int data_in, data_out; int ret; + int i; /* * WARNING: @@ -144,7 +221,7 @@ static int mpc624_ai_insn_read(struct comedi_device *dev, */ outb(insn->chanspec, dev->iobase + MPC624_GNMUXCH); - for (n = 0; n < insn->n; n++) { + for (i = 0; i < insn->n; i++) { /* Trigger the conversion */ outb(MPC624_ADSCK, dev->iobase + MPC624_ADC); udelay(1); @@ -158,93 +235,10 @@ static int mpc624_ai_insn_read(struct comedi_device *dev, if (ret) return ret; - /* Start reading data */ - data_in = 0; - data_out = devpriv->ai_speed; - udelay(1); - for (i = 0; i < 32; i++) { - /* Set the clock low */ - outb(0, dev->iobase + MPC624_ADC); - udelay(1); - - if (data_out & BIT(31)) { /* the next bit is a 1 */ - /* Set the ADSDI line (send to MPC624) */ - outb(MPC624_ADSDI, dev->iobase + MPC624_ADC); - udelay(1); - /* Set the clock high */ - outb(MPC624_ADSCK | MPC624_ADSDI, - dev->iobase + MPC624_ADC); - } else { /* the next bit is a 0 */ - - /* Set the ADSDI line (send to MPC624) */ - outb(0, dev->iobase + MPC624_ADC); - udelay(1); - /* Set the clock high */ - outb(MPC624_ADSCK, dev->iobase + MPC624_ADC); - } - /* Read ADSDO on high clock (receive from MPC624) */ - udelay(1); - data_in <<= 1; - data_in |= - (inb(dev->iobase + MPC624_ADC) & MPC624_ADSDO) >> 4; - udelay(1); - - data_out <<= 1; - } - - /* - * Received 32-bit long value consist of: - * 31: EOC - - * (End Of Transmission) bit - should be 0 - * 30: DMY - * (Dummy) bit - should be 0 - * 29: SIG - * (Sign) bit- 1 if the voltage is positive, - * 0 if negative - * 28: MSB - * (Most Significant Bit) - the first bit of - * the conversion result - * .... - * 05: LSB - * (Least Significant Bit)- the last bit of the - * conversion result - * 04-00: sub-LSB - * - sub-LSBs are basically noise, but when - * averaged properly, they can increase conversion - * precision up to 29 bits; they can be discarded - * without loss of resolution. - */ - - if (data_in & MPC624_EOC_BIT) - dev_dbg(dev->class_dev, - "EOC bit is set (data_in=%lu)!", data_in); - if (data_in & MPC624_DMY_BIT) - dev_dbg(dev->class_dev, - "DMY bit is set (data_in=%lu)!", data_in); - if (data_in & MPC624_SGN_BIT) { /* Volatge is positive */ - /* - * comedi operates on unsigned numbers, so mask off EOC - * and DMY and don't clear the SGN bit - */ - data_in &= 0x3FFFFFFF; - data[n] = data_in; - } else { /* The voltage is negative */ - /* - * data_in contains a number in 30-bit two's complement - * code and we must deal with it - */ - data_in |= MPC624_SGN_BIT; - data_in = ~data_in; - data_in += 1; - data_in &= ~(MPC624_EOC_BIT | MPC624_DMY_BIT); - /* clear EOC and DMY bits */ - data_in = 0x20000000 - data_in; - data[n] = data_in; - } + data[i] = mpc624_ai_get_sample(dev, s); } - /* Return the number of samples read/written */ - return n; + return insn->n; } static int mpc624_attach(struct comedi_device *dev, struct comedi_devconfig *it) From 47bdee7be0b34cc613ec4406a0d9737df1786f32 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:33 -0700 Subject: [PATCH 1548/2431] staging: comedi: mpc624: use tabs for whitespace instead of spaces For aesthetics, use tabs instead of spaces for the whitespace in the register defines. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 30 ++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 3763dc52e48e..c7913a3deaa8 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -59,25 +59,25 @@ /* Offsets of different ports */ #define MPC624_MASTER_CONTROL 0 /* not used */ -#define MPC624_GNMUXCH 1 /* Gain, Mux, Channel of ADC */ -#define MPC624_ADC 2 /* read/write to/from ADC */ -#define MPC624_EE 3 /* read/write to/from serial EEPROM via I2C */ -#define MPC624_LEDS 4 /* write to LEDs */ -#define MPC624_DIO 5 /* read/write to/from digital I/O ports */ -#define MPC624_IRQ_MASK 6 /* IRQ masking enable/disable */ +#define MPC624_GNMUXCH 1 /* Gain, Mux, Channel of ADC */ +#define MPC624_ADC 2 /* read/write to/from ADC */ +#define MPC624_EE 3 /* read/write to/from serial EEPROM via I2C */ +#define MPC624_LEDS 4 /* write to LEDs */ +#define MPC624_DIO 5 /* read/write to/from digital I/O ports */ +#define MPC624_IRQ_MASK 6 /* IRQ masking enable/disable */ /* Register bits' names */ -#define MPC624_ADBUSY BIT(5) -#define MPC624_ADSDO BIT(4) -#define MPC624_ADFO BIT(3) -#define MPC624_ADCS BIT(2) -#define MPC624_ADSCK BIT(1) -#define MPC624_ADSDI BIT(0) +#define MPC624_ADBUSY BIT(5) +#define MPC624_ADSDO BIT(4) +#define MPC624_ADFO BIT(3) +#define MPC624_ADCS BIT(2) +#define MPC624_ADSCK BIT(1) +#define MPC624_ADSDI BIT(0) /* 32-bit output value bits' names */ -#define MPC624_EOC_BIT BIT(31) -#define MPC624_DMY_BIT BIT(30) -#define MPC624_SGN_BIT BIT(29) +#define MPC624_EOC_BIT BIT(31) +#define MPC624_DMY_BIT BIT(30) +#define MPC624_SGN_BIT BIT(29) /* SDI Speed/Resolution Programming bits */ #define MPC624_OSR(x) (((x) & 0x1f) << 27) From 4403437e57c43c59c691a710a440d0924ed91b28 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:34 -0700 Subject: [PATCH 1549/2431] staging: comedi: mpc624: change type of private data 'ai_speed' For aesthetics, change the type of this member to unsigned int. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mpc624.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index c7913a3deaa8..826e4399c87e 100644 --- a/drivers/staging/comedi/drivers/mpc624.c +++ b/drivers/staging/comedi/drivers/mpc624.c @@ -93,7 +93,7 @@ #define MPC624_SPEED_6_875_HZ MPC624_OSR(0x1f) struct mpc624_private { - unsigned long int ai_speed; + unsigned int ai_speed; }; /* -------------------------------------------------------------------------- */ From 377767135a7c6f6dc89b65680123411d4f470508 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:35:18 -0700 Subject: [PATCH 1550/2431] staging: comedi: ke_counter: prefer using the BIT macro Use a macro to define the clock source options. This fixes the checkpatch.pl issue about: CHECK: Prefer using the BIT macro Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ke_counter.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/ke_counter.c b/drivers/staging/comedi/drivers/ke_counter.c index dc642edf4f65..93198abf0ee5 100644 --- a/drivers/staging/comedi/drivers/ke_counter.c +++ b/drivers/staging/comedi/drivers/ke_counter.c @@ -41,9 +41,10 @@ #define KE_MSB_REG(x) (0x0c + ((x) * 0x20)) #define KE_SIGN_REG(x) (0x10 + ((x) * 0x20)) #define KE_OSC_SEL_REG 0xf8 -#define KE_OSC_SEL_EXT (1 << 0) -#define KE_OSC_SEL_4MHZ (2 << 0) -#define KE_OSC_SEL_20MHZ (3 << 0) +#define KE_OSC_SEL_CLK(x) (((x) & 0x3) << 0) +#define KE_OSC_SEL_EXT KE_OSC_SEL_CLK(1) +#define KE_OSC_SEL_4MHZ KE_OSC_SEL_CLK(2) +#define KE_OSC_SEL_20MHZ KE_OSC_SEL_CLK(3) #define KE_DO_REG 0xfc static int ke_counter_insn_write(struct comedi_device *dev, From fca0b7dcfb20e9ca22dea0fdf551a7995cb3f2a4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:31:09 -0700 Subject: [PATCH 1551/2431] staging: comedi: gsc_hpdi: use preferred kernel types Fix the checkpatch.pl issues about: CHECK: Prefer kernel type 'u32' over 'uint32_t' CHECK: Prefer kernel type 'u8' over 'uint8_t' Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/gsc_hpdi.c | 28 +++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/comedi/drivers/gsc_hpdi.c b/drivers/staging/comedi/drivers/gsc_hpdi.c index e9296182236e..46ca5d938d5b 100644 --- a/drivers/staging/comedi/drivers/gsc_hpdi.c +++ b/drivers/staging/comedi/drivers/gsc_hpdi.c @@ -125,7 +125,7 @@ struct hpdi_private { void __iomem *plx9080_mmio; - uint32_t *dio_buffer[NUM_DMA_BUFFERS]; /* dma buffers */ + u32 *dio_buffer[NUM_DMA_BUFFERS]; /* dma buffers */ /* physical addresses of dma buffers */ dma_addr_t dio_buffer_phys_addr[NUM_DMA_BUFFERS]; /* @@ -137,7 +137,7 @@ struct hpdi_private { dma_addr_t dma_desc_phys_addr; unsigned int num_dma_descriptors; /* pointer to start of buffers indexed by descriptor */ - uint32_t *desc_dio_buffer[NUM_DMA_DESCRIPTORS]; + u32 *desc_dio_buffer[NUM_DMA_DESCRIPTORS]; /* index of the dma descriptor that is currently being used */ unsigned int dma_desc_index; unsigned int tx_fifo_size; @@ -169,7 +169,7 @@ static void gsc_hpdi_drain_dma(struct comedi_device *dev, unsigned int channel) for (desc = 0; (next < start || next >= start + devpriv->block_size) && desc < devpriv->num_dma_descriptors; desc++) { /* transfer data from dma buffer to comedi buffer */ - size = devpriv->block_size / sizeof(uint32_t); + size = devpriv->block_size / sizeof(u32); if (cmd->stop_src == TRIG_COUNT) { if (size > devpriv->dio_count) size = devpriv->dio_count; @@ -192,10 +192,10 @@ static irqreturn_t gsc_hpdi_interrupt(int irq, void *d) struct hpdi_private *devpriv = dev->private; struct comedi_subdevice *s = dev->read_subdev; struct comedi_async *async = s->async; - uint32_t hpdi_intr_status, hpdi_board_status; - uint32_t plx_status; - uint32_t plx_bits; - uint8_t dma0_status, dma1_status; + u32 hpdi_intr_status, hpdi_board_status; + u32 plx_status; + u32 plx_bits; + u8 dma0_status, dma1_status; unsigned long flags; if (!dev->attached) @@ -290,7 +290,7 @@ static int gsc_hpdi_cmd(struct comedi_device *dev, struct comedi_async *async = s->async; struct comedi_cmd *cmd = &async->cmd; unsigned long flags; - uint32_t bits; + u32 bits; if (s->io_bits) return -EINVAL; @@ -424,15 +424,15 @@ static int gsc_hpdi_setup_dma_descriptors(struct comedi_device *dev, { struct hpdi_private *devpriv = dev->private; dma_addr_t phys_addr = devpriv->dma_desc_phys_addr; - uint32_t next_bits = PLX_DESC_IN_PCI_BIT | PLX_INTR_TERM_COUNT | - PLX_XFER_LOCAL_TO_PCI; + u32 next_bits = PLX_DESC_IN_PCI_BIT | PLX_INTR_TERM_COUNT | + PLX_XFER_LOCAL_TO_PCI; unsigned int offset = 0; unsigned int idx = 0; unsigned int i; if (len > DMA_BUFFER_SIZE) len = DMA_BUFFER_SIZE; - len -= len % sizeof(uint32_t); + len -= len % sizeof(u32); if (len == 0) return -EINVAL; @@ -445,7 +445,7 @@ static int gsc_hpdi_setup_dma_descriptors(struct comedi_device *dev, (i + 1) * sizeof(devpriv->dma_desc[0])) | next_bits); devpriv->desc_dio_buffer[i] = devpriv->dio_buffer[idx] + - (offset / sizeof(uint32_t)); + (offset / sizeof(u32)); offset += len; if (len + offset > DMA_BUFFER_SIZE) { @@ -516,7 +516,7 @@ static void gsc_hpdi_free_dma(struct comedi_device *dev) static int gsc_hpdi_init(struct comedi_device *dev) { struct hpdi_private *devpriv = dev->private; - uint32_t plx_intcsr_bits; + u32 plx_intcsr_bits; /* wait 10usec after reset before accessing fifos */ writel(BOARD_RESET_BIT, dev->mmio + BOARD_CONTROL_REG); @@ -546,7 +546,7 @@ static int gsc_hpdi_init(struct comedi_device *dev) static void gsc_hpdi_init_plx9080(struct comedi_device *dev) { struct hpdi_private *devpriv = dev->private; - uint32_t bits; + u32 bits; void __iomem *plx_iobase = devpriv->plx9080_mmio; #ifdef __BIG_ENDIAN From 71c01379d1c57c96d833202d6b8128ccffc42665 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:43:44 -0700 Subject: [PATCH 1552/2431] staging: comedi: fl512: usleep_range is preferred over udelay Fix checkpatch.pl issue: CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt Replace the udelay() with usleep_range() with a reasonable upper limit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/fl512.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/fl512.c b/drivers/staging/comedi/drivers/fl512.c index 55cae61458cb..0f278ffdad76 100644 --- a/drivers/staging/comedi/drivers/fl512.c +++ b/drivers/staging/comedi/drivers/fl512.c @@ -71,7 +71,7 @@ static int fl512_ai_insn_read(struct comedi_device *dev, outb(0, dev->iobase + FL512_AI_START_CONV_REG); /* XXX should test "done" flag instead of delay */ - udelay(30); + usleep_range(30, 100); val = inb(dev->iobase + FL512_AI_LSB_REG); val |= (inb(dev->iobase + FL512_AI_MSB_REG) << 8); From 1da661759f5f34f218d4d65c8872d271146d561b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 13:05:02 -0700 Subject: [PATCH 1553/2431] staging: comedi: 8255_pci: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/8255_pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/8255_pci.c b/drivers/staging/comedi/drivers/8255_pci.c index bb9854b56807..38c05d1ec647 100644 --- a/drivers/staging/comedi/drivers/8255_pci.c +++ b/drivers/staging/comedi/drivers/8255_pci.c @@ -178,8 +178,8 @@ static const struct pci_8255_boardinfo pci_8255_boards[] = { }; /* ripped from mite.h and mite_setup2() to avoid mite dependency */ -#define MITE_IODWBSR 0xc0 /* IO Device Window Base Size Register */ -#define WENAB (1 << 7) /* window enable */ +#define MITE_IODWBSR 0xc0 /* IO Device Window Base Size Register */ +#define WENAB BIT(7) /* window enable */ static int pci_8255_mite_init(struct pci_dev *pcidev) { From 6cd46d716aa1877e02c82fa5ff8bbff5f85bfc2f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:32:14 -0700 Subject: [PATCH 1554/2431] staging: comedi: addi_apci_1032: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/addi_apci_1032.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi_apci_1032.c b/drivers/staging/comedi/drivers/addi_apci_1032.c index b37166d57b64..ccd1a91290bf 100644 --- a/drivers/staging/comedi/drivers/addi_apci_1032.c +++ b/drivers/staging/comedi/drivers/addi_apci_1032.c @@ -84,9 +84,10 @@ #define APCI1032_MODE2_REG 0x08 #define APCI1032_STATUS_REG 0x0c #define APCI1032_CTRL_REG 0x10 -#define APCI1032_CTRL_INT_OR (0 << 1) -#define APCI1032_CTRL_INT_AND (1 << 1) -#define APCI1032_CTRL_INT_ENA (1 << 2) +#define APCI1032_CTRL_INT_MODE(x) (((x) & 0x1) << 1) +#define APCI1032_CTRL_INT_OR APCI1032_CTRL_INT_MODE(0) +#define APCI1032_CTRL_INT_AND APCI1032_CTRL_INT_MODE(1) +#define APCI1032_CTRL_INT_ENA BIT(2) struct apci1032_private { unsigned long amcc_iobase; /* base of AMCC I/O registers */ From 6ed30c8945832246bbb4b84271327aa0f341e1dd Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:56:34 -0700 Subject: [PATCH 1555/2431] staging: comedi: addi_apci_3120: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../staging/comedi/drivers/addi_apci_3120.c | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c index 651b39319a3f..3630d75e36e8 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3120.c +++ b/drivers/staging/comedi/drivers/addi_apci_3120.c @@ -31,33 +31,33 @@ * PCI BAR 0 register map (devpriv->amcc) * see amcc_s5933.h for register and bit defines */ -#define APCI3120_FIFO_ADVANCE_ON_BYTE_2 (1 << 29) +#define APCI3120_FIFO_ADVANCE_ON_BYTE_2 BIT(29) /* * PCI BAR 1 register map (dev->iobase) */ #define APCI3120_AI_FIFO_REG 0x00 #define APCI3120_CTRL_REG 0x00 -#define APCI3120_CTRL_EXT_TRIG (1 << 15) -#define APCI3120_CTRL_GATE(x) (1 << (12 + (x))) +#define APCI3120_CTRL_EXT_TRIG BIT(15) +#define APCI3120_CTRL_GATE(x) BIT(12 + (x)) #define APCI3120_CTRL_PR(x) (((x) & 0xf) << 8) #define APCI3120_CTRL_PA(x) (((x) & 0xf) << 0) #define APCI3120_AI_SOFTTRIG_REG 0x02 #define APCI3120_STATUS_REG 0x02 -#define APCI3120_STATUS_EOC_INT (1 << 15) -#define APCI3120_STATUS_AMCC_INT (1 << 14) -#define APCI3120_STATUS_EOS_INT (1 << 13) -#define APCI3120_STATUS_TIMER2_INT (1 << 12) +#define APCI3120_STATUS_EOC_INT BIT(15) +#define APCI3120_STATUS_AMCC_INT BIT(14) +#define APCI3120_STATUS_EOS_INT BIT(13) +#define APCI3120_STATUS_TIMER2_INT BIT(12) #define APCI3120_STATUS_INT_MASK (0xf << 12) #define APCI3120_STATUS_TO_DI_BITS(x) (((x) >> 8) & 0xf) #define APCI3120_STATUS_TO_VERSION(x) (((x) >> 4) & 0xf) -#define APCI3120_STATUS_FIFO_FULL (1 << 2) -#define APCI3120_STATUS_FIFO_EMPTY (1 << 1) -#define APCI3120_STATUS_DA_READY (1 << 0) +#define APCI3120_STATUS_FIFO_FULL BIT(2) +#define APCI3120_STATUS_FIFO_EMPTY BIT(1) +#define APCI3120_STATUS_DA_READY BIT(0) #define APCI3120_TIMER_REG 0x04 #define APCI3120_CHANLIST_REG 0x06 #define APCI3120_CHANLIST_INDEX(x) (((x) & 0xf) << 8) -#define APCI3120_CHANLIST_UNIPOLAR (1 << 7) +#define APCI3120_CHANLIST_UNIPOLAR BIT(7) #define APCI3120_CHANLIST_GAIN(x) (((x) & 0x3) << 4) #define APCI3120_CHANLIST_MUX(x) (((x) & 0xf) << 0) #define APCI3120_AO_REG(x) (0x08 + (((x) / 4) * 2)) @@ -74,19 +74,21 @@ #define APCI3120_CTR0_DO_BITS(x) ((x) << 4) #define APCI3120_CTR0_TIMER_SEL(x) ((x) << 0) #define APCI3120_MODE_REG 0x0e -#define APCI3120_MODE_TIMER2_CLK_OSC (0 << 6) -#define APCI3120_MODE_TIMER2_CLK_OUT1 (1 << 6) -#define APCI3120_MODE_TIMER2_CLK_EOC (2 << 6) -#define APCI3120_MODE_TIMER2_CLK_EOS (3 << 6) -#define APCI3120_MODE_TIMER2_CLK_MASK (3 << 6) -#define APCI3120_MODE_TIMER2_AS_TIMER (0 << 4) -#define APCI3120_MODE_TIMER2_AS_COUNTER (1 << 4) -#define APCI3120_MODE_TIMER2_AS_WDOG (2 << 4) -#define APCI3120_MODE_TIMER2_AS_MASK (3 << 4) /* sets AS_TIMER */ -#define APCI3120_MODE_SCAN_ENA (1 << 3) -#define APCI3120_MODE_TIMER2_IRQ_ENA (1 << 2) -#define APCI3120_MODE_EOS_IRQ_ENA (1 << 1) -#define APCI3120_MODE_EOC_IRQ_ENA (1 << 0) +#define APCI3120_MODE_TIMER2_CLK(x) (((x) & 0x3) << 6) +#define APCI3120_MODE_TIMER2_CLK_OSC APCI3120_MODE_TIMER2_CLK(0) +#define APCI3120_MODE_TIMER2_CLK_OUT1 APCI3120_MODE_TIMER2_CLK(1) +#define APCI3120_MODE_TIMER2_CLK_EOC APCI3120_MODE_TIMER2_CLK(2) +#define APCI3120_MODE_TIMER2_CLK_EOS APCI3120_MODE_TIMER2_CLK(3) +#define APCI3120_MODE_TIMER2_CLK_MASK APCI3120_MODE_TIMER2_CLK(3) +#define APCI3120_MODE_TIMER2_AS(x) (((x) & 0x3) << 4) +#define APCI3120_MODE_TIMER2_AS_TIMER APCI3120_MODE_TIMER2_AS(0) +#define APCI3120_MODE_TIMER2_AS_COUNTER APCI3120_MODE_TIMER2_AS(1) +#define APCI3120_MODE_TIMER2_AS_WDOG APCI3120_MODE_TIMER2_AS(2) +#define APCI3120_MODE_TIMER2_AS_MASK APCI3120_MODE_TIMER2_AS(3) +#define APCI3120_MODE_SCAN_ENA BIT(3) +#define APCI3120_MODE_TIMER2_IRQ_ENA BIT(2) +#define APCI3120_MODE_EOS_IRQ_ENA BIT(1) +#define APCI3120_MODE_EOC_IRQ_ENA BIT(0) /* * PCI BAR 2 register map (devpriv->addon) @@ -94,8 +96,8 @@ #define APCI3120_ADDON_ADDR_REG 0x00 #define APCI3120_ADDON_DATA_REG 0x02 #define APCI3120_ADDON_CTRL_REG 0x04 -#define APCI3120_ADDON_CTRL_AMWEN_ENA (1 << 1) -#define APCI3120_ADDON_CTRL_A2P_FIFO_ENA (1 << 0) +#define APCI3120_ADDON_CTRL_AMWEN_ENA BIT(1) +#define APCI3120_ADDON_CTRL_A2P_FIFO_ENA BIT(0) /* * Board revisions From dcfd349493f7c37065c262a6f5939c1f3060b157 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:58:55 -0700 Subject: [PATCH 1556/2431] staging: comedi: addi_apci_3xxx: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/addi_apci_3xxx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi_apci_3xxx.c b/drivers/staging/comedi/drivers/addi_apci_3xxx.c index bef6efc84efd..995096c78844 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3xxx.c +++ b/drivers/staging/comedi/drivers/addi_apci_3xxx.c @@ -27,9 +27,9 @@ #include "../comedi_pci.h" -#define CONV_UNIT_NS (1 << 0) -#define CONV_UNIT_US (1 << 1) -#define CONV_UNIT_MS (1 << 2) +#define CONV_UNIT_NS BIT(0) +#define CONV_UNIT_US BIT(1) +#define CONV_UNIT_MS BIT(2) static const struct comedi_lrange apci3xxx_ai_range = { 8, { From ce6295e267014099ec849bb9a2b84c7b9f3dd8eb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:01:37 -0700 Subject: [PATCH 1557/2431] staging: comedi: adl_pci6208: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci6208.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/adl_pci6208.c b/drivers/staging/comedi/drivers/adl_pci6208.c index 7ed3fd6fbd3e..ad7e7c4a5232 100644 --- a/drivers/staging/comedi/drivers/adl_pci6208.c +++ b/drivers/staging/comedi/drivers/adl_pci6208.c @@ -41,7 +41,7 @@ */ #define PCI6208_AO_CONTROL(x) (0x00 + (2 * (x))) #define PCI6208_AO_STATUS 0x00 -#define PCI6208_AO_STATUS_DATA_SEND (1 << 0) +#define PCI6208_AO_STATUS_DATA_SEND BIT(0) #define PCI6208_DIO 0x40 #define PCI6208_DIO_DO_MASK (0x0f) #define PCI6208_DIO_DO_SHIFT (0) From a789fdf817c057598c6ae5f76f93591aa1ed3834 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 13:07:04 -0700 Subject: [PATCH 1558/2431] staging: comedi: adv_pci1724: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adv_pci1724.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/adv_pci1724.c b/drivers/staging/comedi/drivers/adv_pci1724.c index 9677111f9ab2..bf6a8f10118c 100644 --- a/drivers/staging/comedi/drivers/adv_pci1724.c +++ b/drivers/staging/comedi/drivers/adv_pci1724.c @@ -54,16 +54,17 @@ * PCI bar 2 Register I/O map (dev->iobase) */ #define PCI1724_DAC_CTRL_REG 0x00 -#define PCI1724_DAC_CTRL_GX(x) (1 << (20 + ((x) / 8))) +#define PCI1724_DAC_CTRL_GX(x) BIT(20 + ((x) / 8)) #define PCI1724_DAC_CTRL_CX(x) (((x) % 8) << 16) -#define PCI1724_DAC_CTRL_MODE_GAIN (1 << 14) -#define PCI1724_DAC_CTRL_MODE_OFFSET (2 << 14) -#define PCI1724_DAC_CTRL_MODE_NORMAL (3 << 14) -#define PCI1724_DAC_CTRL_MODE_MASK (3 << 14) +#define PCI1724_DAC_CTRL_MODE(x) (((x) & 0x3) << 14) +#define PCI1724_DAC_CTRL_MODE_GAIN PCI1724_DAC_CTRL_MODE(1) +#define PCI1724_DAC_CTRL_MODE_OFFSET PCI1724_DAC_CTRL_MODE(2) +#define PCI1724_DAC_CTRL_MODE_NORMAL PCI1724_DAC_CTRL_MODE(3) +#define PCI1724_DAC_CTRL_MODE_MASK PCI1724_DAC_CTRL_MODE(3) #define PCI1724_DAC_CTRL_DATA(x) (((x) & 0x3fff) << 0) #define PCI1724_SYNC_CTRL_REG 0x04 -#define PCI1724_SYNC_CTRL_DACSTAT (1 << 1) -#define PCI1724_SYNC_CTRL_SYN (1 << 0) +#define PCI1724_SYNC_CTRL_DACSTAT BIT(1) +#define PCI1724_SYNC_CTRL_SYN BIT(0) #define PCI1724_EEPROM_CTRL_REG 0x08 #define PCI1724_SYNC_TRIG_REG 0x0c /* any value works */ #define PCI1724_BOARD_ID_REG 0x10 From aafbdb1294f026e20617d9b1028f962af2e239c7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 13:02:51 -0700 Subject: [PATCH 1559/2431] staging: comedi: adv_pci1723: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adv_pci1723.c | 33 +++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/drivers/staging/comedi/drivers/adv_pci1723.c b/drivers/staging/comedi/drivers/adv_pci1723.c index 1921a97cc5ca..f82afd947310 100644 --- a/drivers/staging/comedi/drivers/adv_pci1723.c +++ b/drivers/staging/comedi/drivers/adv_pci1723.c @@ -51,25 +51,27 @@ #define PCI1723_BOARD_ID_REG 0x10 #define PCI1723_BOARD_ID_MASK (0xf << 0) #define PCI1723_SYNC_CTRL_REG 0x12 -#define PCI1723_SYNC_CTRL_ASYNC (0 << 0) -#define PCI1723_SYNC_CTRL_SYNC (1 << 0) +#define PCI1723_SYNC_CTRL(x) (((x) & 0x1) << 0) +#define PCI1723_SYNC_CTRL_ASYNC PCI1723_SYNC_CTRL(0) +#define PCI1723_SYNC_CTRL_SYNC PCI1723_SYNC_CTRL(1) #define PCI1723_CTRL_REG 0x14 -#define PCI1723_CTRL_BUSY (1 << 15) -#define PCI1723_CTRL_INIT (1 << 14) -#define PCI1723_CTRL_SELF (1 << 8) +#define PCI1723_CTRL_BUSY BIT(15) +#define PCI1723_CTRL_INIT BIT(14) +#define PCI1723_CTRL_SELF BIT(8) #define PCI1723_CTRL_IDX(x) (((x) & 0x3) << 6) #define PCI1723_CTRL_RANGE(x) (((x) & 0x3) << 4) -#define PCI1723_CTRL_GAIN (0 << 3) -#define PCI1723_CTRL_OFFSET (1 << 3) +#define PCI1723_CTRL_SEL(x) (((x) & 0x1) << 3) +#define PCI1723_CTRL_GAIN PCI1723_CTRL_SEL(0) +#define PCI1723_CTRL_OFFSET PCI1723_CTRL_SEL(1) #define PCI1723_CTRL_CHAN(x) (((x) & 0x7) << 0) #define PCI1723_CALIB_CTRL_REG 0x16 -#define PCI1723_CALIB_CTRL_CS (1 << 2) -#define PCI1723_CALIB_CTRL_DAT (1 << 1) -#define PCI1723_CALIB_CTRL_CLK (1 << 0) +#define PCI1723_CALIB_CTRL_CS BIT(2) +#define PCI1723_CALIB_CTRL_DAT BIT(1) +#define PCI1723_CALIB_CTRL_CLK BIT(0) #define PCI1723_CALIB_STROBE_REG 0x18 #define PCI1723_DIO_CTRL_REG 0x1a -#define PCI1723_DIO_CTRL_HDIO (1 << 1) -#define PCI1723_DIO_CTRL_LDIO (1 << 0) +#define PCI1723_DIO_CTRL_HDIO BIT(1) +#define PCI1723_DIO_CTRL_LDIO BIT(0) #define PCI1723_DIO_DATA_REG 0x1c #define PCI1723_CALIB_DATA_REG 0x1e #define PCI1723_SYNC_STROBE_REG 0x20 @@ -77,9 +79,10 @@ #define PCI1723_RESET_CALIB_STROBE_REG 0x24 #define PCI1723_RANGE_STROBE_REG 0x26 #define PCI1723_VREF_REG 0x28 -#define PCI1723_VREF_NEG10V (0 << 0) -#define PCI1723_VREF_0V (1 << 0) -#define PCI1723_VREF_POS10V (3 << 0) +#define PCI1723_VREF(x) (((x) & 0x3) << 0) +#define PCI1723_VREF_NEG10V PCI1723_VREF(0) +#define PCI1723_VREF_0V PCI1723_VREF(1) +#define PCI1723_VREF_POS10V PCI1723_VREF(3) static int pci1723_ao_insn_write(struct comedi_device *dev, struct comedi_subdevice *s, From 0b7cbf14493f8bf8e171bc5a39780e434181f430 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:06 -0700 Subject: [PATCH 1560/2431] staging: comedi: mf6x4: prefer using the BIT macro Fix the checkpatch.pl issues. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 9 --------- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index a675e2ef9b45..817e8bf8f141 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -33,9 +33,9 @@ /* Registers present in BAR0 memory region */ #define MF624_GPIOC_R 0x54 -#define MF6X4_GPIOC_EOLC /* End Of Last Conversion */ (1 << 17) -#define MF6X4_GPIOC_LDAC /* Load DACs */ (1 << 23) -#define MF6X4_GPIOC_DACEN (1 << 26) +#define MF6X4_GPIOC_EOLC BIT(17) /* End Of Last Conversion */ +#define MF6X4_GPIOC_LDAC BIT(23) /* Load DACs */ +#define MF6X4_GPIOC_DACEN BIT(26) /* BAR1 registers */ #define MF6X4_DIN_R 0x10 From e33048b07903435d72cfba7463411a2241d42c20 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:07 -0700 Subject: [PATCH 1561/2431] staging: comedi: mf6x4: remove unnecessary defines The MF6X4_DAC_R macro defines the offsets for all the DAC registers. Remove the unnecessary defines for each register. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 22 +++++++++++----------- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 817e8bf8f141..a73a7c56fd0c 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -48,15 +48,6 @@ #define MF6X4_ADCTRL_R 0x00 #define MF6X4_ADCTRL_M 0xff -#define MF6X4_DA0_R 0x20 -#define MF6X4_DA1_R 0x22 -#define MF6X4_DA2_R 0x24 -#define MF6X4_DA3_R 0x26 -#define MF6X4_DA4_R 0x28 -#define MF6X4_DA5_R 0x2a -#define MF6X4_DA6_R 0x2c -#define MF6X4_DA7_R 0x2e -/* Map DAC cahnnel id to real HW-dependent offset value */ #define MF6X4_DAC_R(x) (0x20 + ((x) * 2)) /* BAR2 registers */ From 77eb74166ed603347f3712c984173d3ea5684651 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:08 -0700 Subject: [PATCH 1562/2431] staging: comedi: mf6x4: remove unnecessary whitespace For aesthetics, remove the extra whitespace and align all the register defines. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 8 +++----- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index a73a7c56fd0c..c1068537f7f4 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -31,27 +31,27 @@ #include "../comedi_pci.h" /* Registers present in BAR0 memory region */ -#define MF624_GPIOC_R 0x54 +#define MF624_GPIOC_R 0x54 #define MF6X4_GPIOC_EOLC BIT(17) /* End Of Last Conversion */ #define MF6X4_GPIOC_LDAC BIT(23) /* Load DACs */ #define MF6X4_GPIOC_DACEN BIT(26) /* BAR1 registers */ -#define MF6X4_DIN_R 0x10 -#define MF6X4_DIN_M 0xff -#define MF6X4_DOUT_R 0x10 -#define MF6X4_DOUT_M 0xff +#define MF6X4_DIN_R 0x10 +#define MF6X4_DIN_M 0xff +#define MF6X4_DOUT_R 0x10 +#define MF6X4_DOUT_M 0xff -#define MF6X4_ADSTART_R 0x20 -#define MF6X4_ADDATA_R 0x00 -#define MF6X4_ADCTRL_R 0x00 -#define MF6X4_ADCTRL_M 0xff +#define MF6X4_ADSTART_R 0x20 +#define MF6X4_ADDATA_R 0x00 +#define MF6X4_ADCTRL_R 0x00 +#define MF6X4_ADCTRL_M 0xff -#define MF6X4_DAC_R(x) (0x20 + ((x) * 2)) +#define MF6X4_DAC_R(x) (0x20 + ((x) * 2)) /* BAR2 registers */ -#define MF634_GPIOC_R 0x68 +#define MF634_GPIOC_R 0x68 enum mf6x4_boardid { BOARD_MF634, From ea22ae5e13490712d7498194726b5001355fced6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:09 -0700 Subject: [PATCH 1563/2431] staging: comedi: mf6x4: sort the BAR1 register defines For aesthetics, sort the defines in register order. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 10 +++++----- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index c1068537f7f4..bde163e3955d 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -38,16 +38,14 @@ #define MF6X4_GPIOC_DACEN BIT(26) /* BAR1 registers */ +#define MF6X4_ADDATA_R 0x00 +#define MF6X4_ADCTRL_R 0x00 +#define MF6X4_ADCTRL_M 0xff #define MF6X4_DIN_R 0x10 #define MF6X4_DIN_M 0xff #define MF6X4_DOUT_R 0x10 #define MF6X4_DOUT_M 0xff - #define MF6X4_ADSTART_R 0x20 -#define MF6X4_ADDATA_R 0x00 -#define MF6X4_ADCTRL_R 0x00 -#define MF6X4_ADCTRL_M 0xff - #define MF6X4_DAC_R(x) (0x20 + ((x) * 2)) /* BAR2 registers */ From c9ab30239aa33e5d79917303f9c67dff98cc75c3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:10 -0700 Subject: [PATCH 1564/2431] staging: comedi: mf6x4: introduce a macro to select the AI channel For aesthetics, use a macro to set the bit in the ADCTRL register that selects an analog input channel. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 9 +++++---- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index bde163e3955d..ff4ba15a23f0 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -39,8 +39,8 @@ /* BAR1 registers */ #define MF6X4_ADDATA_R 0x00 -#define MF6X4_ADCTRL_R 0x00 -#define MF6X4_ADCTRL_M 0xff +#define MF6X4_ADCTRL_REG 0x00 +#define MF6X4_ADCTRL_CHAN(x) BIT(chan) #define MF6X4_DIN_R 0x10 #define MF6X4_DIN_M 0xff #define MF6X4_DOUT_R 0x10 @@ -133,13 +133,13 @@ static int mf6x4_ai_insn_read(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - int chan = CR_CHAN(insn->chanspec); + unsigned int chan = CR_CHAN(insn->chanspec); int ret; int i; int d; /* Set the ADC channel number in the scan list */ - iowrite16((1 << chan) & MF6X4_ADCTRL_M, dev->mmio + MF6X4_ADCTRL_R); + iowrite16(MF6X4_ADCTRL_CHAN(chan), dev->mmio + MF6X4_ADCTRL_REG); for (i = 0; i < insn->n; i++) { /* Trigger ADC conversion by reading ADSTART */ @@ -155,7 +155,7 @@ static int mf6x4_ai_insn_read(struct comedi_device *dev, data[i] = d; } - iowrite16(0x0, dev->mmio + MF6X4_ADCTRL_R); + iowrite16(0x0, dev->mmio + MF6X4_ADCTRL_REG); return insn->n; } From 597063341936a3ccddb30783781d474d7e7d70cd Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:11 -0700 Subject: [PATCH 1565/2431] staging: comedi: mf6x4: A/D converter uses 2's complement coding According to the user's manual, the A/D converter uses 2's complement coding. Use the comedi_offset_munge() helper to convert the data to the offset binary format used by comedi. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 5 ++--- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index ff4ba15a23f0..1e4f08058723 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -38,7 +38,7 @@ #define MF6X4_GPIOC_DACEN BIT(26) /* BAR1 registers */ -#define MF6X4_ADDATA_R 0x00 +#define MF6X4_ADDATA_REG 0x00 #define MF6X4_ADCTRL_REG 0x00 #define MF6X4_ADCTRL_CHAN(x) BIT(chan) #define MF6X4_DIN_R 0x10 @@ -134,9 +134,9 @@ static int mf6x4_ai_insn_read(struct comedi_device *dev, unsigned int *data) { unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int d; int ret; int i; - int d; /* Set the ADC channel number in the scan list */ iowrite16(MF6X4_ADCTRL_CHAN(chan), dev->mmio + MF6X4_ADCTRL_REG); @@ -150,9 +150,10 @@ static int mf6x4_ai_insn_read(struct comedi_device *dev, return ret; /* Read the actual value */ - d = ioread16(dev->mmio + MF6X4_ADDATA_R); + d = ioread16(dev->mmio + MF6X4_ADDATA_REG); d &= s->maxdata; - data[i] = d; + /* munge the 2's complement data to offset binary */ + data[i] = comedi_offset_munge(s, d); } iowrite16(0x0, dev->mmio + MF6X4_ADCTRL_REG); From 418c971364cb6eb3cc94b9e4ec1ae6bf3fc98dc7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:12 -0700 Subject: [PATCH 1566/2431] staging: comedi: mf6x4: remove unnecassary masking of digital outputs THe 's->state' will always be in range for the 8 digital outputs. Remove the unnecessary masking of the value. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 6 +++--- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 1e4f08058723..03f81e948b95 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -43,8 +43,7 @@ #define MF6X4_ADCTRL_CHAN(x) BIT(chan) #define MF6X4_DIN_R 0x10 #define MF6X4_DIN_M 0xff -#define MF6X4_DOUT_R 0x10 -#define MF6X4_DOUT_M 0xff +#define MF6X4_DOUT_REG 0x10 #define MF6X4_ADSTART_R 0x20 #define MF6X4_DAC_R(x) (0x20 + ((x) * 2)) @@ -107,7 +106,7 @@ static int mf6x4_do_insn_bits(struct comedi_device *dev, unsigned int *data) { if (comedi_dio_update_state(s, data)) - iowrite16(s->state & MF6X4_DOUT_M, dev->mmio + MF6X4_DOUT_R); + iowrite16(s->state, dev->mmio + MF6X4_DOUT_REG); data[1] = s->state; From b02530f5549a40e2e02dc33157f406d706e1bfa1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:13 -0700 Subject: [PATCH 1567/2431] staging: comedi: mf6x4: rename the digital input register defines For aesthetics, rename these defines to clarify them a bit. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 8 ++++---- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 03f81e948b95..30dbdf0c91d7 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -41,8 +41,8 @@ #define MF6X4_ADDATA_REG 0x00 #define MF6X4_ADCTRL_REG 0x00 #define MF6X4_ADCTRL_CHAN(x) BIT(chan) -#define MF6X4_DIN_R 0x10 -#define MF6X4_DIN_M 0xff +#define MF6X4_DIN_REG 0x10 +#define MF6X4_DIN_MASK 0xff #define MF6X4_DOUT_REG 0x10 #define MF6X4_ADSTART_R 0x20 #define MF6X4_DAC_R(x) (0x20 + ((x) * 2)) @@ -95,7 +95,7 @@ static int mf6x4_di_insn_bits(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - data[1] = ioread16(dev->mmio + MF6X4_DIN_R) & MF6X4_DIN_M; + data[1] = ioread16(dev->mmio + MF6X4_DIN_REG) & MF6X4_DIN_MASK; return insn->n; } From 19e02434714c05da730be08927402d6bc8d51fea Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:14 -0700 Subject: [PATCH 1568/2431] staging: comedi: mf6x4: rename remaining BAR1 register defines For consistency, rename the ADSTART and DAC register defines to add a bit of clarity. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 16 ++++++++-------- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 30dbdf0c91d7..19e2b1ea89c3 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -44,8 +44,8 @@ #define MF6X4_DIN_REG 0x10 #define MF6X4_DIN_MASK 0xff #define MF6X4_DOUT_REG 0x10 -#define MF6X4_ADSTART_R 0x20 -#define MF6X4_DAC_R(x) (0x20 + ((x) * 2)) +#define MF6X4_ADSTART_REG 0x20 +#define MF6X4_DAC_REG(x) (0x20 + ((x) * 2)) /* BAR2 registers */ #define MF634_GPIOC_R 0x68 @@ -142,7 +142,7 @@ static int mf6x4_ai_insn_read(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { /* Trigger ADC conversion by reading ADSTART */ - ioread16(dev->mmio + MF6X4_ADSTART_R); + ioread16(dev->mmio + MF6X4_ADSTART_REG); ret = comedi_timeout(dev, s, insn, mf6x4_ai_eoc, 0); if (ret) @@ -178,7 +178,7 @@ static int mf6x4_ao_insn_write(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { val = data[i]; - iowrite16(val, dev->mmio + MF6X4_DAC_R(chan)); + iowrite16(val, dev->mmio + MF6X4_DAC_REG(chan)); } s->readback[chan] = val; From 1df2abb351f1cd998099dff34ed5b5f844c8b387 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:15 -0700 Subject: [PATCH 1569/2431] staging: comedi: mf6x4: rename private data 'gpio_R' Rename this CamelCase member of the private data. For consistency, also rename the register defines associated with this member. Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 4 ++-- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 19e2b1ea89c3..a52593b650a3 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -31,7 +31,7 @@ #include "../comedi_pci.h" /* Registers present in BAR0 memory region */ -#define MF624_GPIOC_R 0x54 +#define MF624_GPIOC_REG 0x54 #define MF6X4_GPIOC_EOLC BIT(17) /* End Of Last Conversion */ #define MF6X4_GPIOC_LDAC BIT(23) /* Load DACs */ @@ -48,7 +48,7 @@ #define MF6X4_DAC_REG(x) (0x20 + ((x) * 2)) /* BAR2 registers */ -#define MF634_GPIOC_R 0x68 +#define MF634_GPIOC_REG 0x68 enum mf6x4_boardid { BOARD_MF634, @@ -87,7 +87,7 @@ struct mf6x4_private { * for both cards however it lies in different BARs on different * offsets -- this variable makes the access easier */ - void __iomem *gpioc_R; + void __iomem *gpioc_reg; }; static int mf6x4_di_insn_bits(struct comedi_device *dev, @@ -121,7 +121,7 @@ static int mf6x4_ai_eoc(struct comedi_device *dev, struct mf6x4_private *devpriv = dev->private; unsigned int status; - status = ioread32(devpriv->gpioc_R); + status = ioread32(devpriv->gpioc_reg); if (status & MF6X4_GPIOC_EOLC) return 0; return -EBUSY; @@ -172,9 +172,9 @@ static int mf6x4_ao_insn_write(struct comedi_device *dev, int i; /* Enable instantaneous update of converters outputs + Enable DACs */ - gpioc = ioread32(devpriv->gpioc_R); + gpioc = ioread32(devpriv->gpioc_reg); iowrite32((gpioc & ~MF6X4_GPIOC_LDAC) | MF6X4_GPIOC_DACEN, - devpriv->gpioc_R); + devpriv->gpioc_reg); for (i = 0; i < insn->n; i++) { val = data[i]; @@ -222,9 +222,9 @@ static int mf6x4_auto_attach(struct comedi_device *dev, unsigned long context) return -ENODEV; if (board == &mf6x4_boards[BOARD_MF634]) - devpriv->gpioc_R = devpriv->bar2_mem + MF634_GPIOC_R; + devpriv->gpioc_reg = devpriv->bar2_mem + MF634_GPIOC_REG; else - devpriv->gpioc_R = devpriv->bar0_mem + MF624_GPIOC_R; + devpriv->gpioc_reg = devpriv->bar0_mem + MF624_GPIOC_REG; ret = comedi_alloc_subdevices(dev, 4); if (ret) From ae57371378801d0e885d4cb3aaf15b9d7d5d3649 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:16 -0700 Subject: [PATCH 1570/2431] staging: comedi: mf6x4: refactor block comment Refactor this block comment to fix the checkpatch.pl issues: WARNING: Block comments use * on subsequent lines WARNING: Block comments use a trailing */ on a separate line Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 2 +- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index a52593b650a3..7fdb1e266b93 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -57,8 +57,8 @@ enum mf6x4_boardid { struct mf6x4_board { const char *name; - unsigned int bar_nums[3]; /* We need to keep track of the - order of BARs used by the cards */ + /* We need to keep track of the order of BARs used by the cards */ + unsigned int bar_nums[3]; }; static const struct mf6x4_board mf6x4_boards[] = { From 21cf4eedae651b3850b1e659caad966e6d64136d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:17 -0700 Subject: [PATCH 1571/2431] staging: comedi: mf6x4: change type of local variable For aesthetics, change the type of this local variable to unsigned int. This fixes the checkpatch.pl issue about: CHECK: Prefer kernel type 'u32' over 'uint32_t' Signed-off-by: H Hartley Sweeten drivers/staging/comedi/drivers/mf6x4.c | 60 +++++++++++++++++----------------- Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 7fdb1e266b93..b805f15150da 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -168,7 +168,7 @@ static int mf6x4_ao_insn_write(struct comedi_device *dev, struct mf6x4_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int val = s->readback[chan]; - uint32_t gpioc; + unsigned int gpioc; int i; /* Enable instantaneous update of converters outputs + Enable DACs */ From fa7ac9c0fc5418154a6356583f880164cdcaa7f1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:18 -0700 Subject: [PATCH 1572/2431] staging: comedi: mf6x4: tidy up subdevice init For aesthetics, add some whitespace to the subdevice initialization. Signed-off-by: H Hartley Sweeten Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/mf6x4.c | 56 +++++++++++++------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index b805f15150da..fbdf181d8ccc 100644 --- a/drivers/staging/comedi/drivers/mf6x4.c +++ b/drivers/staging/comedi/drivers/mf6x4.c @@ -230,45 +230,45 @@ static int mf6x4_auto_attach(struct comedi_device *dev, unsigned long context) if (ret) return ret; - /* ADC */ + /* Analog Input subdevice */ s = &dev->subdevices[0]; - s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_GROUND; - s->n_chan = 8; - s->maxdata = 0x3fff; /* 14 bits ADC */ - s->range_table = &range_bipolar10; - s->insn_read = mf6x4_ai_insn_read; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_GROUND; + s->n_chan = 8; + s->maxdata = 0x3fff; + s->range_table = &range_bipolar10; + s->insn_read = mf6x4_ai_insn_read; - /* DAC */ + /* Analog Output subdevice */ s = &dev->subdevices[1]; - s->type = COMEDI_SUBD_AO; - s->subdev_flags = SDF_WRITABLE; - s->n_chan = 8; - s->maxdata = 0x3fff; /* 14 bits DAC */ - s->range_table = &range_bipolar10; - s->insn_write = mf6x4_ao_insn_write; + s->type = COMEDI_SUBD_AO; + s->subdev_flags = SDF_WRITABLE; + s->n_chan = 8; + s->maxdata = 0x3fff; + s->range_table = &range_bipolar10; + s->insn_write = mf6x4_ao_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) return ret; - /* DIN */ + /* Digital Input subdevice */ s = &dev->subdevices[2]; - s->type = COMEDI_SUBD_DI; - s->subdev_flags = SDF_READABLE; - s->n_chan = 8; - s->maxdata = 1; - s->range_table = &range_digital; - s->insn_bits = mf6x4_di_insn_bits; + s->type = COMEDI_SUBD_DI; + s->subdev_flags = SDF_READABLE; + s->n_chan = 8; + s->maxdata = 1; + s->range_table = &range_digital; + s->insn_bits = mf6x4_di_insn_bits; - /* DOUT */ + /* Digital Output subdevice */ s = &dev->subdevices[3]; - s->type = COMEDI_SUBD_DO; - s->subdev_flags = SDF_WRITABLE; - s->n_chan = 8; - s->maxdata = 1; - s->range_table = &range_digital; - s->insn_bits = mf6x4_do_insn_bits; + s->type = COMEDI_SUBD_DO; + s->subdev_flags = SDF_WRITABLE; + s->n_chan = 8; + s->maxdata = 1; + s->range_table = &range_digital; + s->insn_bits = mf6x4_do_insn_bits; return 0; } From 1cee8eaa254988574452f302dd8ce28a7303d49d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:31 -0700 Subject: [PATCH 1573/2431] staging: comedi: me_daq: tidy up private data For aesthetics, rename the local variable used to access dev->private. In comedi drivers this variable is typically named 'devpriv'. For aesthetics, rename the private data members used to mirror the write-only register to, slightly, shorter names. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 92 ++++++++++++------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 9ea1ba4b1b6f..136f785f52a0 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -166,9 +166,9 @@ static const struct me_board me_boards[] = { struct me_private_data { void __iomem *plx_regbase; /* PLX configuration base address */ - unsigned short control_1; /* Mirror of CONTROL_1 register */ - unsigned short control_2; /* Mirror of CONTROL_2 register */ - unsigned short dac_control; /* Mirror of the DAC_CONTROL register */ + unsigned short ctrl1; /* Mirror of CONTROL_1 register */ + unsigned short ctrl2; /* Mirror of CONTROL_2 register */ + unsigned short dac_ctrl; /* Mirror of the DAC_CONTROL register */ }; static inline void sleep(unsigned sec) @@ -196,15 +196,15 @@ static int me_dio_insn_config(struct comedi_device *dev, return ret; if (s->io_bits & 0x0000ffff) - devpriv->control_2 |= ENABLE_PORT_A; + devpriv->ctrl2 |= ENABLE_PORT_A; else - devpriv->control_2 &= ~ENABLE_PORT_A; + devpriv->ctrl2 &= ~ENABLE_PORT_A; if (s->io_bits & 0xffff0000) - devpriv->control_2 |= ENABLE_PORT_B; + devpriv->ctrl2 |= ENABLE_PORT_B; else - devpriv->control_2 &= ~ENABLE_PORT_B; + devpriv->ctrl2 &= ~ENABLE_PORT_B; - writew(devpriv->control_2, dev->mmio + ME_CONTROL_2); + writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); return insn->n; } @@ -260,7 +260,7 @@ static int me_ai_insn_read(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - struct me_private_data *dev_private = dev->private; + struct me_private_data *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int rang = CR_RANGE(insn->chanspec); unsigned int aref = CR_AREF(insn->chanspec); @@ -268,19 +268,19 @@ static int me_ai_insn_read(struct comedi_device *dev, int ret; /* stop any running conversion */ - dev_private->control_1 &= 0xFFFC; - writew(dev_private->control_1, dev->mmio + ME_CONTROL_1); + devpriv->ctrl1 &= 0xFFFC; + writew(devpriv->ctrl1, dev->mmio + ME_CONTROL_1); /* clear chanlist and ad fifo */ - dev_private->control_2 &= ~(ENABLE_ADFIFO | ENABLE_CHANLIST); - writew(dev_private->control_2, dev->mmio + ME_CONTROL_2); + devpriv->ctrl2 &= ~(ENABLE_ADFIFO | ENABLE_CHANLIST); + writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); /* reset any pending interrupt */ writew(0x00, dev->mmio + ME_RESET_INTERRUPT); /* enable the chanlist and ADC fifo */ - dev_private->control_2 |= (ENABLE_ADFIFO | ENABLE_CHANLIST); - writew(dev_private->control_2, dev->mmio + ME_CONTROL_2); + devpriv->ctrl2 |= (ENABLE_ADFIFO | ENABLE_CHANLIST); + writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); /* write to channel list fifo */ val = chan & 0x0f; /* b3:b0 channel */ @@ -290,8 +290,8 @@ static int me_ai_insn_read(struct comedi_device *dev, writew(val & 0xff, dev->mmio + ME_CHANNEL_LIST); /* set ADC mode to software trigger */ - dev_private->control_1 |= SOFTWARE_TRIGGERED_ADC; - writew(dev_private->control_1, dev->mmio + ME_CONTROL_1); + devpriv->ctrl1 |= SOFTWARE_TRIGGERED_ADC; + writew(devpriv->ctrl1, dev->mmio + ME_CONTROL_1); /* start conversion by reading from ADC_START */ readw(dev->mmio + ME_ADC_START); @@ -307,8 +307,8 @@ static int me_ai_insn_read(struct comedi_device *dev, data[0] = val; /* stop any running conversion */ - dev_private->control_1 &= 0xFFFC; - writew(dev_private->control_1, dev->mmio + ME_CONTROL_1); + devpriv->ctrl1 &= 0xFFFC; + writew(devpriv->ctrl1, dev->mmio + ME_CONTROL_1); return 1; } @@ -318,32 +318,32 @@ static int me_ao_insn_write(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - struct me_private_data *dev_private = dev->private; + struct me_private_data *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int rang = CR_RANGE(insn->chanspec); unsigned int val = s->readback[chan]; int i; /* Enable all DAC */ - dev_private->control_2 |= ENABLE_DAC; - writew(dev_private->control_2, dev->mmio + ME_CONTROL_2); + devpriv->ctrl2 |= ENABLE_DAC; + writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); /* and set DAC to "buffered" mode */ - dev_private->control_2 |= BUFFERED_DAC; - writew(dev_private->control_2, dev->mmio + ME_CONTROL_2); + devpriv->ctrl2 |= BUFFERED_DAC; + writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); /* Set dac-control register */ for (i = 0; i < insn->n; i++) { /* clear bits for this channel */ - dev_private->dac_control &= ~(0x0880 >> chan); + devpriv->dac_ctrl &= ~(0x0880 >> chan); if (rang == 0) - dev_private->dac_control |= + devpriv->dac_ctrl |= ((DAC_BIPOLAR_A | DAC_GAIN_1_A) >> chan); else if (rang == 1) - dev_private->dac_control |= + devpriv->dac_ctrl |= ((DAC_BIPOLAR_A | DAC_GAIN_0_A) >> chan); } - writew(dev_private->dac_control, dev->mmio + ME_DAC_CONTROL); + writew(devpriv->dac_ctrl, dev->mmio + ME_DAC_CONTROL); /* Update dac-control register */ readw(dev->mmio + ME_DAC_CONTROL_UPDATE); @@ -366,13 +366,13 @@ static int me2600_xilinx_download(struct comedi_device *dev, const u8 *data, size_t size, unsigned long context) { - struct me_private_data *dev_private = dev->private; + struct me_private_data *devpriv = dev->private; unsigned int value; unsigned int file_length; unsigned int i; /* disable irq's on PLX */ - writel(0x00, dev_private->plx_regbase + PLX9052_INTCSR); + writel(0x00, devpriv->plx_regbase + PLX9052_INTCSR); /* First, make a dummy read to reset xilinx */ value = readw(dev->mmio + XILINX_DOWNLOAD_RESET); @@ -412,10 +412,10 @@ static int me2600_xilinx_download(struct comedi_device *dev, writeb(0x00, dev->mmio + 0x0); /* Test if there was an error during download -> INTB was thrown */ - value = readl(dev_private->plx_regbase + PLX9052_INTCSR); + value = readl(devpriv->plx_regbase + PLX9052_INTCSR); if (value & PLX9052_INTCSR_LI2STAT) { /* Disable interrupt */ - writel(0x00, dev_private->plx_regbase + PLX9052_INTCSR); + writel(0x00, devpriv->plx_regbase + PLX9052_INTCSR); dev_err(dev->class_dev, "Xilinx download failed\n"); return -EIO; } @@ -427,14 +427,14 @@ static int me2600_xilinx_download(struct comedi_device *dev, writel(PLX9052_INTCSR_LI1ENAB | PLX9052_INTCSR_LI1POL | PLX9052_INTCSR_PCIENAB, - dev_private->plx_regbase + PLX9052_INTCSR); + devpriv->plx_regbase + PLX9052_INTCSR); return 0; } static int me_reset(struct comedi_device *dev) { - struct me_private_data *dev_private = dev->private; + struct me_private_data *devpriv = dev->private; /* Reset board */ writew(0x00, dev->mmio + ME_CONTROL_1); @@ -443,9 +443,9 @@ static int me_reset(struct comedi_device *dev) writew(0x00, dev->mmio + ME_DAC_CONTROL); /* Save values in the board context */ - dev_private->dac_control = 0; - dev_private->control_1 = 0; - dev_private->control_2 = 0; + devpriv->dac_ctrl = 0; + devpriv->ctrl1 = 0; + devpriv->ctrl2 = 0; return 0; } @@ -455,7 +455,7 @@ static int me_auto_attach(struct comedi_device *dev, { struct pci_dev *pcidev = comedi_to_pci_dev(dev); const struct me_board *board = NULL; - struct me_private_data *dev_private; + struct me_private_data *devpriv; struct comedi_subdevice *s; int ret; @@ -466,16 +466,16 @@ static int me_auto_attach(struct comedi_device *dev, dev->board_ptr = board; dev->board_name = board->name; - dev_private = comedi_alloc_devpriv(dev, sizeof(*dev_private)); - if (!dev_private) + devpriv = comedi_alloc_devpriv(dev, sizeof(*devpriv)); + if (!devpriv) return -ENOMEM; ret = comedi_pci_enable(dev); if (ret) return ret; - dev_private->plx_regbase = pci_ioremap_bar(pcidev, 0); - if (!dev_private->plx_regbase) + devpriv->plx_regbase = pci_ioremap_bar(pcidev, 0); + if (!devpriv->plx_regbase) return -ENOMEM; dev->mmio = pci_ioremap_bar(pcidev, 2); @@ -537,13 +537,13 @@ static int me_auto_attach(struct comedi_device *dev, static void me_detach(struct comedi_device *dev) { - struct me_private_data *dev_private = dev->private; + struct me_private_data *devpriv = dev->private; - if (dev_private) { + if (devpriv) { if (dev->mmio) me_reset(dev); - if (dev_private->plx_regbase) - iounmap(dev_private->plx_regbase); + if (devpriv->plx_regbase) + iounmap(devpriv->plx_regbase); } comedi_pci_detach(dev); } From 616f86f00fc9b82a300466c5896c3c6682bbb8dc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:32 -0700 Subject: [PATCH 1574/2431] staging: comedi: me_daq: tidy up control 1 register defines Rename the bits of this register so they have association with the register. Use the BIT macro to define the bits. Add a macro to select the ADC mode and remove the magic value used to stop conversion. Reading the control 1 register starts an analog input conversion. For aesthetics, remove the MC_ADC_START define and just use the ME_CTRL1_REG define to read the register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 54 +++++++++++++------------ 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 136f785f52a0..be1c3c2fdc78 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -41,22 +41,26 @@ #define XILINX_DOWNLOAD_RESET 0x42 /* Xilinx registers */ -#define ME_CONTROL_1 0x0000 /* - | W */ -#define INTERRUPT_ENABLE (1<<15) -#define COUNTER_B_IRQ (1<<12) -#define COUNTER_A_IRQ (1<<11) -#define CHANLIST_READY_IRQ (1<<10) -#define EXT_IRQ (1<<9) -#define ADFIFO_HALFFULL_IRQ (1<<8) -#define SCAN_COUNT_ENABLE (1<<5) -#define SIMULTANEOUS_ENABLE (1<<4) -#define TRIGGER_FALLING_EDGE (1<<3) -#define CONTINUOUS_MODE (1<<2) -#define DISABLE_ADC (0<<0) -#define SOFTWARE_TRIGGERED_ADC (1<<0) -#define SCAN_TRIGGERED_ADC (2<<0) -#define EXT_TRIGGERED_ADC (3<<0) -#define ME_ADC_START 0x0000 /* R | - */ +/* + * PCI BAR2 Memory map (dev->mmio) + */ +#define ME_CTRL1_REG 0x00 /* R (ai start) | W */ +#define ME_CTRL1_INT_ENA BIT(15) +#define ME_CTRL1_COUNTER_B_IRQ BIT(12) +#define ME_CTRL1_COUNTER_A_IRQ BIT(11) +#define ME_CTRL1_CHANLIST_READY_IRQ BIT(10) +#define ME_CTRL1_EXT_IRQ BIT(9) +#define ME_CTRL1_ADFIFO_HALFFULL_IRQ BIT(8) +#define ME_CTRL1_SCAN_COUNT_ENA BIT(5) +#define ME_CTRL1_SIMULTANEOUS_ENA BIT(4) +#define ME_CTRL1_TRIGGER_FALLING_EDGE BIT(3) +#define ME_CTRL1_CONTINUOUS_MODE BIT(2) +#define ME_CTRL1_ADC_MODE(x) (((x) & 0x3) << 0) +#define ME_CTRL1_ADC_MODE_DISABLE ME_CTRL1_ADC_MODE(0) +#define ME_CTRL1_ADC_MODE_SOFT_TRIG ME_CTRL1_ADC_MODE(1) +#define ME_CTRL1_ADC_MODE_SCAN_TRIG ME_CTRL1_ADC_MODE(2) +#define ME_CTRL1_ADC_MODE_EXT_TRIG ME_CTRL1_ADC_MODE(3) +#define ME_CTRL1_ADC_MODE_MASK ME_CTRL1_ADC_MODE(3) #define ME_CONTROL_2 0x0002 /* - | W */ #define ENABLE_ADFIFO (1<<10) #define ENABLE_CHANLIST (1<<9) @@ -268,8 +272,8 @@ static int me_ai_insn_read(struct comedi_device *dev, int ret; /* stop any running conversion */ - devpriv->ctrl1 &= 0xFFFC; - writew(devpriv->ctrl1, dev->mmio + ME_CONTROL_1); + devpriv->ctrl1 &= ~ME_CTRL1_ADC_MODE_MASK; + writew(devpriv->ctrl1, dev->mmio + ME_CTRL1_REG); /* clear chanlist and ad fifo */ devpriv->ctrl2 &= ~(ENABLE_ADFIFO | ENABLE_CHANLIST); @@ -290,11 +294,11 @@ static int me_ai_insn_read(struct comedi_device *dev, writew(val & 0xff, dev->mmio + ME_CHANNEL_LIST); /* set ADC mode to software trigger */ - devpriv->ctrl1 |= SOFTWARE_TRIGGERED_ADC; - writew(devpriv->ctrl1, dev->mmio + ME_CONTROL_1); + devpriv->ctrl1 |= ME_CTRL1_ADC_MODE_SOFT_TRIG; + writew(devpriv->ctrl1, dev->mmio + ME_CTRL1_REG); - /* start conversion by reading from ADC_START */ - readw(dev->mmio + ME_ADC_START); + /* start ai conversion */ + readw(dev->mmio + ME_CTRL1_REG); /* wait for ADC fifo not empty flag */ ret = comedi_timeout(dev, s, insn, me_ai_eoc, 0); @@ -307,8 +311,8 @@ static int me_ai_insn_read(struct comedi_device *dev, data[0] = val; /* stop any running conversion */ - devpriv->ctrl1 &= 0xFFFC; - writew(devpriv->ctrl1, dev->mmio + ME_CONTROL_1); + devpriv->ctrl1 &= ~ME_CTRL1_ADC_MODE_MASK; + writew(devpriv->ctrl1, dev->mmio + ME_CTRL1_REG); return 1; } @@ -437,7 +441,7 @@ static int me_reset(struct comedi_device *dev) struct me_private_data *devpriv = dev->private; /* Reset board */ - writew(0x00, dev->mmio + ME_CONTROL_1); + writew(0x00, dev->mmio + ME_CTRL1_REG); writew(0x00, dev->mmio + ME_CONTROL_2); writew(0x00, dev->mmio + ME_RESET_INTERRUPT); writew(0x00, dev->mmio + ME_DAC_CONTROL); From 49e890e0d2c12516736d1c4ae821d6a72b047265 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:33 -0700 Subject: [PATCH 1575/2431] staging: comedi: me_daq: tidy up control 2 register defines Rename the bits of this register so they have association with the register. Use the BIT macro to define the bits. Reading the control 2 register updates the DAC registers. For aesthetics, remove the MC_DAC_UPDATE define and just use the ME_CTRL2_REG define to read the register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 49 ++++++++++++------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index be1c3c2fdc78..1a49c6a89ca8 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -61,16 +61,15 @@ #define ME_CTRL1_ADC_MODE_SCAN_TRIG ME_CTRL1_ADC_MODE(2) #define ME_CTRL1_ADC_MODE_EXT_TRIG ME_CTRL1_ADC_MODE(3) #define ME_CTRL1_ADC_MODE_MASK ME_CTRL1_ADC_MODE(3) -#define ME_CONTROL_2 0x0002 /* - | W */ -#define ENABLE_ADFIFO (1<<10) -#define ENABLE_CHANLIST (1<<9) -#define ENABLE_PORT_B (1<<7) -#define ENABLE_PORT_A (1<<6) -#define ENABLE_COUNTER_B (1<<4) -#define ENABLE_COUNTER_A (1<<3) -#define ENABLE_DAC (1<<1) -#define BUFFERED_DAC (1<<0) -#define ME_DAC_UPDATE 0x0002 /* R | - */ +#define ME_CTRL2_REG 0x02 /* R (dac update) | W */ +#define ME_CTRL2_ADFIFO_ENA BIT(10) +#define ME_CTRL2_CHANLIST_ENA BIT(9) +#define ME_CTRL2_PORT_B_ENA BIT(7) +#define ME_CTRL2_PORT_A_ENA BIT(6) +#define ME_CTRL2_COUNTER_B_ENA BIT(4) +#define ME_CTRL2_COUNTER_A_ENA BIT(3) +#define ME_CTRL2_DAC_ENA BIT(1) +#define ME_CTRL2_BUFFERED_DAC BIT(0) #define ME_STATUS 0x0004 /* R | - */ #define COUNTER_B_IRQ_PENDING (1<<12) #define COUNTER_A_IRQ_PENDING (1<<11) @@ -200,15 +199,15 @@ static int me_dio_insn_config(struct comedi_device *dev, return ret; if (s->io_bits & 0x0000ffff) - devpriv->ctrl2 |= ENABLE_PORT_A; + devpriv->ctrl2 |= ME_CTRL2_PORT_A_ENA; else - devpriv->ctrl2 &= ~ENABLE_PORT_A; + devpriv->ctrl2 &= ~ME_CTRL2_PORT_A_ENA; if (s->io_bits & 0xffff0000) - devpriv->ctrl2 |= ENABLE_PORT_B; + devpriv->ctrl2 |= ME_CTRL2_PORT_B_ENA; else - devpriv->ctrl2 &= ~ENABLE_PORT_B; + devpriv->ctrl2 &= ~ME_CTRL2_PORT_B_ENA; - writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); + writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); return insn->n; } @@ -276,15 +275,15 @@ static int me_ai_insn_read(struct comedi_device *dev, writew(devpriv->ctrl1, dev->mmio + ME_CTRL1_REG); /* clear chanlist and ad fifo */ - devpriv->ctrl2 &= ~(ENABLE_ADFIFO | ENABLE_CHANLIST); - writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); + devpriv->ctrl2 &= ~(ME_CTRL2_ADFIFO_ENA | ME_CTRL2_CHANLIST_ENA); + writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); /* reset any pending interrupt */ writew(0x00, dev->mmio + ME_RESET_INTERRUPT); /* enable the chanlist and ADC fifo */ - devpriv->ctrl2 |= (ENABLE_ADFIFO | ENABLE_CHANLIST); - writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); + devpriv->ctrl2 |= (ME_CTRL2_ADFIFO_ENA | ME_CTRL2_CHANLIST_ENA); + writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); /* write to channel list fifo */ val = chan & 0x0f; /* b3:b0 channel */ @@ -329,12 +328,12 @@ static int me_ao_insn_write(struct comedi_device *dev, int i; /* Enable all DAC */ - devpriv->ctrl2 |= ENABLE_DAC; - writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); + devpriv->ctrl2 |= ME_CTRL2_DAC_ENA; + writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); /* and set DAC to "buffered" mode */ - devpriv->ctrl2 |= BUFFERED_DAC; - writew(devpriv->ctrl2, dev->mmio + ME_CONTROL_2); + devpriv->ctrl2 |= ME_CTRL2_BUFFERED_DAC; + writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); /* Set dac-control register */ for (i = 0; i < insn->n; i++) { @@ -361,7 +360,7 @@ static int me_ao_insn_write(struct comedi_device *dev, s->readback[chan] = val; /* Update dac with data registers */ - readw(dev->mmio + ME_DAC_UPDATE); + readw(dev->mmio + ME_CTRL2_REG); return insn->n; } @@ -442,7 +441,7 @@ static int me_reset(struct comedi_device *dev) /* Reset board */ writew(0x00, dev->mmio + ME_CTRL1_REG); - writew(0x00, dev->mmio + ME_CONTROL_2); + writew(0x00, dev->mmio + ME_CTRL2_REG); writew(0x00, dev->mmio + ME_RESET_INTERRUPT); writew(0x00, dev->mmio + ME_DAC_CONTROL); From 065d805744cdb6d92d11fe9a7e12027c78d981cc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:34 -0700 Subject: [PATCH 1576/2431] staging: comedi: me_daq: tidy up status register defines Rename the bits of this register so they have association with the register. Use the BIT macro to define the bits. Writing to the status register clears any pending interrupts. For aesthetics, remove the ME_RESET_INTERRUPT define and just use the ME_STATUS_REG define to write the register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 32 ++++++++++++------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 1a49c6a89ca8..9db6add043af 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -70,18 +70,17 @@ #define ME_CTRL2_COUNTER_A_ENA BIT(3) #define ME_CTRL2_DAC_ENA BIT(1) #define ME_CTRL2_BUFFERED_DAC BIT(0) -#define ME_STATUS 0x0004 /* R | - */ -#define COUNTER_B_IRQ_PENDING (1<<12) -#define COUNTER_A_IRQ_PENDING (1<<11) -#define CHANLIST_READY_IRQ_PENDING (1<<10) -#define EXT_IRQ_PENDING (1<<9) -#define ADFIFO_HALFFULL_IRQ_PENDING (1<<8) -#define ADFIFO_FULL (1<<4) -#define ADFIFO_HALFFULL (1<<3) -#define ADFIFO_EMPTY (1<<2) -#define CHANLIST_FULL (1<<1) -#define FST_ACTIVE (1<<0) -#define ME_RESET_INTERRUPT 0x0004 /* - | W */ +#define ME_STATUS_REG 0x04 /* R | W (clears interrupts) */ +#define ME_STATUS_COUNTER_B_IRQ BIT(12) +#define ME_STATUS_COUNTER_A_IRQ BIT(11) +#define ME_STATUS_CHANLIST_READY_IRQ BIT(10) +#define ME_STATUS_EXT_IRQ BIT(9) +#define ME_STATUS_ADFIFO_HALFFULL_IRQ BIT(8) +#define ME_STATUS_ADFIFO_FULL BIT(4) +#define ME_STATUS_ADFIFO_HALFFULL BIT(3) +#define ME_STATUS_ADFIFO_EMPTY BIT(2) +#define ME_STATUS_CHANLIST_FULL BIT(1) +#define ME_STATUS_FST_ACTIVE BIT(0) #define ME_DIO_PORT_A 0x0006 /* R | W */ #define ME_DIO_PORT_B 0x0008 /* R | W */ #define ME_TIMER_DATA_0 0x000A /* - | W */ @@ -252,8 +251,8 @@ static int me_ai_eoc(struct comedi_device *dev, { unsigned int status; - status = readw(dev->mmio + ME_STATUS); - if ((status & 0x0004) == 0) + status = readw(dev->mmio + ME_STATUS_REG); + if ((status & ME_STATUS_ADFIFO_EMPTY) == 0) return 0; return -EBUSY; } @@ -278,8 +277,7 @@ static int me_ai_insn_read(struct comedi_device *dev, devpriv->ctrl2 &= ~(ME_CTRL2_ADFIFO_ENA | ME_CTRL2_CHANLIST_ENA); writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); - /* reset any pending interrupt */ - writew(0x00, dev->mmio + ME_RESET_INTERRUPT); + writew(0x00, dev->mmio + ME_STATUS_REG); /* clear interrupts */ /* enable the chanlist and ADC fifo */ devpriv->ctrl2 |= (ME_CTRL2_ADFIFO_ENA | ME_CTRL2_CHANLIST_ENA); @@ -442,7 +440,7 @@ static int me_reset(struct comedi_device *dev) /* Reset board */ writew(0x00, dev->mmio + ME_CTRL1_REG); writew(0x00, dev->mmio + ME_CTRL2_REG); - writew(0x00, dev->mmio + ME_RESET_INTERRUPT); + writew(0x00, dev->mmio + ME_STATUS_REG); /* clear interrupts */ writew(0x00, dev->mmio + ME_DAC_CONTROL); /* Save values in the board context */ From e0f6de37d63faa88ba2ad7e7b046c7fa359a0656 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:35 -0700 Subject: [PATCH 1577/2431] staging: comedi: me_daq: tidy up digital i/o port register defines For aesthetics, add a _REG suffix to these defines. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 9db6add043af..3acd0d4dc69a 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -81,8 +81,8 @@ #define ME_STATUS_ADFIFO_EMPTY BIT(2) #define ME_STATUS_CHANLIST_FULL BIT(1) #define ME_STATUS_FST_ACTIVE BIT(0) -#define ME_DIO_PORT_A 0x0006 /* R | W */ -#define ME_DIO_PORT_B 0x0008 /* R | W */ +#define ME_DIO_PORT_A_REG 0x06 /* R | W */ +#define ME_DIO_PORT_B_REG 0x08 /* R | W */ #define ME_TIMER_DATA_0 0x000A /* - | W */ #define ME_TIMER_DATA_1 0x000C /* - | W */ #define ME_TIMER_DATA_2 0x000E /* - | W */ @@ -216,8 +216,8 @@ static int me_dio_insn_bits(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - void __iomem *mmio_porta = dev->mmio + ME_DIO_PORT_A; - void __iomem *mmio_portb = dev->mmio + ME_DIO_PORT_B; + void __iomem *mmio_porta = dev->mmio + ME_DIO_PORT_A_REG; + void __iomem *mmio_portb = dev->mmio + ME_DIO_PORT_B_REG; unsigned int mask; unsigned int val; From faf58f60a4b0e93a5b7f74b74a80aa01089d3f38 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:36 -0700 Subject: [PATCH 1578/2431] staging: comedi: me_daq: tidy up timer data register defines For aesthetics, convert the register defines into a macro that takes the timer channel and returns the correct register offset. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 3acd0d4dc69a..25f5a2a40d68 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -83,9 +83,7 @@ #define ME_STATUS_FST_ACTIVE BIT(0) #define ME_DIO_PORT_A_REG 0x06 /* R | W */ #define ME_DIO_PORT_B_REG 0x08 /* R | W */ -#define ME_TIMER_DATA_0 0x000A /* - | W */ -#define ME_TIMER_DATA_1 0x000C /* - | W */ -#define ME_TIMER_DATA_2 0x000E /* - | W */ +#define ME_TIMER_DATA_REG(x) (0x0a + ((x) * 2)) /* - | W */ #define ME_CHANNEL_LIST 0x0010 /* - | W */ #define ADC_UNIPOLAR (1<<6) #define ADC_GAIN_0 (0<<4) From abd2541f3900f058fffdd89dac125b5fd48a0037 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:37 -0700 Subject: [PATCH 1579/2431] staging: comedi: me_daq: tidy up ai fifo/chanlist register defines Tidy up this register usage by defining some macros to set the channel and gain bits. Add a define for the bit that enables differential mode. Writing to this offset puts data in the ai chanlist fifo, reading from it gets data from the ai data fifo. For aesthetics, use the same define to read and write the registers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 27 ++++++++++++------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 25f5a2a40d68..873897da6a21 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -84,13 +84,11 @@ #define ME_DIO_PORT_A_REG 0x06 /* R | W */ #define ME_DIO_PORT_B_REG 0x08 /* R | W */ #define ME_TIMER_DATA_REG(x) (0x0a + ((x) * 2)) /* - | W */ -#define ME_CHANNEL_LIST 0x0010 /* - | W */ -#define ADC_UNIPOLAR (1<<6) -#define ADC_GAIN_0 (0<<4) -#define ADC_GAIN_1 (1<<4) -#define ADC_GAIN_2 (2<<4) -#define ADC_GAIN_3 (3<<4) -#define ME_READ_AD_FIFO 0x0010 /* R | - */ +#define ME_AI_FIFO_REG 0x10 /* R (fifo) | W (chanlist) */ +#define ME_AI_FIFO_CHANLIST_DIFF BIT(7) +#define ME_AI_FIFO_CHANLIST_UNIPOLAR BIT(6) +#define ME_AI_FIFO_CHANLIST_GAIN(x) (((x) & 0x3) << 4) +#define ME_AI_FIFO_CHANLIST_CHAN(x) (((x) & 0xf) << 0) #define ME_DAC_CONTROL 0x0012 /* - | W */ #define DAC_UNIPOLAR_D (0<<4) #define DAC_BIPOLAR_D (1<<4) @@ -262,7 +260,7 @@ static int me_ai_insn_read(struct comedi_device *dev, { struct me_private_data *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); - unsigned int rang = CR_RANGE(insn->chanspec); + unsigned int range = CR_RANGE(insn->chanspec); unsigned int aref = CR_AREF(insn->chanspec); unsigned short val; int ret; @@ -282,11 +280,12 @@ static int me_ai_insn_read(struct comedi_device *dev, writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); /* write to channel list fifo */ - val = chan & 0x0f; /* b3:b0 channel */ - val |= (rang & 0x03) << 4; /* b5:b4 gain */ - val |= (rang & 0x04) << 4; /* b6 polarity */ - val |= ((aref & AREF_DIFF) ? 0x80 : 0); /* b7 differential */ - writew(val & 0xff, dev->mmio + ME_CHANNEL_LIST); + val = ME_AI_FIFO_CHANLIST_CHAN(chan) | ME_AI_FIFO_CHANLIST_GAIN(range); + if (comedi_range_is_unipolar(s, range)) + val |= ME_AI_FIFO_CHANLIST_UNIPOLAR; + if (aref & AREF_DIFF) + val |= ME_AI_FIFO_CHANLIST_DIFF; + writew(val, dev->mmio + ME_AI_FIFO_REG); /* set ADC mode to software trigger */ devpriv->ctrl1 |= ME_CTRL1_ADC_MODE_SOFT_TRIG; @@ -301,7 +300,7 @@ static int me_ai_insn_read(struct comedi_device *dev, return ret; /* get value from ADC fifo */ - val = readw(dev->mmio + ME_READ_AD_FIFO); + val = readw(dev->mmio + ME_AI_FIFO_REG); val = (val ^ 0x800) & 0x0fff; data[0] = val; From 16aa2a66050607a3728173ad64a1830a23120b2f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:38 -0700 Subject: [PATCH 1580/2431] staging: comedi: me_daq: tidy up dac control register defines Redefine the dac control register bits as macros that take the channel number and return the correct bit values. This register needs to be read after the new values are written in order to actually update the dac. For aesthetics, use the same define to read and write the registers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 45 +++++++++---------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 873897da6a21..71188fbadb65 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -89,24 +89,12 @@ #define ME_AI_FIFO_CHANLIST_UNIPOLAR BIT(6) #define ME_AI_FIFO_CHANLIST_GAIN(x) (((x) & 0x3) << 4) #define ME_AI_FIFO_CHANLIST_CHAN(x) (((x) & 0xf) << 0) -#define ME_DAC_CONTROL 0x0012 /* - | W */ -#define DAC_UNIPOLAR_D (0<<4) -#define DAC_BIPOLAR_D (1<<4) -#define DAC_UNIPOLAR_C (0<<5) -#define DAC_BIPOLAR_C (1<<5) -#define DAC_UNIPOLAR_B (0<<6) -#define DAC_BIPOLAR_B (1<<6) -#define DAC_UNIPOLAR_A (0<<7) -#define DAC_BIPOLAR_A (1<<7) -#define DAC_GAIN_0_D (0<<8) -#define DAC_GAIN_1_D (1<<8) -#define DAC_GAIN_0_C (0<<9) -#define DAC_GAIN_1_C (1<<9) -#define DAC_GAIN_0_B (0<<10) -#define DAC_GAIN_1_B (1<<10) -#define DAC_GAIN_0_A (0<<11) -#define DAC_GAIN_1_A (1<<11) -#define ME_DAC_CONTROL_UPDATE 0x0012 /* R | - */ +#define ME_DAC_CTRL_REG 0x12 /* R (updates) | W */ +#define ME_DAC_CTRL_BIPOLAR(x) BIT(7 - ((x) & 0x3)) +#define ME_DAC_CTRL_GAIN(x) BIT(11 - ((x) & 0x3)) +#define ME_DAC_CTRL_MASK(x) (ME_DAC_CTRL_BIPOLAR(x) | \ + ME_DAC_CTRL_GAIN(x)) + #define ME_DAC_DATA_A 0x0014 /* - | W */ #define ME_DAC_DATA_B 0x0016 /* - | W */ #define ME_DAC_DATA_C 0x0018 /* - | W */ @@ -318,7 +306,7 @@ static int me_ao_insn_write(struct comedi_device *dev, { struct me_private_data *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); - unsigned int rang = CR_RANGE(insn->chanspec); + unsigned int range = CR_RANGE(insn->chanspec); unsigned int val = s->readback[chan]; int i; @@ -333,18 +321,17 @@ static int me_ao_insn_write(struct comedi_device *dev, /* Set dac-control register */ for (i = 0; i < insn->n; i++) { /* clear bits for this channel */ - devpriv->dac_ctrl &= ~(0x0880 >> chan); - if (rang == 0) - devpriv->dac_ctrl |= - ((DAC_BIPOLAR_A | DAC_GAIN_1_A) >> chan); - else if (rang == 1) - devpriv->dac_ctrl |= - ((DAC_BIPOLAR_A | DAC_GAIN_0_A) >> chan); + devpriv->dac_ctrl &= ~ME_DAC_CTRL_MASK(chan); + if (range == 0) + devpriv->dac_ctrl |= ME_DAC_CTRL_GAIN(chan) | + ME_DAC_CTRL_BIPOLAR(chan); + else if (range == 1) + devpriv->dac_ctrl |= ME_DAC_CTRL_BIPOLAR(chan); } - writew(devpriv->dac_ctrl, dev->mmio + ME_DAC_CONTROL); + writew(devpriv->dac_ctrl, dev->mmio + ME_DAC_CTRL_REG); /* Update dac-control register */ - readw(dev->mmio + ME_DAC_CONTROL_UPDATE); + readw(dev->mmio + ME_DAC_CTRL_REG); /* Set data register */ for (i = 0; i < insn->n; i++) { @@ -438,7 +425,7 @@ static int me_reset(struct comedi_device *dev) writew(0x00, dev->mmio + ME_CTRL1_REG); writew(0x00, dev->mmio + ME_CTRL2_REG); writew(0x00, dev->mmio + ME_STATUS_REG); /* clear interrupts */ - writew(0x00, dev->mmio + ME_DAC_CONTROL); + writew(0x00, dev->mmio + ME_DAC_CTRL_REG); /* Save values in the board context */ devpriv->dac_ctrl = 0; From 46ada8afc8fdd2788db152ceb0fc001f46072dfe Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:39 -0700 Subject: [PATCH 1581/2431] staging: comedi: me_daq: remove useless for() loop This for() loop isn't needed. Nothing in the loop uses the 'i' variable. Remove it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 71188fbadb65..a2b542ef8fd5 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -319,15 +319,12 @@ static int me_ao_insn_write(struct comedi_device *dev, writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); /* Set dac-control register */ - for (i = 0; i < insn->n; i++) { - /* clear bits for this channel */ - devpriv->dac_ctrl &= ~ME_DAC_CTRL_MASK(chan); - if (range == 0) - devpriv->dac_ctrl |= ME_DAC_CTRL_GAIN(chan) | - ME_DAC_CTRL_BIPOLAR(chan); - else if (range == 1) - devpriv->dac_ctrl |= ME_DAC_CTRL_BIPOLAR(chan); - } + devpriv->dac_ctrl &= ~ME_DAC_CTRL_MASK(chan); + if (range == 0) + devpriv->dac_ctrl |= ME_DAC_CTRL_GAIN(chan) | + ME_DAC_CTRL_BIPOLAR(chan); + else if (range == 1) + devpriv->dac_ctrl |= ME_DAC_CTRL_BIPOLAR(chan); writew(devpriv->dac_ctrl, dev->mmio + ME_DAC_CTRL_REG); /* Update dac-control register */ From 99104f62f018df989dc4bdd7c452b2e4e8b266e9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:40 -0700 Subject: [PATCH 1582/2431] staging: comedi: me_daq: use comedi_range_is_bipolar() helper Use the helper function to determine if the dac bipolar bit needs to be set. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index a2b542ef8fd5..626109070422 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -94,7 +94,6 @@ #define ME_DAC_CTRL_GAIN(x) BIT(11 - ((x) & 0x3)) #define ME_DAC_CTRL_MASK(x) (ME_DAC_CTRL_BIPOLAR(x) | \ ME_DAC_CTRL_GAIN(x)) - #define ME_DAC_DATA_A 0x0014 /* - | W */ #define ME_DAC_DATA_B 0x0016 /* - | W */ #define ME_DAC_DATA_C 0x0018 /* - | W */ @@ -321,9 +320,8 @@ static int me_ao_insn_write(struct comedi_device *dev, /* Set dac-control register */ devpriv->dac_ctrl &= ~ME_DAC_CTRL_MASK(chan); if (range == 0) - devpriv->dac_ctrl |= ME_DAC_CTRL_GAIN(chan) | - ME_DAC_CTRL_BIPOLAR(chan); - else if (range == 1) + devpriv->dac_ctrl |= ME_DAC_CTRL_GAIN(chan); + if (comedi_range_is_bipolar(s, range)) devpriv->dac_ctrl |= ME_DAC_CTRL_BIPOLAR(chan); writew(devpriv->dac_ctrl, dev->mmio + ME_DAC_CTRL_REG); From fdfc0a0dc5aefa49cfcb853729fe505c9c27d2bc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:41 -0700 Subject: [PATCH 1583/2431] staging: comedi: me_daq: tidy up dac data registers For aesthetics, use a macro that takes the analog output channel and returns the correct offset for the data register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 626109070422..6b3abe3de780 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -94,10 +94,7 @@ #define ME_DAC_CTRL_GAIN(x) BIT(11 - ((x) & 0x3)) #define ME_DAC_CTRL_MASK(x) (ME_DAC_CTRL_BIPOLAR(x) | \ ME_DAC_CTRL_GAIN(x)) -#define ME_DAC_DATA_A 0x0014 /* - | W */ -#define ME_DAC_DATA_B 0x0016 /* - | W */ -#define ME_DAC_DATA_C 0x0018 /* - | W */ -#define ME_DAC_DATA_D 0x001A /* - | W */ +#define ME_AO_DATA_REG(x) (0x14 + ((x) * 2)) /* - | W */ #define ME_COUNTER_ENDDATA_A 0x001C /* - | W */ #define ME_COUNTER_ENDDATA_B 0x001E /* - | W */ #define ME_COUNTER_STARTDATA_A 0x0020 /* - | W */ @@ -332,7 +329,7 @@ static int me_ao_insn_write(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { val = data[i]; - writew(val, dev->mmio + ME_DAC_DATA_A + (chan << 1)); + writew(val, dev->mmio + ME_AO_DATA_REG(chan)); } s->readback[chan] = val; From 450a84e8cf689912cc33d18f5aba38da9312d2b9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:42 -0700 Subject: [PATCH 1584/2431] staging: comedi: me_daq: tidy up counter registers For aesthetics, convert the counter registers into macros that take the counter channel and return the correct register offset. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 6b3abe3de780..91104050a203 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -95,12 +95,9 @@ #define ME_DAC_CTRL_MASK(x) (ME_DAC_CTRL_BIPOLAR(x) | \ ME_DAC_CTRL_GAIN(x)) #define ME_AO_DATA_REG(x) (0x14 + ((x) * 2)) /* - | W */ -#define ME_COUNTER_ENDDATA_A 0x001C /* - | W */ -#define ME_COUNTER_ENDDATA_B 0x001E /* - | W */ -#define ME_COUNTER_STARTDATA_A 0x0020 /* - | W */ -#define ME_COUNTER_VALUE_A 0x0020 /* R | - */ -#define ME_COUNTER_STARTDATA_B 0x0022 /* - | W */ -#define ME_COUNTER_VALUE_B 0x0022 /* R | - */ +#define ME_COUNTER_ENDDATA_REG(x) (0x1c + ((x) * 2)) /* - | W */ +#define ME_COUNTER_STARTDATA_REG(x) (0x20 + ((x) * 2)) /* - | W */ +#define ME_COUNTER_VALUE_REG(x) (0x20 + ((x) * 2)) /* R | - */ static const struct comedi_lrange me_ai_range = { 8, { From 8a844a91cab4556b7b7e336951623b394a80c934 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:43 -0700 Subject: [PATCH 1585/2431] staging: comedi: me_daq: allow differential analog inputs The ai (*insn_read) allows differential analog inputs but the subdevice initialization is missing the SDF_DIFF subdev_flag to allow the user to select this mode. Fix the subdevice init. According to the manual, differential operation only works with the first 8 channels and bipolar ranges. Add a check to the (*insn_read) to ensure this. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 91104050a203..cfb35662bf23 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -246,6 +246,15 @@ static int me_ai_insn_read(struct comedi_device *dev, unsigned short val; int ret; + /* + * For differential operation, there are only 8 input channels + * and only bipolar ranges are available. + */ + if (aref & AREF_DIFF) { + if (chan > 7 || comedi_range_is_unipolar(s, range)) + return -EINVAL; + } + /* stop any running conversion */ devpriv->ctrl1 &= ~ME_CTRL1_ADC_MODE_MASK; writew(devpriv->ctrl1, dev->mmio + ME_CTRL1_REG); @@ -472,7 +481,7 @@ static int me_auto_attach(struct comedi_device *dev, s = &dev->subdevices[0]; s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_COMMON; + s->subdev_flags = SDF_READABLE | SDF_COMMON | SDF_DIFF; s->n_chan = 16; s->maxdata = 0x0fff; s->len_chanlist = 16; From 651659c13353cb6a9eee4e94778b1708d3342dcf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:44 -0700 Subject: [PATCH 1586/2431] staging: comedi: me_daq: fix me_ai_insn_read() The comedi core expects (*insn_read) functions to return insn->n data values. Refactor the function to work like the core expects. For aesthetics, use the comedi_offset_munge() helper to munge the 2's complement data. This also fixes a minor issue when comedi_timeout() times out. Currently this function just returns which leaves the ADC mode programmed for software triggering. With the refactor the ADC mode is always disabled when the function exits. This allows removing the unnecessary steps to "stop any running conversions" at the start of the function. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/me_daq.c | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index cfb35662bf23..3bf0caa18ab0 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -243,8 +243,9 @@ static int me_ai_insn_read(struct comedi_device *dev, unsigned int chan = CR_CHAN(insn->chanspec); unsigned int range = CR_RANGE(insn->chanspec); unsigned int aref = CR_AREF(insn->chanspec); - unsigned short val; - int ret; + unsigned int val; + int ret = 0; + int i; /* * For differential operation, there are only 8 input channels @@ -255,10 +256,6 @@ static int me_ai_insn_read(struct comedi_device *dev, return -EINVAL; } - /* stop any running conversion */ - devpriv->ctrl1 &= ~ME_CTRL1_ADC_MODE_MASK; - writew(devpriv->ctrl1, dev->mmio + ME_CTRL1_REG); - /* clear chanlist and ad fifo */ devpriv->ctrl2 &= ~(ME_CTRL2_ADFIFO_ENA | ME_CTRL2_CHANLIST_ENA); writew(devpriv->ctrl2, dev->mmio + ME_CTRL2_REG); @@ -281,24 +278,27 @@ static int me_ai_insn_read(struct comedi_device *dev, devpriv->ctrl1 |= ME_CTRL1_ADC_MODE_SOFT_TRIG; writew(devpriv->ctrl1, dev->mmio + ME_CTRL1_REG); - /* start ai conversion */ - readw(dev->mmio + ME_CTRL1_REG); + for (i = 0; i < insn->n; i++) { + /* start ai conversion */ + readw(dev->mmio + ME_CTRL1_REG); - /* wait for ADC fifo not empty flag */ - ret = comedi_timeout(dev, s, insn, me_ai_eoc, 0); - if (ret) - return ret; + /* wait for ADC fifo not empty flag */ + ret = comedi_timeout(dev, s, insn, me_ai_eoc, 0); + if (ret) + break; - /* get value from ADC fifo */ - val = readw(dev->mmio + ME_AI_FIFO_REG); - val = (val ^ 0x800) & 0x0fff; - data[0] = val; + /* get value from ADC fifo */ + val = readw(dev->mmio + ME_AI_FIFO_REG) & s->maxdata; + + /* munge 2's complement value to offset binary */ + data[i] = comedi_offset_munge(s, val); + } /* stop any running conversion */ devpriv->ctrl1 &= ~ME_CTRL1_ADC_MODE_MASK; writew(devpriv->ctrl1, dev->mmio + ME_CTRL1_REG); - return 1; + return ret ? ret : insn->n; } static int me_ao_insn_write(struct comedi_device *dev, From bf895d83585ed6a091a20d96c2ecbf403261df4e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:33 -0700 Subject: [PATCH 1587/2431] staging: comedi: icp_multi: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 81 +++++++++++----------- 1 file changed, 41 insertions(+), 40 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 1e104ebf8057..27c8b1f12604 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -1,46 +1,47 @@ /* - comedi/drivers/icp_multi.c - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 1997-2002 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ + * icp_multi.c + * Comedi driver for Inova ICP_MULTI board + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 1997-2002 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ /* -Driver: icp_multi -Description: Inova ICP_MULTI -Author: Anne Smorthit -Devices: [Inova] ICP_MULTI (icp_multi) -Status: works - -The driver works for analog input and output and digital input and output. -It does not work with interrupts or with the counters. Currently no support -for DMA. - -It has 16 single-ended or 8 differential Analogue Input channels with 12-bit -resolution. Ranges : 5V, 10V, +/-5V, +/-10V, 0..20mA and 4..20mA. Input -ranges can be individually programmed for each channel. Voltage or current -measurement is selected by jumper. - -There are 4 x 12-bit Analogue Outputs. Ranges : 5V, 10V, +/-5V, +/-10V - -16 x Digital Inputs, 24V - -8 x Digital Outputs, 24V, 1A - -4 x 16-bit counters - -Configuration options: not applicable, uses PCI auto config -*/ + * Driver: icp_multi + * Description: Inova ICP_MULTI + * Devices: [Inova] ICP_MULTI (icp_multi) + * Author: Anne Smorthit + * Status: works + * + * Configuration options: not applicable, uses PCI auto config + * + * The driver works for analog input and output and digital input and + * output. It does not work with interrupts or with the counters. Currently + * no support for DMA. + * + * It has 16 single-ended or 8 differential Analogue Input channels with + * 12-bit resolution. Ranges : 5V, 10V, +/-5V, +/-10V, 0..20mA and 4..20mA. + * Input ranges can be individually programmed for each channel. Voltage or + * current measurement is selected by jumper. + * + * There are 4 x 12-bit Analogue Outputs. Ranges : 5V, 10V, +/-5V, +/-10V + * + * 16 x Digital Inputs, 24V + * + * 8 x Digital Outputs, 24V, 1A + * + * 4 x 16-bit counters + */ #include #include From 456031d6041a57229b67dbfa598d1ece814fb001 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:34 -0700 Subject: [PATCH 1588/2431] staging: comedi: icp_multi: tidy up the ADC command/status register bits For aesthetics, rename these bit defines so they are associated with the register and use the BIT macro to define them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 27c8b1f12604..2ee8bf53a9b9 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -49,7 +49,12 @@ #include "../comedi_pci.h" -#define ICP_MULTI_ADC_CSR 0 /* R/W: ADC command/status register */ +#define ICP_MULTI_ADC_CSR 0x00 /* R/W: ADC command/status register */ +#define ICP_MULTI_ADC_CSR_ST BIT(0) /* Start ADC */ +#define ICP_MULTI_ADC_CSR_BSY BIT(0) /* ADC busy */ +#define ICP_MULTI_ADC_CSR_BI BIT(4) /* Bipolar input range */ +#define ICP_MULTI_ADC_CSR_RA BIT(5) /* Input range 0 = 5V, 1 = 10V */ +#define ICP_MULTI_ADC_CSR_DI BIT(6) /* Input mode 1 = differential */ #define ICP_MULTI_AI 2 /* R: Analogue input data */ #define ICP_MULTI_DAC_CSR 4 /* R/W: DAC command/status register */ #define ICP_MULTI_AO 6 /* R/W: Analogue output data */ @@ -62,13 +67,6 @@ #define ICP_MULTI_CNTR2 0x14 /* R/W: Counter 2 */ #define ICP_MULTI_CNTR3 0x16 /* R/W: Counter 3 */ -/* Define bits from ADC command/status register */ -#define ADC_ST 0x0001 /* Start ADC */ -#define ADC_BSY 0x0001 /* ADC busy */ -#define ADC_BI 0x0010 /* Bipolar input range 1 = bipolar */ -#define ADC_RA 0x0020 /* Input range 0 = 5V, 1 = 10V */ -#define ADC_DI 0x0040 /* Differential input mode 1 = differential */ - /* Define bits from DAC command/status register */ #define DAC_ST 0x0001 /* Start DAC */ #define DAC_BSY 0x0001 /* DAC busy */ @@ -150,7 +148,7 @@ static void setup_channel_list(struct comedi_device *dev, if (diff) { /* Set channel number, bits 9-11 & mode, bit 6 */ devpriv->AdcCmdStatus |= (chanprog << 9); - devpriv->AdcCmdStatus |= ADC_DI; + devpriv->AdcCmdStatus |= ICP_MULTI_ADC_CSR_DI; } else /* Set channel number, bits 8-11 */ devpriv->AdcCmdStatus |= (chanprog << 8); @@ -173,7 +171,7 @@ static int icp_multi_ai_eoc(struct comedi_device *dev, unsigned int status; status = readw(dev->mmio + ICP_MULTI_ADC_CSR); - if ((status & ADC_BSY) == 0) + if ((status & ICP_MULTI_ADC_CSR_BSY) == 0) return 0; return -EBUSY; } @@ -200,9 +198,9 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, for (n = 0; n < insn->n; n++) { /* Set start ADC bit */ - devpriv->AdcCmdStatus |= ADC_ST; + devpriv->AdcCmdStatus |= ICP_MULTI_ADC_CSR_ST; writew(devpriv->AdcCmdStatus, dev->mmio + ICP_MULTI_ADC_CSR); - devpriv->AdcCmdStatus &= ~ADC_ST; + devpriv->AdcCmdStatus &= ~ICP_MULTI_ADC_CSR_ST; udelay(1); From 01544d6e0ebd4a2f756a69263240c87c8610764e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:35 -0700 Subject: [PATCH 1589/2431] staging: comedi: icp_multi: tidy up the DAC command/status register bits For aesthetics, rename these bit defines so they are associated with the register and use the BIT macro to define them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 2ee8bf53a9b9..57eded18b99e 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -56,7 +56,11 @@ #define ICP_MULTI_ADC_CSR_RA BIT(5) /* Input range 0 = 5V, 1 = 10V */ #define ICP_MULTI_ADC_CSR_DI BIT(6) /* Input mode 1 = differential */ #define ICP_MULTI_AI 2 /* R: Analogue input data */ -#define ICP_MULTI_DAC_CSR 4 /* R/W: DAC command/status register */ +#define ICP_MULTI_DAC_CSR 0x04 /* R/W: DAC command/status register */ +#define ICP_MULTI_DAC_CSR_ST BIT(0) /* Start DAC */ +#define ICP_MULTI_DAC_CSR_BSY BIT(0) /* DAC busy */ +#define ICP_MULTI_DAC_CSR_BI BIT(4) /* Bipolar output range */ +#define ICP_MULTI_DAC_CSR_RA BIT(5) /* Output range 0 = 5V, 1 = 10V */ #define ICP_MULTI_AO 6 /* R/W: Analogue output data */ #define ICP_MULTI_DI 8 /* R/W: Digital inputs */ #define ICP_MULTI_DO 0x0A /* R/W: Digital outputs */ @@ -67,12 +71,6 @@ #define ICP_MULTI_CNTR2 0x14 /* R/W: Counter 2 */ #define ICP_MULTI_CNTR3 0x16 /* R/W: Counter 3 */ -/* Define bits from DAC command/status register */ -#define DAC_ST 0x0001 /* Start DAC */ -#define DAC_BSY 0x0001 /* DAC busy */ -#define DAC_BI 0x0010 /* Bipolar input range 1 = bipolar */ -#define DAC_RA 0x0020 /* Input range 0 = 5V, 1 = 10V */ - /* Define bits from interrupt enable/status registers */ #define ADC_READY 0x0001 /* A/d conversion ready interrupt */ #define DAC_READY 0x0002 /* D/a conversion ready interrupt */ @@ -231,7 +229,7 @@ static int icp_multi_ao_eoc(struct comedi_device *dev, unsigned int status; status = readw(dev->mmio + ICP_MULTI_DAC_CSR); - if ((status & DAC_BSY) == 0) + if ((status & ICP_MULTI_DAC_CSR_BSY) == 0) return 0; return -EBUSY; } @@ -288,10 +286,10 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, writew(val, dev->mmio + ICP_MULTI_AO); - /* Set DAC_ST bit to write the data to selected channel */ - devpriv->DacCmdStatus |= DAC_ST; + /* Set start conversion bit to write data to channel */ + devpriv->DacCmdStatus |= ICP_MULTI_DAC_CSR_ST; writew(devpriv->DacCmdStatus, dev->mmio + ICP_MULTI_DAC_CSR); - devpriv->DacCmdStatus &= ~DAC_ST; + devpriv->DacCmdStatus &= ~ICP_MULTI_DAC_CSR_ST; s->readback[chan] = val; } @@ -426,7 +424,7 @@ static int icp_multi_reset(struct comedi_device *dev) writew(0, dev->mmio + ICP_MULTI_AO); /* Set start conversion bit */ - devpriv->DacCmdStatus |= DAC_ST; + devpriv->DacCmdStatus |= ICP_MULTI_DAC_CSR_ST; /* Output to command / status register */ writew(devpriv->DacCmdStatus, dev->mmio + ICP_MULTI_DAC_CSR); From 8537a1a4b46fdd96448cc82c7fa0ea25ab30f994 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:36 -0700 Subject: [PATCH 1590/2431] staging: comedi: icp_multi: tidy up the interrupt enable/status register bits For aesthetics, rename these bit defines so they are associated with the registers and use the BIT macro to define them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 60 ++++++++++------------ 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 57eded18b99e..5a54b3a87f52 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -64,26 +64,22 @@ #define ICP_MULTI_AO 6 /* R/W: Analogue output data */ #define ICP_MULTI_DI 8 /* R/W: Digital inputs */ #define ICP_MULTI_DO 0x0A /* R/W: Digital outputs */ -#define ICP_MULTI_INT_EN 0x0C /* R/W: Interrupt enable register */ -#define ICP_MULTI_INT_STAT 0x0E /* R/W: Interrupt status register */ +#define ICP_MULTI_INT_EN 0x0c /* R/W: Interrupt enable register */ +#define ICP_MULTI_INT_STAT 0x0e /* R/W: Interrupt status register */ +#define ICP_MULTI_INT_ADC_RDY BIT(0) /* A/D conversion ready interrupt */ +#define ICP_MULTI_INT_DAC_RDY BIT(1) /* D/A conversion ready interrupt */ +#define ICP_MULTI_INT_DOUT_ERR BIT(2) /* Digital output error interrupt */ +#define ICP_MULTI_INT_DIN_STAT BIT(3) /* Digital input status change int. */ +#define ICP_MULTI_INT_CIE0 BIT(4) /* Counter 0 overrun interrupt */ +#define ICP_MULTI_INT_CIE1 BIT(5) /* Counter 1 overrun interrupt */ +#define ICP_MULTI_INT_CIE2 BIT(6) /* Counter 2 overrun interrupt */ +#define ICP_MULTI_INT_CIE3 BIT(7) /* Counter 3 overrun interrupt */ +#define ICP_MULTI_INT_MASK 0xff /* All interrupts */ #define ICP_MULTI_CNTR0 0x10 /* R/W: Counter 0 */ #define ICP_MULTI_CNTR1 0x12 /* R/W: counter 1 */ #define ICP_MULTI_CNTR2 0x14 /* R/W: Counter 2 */ #define ICP_MULTI_CNTR3 0x16 /* R/W: Counter 3 */ -/* Define bits from interrupt enable/status registers */ -#define ADC_READY 0x0001 /* A/d conversion ready interrupt */ -#define DAC_READY 0x0002 /* D/a conversion ready interrupt */ -#define DOUT_ERROR 0x0004 /* Digital output error interrupt */ -#define DIN_STATUS 0x0008 /* Digital input status change interrupt */ -#define CIE0 0x0010 /* Counter 0 overrun interrupt */ -#define CIE1 0x0020 /* Counter 1 overrun interrupt */ -#define CIE2 0x0040 /* Counter 2 overrun interrupt */ -#define CIE3 0x0080 /* Counter 3 overrun interrupt */ - -/* Useful definitions */ -#define Status_IRQ 0x00ff /* All interrupts */ - /* Define analogue range */ static const struct comedi_lrange range_analog = { 4, { @@ -184,11 +180,11 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, int n; /* Disable A/D conversion ready interrupt */ - devpriv->IntEnable &= ~ADC_READY; + devpriv->IntEnable &= ~ICP_MULTI_INT_ADC_RDY; writew(devpriv->IntEnable, dev->mmio + ICP_MULTI_INT_EN); /* Clear interrupt status */ - devpriv->IntStatus |= ADC_READY; + devpriv->IntStatus |= ICP_MULTI_INT_ADC_RDY; writew(devpriv->IntStatus, dev->mmio + ICP_MULTI_INT_STAT); /* Set up appropriate channel, mode and range data, for specified ch */ @@ -211,11 +207,11 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, } /* Disable interrupt */ - devpriv->IntEnable &= ~ADC_READY; + devpriv->IntEnable &= ~ICP_MULTI_INT_ADC_RDY; writew(devpriv->IntEnable, dev->mmio + ICP_MULTI_INT_EN); /* Clear interrupt status */ - devpriv->IntStatus |= ADC_READY; + devpriv->IntStatus |= ICP_MULTI_INT_ADC_RDY; writew(devpriv->IntStatus, dev->mmio + ICP_MULTI_INT_STAT); return ret ? ret : n; @@ -245,11 +241,11 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, int i; /* Disable D/A conversion ready interrupt */ - devpriv->IntEnable &= ~DAC_READY; + devpriv->IntEnable &= ~ICP_MULTI_INT_DAC_RDY; writew(devpriv->IntEnable, dev->mmio + ICP_MULTI_INT_EN); /* Clear interrupt status */ - devpriv->IntStatus |= DAC_READY; + devpriv->IntStatus |= ICP_MULTI_INT_DAC_RDY; writew(devpriv->IntStatus, dev->mmio + ICP_MULTI_INT_STAT); /* Set up range and channel data */ @@ -272,12 +268,12 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, ret = comedi_timeout(dev, s, insn, icp_multi_ao_eoc, 0); if (ret) { /* Disable interrupt */ - devpriv->IntEnable &= ~DAC_READY; + devpriv->IntEnable &= ~ICP_MULTI_INT_DAC_RDY; writew(devpriv->IntEnable, dev->mmio + ICP_MULTI_INT_EN); /* Clear interrupt status */ - devpriv->IntStatus |= DAC_READY; + devpriv->IntStatus |= ICP_MULTI_INT_DAC_RDY; writew(devpriv->IntStatus, dev->mmio + ICP_MULTI_INT_STAT); @@ -341,28 +337,28 @@ static irqreturn_t interrupt_service_icp_multi(int irq, void *d) int int_no; /* Is this interrupt from our board? */ - int_no = readw(dev->mmio + ICP_MULTI_INT_STAT) & Status_IRQ; + int_no = readw(dev->mmio + ICP_MULTI_INT_STAT) & ICP_MULTI_INT_MASK; if (!int_no) /* No, exit */ return IRQ_NONE; /* Determine which interrupt is active & handle it */ switch (int_no) { - case ADC_READY: + case ICP_MULTI_INT_ADC_RDY: break; - case DAC_READY: + case ICP_MULTI_INT_DAC_RDY: break; - case DOUT_ERROR: + case ICP_MULTI_INT_DOUT_ERR: break; - case DIN_STATUS: + case ICP_MULTI_INT_DIN_STAT: break; - case CIE0: + case ICP_MULTI_INT_CIE0: break; - case CIE1: + case ICP_MULTI_INT_CIE1: break; - case CIE2: + case ICP_MULTI_INT_CIE2: break; - case CIE3: + case ICP_MULTI_INT_CIE3: break; default: break; From 24bc018e736f35d99a217a3488d85e83f693d3d9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:37 -0700 Subject: [PATCH 1591/2431] staging: comedi: icp_multi: rename static variable 'range_analog' For aesthetics, rename this static variable so it has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 5a54b3a87f52..9cc79e73d641 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -80,8 +80,8 @@ #define ICP_MULTI_CNTR2 0x14 /* R/W: Counter 2 */ #define ICP_MULTI_CNTR3 0x16 /* R/W: Counter 3 */ -/* Define analogue range */ -static const struct comedi_lrange range_analog = { +/* analog input and output have the same range options */ +static const struct comedi_lrange icp_multi_ranges = { 4, { UNI_RANGE(5), UNI_RANGE(10), @@ -475,7 +475,7 @@ static int icp_multi_auto_attach(struct comedi_device *dev, s->n_chan = 16; s->maxdata = 0x0fff; s->len_chanlist = 16; - s->range_table = &range_analog; + s->range_table = &icp_multi_ranges; s->insn_read = icp_multi_insn_read_ai; s = &dev->subdevices[1]; @@ -484,7 +484,7 @@ static int icp_multi_auto_attach(struct comedi_device *dev, s->n_chan = 4; s->maxdata = 0x0fff; s->len_chanlist = 4; - s->range_table = &range_analog; + s->range_table = &icp_multi_ranges; s->insn_write = icp_multi_ao_insn_write; ret = comedi_alloc_subdev_readback(s); From c2a6e057d3bd462bf8f529da484c6baf4a5d63b0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:38 -0700 Subject: [PATCH 1592/2431] staging: comedi: icp_multi: remove unnecessary block comment This comment doesn't add any value to the code. Remove it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 9cc79e73d641..0d6fd99dc217 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -92,12 +92,6 @@ static const struct comedi_lrange icp_multi_ranges = { static const char range_codes_analog[] = { 0x00, 0x20, 0x10, 0x30 }; -/* -============================================================================== - Data & Structure declarations -============================================================================== -*/ - struct icp_multi_private { unsigned int AdcCmdStatus; /* ADC Command/Status register */ unsigned int DacCmdStatus; /* DAC Command/Status register */ From fc7680d11b874addb345d682d927b7768534998d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:39 -0700 Subject: [PATCH 1593/2431] staging: comedi: icp_multi: remove unused members from private data These members are either not used at all or they are set but never used. Just remove them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 0d6fd99dc217..fbcaa2d6baeb 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -97,11 +97,6 @@ struct icp_multi_private { unsigned int DacCmdStatus; /* DAC Command/Status register */ unsigned int IntEnable; /* Interrupt Enable register */ unsigned int IntStatus; /* Interrupt Status register */ - unsigned int act_chanlist[32]; /* list of scanned channel */ - unsigned char act_chanlist_len; /* len of scanlist */ - unsigned char act_chanlist_pos; /* actual position in MUX list */ - unsigned int *ai_chanlist; /* actaul chanlist */ - unsigned int do_data; /* Remember digital output data */ }; static void setup_channel_list(struct comedi_device *dev, @@ -112,9 +107,6 @@ static void setup_channel_list(struct comedi_device *dev, unsigned int i, range, chanprog; unsigned int diff; - devpriv->act_chanlist_len = n_chan; - devpriv->act_chanlist_pos = 0; - for (i = 0; i < n_chan; i++) { /* Get channel */ chanprog = CR_CHAN(chanlist[i]); From f9405655029390a58a7ad586541c830687196d78 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:40 -0700 Subject: [PATCH 1594/2431] staging: comedi: icp_multi: absorb setup_channel_list() This function is only called in one place and the 'n_chan' parameter is always 1. This makes the for() loop a bit silly. Absorb the function into the caller and simplify the code. This also removes the need for the private data member 'AdcCmdStatus'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 67 ++++++---------------- 1 file changed, 17 insertions(+), 50 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index fbcaa2d6baeb..d3c37d581ce1 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -55,6 +55,8 @@ #define ICP_MULTI_ADC_CSR_BI BIT(4) /* Bipolar input range */ #define ICP_MULTI_ADC_CSR_RA BIT(5) /* Input range 0 = 5V, 1 = 10V */ #define ICP_MULTI_ADC_CSR_DI BIT(6) /* Input mode 1 = differential */ +#define ICP_MULTI_ADC_CSR_DI_CHAN(x) (((x) & 0x7) << 9) +#define ICP_MULTI_ADC_CSR_SE_CHAN(x) (((x) & 0xf) << 8) #define ICP_MULTI_AI 2 /* R: Analogue input data */ #define ICP_MULTI_DAC_CSR 0x04 /* R/W: DAC command/status register */ #define ICP_MULTI_DAC_CSR_ST BIT(0) /* Start DAC */ @@ -93,56 +95,11 @@ static const struct comedi_lrange icp_multi_ranges = { static const char range_codes_analog[] = { 0x00, 0x20, 0x10, 0x30 }; struct icp_multi_private { - unsigned int AdcCmdStatus; /* ADC Command/Status register */ unsigned int DacCmdStatus; /* DAC Command/Status register */ unsigned int IntEnable; /* Interrupt Enable register */ unsigned int IntStatus; /* Interrupt Status register */ }; -static void setup_channel_list(struct comedi_device *dev, - struct comedi_subdevice *s, - unsigned int *chanlist, unsigned int n_chan) -{ - struct icp_multi_private *devpriv = dev->private; - unsigned int i, range, chanprog; - unsigned int diff; - - for (i = 0; i < n_chan; i++) { - /* Get channel */ - chanprog = CR_CHAN(chanlist[i]); - - /* Determine if it is a differential channel (Bit 15 = 1) */ - if (CR_AREF(chanlist[i]) == AREF_DIFF) { - diff = 1; - chanprog &= 0x0007; - } else { - diff = 0; - chanprog &= 0x000f; - } - - /* Clear channel, range and input mode bits - * in A/D command/status register */ - devpriv->AdcCmdStatus &= 0xf00f; - - /* Set channel number and differential mode status bit */ - if (diff) { - /* Set channel number, bits 9-11 & mode, bit 6 */ - devpriv->AdcCmdStatus |= (chanprog << 9); - devpriv->AdcCmdStatus |= ICP_MULTI_ADC_CSR_DI; - } else - /* Set channel number, bits 8-11 */ - devpriv->AdcCmdStatus |= (chanprog << 8); - - /* Get range for current channel */ - range = range_codes_analog[CR_RANGE(chanlist[i])]; - /* Set range. bits 4-5 */ - devpriv->AdcCmdStatus |= range; - - /* Output channel, range, mode to ICP Multi */ - writew(devpriv->AdcCmdStatus, dev->mmio + ICP_MULTI_ADC_CSR); - } -} - static int icp_multi_ai_eoc(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -162,6 +119,10 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, unsigned int *data) { struct icp_multi_private *devpriv = dev->private; + unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int range = CR_RANGE(insn->chanspec); + unsigned int aref = CR_AREF(insn->chanspec); + unsigned int adc_csr; int ret = 0; int n; @@ -173,14 +134,20 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, devpriv->IntStatus |= ICP_MULTI_INT_ADC_RDY; writew(devpriv->IntStatus, dev->mmio + ICP_MULTI_INT_STAT); - /* Set up appropriate channel, mode and range data, for specified ch */ - setup_channel_list(dev, s, &insn->chanspec, 1); + /* Set mode and range data for specified channel */ + if (aref == AREF_DIFF) { + adc_csr = ICP_MULTI_ADC_CSR_DI_CHAN(chan) | + ICP_MULTI_ADC_CSR_DI; + } else { + adc_csr = ICP_MULTI_ADC_CSR_SE_CHAN(chan); + } + adc_csr |= range_codes_analog[range]; + writew(adc_csr, dev->mmio + ICP_MULTI_ADC_CSR); for (n = 0; n < insn->n; n++) { /* Set start ADC bit */ - devpriv->AdcCmdStatus |= ICP_MULTI_ADC_CSR_ST; - writew(devpriv->AdcCmdStatus, dev->mmio + ICP_MULTI_ADC_CSR); - devpriv->AdcCmdStatus &= ~ICP_MULTI_ADC_CSR_ST; + writew(adc_csr | ICP_MULTI_ADC_CSR_ST, + dev->mmio + ICP_MULTI_ADC_CSR); udelay(1); From dd61ceddfe31da38c564a587f26164c33962a5cb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:41 -0700 Subject: [PATCH 1595/2431] staging: comedi: icp_multi: remove interrupt support The interrupt handler in this driver doesn't do anything other than read the interrupt status register. Since I can't locate a datasheet for the board, remove the useless interrupt support code. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 44 ---------------------- 1 file changed, 44 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index d3c37d581ce1..b37ed42db75b 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -45,7 +45,6 @@ #include #include -#include #include "../comedi_pci.h" @@ -284,42 +283,6 @@ static int icp_multi_insn_write_ctr(struct comedi_device *dev, return 0; } -static irqreturn_t interrupt_service_icp_multi(int irq, void *d) -{ - struct comedi_device *dev = d; - int int_no; - - /* Is this interrupt from our board? */ - int_no = readw(dev->mmio + ICP_MULTI_INT_STAT) & ICP_MULTI_INT_MASK; - if (!int_no) - /* No, exit */ - return IRQ_NONE; - - /* Determine which interrupt is active & handle it */ - switch (int_no) { - case ICP_MULTI_INT_ADC_RDY: - break; - case ICP_MULTI_INT_DAC_RDY: - break; - case ICP_MULTI_INT_DOUT_ERR: - break; - case ICP_MULTI_INT_DIN_STAT: - break; - case ICP_MULTI_INT_CIE0: - break; - case ICP_MULTI_INT_CIE1: - break; - case ICP_MULTI_INT_CIE2: - break; - case ICP_MULTI_INT_CIE3: - break; - default: - break; - } - - return IRQ_HANDLED; -} - #if 0 static int check_channel_list(struct comedi_device *dev, struct comedi_subdevice *s, @@ -414,13 +377,6 @@ static int icp_multi_auto_attach(struct comedi_device *dev, icp_multi_reset(dev); - if (pcidev->irq) { - ret = request_irq(pcidev->irq, interrupt_service_icp_multi, - IRQF_SHARED, dev->board_name, dev); - if (ret == 0) - dev->irq = pcidev->irq; - } - s = &dev->subdevices[0]; dev->read_subdev = s; s->type = COMEDI_SUBD_AI; From 4faa71ff91e783e70e23d86cbf870dc3a9899011 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:42 -0700 Subject: [PATCH 1596/2431] staging: comedi: icp_multi: remove useless interrupt disable code This driver does not use interrupts and all the interrupt source are disabled by icp_multi_reset() when the board is first attached. Remove the unnecessary, and useless, disable and clearing of interrupts in the analog input and output (*insn_read) and (*insn_write) functions. This also removes the need for the private data members 'IntEnable' and 'IntStatus'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 44 ++-------------------- 1 file changed, 3 insertions(+), 41 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index b37ed42db75b..68d177040f94 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -95,8 +95,6 @@ static const char range_codes_analog[] = { 0x00, 0x20, 0x10, 0x30 }; struct icp_multi_private { unsigned int DacCmdStatus; /* DAC Command/Status register */ - unsigned int IntEnable; /* Interrupt Enable register */ - unsigned int IntStatus; /* Interrupt Status register */ }; static int icp_multi_ai_eoc(struct comedi_device *dev, @@ -117,7 +115,6 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - struct icp_multi_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int range = CR_RANGE(insn->chanspec); unsigned int aref = CR_AREF(insn->chanspec); @@ -125,14 +122,6 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, int ret = 0; int n; - /* Disable A/D conversion ready interrupt */ - devpriv->IntEnable &= ~ICP_MULTI_INT_ADC_RDY; - writew(devpriv->IntEnable, dev->mmio + ICP_MULTI_INT_EN); - - /* Clear interrupt status */ - devpriv->IntStatus |= ICP_MULTI_INT_ADC_RDY; - writew(devpriv->IntStatus, dev->mmio + ICP_MULTI_INT_STAT); - /* Set mode and range data for specified channel */ if (aref == AREF_DIFF) { adc_csr = ICP_MULTI_ADC_CSR_DI_CHAN(chan) | @@ -158,14 +147,6 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, data[n] = (readw(dev->mmio + ICP_MULTI_AI) >> 4) & 0x0fff; } - /* Disable interrupt */ - devpriv->IntEnable &= ~ICP_MULTI_INT_ADC_RDY; - writew(devpriv->IntEnable, dev->mmio + ICP_MULTI_INT_EN); - - /* Clear interrupt status */ - devpriv->IntStatus |= ICP_MULTI_INT_ADC_RDY; - writew(devpriv->IntStatus, dev->mmio + ICP_MULTI_INT_STAT); - return ret ? ret : n; } @@ -192,14 +173,6 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, unsigned int range = CR_RANGE(insn->chanspec); int i; - /* Disable D/A conversion ready interrupt */ - devpriv->IntEnable &= ~ICP_MULTI_INT_DAC_RDY; - writew(devpriv->IntEnable, dev->mmio + ICP_MULTI_INT_EN); - - /* Clear interrupt status */ - devpriv->IntStatus |= ICP_MULTI_INT_DAC_RDY; - writew(devpriv->IntStatus, dev->mmio + ICP_MULTI_INT_STAT); - /* Set up range and channel data */ /* Bit 4 = 1 : Bipolar */ /* Bit 5 = 0 : 5V */ @@ -218,19 +191,8 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, /* Wait for analogue output data register to be * ready for new data, or get fed up waiting */ ret = comedi_timeout(dev, s, insn, icp_multi_ao_eoc, 0); - if (ret) { - /* Disable interrupt */ - devpriv->IntEnable &= ~ICP_MULTI_INT_DAC_RDY; - writew(devpriv->IntEnable, - dev->mmio + ICP_MULTI_INT_EN); - - /* Clear interrupt status */ - devpriv->IntStatus |= ICP_MULTI_INT_DAC_RDY; - writew(devpriv->IntStatus, - dev->mmio + ICP_MULTI_INT_STAT); - + if (ret) return ret; - } writew(val, dev->mmio + ICP_MULTI_AO); @@ -321,9 +283,9 @@ static int icp_multi_reset(struct comedi_device *dev) struct icp_multi_private *devpriv = dev->private; unsigned int i; - /* Clear INT enables and requests */ + /* Disable all interrupts and clear any requests */ writew(0, dev->mmio + ICP_MULTI_INT_EN); - writew(0x00ff, dev->mmio + ICP_MULTI_INT_STAT); + writew(ICP_MULTI_INT_MASK, dev->mmio + ICP_MULTI_INT_STAT); /* Set DACs to 0..5V range and 0V output */ for (i = 0; i < 4; i++) { From 36825db47e12e00413b0c5f8cebb6a6d49f1db36 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:43 -0700 Subject: [PATCH 1597/2431] staging: comedi: icp_multi: remove check_channel_list() This function would only be needed in the driver supported async commands. It's #if 0'ed out anyway so just remove it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 33 ---------------------- 1 file changed, 33 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 68d177040f94..5a896beccad0 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -245,39 +245,6 @@ static int icp_multi_insn_write_ctr(struct comedi_device *dev, return 0; } -#if 0 -static int check_channel_list(struct comedi_device *dev, - struct comedi_subdevice *s, - unsigned int *chanlist, unsigned int n_chan) -{ - unsigned int i; - - /* Check that we at least have one channel to check */ - if (n_chan < 1) { - dev_err(dev->class_dev, "range/channel list is empty!\n"); - return 0; - } - /* Check all channels */ - for (i = 0; i < n_chan; i++) { - /* Check that channel number is < maximum */ - if (CR_AREF(chanlist[i]) == AREF_DIFF) { - if (CR_CHAN(chanlist[i]) > (s->nchan / 2)) { - dev_err(dev->class_dev, - "Incorrect differential ai ch-nr\n"); - return 0; - } - } else { - if (CR_CHAN(chanlist[i]) > s->n_chan) { - dev_err(dev->class_dev, - "Incorrect ai channel number\n"); - return 0; - } - } - } - return 1; -} -#endif - static int icp_multi_reset(struct comedi_device *dev) { struct icp_multi_private *devpriv = dev->private; From c4f20dd0249fcf1f950d2fc196b7c84a967d5731 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:44 -0700 Subject: [PATCH 1598/2431] staging: comedi: icp_multi: remove private data member 'DacCmdStatus' This private data member isn't really needed. The two functions that use it, icp_multi_ao_insn_write() and icp_multi_reset(), mask any previous value before setting the bits. The masking just clears the variable. Refactor the code to not use the private data member. This also removes the need for the private data so remove it's allocation during the attach. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 54 +++++++--------------- 1 file changed, 17 insertions(+), 37 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 5a896beccad0..c3151f4fa550 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -62,6 +62,7 @@ #define ICP_MULTI_DAC_CSR_BSY BIT(0) /* DAC busy */ #define ICP_MULTI_DAC_CSR_BI BIT(4) /* Bipolar output range */ #define ICP_MULTI_DAC_CSR_RA BIT(5) /* Output range 0 = 5V, 1 = 10V */ +#define ICP_MULTI_DAC_CSR_CHAN(x) (((x) & 0x3) << 8) #define ICP_MULTI_AO 6 /* R/W: Analogue output data */ #define ICP_MULTI_DI 8 /* R/W: Digital inputs */ #define ICP_MULTI_DO 0x0A /* R/W: Digital outputs */ @@ -93,10 +94,6 @@ static const struct comedi_lrange icp_multi_ranges = { static const char range_codes_analog[] = { 0x00, 0x20, 0x10, 0x30 }; -struct icp_multi_private { - unsigned int DacCmdStatus; /* DAC Command/Status register */ -}; - static int icp_multi_ai_eoc(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -168,21 +165,15 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - struct icp_multi_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int range = CR_RANGE(insn->chanspec); + unsigned int dac_csr; int i; - /* Set up range and channel data */ - /* Bit 4 = 1 : Bipolar */ - /* Bit 5 = 0 : 5V */ - /* Bit 5 = 1 : 10V */ - /* Bits 8-9 : Channel number */ - devpriv->DacCmdStatus &= 0xfccf; - devpriv->DacCmdStatus |= range_codes_analog[range]; - devpriv->DacCmdStatus |= (chan << 8); - - writew(devpriv->DacCmdStatus, dev->mmio + ICP_MULTI_DAC_CSR); + /* Select channel and range */ + dac_csr = ICP_MULTI_DAC_CSR_CHAN(chan); + dac_csr |= range_codes_analog[range]; + writew(dac_csr, dev->mmio + ICP_MULTI_DAC_CSR); for (i = 0; i < insn->n; i++) { unsigned int val = data[i]; @@ -197,9 +188,8 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, writew(val, dev->mmio + ICP_MULTI_AO); /* Set start conversion bit to write data to channel */ - devpriv->DacCmdStatus |= ICP_MULTI_DAC_CSR_ST; - writew(devpriv->DacCmdStatus, dev->mmio + ICP_MULTI_DAC_CSR); - devpriv->DacCmdStatus &= ~ICP_MULTI_DAC_CSR_ST; + writew(dac_csr | ICP_MULTI_DAC_CSR_ST, + dev->mmio + ICP_MULTI_DAC_CSR); s->readback[chan] = val; } @@ -247,30 +237,25 @@ static int icp_multi_insn_write_ctr(struct comedi_device *dev, static int icp_multi_reset(struct comedi_device *dev) { - struct icp_multi_private *devpriv = dev->private; - unsigned int i; + int i; /* Disable all interrupts and clear any requests */ writew(0, dev->mmio + ICP_MULTI_INT_EN); writew(ICP_MULTI_INT_MASK, dev->mmio + ICP_MULTI_INT_STAT); - /* Set DACs to 0..5V range and 0V output */ + /* Reset the analog output channels to 0V */ for (i = 0; i < 4; i++) { - devpriv->DacCmdStatus &= 0xfcce; + unsigned int dac_csr = ICP_MULTI_DAC_CSR_CHAN(i); - /* Set channel number */ - devpriv->DacCmdStatus |= (i << 8); + /* Select channel and 0..5V range */ + writew(dac_csr, dev->mmio + ICP_MULTI_DAC_CSR); - /* Output 0V */ + /* Output 0V */ writew(0, dev->mmio + ICP_MULTI_AO); - /* Set start conversion bit */ - devpriv->DacCmdStatus |= ICP_MULTI_DAC_CSR_ST; - - /* Output to command / status register */ - writew(devpriv->DacCmdStatus, dev->mmio + ICP_MULTI_DAC_CSR); - - /* Delay to allow DAC time to recover */ + /* Set start conversion bit to write data to channel */ + writew(dac_csr | ICP_MULTI_DAC_CSR_ST, + dev->mmio + ICP_MULTI_DAC_CSR); udelay(1); } @@ -284,14 +269,9 @@ static int icp_multi_auto_attach(struct comedi_device *dev, unsigned long context_unused) { struct pci_dev *pcidev = comedi_to_pci_dev(dev); - struct icp_multi_private *devpriv; struct comedi_subdevice *s; int ret; - devpriv = comedi_alloc_devpriv(dev, sizeof(*devpriv)); - if (!devpriv) - return -ENOMEM; - ret = comedi_pci_enable(dev); if (ret) return ret; From 8aedf0f10f0af9324fbb41c28bb57570d0123443 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:45 -0700 Subject: [PATCH 1599/2431] staging: comedi: icp_multi: fix clock comment CodingStyle Reword the block comment to fix a CodingStyle issue. For aesthetics, also rename the icp_multi_ao_eoc() function. It's testing for the analog output to be 'ready' not for an 'end-of-conversion'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index c3151f4fa550..3d0a3c40b640 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -147,10 +147,10 @@ static int icp_multi_insn_read_ai(struct comedi_device *dev, return ret ? ret : n; } -static int icp_multi_ao_eoc(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, - unsigned long context) +static int icp_multi_ao_ready(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned long context) { unsigned int status; @@ -179,9 +179,8 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, unsigned int val = data[i]; int ret; - /* Wait for analogue output data register to be - * ready for new data, or get fed up waiting */ - ret = comedi_timeout(dev, s, insn, icp_multi_ao_eoc, 0); + /* Wait for analog output to be ready for new data */ + ret = comedi_timeout(dev, s, insn, icp_multi_ao_ready, 0); if (ret) return ret; From afbd3c2b97499d74d068908ecd10cbef0d0c6e16 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:46 -0700 Subject: [PATCH 1600/2431] staging: comedi: icp_multi: remove counter subdevice The support functions for this subdevice are not complete. Since the counter is the last subdevice just remove it and it's allocation. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 29 ++-------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 3d0a3c40b640..c469a70cfd3f 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -40,7 +40,7 @@ * * 8 x Digital Outputs, 24V, 1A * - * 4 x 16-bit counters + * 4 x 16-bit counters - not implemented */ #include @@ -219,21 +219,6 @@ static int icp_multi_insn_bits_do(struct comedi_device *dev, return insn->n; } -static int icp_multi_insn_read_ctr(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) -{ - return 0; -} - -static int icp_multi_insn_write_ctr(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, - unsigned int *data) -{ - return 0; -} - static int icp_multi_reset(struct comedi_device *dev) { int i; @@ -279,7 +264,7 @@ static int icp_multi_auto_attach(struct comedi_device *dev, if (!dev->mmio) return -ENOMEM; - ret = comedi_alloc_subdevices(dev, 5); + ret = comedi_alloc_subdevices(dev, 4); if (ret) return ret; @@ -326,16 +311,6 @@ static int icp_multi_auto_attach(struct comedi_device *dev, s->range_table = &range_digital; s->insn_bits = icp_multi_insn_bits_do; - s = &dev->subdevices[4]; - s->type = COMEDI_SUBD_COUNTER; - s->subdev_flags = SDF_WRITABLE; - s->n_chan = 4; - s->maxdata = 0xffff; - s->len_chanlist = 4; - s->state = 0; - s->insn_read = icp_multi_insn_read_ctr; - s->insn_write = icp_multi_insn_write_ctr; - return 0; } From 8e3390725093dfec3143046592ed611b4b7a12e6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:47 -0700 Subject: [PATCH 1601/2431] staging: comedi: icp_multi: tidy up subdevice init For aesthetics, add some whitespace to the subdevice initialization. Remove the unnecessary initialization of the 'len_chanlist' for each subdevice. That member is only used by subdevices that support async commands. Also, remove the initialzation of the dev->read_subdev. That member is also only used for async command support. Rename some of the subdevice functions to follow the normal format used in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 63 +++++++++++----------- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index c469a70cfd3f..17cf514f8bc0 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -107,7 +107,7 @@ static int icp_multi_ai_eoc(struct comedi_device *dev, return -EBUSY; } -static int icp_multi_insn_read_ai(struct comedi_device *dev, +static int icp_multi_ai_insn_read(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) @@ -196,7 +196,7 @@ static int icp_multi_ao_insn_write(struct comedi_device *dev, return insn->n; } -static int icp_multi_insn_bits_di(struct comedi_device *dev, +static int icp_multi_di_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) @@ -206,7 +206,7 @@ static int icp_multi_insn_bits_di(struct comedi_device *dev, return insn->n; } -static int icp_multi_insn_bits_do(struct comedi_device *dev, +static int icp_multi_do_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) @@ -270,46 +270,45 @@ static int icp_multi_auto_attach(struct comedi_device *dev, icp_multi_reset(dev); + /* Analog Input subdevice */ s = &dev->subdevices[0]; - dev->read_subdev = s; - s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_COMMON | SDF_GROUND | SDF_DIFF; - s->n_chan = 16; - s->maxdata = 0x0fff; - s->len_chanlist = 16; - s->range_table = &icp_multi_ranges; - s->insn_read = icp_multi_insn_read_ai; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_COMMON | SDF_GROUND | SDF_DIFF; + s->n_chan = 16; + s->maxdata = 0x0fff; + s->range_table = &icp_multi_ranges; + s->insn_read = icp_multi_ai_insn_read; + /* Analog Output subdevice */ s = &dev->subdevices[1]; - s->type = COMEDI_SUBD_AO; - s->subdev_flags = SDF_WRITABLE | SDF_GROUND | SDF_COMMON; - s->n_chan = 4; - s->maxdata = 0x0fff; - s->len_chanlist = 4; - s->range_table = &icp_multi_ranges; - s->insn_write = icp_multi_ao_insn_write; + s->type = COMEDI_SUBD_AO; + s->subdev_flags = SDF_WRITABLE | SDF_GROUND | SDF_COMMON; + s->n_chan = 4; + s->maxdata = 0x0fff; + s->range_table = &icp_multi_ranges; + s->insn_write = icp_multi_ao_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) return ret; + /* Digital Input subdevice */ s = &dev->subdevices[2]; - s->type = COMEDI_SUBD_DI; - s->subdev_flags = SDF_READABLE; - s->n_chan = 16; - s->maxdata = 1; - s->len_chanlist = 16; - s->range_table = &range_digital; - s->insn_bits = icp_multi_insn_bits_di; + s->type = COMEDI_SUBD_DI; + s->subdev_flags = SDF_READABLE; + s->n_chan = 16; + s->maxdata = 1; + s->range_table = &range_digital; + s->insn_bits = icp_multi_di_insn_bits; + /* Digital Output subdevice */ s = &dev->subdevices[3]; - s->type = COMEDI_SUBD_DO; - s->subdev_flags = SDF_WRITABLE; - s->n_chan = 8; - s->maxdata = 1; - s->len_chanlist = 8; - s->range_table = &range_digital; - s->insn_bits = icp_multi_insn_bits_do; + s->type = COMEDI_SUBD_DO; + s->subdev_flags = SDF_WRITABLE; + s->n_chan = 8; + s->maxdata = 1; + s->range_table = &range_digital; + s->insn_bits = icp_multi_do_insn_bits; return 0; } From f78ce5fd1ef5e99290a4251b95b0c27ba7d2db4f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:48 -0700 Subject: [PATCH 1602/2431] staging: comedi: icp_multi: remove board reset during (*detach) The icp_multi_reset() function currnelt does the following during the (*auto_attach) and (*detach) of this driver: 1) disables all interrupts and clears any pending requests 2) resets the analog output channels to 0V (0..5V range) 3) sets all digital output channels to 0 Interrupts are not used by this driver so the disable/clear when detaching is not necessary. Depending on the use, reseting the analog and digital outputs when the driver is detached might not be desireable. Remove the board reset during the (*detach) and use comedi_pci_detach() directly. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 17cf514f8bc0..b76b594ad038 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -313,18 +313,11 @@ static int icp_multi_auto_attach(struct comedi_device *dev, return 0; } -static void icp_multi_detach(struct comedi_device *dev) -{ - if (dev->mmio) - icp_multi_reset(dev); - comedi_pci_detach(dev); -} - static struct comedi_driver icp_multi_driver = { .driver_name = "icp_multi", .module = THIS_MODULE, .auto_attach = icp_multi_auto_attach, - .detach = icp_multi_detach, + .detach = comedi_pci_detach, }; static int icp_multi_pci_probe(struct pci_dev *dev, From f2d1cafee63167604e8f9fd37a3ff938a852212f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:49 -0700 Subject: [PATCH 1603/2431] staging: comedi: icp_multi: update the MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more useful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/icp_multi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index b76b594ad038..28cf53e48b8d 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -341,5 +341,5 @@ static struct pci_driver icp_multi_pci_driver = { module_comedi_pci_driver(icp_multi_driver, icp_multi_pci_driver); MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); +MODULE_DESCRIPTION("Comedi driver for Inova ICP_MULTI board"); MODULE_LICENSE("GPL"); From 6c6e8b1ab21be537fd3ffad5ca1d1b93ed44e5e6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:58:42 -0700 Subject: [PATCH 1604/2431] staging: comedi: dt9812: tidy up multi-line comment Reformat the multi-line comment in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt9812.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index e11c216a4c85..92ec0d6c0366 100644 --- a/drivers/staging/comedi/drivers/dt9812.c +++ b/drivers/staging/comedi/drivers/dt9812.c @@ -18,17 +18,17 @@ */ /* -Driver: dt9812 -Description: Data Translation DT9812 USB module -Author: anders.blomdell@control.lth.se (Anders Blomdell) -Status: in development -Devices: [Data Translation] DT9812 (dt9812) -Updated: Sun Nov 20 20:18:34 EST 2005 - -This driver works, but bulk transfers not implemented. Might be a starting point -for someone else. I found out too late that USB has too high latencies (>1 ms) -for my needs. -*/ + * Driver: dt9812 + * Description: Data Translation DT9812 USB module + * Devices: [Data Translation] DT9812 (dt9812) + * Author: anders.blomdell@control.lth.se (Anders Blomdell) + * Status: in development + * Updated: Sun Nov 20 20:18:34 EST 2005 + * + * This driver works, but bulk transfers not implemented. Might be a + * starting point for someone else. I found out too late that USB has + * too high latencies (>1 ms) for my needs. + */ /* * Nota Bene: From 00761a9c4b71682ffc6a988d11f96ccf71cebb4e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:58:43 -0700 Subject: [PATCH 1605/2431] staging: comedi: dt9812: rename F020_MASK_DACxCN_DACxEN Rename this CamelCase define. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt9812.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index 92ec0d6c0366..23bd3218bb04 100644 --- a/drivers/staging/comedi/drivers/dt9812.c +++ b/drivers/staging/comedi/drivers/dt9812.c @@ -80,7 +80,7 @@ #define F020_MASK_ADC0CN_AD0INT 0x20 #define F020_MASK_ADC0CN_AD0BUSY 0x10 -#define F020_MASK_DACxCN_DACxEN 0x80 +#define F020_MASK_DACXCN_DACXEN 0x80 enum { /* A/D D/A DI DO CT */ @@ -511,7 +511,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value) /* 1. Set DAC mode */ rmw[0].address = F020_SFR_DAC0CN; rmw[0].and_mask = 0xff; - rmw[0].or_value = F020_MASK_DACxCN_DACxEN; + rmw[0].or_value = F020_MASK_DACXCN_DACXEN; /* 2 load low byte of DAC value first */ rmw[1].address = F020_SFR_DAC0L; @@ -529,7 +529,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value) /* 1. Set DAC mode */ rmw[0].address = F020_SFR_DAC1CN; rmw[0].and_mask = 0xff; - rmw[0].or_value = F020_MASK_DACxCN_DACxEN; + rmw[0].or_value = F020_MASK_DACXCN_DACXEN; /* 2 load low byte of DAC value first */ rmw[1].address = F020_SFR_DAC1L; From 5050b1353903f71ab81462458100e2927e904d66 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:58:44 -0700 Subject: [PATCH 1606/2431] staging: comedi: dt9812: reword comments to fix checkpatch.pl issues Reword the block comments to fix the checkpatch.pl issues about: WARNING: Block comments use * on subsequent lines WARNING: Block comments use a trailing */ on a separate line For consistency, also reword the previous comments. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt9812.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index 23bd3218bb04..0a4ee8b75aba 100644 --- a/drivers/staging/comedi/drivers/dt9812.c +++ b/drivers/staging/comedi/drivers/dt9812.c @@ -513,13 +513,12 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value) rmw[0].and_mask = 0xff; rmw[0].or_value = F020_MASK_DACXCN_DACXEN; - /* 2 load low byte of DAC value first */ + /* 2. load lsb of DAC value first */ rmw[1].address = F020_SFR_DAC0L; rmw[1].and_mask = 0xff; rmw[1].or_value = value & 0xff; - /* 3 load high byte of DAC value next to latch the - 12-bit value */ + /* 3. load msb of DAC value next to latch the 12-bit value */ rmw[2].address = F020_SFR_DAC0H; rmw[2].and_mask = 0xff; rmw[2].or_value = (value >> 8) & 0xf; @@ -531,13 +530,12 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value) rmw[0].and_mask = 0xff; rmw[0].or_value = F020_MASK_DACXCN_DACXEN; - /* 2 load low byte of DAC value first */ + /* 2. load lsb of DAC value first */ rmw[1].address = F020_SFR_DAC1L; rmw[1].and_mask = 0xff; rmw[1].or_value = value & 0xff; - /* 3 load high byte of DAC value next to latch the - 12-bit value */ + /* 3. load msb of DAC value next to latch the 12-bit value */ rmw[2].address = F020_SFR_DAC1H; rmw[2].and_mask = 0xff; rmw[2].or_value = (value >> 8) & 0xf; From c98f4011ebd41ab9ff15e1c52acc446e1ee7e191 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:30:43 -0700 Subject: [PATCH 1607/2431] staging: comedi: ii_pci20kc: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ii_pci20kc.c | 70 ++++++++++----------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/drivers/staging/comedi/drivers/ii_pci20kc.c b/drivers/staging/comedi/drivers/ii_pci20kc.c index 14ef1f67dd42..4d3f89c5e73e 100644 --- a/drivers/staging/comedi/drivers/ii_pci20kc.c +++ b/drivers/staging/comedi/drivers/ii_pci20kc.c @@ -37,37 +37,37 @@ #define II20K_SIZE 0x400 #define II20K_MOD_OFFSET 0x100 #define II20K_ID_REG 0x00 -#define II20K_ID_MOD1_EMPTY (1 << 7) -#define II20K_ID_MOD2_EMPTY (1 << 6) -#define II20K_ID_MOD3_EMPTY (1 << 5) +#define II20K_ID_MOD1_EMPTY BIT(7) +#define II20K_ID_MOD2_EMPTY BIT(6) +#define II20K_ID_MOD3_EMPTY BIT(5) #define II20K_ID_MASK 0x1f #define II20K_ID_PCI20001C_1A 0x1b /* no on-board DIO */ #define II20K_ID_PCI20001C_2A 0x1d /* on-board DIO */ #define II20K_MOD_STATUS_REG 0x40 -#define II20K_MOD_STATUS_IRQ_MOD1 (1 << 7) -#define II20K_MOD_STATUS_IRQ_MOD2 (1 << 6) -#define II20K_MOD_STATUS_IRQ_MOD3 (1 << 5) +#define II20K_MOD_STATUS_IRQ_MOD1 BIT(7) +#define II20K_MOD_STATUS_IRQ_MOD2 BIT(6) +#define II20K_MOD_STATUS_IRQ_MOD3 BIT(5) #define II20K_DIO0_REG 0x80 #define II20K_DIO1_REG 0x81 #define II20K_DIR_ENA_REG 0x82 -#define II20K_DIR_DIO3_OUT (1 << 7) -#define II20K_DIR_DIO2_OUT (1 << 6) -#define II20K_BUF_DISAB_DIO3 (1 << 5) -#define II20K_BUF_DISAB_DIO2 (1 << 4) -#define II20K_DIR_DIO1_OUT (1 << 3) -#define II20K_DIR_DIO0_OUT (1 << 2) -#define II20K_BUF_DISAB_DIO1 (1 << 1) -#define II20K_BUF_DISAB_DIO0 (1 << 0) +#define II20K_DIR_DIO3_OUT BIT(7) +#define II20K_DIR_DIO2_OUT BIT(6) +#define II20K_BUF_DISAB_DIO3 BIT(5) +#define II20K_BUF_DISAB_DIO2 BIT(4) +#define II20K_DIR_DIO1_OUT BIT(3) +#define II20K_DIR_DIO0_OUT BIT(2) +#define II20K_BUF_DISAB_DIO1 BIT(1) +#define II20K_BUF_DISAB_DIO0 BIT(0) #define II20K_CTRL01_REG 0x83 -#define II20K_CTRL01_SET (1 << 7) -#define II20K_CTRL01_DIO0_IN (1 << 4) -#define II20K_CTRL01_DIO1_IN (1 << 1) +#define II20K_CTRL01_SET BIT(7) +#define II20K_CTRL01_DIO0_IN BIT(4) +#define II20K_CTRL01_DIO1_IN BIT(1) #define II20K_DIO2_REG 0xc0 #define II20K_DIO3_REG 0xc1 #define II20K_CTRL23_REG 0xc3 -#define II20K_CTRL23_SET (1 << 7) -#define II20K_CTRL23_DIO2_IN (1 << 4) -#define II20K_CTRL23_DIO3_IN (1 << 1) +#define II20K_CTRL23_SET BIT(7) +#define II20K_CTRL23_DIO2_IN BIT(4) +#define II20K_CTRL23_DIO3_IN BIT(1) #define II20K_ID_PCI20006M_1 0xe2 /* 1 AO channels */ #define II20K_ID_PCI20006M_2 0xe3 /* 2 AO channels */ @@ -78,27 +78,27 @@ #define II20K_ID_PCI20341M_1 0x77 /* 4 AI channels */ #define II20K_AI_STATUS_CMD_REG 0x01 -#define II20K_AI_STATUS_CMD_BUSY (1 << 7) -#define II20K_AI_STATUS_CMD_HW_ENA (1 << 1) -#define II20K_AI_STATUS_CMD_EXT_START (1 << 0) +#define II20K_AI_STATUS_CMD_BUSY BIT(7) +#define II20K_AI_STATUS_CMD_HW_ENA BIT(1) +#define II20K_AI_STATUS_CMD_EXT_START BIT(0) #define II20K_AI_LSB_REG 0x02 #define II20K_AI_MSB_REG 0x03 #define II20K_AI_PACER_RESET_REG 0x04 #define II20K_AI_16BIT_DATA_REG 0x06 #define II20K_AI_CONF_REG 0x10 -#define II20K_AI_CONF_ENA (1 << 2) +#define II20K_AI_CONF_ENA BIT(2) #define II20K_AI_OPT_REG 0x11 -#define II20K_AI_OPT_TRIG_ENA (1 << 5) -#define II20K_AI_OPT_TRIG_INV (1 << 4) +#define II20K_AI_OPT_TRIG_ENA BIT(5) +#define II20K_AI_OPT_TRIG_INV BIT(4) #define II20K_AI_OPT_TIMEBASE(x) (((x) & 0x3) << 1) -#define II20K_AI_OPT_BURST_MODE (1 << 0) +#define II20K_AI_OPT_BURST_MODE BIT(0) #define II20K_AI_STATUS_REG 0x12 -#define II20K_AI_STATUS_INT (1 << 7) -#define II20K_AI_STATUS_TRIG (1 << 6) -#define II20K_AI_STATUS_TRIG_ENA (1 << 5) -#define II20K_AI_STATUS_PACER_ERR (1 << 2) -#define II20K_AI_STATUS_DATA_ERR (1 << 1) -#define II20K_AI_STATUS_SET_TIME_ERR (1 << 0) +#define II20K_AI_STATUS_INT BIT(7) +#define II20K_AI_STATUS_TRIG BIT(6) +#define II20K_AI_STATUS_TRIG_ENA BIT(5) +#define II20K_AI_STATUS_PACER_ERR BIT(2) +#define II20K_AI_STATUS_DATA_ERR BIT(1) +#define II20K_AI_STATUS_SET_TIME_ERR BIT(0) #define II20K_AI_LAST_CHAN_ADDR_REG 0x13 #define II20K_AI_CUR_ADDR_REG 0x14 #define II20K_AI_SET_TIME_REG 0x15 @@ -109,9 +109,9 @@ #define II20K_AI_START_TRIG_REG 0x1a #define II20K_AI_COUNT_RESET_REG 0x1b #define II20K_AI_CHANLIST_REG 0x80 -#define II20K_AI_CHANLIST_ONBOARD_ONLY (1 << 5) +#define II20K_AI_CHANLIST_ONBOARD_ONLY BIT(5) #define II20K_AI_CHANLIST_GAIN(x) (((x) & 0x3) << 3) -#define II20K_AI_CHANLIST_MUX_ENA (1 << 2) +#define II20K_AI_CHANLIST_MUX_ENA BIT(2) #define II20K_AI_CHANLIST_CHAN(x) (((x) & 0x3) << 0) #define II20K_AI_CHANLIST_LEN 0x80 From d172b63a5570f8e0c8de859d04aada7514cdedea Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:30:44 -0700 Subject: [PATCH 1608/2431] staging: comedi: ii_pci20kc: use comedi_offset_munge() For aesthetics, use the helper function to handle the munging of the analog output data from offset binary to 2's complement and the analog input data from 2's complement to offset binary. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ii_pci20kc.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/ii_pci20kc.c b/drivers/staging/comedi/drivers/ii_pci20kc.c index 4d3f89c5e73e..1f3eaf6095da 100644 --- a/drivers/staging/comedi/drivers/ii_pci20kc.c +++ b/drivers/staging/comedi/drivers/ii_pci20kc.c @@ -153,9 +153,8 @@ static int ii20k_ao_insn_write(struct comedi_device *dev, s->readback[chan] = val; - /* munge data */ - val += ((s->maxdata + 1) >> 1); - val &= s->maxdata; + /* munge the offset binary data to 2's complement */ + val = comedi_offset_munge(s, val); writeb(val & 0xff, iobase + II20K_AO_LSB_REG(chan)); writeb((val >> 8) & 0xff, iobase + II20K_AO_MSB_REG(chan)); @@ -243,11 +242,8 @@ static int ii20k_ai_insn_read(struct comedi_device *dev, val = readb(iobase + II20K_AI_LSB_REG); val |= (readb(iobase + II20K_AI_MSB_REG) << 8); - /* munge two's complement data */ - val += ((s->maxdata + 1) >> 1); - val &= s->maxdata; - - data[i] = val; + /* munge the 2's complement data to offset binary */ + data[i] = comedi_offset_munge(s, val); } return insn->n; From bb46c4ec04543d8e5a2572e8494aeaca2aa626b3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:30:45 -0700 Subject: [PATCH 1609/2431] staging: comedi: ii_pci20kc: update the MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more useful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ii_pci20kc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/ii_pci20kc.c b/drivers/staging/comedi/drivers/ii_pci20kc.c index 1f3eaf6095da..77e1d891f232 100644 --- a/drivers/staging/comedi/drivers/ii_pci20kc.c +++ b/drivers/staging/comedi/drivers/ii_pci20kc.c @@ -519,5 +519,5 @@ static struct comedi_driver ii20k_driver = { module_comedi_driver(ii20k_driver); MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); +MODULE_DESCRIPTION("Comedi driver for Intelligent Instruments PCI-20001C"); MODULE_LICENSE("GPL"); From dc413f7ad166fcb1f88699616bb2654f42ad72ad Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:47:44 -0700 Subject: [PATCH 1610/2431] staging: comedi: addi_apci_2032: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/addi_apci_2032.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi_apci_2032.c b/drivers/staging/comedi/drivers/addi_apci_2032.c index ad715253bdcc..e14545dbf076 100644 --- a/drivers/staging/comedi/drivers/addi_apci_2032.c +++ b/drivers/staging/comedi/drivers/addi_apci_2032.c @@ -34,13 +34,13 @@ */ #define APCI2032_DO_REG 0x00 #define APCI2032_INT_CTRL_REG 0x04 -#define APCI2032_INT_CTRL_VCC_ENA (1 << 0) -#define APCI2032_INT_CTRL_CC_ENA (1 << 1) +#define APCI2032_INT_CTRL_VCC_ENA BIT(0) +#define APCI2032_INT_CTRL_CC_ENA BIT(1) #define APCI2032_INT_STATUS_REG 0x08 -#define APCI2032_INT_STATUS_VCC (1 << 0) -#define APCI2032_INT_STATUS_CC (1 << 1) +#define APCI2032_INT_STATUS_VCC BIT(0) +#define APCI2032_INT_STATUS_CC BIT(1) #define APCI2032_STATUS_REG 0x0c -#define APCI2032_STATUS_IRQ (1 << 0) +#define APCI2032_STATUS_IRQ BIT(0) #define APCI2032_WDOG_REG 0x10 struct apci2032_int_private { From bb7085b1fbc7eee6d254fe978bd00ffcfe959bf6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:47:45 -0700 Subject: [PATCH 1611/2431] staging: comedi: addi_apci_2032: document the spinlock_t definition Add some comments to the private data tp quiet the checkpatch.pl issue about: CHECK: spinlock_t definition without comment Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/addi_apci_2032.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi_apci_2032.c b/drivers/staging/comedi/drivers/addi_apci_2032.c index e14545dbf076..50f9eb25d7cb 100644 --- a/drivers/staging/comedi/drivers/addi_apci_2032.c +++ b/drivers/staging/comedi/drivers/addi_apci_2032.c @@ -44,9 +44,9 @@ #define APCI2032_WDOG_REG 0x10 struct apci2032_int_private { - spinlock_t spinlock; - bool active; - unsigned char enabled_isns; + spinlock_t spinlock; /* protects the following members */ + bool active; /* an async command is running */ + unsigned char enabled_isns; /* mask of enabled interrupt channels */ }; static int apci2032_do_insn_bits(struct comedi_device *dev, From 7db6ed68cae2c5b24d2a41a085c42f092efc3c93 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:09:34 -0700 Subject: [PATCH 1612/2431] staging: comedi: adl_pci9118: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 58 ++++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index fb3043dcfff1..87746983783f 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -96,24 +96,24 @@ #define PCI9118_AI_FIFO_REG 0x10 #define PCI9118_AO_REG(x) (0x10 + ((x) * 4)) #define PCI9118_AI_STATUS_REG 0x18 -#define PCI9118_AI_STATUS_NFULL (1 << 8) /* 0=FIFO full (fatal) */ -#define PCI9118_AI_STATUS_NHFULL (1 << 7) /* 0=FIFO half full */ -#define PCI9118_AI_STATUS_NEPTY (1 << 6) /* 0=FIFO empty */ -#define PCI9118_AI_STATUS_ACMP (1 << 5) /* 1=about trigger complete */ -#define PCI9118_AI_STATUS_DTH (1 << 4) /* 1=ext. digital trigger */ -#define PCI9118_AI_STATUS_BOVER (1 << 3) /* 1=burst overrun (fatal) */ -#define PCI9118_AI_STATUS_ADOS (1 << 2) /* 1=A/D over speed (warn) */ -#define PCI9118_AI_STATUS_ADOR (1 << 1) /* 1=A/D overrun (fatal) */ -#define PCI9118_AI_STATUS_ADRDY (1 << 0) /* 1=A/D ready */ +#define PCI9118_AI_STATUS_NFULL BIT(8) /* 0=FIFO full (fatal) */ +#define PCI9118_AI_STATUS_NHFULL BIT(7) /* 0=FIFO half full */ +#define PCI9118_AI_STATUS_NEPTY BIT(6) /* 0=FIFO empty */ +#define PCI9118_AI_STATUS_ACMP BIT(5) /* 1=about trigger complete */ +#define PCI9118_AI_STATUS_DTH BIT(4) /* 1=ext. digital trigger */ +#define PCI9118_AI_STATUS_BOVER BIT(3) /* 1=burst overrun (fatal) */ +#define PCI9118_AI_STATUS_ADOS BIT(2) /* 1=A/D over speed (warn) */ +#define PCI9118_AI_STATUS_ADOR BIT(1) /* 1=A/D overrun (fatal) */ +#define PCI9118_AI_STATUS_ADRDY BIT(0) /* 1=A/D ready */ #define PCI9118_AI_CTRL_REG 0x18 -#define PCI9118_AI_CTRL_UNIP (1 << 7) /* 1=unipolar */ -#define PCI9118_AI_CTRL_DIFF (1 << 6) /* 1=differential inputs */ -#define PCI9118_AI_CTRL_SOFTG (1 << 5) /* 1=8254 software gate */ -#define PCI9118_AI_CTRL_EXTG (1 << 4) /* 1=8254 TGIN(pin 46) gate */ -#define PCI9118_AI_CTRL_EXTM (1 << 3) /* 1=ext. trigger (pin 44) */ -#define PCI9118_AI_CTRL_TMRTR (1 << 2) /* 1=8254 is trigger source */ -#define PCI9118_AI_CTRL_INT (1 << 1) /* 1=enable interrupt */ -#define PCI9118_AI_CTRL_DMA (1 << 0) /* 1=enable DMA */ +#define PCI9118_AI_CTRL_UNIP BIT(7) /* 1=unipolar */ +#define PCI9118_AI_CTRL_DIFF BIT(6) /* 1=differential inputs */ +#define PCI9118_AI_CTRL_SOFTG BIT(5) /* 1=8254 software gate */ +#define PCI9118_AI_CTRL_EXTG BIT(4) /* 1=8254 TGIN(pin 46) gate */ +#define PCI9118_AI_CTRL_EXTM BIT(3) /* 1=ext. trigger (pin 44) */ +#define PCI9118_AI_CTRL_TMRTR BIT(2) /* 1=8254 is trigger source */ +#define PCI9118_AI_CTRL_INT BIT(1) /* 1=enable interrupt */ +#define PCI9118_AI_CTRL_DMA BIT(0) /* 1=enable DMA */ #define PCI9118_DIO_REG 0x1c #define PCI9118_SOFTTRG_REG 0x20 #define PCI9118_AI_CHANLIST_REG 0x24 @@ -122,20 +122,20 @@ #define PCI9118_AI_BURST_NUM_REG 0x28 #define PCI9118_AI_AUTOSCAN_MODE_REG 0x2c #define PCI9118_AI_CFG_REG 0x30 -#define PCI9118_AI_CFG_PDTRG (1 << 7) /* 1=positive trigger */ -#define PCI9118_AI_CFG_PETRG (1 << 6) /* 1=positive ext. trigger */ -#define PCI9118_AI_CFG_BSSH (1 << 5) /* 1=with sample & hold */ -#define PCI9118_AI_CFG_BM (1 << 4) /* 1=burst mode */ -#define PCI9118_AI_CFG_BS (1 << 3) /* 1=burst mode start */ -#define PCI9118_AI_CFG_PM (1 << 2) /* 1=post trigger */ -#define PCI9118_AI_CFG_AM (1 << 1) /* 1=about trigger */ -#define PCI9118_AI_CFG_START (1 << 0) /* 1=trigger start */ +#define PCI9118_AI_CFG_PDTRG BIT(7) /* 1=positive trigger */ +#define PCI9118_AI_CFG_PETRG BIT(6) /* 1=positive ext. trigger */ +#define PCI9118_AI_CFG_BSSH BIT(5) /* 1=with sample & hold */ +#define PCI9118_AI_CFG_BM BIT(4) /* 1=burst mode */ +#define PCI9118_AI_CFG_BS BIT(3) /* 1=burst mode start */ +#define PCI9118_AI_CFG_PM BIT(2) /* 1=post trigger */ +#define PCI9118_AI_CFG_AM BIT(1) /* 1=about trigger */ +#define PCI9118_AI_CFG_START BIT(0) /* 1=trigger start */ #define PCI9118_FIFO_RESET_REG 0x34 #define PCI9118_INT_CTRL_REG 0x38 -#define PCI9118_INT_CTRL_TIMER (1 << 3) /* timer interrupt */ -#define PCI9118_INT_CTRL_ABOUT (1 << 2) /* about trigger complete */ -#define PCI9118_INT_CTRL_HFULL (1 << 1) /* A/D FIFO half full */ -#define PCI9118_INT_CTRL_DTRG (1 << 0) /* ext. digital trigger */ +#define PCI9118_INT_CTRL_TIMER BIT(3) /* timer interrupt */ +#define PCI9118_INT_CTRL_ABOUT BIT(2) /* about trigger complete */ +#define PCI9118_INT_CTRL_HFULL BIT(1) /* A/D FIFO half full */ +#define PCI9118_INT_CTRL_DTRG BIT(0) /* ext. digital trigger */ #define START_AI_EXT 0x01 /* start measure on external trigger */ #define STOP_AI_EXT 0x02 /* stop measure on external trigger */ From eb12dfc93a0e3021fc61959b6887dfe68daa8234 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:09:35 -0700 Subject: [PATCH 1613/2431] staging: comedi: adl_pci9118: rename Compute_and_setup_dma() Rename this CamelCase function. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 87746983783f..e5e0e1c4e50b 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -816,8 +816,8 @@ static int pci9118_ai_inttrig(struct comedi_device *dev, return 1; } -static int Compute_and_setup_dma(struct comedi_device *dev, - struct comedi_subdevice *s) +static int pci9118_ai_setup_dma(struct comedi_device *dev, + struct comedi_subdevice *s) { struct pci9118_private *devpriv = dev->private; struct comedi_cmd *cmd = &s->async->cmd; @@ -1141,7 +1141,7 @@ static int pci9118_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) devpriv->ai_act_dmapos = 0; if (devpriv->usedma) { - Compute_and_setup_dma(dev, s); + pci9118_ai_setup_dma(dev, s); outl(0x02000000 | AINT_WRITE_COMPL, devpriv->iobase_a + AMCC_OP_REG_INTCSR); From 9d9052927ec44b089f406d58538910422e31ee60 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:16 -0700 Subject: [PATCH 1614/2431] staging: comedi: dt3000: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 91 +++++++++++++------------ 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 8c4f284d1919..a229b73b2846 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -1,52 +1,53 @@ /* - comedi/drivers/dt3000.c - Data Translation DT3000 series driver - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 1999 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ -/* -Driver: dt3000 -Description: Data Translation DT3000 series -Author: ds -Devices: [Data Translation] DT3001 (dt3000), DT3001-PGL, DT3002, DT3003, - DT3003-PGL, DT3004, DT3005, DT3004-200 -Updated: Mon, 14 Apr 2008 15:41:24 +0100 -Status: works - -Configuration Options: not applicable, uses PCI auto config - -There is code to support AI commands, but it may not work. - -AO commands are not supported. -*/ + * dt3000.c + * Data Translation DT3000 series driver + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 1999 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ /* - The DT3000 series is Data Translation's attempt to make a PCI - data acquisition board. The design of this series is very nice, - since each board has an on-board DSP (Texas Instruments TMS320C52). - However, a few details are a little annoying. The boards lack - bus-mastering DMA, which eliminates them from serious work. - They also are not capable of autocalibration, which is a common - feature in modern hardware. The default firmware is pretty bad, - making it nearly impossible to write an RT compatible driver. - It would make an interesting project to write a decent firmware - for these boards. + * Driver: dt3000 + * Description: Data Translation DT3000 series + * Devices: [Data Translation] DT3001 (dt3000), DT3001-PGL, DT3002, DT3003, + * DT3003-PGL, DT3004, DT3005, DT3004-200 + * Author: ds + * Updated: Mon, 14 Apr 2008 15:41:24 +0100 + * Status: works + * + * Configuration Options: not applicable, uses PCI auto config + * + * There is code to support AI commands, but it may not work. + * + * AO commands are not supported. + */ - Data Translation originally wanted an NDA for the documentation - for the 3k series. However, if you ask nicely, they might send - you the docs without one, also. -*/ +/* + * The DT3000 series is Data Translation's attempt to make a PCI + * data acquisition board. The design of this series is very nice, + * since each board has an on-board DSP (Texas Instruments TMS320C52). + * However, a few details are a little annoying. The boards lack + * bus-mastering DMA, which eliminates them from serious work. + * They also are not capable of autocalibration, which is a common + * feature in modern hardware. The default firmware is pretty bad, + * making it nearly impossible to write an RT compatible driver. + * It would make an interesting project to write a decent firmware + * for these boards. + * + * Data Translation originally wanted an NDA for the documentation + * for the 3k series. However, if you ask nicely, they might send + * you the docs without one, also. + */ #include #include From 6366dd4a77e42bc26f0117ff9720d0a2f6882a9e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:17 -0700 Subject: [PATCH 1615/2431] staging: comedi: dt3000: rename dual-ported RAM location defines Rename these CamelCase defines and fix the checkpatch.pl issues: CHECK: Avoid CamelCase: CHECK: spaces preferred around that '*' (ctx:VxV) CHECK: spaces preferred around that '+' (ctx:VxV) For aesthetics, move the defines to after the includes. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 111 ++++++++++++------------ 1 file changed, 56 insertions(+), 55 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index a229b73b2846..8a2009408ed5 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -55,6 +55,26 @@ #include "../comedi_pci.h" +/* + * PCI BAR0 - dual-ported RAM location definitions (dev->mmio) + */ +#define DPR_DAC_BUFFER (4 * 0x000) +#define DPR_ADC_BUFFER (4 * 0x800) +#define DPR_COMMAND (4 * 0xfd3) +#define DPR_SUBSYS (4 * 0xfd3) +#define DPR_ENCODE (4 * 0xfd4) +#define DPR_PARAMS(x) (4 * (0xfd5 + (x))) +#define DPR_TICK_REG_LO (4 * 0xff5) +#define DPR_TICK_REG_HI (4 * 0xff6) +#define DPR_DA_BUF_FRONT (4 * 0xff7) +#define DPR_DA_BUF_REAR (4 * 0xff8) +#define DPR_AD_BUF_FRONT (4 * 0xff9) +#define DPR_AD_BUF_REAR (4 * 0xffa) +#define DPR_INT_MASK (4 * 0xffb) +#define DPR_INTR_FLAG (4 * 0xffc) +#define DPR_RESPONSE_MBX (4 * 0xffe) +#define DPR_COMMAND_MBX (4 * 0xfff) + static const struct comedi_lrange range_dt3000_ai = { 4, { BIP_RANGE(10), @@ -157,25 +177,6 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { }, }; -/* dual-ported RAM location definitions */ - -#define DPR_DAC_buffer (4*0x000) -#define DPR_ADC_buffer (4*0x800) -#define DPR_Command (4*0xfd3) -#define DPR_SubSys (4*0xfd3) -#define DPR_Encode (4*0xfd4) -#define DPR_Params(a) (4*(0xfd5+(a))) -#define DPR_Tick_Reg_Lo (4*0xff5) -#define DPR_Tick_Reg_Hi (4*0xff6) -#define DPR_DA_Buf_Front (4*0xff7) -#define DPR_DA_Buf_Rear (4*0xff8) -#define DPR_AD_Buf_Front (4*0xff9) -#define DPR_AD_Buf_Rear (4*0xffa) -#define DPR_Int_Mask (4*0xffb) -#define DPR_Intr_Flag (4*0xffc) -#define DPR_Response_Mbx (4*0xffe) -#define DPR_Command_Mbx (4*0xfff) - #define AI_FIFO_DEPTH 2003 #define AO_FIFO_DEPTH 2048 @@ -254,10 +255,10 @@ static void dt3k_send_cmd(struct comedi_device *dev, unsigned int cmd) int i; unsigned int status = 0; - writew(cmd, dev->mmio + DPR_Command_Mbx); + writew(cmd, dev->mmio + DPR_COMMAND_MBX); for (i = 0; i < TIMEOUT; i++) { - status = readw(dev->mmio + DPR_Command_Mbx); + status = readw(dev->mmio + DPR_COMMAND_MBX); if ((status & DT3000_COMPLETION_MASK) != DT3000_NOTPROCESSED) break; udelay(1); @@ -272,24 +273,24 @@ static unsigned int dt3k_readsingle(struct comedi_device *dev, unsigned int subsys, unsigned int chan, unsigned int gain) { - writew(subsys, dev->mmio + DPR_SubSys); + writew(subsys, dev->mmio + DPR_SUBSYS); - writew(chan, dev->mmio + DPR_Params(0)); - writew(gain, dev->mmio + DPR_Params(1)); + writew(chan, dev->mmio + DPR_PARAMS(0)); + writew(gain, dev->mmio + DPR_PARAMS(1)); dt3k_send_cmd(dev, CMD_READSINGLE); - return readw(dev->mmio + DPR_Params(2)); + return readw(dev->mmio + DPR_PARAMS(2)); } static void dt3k_writesingle(struct comedi_device *dev, unsigned int subsys, unsigned int chan, unsigned int data) { - writew(subsys, dev->mmio + DPR_SubSys); + writew(subsys, dev->mmio + DPR_SUBSYS); - writew(chan, dev->mmio + DPR_Params(0)); - writew(0, dev->mmio + DPR_Params(1)); - writew(data, dev->mmio + DPR_Params(2)); + writew(chan, dev->mmio + DPR_PARAMS(0)); + writew(0, dev->mmio + DPR_PARAMS(1)); + writew(data, dev->mmio + DPR_PARAMS(2)); dt3k_send_cmd(dev, CMD_WRITESINGLE); } @@ -304,7 +305,7 @@ static void dt3k_ai_empty_fifo(struct comedi_device *dev, int i; unsigned short data; - front = readw(dev->mmio + DPR_AD_Buf_Front); + front = readw(dev->mmio + DPR_AD_BUF_FRONT); count = front - devpriv->ai_front; if (count < 0) count += AI_FIFO_DEPTH; @@ -312,7 +313,7 @@ static void dt3k_ai_empty_fifo(struct comedi_device *dev, rear = devpriv->ai_rear; for (i = 0; i < count; i++) { - data = readw(dev->mmio + DPR_ADC_buffer + rear); + data = readw(dev->mmio + DPR_ADC_BUFFER + rear); comedi_buf_write_samples(s, &data, 1); rear++; if (rear >= AI_FIFO_DEPTH) @@ -320,16 +321,16 @@ static void dt3k_ai_empty_fifo(struct comedi_device *dev, } devpriv->ai_rear = rear; - writew(rear, dev->mmio + DPR_AD_Buf_Rear); + writew(rear, dev->mmio + DPR_AD_BUF_REAR); } static int dt3k_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) { - writew(SUBS_AI, dev->mmio + DPR_SubSys); + writew(SUBS_AI, dev->mmio + DPR_SUBSYS); dt3k_send_cmd(dev, CMD_STOP); - writew(0, dev->mmio + DPR_Int_Mask); + writew(0, dev->mmio + DPR_INT_MASK); return 0; } @@ -347,7 +348,7 @@ static irqreturn_t dt3k_interrupt(int irq, void *d) if (!dev->attached) return IRQ_NONE; - status = readw(dev->mmio + DPR_Intr_Flag); + status = readw(dev->mmio + DPR_INTR_FLAG); if (status & DT3000_ADFULL) dt3k_ai_empty_fifo(dev, s); @@ -487,39 +488,39 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) chan = CR_CHAN(cmd->chanlist[i]); range = CR_RANGE(cmd->chanlist[i]); - writew((range << 6) | chan, dev->mmio + DPR_ADC_buffer + i); + writew((range << 6) | chan, dev->mmio + DPR_ADC_BUFFER + i); } aref = CR_AREF(cmd->chanlist[0]); - writew(cmd->scan_end_arg, dev->mmio + DPR_Params(0)); + writew(cmd->scan_end_arg, dev->mmio + DPR_PARAMS(0)); if (cmd->convert_src == TRIG_TIMER) { divider = dt3k_ns_to_timer(50, &cmd->convert_arg, cmd->flags); - writew((divider >> 16), dev->mmio + DPR_Params(1)); - writew((divider & 0xffff), dev->mmio + DPR_Params(2)); + writew((divider >> 16), dev->mmio + DPR_PARAMS(1)); + writew((divider & 0xffff), dev->mmio + DPR_PARAMS(2)); } if (cmd->scan_begin_src == TRIG_TIMER) { tscandiv = dt3k_ns_to_timer(100, &cmd->scan_begin_arg, cmd->flags); - writew((tscandiv >> 16), dev->mmio + DPR_Params(3)); - writew((tscandiv & 0xffff), dev->mmio + DPR_Params(4)); + writew((tscandiv >> 16), dev->mmio + DPR_PARAMS(3)); + writew((tscandiv & 0xffff), dev->mmio + DPR_PARAMS(4)); } - writew(DT3000_AD_RETRIG_INTERNAL, dev->mmio + DPR_Params(5)); - writew(aref == AREF_DIFF, dev->mmio + DPR_Params(6)); + writew(DT3000_AD_RETRIG_INTERNAL, dev->mmio + DPR_PARAMS(5)); + writew(aref == AREF_DIFF, dev->mmio + DPR_PARAMS(6)); - writew(AI_FIFO_DEPTH / 2, dev->mmio + DPR_Params(7)); + writew(AI_FIFO_DEPTH / 2, dev->mmio + DPR_PARAMS(7)); - writew(SUBS_AI, dev->mmio + DPR_SubSys); + writew(SUBS_AI, dev->mmio + DPR_SUBSYS); dt3k_send_cmd(dev, CMD_CONFIG); writew(DT3000_ADFULL | DT3000_ADSWERR | DT3000_ADHWERR, - dev->mmio + DPR_Int_Mask); + dev->mmio + DPR_INT_MASK); debug_n_ints = 0; - writew(SUBS_AI, dev->mmio + DPR_SubSys); + writew(SUBS_AI, dev->mmio + DPR_SUBSYS); dt3k_send_cmd(dev, CMD_START); return 0; @@ -563,13 +564,13 @@ static int dt3k_ao_insn_write(struct comedi_device *dev, static void dt3k_dio_config(struct comedi_device *dev, int bits) { /* XXX */ - writew(SUBS_DOUT, dev->mmio + DPR_SubSys); + writew(SUBS_DOUT, dev->mmio + DPR_SUBSYS); - writew(bits, dev->mmio + DPR_Params(0)); + writew(bits, dev->mmio + DPR_PARAMS(0)); #if 0 /* don't know */ - writew(0, dev->mmio + DPR_Params(1)); - writew(0, dev->mmio + DPR_Params(2)); + writew(0, dev->mmio + DPR_PARAMS(1)); + writew(0, dev->mmio + DPR_PARAMS(2)); #endif dt3k_send_cmd(dev, CMD_CONFIG); @@ -620,13 +621,13 @@ static int dt3k_mem_insn_read(struct comedi_device *dev, int i; for (i = 0; i < insn->n; i++) { - writew(SUBS_MEM, dev->mmio + DPR_SubSys); - writew(addr, dev->mmio + DPR_Params(0)); - writew(1, dev->mmio + DPR_Params(1)); + writew(SUBS_MEM, dev->mmio + DPR_SUBSYS); + writew(addr, dev->mmio + DPR_PARAMS(0)); + writew(1, dev->mmio + DPR_PARAMS(1)); dt3k_send_cmd(dev, CMD_READCODE); - data[i] = readw(dev->mmio + DPR_Params(2)); + data[i] = readw(dev->mmio + DPR_PARAMS(2)); } return i; From f6520a8619760a45dd2f7b9c1f8d5503a4cc8d29 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:18 -0700 Subject: [PATCH 1616/2431] staging: comedi: dt3000: tidy up the command mailbox defines For aesthetics, rename these defines so they are associated with the register. Move the defines closer to the register define. Define some macros for the "completion" and "cmd" bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 85 ++++++++++++------------- 1 file changed, 42 insertions(+), 43 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 8a2009408ed5..f9626e858762 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -73,7 +73,36 @@ #define DPR_INT_MASK (4 * 0xffb) #define DPR_INTR_FLAG (4 * 0xffc) #define DPR_RESPONSE_MBX (4 * 0xffe) -#define DPR_COMMAND_MBX (4 * 0xfff) +#define DPR_CMD_MBX (4 * 0xfff) +#define DPR_CMD_COMPLETION(x) ((x) << 8) +#define DPR_CMD_NOTPROCESSED DPR_CMD_COMPLETION(0x00) +#define DPR_CMD_NOERROR DPR_CMD_COMPLETION(0x55) +#define DPR_CMD_ERROR DPR_CMD_COMPLETION(0xaa) +#define DPR_CMD_NOTSUPPORTED DPR_CMD_COMPLETION(0xff) +#define DPR_CMD_COMPLETION_MASK DPR_CMD_COMPLETION(0xff) +#define DPR_CMD(x) ((x) << 0) +#define DPR_CMD_GETBRDINFO DPR_CMD(0) +#define DPR_CMD_CONFIG DPR_CMD(1) +#define DPR_CMD_GETCONFIG DPR_CMD(2) +#define DPR_CMD_START DPR_CMD(3) +#define DPR_CMD_STOP DPR_CMD(4) +#define DPR_CMD_READSINGLE DPR_CMD(5) +#define DPR_CMD_WRITESINGLE DPR_CMD(6) +#define DPR_CMD_CALCCLOCK DPR_CMD(7) +#define DPR_CMD_READEVENTS DPR_CMD(8) +#define DPR_CMD_WRITECTCTRL DPR_CMD(16) +#define DPR_CMD_READCTCTRL DPR_CMD(17) +#define DPR_CMD_WRITECT DPR_CMD(18) +#define DPR_CMD_READCT DPR_CMD(19) +#define DPR_CMD_WRITEDATA DPR_CMD(32) +#define DPR_CMD_READDATA DPR_CMD(33) +#define DPR_CMD_WRITEIO DPR_CMD(34) +#define DPR_CMD_READIO DPR_CMD(35) +#define DPR_CMD_WRITECODE DPR_CMD(36) +#define DPR_CMD_READCODE DPR_CMD(37) +#define DPR_CMD_EXECUTE DPR_CMD(38) +#define DPR_CMD_HALT DPR_CMD(48) +#define DPR_CMD_MASK DPR_CMD(0xff) static const struct comedi_lrange range_dt3000_ai = { 4, { @@ -180,30 +209,6 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { #define AI_FIFO_DEPTH 2003 #define AO_FIFO_DEPTH 2048 -/* command list */ - -#define CMD_GETBRDINFO 0 -#define CMD_CONFIG 1 -#define CMD_GETCONFIG 2 -#define CMD_START 3 -#define CMD_STOP 4 -#define CMD_READSINGLE 5 -#define CMD_WRITESINGLE 6 -#define CMD_CALCCLOCK 7 -#define CMD_READEVENTS 8 -#define CMD_WRITECTCTRL 16 -#define CMD_READCTCTRL 17 -#define CMD_WRITECT 18 -#define CMD_READCT 19 -#define CMD_WRITEDATA 32 -#define CMD_READDATA 33 -#define CMD_WRITEIO 34 -#define CMD_READIO 35 -#define CMD_WRITECODE 36 -#define CMD_READCODE 37 -#define CMD_EXECUTE 38 -#define CMD_HALT 48 - #define SUBS_AI 0 #define SUBS_AO 1 #define SUBS_DIN 2 @@ -221,13 +226,6 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { #define DT3000_ADSWERR 0x02 #define DT3000_ADFULL 0x01 -#define DT3000_COMPLETION_MASK 0xff00 -#define DT3000_COMMAND_MASK 0x00ff -#define DT3000_NOTPROCESSED 0x0000 -#define DT3000_NOERROR 0x5500 -#define DT3000_ERROR 0xaa00 -#define DT3000_NOTSUPPORTED 0xff00 - #define DT3000_EXTERNAL_CLOCK 1 #define DT3000_RISING_EDGE 2 @@ -255,16 +253,17 @@ static void dt3k_send_cmd(struct comedi_device *dev, unsigned int cmd) int i; unsigned int status = 0; - writew(cmd, dev->mmio + DPR_COMMAND_MBX); + writew(cmd, dev->mmio + DPR_CMD_MBX); for (i = 0; i < TIMEOUT; i++) { - status = readw(dev->mmio + DPR_COMMAND_MBX); - if ((status & DT3000_COMPLETION_MASK) != DT3000_NOTPROCESSED) + status = readw(dev->mmio + DPR_CMD_MBX); + status &= DPR_CMD_COMPLETION_MASK; + if (status != DPR_CMD_NOTPROCESSED) break; udelay(1); } - if ((status & DT3000_COMPLETION_MASK) != DT3000_NOERROR) + if (status != DPR_CMD_NOERROR) dev_dbg(dev->class_dev, "%s: timeout/error status=0x%04x\n", __func__, status); } @@ -278,7 +277,7 @@ static unsigned int dt3k_readsingle(struct comedi_device *dev, writew(chan, dev->mmio + DPR_PARAMS(0)); writew(gain, dev->mmio + DPR_PARAMS(1)); - dt3k_send_cmd(dev, CMD_READSINGLE); + dt3k_send_cmd(dev, DPR_CMD_READSINGLE); return readw(dev->mmio + DPR_PARAMS(2)); } @@ -292,7 +291,7 @@ static void dt3k_writesingle(struct comedi_device *dev, unsigned int subsys, writew(0, dev->mmio + DPR_PARAMS(1)); writew(data, dev->mmio + DPR_PARAMS(2)); - dt3k_send_cmd(dev, CMD_WRITESINGLE); + dt3k_send_cmd(dev, DPR_CMD_WRITESINGLE); } static void dt3k_ai_empty_fifo(struct comedi_device *dev, @@ -328,7 +327,7 @@ static int dt3k_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) { writew(SUBS_AI, dev->mmio + DPR_SUBSYS); - dt3k_send_cmd(dev, CMD_STOP); + dt3k_send_cmd(dev, DPR_CMD_STOP); writew(0, dev->mmio + DPR_INT_MASK); @@ -513,7 +512,7 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) writew(AI_FIFO_DEPTH / 2, dev->mmio + DPR_PARAMS(7)); writew(SUBS_AI, dev->mmio + DPR_SUBSYS); - dt3k_send_cmd(dev, CMD_CONFIG); + dt3k_send_cmd(dev, DPR_CMD_CONFIG); writew(DT3000_ADFULL | DT3000_ADSWERR | DT3000_ADHWERR, dev->mmio + DPR_INT_MASK); @@ -521,7 +520,7 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) debug_n_ints = 0; writew(SUBS_AI, dev->mmio + DPR_SUBSYS); - dt3k_send_cmd(dev, CMD_START); + dt3k_send_cmd(dev, DPR_CMD_START); return 0; } @@ -573,7 +572,7 @@ static void dt3k_dio_config(struct comedi_device *dev, int bits) writew(0, dev->mmio + DPR_PARAMS(2)); #endif - dt3k_send_cmd(dev, CMD_CONFIG); + dt3k_send_cmd(dev, DPR_CMD_CONFIG); } static int dt3k_dio_insn_config(struct comedi_device *dev, @@ -625,7 +624,7 @@ static int dt3k_mem_insn_read(struct comedi_device *dev, writew(addr, dev->mmio + DPR_PARAMS(0)); writew(1, dev->mmio + DPR_PARAMS(1)); - dt3k_send_cmd(dev, CMD_READCODE); + dt3k_send_cmd(dev, DPR_CMD_READCODE); data[i] = readw(dev->mmio + DPR_PARAMS(2)); } From 5f17915c2806e0fb081456f1218c1c1b65a57b19 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:19 -0700 Subject: [PATCH 1617/2431] staging: comedi: dt3000: rename the SUBS_* defines For aesthetics, rename these defines to avoid any confusion with the similar comedi defines. Move them closer to the register they are associated with. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 31 ++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index f9626e858762..05acd8f8f5dd 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -62,6 +62,12 @@ #define DPR_ADC_BUFFER (4 * 0x800) #define DPR_COMMAND (4 * 0xfd3) #define DPR_SUBSYS (4 * 0xfd3) +#define DPR_SUBSYS_AI 0 +#define DPR_SUBSYS_AO 1 +#define DPR_SUBSYS_DIN 2 +#define DPR_SUBSYS_DOUT 3 +#define DPR_SUBSYS_MEM 4 +#define DPR_SUBSYS_CT 5 #define DPR_ENCODE (4 * 0xfd4) #define DPR_PARAMS(x) (4 * (0xfd5 + (x))) #define DPR_TICK_REG_LO (4 * 0xff5) @@ -209,13 +215,6 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { #define AI_FIFO_DEPTH 2003 #define AO_FIFO_DEPTH 2048 -#define SUBS_AI 0 -#define SUBS_AO 1 -#define SUBS_DIN 2 -#define SUBS_DOUT 3 -#define SUBS_MEM 4 -#define SUBS_CT 5 - /* interrupt flags */ #define DT3000_CMDONE 0x80 #define DT3000_CTDONE 0x40 @@ -326,7 +325,7 @@ static void dt3k_ai_empty_fifo(struct comedi_device *dev, static int dt3k_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) { - writew(SUBS_AI, dev->mmio + DPR_SUBSYS); + writew(DPR_SUBSYS_AI, dev->mmio + DPR_SUBSYS); dt3k_send_cmd(dev, DPR_CMD_STOP); writew(0, dev->mmio + DPR_INT_MASK); @@ -511,7 +510,7 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) writew(AI_FIFO_DEPTH / 2, dev->mmio + DPR_PARAMS(7)); - writew(SUBS_AI, dev->mmio + DPR_SUBSYS); + writew(DPR_SUBSYS_AI, dev->mmio + DPR_SUBSYS); dt3k_send_cmd(dev, DPR_CMD_CONFIG); writew(DT3000_ADFULL | DT3000_ADSWERR | DT3000_ADHWERR, @@ -519,7 +518,7 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) debug_n_ints = 0; - writew(SUBS_AI, dev->mmio + DPR_SUBSYS); + writew(DPR_SUBSYS_AI, dev->mmio + DPR_SUBSYS); dt3k_send_cmd(dev, DPR_CMD_START); return 0; @@ -537,7 +536,7 @@ static int dt3k_ai_insn(struct comedi_device *dev, struct comedi_subdevice *s, aref = CR_AREF(insn->chanspec); for (i = 0; i < insn->n; i++) - data[i] = dt3k_readsingle(dev, SUBS_AI, chan, gain); + data[i] = dt3k_readsingle(dev, DPR_SUBSYS_AI, chan, gain); return i; } @@ -553,7 +552,7 @@ static int dt3k_ao_insn_write(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { val = data[i]; - dt3k_writesingle(dev, SUBS_AO, chan, val); + dt3k_writesingle(dev, DPR_SUBSYS_AO, chan, val); } s->readback[chan] = val; @@ -563,7 +562,7 @@ static int dt3k_ao_insn_write(struct comedi_device *dev, static void dt3k_dio_config(struct comedi_device *dev, int bits) { /* XXX */ - writew(SUBS_DOUT, dev->mmio + DPR_SUBSYS); + writew(DPR_SUBSYS_DOUT, dev->mmio + DPR_SUBSYS); writew(bits, dev->mmio + DPR_PARAMS(0)); #if 0 @@ -604,9 +603,9 @@ static int dt3k_dio_insn_bits(struct comedi_device *dev, unsigned int *data) { if (comedi_dio_update_state(s, data)) - dt3k_writesingle(dev, SUBS_DOUT, 0, s->state); + dt3k_writesingle(dev, DPR_SUBSYS_DOUT, 0, s->state); - data[1] = dt3k_readsingle(dev, SUBS_DIN, 0, 0); + data[1] = dt3k_readsingle(dev, DPR_SUBSYS_DIN, 0, 0); return insn->n; } @@ -620,7 +619,7 @@ static int dt3k_mem_insn_read(struct comedi_device *dev, int i; for (i = 0; i < insn->n; i++) { - writew(SUBS_MEM, dev->mmio + DPR_SUBSYS); + writew(DPR_SUBSYS_MEM, dev->mmio + DPR_SUBSYS); writew(addr, dev->mmio + DPR_PARAMS(0)); writew(1, dev->mmio + DPR_PARAMS(1)); From 2ce1514c9dbb213061912a60e9624ac0e21e9c74 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:20 -0700 Subject: [PATCH 1618/2431] staging: comedi: dt3000: rename the interrupt flag defines For aesthetics, rename these defines so they have association with the register. Move them closer to the register define and use the BIT macro to define them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 05acd8f8f5dd..f674ca70fd1f 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -78,6 +78,14 @@ #define DPR_AD_BUF_REAR (4 * 0xffa) #define DPR_INT_MASK (4 * 0xffb) #define DPR_INTR_FLAG (4 * 0xffc) +#define DPR_INTR_CMDONE BIT(7) +#define DPR_INTR_CTDONE BIT(6) +#define DPR_INTR_DAHWERR BIT(5) +#define DPR_INTR_DASWERR BIT(4) +#define DPR_INTR_DAEMPTY BIT(3) +#define DPR_INTR_ADHWERR BIT(2) +#define DPR_INTR_ADSWERR BIT(1) +#define DPR_INTR_ADFULL BIT(0) #define DPR_RESPONSE_MBX (4 * 0xffe) #define DPR_CMD_MBX (4 * 0xfff) #define DPR_CMD_COMPLETION(x) ((x) << 8) @@ -215,16 +223,6 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { #define AI_FIFO_DEPTH 2003 #define AO_FIFO_DEPTH 2048 -/* interrupt flags */ -#define DT3000_CMDONE 0x80 -#define DT3000_CTDONE 0x40 -#define DT3000_DAHWERR 0x20 -#define DT3000_DASWERR 0x10 -#define DT3000_DAEMPTY 0x08 -#define DT3000_ADHWERR 0x04 -#define DT3000_ADSWERR 0x02 -#define DT3000_ADFULL 0x01 - #define DT3000_EXTERNAL_CLOCK 1 #define DT3000_RISING_EDGE 2 @@ -348,10 +346,10 @@ static irqreturn_t dt3k_interrupt(int irq, void *d) status = readw(dev->mmio + DPR_INTR_FLAG); - if (status & DT3000_ADFULL) + if (status & DPR_INTR_ADFULL) dt3k_ai_empty_fifo(dev, s); - if (status & (DT3000_ADSWERR | DT3000_ADHWERR)) + if (status & (DPR_INTR_ADSWERR | DPR_INTR_ADHWERR)) s->async->events |= COMEDI_CB_ERROR; debug_n_ints++; @@ -513,7 +511,7 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) writew(DPR_SUBSYS_AI, dev->mmio + DPR_SUBSYS); dt3k_send_cmd(dev, DPR_CMD_CONFIG); - writew(DT3000_ADFULL | DT3000_ADSWERR | DT3000_ADHWERR, + writew(DPR_INTR_ADFULL | DPR_INTR_ADSWERR | DPR_INTR_ADHWERR, dev->mmio + DPR_INT_MASK); debug_n_ints = 0; From 3d5df65076eec71c0a1eb829f176f6e9652fd149 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:21 -0700 Subject: [PATCH 1619/2431] staging: comedi: dt3000: tidy up remaining defines Move the remaining defines and prefix them with 'DPR_' for consistency. Define a macro to set the analog input trigger bits to fix the checkpatch.pl issues about: CHECK: spaces preferred around that '<<' (ctx:VxV) CHECK: Prefer using the BIT macro Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 51 +++++++++++++------------ 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index f674ca70fd1f..9ff7e95dc6fe 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -118,6 +118,25 @@ #define DPR_CMD_HALT DPR_CMD(48) #define DPR_CMD_MASK DPR_CMD(0xff) +#define DPR_PARAM5_AD_TRIG(x) (((x) & 0x7) << 2) +#define DPR_PARAM5_AD_TRIG_INT DPR_PARAM5_AD_TRIG(0) +#define DPR_PARAM5_AD_TRIG_EXT DPR_PARAM5_AD_TRIG(1) +#define DPR_PARAM5_AD_TRIG_INT_RETRIG DPR_PARAM5_AD_TRIG(2) +#define DPR_PARAM5_AD_TRIG_EXT_RETRIG DPR_PARAM5_AD_TRIG(3) +#define DPR_PARAM5_AD_TRIG_INT_RETRIG2 DPR_PARAM5_AD_TRIG(4) + +#define DPR_PARAM6_AD_DIFF BIT(0) + +#define DPR_AI_FIFO_DEPTH 2003 +#define DPR_AO_FIFO_DEPTH 2048 + +#define DPR_EXTERNAL_CLOCK 1 +#define DPR_RISING_EDGE 2 + +#define DPR_TMODE_MASK 0x1c + +#define DPR_CMD_TIMEOUT 100 + static const struct comedi_lrange range_dt3000_ai = { 4, { BIP_RANGE(10), @@ -220,31 +239,12 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { }, }; -#define AI_FIFO_DEPTH 2003 -#define AO_FIFO_DEPTH 2048 - -#define DT3000_EXTERNAL_CLOCK 1 -#define DT3000_RISING_EDGE 2 - -#define TMODE_MASK 0x1c - -#define DT3000_AD_TRIG_INTERNAL (0<<2) -#define DT3000_AD_TRIG_EXTERNAL (1<<2) -#define DT3000_AD_RETRIG_INTERNAL (2<<2) -#define DT3000_AD_RETRIG_EXTERNAL (3<<2) -#define DT3000_AD_EXTRETRIG (4<<2) - -#define DT3000_CHANNEL_MODE_SE 0 -#define DT3000_CHANNEL_MODE_DI 1 - struct dt3k_private { unsigned int lock; unsigned int ai_front; unsigned int ai_rear; }; -#define TIMEOUT 100 - static void dt3k_send_cmd(struct comedi_device *dev, unsigned int cmd) { int i; @@ -252,7 +252,7 @@ static void dt3k_send_cmd(struct comedi_device *dev, unsigned int cmd) writew(cmd, dev->mmio + DPR_CMD_MBX); - for (i = 0; i < TIMEOUT; i++) { + for (i = 0; i < DPR_CMD_TIMEOUT; i++) { status = readw(dev->mmio + DPR_CMD_MBX); status &= DPR_CMD_COMPLETION_MASK; if (status != DPR_CMD_NOTPROCESSED) @@ -304,7 +304,7 @@ static void dt3k_ai_empty_fifo(struct comedi_device *dev, front = readw(dev->mmio + DPR_AD_BUF_FRONT); count = front - devpriv->ai_front; if (count < 0) - count += AI_FIFO_DEPTH; + count += DPR_AI_FIFO_DEPTH; rear = devpriv->ai_rear; @@ -312,7 +312,7 @@ static void dt3k_ai_empty_fifo(struct comedi_device *dev, data = readw(dev->mmio + DPR_ADC_BUFFER + rear); comedi_buf_write_samples(s, &data, 1); rear++; - if (rear >= AI_FIFO_DEPTH) + if (rear >= DPR_AI_FIFO_DEPTH) rear = 0; } @@ -503,10 +503,11 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) writew((tscandiv & 0xffff), dev->mmio + DPR_PARAMS(4)); } - writew(DT3000_AD_RETRIG_INTERNAL, dev->mmio + DPR_PARAMS(5)); - writew(aref == AREF_DIFF, dev->mmio + DPR_PARAMS(6)); + writew(DPR_PARAM5_AD_TRIG_INT_RETRIG, dev->mmio + DPR_PARAMS(5)); + writew((aref == AREF_DIFF) ? DPR_PARAM6_AD_DIFF : 0, + dev->mmio + DPR_PARAMS(6)); - writew(AI_FIFO_DEPTH / 2, dev->mmio + DPR_PARAMS(7)); + writew(DPR_AI_FIFO_DEPTH / 2, dev->mmio + DPR_PARAMS(7)); writew(DPR_SUBSYS_AI, dev->mmio + DPR_SUBSYS); dt3k_send_cmd(dev, DPR_CMD_CONFIG); From 2943de6ad54b4a4ecb066f2f8df7c7db0d4c8a99 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:22 -0700 Subject: [PATCH 1620/2431] staging: comedi: dt3000: remove proc subdevice This subdevice is not allocated or defined in the driver. Remove the disabled subdevice initialization. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 9ff7e95dc6fe..fdae78d1690d 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -721,12 +721,6 @@ static int dt3000_auto_attach(struct comedi_device *dev, s->len_chanlist = 1; s->range_table = &range_unknown; -#if 0 - s = &dev->subdevices[4]; - /* proc subsystem */ - s->type = COMEDI_SUBD_PROC; -#endif - return 0; } From 91644956fd539968c530f7f1cbb4e65887e1f7a3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:23 -0700 Subject: [PATCH 1621/2431] staging: comedi: dt3000: refactor 'adbits' boardinfo All the board supported by this driver have analog inputs. The input resolution is either 12-bit or 16-bit. Replace the 'adbits' member of the boardinfo with a bit-field flag 'ai_is_16bits' and just set if for the 16-bit boards. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index fdae78d1690d..8d6d34487f56 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -168,18 +168,17 @@ enum dt3k_boardid { struct dt3k_boardtype { const char *name; int adchan; - int adbits; int ai_speed; const struct comedi_lrange *adrange; int dachan; int dabits; + unsigned int ai_is_16bit:1; }; static const struct dt3k_boardtype dt3k_boardtypes[] = { [BOARD_DT3001] = { .name = "dt3001", .adchan = 16, - .adbits = 12, .adrange = &range_dt3000_ai, .ai_speed = 3000, .dachan = 2, @@ -188,7 +187,6 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { [BOARD_DT3001_PGL] = { .name = "dt3001-pgl", .adchan = 16, - .adbits = 12, .adrange = &range_dt3000_ai_pgl, .ai_speed = 3000, .dachan = 2, @@ -197,14 +195,12 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { [BOARD_DT3002] = { .name = "dt3002", .adchan = 32, - .adbits = 12, .adrange = &range_dt3000_ai, .ai_speed = 3000, }, [BOARD_DT3003] = { .name = "dt3003", .adchan = 64, - .adbits = 12, .adrange = &range_dt3000_ai, .ai_speed = 3000, .dachan = 2, @@ -213,7 +209,6 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { [BOARD_DT3003_PGL] = { .name = "dt3003-pgl", .adchan = 64, - .adbits = 12, .adrange = &range_dt3000_ai_pgl, .ai_speed = 3000, .dachan = 2, @@ -222,20 +217,20 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { [BOARD_DT3004] = { .name = "dt3004", .adchan = 16, - .adbits = 16, .adrange = &range_dt3000_ai, .ai_speed = 10000, .dachan = 2, .dabits = 12, + .ai_is_16bit = 1, }, [BOARD_DT3005] = { .name = "dt3005", /* a.k.a. 3004-200 */ .adchan = 16, - .adbits = 16, .adrange = &range_dt3000_ai, .ai_speed = 5000, .dachan = 2, .dabits = 12, + .ai_is_16bit = 1, }, }; @@ -675,7 +670,7 @@ static int dt3000_auto_attach(struct comedi_device *dev, s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; s->n_chan = board->adchan; s->insn_read = dt3k_ai_insn; - s->maxdata = (1 << board->adbits) - 1; + s->maxdata = board->ai_is_16bit ? 0xffff : 0x0fff; s->range_table = &range_dt3000_ai; /* XXX */ if (dev->irq) { dev->read_subdev = s; From 78c2f455e2efcb079f719e328133b40ee9110e6c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:24 -0700 Subject: [PATCH 1622/2431] staging: comedi: dt3000: the dt3002 board does not have analog outputs According to the boardinfo, the dt3002 board does not have analog outputs. The rest of the board have two 12-bit analog output channels. Replace the 'dachan' and 'dabits' members of the boardinfo with a bit- field flag 'has_ao'. Use the new member to conditionally initialize the analog output subdevice. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 47 ++++++++++++------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 8d6d34487f56..1ee3db60ab28 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -170,9 +170,8 @@ struct dt3k_boardtype { int adchan; int ai_speed; const struct comedi_lrange *adrange; - int dachan; - int dabits; unsigned int ai_is_16bit:1; + unsigned int has_ao:1; }; static const struct dt3k_boardtype dt3k_boardtypes[] = { @@ -181,16 +180,14 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { .adchan = 16, .adrange = &range_dt3000_ai, .ai_speed = 3000, - .dachan = 2, - .dabits = 12, + .has_ao = 1, }, [BOARD_DT3001_PGL] = { .name = "dt3001-pgl", .adchan = 16, .adrange = &range_dt3000_ai_pgl, .ai_speed = 3000, - .dachan = 2, - .dabits = 12, + .has_ao = 1, }, [BOARD_DT3002] = { .name = "dt3002", @@ -203,34 +200,30 @@ static const struct dt3k_boardtype dt3k_boardtypes[] = { .adchan = 64, .adrange = &range_dt3000_ai, .ai_speed = 3000, - .dachan = 2, - .dabits = 12, + .has_ao = 1, }, [BOARD_DT3003_PGL] = { .name = "dt3003-pgl", .adchan = 64, .adrange = &range_dt3000_ai_pgl, .ai_speed = 3000, - .dachan = 2, - .dabits = 12, + .has_ao = 1, }, [BOARD_DT3004] = { .name = "dt3004", .adchan = 16, .adrange = &range_dt3000_ai, .ai_speed = 10000, - .dachan = 2, - .dabits = 12, .ai_is_16bit = 1, + .has_ao = 1, }, [BOARD_DT3005] = { .name = "dt3005", /* a.k.a. 3004-200 */ .adchan = 16, .adrange = &range_dt3000_ai, .ai_speed = 5000, - .dachan = 2, - .dabits = 12, .ai_is_16bit = 1, + .has_ao = 1, }, }; @@ -681,19 +674,23 @@ static int dt3000_auto_attach(struct comedi_device *dev, s->cancel = dt3k_ai_cancel; } + /* Analog Output subdevice */ s = &dev->subdevices[1]; - /* ao subsystem */ - s->type = COMEDI_SUBD_AO; - s->subdev_flags = SDF_WRITABLE; - s->n_chan = 2; - s->maxdata = (1 << board->dabits) - 1; - s->len_chanlist = 1; - s->range_table = &range_bipolar10; - s->insn_write = dt3k_ao_insn_write; + if (board->has_ao) { + s->type = COMEDI_SUBD_AO; + s->subdev_flags = SDF_WRITABLE; + s->n_chan = 2; + s->maxdata = 0x0fff; + s->range_table = &range_bipolar10; + s->insn_write = dt3k_ao_insn_write; - ret = comedi_alloc_subdev_readback(s); - if (ret) - return ret; + ret = comedi_alloc_subdev_readback(s); + if (ret) + return ret; + + } else { + s->type = COMEDI_SUBD_UNUSED; + } s = &dev->subdevices[2]; /* dio subsystem */ From 2e310235ca8f26efdeb150a10855ad8c1e886dad Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:25 -0700 Subject: [PATCH 1623/2431] staging: comedi: dt3000: rename dt3k_ai_insn() For aesthetics, rename this subdevice (*insn_read) function to follow the normal naming in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 1ee3db60ab28..2d293e695bee 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -511,8 +511,10 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) return 0; } -static int dt3k_ai_insn(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int dt3k_ai_insn_read(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { int i; unsigned int chan, gain, aref; @@ -657,14 +659,14 @@ static int dt3000_auto_attach(struct comedi_device *dev, if (ret) return ret; + /* Analog Input subdevice */ s = &dev->subdevices[0]; - /* ai subdevice */ s->type = COMEDI_SUBD_AI; s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; s->n_chan = board->adchan; - s->insn_read = dt3k_ai_insn; s->maxdata = board->ai_is_16bit ? 0xffff : 0x0fff; s->range_table = &range_dt3000_ai; /* XXX */ + s->insn_read = dt3k_ai_insn_read; if (dev->irq) { dev->read_subdev = s; s->subdev_flags |= SDF_CMD_READ; From 3a7b06f73296684426db4a44429a8376b0dd729d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:26 -0700 Subject: [PATCH 1624/2431] staging: comedi: dt3000: tidy up digital i/o subdevice init Remove the unnecessary 'len_chanlist' initialization. This member is only used by subdevices that support async commands. For aesthetics, reorder the initialization a bit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 2d293e695bee..5d1e4bbc5909 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -694,16 +694,15 @@ static int dt3000_auto_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_UNUSED; } + /* Digital I/O subdevice */ s = &dev->subdevices[2]; - /* dio subsystem */ s->type = COMEDI_SUBD_DIO; s->subdev_flags = SDF_READABLE | SDF_WRITABLE; s->n_chan = 8; + s->maxdata = 1; + s->range_table = &range_digital; s->insn_config = dt3k_dio_insn_config; s->insn_bits = dt3k_dio_insn_bits; - s->maxdata = 1; - s->len_chanlist = 8; - s->range_table = &range_digital; s = &dev->subdevices[3]; /* mem subsystem */ From 649c836ea37d30fe5e7c6548ffd22eacec9a29e7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:27 -0700 Subject: [PATCH 1625/2431] staging: comedi: dt3000: tidy up memory subdevice init Remove the unnecessary 'len_chanlist' initialization. This member is only used by subdevices that support async commands. For aesthetics, reorder the initialization a bit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 5d1e4bbc5909..0610875f9f1c 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -704,15 +704,14 @@ static int dt3000_auto_attach(struct comedi_device *dev, s->insn_config = dt3k_dio_insn_config; s->insn_bits = dt3k_dio_insn_bits; + /* Memory subdevice */ s = &dev->subdevices[3]; - /* mem subsystem */ s->type = COMEDI_SUBD_MEMORY; s->subdev_flags = SDF_READABLE; s->n_chan = 0x1000; - s->insn_read = dt3k_mem_insn_read; s->maxdata = 0xff; - s->len_chanlist = 1; s->range_table = &range_unknown; + s->insn_read = dt3k_mem_insn_read; return 0; } From cb3a6194e18eccc928f0973d6b95c8d27472beb8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:28 -0700 Subject: [PATCH 1626/2431] staging: comedi: dt3000: remove #if 0'ed out code Replace the disabled code in dt3k_dio_config() with a comment in case it's actually needed. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 0610875f9f1c..32bd68db29bb 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -554,11 +554,8 @@ static void dt3k_dio_config(struct comedi_device *dev, int bits) writew(DPR_SUBSYS_DOUT, dev->mmio + DPR_SUBSYS); writew(bits, dev->mmio + DPR_PARAMS(0)); -#if 0 - /* don't know */ - writew(0, dev->mmio + DPR_PARAMS(1)); - writew(0, dev->mmio + DPR_PARAMS(2)); -#endif + + /* XXX write 0 to DPR_PARAMS(1) and DPR_PARAMS(2) ? */ dt3k_send_cmd(dev, DPR_CMD_CONFIG); } From e81ca3de4ea65822823c082909cabbc68c723586 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:29 -0700 Subject: [PATCH 1627/2431] staging: comedi: dt3000: update the MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more ueeful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 32bd68db29bb..ab7a332fbcc4 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -747,5 +747,5 @@ static struct pci_driver dt3000_pci_driver = { module_comedi_pci_driver(dt3000_driver, dt3000_pci_driver); MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); +MODULE_DESCRIPTION("Comedi driver for Data Translation DT3000 series boards"); MODULE_LICENSE("GPL"); From 3eb25177b616f1baabdee167e40b577ef8387297 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:53:47 -0700 Subject: [PATCH 1628/2431] staging: comedi: adq12b: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. And refactor them to follow the normal format for comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adq12b.c | 122 ++++++++++-------------- 1 file changed, 53 insertions(+), 69 deletions(-) diff --git a/drivers/staging/comedi/drivers/adq12b.c b/drivers/staging/comedi/drivers/adq12b.c index bc5f97f50f9a..6762c217bab6 100644 --- a/drivers/staging/comedi/drivers/adq12b.c +++ b/drivers/staging/comedi/drivers/adq12b.c @@ -1,75 +1,59 @@ /* - comedi/drivers/adq12b.c - driver for MicroAxial ADQ12-B data acquisition and control card + * adq12b.c + * Driver for MicroAxial ADQ12-B data acquisition and control card + * written by jeremy theler + * instituto balseiro + * commission nacional de energia atomica + * universidad nacional de cuyo + * argentina + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 2000 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 2000 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ /* -Driver: adq12b -Description: driver for MicroAxial ADQ12-B data acquisition and control card -Devices: [MicroAxial] ADQ12-B (adq12b) -Author: jeremy theler -Updated: Thu, 21 Feb 2008 02:56:27 -0300 -Status: works - -Driver for the acquisition card ADQ12-B (without any add-on). - - - Analog input is subdevice 0 (16 channels single-ended or 8 differential) - - Digital input is subdevice 1 (5 channels) - - Digital output is subdevice 1 (8 channels) - - The PACER is not supported in this version - -If you do not specify any options, they will default to - - # comedi_config /dev/comedi0 adq12b 0x300,0,0 - - option 1: I/O base address. The following table is provided as a help - of the hardware jumpers. - - address jumper JADR - 0x300 1 (factory default) - 0x320 2 - 0x340 3 - 0x360 4 - 0x380 5 - 0x3A0 6 - - option 2: unipolar/bipolar ADC selection: 0 -> bipolar, 1 -> unipolar - - selection comedi_config option JUB - bipolar 0 2-3 (factory default) - unipolar 1 1-2 - - option 3: single-ended/differential AI selection: 0 -> SE, 1 -> differential - - selection comedi_config option JCHA JCHB - single-ended 0 1-2 1-2 (factory default) - differential 1 2-3 2-3 - - written by jeremy theler - - instituto balseiro - commission nacional de energia atomica - universidad nacional de cuyo - argentina - - 21-feb-2008 - + changed supported devices string (missused the [] and ()) - - 13-oct-2007 - + first try -*/ + * Driver: adq12b + * Description: Driver for MicroAxial ADQ12-B data acquisition and control card + * Devices: [MicroAxial] ADQ12-B (adq12b) + * Author: jeremy theler + * Updated: Thu, 21 Feb 2008 02:56:27 -0300 + * Status: works + * + * Configuration options: + * [0] - I/O base address (set with hardware jumpers) + * address jumper JADR + * 0x300 1 (factory default) + * 0x320 2 + * 0x340 3 + * 0x360 4 + * 0x380 5 + * 0x3A0 6 + * [1] - Analog Input unipolar/bipolar selection + * selection option JUB + * bipolar 0 2-3 (factory default) + * unipolar 1 1-2 + * [2] - Analog Input single-ended/differential selection + * selection option JCHA JCHB + * single-ended 0 1-2 1-2 (factory default) + * differential 1 2-3 2-3 + * + * Driver for the acquisition card ADQ12-B (without any add-on). + * + * - Analog input is subdevice 0 (16 channels single-ended or 8 differential) + * - Digital input is subdevice 1 (5 channels) + * - Digital output is subdevice 1 (8 channels) + * - The PACER is not supported in this version + */ #include #include From b4fa9199caed382466d7c3e9c8298365baa0d898 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:53:48 -0700 Subject: [PATCH 1629/2431] staging: comedi: adq12b: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adq12b.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/adq12b.c b/drivers/staging/comedi/drivers/adq12b.c index 6762c217bab6..dbb9d588c729 100644 --- a/drivers/staging/comedi/drivers/adq12b.c +++ b/drivers/staging/comedi/drivers/adq12b.c @@ -62,14 +62,14 @@ /* address scheme (page 2.17 of the manual) */ #define ADQ12B_CTREG 0x00 -#define ADQ12B_CTREG_MSKP (1 << 7) /* enable pacer interrupt */ -#define ADQ12B_CTREG_GTP (1 << 6) /* enable pacer */ +#define ADQ12B_CTREG_MSKP BIT(7) /* enable pacer interrupt */ +#define ADQ12B_CTREG_GTP BIT(6) /* enable pacer */ #define ADQ12B_CTREG_RANGE(x) ((x) << 4) #define ADQ12B_CTREG_CHAN(x) ((x) << 0) #define ADQ12B_STINR 0x00 -#define ADQ12B_STINR_OUT2 (1 << 7) /* timer 2 output state */ -#define ADQ12B_STINR_OUTP (1 << 6) /* pacer output state */ -#define ADQ12B_STINR_EOC (1 << 5) /* A/D end-of-conversion */ +#define ADQ12B_STINR_OUT2 BIT(7) /* timer 2 output state */ +#define ADQ12B_STINR_OUTP BIT(6) /* pacer output state */ +#define ADQ12B_STINR_EOC BIT(5) /* A/D end-of-conversion */ #define ADQ12B_STINR_IN_MASK (0x1f << 0) #define ADQ12B_OUTBR 0x04 #define ADQ12B_ADLOW 0x08 From e8f25f6680a8df64409a1fd8bddfe7848ee7c7e0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:53:49 -0700 Subject: [PATCH 1630/2431] staging: comedi: adq12b: usleep_range is preferred over udelay Fix checkpatch.pl issue: CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt Replace the udelay() with usleep_range() with a reasonable upper limit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adq12b.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/adq12b.c b/drivers/staging/comedi/drivers/adq12b.c index dbb9d588c729..315050454c26 100644 --- a/drivers/staging/comedi/drivers/adq12b.c +++ b/drivers/staging/comedi/drivers/adq12b.c @@ -129,7 +129,7 @@ static int adq12b_ai_insn_read(struct comedi_device *dev, if (val != devpriv->last_ctreg) { outb(val, dev->iobase + ADQ12B_CTREG); devpriv->last_ctreg = val; - udelay(50); /* wait for the mux to settle */ + usleep_range(50, 100); /* wait for the mux to settle */ } val = inb(dev->iobase + ADQ12B_ADLOW); /* trigger A/D */ From c3248fef2abc1dcaefc62b52766865a6a09e8c57 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Tue, 13 Oct 2015 11:37:23 -0400 Subject: [PATCH 1631/2431] staging: unisys: vmcallinterface.h: convert pragma to __packed Convert from pragma to __packed Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorbus/vmcallinterface.h | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/staging/unisys/visorbus/vmcallinterface.h b/drivers/staging/unisys/visorbus/vmcallinterface.h index 7a18aa8ee4da..c8d8483bd4df 100644 --- a/drivers/staging/unisys/visorbus/vmcallinterface.h +++ b/drivers/staging/unisys/visorbus/vmcallinterface.h @@ -82,9 +82,6 @@ enum vmcall_monitor_interface_method_tuple { /* VMCALL identification tuples */ /* Structures for IO VMCALLs */ -/* ///////////// BEGIN PRAGMA PACK PUSH 1 ///////////////////////// */ -/* ///////////// ONLY STRUCT TYPE SHOULD BE BELOW */ -#pragma pack(push, 1) /* Parameters to VMCALL_IO_CONTROLVM_ADDR interface */ struct vmcall_io_controlvm_addr_params { /* The Guest-relative physical address of the ControlVm channel. @@ -94,9 +91,6 @@ struct vmcall_io_controlvm_addr_params { * in with the appropriate address. */ u32 channel_bytes; /* contents provided by this VMCALL (OUT) */ u8 unused[4]; /* Unused Bytes in the 64-Bit Aligned Struct */ -}; - -#pragma pack(pop) -/* ///////////// END PRAGMA PACK PUSH 1 /////////////////////////// */ +} __packed; #endif /* __IOMONINTF_H__ */ From 3d53fb9041d7d7bb8e1e1dd8b233cbed187933a7 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Tue, 13 Oct 2015 20:50:23 +0530 Subject: [PATCH 1632/2431] Staging: unisys: visorinput: Remove unused code Remove the code which is not used anywhere in the program. Semantic patch used: @@ type T; identifier i; constant C; position p != e.p; @@ - T i@p; <+... when != i - i = C; ...+> Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 3a1b24fc4831..058ee91c2671 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -461,20 +461,16 @@ handle_locking_key(struct input_dev *visorinput_dev, int keycode, int desired_state) { int led; - char *sled; switch (keycode) { case KEY_CAPSLOCK: led = LED_CAPSL; - sled = "CAP"; break; case KEY_SCROLLLOCK: led = LED_SCROLLL; - sled = "SCR"; break; case KEY_NUMLOCK: led = LED_NUML; - sled = "NUM"; break; default: led = -1; From ae4dfa572a7e67f53f7f1492bd2baacf39dbdc48 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:26 +0900 Subject: [PATCH 1633/2431] staging: wilc1000: host_interface.c : remove over-commenting There are over-commenting in the host_interface.c file and most of them are not helpful to explain what the code does and generate 80 ending line over warnings. So, all of comments are removed in this patch and the comments will later be added if necessary with the preferred Linux style. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1775 +-------------------- 1 file changed, 70 insertions(+), 1705 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ec04aecb0c7c..15b277031393 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -14,7 +14,6 @@ extern struct timer_list hDuringIpTimer; extern u8 g_wilc_initialized; -/* Message types of the Host IF Message Queue*/ #define HOST_IF_MSG_SCAN 0 #define HOST_IF_MSG_CONNECT 1 #define HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO 2 @@ -62,30 +61,10 @@ extern u8 g_wilc_initialized; #define BA_SESSION_DEFAULT_TIMEOUT 1000 #define BLOCK_ACK_REQ_SIZE 0x14 -/*! - * @struct cfg_param_attr - * @brief Structure to hold Host IF CFG Params Attributes - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 02 April 2012 - * @version 1.0 - */ struct cfg_param_attr { struct cfg_param_val cfg_attr_info; }; -/*! - * @struct host_if_wpa_attr - * @brief Structure to hold Host IF Scan Attributes - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 25 March 2012 - * @version 1.0 - */ struct host_if_wpa_attr { u8 *pu8key; const u8 *pu8macaddr; @@ -96,17 +75,6 @@ struct host_if_wpa_attr { u8 u8Ciphermode; }; - -/*! - * @struct host_if_wep_attr - * @brief Structure to hold Host IF Scan Attributes - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 25 March 2012 - * @version 1.0 - */ struct host_if_wep_attr { u8 *key; u8 key_len; @@ -115,51 +83,18 @@ struct host_if_wep_attr { enum AUTHTYPE auth_type; }; -/*! - * @struct host_if_key_attr - * @brief Structure to hold Host IF Scan Attributes - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 25 March 2012 - * @version 1.0 - */ union host_if_key_attr { struct host_if_wep_attr wep; struct host_if_wpa_attr wpa; struct host_if_pmkid_attr pmkid; }; -/*! - * @struct key_attr - * @brief Structure to hold Host IF Scan Attributes - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 25 March 2012 - * @version 1.0 - */ struct key_attr { enum KEY_TYPE enuKeyType; u8 u8KeyAction; union host_if_key_attr uniHostIFkeyAttr; }; - - - -/*! - * @struct scan_attr - * @brief Structure to hold Host IF Scan Attributes - * @details - * @todo - * @sa - * @author Mostafa Abu Bakr - * @date 25 March 2012 - * @version 1.0 - */ struct scan_attr { u8 u8ScanSource; u8 u8ScanType; @@ -172,16 +107,6 @@ struct scan_attr { struct hidden_network strHiddenNetwork; }; -/*! - * @struct connect_attr - * @brief Structure to hold Host IF Connect Attributes - * @details - * @todo - * @sa - * @author Mostafa Abu Bakr - * @date 25 March 2012 - * @version 1.0 - */ struct connect_attr { u8 *pu8bssid; u8 *pu8ssid; @@ -196,173 +121,53 @@ struct connect_attr { void *pJoinParams; }; -/*! - * @struct rcvd_async_info - * @brief Structure to hold Received General Asynchronous info - * @details - * @todo - * @sa - * @author Mostafa Abu Bakr - * @date 25 March 2012 - * @version 1.0 - */ struct rcvd_async_info { u8 *pu8Buffer; u32 u32Length; }; -/*! - * @struct channel_attr - * @brief Set Channel message body - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 25 March 2012 - * @version 1.0 - */ struct channel_attr { u8 u8SetChan; }; -/*! - * @struct tstrScanComplete - * @brief hold received Async. Scan Complete message body - * @details - * @todo - * @sa - * @author zsalah - * @date 25 March 2012 - * @version 1.0 - */ -/*typedef struct _tstrScanComplete - * { - * u8* pu8Buffer; - * u32 u32Length; - * } tstrScanComplete;*/ - -/*! - * @struct beacon_attr - * @brief Set Beacon message body - * @details - * @todo - * @sa - * @author Adham Abozaeid - * @date 10 July 2012 - * @version 1.0 - */ struct beacon_attr { - u32 u32Interval; /*!< Beacon Interval. Period between two successive beacons on air */ - u32 u32DTIMPeriod; /*!< DTIM Period. Indicates how many Beacon frames - * (including the current frame) appear before the next DTIM */ - u32 u32HeadLen; /*!< Length of the head buffer in bytes */ - u8 *pu8Head; /*!< Pointer to the beacon's head buffer. Beacon's head is the part - * from the beacon's start till the TIM element, NOT including the TIM */ - u32 u32TailLen; /*!< Length of the tail buffer in bytes */ - u8 *pu8Tail; /*!< Pointer to the beacon's tail buffer. Beacon's tail starts just - * after the TIM inormation element */ + u32 u32Interval; + u32 u32DTIMPeriod; + u32 u32HeadLen; + u8 *pu8Head; + u32 u32TailLen; + u8 *pu8Tail; }; -/*! - * @struct set_multicast - * @brief set Multicast filter Address - * @details - * @todo - * @sa - * @author Abdelrahman Sobhy - * @date 30 August 2013 - * @version 1.0 Description - */ - struct set_multicast { bool bIsEnabled; u32 u32count; }; -/*! - * @struct del_all_sta - * @brief Deauth station message body - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 09 April 2014 - * @version 1.0 Description - */ struct del_all_sta { u8 au8Sta_DelAllSta[MAX_NUM_STA][ETH_ALEN]; u8 u8Num_AssocSta; }; -/*! - * @struct del_sta - * @brief Delete station message body - * @details - * @todo - * @sa - * @author Adham Abozaeid - * @date 15 July 2012 - * @version 1.0 Description - */ struct del_sta { u8 au8MacAddr[ETH_ALEN]; }; -/*! - * @struct power_mgmt_param - * @brief Power management message body - * @details - * @todo - * @sa - * @author Adham Abozaeid - * @date 24 November 2012 - * @version 1.0 - */ struct power_mgmt_param { bool bIsEnabled; u32 u32Timeout; }; -/*! - * @struct set_ip_addr - * @brief set IP Address message body - * @details - * @todo - * @sa - * @author Abdelrahman Sobhy - * @date 30 August 2013 - * @version 1.0 Description - */ struct set_ip_addr { u8 *au8IPAddr; u8 idx; }; -/*! - * @struct sta_inactive_t - * @brief Get station message body - * @details - * @todo - * @sa - * @author Mai Daftedar - * @date 16 April 2013 - * @version 1.0 - */ struct sta_inactive_t { u8 mac[6]; }; -/**/ -/*! - * @union message_body - * @brief Message body for the Host Interface message_q - * @details - * @todo - * @sa - * @author Mostafa Abu Bakr - * @date 25 March 2012 - * @version 1.0 - */ + union message_body { struct scan_attr scan_info; struct connect_attr con_info; @@ -390,23 +195,12 @@ union message_body { struct del_all_sta del_all_sta_info; }; -/*! - * @struct struct host_if_msg - * @brief Host Interface message - * @details - * @todo - * @sa - * @author Mostafa Abu Bakr - * @date 25 March 2012 - * @version 1.0 - */ struct host_if_msg { - u16 id; /*!< Message ID */ - union message_body body; /*!< Message body */ + u16 id; + union message_body body; struct host_if_drv *drv; }; -/*Struct containg joinParam of each AP*/ struct join_bss_param { BSSTYPE_T bss_type; u8 dtim_period; @@ -442,12 +236,6 @@ enum scan_conn_timer { SCAN_CONNECT_TIMER_FORCE_32BIT = 0xFFFFFFFF }; -/*****************************************************************************/ -/* */ -/* Global Variabls */ -/* */ -/*****************************************************************************/ -/* Zero is not used, because a zero ID means termination */ static struct host_if_drv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; struct host_if_drv *terminated_handle; struct host_if_drv *gWFiDrvHandle; @@ -488,7 +276,7 @@ u32 gu32FlushedInfoElemAsocSize; struct host_if_drv *gu8FlushedJoinReqDrvHandler; #define REAL_JOIN_REQ 0 #define FLUSHED_JOIN_REQ 1 -#define FLUSHED_BYTE_POS 79 /* Position the byte indicating flushing in the flushed request */ +#define FLUSHED_BYTE_POS 79 static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo); @@ -545,15 +333,6 @@ static struct host_if_drv *get_handler_from_id(int id) return wfidrv_list[id]; } -/** - * @brief Handle_SetChannel - * @details Sending config packet to firmware to set channel - * @param[in] struct channel_attr *pstrHostIFSetChan - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_SetChannel(struct host_if_drv *hif_drv, struct channel_attr *pstrHostIFSetChan) { @@ -561,14 +340,13 @@ static s32 Handle_SetChannel(struct host_if_drv *hif_drv, s32 s32Error = 0; struct wid strWID; - /*prepare configuration packet*/ strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; strWID.val = (char *)&(pstrHostIFSetChan->u8SetChan); strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting channel\n"); - /*Sending Cfg*/ + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) { @@ -578,16 +356,7 @@ static s32 Handle_SetChannel(struct host_if_drv *hif_drv, return s32Error; } -/** - * @brief Handle_SetWfiDrvHandler - * @details Sending config packet to firmware to set driver handler - * @param[in] void * drvHandler, - * struct drv_handler *pstrHostIfSetDrvHandler - * @return Error code. - * @author - * @date - * @version 1.0 - */ + static s32 Handle_SetWfiDrvHandler(struct host_if_drv *hif_drv, struct drv_handler *pstrHostIfSetDrvHandler) { @@ -595,14 +364,11 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *hif_drv, s32 s32Error = 0; struct wid strWID; - /*prepare configuration packet*/ strWID.id = (u16)WID_SET_DRV_HANDLER; strWID.type = WID_INT; strWID.val = (s8 *)&(pstrHostIfSetDrvHandler->u32Address); strWID.size = sizeof(u32); - /*Sending Cfg*/ - s32Error = send_config_pkt(SET_CFG, &strWID, 1, pstrHostIfSetDrvHandler->u32Address); @@ -618,15 +384,6 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *hif_drv, return s32Error; } -/** - * @brief Handle_SetWfiAPDrvHandler - * @details Sending config packet to firmware to set driver handler - * @param[in] void * drvHandler,tstrHostIfSetDrvHandler* pstrHostIfSetDrvHandler - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_SetOperationMode(struct host_if_drv *hif_drv, struct op_mode *pstrHostIfSetOperationMode) { @@ -634,7 +391,6 @@ static s32 Handle_SetOperationMode(struct host_if_drv *hif_drv, s32 s32Error = 0; struct wid strWID; - /*prepare configuration packet*/ strWID.id = (u16)WID_SET_OPERATION_MODE; strWID.type = WID_INT; strWID.val = (s8 *)&(pstrHostIfSetOperationMode->u32Mode); @@ -656,15 +412,6 @@ static s32 Handle_SetOperationMode(struct host_if_drv *hif_drv, return s32Error; } -/** - * @brief host_int_set_IPAddress - * @details Setting IP address params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, u8* pu8IPAddr - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 Handle_set_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) { @@ -679,7 +426,6 @@ s32 Handle_set_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) memcpy(gs8SetIP[idx], pu8IPAddr, IP_ALEN); - /*prepare configuration packet*/ strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; strWID.val = (u8 *)pu8IPAddr; @@ -701,23 +447,12 @@ s32 Handle_set_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) return s32Error; } - -/** - * @brief Handle_get_IPAddress - * @details Setting IP address params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, u8* pu8IPAddr - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) { s32 s32Error = 0; struct wid strWID; - /*prepare configuration packet*/ strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; strWID.val = kmalloc(IP_ALEN, GFP_KERNEL); @@ -730,7 +465,6 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) memcpy(gs8GetIP[idx], strWID.val, IP_ALEN); - /*get the value by searching the local copy*/ kfree(strWID.val); if (memcmp(gs8GetIP[idx], gs8SetIP[idx], IP_ALEN) != 0) @@ -748,16 +482,6 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) return s32Error; } - -/** - * @brief Handle_SetMacAddress - * @details Setting mac address - * @param[in] void * drvHandler,tstrHostIfSetDrvHandler* pstrHostIfSetDrvHandler - * @return Error code. - * @author Amr Abdel-Moghny - * @date November 2013 - * @version 7.0 - */ static s32 Handle_SetMacAddress(struct host_if_drv *hif_drv, struct set_mac_addr *pstrHostIfSetMacAddress) { @@ -772,13 +496,12 @@ static s32 Handle_SetMacAddress(struct host_if_drv *hif_drv, } memcpy(mac_buf, pstrHostIfSetMacAddress->u8MacAddress, ETH_ALEN); - /*prepare configuration packet*/ strWID.id = (u16)WID_MAC_ADDR; strWID.type = WID_STR; strWID.val = mac_buf; strWID.size = ETH_ALEN; PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.val); - /*Sending Cfg*/ + s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) { @@ -790,16 +513,6 @@ static s32 Handle_SetMacAddress(struct host_if_drv *hif_drv, return s32Error; } - -/** - * @brief Handle_GetMacAddress - * @details Getting mac address - * @param[in] void * drvHandler,tstrHostIfSetDrvHandler* pstrHostIfSetDrvHandler - * @return Error code. - * @author Amr Abdel-Moghny - * @date JAN 2013 - * @version 8.0 - */ static s32 Handle_GetMacAddress(struct host_if_drv *hif_drv, struct get_mac_addr *pstrHostIfGetMacAddress) { @@ -807,13 +520,11 @@ static s32 Handle_GetMacAddress(struct host_if_drv *hif_drv, s32 s32Error = 0; struct wid strWID; - /*prepare configuration packet*/ strWID.id = (u16)WID_MAC_ADDR; strWID.type = WID_STR; strWID.val = pstrHostIfGetMacAddress->u8MacAddress; strWID.size = ETH_ALEN; - /*Sending Cfg*/ s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) { @@ -825,16 +536,6 @@ static s32 Handle_GetMacAddress(struct host_if_drv *hif_drv, return s32Error; } - -/** - * @brief Handle_CfgParam - * @details Sending config packet to firmware to set CFG params - * @param[in] struct cfg_param_attr *strHostIFCfgParamAttr - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, struct cfg_param_attr *strHostIFCfgParamAttr) { @@ -848,12 +549,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting CFG params\n"); if (strHostIFCfgParamAttr->cfg_attr_info.flag & BSS_TYPE) { - /*----------------------------------------------------------*/ - /*Input Value: INFRASTRUCTURE = 1, */ - /* INDEPENDENT= 2, */ - /* ANY_BSS= 3 */ - /*----------------------------------------------------------*/ - /* validate input then copy>> need to check value 4 and 5 */ if (strHostIFCfgParamAttr->cfg_attr_info.bss_type < 6) { strWIDList[u8WidCnt].id = WID_BSS_TYPE; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.bss_type; @@ -868,12 +563,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & AUTH_TYPE) { - /*------------------------------------------------------*/ - /*Input Values: OPEN_SYSTEM = 0, */ - /* SHARED_KEY = 1, */ - /* ANY = 2 */ - /*------------------------------------------------------*/ - /*validate Possible values*/ if ((strHostIFCfgParamAttr->cfg_attr_info.auth_type) == 1 || (strHostIFCfgParamAttr->cfg_attr_info.auth_type) == 2 || (strHostIFCfgParamAttr->cfg_attr_info.auth_type) == 5) { strWIDList[u8WidCnt].id = WID_AUTH_TYPE; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.auth_type; @@ -888,7 +577,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & AUTHEN_TIMEOUT) { - /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.auth_timeout > 0 && strHostIFCfgParamAttr->cfg_attr_info.auth_timeout < 65536) { strWIDList[u8WidCnt].id = WID_AUTH_TIMEOUT; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.auth_timeout; @@ -903,13 +591,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & POWER_MANAGEMENT) { - /*-----------------------------------------------------------*/ - /*Input Values: NO_POWERSAVE = 0, */ - /* MIN_FAST_PS = 1, */ - /* MAX_FAST_PS = 2, */ - /* MIN_PSPOLL_PS = 3, */ - /* MAX_PSPOLL_PS = 4 */ - /*----------------------------------------------------------*/ if (strHostIFCfgParamAttr->cfg_attr_info.power_mgmt_mode < 5) { strWIDList[u8WidCnt].id = WID_POWER_MANAGEMENT; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.power_mgmt_mode; @@ -924,7 +605,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & RETRY_SHORT) { - /* range from 1 to 256 */ if ((strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit > 0) && (strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit < 256)) { strWIDList[u8WidCnt].id = WID_SHORT_RETRY_LIMIT; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit; @@ -939,7 +619,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & RETRY_LONG) { - /* range from 1 to 256 */ if ((strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit > 0) && (strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit < 256)) { strWIDList[u8WidCnt].id = WID_LONG_RETRY_LIMIT; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit; @@ -970,7 +649,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & RTS_THRESHOLD) { - /* range 256 to 65535 */ if (strHostIFCfgParamAttr->cfg_attr_info.rts_threshold > 255 && strHostIFCfgParamAttr->cfg_attr_info.rts_threshold < 65536) { strWIDList[u8WidCnt].id = WID_RTS_THRESHOLD; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.rts_threshold; @@ -985,11 +663,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & PREAMBLE) { - /*-----------------------------------------------------*/ - /*Input Values: Short= 0, */ - /* Long= 1, */ - /* Auto= 2 */ - /*------------------------------------------------------*/ if (strHostIFCfgParamAttr->cfg_attr_info.preamble_type < 3) { strWIDList[u8WidCnt].id = WID_PREAMBLE; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.preamble_type; @@ -1018,10 +691,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & TXOP_PROT_DISABLE) { - /*Description: used to Disable RTS-CTS protection for TXOP burst*/ - /*transmission when the acknowledgement policy is No-Ack or Block-Ack */ - /* this information is useful for external supplicant */ - /*Input Values: 1 for enable and 0 for disable. */ if (strHostIFCfgParamAttr->cfg_attr_info.txop_prot_disabled < 2) { strWIDList[u8WidCnt].id = WID_11N_TXOP_PROT_DISABLE; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.txop_prot_disabled; @@ -1036,7 +705,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & BEACON_INTERVAL) { - /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.beacon_interval > 0 && strHostIFCfgParamAttr->cfg_attr_info.beacon_interval < 65536) { strWIDList[u8WidCnt].id = WID_BEACON_INTERVAL; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.beacon_interval; @@ -1051,7 +719,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & DTIM_PERIOD) { - /* range is 1 to 255. */ if (strHostIFCfgParamAttr->cfg_attr_info.dtim_period > 0 && strHostIFCfgParamAttr->cfg_attr_info.dtim_period < 256) { strWIDList[u8WidCnt].id = WID_DTIM_PERIOD; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.dtim_period; @@ -1066,11 +733,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & SITE_SURVEY) { - /*----------------------------------------------------------------------*/ - /*Input Values: SITE_SURVEY_1CH = 0, i.e.: currently set channel */ - /* SITE_SURVEY_ALL_CH = 1, */ - /* SITE_SURVEY_OFF = 2 */ - /*----------------------------------------------------------------------*/ if (strHostIFCfgParamAttr->cfg_attr_info.site_survey_enabled < 3) { strWIDList[u8WidCnt].id = WID_SITE_SURVEY; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.site_survey_enabled; @@ -1085,7 +747,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & SITE_SURVEY_SCAN_TIME) { - /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_SITE_SURVEY_SCAN_TIME; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time; @@ -1100,7 +761,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & ACTIVE_SCANTIME) { - /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.active_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.active_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_ACTIVE_SCAN_TIME; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.active_scan_time; @@ -1115,7 +775,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, u8WidCnt++; } if (strHostIFCfgParamAttr->cfg_attr_info.flag & PASSIVE_SCANTIME) { - /* range is 1 to 65535. */ if (strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time > 0 && strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time < 65536) { strWIDList[u8WidCnt].id = WID_PASSIVE_SCAN_TIME; strWIDList[u8WidCnt].val = (s8 *)&strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time; @@ -1131,11 +790,6 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } if (strHostIFCfgParamAttr->cfg_attr_info.flag & CURRENT_TX_RATE) { enum CURRENT_TXRATE curr_tx_rate = strHostIFCfgParamAttr->cfg_attr_info.curr_tx_rate; - /*----------------------------------------------------------------------*/ - /*Rates: 1 2 5.5 11 6 9 12 18 24 36 48 54 Auto */ - /*InputValues: 1 2 3 4 5 6 7 8 9 10 11 12 0 */ - /*----------------------------------------------------------------------*/ - /* validate rate */ if (curr_tx_rate == AUTORATE || curr_tx_rate == MBPS_1 || curr_tx_rate == MBPS_2 || curr_tx_rate == MBPS_5_5 || curr_tx_rate == MBPS_11 || curr_tx_rate == MBPS_6 @@ -1165,16 +819,6 @@ ERRORHANDLER: return s32Error; } - -/** - * @brief Handle_wait_msg_q_empty - * @details this should be the last msg and then the msg Q becomes idle - * @param[in] tstrHostIFscanAttr* pstrHostIFscanAttr - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_wait_msg_q_empty(void) { g_wilc_initialized = 0; @@ -1182,15 +826,6 @@ static s32 Handle_wait_msg_q_empty(void) return 0; } -/** - * @brief Handle_Scan - * @details Sending config packet to firmware to set the scan params - * @param[in] struct scan_attr *pstrHostIFscanAttr - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_Scan(struct host_if_drv *hif_drv, struct scan_attr *pstrHostIFscanAttr) { @@ -1209,7 +844,6 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrScanReq.u32UserScanPvoid = pstrHostIFscanAttr->pvUserArg; if ((hif_drv->enuHostIFstate >= HOST_IF_SCANNING) && (hif_drv->enuHostIFstate < HOST_IF_CONNECTED)) { - /* here we either in HOST_IF_SCANNING, HOST_IF_WAITING_CONN_REQ or HOST_IF_WAITING_CONN_RESP */ PRINT_D(GENERIC_DBG, "Don't scan we are already in [%d] state\n", hif_drv->enuHostIFstate); PRINT_ER("Already scan\n"); s32Error = -EBUSY; @@ -1254,11 +888,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, u32WidsCount++; } - /*filling cfg param array*/ - - /* if((pstrHostIFscanAttr->pu8IEs != NULL) && (pstrHostIFscanAttr->IEsLen != 0)) */ { - /* IEs to be inserted in Probe Request */ strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_PROBE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].val = pstrHostIFscanAttr->pu8IEs; @@ -1266,14 +896,12 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, u32WidsCount++; } - /*Scan Type*/ strWIDList[u32WidsCount].id = WID_SCAN_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].val = (s8 *)(&(pstrHostIFscanAttr->u8ScanType)); u32WidsCount++; - /*list of channels to be scanned*/ strWIDList[u32WidsCount].id = WID_SCAN_CHANNEL_LIST; strWIDList[u32WidsCount].type = WID_BIN_DATA; @@ -1290,16 +918,12 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].size = pstrHostIFscanAttr->u8ChnlListLen; u32WidsCount++; - /*Scan Request*/ strWIDList[u32WidsCount].id = WID_START_SCAN_REQ; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); strWIDList[u32WidsCount].val = (s8 *)(&(pstrHostIFscanAttr->u8ScanSource)); u32WidsCount++; - /*keep the state as is , no need to change it*/ - /* gWFiDrvHandle->enuHostIFstate = HOST_IF_SCANNING; */ - if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) gbScanWhileConnected = true; else if (hif_drv->enuHostIFstate == HOST_IF_IDLE) @@ -1316,17 +940,14 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, ERRORHANDLER: if (s32Error) { del_timer(&hif_drv->hScanTimer); - /*if there is an ongoing scan request*/ Handle_ScanDone(hif_drv, SCAN_EVENT_ABORTED); } - /* Deallocate pstrHostIFscanAttr->u8ChnlListLen which was prevoisuly allocated by the sending thread */ if (pstrHostIFscanAttr->pu8ChnlFreqList != NULL) { kfree(pstrHostIFscanAttr->pu8ChnlFreqList); pstrHostIFscanAttr->pu8ChnlFreqList = NULL; } - /* Deallocate pstrHostIFscanAttr->pu8IEs which was previously allocated by the sending thread */ if (pstrHostIFscanAttr->pu8IEs != NULL) { kfree(pstrHostIFscanAttr->pu8IEs); pstrHostIFscanAttr->pu8IEs = NULL; @@ -1336,7 +957,6 @@ ERRORHANDLER: pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo = NULL; } - /* Deallocate pstrHostIFscanAttr->u8ChnlListLen which was prevoisuly allocated by the sending thread */ if (pstrHostIFscanAttr->pu8ChnlFreqList != NULL) { kfree(pstrHostIFscanAttr->pu8ChnlFreqList); pstrHostIFscanAttr->pu8ChnlFreqList = NULL; @@ -1348,15 +968,6 @@ ERRORHANDLER: return s32Error; } -/** - * @brief Handle_ScanDone - * @details Call scan notification callback function - * @param[in] NONE - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_ScanDone(struct host_if_drv *hif_drv, enum scan_event enuEvent) { @@ -1367,7 +978,6 @@ static s32 Handle_ScanDone(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "in Handle_ScanDone()\n"); - /*Ask FW to abort the running scan, if any*/ if (enuEvent == SCAN_EVENT_ABORTED) { PRINT_D(GENERIC_DBG, "Abort running scan\n"); u8abort_running_scan = 1; @@ -1376,7 +986,6 @@ static s32 Handle_ScanDone(struct host_if_drv *hif_drv, strWID.val = (s8 *)&u8abort_running_scan; strWID.size = sizeof(char); - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) { @@ -1390,26 +999,15 @@ static s32 Handle_ScanDone(struct host_if_drv *hif_drv, return s32Error; } - /*if there is an ongoing scan request*/ if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { hif_drv->strWILC_UsrScanReq.pfUserScanResult(enuEvent, NULL, hif_drv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); - /*delete current scan request*/ hif_drv->strWILC_UsrScanReq.pfUserScanResult = NULL; } return s32Error; } -/** - * @brief Handle_Connect - * @details Sending config packet to firmware to starting connection - * @param[in] struct connect_attr *pstrHostIFconnectAttr - * @return Error code. - * @author - * @date - * @version 1.0 - */ u8 u8ConnectedSSID[6] = {0}; static s32 Handle_Connect(struct host_if_drv *hif_drv, struct connect_attr *pstrHostIFconnectAttr) @@ -1417,14 +1015,11 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, s32 s32Error = 0; struct wid strWIDList[8]; u32 u32WidsCount = 0, dummyval = 0; - /* char passphrase[] = "12345678"; */ u8 *pu8CurrByte = NULL; struct join_bss_param *ptstrJoinBssParam; PRINT_D(GENERIC_DBG, "Handling connect request\n"); - /* if we try to connect to an already connected AP then discard the request */ - if (memcmp(pstrHostIFconnectAttr->pu8bssid, u8ConnectedSSID, ETH_ALEN) == 0) { s32Error = 0; @@ -1484,10 +1079,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].val = (s8 *)(&(dummyval)); u32WidsCount++; - /* if((gWFiDrvHandle->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) && */ - /* (gWFiDrvHandle->strWILC_UsrConnReq.ConnReqIEsLen != 0)) */ { - /* IEs to be inserted in Association Request */ strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].val = hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs; @@ -1524,22 +1116,12 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, gu8FlushedAuthType = (u8)hif_drv->strWILC_UsrConnReq.tenuAuth_type; PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", hif_drv->strWILC_UsrConnReq.tenuAuth_type); - /* - * strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_PSK; - * strWIDList[u32WidsCount].enuWIDtype = WID_STR; - * strWIDList[u32WidsCount].s32ValueSize = sizeof(passphrase); - * strWIDList[u32WidsCount].ps8WidVal = (s8*)(passphrase); - * u32WidsCount++; - */ - PRINT_D(HOSTINF_DBG, "Connecting to network of SSID %s on channel %d\n", hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->u8channel); strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; - - /*Sending NoA attributes during connection*/ - strWIDList[u32WidsCount].size = 112; /* 79; */ + strWIDList[u32WidsCount].size = 112; strWIDList[u32WidsCount].val = kmalloc(strWIDList[u32WidsCount].size, GFP_KERNEL); if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { @@ -1559,71 +1141,55 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, pu8CurrByte[pstrHostIFconnectAttr->ssidLen] = '\0'; } pu8CurrByte += MAX_SSID_LEN; - - /* BSS type*/ *(pu8CurrByte++) = INFRASTRUCTURE; - /* Channel*/ + if ((pstrHostIFconnectAttr->u8channel >= 1) && (pstrHostIFconnectAttr->u8channel <= 14)) { *(pu8CurrByte++) = pstrHostIFconnectAttr->u8channel; } else { PRINT_ER("Channel out of range\n"); *(pu8CurrByte++) = 0xFF; } - /* Cap Info*/ *(pu8CurrByte++) = (ptstrJoinBssParam->cap_info) & 0xFF; *(pu8CurrByte++) = ((ptstrJoinBssParam->cap_info) >> 8) & 0xFF; PRINT_D(HOSTINF_DBG, "* Cap Info %0x*\n", (*(pu8CurrByte - 2) | ((*(pu8CurrByte - 1)) << 8))); - /* sa*/ if (pstrHostIFconnectAttr->pu8bssid != NULL) memcpy(pu8CurrByte, pstrHostIFconnectAttr->pu8bssid, 6); pu8CurrByte += 6; - /* bssid*/ if (pstrHostIFconnectAttr->pu8bssid != NULL) memcpy(pu8CurrByte, pstrHostIFconnectAttr->pu8bssid, 6); pu8CurrByte += 6; - /* Beacon Period*/ *(pu8CurrByte++) = (ptstrJoinBssParam->beacon_period) & 0xFF; *(pu8CurrByte++) = ((ptstrJoinBssParam->beacon_period) >> 8) & 0xFF; PRINT_D(HOSTINF_DBG, "* Beacon Period %d*\n", (*(pu8CurrByte - 2) | ((*(pu8CurrByte - 1)) << 8))); - /* DTIM Period*/ *(pu8CurrByte++) = ptstrJoinBssParam->dtim_period; PRINT_D(HOSTINF_DBG, "* DTIM Period %d*\n", (*(pu8CurrByte - 1))); - /* Supported rates*/ + memcpy(pu8CurrByte, ptstrJoinBssParam->supp_rates, MAX_RATES_SUPPORTED + 1); pu8CurrByte += (MAX_RATES_SUPPORTED + 1); - /* wmm cap*/ *(pu8CurrByte++) = ptstrJoinBssParam->wmm_cap; PRINT_D(HOSTINF_DBG, "* wmm cap%d*\n", (*(pu8CurrByte - 1))); - /* uapsd cap*/ *(pu8CurrByte++) = ptstrJoinBssParam->uapsd_cap; - /* ht cap*/ *(pu8CurrByte++) = ptstrJoinBssParam->ht_capable; - /* copy this information to the user request */ hif_drv->strWILC_UsrConnReq.IsHTCapable = ptstrJoinBssParam->ht_capable; - /* rsn found*/ *(pu8CurrByte++) = ptstrJoinBssParam->rsn_found; PRINT_D(HOSTINF_DBG, "* rsn found %d*\n", *(pu8CurrByte - 1)); - /* rsn group policy*/ *(pu8CurrByte++) = ptstrJoinBssParam->rsn_grp_policy; PRINT_D(HOSTINF_DBG, "* rsn group policy %0x*\n", (*(pu8CurrByte - 1))); - /* mode_802_11i*/ *(pu8CurrByte++) = ptstrJoinBssParam->mode_802_11i; PRINT_D(HOSTINF_DBG, "* mode_802_11i %d*\n", (*(pu8CurrByte - 1))); - /* rsn pcip policy*/ + memcpy(pu8CurrByte, ptstrJoinBssParam->rsn_pcip_policy, sizeof(ptstrJoinBssParam->rsn_pcip_policy)); pu8CurrByte += sizeof(ptstrJoinBssParam->rsn_pcip_policy); - /* rsn auth policy*/ memcpy(pu8CurrByte, ptstrJoinBssParam->rsn_auth_policy, sizeof(ptstrJoinBssParam->rsn_auth_policy)); pu8CurrByte += sizeof(ptstrJoinBssParam->rsn_auth_policy); - /* rsn auth policy*/ memcpy(pu8CurrByte, ptstrJoinBssParam->rsn_cap, sizeof(ptstrJoinBssParam->rsn_cap)); pu8CurrByte += sizeof(ptstrJoinBssParam->rsn_cap); @@ -1662,16 +1228,9 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, } else PRINT_D(HOSTINF_DBG, "NOA not present\n"); - /* keep the buffer at the start of the allocated pointer to use it with the free*/ pu8CurrByte = strWIDList[u32WidsCount].val; u32WidsCount++; - - /* A temporary workaround to avoid handling the misleading MAC_DISCONNECTED raised from the - * firmware at chip reset when processing the WIDs of the Connect Request. - * (This workaround should be removed in the future when the Chip reset of the Connect WIDs is disabled) */ - /* ////////////////////// */ gu32WidConnRstHack = 0; - /* ////////////////////// */ if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { memcpy(gu8FlushedJoinReq, pu8CurrByte, gu32FlushedJoinReqSize); @@ -1725,9 +1284,7 @@ ERRORHANDLER: MAC_DISCONNECTED, NULL, pstrHostIFconnectAttr->pvUserArg); - /*Change state to idle*/ hif_drv->enuHostIFstate = HOST_IF_IDLE; - /* Deallocation */ if (strConnectInfo.pu8ReqIEs != NULL) { kfree(strConnectInfo.pu8ReqIEs); strConnectInfo.pu8ReqIEs = NULL; @@ -1739,19 +1296,16 @@ ERRORHANDLER: } PRINT_D(HOSTINF_DBG, "Deallocating connection parameters\n"); - /* Deallocate pstrHostIFconnectAttr->pu8bssid which was prevoisuly allocated by the sending thread */ if (pstrHostIFconnectAttr->pu8bssid != NULL) { kfree(pstrHostIFconnectAttr->pu8bssid); pstrHostIFconnectAttr->pu8bssid = NULL; } - /* Deallocate pstrHostIFconnectAttr->pu8ssid which was prevoisuly allocated by the sending thread */ if (pstrHostIFconnectAttr->pu8ssid != NULL) { kfree(pstrHostIFconnectAttr->pu8ssid); pstrHostIFconnectAttr->pu8ssid = NULL; } - /* Deallocate pstrHostIFconnectAttr->pu8IEs which was prevoisuly allocated by the sending thread */ if (pstrHostIFconnectAttr->pu8IEs != NULL) { kfree(pstrHostIFconnectAttr->pu8IEs); pstrHostIFconnectAttr->pu8IEs = NULL; @@ -1762,17 +1316,6 @@ ERRORHANDLER: return s32Error; } -/** - * @brief Handle_FlushConnect - * @details Sending config packet to firmware to flush an old connection - * after switching FW from station one to hybrid one - * @param[in] void * drvHandler - * @return Error code. - * @author Amr Abdel-Moghny - * @date 19 DEC 2013 - * @version 8.0 - */ - static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) { s32 s32Error = 0; @@ -1780,8 +1323,6 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) u32 u32WidsCount = 0; u8 *pu8CurrByte = NULL; - - /* IEs to be inserted in Association Request */ strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].val = gu8FlushedInfoElemAsoc; @@ -1823,15 +1364,6 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) return s32Error; } -/** - * @brief Handle_ConnectTimeout - * @details Call connect notification callback function indicating connection failure - * @param[in] NONE - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) { s32 s32Error = 0; @@ -1851,10 +1383,6 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) memset(&strConnectInfo, 0, sizeof(tstrConnectInfo)); - - /* First, we will notify the upper layer with the Connection failure {through the Connect Callback function}, - * then we will notify our firmware also with the Connection failure {through sending to it Cfg packet carrying - * WID_DISCONNECT} */ if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { if (hif_drv->strWILC_UsrConnReq.pu8bssid != NULL) { memcpy(strConnectInfo.au8bssid, @@ -1875,7 +1403,6 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) NULL, hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid); - /* Deallocation of strConnectInfo.pu8ReqIEs */ if (strConnectInfo.pu8ReqIEs != NULL) { kfree(strConnectInfo.pu8ReqIEs); strConnectInfo.pu8ReqIEs = NULL; @@ -1884,8 +1411,6 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) PRINT_ER("Connect callback function pointer is NULL\n"); } - /* Here we will notify our firmware also with the Connection failure {through sending to it Cfg packet carrying - * WID_DISCONNECT} */ strWID.id = (u16)WID_DISCONNECT; strWID.type = WID_CHAR; strWID.val = (s8 *)&u16DummyReasonCode; @@ -1898,7 +1423,6 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) if (s32Error) PRINT_ER("Failed to send dissconect config packet\n"); - /* Deallocation of the Saved Connect Request in the global Handle */ hif_drv->strWILC_UsrConnReq.ssidLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ssid); kfree(hif_drv->strWILC_UsrConnReq.pu8bssid); @@ -1906,7 +1430,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); eth_zero_addr(u8ConnectedSSID); - /*Freeing flushed join request params on connect timeout*/ + if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; @@ -1919,15 +1443,6 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) return s32Error; } -/** - * @brief Handle_RcvdNtwrkInfo - * @details Handling received network information - * @param[in] struct rcvd_net_info *pstrRcvdNetworkInfo - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, struct rcvd_net_info *pstrRcvdNetworkInfo) { @@ -1943,7 +1458,6 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, bNewNtwrkFound = true; PRINT_INFO(HOSTINF_DBG, "Handling received network info\n"); - /*if there is a an ongoing scan request*/ if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { PRINT_D(HOSTINF_DBG, "State: Scanning, parsing network information received\n"); parse_network_info(pstrRcvdNetworkInfo->pu8Buffer, &pstrNetworkInfo); @@ -1954,7 +1468,6 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, goto done; } - /* check whether this network is discovered before */ for (i = 0; i < hif_drv->strWILC_UsrScanReq.u32RcvdChCount; i++) { if ((hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid != NULL) && @@ -1962,14 +1475,9 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, if (memcmp(hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid, pstrNetworkInfo->au8bssid, 6) == 0) { if (pstrNetworkInfo->s8rssi <= hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].s8rssi) { - /*we have already found this network with better rssi, so keep the old cached one and don't - * send anything to the upper layer */ PRINT_D(HOSTINF_DBG, "Network previously discovered\n"); goto done; } else { - /* here the same already found network is found again but with a better rssi, so just update - * the rssi for this cached network and send this updated network to the upper layer but - * don't add a new record for it */ hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].s8rssi = pstrNetworkInfo->s8rssi; bNewNtwrkFound = false; break; @@ -1979,9 +1487,6 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, } if (bNewNtwrkFound == true) { - /* here it is confirmed that it is a new discovered network, - * so add its record then call the User CallBack function */ - PRINT_D(HOSTINF_DBG, "New network found\n"); if (hif_drv->strWILC_UsrScanReq.u32RcvdChCount < MAX_NUM_SCANNED_NETWORKS) { @@ -1995,7 +1500,6 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrScanReq.u32RcvdChCount++; pstrNetworkInfo->bNewNetwork = true; - /* add new BSS to JoinBssTable */ pJoinParams = host_int_ParseJoinBssParam(pstrNetworkInfo); hif_drv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_NETWORK_FOUND, pstrNetworkInfo, @@ -2009,20 +1513,17 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, } } else { pstrNetworkInfo->bNewNetwork = false; - /* just call the User CallBack function to send the same discovered network with its updated RSSI */ hif_drv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_NETWORK_FOUND, pstrNetworkInfo, hif_drv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); } } done: - /* Deallocate pstrRcvdNetworkInfo->pu8Buffer which was prevoisuly allocated by the sending thread */ if (pstrRcvdNetworkInfo->pu8Buffer != NULL) { kfree(pstrRcvdNetworkInfo->pu8Buffer); pstrRcvdNetworkInfo->pu8Buffer = NULL; } - /*free structure allocated*/ if (pstrNetworkInfo != NULL) { DeallocateNetworkInfo(pstrNetworkInfo); pstrNetworkInfo = NULL; @@ -2031,20 +1532,9 @@ done: return s32Error; } -/** - * @brief Handle_RcvdGnrlAsyncInfo - * @details Handling received asynchrous general network information - * @param[in] struct rcvd_async_info *pstrRcvdGnrlAsyncInfo - * @return Error code. - * @author - * @date - * @version 1.0 - */ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, struct rcvd_async_info *pstrRcvdGnrlAsyncInfo) { - /* TODO: mostafa: till now, this function just handles only the received mac status msg, */ - /* which carries only 1 WID which have WID ID = WID_STATUS */ s32 s32Error = 0; u8 u8MsgType = 0; u8 u8MsgID = 0; @@ -2076,31 +1566,20 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, u8MsgType = pstrRcvdGnrlAsyncInfo->pu8Buffer[0]; - /* Check whether the received message type is 'I' */ if ('I' != u8MsgType) { PRINT_ER("Received Message format incorrect.\n"); return -EFAULT; } - /* Extract message ID */ u8MsgID = pstrRcvdGnrlAsyncInfo->pu8Buffer[1]; - - /* Extract message Length */ u16MsgLen = MAKE_WORD16(pstrRcvdGnrlAsyncInfo->pu8Buffer[2], pstrRcvdGnrlAsyncInfo->pu8Buffer[3]); - - /* Extract WID ID [expected to be = WID_STATUS] */ u16WidID = MAKE_WORD16(pstrRcvdGnrlAsyncInfo->pu8Buffer[4], pstrRcvdGnrlAsyncInfo->pu8Buffer[5]); - - /* Extract WID Length [expected to be = 1] */ u8WidLen = pstrRcvdGnrlAsyncInfo->pu8Buffer[6]; - - /* get the WID value [expected to be one of two values: either MAC_CONNECTED = (1) or MAC_DISCONNECTED = (0)] */ u8MacStatus = pstrRcvdGnrlAsyncInfo->pu8Buffer[7]; u8MacStatusReasonCode = pstrRcvdGnrlAsyncInfo->pu8Buffer[8]; u8MacStatusAdditionalInfo = pstrRcvdGnrlAsyncInfo->pu8Buffer[9]; PRINT_INFO(HOSTINF_DBG, "Recieved MAC status = %d with Reason = %d , Info = %d\n", u8MacStatus, u8MacStatusReasonCode, u8MacStatusAdditionalInfo); if (hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { - /* our station had sent Association Request frame, so here it will get the Association Response frame then parse it */ u32 u32RcvdAssocRespInfoLen; tstrConnectRespInfo *pstrConnectRespInfo = NULL; @@ -2126,7 +1605,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, if (s32Err) { PRINT_ER("ParseAssocRespInfo() returned error %d\n", s32Err); } else { - /* use the necessary parsed Info from the Received Association Response */ strConnectInfo.u16ConnectStatus = pstrConnectRespInfo->u16ConnectStatus; if (strConnectInfo.u16ConnectStatus == SUCCESSFUL_STATUSCODE) { @@ -2141,7 +1619,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } } - /* deallocate the Assoc. Resp. parsed structure as it is not needed anymore */ if (pstrConnectRespInfo != NULL) { DeallocateAssocRespInfo(pstrConnectRespInfo); pstrConnectRespInfo = NULL; @@ -2150,9 +1627,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } } - /* The station has just received mac status and it also received assoc. response which - * it was waiting for. - * So check first the matching between the received mac status and the received status code in Asoc Resp */ if ((u8MacStatus == MAC_CONNECTED) && (strConnectInfo.u16ConnectStatus != SUCCESSFUL_STATUSCODE)) { PRINT_ER("Received MAC status is MAC_CONNECTED while the received status code in Asoc Resp is not SUCCESSFUL_STATUSCODE\n"); @@ -2163,8 +1637,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, eth_zero_addr(u8ConnectedSSID); } - /* TODO: mostafa: correct BSSID should be retrieved from actual BSSID received from AP */ - /* through a structure of type tstrConnectRespInfo */ if (hif_drv->strWILC_UsrConnReq.pu8bssid != NULL) { PRINT_D(HOSTINF_DBG, "Retrieving actual BSSID from AP\n"); memcpy(strConnectInfo.au8bssid, hif_drv->strWILC_UsrConnReq.pu8bssid, 6); @@ -2193,10 +1665,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, NULL, hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid); - - /* if received mac status is MAC_CONNECTED and - * received status code in Asoc Resp is SUCCESSFUL_STATUSCODE, change state to CONNECTED - * else change state to IDLE */ if ((u8MacStatus == MAC_CONNECTED) && (strConnectInfo.u16ConnectStatus == SUCCESSFUL_STATUSCODE)) { host_int_set_power_mgmt(hif_drv, 0, 0); @@ -2208,17 +1676,12 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, g_obtainingIP = true; mod_timer(&hDuringIpTimer, jiffies + msecs_to_jiffies(10000)); - - /* open a BA session if possible */ - /* if(pstrWFIDrv->strWILC_UsrConnReq.IsHTCapable) */ - /* BA_SESSION_DEFAULT_BUFFER_SIZE,BA_SESSION_DEFAULT_TIMEOUT); */ } else { PRINT_D(HOSTINF_DBG, "MAC status : %d and Connect Status : %d\n", u8MacStatus, strConnectInfo.u16ConnectStatus); hif_drv->enuHostIFstate = HOST_IF_IDLE; gbScanWhileConnected = false; } - /* Deallocation */ if (strConnectInfo.pu8RespIEs != NULL) { kfree(strConnectInfo.pu8RespIEs); strConnectInfo.pu8RespIEs = NULL; @@ -2235,7 +1698,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); } else if ((u8MacStatus == MAC_DISCONNECTED) && (hif_drv->enuHostIFstate == HOST_IF_CONNECTED)) { - /* Disassociation or Deauthentication frame has been received */ PRINT_D(HOSTINF_DBG, "Received MAC_DISCONNECTED from the FW\n"); memset(&strDisconnectNotifInfo, 0, sizeof(tstrDisconnectNotifInfo)); @@ -2266,27 +1728,12 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, eth_zero_addr(hif_drv->au8AssociatedBSSID); - - /* Deallocation */ - - /* if Information Elements were retrieved from the Received deauth/disassoc frame, then they - * should be deallocated here */ - /* - * if(strDisconnectNotifInfo.ie != NULL) - * { - * kfree(strDisconnectNotifInfo.ie); - * strDisconnectNotifInfo.ie = NULL; - * } - */ - hif_drv->strWILC_UsrConnReq.ssidLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ssid); kfree(hif_drv->strWILC_UsrConnReq.pu8bssid); hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); - /*Freeing flushed join request params on receiving*/ - /*MAC_DISCONNECTED while connected*/ if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedJoinReq); gu8FlushedJoinReq = NULL; @@ -2303,7 +1750,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, (hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL)) { PRINT_D(HOSTINF_DBG, "Received MAC_DISCONNECTED from the FW while scanning\n"); PRINT_D(HOSTINF_DBG, "\n\n<< Abort the running Scan >>\n\n"); - /*Abort the running scan*/ + del_timer(&hif_drv->hScanTimer); if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) Handle_ScanDone(hif_drv, SCAN_EVENT_ABORTED); @@ -2312,7 +1759,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } - /* Deallocate pstrRcvdGnrlAsyncInfo->pu8Buffer which was prevoisuly allocated by the sending thread */ if (pstrRcvdGnrlAsyncInfo->pu8Buffer != NULL) { kfree(pstrRcvdGnrlAsyncInfo->pu8Buffer); pstrRcvdGnrlAsyncInfo->pu8Buffer = NULL; @@ -2321,15 +1767,6 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, return s32Error; } -/** - * @brief Handle_Key - * @details Sending config packet to firmware to set key - * @param[in] struct key_attr *pstrHostIFkeyAttr - * @return Error code. - * @author - * @date - * @version 1.0 - */ static int Handle_Key(struct host_if_drv *hif_drv, struct key_attr *pstrHostIFkeyAttr) { @@ -2455,14 +1892,6 @@ static int Handle_Key(struct host_if_drv *hif_drv, memset(pu8keybuf, 0, RX_MIC_KEY_MSG_LEN); - - /*|----------------------------------------------------------------------------| - * |Sta Address | Key RSC | KeyID | Key Length | Temporal Key | Rx Michael Key | - * |------------|---------|-------|------------|---------------|----------------| - | 6 bytes | 8 byte |1 byte | 1 byte | 16 bytes | 8 bytes |*/ - - - if (pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq != NULL) memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq, 8); @@ -2473,7 +1902,6 @@ static int Handle_Key(struct host_if_drv *hif_drv, memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); - /* pstrHostIFkeyAttr->uniHostIFkeyAttr.strHostIFwpaAttr.u8Ciphermode = 0X51; */ strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); @@ -2488,10 +1916,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, get_id_from_handler(hif_drv)); kfree(pu8keybuf); - - /* ////////////////////////// */ up(&hif_drv->hSemTestKeyBlock); - /* ///////////////////////// */ } if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { @@ -2506,12 +1931,6 @@ static int Handle_Key(struct host_if_drv *hif_drv, memset(pu8keybuf, 0, RX_MIC_KEY_MSG_LEN); - - /*|----------------------------------------------------------------------------| - * |Sta Address | Key RSC | KeyID | Key Length | Temporal Key | Rx Michael Key | - * |------------|---------|-------|------------|---------------|----------------| - | 6 bytes | 8 byte |1 byte | 1 byte | 16 bytes | 8 bytes |*/ - if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) memcpy(pu8keybuf, hif_drv->au8AssociatedBSSID, ETH_ALEN); else @@ -2534,10 +1953,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, get_id_from_handler(hif_drv)); kfree(pu8keybuf); - - /* ////////////////////////// */ up(&hif_drv->hSemTestKeyBlock); - /* ///////////////////////// */ } _WPARxGtk_end_case_: kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key); @@ -2562,17 +1978,9 @@ _WPARxGtk_end_case_: } - /*|-----------------------------------------------------------------------------| - * |Station address | keyidx |Key Length |Temporal Key | Rx Michael Key |Tx Michael Key | - * |----------------|------------ |--------------|----------------|---------------| - | 6 bytes | 1 byte | 1byte | 16 bytes | 8 bytes | 8 bytes | - |-----------------------------------------------------------------------------|*/ - - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8macaddr, 6); /*1 bytes Key Length */ - + memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8macaddr, 6); memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8keyidx, 1); memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); - /*16 byte TK*/ memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); @@ -2590,10 +1998,7 @@ _WPARxGtk_end_case_: s32Error = send_config_pkt(SET_CFG, strWIDList, 2, get_id_from_handler(hif_drv)); kfree(pu8keybuf); - - /* ////////////////////////// */ up(&hif_drv->hSemTestKeyBlock); - /* ///////////////////////// */ } if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { @@ -2609,16 +2014,8 @@ _WPARxGtk_end_case_: } - /*|-----------------------------------------------------------------------------| - * |Station address | Key Length | Temporal Key | Rx Michael Key |Tx Michael Key | - * |----------------|------------|--------------|----------------|---------------| - | 6 bytes | 1byte | 16 bytes | 8 bytes | 8 bytes | - |-----------------------------------------------------------------------------|*/ - - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8macaddr, 6); /*1 bytes Key Length */ - + memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8macaddr, 6); memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); - /*16 byte TK*/ memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); @@ -2631,10 +2028,7 @@ _WPARxGtk_end_case_: s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); kfree(pu8keybuf); - - /* ////////////////////////// */ up(&hif_drv->hSemTestKeyBlock); - /* ///////////////////////// */ } _WPAPtk_end_case_: @@ -2682,16 +2076,6 @@ _WPAPtk_end_case_: return s32Error; } - -/** - * @brief Handle_Disconnect - * @details Sending config packet to firmware to disconnect - * @param[in] NONE - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_Disconnect(struct host_if_drv *hif_drv) { struct wid strWID; @@ -2736,8 +2120,6 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) } if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { - - /*Stop connect timer, if connection in progress*/ if (hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { PRINT_D(HOSTINF_DBG, "Upper layer requested termination of connection\n"); del_timer(&hif_drv->hConnectTimer); @@ -2755,8 +2137,6 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) eth_zero_addr(hif_drv->au8AssociatedBSSID); - - /* Deallocation */ hif_drv->strWILC_UsrConnReq.ssidLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ssid); kfree(hif_drv->strWILC_UsrConnReq.pu8bssid); @@ -2774,10 +2154,7 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) } - /* ////////////////////////// */ up(&hif_drv->hSemTestDisconnectBlock); - /* ///////////////////////// */ - } @@ -2791,16 +2168,6 @@ void resolve_disconnect_aberration(struct host_if_drv *hif_drv) } } -/** - * @brief Handle_GetChnl - * @details Sending config packet to get channel - * @param[in] NONE - * @return NONE - * - * @author - * @date - * @version 1.0 - */ static s32 Handle_GetChnl(struct host_if_drv *hif_drv) { @@ -2816,7 +2183,7 @@ static s32 Handle_GetChnl(struct host_if_drv *hif_drv) s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - /*get the value by searching the local copy*/ + if (s32Error) { PRINT_ER("Failed to get channel number\n"); s32Error = -EFAULT; @@ -2830,16 +2197,6 @@ static s32 Handle_GetChnl(struct host_if_drv *hif_drv) } - -/** - * @brief Handle_GetRssi - * @details Sending config packet to get RSSI - * @param[in] NONE - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_GetRssi(struct host_if_drv *hif_drv) { s32 s32Error = 0; @@ -2850,7 +2207,6 @@ static void Handle_GetRssi(struct host_if_drv *hif_drv) strWID.val = &gs8Rssi; strWID.size = sizeof(char); - /*Sending Cfg*/ PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); s32Error = send_config_pkt(GET_CFG, &strWID, 1, @@ -2877,7 +2233,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *hif_drv) strWID.type = WID_CHAR; strWID.val = &gs8lnkspd; strWID.size = sizeof(char); - /*Sending Cfg*/ + PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); s32Error = send_config_pkt(GET_CFG, &strWID, 1, @@ -2938,17 +2294,6 @@ s32 Handle_GetStatistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatis } -/** - * @brief Handle_Get_InActiveTime - * @details Sending config packet to set mac adddress for station and - * get inactive time - * @param[in] NONE - * @return NONE - * - * @author - * @date - * @version 1.0 - */ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, struct sta_inactive_t *strHostIfStaInactiveT) { @@ -2972,7 +2317,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - /*get the value by searching the local copy*/ + if (s32Error) { PRINT_ER("Failed to SET incative time\n"); return -EFAULT; @@ -2987,7 +2332,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - /*get the value by searching the local copy*/ + if (s32Error) { PRINT_ER("Failed to get incative time\n"); return -EFAULT; @@ -3004,16 +2349,6 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, } - -/** - * @brief Handle_AddBeacon - * @details Sending config packet to add beacon - * @param[in] struct beacon_attr *pstrSetBeaconParam - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_AddBeacon(struct host_if_drv *hif_drv, struct beacon_attr *pstrSetBeaconParam) { @@ -3058,9 +2393,6 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, pstrSetBeaconParam->pu8Tail, pstrSetBeaconParam->u32TailLen); pu8CurrByte += pstrSetBeaconParam->u32TailLen; - - - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) @@ -3072,16 +2404,6 @@ ERRORHANDLER: kfree(pstrSetBeaconParam->pu8Tail); } - -/** - * @brief Handle_AddBeacon - * @details Sending config packet to delete beacon - * @param[in] struct host_if_drv *drvHandler - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_DelBeacon(struct host_if_drv *hif_drv) { s32 s32Error = 0; @@ -3099,25 +2421,13 @@ static void Handle_DelBeacon(struct host_if_drv *hif_drv) pu8CurrByte = strWID.val; PRINT_D(HOSTINF_DBG, "Deleting BEACON\n"); - /* TODO: build del beacon message*/ - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send delete beacon config packet\n"); } - -/** - * @brief WILC_HostIf_PackStaParam - * @details Handling packing of the station params in a buffer - * @param[in] u8* pu8Buffer, struct add_sta_param *pstrStationParam - * @return NONE - * @author - * @date - * @version 1.0 - */ static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, struct add_sta_param *pstrStationParam) { @@ -3164,15 +2474,6 @@ static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, return pu8CurrByte - pu8Buffer; } -/** - * @brief Handle_AddStation - * @details Sending config packet to add station - * @param[in] struct add_sta_param *pstrStationParam - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_AddStation(struct host_if_drv *hif_drv, struct add_sta_param *pstrStationParam) { @@ -3192,7 +2493,6 @@ static void Handle_AddStation(struct host_if_drv *hif_drv, pu8CurrByte = strWID.val; pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error != 0) @@ -3203,15 +2503,6 @@ ERRORHANDLER: kfree(strWID.val); } -/** - * @brief Handle_DelAllSta - * @details Sending config packet to delete station - * @param[in] tstrHostIFDelSta* pstrDelStaParam - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_DelAllSta(struct host_if_drv *hif_drv, struct del_all_sta *pstrDelAllStaParam) { @@ -3245,7 +2536,6 @@ static void Handle_DelAllSta(struct host_if_drv *hif_drv, pu8CurrByte += ETH_ALEN; } - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) @@ -3257,16 +2547,6 @@ ERRORHANDLER: up(&hWaitResponse); } - -/** - * @brief Handle_DelStation - * @details Sending config packet to delete station - * @param[in] struct del_sta *pstrDelStaParam - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_DelStation(struct host_if_drv *hif_drv, struct del_sta *pstrDelStaParam) { @@ -3288,7 +2568,6 @@ static void Handle_DelStation(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, pstrDelStaParam->au8MacAddr, ETH_ALEN); - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) @@ -3298,16 +2577,6 @@ ERRORHANDLER: kfree(strWID.val); } - -/** - * @brief Handle_EditStation - * @details Sending config packet to edit station - * @param[in] struct add_sta_param *pstrStationParam - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_EditStation(struct host_if_drv *hif_drv, struct add_sta_param *pstrStationParam) { @@ -3327,7 +2596,6 @@ static void Handle_EditStation(struct host_if_drv *hif_drv, pu8CurrByte = strWID.val; pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) @@ -3338,15 +2606,6 @@ ERRORHANDLER: kfree(strWID.val); } -/** - * @brief Handle_RemainOnChan - * @details Sending config packet to edit station - * @param[in] tstrWILC_AddStaParam* pstrStationParam - * @return NONE - * @author - * @date - * @version 1.0 - */ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, struct remain_ch *pstrHostIfRemainOnChan) { @@ -3354,7 +2613,6 @@ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, u8 u8remain_on_chan_flag; struct wid strWID; - /*If it's a pendig remain-on-channel, don't overwrite gWFiDrvHandle values (since incoming msg is garbbage)*/ if (!hif_drv->u8RemainOnChan_pendingreq) { hif_drv->strHostIfRemainOnChan.pVoid = pstrHostIfRemainOnChan->pVoid; hif_drv->strHostIfRemainOnChan.pRemainOnChanExpired = pstrHostIfRemainOnChan->pRemainOnChanExpired; @@ -3362,7 +2620,6 @@ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, hif_drv->strHostIfRemainOnChan.u16Channel = pstrHostIfRemainOnChan->u16Channel; hif_drv->strHostIfRemainOnChan.u32ListenSessionID = pstrHostIfRemainOnChan->u32ListenSessionID; } else { - /*Set the channel to use it as a wid val*/ pstrHostIfRemainOnChan->u16Channel = hif_drv->strHostIfRemainOnChan.u16Channel; } @@ -3400,7 +2657,6 @@ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, strWID.val[0] = u8remain_on_chan_flag; strWID.val[1] = (s8)pstrHostIfRemainOnChan->u16Channel; - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error != 0) @@ -3414,7 +2670,6 @@ ERRORHANDLER: jiffies + msecs_to_jiffies(pstrHostIfRemainOnChan->u32duration)); - /*Calling CFG ready_on_channel*/ if (hif_drv->strHostIfRemainOnChan.pRemainOnChanReady) hif_drv->strHostIfRemainOnChan.pRemainOnChanReady(hif_drv->strHostIfRemainOnChan.pVoid); @@ -3424,15 +2679,6 @@ ERRORHANDLER: return s32Error; } -/** - * @brief Handle_RegisterFrame - * @details - * @param[in] - * @return NONE - * @author - * @date - * @version 1.0 - */ static int Handle_RegisterFrame(struct host_if_drv *hif_drv, struct reg_frame *pstrHostIfRegisterFrame) { @@ -3442,7 +2688,6 @@ static int Handle_RegisterFrame(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Handling frame register Flag : %d FrameType: %d\n", pstrHostIfRegisterFrame->bReg, pstrHostIfRegisterFrame->u16FrameType); - /*prepare configuration packet*/ strWID.id = (u16)WID_REGISTER_FRAME; strWID.type = WID_STR; strWID.val = kmalloc(sizeof(u16) + 2, GFP_KERNEL); @@ -3458,8 +2703,6 @@ static int Handle_RegisterFrame(struct host_if_drv *hif_drv, strWID.size = sizeof(u16) + 2; - - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) { @@ -3471,15 +2714,6 @@ static int Handle_RegisterFrame(struct host_if_drv *hif_drv, } -/** - * @brief Handle_ListenStateExpired - * @details Handle of listen state expiration - * @param[in] NONE - * @return Error code. - * @author - * @date - * @version 1.0 - */ #define FALSE_FRMWR_CHANNEL 100 static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, struct remain_ch *pstrHostIfRemainOnChan) @@ -3490,8 +2724,6 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "CANCEL REMAIN ON CHAN\n"); - /*Make sure we are already in listen state*/ - /*This is to handle duplicate expiry messages (listen timer fired and supplicant called cancel_remain_on_channel())*/ if (P2P_LISTEN_STATE) { u8remain_on_chan_flag = false; strWID.id = (u16)WID_REMAIN_ON_CHAN; @@ -3505,7 +2737,6 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, strWID.val[0] = u8remain_on_chan_flag; strWID.val[1] = FALSE_FRMWR_CHANNEL; - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error != 0) { @@ -3527,45 +2758,24 @@ _done_: return s32Error; } - -/** - * @brief ListenTimerCB - * @details Callback function of remain-on-channel timer - * @param[in] NONE - * @return Error code. - * @author - * @date - * @version 1.0 - */ static void ListenTimerCB(unsigned long arg) { s32 s32Error = 0; struct host_if_msg msg; struct host_if_drv *hif_drv = (struct host_if_drv *)arg; - /*Stopping remain-on-channel timer*/ + del_timer(&hif_drv->hRemainOnChannel); - /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; msg.drv = hif_drv; msg.body.remain_on_ch.u32ListenSessionID = hif_drv->strHostIfRemainOnChan.u32ListenSessionID; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); } -/** - * @brief Handle_EditStation - * @details Sending config packet to edit station - * @param[in] tstrWILC_AddStaParam* pstrStationParam - * @return NONE - * @author - * @date - * @version 1.0 - */ static void Handle_PowerManagement(struct host_if_drv *hif_drv, struct power_mgmt_param *strPowerMgmtParam) { @@ -3585,22 +2795,12 @@ static void Handle_PowerManagement(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Handling Power Management\n"); - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) PRINT_ER("Failed to send power management config packet\n"); } -/** - * @brief Handle_SetMulticastFilter - * @details Set Multicast filter in firmware - * @param[in] struct set_multicast *strHostIfSetMulti - * @return NONE - * @author asobhy - * @date - * @version 1.0 - */ static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, struct set_multicast *strHostIfSetMulti) { @@ -3631,7 +2831,6 @@ static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, if ((strHostIfSetMulti->u32count) > 0) memcpy(pu8CurrByte, gau8MulticastMacAddrList, ((strHostIfSetMulti->u32count) * ETH_ALEN)); - /*Sending Cfg*/ s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) @@ -3642,16 +2841,6 @@ ERRORHANDLER: } - -/** - * @brief Handle_AddBASession - * @details Add block ack session - * @param[in] tstrHostIFSetMulti* strHostIfSetMulti - * @return NONE - * @author Amr Abdel-Moghny - * @date Feb. 2014 - * @version 9.0 - */ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, struct ba_session_info *strHostIfBASessionInfo) { @@ -3673,27 +2862,20 @@ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, strWID.val = kmalloc(BLOCK_ACK_REQ_SIZE, GFP_KERNEL); strWID.size = BLOCK_ACK_REQ_SIZE; ptr = strWID.val; - /* *ptr++ = 0x14; */ *ptr++ = 0x14; *ptr++ = 0x3; *ptr++ = 0x0; memcpy(ptr, strHostIfBASessionInfo->au8Bssid, ETH_ALEN); ptr += ETH_ALEN; *ptr++ = strHostIfBASessionInfo->u8Ted; - /* BA Policy*/ *ptr++ = 1; - /* Buffer size*/ *ptr++ = (strHostIfBASessionInfo->u16BufferSize & 0xFF); *ptr++ = ((strHostIfBASessionInfo->u16BufferSize >> 16) & 0xFF); - /* BA timeout*/ *ptr++ = (strHostIfBASessionInfo->u16SessionTimeout & 0xFF); *ptr++ = ((strHostIfBASessionInfo->u16SessionTimeout >> 16) & 0xFF); - /* ADDBA timeout*/ *ptr++ = (AddbaTimeout & 0xFF); *ptr++ = ((AddbaTimeout >> 16) & 0xFF); - /* Group Buffer Max Frames*/ *ptr++ = 8; - /* Group Buffer Timeout */ *ptr++ = 0; s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -3706,20 +2888,15 @@ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, strWID.type = WID_STR; strWID.size = 15; ptr = strWID.val; - /* *ptr++ = 0x14; */ *ptr++ = 15; *ptr++ = 7; *ptr++ = 0x2; memcpy(ptr, strHostIfBASessionInfo->au8Bssid, ETH_ALEN); ptr += ETH_ALEN; - /* TID*/ *ptr++ = strHostIfBASessionInfo->u8Ted; - /* Max Num MSDU */ *ptr++ = 8; - /* BA timeout*/ *ptr++ = (strHostIfBASessionInfo->u16BufferSize & 0xFF); *ptr++ = ((strHostIfBASessionInfo->u16SessionTimeout >> 16) & 0xFF); - /*Ack-Policy */ *ptr++ = 3; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -3731,15 +2908,6 @@ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, } -/** - * @brief Handle_DelAllRxBASessions - * @details Delete all Rx BA sessions - * @param[in] tstrHostIFSetMulti* strHostIfSetMulti - * @return NONE - * @author Abdelrahman Sobhy - * @date Feb. 2013 - * @version 9.0 - */ static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, struct ba_session_info *strHostIfBASessionInfo) { @@ -3764,10 +2932,8 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, memcpy(ptr, strHostIfBASessionInfo->au8Bssid, ETH_ALEN); ptr += ETH_ALEN; *ptr++ = strHostIfBASessionInfo->u8Ted; - /* BA direction = recipent*/ *ptr++ = 0; - /* Delba Reason */ - *ptr++ = 32; /* Unspecific QOS reason */ + *ptr++ = 32; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -3784,15 +2950,6 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, } -/** - * @brief hostIFthread - * @details Main thread to handle message queue requests - * @param[in] void* pvArg - * @return NONE - * @author - * @date - * @version 1.0 - */ static int hostIFthread(void *pvArg) { u32 u32Ret; @@ -3809,8 +2966,6 @@ static int hostIFthread(void *pvArg) break; } - - /*Re-Queue HIF message*/ if ((!g_wilc_initialized)) { PRINT_D(GENERIC_DBG, "--WAIT--"); usleep_range(200 * 1000, 200 * 1000); @@ -3871,7 +3026,6 @@ static int hostIFthread(void *pvArg) del_timer(&hif_drv->hScanTimer); PRINT_D(HOSTINF_DBG, "scan completed successfully\n"); - /*Allow chip sleep, only if both interfaces are not connected*/ if (!linux_wlan_get_num_conn_ifcs()) chip_sleep_manually(INFINITE_SLEEP_TIME); @@ -4011,12 +3165,10 @@ static void TimerCB_Scan(unsigned long arg) void *pvArg = (void *)arg; struct host_if_msg msg; - /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.drv = pvArg; msg.id = HOST_IF_MSG_SCAN_TIMER_FIRED; - /* send the message */ wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); } @@ -4025,29 +3177,13 @@ static void TimerCB_Connect(unsigned long arg) void *pvArg = (void *)arg; struct host_if_msg msg; - /* prepare the Timer Callback message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.drv = pvArg; msg.id = HOST_IF_MSG_CONNECT_TIMER_FIRED; - /* send the message */ wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); } - -/** - * @brief removes wpa/wpa2 keys - * @details only in BSS STA mode if External Supplicant support is enabled. - * removes all WPA/WPA2 station key entries from MAC hardware. - * @param[in,out] handle to the wifi driver - * @param[in] 6 bytes of Station Adress in the station entry table - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ -/* Check implementation in core adding 9 bytes to the input! */ s32 host_int_remove_key(struct host_if_drv *hif_drv, const u8 *pu8StaAddress) { struct wid strWID; @@ -4060,20 +3196,6 @@ s32 host_int_remove_key(struct host_if_drv *hif_drv, const u8 *pu8StaAddress) return 0; } -/** - * @brief removes WEP key - * @details valid only in BSS STA mode if External Supplicant support is enabled. - * remove a WEP key entry from MAC HW. - * The BSS Station automatically finds the index of the entry using its - * BSS ID and removes that entry from the MAC hardware. - * @param[in,out] handle to the wifi driver - * @param[in] 6 bytes of Station Adress in the station entry table - * @return Error code indicating success/failure - * @note NO need for the STA add since it is not used for processing - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) { int result = 0; @@ -4085,7 +3207,6 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) return result; } - /* prepare the Remove Wep Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_KEY; @@ -4094,7 +3215,6 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) msg.drv = hif_drv; msg.body.key_info.uniHostIFkeyAttr.wep.index = index; - /* send the message */ result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); @@ -4103,18 +3223,6 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) return result; } -/** - * @brief sets WEP default key - * @details Sets the index of the WEP encryption key in use, - * in the key table - * @param[in,out] handle to the wifi driver - * @param[in] key index ( 0, 1, 2, 3) - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) { s32 s32Error = 0; @@ -4127,7 +3235,6 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) return s32Error; } - /* prepare the Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); @@ -4139,7 +3246,6 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Index; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Default key index\n"); @@ -4148,25 +3254,6 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) return s32Error; } -/** - * @brief sets WEP deafault key - * @details valid only in BSS STA mode if External Supplicant support is enabled. - * sets WEP key entry into MAC hardware when it receives the - * corresponding request from NDIS. - * @param[in,out] handle to the wifi driver - * @param[in] message containing WEP Key in the following format - *|---------------------------------------| - *|Key ID Value | Key Length | Key | - *|-------------|------------|------------| - | 1byte | 1byte | Key Length | - ||---------------------------------------| - | - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, const u8 *pu8WepKey, u8 u8WepKeylen, @@ -4182,7 +3269,6 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, return s32Error; } - /* prepare the Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); @@ -4203,7 +3289,6 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Keyidx; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); @@ -4213,22 +3298,6 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, } -/** - * - * @brief host_int_add_wep_key_bss_ap - * @details valid only in BSS AP mode if External Supplicant support is enabled. - * sets WEP key entry into MAC hardware when it receives the - * - * corresponding request from NDIS. - * @param[in,out] handle to the wifi driver - * - * - * @return Error code indicating success/failure - * @note - * @author mdaftedar - * @date 28 FEB 2013 - * @version 1.0 - */ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, const u8 *pu8WepKey, u8 u8WepKeylen, @@ -4247,7 +3316,6 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, return s32Error; } - /* prepare the Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); if (INFO) { @@ -4275,7 +3343,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info.uniHostIFkeyAttr.wep.mode = u8mode; msg.body.key_info.uniHostIFkeyAttr.wep.auth_type = tenuAuth_type; - /* send the message */ + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -4286,22 +3354,6 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, } -/** - * @brief adds ptk Key - * @details - * @param[in,out] handle to the wifi driver - * @param[in] message containing PTK Key in the following format - *|-----------------------------------------------------------------------------| - *|Station address | Key Length | Temporal Key | Rx Michael Key |Tx Michael Key | - *|----------------|------------|--------------|----------------|---------------| - | 6 bytes | 1byte | 16 bytes | 8 bytes | 8 bytes | - ||-----------------------------------------------------------------------------| - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, u8 u8PtkKeylen, const u8 *mac_addr, const u8 *pu8RxMic, const u8 *pu8TxMic, @@ -4322,7 +3374,6 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, if (pu8TxMic != NULL) u8KeyLen += TX_MIC_KEY_LEN; - /* prepare the Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); @@ -4368,32 +3419,16 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.body.key_info.uniHostIFkeyAttr.wpa.pu8macaddr = mac_addr; msg.drv = hif_drv; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: PTK Key\n"); - /* ////////////// */ down(&hif_drv->hSemTestKeyBlock); - /* /////// */ return s32Error; } -/** - * @brief adds Rx GTk Key - * @details - * @param[in,out] handle to the wifi driver - * @param[in] pu8RxGtk : contains temporal key | Rx Mic | Tx Mic - * u8GtkKeylen :The total key length - * - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, u8 u8GtkKeylen, u8 u8KeyIdx, u32 u32KeyRSClen, const u8 *KeyRSC, @@ -4409,7 +3444,6 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, PRINT_ER("driver is null\n"); return s32Error; } - /* prepare the Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); @@ -4462,39 +3496,15 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, msg.body.key_info.uniHostIFkeyAttr.wpa.u8seqlen = u32KeyRSClen; - - - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: RX GTK\n"); - /* ////////////// */ + down(&hif_drv->hSemTestKeyBlock); - /* /////// */ return s32Error; } -/** - * @brief host_int_set_pmkid_info - * @details caches the pmkid valid only in BSS STA mode if External Supplicant - * support is enabled. This Function sets the PMKID in firmware - * when host drivr receives the corresponding request from NDIS. - * The firmware then includes theset PMKID in the appropriate - * management frames - * @param[in,out] handle to the wifi driver - * @param[in] message containing PMKID Info in the following format - *|-----------------------------------------------------------------| - *|NumEntries | BSSID[1] | PMKID[1] | ... | BSSID[K] | PMKID[K] | - *|-----------|------------|----------|-------|----------|----------| - | 1 | 6 | 16 | ... | 6 | 16 | - ||-----------------------------------------------------------------| - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_attr *pu8PmkidInfoArray) { s32 s32Error = 0; @@ -4508,7 +3518,6 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at return s32Error; } - /* prepare the Key Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_KEY; @@ -4525,7 +3534,6 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at PMKID_LEN); } - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER(" Error in sending messagequeue: PMKID Info\n"); @@ -4533,27 +3541,6 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at return s32Error; } -/** - * @brief gets the cached the pmkid info - * @details valid only in BSS STA mode if External Supplicant - * support is enabled. This Function sets the PMKID in firmware - * when host drivr receives the corresponding request from NDIS. - * The firmware then includes theset PMKID in the appropriate - * management frames - * @param[in,out] handle to the wifi driver, - * message containing PMKID Info in the following format - *|-----------------------------------------------------------------| - *|NumEntries | BSSID[1] | PMKID[1] | ... | BSSID[K] | PMKID[K] | - *|-----------|------------|----------|-------|----------|----------| - | 1 | 6 | 16 | ... | 6 | 16 | - ||-----------------------------------------------------------------| - * @param[in] - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_get_pmkid_info(struct host_if_drv *hif_drv, u8 *pu8PmkidInfoArray, u32 u32PmkidInfoLen) @@ -4568,27 +3555,12 @@ s32 host_int_get_pmkid_info(struct host_if_drv *hif_drv, return 0; } -/** - * @brief sets the pass phrase - * @details AP/STA mode. This function gives the pass phrase used to - * generate the Pre-Shared Key when WPA/WPA2 is enabled - * The length of the field can vary from 8 to 64 bytes, - * the lower layer should get the - * @param[in,out] handle to the wifi driver, - * @param[in] String containing PSK - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hif_drv, u8 *pu8PassPhrase, u8 u8Psklength) { struct wid strWID; - /*validating psk length*/ if ((u8Psklength > 7) && (u8Psklength < 65)) { strWID.id = (u16)WID_11I_PSK; strWID.type = WID_STR; @@ -4598,30 +3570,18 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hif_drv, return 0; } -/** - * @brief host_int_get_MacAddress - * @details gets mac address - * @param[in,out] handle to the wifi driver, - * - * @return Error code indicating success/failure - * @note - * @author mdaftedar - * @date 19 April 2012 - * @version 1.0 - */ + s32 host_int_get_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) { s32 s32Error = 0; struct host_if_msg msg; - - /* prepare the Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_MAC_ADDRESS; msg.body.get_mac_info.u8MacAddress = pu8MacAddress; msg.drv = hif_drv; - /* send the message */ + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get mac address\n"); @@ -4632,17 +3592,6 @@ s32 host_int_get_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) return s32Error; } -/** - * @brief host_int_set_MacAddress - * @details sets mac address - * @param[in,out] handle to the wifi driver, - * - * @return Error code indicating success/failure - * @note - * @author mabubakr - * @date 16 July 2012 - * @version 1.0 - */ s32 host_int_set_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) { s32 s32Error = 0; @@ -4650,7 +3599,6 @@ s32 host_int_set_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) PRINT_D(GENERIC_DBG, "mac addr = %x:%x:%x\n", pu8MacAddress[0], pu8MacAddress[1], pu8MacAddress[2]); - /* prepare setting mac address message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_MAC_ADDRESS; memcpy(msg.body.set_mac_info.u8MacAddress, pu8MacAddress, ETH_ALEN); @@ -4664,20 +3612,6 @@ s32 host_int_set_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) } -/** - * @brief host_int_get_RSNAConfigPSKPassPhrase - * @details gets the pass phrase:AP/STA mode. This function gets the pass phrase used to - * generate the Pre-Shared Key when WPA/WPA2 is enabled - * The length of the field can vary from 8 to 64 bytes, - * the lower layer should get the - * @param[in,out] handle to the wifi driver, - * String containing PSK - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hif_drv, u8 *pu8PassPhrase, u8 u8Psklength) { @@ -4691,21 +3625,6 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hif_drv, return 0; } -/** - * @brief sets a start scan request - * @details - * @param[in,out] handle to the wifi driver, - * @param[in] Scan Source one of the following values - * DEFAULT_SCAN 0 - * USER_SCAN BIT0 - * OBSS_PERIODIC_SCAN BIT1 - * OBSS_ONETIME_SCAN BIT2 - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_set_start_scan_req(struct host_if_drv *hif_drv, u8 scanSource) { struct wid strWID; @@ -4718,22 +3637,6 @@ s32 host_int_set_start_scan_req(struct host_if_drv *hif_drv, u8 scanSource) return 0; } -/** - * @brief host_int_get_start_scan_req - * @details gets a start scan request - * @param[in,out] handle to the wifi driver, - * @param[in] Scan Source one of the following values - * DEFAULT_SCAN 0 - * USER_SCAN BIT0 - * OBSS_PERIODIC_SCAN BIT1 - * OBSS_ONETIME_SCAN BIT2 - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ - s32 host_int_get_start_scan_req(struct host_if_drv *hif_drv, u8 *pu8ScanSource) { struct wid strWID; @@ -4746,17 +3649,6 @@ s32 host_int_get_start_scan_req(struct host_if_drv *hif_drv, u8 *pu8ScanSource) return 0; } -/** - * @brief host_int_set_join_req - * @details sets a join request - * @param[in,out] handle to the wifi driver, - * @param[in] Index of the bss descriptor - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, const u8 *pu8ssid, size_t ssidLen, const u8 *pu8IEs, size_t IEsLen, @@ -4784,7 +3676,6 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, return -EFAULT; } - /* prepare the Connect Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_CONNECT; @@ -4798,14 +3689,14 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.drv = hif_drv ; if (pu8bssid != NULL) { - msg.body.con_info.pu8bssid = kmalloc(6, GFP_KERNEL); /* will be deallocated by the receiving thread */ + msg.body.con_info.pu8bssid = kmalloc(6, GFP_KERNEL); memcpy(msg.body.con_info.pu8bssid, pu8bssid, 6); } if (pu8ssid != NULL) { msg.body.con_info.ssidLen = ssidLen; - msg.body.con_info.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + msg.body.con_info.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); memcpy(msg.body.con_info.pu8ssid, pu8ssid, ssidLen); @@ -4813,7 +3704,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, if (pu8IEs != NULL) { msg.body.con_info.IEsLen = IEsLen; - msg.body.con_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + msg.body.con_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); memcpy(msg.body.con_info.pu8IEs, pu8IEs, IEsLen); } @@ -4822,7 +3713,6 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, else PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", hif_drv->enuHostIFstate); - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Set join request\n"); @@ -4837,18 +3727,6 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, return s32Error; } -/** - * @brief Flush a join request parameters to FW, but actual connection - * @details The function is called in situation where WILC is connected to AP and - * required to switch to hybrid FW for P2P connection - * @param[in] handle to the wifi driver, - * @return Error code indicating success/failure - * @note - * @author Amr Abdel-Moghny - * @date 19 DEC 2013 - * @version 8.0 - */ - s32 host_int_flush_join_req(struct host_if_drv *hif_drv) { s32 s32Error = 0; @@ -4869,7 +3747,6 @@ s32 host_int_flush_join_req(struct host_if_drv *hif_drv) msg.id = HOST_IF_MSG_FLUSH_CONNECT; msg.drv = hif_drv; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Flush join request\n"); @@ -4879,17 +3756,6 @@ s32 host_int_flush_join_req(struct host_if_drv *hif_drv) return s32Error; } -/** - * @brief host_int_disconnect - * @details disconnects from the currently associated network - * @param[in,out] handle to the wifi driver, - * @param[in] Reason Code of the Disconnection - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_disconnect(struct host_if_drv *hif_drv, u16 u16ReasonCode) { s32 s32Error = 0; @@ -4900,34 +3766,20 @@ s32 host_int_disconnect(struct host_if_drv *hif_drv, u16 u16ReasonCode) return -EFAULT; } - /* prepare the Disconnect Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_DISCONNECT; msg.drv = hif_drv; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: disconnect\n"); - /* ////////////// */ + down(&hif_drv->hSemTestDisconnectBlock); - /* /////// */ return s32Error; } -/** - * @brief host_int_disconnect_station - * @details disconnects a sta - * @param[in,out] handle to the wifi driver, - * @param[in] Association Id of the station to be disconnected - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_disconnect_station(struct host_if_drv *hif_drv, u8 assoc_id) { struct wid strWID; @@ -4940,32 +3792,6 @@ s32 host_int_disconnect_station(struct host_if_drv *hif_drv, u8 assoc_id) return 0; } -/** - * @brief host_int_get_assoc_req_info - * @details gets a Association request info - * @param[in,out] handle to the wifi driver, - * Message containg assoc. req info in the following format - * ------------------------------------------------------------------------ - | Management Frame Format | - ||-------------------------------------------------------------------| - ||Frame Control|Duration|DA|SA|BSSID|Sequence Control|Frame Body|FCS | - ||-------------|--------|--|--|-----|----------------|----------|----| - | 2 |2 |6 |6 |6 | 2 |0 - 2312 | 4 | - ||-------------------------------------------------------------------| - | | - | Association Request Frame - Frame Body | - ||-------------------------------------------------------------------| - | Capability Information | Listen Interval | SSID | Supported Rates | - ||------------------------|-----------------|------|-----------------| - | 2 | 2 | 2-34 | 3-10 | - | --------------------------------------------------------------------- - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ - s32 host_int_get_assoc_req_info(struct host_if_drv *hif_drv, u8 *pu8AssocReqInfo, u32 u32AssocReqInfoLen) { @@ -4979,17 +3805,6 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hif_drv, u8 *pu8AssocReqInfo return 0; } -/** - * @brief gets a Association Response info - * @details - * @param[in,out] handle to the wifi driver, - * Message containg assoc. resp info - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInfo, u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen) { @@ -5006,8 +3821,6 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInf strWID.val = pu8AssocRespInfo; strWID.size = u32MaxAssocRespInfoLen; - - /* Sending Configuration packet */ s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); if (s32Error) { @@ -5021,21 +3834,6 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInf return s32Error; } -/** - * @brief gets a Association Response info - * @details Valid only in STA mode. This function gives the RSSI - * values observed in all the channels at the time of scanning. - * The length of the field is 1 greater that the total number of - * channels supported. Byte 0 contains the number of channels while - * each of Byte N contains the observed RSSI value for the channel index N. - * @param[in,out] handle to the wifi driver, - * array of scanned channels' RSSI - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_get_rx_power_level(struct host_if_drv *hif_drv, u8 *pu8RxPowerLevel, u32 u32RxPowerLevelLen) { @@ -5049,21 +3847,6 @@ s32 host_int_get_rx_power_level(struct host_if_drv *hif_drv, u8 *pu8RxPowerLevel return 0; } -/** - * @brief sets a channel - * @details - * @param[in,out] handle to the wifi driver, - * @param[in] Index of the channel to be set - *|-------------------------------------------------------------------| - | CHANNEL1 CHANNEL2 .... CHANNEL14 | - | Input: 1 2 14 | - ||-------------------------------------------------------------------| - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ int host_int_set_mac_chnl_num(struct host_if_drv *hif_drv, u8 channel) { int result; @@ -5074,7 +3857,6 @@ int host_int_set_mac_chnl_num(struct host_if_drv *hif_drv, u8 channel) return -EFAULT; } - /* prepare the set channel message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_CHANNEL; msg.body.channel_info.u8SetChan = channel; @@ -5094,9 +3876,6 @@ int host_int_wait_msg_queue_idle(void) int result = 0; struct host_if_msg msg; - - /* prepare the set driver handler message */ - memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_Q_IDLE; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -5105,7 +3884,6 @@ int host_int_wait_msg_queue_idle(void) result = -EINVAL; } - /* wait untill MSG Q is empty */ down(&hWaitResponse); return result; @@ -5116,9 +3894,6 @@ int host_int_set_wfi_drv_handler(struct host_if_drv *hif_drv) int result = 0; struct host_if_msg msg; - - /* prepare the set driver handler message */ - memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_WFIDRV_HANDLER; msg.body.drv.u32Address = get_id_from_handler(hif_drv); @@ -5138,9 +3913,6 @@ int host_int_set_operation_mode(struct host_if_drv *hif_drv, u32 mode) int result = 0; struct host_if_msg msg; - - /* prepare the set driver handler message */ - memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_OPERATION_MODE; msg.body.mode.u32Mode = mode; @@ -5155,21 +3927,6 @@ int host_int_set_operation_mode(struct host_if_drv *hif_drv, u32 mode) return result; } -/** - * @brief gets the current channel index - * @details - * @param[in,out] handle to the wifi driver, - * current channel index - *|-----------------------------------------------------------------------| - | CHANNEL1 CHANNEL2 .... CHANNEL14 | - | Input: 1 2 14 | - ||-----------------------------------------------------------------------| - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_get_host_chnl_num(struct host_if_drv *hif_drv, u8 *pu8ChNo) { s32 s32Error = 0; @@ -5180,18 +3937,15 @@ s32 host_int_get_host_chnl_num(struct host_if_drv *hif_drv, u8 *pu8ChNo) return -EFAULT; } - /* prepare the Get Channel Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_CHNL; msg.drv = hif_drv; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); down(&hif_drv->hSemGetCHNL); - /* gu8Chnl = 11; */ *pu8ChNo = gu8Chnl; @@ -5200,17 +3954,6 @@ s32 host_int_get_host_chnl_num(struct host_if_drv *hif_drv, u8 *pu8ChNo) } -/** - * @brief host_int_get_inactive_time - * @details - * @param[in,out] handle to the wifi driver, - * current sta macaddress, inactive_time - * @return - * @note - * @author - * @date - * @version 1.0 - */ s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, const u8 *mac, u32 *pu32InactiveTime) { @@ -5231,7 +3974,6 @@ s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, msg.id = HOST_IF_MSG_GET_INACTIVETIME; msg.drv = hif_drv; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send get host channel param's message queue "); @@ -5243,16 +3985,6 @@ s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, return s32Error; } -/** - * @brief host_int_test_get_int_wid - * @details Test function for getting wids - * @param[in,out] WILC_WFIDrvHandle hWFIDrv, u32* pu32TestMemAddr - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_test_get_int_wid(struct host_if_drv *hif_drv, u32 *pu32TestMemAddr) { @@ -5271,7 +4003,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hif_drv, u32 *pu32TestMemAddr) s32Error = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - /*get the value by searching the local copy*/ + if (s32Error) { PRINT_ER("Failed to get wid value\n"); return -EINVAL; @@ -5283,32 +4015,15 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hif_drv, u32 *pu32TestMemAddr) return s32Error; } - -/** - * @brief host_int_get_rssi - * @details gets the currently maintained RSSI value for the station. - * The received signal strength value in dB. - * The range of valid values is -128 to 0. - * @param[in,out] handle to the wifi driver, - * rssi value in dB - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_get_rssi(struct host_if_drv *hif_drv, s8 *ps8Rssi) { s32 s32Error = 0; struct host_if_msg msg; - - /* prepare the Get RSSI Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_RSSI; msg.drv = hif_drv; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); @@ -5334,14 +4049,11 @@ s32 host_int_get_link_speed(struct host_if_drv *hif_drv, s8 *ps8lnkspd) { struct host_if_msg msg; s32 s32Error = 0; - - /* prepare the Get LINKSPEED Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_LINKSPEED; msg.drv = hif_drv; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send GET_LINKSPEED to message queue "); @@ -5367,15 +4079,12 @@ s32 host_int_get_statistics(struct host_if_drv *hif_drv, struct rf_info *pstrSta { s32 s32Error = 0; struct host_if_msg msg; - - - /* prepare the Get RSSI Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_STATISTICS; msg.body.data = (char *)pstrStatistics; msg.drv = hif_drv; - /* send the message */ + s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); @@ -5386,23 +4095,6 @@ s32 host_int_get_statistics(struct host_if_drv *hif_drv, struct rf_info *pstrSta return s32Error; } - -/** - * @brief host_int_scan - * @details scans a set of channels - * @param[in,out] handle to the wifi driver, - * @param[in] Scan source - * Scan Type PASSIVE_SCAN = 0, - * ACTIVE_SCAN = 1 - * Channels Array - * Channels Array length - * Scan Callback function - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, u8 u8ScanType, u8 *pu8ChnlFreqList, u8 u8ChnlListLen, const u8 *pu8IEs, @@ -5418,7 +4110,6 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, return -EFAULT; } - /* prepare the Scan Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SCAN; @@ -5437,16 +4128,15 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.body.scan_info.pvUserArg = pvUserArg; msg.body.scan_info.u8ChnlListLen = u8ChnlListLen; - msg.body.scan_info.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + msg.body.scan_info.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); memcpy(msg.body.scan_info.pu8ChnlFreqList, pu8ChnlFreqList, u8ChnlListLen); msg.body.scan_info.IEsLen = IEsLen; - msg.body.scan_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); /* will be deallocated by the receiving thread */ + msg.body.scan_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); memcpy(msg.body.scan_info.pu8IEs, pu8IEs, IEsLen); - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Error in sending message queue\n"); @@ -5462,17 +4152,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, return s32Error; } -/** - * @brief hif_set_cfg - * @details sets configuration wids values - * @param[in,out] handle to the wifi driver, - * @param[in] WID, WID value - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ + s32 hif_set_cfg(struct host_if_drv *hif_drv, struct cfg_param_val *pstrCfgParamVal) { @@ -5485,7 +4165,7 @@ s32 hif_set_cfg(struct host_if_drv *hif_drv, PRINT_ER("hif_drv NULL\n"); return -EFAULT; } - /* prepare the WiphyParams Message */ + memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_CFG_PARAMS; msg.body.cfg_info.cfg_attr_info = *pstrCfgParamVal; @@ -5497,20 +4177,6 @@ s32 hif_set_cfg(struct host_if_drv *hif_drv, } - -/** - * @brief hif_get_cfg - * @details gets configuration wids values - * @param[in,out] handle to the wifi driver, - * WID value - * @param[in] WID, - * @return Error code indicating success/failure - * @note - * @author zsalah - * - * @date 8 March 2012 - * @version 1.0 - */ s32 hif_get_cfg(struct host_if_drv *hif_drv, u16 u16WID, u16 *pu16WID_Value) { s32 s32Error = 0; @@ -5606,41 +4272,10 @@ s32 hif_get_cfg(struct host_if_drv *hif_drv, u16 u16WID, u16 *pu16WID_Value) } -/*****************************************************************************/ -/* Notification Functions */ -/*****************************************************************************/ -/** - * @brief notifies host with join and leave requests - * @details This function prepares an Information frame having the - * information about a joining/leaving station. - * @param[in,out] handle to the wifi driver, - * @param[in] 6 byte Sta Adress - * Join or leave flag: - * Join = 1, - * Leave =0 - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ void host_int_send_join_leave_info_to_host (u16 assocId, u8 *stationAddr, bool joining) { } -/** - * @brief notifies host with stations found in scan - * @details sends the beacon/probe response from scan - * @param[in,out] handle to the wifi driver, - * @param[in] Sta Address, - * Frame length, - * Rssi of the Station found - * @return Error code indicating success/failure - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ static void GetPeriodicRSSI(unsigned long arg) { @@ -5655,13 +4290,11 @@ static void GetPeriodicRSSI(unsigned long arg) s32 s32Error = 0; struct host_if_msg msg; - /* prepare the Get RSSI Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_RSSI; msg.drv = hif_drv; - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); @@ -5677,15 +4310,7 @@ void host_int_send_network_info_to_host (u8 *macStartAddress, u16 u16RxFrameLen, s8 s8Rssi) { } -/** - * @brief host_int_init - * @details host interface initialization function - * @param[in,out] handle to the wifi driver, - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ + static u32 clients_count; s32 host_int_init(struct host_if_drv **hif_drv_handler) @@ -5700,7 +4325,6 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) sema_init(&hWaitResponse, 0); - /*Allocate host interface private structure*/ hif_drv = kzalloc(sizeof(struct host_if_drv), GFP_KERNEL); if (!hif_drv) { result = -ENOMEM; @@ -5753,16 +4377,12 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) setup_timer(&hif_drv->hConnectTimer, TimerCB_Connect, 0); - /*Remain on channel timer*/ setup_timer(&hif_drv->hRemainOnChannel, ListenTimerCB, 0); sema_init(&(hif_drv->gtOsCfgValuesSem), 1); down(&hif_drv->gtOsCfgValuesSem); hif_drv->enuHostIFstate = HOST_IF_IDLE; - - /*Initialize CFG WIDS Defualt Values*/ - hif_drv->strCfgValues.site_survey_enabled = SITE_SURVEY_OFF; hif_drv->strCfgValues.scan_source = DEFAULT_SCAN; hif_drv->strCfgValues.active_scan_time = ACTIVE_SCAN_TIME; @@ -5779,7 +4399,7 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) up(&hif_drv->gtOsCfgValuesSem); - clients_count++; /* increase number of created entities */ + clients_count++; return result; @@ -5793,15 +4413,6 @@ _fail_mq_: _fail_: return result; } -/** - * @brief host_int_deinit - * @details host interface initialization function - * @param[in,out] handle to the wifi driver, - * @note - * @author zsalah - * @date 8 March 2012 - * @version 1.0 - */ s32 host_int_deinit(struct host_if_drv *hif_drv) { @@ -5809,8 +4420,6 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) struct host_if_msg msg; int ret; - /*obtain driver handle*/ - if (!hif_drv) { PRINT_ER("hif_drv = NULL\n"); return 0; @@ -5821,32 +4430,24 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) terminated_handle = hif_drv; PRINT_D(HOSTINF_DBG, "De-initializing host interface for client %d\n", clients_count); - /*Destroy all timers before acquiring hSemDeinitDrvHandle*/ - /*to guarantee handling all messages befor proceeding*/ if (del_timer_sync(&hif_drv->hScanTimer)) { PRINT_D(HOSTINF_DBG, ">> Scan timer is active\n"); - /* msleep(HOST_IF_SCAN_TIMEOUT+1000); */ } if (del_timer_sync(&hif_drv->hConnectTimer)) { PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); - /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } if (del_timer_sync(&g_hPeriodicRSSI)) { PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); - /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } - /*Destroy Remain-onchannel Timer*/ del_timer_sync(&hif_drv->hRemainOnChannel); host_int_set_wfi_drv_handler(NULL); down(&hSemDeinitDrvHandle); - - /*Calling the CFG80211 scan done function with the abort flag set to true*/ if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { hif_drv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_ABORTED, NULL, hif_drv->strWILC_UsrScanReq.u32UserScanPvoid, NULL); @@ -5863,7 +4464,6 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) if (clients_count == 1) { if (del_timer_sync(&g_hPeriodicRSSI)) { PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); - /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */ } msg.id = HOST_IF_MSG_EXIT; msg.drv = hif_drv; @@ -5880,32 +4480,18 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) down(&(hif_drv->gtOsCfgValuesSem)); - /*Setting the gloabl driver handler with NULL*/ - /* gWFiDrvHandle = NULL; */ ret = remove_handler_in_list(hif_drv); if (ret) s32Error = -ENOENT; kfree(hif_drv); - clients_count--; /* Decrease number of created entities */ + clients_count--; terminated_handle = NULL; up(&hSemHostIntDeinit); return s32Error; } - -/** - * @brief NetworkInfoReceived - * @details function to to be called when network info packet is received - * @param[in] pu8Buffer the received packet - * @param[in] u32Length length of the received packet - * @return none - * @note - * @author - * @date 1 Mar 2012 - * @version 1.0 - */ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; @@ -5924,34 +4510,21 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) return; } - /* prepare the Asynchronous Network Info message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_RCVD_NTWRK_INFO; msg.drv = hif_drv; msg.body.net_info.u32Length = u32Length; - msg.body.net_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ + msg.body.net_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); memcpy(msg.body.net_info.pu8Buffer, pu8Buffer, u32Length); - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending network info message queue message parameters: Error(%d)\n", s32Error); } -/** - * @brief GnrlAsyncInfoReceived - * @details function to be called when general Asynchronous info packet is received - * @param[in] pu8Buffer the received packet - * @param[in] u32Length length of the received packet - * @return none - * @note - * @author - * @date 15 Mar 2012 - * @version 1.0 - */ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; @@ -5973,13 +4546,11 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) } if (!hif_drv->strWILC_UsrConnReq.pfUserConnectResult) { - /* received mac status is not needed when there is no current Connect Request */ PRINT_ER("Received mac status is not needed when there is no current Connect Reques\n"); up(&hSemHostIntDeinit); return; } - /* prepare the General Asynchronous Info message */ memset(&msg, 0, sizeof(struct host_if_msg)); @@ -5988,11 +4559,10 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.body.async_info.u32Length = u32Length; - msg.body.async_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); /* will be deallocated by the receiving thread */ + msg.body.async_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); memcpy(msg.body.async_info.pu8Buffer, pu8Buffer, u32Length); - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); @@ -6000,15 +4570,6 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) up(&hSemHostIntDeinit); } -/** - * @brief host_int_ScanCompleteReceived - * @details Setting scan complete received notifcation in message queue - * @param[in] u8* pu8Buffer, u32 u32Length - * @return Error code. - * @author - * @date - * @version 1.0 - */ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) { s32 s32Error = 0; @@ -6025,24 +4586,12 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) if (!hif_drv || hif_drv == terminated_handle) return; - /*if there is an ongoing scan request*/ if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { - /* prepare theScan Done message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_RCVD_SCAN_COMPLETE; msg.drv = hif_drv; - - /* will be deallocated by the receiving thread */ - /*no need to send message body*/ - - /*msg.body.strScanComplete.u32Length = u32Length; - * msg.body.strScanComplete.pu8Buffer = (u8*)WILC_MALLOC(u32Length); - * memcpy(msg.body.strScanComplete.pu8Buffer, - * pu8Buffer, u32Length); */ - - /* send the message */ s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue scan complete parameters: Error(%d)\n", s32Error); @@ -6053,20 +4602,6 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) } -/** - * @brief host_int_remain_on_channel - * @details - * @param[in] Handle to wifi driver - * Duration to remain on channel - * Channel to remain on - * Pointer to fn to be called on receive frames in listen state - * Pointer to remain-on-channel expired fn - * Priv - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 host_int_remain_on_channel(struct host_if_drv *hif_drv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, @@ -6081,10 +4616,8 @@ s32 host_int_remain_on_channel(struct host_if_drv *hif_drv, u32 u32SessionID, return -EFAULT; } - /* prepare the remainonchan Message */ memset(&msg, 0, sizeof(struct host_if_msg)); - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_REMAIN_ON_CHAN; msg.body.remain_on_ch.u16Channel = chan; msg.body.remain_on_ch.pRemainOnChanExpired = RemainOnChanExpired; @@ -6101,20 +4634,6 @@ s32 host_int_remain_on_channel(struct host_if_drv *hif_drv, u32 u32SessionID, return s32Error; } -/** - * @brief host_int_ListenStateExpired - * @details - * @param[in] Handle to wifi driver - * Duration to remain on channel - * Channel to remain on - * Pointer to fn to be called on receive frames in listen state - * Pointer to remain-on-channel expired fn - * Priv - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 host_int_ListenStateExpired(struct host_if_drv *hif_drv, u32 u32SessionID) { s32 s32Error = 0; @@ -6125,10 +4644,8 @@ s32 host_int_ListenStateExpired(struct host_if_drv *hif_drv, u32 u32SessionID) return -EFAULT; } - /*Stopping remain-on-channel timer*/ del_timer(&hif_drv->hRemainOnChannel); - /* prepare the timer fire Message */ memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_LISTEN_TIMER_FIRED; msg.drv = hif_drv; @@ -6141,14 +4658,6 @@ s32 host_int_ListenStateExpired(struct host_if_drv *hif_drv, u32 u32SessionID) return s32Error; } -/** - * @brief host_int_frame_register - * @details - * @param[in] Handle to wifi driver - * @return Error code. - * @author - * @date - * @version 1.0*/ s32 host_int_frame_register(struct host_if_drv *hif_drv, u16 u16FrameType, bool bReg) { s32 s32Error = 0; @@ -6161,7 +4670,6 @@ s32 host_int_frame_register(struct host_if_drv *hif_drv, u16 u16FrameType, bool memset(&msg, 0, sizeof(struct host_if_msg)); - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_REGISTER_FRAME; switch (u16FrameType) { case ACTION: @@ -6191,17 +4699,6 @@ s32 host_int_frame_register(struct host_if_drv *hif_drv, u16 u16FrameType, bool } -/** - * @brief host_int_add_beacon - * @details Setting add beacon params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, u32 u32Interval, - * u32 u32DTIMPeriod,u32 u32HeadLen, u8* pu8Head, - * u32 u32TailLen, u8* pu8Tail - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, u32 u32DTIMPeriod, u32 u32HeadLen, u8 *pu8Head, u32 u32TailLen, u8 *pu8Tail) @@ -6219,8 +4716,6 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, PRINT_D(HOSTINF_DBG, "Setting adding beacon message queue params\n"); - - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_ADD_BEACON; msg.drv = hif_drv; pstrSetBeaconParam->u32Interval = u32Interval; @@ -6262,16 +4757,6 @@ ERRORHANDLER: } - -/** - * @brief host_int_del_beacon - * @details Setting add beacon params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 host_int_del_beacon(struct host_if_drv *hif_drv) { s32 s32Error = 0; @@ -6282,7 +4767,6 @@ s32 host_int_del_beacon(struct host_if_drv *hif_drv) return -EFAULT; } - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_BEACON; msg.drv = hif_drv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); @@ -6294,16 +4778,6 @@ s32 host_int_del_beacon(struct host_if_drv *hif_drv) return s32Error; } - -/** - * @brief host_int_add_station - * @details Setting add station params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, struct add_sta_param *pstrStaParams - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 host_int_add_station(struct host_if_drv *hif_drv, struct add_sta_param *pstrStaParams) { @@ -6321,8 +4795,6 @@ s32 host_int_add_station(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting adding station message queue params\n"); - - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_ADD_STATION; msg.drv = hif_drv; @@ -6344,15 +4816,6 @@ s32 host_int_add_station(struct host_if_drv *hif_drv, return s32Error; } -/** - * @brief host_int_del_station - * @details Setting delete station params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, u8* pu8MacAddr - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) { s32 s32Error = 0; @@ -6368,9 +4831,6 @@ s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) PRINT_D(HOSTINF_DBG, "Setting deleting station message queue params\n"); - - - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_STATION; msg.drv = hif_drv; @@ -6384,15 +4844,7 @@ s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) PRINT_ER("wilc_mq_send fail\n"); return s32Error; } -/** - * @brief host_int_del_allstation - * @details Setting del station params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]s - * @return Error code. - * @author - * @date - * @version 1.0 - */ + s32 host_int_del_allstation(struct host_if_drv *hif_drv, u8 pu8MacAddr[][ETH_ALEN]) { @@ -6413,11 +4865,9 @@ s32 host_int_del_allstation(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting deauthenticating station message queue params\n"); - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_ALL_STA; msg.drv = hif_drv; - /* Handling situation of deauthenticing all associated stations*/ for (i = 0; i < MAX_NUM_STA; i++) { if (memcmp(pu8MacAddr[i], au8Zero_Buff, ETH_ALEN)) { memcpy(pstrDelAllStationMsg->au8Sta_DelAllSta[i], pu8MacAddr[i], ETH_ALEN); @@ -6444,15 +4894,6 @@ s32 host_int_del_allstation(struct host_if_drv *hif_drv, } -/** - * @brief host_int_edit_station - * @details Setting edit station params in message queue - * @param[in] WILC_WFIDrvHandle hWFIDrv, struct add_sta_param *pstrStaParams - * @return Error code. - * @author - * @date - * @version 1.0 - */ s32 host_int_edit_station(struct host_if_drv *hif_drv, struct add_sta_param *pstrStaParams) { @@ -6469,8 +4910,6 @@ s32 host_int_edit_station(struct host_if_drv *hif_drv, memset(&msg, 0, sizeof(struct host_if_msg)); - - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_EDIT_STATION; msg.drv = hif_drv; @@ -6511,8 +4950,6 @@ s32 host_int_set_power_mgmt(struct host_if_drv *hif_drv, memset(&msg, 0, sizeof(struct host_if_msg)); - - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_POWER_MGMT; msg.drv = hif_drv; @@ -6544,8 +4981,6 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hif_drv, memset(&msg, 0, sizeof(struct host_if_msg)); - - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_SET_MULTICAST_FILTER; msg.drv = hif_drv; @@ -6558,14 +4993,6 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hif_drv, return s32Error; } -/** - * @brief host_int_ParseJoinBssParam - * @details Parse Needed Join Parameters and save it in a new JoinBssParam entry - * @param[in] tstrNetworkInfo* ptstrNetworkInfo - * @return - * @author zsalah - * @date - * @version 1.0**/ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) { struct join_bss_param *pNewJoinBssParam = NULL; @@ -6591,88 +5018,66 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pNewJoinBssParam->beacon_period = ptstrNetworkInfo->u16BeaconPeriod; pNewJoinBssParam->cap_info = ptstrNetworkInfo->u16CapInfo; memcpy(pNewJoinBssParam->au8bssid, ptstrNetworkInfo->au8bssid, 6); - /*for(i=0; i<6;i++) - * PRINT_D(HOSTINF_DBG,"%c",pNewJoinBssParam->au8bssid[i]);*/ memcpy((u8 *)pNewJoinBssParam->ssid, ptstrNetworkInfo->au8ssid, ptstrNetworkInfo->u8SsidLen + 1); pNewJoinBssParam->ssidLen = ptstrNetworkInfo->u8SsidLen; memset(pNewJoinBssParam->rsn_pcip_policy, 0xFF, 3); memset(pNewJoinBssParam->rsn_auth_policy, 0xFF, 3); - /*for(i=0; issidLen;i++) - * PRINT_D(HOSTINF_DBG,"%c",pNewJoinBssParam->ssid[i]);*/ - /* parse supported rates: */ while (index < u16IEsLen) { - /* supportedRates IE */ if (pu8IEs[index] == SUPP_RATES_IE) { - /* PRINT_D(HOSTINF_DBG, "Supported Rates\n"); */ suppRatesNo = pu8IEs[index + 1]; pNewJoinBssParam->supp_rates[0] = suppRatesNo; - index += 2; /* skipping ID and length bytes; */ + index += 2; for (i = 0; i < suppRatesNo; i++) { pNewJoinBssParam->supp_rates[i + 1] = pu8IEs[index + i]; - /* PRINT_D(HOSTINF_DBG,"%0x ",pNewJoinBssParam->supp_rates[i+1]); */ } index += suppRatesNo; continue; - } - /* Ext SupportedRates IE */ - else if (pu8IEs[index] == EXT_SUPP_RATES_IE) { - /* PRINT_D(HOSTINF_DBG, "Extended Supported Rates\n"); */ - /* checking if no of ext. supp and supp rates < max limit */ + } else if (pu8IEs[index] == EXT_SUPP_RATES_IE) { extSuppRatesNo = pu8IEs[index + 1]; if (extSuppRatesNo > (MAX_RATES_SUPPORTED - suppRatesNo)) pNewJoinBssParam->supp_rates[0] = MAX_RATES_SUPPORTED; else pNewJoinBssParam->supp_rates[0] += extSuppRatesNo; index += 2; - /* pNewJoinBssParam.supp_rates[0] contains now old number not the ext. no */ for (i = 0; i < (pNewJoinBssParam->supp_rates[0] - suppRatesNo); i++) { pNewJoinBssParam->supp_rates[suppRatesNo + i + 1] = pu8IEs[index + i]; - /* PRINT_D(HOSTINF_DBG,"%0x ",pNewJoinBssParam->supp_rates[suppRatesNo+i+1]); */ } index += extSuppRatesNo; continue; - } - /* HT Cap. IE */ - else if (pu8IEs[index] == HT_CAPABILITY_IE) { - /* if IE found set the flag */ + } else if (pu8IEs[index] == HT_CAPABILITY_IE) { pNewJoinBssParam->ht_capable = true; - index += pu8IEs[index + 1] + 2; /* ID,Length bytes and IE body */ - /* PRINT_D(HOSTINF_DBG,"HT_CAPABALE\n"); */ + index += pu8IEs[index + 1] + 2; continue; - } else if ((pu8IEs[index] == WMM_IE) && /* WMM Element ID */ + } else if ((pu8IEs[index] == WMM_IE) && (pu8IEs[index + 2] == 0x00) && (pu8IEs[index + 3] == 0x50) && - (pu8IEs[index + 4] == 0xF2) && /* OUI */ - (pu8IEs[index + 5] == 0x02) && /* OUI Type */ - ((pu8IEs[index + 6] == 0x00) || (pu8IEs[index + 6] == 0x01)) && /* OUI Sub Type */ + (pu8IEs[index + 4] == 0xF2) && + (pu8IEs[index + 5] == 0x02) && + ((pu8IEs[index + 6] == 0x00) || (pu8IEs[index + 6] == 0x01)) && (pu8IEs[index + 7] == 0x01)) { - /* Presence of WMM Info/Param element indicates WMM capability */ pNewJoinBssParam->wmm_cap = true; - /* Check if Bit 7 is set indicating U-APSD capability */ if (pu8IEs[index + 8] & BIT(7)) pNewJoinBssParam->uapsd_cap = true; index += pu8IEs[index + 1] + 2; continue; - } - else if ((pu8IEs[index] == P2P_IE) && /* P2P Element ID */ + } else if ((pu8IEs[index] == P2P_IE) && (pu8IEs[index + 2] == 0x50) && (pu8IEs[index + 3] == 0x6f) && - (pu8IEs[index + 4] == 0x9a) && /* OUI */ - (pu8IEs[index + 5] == 0x09) && (pu8IEs[index + 6] == 0x0c)) { /* OUI Type */ + (pu8IEs[index + 4] == 0x9a) && + (pu8IEs[index + 5] == 0x09) && (pu8IEs[index + 6] == 0x0c)) { u16 u16P2P_count; pNewJoinBssParam->tsf = ptstrNetworkInfo->u32Tsf; pNewJoinBssParam->u8NoaEnbaled = 1; pNewJoinBssParam->u8Index = pu8IEs[index + 9]; - /* Check if Bit 7 is set indicating Opss capability */ if (pu8IEs[index + 10] & BIT(7)) { pNewJoinBssParam->u8OppEnable = 1; pNewJoinBssParam->u8CtWindow = pu8IEs[index + 10]; } else pNewJoinBssParam->u8OppEnable = 0; - /* HOSTINF_DBG */ + PRINT_D(GENERIC_DBG, "P2P Dump\n"); for (i = 0; i < pu8IEs[index + 7]; i++) PRINT_D(GENERIC_DBG, " %x\n", pu8IEs[index + 9 + i]); @@ -6691,73 +5096,54 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) index += pu8IEs[index + 1] + 2; continue; - } - else if ((pu8IEs[index] == RSN_IE) || + } else if ((pu8IEs[index] == RSN_IE) || ((pu8IEs[index] == WPA_IE) && (pu8IEs[index + 2] == 0x00) && (pu8IEs[index + 3] == 0x50) && (pu8IEs[index + 4] == 0xF2) && (pu8IEs[index + 5] == 0x01))) { u16 rsnIndex = index; - /*PRINT_D(HOSTINF_DBG,"RSN IE Length:%d\n",pu8IEs[rsnIndex+1]); - * for(i=0; imode_802_11i = 2; - /* PRINT_D(HOSTINF_DBG,"\nRSN_IE\n"); */ - } else { /* check if rsn was previously parsed */ + } else { if (pNewJoinBssParam->mode_802_11i == 0) pNewJoinBssParam->mode_802_11i = 1; - /* PRINT_D(HOSTINF_DBG,"\nWPA_IE\n"); */ rsnIndex += 4; } - rsnIndex += 7; /* skipping id, length, version(2B) and first 3 bytes of gcipher */ + + rsnIndex += 7; pNewJoinBssParam->rsn_grp_policy = pu8IEs[rsnIndex]; rsnIndex++; - /* PRINT_D(HOSTINF_DBG,"Group Policy: %0x\n",pNewJoinBssParam->rsn_grp_policy); */ - /* initialize policies with invalid values */ - - jumpOffset = pu8IEs[rsnIndex] * 4; /* total no.of bytes of pcipher field (count*4) */ - - /*parsing pairwise cipher*/ - - /* saving 3 pcipher max. */ + jumpOffset = pu8IEs[rsnIndex] * 4; pcipherCount = (pu8IEs[rsnIndex] > 3) ? 3 : pu8IEs[rsnIndex]; - rsnIndex += 2; /* jump 2 bytes of pcipher count */ + rsnIndex += 2; - /* PRINT_D(HOSTINF_DBG,"\npcipher:%d\n",pcipherCount); */ for (i = pcipherTotalCount, j = 0; i < pcipherCount + pcipherTotalCount && i < 3; i++, j++) { - /* each count corresponds to 4 bytes, only last byte is saved */ pNewJoinBssParam->rsn_pcip_policy[i] = pu8IEs[rsnIndex + ((j + 1) * 4) - 1]; - /* PRINT_D(HOSTINF_DBG,"PAIR policy = [%0x,%0x]\n",pNewJoinBssParam->rsn_pcip_policy[i],i); */ } pcipherTotalCount += pcipherCount; rsnIndex += jumpOffset; jumpOffset = pu8IEs[rsnIndex] * 4; - /*parsing AKM suite (auth_policy)*/ - /* saving 3 auth policies max. */ authCount = (pu8IEs[rsnIndex] > 3) ? 3 : pu8IEs[rsnIndex]; - rsnIndex += 2; /* jump 2 bytes of pcipher count */ + rsnIndex += 2; for (i = authTotalCount, j = 0; i < authTotalCount + authCount; i++, j++) { - /* each count corresponds to 4 bytes, only last byte is saved */ pNewJoinBssParam->rsn_auth_policy[i] = pu8IEs[rsnIndex + ((j + 1) * 4) - 1]; } authTotalCount += authCount; rsnIndex += jumpOffset; - /*pasring rsn cap. only if rsn IE*/ + if (pu8IEs[index] == RSN_IE) { pNewJoinBssParam->rsn_cap[0] = pu8IEs[rsnIndex]; pNewJoinBssParam->rsn_cap[1] = pu8IEs[rsnIndex + 1]; rsnIndex += 2; } pNewJoinBssParam->rsn_found = true; - index += pu8IEs[index + 1] + 2; /* ID,Length bytes and IE body */ + index += pu8IEs[index + 1] + 2; continue; } else - index += pu8IEs[index + 1] + 2; /* ID,Length bytes and IE body */ + index += pu8IEs[index + 1] + 2; } @@ -6789,7 +5175,6 @@ s32 host_int_delBASession(struct host_if_drv *hif_drv, char *pBSSID, char TID) memset(&msg, 0, sizeof(struct host_if_msg)); - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_BA_SESSION; memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); @@ -6820,7 +5205,6 @@ s32 host_int_del_All_Rx_BASession(struct host_if_drv *hif_drv, memset(&msg, 0, sizeof(struct host_if_msg)); - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_DEL_ALL_RX_BA_SESSIONS; memcpy(pBASessionInfo->au8Bssid, pBSSID, ETH_ALEN); @@ -6836,20 +5220,11 @@ s32 host_int_del_All_Rx_BASession(struct host_if_drv *hif_drv, return s32Error; } -/** - * @brief host_int_setup_ipaddress - * @details setup IP in firmware - * @param[in] Handle to wifi driver - * @return Error code. - * @author Abdelrahman Sobhy - * @date - * @version 1.0*/ s32 host_int_setup_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; struct host_if_msg msg; - /* TODO: Enable This feature on softap firmware */ return 0; if (!hif_drv) { @@ -6859,7 +5234,6 @@ s32 host_int_setup_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) memset(&msg, 0, sizeof(struct host_if_msg)); - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_SET_IPADDRESS; msg.body.ip_info.au8IPAddr = u16ipadd; @@ -6875,14 +5249,6 @@ s32 host_int_setup_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) } -/** - * @brief host_int_get_ipaddress - * @details Get IP from firmware - * @param[in] Handle to wifi driver - * @return Error code. - * @author Abdelrahman Sobhy - * @date - * @version 1.0*/ s32 host_int_get_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) { s32 s32Error = 0; @@ -6895,7 +5261,6 @@ s32 host_int_get_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) memset(&msg, 0, sizeof(struct host_if_msg)); - /* prepare the WiphyParams Message */ msg.id = HOST_IF_MSG_GET_IPADDRESS; msg.body.ip_info.au8IPAddr = u16ipadd; From 8e9f427a3e93a1223d0a065c6f9376cda2fd32d6 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:27 +0900 Subject: [PATCH 1634/2431] staging: wilc1000: rename enuKeyType of struct key_attr This patch renames enuKeyType of struct key_attr to type to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 15b277031393..aeb28a1d9137 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -90,7 +90,7 @@ union host_if_key_attr { }; struct key_attr { - enum KEY_TYPE enuKeyType; + enum KEY_TYPE type; u8 u8KeyAction; union host_if_key_attr uniHostIFkeyAttr; }; @@ -1778,7 +1778,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, s8 s8idxarray[1]; s8 ret = 0; - switch (pstrHostIFkeyAttr->enuKeyType) { + switch (pstrHostIFkeyAttr->type) { case WEP: @@ -3210,7 +3210,7 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_KEY; - msg.body.key_info.enuKeyType = WEP; + msg.body.key_info.type = WEP; msg.body.key_info.u8KeyAction = REMOVEKEY; msg.drv = hif_drv; msg.body.key_info.uniHostIFkeyAttr.wep.index = index; @@ -3239,7 +3239,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) msg.id = HOST_IF_MSG_KEY; - msg.body.key_info.enuKeyType = WEP; + msg.body.key_info.type = WEP; msg.body.key_info.u8KeyAction = DEFAULTKEY; msg.drv = hif_drv; @@ -3273,7 +3273,7 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.id = HOST_IF_MSG_KEY; - msg.body.key_info.enuKeyType = WEP; + msg.body.key_info.type = WEP; msg.body.key_info.u8KeyAction = ADDKEY; msg.drv = hif_drv; @@ -3323,7 +3323,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, PRINT_INFO(HOSTAPD_DBG, "KEY is %x\n", pu8WepKey[i]); } msg.id = HOST_IF_MSG_KEY; - msg.body.key_info.enuKeyType = WEP; + msg.body.key_info.type = WEP; msg.body.key_info.u8KeyAction = ADDKEY_AP; msg.drv = hif_drv; @@ -3378,7 +3378,7 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.id = HOST_IF_MSG_KEY; - msg.body.key_info.enuKeyType = WPAPtk; + msg.body.key_info.type = WPAPtk; if (mode == AP_MODE) { msg.body.key_info.u8KeyAction = ADDKEY_AP; msg.body.key_info.uniHostIFkeyAttr.wpa.u8keyidx = u8Idx; @@ -3461,7 +3461,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, msg.id = HOST_IF_MSG_KEY; - msg.body.key_info.enuKeyType = WPARxGtk; + msg.body.key_info.type = WPARxGtk; msg.drv = hif_drv; if (mode == AP_MODE) { @@ -3521,7 +3521,7 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_KEY; - msg.body.key_info.enuKeyType = PMKSA; + msg.body.key_info.type = PMKSA; msg.body.key_info.u8KeyAction = ADDKEY; msg.drv = hif_drv; From 0d17e38201ece45e3e6ffaf4e89ae30c1ffd604a Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:28 +0900 Subject: [PATCH 1635/2431] staging: wilc1000: rename u8KeyAction of struct key_attr This patch renames u8KeyAction of struct key_attr to action to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 34 +++++++++++------------ 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index aeb28a1d9137..203f870af2d0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -91,7 +91,7 @@ union host_if_key_attr { struct key_attr { enum KEY_TYPE type; - u8 u8KeyAction; + u8 action; union host_if_key_attr uniHostIFkeyAttr; }; @@ -1783,7 +1783,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, case WEP: - if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { + if (pstrHostIFkeyAttr->action & ADDKEY_AP) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index)); @@ -1831,7 +1831,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, } - if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { + if (pstrHostIFkeyAttr->action & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len + 2, GFP_KERNEL); if (pu8keybuf == NULL) { @@ -1855,7 +1855,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); kfree(pu8keybuf); - } else if (pstrHostIFkeyAttr->u8KeyAction & REMOVEKEY) { + } else if (pstrHostIFkeyAttr->action & REMOVEKEY) { PRINT_D(HOSTINF_DBG, "Removing key\n"); strWID.id = (u16)WID_REMOVE_WEP_KEY; @@ -1882,7 +1882,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, break; case WPARxGtk: - if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { + if (pstrHostIFkeyAttr->action & ADDKEY_AP) { pu8keybuf = kmalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send RxGTK Key\n"); @@ -1919,7 +1919,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, up(&hif_drv->hSemTestKeyBlock); } - if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { + if (pstrHostIFkeyAttr->action & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling group key(Rx) function\n"); pu8keybuf = kmalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); @@ -1964,7 +1964,7 @@ _WPARxGtk_end_case_: break; case WPAPtk: - if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY_AP) { + if (pstrHostIFkeyAttr->action & ADDKEY_AP) { pu8keybuf = kmalloc(PTK_KEY_MSG_LEN + 1, GFP_KERNEL); @@ -2000,7 +2000,7 @@ _WPARxGtk_end_case_: kfree(pu8keybuf); up(&hif_drv->hSemTestKeyBlock); } - if (pstrHostIFkeyAttr->u8KeyAction & ADDKEY) { + if (pstrHostIFkeyAttr->action & ADDKEY) { pu8keybuf = kmalloc(PTK_KEY_MSG_LEN, GFP_KERNEL); @@ -3211,7 +3211,7 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) msg.id = HOST_IF_MSG_KEY; msg.body.key_info.type = WEP; - msg.body.key_info.u8KeyAction = REMOVEKEY; + msg.body.key_info.action = REMOVEKEY; msg.drv = hif_drv; msg.body.key_info.uniHostIFkeyAttr.wep.index = index; @@ -3240,7 +3240,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) msg.id = HOST_IF_MSG_KEY; msg.body.key_info.type = WEP; - msg.body.key_info.u8KeyAction = DEFAULTKEY; + msg.body.key_info.action = DEFAULTKEY; msg.drv = hif_drv; @@ -3274,7 +3274,7 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.id = HOST_IF_MSG_KEY; msg.body.key_info.type = WEP; - msg.body.key_info.u8KeyAction = ADDKEY; + msg.body.key_info.action = ADDKEY; msg.drv = hif_drv; @@ -3324,7 +3324,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, } msg.id = HOST_IF_MSG_KEY; msg.body.key_info.type = WEP; - msg.body.key_info.u8KeyAction = ADDKEY_AP; + msg.body.key_info.action = ADDKEY_AP; msg.drv = hif_drv; @@ -3380,11 +3380,11 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.id = HOST_IF_MSG_KEY; msg.body.key_info.type = WPAPtk; if (mode == AP_MODE) { - msg.body.key_info.u8KeyAction = ADDKEY_AP; + msg.body.key_info.action = ADDKEY_AP; msg.body.key_info.uniHostIFkeyAttr.wpa.u8keyidx = u8Idx; } if (mode == STATION_MODE) - msg.body.key_info.u8KeyAction = ADDKEY; + msg.body.key_info.action = ADDKEY; msg.body.key_info. @@ -3465,11 +3465,11 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, msg.drv = hif_drv; if (mode == AP_MODE) { - msg.body.key_info.u8KeyAction = ADDKEY_AP; + msg.body.key_info.action = ADDKEY_AP; msg.body.key_info.uniHostIFkeyAttr.wpa.u8Ciphermode = u8Ciphermode; } if (mode == STATION_MODE) - msg.body.key_info.u8KeyAction = ADDKEY; + msg.body.key_info.action = ADDKEY; msg.body.key_info. @@ -3522,7 +3522,7 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at msg.id = HOST_IF_MSG_KEY; msg.body.key_info.type = PMKSA; - msg.body.key_info.u8KeyAction = ADDKEY; + msg.body.key_info.action = ADDKEY; msg.drv = hif_drv; for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { From 73b2e381d2ee8a8e33c41fcdeb291f3c6b79abba Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:29 +0900 Subject: [PATCH 1636/2431] staging: wilc1000: rename uniHostIFkeyAttr of struct key_attr This patch renames uniHostIFkeyAttr of struct key_attr to attr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 217 ++++++++-------------- 1 file changed, 82 insertions(+), 135 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 203f870af2d0..9fe4ea9d691c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -92,7 +92,7 @@ union host_if_key_attr { struct key_attr { enum KEY_TYPE type; u8 action; - union host_if_key_attr uniHostIFkeyAttr; + union host_if_key_attr attr; }; struct scan_attr { @@ -1786,41 +1786,38 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->action & ADDKEY_AP) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); - PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index)); + PRINT_D(GENERIC_DBG, "ID Hostint is %d\n", (pstrHostIFkeyAttr->attr.wep.index)); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.mode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wep.mode)); strWIDList[1].id = WID_AUTH_TYPE; strWIDList[1].type = WID_CHAR; strWIDList[1].size = sizeof(char); - strWIDList[1].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.auth_type)); + strWIDList[1].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wep.auth_type)); strWIDList[2].id = (u16)WID_KEY_ID; strWIDList[2].type = WID_CHAR; - strWIDList[2].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index)); + strWIDList[2].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wep.index)); strWIDList[2].size = sizeof(char); - - pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len, GFP_KERNEL); - + pu8keybuf = kmalloc(pstrHostIFkeyAttr->attr.wep.key_len, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send Key\n"); return -1; } - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len); + memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wep.key, + pstrHostIFkeyAttr->attr.wep.key_len); - - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key); + kfree(pstrHostIFkeyAttr->attr.wep.key); strWIDList[3].id = (u16)WID_WEP_KEY_VALUE; strWIDList[3].type = WID_STR; - strWIDList[3].size = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len; + strWIDList[3].size = pstrHostIFkeyAttr->attr.wep.key_len; strWIDList[3].val = (s8 *)pu8keybuf; @@ -1833,24 +1830,21 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->action & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); - pu8keybuf = kmalloc(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len + 2, GFP_KERNEL); + pu8keybuf = kmalloc(pstrHostIFkeyAttr->attr.wep.key_len + 2, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send Key\n"); return -1; } - pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index; - - memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len, 1); - - memcpy(pu8keybuf + 2, pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len); - - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key); + pu8keybuf[0] = pstrHostIFkeyAttr->attr.wep.index; + memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->attr.wep.key_len, 1); + memcpy(pu8keybuf + 2, pstrHostIFkeyAttr->attr.wep.key, + pstrHostIFkeyAttr->attr.wep.key_len); + kfree(pstrHostIFkeyAttr->attr.wep.key); strWID.id = (u16)WID_ADD_WEP_KEY; strWID.type = WID_STR; strWID.val = (s8 *)pu8keybuf; - strWID.size = pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.key_len + 2; + strWID.size = pstrHostIFkeyAttr->attr.wep.key_len + 2; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -1861,7 +1855,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.id = (u16)WID_REMOVE_WEP_KEY; strWID.type = WID_STR; - s8idxarray[0] = (s8)pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index; + s8idxarray[0] = (s8)pstrHostIFkeyAttr->attr.wep.index; strWID.val = s8idxarray; strWID.size = 1; @@ -1870,7 +1864,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, } else { strWID.id = (u16)WID_KEY_ID; strWID.type = WID_CHAR; - strWID.val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wep.index)); + strWID.val = (s8 *)(&(pstrHostIFkeyAttr->attr.wep.index)); strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting default key index\n"); @@ -1892,20 +1886,18 @@ static int Handle_Key(struct host_if_drv *hif_drv, memset(pu8keybuf, 0, RX_MIC_KEY_MSG_LEN); - if (pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq != NULL) - memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq, 8); + if (pstrHostIFkeyAttr->attr.wpa.pu8seq != NULL) + memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.pu8seq, 8); + memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); + memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.pu8key, + pstrHostIFkeyAttr->attr.wpa.u8Keylen); - memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8keyidx, 1); - - memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); - - memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Ciphermode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wpa.u8Ciphermode)); strWIDList[1].id = (u16)WID_ADD_RX_GTK; strWIDList[1].type = WID_STR; @@ -1936,13 +1928,11 @@ static int Handle_Key(struct host_if_drv *hif_drv, else PRINT_ER("Couldn't handle WPARxGtk while enuHostIFstate is not HOST_IF_CONNECTED\n"); - memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq, 8); - - memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8keyidx, 1); - - memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); - memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); + memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.pu8seq, 8); + memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); + memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.pu8key, + pstrHostIFkeyAttr->attr.wpa.u8Keylen); strWID.id = (u16)WID_ADD_RX_GTK; strWID.type = WID_STR; @@ -1956,8 +1946,8 @@ static int Handle_Key(struct host_if_drv *hif_drv, up(&hif_drv->hSemTestKeyBlock); } _WPARxGtk_end_case_: - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key); - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8seq); + kfree(pstrHostIFkeyAttr->attr.wpa.pu8key); + kfree(pstrHostIFkeyAttr->attr.wpa.pu8seq); if (ret == -1) return ret; @@ -1978,17 +1968,16 @@ _WPARxGtk_end_case_: } - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8macaddr, 6); - memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8keyidx, 1); - memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); - memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); - + memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.pu8macaddr, 6); + memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); + memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->attr.wpa.pu8key, + pstrHostIFkeyAttr->attr.wpa.u8Keylen); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Ciphermode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wpa.u8Ciphermode)); strWIDList[1].id = (u16)WID_ADD_PTK; strWIDList[1].type = WID_STR; @@ -2014,11 +2003,10 @@ _WPARxGtk_end_case_: } - memcpy(pu8keybuf, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8macaddr, 6); - memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen, 1); - memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key, - pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.u8Keylen); - + memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.pu8macaddr, 6); + memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->attr.wpa.pu8key, + pstrHostIFkeyAttr->attr.wpa.u8Keylen); strWID.id = (u16)WID_ADD_PTK; strWID.type = WID_STR; @@ -2032,7 +2020,7 @@ _WPARxGtk_end_case_: } _WPAPtk_end_case_: - kfree(pstrHostIFkeyAttr->uniHostIFkeyAttr.wpa.pu8key); + kfree(pstrHostIFkeyAttr->attr.wpa.pu8key); if (ret == -1) return ret; @@ -2043,24 +2031,23 @@ _WPAPtk_end_case_: PRINT_D(HOSTINF_DBG, "Handling PMKSA key\n"); - pu8keybuf = kmalloc((pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1, GFP_KERNEL); + pu8keybuf = kmalloc((pstrHostIFkeyAttr->attr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send PMKSA Key\n"); return -1; } - pu8keybuf[0] = pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.numpmkid; + pu8keybuf[0] = pstrHostIFkeyAttr->attr.pmkid.numpmkid; - for (i = 0; i < pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.numpmkid; i++) { - - memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + 1), pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.pmkidlist[i].bssid, ETH_ALEN); - memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + ETH_ALEN + 1), pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.pmkidlist[i].pmkid, PMKID_LEN); + for (i = 0; i < pstrHostIFkeyAttr->attr.pmkid.numpmkid; i++) { + memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + 1), pstrHostIFkeyAttr->attr.pmkid.pmkidlist[i].bssid, ETH_ALEN); + memcpy(pu8keybuf + ((PMKSA_KEY_LEN * i) + ETH_ALEN + 1), pstrHostIFkeyAttr->attr.pmkid.pmkidlist[i].pmkid, PMKID_LEN); } strWID.id = (u16)WID_PMKID_INFO; strWID.type = WID_STR; strWID.val = (s8 *)pu8keybuf; - strWID.size = (pstrHostIFkeyAttr->uniHostIFkeyAttr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1; + strWID.size = (pstrHostIFkeyAttr->attr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -3213,7 +3200,7 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) msg.body.key_info.type = WEP; msg.body.key_info.action = REMOVEKEY; msg.drv = hif_drv; - msg.body.key_info.uniHostIFkeyAttr.wep.index = index; + msg.body.key_info.attr.wep.index = index; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (result) @@ -3242,9 +3229,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) msg.body.key_info.type = WEP; msg.body.key_info.action = DEFAULTKEY; msg.drv = hif_drv; - - - msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Index; + msg.body.key_info.attr.wep.index = u8Index; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -3276,18 +3261,10 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.body.key_info.type = WEP; msg.body.key_info.action = ADDKEY; msg.drv = hif_drv; - - - msg.body.key_info. - uniHostIFkeyAttr.wep.key = kmalloc(u8WepKeylen, GFP_KERNEL); - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wep.key, - pu8WepKey, u8WepKeylen); - - - msg.body.key_info.uniHostIFkeyAttr.wep.key_len = (u8WepKeylen); - - msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Keyidx; + msg.body.key_info.attr.wep.key = kmalloc(u8WepKeylen, GFP_KERNEL); + memcpy(msg.body.key_info.attr.wep.key, pu8WepKey, u8WepKeylen); + msg.body.key_info.attr.wep.key_len = (u8WepKeylen); + msg.body.key_info.attr.wep.index = u8Keyidx; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -3326,23 +3303,12 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info.type = WEP; msg.body.key_info.action = ADDKEY_AP; msg.drv = hif_drv; - - - msg.body.key_info. - uniHostIFkeyAttr.wep.key = kmalloc(u8WepKeylen, GFP_KERNEL); - - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wep.key, - pu8WepKey, (u8WepKeylen)); - - - msg.body.key_info.uniHostIFkeyAttr.wep.key_len = (u8WepKeylen); - - msg.body.key_info.uniHostIFkeyAttr.wep.index = u8Keyidx; - - msg.body.key_info.uniHostIFkeyAttr.wep.mode = u8mode; - - msg.body.key_info.uniHostIFkeyAttr.wep.auth_type = tenuAuth_type; + msg.body.key_info.attr.wep.key = kmalloc(u8WepKeylen, GFP_KERNEL); + memcpy(msg.body.key_info.attr.wep.key, pu8WepKey, (u8WepKeylen)); + msg.body.key_info.attr.wep.key_len = (u8WepKeylen); + msg.body.key_info.attr.wep.index = u8Keyidx; + msg.body.key_info.attr.wep.mode = u8mode; + msg.body.key_info.attr.wep.auth_type = tenuAuth_type; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -3381,22 +3347,16 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.body.key_info.type = WPAPtk; if (mode == AP_MODE) { msg.body.key_info.action = ADDKEY_AP; - msg.body.key_info.uniHostIFkeyAttr.wpa.u8keyidx = u8Idx; + msg.body.key_info.attr.wpa.u8keyidx = u8Idx; } if (mode == STATION_MODE) msg.body.key_info.action = ADDKEY; - - msg.body.key_info. - uniHostIFkeyAttr.wpa.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); - - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key, - pu8Ptk, u8PtkKeylen); + msg.body.key_info.attr.wpa.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); + memcpy(msg.body.key_info.attr.wpa.pu8key, pu8Ptk, u8PtkKeylen); if (pu8RxMic != NULL) { - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key + 16, + memcpy(msg.body.key_info.attr.wpa.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < RX_MIC_KEY_LEN; i++) @@ -3404,8 +3364,7 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, } } if (pu8TxMic != NULL) { - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key + 24, + memcpy(msg.body.key_info.attr.wpa.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < TX_MIC_KEY_LEN; i++) @@ -3413,10 +3372,9 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, } } - msg.body.key_info.uniHostIFkeyAttr.wpa.u8Keylen = u8KeyLen; - - msg.body.key_info.uniHostIFkeyAttr.wpa.u8Ciphermode = u8Ciphermode; - msg.body.key_info.uniHostIFkeyAttr.wpa.pu8macaddr = mac_addr; + msg.body.key_info.attr.wpa.u8Keylen = u8KeyLen; + msg.body.key_info.attr.wpa.u8Ciphermode = u8Ciphermode; + msg.body.key_info.attr.wpa.pu8macaddr = mac_addr; msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -3453,10 +3411,8 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, u8KeyLen += TX_MIC_KEY_LEN; if (KeyRSC != NULL) { msg.body.key_info. - uniHostIFkeyAttr.wpa.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8seq, - KeyRSC, u32KeyRSClen); + attr.wpa.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); + memcpy(msg.body.key_info.attr.wpa.pu8seq,KeyRSC, u32KeyRSClen); } @@ -3466,35 +3422,28 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, if (mode == AP_MODE) { msg.body.key_info.action = ADDKEY_AP; - msg.body.key_info.uniHostIFkeyAttr.wpa.u8Ciphermode = u8Ciphermode; + msg.body.key_info.attr.wpa.u8Ciphermode = u8Ciphermode; } if (mode == STATION_MODE) msg.body.key_info.action = ADDKEY; + msg.body.key_info.attr.wpa.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); - msg.body.key_info. - uniHostIFkeyAttr.wpa.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key, + memcpy(msg.body.key_info.attr.wpa.pu8key, pu8RxGtk, u8GtkKeylen); if (pu8RxMic != NULL) { - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key + 16, + memcpy(msg.body.key_info.attr.wpa.pu8key + 16, pu8RxMic, RX_MIC_KEY_LEN); - } if (pu8TxMic != NULL) { - - memcpy(msg.body.key_info.uniHostIFkeyAttr.wpa.pu8key + 24, + memcpy(msg.body.key_info.attr.wpa.pu8key + 24, pu8TxMic, TX_MIC_KEY_LEN); - } - msg.body.key_info.uniHostIFkeyAttr.wpa.u8keyidx = u8KeyIdx; - msg.body.key_info.uniHostIFkeyAttr.wpa.u8Keylen = u8KeyLen; - - msg.body.key_info.uniHostIFkeyAttr.wpa.u8seqlen = u32KeyRSClen; + msg.body.key_info.attr.wpa.u8keyidx = u8KeyIdx; + msg.body.key_info.attr.wpa.u8Keylen = u8KeyLen; + msg.body.key_info.attr.wpa.u8seqlen = u32KeyRSClen; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) @@ -3526,11 +3475,9 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at msg.drv = hif_drv; for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { - - memcpy(msg.body.key_info.uniHostIFkeyAttr.pmkid.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, + memcpy(msg.body.key_info.attr.pmkid.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, ETH_ALEN); - - memcpy(msg.body.key_info.uniHostIFkeyAttr.pmkid.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, + memcpy(msg.body.key_info.attr.pmkid.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, PMKID_LEN); } From 124968fcc0ef7690d80a70ca0051f583b09ea3ff Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:30 +0900 Subject: [PATCH 1637/2431] staging: wilc1000: rename pu8key of struct host_if_wpa_attr This patch renames pu8key of struct host_if_wpa_attr to key to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 36 ++++++++++------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9fe4ea9d691c..18a27230bf66 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -66,7 +66,7 @@ struct cfg_param_attr { }; struct host_if_wpa_attr { - u8 *pu8key; + u8 *key; const u8 *pu8macaddr; u8 *pu8seq; u8 u8seqlen; @@ -1891,7 +1891,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); - memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.pu8key, + memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, pstrHostIFkeyAttr->attr.wpa.u8Keylen); strWIDList[0].id = (u16)WID_11I_MODE; @@ -1931,7 +1931,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.pu8seq, 8); memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); - memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.pu8key, + memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, pstrHostIFkeyAttr->attr.wpa.u8Keylen); strWID.id = (u16)WID_ADD_RX_GTK; @@ -1946,7 +1946,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, up(&hif_drv->hSemTestKeyBlock); } _WPARxGtk_end_case_: - kfree(pstrHostIFkeyAttr->attr.wpa.pu8key); + kfree(pstrHostIFkeyAttr->attr.wpa.key); kfree(pstrHostIFkeyAttr->attr.wpa.pu8seq); if (ret == -1) return ret; @@ -1971,7 +1971,7 @@ _WPARxGtk_end_case_: memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.pu8macaddr, 6); memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); - memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->attr.wpa.pu8key, + memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->attr.wpa.key, pstrHostIFkeyAttr->attr.wpa.u8Keylen); strWIDList[0].id = (u16)WID_11I_MODE; @@ -2005,7 +2005,7 @@ _WPARxGtk_end_case_: memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.pu8macaddr, 6); memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); - memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->attr.wpa.pu8key, + memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->attr.wpa.key, pstrHostIFkeyAttr->attr.wpa.u8Keylen); strWID.id = (u16)WID_ADD_PTK; @@ -2020,7 +2020,7 @@ _WPARxGtk_end_case_: } _WPAPtk_end_case_: - kfree(pstrHostIFkeyAttr->attr.wpa.pu8key); + kfree(pstrHostIFkeyAttr->attr.wpa.key); if (ret == -1) return ret; @@ -3352,20 +3352,18 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, if (mode == STATION_MODE) msg.body.key_info.action = ADDKEY; - msg.body.key_info.attr.wpa.pu8key = kmalloc(u8PtkKeylen, GFP_KERNEL); - memcpy(msg.body.key_info.attr.wpa.pu8key, pu8Ptk, u8PtkKeylen); + msg.body.key_info.attr.wpa.key = kmalloc(u8PtkKeylen, GFP_KERNEL); + memcpy(msg.body.key_info.attr.wpa.key, pu8Ptk, u8PtkKeylen); if (pu8RxMic != NULL) { - memcpy(msg.body.key_info.attr.wpa.pu8key + 16, - pu8RxMic, RX_MIC_KEY_LEN); + memcpy(msg.body.key_info.attr.wpa.key + 16, pu8RxMic, RX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < RX_MIC_KEY_LEN; i++) PRINT_INFO(CFG80211_DBG, "PairwiseRx[%d] = %x\n", i, pu8RxMic[i]); } } if (pu8TxMic != NULL) { - memcpy(msg.body.key_info.attr.wpa.pu8key + 24, - pu8TxMic, TX_MIC_KEY_LEN); + memcpy(msg.body.key_info.attr.wpa.key + 24, pu8TxMic, TX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < TX_MIC_KEY_LEN; i++) PRINT_INFO(CFG80211_DBG, "PairwiseTx[%d] = %x\n", i, pu8TxMic[i]); @@ -3427,18 +3425,14 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, if (mode == STATION_MODE) msg.body.key_info.action = ADDKEY; - msg.body.key_info.attr.wpa.pu8key = kmalloc(u8KeyLen, GFP_KERNEL); - - memcpy(msg.body.key_info.attr.wpa.pu8key, - pu8RxGtk, u8GtkKeylen); + msg.body.key_info.attr.wpa.key = kmalloc(u8KeyLen, GFP_KERNEL); + memcpy(msg.body.key_info.attr.wpa.key, pu8RxGtk, u8GtkKeylen); if (pu8RxMic != NULL) { - memcpy(msg.body.key_info.attr.wpa.pu8key + 16, - pu8RxMic, RX_MIC_KEY_LEN); + memcpy(msg.body.key_info.attr.wpa.key + 16, pu8RxMic, RX_MIC_KEY_LEN); } if (pu8TxMic != NULL) { - memcpy(msg.body.key_info.attr.wpa.pu8key + 24, - pu8TxMic, TX_MIC_KEY_LEN); + memcpy(msg.body.key_info.attr.wpa.key + 24, pu8TxMic, TX_MIC_KEY_LEN); } msg.body.key_info.attr.wpa.u8keyidx = u8KeyIdx; From 248080aa2a31bff5cd4336a15af3c907962be8da Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:31 +0900 Subject: [PATCH 1638/2431] staging: wilc1000: rename pu8macaddr of struct host_if_wpa_attr This patch renames pu8macaddr of struct host_if_wpa_attr to mac_addr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 18a27230bf66..29bd5bfe4860 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -67,7 +67,7 @@ struct cfg_param_attr { struct host_if_wpa_attr { u8 *key; - const u8 *pu8macaddr; + const u8 *mac_addr; u8 *pu8seq; u8 u8seqlen; u8 u8keyidx; @@ -1968,7 +1968,7 @@ _WPARxGtk_end_case_: } - memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.pu8macaddr, 6); + memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.mac_addr, 6); memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->attr.wpa.key, @@ -2003,7 +2003,7 @@ _WPARxGtk_end_case_: } - memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.pu8macaddr, 6); + memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.mac_addr, 6); memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->attr.wpa.key, pstrHostIFkeyAttr->attr.wpa.u8Keylen); @@ -3372,7 +3372,7 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.body.key_info.attr.wpa.u8Keylen = u8KeyLen; msg.body.key_info.attr.wpa.u8Ciphermode = u8Ciphermode; - msg.body.key_info.attr.wpa.pu8macaddr = mac_addr; + msg.body.key_info.attr.wpa.mac_addr = mac_addr; msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 0e74c0096271233687e9f206b2a772dce966b279 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:32 +0900 Subject: [PATCH 1639/2431] staging: wilc1000: rename pu8seq of struct host_if_wpa_attr This patch renames pu8seq of struct host_if_wpa_attr to seq to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 29bd5bfe4860..eb4e03ba1e3d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -68,7 +68,7 @@ struct cfg_param_attr { struct host_if_wpa_attr { u8 *key; const u8 *mac_addr; - u8 *pu8seq; + u8 *seq; u8 u8seqlen; u8 u8keyidx; u8 u8Keylen; @@ -1886,8 +1886,8 @@ static int Handle_Key(struct host_if_drv *hif_drv, memset(pu8keybuf, 0, RX_MIC_KEY_MSG_LEN); - if (pstrHostIFkeyAttr->attr.wpa.pu8seq != NULL) - memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.pu8seq, 8); + if (pstrHostIFkeyAttr->attr.wpa.seq != NULL) + memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.seq, 8); memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); @@ -1928,7 +1928,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, else PRINT_ER("Couldn't handle WPARxGtk while enuHostIFstate is not HOST_IF_CONNECTED\n"); - memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.pu8seq, 8); + memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.seq, 8); memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, @@ -1947,7 +1947,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, } _WPARxGtk_end_case_: kfree(pstrHostIFkeyAttr->attr.wpa.key); - kfree(pstrHostIFkeyAttr->attr.wpa.pu8seq); + kfree(pstrHostIFkeyAttr->attr.wpa.seq); if (ret == -1) return ret; @@ -3408,9 +3408,8 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, if (pu8TxMic != NULL) u8KeyLen += TX_MIC_KEY_LEN; if (KeyRSC != NULL) { - msg.body.key_info. - attr.wpa.pu8seq = kmalloc(u32KeyRSClen, GFP_KERNEL); - memcpy(msg.body.key_info.attr.wpa.pu8seq,KeyRSC, u32KeyRSClen); + msg.body.key_info.attr.wpa.seq = kmalloc(u32KeyRSClen, GFP_KERNEL); + memcpy(msg.body.key_info.attr.wpa.seq, KeyRSC, u32KeyRSClen); } From dacc594dab7a73a987ed2e9b8df725c15bc7ccf4 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:33 +0900 Subject: [PATCH 1640/2431] staging: wilc1000: rename u8seqlen of struct host_if_wpa_attr This patch renames u8seqlen of struct host_if_wpa_attr to seq_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index eb4e03ba1e3d..5c8af19d9f4a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -69,7 +69,7 @@ struct host_if_wpa_attr { u8 *key; const u8 *mac_addr; u8 *seq; - u8 u8seqlen; + u8 seq_len; u8 u8keyidx; u8 u8Keylen; u8 u8Ciphermode; @@ -3436,7 +3436,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, msg.body.key_info.attr.wpa.u8keyidx = u8KeyIdx; msg.body.key_info.attr.wpa.u8Keylen = u8KeyLen; - msg.body.key_info.attr.wpa.u8seqlen = u32KeyRSClen; + msg.body.key_info.attr.wpa.seq_len = u32KeyRSClen; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) From e2dfbac54e82e2165049971eaaaeecf68d50260f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:34 +0900 Subject: [PATCH 1641/2431] staging: wilc1000: rename u8keyidx of struct host_if_wpa_attr This patch renames u8keyidx of struct host_if_wpa_attr to index to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5c8af19d9f4a..25219875b155 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -70,7 +70,7 @@ struct host_if_wpa_attr { const u8 *mac_addr; u8 *seq; u8 seq_len; - u8 u8keyidx; + u8 index; u8 u8Keylen; u8 u8Ciphermode; }; @@ -1889,7 +1889,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->attr.wpa.seq != NULL) memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.seq, 8); - memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); + memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.index, 1); memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, pstrHostIFkeyAttr->attr.wpa.u8Keylen); @@ -1929,7 +1929,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, PRINT_ER("Couldn't handle WPARxGtk while enuHostIFstate is not HOST_IF_CONNECTED\n"); memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.seq, 8); - memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); + memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.index, 1); memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, pstrHostIFkeyAttr->attr.wpa.u8Keylen); @@ -1969,7 +1969,7 @@ _WPARxGtk_end_case_: } memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.mac_addr, 6); - memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.u8keyidx, 1); + memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.index, 1); memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->attr.wpa.key, pstrHostIFkeyAttr->attr.wpa.u8Keylen); @@ -3347,7 +3347,7 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.body.key_info.type = WPAPtk; if (mode == AP_MODE) { msg.body.key_info.action = ADDKEY_AP; - msg.body.key_info.attr.wpa.u8keyidx = u8Idx; + msg.body.key_info.attr.wpa.index = u8Idx; } if (mode == STATION_MODE) msg.body.key_info.action = ADDKEY; @@ -3434,7 +3434,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, memcpy(msg.body.key_info.attr.wpa.key + 24, pu8TxMic, TX_MIC_KEY_LEN); } - msg.body.key_info.attr.wpa.u8keyidx = u8KeyIdx; + msg.body.key_info.attr.wpa.index = u8KeyIdx; msg.body.key_info.attr.wpa.u8Keylen = u8KeyLen; msg.body.key_info.attr.wpa.seq_len = u32KeyRSClen; From 6acf2919b31e9be52eaf30ee7569c4b5ef93217b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:35 +0900 Subject: [PATCH 1642/2431] staging: wilc1000: rename u8Keylen of struct host_if_wpa_attr This patch renames u8Keylen of struct host_if_wpa_attr to key_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 25219875b155..2ebd0cc63513 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -71,7 +71,7 @@ struct host_if_wpa_attr { u8 *seq; u8 seq_len; u8 index; - u8 u8Keylen; + u8 key_len; u8 u8Ciphermode; }; @@ -1890,9 +1890,9 @@ static int Handle_Key(struct host_if_drv *hif_drv, memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.seq, 8); memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.index, 1); - memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.key_len, 1); memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, - pstrHostIFkeyAttr->attr.wpa.u8Keylen); + pstrHostIFkeyAttr->attr.wpa.key_len); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; @@ -1930,9 +1930,9 @@ static int Handle_Key(struct host_if_drv *hif_drv, memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.seq, 8); memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.index, 1); - memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.key_len, 1); memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, - pstrHostIFkeyAttr->attr.wpa.u8Keylen); + pstrHostIFkeyAttr->attr.wpa.key_len); strWID.id = (u16)WID_ADD_RX_GTK; strWID.type = WID_STR; @@ -1970,9 +1970,9 @@ _WPARxGtk_end_case_: memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.mac_addr, 6); memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.index, 1); - memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->attr.wpa.key_len, 1); memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->attr.wpa.key, - pstrHostIFkeyAttr->attr.wpa.u8Keylen); + pstrHostIFkeyAttr->attr.wpa.key_len); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; @@ -2004,9 +2004,9 @@ _WPARxGtk_end_case_: } memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.mac_addr, 6); - memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.u8Keylen, 1); + memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.key_len, 1); memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->attr.wpa.key, - pstrHostIFkeyAttr->attr.wpa.u8Keylen); + pstrHostIFkeyAttr->attr.wpa.key_len); strWID.id = (u16)WID_ADD_PTK; strWID.type = WID_STR; @@ -3370,7 +3370,7 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, } } - msg.body.key_info.attr.wpa.u8Keylen = u8KeyLen; + msg.body.key_info.attr.wpa.key_len = u8KeyLen; msg.body.key_info.attr.wpa.u8Ciphermode = u8Ciphermode; msg.body.key_info.attr.wpa.mac_addr = mac_addr; msg.drv = hif_drv; @@ -3435,7 +3435,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, } msg.body.key_info.attr.wpa.index = u8KeyIdx; - msg.body.key_info.attr.wpa.u8Keylen = u8KeyLen; + msg.body.key_info.attr.wpa.key_len = u8KeyLen; msg.body.key_info.attr.wpa.seq_len = u32KeyRSClen; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 7b2ebb28b8505358901ed636845834976aa06fd5 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:36 +0900 Subject: [PATCH 1643/2431] staging: wilc1000: rename u8Ciphermode of struct host_if_wpa_attr This patch renames u8Ciphermode of struct host_if_wpa_attr to mode to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2ebd0cc63513..14a01ce57cea 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -72,7 +72,7 @@ struct host_if_wpa_attr { u8 seq_len; u8 index; u8 key_len; - u8 u8Ciphermode; + u8 mode; }; struct host_if_wep_attr { @@ -1897,7 +1897,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wpa.u8Ciphermode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wpa.mode)); strWIDList[1].id = (u16)WID_ADD_RX_GTK; strWIDList[1].type = WID_STR; @@ -1977,7 +1977,7 @@ _WPARxGtk_end_case_: strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; strWIDList[0].size = sizeof(char); - strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wpa.u8Ciphermode)); + strWIDList[0].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wpa.mode)); strWIDList[1].id = (u16)WID_ADD_PTK; strWIDList[1].type = WID_STR; @@ -3371,8 +3371,8 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, } msg.body.key_info.attr.wpa.key_len = u8KeyLen; - msg.body.key_info.attr.wpa.u8Ciphermode = u8Ciphermode; msg.body.key_info.attr.wpa.mac_addr = mac_addr; + msg.body.key_info.attr.wpa.mode = u8Ciphermode; msg.drv = hif_drv; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -3419,7 +3419,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, if (mode == AP_MODE) { msg.body.key_info.action = ADDKEY_AP; - msg.body.key_info.attr.wpa.u8Ciphermode = u8Ciphermode; + msg.body.key_info.attr.wpa.mode = u8Ciphermode; } if (mode == STATION_MODE) msg.body.key_info.action = ADDKEY; From 425688986a086196e52c88106d0646bbd4ba5405 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:37 +0900 Subject: [PATCH 1644/2431] staging: wilc1000: rename u8ScanSource of struct scan_attr This patch renames u8ScanSource of struct scan_attr to src to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 14a01ce57cea..9180ea6520da 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -96,7 +96,7 @@ struct key_attr { }; struct scan_attr { - u8 u8ScanSource; + u8 src; u8 u8ScanType; u8 *pu8ChnlFreqList; u8 u8ChnlListLen; @@ -921,7 +921,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].id = WID_START_SCAN_REQ; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].val = (s8 *)(&(pstrHostIFscanAttr->u8ScanSource)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrHostIFscanAttr->src)); u32WidsCount++; if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) @@ -4062,7 +4062,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, PRINT_D(HOSTINF_DBG, "pstrHiddenNetwork IS EQUAL TO NULL\n"); msg.drv = hif_drv; - msg.body.scan_info.u8ScanSource = u8ScanSource; + msg.body.scan_info.src = u8ScanSource; msg.body.scan_info.u8ScanType = u8ScanType; msg.body.scan_info.pfScanResult = ScanResult; msg.body.scan_info.pvUserArg = pvUserArg; From 1e276c8842863aa25c89bd4286909e5ae6739c3a Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:38 +0900 Subject: [PATCH 1645/2431] staging: wilc1000: rename u8ScanType of struct scan_attr This patch renames u8ScanType of struct scan_attr to type to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9180ea6520da..b7eb272e2b4a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -97,7 +97,7 @@ struct key_attr { struct scan_attr { u8 src; - u8 u8ScanType; + u8 type; u8 *pu8ChnlFreqList; u8 u8ChnlListLen; u8 *pu8IEs; @@ -899,7 +899,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].id = WID_SCAN_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].val = (s8 *)(&(pstrHostIFscanAttr->u8ScanType)); + strWIDList[u32WidsCount].val = (s8 *)(&(pstrHostIFscanAttr->type)); u32WidsCount++; strWIDList[u32WidsCount].id = WID_SCAN_CHANNEL_LIST; @@ -4063,7 +4063,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.drv = hif_drv; msg.body.scan_info.src = u8ScanSource; - msg.body.scan_info.u8ScanType = u8ScanType; + msg.body.scan_info.type = u8ScanType; msg.body.scan_info.pfScanResult = ScanResult; msg.body.scan_info.pvUserArg = pvUserArg; From 97b457d7e2ad76e1ce3950a6c46e4d3cd0e350b2 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:39 +0900 Subject: [PATCH 1646/2431] staging: wilc1000: remove duplicate null check routine This patch removes the duplicate null check routine. The same null check routine is twice executed. Therefore the duplicated routine is not necessary. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b7eb272e2b4a..1e2a4eceb26d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -957,11 +957,6 @@ ERRORHANDLER: pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo = NULL; } - if (pstrHostIFscanAttr->pu8ChnlFreqList != NULL) { - kfree(pstrHostIFscanAttr->pu8ChnlFreqList); - pstrHostIFscanAttr->pu8ChnlFreqList = NULL; - } - if (pu8HdnNtwrksWidVal != NULL) kfree(pu8HdnNtwrksWidVal); From 82eeb0ad3c6367ba7a4c4a999bb223d207a5c7fe Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:40 +0900 Subject: [PATCH 1647/2431] staging: wilc1000: rename pu8ChnlFreqList of struct scan_attr This patch renames pu8ChnlFreqList of struct scan_attr to ch_freq_list to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1e2a4eceb26d..49097adb5fda 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -98,7 +98,7 @@ struct key_attr { struct scan_attr { u8 src; u8 type; - u8 *pu8ChnlFreqList; + u8 *ch_freq_list; u8 u8ChnlListLen; u8 *pu8IEs; size_t IEsLen; @@ -905,16 +905,16 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].id = WID_SCAN_CHANNEL_LIST; strWIDList[u32WidsCount].type = WID_BIN_DATA; - if (pstrHostIFscanAttr->pu8ChnlFreqList != NULL && pstrHostIFscanAttr->u8ChnlListLen > 0) { + if (pstrHostIFscanAttr->ch_freq_list != NULL && pstrHostIFscanAttr->u8ChnlListLen > 0) { int i; for (i = 0; i < pstrHostIFscanAttr->u8ChnlListLen; i++) { - if (pstrHostIFscanAttr->pu8ChnlFreqList[i] > 0) - pstrHostIFscanAttr->pu8ChnlFreqList[i] = pstrHostIFscanAttr->pu8ChnlFreqList[i] - 1; + if (pstrHostIFscanAttr->ch_freq_list[i] > 0) + pstrHostIFscanAttr->ch_freq_list[i] = pstrHostIFscanAttr->ch_freq_list[i] - 1; } } - strWIDList[u32WidsCount].val = pstrHostIFscanAttr->pu8ChnlFreqList; + strWIDList[u32WidsCount].val = pstrHostIFscanAttr->ch_freq_list; strWIDList[u32WidsCount].size = pstrHostIFscanAttr->u8ChnlListLen; u32WidsCount++; @@ -943,9 +943,9 @@ ERRORHANDLER: Handle_ScanDone(hif_drv, SCAN_EVENT_ABORTED); } - if (pstrHostIFscanAttr->pu8ChnlFreqList != NULL) { - kfree(pstrHostIFscanAttr->pu8ChnlFreqList); - pstrHostIFscanAttr->pu8ChnlFreqList = NULL; + if (pstrHostIFscanAttr->ch_freq_list != NULL) { + kfree(pstrHostIFscanAttr->ch_freq_list); + pstrHostIFscanAttr->ch_freq_list = NULL; } if (pstrHostIFscanAttr->pu8IEs != NULL) { @@ -4063,9 +4063,8 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.body.scan_info.pvUserArg = pvUserArg; msg.body.scan_info.u8ChnlListLen = u8ChnlListLen; - msg.body.scan_info.pu8ChnlFreqList = kmalloc(u8ChnlListLen, GFP_KERNEL); - memcpy(msg.body.scan_info.pu8ChnlFreqList, - pu8ChnlFreqList, u8ChnlListLen); + msg.body.scan_info.ch_freq_list = kmalloc(u8ChnlListLen, GFP_KERNEL); + memcpy(msg.body.scan_info.ch_freq_list, pu8ChnlFreqList, u8ChnlListLen); msg.body.scan_info.IEsLen = IEsLen; msg.body.scan_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); From f97bd9cab8079c791b6387f501fbff2bb73315dd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:41 +0900 Subject: [PATCH 1648/2431] staging: wilc1000: rename u8ChnlListLen of struct scan_attr This patch renames u8ChnlListLen of struct scan_attr to ch_list_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 49097adb5fda..205be22e728f 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -99,7 +99,7 @@ struct scan_attr { u8 src; u8 type; u8 *ch_freq_list; - u8 u8ChnlListLen; + u8 ch_list_len; u8 *pu8IEs; size_t IEsLen; wilc_scan_result pfScanResult; @@ -905,17 +905,17 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].id = WID_SCAN_CHANNEL_LIST; strWIDList[u32WidsCount].type = WID_BIN_DATA; - if (pstrHostIFscanAttr->ch_freq_list != NULL && pstrHostIFscanAttr->u8ChnlListLen > 0) { + if (pstrHostIFscanAttr->ch_freq_list != NULL && pstrHostIFscanAttr->ch_list_len > 0) { int i; - for (i = 0; i < pstrHostIFscanAttr->u8ChnlListLen; i++) { + for (i = 0; i < pstrHostIFscanAttr->ch_list_len; i++) { if (pstrHostIFscanAttr->ch_freq_list[i] > 0) pstrHostIFscanAttr->ch_freq_list[i] = pstrHostIFscanAttr->ch_freq_list[i] - 1; } } strWIDList[u32WidsCount].val = pstrHostIFscanAttr->ch_freq_list; - strWIDList[u32WidsCount].size = pstrHostIFscanAttr->u8ChnlListLen; + strWIDList[u32WidsCount].size = pstrHostIFscanAttr->ch_list_len; u32WidsCount++; strWIDList[u32WidsCount].id = WID_START_SCAN_REQ; @@ -4062,7 +4062,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.body.scan_info.pfScanResult = ScanResult; msg.body.scan_info.pvUserArg = pvUserArg; - msg.body.scan_info.u8ChnlListLen = u8ChnlListLen; + msg.body.scan_info.ch_list_len = u8ChnlListLen; msg.body.scan_info.ch_freq_list = kmalloc(u8ChnlListLen, GFP_KERNEL); memcpy(msg.body.scan_info.ch_freq_list, pu8ChnlFreqList, u8ChnlListLen); From d6f19aa5b58a7465444a995eb9c221887c45b0fc Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:42 +0900 Subject: [PATCH 1649/2431] staging: wilc1000: rename pu8IEs of struct scan_attr This patch renames pu8IEs of struct scan_attr to ies to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 205be22e728f..4a33d16057ec 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -100,7 +100,7 @@ struct scan_attr { u8 type; u8 *ch_freq_list; u8 ch_list_len; - u8 *pu8IEs; + u8 *ies; size_t IEsLen; wilc_scan_result pfScanResult; void *pvUserArg; @@ -891,7 +891,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, { strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_PROBE; strWIDList[u32WidsCount].type = WID_BIN_DATA; - strWIDList[u32WidsCount].val = pstrHostIFscanAttr->pu8IEs; + strWIDList[u32WidsCount].val = pstrHostIFscanAttr->ies; strWIDList[u32WidsCount].size = pstrHostIFscanAttr->IEsLen; u32WidsCount++; } @@ -948,9 +948,9 @@ ERRORHANDLER: pstrHostIFscanAttr->ch_freq_list = NULL; } - if (pstrHostIFscanAttr->pu8IEs != NULL) { - kfree(pstrHostIFscanAttr->pu8IEs); - pstrHostIFscanAttr->pu8IEs = NULL; + if (pstrHostIFscanAttr->ies != NULL) { + kfree(pstrHostIFscanAttr->ies); + pstrHostIFscanAttr->ies = NULL; } if (pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo != NULL) { kfree(pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo); @@ -4067,9 +4067,8 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, memcpy(msg.body.scan_info.ch_freq_list, pu8ChnlFreqList, u8ChnlListLen); msg.body.scan_info.IEsLen = IEsLen; - msg.body.scan_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); - memcpy(msg.body.scan_info.pu8IEs, - pu8IEs, IEsLen); + msg.body.scan_info.ies = kmalloc(IEsLen, GFP_KERNEL); + memcpy(msg.body.scan_info.ies, pu8IEs, IEsLen); s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) { From 7b1f76cd036eeea15f42929eed9a7619381cc15c Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:43 +0900 Subject: [PATCH 1650/2431] staging: wilc1000: rename IEsLen of struct scan_attr This patch renames IEsLen of struct scan_attr to ies_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4a33d16057ec..a390dee9f81c 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -101,7 +101,7 @@ struct scan_attr { u8 *ch_freq_list; u8 ch_list_len; u8 *ies; - size_t IEsLen; + size_t ies_len; wilc_scan_result pfScanResult; void *pvUserArg; struct hidden_network strHiddenNetwork; @@ -892,7 +892,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_PROBE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].val = pstrHostIFscanAttr->ies; - strWIDList[u32WidsCount].size = pstrHostIFscanAttr->IEsLen; + strWIDList[u32WidsCount].size = pstrHostIFscanAttr->ies_len; u32WidsCount++; } @@ -4066,7 +4066,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.body.scan_info.ch_freq_list = kmalloc(u8ChnlListLen, GFP_KERNEL); memcpy(msg.body.scan_info.ch_freq_list, pu8ChnlFreqList, u8ChnlListLen); - msg.body.scan_info.IEsLen = IEsLen; + msg.body.scan_info.ies_len = IEsLen; msg.body.scan_info.ies = kmalloc(IEsLen, GFP_KERNEL); memcpy(msg.body.scan_info.ies, pu8IEs, IEsLen); From c17c6da659571a115c7b4983da6c6ac464317c34 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:44 +0900 Subject: [PATCH 1651/2431] staging: wilc1000: rename pfScanResult of struct scan_attr This patch renames pfScanResult of struct scan_attr to result to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a390dee9f81c..c5cf7d4e8b03 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -102,7 +102,7 @@ struct scan_attr { u8 ch_list_len; u8 *ies; size_t ies_len; - wilc_scan_result pfScanResult; + wilc_scan_result result; void *pvUserArg; struct hidden_network strHiddenNetwork; }; @@ -840,7 +840,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting SCAN params\n"); PRINT_D(HOSTINF_DBG, "Scanning: In [%d] state\n", hif_drv->enuHostIFstate); - hif_drv->strWILC_UsrScanReq.pfUserScanResult = pstrHostIFscanAttr->pfScanResult; + hif_drv->strWILC_UsrScanReq.pfUserScanResult = pstrHostIFscanAttr->result; hif_drv->strWILC_UsrScanReq.u32UserScanPvoid = pstrHostIFscanAttr->pvUserArg; if ((hif_drv->enuHostIFstate >= HOST_IF_SCANNING) && (hif_drv->enuHostIFstate < HOST_IF_CONNECTED)) { @@ -4059,7 +4059,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.drv = hif_drv; msg.body.scan_info.src = u8ScanSource; msg.body.scan_info.type = u8ScanType; - msg.body.scan_info.pfScanResult = ScanResult; + msg.body.scan_info.result = ScanResult; msg.body.scan_info.pvUserArg = pvUserArg; msg.body.scan_info.ch_list_len = u8ChnlListLen; From 5f2b50c8dbe6c0fa1c969ee068d4fa0d36ce2dd0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:45 +0900 Subject: [PATCH 1652/2431] staging: wilc1000: rename pvUserArg of struct scan_attr This patch renames pvUserArg of struct scan_attr to arg to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c5cf7d4e8b03..6926a9e61d93 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -103,7 +103,7 @@ struct scan_attr { u8 *ies; size_t ies_len; wilc_scan_result result; - void *pvUserArg; + void *arg; struct hidden_network strHiddenNetwork; }; @@ -841,7 +841,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Scanning: In [%d] state\n", hif_drv->enuHostIFstate); hif_drv->strWILC_UsrScanReq.pfUserScanResult = pstrHostIFscanAttr->result; - hif_drv->strWILC_UsrScanReq.u32UserScanPvoid = pstrHostIFscanAttr->pvUserArg; + hif_drv->strWILC_UsrScanReq.u32UserScanPvoid = pstrHostIFscanAttr->arg; if ((hif_drv->enuHostIFstate >= HOST_IF_SCANNING) && (hif_drv->enuHostIFstate < HOST_IF_CONNECTED)) { PRINT_D(GENERIC_DBG, "Don't scan we are already in [%d] state\n", hif_drv->enuHostIFstate); @@ -4060,7 +4060,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.body.scan_info.src = u8ScanSource; msg.body.scan_info.type = u8ScanType; msg.body.scan_info.result = ScanResult; - msg.body.scan_info.pvUserArg = pvUserArg; + msg.body.scan_info.arg = pvUserArg; msg.body.scan_info.ch_list_len = u8ChnlListLen; msg.body.scan_info.ch_freq_list = kmalloc(u8ChnlListLen, GFP_KERNEL); From 629b9ca02231a780920fdc98e9ffdd9e0739a768 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:46 +0900 Subject: [PATCH 1653/2431] staging: wilc1000: rename strHiddenNetwork of struct scan_attr This patch renames strHiddenNetwork of struct scan_attr to hidden_network to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 28 +++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6926a9e61d93..506c73fc6003 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -104,7 +104,7 @@ struct scan_attr { size_t ies_len; wilc_scan_result result; void *arg; - struct hidden_network strHiddenNetwork; + struct hidden_network hidden_network; }; struct connect_attr { @@ -865,21 +865,21 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].id = (u16)WID_SSID_PROBE_REQ; strWIDList[u32WidsCount].type = WID_STR; - for (i = 0; i < pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum; i++) - valuesize += ((pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo[i].u8ssidlen) + 1); + for (i = 0; i < pstrHostIFscanAttr->hidden_network.u8ssidnum; i++) + valuesize += ((pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo[i].u8ssidlen) + 1); pu8HdnNtwrksWidVal = kmalloc(valuesize + 1, GFP_KERNEL); strWIDList[u32WidsCount].val = pu8HdnNtwrksWidVal; if (strWIDList[u32WidsCount].val != NULL) { pu8Buffer = strWIDList[u32WidsCount].val; - *pu8Buffer++ = pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum; + *pu8Buffer++ = pstrHostIFscanAttr->hidden_network.u8ssidnum; - PRINT_D(HOSTINF_DBG, "In Handle_ProbeRequest number of ssid %d\n", pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum); + PRINT_D(HOSTINF_DBG, "In Handle_ProbeRequest number of ssid %d\n", pstrHostIFscanAttr->hidden_network.u8ssidnum); - for (i = 0; i < pstrHostIFscanAttr->strHiddenNetwork.u8ssidnum; i++) { - *pu8Buffer++ = pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo[i].u8ssidlen; - memcpy(pu8Buffer, pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo[i].pu8ssid, pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo[i].u8ssidlen); - pu8Buffer += pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo[i].u8ssidlen; + for (i = 0; i < pstrHostIFscanAttr->hidden_network.u8ssidnum; i++) { + *pu8Buffer++ = pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo[i].u8ssidlen; + memcpy(pu8Buffer, pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo[i].pu8ssid, pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo[i].u8ssidlen); + pu8Buffer += pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo[i].u8ssidlen; } @@ -952,9 +952,9 @@ ERRORHANDLER: kfree(pstrHostIFscanAttr->ies); pstrHostIFscanAttr->ies = NULL; } - if (pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo != NULL) { - kfree(pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo); - pstrHostIFscanAttr->strHiddenNetwork.pstrHiddenNetworkInfo = NULL; + if (pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo != NULL) { + kfree(pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo); + pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo = NULL; } if (pu8HdnNtwrksWidVal != NULL) @@ -4050,8 +4050,8 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.id = HOST_IF_MSG_SCAN; if (pstrHiddenNetwork != NULL) { - msg.body.scan_info.strHiddenNetwork.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; - msg.body.scan_info.strHiddenNetwork.u8ssidnum = pstrHiddenNetwork->u8ssidnum; + msg.body.scan_info.hidden_network.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; + msg.body.scan_info.hidden_network.u8ssidnum = pstrHiddenNetwork->u8ssidnum; } else PRINT_D(HOSTINF_DBG, "pstrHiddenNetwork IS EQUAL TO NULL\n"); From f2fc9f6e957bc0b0207fe31bbb6bf9286628c09f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:47 +0900 Subject: [PATCH 1654/2431] staging: wilc1000: fix "ERROR: do not initialise globals to 0 or NULL" This patch fixes the checkpatch.pl error to host_interface.c. - ERROR: do not initialise globals to 0 or NULL Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 506c73fc6003..0296bd98d9bf 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -239,7 +239,7 @@ enum scan_conn_timer { static struct host_if_drv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; struct host_if_drv *terminated_handle; struct host_if_drv *gWFiDrvHandle; -bool g_obtainingIP = false; +bool g_obtainingIP; u8 P2P_LISTEN_STATE; static struct task_struct *HostIFthreadHandler; static WILC_MsgQueueHandle gMsgQHostIF; @@ -256,7 +256,7 @@ u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; static u8 gapu8RcvdAssocResp[MAX_ASSOC_RESP_FRAME_SIZE]; -bool gbScanWhileConnected = false; +bool gbScanWhileConnected; static s8 gs8Rssi; static s8 gs8lnkspd; From d79fd35b8c5d927695b48fa35aa586919818cce9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:48 +0900 Subject: [PATCH 1655/2431] staging: wilc1000: remove duplicate copy routine This patch remove the duplicate bssid copy routine. Already ahead bssid copy routine execute. Therefore do not necessary in this routine. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0296bd98d9bf..91ea327a796f 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1152,10 +1152,6 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, pstrHostIFconnectAttr->pu8bssid, 6); pu8CurrByte += 6; - if (pstrHostIFconnectAttr->pu8bssid != NULL) - memcpy(pu8CurrByte, pstrHostIFconnectAttr->pu8bssid, 6); - pu8CurrByte += 6; - *(pu8CurrByte++) = (ptstrJoinBssParam->beacon_period) & 0xFF; *(pu8CurrByte++) = ((ptstrJoinBssParam->beacon_period) >> 8) & 0xFF; PRINT_D(HOSTINF_DBG, "* Beacon Period %d*\n", (*(pu8CurrByte - 2) | ((*(pu8CurrByte - 1)) << 8))); From 9254db077a171cd74476b22675a499442d3b9e63 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:49 +0900 Subject: [PATCH 1656/2431] staging: wilc1000: rename pu8bssid of struct connect_attr This patch renames pu8bssid of struct connect_attr to bssid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 33 +++++++++++------------ 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 91ea327a796f..b450136afbc2 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -108,7 +108,7 @@ struct scan_attr { }; struct connect_attr { - u8 *pu8bssid; + u8 *bssid; u8 *pu8ssid; size_t ssidLen; u8 *pu8IEs; @@ -1015,7 +1015,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, PRINT_D(GENERIC_DBG, "Handling connect request\n"); - if (memcmp(pstrHostIFconnectAttr->pu8bssid, u8ConnectedSSID, ETH_ALEN) == 0) { + if (memcmp(pstrHostIFconnectAttr->bssid, u8ConnectedSSID, ETH_ALEN) == 0) { s32Error = 0; PRINT_ER("Trying to connect to an already connected AP, Discard connect request\n"); @@ -1031,9 +1031,9 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, goto ERRORHANDLER; } - if (pstrHostIFconnectAttr->pu8bssid != NULL) { + if (pstrHostIFconnectAttr->bssid != NULL) { hif_drv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL); - memcpy(hif_drv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->pu8bssid, 6); + memcpy(hif_drv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->bssid, 6); } hif_drv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen; @@ -1148,8 +1148,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, *(pu8CurrByte++) = ((ptstrJoinBssParam->cap_info) >> 8) & 0xFF; PRINT_D(HOSTINF_DBG, "* Cap Info %0x*\n", (*(pu8CurrByte - 2) | ((*(pu8CurrByte - 1)) << 8))); - if (pstrHostIFconnectAttr->pu8bssid != NULL) - memcpy(pu8CurrByte, pstrHostIFconnectAttr->pu8bssid, 6); + if (pstrHostIFconnectAttr->bssid != NULL) + memcpy(pu8CurrByte, pstrHostIFconnectAttr->bssid, 6); pu8CurrByte += 6; *(pu8CurrByte++) = (ptstrJoinBssParam->beacon_period) & 0xFF; @@ -1230,10 +1230,10 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, PRINT_D(GENERIC_DBG, "send HOST_IF_WAITING_CONN_RESP\n"); - if (pstrHostIFconnectAttr->pu8bssid != NULL) { - memcpy(u8ConnectedSSID, pstrHostIFconnectAttr->pu8bssid, ETH_ALEN); + if (pstrHostIFconnectAttr->bssid != NULL) { + memcpy(u8ConnectedSSID, pstrHostIFconnectAttr->bssid, ETH_ALEN); - PRINT_D(GENERIC_DBG, "save Bssid = %pM\n", pstrHostIFconnectAttr->pu8bssid); + PRINT_D(GENERIC_DBG, "save Bssid = %pM\n", pstrHostIFconnectAttr->bssid); PRINT_D(GENERIC_DBG, "save bssid = %pM\n", u8ConnectedSSID); } @@ -1259,8 +1259,8 @@ ERRORHANDLER: memset(&strConnectInfo, 0, sizeof(tstrConnectInfo)); if (pstrHostIFconnectAttr->pfConnectResult != NULL) { - if (pstrHostIFconnectAttr->pu8bssid != NULL) - memcpy(strConnectInfo.au8bssid, pstrHostIFconnectAttr->pu8bssid, 6); + if (pstrHostIFconnectAttr->bssid != NULL) + memcpy(strConnectInfo.au8bssid, pstrHostIFconnectAttr->bssid, 6); if (pstrHostIFconnectAttr->pu8IEs != NULL) { strConnectInfo.ReqIEsLen = pstrHostIFconnectAttr->IEsLen; @@ -1287,9 +1287,9 @@ ERRORHANDLER: } PRINT_D(HOSTINF_DBG, "Deallocating connection parameters\n"); - if (pstrHostIFconnectAttr->pu8bssid != NULL) { - kfree(pstrHostIFconnectAttr->pu8bssid); - pstrHostIFconnectAttr->pu8bssid = NULL; + if (pstrHostIFconnectAttr->bssid != NULL) { + kfree(pstrHostIFconnectAttr->bssid); + pstrHostIFconnectAttr->bssid = NULL; } if (pstrHostIFconnectAttr->pu8ssid != NULL) { @@ -3620,9 +3620,8 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.drv = hif_drv ; if (pu8bssid != NULL) { - msg.body.con_info.pu8bssid = kmalloc(6, GFP_KERNEL); - memcpy(msg.body.con_info.pu8bssid, - pu8bssid, 6); + msg.body.con_info.bssid = kmalloc(6, GFP_KERNEL); + memcpy(msg.body.con_info.bssid, pu8bssid, 6); } if (pu8ssid != NULL) { From f7bbd9cf99d312f36004ad361e38662d3da3e97b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:50 +0900 Subject: [PATCH 1657/2431] staging: wilc1000: rename pu8ssid of struct connect_attr This patch renames pu8ssid of struct connect_attr to ssid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 32 +++++++++++------------ 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b450136afbc2..3c044d20a857 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -109,7 +109,7 @@ struct scan_attr { struct connect_attr { u8 *bssid; - u8 *pu8ssid; + u8 *ssid; size_t ssidLen; u8 *pu8IEs; size_t IEsLen; @@ -1037,9 +1037,9 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, } hif_drv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen; - if (pstrHostIFconnectAttr->pu8ssid != NULL) { + if (pstrHostIFconnectAttr->ssid != NULL) { hif_drv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssidLen + 1, GFP_KERNEL); - memcpy(hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->pu8ssid, + memcpy(hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->ssid, pstrHostIFconnectAttr->ssidLen); hif_drv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssidLen] = '\0'; } @@ -1081,7 +1081,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].size = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; u32WidsCount++; - if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { + if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { gu32FlushedInfoElemAsocSize = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; gu8FlushedInfoElemAsoc = kmalloc(gu32FlushedInfoElemAsocSize, GFP_KERNEL); @@ -1095,7 +1095,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].val = (s8 *)(&(hif_drv->strWILC_UsrConnReq.u8security)); u32WidsCount++; - if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) + if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) gu8Flushed11iMode = hif_drv->strWILC_UsrConnReq.u8security; PRINT_INFO(HOSTINF_DBG, "Encrypt Mode = %x\n", hif_drv->strWILC_UsrConnReq.u8security); @@ -1107,7 +1107,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].val = (s8 *)(&hif_drv->strWILC_UsrConnReq.tenuAuth_type); u32WidsCount++; - if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) + if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) gu8FlushedAuthType = (u8)hif_drv->strWILC_UsrConnReq.tenuAuth_type; PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", hif_drv->strWILC_UsrConnReq.tenuAuth_type); @@ -1119,7 +1119,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].size = 112; strWIDList[u32WidsCount].val = kmalloc(strWIDList[u32WidsCount].size, GFP_KERNEL); - if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { + if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { gu32FlushedJoinReqSize = strWIDList[u32WidsCount].size; gu8FlushedJoinReq = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); } @@ -1131,8 +1131,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, pu8CurrByte = strWIDList[u32WidsCount].val; - if (pstrHostIFconnectAttr->pu8ssid != NULL) { - memcpy(pu8CurrByte, pstrHostIFconnectAttr->pu8ssid, pstrHostIFconnectAttr->ssidLen); + if (pstrHostIFconnectAttr->ssid != NULL) { + memcpy(pu8CurrByte, pstrHostIFconnectAttr->ssid, pstrHostIFconnectAttr->ssidLen); pu8CurrByte[pstrHostIFconnectAttr->ssidLen] = '\0'; } pu8CurrByte += MAX_SSID_LEN; @@ -1223,7 +1223,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, u32WidsCount++; gu32WidConnRstHack = 0; - if (memcmp("DIRECT-", pstrHostIFconnectAttr->pu8ssid, 7)) { + if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { memcpy(gu8FlushedJoinReq, pu8CurrByte, gu32FlushedJoinReqSize); gu8FlushedJoinReqDrvHandler = hif_drv; } @@ -1292,9 +1292,9 @@ ERRORHANDLER: pstrHostIFconnectAttr->bssid = NULL; } - if (pstrHostIFconnectAttr->pu8ssid != NULL) { - kfree(pstrHostIFconnectAttr->pu8ssid); - pstrHostIFconnectAttr->pu8ssid = NULL; + if (pstrHostIFconnectAttr->ssid != NULL) { + kfree(pstrHostIFconnectAttr->ssid); + pstrHostIFconnectAttr->ssid = NULL; } if (pstrHostIFconnectAttr->pu8IEs != NULL) { @@ -3626,10 +3626,8 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, if (pu8ssid != NULL) { msg.body.con_info.ssidLen = ssidLen; - msg.body.con_info.pu8ssid = kmalloc(ssidLen, GFP_KERNEL); - memcpy(msg.body.con_info.pu8ssid, - - pu8ssid, ssidLen); + msg.body.con_info.ssid = kmalloc(ssidLen, GFP_KERNEL); + memcpy(msg.body.con_info.ssid, pu8ssid, ssidLen); } if (pu8IEs != NULL) { From 8b3c9fa68bd8c243033cb04cca48ac6dc4543e44 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:51 +0900 Subject: [PATCH 1658/2431] staging: wilc1000: rename ssidLen of struct connect_attr This patch renames ssidLen of struct connect_attr to ssid_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3c044d20a857..80ac60ae229b 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -110,7 +110,7 @@ struct scan_attr { struct connect_attr { u8 *bssid; u8 *ssid; - size_t ssidLen; + size_t ssid_len; u8 *pu8IEs; size_t IEsLen; u8 u8security; @@ -1036,12 +1036,12 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, memcpy(hif_drv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->bssid, 6); } - hif_drv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen; + hif_drv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssid_len; if (pstrHostIFconnectAttr->ssid != NULL) { - hif_drv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssidLen + 1, GFP_KERNEL); + hif_drv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssid_len + 1, GFP_KERNEL); memcpy(hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->ssid, - pstrHostIFconnectAttr->ssidLen); - hif_drv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssidLen] = '\0'; + pstrHostIFconnectAttr->ssid_len); + hif_drv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssid_len] = '\0'; } hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen; @@ -1132,8 +1132,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, if (pstrHostIFconnectAttr->ssid != NULL) { - memcpy(pu8CurrByte, pstrHostIFconnectAttr->ssid, pstrHostIFconnectAttr->ssidLen); - pu8CurrByte[pstrHostIFconnectAttr->ssidLen] = '\0'; + memcpy(pu8CurrByte, pstrHostIFconnectAttr->ssid, pstrHostIFconnectAttr->ssid_len); + pu8CurrByte[pstrHostIFconnectAttr->ssid_len] = '\0'; } pu8CurrByte += MAX_SSID_LEN; *(pu8CurrByte++) = INFRASTRUCTURE; @@ -3625,7 +3625,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, } if (pu8ssid != NULL) { - msg.body.con_info.ssidLen = ssidLen; + msg.body.con_info.ssid_len = ssidLen; msg.body.con_info.ssid = kmalloc(ssidLen, GFP_KERNEL); memcpy(msg.body.con_info.ssid, pu8ssid, ssidLen); } From 2ea158c47544b9229cd110fc2947a51aee60c261 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:52 +0900 Subject: [PATCH 1659/2431] staging: wilc1000: rename pu8IEs of struct connect_attr This patch renames pu8IEs of struct connect_attr to ies to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 80ac60ae229b..5d0e4127590d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -111,7 +111,7 @@ struct connect_attr { u8 *bssid; u8 *ssid; size_t ssid_len; - u8 *pu8IEs; + u8 *ies; size_t IEsLen; u8 u8security; wilc_connect_result pfConnectResult; @@ -1045,9 +1045,9 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, } hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen; - if (pstrHostIFconnectAttr->pu8IEs != NULL) { + if (pstrHostIFconnectAttr->ies != NULL) { hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); - memcpy(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->pu8IEs, + memcpy(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->ies, pstrHostIFconnectAttr->IEsLen); } @@ -1262,11 +1262,11 @@ ERRORHANDLER: if (pstrHostIFconnectAttr->bssid != NULL) memcpy(strConnectInfo.au8bssid, pstrHostIFconnectAttr->bssid, 6); - if (pstrHostIFconnectAttr->pu8IEs != NULL) { + if (pstrHostIFconnectAttr->ies != NULL) { strConnectInfo.ReqIEsLen = pstrHostIFconnectAttr->IEsLen; strConnectInfo.pu8ReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, - pstrHostIFconnectAttr->pu8IEs, + pstrHostIFconnectAttr->ies, pstrHostIFconnectAttr->IEsLen); } @@ -1297,9 +1297,9 @@ ERRORHANDLER: pstrHostIFconnectAttr->ssid = NULL; } - if (pstrHostIFconnectAttr->pu8IEs != NULL) { - kfree(pstrHostIFconnectAttr->pu8IEs); - pstrHostIFconnectAttr->pu8IEs = NULL; + if (pstrHostIFconnectAttr->ies != NULL) { + kfree(pstrHostIFconnectAttr->ies); + pstrHostIFconnectAttr->ies = NULL; } if (pu8CurrByte != NULL) @@ -3632,9 +3632,8 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, if (pu8IEs != NULL) { msg.body.con_info.IEsLen = IEsLen; - msg.body.con_info.pu8IEs = kmalloc(IEsLen, GFP_KERNEL); - memcpy(msg.body.con_info.pu8IEs, - pu8IEs, IEsLen); + msg.body.con_info.ies = kmalloc(IEsLen, GFP_KERNEL); + memcpy(msg.body.con_info.ies, pu8IEs, IEsLen); } if (hif_drv->enuHostIFstate < HOST_IF_CONNECTING) hif_drv->enuHostIFstate = HOST_IF_CONNECTING; From b59d5c5b57b6ddef538aacef597a3278a7ab09c4 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:53 +0900 Subject: [PATCH 1660/2431] staging: wilc1000: rename IEsLen of struct connect_attr This patch renames IEsLen of struct connect_attr to ies_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5d0e4127590d..545f763332dd 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -112,7 +112,7 @@ struct connect_attr { u8 *ssid; size_t ssid_len; u8 *ies; - size_t IEsLen; + size_t ies_len; u8 u8security; wilc_connect_result pfConnectResult; void *pvUserArg; @@ -1044,11 +1044,11 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssid_len] = '\0'; } - hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen; + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->ies_len; if (pstrHostIFconnectAttr->ies != NULL) { - hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); + hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->ies_len, GFP_KERNEL); memcpy(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->ies, - pstrHostIFconnectAttr->IEsLen); + pstrHostIFconnectAttr->ies_len); } hif_drv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->u8security; @@ -1263,11 +1263,11 @@ ERRORHANDLER: memcpy(strConnectInfo.au8bssid, pstrHostIFconnectAttr->bssid, 6); if (pstrHostIFconnectAttr->ies != NULL) { - strConnectInfo.ReqIEsLen = pstrHostIFconnectAttr->IEsLen; - strConnectInfo.pu8ReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL); + strConnectInfo.ReqIEsLen = pstrHostIFconnectAttr->ies_len; + strConnectInfo.pu8ReqIEs = kmalloc(pstrHostIFconnectAttr->ies_len, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, pstrHostIFconnectAttr->ies, - pstrHostIFconnectAttr->IEsLen); + pstrHostIFconnectAttr->ies_len); } pstrHostIFconnectAttr->pfConnectResult(CONN_DISCONN_EVENT_CONN_RESP, @@ -3631,7 +3631,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, } if (pu8IEs != NULL) { - msg.body.con_info.IEsLen = IEsLen; + msg.body.con_info.ies_len = IEsLen; msg.body.con_info.ies = kmalloc(IEsLen, GFP_KERNEL); memcpy(msg.body.con_info.ies, pu8IEs, IEsLen); } From a64fd6772b0457b04b2782294d8fdc7b10e67acf Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:54 +0900 Subject: [PATCH 1661/2431] staging: wilc1000: rename u8security of struct connect_attr This patch renames u8security of struct connect_attr to security to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 545f763332dd..6e5db9d3002a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -113,7 +113,7 @@ struct connect_attr { size_t ssid_len; u8 *ies; size_t ies_len; - u8 u8security; + u8 security; wilc_connect_result pfConnectResult; void *pvUserArg; enum AUTHTYPE tenuAuth_type; @@ -1051,7 +1051,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, pstrHostIFconnectAttr->ies_len); } - hif_drv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->u8security; + hif_drv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->security; hif_drv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->tenuAuth_type; hif_drv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->pfConnectResult; hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg; @@ -3611,7 +3611,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.id = HOST_IF_MSG_CONNECT; - msg.body.con_info.u8security = u8security; + msg.body.con_info.security = u8security; msg.body.con_info.tenuAuth_type = tenuAuth_type; msg.body.con_info.u8channel = u8channel; msg.body.con_info.pfConnectResult = pfConnectResult; From 6abcc11dba58e954d3d1a9d3f9722c4358712f08 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:55 +0900 Subject: [PATCH 1662/2431] staging: wilc1000: rename pfConnectResult of struct connect_attr This patch renames pfConnectResult of struct connect_attr to result to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6e5db9d3002a..fc82d4617212 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -114,7 +114,7 @@ struct connect_attr { u8 *ies; size_t ies_len; u8 security; - wilc_connect_result pfConnectResult; + wilc_connect_result result; void *pvUserArg; enum AUTHTYPE tenuAuth_type; u8 u8channel; @@ -1053,7 +1053,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->security; hif_drv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->tenuAuth_type; - hif_drv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->pfConnectResult; + hif_drv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->result; hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg; strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; @@ -1258,7 +1258,7 @@ ERRORHANDLER: memset(&strConnectInfo, 0, sizeof(tstrConnectInfo)); - if (pstrHostIFconnectAttr->pfConnectResult != NULL) { + if (pstrHostIFconnectAttr->result != NULL) { if (pstrHostIFconnectAttr->bssid != NULL) memcpy(strConnectInfo.au8bssid, pstrHostIFconnectAttr->bssid, 6); @@ -1270,7 +1270,7 @@ ERRORHANDLER: pstrHostIFconnectAttr->ies_len); } - pstrHostIFconnectAttr->pfConnectResult(CONN_DISCONN_EVENT_CONN_RESP, + pstrHostIFconnectAttr->result(CONN_DISCONN_EVENT_CONN_RESP, &strConnectInfo, MAC_DISCONNECTED, NULL, @@ -3614,7 +3614,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.body.con_info.security = u8security; msg.body.con_info.tenuAuth_type = tenuAuth_type; msg.body.con_info.u8channel = u8channel; - msg.body.con_info.pfConnectResult = pfConnectResult; + msg.body.con_info.result = pfConnectResult; msg.body.con_info.pvUserArg = pvUserArg; msg.body.con_info.pJoinParams = pJoinParams; msg.drv = hif_drv ; From 8f38db897be4f47a3d015e2b8061e013d6abbe18 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:56 +0900 Subject: [PATCH 1663/2431] staging: wilc1000: rename pvUserArg of struct connect_attr This patch renames pvUserArg of struct connect_attr to arg to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fc82d4617212..0790dcb77fb8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -115,7 +115,7 @@ struct connect_attr { size_t ies_len; u8 security; wilc_connect_result result; - void *pvUserArg; + void *arg; enum AUTHTYPE tenuAuth_type; u8 u8channel; void *pJoinParams; @@ -1054,7 +1054,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->security; hif_drv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->tenuAuth_type; hif_drv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->result; - hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg; + hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->arg; strWIDList[u32WidsCount].id = WID_SUCCESS_FRAME_COUNT; strWIDList[u32WidsCount].type = WID_INT; @@ -1274,7 +1274,7 @@ ERRORHANDLER: &strConnectInfo, MAC_DISCONNECTED, NULL, - pstrHostIFconnectAttr->pvUserArg); + pstrHostIFconnectAttr->arg); hif_drv->enuHostIFstate = HOST_IF_IDLE; if (strConnectInfo.pu8ReqIEs != NULL) { kfree(strConnectInfo.pu8ReqIEs); @@ -3615,7 +3615,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.body.con_info.tenuAuth_type = tenuAuth_type; msg.body.con_info.u8channel = u8channel; msg.body.con_info.result = pfConnectResult; - msg.body.con_info.pvUserArg = pvUserArg; + msg.body.con_info.arg = pvUserArg; msg.body.con_info.pJoinParams = pJoinParams; msg.drv = hif_drv ; From 61b4fd022f443eb11b17e8a4160c4434b2d4fc7f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:57 +0900 Subject: [PATCH 1664/2431] staging: wilc1000: rename tenuAuth_type of struct connect_attr This patch renames tenuAuth_type of struct connect_attr to auth_type to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0790dcb77fb8..695fd5c95e99 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -116,7 +116,7 @@ struct connect_attr { u8 security; wilc_connect_result result; void *arg; - enum AUTHTYPE tenuAuth_type; + enum AUTHTYPE auth_type; u8 u8channel; void *pJoinParams; }; @@ -1052,7 +1052,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, } hif_drv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->security; - hif_drv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->tenuAuth_type; + hif_drv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->auth_type; hif_drv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->result; hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->arg; @@ -3612,7 +3612,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.id = HOST_IF_MSG_CONNECT; msg.body.con_info.security = u8security; - msg.body.con_info.tenuAuth_type = tenuAuth_type; + msg.body.con_info.auth_type = tenuAuth_type; msg.body.con_info.u8channel = u8channel; msg.body.con_info.result = pfConnectResult; msg.body.con_info.arg = pvUserArg; From 0d1527e65b6ebbf3fe32a453f94d664300067be9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:58 +0900 Subject: [PATCH 1665/2431] staging: wilc1000: rename u8channel of struct connect_attr This patch renames u8channel of struct connect_attr to ch to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 695fd5c95e99..fbc48eef74ea 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -117,7 +117,7 @@ struct connect_attr { wilc_connect_result result; void *arg; enum AUTHTYPE auth_type; - u8 u8channel; + u8 ch; void *pJoinParams; }; @@ -1112,7 +1112,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", hif_drv->strWILC_UsrConnReq.tenuAuth_type); PRINT_D(HOSTINF_DBG, "Connecting to network of SSID %s on channel %d\n", - hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->u8channel); + hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->ch); strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; @@ -1138,8 +1138,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, pu8CurrByte += MAX_SSID_LEN; *(pu8CurrByte++) = INFRASTRUCTURE; - if ((pstrHostIFconnectAttr->u8channel >= 1) && (pstrHostIFconnectAttr->u8channel <= 14)) { - *(pu8CurrByte++) = pstrHostIFconnectAttr->u8channel; + if ((pstrHostIFconnectAttr->ch >= 1) && (pstrHostIFconnectAttr->ch <= 14)) { + *(pu8CurrByte++) = pstrHostIFconnectAttr->ch; } else { PRINT_ER("Channel out of range\n"); *(pu8CurrByte++) = 0xFF; @@ -3613,7 +3613,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.body.con_info.security = u8security; msg.body.con_info.auth_type = tenuAuth_type; - msg.body.con_info.u8channel = u8channel; + msg.body.con_info.ch = u8channel; msg.body.con_info.result = pfConnectResult; msg.body.con_info.arg = pvUserArg; msg.body.con_info.pJoinParams = pJoinParams; From f2bed2caaeb847910eb13b527454adc25578875f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:59 +0900 Subject: [PATCH 1666/2431] staging: wilc1000: rename pJoinParams of struct connect_attr This patch renames pJoinParams of struct connect_attr to params to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fbc48eef74ea..4af2bd165fde 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -118,7 +118,7 @@ struct connect_attr { void *arg; enum AUTHTYPE auth_type; u8 ch; - void *pJoinParams; + void *params; }; struct rcvd_async_info { @@ -1024,7 +1024,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n"); - ptstrJoinBssParam = (struct join_bss_param *)pstrHostIFconnectAttr->pJoinParams; + ptstrJoinBssParam = (struct join_bss_param *)pstrHostIFconnectAttr->params; if (ptstrJoinBssParam == NULL) { PRINT_ER("Required BSSID not found\n"); s32Error = -ENOENT; @@ -3616,7 +3616,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.body.con_info.ch = u8channel; msg.body.con_info.result = pfConnectResult; msg.body.con_info.arg = pvUserArg; - msg.body.con_info.pJoinParams = pJoinParams; + msg.body.con_info.params = pJoinParams; msg.drv = hif_drv ; if (pu8bssid != NULL) { From 33722ac768c401890bd4f335b771f28179338914 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:00 +0900 Subject: [PATCH 1667/2431] staging: wilc1000: rename pu8Buffer of struct rcvd_async_info This patch renames pu8Buffer of struct rcvd_async_info to buffer to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 33 +++++++++++------------ 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4af2bd165fde..7a9101073e46 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -122,7 +122,7 @@ struct connect_attr { }; struct rcvd_async_info { - u8 *pu8Buffer; + u8 *buffer; u32 u32Length; }; @@ -1544,31 +1544,31 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, return -ENODEV; } PRINT_D(GENERIC_DBG, "Current State = %d,Received state = %d\n", hif_drv->enuHostIFstate, - pstrRcvdGnrlAsyncInfo->pu8Buffer[7]); + pstrRcvdGnrlAsyncInfo->buffer[7]); if ((hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) || (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) || hif_drv->strWILC_UsrScanReq.pfUserScanResult) { - if ((pstrRcvdGnrlAsyncInfo->pu8Buffer == NULL) || + if ((pstrRcvdGnrlAsyncInfo->buffer == NULL) || (hif_drv->strWILC_UsrConnReq.pfUserConnectResult == NULL)) { PRINT_ER("driver is null\n"); return -EINVAL; } - u8MsgType = pstrRcvdGnrlAsyncInfo->pu8Buffer[0]; + u8MsgType = pstrRcvdGnrlAsyncInfo->buffer[0]; if ('I' != u8MsgType) { PRINT_ER("Received Message format incorrect.\n"); return -EFAULT; } - u8MsgID = pstrRcvdGnrlAsyncInfo->pu8Buffer[1]; - u16MsgLen = MAKE_WORD16(pstrRcvdGnrlAsyncInfo->pu8Buffer[2], pstrRcvdGnrlAsyncInfo->pu8Buffer[3]); - u16WidID = MAKE_WORD16(pstrRcvdGnrlAsyncInfo->pu8Buffer[4], pstrRcvdGnrlAsyncInfo->pu8Buffer[5]); - u8WidLen = pstrRcvdGnrlAsyncInfo->pu8Buffer[6]; - u8MacStatus = pstrRcvdGnrlAsyncInfo->pu8Buffer[7]; - u8MacStatusReasonCode = pstrRcvdGnrlAsyncInfo->pu8Buffer[8]; - u8MacStatusAdditionalInfo = pstrRcvdGnrlAsyncInfo->pu8Buffer[9]; + u8MsgID = pstrRcvdGnrlAsyncInfo->buffer[1]; + u16MsgLen = MAKE_WORD16(pstrRcvdGnrlAsyncInfo->buffer[2], pstrRcvdGnrlAsyncInfo->buffer[3]); + u16WidID = MAKE_WORD16(pstrRcvdGnrlAsyncInfo->buffer[4], pstrRcvdGnrlAsyncInfo->buffer[5]); + u8WidLen = pstrRcvdGnrlAsyncInfo->buffer[6]; + u8MacStatus = pstrRcvdGnrlAsyncInfo->buffer[7]; + u8MacStatusReasonCode = pstrRcvdGnrlAsyncInfo->buffer[8]; + u8MacStatusAdditionalInfo = pstrRcvdGnrlAsyncInfo->buffer[9]; PRINT_INFO(HOSTINF_DBG, "Recieved MAC status = %d with Reason = %d , Info = %d\n", u8MacStatus, u8MacStatusReasonCode, u8MacStatusAdditionalInfo); if (hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { u32 u32RcvdAssocRespInfoLen; @@ -1750,9 +1750,9 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } - if (pstrRcvdGnrlAsyncInfo->pu8Buffer != NULL) { - kfree(pstrRcvdGnrlAsyncInfo->pu8Buffer); - pstrRcvdGnrlAsyncInfo->pu8Buffer = NULL; + if (pstrRcvdGnrlAsyncInfo->buffer != NULL) { + kfree(pstrRcvdGnrlAsyncInfo->buffer); + pstrRcvdGnrlAsyncInfo->buffer = NULL; } return s32Error; @@ -4484,9 +4484,8 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.body.async_info.u32Length = u32Length; - msg.body.async_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); - memcpy(msg.body.async_info.pu8Buffer, - pu8Buffer, u32Length); + msg.body.async_info.buffer = kmalloc(u32Length, GFP_KERNEL); + memcpy(msg.body.async_info.buffer, pu8Buffer, u32Length); s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) From f94f4889ad2e3dd494a572ec09a238d3741d3d7b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:01 +0900 Subject: [PATCH 1668/2431] staging: wilc1000: rename u32Length of struct rcvd_async_info This patch renames u32Length of struct rcvd_async_info to len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7a9101073e46..3d0796f750df 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -123,7 +123,7 @@ struct connect_attr { struct rcvd_async_info { u8 *buffer; - u32 u32Length; + u32 len; }; struct channel_attr { @@ -4482,8 +4482,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.id = HOST_IF_MSG_RCVD_GNRL_ASYNC_INFO; msg.drv = hif_drv; - - msg.body.async_info.u32Length = u32Length; + msg.body.async_info.len = u32Length; msg.body.async_info.buffer = kmalloc(u32Length, GFP_KERNEL); memcpy(msg.body.async_info.buffer, pu8Buffer, u32Length); From 730ee059d4ea7403d72819c84b864a27464fe60d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:02 +0900 Subject: [PATCH 1669/2431] staging: wilc1000: rename u8SetChan of struct channel_attr This patch renames u8SetChan of struct channel_attr to set_ch to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3d0796f750df..cd4236413d41 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -127,7 +127,7 @@ struct rcvd_async_info { }; struct channel_attr { - u8 u8SetChan; + u8 set_ch; }; struct beacon_attr { @@ -342,7 +342,7 @@ static s32 Handle_SetChannel(struct host_if_drv *hif_drv, strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; - strWID.val = (char *)&(pstrHostIFSetChan->u8SetChan); + strWID.val = (char *)&(pstrHostIFSetChan->set_ch); strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Setting channel\n"); @@ -3786,7 +3786,7 @@ int host_int_set_mac_chnl_num(struct host_if_drv *hif_drv, u8 channel) memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_SET_CHANNEL; - msg.body.channel_info.u8SetChan = channel; + msg.body.channel_info.set_ch = channel; msg.drv = hif_drv; result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From 12262ddac66f56e9f901b085db53e71d6ba8fa74 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:03 +0900 Subject: [PATCH 1670/2431] staging: wilc1000: rename u32Interval of struct beacon_attr This patch renames u32Interval of struct beacon_attr to interval to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index cd4236413d41..e6490ef5bd1a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -131,7 +131,7 @@ struct channel_attr { }; struct beacon_attr { - u32 u32Interval; + u32 interval; u32 u32DTIMPeriod; u32 u32HeadLen; u8 *pu8Head; @@ -2344,10 +2344,10 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, goto ERRORHANDLER; pu8CurrByte = strWID.val; - *pu8CurrByte++ = (pstrSetBeaconParam->u32Interval & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32Interval >> 8) & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32Interval >> 16) & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32Interval >> 24) & 0xFF); + *pu8CurrByte++ = (pstrSetBeaconParam->interval & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->interval >> 8) & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->interval >> 16) & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->interval >> 24) & 0xFF); *pu8CurrByte++ = (pstrSetBeaconParam->u32DTIMPeriod & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->u32DTIMPeriod >> 8) & 0xFF); @@ -4641,7 +4641,7 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, msg.id = HOST_IF_MSG_ADD_BEACON; msg.drv = hif_drv; - pstrSetBeaconParam->u32Interval = u32Interval; + pstrSetBeaconParam->interval = u32Interval; pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; pstrSetBeaconParam->u32HeadLen = u32HeadLen; pstrSetBeaconParam->pu8Head = kmalloc(u32HeadLen, GFP_KERNEL); From e76ab7708a9babbfe61d70da0804070ff8f871ac Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:04 +0900 Subject: [PATCH 1671/2431] staging: wilc1000: rename u32DTIMPeriod of struct beacon_attr This patch renames u32DTIMPeriod of struct beacon_attr to dtim_period to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e6490ef5bd1a..03ce060917d0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -132,7 +132,7 @@ struct channel_attr { struct beacon_attr { u32 interval; - u32 u32DTIMPeriod; + u32 dtim_period; u32 u32HeadLen; u8 *pu8Head; u32 u32TailLen; @@ -2349,10 +2349,10 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, *pu8CurrByte++ = ((pstrSetBeaconParam->interval >> 16) & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->interval >> 24) & 0xFF); - *pu8CurrByte++ = (pstrSetBeaconParam->u32DTIMPeriod & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32DTIMPeriod >> 8) & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32DTIMPeriod >> 16) & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32DTIMPeriod >> 24) & 0xFF); + *pu8CurrByte++ = (pstrSetBeaconParam->dtim_period & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->dtim_period >> 8) & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->dtim_period >> 16) & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->dtim_period >> 24) & 0xFF); *pu8CurrByte++ = (pstrSetBeaconParam->u32HeadLen & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->u32HeadLen >> 8) & 0xFF); @@ -4642,7 +4642,7 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, msg.id = HOST_IF_MSG_ADD_BEACON; msg.drv = hif_drv; pstrSetBeaconParam->interval = u32Interval; - pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; + pstrSetBeaconParam->dtim_period = u32DTIMPeriod; pstrSetBeaconParam->u32HeadLen = u32HeadLen; pstrSetBeaconParam->pu8Head = kmalloc(u32HeadLen, GFP_KERNEL); if (pstrSetBeaconParam->pu8Head == NULL) { From 51c6618590f172608e61e29190bbbd865302c7dd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:05 +0900 Subject: [PATCH 1672/2431] staging: wilc1000: rename u32HeadLen of struct beacon_attr This patch renames u32HeadLen of struct beacon_attr to head_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 03ce060917d0..70ba13fe8d9e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -133,7 +133,7 @@ struct channel_attr { struct beacon_attr { u32 interval; u32 dtim_period; - u32 u32HeadLen; + u32 head_len; u8 *pu8Head; u32 u32TailLen; u8 *pu8Tail; @@ -2338,7 +2338,7 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, strWID.id = (u16)WID_ADD_BEACON; strWID.type = WID_BIN; - strWID.size = pstrSetBeaconParam->u32HeadLen + pstrSetBeaconParam->u32TailLen + 16; + strWID.size = pstrSetBeaconParam->head_len + pstrSetBeaconParam->u32TailLen + 16; strWID.val = kmalloc(strWID.size, GFP_KERNEL); if (strWID.val == NULL) goto ERRORHANDLER; @@ -2354,13 +2354,13 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, *pu8CurrByte++ = ((pstrSetBeaconParam->dtim_period >> 16) & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->dtim_period >> 24) & 0xFF); - *pu8CurrByte++ = (pstrSetBeaconParam->u32HeadLen & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32HeadLen >> 8) & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32HeadLen >> 16) & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32HeadLen >> 24) & 0xFF); + *pu8CurrByte++ = (pstrSetBeaconParam->head_len & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->head_len >> 8) & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->head_len >> 16) & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->head_len >> 24) & 0xFF); - memcpy(pu8CurrByte, pstrSetBeaconParam->pu8Head, pstrSetBeaconParam->u32HeadLen); - pu8CurrByte += pstrSetBeaconParam->u32HeadLen; + memcpy(pu8CurrByte, pstrSetBeaconParam->pu8Head, pstrSetBeaconParam->head_len); + pu8CurrByte += pstrSetBeaconParam->head_len; *pu8CurrByte++ = (pstrSetBeaconParam->u32TailLen & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->u32TailLen >> 8) & 0xFF); @@ -4643,7 +4643,7 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, msg.drv = hif_drv; pstrSetBeaconParam->interval = u32Interval; pstrSetBeaconParam->dtim_period = u32DTIMPeriod; - pstrSetBeaconParam->u32HeadLen = u32HeadLen; + pstrSetBeaconParam->head_len = u32HeadLen; pstrSetBeaconParam->pu8Head = kmalloc(u32HeadLen, GFP_KERNEL); if (pstrSetBeaconParam->pu8Head == NULL) { s32Error = -ENOMEM; From 8ce528b9a8325cf2b8664ef9ac73eb7ff26a4ca0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:06 +0900 Subject: [PATCH 1673/2431] staging: wilc1000: rename pu8Head of struct beacon_attr This patch renames pu8Head of struct beacon_attr to head to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 70ba13fe8d9e..dd07e1167472 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -134,7 +134,7 @@ struct beacon_attr { u32 interval; u32 dtim_period; u32 head_len; - u8 *pu8Head; + u8 *head; u32 u32TailLen; u8 *pu8Tail; }; @@ -2359,7 +2359,7 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, *pu8CurrByte++ = ((pstrSetBeaconParam->head_len >> 16) & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->head_len >> 24) & 0xFF); - memcpy(pu8CurrByte, pstrSetBeaconParam->pu8Head, pstrSetBeaconParam->head_len); + memcpy(pu8CurrByte, pstrSetBeaconParam->head, pstrSetBeaconParam->head_len); pu8CurrByte += pstrSetBeaconParam->head_len; *pu8CurrByte++ = (pstrSetBeaconParam->u32TailLen & 0xFF); @@ -2378,7 +2378,7 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, ERRORHANDLER: kfree(strWID.val); - kfree(pstrSetBeaconParam->pu8Head); + kfree(pstrSetBeaconParam->head); kfree(pstrSetBeaconParam->pu8Tail); } @@ -4644,12 +4644,12 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, pstrSetBeaconParam->interval = u32Interval; pstrSetBeaconParam->dtim_period = u32DTIMPeriod; pstrSetBeaconParam->head_len = u32HeadLen; - pstrSetBeaconParam->pu8Head = kmalloc(u32HeadLen, GFP_KERNEL); - if (pstrSetBeaconParam->pu8Head == NULL) { + pstrSetBeaconParam->head = kmalloc(u32HeadLen, GFP_KERNEL); + if (pstrSetBeaconParam->head == NULL) { s32Error = -ENOMEM; goto ERRORHANDLER; } - memcpy(pstrSetBeaconParam->pu8Head, pu8Head, u32HeadLen); + memcpy(pstrSetBeaconParam->head, pu8Head, u32HeadLen); pstrSetBeaconParam->u32TailLen = u32TailLen; if (u32TailLen > 0) { @@ -4669,8 +4669,8 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, ERRORHANDLER: if (s32Error) { - if (pstrSetBeaconParam->pu8Head != NULL) - kfree(pstrSetBeaconParam->pu8Head); + if (pstrSetBeaconParam->head != NULL) + kfree(pstrSetBeaconParam->head); if (pstrSetBeaconParam->pu8Tail != NULL) kfree(pstrSetBeaconParam->pu8Tail); From 030c57e28ec8dee488c039b9488f8edb5cfa76de Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:07 +0900 Subject: [PATCH 1674/2431] staging: wilc1000: rename u32TailLen of struct beacon_attr This patch renames u32TailLen of struct beacon_attr to tail_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index dd07e1167472..2a2361ae7d45 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -135,7 +135,7 @@ struct beacon_attr { u32 dtim_period; u32 head_len; u8 *head; - u32 u32TailLen; + u32 tail_len; u8 *pu8Tail; }; @@ -2338,7 +2338,7 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, strWID.id = (u16)WID_ADD_BEACON; strWID.type = WID_BIN; - strWID.size = pstrSetBeaconParam->head_len + pstrSetBeaconParam->u32TailLen + 16; + strWID.size = pstrSetBeaconParam->head_len + pstrSetBeaconParam->tail_len + 16; strWID.val = kmalloc(strWID.size, GFP_KERNEL); if (strWID.val == NULL) goto ERRORHANDLER; @@ -2362,14 +2362,14 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, pstrSetBeaconParam->head, pstrSetBeaconParam->head_len); pu8CurrByte += pstrSetBeaconParam->head_len; - *pu8CurrByte++ = (pstrSetBeaconParam->u32TailLen & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32TailLen >> 8) & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32TailLen >> 16) & 0xFF); - *pu8CurrByte++ = ((pstrSetBeaconParam->u32TailLen >> 24) & 0xFF); + *pu8CurrByte++ = (pstrSetBeaconParam->tail_len & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->tail_len >> 8) & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->tail_len >> 16) & 0xFF); + *pu8CurrByte++ = ((pstrSetBeaconParam->tail_len >> 24) & 0xFF); if (pstrSetBeaconParam->pu8Tail > 0) - memcpy(pu8CurrByte, pstrSetBeaconParam->pu8Tail, pstrSetBeaconParam->u32TailLen); - pu8CurrByte += pstrSetBeaconParam->u32TailLen; + memcpy(pu8CurrByte, pstrSetBeaconParam->pu8Tail, pstrSetBeaconParam->tail_len); + pu8CurrByte += pstrSetBeaconParam->tail_len; s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -4650,7 +4650,7 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, goto ERRORHANDLER; } memcpy(pstrSetBeaconParam->head, pu8Head, u32HeadLen); - pstrSetBeaconParam->u32TailLen = u32TailLen; + pstrSetBeaconParam->tail_len = u32TailLen; if (u32TailLen > 0) { pstrSetBeaconParam->pu8Tail = kmalloc(u32TailLen, GFP_KERNEL); From 7dbcb6d37a070b1c0637183d7d23819c1369b0f5 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:08 +0900 Subject: [PATCH 1675/2431] staging: wilc1000: rename pu8Tail of struct beacon_attr This patch renames pu8Tail of struct beacon_attr to tail to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2a2361ae7d45..42081f84eeec 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -136,7 +136,7 @@ struct beacon_attr { u32 head_len; u8 *head; u32 tail_len; - u8 *pu8Tail; + u8 *tail; }; struct set_multicast { @@ -2367,8 +2367,8 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, *pu8CurrByte++ = ((pstrSetBeaconParam->tail_len >> 16) & 0xFF); *pu8CurrByte++ = ((pstrSetBeaconParam->tail_len >> 24) & 0xFF); - if (pstrSetBeaconParam->pu8Tail > 0) - memcpy(pu8CurrByte, pstrSetBeaconParam->pu8Tail, pstrSetBeaconParam->tail_len); + if (pstrSetBeaconParam->tail > 0) + memcpy(pu8CurrByte, pstrSetBeaconParam->tail, pstrSetBeaconParam->tail_len); pu8CurrByte += pstrSetBeaconParam->tail_len; s32Error = send_config_pkt(SET_CFG, &strWID, 1, @@ -2379,7 +2379,7 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, ERRORHANDLER: kfree(strWID.val); kfree(pstrSetBeaconParam->head); - kfree(pstrSetBeaconParam->pu8Tail); + kfree(pstrSetBeaconParam->tail); } static void Handle_DelBeacon(struct host_if_drv *hif_drv) @@ -4653,14 +4653,14 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, pstrSetBeaconParam->tail_len = u32TailLen; if (u32TailLen > 0) { - pstrSetBeaconParam->pu8Tail = kmalloc(u32TailLen, GFP_KERNEL); - if (pstrSetBeaconParam->pu8Tail == NULL) { + pstrSetBeaconParam->tail = kmalloc(u32TailLen, GFP_KERNEL); + if (pstrSetBeaconParam->tail == NULL) { s32Error = -ENOMEM; goto ERRORHANDLER; } - memcpy(pstrSetBeaconParam->pu8Tail, pu8Tail, u32TailLen); + memcpy(pstrSetBeaconParam->tail, pu8Tail, u32TailLen); } else { - pstrSetBeaconParam->pu8Tail = NULL; + pstrSetBeaconParam->tail = NULL; } s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); @@ -4672,8 +4672,8 @@ ERRORHANDLER: if (pstrSetBeaconParam->head != NULL) kfree(pstrSetBeaconParam->head); - if (pstrSetBeaconParam->pu8Tail != NULL) - kfree(pstrSetBeaconParam->pu8Tail); + if (pstrSetBeaconParam->tail != NULL) + kfree(pstrSetBeaconParam->tail); } return s32Error; From e51b921639c23c59484b72c932e910522c0cd6ba Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:09 +0900 Subject: [PATCH 1676/2431] staging: wilc1000: rename au8Sta_DelAllSta of struct del_all_sta This patch renames au8Sta_DelAllSta of struct del_all_sta to del_all_sta to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 42081f84eeec..5ee8d545f649 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -145,7 +145,7 @@ struct set_multicast { }; struct del_all_sta { - u8 au8Sta_DelAllSta[MAX_NUM_STA][ETH_ALEN]; + u8 del_all_sta[MAX_NUM_STA][ETH_ALEN]; u8 u8Num_AssocSta; }; @@ -2506,8 +2506,8 @@ static void Handle_DelAllSta(struct host_if_drv *hif_drv, *(pu8CurrByte++) = pstrDelAllStaParam->u8Num_AssocSta; for (i = 0; i < MAX_NUM_STA; i++) { - if (memcmp(pstrDelAllStaParam->au8Sta_DelAllSta[i], au8Zero_Buff, ETH_ALEN)) - memcpy(pu8CurrByte, pstrDelAllStaParam->au8Sta_DelAllSta[i], ETH_ALEN); + if (memcmp(pstrDelAllStaParam->del_all_sta[i], au8Zero_Buff, ETH_ALEN)) + memcpy(pu8CurrByte, pstrDelAllStaParam->del_all_sta[i], ETH_ALEN); else continue; @@ -4793,9 +4793,14 @@ s32 host_int_del_allstation(struct host_if_drv *hif_drv, for (i = 0; i < MAX_NUM_STA; i++) { if (memcmp(pu8MacAddr[i], au8Zero_Buff, ETH_ALEN)) { - memcpy(pstrDelAllStationMsg->au8Sta_DelAllSta[i], pu8MacAddr[i], ETH_ALEN); - PRINT_D(CFG80211_DBG, "BSSID = %x%x%x%x%x%x\n", pstrDelAllStationMsg->au8Sta_DelAllSta[i][0], pstrDelAllStationMsg->au8Sta_DelAllSta[i][1], pstrDelAllStationMsg->au8Sta_DelAllSta[i][2], pstrDelAllStationMsg->au8Sta_DelAllSta[i][3], pstrDelAllStationMsg->au8Sta_DelAllSta[i][4], - pstrDelAllStationMsg->au8Sta_DelAllSta[i][5]); + memcpy(pstrDelAllStationMsg->del_all_sta[i], pu8MacAddr[i], ETH_ALEN); + PRINT_D(CFG80211_DBG, "BSSID = %x%x%x%x%x%x\n", + pstrDelAllStationMsg->del_all_sta[i][0], + pstrDelAllStationMsg->del_all_sta[i][1], + pstrDelAllStationMsg->del_all_sta[i][2], + pstrDelAllStationMsg->del_all_sta[i][3], + pstrDelAllStationMsg->del_all_sta[i][4], + pstrDelAllStationMsg->del_all_sta[i][5]); u8AssocNumb++; } } From 8ba1803ff5c9488593d71317d2b3da41e89fab66 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:10 +0900 Subject: [PATCH 1677/2431] staging: wilc1000: rename u8Num_AssocSta of struct del_all_sta This patch renames u8Num_AssocSta of struct del_all_sta to assoc_sta to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5ee8d545f649..42f59faf564a 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -146,7 +146,7 @@ struct set_multicast { struct del_all_sta { u8 del_all_sta[MAX_NUM_STA][ETH_ALEN]; - u8 u8Num_AssocSta; + u8 assoc_sta; }; struct del_sta { @@ -2493,17 +2493,17 @@ static void Handle_DelAllSta(struct host_if_drv *hif_drv, strWID.id = (u16)WID_DEL_ALL_STA; strWID.type = WID_STR; - strWID.size = (pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1; + strWID.size = (pstrDelAllStaParam->assoc_sta * ETH_ALEN) + 1; PRINT_D(HOSTINF_DBG, "Handling delete station\n"); - strWID.val = kmalloc((pstrDelAllStaParam->u8Num_AssocSta * ETH_ALEN) + 1, GFP_KERNEL); + strWID.val = kmalloc((pstrDelAllStaParam->assoc_sta * ETH_ALEN) + 1, GFP_KERNEL); if (strWID.val == NULL) goto ERRORHANDLER; pu8CurrByte = strWID.val; - *(pu8CurrByte++) = pstrDelAllStaParam->u8Num_AssocSta; + *(pu8CurrByte++) = pstrDelAllStaParam->assoc_sta; for (i = 0; i < MAX_NUM_STA; i++) { if (memcmp(pstrDelAllStaParam->del_all_sta[i], au8Zero_Buff, ETH_ALEN)) @@ -4809,7 +4809,7 @@ s32 host_int_del_allstation(struct host_if_drv *hif_drv, return s32Error; } - pstrDelAllStationMsg->u8Num_AssocSta = u8AssocNumb; + pstrDelAllStationMsg->assoc_sta = u8AssocNumb; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From bae636eb5a5cb52b67753bd89dc2887cc582f58b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:04 +0900 Subject: [PATCH 1678/2431] staging: wilc1000: rename bIsEnabled of struct set_multicast This patch renames bIsEnabled of struct set_multicast to enabled to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 42f59faf564a..7ea9e0168423 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -140,7 +140,7 @@ struct beacon_attr { }; struct set_multicast { - bool bIsEnabled; + bool enabled; u32 u32count; }; @@ -2796,10 +2796,10 @@ static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, goto ERRORHANDLER; pu8CurrByte = strWID.val; - *pu8CurrByte++ = (strHostIfSetMulti->bIsEnabled & 0xFF); - *pu8CurrByte++ = ((strHostIfSetMulti->bIsEnabled >> 8) & 0xFF); - *pu8CurrByte++ = ((strHostIfSetMulti->bIsEnabled >> 16) & 0xFF); - *pu8CurrByte++ = ((strHostIfSetMulti->bIsEnabled >> 24) & 0xFF); + *pu8CurrByte++ = (strHostIfSetMulti->enabled & 0xFF); + *pu8CurrByte++ = ((strHostIfSetMulti->enabled >> 8) & 0xFF); + *pu8CurrByte++ = ((strHostIfSetMulti->enabled >> 16) & 0xFF); + *pu8CurrByte++ = ((strHostIfSetMulti->enabled >> 24) & 0xFF); *pu8CurrByte++ = (strHostIfSetMulti->u32count & 0xFF); *pu8CurrByte++ = ((strHostIfSetMulti->u32count >> 8) & 0xFF); @@ -4912,7 +4912,7 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hif_drv, msg.id = HOST_IF_MSG_SET_MULTICAST_FILTER; msg.drv = hif_drv; - pstrMulticastFilterParam->bIsEnabled = bIsEnabled; + pstrMulticastFilterParam->enabled = bIsEnabled; pstrMulticastFilterParam->u32count = u32count; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); From adab2f715b8b5aa9238206f48b2c9e156cd2907b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:05 +0900 Subject: [PATCH 1679/2431] staging: wilc1000: rename u32count of struct set_multicast This patch renames u32count of struct set_multicast to cnt to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7ea9e0168423..9cd42f7e2bb3 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -141,7 +141,7 @@ struct beacon_attr { struct set_multicast { bool enabled; - u32 u32count; + u32 cnt; }; struct del_all_sta { @@ -2790,7 +2790,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, strWID.id = (u16)WID_SETUP_MULTICAST_FILTER; strWID.type = WID_BIN; - strWID.size = sizeof(struct set_multicast) + ((strHostIfSetMulti->u32count) * ETH_ALEN); + strWID.size = sizeof(struct set_multicast) + ((strHostIfSetMulti->cnt) * ETH_ALEN); strWID.val = kmalloc(strWID.size, GFP_KERNEL); if (strWID.val == NULL) goto ERRORHANDLER; @@ -2801,13 +2801,13 @@ static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, *pu8CurrByte++ = ((strHostIfSetMulti->enabled >> 16) & 0xFF); *pu8CurrByte++ = ((strHostIfSetMulti->enabled >> 24) & 0xFF); - *pu8CurrByte++ = (strHostIfSetMulti->u32count & 0xFF); - *pu8CurrByte++ = ((strHostIfSetMulti->u32count >> 8) & 0xFF); - *pu8CurrByte++ = ((strHostIfSetMulti->u32count >> 16) & 0xFF); - *pu8CurrByte++ = ((strHostIfSetMulti->u32count >> 24) & 0xFF); + *pu8CurrByte++ = (strHostIfSetMulti->cnt & 0xFF); + *pu8CurrByte++ = ((strHostIfSetMulti->cnt >> 8) & 0xFF); + *pu8CurrByte++ = ((strHostIfSetMulti->cnt >> 16) & 0xFF); + *pu8CurrByte++ = ((strHostIfSetMulti->cnt >> 24) & 0xFF); - if ((strHostIfSetMulti->u32count) > 0) - memcpy(pu8CurrByte, gau8MulticastMacAddrList, ((strHostIfSetMulti->u32count) * ETH_ALEN)); + if ((strHostIfSetMulti->cnt) > 0) + memcpy(pu8CurrByte, gau8MulticastMacAddrList, ((strHostIfSetMulti->cnt) * ETH_ALEN)); s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -4913,7 +4913,7 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hif_drv, msg.drv = hif_drv; pstrMulticastFilterParam->enabled = bIsEnabled; - pstrMulticastFilterParam->u32count = u32count; + pstrMulticastFilterParam->cnt = u32count; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) From e4839d39b401e783bab57388341d82500662d5b7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:06 +0900 Subject: [PATCH 1680/2431] staging: wilc1000: rename au8MacAddr of struct del_sta This patch renames au8MacAddr of struct del_sta to mac_addr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9cd42f7e2bb3..4f7ebdc0abec 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -150,7 +150,7 @@ struct del_all_sta { }; struct del_sta { - u8 au8MacAddr[ETH_ALEN]; + u8 mac_addr[ETH_ALEN]; }; struct power_mgmt_param { @@ -2544,7 +2544,7 @@ static void Handle_DelStation(struct host_if_drv *hif_drv, pu8CurrByte = strWID.val; - memcpy(pu8CurrByte, pstrDelStaParam->au8MacAddr, ETH_ALEN); + memcpy(pu8CurrByte, pstrDelStaParam->mac_addr, ETH_ALEN); s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); @@ -4758,9 +4758,9 @@ s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) msg.drv = hif_drv; if (pu8MacAddr == NULL) - memset(pstrDelStationMsg->au8MacAddr, 255, ETH_ALEN); + memset(pstrDelStationMsg->mac_addr, 255, ETH_ALEN); else - memcpy(pstrDelStationMsg->au8MacAddr, pu8MacAddr, ETH_ALEN); + memcpy(pstrDelStationMsg->mac_addr, pu8MacAddr, ETH_ALEN); s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) From 33c70c1b39ad9f8bda41eadf0babf086ee136ca4 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:07 +0900 Subject: [PATCH 1681/2431] staging: wilc1000: rename bIsEnabled of struct power_mgmt_param This patch renames bIsEnabled of struct power_mgmt_param to enabled to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4f7ebdc0abec..0c44fd03f00e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -154,8 +154,7 @@ struct del_sta { }; struct power_mgmt_param { - - bool bIsEnabled; + bool enabled; u32 u32Timeout; }; @@ -2763,7 +2762,7 @@ static void Handle_PowerManagement(struct host_if_drv *hif_drv, strWID.id = (u16)WID_POWER_MANAGEMENT; - if (strPowerMgmtParam->bIsEnabled == true) + if (strPowerMgmtParam->enabled == true) s8PowerMode = MIN_FAST_PS; else s8PowerMode = NO_POWERSAVE; @@ -4881,7 +4880,7 @@ s32 host_int_set_power_mgmt(struct host_if_drv *hif_drv, msg.id = HOST_IF_MSG_POWER_MGMT; msg.drv = hif_drv; - pstrPowerMgmtParam->bIsEnabled = bIsEnabled; + pstrPowerMgmtParam->enabled = bIsEnabled; pstrPowerMgmtParam->u32Timeout = u32Timeout; From 937918ff160d8102a6c54897231c32ed2efc2b0f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:08 +0900 Subject: [PATCH 1682/2431] staging: wilc1000: rename u32Timeout of struct power_mgmt_param This patch renames u32Timeout of struct power_mgmt_param to timeout to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0c44fd03f00e..97d1bd838873 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -155,7 +155,7 @@ struct del_sta { struct power_mgmt_param { bool enabled; - u32 u32Timeout; + u32 timeout; }; struct set_ip_addr { @@ -4881,8 +4881,7 @@ s32 host_int_set_power_mgmt(struct host_if_drv *hif_drv, msg.drv = hif_drv; pstrPowerMgmtParam->enabled = bIsEnabled; - pstrPowerMgmtParam->u32Timeout = u32Timeout; - + pstrPowerMgmtParam->timeout = u32Timeout; s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) From 78675be5a2858e9c6ca33f0f78e140ef8a45a67d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:09 +0900 Subject: [PATCH 1683/2431] staging: wilc1000: rename au8IPAddr of struct set_ip_addr This patch renames au8IPAddr of struct set_ip_addr to ip_addr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 97d1bd838873..8fb6ef5b64f6 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -159,7 +159,7 @@ struct power_mgmt_param { }; struct set_ip_addr { - u8 *au8IPAddr; + u8 *ip_addr; u8 idx; }; @@ -3079,12 +3079,12 @@ static int hostIFthread(void *pvArg) case HOST_IF_MSG_SET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_set_IPAddress(msg.drv, msg.body.ip_info.au8IPAddr, msg.body.ip_info.idx); + Handle_set_IPAddress(msg.drv, msg.body.ip_info.ip_addr, msg.body.ip_info.idx); break; case HOST_IF_MSG_GET_IPADDRESS: PRINT_D(HOSTINF_DBG, "HOST_IF_MSG_SET_IPADDRESS\n"); - Handle_get_IPAddress(msg.drv, msg.body.ip_info.au8IPAddr, msg.body.ip_info.idx); + Handle_get_IPAddress(msg.drv, msg.body.ip_info.ip_addr, msg.body.ip_info.idx); break; case HOST_IF_MSG_SET_MAC_ADDRESS: @@ -5162,7 +5162,7 @@ s32 host_int_setup_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) msg.id = HOST_IF_MSG_SET_IPADDRESS; - msg.body.ip_info.au8IPAddr = u16ipadd; + msg.body.ip_info.ip_addr = u16ipadd; msg.drv = hif_drv; msg.body.ip_info.idx = idx; @@ -5189,7 +5189,7 @@ s32 host_int_get_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) msg.id = HOST_IF_MSG_GET_IPADDRESS; - msg.body.ip_info.au8IPAddr = u16ipadd; + msg.body.ip_info.ip_addr = u16ipadd; msg.drv = hif_drv; msg.body.ip_info.idx = idx; From b021b80b426069b7d599e246c32ac1b326681964 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:10 +0900 Subject: [PATCH 1684/2431] staging: wilc1000: rename pu8Buffer of struct rcvd_net_info This patch renames pu8Buffer of struct rcvd_net_info to buffer to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 13 ++++++------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8fb6ef5b64f6..432b2752702d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1450,7 +1450,7 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { PRINT_D(HOSTINF_DBG, "State: Scanning, parsing network information received\n"); - parse_network_info(pstrRcvdNetworkInfo->pu8Buffer, &pstrNetworkInfo); + parse_network_info(pstrRcvdNetworkInfo->buffer, &pstrNetworkInfo); if ((pstrNetworkInfo == NULL) || (hif_drv->strWILC_UsrScanReq.pfUserScanResult == NULL)) { PRINT_ER("driver is null\n"); @@ -1509,9 +1509,9 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, } done: - if (pstrRcvdNetworkInfo->pu8Buffer != NULL) { - kfree(pstrRcvdNetworkInfo->pu8Buffer); - pstrRcvdNetworkInfo->pu8Buffer = NULL; + if (pstrRcvdNetworkInfo->buffer != NULL) { + kfree(pstrRcvdNetworkInfo->buffer); + pstrRcvdNetworkInfo->buffer = NULL; } if (pstrNetworkInfo != NULL) { @@ -4440,9 +4440,8 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.drv = hif_drv; msg.body.net_info.u32Length = u32Length; - msg.body.net_info.pu8Buffer = kmalloc(u32Length, GFP_KERNEL); - memcpy(msg.body.net_info.pu8Buffer, - pu8Buffer, u32Length); + msg.body.net_info.buffer = kmalloc(u32Length, GFP_KERNEL); + memcpy(msg.body.net_info.buffer, pu8Buffer, u32Length); s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); if (s32Error) diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 0c5f395155b0..778dbf5caba6 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -199,7 +199,7 @@ typedef void (*wilc_remain_on_chan_ready)(void *); /*Remain on channel callback * @version 1.0 */ struct rcvd_net_info { - u8 *pu8Buffer; + u8 *buffer; u32 u32Length; }; From 3bffac68bfd76f1e94e0c6efff143ace80f90c0b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:11 +0900 Subject: [PATCH 1685/2431] staging: wilc1000: rename u32Length of struct rcvd_net_info This patch renames u32Length of struct rcvd_net_info to len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 432b2752702d..392bf085555e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -4439,7 +4439,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.id = HOST_IF_MSG_RCVD_NTWRK_INFO; msg.drv = hif_drv; - msg.body.net_info.u32Length = u32Length; + msg.body.net_info.len = u32Length; msg.body.net_info.buffer = kmalloc(u32Length, GFP_KERNEL); memcpy(msg.body.net_info.buffer, pu8Buffer, u32Length); diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 778dbf5caba6..146a60f52cb7 100644 --- a/drivers/staging/wilc1000/host_interface.h +++ b/drivers/staging/wilc1000/host_interface.h @@ -200,7 +200,7 @@ typedef void (*wilc_remain_on_chan_ready)(void *); /*Remain on channel callback */ struct rcvd_net_info { u8 *buffer; - u32 u32Length; + u32 len; }; struct hidden_net_info { From 6bd7e5668644424cb70be79ecde4033e1ae123a2 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Tue, 13 Oct 2015 15:18:38 +0530 Subject: [PATCH 1686/2431] Staging: wilc1000: wilc_wfi_cfgoperations: Remove unused code Remove the declaration, initialization and statement having a variable that is not used anywhere in the code. Semantic patch used: @@ type T; identifier i; constant C; position p != e.p; @@ - T i@p; <+... when != i - i = C; ...+> Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 004f4419a044..706912b84798 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1726,7 +1726,6 @@ static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, { u32 i; - u8 flag = 0; s32 s32Error = 0; struct wilc_priv *priv = wiphy_priv(wiphy); @@ -1739,7 +1738,6 @@ static int del_pmksa(struct wiphy *wiphy, struct net_device *netdev, /*If bssid is found, reset the values*/ PRINT_D(CFG80211_DBG, "Reseting PMKID values\n"); memset(&priv->pmkid_list.pmkidlist[i], 0, sizeof(struct host_if_pmkid)); - flag = PMKID_FOUND; break; } } From 7ee8291a2622388c3b732614eb8c4c61a1bdd4dd Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Tue, 13 Oct 2015 17:04:48 +0530 Subject: [PATCH 1687/2431] Staging: wilc1000: wilc_wlan: Remove unnecessary cast Remove cast which is not required. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan.c | 46 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index d3f39557c64a..c73164165323 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -141,7 +141,7 @@ static inline void release_bus(BUS_RELEASE_T release) static void wilc_wlan_txq_remove(struct txq_entry_t *tqe) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; if (tqe == p->txq_head) { p->txq_head = tqe->next; @@ -164,7 +164,7 @@ static void wilc_wlan_txq_remove(struct txq_entry_t *tqe) static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) { struct txq_entry_t *tqe; - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; unsigned long flags; spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); @@ -188,7 +188,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void) static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; unsigned long flags; spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); @@ -218,7 +218,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe) static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; unsigned long flags; if (linux_wlan_lock_timeout(&g_linux_wlan->txq_add_to_head_cs, CFG_PKTS_TIMEOUT)) @@ -334,7 +334,7 @@ static inline int add_TCP_Pending_Ack(u32 Ack, u32 Session_index, struct txq_ent } static inline int remove_TCP_related(void) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; unsigned long flags; spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); @@ -350,7 +350,7 @@ static inline int tcp_process(struct txq_entry_t *tqe) u8 *buffer = tqe->buffer; unsigned short h_proto; int i; - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; unsigned long flags; spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags); @@ -411,7 +411,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void) u32 i = 0; u32 Dropped = 0; - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; spin_lock_irqsave(&g_linux_wlan->txq_spinlock, p->txq_spinlock_flags); for (i = PendingAcks_arrBase; i < (PendingAcks_arrBase + Pending_Acks); i++) { @@ -467,7 +467,7 @@ bool is_TCP_ACK_Filter_Enabled(void) static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, u32 buffer_size) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; struct txq_entry_t *tqe; PRINT_D(TX_DBG, "Adding config packet ...\n"); @@ -504,7 +504,7 @@ static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, u32 buffer_size) int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; struct txq_entry_t *tqe; if (p->quit) @@ -534,7 +534,7 @@ int wilc_wlan_txq_add_net_pkt(void *priv, u8 *buffer, u32 buffer_size, int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_complete_func_t func) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; struct txq_entry_t *tqe; if (p->quit) @@ -559,7 +559,7 @@ int wilc_wlan_txq_add_mgmt_pkt(void *priv, u8 *buffer, u32 buffer_size, wilc_tx_ static struct txq_entry_t *wilc_wlan_txq_get_first(void) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; struct txq_entry_t *tqe; unsigned long flags; @@ -587,7 +587,7 @@ static struct txq_entry_t *wilc_wlan_txq_get_next(struct txq_entry_t *tqe) static int wilc_wlan_rxq_add(struct rxq_entry_t *rqe) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; if (p->quit) return 0; @@ -612,7 +612,7 @@ static int wilc_wlan_rxq_add(struct rxq_entry_t *rqe) static struct rxq_entry_t *wilc_wlan_rxq_remove(void) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; PRINT_D(RX_DBG, "Getting rxQ element\n"); if (p->rxq_head) { @@ -1109,7 +1109,7 @@ _end_: static void wilc_wlan_handle_rxq(void) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; int offset = 0, size, has_packet = 0; u8 *buffer; struct rxq_entry_t *rqe; @@ -1262,7 +1262,7 @@ static void wilc_sleeptimer_isr_ext(u32 int_stats1) static void wilc_wlan_handle_isr_ext(u32 int_status) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; #ifdef MEMORY_STATIC u32 offset = p->rx_buffer_offset; #endif @@ -1389,7 +1389,7 @@ void wilc_handle_isr(void) ********************************************/ int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; u32 offset; u32 addr, size, size2, blksz; u8 *dma_buffer; @@ -1462,7 +1462,7 @@ _fail_1: ********************************************/ int wilc_wlan_start(void) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; u32 reg = 0; int ret; u32 chipid; @@ -1564,7 +1564,7 @@ int wilc_wlan_start(void) void wilc_wlan_global_reset(void) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; acquire_bus(ACQUIRE_AND_WAKEUP); p->hif_func.hif_write_reg(WILC_GLB_RESET_0, 0x0); @@ -1572,7 +1572,7 @@ void wilc_wlan_global_reset(void) } int wilc_wlan_stop(void) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; u32 reg = 0; int ret; u8 timeout = 10; @@ -1642,7 +1642,7 @@ int wilc_wlan_stop(void) void wilc_wlan_cleanup(void) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; struct txq_entry_t *tqe; struct rxq_entry_t *rqe; u32 reg = 0; @@ -1702,7 +1702,7 @@ void wilc_wlan_cleanup(void) static int wilc_wlan_cfg_commit(int type, u32 drvHandler) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; wilc_cfg_frame_t *cfg = &p->cfg_frame; int total_len = p->cfg_frame_offset + 4 + DRIVER_HANDLER_SIZE; int seq_no = p->cfg_seq_no % 256; @@ -1739,7 +1739,7 @@ static int wilc_wlan_cfg_commit(int type, u32 drvHandler) int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, int commit, u32 drvHandler) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; u32 offset; int ret_size; @@ -1779,7 +1779,7 @@ int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, } int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler) { - wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan; + wilc_wlan_dev_t *p = &g_wlan; u32 offset; int ret_size; From 3e127cbb06d6e8aee93e298c39ae2caa33a5eef3 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 13 Oct 2015 18:50:18 +0530 Subject: [PATCH 1688/2431] staging: lustre: llite: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/llite_nfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_nfs.c b/drivers/staging/lustre/lustre/llite/llite_nfs.c index 400acacc3590..f992eda18235 100644 --- a/drivers/staging/lustre/lustre/llite/llite_nfs.c +++ b/drivers/staging/lustre/lustre/llite/llite_nfs.c @@ -78,8 +78,7 @@ void get_uuid2fsid(const char *name, int len, __kernel_fsid_t *fsid) static int ll_nfs_test_inode(struct inode *inode, void *opaque) { - return lu_fid_eq(&ll_i2info(inode)->lli_fid, - (struct lu_fid *)opaque); + return lu_fid_eq(&ll_i2info(inode)->lli_fid, opaque); } struct inode *search_inode_for_lustre(struct super_block *sb, From 634ffdd9ef91b1a6252347276bed77d3d73b0b9a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 13 Oct 2015 18:51:10 +0530 Subject: [PATCH 1689/2431] staging: lustre: llite: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/xattr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/llite/xattr.c b/drivers/staging/lustre/lustre/llite/xattr.c index e051dcc82efe..4b7eb33f7d01 100644 --- a/drivers/staging/lustre/lustre/llite/xattr.c +++ b/drivers/staging/lustre/lustre/llite/xattr.c @@ -519,7 +519,7 @@ ssize_t ll_getxattr(struct dentry *dentry, const char *name, goto out; } - lump = (struct lov_user_md *)buffer; + lump = buffer; memcpy(lump, lmm, lmmsize); /* do not return layout gen for getxattr otherwise it would * confuse tar --xattr by recognizing layout gen as stripe From 30cc9bd64c67c9b1f70a2779302da2ac05335d47 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 21:07:47 +0530 Subject: [PATCH 1690/2431] Staging: comedi: Remove exceptional & on function name n this file, function names are otherwise used as pointers without &. A simplified version of the Coccinelle semantic patch that makes this change is as follows: // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index ef4b58b2f7ef..f341421f1644 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -1341,7 +1341,7 @@ static int parse_insn(struct comedi_device *dev, struct comedi_insn *insn, goto out; } /* This looks arbitrary. It is. */ - s->busy = &parse_insn; + s->busy = parse_insn; switch (insn->insn) { case INSN_READ: ret = s->insn_read(dev, s, insn, data); From 3a1d9489e92a4dd93f6f070aa7e9062beed94c69 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 21:07:48 +0530 Subject: [PATCH 1691/2431] Staging: iio: Remove exceptional & on function name In this file, function names are otherwise used as pointers without &. A simplified version of the Coccinelle semantic patch that makes this change is as follows: // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7280a.c | 2 +- drivers/staging/iio/addac/adt7316.c | 2 +- drivers/staging/iio/resolver/ad2s1210.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c index d98e229c46bf..edbfba1c503c 100644 --- a/drivers/staging/iio/adc/ad7280a.c +++ b/drivers/staging/iio/adc/ad7280a.c @@ -817,7 +817,7 @@ static int ad7280_read_raw(struct iio_dev *indio_dev, } static const struct iio_info ad7280_info = { - .read_raw = &ad7280_read_raw, + .read_raw = ad7280_read_raw, .event_attrs = &ad7280_event_attrs_group, .attrs = &ad7280_attrs_group, .driver_module = THIS_MODULE, diff --git a/drivers/staging/iio/addac/adt7316.c b/drivers/staging/iio/addac/adt7316.c index a1dd74525c10..3adc4516918c 100644 --- a/drivers/staging/iio/addac/adt7316.c +++ b/drivers/staging/iio/addac/adt7316.c @@ -2152,7 +2152,7 @@ int adt7316_probe(struct device *dev, struct adt7316_bus *bus, ret = devm_request_threaded_irq(dev, chip->bus.irq, NULL, - &adt7316_event_handler, + adt7316_event_handler, chip->bus.irq_flags | IRQF_ONESHOT, indio_dev->name, diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c index 7bc3e4a73834..3bd65f5c9cf5 100644 --- a/drivers/staging/iio/resolver/ad2s1210.c +++ b/drivers/staging/iio/resolver/ad2s1210.c @@ -633,7 +633,7 @@ error_ret: } static const struct iio_info ad2s1210_info = { - .read_raw = &ad2s1210_read_raw, + .read_raw = ad2s1210_read_raw, .attrs = &ad2s1210_attribute_group, .driver_module = THIS_MODULE, }; From 246ed517ebc90469b7f399e12017a4121b6ec2cc Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 21:07:49 +0530 Subject: [PATCH 1692/2431] Staging: most: Remove exceptional & on function name In this file, function names are otherwise used as pointers without &. A simplified version of the Coccinelle semantic patch that makes this change is as follows: // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-sound/sound.c | 2 +- drivers/staging/most/mostcore/core.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index f08545c56110..4d3376340daa 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -279,7 +279,7 @@ static int pcm_open(struct snd_pcm_substream *substream) channel->substream = substream; if (cfg->direction == MOST_CH_TX) { - channel->playback_task = kthread_run(&playback_thread, channel, + channel->playback_task = kthread_run(playback_thread, channel, "most_audio_playback"); if (IS_ERR(channel->playback_task)) { pr_err("Couldn't start thread\n"); diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 0045c10413eb..1905547bf990 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -1204,7 +1204,8 @@ static int hdm_enqueue_thread(void *data) static int run_enqueue_thread(struct most_c_obj *c, int channel_id) { struct task_struct *task = - kthread_run(&hdm_enqueue_thread, c, "hdm_fifo_%d", channel_id); + kthread_run(hdm_enqueue_thread, c, "hdm_fifo_%d", + channel_id); if (IS_ERR(task)) return PTR_ERR(task); From c29722158c29cb5aad60108268cb8649a171c876 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 22:20:28 +0530 Subject: [PATCH 1693/2431] Staging: lustre: lov: Remove unused #include header file Remove lclient.h header since it is not used. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lov/lov_object.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/lov/lov_object.c b/drivers/staging/lustre/lustre/lov/lov_object.c index e67df6416d59..1837bbff76bf 100644 --- a/drivers/staging/lustre/lustre/lov/lov_object.c +++ b/drivers/staging/lustre/lustre/lov/lov_object.c @@ -42,7 +42,6 @@ #define DEBUG_SUBSYSTEM S_LOV #include "lov_cl_internal.h" -#include "../include/lclient.h" /** \addtogroup lov * @{ From 9faa310f2b813bad7682120d37ac760db14eec93 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Tue, 13 Oct 2015 19:08:03 +0200 Subject: [PATCH 1694/2431] Staging: comedi: dt9812: Use mutex instead of semaphore Replace binary semaphore with mutex. Mutex also gives better performance than semaphore. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt9812.c | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index 0a4ee8b75aba..3295bb4ac8c4 100644 --- a/drivers/staging/comedi/drivers/dt9812.c +++ b/drivers/staging/comedi/drivers/dt9812.c @@ -233,7 +233,7 @@ struct dt9812_usb_cmd { }; struct dt9812_private { - struct semaphore sem; + struct mutex mut; struct { __u8 addr; size_t size; @@ -335,7 +335,7 @@ static int dt9812_digital_in(struct comedi_device *dev, u8 *bits) u8 value[2]; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); ret = dt9812_read_multiple_registers(dev, 2, reg, value); if (ret == 0) { /* @@ -345,7 +345,7 @@ static int dt9812_digital_in(struct comedi_device *dev, u8 *bits) */ *bits = (value[0] & 0x7f) | ((value[1] & 0x08) << 4); } - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -357,9 +357,9 @@ static int dt9812_digital_out(struct comedi_device *dev, u8 bits) u8 value[1] = { bits }; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); ret = dt9812_write_multiple_registers(dev, 1, reg, value); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -444,7 +444,7 @@ static int dt9812_analog_in(struct comedi_device *dev, u8 val[3]; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); /* 1 select the gain */ dt9812_configure_gain(dev, &rmw[0], gain); @@ -493,7 +493,7 @@ static int dt9812_analog_in(struct comedi_device *dev, } exit: - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -504,7 +504,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value) struct dt9812_rmw_byte rmw[3]; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); switch (channel) { case 0: @@ -543,7 +543,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value) } ret = dt9812_rmw_multiple_registers(dev, 3, rmw); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -606,9 +606,9 @@ static int dt9812_ao_insn_read(struct comedi_device *dev, struct dt9812_private *devpriv = dev->private; int ret; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); ret = comedi_readback_insn_read(dev, s, insn, data); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); return ret; } @@ -772,7 +772,7 @@ static int dt9812_auto_attach(struct comedi_device *dev, if (!devpriv) return -ENOMEM; - sema_init(&devpriv->sem, 1); + mutex_init(&devpriv->mut); usb_set_intfdata(intf, devpriv); ret = dt9812_find_endpoints(dev); @@ -844,11 +844,11 @@ static void dt9812_detach(struct comedi_device *dev) if (!devpriv) return; - down(&devpriv->sem); + mutex_lock(&devpriv->mut); usb_set_intfdata(intf, NULL); - up(&devpriv->sem); + mutex_unlock(&devpriv->mut); } static struct comedi_driver dt9812_driver = { From 3fd624b37da50ba0c63bb153cfd6e1b97b83cc4a Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Tue, 13 Oct 2015 19:09:21 +0200 Subject: [PATCH 1695/2431] Staging: rtl8723au: Use snprintf instead rsprintf Macro rsprintf is useless, remove it and use existing function snprintf instead. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman --- .../rtl8723au/hal/rtl8723a_bt-coexist.c | 75 +++++++++---------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c index cf15f80836ba..049adea5f9de 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c @@ -72,7 +72,6 @@ if ((BTCoexDbgLevel == _bt_dbg_on_)) {\ #define DCMD_Printf(...) #define RT_ASSERT(...) -#define rsprintf snprintf #define GetDefaultAdapter(padapter) padapter @@ -1455,7 +1454,7 @@ bthci_StartBeaconAndConnect( } if (pBTInfo->BtAsocEntry[CurrentAssocNum].AMPRole == AMP_BTAP_CREATOR) { - rsprintf((char *)pBTInfo->BtAsocEntry[CurrentAssocNum].BTSsidBuf, 32, "AMP-%02x-%02x-%02x-%02x-%02x-%02x", + snprintf((char *)pBTInfo->BtAsocEntry[CurrentAssocNum].BTSsidBuf, 32, "AMP-%02x-%02x-%02x-%02x-%02x-%02x", padapter->eeprompriv.mac_addr[0], padapter->eeprompriv.mac_addr[1], padapter->eeprompriv.mac_addr[2], @@ -1463,7 +1462,7 @@ bthci_StartBeaconAndConnect( padapter->eeprompriv.mac_addr[4], padapter->eeprompriv.mac_addr[5]); } else if (pBTInfo->BtAsocEntry[CurrentAssocNum].AMPRole == AMP_BTAP_JOINER) { - rsprintf((char *)pBTInfo->BtAsocEntry[CurrentAssocNum].BTSsidBuf, 32, "AMP-%02x-%02x-%02x-%02x-%02x-%02x", + snprintf((char *)pBTInfo->BtAsocEntry[CurrentAssocNum].BTSsidBuf, 32, "AMP-%02x-%02x-%02x-%02x-%02x-%02x", pBTInfo->BtAsocEntry[CurrentAssocNum].BTRemoteMACAddr[0], pBTInfo->BtAsocEntry[CurrentAssocNum].BTRemoteMACAddr[1], pBTInfo->BtAsocEntry[CurrentAssocNum].BTRemoteMACAddr[2], @@ -9377,47 +9376,47 @@ static void BTDM_Display8723ABtCoexInfo(struct rtw_adapter *padapter) u32 u4Tmp[4]; u8 antNum = Ant_x2; - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n ============[BT Coexist info]============"); + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n ============[BT Coexist info]============"); DCMD_Printf(btCoexDbgBuf); if (!rtl8723a_BT_coexist(padapter)) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); DCMD_Printf(btCoexDbgBuf); return; } antNum = btdm_BtWifiAntNum(padapter); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/%d ", "Ant mechanism PG/Now run :", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/%d ", "Ant mechanism PG/Now run :", \ ((pHalData->bt_coexist.BT_Ant_Num == Ant_x2) ? 2 : 1), ((antNum == Ant_x2) ? 2 : 1)); DCMD_Printf(btCoexDbgBuf); if (pBtMgnt->ExtConfig.bManualControl) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "[Action Manual control]!!"); + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "[Action Manual control]!!"); DCMD_Printf(btCoexDbgBuf); } else { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", "BT stack/ hci ext ver", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", "BT stack/ hci ext ver", \ ((pBtMgnt->bSupportProfile) ? "Yes" : "No"), pBtMgnt->ExtConfig.HCIExtensionVer); DCMD_Printf(btCoexDbgBuf); } - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\n %-35s = / %d", "Dot11 channel / BT channel", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\n %-35s = / %d", "Dot11 channel / BT channel", \ pBtMgnt->BTChannel); DCMD_Printf(btCoexDbgBuf); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\n %-35s = %d / %d / %d", "Wifi/BT/HS rssi", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\n %-35s = %d / %d / %d", "Wifi/BT/HS rssi", \ BTDM_GetRxSS(padapter), pHalData->bt_coexist.halCoex8723.btRssi, pHalData->dmpriv.EntryMinUndecoratedSmoothedPWDB); DCMD_Printf(btCoexDbgBuf); if (!pBtMgnt->ExtConfig.bManualControl) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\n %-35s = %s / %s ", "WIfi status", + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\n %-35s = %s / %s ", "WIfi status", ((BTDM_Legacy(padapter)) ? "Legacy" : (((BTDM_IsHT40(padapter)) ? "HT40" : "HT20"))), ((!BTDM_IsWifiBusy(padapter)) ? "idle" : ((BTDM_IsWifiUplink(padapter)) ? "uplink" : "downlink"))); DCMD_Printf(btCoexDbgBuf); if (pBtMgnt->bSupportProfile) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", "SCO/HID/PAN/A2DP", + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", "SCO/HID/PAN/A2DP", ((BTHCI_CheckProfileExist(padapter, BT_PROFILE_SCO)) ? 1 : 0), ((BTHCI_CheckProfileExist(padapter, BT_PROFILE_HID)) ? 1 : 0), ((BTHCI_CheckProfileExist(padapter, BT_PROFILE_PAN)) ? 1 : 0), @@ -9426,19 +9425,19 @@ static void BTDM_Display8723ABtCoexInfo(struct rtw_adapter *padapter) for (i = 0; i < pBtMgnt->ExtConfig.NumberOfHandle; i++) { if (pBtMgnt->ExtConfig.HCIExtensionVer >= 1) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %s", "Bt link type/spec/role", + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %s", "Bt link type/spec/role", BtProfileString[pBtMgnt->ExtConfig.linkInfo[i].BTProfile], BtSpecString[pBtMgnt->ExtConfig.linkInfo[i].BTCoreSpec], BtLinkRoleString[pBtMgnt->ExtConfig.linkInfo[i].linkRole]); DCMD_Printf(btCoexDbgBuf); btInfoExt = pHalData->bt_coexist.halCoex8723.btInfoExt; - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "A2DP rate", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "A2DP rate", \ (btInfoExt & BIT(0)) ? "Basic rate" : "EDR rate"); DCMD_Printf(btCoexDbgBuf); } else { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s", "Bt link type/spec", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s", "Bt link type/spec", \ BtProfileString[pBtMgnt->ExtConfig.linkInfo[i].BTProfile], BtSpecString[pBtMgnt->ExtConfig.linkInfo[i].BTCoreSpec]); DCMD_Printf(btCoexDbgBuf); @@ -9449,29 +9448,29 @@ static void BTDM_Display8723ABtCoexInfo(struct rtw_adapter *padapter) /* Sw mechanism */ if (!pBtMgnt->ExtConfig.bManualControl) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Sw BT Coex mechanism]============"); + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Sw BT Coex mechanism]============"); DCMD_Printf(btCoexDbgBuf); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "AGC Table", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "AGC Table", \ pBtCoex->btdm2Ant.bCurAgcTableEn); DCMD_Printf(btCoexDbgBuf); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "ADC Backoff", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "ADC Backoff", \ pBtCoex->btdm2Ant.bCurAdcBackOff); DCMD_Printf(btCoexDbgBuf); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "Low penalty RA", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "Low penalty RA", \ pBtCoex->btdm2Ant.bCurLowPenaltyRa); DCMD_Printf(btCoexDbgBuf); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "RF Rx LPF Shrink", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "RF Rx LPF Shrink", \ pBtCoex->btdm2Ant.bCurRfRxLpfShrink); DCMD_Printf(btCoexDbgBuf); } u4Tmp[0] = PHY_QueryRFReg(padapter, PathA, 0x1e, 0xff0); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "RF-A, 0x1e[11:4]/original val", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "RF-A, 0x1e[11:4]/original val", \ u4Tmp[0], pHalData->bt_coexist.BtRfRegOrigin1E); DCMD_Printf(btCoexDbgBuf); /* Fw mechanism */ if (!pBtMgnt->ExtConfig.bManualControl) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Fw BT Coex mechanism]============"); + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Fw BT Coex mechanism]============"); DCMD_Printf(btCoexDbgBuf); } if (!pBtMgnt->ExtConfig.bManualControl) { @@ -9479,57 +9478,57 @@ static void BTDM_Display8723ABtCoexInfo(struct rtw_adapter *padapter) psTdmaCase = pHalData->bt_coexist.halCoex8723.btdm1Ant.curPsTdma; else psTdmaCase = pHalData->bt_coexist.halCoex8723.btdm2Ant.curPsTdma; - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x case-%d", "PS TDMA(0x3a)", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x case-%d", "PS TDMA(0x3a)", \ pHalData->bt_coexist.fw3aVal[0], pHalData->bt_coexist.fw3aVal[1], pHalData->bt_coexist.fw3aVal[2], pHalData->bt_coexist.fw3aVal[3], pHalData->bt_coexist.fw3aVal[4], psTdmaCase); DCMD_Printf(btCoexDbgBuf); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "Decrease Bt Power", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "Decrease Bt Power", \ pBtCoex->btdm2Ant.bCurDecBtPwr); DCMD_Printf(btCoexDbgBuf); } u1Tmp = rtl8723au_read8(padapter, 0x778); u1Tmp1 = rtl8723au_read8(padapter, 0x783); u1Tmp2 = rtl8723au_read8(padapter, 0x796); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "0x778/ 0x783/ 0x796", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "0x778/ 0x783/ 0x796", \ u1Tmp, u1Tmp1, u1Tmp2); DCMD_Printf(btCoexDbgBuf); if (!pBtMgnt->ExtConfig.bManualControl) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x / 0x%x", "Sw DacSwing Ctrl/Val", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x / 0x%x", "Sw DacSwing Ctrl/Val", \ pBtCoex->btdm2Ant.bCurDacSwingOn, pBtCoex->btdm2Ant.curDacSwingLvl); DCMD_Printf(btCoexDbgBuf); } u4Tmp[0] = rtl8723au_read32(padapter, 0x880); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x880", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x880", \ u4Tmp[0]); DCMD_Printf(btCoexDbgBuf); /* Hw mechanism */ if (!pBtMgnt->ExtConfig.bManualControl) { - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Hw BT Coex mechanism]============"); + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Hw BT Coex mechanism]============"); DCMD_Printf(btCoexDbgBuf); } u1Tmp = rtl8723au_read8(padapter, 0x40); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x40", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x40", \ u1Tmp); DCMD_Printf(btCoexDbgBuf); u4Tmp[0] = rtl8723au_read32(padapter, 0x550); u1Tmp = rtl8723au_read8(padapter, 0x522); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/0x%x", "0x550(bcn contrl)/0x522", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/0x%x", "0x550(bcn contrl)/0x522", \ u4Tmp[0], u1Tmp); DCMD_Printf(btCoexDbgBuf); u4Tmp[0] = rtl8723au_read32(padapter, 0x484); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x484(rate adaptive)", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x484(rate adaptive)", \ u4Tmp[0]); DCMD_Printf(btCoexDbgBuf); u4Tmp[0] = rtl8723au_read32(padapter, 0x50); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0xc50(dig)", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0xc50(dig)", \ u4Tmp[0]); DCMD_Printf(btCoexDbgBuf); @@ -9537,7 +9536,7 @@ static void BTDM_Display8723ABtCoexInfo(struct rtw_adapter *padapter) u4Tmp[1] = rtl8723au_read32(padapter, 0xda4); u4Tmp[2] = rtl8723au_read32(padapter, 0xda8); u4Tmp[3] = rtl8723au_read32(padapter, 0xdac); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0xda0/0xda4/0xda8/0xdac(FA cnt)", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0xda0/0xda4/0xda8/0xdac(FA cnt)", \ u4Tmp[0], u4Tmp[1], u4Tmp[2], u4Tmp[3]); DCMD_Printf(btCoexDbgBuf); @@ -9545,27 +9544,27 @@ static void BTDM_Display8723ABtCoexInfo(struct rtw_adapter *padapter) u4Tmp[1] = rtl8723au_read32(padapter, 0x6c4); u4Tmp[2] = rtl8723au_read32(padapter, 0x6c8); u1Tmp = rtl8723au_read8(padapter, 0x6cc); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", \ u4Tmp[0], u4Tmp[1], u4Tmp[2], u1Tmp); DCMD_Printf(btCoexDbgBuf); /* u4Tmp = rtl8723au_read32(padapter, 0x770); */ - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d", "0x770(Hi pri Rx[31:16]/Tx[15:0])", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d", "0x770(Hi pri Rx[31:16]/Tx[15:0])", \ pHalData->bt_coexist.halCoex8723.highPriorityRx, pHalData->bt_coexist.halCoex8723.highPriorityTx); DCMD_Printf(btCoexDbgBuf); /* u4Tmp = rtl8723au_read32(padapter, 0x774); */ - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d", "0x774(Lo pri Rx[31:16]/Tx[15:0])", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d", "0x774(Lo pri Rx[31:16]/Tx[15:0])", \ pHalData->bt_coexist.halCoex8723.lowPriorityRx, pHalData->bt_coexist.halCoex8723.lowPriorityTx); DCMD_Printf(btCoexDbgBuf); /* Tx mgnt queue hang or not, 0x41b should = 0xf, ex: 0xd ==>hang */ u1Tmp = rtl8723au_read8(padapter, 0x41b); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x41b (hang chk == 0xf)", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x41b (hang chk == 0xf)", \ u1Tmp); DCMD_Printf(btCoexDbgBuf); - rsprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "lastHMEBoxNum", \ + snprintf(btCoexDbgBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "lastHMEBoxNum", \ pHalData->LastHMEBoxNum); DCMD_Printf(btCoexDbgBuf); } From 50ffcb7edca4e2f6e2204058b78cadd3d1a2e04f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 16:03:40 +0300 Subject: [PATCH 1696/2431] staging: lustre: add missing blank line after declarations Fixes checkpatch.pl WARNING:LINE_SPACING: Missing a blank line after declarations. The patch is generated using checkpatch.pl --fix-inplace: for f in $(find drivers/staging/lustre/ -type f) ; do ./scripts/checkpatch.pl --types "LINE_SPACING" --test-only=Missing \ --fix-inplace -f $f done Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- .../lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 2 + .../lustre/lnet/klnds/socklnd/socklnd.c | 2 + .../lustre/lnet/klnds/socklnd/socklnd_cb.c | 2 + .../staging/lustre/lustre/include/linux/obd.h | 1 + .../lustre/lustre/include/lustre/lustre_idl.h | 1 + .../lustre/include/lustre/lustre_user.h | 1 + .../lustre/lustre/include/lustre_cfg.h | 3 ++ .../lustre/lustre/include/lustre_disk.h | 3 ++ .../lustre/lustre/include/lustre_fid.h | 2 + .../lustre/lustre/include/lustre_lib.h | 1 + .../staging/lustre/lustre/include/obd_class.h | 2 + .../lustre/lustre/libcfs/linux/linux-crypto.c | 1 + .../lustre/libcfs/linux/linux-curproc.c | 1 + drivers/staging/lustre/lustre/libcfs/module.c | 1 + .../staging/lustre/lustre/libcfs/tracefile.c | 1 + .../lustre/lustre/llite/llite_internal.h | 1 + .../staging/lustre/lustre/llite/llite_nfs.c | 1 + drivers/staging/lustre/lustre/llite/lloop.c | 3 ++ .../staging/lustre/lustre/llite/lproc_llite.c | 1 + drivers/staging/lustre/lustre/llite/rw.c | 3 ++ drivers/staging/lustre/lustre/llite/rw26.c | 1 + drivers/staging/lustre/lustre/llite/super25.c | 2 + drivers/staging/lustre/lustre/llite/vvp_io.c | 1 + drivers/staging/lustre/lustre/lmv/lmv_obd.c | 6 +++ drivers/staging/lustre/lustre/lmv/lproc_lmv.c | 1 + drivers/staging/lustre/lustre/lov/lov_io.c | 1 + drivers/staging/lustre/lustre/lov/lov_lock.c | 3 ++ drivers/staging/lustre/lustre/lov/lov_obd.c | 5 +++ drivers/staging/lustre/lustre/lov/lov_pool.c | 1 + .../staging/lustre/lustre/mgc/mgc_request.c | 3 ++ .../staging/lustre/lustre/obdclass/cl_io.c | 2 + .../staging/lustre/lustre/obdclass/cl_lock.c | 2 + .../lustre/lustre/obdclass/cl_object.c | 2 + .../lustre/lustre/obdclass/class_obd.c | 3 ++ .../lustre/lustre/obdclass/lprocfs_status.c | 5 +++ .../lustre/lustre/obdclass/lu_object.c | 1 + .../lustre/lustre/obdclass/lustre_handles.c | 2 + .../lustre/lustre/obdclass/obd_config.c | 3 ++ .../lustre/lustre/obdclass/obd_mount.c | 2 + drivers/staging/lustre/lustre/osc/lproc_osc.c | 5 +++ drivers/staging/lustre/lustre/osc/osc_cache.c | 9 +++++ drivers/staging/lustre/lustre/osc/osc_page.c | 3 ++ drivers/staging/lustre/lustre/osc/osc_quota.c | 1 + .../staging/lustre/lustre/osc/osc_request.c | 6 +++ drivers/staging/lustre/lustre/ptlrpc/client.c | 2 + drivers/staging/lustre/lustre/ptlrpc/import.c | 2 + .../lustre/lustre/ptlrpc/llog_client.c | 1 + .../lustre/lustre/ptlrpc/lproc_ptlrpc.c | 2 + .../lustre/lustre/ptlrpc/pack_generic.c | 37 +++++++++++++++++++ drivers/staging/lustre/lustre/ptlrpc/pinger.c | 2 + drivers/staging/lustre/lustre/ptlrpc/sec.c | 1 + .../staging/lustre/lustre/ptlrpc/sec_null.c | 1 + .../staging/lustre/lustre/ptlrpc/service.c | 3 ++ 53 files changed, 154 insertions(+) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index 8ab73eece620..3ffffbe22ca7 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -2154,6 +2154,7 @@ kiblnd_passive_connect(struct rdma_cm_id *cmid, void *priv, int priv_nob) unsigned long flags; int rc; struct sockaddr_in *peer_addr; + LASSERT(!in_interrupt()); /* cmid inherits 'context' from the corresponding listener id */ @@ -2169,6 +2170,7 @@ kiblnd_passive_connect(struct rdma_cm_id *cmid, void *priv, int priv_nob) if (*kiblnd_tunables.kib_require_priv_port && ntohs(peer_addr->sin_port) >= PROT_SOCK) { __u32 ip = ntohl(peer_addr->sin_addr.s_addr); + CERROR("Peer's port (%pI4h:%hu) is not privileged\n", &ip, ntohs(peer_addr->sin_port)); goto failed; diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index 904d15837cbb..1b472f493a62 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c @@ -2440,6 +2440,7 @@ ksocknal_base_startup(void) for (i = 0; i < *ksocknal_tunables.ksnd_nconnds; i++) { char name[16]; + spin_lock_bh(&ksocknal_data.ksnd_connd_lock); ksocknal_data.ksnd_connd_starting++; spin_unlock_bh(&ksocknal_data.ksnd_connd_lock); @@ -2705,6 +2706,7 @@ ksocknal_start_schedulers(struct ksock_sched_info *info) long id; char name[20]; ksock_sched_t *sched; + id = KSOCK_THREAD_ID(info->ksi_cpt, info->ksi_nthreads + i); sched = &info->ksi_scheds[KSOCK_THREAD_SID(id)]; snprintf(name, sizeof(name), "socknal_sd%02d_%02d", diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index 354c8105f9a0..8fbd89e7226e 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c @@ -299,6 +299,7 @@ ksocknal_recv_kiov (ksock_conn_t *conn) lnet_kiov_t *kiov = conn->ksnc_rx_kiov; int nob; int rc; + LASSERT(conn->ksnc_rx_nkiov > 0); /* Never touch conn->ksnc_rx_kiov or change connection @@ -2240,6 +2241,7 @@ ksocknal_find_timed_out_conn (ksock_peer_t *peer) list_for_each (ctmp, &peer->ksnp_conns) { int error; + conn = list_entry (ctmp, ksock_conn_t, ksnc_list); /* Don't need the {get,put}connsock dance to deref ksnc_sock */ diff --git a/drivers/staging/lustre/lustre/include/linux/obd.h b/drivers/staging/lustre/lustre/include/linux/obd.h index 2817e88e014a..1d6750067f2f 100644 --- a/drivers/staging/lustre/lustre/include/linux/obd.h +++ b/drivers/staging/lustre/lustre/include/linux/obd.h @@ -70,6 +70,7 @@ static inline void __client_obd_list_lock(client_obd_lock_t *lock, const char *func, int line) { unsigned long cur = jiffies; + while (1) { if (spin_trylock(&lock->lock)) { LASSERT(lock->task == NULL); diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index c4d6c56fc7df..a9c60ffbe795 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -1006,6 +1006,7 @@ static inline int lu_dirent_calc_size(int namelen, __u16 attr) if (attr & LUDA_TYPE) { const unsigned align = sizeof(struct luda_type) - 1; + size = (sizeof(struct lu_dirent) + namelen + align) & ~align; size += sizeof(struct luda_type); } else diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index 1a41366322fe..77d987a18e0b 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -447,6 +447,7 @@ static inline char *obd_uuid2str(const struct obd_uuid *uuid) /* Obviously not safe, but for printfs, no real harm done... we're always null-terminated, even in a race. */ static char temp[sizeof(*uuid)]; + memcpy(temp, uuid->uuid, sizeof(*uuid) - 1); temp[sizeof(*uuid) - 1] = '\0'; return temp; diff --git a/drivers/staging/lustre/lustre/include/lustre_cfg.h b/drivers/staging/lustre/lustre/include/lustre_cfg.h index c80d78e5b30d..fcc7401c90d8 100644 --- a/drivers/staging/lustre/lustre/include/lustre_cfg.h +++ b/drivers/staging/lustre/lustre/include/lustre_cfg.h @@ -157,6 +157,7 @@ static inline void *lustre_cfg_buf(struct lustre_cfg *lcfg, int index) int i; int offset; int bufcount; + LASSERT (lcfg != NULL); LASSERT (index >= 0); @@ -174,6 +175,7 @@ static inline void lustre_cfg_bufs_init(struct lustre_cfg_bufs *bufs, struct lustre_cfg *lcfg) { int i; + bufs->lcfg_bufcount = lcfg->lcfg_bufcount; for (i = 0; i < bufs->lcfg_bufcount; i++) { bufs->lcfg_buflen[i] = lcfg->lcfg_buflens[i]; @@ -200,6 +202,7 @@ static inline char *lustre_cfg_string(struct lustre_cfg *lcfg, int index) int last = min((int)lcfg->lcfg_buflens[index], cfs_size_round(lcfg->lcfg_buflens[index]) - 1); char lost = s[last]; + s[last] = '\0'; if (lost != '\0') { CWARN("Truncated buf %d to '%s' (lost '%c'...)\n", diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index f1dc967a2d48..d06ce3234e0b 100644 --- a/drivers/staging/lustre/lustre/include/lustre_disk.h +++ b/drivers/staging/lustre/lustre/include/lustre_disk.h @@ -223,6 +223,7 @@ static inline void check_lcd(char *obd_name, int index, struct lsd_client_data *lcd) { int length = sizeof(lcd->lcd_uuid); + if (strnlen((char *)lcd->lcd_uuid, length) == length) { lcd->lcd_uuid[length - 1] = '\0'; @@ -236,6 +237,7 @@ static inline void lsd_le_to_cpu(struct lr_server_data *buf, struct lr_server_data *lsd) { int i; + memcpy(lsd->lsd_uuid, buf->lsd_uuid, sizeof(lsd->lsd_uuid)); lsd->lsd_last_transno = le64_to_cpu(buf->lsd_last_transno); lsd->lsd_compat14 = le64_to_cpu(buf->lsd_compat14); @@ -263,6 +265,7 @@ static inline void lsd_cpu_to_le(struct lr_server_data *lsd, struct lr_server_data *buf) { int i; + memcpy(buf->lsd_uuid, lsd->lsd_uuid, sizeof(buf->lsd_uuid)); buf->lsd_last_transno = cpu_to_le64(lsd->lsd_last_transno); buf->lsd_compat14 = cpu_to_le64(lsd->lsd_compat14); diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index 19d917588b4c..47c3f3750240 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fid.h +++ b/drivers/staging/lustre/lustre/include/lustre_fid.h @@ -532,6 +532,7 @@ static inline void ost_fid_build_resid(const struct lu_fid *fid, { if (fid_is_mdt0(fid) || fid_is_idif(fid)) { struct ost_id oi; + oi.oi.oi_id = 0; /* gcc 4.7.2 complains otherwise */ if (fid_to_ostid(fid, &oi) != 0) return; @@ -547,6 +548,7 @@ static inline void ost_fid_from_resid(struct lu_fid *fid, if (fid_seq_is_mdt0(name->name[LUSTRE_RES_ID_VER_OID_OFF])) { /* old resid */ struct ost_id oi; + ostid_set_seq(&oi, name->name[LUSTRE_RES_ID_VER_OID_OFF]); ostid_set_id(&oi, name->name[LUSTRE_RES_ID_SEQ_OFF]); ostid_to_fid(fid, &oi, 0); diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index 35175fd3da88..cc3e8d1dc092 100644 --- a/drivers/staging/lustre/lustre/include/lustre_lib.h +++ b/drivers/staging/lustre/lustre/include/lustre_lib.h @@ -177,6 +177,7 @@ struct obd_ioctl_hdr { static inline int obd_ioctl_packlen(struct obd_ioctl_data *data) { int len = cfs_size_round(sizeof(struct obd_ioctl_data)); + len += cfs_size_round(data->ioc_inllen1); len += cfs_size_round(data->ioc_inllen2); len += cfs_size_round(data->ioc_inllen3); diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 82f1a2670928..47230345fa90 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -486,6 +486,7 @@ static inline int obd_setup(struct obd_device *obd, struct lustre_cfg *cfg) if (ldt != NULL) { struct lu_context session_ctx; struct lu_env env; + lu_context_init(&session_ctx, LCT_SESSION); session_ctx.lc_thread = NULL; lu_context_enter(&session_ctx); @@ -577,6 +578,7 @@ static inline void obd_cleanup_client_import(struct obd_device *obd) down_write(&obd->u.cli.cl_sem); if (obd->u.cli.cl_import) { struct obd_import *imp; + imp = obd->u.cli.cl_import; CDEBUG(D_CONFIG, "%s: client import never connected\n", obd->obd_name); diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c index 328a27860411..f6de3600d5f3 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c @@ -224,6 +224,7 @@ static void cfs_crypto_performance_test(unsigned char alg_id, cfs_crypto_hash_name(alg_id), err); } else { unsigned long tmp; + tmp = ((bcount * buf_len / jiffies_to_msecs(end - start)) * 1000) / (1024 * 1024); cfs_crypto_hash_speeds[alg_id] = (int)tmp; diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c index 277f6b890e09..c74c80915dca 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c @@ -91,6 +91,7 @@ static void cfs_kernel_cap_pack(kernel_cap_t kcap, cfs_cap_t *cap) cfs_cap_t cfs_curproc_cap_pack(void) { cfs_cap_t cap; + cfs_kernel_cap_pack(current_cap(), &cap); return cap; } diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c index 5e4262a2e6f3..379b2dba6b04 100644 --- a/drivers/staging/lustre/lustre/libcfs/module.c +++ b/drivers/staging/lustre/lustre/libcfs/module.c @@ -293,6 +293,7 @@ static int libcfs_ioctl_int(struct cfs_psdev_file *pfile, unsigned long cmd, default: { struct libcfs_ioctl_handler *hand; + err = -EINVAL; down_read(&ioctl_list_sem); list_for_each_entry(hand, &ioctl_list, item) { diff --git a/drivers/staging/lustre/lustre/libcfs/tracefile.c b/drivers/staging/lustre/lustre/libcfs/tracefile.c index 5a2e5ea00570..ff6c2c55b2e7 100644 --- a/drivers/staging/lustre/lustre/libcfs/tracefile.c +++ b/drivers/staging/lustre/lustre/libcfs/tracefile.c @@ -652,6 +652,7 @@ void cfs_trace_debug_print(void) while (p < ((char *)page_address(page) + tage->used)) { struct ptldebug_header *hdr; int len; + hdr = (void *)p; p += sizeof(*hdr); file = p; diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 4c20b1e1a0ef..d294145ec57d 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -995,6 +995,7 @@ static inline struct obd_export *ll_s2mdexp(struct super_block *sb) static inline struct client_obd *sbi2mdc(struct ll_sb_info *sbi) { struct obd_device *obd = sbi->ll_md_exp->exp_obd; + if (obd == NULL) LBUG(); return &obd->u.cli; diff --git a/drivers/staging/lustre/lustre/llite/llite_nfs.c b/drivers/staging/lustre/lustre/llite/llite_nfs.c index f992eda18235..e578a1130ad1 100644 --- a/drivers/staging/lustre/lustre/llite/llite_nfs.c +++ b/drivers/staging/lustre/lustre/llite/llite_nfs.c @@ -49,6 +49,7 @@ __u32 get_uuid2int(const char *name, int len) { __u32 key0 = 0x12a3fe2d, key1 = 0x37abe8f9; + while (len--) { __u32 key = key1 + (key0 ^ (*name++ * 7152373)); diff --git a/drivers/staging/lustre/lustre/llite/lloop.c b/drivers/staging/lustre/lustre/llite/lloop.c index 5f0d80cc9718..90b4233df376 100644 --- a/drivers/staging/lustre/lustre/llite/lloop.c +++ b/drivers/staging/lustre/lustre/llite/lloop.c @@ -374,9 +374,11 @@ err: static inline void loop_handle_bio(struct lloop_device *lo, struct bio *bio) { int ret; + ret = do_bio_lustrebacked(lo, bio); while (bio) { struct bio *tmp = bio->bi_next; + bio->bi_next = NULL; bio->bi_error = ret; bio_endio(bio); @@ -430,6 +432,7 @@ static int loop_thread(void *data) wait_event(lo->lo_bh_wait, loop_active(lo)); if (!atomic_read(&lo->lo_pending)) { int exiting = 0; + spin_lock_irq(&lo->lo_lock); exiting = (lo->lo_state == LLOOP_RUNDOWN); spin_unlock_irq(&lo->lo_lock); diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c index 08d32027d7be..e7b94f4ca6bc 100644 --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c @@ -1017,6 +1017,7 @@ int ldebugfs_register_mountpoint(struct dentry *parent, for (id = 0; id < LPROC_LL_FILE_OPCODES; id++) { __u32 type = llite_opcode_table[id].type; void *ptr = NULL; + if (type & LPROCFS_TYPE_REGS) ptr = "regs"; else if (type & LPROCFS_TYPE_BYTES) diff --git a/drivers/staging/lustre/lustre/llite/rw.c b/drivers/staging/lustre/lustre/llite/rw.c index 71be1947dc37..377947a011ce 100644 --- a/drivers/staging/lustre/lustre/llite/rw.c +++ b/drivers/staging/lustre/lustre/llite/rw.c @@ -327,6 +327,7 @@ static unsigned long ll_ra_count_get(struct ll_sb_info *sbi, * the RPC boundary from needing an extra read RPC. */ if (ria->ria_pages == 0) { long beyond_rpc = (ria->ria_start + ret) % PTLRPC_MAX_BRW_PAGES; + if (/* beyond_rpc != 0 && */ beyond_rpc < ret) ret -= beyond_rpc; } @@ -343,6 +344,7 @@ out: void ll_ra_count_put(struct ll_sb_info *sbi, unsigned long len) { struct ll_ra_info *ra = &sbi->ll_ra_info; + atomic_sub(len, &ra->ra_cur_pages); } @@ -355,6 +357,7 @@ static void ll_ra_stats_inc_sbi(struct ll_sb_info *sbi, enum ra_stat which) void ll_ra_stats_inc(struct address_space *mapping, enum ra_stat which) { struct ll_sb_info *sbi = ll_i2sbi(mapping->host); + ll_ra_stats_inc_sbi(sbi, which); } diff --git a/drivers/staging/lustre/lustre/llite/rw26.c b/drivers/staging/lustre/lustre/llite/rw26.c index b17b7cea582c..3da4c01e2159 100644 --- a/drivers/staging/lustre/lustre/llite/rw26.c +++ b/drivers/staging/lustre/lustre/llite/rw26.c @@ -418,6 +418,7 @@ static ssize_t ll_direct_IO_26(struct kiocb *iocb, struct iov_iter *iter, result = iov_iter_get_pages_alloc(iter, &pages, count, &offs); if (likely(result > 0)) { int n = DIV_ROUND_UP(result + offs, PAGE_SIZE); + result = ll_direct_IO_26_seg(env, io, iov_iter_rw(iter), inode, file->f_mapping, result, file_offset, pages, diff --git a/drivers/staging/lustre/lustre/llite/super25.c b/drivers/staging/lustre/lustre/llite/super25.c index b35e02a49ba3..dae1f9caf0db 100644 --- a/drivers/staging/lustre/lustre/llite/super25.c +++ b/drivers/staging/lustre/lustre/llite/super25.c @@ -51,6 +51,7 @@ static struct kmem_cache *ll_inode_cachep; static struct inode *ll_alloc_inode(struct super_block *sb) { struct ll_inode_info *lli; + ll_stats_ops_tally(ll_s2sbi(sb), LPROC_LL_ALLOC_INODE, 1); OBD_SLAB_ALLOC_PTR_GFP(lli, ll_inode_cachep, GFP_NOFS); if (lli == NULL) @@ -64,6 +65,7 @@ static void ll_inode_destroy_callback(struct rcu_head *head) { struct inode *inode = container_of(head, struct inode, i_rcu); struct ll_inode_info *ptr = ll_i2info(inode); + OBD_SLAB_FREE_PTR(ptr, ll_inode_cachep); } diff --git a/drivers/staging/lustre/lustre/llite/vvp_io.c b/drivers/staging/lustre/lustre/llite/vvp_io.c index cf264de0e531..41947ac39690 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_io.c +++ b/drivers/staging/lustre/lustre/llite/vvp_io.c @@ -1039,6 +1039,7 @@ static int vvp_io_commit_write(const struct lu_env *env, need_clip = false; } else if (last_index == pg->cp_index) { int size_to = i_size_read(inode) & ~CFS_PAGE_MASK; + if (to < size_to) to = size_to; } diff --git a/drivers/staging/lustre/lustre/lmv/lmv_obd.c b/drivers/staging/lustre/lustre/lmv/lmv_obd.c index 7e6a06075aab..397cf812ba7a 100644 --- a/drivers/staging/lustre/lustre/lmv/lmv_obd.c +++ b/drivers/staging/lustre/lustre/lmv/lmv_obd.c @@ -560,6 +560,7 @@ int lmv_check_connect(struct obd_device *obd) out_disc: while (i-- > 0) { int rc2; + tgt = lmv->tgts[i]; if (tgt == NULL) continue; @@ -1084,6 +1085,7 @@ static int lmv_iocontrol(unsigned int cmd, struct obd_export *exp, } case LL_IOC_HSM_CT_START: { struct lustre_kernelcomm *lk = karg; + if (lk->lk_flags & LK_FLG_STOP) rc = lmv_hsm_ct_unregister(lmv, cmd, len, lk, uarg); else @@ -1335,6 +1337,7 @@ static int lmv_cleanup(struct obd_device *obd) fld_client_fini(&lmv->lmv_fld); if (lmv->tgts != NULL) { int i; + for (i = 0; i < lmv->desc.ld_tgt_count; i++) { if (lmv->tgts[i] == NULL) continue; @@ -1813,6 +1816,7 @@ lmv_getattr_name(struct obd_export *exp, struct md_op_data *op_data, if (body->valid & OBD_MD_MDS) { struct lu_fid rid = body->fid1; + CDEBUG(D_INODE, "Request attrs for "DFID"\n", PFID(&rid)); @@ -2692,6 +2696,7 @@ static int lmv_quotactl(struct obd_device *unused, struct obd_export *exp, curspace = curinodes = 0; for (i = 0; i < lmv->desc.ld_tgt_count; i++) { int err; + tgt = lmv->tgts[i]; if (tgt == NULL || tgt->ltd_exp == NULL || tgt->ltd_active == 0) @@ -2727,6 +2732,7 @@ static int lmv_quotacheck(struct obd_device *unused, struct obd_export *exp, for (i = 0; i < lmv->desc.ld_tgt_count; i++) { int err; + tgt = lmv->tgts[i]; if (tgt == NULL || tgt->ltd_exp == NULL || !tgt->ltd_active) { CERROR("lmv idx %d inactive\n", i); diff --git a/drivers/staging/lustre/lustre/lmv/lproc_lmv.c b/drivers/staging/lustre/lustre/lmv/lproc_lmv.c index 311fc1b70c4d..8f9e8ee09e32 100644 --- a/drivers/staging/lustre/lustre/lmv/lproc_lmv.c +++ b/drivers/staging/lustre/lustre/lmv/lproc_lmv.c @@ -149,6 +149,7 @@ static void *lmv_tgt_seq_start(struct seq_file *p, loff_t *pos) { struct obd_device *dev = p->private; struct lmv_obd *lmv = &dev->u.lmv; + return (*pos >= lmv->desc.ld_tgt_count) ? NULL : lmv->tgts[*pos]; } diff --git a/drivers/staging/lustre/lustre/lov/lov_io.c b/drivers/staging/lustre/lustre/lov/lov_io.c index 489227ae1256..62360d874cd6 100644 --- a/drivers/staging/lustre/lustre/lov/lov_io.c +++ b/drivers/staging/lustre/lustre/lov/lov_io.c @@ -330,6 +330,7 @@ static void lov_io_slice_init(struct lov_io *lio, case CIT_FAULT: { pgoff_t index = io->u.ci_fault.ft_index; + lio->lis_pos = cl_offset(io->ci_obj, index); lio->lis_endpos = cl_offset(io->ci_obj, index + 1); break; diff --git a/drivers/staging/lustre/lustre/lov/lov_lock.c b/drivers/staging/lustre/lustre/lov/lov_lock.c index a6938085ff24..173ae840950a 100644 --- a/drivers/staging/lustre/lustre/lov/lov_lock.c +++ b/drivers/staging/lustre/lustre/lov/lov_lock.c @@ -227,6 +227,7 @@ static int lov_sublock_lock(const struct lu_env *env, result = CLO_REPEAT; } else if (lsep) { struct lov_sublock_env *subenv; + subenv = lov_sublock_env_get(env, parent, lls); if (IS_ERR(subenv)) { lov_sublock_unlock(env, sublock, @@ -981,6 +982,7 @@ static int lov_lock_fits_into(const struct lu_env *env, result = cl_lock_ext_match(&lov->lls_orig, need); else if (lov->lls_nr == 1) { struct cl_lock_descr *got = &lov->lls_sub[0].sub_got; + result = lov_lock_stripe_is_matching(env, cl2lov(slice->cls_obj), lov->lls_sub[0].sub_stripe, @@ -1151,6 +1153,7 @@ static void lov_empty_lock_fini(const struct lu_env *env, struct cl_lock_slice *slice) { struct lov_lock *lck = cl2lov_lock(slice); + OBD_SLAB_FREE_PTR(lck, lov_lock_kmem); } diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index 5c69ce9b9402..c8657076a96d 100644 --- a/drivers/staging/lustre/lustre/lov/lov_obd.c +++ b/drivers/staging/lustre/lustre/lov/lov_obd.c @@ -85,6 +85,7 @@ static void lov_putref(struct obd_device *obd) LIST_HEAD(kill); int i; struct lov_tgt_desc *tgt, *n; + CDEBUG(D_CONFIG, "destroying %d lov targets\n", lov->lov_death_row); for (i = 0; i < lov->desc.ld_tgt_count; i++) { @@ -833,6 +834,7 @@ static int lov_precleanup(struct obd_device *obd, enum obd_cleanup_stage stage) switch (stage) { case OBD_CLEANUP_EARLY: { int i; + for (i = 0; i < lov->desc.ld_tgt_count; i++) { if (!lov->lov_tgts[i] || !lov->lov_tgts[i]->ltd_active) continue; @@ -869,6 +871,7 @@ static int lov_cleanup(struct obd_device *obd) lprocfs_obd_cleanup(obd); if (lov->lov_tgts) { int i; + obd_getref(obd); for (i = 0; i < lov->desc.ld_tgt_count; i++) { if (!lov->lov_tgts[i]) @@ -1256,6 +1259,7 @@ static int lov_setattr_async(struct obd_export *exp, struct obd_info *oinfo, /* If we are not waiting for responses on async requests, return. */ if (rc || !rqset || list_empty(&rqset->set_requests)) { int err; + if (rc) atomic_set(&set->set_completes, 0); err = lov_fini_setattr_set(set); @@ -1348,6 +1352,7 @@ static int lov_statfs_async(struct obd_export *exp, struct obd_info *oinfo, if (rc || list_empty(&rqset->set_requests)) { int err; + if (rc) atomic_set(&set->set_completes, 0); err = lov_fini_statfs_set(set); diff --git a/drivers/staging/lustre/lustre/lov/lov_pool.c b/drivers/staging/lustre/lustre/lov/lov_pool.c index f9963481c91b..d3c6aa7645c7 100644 --- a/drivers/staging/lustre/lustre/lov/lov_pool.c +++ b/drivers/staging/lustre/lustre/lov/lov_pool.c @@ -282,6 +282,7 @@ static int pool_proc_open(struct inode *inode, struct file *file) rc = seq_open(file, &pool_proc_ops); if (!rc) { struct seq_file *s = file->private_data; + s->private = inode->i_private; } return rc; diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index 3e9cca026306..76b16f4f95c4 100644 --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c +++ b/drivers/staging/lustre/lustre/mgc/mgc_request.c @@ -955,6 +955,7 @@ static int mgc_set_info_async(const struct lu_env *env, struct obd_export *exp, if (KEY_IS(KEY_INIT_RECOV_BACKUP)) { struct obd_import *imp = class_exp2cliimp(exp); int value; + if (vallen != sizeof(int)) return -EINVAL; value = *(int *)val; @@ -1058,6 +1059,7 @@ static int mgc_import_event(struct obd_device *obd, break; case IMP_EVENT_INVALIDATE: { struct ldlm_namespace *ns = obd->obd_namespace; + ldlm_namespace_cleanup(ns, LDLM_FL_LOCAL_ONLY); break; } @@ -1648,6 +1650,7 @@ static int mgc_process_config(struct obd_device *obd, u32 len, void *buf) rc = mgc_process_log(obd, cld->cld_recover); } else { struct config_llog_data *cir = cld->cld_recover; + cld->cld_recover = NULL; config_log_put(cir); } diff --git a/drivers/staging/lustre/lustre/obdclass/cl_io.c b/drivers/staging/lustre/lustre/obdclass/cl_io.c index ef66ac9a5115..6b1043548d85 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_io.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_io.c @@ -715,6 +715,7 @@ static int cl_page_in_io(const struct cl_page *page, const struct cl_io *io) */ if (!cl_io_is_append(io)) { const struct cl_io_rw_common *crw = &(io->u.ci_rw); + start = cl_offset(page->cp_obj, idx); end = cl_offset(page->cp_obj, idx + 1); result = crw->crw_pos < end && @@ -1311,6 +1312,7 @@ static void cl_req_free(const struct lu_env *env, struct cl_req *req) if (req->crq_o != NULL) { for (i = 0; i < req->crq_nrobjs; ++i) { struct cl_object *obj = req->crq_o[i].ro_obj; + if (obj != NULL) { lu_object_ref_del_at(&obj->co_lu, &req->crq_o[i].ro_obj_ref, diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index b15c990dec6a..0c734f12f21d 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c @@ -129,6 +129,7 @@ static void cl_lock_trace0(int level, const struct lu_env *env, const char *func, const int line) { struct cl_object_header *h = cl_object_header(lock->cll_descr.cld_obj); + CDEBUG(level, "%s: %p@(%d %p %d %d %d %d %d %lx)(%p/%d/%d) at %s():%d\n", prefix, lock, atomic_read(&lock->cll_ref), lock->cll_guarder, lock->cll_depth, @@ -1098,6 +1099,7 @@ int cl_use_try(const struct lu_env *env, struct cl_lock *lock, int atomic) /* @atomic means back-off-on-failure. */ if (atomic) { int rc; + rc = cl_unuse_try_internal(env, lock); /* Vet the results. */ if (rc < 0 && result > 0) diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index 89ff7f1fb0fc..cf752aa96347 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -567,6 +567,7 @@ static unsigned cl_env_hops_hash(struct cfs_hash *lh, static void *cl_env_hops_obj(struct hlist_node *hn) { struct cl_env *cle = hlist_entry(hn, struct cl_env, ce_node); + LASSERT(cle->ce_magic == &cl_env_init0); return (void *)cle; } @@ -582,6 +583,7 @@ static int cl_env_hops_keycmp(const void *key, struct hlist_node *hn) static void cl_env_hops_noop(struct cfs_hash *hs, struct hlist_node *hn) { struct cl_env *cle = hlist_entry(hn, struct cl_env, ce_node); + LASSERT(cle->ce_magic == &cl_env_init0); } diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index e8a155809872..a1a492ff62fc 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -477,6 +477,7 @@ extern int class_procfs_clean(void); static int __init init_obdclass(void) { int i, err; + int lustre_register_fs(void); LCONSOLE_INFO("Lustre: Build Version: "BUILD_VERSION"\n"); @@ -548,6 +549,7 @@ static int __init init_obdclass(void) static void cleanup_obdclass(void) { int i; + int lustre_unregister_fs(void); lustre_unregister_fs(); @@ -555,6 +557,7 @@ static void cleanup_obdclass(void) misc_deregister(&obd_psdev); for (i = 0; i < class_devno_max(); i++) { struct obd_device *obd = class_num2obd(i); + if (obd && obd->obd_set_up && OBT(obd) && OBP(obd, detach)) { /* XXX should this call generic detach otherwise? */ diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index c8a5ff497143..ba56187b4c88 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -672,6 +672,7 @@ int lprocfs_rd_import(struct seq_file *m, void *data) if (ret.lc_count != 0) { /* first argument to do_div MUST be __u64 */ __u64 sum = ret.lc_sum; + do_div(sum, ret.lc_count); ret.lc_sum = sum; } else @@ -718,6 +719,7 @@ int lprocfs_rd_import(struct seq_file *m, void *data) if (ret.lc_sum > 0 && ret.lc_count > 0) { /* first argument to do_div MUST be __u64 */ __u64 sum = ret.lc_sum; + do_div(sum, ret.lc_count); ret.lc_sum = sum; seq_printf(m, @@ -733,6 +735,7 @@ int lprocfs_rd_import(struct seq_file *m, void *data) if (ret.lc_sum > 0 && ret.lc_count != 0) { /* first argument to do_div MUST be __u64 */ __u64 sum = ret.lc_sum; + do_div(sum, ret.lc_count); ret.lc_sum = sum; seq_printf(m, @@ -783,6 +786,7 @@ EXPORT_SYMBOL(lprocfs_rd_state); int lprocfs_at_hist_helper(struct seq_file *m, struct adaptive_timeout *at) { int i; + for (i = 0; i < AT_BINS; i++) seq_printf(m, "%3u ", at->at_hist[i]); seq_printf(m, "\n"); @@ -1314,6 +1318,7 @@ int lprocfs_write_frac_u64_helper(const char *buffer, unsigned long count, if (*end == '.') { int i; + pbuf = end + 1; /* need to limit frac_d to a __u32 */ diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index a801b6cc518a..6a6ddb4c34dc 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -1054,6 +1054,7 @@ EXPORT_SYMBOL(lu_site_fini); int lu_site_init_finish(struct lu_site *s) { int result; + mutex_lock(&lu_sites_guard); result = lu_context_refill(&lu_shrink_env.le_ctx); if (result == 0) diff --git a/drivers/staging/lustre/lustre/obdclass/lustre_handles.c b/drivers/staging/lustre/lustre/obdclass/lustre_handles.c index d19ec15cb463..b526e7ef0c0e 100644 --- a/drivers/staging/lustre/lustre/obdclass/lustre_handles.c +++ b/drivers/staging/lustre/lustre/obdclass/lustre_handles.c @@ -126,6 +126,7 @@ static void class_handle_unhash_nolock(struct portals_handle *h) void class_handle_unhash(struct portals_handle *h) { struct handle_bucket *bucket; + bucket = handle_hash + (h->h_cookie & HANDLE_HASH_MASK); spin_lock(&bucket->lock); @@ -233,6 +234,7 @@ static int cleanup_all_handles(void) void class_handle_cleanup(void) { int count; + LASSERT(handle_hash != NULL); count = cleanup_all_handles(); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index f0140155bd5d..68cb3dff985f 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -851,6 +851,7 @@ int class_process_config(struct lustre_cfg *lcfg) } case LCFG_MARKER: { struct cfg_marker *marker; + marker = lustre_cfg_buf(lcfg, 1); CDEBUG(D_IOCTL, "marker %d (%#x) %.16s %s\n", marker->cm_step, marker->cm_flags, marker->cm_tgtname, marker->cm_comment); @@ -1015,6 +1016,7 @@ int class_process_proc_param(char *prefix, struct lprocfs_vars *lvars, rc = -EROFS; if (var->fops && var->fops->write) { mm_segment_t oldfs; + oldfs = get_fs(); set_fs(KERNEL_DS); rc = (var->fops->write)(&fakefile, sval, @@ -1091,6 +1093,7 @@ int class_config_llog_handler(const struct lu_env *env, /* Figure out config state info */ if (lcfg->lcfg_command == LCFG_MARKER) { struct cfg_marker *marker = lustre_cfg_buf(lcfg, 1); + lustre_swab_cfg_marker(marker, swab, LUSTRE_CFG_BUFLEN(lcfg, 1)); CDEBUG(D_CONFIG, "Marker, inst_flg=%#x mark_flg=%#x\n", diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index de42acd56b91..0c4dbb1304ee 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -177,6 +177,7 @@ static int lustre_start_simple(char *obdname, char *type, char *uuid, char *s1, char *s2, char *s3, char *s4) { int rc; + CDEBUG(D_MOUNT, "Starting obd %s (typ=%s)\n", obdname, type); rc = do_lcfg(obdname, 0, LCFG_ATTACH, type, uuid, NULL, NULL); @@ -979,6 +980,7 @@ static int lmd_parse(char *options, struct lustre_mount_data *lmd) } else if (strncmp(s1, "param=", 6) == 0) { int length; char *tail = strchr(s1 + 6, ','); + if (tail == NULL) length = strlen(s1); else diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index 2a16046aac20..1ad07f6c1b7a 100644 --- a/drivers/staging/lustre/lustre/osc/lproc_osc.c +++ b/drivers/staging/lustre/lustre/osc/lproc_osc.c @@ -377,6 +377,7 @@ static int osc_checksum_type_seq_show(struct seq_file *m, void *v) { struct obd_device *obd = m->private; int i; + DECLARE_CKSUM_NAME; if (obd == NULL) @@ -400,6 +401,7 @@ static ssize_t osc_checksum_type_seq_write(struct file *file, { struct obd_device *obd = ((struct seq_file *)file->private_data)->private; int i; + DECLARE_CKSUM_NAME; char kernbuf[10]; @@ -627,6 +629,7 @@ static int osc_rpc_stats_seq_show(struct seq_file *seq, void *v) for (i = 0; i < OBD_HIST_MAX; i++) { unsigned long r = cli->cl_read_page_hist.oh_buckets[i]; unsigned long w = cli->cl_write_page_hist.oh_buckets[i]; + read_cum += r; write_cum += w; seq_printf(seq, "%d:\t\t%10lu %3lu %3lu | %10lu %3lu %3lu\n", @@ -650,6 +653,7 @@ static int osc_rpc_stats_seq_show(struct seq_file *seq, void *v) for (i = 0; i < OBD_HIST_MAX; i++) { unsigned long r = cli->cl_read_rpc_hist.oh_buckets[i]; unsigned long w = cli->cl_write_rpc_hist.oh_buckets[i]; + read_cum += r; write_cum += w; seq_printf(seq, "%d:\t\t%10lu %3lu %3lu | %10lu %3lu %3lu\n", @@ -673,6 +677,7 @@ static int osc_rpc_stats_seq_show(struct seq_file *seq, void *v) for (i = 0; i < OBD_HIST_MAX; i++) { unsigned long r = cli->cl_read_offset_hist.oh_buckets[i]; unsigned long w = cli->cl_write_offset_hist.oh_buckets[i]; + read_cum += r; write_cum += w; seq_printf(seq, "%d:\t\t%10lu %3lu %3lu | %10lu %3lu %3lu\n", diff --git a/drivers/staging/lustre/lustre/osc/osc_cache.c b/drivers/staging/lustre/lustre/osc/osc_cache.c index 62da06157665..4d235972e5cc 100644 --- a/drivers/staging/lustre/lustre/osc/osc_cache.c +++ b/drivers/staging/lustre/lustre/osc/osc_cache.c @@ -247,6 +247,7 @@ static int osc_extent_sanity_check0(struct osc_extent *ext, if (ext->oe_osclock) { struct cl_lock_descr *descr; + descr = &ext->oe_osclock->cll_descr; if (!(descr->cld_start <= ext->oe_start && descr->cld_end >= ext->oe_max_end)) { @@ -475,6 +476,7 @@ static void osc_extent_insert(struct osc_object *obj, struct osc_extent *ext) static void osc_extent_erase(struct osc_extent *ext) { struct osc_object *obj = ext->oe_obj; + LASSERT(osc_object_is_locked(obj)); if (ext->oe_intree) { rb_erase(&ext->oe_node, &obj->oo_root); @@ -868,6 +870,7 @@ int osc_extent_finish(const struct lu_env *env, struct osc_extent *ext, int offset = oap->oap_page_off & ~CFS_PAGE_MASK; int count = oap->oap_count + (offset & (blocksize - 1)); int end = (offset + oap->oap_count) & (blocksize - 1); + if (end) count += blocksize - end; @@ -1510,6 +1513,7 @@ static int osc_enter_cache_try(struct client_obd *cli, static int ocw_granted(struct client_obd *cli, struct osc_cache_waiter *ocw) { int rc; + client_obd_list_lock(&cli->cl_loi_list_lock); rc = list_empty(&ocw->ocw_entry); client_obd_list_unlock(&cli->cl_loi_list_lock); @@ -1632,6 +1636,7 @@ wakeup: static int osc_max_rpc_in_flight(struct client_obd *cli, struct osc_object *osc) { int hprpc = !!list_empty(&osc->oo_hp_exts); + return rpcs_in_flight(cli) >= cli->cl_max_rpcs_in_flight + hprpc; } @@ -1693,6 +1698,7 @@ static int osc_makes_rpc(struct client_obd *cli, struct osc_object *osc, static void osc_update_pending(struct osc_object *obj, int cmd, int delta) { struct client_obd *cli = osc_cli(obj); + if (cmd & OBD_BRW_WRITE) { atomic_add(delta, &obj->oo_nr_writes); atomic_add(delta, &cli->cl_pending_w_pages); @@ -2566,6 +2572,7 @@ int osc_queue_sync_pages(const struct lu_env *env, struct osc_object *obj, list_for_each_entry(oap, list, oap_pending_item) { struct cl_page *cp = oap2cl_page(oap); + if (cp->cp_index > end) end = cp->cp_index; if (cp->cp_index < start) @@ -2851,6 +2858,7 @@ int osc_cache_writeback_range(const struct lu_env *env, struct osc_object *obj, result += ext->oe_nr_pages; if (!discard) { struct list_head *list = NULL; + if (hp) { EASSERT(!ext->oe_hp, ext); ext->oe_hp = 1; @@ -2924,6 +2932,7 @@ int osc_cache_writeback_range(const struct lu_env *env, struct osc_object *obj, if (hp || discard) { int rc; + rc = osc_cache_wait_range(env, obj, start, end); if (result >= 0 && rc < 0) result = rc; diff --git a/drivers/staging/lustre/lustre/osc/osc_page.c b/drivers/staging/lustre/lustre/osc/osc_page.c index 2af3232230ec..d696b321a659 100644 --- a/drivers/staging/lustre/lustre/osc/osc_page.c +++ b/drivers/staging/lustre/lustre/osc/osc_page.c @@ -166,6 +166,7 @@ static void osc_page_fini(const struct lu_env *env, struct cl_page_slice *slice) { struct osc_page *opg = cl2osc_page(slice); + CDEBUG(D_TRACE, "%p\n", opg); LASSERT(opg->ops_lock == NULL); } @@ -512,6 +513,7 @@ int osc_page_init(const struct lu_env *env, struct cl_object *obj, cl_offset(obj, page->cp_index)); if (result == 0) { struct osc_io *oio = osc_env_io(env); + opg->ops_srvlock = osc_io_srvlock(oio); cl_page_slice_add(page, &opg->ops_cl, obj, &osc_page_ops); @@ -624,6 +626,7 @@ static int discard_pagevec(const struct lu_env *env, struct cl_io *io, for (count = 0, i = 0; i < max_index; i++) { struct cl_page *page = pvec[i]; + if (cl_page_own_try(env, io, page) == 0) { /* free LRU page only if nobody is using it. * This check is necessary to avoid freeing the pages diff --git a/drivers/staging/lustre/lustre/osc/osc_quota.c b/drivers/staging/lustre/lustre/osc/osc_quota.c index 2ff253f458f8..3b32928eb4fc 100644 --- a/drivers/staging/lustre/lustre/osc/osc_quota.c +++ b/drivers/staging/lustre/lustre/osc/osc_quota.c @@ -158,6 +158,7 @@ static void * oqi_key(struct hlist_node *hnode) { struct osc_quota_info *oqi; + oqi = hlist_entry(hnode, struct osc_quota_info, oqi_hash); return &oqi->oqi_id; } diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 86c0303eb24a..e3808c97043f 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -1179,6 +1179,7 @@ static u32 osc_checksum_bulk(int nob, u32 pg_count, OBD_FAIL_CHECK(OBD_FAIL_OSC_CHECKSUM_RECEIVE)) { unsigned char *ptr = kmap(pga[i]->pg); int off = pga[i]->off & ~CFS_PAGE_MASK; + memcpy(ptr + off, "bad1", min(4, nob)); kunmap(pga[i]->pg); } @@ -1886,6 +1887,7 @@ int osc_build_rpc(const struct lu_env *env, struct client_obd *cli, i = 0; list_for_each_entry(oap, &rpc_list, oap_rpc_item) { struct cl_page *page = oap2cl_page(oap); + if (clerq == NULL) { clerq = cl_req_alloc(env, page, crt, 1 /* only 1-object rpcs for now */); @@ -2091,6 +2093,7 @@ static int osc_enqueue_fini(struct ptlrpc_request *req, struct ost_lvb *lvb, /* The request was created before ldlm_cli_enqueue call. */ if (rc == ELDLM_LOCK_ABORTED) { struct ldlm_reply *rep; + rep = req_capsule_server_get(&req->rq_pill, &RMF_DLM_REP); @@ -2277,6 +2280,7 @@ int osc_enqueue_base(struct obd_export *exp, struct ldlm_res_id *res_id, no_match: if (intent) { LIST_HEAD(cancels); + req = ptlrpc_request_alloc(class_exp2cliimp(exp), &RQF_LDLM_ENQUEUE_LVB); if (req == NULL) @@ -2301,6 +2305,7 @@ int osc_enqueue_base(struct obd_export *exp, struct ldlm_res_id *res_id, if (rqset) { if (!rc) { struct osc_enqueue_args *aa; + CLASSERT (sizeof(*aa) <= sizeof(req->rq_async_args)); aa = ptlrpc_req_async_args(req); aa->oa_ei = einfo; @@ -3170,6 +3175,7 @@ static int osc_precleanup(struct obd_device *obd, enum obd_cleanup_stage stage) switch (stage) { case OBD_CLEANUP_EARLY: { struct obd_import *imp; + imp = obd->u.cli.cl_import; CDEBUG(D_HA, "Deactivating import %s\n", obd->obd_name); /* ptlrpc_abort_inflight to stop an mds_lov_synchronize */ diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index 6aaa5dd55a92..c6c23f92348a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -660,6 +660,7 @@ int ptlrpc_request_pack(struct ptlrpc_request *request, __u32 version, int opcode) { int rc; + rc = ptlrpc_request_bufs_pack(request, version, opcode, NULL, NULL); if (rc) return rc; @@ -1089,6 +1090,7 @@ static int ptlrpc_check_status(struct ptlrpc_request *req) if (lustre_msg_get_type(req->rq_repmsg) == PTL_RPC_MSG_ERR) { struct obd_import *imp = req->rq_import; __u32 opc = lustre_msg_get_opc(req->rq_reqmsg); + if (ptlrpc_console_allow(req)) LCONSOLE_ERROR_MSG(0x011, "%s: Communicating with %s, operation %s failed with %d.\n", imp->imp_obd->obd_name, diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 5aaf42f2631d..23d45e8c67b3 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -454,6 +454,7 @@ int ptlrpc_reconnect_import(struct obd_import *imp) if (atomic_read(&imp->imp_inval_count) > 0) { int rc; struct l_wait_info lwi = LWI_INTR(LWI_ON_SIGNAL_NOOP, NULL); + rc = l_wait_event(imp->imp_recovery_waitq, (atomic_read(&imp->imp_inval_count) == 0), &lwi); @@ -535,6 +536,7 @@ static int import_select_connection(struct obd_import *imp) trying to reconnect on it.) */ if (tried_all && (imp->imp_conn_list.next == &imp_conn->oic_item)) { struct adaptive_timeout *at = &imp->imp_at.iat_net_latency; + if (at_get(at) < CONNECTION_SWITCH_MAX) { at_measured(at, at_get(at) + CONNECTION_SWITCH_INC); if (at_get(at) > CONNECTION_SWITCH_MAX) diff --git a/drivers/staging/lustre/lustre/ptlrpc/llog_client.c b/drivers/staging/lustre/lustre/ptlrpc/llog_client.c index fbb9ce8cc31a..5122205cbb99 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/llog_client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/llog_client.c @@ -118,6 +118,7 @@ static int llog_client_open(const struct lu_env *env, if (name) { char *tmp; + tmp = req_capsule_client_sized_get(&req->rq_pill, &RMF_NAME, strlen(name) + 1); LASSERT(tmp); diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 6cf9b92c7c05..593613276c8f 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -166,6 +166,7 @@ const char *ll_opcode2str(__u32 opcode) * ptlrpc_internal.h needs to be modified. */ __u32 offset = opcode_offset(opcode); + LASSERTF(offset < LUSTRE_MAX_OPCODES, "offset %u >= LUSTRE_MAX_OPCODES %u\n", offset, LUSTRE_MAX_OPCODES); @@ -239,6 +240,7 @@ ptlrpc_ldebugfs_register(struct dentry *root, char *dir, } for (i = 0; i < LUSTRE_MAX_OPCODES; i++) { __u32 opcode = ll_rpc_opcode_table[i].opcode; + lprocfs_counter_init(svc_stats, EXTRA_MAX_OPCODES + i, svc_counter_config, ll_opcode2str(opcode), "usec"); diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index 973ff8ddb0c9..ef33c5b7e852 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -98,6 +98,7 @@ EXPORT_SYMBOL(ptlrpc_buf_need_swab); int lustre_msg_early_size(void) { static int size; + if (!size) { /* Always reply old ptlrpc_body_v2 to keep interoperability * with the old client (< 2.3) which doesn't have pb_jobid @@ -107,6 +108,7 @@ int lustre_msg_early_size(void) * client. */ __u32 pblen = sizeof(struct ptlrpc_body_v2); + size = lustre_msg_size(LUSTRE_MSG_MAGIC_V2, 1, &pblen); } return size; @@ -187,6 +189,7 @@ void lustre_init_msg_v2(struct lustre_msg_v2 *msg, int count, __u32 *lens, ptr = (char *)msg + lustre_msg_hdr_size_v2(count); for (i = 0; i < count; i++) { char *tmp = bufs[i]; + LOGL(tmp, lens[i], ptr); } } @@ -572,6 +575,7 @@ EXPORT_SYMBOL(__lustre_unpack_msg); int ptlrpc_unpack_req_msg(struct ptlrpc_request *req, int len) { int rc; + rc = __lustre_unpack_msg(req->rq_reqmsg, len); if (rc == 1) { lustre_set_req_swabbed(req, MSG_PTLRPC_HEADER_OFF); @@ -584,6 +588,7 @@ EXPORT_SYMBOL(ptlrpc_unpack_req_msg); int ptlrpc_unpack_rep_msg(struct ptlrpc_request *req, int len) { int rc; + rc = __lustre_unpack_msg(req->rq_repmsg, len); if (rc == 1) { lustre_set_rep_swabbed(req, MSG_PTLRPC_HEADER_OFF); @@ -785,6 +790,7 @@ __u32 lustre_msg_get_flags(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (pb) return pb->pb_flags; @@ -804,6 +810,7 @@ void lustre_msg_add_flags(struct lustre_msg *msg, int flags) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_flags |= flags; return; @@ -819,6 +826,7 @@ void lustre_msg_set_flags(struct lustre_msg *msg, int flags) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_flags = flags; return; @@ -834,6 +842,7 @@ void lustre_msg_clear_flags(struct lustre_msg *msg, int flags) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_flags &= ~(flags & MSG_GEN_FLAG_MASK); return; @@ -849,6 +858,7 @@ __u32 lustre_msg_get_op_flags(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (pb) return pb->pb_op_flags; @@ -866,6 +876,7 @@ void lustre_msg_add_op_flags(struct lustre_msg *msg, int flags) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_op_flags |= flags; return; @@ -881,6 +892,7 @@ struct lustre_handle *lustre_msg_get_handle(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return NULL; @@ -899,6 +911,7 @@ __u32 lustre_msg_get_type(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return PTL_RPC_MSG_ERR; @@ -917,6 +930,7 @@ void lustre_msg_add_version(struct lustre_msg *msg, int version) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_version |= version; return; @@ -932,6 +946,7 @@ __u32 lustre_msg_get_opc(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return 0; @@ -951,6 +966,7 @@ __u64 lustre_msg_get_last_committed(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return 0; @@ -969,6 +985,7 @@ __u64 *lustre_msg_get_versions(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return NULL; @@ -987,6 +1004,7 @@ __u64 lustre_msg_get_transno(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return 0; @@ -1005,6 +1023,7 @@ int lustre_msg_get_status(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (pb) return pb->pb_status; @@ -1024,6 +1043,7 @@ __u64 lustre_msg_get_slv(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return -EINVAL; @@ -1043,6 +1063,7 @@ void lustre_msg_set_slv(struct lustre_msg *msg, __u64 slv) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return; @@ -1062,6 +1083,7 @@ __u32 lustre_msg_get_limit(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return -EINVAL; @@ -1081,6 +1103,7 @@ void lustre_msg_set_limit(struct lustre_msg *msg, __u64 limit) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return; @@ -1100,6 +1123,7 @@ __u32 lustre_msg_get_conn_cnt(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return 0; @@ -1130,6 +1154,7 @@ __u32 lustre_msg_get_timeout(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return 0; @@ -1148,6 +1173,7 @@ __u32 lustre_msg_get_service_time(struct lustre_msg *msg) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + if (!pb) { CERROR("invalid msg %p: no ptlrpc body!\n", msg); return 0; @@ -1179,6 +1205,7 @@ __u32 lustre_msg_calc_cksum(struct lustre_msg *msg) struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); __u32 crc; unsigned int hsize = 4; + cfs_crypto_hash_digest(CFS_HASH_ALG_CRC32, (unsigned char *)pb, lustre_msg_buflen(msg, MSG_PTLRPC_BODY_OFF), NULL, 0, (unsigned char *)&crc, &hsize); @@ -1195,6 +1222,7 @@ void lustre_msg_set_handle(struct lustre_msg *msg, struct lustre_handle *handle) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_handle = *handle; return; @@ -1210,6 +1238,7 @@ void lustre_msg_set_type(struct lustre_msg *msg, __u32 type) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_type = type; return; @@ -1225,6 +1254,7 @@ void lustre_msg_set_opc(struct lustre_msg *msg, __u32 opc) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_opc = opc; return; @@ -1240,6 +1270,7 @@ void lustre_msg_set_versions(struct lustre_msg *msg, __u64 *versions) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_pre_versions[0] = versions[0]; pb->pb_pre_versions[1] = versions[1]; @@ -1258,6 +1289,7 @@ void lustre_msg_set_transno(struct lustre_msg *msg, __u64 transno) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_transno = transno; return; @@ -1273,6 +1305,7 @@ void lustre_msg_set_status(struct lustre_msg *msg, __u32 status) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_status = status; return; @@ -1288,6 +1321,7 @@ void lustre_msg_set_conn_cnt(struct lustre_msg *msg, __u32 conn_cnt) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_conn_cnt = conn_cnt; return; @@ -1303,6 +1337,7 @@ void lustre_msg_set_timeout(struct lustre_msg *msg, __u32 timeout) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_timeout = timeout; return; @@ -1317,6 +1352,7 @@ void lustre_msg_set_service_time(struct lustre_msg *msg, __u32 service_time) switch (msg->lm_magic) { case LUSTRE_MSG_MAGIC_V2: { struct ptlrpc_body *pb = lustre_msg_ptlrpc_body(msg); + LASSERTF(pb, "invalid msg %p: no ptlrpc body!\n", msg); pb->pb_service_time = service_time; return; @@ -1684,6 +1720,7 @@ EXPORT_SYMBOL(lustre_swab_mdt_ioepoch); void lustre_swab_mgs_target_info(struct mgs_target_info *mti) { int i; + __swab32s(&mti->mti_lustre_ver); __swab32s(&mti->mti_stripe_index); __swab32s(&mti->mti_config_ver); diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index a608165d1c2b..53bfae143dfc 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pinger.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pinger.c @@ -103,6 +103,7 @@ static int ptlrpc_ping(struct obd_import *imp) static void ptlrpc_update_next_ping(struct obd_import *imp, int soon) { int time = soon ? PING_INTERVAL_SHORT : PING_INTERVAL; + if (imp->imp_state == LUSTRE_IMP_DISCON) { int dtime = max_t(int, CONNECTION_SWITCH_MIN, AT_OFF ? 0 : @@ -135,6 +136,7 @@ static long pinger_check_timeout(unsigned long time) mutex_lock(&pinger_mutex); list_for_each_entry(item, &timeout_list, ti_chain) { int ti_timeout = item->ti_timeout; + if (timeout > ti_timeout) timeout = ti_timeout; break; diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec.c b/drivers/staging/lustre/lustre/ptlrpc/sec.c index 3a6539c4c81f..a587c9461e95 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec.c @@ -1982,6 +1982,7 @@ int sptlrpc_svc_alloc_rs(struct ptlrpc_request *req, int msglen) rc = policy->sp_sops->alloc_rs(req, msglen); if (unlikely(rc == -ENOMEM)) { struct ptlrpc_service_part *svcpt = req->rq_rqbd->rqbd_svcpt; + if (svcpt->scp_service->srv_max_reply_size < msglen + sizeof(struct ptlrpc_reply_state)) { /* Just return failure if the size is too big */ diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_null.c b/drivers/staging/lustre/lustre/ptlrpc/sec_null.c index 0f3c693dd217..8a6abbc06e1b 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_null.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_null.c @@ -84,6 +84,7 @@ int null_ctx_sign(struct ptlrpc_cli_ctx *ctx, struct ptlrpc_request *req) if (!req->rq_import->imp_dlm_fake) { struct obd_device *obd = req->rq_import->imp_obd; + null_encode_sec_part(req->rq_reqbuf, obd->u.cli.cl_sp_me); } diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 01313612aef2..2652fc81f66a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -1352,6 +1352,7 @@ static bool ptlrpc_server_allow_normal(struct ptlrpc_service_part *svcpt, bool force) { int running = svcpt->scp_nthrs_running; + if (unlikely(svcpt->scp_service->srv_req_portal == MDS_REQUEST_PORTAL && CFS_FAIL_PRECHECK(OBD_FAIL_PTLRPC_CANCEL_RESEND))) { /* leave just 1 thread for normal RPCs */ @@ -1722,6 +1723,7 @@ put_conn: if (likely(svc->srv_stats != NULL && request->rq_reqmsg != NULL)) { __u32 op = lustre_msg_get_opc(request->rq_reqmsg); int opc = opcode_offset(op); + if (opc > 0 && !(op == LDLM_ENQUEUE || op == MDS_REINT)) { LASSERT(opc < LUSTRE_MAX_OPCODES); lprocfs_counter_add(svc->srv_stats, @@ -2256,6 +2258,7 @@ static int ptlrpc_start_hr_threads(void) for (j = 0; j < hrp->hrp_nthrs; j++) { struct ptlrpc_hr_thread *hrt = &hrp->hrp_thrs[j]; + rc = PTR_ERR(kthread_run(ptlrpc_hr_main, &hrp->hrp_thrs[j], "ptlrpc_hr%02d_%03d", From 106495c41fb24901bd1c192373c3085961378297 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 16:03:41 +0300 Subject: [PATCH 1697/2431] staging: lustre: remove multiple blank lines Fixes checkpatch.pl CHECK:LINE_SPACING: Please don't use multiple blank lines. The patch is generated using checkpatch.pl --fix-inplace: for f in $(find drivers/staging/lustre/ -type f) ; do ./scripts/checkpatch.pl --types "LINE_SPACING" --test-only=multiple \ --fix-inplace -f $f done Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- .../lustre/include/linux/libcfs/linux/libcfs.h | 3 --- .../lustre/lnet/klnds/o2iblnd/o2iblnd.h | 2 -- .../lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 1 - .../lnet/klnds/o2iblnd/o2iblnd_modparams.c | 1 - .../lustre/lnet/klnds/socklnd/socklnd.c | 2 -- .../lustre/lnet/klnds/socklnd/socklnd_cb.c | 3 --- .../lnet/klnds/socklnd/socklnd_modparams.c | 1 - drivers/staging/lustre/lnet/lnet/acceptor.c | 2 -- drivers/staging/lustre/lnet/lnet/api-ni.c | 2 -- drivers/staging/lustre/lnet/lnet/lib-eq.c | 3 --- drivers/staging/lustre/lnet/lnet/lib-move.c | 3 --- drivers/staging/lustre/lnet/lnet/router.c | 1 - drivers/staging/lustre/lnet/selftest/conrpc.c | 1 - drivers/staging/lustre/lnet/selftest/conrpc.h | 1 - drivers/staging/lustre/lnet/selftest/console.c | 2 -- drivers/staging/lustre/lnet/selftest/console.h | 1 - .../staging/lustre/lnet/selftest/framework.c | 3 --- drivers/staging/lustre/lnet/selftest/module.c | 1 - drivers/staging/lustre/lnet/selftest/rpc.c | 2 -- drivers/staging/lustre/lnet/selftest/rpc.h | 1 - .../staging/lustre/lnet/selftest/selftest.h | 3 --- drivers/staging/lustre/lnet/selftest/timer.c | 3 --- .../staging/lustre/lustre/include/cl_object.h | 3 --- .../staging/lustre/lustre/include/lclient.h | 1 - .../lustre/include/linux/lustre_compat25.h | 1 - .../lustre/lustre/include/linux/lustre_lite.h | 2 -- .../include/linux/lustre_patchless_compat.h | 1 - .../staging/lustre/lustre/include/linux/obd.h | 1 - .../lustre/lustre/include/lprocfs_status.h | 2 -- .../staging/lustre/lustre/include/lu_object.h | 4 ---- drivers/staging/lustre/lustre/include/lu_ref.h | 1 - .../lustre/lustre/include/lustre/ll_fiemap.h | 3 --- .../lustre/lustre/include/lustre/lustre_idl.h | 6 ------ .../lustre/lustre/include/lustre/lustre_user.h | 4 ---- .../staging/lustre/lustre/include/lustre_cfg.h | 1 - .../lustre/lustre/include/lustre_disk.h | 3 --- .../staging/lustre/lustre/include/lustre_dlm.h | 1 - .../lustre/lustre/include/lustre_eacl.h | 1 - .../staging/lustre/lustre/include/lustre_fld.h | 1 - .../staging/lustre/lustre/include/lustre_ha.h | 1 - .../lustre/lustre/include/lustre_handles.h | 1 - .../lustre/lustre/include/lustre_import.h | 2 -- .../staging/lustre/lustre/include/lustre_lib.h | 6 ------ .../lustre/lustre/include/lustre_lite.h | 1 - .../staging/lustre/lustre/include/lustre_mdc.h | 1 - .../staging/lustre/lustre/include/lustre_net.h | 2 -- .../lustre/lustre/include/lustre_param.h | 2 -- .../staging/lustre/lustre/include/lustre_sec.h | 5 ----- .../staging/lustre/lustre/include/obd_cache.h | 1 - .../staging/lustre/lustre/include/obd_cksum.h | 1 - .../staging/lustre/lustre/include/obd_class.h | 5 ----- .../lustre/lustre/include/obd_support.h | 1 - .../staging/lustre/lustre/lclient/lcommon_cl.c | 1 - .../lustre/lustre/lclient/lcommon_misc.c | 1 - .../staging/lustre/lustre/ldlm/ldlm_extent.c | 1 - .../staging/lustre/lustre/ldlm/ldlm_flock.c | 1 - .../lustre/lustre/ldlm/ldlm_inodebits.c | 1 - drivers/staging/lustre/lustre/ldlm/ldlm_lib.c | 1 - drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 2 -- .../staging/lustre/lustre/ldlm/ldlm_lockd.c | 4 ---- .../staging/lustre/lustre/ldlm/ldlm_plain.c | 1 - drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 1 - .../staging/lustre/lustre/ldlm/ldlm_request.c | 1 - .../staging/lustre/lustre/libcfs/libcfs_lock.c | 2 -- .../lustre/libcfs/linux/linux-crypto-adler.c | 1 - .../lustre/lustre/libcfs/linux/linux-crypto.c | 2 -- .../lustre/lustre/libcfs/linux/linux-module.c | 1 - drivers/staging/lustre/lustre/libcfs/module.c | 1 - .../staging/lustre/lustre/libcfs/tracefile.c | 1 - .../staging/lustre/lustre/libcfs/tracefile.h | 3 --- .../staging/lustre/lustre/libcfs/workitem.c | 4 ---- drivers/staging/lustre/lustre/llite/dcache.c | 1 - drivers/staging/lustre/lustre/llite/dir.c | 2 -- drivers/staging/lustre/lustre/llite/file.c | 6 ------ .../lustre/lustre/llite/llite_internal.h | 2 -- .../staging/lustre/lustre/llite/llite_mmap.c | 2 -- .../staging/lustre/lustre/llite/llite_rmtacl.c | 1 - drivers/staging/lustre/lustre/llite/lloop.c | 2 -- .../staging/lustre/lustre/llite/lproc_llite.c | 2 -- drivers/staging/lustre/lustre/llite/namei.c | 2 -- drivers/staging/lustre/lustre/llite/vvp_dev.c | 3 --- .../staging/lustre/lustre/llite/vvp_internal.h | 1 - drivers/staging/lustre/lustre/llite/vvp_io.c | 3 --- drivers/staging/lustre/lustre/llite/vvp_lock.c | 1 - .../staging/lustre/lustre/llite/vvp_object.c | 1 - drivers/staging/lustre/lustre/llite/vvp_page.c | 1 - .../staging/lustre/lustre/llite/xattr_cache.c | 18 ------------------ drivers/staging/lustre/lustre/lmv/lmv_obd.c | 4 ---- .../lustre/lustre/lov/lov_cl_internal.h | 2 -- drivers/staging/lustre/lustre/lov/lov_dev.c | 1 - .../staging/lustre/lustre/lov/lov_internal.h | 1 - drivers/staging/lustre/lustre/lov/lov_io.c | 2 -- drivers/staging/lustre/lustre/lov/lov_lock.c | 2 -- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 -- drivers/staging/lustre/lustre/lov/lov_pack.c | 2 -- drivers/staging/lustre/lustre/lov/lov_page.c | 2 -- drivers/staging/lustre/lustre/lov/lov_pool.c | 3 --- drivers/staging/lustre/lustre/lov/lovsub_dev.c | 1 - .../staging/lustre/lustre/lov/lovsub_object.c | 2 -- drivers/staging/lustre/lustre/mdc/mdc_lib.c | 2 -- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 2 -- .../staging/lustre/lustre/mdc/mdc_request.c | 3 --- .../staging/lustre/lustre/mgc/mgc_request.c | 2 -- drivers/staging/lustre/lustre/obdclass/acl.c | 1 - drivers/staging/lustre/lustre/obdclass/cl_io.c | 1 - .../staging/lustre/lustre/obdclass/cl_object.c | 2 -- .../staging/lustre/lustre/obdclass/cl_page.c | 2 -- .../staging/lustre/lustre/obdclass/class_obd.c | 2 -- .../staging/lustre/lustre/obdclass/genops.c | 3 --- .../lustre/obdclass/linux/linux-module.c | 1 - drivers/staging/lustre/lustre/obdclass/llog.c | 1 - .../staging/lustre/lustre/obdclass/llog_cat.c | 1 - .../staging/lustre/lustre/obdclass/llog_obd.c | 1 - .../staging/lustre/lustre/obdclass/llog_swab.c | 1 - .../lustre/lustre/obdclass/lprocfs_status.c | 1 - .../staging/lustre/lustre/obdclass/lu_object.c | 3 --- .../lustre/lustre/obdclass/lustre_handles.c | 1 - .../lustre/lustre/obdclass/obd_config.c | 3 --- .../staging/lustre/lustre/obdclass/obd_mount.c | 2 -- .../lustre/lustre/obdecho/echo_client.c | 4 ---- .../lustre/lustre/obdecho/echo_internal.h | 1 - drivers/staging/lustre/lustre/osc/osc_cache.c | 3 --- .../lustre/lustre/osc/osc_cl_internal.h | 1 - drivers/staging/lustre/lustre/osc/osc_io.c | 2 -- drivers/staging/lustre/lustre/osc/osc_object.c | 2 -- drivers/staging/lustre/lustre/osc/osc_page.c | 1 - .../staging/lustre/lustre/osc/osc_request.c | 2 -- drivers/staging/lustre/lustre/ptlrpc/events.c | 2 -- drivers/staging/lustre/lustre/ptlrpc/import.c | 2 -- drivers/staging/lustre/lustre/ptlrpc/layout.c | 1 - .../lustre/lustre/ptlrpc/lproc_ptlrpc.c | 3 --- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 1 - drivers/staging/lustre/lustre/ptlrpc/nrs.c | 2 -- .../lustre/lustre/ptlrpc/pack_generic.c | 3 --- drivers/staging/lustre/lustre/ptlrpc/pers.c | 1 - .../lustre/lustre/ptlrpc/ptlrpc_module.c | 1 - drivers/staging/lustre/lustre/ptlrpc/sec.c | 1 - .../staging/lustre/lustre/ptlrpc/sec_bulk.c | 2 -- drivers/staging/lustre/lustre/ptlrpc/sec_gc.c | 2 -- .../staging/lustre/lustre/ptlrpc/sec_null.c | 1 - .../staging/lustre/lustre/ptlrpc/sec_plain.c | 1 - drivers/staging/lustre/lustre/ptlrpc/service.c | 4 ---- 142 files changed, 287 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/linux/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/linux/libcfs.h index 3e2502a69bbd..aac59008ad1a 100644 --- a/drivers/staging/lustre/include/linux/libcfs/linux/libcfs.h +++ b/drivers/staging/lustre/include/linux/libcfs/linux/libcfs.h @@ -41,7 +41,6 @@ #error Do not #include this file directly. #include instead #endif - #include #include #include @@ -86,7 +85,6 @@ #include "linux-time.h" #include "linux-mem.h" - #define LUSTRE_TRACE_SIZE (THREAD_SIZE >> 5) #if !defined(__x86_64__) @@ -142,5 +140,4 @@ typedef long long_ptr_t; #define WITH_WATCHDOG #endif - #endif /* _LINUX_LIBCFS_H */ diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h index eb08400cc7d6..5f78b42b427a 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h @@ -848,7 +848,6 @@ kiblnd_rd_msg_size(kib_rdma_desc_t *rd, int msgtype, int n) offsetof(kib_putack_msg_t, ibpam_rd.rd_frags[n]); } - static inline __u64 kiblnd_dma_mapping_error(struct ib_device *dev, u64 dma_addr) { @@ -905,7 +904,6 @@ static inline unsigned int kiblnd_sg_dma_len(struct ib_device *dev, #define KIBLND_CONN_PARAM(e) ((e)->param.conn.private_data) #define KIBLND_CONN_PARAM_LEN(e) ((e)->param.conn.private_data_len) - struct ib_mr *kiblnd_find_rd_dma_mr(kib_hca_dev_t *hdev, kib_rdma_desc_t *rd); struct ib_mr *kiblnd_find_dma_mr(kib_hca_dev_t *hdev, diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index 3ffffbe22ca7..f1799aa1fdad 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -655,7 +655,6 @@ static int kiblnd_map_tx(lnet_ni_t *ni, kib_tx_t *tx, kib_rdma_desc_t *rd, return -EINVAL; } - static int kiblnd_setup_rd_iov(lnet_ni_t *ni, kib_tx_t *tx, kib_rdma_desc_t *rd, unsigned int niov, struct kvec *iov, int offset, int nob) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c index b3d1b5d627cb..1d4e7efb53d4 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c @@ -135,7 +135,6 @@ static int dev_failover; module_param(dev_failover, int, 0444); MODULE_PARM_DESC(dev_failover, "HCA failover for bonding (0 off, 1 on, other values reserved)"); - static int require_privileged_port; module_param(require_privileged_port, int, 0644); MODULE_PARM_DESC(require_privileged_port, "require privileged port when accepting connection"); diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index 1b472f493a62..1967c21aefe9 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c @@ -2445,7 +2445,6 @@ ksocknal_base_startup(void) ksocknal_data.ksnd_connd_starting++; spin_unlock_bh(&ksocknal_data.ksnd_connd_lock); - snprintf(name, sizeof(name), "socknal_cd%02d", i); rc = ksocknal_thread_start(ksocknal_connd, (void *)((ulong_ptr_t)i), name); @@ -2836,7 +2835,6 @@ ksocknal_startup(lnet_ni_t *ni) return -ENETDOWN; } - static void __exit ksocknal_module_fini(void) { diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index 8fbd89e7226e..477b385f15e0 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c @@ -89,7 +89,6 @@ ksocknal_alloc_tx_noop(__u64 cookie, int nonblk) return tx; } - void ksocknal_free_tx (ksock_tx_t *tx) { @@ -773,7 +772,6 @@ ksocknal_queue_tx_locked (ksock_tx_t *tx, ksock_conn_t *conn) spin_unlock_bh(&sched->kss_lock); } - ksock_route_t * ksocknal_find_connectable_route_locked (ksock_peer_t *peer) { @@ -2396,7 +2394,6 @@ ksocknal_send_keepalive_locked(ksock_peer_t *peer) return -EIO; } - static void ksocknal_check_peer_timeouts (int idx) { diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_modparams.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_modparams.c index c3ac67698125..fdb2b23e2ef0 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_modparams.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_modparams.c @@ -134,7 +134,6 @@ static unsigned int zc_recv_min_nfrags = 16; module_param(zc_recv_min_nfrags, int, 0644); MODULE_PARM_DESC(zc_recv_min_nfrags, "minimum # of fragments to enable ZC recv"); - #if SOCKNAL_VERSION_DEBUG static int protocol = 3; module_param(protocol, int, 0644); diff --git a/drivers/staging/lustre/lnet/lnet/acceptor.c b/drivers/staging/lustre/lnet/lnet/acceptor.c index 99f8396f3822..92ca1dd64076 100644 --- a/drivers/staging/lustre/lnet/lnet/acceptor.c +++ b/drivers/staging/lustre/lnet/lnet/acceptor.c @@ -202,7 +202,6 @@ lnet_connect(struct socket **sockp, lnet_nid_t peer_nid, } EXPORT_SYMBOL(lnet_connect); - /* Below is the code common for both kernel and MT user-space */ static int @@ -447,7 +446,6 @@ lnet_acceptor_start(void) if (rc != 0) return rc; - init_completion(&lnet_acceptor_state.pta_signal); rc = accept2secure(accept_type, &secure); if (rc <= 0) diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c index c368cf561b9d..53ad5ef4cde4 100644 --- a/drivers/staging/lustre/lnet/lnet/api-ni.c +++ b/drivers/staging/lustre/lnet/lnet/api-ni.c @@ -45,7 +45,6 @@ lnet_t the_lnet; /* THE state of the network */ EXPORT_SYMBOL(the_lnet); - static char *ip2nets = ""; module_param(ip2nets, charp, 0444); MODULE_PARM_DESC(ip2nets, "LNET network <- IP table"); @@ -529,7 +528,6 @@ lnet_res_lh_initialize(struct lnet_res_container *rec, lnet_libhandle_t *lh) list_add(&lh->lh_hash_chain, &rec->rec_lh_hash[hash]); } - int lnet_unprepare(void); static int diff --git a/drivers/staging/lustre/lnet/lnet/lib-eq.c b/drivers/staging/lustre/lnet/lnet/lib-eq.c index 8b843c5e71a5..60889ebd2f2b 100644 --- a/drivers/staging/lustre/lnet/lnet/lib-eq.c +++ b/drivers/staging/lustre/lnet/lnet/lib-eq.c @@ -318,7 +318,6 @@ LNetEQWait(lnet_handle_eq_t eventq, lnet_event_t *event) } EXPORT_SYMBOL(LNetEQWait); - static int lnet_eq_wait_locked(int *timeout_ms) __must_hold(&the_lnet.ln_eq_wait_lock) @@ -357,8 +356,6 @@ __must_hold(&the_lnet.ln_eq_wait_lock) return wait; } - - /** * Block the calling process until there's an event from a set of EQs or * timeout happens. diff --git a/drivers/staging/lustre/lnet/lnet/lib-move.c b/drivers/staging/lustre/lnet/lnet/lib-move.c index 6badfec4c6a0..5631f60a39bc 100644 --- a/drivers/staging/lustre/lnet/lnet/lib-move.c +++ b/drivers/staging/lustre/lnet/lnet/lib-move.c @@ -275,7 +275,6 @@ lnet_extract_iov(int dst_niov, struct kvec *dst, } EXPORT_SYMBOL(lnet_extract_iov); - unsigned int lnet_kiov_nob(unsigned int niov, lnet_kiov_t *kiov) { @@ -727,7 +726,6 @@ lnet_peer_is_alive(lnet_peer_t *lp, unsigned long now) return alive; } - /* NB: returns 1 when alive, 0 when dead, negative when error; * may drop the lnet_net_lock */ static int @@ -867,7 +865,6 @@ lnet_post_send_locked(lnet_msg_t *msg, int do_send) return 0; } - static lnet_rtrbufpool_t * lnet_msg2bufpool(lnet_msg_t *msg) { diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c index 0357b051401f..4b5677025cd5 100644 --- a/drivers/staging/lustre/lnet/lnet/router.c +++ b/drivers/staging/lustre/lnet/lnet/router.c @@ -162,7 +162,6 @@ lnet_ni_notify_locked(lnet_ni_t *ni, lnet_peer_t *lp) lp->lp_notifying = 0; } - static void lnet_rtr_addref_locked(lnet_peer_t *lp) { diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c index b70680b8bdbe..0060ff64f88e 100644 --- a/drivers/staging/lustre/lnet/selftest/conrpc.c +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c @@ -40,7 +40,6 @@ * Author: Liang Zhen */ - #include "../../include/linux/libcfs/libcfs.h" #include "../../include/linux/lnet/lib-lnet.h" #include "timer.h" diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.h b/drivers/staging/lustre/lnet/selftest/conrpc.h index ae7ed75573b9..95c832ff7375 100644 --- a/drivers/staging/lustre/lnet/selftest/conrpc.h +++ b/drivers/staging/lustre/lnet/selftest/conrpc.h @@ -140,5 +140,4 @@ void lstcon_rpc_cleanup_wait(void); int lstcon_rpc_module_init(void); void lstcon_rpc_module_fini(void); - #endif diff --git a/drivers/staging/lustre/lnet/selftest/console.c b/drivers/staging/lustre/lnet/selftest/console.c index 024aaee76b7f..d315dd44ae3b 100644 --- a/drivers/staging/lustre/lnet/selftest/console.c +++ b/drivers/staging/lustre/lnet/selftest/console.c @@ -40,7 +40,6 @@ * Author: Liang Zhen */ - #include "../../include/linux/libcfs/libcfs.h" #include "../../include/linux/lnet/lib-lnet.h" #include "console.h" @@ -2021,7 +2020,6 @@ lstcon_console_init(void) for (i = 0; i < LST_GLOBAL_HASHSIZE; i++) INIT_LIST_HEAD(&console_session.ses_ndl_hash[i]); - /* initialize acceptor service table */ lstcon_init_acceptor_service(); diff --git a/drivers/staging/lustre/lnet/selftest/console.h b/drivers/staging/lustre/lnet/selftest/console.h index acd131218dd9..3f3286c0c7bf 100644 --- a/drivers/staging/lustre/lnet/selftest/console.h +++ b/drivers/staging/lustre/lnet/selftest/console.h @@ -43,7 +43,6 @@ #ifndef __LST_CONSOLE_H__ #define __LST_CONSOLE_H__ - #include "../../include/linux/libcfs/libcfs.h" #include "../../include/linux/lnet/lnet.h" #include "../../include/linux/lnet/lib-types.h" diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c index 177beaf496c4..f18e50036809 100644 --- a/drivers/staging/lustre/lnet/selftest/framework.c +++ b/drivers/staging/lustre/lnet/selftest/framework.c @@ -237,7 +237,6 @@ sfw_deactivate_session(void) spin_lock(&sfw_data.fw_lock); } - static void sfw_session_expired(void *data) { @@ -1633,7 +1632,6 @@ extern srpc_service_t brw_test_service; extern void brw_init_test_client(void); extern void brw_init_test_service(void); - int sfw_startup(void) { @@ -1643,7 +1641,6 @@ sfw_startup(void) srpc_service_t *sv; sfw_test_case_t *tsc; - if (session_timeout < 0) { CERROR("Session timeout must be non-negative: %d\n", session_timeout); diff --git a/drivers/staging/lustre/lnet/selftest/module.c b/drivers/staging/lustre/lnet/selftest/module.c index 09b8f4649796..46cbdf0456cc 100644 --- a/drivers/staging/lustre/lnet/selftest/module.c +++ b/drivers/staging/lustre/lnet/selftest/module.c @@ -150,7 +150,6 @@ error: return rc; } - MODULE_DESCRIPTION("LNet Selftest"); MODULE_LICENSE("GPL"); MODULE_VERSION("0.9.0"); diff --git a/drivers/staging/lustre/lnet/selftest/rpc.c b/drivers/staging/lustre/lnet/selftest/rpc.c index 9fc3ce33ec7b..162f9d330496 100644 --- a/drivers/staging/lustre/lnet/selftest/rpc.c +++ b/drivers/staging/lustre/lnet/selftest/rpc.c @@ -1354,7 +1354,6 @@ srpc_post_rpc(srpc_client_rpc_t *rpc) return; } - int srpc_send_reply(struct srpc_server_rpc *rpc) { @@ -1580,7 +1579,6 @@ srpc_lnet_ev_handler(lnet_event_t *ev) } } - int srpc_startup(void) { diff --git a/drivers/staging/lustre/lnet/selftest/rpc.h b/drivers/staging/lustre/lnet/selftest/rpc.h index b7b00c6b1004..6b4a32a90857 100644 --- a/drivers/staging/lustre/lnet/selftest/rpc.h +++ b/drivers/staging/lustre/lnet/selftest/rpc.h @@ -65,7 +65,6 @@ typedef enum { SRPC_MSG_JOIN_REPLY = 17, } srpc_msg_type_t; - /* CAVEAT EMPTOR: * All srpc_*_reqst_t's 1st field must be matchbits of reply buffer, * and 2nd field matchbits of bulk buffer if any. diff --git a/drivers/staging/lustre/lnet/selftest/selftest.h b/drivers/staging/lustre/lnet/selftest/selftest.h index 48322539a3a3..8a77d3fdfa54 100644 --- a/drivers/staging/lustre/lnet/selftest/selftest.h +++ b/drivers/staging/lustre/lnet/selftest/selftest.h @@ -56,7 +56,6 @@ #define MADE_WITHOUT_COMPROMISE #endif - #define SWI_STATE_NEWBORN 0 #define SWI_STATE_REPLY_SUBMITTED 1 #define SWI_STATE_REPLY_SENT 2 @@ -497,7 +496,6 @@ swi_deschedule_workitem(swi_workitem_t *swi) return cfs_wi_deschedule(swi->swi_sched, &swi->swi_workitem); } - int sfw_startup(void); int srpc_startup(void); void sfw_shutdown(void); @@ -583,7 +581,6 @@ swi_state2str (int state) schedule_timeout(cfs_time_seconds(1) / 10); \ } while (0) - #define lst_wait_until(cond, lock, fmt, ...) \ do { \ int __I = 2; \ diff --git a/drivers/staging/lustre/lnet/selftest/timer.c b/drivers/staging/lustre/lnet/selftest/timer.c index ebd5f79126c9..b98c08a10606 100644 --- a/drivers/staging/lustre/lnet/selftest/timer.c +++ b/drivers/staging/lustre/lnet/selftest/timer.c @@ -42,7 +42,6 @@ #include "selftest.h" - /* * Timers are implemented as a sorted queue of expiry times. The queue * is slotted, with each slot holding timers which expire in a @@ -167,7 +166,6 @@ stt_check_timers(unsigned long *last) return expired; } - static int stt_timer_main(void *arg) { @@ -204,7 +202,6 @@ stt_start_timer_thread(void) return 0; } - int stt_startup(void) { diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index 75c59dfd73d0..b463bc614d64 100644 --- a/drivers/staging/lustre/lustre/include/cl_object.h +++ b/drivers/staging/lustre/lustre/include/cl_object.h @@ -2020,7 +2020,6 @@ struct cl_io_slice { struct list_head cis_linkage; }; - /** * Per-layer io operations. * \see vvp_io_ops, lov_io_ops, lovsub_io_ops, osc_io_ops @@ -2294,7 +2293,6 @@ struct cl_io_rw_common { int crw_nonblock; }; - /** * State for io. * @@ -2858,7 +2856,6 @@ int cl_page_flush (const struct lu_env *env, struct cl_io *io, /** @} transfer */ - /** * \name helper routines * Functions to discard, delete and export a cl_page. diff --git a/drivers/staging/lustre/lustre/include/lclient.h b/drivers/staging/lustre/lustre/include/lclient.h index be5499c82504..36e7a6767e71 100644 --- a/drivers/staging/lustre/lustre/include/lclient.h +++ b/drivers/staging/lustre/lustre/include/lclient.h @@ -71,7 +71,6 @@ enum ccc_setattr_lock_type { SETATTR_MATCH_LOCK }; - /** * IO state private to vvp or slp layers. */ diff --git a/drivers/staging/lustre/lustre/include/linux/lustre_compat25.h b/drivers/staging/lustre/lustre/include/linux/lustre_compat25.h index 6b14406b2920..79d8f93075d1 100644 --- a/drivers/staging/lustre/lustre/include/linux/lustre_compat25.h +++ b/drivers/staging/lustre/lustre/include/linux/lustre_compat25.h @@ -61,7 +61,6 @@ #define module_init(a) late_initcall(a) #endif - #define LTIME_S(time) (time.tv_sec) #ifndef QUOTA_OK diff --git a/drivers/staging/lustre/lustre/include/linux/lustre_lite.h b/drivers/staging/lustre/lustre/include/linux/lustre_lite.h index f5d83ebe2fdd..3420cfd1278d 100644 --- a/drivers/staging/lustre/lustre/include/linux/lustre_lite.h +++ b/drivers/staging/lustre/lustre/include/linux/lustre_lite.h @@ -39,7 +39,6 @@ #error Do not #include this file directly. #include instead #endif - #include #include @@ -93,5 +92,4 @@ enum { LPROC_LL_FILE_OPCODES }; - #endif diff --git a/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h b/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h index ebe8d68ed813..33e0b99e1fb4 100644 --- a/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h +++ b/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h @@ -43,7 +43,6 @@ #include #include - #define ll_delete_from_page_cache(page) delete_from_page_cache(page) static inline void diff --git a/drivers/staging/lustre/lustre/include/linux/obd.h b/drivers/staging/lustre/lustre/include/linux/obd.h index 1d6750067f2f..468bc28be895 100644 --- a/drivers/staging/lustre/lustre/include/linux/obd.h +++ b/drivers/staging/lustre/lustre/include/linux/obd.h @@ -114,7 +114,6 @@ static inline void client_obd_list_unlock(client_obd_lock_t *lock) spin_unlock(&lock->lock); } - static inline void client_obd_list_lock_init(client_obd_lock_t *lock) { spin_lock_init(&lock->lock); diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 6d127a0c1829..99fe03213dda 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -302,7 +302,6 @@ static inline int opcode_offset(__u32 opc) } } - #define LUSTRE_MAX_OPCODES (OPC_RANGE(OST) + \ OPC_RANGE(MDS) + \ OPC_RANGE(LDLM) + \ @@ -638,7 +637,6 @@ int lprocfs_seq_release(struct inode *, struct file *); #define LPROCFS_CLIMP_EXIT(obd) \ up_read(&(obd)->u.cli.cl_sem) - /* write the name##_seq_show function, call LPROC_SEQ_FOPS_RO for read-only proc entries; otherwise, you will define name##_seq_write function also for a read-write proc entry, and then call LPROC_SEQ_SEQ instead. Finally, diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index 7dafc28efea4..fa78689748a9 100644 --- a/drivers/staging/lustre/lustre/include/lu_object.h +++ b/drivers/staging/lustre/lustre/include/lu_object.h @@ -814,7 +814,6 @@ void lu_object_header_print(const struct lu_env *env, void *cookie, */ int lu_object_invariant(const struct lu_object *o); - /** * Check whether object exists, no matter on local or remote storage. * Note: LOHA_EXISTS will be set once some one created the object, @@ -1160,7 +1159,6 @@ void *lu_context_key_get (const struct lu_context *ctx, void lu_context_key_quiesce (struct lu_context_key *key); void lu_context_key_revive (struct lu_context_key *key); - /* * LU_KEY_INIT_GENERIC() has to be a macro to correctly determine an * owning module. @@ -1210,8 +1208,6 @@ void lu_context_key_revive (struct lu_context_key *key); } \ struct __##mod##_dummy_type_stop {; } - - #define LU_TYPE_INIT_FINI(mod, ...) \ LU_TYPE_INIT(mod, __VA_ARGS__); \ LU_TYPE_FINI(mod, __VA_ARGS__); \ diff --git a/drivers/staging/lustre/lustre/include/lu_ref.h b/drivers/staging/lustre/lustre/include/lu_ref.h index b451a888ca3a..97cd157dd35a 100644 --- a/drivers/staging/lustre/lustre/include/lu_ref.h +++ b/drivers/staging/lustre/lustre/include/lu_ref.h @@ -107,7 +107,6 @@ * @{ */ - /* * dummy data structures/functions to pass compile for now. * We need to reimplement them with kref. diff --git a/drivers/staging/lustre/lustre/include/lustre/ll_fiemap.h b/drivers/staging/lustre/lustre/include/lustre/ll_fiemap.h index ad253c6deadd..06ce8c9ae9ad 100644 --- a/drivers/staging/lustre/lustre/include/lustre/ll_fiemap.h +++ b/drivers/staging/lustre/lustre/include/lustre/ll_fiemap.h @@ -43,8 +43,6 @@ #ifndef _LUSTRE_FIEMAP_H #define _LUSTRE_FIEMAP_H - - struct ll_fiemap_extent { __u64 fe_logical; /* logical offset in bytes for the start of * the extent from the beginning of the file */ @@ -94,7 +92,6 @@ struct ll_user_fiemap { * support extents. Result * merged for efficiency. */ - static inline size_t fiemap_count_to_size(size_t extent_count) { return (sizeof(struct ll_user_fiemap) + extent_count * diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index a9c60ffbe795..f2f6b7b47a3b 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -294,7 +294,6 @@ static inline int range_compare_loc(const struct lu_seq_range *r1, (range)->lsr_index, \ fld_range_is_mdt(range) ? "mdt" : "ost" - /** \defgroup lu_fid lu_fid * @{ */ @@ -960,7 +959,6 @@ struct luda_type { #define DTTOIF(dirtype) ((dirtype) << IFSHIFT) #endif - struct lu_dirpage { __u64 ldp_hash_start; __u64 ldp_hash_end; @@ -1274,7 +1272,6 @@ void lustre_swab_ptlrpc_body(struct ptlrpc_body *pb); #define OCD_HAS_FLAG(ocd, flg) \ (!!((ocd)->ocd_connect_flags & OBD_CONNECT_##flg)) - #define LRU_RESIZE_CONNECT_FLAG OBD_CONNECT_LRU_RESIZE #define MDT_CONNECT_SUPPORTED (OBD_CONNECT_RDONLY | OBD_CONNECT_VERSION | \ @@ -1399,7 +1396,6 @@ struct obd_connect_data { * the matching OBD_CONNECT flag, so that can be approved and landed easily to * reserve the flag for future use. */ - void lustre_swab_connect(struct obd_connect_data *ocd); /* @@ -2051,7 +2047,6 @@ typedef enum { #define MDS_FIRST_OPC MDS_GETATTR - /* opcodes for object update */ typedef enum { UPDATE_OBJ = 1000, @@ -2117,7 +2112,6 @@ void lustre_swab_generic_32s(__u32 *val); /* This FULL lock is useful to take on unlink sort of operations */ #define MDS_INODELOCK_FULL ((1<<(MDS_INODELOCK_MAXSHIFT+1))-1) - /* NOTE: until Lustre 1.8.7/2.1.1 the fid_ver() was packed into name[2], * but was moved into name[1] along with the OID to avoid consuming the * name[2,3] fields that need to be used for the quota id (also a FID). */ diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index 77d987a18e0b..27e31c431d5c 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -261,7 +261,6 @@ struct ost_id { #define LL_IOC_OBD_STATFS IOC_OBD_STATFS #define IOC_MDC_GETSTRIPE IOC_MDC_GETFILESTRIPE - #define MAX_OBD_NAME 128 /* If this changes, a NEW ioctl must be added */ /* Define O_LOV_DELAY_CREATE to be a mask that is not useful for regular @@ -488,7 +487,6 @@ static inline void obd_uuid2fsname(char *buf, char *uuid, int buflen) &((fid)->f_oid), \ &((fid)->f_ver) - /********* Quotas **********/ /* these must be explicitly translated into linux Q_* in ll_dir_ioctl */ @@ -630,7 +628,6 @@ struct lustre_swap_layouts { __u64 sl_dv2; }; - /********* Changelogs **********/ /** Changelog record types */ enum changelog_rec_type { @@ -845,7 +842,6 @@ struct ioc_data_version { #define dot_lustre_name ".lustre" - /********* HSM **********/ /** HSM per-file state diff --git a/drivers/staging/lustre/lustre/include/lustre_cfg.h b/drivers/staging/lustre/lustre/include/lustre_cfg.h index fcc7401c90d8..eb6b292b7b25 100644 --- a/drivers/staging/lustre/lustre/include/lustre_cfg.h +++ b/drivers/staging/lustre/lustre/include/lustre_cfg.h @@ -224,7 +224,6 @@ static inline int lustre_cfg_len(__u32 bufcount, __u32 *buflens) return cfs_size_round(len); } - #include "obd_support.h" static inline struct lustre_cfg *lustre_cfg_new(int cmd, diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index d06ce3234e0b..5e1ac129a681 100644 --- a/drivers/staging/lustre/lustre/include/lustre_disk.h +++ b/drivers/staging/lustre/lustre/include/lustre_disk.h @@ -107,7 +107,6 @@ struct lustre_mount_data { #define lmd_is_client(x) ((x)->lmd_flags & LMD_FLG_CLIENT) - /****************** last_rcvd file *********************/ /** version recovery epoch */ @@ -373,7 +372,6 @@ struct lustre_sb_info { #define get_mount_flags(sb) (s2lsi(sb)->lsi_lmd->lmd_flags) #define get_mntdev_name(sb) (s2lsi(sb)->lsi_lmd->lmd_dev) - /****************** mount lookup info *********************/ struct lustre_mount_info { @@ -393,7 +391,6 @@ void lustre_register_client_fill_super(int (*cfs)(struct super_block *sb, void lustre_register_kill_super_cb(void (*cfs)(struct super_block *sb)); int lustre_common_put_super(struct super_block *sb); - int mgc_fsname2resid(char *fsname, struct ldlm_res_id *res_id, int type); /** @} disk */ diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index dfc49e10c294..7fb22af18f14 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -1275,7 +1275,6 @@ int ldlm_cli_cancel_list(struct list_head *head, int count, int intent_disposition(struct ldlm_reply *rep, int flag); void intent_set_disposition(struct ldlm_reply *rep, int flag); - /* ioctls for trying requests */ #define IOC_LDLM_TYPE 'f' #define IOC_LDLM_MIN_NR 40 diff --git a/drivers/staging/lustre/lustre/include/lustre_eacl.h b/drivers/staging/lustre/lustre/include/lustre_eacl.h index 499f9c8e1ae1..fee4d2c75506 100644 --- a/drivers/staging/lustre/lustre/include/lustre_eacl.h +++ b/drivers/staging/lustre/lustre/include/lustre_eacl.h @@ -70,7 +70,6 @@ typedef struct { #define CFS_ACL_XATTR_COUNT(size, prefix) \ (((size) - sizeof(prefix ## _header)) / sizeof(prefix ## _entry)) - extern ext_acl_xattr_header * lustre_posix_acl_xattr_2ext(posix_acl_xattr_header *header, int size); extern int diff --git a/drivers/staging/lustre/lustre/include/lustre_fld.h b/drivers/staging/lustre/lustre/include/lustre_fld.h index ff7230e18940..d8b3db9cdeba 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fld.h +++ b/drivers/staging/lustre/lustre/include/lustre_fld.h @@ -61,7 +61,6 @@ enum { LUSTRE_CLI_FLD_HASH_RRB }; - struct lu_fld_target { struct list_head ft_chain; struct obd_export *ft_exp; diff --git a/drivers/staging/lustre/lustre/include/lustre_ha.h b/drivers/staging/lustre/lustre/include/lustre_ha.h index f3ae02b3eef3..49dfbb14f381 100644 --- a/drivers/staging/lustre/lustre/include/lustre_ha.h +++ b/drivers/staging/lustre/lustre/include/lustre_ha.h @@ -47,7 +47,6 @@ struct obd_export; struct obd_device; struct ptlrpc_request; - int ptlrpc_replay(struct obd_import *imp); int ptlrpc_resend(struct obd_import *imp); void ptlrpc_free_committed(struct obd_import *imp); diff --git a/drivers/staging/lustre/lustre/include/lustre_handles.h b/drivers/staging/lustre/lustre/include/lustre_handles.h index 4d51c8ac3906..3813055b9ffb 100644 --- a/drivers/staging/lustre/lustre/include/lustre_handles.h +++ b/drivers/staging/lustre/lustre/include/lustre_handles.h @@ -50,7 +50,6 @@ #include "../../include/linux/libcfs/libcfs.h" - struct portals_handle_ops { void (*hop_addref)(void *object); void (*hop_free)(void *object, int size); diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 660d29032ad4..c1b8c175224c 100644 --- a/drivers/staging/lustre/lustre/include/lustre_import.h +++ b/drivers/staging/lustre/lustre/include/lustre_import.h @@ -50,7 +50,6 @@ #include "lustre_handles.h" #include "lustre/lustre_idl.h" - /** * Adaptive Timeout stuff * @@ -85,7 +84,6 @@ struct imp_at { struct adaptive_timeout iat_service_estimate[IMP_AT_MAX_PORTALS]; }; - /** @} */ /** Possible import states */ diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index cc3e8d1dc092..745b53d8d007 100644 --- a/drivers/staging/lustre/lustre/include/lustre_lib.h +++ b/drivers/staging/lustre/lustre/include/lustre_lib.h @@ -185,7 +185,6 @@ static inline int obd_ioctl_packlen(struct obd_ioctl_data *data) return len; } - static inline int obd_ioctl_is_invalid(struct obd_ioctl_data *data) { if (data->ioc_len > OBD_MAX_IOCTL_BUFFER) { @@ -249,7 +248,6 @@ static inline int obd_ioctl_is_invalid(struct obd_ioctl_data *data) return 0; } - #include "obd_support.h" /* function defined in lustre/obdclass//-module.c */ @@ -289,7 +287,6 @@ static inline void obd_ioctl_freedata(char *buf, int len) #define OBD_IOC_READ _IOWR('f', 109, OBD_IOC_DATA_TYPE) #define OBD_IOC_WRITE _IOWR('f', 110, OBD_IOC_DATA_TYPE) - #define OBD_IOC_STATFS _IOWR('f', 113, OBD_IOC_DATA_TYPE) #define OBD_IOC_SYNC _IOW ('f', 114, OBD_IOC_DATA_TYPE) #define OBD_IOC_READ2 _IOWR('f', 115, OBD_IOC_DATA_TYPE) @@ -523,7 +520,6 @@ struct l_wait_info { sigmask(SIGTERM) | sigmask(SIGQUIT) | \ sigmask(SIGALRM)) - /* * wait for @condition to become true, but no longer than timeout, specified * by @info. @@ -604,8 +600,6 @@ do { \ remove_wait_queue(&wq, &__wait); \ } while (0) - - #define l_wait_event(wq, condition, info) \ ({ \ int __ret; \ diff --git a/drivers/staging/lustre/lustre/include/lustre_lite.h b/drivers/staging/lustre/lustre/include/lustre_lite.h index df557c22abbe..f6d7aae3a0b8 100644 --- a/drivers/staging/lustre/lustre/include/lustre_lite.h +++ b/drivers/staging/lustre/lustre/include/lustre_lite.h @@ -55,7 +55,6 @@ #include "lustre/lustre_user.h" - struct lustre_rw_params { int lrp_lock_mode; ldlm_policy_data_t lrp_policy; diff --git a/drivers/staging/lustre/lustre/include/lustre_mdc.h b/drivers/staging/lustre/lustre/include/lustre_mdc.h index b1b05c8a371a..3da373315856 100644 --- a/drivers/staging/lustre/lustre/include/lustre_mdc.h +++ b/drivers/staging/lustre/lustre/include/lustre_mdc.h @@ -163,7 +163,6 @@ static inline void mdc_update_max_ea_from_body(struct obd_export *exp, } } - struct mdc_cache_waiter { struct list_head mcw_entry; wait_queue_head_t mcw_waitq; diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 93a039dffcc9..90edbff5ed0b 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -46,7 +46,6 @@ * @{ */ - #ifndef _LUSTRE_NET_H #define _LUSTRE_NET_H @@ -2830,7 +2829,6 @@ int import_set_conn_priority(struct obd_import *imp, struct obd_uuid *uuid); void client_destroy_import(struct obd_import *imp); /** @} */ - /* ptlrpc/pinger.c */ /** * Pinger API (client side only) diff --git a/drivers/staging/lustre/lustre/include/lustre_param.h b/drivers/staging/lustre/lustre/include/lustre_param.h index 26f558e83755..8f6c0b26cfab 100644 --- a/drivers/staging/lustre/lustre/include/lustre_param.h +++ b/drivers/staging/lustre/lustre/include/lustre_param.h @@ -59,8 +59,6 @@ int class_find_param(char *buf, char *key, char **valp); int class_parse_nid(char *buf, lnet_nid_t *nid, char **endh); int class_parse_nid_quiet(char *buf, lnet_nid_t *nid, char **endh); - - /****************** User-settable parameter keys *********************/ /* e.g. tunefs.lustre --param="failover.node=192.168.0.13@tcp0" /dev/sda diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 76b3a84a9342..aaadf098989f 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -342,7 +342,6 @@ void sptlrpc_conf_client_adapt(struct obd_device *obd); */ #define SPTLRPC_MAX_PAYLOAD (1024) - struct vfs_cred { uint32_t vc_uid; uint32_t vc_gid; @@ -830,7 +829,6 @@ static inline int sec_is_rootonly(struct ptlrpc_sec *sec) return (sec->ps_flvr.sf_flags & PTLRPC_SEC_FL_ROOTONLY); } - struct ptlrpc_svc_ctx { atomic_t sc_refcount; struct ptlrpc_sec_policy *sc_policy; @@ -882,7 +880,6 @@ struct ptlrpc_bulk_sec_desc { __u8 bsd_data[0]; /* policy-specific token */ }; - /* * round size up to next power of 2, for slab allocation. * @size must be sane (can't overflow after round up) @@ -1026,7 +1023,6 @@ void sptlrpc_req_put_ctx(struct ptlrpc_request *req, int sync); int sptlrpc_req_refresh_ctx(struct ptlrpc_request *req, long timeout); void sptlrpc_req_set_flavor(struct ptlrpc_request *req, int opcode); - /* gc */ void sptlrpc_gc_add_sec(struct ptlrpc_sec *sec); void sptlrpc_gc_del_sec(struct ptlrpc_sec *sec); @@ -1084,7 +1080,6 @@ int sptlrpc_current_user_desc_size(void); int sptlrpc_pack_user_desc(struct lustre_msg *msg, int offset); int sptlrpc_unpack_user_desc(struct lustre_msg *req, int offset, int swabbed); - #define CFS_CAP_CHOWN_MASK (1 << CFS_CAP_CHOWN) #define CFS_CAP_SYS_RESOURCE_MASK (1 << CFS_CAP_SYS_RESOURCE) diff --git a/drivers/staging/lustre/lustre/include/obd_cache.h b/drivers/staging/lustre/lustre/include/obd_cache.h index c8249fbb0d72..b5e1155e5cd3 100644 --- a/drivers/staging/lustre/lustre/include/obd_cache.h +++ b/drivers/staging/lustre/lustre/include/obd_cache.h @@ -35,5 +35,4 @@ #ifndef _OBD_CACHE_H__ #define _OBD_CACHE_H__ - #endif diff --git a/drivers/staging/lustre/lustre/include/obd_cksum.h b/drivers/staging/lustre/lustre/include/obd_cksum.h index 3a63462aa943..a0099d71773a 100644 --- a/drivers/staging/lustre/lustre/include/obd_cksum.h +++ b/drivers/staging/lustre/lustre/include/obd_cksum.h @@ -156,7 +156,6 @@ static inline cksum_type_t cksum_types_supported_server(void) return ret; } - /* Select the best checksum algorithm among those supplied in the cksum_types * input. * diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 47230345fa90..f1bcc3cb3b14 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -36,7 +36,6 @@ #ifndef __CLASS_OBD_H #define __CLASS_OBD_H - #include "obd_support.h" #include "lustre_import.h" #include "lustre_net.h" @@ -353,7 +352,6 @@ static inline int obd_check_dev_active(struct obd_device *obd) (export)->exp_md_stats, coffset); \ } - #define OBD_CHECK_MD_OP(obd, op, err) \ do { \ if (!OBT(obd) || !MDP((obd), op)) { \ @@ -382,7 +380,6 @@ do { \ } \ } while (0) - #define OBD_CHECK_DT_OP(obd, op, err) \ do { \ if (!OBT(obd) || !OBP((obd), op)) { \ @@ -1744,7 +1741,6 @@ static inline int md_revalidate_lock(struct obd_export *exp, return rc; } - /* OBD Metadata Support */ int obd_init_caches(void); @@ -1763,7 +1759,6 @@ do { \ OBD_SLAB_FREE_PTR((ptr), obdo_cachep); \ } while (0) - static inline void obdo2fid(struct obdo *oa, struct lu_fid *fid) { /* something here */ diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 80ab85d7ec3c..ec14b72c0327 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -472,7 +472,6 @@ extern char obd_jobid_var[]; #define OBD_FAIL_UPDATE_OBJ_NET 0x1700 #define OBD_FAIL_UPDATE_OBJ_NET_REP 0x1701 - /* Assign references to moved code to reduce code changes */ #define OBD_FAIL_PRECHECK(id) CFS_FAIL_PRECHECK(id) #define OBD_FAIL_CHECK(id) CFS_FAIL_CHECK(id) diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index 8764df9a1db3..ef2e2667cabd 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c @@ -161,7 +161,6 @@ struct lu_context_key ccc_session_key = { .lct_fini = ccc_session_key_fini }; - /* type constructor/destructor: ccc_type_{init,fini,start,stop}(). */ /* LU_TYPE_INIT_FINI(ccc, &ccc_key, &ccc_session_key); */ diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_misc.c b/drivers/staging/lustre/lustre/lclient/lcommon_misc.c index 01bf894d4a87..8389a0edad36 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_misc.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_misc.c @@ -45,7 +45,6 @@ #include "../include/lustre_lite.h" - /* Initialize the default and maximum LOV EA and cookie sizes. This allows * us to make MDS RPCs with large enough reply buffers to hold the * maximum-sized (= maximum striped) EA and cookie without having to diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c index 05bc4f381a62..57b997dc42f5 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c @@ -58,7 +58,6 @@ #include "../include/lustre_lib.h" #include "ldlm_internal.h" - /* When a lock is cancelled by a client, the KMS may undergo change if this * is the "highest lock". This function returns the new KMS value. * Caller must hold lr_lock already. diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index 0c46a06818f8..4310154e1728 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c @@ -580,7 +580,6 @@ void ldlm_flock_policy_wire18_to_local(const ldlm_wire_policy_data_t *wpolicy, lpolicy->l_flock.owner = wpolicy->l_flock.lfw_pid; } - void ldlm_flock_policy_wire21_to_local(const ldlm_wire_policy_data_t *wpolicy, ldlm_policy_data_t *lpolicy) { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_inodebits.c b/drivers/staging/lustre/lustre/ldlm/ldlm_inodebits.c index 40d3338506ae..b1bed1e17d32 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_inodebits.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_inodebits.c @@ -58,7 +58,6 @@ #include "../include/lustre_lib.h" #include "ldlm_internal.h" - void ldlm_ibits_policy_wire_to_local(const ldlm_wire_policy_data_t *wpolicy, ldlm_policy_data_t *lpolicy) { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c index b8402005b560..ccce1e503120 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lib.c @@ -626,7 +626,6 @@ out_disconnect: } EXPORT_SYMBOL(client_disconnect_export); - /** * Packs current SLV and Limit into \a req. */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index f39375c24773..658c878cacce 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -154,7 +154,6 @@ EXPORT_SYMBOL(ldlm_it2str); * REFCOUNTED LOCK OBJECTS */ - /** * Get a reference on a lock. * @@ -1562,7 +1561,6 @@ out: return rc; } - /** * Process a call to blocking AST callback for a lock in ast_work list */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c index 152bdaacc218..f00e3ba49ffe 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c @@ -443,7 +443,6 @@ static int ldlm_bl_to_thread(struct ldlm_namespace *ns, } } - int ldlm_bl_to_thread_lock(struct ldlm_namespace *ns, struct ldlm_lock_desc *ld, struct ldlm_lock *lock) { @@ -695,7 +694,6 @@ static int ldlm_callback_handler(struct ptlrpc_request *req) return 0; } - static struct ldlm_bl_work_item *ldlm_bl_get_work(struct ldlm_bl_pool *blp) { struct ldlm_bl_work_item *blwi = NULL; @@ -837,7 +835,6 @@ static int ldlm_bl_thread_main(void *arg) return 0; } - static int ldlm_setup(void); static int ldlm_cleanup(void); @@ -989,7 +986,6 @@ static int ldlm_setup(void) goto out; } - blp = kzalloc(sizeof(*blp), GFP_NOFS); if (!blp) { rc = -ENOMEM; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_plain.c b/drivers/staging/lustre/lustre/ldlm/ldlm_plain.c index a1fe2c161e38..0c1965ddabb9 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_plain.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_plain.c @@ -58,7 +58,6 @@ #include "ldlm_internal.h" - void ldlm_plain_policy_wire_to_local(const ldlm_wire_policy_data_t *wpolicy, ldlm_policy_data_t *lpolicy) { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c index a4ee591d4e37..b85e2d699761 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -104,7 +104,6 @@ #include "../include/obd_support.h" #include "ldlm_internal.h" - /* * 50 ldlm locks for 1MB of RAM. */ diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index 250cc3762f71..fdf81b87aad7 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c @@ -1795,7 +1795,6 @@ static int replay_lock_interpret(const struct lu_env *env, if (rc != ELDLM_OK) goto out; - reply = req_capsule_server_get(&req->rq_pill, &RMF_DLM_REP); if (reply == NULL) { rc = -EPROTO; diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c b/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c index 29308ba85393..94bc00785000 100644 --- a/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c +++ b/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c @@ -34,7 +34,6 @@ #include "../../include/linux/libcfs/libcfs.h" - /** destroy cpu-partition lock, see libcfs_private.h for more detail */ void cfs_percpt_lock_free(struct cfs_percpt_lock *pcl) @@ -146,7 +145,6 @@ cfs_percpt_unlock(struct cfs_percpt_lock *pcl, int index) } EXPORT_SYMBOL(cfs_percpt_unlock); - /** free cpu-partition refcount */ void cfs_percpt_atomic_free(atomic_t **refs) diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c index 5e185fa5942a..026994a1e3bf 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c @@ -129,7 +129,6 @@ static struct shash_alg alg = { } }; - int cfs_crypto_adler32_register(void) { return crypto_register_shash(&alg); diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c index f6de3600d5f3..5230654b1caf 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c @@ -36,8 +36,6 @@ */ static int cfs_crypto_hash_speeds[CFS_HASH_ALG_MAX]; - - static int cfs_crypto_hash_alloc(unsigned char alg_id, const struct cfs_crypto_hash_type **type, struct hash_desc *desc, unsigned char *key, diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-module.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-module.c index 64a984b42845..70a99cf019de 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-module.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-module.c @@ -62,7 +62,6 @@ int libcfs_ioctl_getdata(char *buf, char *end, void *arg) return -EINVAL; } - if (hdr->ioc_len < sizeof(struct libcfs_ioctl_data)) { CERROR("PORTALS: user buffer too small for ioctl\n"); return -EINVAL; diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c index 379b2dba6b04..0d9b223e71d6 100644 --- a/drivers/staging/lustre/lustre/libcfs/module.c +++ b/drivers/staging/lustre/lustre/libcfs/module.c @@ -338,7 +338,6 @@ out: return err; } - struct cfs_psdev_ops libcfs_psdev_ops = { libcfs_psdev_open, libcfs_psdev_release, diff --git a/drivers/staging/lustre/lustre/libcfs/tracefile.c b/drivers/staging/lustre/lustre/libcfs/tracefile.c index ff6c2c55b2e7..973c7c209dfc 100644 --- a/drivers/staging/lustre/lustre/libcfs/tracefile.c +++ b/drivers/staging/lustre/lustre/libcfs/tracefile.c @@ -39,7 +39,6 @@ * Author: Phil Schwan */ - #define DEBUG_SUBSYSTEM S_LNET #define LUSTRE_TRACEFILE_PRIVATE #include "tracefile.h" diff --git a/drivers/staging/lustre/lustre/libcfs/tracefile.h b/drivers/staging/lustre/lustre/libcfs/tracefile.h index e931f6d98de9..cb7a3963589f 100644 --- a/drivers/staging/lustre/lustre/libcfs/tracefile.h +++ b/drivers/staging/lustre/lustre/libcfs/tracefile.h @@ -65,8 +65,6 @@ void cfs_trace_stop_thread(void); int cfs_tracefile_init(int max_pages); void cfs_tracefile_exit(void); - - int cfs_trace_copyin_string(char *knl_buffer, int knl_buffer_nob, const char __user *usr_buffer, int usr_buffer_nob); int cfs_trace_copyout_string(char __user *usr_buffer, int usr_buffer_nob, @@ -309,7 +307,6 @@ cfs_trace_put_tcd (struct cfs_trace_cpu_data *tcd) int cfs_trace_refill_stock(struct cfs_trace_cpu_data *tcd, gfp_t gfp, struct list_head *stock); - int cfs_tcd_owns_tage(struct cfs_trace_cpu_data *tcd, struct cfs_trace_page *tage); diff --git a/drivers/staging/lustre/lustre/libcfs/workitem.c b/drivers/staging/lustre/lustre/libcfs/workitem.c index 02d18f558fdf..e1143a566ac4 100644 --- a/drivers/staging/lustre/lustre/libcfs/workitem.c +++ b/drivers/staging/lustre/lustre/libcfs/workitem.c @@ -115,7 +115,6 @@ cfs_wi_sched_cansleep(struct cfs_wi_sched *sched) return 1; } - /* XXX: * 0. it only works when called from wi->wi_action. * 1. when it returns no one shall try to schedule the workitem. @@ -217,7 +216,6 @@ cfs_wi_schedule(struct cfs_wi_sched *sched, cfs_workitem_t *wi) } EXPORT_SYMBOL(cfs_wi_schedule); - static int cfs_wi_scheduler (void *arg) { @@ -258,7 +256,6 @@ cfs_wi_scheduler (void *arg) wi->wi_running = 1; wi->wi_scheduled = 0; - cfs_wi_sched_unlock(sched); nloops++; @@ -302,7 +299,6 @@ cfs_wi_scheduler (void *arg) return 0; } - void cfs_wi_sched_destroy(struct cfs_wi_sched *sched) { diff --git a/drivers/staging/lustre/lustre/llite/dcache.c b/drivers/staging/lustre/lustre/llite/dcache.c index b86685912d28..80cba0448499 100644 --- a/drivers/staging/lustre/lustre/llite/dcache.c +++ b/drivers/staging/lustre/lustre/llite/dcache.c @@ -344,7 +344,6 @@ static int ll_revalidate_nd(struct dentry *dentry, unsigned int flags) return ll_revalidate_dentry(dentry, flags); } - static void ll_d_iput(struct dentry *de, struct inode *inode) { LASSERT(inode); diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c index cc6f0f596ffe..0fe0c7135b73 100644 --- a/drivers/staging/lustre/lustre/llite/dir.c +++ b/drivers/staging/lustre/lustre/llite/dir.c @@ -907,7 +907,6 @@ static int ll_ioc_copy_start(struct super_block *sb, struct hsm_copy *copy) hpk.hpk_errval = 0; hpk.hpk_data_version = 0; - /* For archive request, we need to read the current file version. */ if (copy->hc_hai.hai_action == HSMA_ARCHIVE) { struct inode *inode; @@ -1047,7 +1046,6 @@ progress: return rc; } - static int copy_and_ioctl(int cmd, struct obd_export *exp, const void __user *data, size_t size) { diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index 51b6bc5d4d3a..ad02f2b9e590 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -1891,7 +1891,6 @@ int ll_hsm_release(struct inode *inode) __u64 data_version = 0; int rc; - CDEBUG(D_INODE, "%s: Releasing file "DFID".\n", ll_get_fsname(inode->i_sb, NULL, 0), PFID(&ll_i2info(inode)->lli_fid)); @@ -1923,7 +1922,6 @@ int ll_hsm_release(struct inode *inode) &data_version); och = NULL; - out: if (och != NULL && !IS_ERR(och)) /* close the file */ ll_lease_close(och, inode, NULL); @@ -2145,7 +2143,6 @@ static int ll_hsm_import(struct inode *inode, struct file *file, struct iattr *attr = NULL; int rc; - if (!S_ISREG(inode->i_mode)) return -EINVAL; @@ -2505,7 +2502,6 @@ ll_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg) } } - static loff_t ll_file_seek(struct file *file, loff_t offset, int origin) { struct inode *inode = file_inode(file); @@ -3071,7 +3067,6 @@ struct posix_acl *ll_get_acl(struct inode *inode, int type) return acl; } - int ll_inode_permission(struct inode *inode, int mask) { int rc = 0; @@ -3169,7 +3164,6 @@ static struct llioc_ctl_data { LIST_HEAD_INIT(llioc.ioc_head) }; - struct llioc_data { struct list_head iocd_list; unsigned int iocd_size; diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index d294145ec57d..9096d311e45d 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -818,7 +818,6 @@ struct ll_close_queue { struct ccc_object *cl_inode2ccc(struct inode *inode); - void vvp_write_pending (struct ccc_object *club, struct ccc_page *page); void vvp_write_complete(struct ccc_object *club, struct ccc_page *page); @@ -1273,7 +1272,6 @@ typedef enum llioc_iter (*llioc_callback_t)(struct inode *inode, void *ll_iocontrol_register(llioc_callback_t cb, int count, unsigned int *cmd); void ll_iocontrol_unregister(void *magic); - /* lclient compat stuff */ #define cl_inode_info ll_inode_info #define cl_i2info(info) ll_i2info(info) diff --git a/drivers/staging/lustre/lustre/llite/llite_mmap.c b/drivers/staging/lustre/lustre/llite/llite_mmap.c index a90214bb84dd..7df978371c9a 100644 --- a/drivers/staging/lustre/lustre/llite/llite_mmap.c +++ b/drivers/staging/lustre/lustre/llite/llite_mmap.c @@ -258,8 +258,6 @@ out: return result; } - - static inline int to_fault_error(int result) { switch (result) { diff --git a/drivers/staging/lustre/lustre/llite/llite_rmtacl.c b/drivers/staging/lustre/lustre/llite/llite_rmtacl.c index c8a450b5cb18..b27c3f2fcd02 100644 --- a/drivers/staging/lustre/lustre/llite/llite_rmtacl.c +++ b/drivers/staging/lustre/lustre/llite/llite_rmtacl.c @@ -178,7 +178,6 @@ void rct_fini(struct rmtacl_ctl_table *rct) spin_unlock(&rct->rct_lock); } - static struct eacl_entry *ee_alloc(pid_t key, struct lu_fid *fid, int type, ext_acl_xattr_header *header) { diff --git a/drivers/staging/lustre/lustre/llite/lloop.c b/drivers/staging/lustre/lustre/llite/lloop.c index 90b4233df376..e6974c36276d 100644 --- a/drivers/staging/lustre/lustre/llite/lloop.c +++ b/drivers/staging/lustre/lustre/llite/lloop.c @@ -315,7 +315,6 @@ static unsigned int loop_get_bio(struct lloop_device *lo, struct bio **req) if (page_count + (*bio)->bi_vcnt > LLOOP_MAX_SEGMENTS) break; - page_count += (*bio)->bi_vcnt; count++; bio = &(*bio)->bi_next; @@ -370,7 +369,6 @@ err: bio_io_error(old_bio); } - static inline void loop_handle_bio(struct lloop_device *lo, struct bio *bio) { int ret; diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c index e7b94f4ca6bc..5bd9fb542506 100644 --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c @@ -960,7 +960,6 @@ int ldebugfs_register_mountpoint(struct dentry *parent, char name[MAX_STRING_SIZE + 1], *ptr; int err, id, len, rc; - name[MAX_STRING_SIZE] = '\0'; LASSERT(sbi != NULL); @@ -1050,7 +1049,6 @@ int ldebugfs_register_mountpoint(struct dentry *parent, if (err) goto out; - err = ldebugfs_add_vars(sbi->ll_debugfs_entry, lprocfs_llite_obd_vars, sb); if (err) diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index a22e25285621..2ee7d31d78ae 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@ -100,7 +100,6 @@ static int ll_set_inode(struct inode *inode, void *opaque) return 0; } - /* * Get an inode by inode number (already instantiated by the intent lookup). * Returns inode or NULL @@ -674,7 +673,6 @@ out_release: return rc; } - /* We depend on "mode" being set with the proper file type/umask by now */ static struct inode *ll_create_node(struct inode *dir, struct lookup_intent *it) { diff --git a/drivers/staging/lustre/lustre/llite/vvp_dev.c b/drivers/staging/lustre/lustre/llite/vvp_dev.c index b8f6a8779fd3..9f7449fadb80 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_dev.c +++ b/drivers/staging/lustre/lustre/llite/vvp_dev.c @@ -40,7 +40,6 @@ #define DEBUG_SUBSYSTEM S_LLITE - #include "../include/obd.h" #include "../include/lustre_lite.h" #include "llite_internal.h" @@ -113,7 +112,6 @@ static void vvp_session_key_fini(const struct lu_context *ctx, OBD_SLAB_FREE_PTR(session, vvp_session_kmem); } - struct lu_context_key vvp_key = { .lct_tags = LCT_CL_THREAD, .lct_init = vvp_key_init, @@ -187,7 +185,6 @@ void vvp_global_fini(void) lu_kmem_fini(vvp_caches); } - /***************************************************************************** * * mirror obd-devices into cl devices. diff --git a/drivers/staging/lustre/lustre/llite/vvp_internal.h b/drivers/staging/lustre/lustre/llite/vvp_internal.h index 2162bf6c08a7..b5a6661d47d5 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_internal.h +++ b/drivers/staging/lustre/lustre/llite/vvp_internal.h @@ -39,7 +39,6 @@ #ifndef VVP_INTERNAL_H #define VVP_INTERNAL_H - #include "../include/cl_object.h" #include "llite_internal.h" diff --git a/drivers/staging/lustre/lustre/llite/vvp_io.c b/drivers/staging/lustre/lustre/llite/vvp_io.c index 41947ac39690..37773c181729 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_io.c +++ b/drivers/staging/lustre/lustre/llite/vvp_io.c @@ -41,7 +41,6 @@ #define DEBUG_SUBSYSTEM S_LLITE - #include "../include/obd.h" #include "../include/lustre_lite.h" @@ -643,7 +642,6 @@ static int vvp_io_kernel_fault(struct vvp_fault_io *cfio) return -EINVAL; } - static int vvp_io_fault_start(const struct lu_env *env, const struct cl_io_slice *ios) { @@ -702,7 +700,6 @@ static int vvp_io_fault_start(const struct lu_env *env, goto out; } - if (fio->ft_mkwrite) { pgoff_t last_index; /* diff --git a/drivers/staging/lustre/lustre/llite/vvp_lock.c b/drivers/staging/lustre/lustre/llite/vvp_lock.c index f354e82d4ae7..f7b1144aadee 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_lock.c +++ b/drivers/staging/lustre/lustre/llite/vvp_lock.c @@ -38,7 +38,6 @@ #define DEBUG_SUBSYSTEM S_LLITE - #include "../include/obd.h" #include "../include/lustre_lite.h" diff --git a/drivers/staging/lustre/lustre/llite/vvp_object.c b/drivers/staging/lustre/lustre/llite/vvp_object.c index cb2811b9aae7..e13afb7e8dca 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_object.c +++ b/drivers/staging/lustre/lustre/llite/vvp_object.c @@ -40,7 +40,6 @@ #define DEBUG_SUBSYSTEM S_LLITE - #include "../../include/linux/libcfs/libcfs.h" #include "../include/obd.h" diff --git a/drivers/staging/lustre/lustre/llite/vvp_page.c b/drivers/staging/lustre/lustre/llite/vvp_page.c index a3cf5ad20c60..92f60c350f35 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_page.c +++ b/drivers/staging/lustre/lustre/llite/vvp_page.c @@ -41,7 +41,6 @@ #define DEBUG_SUBSYSTEM S_LLITE - #include "../include/obd.h" #include "../include/lustre_lite.h" diff --git a/drivers/staging/lustre/lustre/llite/xattr_cache.c b/drivers/staging/lustre/lustre/llite/xattr_cache.c index 9e763ce244e3..819d3867183c 100644 --- a/drivers/staging/lustre/lustre/llite/xattr_cache.c +++ b/drivers/staging/lustre/lustre/llite/xattr_cache.c @@ -58,7 +58,6 @@ void ll_xattr_fini(void) static void ll_xattr_cache_init(struct ll_inode_info *lli) { - LASSERT(lli != NULL); INIT_LIST_HEAD(&lli->lli_xattrs); @@ -80,8 +79,6 @@ static int ll_xattr_cache_find(struct list_head *cache, { struct ll_xattr_entry *entry; - - list_for_each_entry(entry, cache, xe_list) { /* xattr_name == NULL means look for any entry */ if (xattr_name == NULL || @@ -113,8 +110,6 @@ static int ll_xattr_cache_add(struct list_head *cache, { struct ll_xattr_entry *xattr; - - if (ll_xattr_cache_find(cache, xattr_name, &xattr) == 0) { CDEBUG(D_CACHE, "duplicate xattr: [%s]\n", xattr_name); return -EPROTO; @@ -164,8 +159,6 @@ static int ll_xattr_cache_del(struct list_head *cache, { struct ll_xattr_entry *xattr; - - CDEBUG(D_CACHE, "del xattr: %s\n", xattr_name); if (ll_xattr_cache_find(cache, xattr_name, &xattr) == 0) { @@ -197,8 +190,6 @@ static int ll_xattr_cache_list(struct list_head *cache, struct ll_xattr_entry *xattr, *tmp; int xld_tail = 0; - - list_for_each_entry_safe(xattr, tmp, cache, xe_list) { CDEBUG(D_CACHE, "list: buffer=%p[%d] name=%s\n", xld_buffer, xld_tail, xattr->xe_name); @@ -240,7 +231,6 @@ static int ll_xattr_cache_valid(struct ll_inode_info *lli) static int ll_xattr_cache_destroy_locked(struct ll_inode_info *lli) { - if (!ll_xattr_cache_valid(lli)) return 0; @@ -256,8 +246,6 @@ int ll_xattr_cache_destroy(struct inode *inode) struct ll_inode_info *lli = ll_i2info(inode); int rc; - - down_write(&lli->lli_xattrs_list_rwsem); rc = ll_xattr_cache_destroy_locked(lli); up_write(&lli->lli_xattrs_list_rwsem); @@ -292,8 +280,6 @@ static int ll_xattr_find_get_lock(struct inode *inode, struct obd_export *exp = sbi->ll_md_exp; int rc; - - mutex_lock(&lli->lli_xattrs_enq_lock); /* inode may have been shrunk and recreated, so data is gone, match lock * only when data exists. */ @@ -359,8 +345,6 @@ static int ll_xattr_cache_refill(struct inode *inode, struct lookup_intent *oit) __u32 *xsizes; int rc, i; - - rc = ll_xattr_find_get_lock(inode, oit, &req); if (rc) goto out_no_unlock; @@ -495,8 +479,6 @@ int ll_xattr_cache_get(struct inode *inode, struct ll_inode_info *lli = ll_i2info(inode); int rc = 0; - - LASSERT(!!(valid & OBD_MD_FLXATTR) ^ !!(valid & OBD_MD_FLXATTRLS)); down_read(&lli->lli_xattrs_list_rwsem); diff --git a/drivers/staging/lustre/lustre/lmv/lmv_obd.c b/drivers/staging/lustre/lustre/lmv/lmv_obd.c index 397cf812ba7a..635a93cc94de 100644 --- a/drivers/staging/lustre/lustre/lmv/lmv_obd.c +++ b/drivers/staging/lustre/lustre/lmv/lmv_obd.c @@ -863,9 +863,6 @@ static int lmv_hsm_ct_register(struct lmv_obd *lmv, unsigned int cmd, int len, return rc; } - - - static int lmv_iocontrol(unsigned int cmd, struct obd_export *exp, int len, void *karg, void *uarg) { @@ -1588,7 +1585,6 @@ static int lmv_find_cbdata(struct obd_export *exp, const struct lu_fid *fid, return rc; } - static int lmv_close(struct obd_export *exp, struct md_op_data *op_data, struct md_open_data *mod, struct ptlrpc_request **request) { diff --git a/drivers/staging/lustre/lustre/lov/lov_cl_internal.h b/drivers/staging/lustre/lustre/lov/lov_cl_internal.h index 9a9156ec1777..1c0fe65243e1 100644 --- a/drivers/staging/lustre/lustre/lov/lov_cl_internal.h +++ b/drivers/staging/lustre/lustre/lov/lov_cl_internal.h @@ -438,7 +438,6 @@ struct lovsub_page { struct cl_page_slice lsb_cl; }; - struct lov_thread_info { struct cl_object_conf lti_stripe_conf; struct lu_fid lti_fid; @@ -611,7 +610,6 @@ int lov_sublock_modify(const struct lu_env *env, struct lov_lock *lov, struct lovsub_lock *sublock, const struct cl_lock_descr *d, int idx); - int lov_page_init(const struct lu_env *env, struct cl_object *ob, struct cl_page *page, struct page *vmpage); int lovsub_page_init(const struct lu_env *env, struct cl_object *ob, diff --git a/drivers/staging/lustre/lustre/lov/lov_dev.c b/drivers/staging/lustre/lustre/lov/lov_dev.c index 10317e0c3150..6f89c194d51f 100644 --- a/drivers/staging/lustre/lustre/lov/lov_dev.c +++ b/drivers/staging/lustre/lustre/lov/lov_dev.c @@ -46,7 +46,6 @@ #include "lov_cl_internal.h" #include "lov_internal.h" - struct kmem_cache *lov_lock_kmem; struct kmem_cache *lov_object_kmem; struct kmem_cache *lov_thread_kmem; diff --git a/drivers/staging/lustre/lustre/lov/lov_internal.h b/drivers/staging/lustre/lustre/lov/lov_internal.h index 0de39cc0c43e..bdee0a6f3d4e 100644 --- a/drivers/staging/lustre/lustre/lov/lov_internal.h +++ b/drivers/staging/lustre/lustre/lov/lov_internal.h @@ -269,5 +269,4 @@ static inline bool lov_oinfo_is_dummy(const struct lov_oinfo *loi) return false; } - #endif diff --git a/drivers/staging/lustre/lustre/lov/lov_io.c b/drivers/staging/lustre/lustre/lov/lov_io.c index 62360d874cd6..a5838b7ea18e 100644 --- a/drivers/staging/lustre/lustre/lov/lov_io.c +++ b/drivers/staging/lustre/lustre/lov/lov_io.c @@ -271,7 +271,6 @@ struct lov_io_sub *lov_page_subio(const struct lu_env *env, struct lov_io *lio, return lov_sub_get(env, lio, stripe); } - static int lov_io_subio_init(const struct lu_env *env, struct lov_io *lio, struct cl_io *io) { @@ -545,7 +544,6 @@ static void lov_io_unlock(const struct lu_env *env, LASSERT(rc == 0); } - static struct cl_page_list *lov_io_submit_qin(struct lov_device *ld, struct cl_page_list *qin, int idx, int alloc) diff --git a/drivers/staging/lustre/lustre/lov/lov_lock.c b/drivers/staging/lustre/lustre/lov/lov_lock.c index 173ae840950a..1a26496d844b 100644 --- a/drivers/staging/lustre/lustre/lov/lov_lock.c +++ b/drivers/staging/lustre/lustre/lov/lov_lock.c @@ -678,7 +678,6 @@ static int lov_lock_unuse(const struct lu_env *env, return result; } - static void lov_lock_cancel(const struct lu_env *env, const struct cl_lock_slice *slice) { @@ -1196,5 +1195,4 @@ static struct cl_lock_closure *lov_closure_get(const struct lu_env *env, return closure; } - /** @} lov */ diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index c8657076a96d..c3be0b5ca627 100644 --- a/drivers/staging/lustre/lustre/lov/lov_obd.c +++ b/drivers/staging/lustre/lustre/lov/lov_obd.c @@ -122,7 +122,6 @@ static int lov_set_osc_active(struct obd_device *obd, struct obd_uuid *uuid, static int lov_notify(struct obd_device *obd, struct obd_device *watched, enum obd_notify_event ev, void *data); - #define MAX_STRING_SIZE 128 int lov_connect_obd(struct obd_device *obd, __u32 index, int activate, struct obd_connect_data *data) @@ -170,7 +169,6 @@ int lov_connect_obd(struct obd_device *obd, __u32 index, int activate, return rc; } - if (imp->imp_invalid) { CDEBUG(D_CONFIG, "not connecting OSC %s; administratively disabled\n", obd_uuid2str(tgt_uuid)); diff --git a/drivers/staging/lustre/lustre/lov/lov_pack.c b/drivers/staging/lustre/lustre/lov/lov_pack.c index 05651ac6074a..2fb1e974cc70 100644 --- a/drivers/staging/lustre/lustre/lov/lov_pack.c +++ b/drivers/staging/lustre/lustre/lov/lov_pack.c @@ -253,7 +253,6 @@ __u16 lov_get_stripecnt(struct lov_obd *lov, __u32 magic, __u16 stripe_count) return stripe_count; } - static int lov_verify_lmm(void *lmm, int lmm_bytes, __u16 *stripe_count) { int rc; @@ -327,7 +326,6 @@ int lov_free_memmd(struct lov_stripe_md **lsmp) return refc; } - /* Unpack LOV object metadata from disk storage. It is packed in LE byte * order and is opaque to the networking layer. */ diff --git a/drivers/staging/lustre/lustre/lov/lov_page.c b/drivers/staging/lustre/lustre/lov/lov_page.c index c4596e8e5783..463cadbd9d40 100644 --- a/drivers/staging/lustre/lustre/lov/lov_page.c +++ b/drivers/staging/lustre/lustre/lov/lov_page.c @@ -208,7 +208,6 @@ out: return rc; } - static const struct cl_page_operations lov_empty_page_ops = { .cpo_fini = lov_empty_page_fini, .cpo_print = lov_page_print @@ -228,5 +227,4 @@ int lov_page_init_empty(const struct lu_env *env, struct cl_object *obj, return 0; } - /** @} lov */ diff --git a/drivers/staging/lustre/lustre/lov/lov_pool.c b/drivers/staging/lustre/lustre/lov/lov_pool.c index d3c6aa7645c7..2234321025d5 100644 --- a/drivers/staging/lustre/lustre/lov/lov_pool.c +++ b/drivers/staging/lustre/lustre/lov/lov_pool.c @@ -397,7 +397,6 @@ int lov_ost_pool_free(struct ost_pool *op) return 0; } - int lov_pool_new(struct obd_device *obd, char *poolname) { struct lov_obd *lov; @@ -509,7 +508,6 @@ int lov_pool_del(struct obd_device *obd, char *poolname) return 0; } - int lov_pool_add(struct obd_device *obd, char *poolname, char *ostname) { struct obd_uuid ost_uuid; @@ -526,7 +524,6 @@ int lov_pool_add(struct obd_device *obd, char *poolname, char *ostname) obd_str2uuid(&ost_uuid, ostname); - /* search ost in lov array */ obd_getref(obd); for (lov_idx = 0; lov_idx < lov->desc.ld_tgt_count; lov_idx++) { diff --git a/drivers/staging/lustre/lustre/lov/lovsub_dev.c b/drivers/staging/lustre/lustre/lov/lovsub_dev.c index 90d9ec386a1a..8cbbfb03c849 100644 --- a/drivers/staging/lustre/lustre/lov/lovsub_dev.c +++ b/drivers/staging/lustre/lustre/lov/lovsub_dev.c @@ -205,5 +205,4 @@ struct lu_device_type lovsub_device_type = { .ldt_ctx_tags = LCT_CL_THREAD }; - /** @} lov */ diff --git a/drivers/staging/lustre/lustre/lov/lovsub_object.c b/drivers/staging/lustre/lustre/lov/lovsub_object.c index 57e3629fccee..f2d885212f19 100644 --- a/drivers/staging/lustre/lustre/lov/lovsub_object.c +++ b/drivers/staging/lustre/lustre/lov/lovsub_object.c @@ -120,8 +120,6 @@ static int lovsub_object_glimpse(const struct lu_env *env, return cl_object_glimpse(env, &los->lso_super->lo_cl, lvb); } - - static const struct cl_object_operations lovsub_ops = { .coo_page_init = lovsub_page_init, .coo_lock_init = lovsub_lock_init, diff --git a/drivers/staging/lustre/lustre/mdc/mdc_lib.c b/drivers/staging/lustre/lustre/mdc/mdc_lib.c index ce0bcdfacb0e..227fc9ee0dcf 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_lib.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_lib.c @@ -39,7 +39,6 @@ #include "../include/lustre/lustre_idl.h" #include "mdc_internal.h" - static void __mdc_pack_body(struct mdt_body *b, __u32 suppgid) { LASSERT(b != NULL); @@ -120,7 +119,6 @@ void mdc_create_pack(struct ptlrpc_request *req, struct md_op_data *op_data, CLASSERT(sizeof(struct mdt_rec_reint) == sizeof(struct mdt_rec_create)); rec = req_capsule_client_get(&req->rq_pill, &RMF_REC_REINT); - rec->cr_opcode = REINT_CREATE; rec->cr_fsuid = uid; rec->cr_fsgid = gid; diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c index 5c34130ab69a..e0b81eea9486 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_locks.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_locks.c @@ -363,8 +363,6 @@ mdc_intent_getxattr_pack(struct obd_export *exp, int rc, count = 0, maxdata; LIST_HEAD(cancels); - - req = ptlrpc_request_alloc(class_exp2cliimp(exp), &RQF_LDLM_INTENT_GETXATTR); if (req == NULL) diff --git a/drivers/staging/lustre/lustre/mdc/mdc_request.c b/drivers/staging/lustre/lustre/mdc/mdc_request.c index dc234a775942..16a5a10d371e 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_request.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_request.c @@ -785,7 +785,6 @@ static int mdc_close(struct obd_export *exp, struct md_op_data *op_data, int rc; int saved_rc = 0; - req_fmt = &RQF_MDS_CLOSE; if (op_data->op_bias & MDS_HSM_RELEASE) { req_fmt = &RQF_MDS_RELEASE_CLOSE; @@ -961,7 +960,6 @@ static int mdc_done_writing(struct obd_export *exp, struct md_op_data *op_data, return rc; } - static int mdc_readpage(struct obd_export *exp, struct md_op_data *op_data, struct page **pages, struct ptlrpc_request **request) { @@ -2426,7 +2424,6 @@ static int mdc_process_config(struct obd_device *obd, u32 len, void *buf) return rc; } - /* get remote permission for current user on fid */ static int mdc_get_remote_perm(struct obd_export *exp, const struct lu_fid *fid, __u32 suppgid, struct ptlrpc_request **request) diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index 76b16f4f95c4..780ea81064ba 100644 --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c +++ b/drivers/staging/lustre/lustre/mgc/mgc_request.c @@ -1558,7 +1558,6 @@ int mgc_process_log(struct obd_device *mgc, struct config_llog_data *cld) config_log_get(cld); } - if (cld_is_recover(cld)) { rc = 0; /* this is not a fatal error for recover log */ if (rcl == 0) @@ -1579,7 +1578,6 @@ int mgc_process_log(struct obd_device *mgc, struct config_llog_data *cld) return rc; } - /** Called from lustre_process_log. * LCFG_LOG_START gets the config log from the MGS, processes it to start * any services, and adds it to the list logs to watch (follow). diff --git a/drivers/staging/lustre/lustre/obdclass/acl.c b/drivers/staging/lustre/lustre/obdclass/acl.c index 1dace1419530..2e20cf635b27 100644 --- a/drivers/staging/lustre/lustre/obdclass/acl.c +++ b/drivers/staging/lustre/lustre/obdclass/acl.c @@ -92,7 +92,6 @@ static inline void lustre_posix_acl_cpu_to_le(posix_acl_xattr_entry *d, d->e_id = cpu_to_le32(s->e_id); } - /* if "new_count == 0", then "new = {a_version, NULL}", NOT NULL. */ static int lustre_posix_acl_xattr_reduce_space(posix_acl_xattr_header **header, int old_count, int new_count) diff --git a/drivers/staging/lustre/lustre/obdclass/cl_io.c b/drivers/staging/lustre/lustre/obdclass/cl_io.c index 6b1043548d85..e67cea758405 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_io.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_io.c @@ -1040,7 +1040,6 @@ void cl_io_slice_add(struct cl_io *io, struct cl_io_slice *slice, } EXPORT_SYMBOL(cl_io_slice_add); - /** * Initializes page list. */ diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index cf752aa96347..a29540360fd5 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -547,7 +547,6 @@ static void cl_env_init0(struct cl_env *cle, void *debug) CL_ENV_INC(busy); } - /* * The implementation of using hash table to connect cl_env and thread */ @@ -646,7 +645,6 @@ static void cl_env_store_fini(void) cfs_hash_putref(cl_env_hash); } - static inline struct cl_env *cl_env_detach(struct cl_env *cle) { if (cle == NULL) diff --git a/drivers/staging/lustre/lustre/obdclass/cl_page.c b/drivers/staging/lustre/lustre/obdclass/cl_page.c index e27062d38a45..2f569edd0811 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_page.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_page.c @@ -441,7 +441,6 @@ struct cl_page *cl_page_find(const struct lu_env *env, struct cl_object *o, } EXPORT_SYMBOL(cl_page_find); - struct cl_page *cl_page_find_sub(const struct lu_env *env, struct cl_object *o, pgoff_t idx, struct page *vmpage, struct cl_page *parent) @@ -903,7 +902,6 @@ int cl_page_own_try(const struct lu_env *env, struct cl_io *io, } EXPORT_SYMBOL(cl_page_own_try); - /** * Assume page ownership. * diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index a1a492ff62fc..3e9c24684690 100644 --- a/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -47,7 +47,6 @@ #include "../include/cl_object.h" #include "llog_internal.h" - struct obd_device *obd_devs[MAX_OBD_DEVICES]; EXPORT_SYMBOL(obd_devs); struct list_head obd_types; @@ -534,7 +533,6 @@ static int __init init_obdclass(void) if (err != 0) return err; - err = llog_info_init(); if (err) return err; diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index e0b8150db71d..73044c3fa300 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -1109,7 +1109,6 @@ void (*class_export_dump_hook)(struct obd_export *) = NULL; EXPORT_SYMBOL(class_export_dump_hook); #endif - /* Total amount of zombies to be destroyed */ static int zombies_count; @@ -1258,7 +1257,6 @@ void obd_zombie_barrier(void) } EXPORT_SYMBOL(obd_zombie_barrier); - /** * destroy zombie export/import thread. */ @@ -1288,7 +1286,6 @@ static int obd_zombie_impexp_thread(void *unused) return 0; } - /** * start destroy zombie import/export thread */ diff --git a/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c b/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c index 245ac2e9b2dd..a055cbb4f162 100644 --- a/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c +++ b/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c @@ -213,7 +213,6 @@ struct miscdevice obd_psdev = { .fops = &obd_psdev_fops, }; - static ssize_t version_show(struct kobject *kobj, struct attribute *attr, char *buf) { diff --git a/drivers/staging/lustre/lustre/obdclass/llog.c b/drivers/staging/lustre/lustre/obdclass/llog.c index a941518e463d..7cb55ef79737 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog.c +++ b/drivers/staging/lustre/lustre/obdclass/llog.c @@ -47,7 +47,6 @@ #define DEBUG_SUBSYSTEM S_LOG - #include "../include/obd_class.h" #include "../include/lustre_log.h" #include "llog_internal.h" diff --git a/drivers/staging/lustre/lustre/obdclass/llog_cat.c b/drivers/staging/lustre/lustre/obdclass/llog_cat.c index c63b720172b4..c442cae5fd37 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_cat.c +++ b/drivers/staging/lustre/lustre/obdclass/llog_cat.c @@ -48,7 +48,6 @@ #define DEBUG_SUBSYSTEM S_LOG - #include "../include/obd_class.h" #include "llog_internal.h" diff --git a/drivers/staging/lustre/lustre/obdclass/llog_obd.c b/drivers/staging/lustre/lustre/obdclass/llog_obd.c index 2b4a70b6c8d4..3900b9d4007e 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_obd.c +++ b/drivers/staging/lustre/lustre/obdclass/llog_obd.c @@ -36,7 +36,6 @@ #define DEBUG_SUBSYSTEM S_LOG - #include "../include/obd_class.h" #include "../include/lustre_log.h" #include "llog_internal.h" diff --git a/drivers/staging/lustre/lustre/obdclass/llog_swab.c b/drivers/staging/lustre/lustre/obdclass/llog_swab.c index 054fd31bb1c4..9354f75b5cab 100644 --- a/drivers/staging/lustre/lustre/obdclass/llog_swab.c +++ b/drivers/staging/lustre/lustre/obdclass/llog_swab.c @@ -42,7 +42,6 @@ #define DEBUG_SUBSYSTEM S_LOG - #include "../include/lustre_log.h" static void print_llogd_body(struct llogd_body *d) diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index ba56187b4c88..07727dbe6bff 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -40,7 +40,6 @@ #define DEBUG_SUBSYSTEM S_CLASS - #include "../include/obd_class.h" #include "../include/lprocfs_status.h" #include "../include/lustre/lustre_idl.h" diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 6a6ddb4c34dc..0d15bd5b05b7 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -1225,8 +1225,6 @@ struct lu_object *lu_object_locate(struct lu_object_header *h, } EXPORT_SYMBOL(lu_object_locate); - - /** * Finalize and free devices in the device stack. * @@ -1732,7 +1730,6 @@ static void lu_site_stats_get(struct cfs_hash *hs, } } - /* * lu_cache_shrink_count returns the number of cached objects that are * candidates to be freed by shrink_slab(). A counter, which tracks diff --git a/drivers/staging/lustre/lustre/obdclass/lustre_handles.c b/drivers/staging/lustre/lustre/obdclass/lustre_handles.c index b526e7ef0c0e..fb9147cc607f 100644 --- a/drivers/staging/lustre/lustre/obdclass/lustre_handles.c +++ b/drivers/staging/lustre/lustre/obdclass/lustre_handles.c @@ -44,7 +44,6 @@ #include "../include/lustre_handles.h" #include "../include/lustre_lib.h" - static __u64 handle_base; #define HANDLE_INCR 7 static spinlock_t handle_base_lock; diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 68cb3dff985f..64e2d1b368be 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -722,7 +722,6 @@ static int class_set_global(char *ptr, int val, struct lustre_cfg *lcfg) return 0; } - /* We can't call ll_process_config or lquota_process_config directly because * it lives in a module that must be loaded after this one. */ static int (*client_process_config)(struct lustre_cfg *lcfg); @@ -748,7 +747,6 @@ static int process_param2_config(struct lustre_cfg *lcfg) ktime_t end; int rc; - /* Add upcall processing here. Now only lctl is supported */ if (strcmp(upcall, LCTL_UPCALL) != 0) { CERROR("Unsupported upcall %s\n", upcall); @@ -1156,7 +1154,6 @@ int class_config_llog_handler(const struct lu_env *env, } } - if (clli->cfg_flags & CFG_F_EXCLUDE) { CDEBUG(D_CONFIG, "cmd: %x marked EXCLUDED\n", lcfg->lcfg_command); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index 0c4dbb1304ee..0d324cc28243 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -40,7 +40,6 @@ * Author: Nathan Rutman */ - #define DEBUG_SUBSYSTEM S_CLASS #define D_MOUNT (D_SUPER|D_CONFIG/*|D_WARNING */) #define PRINT_CMD CDEBUG @@ -1146,7 +1145,6 @@ out: return rc; } - /* We can't call ll_fill_super by name because it lives in a module that must be loaded after this one. */ void lustre_register_client_fill_super(int (*cfs)(struct super_block *sb, diff --git a/drivers/staging/lustre/lustre/obdecho/echo_client.c b/drivers/staging/lustre/lustre/obdecho/echo_client.c index ec9ccff86648..87f1b3adeee7 100644 --- a/drivers/staging/lustre/lustre/obdecho/echo_client.c +++ b/drivers/staging/lustre/lustre/obdecho/echo_client.c @@ -98,7 +98,6 @@ static int echo_client_setup(const struct lu_env *env, struct lustre_cfg *lcfg); static int echo_client_cleanup(struct obd_device *obddev); - /** \defgroup echo_helpers Helper functions * @{ */ @@ -1202,7 +1201,6 @@ static int cl_echo_object_brw(struct echo_object *eco, int rw, u64 offset, goto out; LASSERT(rc == 0); - rc = cl_echo_enqueue0(env, eco, offset, offset + npages * PAGE_CACHE_SIZE - 1, rw == READ ? LCK_PR : LCK_PW, &lh.cookie, @@ -1261,7 +1259,6 @@ out: } /** @} echo_exports */ - static u64 last_object_id; static int @@ -1304,7 +1301,6 @@ echo_copyin_lsm(struct echo_device *ed, struct lov_stripe_md *lsm, ((__u64)lsm->lsm_stripe_size * lsm->lsm_stripe_count > ~0UL)) return -EINVAL; - for (i = 0; i < lsm->lsm_stripe_count; i++) { if (copy_from_user(lsm->lsm_oinfo[i], ((struct lov_stripe_md *)ulsm)-> \ diff --git a/drivers/staging/lustre/lustre/obdecho/echo_internal.h b/drivers/staging/lustre/lustre/obdecho/echo_internal.h index 8e9dbc2351e7..69063fa65d35 100644 --- a/drivers/staging/lustre/lustre/obdecho/echo_internal.h +++ b/drivers/staging/lustre/lustre/obdecho/echo_internal.h @@ -43,5 +43,4 @@ /* block size to use for data verification */ #define OBD_ECHO_BLOCK_SIZE (4<<10) - #endif diff --git a/drivers/staging/lustre/lustre/osc/osc_cache.c b/drivers/staging/lustre/lustre/osc/osc_cache.c index 4d235972e5cc..b552a5611fdf 100644 --- a/drivers/staging/lustre/lustre/osc/osc_cache.c +++ b/drivers/staging/lustre/lustre/osc/osc_cache.c @@ -306,7 +306,6 @@ out: __res; \ }) - /** * sanity check - to make sure there is no overlapped extent in the tree. */ @@ -1028,7 +1027,6 @@ static int osc_extent_truncate(struct osc_extent *ext, pgoff_t trunc_index, int chunks = (ext->oe_end >> ppc_bits) - trunc_chunk; pgoff_t last_index; - /* if there is no pages in this chunk, we can also free grants * for the last chunk */ if (pages_in_chunk == 0) { @@ -1781,7 +1779,6 @@ static void osc_process_ar(struct osc_async_rc *ar, __u64 xid, ar->ar_force_sync = 0; } - /* this must be called holding the loi list lock to give coverage to exit_cache, * async_flag maintenance, and oap_request */ static void osc_ap_completion(const struct lu_env *env, struct client_obd *cli, diff --git a/drivers/staging/lustre/lustre/osc/osc_cl_internal.h b/drivers/staging/lustre/lustre/osc/osc_cl_internal.h index 75bfda6e4ad3..d2d68452d382 100644 --- a/drivers/staging/lustre/lustre/osc/osc_cl_internal.h +++ b/drivers/staging/lustre/lustre/osc/osc_cl_internal.h @@ -329,7 +329,6 @@ struct osc_lock { struct osc_io *ols_owner; }; - /** * Page state private for osc layer. */ diff --git a/drivers/staging/lustre/lustre/osc/osc_io.c b/drivers/staging/lustre/lustre/osc/osc_io.c index 8d7eab0856a0..3a4200fa8b6f 100644 --- a/drivers/staging/lustre/lustre/osc/osc_io.c +++ b/drivers/staging/lustre/lustre/osc/osc_io.c @@ -78,7 +78,6 @@ static struct osc_page *osc_cl_page_osc(struct cl_page *page) return cl2osc_page(slice); } - /***************************************************************************** * * io operations. @@ -788,7 +787,6 @@ static const struct cl_req_operations osc_req_ops = { .cro_completion = osc_req_completion }; - int osc_io_init(const struct lu_env *env, struct cl_object *obj, struct cl_io *io) { diff --git a/drivers/staging/lustre/lustre/osc/osc_object.c b/drivers/staging/lustre/lustre/osc/osc_object.c index c628a250ebd6..acffab954ad7 100644 --- a/drivers/staging/lustre/lustre/osc/osc_object.c +++ b/drivers/staging/lustre/lustre/osc/osc_object.c @@ -148,7 +148,6 @@ static int osc_object_print(const struct lu_env *env, void *cookie, return 0; } - static int osc_attr_get(const struct lu_env *env, struct cl_object *obj, struct cl_attr *attr) { @@ -193,7 +192,6 @@ static int osc_object_glimpse(const struct lu_env *env, return 0; } - void osc_object_set_contended(struct osc_object *obj) { obj->oo_contention_time = cfs_time_current(); diff --git a/drivers/staging/lustre/lustre/osc/osc_page.c b/drivers/staging/lustre/lustre/osc/osc_page.c index d696b321a659..61eaf7172fdf 100644 --- a/drivers/staging/lustre/lustre/osc/osc_page.c +++ b/drivers/staging/lustre/lustre/osc/osc_page.c @@ -347,7 +347,6 @@ static int osc_page_fail(const struct lu_env *env, return 0; } - static const char *osc_list(struct list_head *head) { return list_empty(head) ? "-" : "+"; diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index e3808c97043f..a3a63749a0fc 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -38,7 +38,6 @@ #include "../../include/linux/libcfs/libcfs.h" - #include "../include/lustre_dlm.h" #include "../include/lustre_net.h" #include "../include/lustre/lustre_user.h" @@ -2592,7 +2591,6 @@ static int osc_getstripe(struct lov_stripe_md *lsm, struct lov_user_md *lump) return rc; } - static int osc_iocontrol(unsigned int cmd, struct obd_export *exp, int len, void *karg, void *uarg) { diff --git a/drivers/staging/lustre/lustre/ptlrpc/events.c b/drivers/staging/lustre/lustre/ptlrpc/events.c index 183e4156950d..9c2fd34e2eb9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/events.c +++ b/drivers/staging/lustre/lustre/ptlrpc/events.c @@ -415,7 +415,6 @@ void reply_out_callback(lnet_event_t *ev) } } - static void ptlrpc_master_callback(lnet_event_t *ev) { struct ptlrpc_cb_id *cbid = ev->md.user_ptr; @@ -560,7 +559,6 @@ static int ptlrpc_ni_init(void) return -ENOMEM; } - int ptlrpc_init_portals(void) { int rc = ptlrpc_ni_init(); diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 23d45e8c67b3..bfa410f7e773 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -103,7 +103,6 @@ do { \ spin_unlock(&imp->imp_lock); \ } while (0) - static int ptlrpc_connect_interpret(const struct lu_env *env, struct ptlrpc_request *request, void *data, int rc); @@ -942,7 +941,6 @@ static int ptlrpc_connect_interpret(const struct lu_env *env, request->rq_repmsg)->cookie); } - imp->imp_remote_handle = *lustre_msg_get_handle(request->rq_repmsg); diff --git a/drivers/staging/lustre/lustre/ptlrpc/layout.c b/drivers/staging/lustre/lustre/ptlrpc/layout.c index 36876a803b41..637fd2af81d3 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/layout.c +++ b/drivers/staging/lustre/lustre/ptlrpc/layout.c @@ -578,7 +578,6 @@ static const struct req_msg_field *ost_destroy_client[] = { &RMF_CAPA1 }; - static const struct req_msg_field *ost_brw_client[] = { &RMF_PTLRPC_BODY, &RMF_OST_BODY, diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 593613276c8f..05270e18d106 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -35,7 +35,6 @@ */ #define DEBUG_SUBSYSTEM S_CLASS - #include "../include/obd_support.h" #include "../include/obd.h" #include "../include/lprocfs_status.h" @@ -44,7 +43,6 @@ #include "../include/obd_class.h" #include "ptlrpc_internal.h" - static struct ll_rpc_opcode { __u32 opcode; const char *opname; @@ -326,7 +324,6 @@ ptlrpc_lprocfs_req_history_max_seq_write(struct file *file, } LPROC_SEQ_FOPS(ptlrpc_lprocfs_req_history_max); - static ssize_t threads_min_show(struct kobject *kobj, struct attribute *attr, char *buf) { diff --git a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c index d93c6b2524b9..09ddeef6ba48 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c +++ b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c @@ -106,7 +106,6 @@ static void mdunlink_iterate_helper(lnet_handle_md_t *bd_mds, int count) LNetMDUnlink(bd_mds[i]); } - /** * Register bulk at the sender for later transfer. * Returns 0 on success or error code. diff --git a/drivers/staging/lustre/lustre/ptlrpc/nrs.c b/drivers/staging/lustre/lustre/ptlrpc/nrs.c index 3fe96a183401..7044e1ff6692 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/nrs.c +++ b/drivers/staging/lustre/lustre/ptlrpc/nrs.c @@ -1573,7 +1573,6 @@ out: return rc; } - /* ptlrpc/nrs_fifo.c */ extern struct ptlrpc_nrs_pol_conf nrs_conf_fifo; @@ -1595,7 +1594,6 @@ int ptlrpc_nrs_init(void) if (rc != 0) goto fail; - return rc; fail: /** diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index ef33c5b7e852..f3cb5184fa85 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -1057,7 +1057,6 @@ __u64 lustre_msg_get_slv(struct lustre_msg *msg) } EXPORT_SYMBOL(lustre_msg_get_slv); - void lustre_msg_set_slv(struct lustre_msg *msg, __u64 slv) { switch (msg->lm_magic) { @@ -1097,7 +1096,6 @@ __u32 lustre_msg_get_limit(struct lustre_msg *msg) } EXPORT_SYMBOL(lustre_msg_get_limit); - void lustre_msg_set_limit(struct lustre_msg *msg, __u64 limit) { switch (msg->lm_magic) { @@ -1402,7 +1400,6 @@ void lustre_msg_set_cksum(struct lustre_msg *msg, __u32 cksum) } } - void ptlrpc_request_set_replen(struct ptlrpc_request *req) { int count = req_capsule_filled_sizes(&req->rq_pill, RCL_SERVER); diff --git a/drivers/staging/lustre/lustre/ptlrpc/pers.c b/drivers/staging/lustre/lustre/ptlrpc/pers.c index e1334c24ebe3..2a2a9fb6549c 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pers.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pers.c @@ -42,7 +42,6 @@ #include "ptlrpc_internal.h" - void ptlrpc_fill_bulk_md(lnet_md_t *md, struct ptlrpc_bulk_desc *desc, int mdidx) { diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c index d12e95bc9dce..9deeb244166f 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c @@ -36,7 +36,6 @@ #define DEBUG_SUBSYSTEM S_RPC - #include "../include/obd_support.h" #include "../include/obd_class.h" #include "../include/lustre_net.h" diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec.c b/drivers/staging/lustre/lustre/ptlrpc/sec.c index a587c9461e95..34d133075302 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec.c @@ -2165,7 +2165,6 @@ int sptlrpc_cli_unwrap_bulk_write(struct ptlrpc_request *req, } EXPORT_SYMBOL(sptlrpc_cli_unwrap_bulk_write); - /**************************************** * user descriptor helpers * ****************************************/ diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c index c89973c0e3a2..baf063efb79e 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c @@ -58,7 +58,6 @@ * bulk encryption page pools * ****************************************/ - #define POINTERS_PER_PAGE (PAGE_CACHE_SIZE / sizeof(void *)) #define PAGES_PER_POOL (POINTERS_PER_PAGE) @@ -448,7 +447,6 @@ void sptlrpc_enc_pool_fini(void) } } - static int cfs_hash_alg_id[] = { [BULK_HASH_ALG_NULL] = CFS_HASH_ALG_NULL, [BULK_HASH_ALG_ADLER32] = CFS_HASH_ALG_ADLER32, diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c index 520329f88465..07cf2fef4462 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c @@ -51,7 +51,6 @@ #define SEC_GC_INTERVAL (30 * 60) - static struct mutex sec_gc_mutex; static LIST_HEAD(sec_gc_list); static spinlock_t sec_gc_list_lock; @@ -62,7 +61,6 @@ static spinlock_t sec_gc_ctx_list_lock; static struct ptlrpc_thread sec_gc_thread; static atomic_t sec_gc_wait_del = ATOMIC_INIT(0); - void sptlrpc_gc_add_sec(struct ptlrpc_sec *sec) { LASSERT(sec->ps_policy->sp_cops->gc_ctx); diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_null.c b/drivers/staging/lustre/lustre/ptlrpc/sec_null.c index 8a6abbc06e1b..ebfa6092be14 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_null.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_null.c @@ -40,7 +40,6 @@ #define DEBUG_SUBSYSTEM S_SEC - #include "../include/obd_support.h" #include "../include/obd_cksum.h" #include "../include/obd_class.h" diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c b/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c index d905b77b758b..f448b4567af0 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c @@ -40,7 +40,6 @@ #define DEBUG_SUBSYSTEM S_SEC - #include "../include/obd_support.h" #include "../include/obd_cksum.h" #include "../include/obd_class.h" diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 2652fc81f66a..3f6f07002726 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -58,7 +58,6 @@ MODULE_PARM_DESC(at_early_margin, "How soon before an RPC deadline to send an ea module_param(at_extra, int, 0644); MODULE_PARM_DESC(at_extra, "How much extra time to give with each early reply"); - /* forward ref */ static int ptlrpc_server_post_idle_rqbds(struct ptlrpc_service_part *svcpt); static void ptlrpc_server_hpreq_fini(struct ptlrpc_request *req); @@ -143,7 +142,6 @@ ptlrpc_grow_req_bufs(struct ptlrpc_service_part *svcpt, int post) svcpt->scp_rqbd_allocating++; spin_unlock(&svcpt->scp_lock); - for (i = 0; i < svc->srv_nbuf_per_group; i++) { /* NB: another thread might have recycled enough rqbds, we * need to make sure it wouldn't over-allocate, see LU-1212. */ @@ -1848,7 +1846,6 @@ ptlrpc_handle_rs(struct ptlrpc_reply_state *rs) return 1; } - static void ptlrpc_check_rqbd_pool(struct ptlrpc_service_part *svcpt) { @@ -2553,7 +2550,6 @@ void ptlrpc_hr_fini(void) ptlrpc_hr.hr_partitions = NULL; } - /** * Wait until all already scheduled replies are processed. */ From c9f6bb961d7afefc238f0e420eb40a155ee9a6e8 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 16:03:42 +0300 Subject: [PATCH 1698/2431] staging: lustre: add a blank line after function/struct/union/enum declarations Fixes checkpatch.pl CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations The patch is generated using checkpatch.pl --fix-inplace: for f in $(find drivers/staging/lustre/ -type f) ; do ./scripts/checkpatch.pl --types "LINE_SPACING" --fix-inplace -f $f done Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/cl_object.h | 1 + drivers/staging/lustre/lustre/include/lprocfs_status.h | 2 ++ drivers/staging/lustre/lustre/include/lustre/lustre_idl.h | 6 ++++++ drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 4 ++++ drivers/staging/lustre/lustre/include/lustre_dlm.h | 1 + drivers/staging/lustre/lustre/include/lustre_handles.h | 1 + drivers/staging/lustre/lustre/include/lustre_import.h | 3 +++ drivers/staging/lustre/lustre/include/lustre_lib.h | 1 + drivers/staging/lustre/lustre/include/lustre_net.h | 4 ++++ drivers/staging/lustre/lustre/include/obd.h | 2 ++ drivers/staging/lustre/lustre/include/obd_class.h | 1 + drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 1 + drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 1 + drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 2 ++ drivers/staging/lustre/lustre/libcfs/debug.c | 1 + drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c | 1 + .../staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c | 2 ++ drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c | 1 + drivers/staging/lustre/lustre/llite/llite_lib.c | 1 + drivers/staging/lustre/lustre/llite/lproc_llite.c | 6 ++++++ drivers/staging/lustre/lustre/llite/rw.c | 1 + drivers/staging/lustre/lustre/lmv/lproc_lmv.c | 1 + drivers/staging/lustre/lustre/lov/lov_io.c | 2 ++ drivers/staging/lustre/lustre/lov/lproc_lov.c | 5 +++++ drivers/staging/lustre/lustre/mgc/lproc_mgc.c | 1 + drivers/staging/lustre/lustre/obdclass/cl_lock.c | 1 + drivers/staging/lustre/lustre/obdclass/genops.c | 1 + drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 1 + drivers/staging/lustre/lustre/obdecho/echo_client.c | 5 +++++ drivers/staging/lustre/lustre/osc/lproc_osc.c | 3 +++ drivers/staging/lustre/lustre/osc/osc_internal.h | 1 + drivers/staging/lustre/lustre/ptlrpc/layout.c | 1 + drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 4 ++++ drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 1 + drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 4 ++++ drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c | 2 ++ 36 files changed, 76 insertions(+) diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index b463bc614d64..73564f8e3884 100644 --- a/drivers/staging/lustre/lustre/include/cl_object.h +++ b/drivers/staging/lustre/lustre/include/cl_object.h @@ -1119,6 +1119,7 @@ static inline int __page_in_use(const struct cl_page *page, int refc) LASSERT(atomic_read(&page->cp_ref) > 0); return (atomic_read(&page->cp_ref) > refc); } + #define cl_page_in_use(pg) __page_in_use(pg, 1) #define cl_page_in_use_noref(pg) __page_in_use(pg, 0) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 99fe03213dda..6e4112986664 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -158,6 +158,7 @@ struct lprocfs_counter { */ __s64 lc_array_sum[1]; }; + #define lc_sum lc_array_sum[0] #define lc_sum_irq lc_array_sum[1] @@ -369,6 +370,7 @@ static inline void s2dhms(struct dhms *ts, time64_t secs64) ts->m = secs / 60; ts->s = secs % 60; } + #define DHMS_FMT "%dd%dh%02dm%02ds" #define DHMS_VARS(x) (x)->d, (x)->h, (x)->m, (x)->s diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index f2f6b7b47a3b..0b721c65c2a3 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h @@ -321,6 +321,7 @@ enum lma_incompat { LMAI_REMOTE_PARENT = 0x00000004, /* the parent of the object is on the remote MDT */ }; + #define LMA_INCOMPAT_SUPP (LMAI_AGENT | LMAI_REMOTE_PARENT) /** @@ -1044,6 +1045,7 @@ static inline int lu_dirent_size(struct lu_dirent *ent) struct lustre_handle { __u64 cookie; }; + #define DEAD_HANDLE_MAGIC 0xdeadbeefcafebabeULL static inline int lustre_handle_is_used(struct lustre_handle *lh) @@ -1108,6 +1110,7 @@ struct ptlrpc_body_v3 { __u64 pb_padding[4]; char pb_jobid[JOBSTATS_JOBID_SIZE]; }; + #define ptlrpc_body ptlrpc_body_v3 struct ptlrpc_body_v2 { @@ -1388,6 +1391,7 @@ struct obd_connect_data { __u64 paddingE; /* added 2.1.0. also fix lustre_swab_connect */ __u64 paddingF; /* added 2.1.0. also fix lustre_swab_connect */ }; + /* XXX README XXX: * Please DO NOT use any fields here before first ensuring that this same * field is not in use on some other branch. Please clear any such changes @@ -1932,6 +1936,7 @@ enum { LQUOTA_LAST_RES, LQUOTA_FIRST_RES = LQUOTA_RES_MD }; + #define LQUOTA_NR_RES (LQUOTA_LAST_RES - LQUOTA_FIRST_RES + 1) /* @@ -1979,6 +1984,7 @@ struct ldlm_gl_lquota_desc { __u64 gl_time; __u64 gl_pad2; }; + #define gl_qunit gl_hardlimit /* current qunit value used when * glimpsing per-ID quota locks */ diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index 27e31c431d5c..286e96af608b 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -833,6 +833,7 @@ struct ioc_data_version { __u64 idv_version; __u64 idv_flags; /* See LL_DV_xxx */ }; + #define LL_DV_NOFLUSH 0x01 /* Do not take READ EXTENT LOCK before sampling version. Dirty caches are left unchanged. */ @@ -877,6 +878,7 @@ enum hsm_progress_states { HPS_RUNNING = 2, HPS_DONE = 3, }; + #define HPS_NONE 0 static inline char *hsm_progress_state2name(enum hsm_progress_states s) @@ -1101,6 +1103,7 @@ static inline int cfs_size_round (int val) { return (val + 7) & (~0x7); } + #define HAVE_CFS_SIZE_ROUND #endif @@ -1112,6 +1115,7 @@ static inline struct hsm_action_item *hai_zero(struct hsm_action_list *hal) hal_fsname) + 1)); } + /* Return pointer to next hai */ static inline struct hsm_action_item *hai_next(struct hsm_action_item *hai) { diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 7fb22af18f14..0e75a15fe0d4 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -515,6 +515,7 @@ struct ldlm_interval { struct list_head li_group; /* the locks which have the same * policy - group of the policy */ }; + #define to_ldlm_interval(n) container_of(n, struct ldlm_interval, li_node) /** diff --git a/drivers/staging/lustre/lustre/include/lustre_handles.h b/drivers/staging/lustre/lustre/include/lustre_handles.h index 3813055b9ffb..f39780ae4c8a 100644 --- a/drivers/staging/lustre/lustre/include/lustre_handles.h +++ b/drivers/staging/lustre/lustre/include/lustre_handles.h @@ -77,6 +77,7 @@ struct portals_handle { unsigned int h_size:31; unsigned int h_in:1; }; + #define RCU2HANDLE(rcu) container_of(rcu, struct portals_handle, h_rcu) /* handles.c */ diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index c1b8c175224c..4e4230e94c11 100644 --- a/drivers/staging/lustre/lustre/include/lustre_import.h +++ b/drivers/staging/lustre/lustre/include/lustre_import.h @@ -352,6 +352,7 @@ static inline void at_reset(struct adaptive_timeout *at, int val) at->at_worst_time = ktime_get_real_seconds(); spin_unlock(&at->at_lock); } + static inline void at_init(struct adaptive_timeout *at, int val, int flags) { memset(at, 0, sizeof(*at)); @@ -359,11 +360,13 @@ static inline void at_init(struct adaptive_timeout *at, int val, int flags) at->at_flags = flags; at_reset(at, val); } + extern unsigned int at_min; static inline int at_get(struct adaptive_timeout *at) { return (at->at_current > at_min) ? at->at_current : at_min; } + int at_measured(struct adaptive_timeout *at, unsigned int val); int import_at_get_index(struct obd_import *imp, int portal); extern unsigned int at_max; diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index 745b53d8d007..428469fec534 100644 --- a/drivers/staging/lustre/lustre/include/lustre_lib.h +++ b/drivers/staging/lustre/lustre/include/lustre_lib.h @@ -97,6 +97,7 @@ struct obd_client_handle { __u32 och_magic; fmode_t och_flags; }; + #define OBD_CLIENT_HANDLE_MAGIC 0xd15ea5ed /* statfs_pack.c */ diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 90edbff5ed0b..0127f45ca0c3 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -1545,6 +1545,7 @@ static inline bool ptlrpc_nrs_req_can_move(struct ptlrpc_request *req) */ return nrq->nr_enqueued && !nrq->nr_started && !req->rq_hp; } + /** @} nrs */ /** @@ -2394,10 +2395,12 @@ static inline void ptlrpc_free_bulk_pin(struct ptlrpc_bulk_desc *bulk) { __ptlrpc_free_bulk(bulk, 1); } + static inline void ptlrpc_free_bulk_nopin(struct ptlrpc_bulk_desc *bulk) { __ptlrpc_free_bulk(bulk, 0); } + void __ptlrpc_prep_bulk_page(struct ptlrpc_bulk_desc *desc, struct page *page, int pageoffset, int len, int); static inline void ptlrpc_prep_bulk_page_pin(struct ptlrpc_bulk_desc *desc, @@ -2837,6 +2840,7 @@ void client_destroy_import(struct obd_import *imp); enum timeout_event { TIMEOUT_GRANT = 1 }; + struct timeout_item; typedef int (*timeout_cb_t)(struct timeout_item *, void *); int ptlrpc_pinger_add_import(struct obd_import *imp); diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 5de9776788e4..5e93afca3435 100644 --- a/drivers/staging/lustre/lustre/include/obd.h +++ b/drivers/staging/lustre/lustre/include/obd.h @@ -362,6 +362,7 @@ struct client_obd { /* hash tables for osc_quota_info */ struct cfs_hash *cl_quota_hash[MAXQUOTAS]; }; + #define obd2cli_tgt(obd) ((char *)(obd)->u.cli.cl_target_uuid.uuid) struct obd_id_info { @@ -403,6 +404,7 @@ struct lov_statfs_data { struct obd_info lsd_oi; struct obd_statfs lsd_statfs; }; + /* Stripe placement optimization */ struct lov_qos { struct list_head lq_oss_list; /* list of OSSs that targets use */ diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index f1bcc3cb3b14..ec36c882fcab 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -133,6 +133,7 @@ struct config_llog_instance { int cfg_last_idx; /* for partial llog processing */ int cfg_flags; }; + int class_config_parse_llog(const struct lu_env *env, struct llog_ctxt *ctxt, char *name, struct config_llog_instance *cfg); enum { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c index f00e3ba49ffe..ca115119501a 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c @@ -879,6 +879,7 @@ static ssize_t cancel_unused_locks_before_replay_show(struct kobject *kobj, { return sprintf(buf, "%d\n", ldlm_cancel_unused_locks_before_replay); } + static ssize_t cancel_unused_locks_before_replay_store(struct kobject *kobj, struct attribute *attr, const char *buffer, diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c index b85e2d699761..92c21fd47f86 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -474,6 +474,7 @@ static int lprocfs_pool_state_seq_show(struct seq_file *m, void *unused) return 0; } + LPROC_SEQ_FOPS_RO(lprocfs_pool_state); static ssize_t grant_speed_show(struct kobject *kobj, struct attribute *attr, diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index 9152423f5eb9..e09f2cdb1fbc 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -77,6 +77,7 @@ lprocfs_wr_dump_ns(struct file *file, const char __user *buffer, ldlm_dump_all_namespaces(LDLM_NAMESPACE_CLIENT, D_DLMTRACE); return count; } + LPROC_SEQ_FOPS_WR_ONLY(ldlm, dump_ns); LPROC_SEQ_FOPS_RW_TYPE(ldlm_rw, uint); @@ -426,6 +427,7 @@ static int ldlm_namespace_debugfs_register(struct ldlm_namespace *ns) return 0; } + #undef MAX_STRING_SIZE static struct ldlm_resource *ldlm_resource_getref(struct ldlm_resource *res) diff --git a/drivers/staging/lustre/lustre/libcfs/debug.c b/drivers/staging/lustre/lustre/libcfs/debug.c index ae325f750eeb..1d1c67164418 100644 --- a/drivers/staging/lustre/lustre/libcfs/debug.c +++ b/drivers/staging/lustre/lustre/libcfs/debug.c @@ -562,6 +562,7 @@ int libcfs_debug_mark_buffer(const char *text) return 0; } + #undef DEBUG_SUBSYSTEM #define DEBUG_SUBSYSTEM S_LNET diff --git a/drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c b/drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c index d9b7c6b69db4..ad661a33a211 100644 --- a/drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c +++ b/drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c @@ -100,6 +100,7 @@ struct kkuc_reg { struct file *kr_fp; __u32 kr_data; }; + static struct list_head kkuc_groups[KUC_GRP_MAX+1] = {}; /* Protect message sending against remove and adds */ static DECLARE_RWSEM(kg_sem); diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c index 026994a1e3bf..5d8d8b79fa1f 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c @@ -82,6 +82,7 @@ static int adler32_update(struct shash_desc *desc, const u8 *data, *cksump = __adler32(*cksump, data, len); return 0; } + static int __adler32_finup(u32 *cksump, const u8 *data, unsigned int len, u8 *out) { @@ -109,6 +110,7 @@ static int adler32_digest(struct shash_desc *desc, const u8 *data, return __adler32_finup(crypto_shash_ctx(desc->tfm), data, len, out); } + static struct shash_alg alg = { .setkey = adler32_setkey, .init = adler32_init, diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c index 5230654b1caf..079d50ebfa3a 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c @@ -280,6 +280,7 @@ int cfs_crypto_register(void) cfs_crypto_test_hashes(); return 0; } + void cfs_crypto_unregister(void) { if (adler32 == 0) diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index e1d8fb08ffca..e3ea477b9f39 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1449,6 +1449,7 @@ int ll_statfs_internal(struct super_block *sb, struct obd_statfs *osfs, return rc; } + int ll_statfs(struct dentry *de, struct kstatfs *sfs) { struct super_block *sb = de->d_sb; diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c index 5bd9fb542506..190fc44114e1 100644 --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c @@ -218,6 +218,7 @@ static int ll_site_stats_seq_show(struct seq_file *m, void *v) */ return cl_site_stats_print(lu2cl_site(ll_s2sbi(sb)->ll_site), m); } + LPROC_SEQ_FOPS_RO(ll_site_stats); static ssize_t max_read_ahead_mb_show(struct kobject *kobj, @@ -478,6 +479,7 @@ out: } return rc; } + LPROC_SEQ_FOPS(ll_max_cached_mb); static ssize_t checksum_pages_show(struct kobject *kobj, struct attribute *attr, @@ -684,6 +686,7 @@ static int ll_statahead_stats_seq_show(struct seq_file *m, void *v) atomic_read(&sbi->ll_agl_total)); return 0; } + LPROC_SEQ_FOPS_RO(ll_statahead_stats); static ssize_t lazystatfs_show(struct kobject *kobj, @@ -775,6 +778,7 @@ static int ll_sbi_flags_seq_show(struct seq_file *m, void *v) seq_printf(m, "\b\n"); return 0; } + LPROC_SEQ_FOPS_RO(ll_sbi_flags); static ssize_t xattr_cache_show(struct kobject *kobj, @@ -1093,6 +1097,7 @@ void ldebugfs_unregister_mountpoint(struct ll_sb_info *sbi) lprocfs_free_stats(&sbi->ll_stats); } } + #undef MAX_STRING_SIZE #define pct(a, b) (b ? a * 100 / b : 0) @@ -1287,6 +1292,7 @@ static ssize_t ll_rw_extents_stats_seq_write(struct file *file, return len; } + LPROC_SEQ_FOPS(ll_rw_extents_stats); void ll_rw_stats_tally(struct ll_sb_info *sbi, pid_t pid, diff --git a/drivers/staging/lustre/lustre/llite/rw.c b/drivers/staging/lustre/lustre/llite/rw.c index 377947a011ce..f79193fa2fb7 100644 --- a/drivers/staging/lustre/lustre/llite/rw.c +++ b/drivers/staging/lustre/lustre/llite/rw.c @@ -528,6 +528,7 @@ static inline int stride_io_mode(struct ll_readahead_state *ras) { return ras->ras_consecutive_stride_requests > 1; } + /* The function calculates how much pages will be read in * [off, off + length], in such stride IO area, * stride_offset = st_off, stride_length = st_len, diff --git a/drivers/staging/lustre/lustre/lmv/lproc_lmv.c b/drivers/staging/lustre/lustre/lmv/lproc_lmv.c index 8f9e8ee09e32..40cf4d9f0486 100644 --- a/drivers/staging/lustre/lustre/lmv/lproc_lmv.c +++ b/drivers/staging/lustre/lustre/lmv/lproc_lmv.c @@ -143,6 +143,7 @@ static int lmv_desc_uuid_seq_show(struct seq_file *m, void *v) seq_printf(m, "%s\n", lmv->desc.ld_uuid.uuid); return 0; } + LPROC_SEQ_FOPS_RO(lmv_desc_uuid); static void *lmv_tgt_seq_start(struct seq_file *p, loff_t *pos) diff --git a/drivers/staging/lustre/lustre/lov/lov_io.c b/drivers/staging/lustre/lustre/lov/lov_io.c index a5838b7ea18e..5e6228b9ca01 100644 --- a/drivers/staging/lustre/lustre/lov/lov_io.c +++ b/drivers/staging/lustre/lustre/lov/lov_io.c @@ -51,6 +51,7 @@ static inline void lov_sub_enter(struct lov_io_sub *sub) { sub->sub_reenter++; } + static inline void lov_sub_exit(struct lov_io_sub *sub) { sub->sub_reenter--; @@ -989,4 +990,5 @@ int lov_io_init_released(const struct lu_env *env, struct cl_object *obj, io->ci_result = result < 0 ? result : 0; return result != 0; } + /** @} lov */ diff --git a/drivers/staging/lustre/lustre/lov/lproc_lov.c b/drivers/staging/lustre/lustre/lov/lproc_lov.c index 380b8271bf24..a0be15c6b55a 100644 --- a/drivers/staging/lustre/lustre/lov/lproc_lov.c +++ b/drivers/staging/lustre/lustre/lov/lproc_lov.c @@ -71,6 +71,7 @@ static ssize_t lov_stripesize_seq_write(struct file *file, desc->ld_default_stripe_size = val; return count; } + LPROC_SEQ_FOPS(lov_stripesize); static int lov_stripeoffset_seq_show(struct seq_file *m, void *v) @@ -102,6 +103,7 @@ static ssize_t lov_stripeoffset_seq_write(struct file *file, desc->ld_default_stripe_offset = val; return count; } + LPROC_SEQ_FOPS(lov_stripeoffset); static int lov_stripetype_seq_show(struct seq_file *m, void *v) @@ -133,6 +135,7 @@ static ssize_t lov_stripetype_seq_write(struct file *file, desc->ld_pattern = val; return count; } + LPROC_SEQ_FOPS(lov_stripetype); static int lov_stripecount_seq_show(struct seq_file *m, void *v) @@ -164,6 +167,7 @@ static ssize_t lov_stripecount_seq_write(struct file *file, desc->ld_default_stripe_count = val; return count; } + LPROC_SEQ_FOPS(lov_stripecount); static ssize_t numobd_show(struct kobject *kobj, struct attribute *attr, @@ -200,6 +204,7 @@ static int lov_desc_uuid_seq_show(struct seq_file *m, void *v) seq_printf(m, "%s\n", lov->desc.ld_uuid.uuid); return 0; } + LPROC_SEQ_FOPS_RO(lov_desc_uuid); static void *lov_tgt_seq_start(struct seq_file *p, loff_t *pos) diff --git a/drivers/staging/lustre/lustre/mgc/lproc_mgc.c b/drivers/staging/lustre/lustre/mgc/lproc_mgc.c index 34a9317d6d63..8d5bc5a751a4 100644 --- a/drivers/staging/lustre/lustre/mgc/lproc_mgc.c +++ b/drivers/staging/lustre/lustre/mgc/lproc_mgc.c @@ -52,6 +52,7 @@ static int mgc_ir_state_seq_show(struct seq_file *m, void *v) { return lprocfs_mgc_rd_ir_state(m, m->private); } + LPROC_SEQ_FOPS_RO(mgc_ir_state); static struct lprocfs_vars lprocfs_mgc_obd_vars[] = { diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index 0c734f12f21d..4338aeed1f60 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c @@ -138,6 +138,7 @@ static void cl_lock_trace0(int level, const struct lu_env *env, env, h->coh_nesting, cl_lock_nr_mutexed(env), func, line); } + #define cl_lock_trace(level, env, prefix, lock) \ cl_lock_trace0(level, env, prefix, lock, __func__, __LINE__) diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 73044c3fa300..ab0748b1765b 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -1308,6 +1308,7 @@ int obd_zombie_impexp_init(void) wait_for_completion(&obd_zombie_start); return 0; } + /** * stop destroy zombie import/export thread */ diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 07727dbe6bff..7cc4b554af1d 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -587,6 +587,7 @@ static int obd_import_flags2str(struct obd_import *imp, struct seq_file *m) flag2str(pingable, first); return 0; } + #undef flags2str static void obd_connect_seq_flags2str(struct seq_file *m, __u64 flags, char *sep) diff --git a/drivers/staging/lustre/lustre/obdecho/echo_client.c b/drivers/staging/lustre/lustre/obdecho/echo_client.c index 87f1b3adeee7..ef9cb31ecb57 100644 --- a/drivers/staging/lustre/lustre/obdecho/echo_client.c +++ b/drivers/staging/lustre/lustre/obdecho/echo_client.c @@ -322,6 +322,7 @@ static const struct cl_page_operations echo_page_ops = { } } }; + /** @} echo_page */ /** \defgroup echo_lock Locking @@ -417,6 +418,7 @@ static const struct cl_object_operations echo_cl_obj_ops = { .coo_io_init = echo_io_init, .coo_conf_set = echo_conf_set }; + /** @} echo_cl_ops */ /** \defgroup echo_lu_ops lu_object operations @@ -547,6 +549,7 @@ static const struct lu_object_operations echo_lu_obj_ops = { .loo_object_print = echo_object_print, .loo_object_invariant = NULL }; + /** @} echo_lu_ops */ /** \defgroup echo_lu_dev_ops lu_device operations @@ -918,6 +921,7 @@ static struct lu_device_type echo_device_type = { .ldt_ops = &echo_device_type_ops, .ldt_ctx_tags = LCT_CL_THREAD, }; + /** @} echo_init */ /** \defgroup echo_exports Exported operations @@ -1257,6 +1261,7 @@ out: cl_env_put(env, &refcheck); return rc; } + /** @} echo_exports */ static u64 last_object_id; diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index 1ad07f6c1b7a..053d5088f02f 100644 --- a/drivers/staging/lustre/lustre/osc/lproc_osc.c +++ b/drivers/staging/lustre/lustre/osc/lproc_osc.c @@ -227,6 +227,7 @@ static ssize_t osc_cached_mb_seq_write(struct file *file, return count; } + LPROC_SEQ_FOPS(osc_cached_mb); static ssize_t cur_dirty_bytes_show(struct kobject *kobj, @@ -427,6 +428,7 @@ static ssize_t osc_checksum_type_seq_write(struct file *file, } return -EINVAL; } + LPROC_SEQ_FOPS(osc_checksum_type); static ssize_t resend_count_show(struct kobject *kobj, @@ -692,6 +694,7 @@ static int osc_rpc_stats_seq_show(struct seq_file *seq, void *v) return 0; } + #undef pct static ssize_t osc_rpc_stats_seq_write(struct file *file, diff --git a/drivers/staging/lustre/lustre/osc/osc_internal.h b/drivers/staging/lustre/lustre/osc/osc_internal.h index 448fdf4b8939..5ed30ecc84e3 100644 --- a/drivers/staging/lustre/lustre/osc/osc_internal.h +++ b/drivers/staging/lustre/lustre/osc/osc_internal.h @@ -185,6 +185,7 @@ struct osc_quota_info { struct hlist_node oqi_hash; u32 oqi_id; }; + int osc_quota_setup(struct obd_device *obd); int osc_quota_cleanup(struct obd_device *obd); int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[], diff --git a/drivers/staging/lustre/lustre/ptlrpc/layout.c b/drivers/staging/lustre/lustre/ptlrpc/layout.c index 637fd2af81d3..d7c4f47808bd 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/layout.c +++ b/drivers/staging/lustre/lustre/ptlrpc/layout.c @@ -404,6 +404,7 @@ static const struct req_msg_field *ldlm_intent_layout_client[] = { &RMF_LAYOUT_INTENT, &RMF_EADATA /* for new layout to be set up */ }; + static const struct req_msg_field *ldlm_intent_open_server[] = { &RMF_PTLRPC_BODY, &RMF_DLM_REP, diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 05270e18d106..ec44b3c70e25 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -270,6 +270,7 @@ ptlrpc_lprocfs_req_history_len_seq_show(struct seq_file *m, void *v) seq_printf(m, "%d\n", total); return 0; } + LPROC_SEQ_FOPS_RO(ptlrpc_lprocfs_req_history_len); static int @@ -322,6 +323,7 @@ ptlrpc_lprocfs_req_history_max_seq_write(struct file *file, return count; } + LPROC_SEQ_FOPS(ptlrpc_lprocfs_req_history_max); static ssize_t threads_min_show(struct kobject *kobj, struct attribute *attr, @@ -712,6 +714,7 @@ out: return rc < 0 ? rc : count; } + LPROC_SEQ_FOPS(ptlrpc_lprocfs_nrs); /** @} nrs */ @@ -984,6 +987,7 @@ static int ptlrpc_lprocfs_timeouts_seq_show(struct seq_file *m, void *n) return 0; } + LPROC_SEQ_FOPS_RO(ptlrpc_lprocfs_timeouts); static ssize_t high_priority_ratio_show(struct kobject *kobj, diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c index baf063efb79e..8fce717ea79e 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c @@ -457,6 +457,7 @@ static int cfs_hash_alg_id[] = { [BULK_HASH_ALG_SHA384] = CFS_HASH_ALG_SHA384, [BULK_HASH_ALG_SHA512] = CFS_HASH_ALG_SHA512, }; + const char *sptlrpc_get_hash_name(__u8 hash_alg) { return cfs_crypto_hash_name(cfs_hash_alg_id[hash_alg]); diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c index c96a5c7b0494..fca9aa162e31 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_config.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_config.c @@ -264,15 +264,18 @@ static inline int rule_spec_dir(struct sptlrpc_rule *rule) return (rule->sr_from != LUSTRE_SP_ANY || rule->sr_to != LUSTRE_SP_ANY); } + static inline int rule_spec_net(struct sptlrpc_rule *rule) { return (rule->sr_netid != LNET_NIDNET(LNET_NID_ANY)); } + static inline int rule_match_dir(struct sptlrpc_rule *r1, struct sptlrpc_rule *r2) { return (r1->sr_from == r2->sr_from && r1->sr_to == r2->sr_to); } + static inline int rule_match_net(struct sptlrpc_rule *r1, struct sptlrpc_rule *r2) { @@ -368,6 +371,7 @@ static int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *rset, return 0; } + /** * given from/to/nid, determine a matching flavor in ruleset. * return 1 if a match found, otherwise return 0. diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c b/drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c index a74e2f01e5be..bda9a77af67a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c @@ -106,6 +106,7 @@ static int sptlrpc_info_lprocfs_seq_show(struct seq_file *seq, void *v) out: return 0; } + LPROC_SEQ_FOPS_RO(sptlrpc_info_lprocfs); static int sptlrpc_ctxs_lprocfs_seq_show(struct seq_file *seq, void *v) @@ -130,6 +131,7 @@ static int sptlrpc_ctxs_lprocfs_seq_show(struct seq_file *seq, void *v) out: return 0; } + LPROC_SEQ_FOPS_RO(sptlrpc_ctxs_lprocfs); int sptlrpc_lprocfs_cliobd_attach(struct obd_device *dev) From f8d863cbba81eade976368d8c8b96d19210823a5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:28 -0700 Subject: [PATCH 1699/2431] staging: comedi: adl_pci9111: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9111.c | 28 ++++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index c9df3afe97f6..8ce54c07be7c 100644 --- a/drivers/staging/comedi/drivers/adl_pci9111.c +++ b/drivers/staging/comedi/drivers/adl_pci9111.c @@ -89,23 +89,23 @@ TODO: #define PCI9111_EDIO_REG 0x04 #define PCI9111_AI_CHANNEL_REG 0x06 #define PCI9111_AI_RANGE_STAT_REG 0x08 -#define PCI9111_AI_STAT_AD_BUSY (1 << 7) -#define PCI9111_AI_STAT_FF_FF (1 << 6) -#define PCI9111_AI_STAT_FF_HF (1 << 5) -#define PCI9111_AI_STAT_FF_EF (1 << 4) +#define PCI9111_AI_STAT_AD_BUSY BIT(7) +#define PCI9111_AI_STAT_FF_FF BIT(6) +#define PCI9111_AI_STAT_FF_HF BIT(5) +#define PCI9111_AI_STAT_FF_EF BIT(4) #define PCI9111_AI_RANGE_MASK (7 << 0) #define PCI9111_AI_TRIG_CTRL_REG 0x0a -#define PCI9111_AI_TRIG_CTRL_TRGEVENT (1 << 5) -#define PCI9111_AI_TRIG_CTRL_POTRG (1 << 4) -#define PCI9111_AI_TRIG_CTRL_PTRG (1 << 3) -#define PCI9111_AI_TRIG_CTRL_ETIS (1 << 2) -#define PCI9111_AI_TRIG_CTRL_TPST (1 << 1) -#define PCI9111_AI_TRIG_CTRL_ASCAN (1 << 0) +#define PCI9111_AI_TRIG_CTRL_TRGEVENT BIT(5) +#define PCI9111_AI_TRIG_CTRL_POTRG BIT(4) +#define PCI9111_AI_TRIG_CTRL_PTRG BIT(3) +#define PCI9111_AI_TRIG_CTRL_ETIS BIT(2) +#define PCI9111_AI_TRIG_CTRL_TPST BIT(1) +#define PCI9111_AI_TRIG_CTRL_ASCAN BIT(0) #define PCI9111_INT_CTRL_REG 0x0c -#define PCI9111_INT_CTRL_ISC2 (1 << 3) -#define PCI9111_INT_CTRL_FFEN (1 << 2) -#define PCI9111_INT_CTRL_ISC1 (1 << 1) -#define PCI9111_INT_CTRL_ISC0 (1 << 0) +#define PCI9111_INT_CTRL_ISC2 BIT(3) +#define PCI9111_INT_CTRL_FFEN BIT(2) +#define PCI9111_INT_CTRL_ISC1 BIT(1) +#define PCI9111_INT_CTRL_ISC0 BIT(0) #define PCI9111_SOFT_TRIG_REG 0x0e #define PCI9111_8254_BASE_REG 0x40 #define PCI9111_INT_CLR_REG 0x48 From 68e412987c1c0a277175e2728958446bde8b305f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:29 -0700 Subject: [PATCH 1700/2431] staging: comedi: adl_pci9111: define a macro for the ai range bits For aesthetics, define a macro to set the analog input range bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9111.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index 8ce54c07be7c..dd42bd0a0810 100644 --- a/drivers/staging/comedi/drivers/adl_pci9111.c +++ b/drivers/staging/comedi/drivers/adl_pci9111.c @@ -93,7 +93,8 @@ TODO: #define PCI9111_AI_STAT_FF_FF BIT(6) #define PCI9111_AI_STAT_FF_HF BIT(5) #define PCI9111_AI_STAT_FF_EF BIT(4) -#define PCI9111_AI_RANGE_MASK (7 << 0) +#define PCI9111_AI_RANGE(x) (((x) & 0x7) << 0) +#define PCI9111_AI_RANGE_MASK PCI9111_AI_RANGE(7) #define PCI9111_AI_TRIG_CTRL_REG 0x0a #define PCI9111_AI_TRIG_CTRL_TRGEVENT BIT(5) #define PCI9111_AI_TRIG_CTRL_POTRG BIT(4) @@ -363,6 +364,7 @@ static int pci9111_ai_do_cmd(struct comedi_device *dev, struct pci9111_private_data *dev_private = dev->private; struct comedi_cmd *cmd = &s->async->cmd; unsigned int last_chan = CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1]); + unsigned int range0 = CR_RANGE(cmd->chanlist[0]); unsigned int trig = 0; /* Set channel scan limit */ @@ -374,11 +376,8 @@ static int pci9111_ai_do_cmd(struct comedi_device *dev, outb(last_chan, dev->iobase + PCI9111_AI_CHANNEL_REG); - /* Set gain */ - /* This is the same gain on every channel */ - - outb(CR_RANGE(cmd->chanlist[0]) & PCI9111_AI_RANGE_MASK, - dev->iobase + PCI9111_AI_RANGE_STAT_REG); + /* Set gain - all channels use the same range */ + outb(PCI9111_AI_RANGE(range0), dev->iobase + PCI9111_AI_RANGE_STAT_REG); /* Set timer pacer */ dev_private->scan_delay = 0; @@ -571,7 +570,7 @@ static int pci9111_ai_insn_read(struct comedi_device *dev, status = inb(dev->iobase + PCI9111_AI_RANGE_STAT_REG); if ((status & PCI9111_AI_RANGE_MASK) != range) { - outb(range & PCI9111_AI_RANGE_MASK, + outb(PCI9111_AI_RANGE(range), dev->iobase + PCI9111_AI_RANGE_STAT_REG); } From 262a07acc6261a2ca2644b37e8392717cb66ddcb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:30 -0700 Subject: [PATCH 1701/2431] staging: comedi: adl_pci9111: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Remove the unnecessary CHANGELOG information, git provided this better. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9111.c | 104 ++++++++----------- 1 file changed, 44 insertions(+), 60 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index dd42bd0a0810..e6f6e59cf579 100644 --- a/drivers/staging/comedi/drivers/adl_pci9111.c +++ b/drivers/staging/comedi/drivers/adl_pci9111.c @@ -1,68 +1,52 @@ /* - -comedi/drivers/adl_pci9111.c - -Hardware driver for PCI9111 ADLink cards: - -PCI-9111HR - -Copyright (C) 2002-2005 Emmanuel Pacaud - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -*/ + * adl_pci9111.c + * Hardware driver for PCI9111 ADLink cards: PCI-9111HR + * Copyright (C) 2002-2005 Emmanuel Pacaud + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ /* -Driver: adl_pci9111 -Description: Adlink PCI-9111HR -Author: Emmanuel Pacaud -Devices: [ADLink] PCI-9111HR (adl_pci9111) -Status: experimental - -Supports: - - - ai_insn read - - ao_insn read/write - - di_insn read - - do_insn read/write - - ai_do_cmd mode with the following sources: - - - start_src TRIG_NOW - - scan_begin_src TRIG_FOLLOW TRIG_TIMER TRIG_EXT - - convert_src TRIG_TIMER TRIG_EXT - - scan_end_src TRIG_COUNT - - stop_src TRIG_COUNT TRIG_NONE - -The scanned channels must be consecutive and start from 0. They must -all have the same range and aref. - -Configuration options: not applicable, uses PCI auto config -*/ + * Driver: adl_pci9111 + * Description: Adlink PCI-9111HR + * Devices: [ADLink] PCI-9111HR (adl_pci9111) + * Author: Emmanuel Pacaud + * Status: experimental + * + * Configuration options: not applicable, uses PCI auto config + * + * Supports: + * - ai_insn read + * - ao_insn read/write + * - di_insn read + * - do_insn read/write + * - ai_do_cmd mode with the following sources: + * - start_src TRIG_NOW + * - scan_begin_src TRIG_FOLLOW TRIG_TIMER TRIG_EXT + * - convert_src TRIG_TIMER TRIG_EXT + * - scan_end_src TRIG_COUNT + * - stop_src TRIG_COUNT TRIG_NONE + * + * The scanned channels must be consecutive and start from 0. They must + * all have the same range and aref. + */ /* -CHANGELOG: - -2005/02/17 Extend AI streaming capabilities. Now, scan_begin_arg can be -a multiple of chanlist_len*convert_arg. -2002/02/19 Fixed the two's complement conversion in pci9111_(hr_)ai_get_data. -2002/02/18 Added external trigger support for analog input. - -TODO: - - - Really test implemented functionality. - - Add support for the PCI-9111DG with a probe routine to identify - the card type (perhaps with the help of the channel number readback - of the A/D Data register). - - Add external multiplexer support. - -*/ + * TODO: + * - Really test implemented functionality. + * - Add support for the PCI-9111DG with a probe routine to identify + * the card type (perhaps with the help of the channel number readback + * of the A/D Data register). + * - Add external multiplexer support. + */ #include #include From 0756f8d778205376811653e61ea02749a382b217 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:31 -0700 Subject: [PATCH 1702/2431] staging: comedi: adl_pci9111: rename CamelCase parameters Rename the CamelCase parameters of plx9050_interrupt_control(). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9111.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index e6f6e59cf579..4996c24b8d2a 100644 --- a/drivers/staging/comedi/drivers/adl_pci9111.c +++ b/drivers/staging/comedi/drivers/adl_pci9111.c @@ -124,21 +124,21 @@ struct pci9111_private_data { }; static void plx9050_interrupt_control(unsigned long io_base, - bool LINTi1_enable, - bool LINTi1_active_high, - bool LINTi2_enable, - bool LINTi2_active_high, + bool int1_enable, + bool int1_active_high, + bool int2_enable, + bool int2_active_high, bool interrupt_enable) { int flags = 0; - if (LINTi1_enable) + if (int1_enable) flags |= PLX9052_INTCSR_LI1ENAB; - if (LINTi1_active_high) + if (int1_active_high) flags |= PLX9052_INTCSR_LI1POL; - if (LINTi2_enable) + if (int2_enable) flags |= PLX9052_INTCSR_LI2ENAB; - if (LINTi2_active_high) + if (int2_active_high) flags |= PLX9052_INTCSR_LI2POL; if (interrupt_enable) From 64a4e72eabd4199d6897f8b1366479b1b8152228 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:32 -0700 Subject: [PATCH 1703/2431] staging: comedi: adl_pci9111: fix alignment issue Use a local variable for the 'devpriv->ai_bounce_buffer' to shorten the lines in pci9111_handle_fifo_half_full() and gix the checkpath.pl issue about: CHECK: Alignment should match open parenthesis Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9111.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index 4996c24b8d2a..01d2ee931b28 100644 --- a/drivers/staging/comedi/drivers/adl_pci9111.c +++ b/drivers/staging/comedi/drivers/adl_pci9111.c @@ -417,14 +417,14 @@ static void pci9111_handle_fifo_half_full(struct comedi_device *dev, { struct pci9111_private_data *devpriv = dev->private; struct comedi_cmd *cmd = &s->async->cmd; + unsigned short *buf = devpriv->ai_bounce_buffer; unsigned int samples; samples = comedi_nsamples_left(s, PCI9111_FIFO_HALF_SIZE); - insw(dev->iobase + PCI9111_AI_FIFO_REG, - devpriv->ai_bounce_buffer, samples); + insw(dev->iobase + PCI9111_AI_FIFO_REG, buf, samples); if (devpriv->scan_delay < 1) { - comedi_buf_write_samples(s, devpriv->ai_bounce_buffer, samples); + comedi_buf_write_samples(s, buf, samples); } else { unsigned int pos = 0; unsigned int to_read; @@ -437,9 +437,7 @@ static void pci9111_handle_fifo_half_full(struct comedi_device *dev, if (to_read > samples - pos) to_read = samples - pos; - comedi_buf_write_samples(s, - devpriv->ai_bounce_buffer + pos, - to_read); + comedi_buf_write_samples(s, buf + pos, to_read); } else { to_read = devpriv->chunk_num_samples - devpriv->chunk_counter; From a82853304021435f57698ea88cb5ca03fe010aeb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:30 -0700 Subject: [PATCH 1704/2431] staging: comedi: adv_pci1710: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. And refactor them to follow the normal format for comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adv_pci1710.c | 57 ++++++++------------ 1 file changed, 21 insertions(+), 36 deletions(-) diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 0c6aa964c884..334057014f1d 100644 --- a/drivers/staging/comedi/drivers/adv_pci1710.c +++ b/drivers/staging/comedi/drivers/adv_pci1710.c @@ -1,45 +1,30 @@ /* - * comedi/drivers/adv_pci1710.c - * + * adv_pci1710.c + * Comedi driver for Advantech PCI-1710 series boards * Author: Michal Dobes * * Thanks to ZhenGang Shang * for testing and information. - * - * hardware driver for Advantech cards: - * card: PCI-1710, PCI-1710HG, PCI-1711, PCI-1713, PCI-1720, PCI-1731 - * driver: pci1710, pci1710hg, pci1711, pci1713, pci1720, pci1731 - * - * Options: - * [0] - PCI bus number - if bus number and slot number are 0, - * then driver search for first unused card - * [1] - PCI slot number - * -*/ + */ + /* -Driver: adv_pci1710 -Description: Advantech PCI-1710, PCI-1710HG, PCI-1711, PCI-1713, - Advantech PCI-1720, PCI-1731 -Author: Michal Dobes -Devices: [Advantech] PCI-1710 (adv_pci1710), PCI-1710HG (pci1710hg), - PCI-1711 (adv_pci1710), PCI-1713, PCI-1720, - PCI-1731 -Status: works - -This driver supports AI, AO, DI and DO subdevices. -AI subdevice supports cmd and insn interface, -other subdevices support only insn interface. - -The PCI-1710 and PCI-1710HG have the same PCI device ID, so the -driver cannot distinguish between them, as would be normal for a -PCI driver. - -Configuration options: - [0] - PCI bus of device (optional) - [1] - PCI slot of device (optional) - If bus/slot is not specified, the first available PCI - device will be used. -*/ + * Driver: adv_pci1710 + * Description: Comedi driver for Advantech PCI-1710 series boards + * Devices: [Advantech] PCI-1710 (adv_pci1710), PCI-1710HG, PCI-1711, + * PCI-1713, PCI-1720, PCI-1731 + * Author: Michal Dobes + * Status: works + * + * Configuration options: not applicable, uses PCI auto config + * + * This driver supports AI, AO, DI and DO subdevices. + * AI subdevice supports cmd and insn interface, + * other subdevices support only insn interface. + * + * The PCI-1710 and PCI-1710HG have the same PCI device ID, so the + * driver cannot distinguish between them, as would be normal for a + * PCI driver. + */ #include #include From d67e50feb6bde9082bc098e2b02b7ee1c87747f7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:31 -0700 Subject: [PATCH 1705/2431] staging: comedi: adv_pci1710: tidy up status register and bits Rename the CamelCase and use the BIT macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adv_pci1710.c | 32 +++++++++----------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 334057014f1d..e7a6dc5ec5b4 100644 --- a/drivers/staging/comedi/drivers/adv_pci1710.c +++ b/drivers/staging/comedi/drivers/adv_pci1710.c @@ -38,7 +38,11 @@ #define PCI171x_SOFTTRG 0 /* W: soft trigger for A/D */ #define PCI171x_RANGE 2 /* W: A/D gain/range register */ #define PCI171x_MUX 4 /* W: A/D multiplexor control */ -#define PCI171x_STATUS 6 /* R: status register */ +#define PCI171X_STATUS_REG 0x06 /* R: status register */ +#define PCI171X_STATUS_IRQ BIT(11) /* 1=IRQ occurred */ +#define PCI171X_STATUS_FF BIT(10) /* 1=FIFO is full, fatal error */ +#define PCI171X_STATUS_FH BIT(9) /* 1=FIFO is half full */ +#define PCI171X_STATUS_FE BIT(8) /* 1=FIFO is empty */ #define PCI171x_CONTROL 6 /* W: control register */ #define PCI171x_CLRINT 8 /* W: clear interrupts request */ #define PCI171x_CLRFIFO 9 /* W: clear FIFO */ @@ -50,12 +54,6 @@ #define PCI171X_TIMER_BASE 0x18 -/* upper bits from status register (PCI171x_STATUS) (lower is same with control - * reg) */ -#define Status_FE 0x0100 /* 1=FIFO is empty */ -#define Status_FH 0x0200 /* 1=FIFO is half full */ -#define Status_FF 0x0400 /* 1=FIFO is full, fatal error */ -#define Status_IRQ 0x0800 /* 1=IRQ occurred */ /* bits from control register (PCI171x_CONTROL) */ #define Control_CNT0 0x0040 /* 1=CNT0 have external source, * 0=have internal 100kHz source */ @@ -347,8 +345,8 @@ static int pci171x_ai_eoc(struct comedi_device *dev, { unsigned int status; - status = inw(dev->iobase + PCI171x_STATUS); - if ((status & Status_FE) == 0) + status = inw(dev->iobase + PCI171X_STATUS_REG); + if ((status & PCI171X_STATUS_FE) == 0) return 0; return -EBUSY; } @@ -524,13 +522,13 @@ static void pci1710_handle_every_sample(struct comedi_device *dev, unsigned int val; int ret; - status = inw(dev->iobase + PCI171x_STATUS); - if (status & Status_FE) { + status = inw(dev->iobase + PCI171X_STATUS_REG); + if (status & PCI171X_STATUS_FE) { dev_dbg(dev->class_dev, "A/D FIFO empty (%4x)\n", status); s->async->events |= COMEDI_CB_ERROR; return; } - if (status & Status_FF) { + if (status & PCI171X_STATUS_FF) { dev_dbg(dev->class_dev, "A/D FIFO Full status (Fatal Error!) (%4x)\n", status); s->async->events |= COMEDI_CB_ERROR; @@ -539,7 +537,7 @@ static void pci1710_handle_every_sample(struct comedi_device *dev, outb(0, dev->iobase + PCI171x_CLRINT); /* clear our INT request */ - for (; !(inw(dev->iobase + PCI171x_STATUS) & Status_FE);) { + for (; !(inw(dev->iobase + PCI171X_STATUS_REG) & PCI171X_STATUS_FE);) { ret = pci171x_ai_read_sample(dev, s, s->async->cur_chan, &val); if (ret) { s->async->events |= COMEDI_CB_ERROR; @@ -567,13 +565,13 @@ static void pci1710_handle_fifo(struct comedi_device *dev, unsigned int status; int i; - status = inw(dev->iobase + PCI171x_STATUS); - if (!(status & Status_FH)) { + status = inw(dev->iobase + PCI171X_STATUS_REG); + if (!(status & PCI171X_STATUS_FH)) { dev_dbg(dev->class_dev, "A/D FIFO not half full!\n"); async->events |= COMEDI_CB_ERROR; return; } - if (status & Status_FF) { + if (status & PCI171X_STATUS_FF) { dev_dbg(dev->class_dev, "A/D FIFO Full status (Fatal Error!)\n"); async->events |= COMEDI_CB_ERROR; @@ -617,7 +615,7 @@ static irqreturn_t interrupt_service_pci1710(int irq, void *d) cmd = &s->async->cmd; /* is this interrupt from our board? */ - if (!(inw(dev->iobase + PCI171x_STATUS) & Status_IRQ)) + if (!(inw(dev->iobase + PCI171X_STATUS_REG) & PCI171X_STATUS_IRQ)) return IRQ_NONE; /* no, exit */ if (devpriv->ai_et) { /* Switch from initial TRIG_EXT to TRIG_xxx. */ From 9fcce6e2d20b9569b3cb09dda132c8fbeec96072 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:32 -0700 Subject: [PATCH 1706/2431] staging: comedi: adv_pci1710: tidy up control register and bits Rename the CamelCase and use the BIT macro to define the bits. Also, rename the associated CamelCase members of the private data. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adv_pci1710.c | 78 ++++++++++---------- 1 file changed, 38 insertions(+), 40 deletions(-) diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index e7a6dc5ec5b4..0184667186e0 100644 --- a/drivers/staging/comedi/drivers/adv_pci1710.c +++ b/drivers/staging/comedi/drivers/adv_pci1710.c @@ -43,7 +43,14 @@ #define PCI171X_STATUS_FF BIT(10) /* 1=FIFO is full, fatal error */ #define PCI171X_STATUS_FH BIT(9) /* 1=FIFO is half full */ #define PCI171X_STATUS_FE BIT(8) /* 1=FIFO is empty */ -#define PCI171x_CONTROL 6 /* W: control register */ +#define PCI171X_CTRL_REG 0x06 /* W: control register */ +#define PCI171X_CTRL_CNT0 BIT(6) /* 1=ext. clk, 0=int. 100kHz clk */ +#define PCI171X_CTRL_ONEFH BIT(5) /* 1=on FIFO half full, 0=on sample */ +#define PCI171X_CTRL_IRQEN BIT(4) /* 1=enable IRQ */ +#define PCI171X_CTRL_GATE BIT(3) /* 1=enable ext. trigger GATE (8254?) */ +#define PCI171X_CTRL_EXT BIT(2) /* 1=enable ext. trigger source */ +#define PCI171X_CTRL_PACER BIT(1) /* 1=enable int. 8254 trigger source */ +#define PCI171X_CTRL_SW BIT(0) /* 1=enable software trigger source */ #define PCI171x_CLRINT 8 /* W: clear interrupts request */ #define PCI171x_CLRFIFO 9 /* W: clear FIFO */ #define PCI171x_DA1 10 /* W: D/A register */ @@ -54,16 +61,6 @@ #define PCI171X_TIMER_BASE 0x18 -/* bits from control register (PCI171x_CONTROL) */ -#define Control_CNT0 0x0040 /* 1=CNT0 have external source, - * 0=have internal 100kHz source */ -#define Control_ONEFH 0x0020 /* 1=IRQ on FIFO is half full, 0=every sample */ -#define Control_IRQEN 0x0010 /* 1=enable IRQ */ -#define Control_GATE 0x0008 /* 1=enable external trigger GATE (8254?) */ -#define Control_EXT 0x0004 /* 1=external trigger source */ -#define Control_PACER 0x0002 /* 1=enable internal 8254 trigger source */ -#define Control_SW 0x0001 /* 1=enable software trigger source */ - #define PCI1720_DA0 0 /* W: D/A register 0 */ #define PCI1720_DA1 2 /* W: D/A register 1 */ #define PCI1720_DA2 4 /* W: D/A register 2 */ @@ -227,9 +224,9 @@ static const struct boardtype boardtypes[] = { struct pci1710_private { unsigned int max_samples; - unsigned int CntrlReg; /* Control register */ + unsigned int ctrl; /* control register value */ + unsigned int ctrl_ext; /* used to switch from TRIG_EXT to TRIG_xxx */ unsigned char ai_et; - unsigned int ai_et_CntrlReg; unsigned int ai_et_MuxVal; unsigned int act_chanlist[32]; /* list of scanned channel */ unsigned char saved_seglen; /* len of the non-repeating chanlist */ @@ -389,9 +386,9 @@ static int pci171x_ai_insn_read(struct comedi_device *dev, int ret = 0; int i; - devpriv->CntrlReg &= Control_CNT0; - devpriv->CntrlReg |= Control_SW; /* set software trigger */ - outw(devpriv->CntrlReg, dev->iobase + PCI171x_CONTROL); + devpriv->ctrl &= PCI171X_CTRL_CNT0; + devpriv->ctrl |= PCI171X_CTRL_SW; /* set software trigger */ + outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); outb(0, dev->iobase + PCI171x_CLRFIFO); outb(0, dev->iobase + PCI171x_CLRINT); @@ -503,10 +500,10 @@ static int pci171x_ai_cancel(struct comedi_device *dev, { struct pci1710_private *devpriv = dev->private; - devpriv->CntrlReg &= Control_CNT0; - devpriv->CntrlReg |= Control_SW; + devpriv->ctrl &= PCI171X_CTRL_CNT0; + devpriv->ctrl |= PCI171X_CTRL_SW; /* reset any operations */ - outw(devpriv->CntrlReg, dev->iobase + PCI171x_CONTROL); + outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); comedi_8254_pacer_enable(dev->pacer, 1, 2, false); outb(0, dev->iobase + PCI171x_CLRFIFO); outb(0, dev->iobase + PCI171x_CLRINT); @@ -620,14 +617,14 @@ static irqreturn_t interrupt_service_pci1710(int irq, void *d) if (devpriv->ai_et) { /* Switch from initial TRIG_EXT to TRIG_xxx. */ devpriv->ai_et = 0; - devpriv->CntrlReg &= Control_CNT0; - devpriv->CntrlReg |= Control_SW; /* set software trigger */ - outw(devpriv->CntrlReg, dev->iobase + PCI171x_CONTROL); - devpriv->CntrlReg = devpriv->ai_et_CntrlReg; + devpriv->ctrl &= PCI171X_CTRL_CNT0; + devpriv->ctrl |= PCI171X_CTRL_SW; /* set software trigger */ + outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); + devpriv->ctrl = devpriv->ctrl_ext; outb(0, dev->iobase + PCI171x_CLRFIFO); outb(0, dev->iobase + PCI171x_CLRINT); outw(devpriv->ai_et_MuxVal, dev->iobase + PCI171x_MUX); - outw(devpriv->CntrlReg, dev->iobase + PCI171x_CONTROL); + outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); comedi_8254_pacer_enable(dev->pacer, 1, 2, true); return IRQ_HANDLED; } @@ -653,30 +650,31 @@ static int pci171x_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) outb(0, dev->iobase + PCI171x_CLRFIFO); outb(0, dev->iobase + PCI171x_CLRINT); - devpriv->CntrlReg &= Control_CNT0; + devpriv->ctrl &= PCI171X_CTRL_CNT0; if ((cmd->flags & CMDF_WAKE_EOS) == 0) - devpriv->CntrlReg |= Control_ONEFH; + devpriv->ctrl |= PCI171X_CTRL_ONEFH; if (cmd->convert_src == TRIG_TIMER) { comedi_8254_update_divisors(dev->pacer); - devpriv->CntrlReg |= Control_PACER | Control_IRQEN; + devpriv->ctrl |= PCI171X_CTRL_PACER | PCI171X_CTRL_IRQEN; if (cmd->start_src == TRIG_EXT) { - devpriv->ai_et_CntrlReg = devpriv->CntrlReg; - devpriv->CntrlReg &= - ~(Control_PACER | Control_ONEFH | Control_GATE); - devpriv->CntrlReg |= Control_EXT; + devpriv->ctrl_ext = devpriv->ctrl; + devpriv->ctrl &= ~(PCI171X_CTRL_PACER | + PCI171X_CTRL_ONEFH | + PCI171X_CTRL_GATE); + devpriv->ctrl |= PCI171X_CTRL_EXT; devpriv->ai_et = 1; } else { /* TRIG_NOW */ devpriv->ai_et = 0; } - outw(devpriv->CntrlReg, dev->iobase + PCI171x_CONTROL); + outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); if (cmd->start_src == TRIG_NOW) comedi_8254_pacer_enable(dev->pacer, 1, 2, true); } else { /* TRIG_EXT */ - devpriv->CntrlReg |= Control_EXT | Control_IRQEN; - outw(devpriv->CntrlReg, dev->iobase + PCI171x_CONTROL); + devpriv->ctrl |= PCI171X_CTRL_EXT | PCI171X_CTRL_IRQEN; + outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); } return 0; @@ -765,18 +763,18 @@ static int pci171x_insn_counter_config(struct comedi_device *dev, case INSN_CONFIG_SET_CLOCK_SRC: switch (data[1]) { case 0: /* internal */ - devpriv->ai_et_CntrlReg &= ~Control_CNT0; + devpriv->ctrl_ext &= ~PCI171X_CTRL_CNT0; break; case 1: /* external */ - devpriv->ai_et_CntrlReg |= Control_CNT0; + devpriv->ctrl_ext |= PCI171X_CTRL_CNT0; break; default: return -EINVAL; } - outw(devpriv->ai_et_CntrlReg, dev->iobase + PCI171x_CONTROL); + outw(devpriv->ctrl_ext, dev->iobase + PCI171X_CTRL_REG); break; case INSN_CONFIG_GET_CLOCK_SRC: - if (devpriv->ai_et_CntrlReg & Control_CNT0) { + if (devpriv->ctrl_ext & PCI171X_CTRL_CNT0) { data[1] = 1; data[2] = 0; } else { @@ -797,9 +795,9 @@ static int pci171x_reset(struct comedi_device *dev) struct pci1710_private *devpriv = dev->private; /* Software trigger, CNT0=external */ - devpriv->CntrlReg = Control_SW | Control_CNT0; + devpriv->ctrl = PCI171X_CTRL_SW | PCI171X_CTRL_CNT0; /* reset any operations */ - outw(devpriv->CntrlReg, dev->iobase + PCI171x_CONTROL); + outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); outb(0, dev->iobase + PCI171x_CLRFIFO); /* clear FIFO */ outb(0, dev->iobase + PCI171x_CLRINT); /* clear INT request */ devpriv->da_ranges = 0; From 39363d061d87d434dc0f597b97e3afd01fe3ca49 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:33 -0700 Subject: [PATCH 1707/2431] staging: comedi: adv_pci1710: tidy up remaining PCI171x_* registers Rename these CamelCase defines. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adv_pci1710.c | 93 ++++++++++---------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 0184667186e0..451715707540 100644 --- a/drivers/staging/comedi/drivers/adv_pci1710.c +++ b/drivers/staging/comedi/drivers/adv_pci1710.c @@ -34,10 +34,13 @@ #include "comedi_8254.h" #include "amcc_s5933.h" -#define PCI171x_AD_DATA 0 /* R: A/D data */ -#define PCI171x_SOFTTRG 0 /* W: soft trigger for A/D */ -#define PCI171x_RANGE 2 /* W: A/D gain/range register */ -#define PCI171x_MUX 4 /* W: A/D multiplexor control */ +/* + * PCI BAR2 Register map (dev->iobase) + */ +#define PCI171X_AD_DATA_REG 0x00 /* R: A/D data */ +#define PCI171X_SOFTTRG_REG 0x00 /* W: soft trigger for A/D */ +#define PCI171X_RANGE_REG 0x02 /* W: A/D gain/range register */ +#define PCI171X_MUX_REG 0x04 /* W: A/D multiplexor control */ #define PCI171X_STATUS_REG 0x06 /* R: status register */ #define PCI171X_STATUS_IRQ BIT(11) /* 1=IRQ occurred */ #define PCI171X_STATUS_FF BIT(10) /* 1=FIFO is full, fatal error */ @@ -51,15 +54,13 @@ #define PCI171X_CTRL_EXT BIT(2) /* 1=enable ext. trigger source */ #define PCI171X_CTRL_PACER BIT(1) /* 1=enable int. 8254 trigger source */ #define PCI171X_CTRL_SW BIT(0) /* 1=enable software trigger source */ -#define PCI171x_CLRINT 8 /* W: clear interrupts request */ -#define PCI171x_CLRFIFO 9 /* W: clear FIFO */ -#define PCI171x_DA1 10 /* W: D/A register */ -#define PCI171x_DA2 12 /* W: D/A register */ -#define PCI171x_DAREF 14 /* W: D/A reference control */ -#define PCI171x_DI 16 /* R: digi inputs */ -#define PCI171x_DO 16 /* R: digi inputs */ - -#define PCI171X_TIMER_BASE 0x18 +#define PCI171X_CLRINT_REG 0x08 /* W: clear interrupts request */ +#define PCI171X_CLRFIFO_REG 0x09 /* W: clear FIFO */ +#define PCI171X_DA_REG(x) (0x0a + ((x) * 2)) /* W: D/A register */ +#define PCI171X_DAREF_REG 0x0e /* W: D/A reference control */ +#define PCI171X_DI_REG 0x10 /* R: digital inputs */ +#define PCI171X_DO_REG 0x10 /* W: digital outputs */ +#define PCI171X_TIMER_BASE 0x18 /* R/W: 8254 timer */ #define PCI1720_DA0 0 /* W: D/A register 0 */ #define PCI1720_DA1 2 /* W: D/A register 1 */ @@ -322,8 +323,8 @@ static void pci171x_ai_setup_chanlist(struct comedi_device *dev, rangeval |= 0x0020; /* select channel and set range */ - outw(chan | (chan << 8), dev->iobase + PCI171x_MUX); - outw(rangeval, dev->iobase + PCI171x_RANGE); + outw(chan | (chan << 8), dev->iobase + PCI171X_MUX_REG); + outw(rangeval, dev->iobase + PCI171X_RANGE_REG); devpriv->act_chanlist[i] = chan; } @@ -332,7 +333,7 @@ static void pci171x_ai_setup_chanlist(struct comedi_device *dev, /* select channel interval to scan */ devpriv->ai_et_MuxVal = first_chan | (last_chan << 8); - outw(devpriv->ai_et_MuxVal, dev->iobase + PCI171x_MUX); + outw(devpriv->ai_et_MuxVal, dev->iobase + PCI171X_MUX_REG); } static int pci171x_ai_eoc(struct comedi_device *dev, @@ -358,7 +359,7 @@ static int pci171x_ai_read_sample(struct comedi_device *dev, unsigned int sample; unsigned int chan; - sample = inw(dev->iobase + PCI171x_AD_DATA); + sample = inw(dev->iobase + PCI171X_AD_DATA_REG); if (!board->is_pci1713) { /* * The upper 4 bits of the 16-bit sample are the channel number @@ -389,15 +390,16 @@ static int pci171x_ai_insn_read(struct comedi_device *dev, devpriv->ctrl &= PCI171X_CTRL_CNT0; devpriv->ctrl |= PCI171X_CTRL_SW; /* set software trigger */ outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); - outb(0, dev->iobase + PCI171x_CLRFIFO); - outb(0, dev->iobase + PCI171x_CLRINT); + outb(0, dev->iobase + PCI171X_CLRFIFO_REG); + outb(0, dev->iobase + PCI171X_CLRINT_REG); pci171x_ai_setup_chanlist(dev, s, &insn->chanspec, 1, 1); for (i = 0; i < insn->n; i++) { unsigned int val; - outw(0, dev->iobase + PCI171x_SOFTTRG); /* start conversion */ + /* start conversion */ + outw(0, dev->iobase + PCI171X_SOFTTRG_REG); ret = comedi_timeout(dev, s, insn, pci171x_ai_eoc, 0); if (ret) @@ -410,8 +412,8 @@ static int pci171x_ai_insn_read(struct comedi_device *dev, data[i] = val; } - outb(0, dev->iobase + PCI171x_CLRFIFO); - outb(0, dev->iobase + PCI171x_CLRINT); + outb(0, dev->iobase + PCI171X_CLRFIFO_REG); + outb(0, dev->iobase + PCI171X_CLRINT_REG); return ret ? ret : insn->n; } @@ -424,17 +426,16 @@ static int pci171x_ao_insn_write(struct comedi_device *dev, struct pci1710_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int range = CR_RANGE(insn->chanspec); - unsigned int reg = chan ? PCI171x_DA2 : PCI171x_DA1; unsigned int val = s->readback[chan]; int i; devpriv->da_ranges &= ~(1 << (chan << 1)); devpriv->da_ranges |= (range << (chan << 1)); - outw(devpriv->da_ranges, dev->iobase + PCI171x_DAREF); + outw(devpriv->da_ranges, dev->iobase + PCI171X_DAREF_REG); for (i = 0; i < insn->n; i++) { val = data[i]; - outw(val, dev->iobase + reg); + outw(val, dev->iobase + PCI171X_DA_REG(chan)); } s->readback[chan] = val; @@ -447,7 +448,7 @@ static int pci171x_di_insn_bits(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - data[1] = inw(dev->iobase + PCI171x_DI); + data[1] = inw(dev->iobase + PCI171X_DI_REG); return insn->n; } @@ -458,7 +459,7 @@ static int pci171x_do_insn_bits(struct comedi_device *dev, unsigned int *data) { if (comedi_dio_update_state(s, data)) - outw(s->state, dev->iobase + PCI171x_DO); + outw(s->state, dev->iobase + PCI171X_DO_REG); data[1] = s->state; @@ -505,8 +506,8 @@ static int pci171x_ai_cancel(struct comedi_device *dev, /* reset any operations */ outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); comedi_8254_pacer_enable(dev->pacer, 1, 2, false); - outb(0, dev->iobase + PCI171x_CLRFIFO); - outb(0, dev->iobase + PCI171x_CLRINT); + outb(0, dev->iobase + PCI171X_CLRFIFO_REG); + outb(0, dev->iobase + PCI171X_CLRINT_REG); return 0; } @@ -532,7 +533,7 @@ static void pci1710_handle_every_sample(struct comedi_device *dev, return; } - outb(0, dev->iobase + PCI171x_CLRINT); /* clear our INT request */ + outb(0, dev->iobase + PCI171X_CLRINT_REG); for (; !(inw(dev->iobase + PCI171X_STATUS_REG) & PCI171X_STATUS_FE);) { ret = pci171x_ai_read_sample(dev, s, s->async->cur_chan, &val); @@ -550,7 +551,7 @@ static void pci1710_handle_every_sample(struct comedi_device *dev, } } - outb(0, dev->iobase + PCI171x_CLRINT); /* clear our INT request */ + outb(0, dev->iobase + PCI171X_CLRINT_REG); } static void pci1710_handle_fifo(struct comedi_device *dev, @@ -595,7 +596,7 @@ static void pci1710_handle_fifo(struct comedi_device *dev, } } - outb(0, dev->iobase + PCI171x_CLRINT); /* clear our INT request */ + outb(0, dev->iobase + PCI171X_CLRINT_REG); } static irqreturn_t interrupt_service_pci1710(int irq, void *d) @@ -621,9 +622,9 @@ static irqreturn_t interrupt_service_pci1710(int irq, void *d) devpriv->ctrl |= PCI171X_CTRL_SW; /* set software trigger */ outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); devpriv->ctrl = devpriv->ctrl_ext; - outb(0, dev->iobase + PCI171x_CLRFIFO); - outb(0, dev->iobase + PCI171x_CLRINT); - outw(devpriv->ai_et_MuxVal, dev->iobase + PCI171x_MUX); + outb(0, dev->iobase + PCI171X_CLRFIFO_REG); + outb(0, dev->iobase + PCI171X_CLRINT_REG); + outw(devpriv->ai_et_MuxVal, dev->iobase + PCI171X_MUX_REG); outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); comedi_8254_pacer_enable(dev->pacer, 1, 2, true); return IRQ_HANDLED; @@ -647,8 +648,8 @@ static int pci171x_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) pci171x_ai_setup_chanlist(dev, s, cmd->chanlist, cmd->chanlist_len, devpriv->saved_seglen); - outb(0, dev->iobase + PCI171x_CLRFIFO); - outb(0, dev->iobase + PCI171x_CLRINT); + outb(0, dev->iobase + PCI171X_CLRFIFO_REG); + outb(0, dev->iobase + PCI171X_CLRINT_REG); devpriv->ctrl &= PCI171X_CTRL_CNT0; if ((cmd->flags & CMDF_WAKE_EOS) == 0) @@ -798,18 +799,18 @@ static int pci171x_reset(struct comedi_device *dev) devpriv->ctrl = PCI171X_CTRL_SW | PCI171X_CTRL_CNT0; /* reset any operations */ outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); - outb(0, dev->iobase + PCI171x_CLRFIFO); /* clear FIFO */ - outb(0, dev->iobase + PCI171x_CLRINT); /* clear INT request */ + outb(0, dev->iobase + PCI171X_CLRFIFO_REG); + outb(0, dev->iobase + PCI171X_CLRINT_REG); devpriv->da_ranges = 0; if (board->has_ao) { - /* set DACs to 0..5V */ - outb(devpriv->da_ranges, dev->iobase + PCI171x_DAREF); - outw(0, dev->iobase + PCI171x_DA1); /* set DA outputs to 0V */ - outw(0, dev->iobase + PCI171x_DA2); + /* set DACs to 0..5V and outputs to 0V */ + outb(devpriv->da_ranges, dev->iobase + PCI171X_DAREF_REG); + outw(0, dev->iobase + PCI171X_DA_REG(0)); + outw(0, dev->iobase + PCI171X_DA_REG(1)); } - outw(0, dev->iobase + PCI171x_DO); /* digital outputs to 0 */ - outb(0, dev->iobase + PCI171x_CLRFIFO); /* clear FIFO */ - outb(0, dev->iobase + PCI171x_CLRINT); /* clear INT request */ + outw(0, dev->iobase + PCI171X_DO_REG); /* digital outputs to 0 */ + outb(0, dev->iobase + PCI171X_CLRFIFO_REG); + outb(0, dev->iobase + PCI171X_CLRINT_REG); return 0; } From 3c9b7733958fb861c3df7d56481c8e97613088d3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:34 -0700 Subject: [PATCH 1708/2431] staging: comedi: adv_pci1710: tidy up PCI1720_* register defines The PCI-1720 board is supported by this driver but uses a different register map. For aesthetics, rename the defines to match the PCI171X_* format. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adv_pci1710.c | 41 ++++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 451715707540..6382c2601502 100644 --- a/drivers/staging/comedi/drivers/adv_pci1710.c +++ b/drivers/staging/comedi/drivers/adv_pci1710.c @@ -62,16 +62,15 @@ #define PCI171X_DO_REG 0x10 /* W: digital outputs */ #define PCI171X_TIMER_BASE 0x18 /* R/W: 8254 timer */ -#define PCI1720_DA0 0 /* W: D/A register 0 */ -#define PCI1720_DA1 2 /* W: D/A register 1 */ -#define PCI1720_DA2 4 /* W: D/A register 2 */ -#define PCI1720_DA3 6 /* W: D/A register 3 */ -#define PCI1720_RANGE 8 /* R/W: D/A range register */ -#define PCI1720_SYNCOUT 9 /* W: D/A synchronized output register */ -#define PCI1720_SYNCONT 15 /* R/W: D/A synchronized control */ - -/* D/A synchronized control (PCI1720_SYNCONT) */ -#define Syncont_SC0 1 /* set synchronous output mode */ +/* + * PCI-1720 only has analog outputs and has a different + * register map (dev->iobase) + */ +#define PCI1720_DA_REG(x) (0x00 + ((x) * 2)) /* W: D/A registers */ +#define PCI1720_RANGE_REG 0x08 /* R/W: D/A range register */ +#define PCI1720_SYNC_REG 0x09 /* W: D/A synchronized output */ +#define PCI1720_SYNC_CTRL_REG 0x0f /* R/W: D/A synchronized control */ +#define PCI1720_SYNC_CTRL_SC0 BIT(0) /* set synchronous output mode */ static const struct comedi_lrange range_pci1710_3 = { 9, { @@ -480,15 +479,15 @@ static int pci1720_ao_insn_write(struct comedi_device *dev, val = devpriv->da_ranges & (~(0x03 << (chan << 1))); val |= (range << (chan << 1)); if (val != devpriv->da_ranges) { - outb(val, dev->iobase + PCI1720_RANGE); + outb(val, dev->iobase + PCI1720_RANGE_REG); devpriv->da_ranges = val; } val = s->readback[chan]; for (i = 0; i < insn->n; i++) { val = data[i]; - outw(val, dev->iobase + PCI1720_DA0 + (chan << 1)); - outb(0, dev->iobase + PCI1720_SYNCOUT); /* update outputs */ + outw(val, dev->iobase + PCI1720_DA_REG(chan)); + outb(0, dev->iobase + PCI1720_SYNC_REG); /* update outputs */ } s->readback[chan] = val; @@ -819,15 +818,15 @@ static int pci1720_reset(struct comedi_device *dev) { struct pci1710_private *devpriv = dev->private; /* set synchronous output mode */ - outb(Syncont_SC0, dev->iobase + PCI1720_SYNCONT); + outb(PCI1720_SYNC_CTRL_SC0, dev->iobase + PCI1720_SYNC_CTRL_REG); devpriv->da_ranges = 0xAA; - /* set all ranges to +/-5V */ - outb(devpriv->da_ranges, dev->iobase + PCI1720_RANGE); - outw(0x0800, dev->iobase + PCI1720_DA0); /* set outputs to 0V */ - outw(0x0800, dev->iobase + PCI1720_DA1); - outw(0x0800, dev->iobase + PCI1720_DA2); - outw(0x0800, dev->iobase + PCI1720_DA3); - outb(0, dev->iobase + PCI1720_SYNCOUT); /* update outputs */ + /* set all ranges to +/-5V and outputs to 0V */ + outb(devpriv->da_ranges, dev->iobase + PCI1720_RANGE_REG); + outw(0x0800, dev->iobase + PCI1720_DA_REG(0)); + outw(0x0800, dev->iobase + PCI1720_DA_REG(1)); + outw(0x0800, dev->iobase + PCI1720_DA_REG(2)); + outw(0x0800, dev->iobase + PCI1720_DA_REG(3)); + outb(0, dev->iobase + PCI1720_SYNC_REG); /* update outputs */ return 0; } From fff5b04fdf238a82fa1dce0d31eeea133b3e580a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:35 -0700 Subject: [PATCH 1709/2431] staging: comedi: adv_pci1710: rename private data member 'ai_et_MuxVal' Rename thie CamelCase member of the private data. Add a comment in the interrupt handler to clarify why the channel interval is updated again. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adv_pci1710.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 6382c2601502..399c511cfe0a 100644 --- a/drivers/staging/comedi/drivers/adv_pci1710.c +++ b/drivers/staging/comedi/drivers/adv_pci1710.c @@ -226,8 +226,8 @@ struct pci1710_private { unsigned int max_samples; unsigned int ctrl; /* control register value */ unsigned int ctrl_ext; /* used to switch from TRIG_EXT to TRIG_xxx */ + unsigned int mux_ext; /* used to set the channel interval to scan */ unsigned char ai_et; - unsigned int ai_et_MuxVal; unsigned int act_chanlist[32]; /* list of scanned channel */ unsigned char saved_seglen; /* len of the non-repeating chanlist */ unsigned char da_ranges; /* copy of D/A outpit range register */ @@ -331,8 +331,8 @@ static void pci171x_ai_setup_chanlist(struct comedi_device *dev, devpriv->act_chanlist[i] = CR_CHAN(chanlist[i]); /* select channel interval to scan */ - devpriv->ai_et_MuxVal = first_chan | (last_chan << 8); - outw(devpriv->ai_et_MuxVal, dev->iobase + PCI171X_MUX_REG); + devpriv->mux_ext = first_chan | (last_chan << 8); + outw(devpriv->mux_ext, dev->iobase + PCI171X_MUX_REG); } static int pci171x_ai_eoc(struct comedi_device *dev, @@ -623,7 +623,8 @@ static irqreturn_t interrupt_service_pci1710(int irq, void *d) devpriv->ctrl = devpriv->ctrl_ext; outb(0, dev->iobase + PCI171X_CLRFIFO_REG); outb(0, dev->iobase + PCI171X_CLRINT_REG); - outw(devpriv->ai_et_MuxVal, dev->iobase + PCI171X_MUX_REG); + /* no sample on this interrupt; reset the channel interval */ + outw(devpriv->mux_ext, dev->iobase + PCI171X_MUX_REG); outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG); comedi_8254_pacer_enable(dev->pacer, 1, 2, true); return IRQ_HANDLED; From 4dc4f282070b958e599ed4c6f27078fae78605c7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:29 -0700 Subject: [PATCH 1710/2431] staging: comedi: aio_aio12_8: prefer using the BIT macro As suggested by checkpatch.pl, use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 40 ++++++++++---------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index fbc3e5aa94cb..84f8c49e3174 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -43,39 +43,41 @@ Notes: * Register map */ #define AIO12_8_STATUS_REG 0x00 -#define AIO12_8_STATUS_ADC_EOC (1 << 7) -#define AIO12_8_STATUS_PORT_C_COS (1 << 6) -#define AIO12_8_STATUS_IRQ_ENA (1 << 2) +#define AIO12_8_STATUS_ADC_EOC BIT(7) +#define AIO12_8_STATUS_PORT_C_COS BIT(6) +#define AIO12_8_STATUS_IRQ_ENA BIT(2) #define AIO12_8_INTERRUPT_REG 0x01 -#define AIO12_8_INTERRUPT_ADC (1 << 7) -#define AIO12_8_INTERRUPT_COS (1 << 6) -#define AIO12_8_INTERRUPT_COUNTER1 (1 << 5) -#define AIO12_8_INTERRUPT_PORT_C3 (1 << 4) -#define AIO12_8_INTERRUPT_PORT_C0 (1 << 3) -#define AIO12_8_INTERRUPT_ENA (1 << 2) +#define AIO12_8_INTERRUPT_ADC BIT(7) +#define AIO12_8_INTERRUPT_COS BIT(6) +#define AIO12_8_INTERRUPT_COUNTER1 BIT(5) +#define AIO12_8_INTERRUPT_PORT_C3 BIT(4) +#define AIO12_8_INTERRUPT_PORT_C0 BIT(3) +#define AIO12_8_INTERRUPT_ENA BIT(2) #define AIO12_8_ADC_REG 0x02 -#define AIO12_8_ADC_MODE_NORMAL (0 << 6) -#define AIO12_8_ADC_MODE_INT_CLK (1 << 6) -#define AIO12_8_ADC_MODE_STANDBY (2 << 6) -#define AIO12_8_ADC_MODE_POWERDOWN (3 << 6) -#define AIO12_8_ADC_ACQ_3USEC (0 << 5) -#define AIO12_8_ADC_ACQ_PROGRAM (1 << 5) +#define AIO12_8_ADC_MODE(x) (((x) & 0x3) << 6) +#define AIO12_8_ADC_MODE_NORMAL AIO12_8_ADC_MODE(0) +#define AIO12_8_ADC_MODE_INT_CLK AIO12_8_ADC_MODE(1) +#define AIO12_8_ADC_MODE_STANDBY AIO12_8_ADC_MODE(2) +#define AIO12_8_ADC_MODE_POWERDOWN AIO12_8_ADC_MODE(3) +#define AIO12_8_ADC_ACQ(x) (((x) & 0x1) << 5) +#define AIO12_8_ADC_ACQ_3USEC AIO12_8_ADC_ACQ(0) +#define AIO12_8_ADC_ACQ_PROGRAM AIO12_8_ADC_ACQ(1) #define AIO12_8_ADC_RANGE(x) ((x) << 3) #define AIO12_8_ADC_CHAN(x) ((x) << 0) #define AIO12_8_DAC_REG(x) (0x04 + (x) * 2) #define AIO12_8_8254_BASE_REG 0x0c #define AIO12_8_8255_BASE_REG 0x10 #define AIO12_8_DIO_CONTROL_REG 0x14 -#define AIO12_8_DIO_CONTROL_TST (1 << 0) +#define AIO12_8_DIO_CONTROL_TST BIT(0) #define AIO12_8_ADC_TRIGGER_REG 0x15 #define AIO12_8_ADC_TRIGGER_RANGE(x) ((x) << 3) #define AIO12_8_ADC_TRIGGER_CHAN(x) ((x) << 0) #define AIO12_8_TRIGGER_REG 0x16 -#define AIO12_8_TRIGGER_ADTRIG (1 << 1) -#define AIO12_8_TRIGGER_DACTRIG (1 << 0) +#define AIO12_8_TRIGGER_ADTRIG BIT(1) +#define AIO12_8_TRIGGER_DACTRIG BIT(0) #define AIO12_8_COS_REG 0x17 #define AIO12_8_DAC_ENABLE_REG 0x18 -#define AIO12_8_DAC_ENABLE_REF_ENA (1 << 0) +#define AIO12_8_DAC_ENABLE_REF_ENA BIT(0) struct aio12_8_boardtype { const char *name; From 471c5d6ccf0ddab58bdf6b5ff72bd71897e2f591 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:30 -0700 Subject: [PATCH 1711/2431] staging: comedi: aio_aio12_8: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 61 +++++++++----------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 84f8c49e3174..68c721f0a158 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -1,39 +1,34 @@ /* - - comedi/drivers/aio_aio12_8.c - - Driver for Access I/O Products PC-104 AIO12-8 Analog I/O Board - Copyright (C) 2006 C&C Technologies, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ + * aio_aio12_8.c + * Driver for Access I/O Products PC-104 AIO12-8 Analog I/O Board + * Copyright (C) 2006 C&C Technologies, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ /* - -Driver: aio_aio12_8 -Description: Access I/O Products PC-104 AIO12-8 Analog I/O Board -Author: Pablo Mejia -Devices: [Access I/O] PC-104 AIO12-8 (aio_aio12_8) - [Access I/O] PC-104 AI12-8 (aio_ai12_8) - [Access I/O] PC-104 AO12-8 (aio_ao12_8) -Status: experimental - -Configuration Options: - [0] - I/O port base address - -Notes: - - Only synchronous operations are supported. - -*/ + * Driver: aio_aio12_8 + * Description: Access I/O Products PC-104 AIO12-8 Analog I/O Board + * Author: Pablo Mejia + * Devices: [Access I/O] PC-104 AIO12-8 (aio_aio12_8), + * [Access I/O] PC-104 AI12-8 (aio_ai12_8), + * [Access I/O] PC-104 AO12-8 (aio_ao12_8) + * Status: experimental + * + * Configuration Options: + * [0] - I/O port base address + * + * Notes: + * Only synchronous operations are supported. + */ #include #include "../comedidev.h" From 180480ed410645d0e9ed0ba03b914a7a9aab6b3a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:31 -0700 Subject: [PATCH 1712/2431] staging: comedi: aio_aio12_8: update MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more useful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 68c721f0a158..63fb9fdeb087 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -242,5 +242,5 @@ static struct comedi_driver aio_aio12_8_driver = { module_comedi_driver(aio_aio12_8_driver); MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); +MODULE_DESCRIPTION("Comedi driver for Access I/O AIO12-8 Analog I/O Board"); MODULE_LICENSE("GPL"); From ffe4a3173916b7639bd06f61355e14d202ad471f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:32 -0700 Subject: [PATCH 1713/2431] staging: comedi: aio_aio12_8: hookup 8254 counter/timer This board has an industry-standard 8254 chip with the gate, clock, and output pins for each counter available on the connector. Hookup the 8254 counter as a comedi subdevice. Provice an (*insn_config) for the user to query the clock source for each channel. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/Kconfig | 1 + drivers/staging/comedi/drivers/aio_aio12_8.c | 36 ++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index a5f2a3e45f26..ac0f01007abd 100644 --- a/drivers/staging/comedi/Kconfig +++ b/drivers/staging/comedi/Kconfig @@ -410,6 +410,7 @@ config COMEDI_FL512 config COMEDI_AIO_AIO12_8 tristate "I/O Products PC/104 AIO12-8 Analog I/O Board support" + select COMEDI_8254 select COMEDI_8255 ---help--- Enable support for I/O Products PC/104 AIO12-8 Analog I/O Board diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 63fb9fdeb087..0ba557ef9a7f 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -32,6 +32,8 @@ #include #include "../comedidev.h" + +#include "comedi_8254.h" #include "8255.h" /* @@ -163,6 +165,29 @@ static int aio_aio12_8_ao_insn_write(struct comedi_device *dev, return insn->n; } +static int aio_aio12_8_counter_insn_config(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) +{ + unsigned int chan = CR_CHAN(insn->chanspec); + + switch (data[0]) { + case INSN_CONFIG_GET_CLOCK_SRC: + /* + * Channels 0 and 2 have external clock sources. + * Channel 1 has a fixed 1 MHz clock source. + */ + data[0] = 0; + data[1] = (chan == 1) ? I8254_OSC_BASE_1MHZ : 0; + break; + default: + return -EINVAL; + } + + return insn->n; +} + static const struct comedi_lrange range_aio_aio12_8 = { 4, { UNI_RANGE(5), @@ -183,6 +208,11 @@ static int aio_aio12_8_attach(struct comedi_device *dev, if (ret) return ret; + dev->pacer = comedi_8254_init(dev->iobase + AIO12_8_8254_BASE_REG, + 0, I8254_IO8, 0); + if (!dev->pacer) + return -ENOMEM; + ret = comedi_alloc_subdevices(dev, 4); if (ret) return ret; @@ -223,9 +253,11 @@ static int aio_aio12_8_attach(struct comedi_device *dev, if (ret) return ret; + /* Counter subdevice (8254) */ s = &dev->subdevices[3]; - /* 8254 counter/timer subdevice */ - s->type = COMEDI_SUBD_UNUSED; + comedi_8254_subdevice_init(s, dev->pacer); + + dev->pacer->insn_config = aio_aio12_8_counter_insn_config; return 0; } From c5fcb7cabc52dfc38ff4b31abc7aac11b54f6bd7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:33 -0700 Subject: [PATCH 1714/2431] staging: comedi: aio_aio12_8: move comedi_lrange definition For aesthetics, move the comedi_lrange definition used in this driver to the follow the norm in comedi drivers and rename the variable. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 22 ++++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 0ba557ef9a7f..f9a90e5259c6 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -76,6 +76,15 @@ #define AIO12_8_DAC_ENABLE_REG 0x18 #define AIO12_8_DAC_ENABLE_REF_ENA BIT(0) +static const struct comedi_lrange aio_aio12_8_range = { + 4, { + UNI_RANGE(5), + BIP_RANGE(5), + UNI_RANGE(10), + BIP_RANGE(10) + } +}; + struct aio12_8_boardtype { const char *name; int ai_nchan; @@ -188,15 +197,6 @@ static int aio_aio12_8_counter_insn_config(struct comedi_device *dev, return insn->n; } -static const struct comedi_lrange range_aio_aio12_8 = { - 4, { - UNI_RANGE(5), - BIP_RANGE(5), - UNI_RANGE(10), - BIP_RANGE(10) - } -}; - static int aio_aio12_8_attach(struct comedi_device *dev, struct comedi_devconfig *it) { @@ -224,7 +224,7 @@ static int aio_aio12_8_attach(struct comedi_device *dev, s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; s->n_chan = board->ai_nchan; s->maxdata = 0x0fff; - s->range_table = &range_aio_aio12_8; + s->range_table = &aio_aio12_8_range; s->insn_read = aio_aio12_8_ai_read; } else { s->type = COMEDI_SUBD_UNUSED; @@ -237,7 +237,7 @@ static int aio_aio12_8_attach(struct comedi_device *dev, s->subdev_flags = SDF_WRITABLE | SDF_GROUND | SDF_DIFF; s->n_chan = 4; s->maxdata = 0x0fff; - s->range_table = &range_aio_aio12_8; + s->range_table = &aio_aio12_8_range; s->insn_write = aio_aio12_8_ao_insn_write; ret = comedi_alloc_subdev_readback(s); From 1198f6b09f05e1aef96e59c6af359dffa6d926e1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:34 -0700 Subject: [PATCH 1715/2431] staging: comedi: aio_aio12_8: analog outputs are single-ended The analog outputs are all single-ended. Remove the SDF_DIFF subdev_flag from the subdevice initialization. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index f9a90e5259c6..2262da0d21b4 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -234,7 +234,7 @@ static int aio_aio12_8_attach(struct comedi_device *dev, if (board->ao_nchan) { /* Analog output subdevice */ s->type = COMEDI_SUBD_AO; - s->subdev_flags = SDF_WRITABLE | SDF_GROUND | SDF_DIFF; + s->subdev_flags = SDF_WRITABLE | SDF_GROUND; s->n_chan = 4; s->maxdata = 0x0fff; s->range_table = &aio_aio12_8_range; From ee4c7709fbb29860c3200b1296a18adff01d2307 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:35 -0700 Subject: [PATCH 1716/2431] staging: comedi: aio_aio12_8: fix ai (*insn_read) According to the user manual, analog input bipolar data is 2's complement and unipolar is straight binry. Use the core helpers to munge the data appropriately. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 2262da0d21b4..e76a1309a168 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -120,13 +120,15 @@ static int aio_aio12_8_ai_eoc(struct comedi_device *dev, static int aio_aio12_8_ai_read(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) + struct comedi_insn *insn, + unsigned int *data) { unsigned int chan = CR_CHAN(insn->chanspec); unsigned int range = CR_RANGE(insn->chanspec); + unsigned int val; unsigned char control; int ret; - int n; + int i; /* * Setup the control byte for internal 2MHz clock, 3uS conversion, @@ -138,7 +140,7 @@ static int aio_aio12_8_ai_read(struct comedi_device *dev, /* Read status to clear EOC latch */ inb(dev->iobase + AIO12_8_STATUS_REG); - for (n = 0; n < insn->n; n++) { + for (i = 0; i < insn->n; i++) { /* Setup and start conversion */ outb(control, dev->iobase + AIO12_8_ADC_REG); @@ -147,7 +149,13 @@ static int aio_aio12_8_ai_read(struct comedi_device *dev, if (ret) return ret; - data[n] = inw(dev->iobase + AIO12_8_ADC_REG) & s->maxdata; + val = inw(dev->iobase + AIO12_8_ADC_REG) & s->maxdata; + + /* munge bipolar 2's complement data to offset binary */ + if (comedi_range_is_bipolar(s, range)) + val = comedi_offset_munge(s, val); + + data[i] = val; } return insn->n; From 6db70e3934c02c76f85c128e01585d8b6a8fbe61 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:36 -0700 Subject: [PATCH 1717/2431] staging: comedi: aio_aio12_8: refactor boardininfo This driver supports three board types with these differences: 104-AIO12-8 - eight 12-bit analog in, four 12-bit analog out 104-AI12-8 - eight 12-bit analog in 104-AO12-4 - four 12-bit analog out Convert the boardinfo 'ai_nchan' and 'ao_nchan' into bit-field flags 'has_ai' and 'has_ao' so save a bit of space. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 22 ++++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index e76a1309a168..8d2c494b5cd8 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -87,21 +87,21 @@ static const struct comedi_lrange aio_aio12_8_range = { struct aio12_8_boardtype { const char *name; - int ai_nchan; - int ao_nchan; + unsigned int has_ai:1; + unsigned int has_ao:1; }; static const struct aio12_8_boardtype board_types[] = { { .name = "aio_aio12_8", - .ai_nchan = 8, - .ao_nchan = 4, + .has_ai = 1, + .has_ao = 1, }, { .name = "aio_ai12_8", - .ai_nchan = 8, + .has_ai = 1, }, { .name = "aio_ao12_8", - .ao_nchan = 4, + .has_ao = 1, }, }; @@ -225,12 +225,12 @@ static int aio_aio12_8_attach(struct comedi_device *dev, if (ret) return ret; + /* Analog Input subdevice */ s = &dev->subdevices[0]; - if (board->ai_nchan) { - /* Analog input subdevice */ + if (board->has_ai) { s->type = COMEDI_SUBD_AI; s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; - s->n_chan = board->ai_nchan; + s->n_chan = 8; s->maxdata = 0x0fff; s->range_table = &aio_aio12_8_range; s->insn_read = aio_aio12_8_ai_read; @@ -238,9 +238,9 @@ static int aio_aio12_8_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_UNUSED; } + /* Analog Output subdevice */ s = &dev->subdevices[1]; - if (board->ao_nchan) { - /* Analog output subdevice */ + if (board->has_ao) { s->type = COMEDI_SUBD_AO; s->subdev_flags = SDF_WRITABLE | SDF_GROUND; s->n_chan = 4; From fbea1876dc8da6fba445d69cfda56c955c9714a8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:37 -0700 Subject: [PATCH 1718/2431] staging: comedi: aio_aio12_8: rename 'aio_ao12_8' boardinfo This board name is incorrect. The proper name is 104-AO12-4. Change the boardinfo name to 'aio_aio12_4' to follow the format of the other boardtypes. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 8d2c494b5cd8..62e526bb2d41 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -20,7 +20,7 @@ * Author: Pablo Mejia * Devices: [Access I/O] PC-104 AIO12-8 (aio_aio12_8), * [Access I/O] PC-104 AI12-8 (aio_ai12_8), - * [Access I/O] PC-104 AO12-8 (aio_ao12_8) + * [Access I/O] PC-104 AO12-4 (aio_ao12_4) * Status: experimental * * Configuration Options: @@ -100,7 +100,7 @@ static const struct aio12_8_boardtype board_types[] = { .name = "aio_ai12_8", .has_ai = 1, }, { - .name = "aio_ao12_8", + .name = "aio_ao12_4", .has_ao = 1, }, }; From 9f4d30ddfa4acbb1c255375c9fd2357cd7b8d6b2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:38 -0700 Subject: [PATCH 1719/2431] staging: comedi: aio_aio12_8: tidy up digital I/O subdevice init For aesthetics, move and reword the comment to follow the format of the other subdevices. Signed-off-by: H Hartley Sweeten CC: Ian Abbott Cc: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/aio_aio12_8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 62e526bb2d41..43a0ce5721d3 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -255,8 +255,8 @@ static int aio_aio12_8_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_UNUSED; } + /* Digital I/O subdevice (8255) */ s = &dev->subdevices[2]; - /* 8255 Digital i/o subdevice */ ret = subdev_8255_init(dev, s, NULL, AIO12_8_8255_BASE_REG); if (ret) return ret; From 6ae49e273272245e28b0b205a54c4a88f84944ca Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:02 -0700 Subject: [PATCH 1720/2431] staging: comedi: cb_das16_cs: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 61 ++++++++++---------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index ae84f2c0cc9c..428b07fd9625 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -1,36 +1,37 @@ /* - comedi/drivers/das16cs.c - Driver for Computer Boards PC-CARD DAS16/16. + * cb_das16_cs.c + * Driver for Computer Boards PC-CARD DAS16/16. + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 2000, 2001, 2002 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * PCMCIA support code for this driver is adapted from the dummy_cs.c + * driver of the Linux PCMCIA Card Services package. + * + * The initial developer of the original code is David A. Hinds + * . Portions created by David A. Hinds + * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. + */ - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 2000, 2001, 2002 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - PCMCIA support code for this driver is adapted from the dummy_cs.c - driver of the Linux PCMCIA Card Services package. - - The initial developer of the original code is David A. Hinds - . Portions created by David A. Hinds - are Copyright (C) 1999 David A. Hinds. All Rights Reserved. - -*/ /* -Driver: cb_das16_cs -Description: Computer Boards PC-CARD DAS16/16 -Devices: [ComputerBoards] PC-CARD DAS16/16 (cb_das16_cs), PC-CARD DAS16/16-AO -Author: ds -Updated: Mon, 04 Nov 2002 20:04:21 -0800 -Status: experimental -*/ + * Driver: cb_das16_cs + * Description: Computer Boards PC-CARD DAS16/16 + * Devices: [ComputerBoards] PC-CARD DAS16/16 (cb_das16_cs), + * PC-CARD DAS16/16-AO + * Author: ds + * Updated: Mon, 04 Nov 2002 20:04:21 -0800 + * Status: experimental + */ #include #include From 2845efb967ed9d1e430675ff67b2129a20bfedac Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:03 -0700 Subject: [PATCH 1721/2431] staging: comedi: cb_das16_cs: rename register map defines For aesthetics, add _REG to all the register map offsets and convert the values to hex. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 45 +++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 428b07fd9625..ac77b86d07af 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -41,12 +41,15 @@ #include "comedi_8254.h" -#define DAS16CS_ADC_DATA 0 -#define DAS16CS_DIO_MUX 2 -#define DAS16CS_MISC1 4 -#define DAS16CS_MISC2 6 -#define DAS16CS_TIMER_BASE 8 -#define DAS16CS_DIO 16 +/* + * Register I/O map + */ +#define DAS16CS_AI_DATA_REG 0x00 +#define DAS16CS_AI_MUX_REG 0x02 +#define DAS16CS_MISC1_REG 0x04 +#define DAS16CS_MISC2_REG 0x06 +#define DAS16CS_TIMER_BASE 0x08 +#define DAS16CS_DIO_REG 0x10 struct das16cs_board { const char *name; @@ -91,7 +94,7 @@ static int das16cs_ai_eoc(struct comedi_device *dev, { unsigned int status; - status = inw(dev->iobase + DAS16CS_MISC1); + status = inw(dev->iobase + DAS16CS_MISC1_REG); if (status & 0x0080) return 0; return -EBUSY; @@ -108,11 +111,11 @@ static int das16cs_ai_rinsn(struct comedi_device *dev, int ret; int i; - outw(chan, dev->iobase + DAS16CS_DIO_MUX); + outw(chan, dev->iobase + DAS16CS_AI_MUX_REG); devpriv->status1 &= ~0xf320; devpriv->status1 |= (aref == AREF_DIFF) ? 0 : 0x0020; - outw(devpriv->status1, dev->iobase + DAS16CS_MISC1); + outw(devpriv->status1, dev->iobase + DAS16CS_MISC1_REG); devpriv->status2 &= ~0xff00; switch (range) { @@ -129,16 +132,16 @@ static int das16cs_ai_rinsn(struct comedi_device *dev, devpriv->status2 |= 0x200; break; } - outw(devpriv->status2, dev->iobase + DAS16CS_MISC2); + outw(devpriv->status2, dev->iobase + DAS16CS_MISC2_REG); for (i = 0; i < insn->n; i++) { - outw(0, dev->iobase + DAS16CS_ADC_DATA); + outw(0, dev->iobase + DAS16CS_AI_DATA_REG); ret = comedi_timeout(dev, s, insn, das16cs_ai_eoc, 0); if (ret) return ret; - data[i] = inw(dev->iobase + DAS16CS_ADC_DATA); + data[i] = inw(dev->iobase + DAS16CS_AI_DATA_REG); } return i; @@ -159,7 +162,7 @@ static int das16cs_ao_insn_write(struct comedi_device *dev, for (i = 0; i < insn->n; i++) { val = data[i]; - outw(devpriv->status1, dev->iobase + DAS16CS_MISC1); + outw(devpriv->status1, dev->iobase + DAS16CS_MISC1_REG); udelay(1); status1 = devpriv->status1 & ~0xf; @@ -168,23 +171,25 @@ static int das16cs_ao_insn_write(struct comedi_device *dev, else status1 |= 0x0008; - outw(status1, dev->iobase + DAS16CS_MISC1); + outw(status1, dev->iobase + DAS16CS_MISC1_REG); udelay(1); for (bit = 15; bit >= 0; bit--) { int b = (val >> bit) & 0x1; b <<= 1; - outw(status1 | b | 0x0000, dev->iobase + DAS16CS_MISC1); + outw(status1 | b | 0x0000, + dev->iobase + DAS16CS_MISC1_REG); udelay(1); - outw(status1 | b | 0x0004, dev->iobase + DAS16CS_MISC1); + outw(status1 | b | 0x0004, + dev->iobase + DAS16CS_MISC1_REG); udelay(1); } /* * Make both DAC0CS and DAC1CS high to load * the new data and update analog the output */ - outw(status1 | 0x9, dev->iobase + DAS16CS_MISC1); + outw(status1 | 0x9, dev->iobase + DAS16CS_MISC1_REG); } s->readback[chan] = val; @@ -197,9 +202,9 @@ static int das16cs_dio_insn_bits(struct comedi_device *dev, unsigned int *data) { if (comedi_dio_update_state(s, data)) - outw(s->state, dev->iobase + DAS16CS_DIO); + outw(s->state, dev->iobase + DAS16CS_DIO_REG); - data[1] = inw(dev->iobase + DAS16CS_DIO); + data[1] = inw(dev->iobase + DAS16CS_DIO_REG); return insn->n; } @@ -227,7 +232,7 @@ static int das16cs_dio_insn_config(struct comedi_device *dev, devpriv->status2 |= (s->io_bits & 0xf0) ? 0x0080 : 0; devpriv->status2 |= (s->io_bits & 0x0f) ? 0x0040 : 0; - outw(devpriv->status2, dev->iobase + DAS16CS_MISC2); + outw(devpriv->status2, dev->iobase + DAS16CS_MISC2_REG); return insn->n; } From 95ea3e760ef8e0c2171025429f989cf44075a91f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:04 -0700 Subject: [PATCH 1722/2431] staging: comedi: cb_das16_cs: fix ai mux register programming The ai mux register is used program the hi/lo channels in a scan. According to the user manual, the hi and lo channels should be the same to sample one channel. Introduce some macros to set the appropriate bits in the ai mux register and fix the ai (*insn_read). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index ac77b86d07af..15d03a74fcd0 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -46,6 +46,10 @@ */ #define DAS16CS_AI_DATA_REG 0x00 #define DAS16CS_AI_MUX_REG 0x02 +#define DAS16CS_AI_MUX_HI_CHAN(x) (((x) & 0xf) << 4) +#define DAS16CS_AI_MUX_LO_CHAN(x) (((x) & 0xf) << 0) +#define DAS16CS_AI_MUX_SINGLE_CHAN(x) (DAS16CS_AI_MUX_HI_CHAN(x) | \ + DAS16CS_AI_MUX_LO_CHAN(x)) #define DAS16CS_MISC1_REG 0x04 #define DAS16CS_MISC2_REG 0x06 #define DAS16CS_TIMER_BASE 0x08 @@ -111,7 +115,8 @@ static int das16cs_ai_rinsn(struct comedi_device *dev, int ret; int i; - outw(chan, dev->iobase + DAS16CS_AI_MUX_REG); + outw(DAS16CS_AI_MUX_SINGLE_CHAN(chan), + dev->iobase + DAS16CS_AI_MUX_REG); devpriv->status1 &= ~0xf320; devpriv->status1 |= (aref == AREF_DIFF) ? 0 : 0x0020; From 6f2e618c3bd58d6d54e25564b25d18a7a332bd0a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:05 -0700 Subject: [PATCH 1723/2431] staging: comedi: cb_das16_cs: define the misc1 and misc2 register bits Define the bits in these registers and use them to remove the "magic" values in the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 96 +++++++++++++++----- 1 file changed, 74 insertions(+), 22 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 15d03a74fcd0..7913a87a71e3 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -51,7 +51,48 @@ #define DAS16CS_AI_MUX_SINGLE_CHAN(x) (DAS16CS_AI_MUX_HI_CHAN(x) | \ DAS16CS_AI_MUX_LO_CHAN(x)) #define DAS16CS_MISC1_REG 0x04 +#define DAS16CS_MISC1_INTE BIT(15) /* 1=enable; 0=disable */ +#define DAS16CS_MISC1_INT_SRC(x) (((x) & 0x7) << 12) /* interrupt src */ +#define DAS16CS_MISC1_INT_SRC_NONE DAS16CS_MISC1_INT_SRC(0) +#define DAS16CS_MISC1_INT_SRC_PACER DAS16CS_MISC1_INT_SRC(1) +#define DAS16CS_MISC1_INT_SRC_EXT DAS16CS_MISC1_INT_SRC(2) +#define DAS16CS_MISC1_INT_SRC_FNE DAS16CS_MISC1_INT_SRC(3) +#define DAS16CS_MISC1_INT_SRC_FHF DAS16CS_MISC1_INT_SRC(4) +#define DAS16CS_MISC1_INT_SRC_EOS DAS16CS_MISC1_INT_SRC(5) +#define DAS16CS_MISC1_INT_SRC_MASK DAS16CS_MISC1_INT_SRC(7) +#define DAS16CS_MISC1_OVR BIT(10) /* ro - 1=FIFO overflow */ +#define DAS16CS_MISC1_AI_CONV(x) (((x) & 0x3) << 8) /* AI convert src */ +#define DAS16CS_MISC1_AI_CONV_SW DAS16CS_MISC1_AI_CONV(0) +#define DAS16CS_MISC1_AI_CONV_EXT_NEG DAS16CS_MISC1_AI_CONV(1) +#define DAS16CS_MISC1_AI_CONV_EXT_POS DAS16CS_MISC1_AI_CONV(2) +#define DAS16CS_MISC1_AI_CONV_PACER DAS16CS_MISC1_AI_CONV(3) +#define DAS16CS_MISC1_AI_CONV_MASK DAS16CS_MISC1_AI_CONV(3) +#define DAS16CS_MISC1_EOC BIT(7) /* ro - 0=busy; 1=ready */ +#define DAS16CS_MISC1_SEDIFF BIT(5) /* 0=diff; 1=se */ +#define DAS16CS_MISC1_INTB BIT(4) /* ro - 0=latched; 1=cleared */ +#define DAS16CS_MISC1_MA_MASK (0xf << 0) /* ro - current ai mux */ +#define DAS16CS_MISC1_DAC1CS BIT(3) /* wo - DAC1 chip select */ +#define DAS16CS_MISC1_DACCLK BIT(2) /* wo - Serial DAC clock */ +#define DAS16CS_MISC1_DACSD BIT(1) /* wo - Serial DAC data */ +#define DAS16CS_MISC1_DAC0CS BIT(0) /* wo - DAC0 chip select */ +#define DAS16CS_MISC1_DAC_MASK (0x0f << 0) #define DAS16CS_MISC2_REG 0x06 +#define DAS16CS_MISC2_BME BIT(14) /* 1=burst enable; 0=disable */ +#define DAS16CS_MISC2_AI_GAIN(x) (((x) & 0xf) << 8) /* AI gain */ +#define DAS16CS_MISC2_AI_GAIN_1 DAS16CS_MISC2_AI_GAIN(4) /* +/-10V */ +#define DAS16CS_MISC2_AI_GAIN_2 DAS16CS_MISC2_AI_GAIN(0) /* +/-5V */ +#define DAS16CS_MISC2_AI_GAIN_4 DAS16CS_MISC2_AI_GAIN(1) /* +/-2.5V */ +#define DAS16CS_MISC2_AI_GAIN_8 DAS16CS_MISC2_AI_GAIN(2) /* +-1.25V */ +#define DAS16CS_MISC2_AI_GAIN_MASK DAS16CS_MISC2_AI_GAIN(0xf) +#define DAS16CS_MISC2_UDIR BIT(7) /* 1=dio7:4 output; 0=input */ +#define DAS16CS_MISC2_LDIR BIT(6) /* 1=dio3:0 output; 0=input */ +#define DAS16CS_MISC2_TRGPOL BIT(5) /* 1=active lo; 0=hi */ +#define DAS16CS_MISC2_TRGSEL BIT(4) /* 1=edge; 0=level */ +#define DAS16CS_MISC2_FFNE BIT(3) /* ro - 1=FIFO not empty */ +#define DAS16CS_MISC2_TRGCLR BIT(3) /* wo - 1=clr (monstable) */ +#define DAS16CS_MISC2_CLK2 BIT(2) /* 1=10 MHz; 0=1 MHz */ +#define DAS16CS_MISC2_CTR1 BIT(1) /* 1=int. 100 kHz; 0=ext. clk */ +#define DAS16CS_MISC2_TRG0 BIT(0) /* 1=enable; 0=disable */ #define DAS16CS_TIMER_BASE 0x08 #define DAS16CS_DIO_REG 0x10 @@ -99,7 +140,7 @@ static int das16cs_ai_eoc(struct comedi_device *dev, unsigned int status; status = inw(dev->iobase + DAS16CS_MISC1_REG); - if (status & 0x0080) + if (status & DAS16CS_MISC1_EOC) return 0; return -EBUSY; } @@ -118,23 +159,28 @@ static int das16cs_ai_rinsn(struct comedi_device *dev, outw(DAS16CS_AI_MUX_SINGLE_CHAN(chan), dev->iobase + DAS16CS_AI_MUX_REG); - devpriv->status1 &= ~0xf320; - devpriv->status1 |= (aref == AREF_DIFF) ? 0 : 0x0020; + /* disable interrupts, software convert */ + devpriv->status1 &= ~(DAS16CS_MISC1_INTE | DAS16CS_MISC1_INT_SRC_MASK | + DAS16CS_MISC1_AI_CONV_MASK); + if (aref == AREF_DIFF) + devpriv->status1 &= ~DAS16CS_MISC1_SEDIFF; + else + devpriv->status1 |= DAS16CS_MISC1_SEDIFF; outw(devpriv->status1, dev->iobase + DAS16CS_MISC1_REG); - devpriv->status2 &= ~0xff00; + devpriv->status2 &= ~(DAS16CS_MISC2_BME | DAS16CS_MISC2_AI_GAIN_MASK); switch (range) { case 0: - devpriv->status2 |= 0x800; + devpriv->status2 |= DAS16CS_MISC2_AI_GAIN_1; break; case 1: - devpriv->status2 |= 0x000; + devpriv->status2 |= DAS16CS_MISC2_AI_GAIN_2; break; case 2: - devpriv->status2 |= 0x100; + devpriv->status2 |= DAS16CS_MISC2_AI_GAIN_4; break; case 3: - devpriv->status2 |= 0x200; + devpriv->status2 |= DAS16CS_MISC2_AI_GAIN_8; break; } outw(devpriv->status2, dev->iobase + DAS16CS_MISC2_REG); @@ -170,23 +216,24 @@ static int das16cs_ao_insn_write(struct comedi_device *dev, outw(devpriv->status1, dev->iobase + DAS16CS_MISC1_REG); udelay(1); - status1 = devpriv->status1 & ~0xf; + /* raise the DACxCS line for the non-selected channel */ + status1 = devpriv->status1 & ~DAS16CS_MISC1_DAC_MASK; if (chan) - status1 |= 0x0001; + status1 |= DAS16CS_MISC1_DAC0CS; else - status1 |= 0x0008; + status1 |= DAS16CS_MISC1_DAC1CS; outw(status1, dev->iobase + DAS16CS_MISC1_REG); udelay(1); for (bit = 15; bit >= 0; bit--) { - int b = (val >> bit) & 0x1; - - b <<= 1; - outw(status1 | b | 0x0000, - dev->iobase + DAS16CS_MISC1_REG); + if ((val >> bit) & 0x1) + status1 |= DAS16CS_MISC1_DACSD; + else + status1 &= ~DAS16CS_MISC1_DACSD; + outw(status1, dev->iobase + DAS16CS_MISC1_REG); udelay(1); - outw(status1 | b | 0x0004, + outw(status1 | DAS16CS_MISC1_DACCLK, dev->iobase + DAS16CS_MISC1_REG); udelay(1); } @@ -194,7 +241,8 @@ static int das16cs_ao_insn_write(struct comedi_device *dev, * Make both DAC0CS and DAC1CS high to load * the new data and update analog the output */ - outw(status1 | 0x9, dev->iobase + DAS16CS_MISC1_REG); + outw(status1 | DAS16CS_MISC1_DAC0CS | DAS16CS_MISC1_DAC1CS, + dev->iobase + DAS16CS_MISC1_REG); } s->readback[chan] = val; @@ -233,10 +281,14 @@ static int das16cs_dio_insn_config(struct comedi_device *dev, if (ret) return ret; - devpriv->status2 &= ~0x00c0; - devpriv->status2 |= (s->io_bits & 0xf0) ? 0x0080 : 0; - devpriv->status2 |= (s->io_bits & 0x0f) ? 0x0040 : 0; - + if (s->io_bits & 0xf0) + devpriv->status2 |= DAS16CS_MISC2_UDIR; + else + devpriv->status2 &= ~DAS16CS_MISC2_UDIR; + if (s->io_bits & 0x0f) + devpriv->status2 |= DAS16CS_MISC2_LDIR; + else + devpriv->status2 &= ~DAS16CS_MISC2_LDIR; outw(devpriv->status2, dev->iobase + DAS16CS_MISC2_REG); return insn->n; From 1dbe3884bbd041a4a9657df0de9d558e8335a3b6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:06 -0700 Subject: [PATCH 1724/2431] staging: comedi: cb_das16_cs: refactor 'n_ao_chans' boardinfo Only one of the boards supported by this driver has analog outputs. For aesthetics, change the 'n_ao_chans' member of the boardinfo into a bit-field flag 'has_ao'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 7913a87a71e3..6f345089a5ee 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -99,22 +99,20 @@ struct das16cs_board { const char *name; int device_id; - int n_ao_chans; + unsigned int has_ao:1; }; static const struct das16cs_board das16cs_boards[] = { { .name = "PC-CARD DAS16/16-AO", .device_id = 0x0039, - .n_ao_chans = 2, + .has_ao = 1, }, { .name = "PCM-DAS16s/16", .device_id = 0x4009, - .n_ao_chans = 0, }, { .name = "PC-CARD DAS16/16", .device_id = 0x0000, /* unknown */ - .n_ao_chans = 0, }, }; @@ -357,10 +355,10 @@ static int das16cs_auto_attach(struct comedi_device *dev, s = &dev->subdevices[1]; /* analog output subdevice */ - if (board->n_ao_chans) { + if (board->has_ao) { s->type = COMEDI_SUBD_AO; s->subdev_flags = SDF_WRITABLE; - s->n_chan = board->n_ao_chans; + s->n_chan = 2; s->maxdata = 0xffff; s->range_table = &range_bipolar10; s->insn_write = &das16cs_ao_insn_write; From 090b82a3a7bfc192d01ff8910485757db65b858f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:07 -0700 Subject: [PATCH 1725/2431] staging: comedi: cb_das16_cs: tidy up analog input subdevice init This driver currently code not support async commands. Remove the SDF_CMD_READ subdev_flag and len_chanlist initialization from the subdevice init. For aesthetics, rename the (*insn_read) function. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 6f345089a5ee..b3128efb2a0a 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -143,9 +143,10 @@ static int das16cs_ai_eoc(struct comedi_device *dev, return -EBUSY; } -static int das16cs_ai_rinsn(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int das16cs_ai_insn_read(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct das16cs_private *devpriv = dev->private; int chan = CR_CHAN(insn->chanspec); @@ -343,15 +344,14 @@ static int das16cs_auto_attach(struct comedi_device *dev, if (ret) return ret; + /* Analog Input subdevice */ s = &dev->subdevices[0]; - /* analog input subdevice */ s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF | SDF_CMD_READ; + s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; s->n_chan = 16; s->maxdata = 0xffff; s->range_table = &das16cs_ai_range; - s->len_chanlist = 16; - s->insn_read = das16cs_ai_rinsn; + s->insn_read = das16cs_ai_insn_read; s = &dev->subdevices[1]; /* analog output subdevice */ From c34f202ba32c1ef10b36b61c1ca236120b8cc4b3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:08 -0700 Subject: [PATCH 1726/2431] staging: comedi: cb_das16_cs: hookup 8254 counter subdevice The hardware has an 8254 counter/timer to provide a pacer clock using counters 1 and 2. Counter 0 is available to the user. Hook up the subdevice support to allow the user to use counter 0. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 49 +++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index b3128efb2a0a..0769878f082f 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -293,6 +293,43 @@ static int das16cs_dio_insn_config(struct comedi_device *dev, return insn->n; } +static int das16cs_counter_insn_config(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) +{ + struct das16cs_private *devpriv = dev->private; + + switch (data[0]) { + case INSN_CONFIG_SET_CLOCK_SRC: + switch (data[1]) { + case 0: /* internal 100 kHz */ + devpriv->status2 |= DAS16CS_MISC2_CTR1; + break; + case 1: /* external */ + devpriv->status2 &= ~DAS16CS_MISC2_CTR1; + break; + default: + return -EINVAL; + } + outw(devpriv->status2, dev->iobase + DAS16CS_MISC2_REG); + break; + case INSN_CONFIG_GET_CLOCK_SRC: + if (devpriv->status2 & DAS16CS_MISC2_CTR1) { + data[1] = 0; + data[2] = I8254_OSC_BASE_100KHZ; + } else { + data[1] = 1; + data[2] = 0; /* unknown */ + } + break; + default: + return -EINVAL; + } + + return insn->n; +} + static const void *das16cs_find_boardinfo(struct comedi_device *dev, struct pcmcia_device *link) { @@ -340,7 +377,7 @@ static int das16cs_auto_attach(struct comedi_device *dev, if (!dev->pacer) return -ENOMEM; - ret = comedi_alloc_subdevices(dev, 3); + ret = comedi_alloc_subdevices(dev, 4); if (ret) return ret; @@ -380,6 +417,16 @@ static int das16cs_auto_attach(struct comedi_device *dev, s->insn_bits = das16cs_dio_insn_bits; s->insn_config = das16cs_dio_insn_config; + /* Counter subdevice (8254) */ + s = &dev->subdevices[3]; + comedi_8254_subdevice_init(s, dev->pacer); + + dev->pacer->insn_config = das16cs_counter_insn_config; + + /* counters 1 and 2 are used internally for the pacer */ + comedi_8254_set_busy(dev->pacer, 1, true); + comedi_8254_set_busy(dev->pacer, 2, true); + return 0; } From b93c2862b95d4c4021aeaf6c18b89e11e245ebab Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:09 -0700 Subject: [PATCH 1727/2431] staging: comedi: cb_das16_cs: the DAC16/16-AO only has 4 digital I/O The PC-CARD DAS16/16-AO board only has 4 digital I/O channels. The other boards supported by this driver have 8. Add the boardinfo to correctly initialize the subdevice. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 0769878f082f..45db386331aa 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -100,6 +100,7 @@ struct das16cs_board { const char *name; int device_id; unsigned int has_ao:1; + unsigned int has_4dio:1; }; static const struct das16cs_board das16cs_boards[] = { @@ -107,6 +108,7 @@ static const struct das16cs_board das16cs_boards[] = { .name = "PC-CARD DAS16/16-AO", .device_id = 0x0039, .has_ao = 1, + .has_4dio = 1, }, { .name = "PCM-DAS16s/16", .device_id = 0x4009, @@ -407,11 +409,11 @@ static int das16cs_auto_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_UNUSED; } + /* Digital I/O subdevice */ s = &dev->subdevices[2]; - /* digital i/o subdevice */ s->type = COMEDI_SUBD_DIO; s->subdev_flags = SDF_READABLE | SDF_WRITABLE; - s->n_chan = 8; + s->n_chan = board->has_4dio ? 4 : 8; s->maxdata = 1; s->range_table = &range_digital; s->insn_bits = das16cs_dio_insn_bits; From e9d8e8d4c4e869b321f1ddf0349144773c059de8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:10 -0700 Subject: [PATCH 1728/2431] staging: comedi: cb_das16_cs: mode analog output comment For aesthetics, move this comment to follow the format of the other subdevices. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 45db386331aa..24b61bf3ae1f 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -392,8 +392,8 @@ static int das16cs_auto_attach(struct comedi_device *dev, s->range_table = &das16cs_ai_range; s->insn_read = das16cs_ai_insn_read; + /* Analog Output subdevice */ s = &dev->subdevices[1]; - /* analog output subdevice */ if (board->has_ao) { s->type = COMEDI_SUBD_AO; s->subdev_flags = SDF_WRITABLE; From 944fd0c92ab7642dd027c1dac0cfb7199904a56d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:11 -0700 Subject: [PATCH 1729/2431] staging: comedi: cb_das16_cs: rename private data member 'status[12]' For aesthetics, rename these private data members to match the registers they are associated with. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_das16_cs.c | 64 ++++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 24b61bf3ae1f..78d098f9e1f2 100644 --- a/drivers/staging/comedi/drivers/cb_das16_cs.c +++ b/drivers/staging/comedi/drivers/cb_das16_cs.c @@ -119,8 +119,8 @@ static const struct das16cs_board das16cs_boards[] = { }; struct das16cs_private { - unsigned short status1; - unsigned short status2; + unsigned short misc1; + unsigned short misc2; }; static const struct comedi_lrange das16cs_ai_range = { @@ -161,30 +161,30 @@ static int das16cs_ai_insn_read(struct comedi_device *dev, dev->iobase + DAS16CS_AI_MUX_REG); /* disable interrupts, software convert */ - devpriv->status1 &= ~(DAS16CS_MISC1_INTE | DAS16CS_MISC1_INT_SRC_MASK | + devpriv->misc1 &= ~(DAS16CS_MISC1_INTE | DAS16CS_MISC1_INT_SRC_MASK | DAS16CS_MISC1_AI_CONV_MASK); if (aref == AREF_DIFF) - devpriv->status1 &= ~DAS16CS_MISC1_SEDIFF; + devpriv->misc1 &= ~DAS16CS_MISC1_SEDIFF; else - devpriv->status1 |= DAS16CS_MISC1_SEDIFF; - outw(devpriv->status1, dev->iobase + DAS16CS_MISC1_REG); + devpriv->misc1 |= DAS16CS_MISC1_SEDIFF; + outw(devpriv->misc1, dev->iobase + DAS16CS_MISC1_REG); - devpriv->status2 &= ~(DAS16CS_MISC2_BME | DAS16CS_MISC2_AI_GAIN_MASK); + devpriv->misc2 &= ~(DAS16CS_MISC2_BME | DAS16CS_MISC2_AI_GAIN_MASK); switch (range) { case 0: - devpriv->status2 |= DAS16CS_MISC2_AI_GAIN_1; + devpriv->misc2 |= DAS16CS_MISC2_AI_GAIN_1; break; case 1: - devpriv->status2 |= DAS16CS_MISC2_AI_GAIN_2; + devpriv->misc2 |= DAS16CS_MISC2_AI_GAIN_2; break; case 2: - devpriv->status2 |= DAS16CS_MISC2_AI_GAIN_4; + devpriv->misc2 |= DAS16CS_MISC2_AI_GAIN_4; break; case 3: - devpriv->status2 |= DAS16CS_MISC2_AI_GAIN_8; + devpriv->misc2 |= DAS16CS_MISC2_AI_GAIN_8; break; } - outw(devpriv->status2, dev->iobase + DAS16CS_MISC2_REG); + outw(devpriv->misc2, dev->iobase + DAS16CS_MISC2_REG); for (i = 0; i < insn->n; i++) { outw(0, dev->iobase + DAS16CS_AI_DATA_REG); @@ -207,34 +207,34 @@ static int das16cs_ao_insn_write(struct comedi_device *dev, struct das16cs_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int val = s->readback[chan]; - unsigned short status1; + unsigned short misc1; int bit; int i; for (i = 0; i < insn->n; i++) { val = data[i]; - outw(devpriv->status1, dev->iobase + DAS16CS_MISC1_REG); + outw(devpriv->misc1, dev->iobase + DAS16CS_MISC1_REG); udelay(1); /* raise the DACxCS line for the non-selected channel */ - status1 = devpriv->status1 & ~DAS16CS_MISC1_DAC_MASK; + misc1 = devpriv->misc1 & ~DAS16CS_MISC1_DAC_MASK; if (chan) - status1 |= DAS16CS_MISC1_DAC0CS; + misc1 |= DAS16CS_MISC1_DAC0CS; else - status1 |= DAS16CS_MISC1_DAC1CS; + misc1 |= DAS16CS_MISC1_DAC1CS; - outw(status1, dev->iobase + DAS16CS_MISC1_REG); + outw(misc1, dev->iobase + DAS16CS_MISC1_REG); udelay(1); for (bit = 15; bit >= 0; bit--) { if ((val >> bit) & 0x1) - status1 |= DAS16CS_MISC1_DACSD; + misc1 |= DAS16CS_MISC1_DACSD; else - status1 &= ~DAS16CS_MISC1_DACSD; - outw(status1, dev->iobase + DAS16CS_MISC1_REG); + misc1 &= ~DAS16CS_MISC1_DACSD; + outw(misc1, dev->iobase + DAS16CS_MISC1_REG); udelay(1); - outw(status1 | DAS16CS_MISC1_DACCLK, + outw(misc1 | DAS16CS_MISC1_DACCLK, dev->iobase + DAS16CS_MISC1_REG); udelay(1); } @@ -242,7 +242,7 @@ static int das16cs_ao_insn_write(struct comedi_device *dev, * Make both DAC0CS and DAC1CS high to load * the new data and update analog the output */ - outw(status1 | DAS16CS_MISC1_DAC0CS | DAS16CS_MISC1_DAC1CS, + outw(misc1 | DAS16CS_MISC1_DAC0CS | DAS16CS_MISC1_DAC1CS, dev->iobase + DAS16CS_MISC1_REG); } s->readback[chan] = val; @@ -283,14 +283,14 @@ static int das16cs_dio_insn_config(struct comedi_device *dev, return ret; if (s->io_bits & 0xf0) - devpriv->status2 |= DAS16CS_MISC2_UDIR; + devpriv->misc2 |= DAS16CS_MISC2_UDIR; else - devpriv->status2 &= ~DAS16CS_MISC2_UDIR; + devpriv->misc2 &= ~DAS16CS_MISC2_UDIR; if (s->io_bits & 0x0f) - devpriv->status2 |= DAS16CS_MISC2_LDIR; + devpriv->misc2 |= DAS16CS_MISC2_LDIR; else - devpriv->status2 &= ~DAS16CS_MISC2_LDIR; - outw(devpriv->status2, dev->iobase + DAS16CS_MISC2_REG); + devpriv->misc2 &= ~DAS16CS_MISC2_LDIR; + outw(devpriv->misc2, dev->iobase + DAS16CS_MISC2_REG); return insn->n; } @@ -306,18 +306,18 @@ static int das16cs_counter_insn_config(struct comedi_device *dev, case INSN_CONFIG_SET_CLOCK_SRC: switch (data[1]) { case 0: /* internal 100 kHz */ - devpriv->status2 |= DAS16CS_MISC2_CTR1; + devpriv->misc2 |= DAS16CS_MISC2_CTR1; break; case 1: /* external */ - devpriv->status2 &= ~DAS16CS_MISC2_CTR1; + devpriv->misc2 &= ~DAS16CS_MISC2_CTR1; break; default: return -EINVAL; } - outw(devpriv->status2, dev->iobase + DAS16CS_MISC2_REG); + outw(devpriv->misc2, dev->iobase + DAS16CS_MISC2_REG); break; case INSN_CONFIG_GET_CLOCK_SRC: - if (devpriv->status2 & DAS16CS_MISC2_CTR1) { + if (devpriv->misc2 & DAS16CS_MISC2_CTR1) { data[1] = 0; data[2] = I8254_OSC_BASE_100KHZ; } else { From 322146d5d485cddb93761bd2593fbc932399b0a1 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:47 +0100 Subject: [PATCH 1730/2431] staging: comedi: don't poll_wait on same subdevice twice Comedi subdevices that support asynchronous acquisition commands have a wait queue head used for blocking reads or writes and for the poll file operation. The comedi device may have several subdevices that support "read" and/or "write" commands, but each open file object has at most one "read" subdevice and one "write" subdevice. It's possible (though rare) for those to be the same subdevice if the subdevice supports commands in either direction. In that case, the "poll" file operation doesn't really need to do a `poll_wait()` on the same subdevice twice. Although harmless, it wastes a poll table entry. Check for that, and avoid it. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index f341421f1644..bd124815c06a 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2262,7 +2262,7 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait) unsigned int mask = 0; struct comedi_file *cfp = file->private_data; struct comedi_device *dev = cfp->dev; - struct comedi_subdevice *s; + struct comedi_subdevice *s, *s_read; mutex_lock(&dev->mutex); @@ -2272,6 +2272,7 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait) } s = comedi_file_read_subdevice(file); + s_read = s; if (s && s->async) { poll_wait(file, &s->async->wait_head, wait); if (!s->busy || !comedi_is_subdevice_running(s) || @@ -2284,7 +2285,8 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait) if (s && s->async) { unsigned int bps = comedi_bytes_per_sample(s); - poll_wait(file, &s->async->wait_head, wait); + if (s != s_read) + poll_wait(file, &s->async->wait_head, wait); comedi_buf_write_alloc(s, s->async->prealloc_bufsz); if (!s->busy || !comedi_is_subdevice_running(s) || !(s->async->cmd.flags & CMDF_WRITE) || From 274ec5ee5478f1757ba083e366d9490dfaa6bd2f Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:48 +0100 Subject: [PATCH 1731/2431] staging: comedi: rename comedi_buf_write_n_available Rename the local function `comedi_buf_write_n_available()` to `comedi_buf_write_n_unalloc()`. It is the amount of unallocated space available in the buffer that is available to be allocated for writing and does not include the space that has already been allocated for writing. This is unlike the exported function `comedi_buf_read_n_available()` which includes the space available to be allocated for reading plus the space already allocated for reading. The new name breaks the unintentional naming symmetry (and also clears the way for the old name to be reused for a new function). Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_buf.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index d45a4b65e8d3..4837559ac6b8 100644 --- a/drivers/staging/comedi/comedi_buf.c +++ b/drivers/staging/comedi/comedi_buf.c @@ -245,7 +245,7 @@ void comedi_buf_reset(struct comedi_subdevice *s) async->events = 0; } -static unsigned int comedi_buf_write_n_available(struct comedi_subdevice *s) +static unsigned int comedi_buf_write_n_unalloc(struct comedi_subdevice *s) { struct comedi_async *async = s->async; unsigned int free_end = async->buf_read_count + async->prealloc_bufsz; @@ -268,10 +268,10 @@ unsigned int comedi_buf_write_alloc(struct comedi_subdevice *s, unsigned int nbytes) { struct comedi_async *async = s->async; - unsigned int available = comedi_buf_write_n_available(s); + unsigned int unalloc = comedi_buf_write_n_unalloc(s); - if (nbytes > available) - nbytes = available; + if (nbytes > unalloc) + nbytes = unalloc; async->buf_write_alloc_count += nbytes; @@ -557,8 +557,7 @@ unsigned int comedi_buf_write_samples(struct comedi_subdevice *s, * If not, clamp the nsamples to the number that will fit, flag the * buffer overrun and add the samples that fit. */ - max_samples = comedi_bytes_to_samples(s, - comedi_buf_write_n_available(s)); + max_samples = comedi_bytes_to_samples(s, comedi_buf_write_n_unalloc(s)); if (nsamples > max_samples) { dev_warn(s->device->class_dev, "buffer overrun\n"); s->async->events |= COMEDI_CB_OVERFLOW; From 432fbde739583140c7ee937910786a9d740804c9 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:49 +0100 Subject: [PATCH 1732/2431] staging: comedi: add new comedi_buf_write_n_available() Add a new function `comedi_buf_write_n_available()` to return the amount of buffer space available for writing, including space already allocated by `comedi_buf_write_alloc()` plus any unallocated space available. This is currently just for internal use by the comedi core, so is not exported. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_buf.c | 8 ++++++++ drivers/staging/comedi/comedi_internal.h | 1 + 2 files changed, 9 insertions(+) diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index 4837559ac6b8..90c28016c6c1 100644 --- a/drivers/staging/comedi/comedi_buf.c +++ b/drivers/staging/comedi/comedi_buf.c @@ -253,6 +253,14 @@ static unsigned int comedi_buf_write_n_unalloc(struct comedi_subdevice *s) return free_end - async->buf_write_alloc_count; } +unsigned int comedi_buf_write_n_available(struct comedi_subdevice *s) +{ + struct comedi_async *async = s->async; + unsigned int free_end = async->buf_read_count + async->prealloc_bufsz; + + return free_end - async->buf_write_count; +} + /** * comedi_buf_write_alloc() - Reserve buffer space for writing * @s: COMEDI subdevice. diff --git a/drivers/staging/comedi/comedi_internal.h b/drivers/staging/comedi/comedi_internal.h index cd9437f72c35..3f2c88ae6470 100644 --- a/drivers/staging/comedi/comedi_internal.h +++ b/drivers/staging/comedi/comedi_internal.h @@ -31,6 +31,7 @@ void comedi_buf_map_get(struct comedi_buf_map *bm); int comedi_buf_map_put(struct comedi_buf_map *bm); struct comedi_buf_map *comedi_buf_map_from_subdev_get( struct comedi_subdevice *s); +unsigned int comedi_buf_write_n_available(struct comedi_subdevice *s); unsigned int comedi_buf_write_n_allocated(struct comedi_subdevice *s); void comedi_device_cancel_all(struct comedi_device *dev); bool comedi_can_auto_free_spriv(struct comedi_subdevice *s); From ecf04ed34d65b735bbdfa9ae8ea378ffc0faa9f6 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:50 +0100 Subject: [PATCH 1733/2431] staging: comedi: don't allocate buffer space when polling for write When handling the "poll" file operation and checking for `POLLOUT`, don't allocate space from the buffer for writing, just check that space is available for writing. That check is done after checking that an asynchronous "write" command is running on the subdevice. Allocating the buffer space before checking a "write" command is running can cause problems if the subdevice supports commands in either direction and currently has an active "read" command. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index bd124815c06a..42f6971c8061 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2287,10 +2287,9 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait) if (s != s_read) poll_wait(file, &s->async->wait_head, wait); - comedi_buf_write_alloc(s, s->async->prealloc_bufsz); if (!s->busy || !comedi_is_subdevice_running(s) || !(s->async->cmd.flags & CMDF_WRITE) || - comedi_buf_write_n_allocated(s) >= bps) + comedi_buf_write_n_available(s) >= bps) mask |= POLLOUT | POLLWRNORM; } From 3834234f99a07d1a84918cb15e9431420c5405f4 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:51 +0100 Subject: [PATCH 1734/2431] staging: comedi: check command started by file being polled Currently, the "poll" file operation checks if an asynchronous "read" (or "write" command is active on the "read" (or "write" subdevice, but does not consider whether the command was started from the file object being polled. Since that is the only file object able to read (or write) data, take it into consideration. With this change, if no read (or write) command is running on the subdevice, or it is started by a different file object, the file object is marked as readable (or writeable) regardless, but the read (or write) file operation will return an error. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 42f6971c8061..1d6bef285821 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2275,7 +2275,7 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait) s_read = s; if (s && s->async) { poll_wait(file, &s->async->wait_head, wait); - if (!s->busy || !comedi_is_subdevice_running(s) || + if (s->busy != file || !comedi_is_subdevice_running(s) || (s->async->cmd.flags & CMDF_WRITE) || comedi_buf_read_n_available(s) > 0) mask |= POLLIN | POLLRDNORM; @@ -2287,7 +2287,7 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait) if (s != s_read) poll_wait(file, &s->async->wait_head, wait); - if (!s->busy || !comedi_is_subdevice_running(s) || + if (s->busy != file || !comedi_is_subdevice_running(s) || !(s->async->cmd.flags & CMDF_WRITE) || comedi_buf_write_n_available(s) >= bps) mask |= POLLOUT | POLLWRNORM; From d5eb3a742109015cd794e536fe0968197b917e05 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:52 +0100 Subject: [PATCH 1735/2431] staging: comedi: don't use mutex when polling file The main mutex in a comedi device can get held for quite a while when processing comedi instructions, so for performance reasons, the "read" and "write" file operations do not use it; they use use the `attach_lock` rwsemaphore to protect against the comedi device becoming detached at an inopportune moment. Do the same for the "poll" file operation. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 1d6bef285821..fe25287c5688 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2264,7 +2264,7 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait) struct comedi_device *dev = cfp->dev; struct comedi_subdevice *s, *s_read; - mutex_lock(&dev->mutex); + down_read(&dev->attach_lock); if (!dev->attached) { dev_dbg(dev->class_dev, "no driver attached\n"); @@ -2294,7 +2294,7 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait) } done: - mutex_unlock(&dev->mutex); + up_read(&dev->attach_lock); return mask; } From 970679b04c4b2ae8aaede98e214449eb3e6e6b06 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:20 +0100 Subject: [PATCH 1736/2431] staging: comedi: remain busy until read end-of-file If a COMEDI subdevice is busy handling an asynchronous command in the "read" direction, then after the command has terminated itself, the "read" file operation handler, `comedi_read()` should keep the subdevice busy until all available data has been read and it has returned 0 to indicate an "end-of-file" condition. Currently, it has a bug where it can mark the subdevice as non-busy even when returning a non-zero count. The bug is slightly hidden because the next "read" will return 0 because the subdevice is no longer busy. Fix it by checking the return count is 0 before deciding to mark the subdevice as non-busy. The call to `comedi_is_subdevice_idle()` is superfluous as the `become_nonbusy` variable will have been set to `true` when considering becoming non-busy. Strictly speaking, checking the return count is superfluous too, as `become_nonbusy` doesn't get set to `true` unless the count is 0, but check the return count anyway to make the intention clearer. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index fe25287c5688..bb2e0ae0e052 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2551,7 +2551,7 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, } remove_wait_queue(&async->wait_head, &wait); set_current_state(TASK_RUNNING); - if (become_nonbusy || comedi_is_subdevice_idle(s)) { + if (become_nonbusy && count == 0) { struct comedi_subdevice *new_s; /* From 09d6b9a9ddbbdbf4e45f553fa4405aeacfd12e47 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:21 +0100 Subject: [PATCH 1737/2431] staging: comedi: don't consider "unmunged" data when becoming non-busy If an asynchronous "read" command is no longer running but the subdevice is still busy, it becomes non-busy once there is no more data available in the buffer. Some or all of the data written to the buffer might not have been "munged" yet, and it cannot be read until it has been munged by the writer. However, since the command is no longer running, we cannot expect any remaining unmunged data to get munged so we should ignore it. Call `comedi_buf_read_n_available()` to check the amount of munged data available to be read, replacing the call to `comedi_buf_n_bytes_ready()` which checked the amount of written (but possibly not yet munged) data available to be read. This affects both the "read" file operation (done in `comedi_read()`) and the `COMEDI_BUFINFO` ioctl handling (done in `do_bufinfo_ioctl()`). (The latter is used when data is transferred directly through the mmapped buffer instead of via the "read" file operation.) Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index bb2e0ae0e052..c74c50a6e52d 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -1146,7 +1146,7 @@ static int do_bufinfo_ioctl(struct comedi_device *dev, comedi_buf_read_free(s, bi.bytes_read); if (comedi_is_subdevice_idle(s) && - comedi_buf_n_bytes_ready(s) == 0) { + comedi_buf_read_n_available(s) == 0) { do_become_nonbusy(dev, s); } } @@ -2571,7 +2571,8 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, new_s = comedi_file_read_subdevice(file); if (dev->attached && old_detach_count == dev->detach_count && s == new_s && new_s->async == async) { - if (become_nonbusy || comedi_buf_n_bytes_ready(s) == 0) + if (become_nonbusy || + comedi_buf_read_n_available(s) == 0) do_become_nonbusy(dev, s); } mutex_unlock(&dev->mutex); From fd060c8f4c93ee564510aa86724d27dca31b9e2a Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:22 +0100 Subject: [PATCH 1738/2431] staging: comedi: do extra checks for becoming non-busy for "read" `comedi_read()` is the handler for the "read" file operation for COMEDI devices. It mostly runs without using the main mutex of the COMEDI device, but uses the `attach_lock` rwsemaphore to protect against the COMEDI device becoming "detached". A file object can read data resulting from a COMEDI asynchonous command if it initiated the command. The COMEDI subdevice is marked as busy when the command is started. At some point, the "read" handler detects that the command has terminated and all available data has been read and so marks the subdevice as non-busy. In order to mark the subdevice as non-busy, the "read" handler needs to release the `attach_lock` rwsemaphore and `acquire the main `mutex`. There is a vulnerable point between the two, so it checks that the device is still attached after acquiring the mutex. However, it does not currently check that the conditions for becoming non-busy still hold. Add some more checks that the subdevice is still busy with a command initiated by the same file object, that command is in the correct direction (in case the subdevice supports both "read" and "write"), that command has terminated, and has no data available to be read. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index c74c50a6e52d..49c46651ad23 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2567,14 +2567,17 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, * sufficient (unless there have been 2**32 detaches in the * meantime!), but check the subdevice pointer as well just in * case. + * + * Also check the subdevice is still in a suitable state to + * become non-busy in case it changed behind our back. */ new_s = comedi_file_read_subdevice(file); if (dev->attached && old_detach_count == dev->detach_count && - s == new_s && new_s->async == async) { - if (become_nonbusy || - comedi_buf_read_n_available(s) == 0) - do_become_nonbusy(dev, s); - } + s == new_s && new_s->async == async && s->busy == file && + !(async->cmd.flags & CMDF_WRITE) && + !comedi_is_subdevice_running(s) && + comedi_buf_read_n_available(s) == 0) + do_become_nonbusy(dev, s); mutex_unlock(&dev->mutex); } out: From 76e8e7d4ffb3300217b62637183282a5225d7394 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:23 +0100 Subject: [PATCH 1739/2431] staging: comedi: make some variables unsigned in comedi_read() In `comedi_read()`, the `n` and `m` variables are of type `int`. Change them to `unsigned int` as they are used to measure a positive number of bytes. The `count` variable is also of type `int` and holds the returned number of bytes. Change it to type `ssize_t` to match the function's return type. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 49c46651ad23..92f571645f36 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2450,7 +2450,9 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, { struct comedi_subdevice *s; struct comedi_async *async; - int n, m, count = 0, retval = 0; + unsigned int n, m; + ssize_t count = 0; + int retval = 0; DECLARE_WAITQUEUE(wait, current); struct comedi_file *cfp = file->private_data; struct comedi_device *dev = cfp->dev; From 8ea939284d3ebde02d5b46d50406c2b7faae1214 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:24 +0100 Subject: [PATCH 1740/2431] staging: comedi: avoid bad truncation of a size_t in comedi_read() At one point in `comedi_read()`, the variable `n` gets assigned to the minimum of the parameter `nbytes` and the amount of readable buffer space `m`. The way that is done currently is unsafe in the unlikely case that `nbytes` exceeds `UINT_MAX`, so fix it. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 92f571645f36..f39448a0d301 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2493,13 +2493,10 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, while (nbytes > 0 && !retval) { set_current_state(TASK_INTERRUPTIBLE); - n = nbytes; - m = comedi_buf_read_n_available(s); if (async->buf_read_ptr + m > async->prealloc_bufsz) m = async->prealloc_bufsz - async->buf_read_ptr; - if (m < n) - n = m; + n = min_t(size_t, m, nbytes); if (n == 0) { unsigned runflags = comedi_get_subdevice_runflags(s); From 42ea907d785d522e5ae661c3774b8a801ac7f00b Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:25 +0100 Subject: [PATCH 1741/2431] staging: comedi: allow buffer wraparound in comedi_read() `comedi_read()` copies data from the acquisition data buffer, which is cyclic, to the user buffer using a single call to `copy_to_user()`. It currently avoids having to deal with wraparound of the cyclic buffer by limiting the amount it copies (and the amount returned to the user). Change it to deal with the wraparound using two calls to `copy_to_user()` if necessary. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index f39448a0d301..a979f621f932 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2491,11 +2491,11 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, add_wait_queue(&async->wait_head, &wait); while (nbytes > 0 && !retval) { + unsigned int rp, n1, n2; + set_current_state(TASK_INTERRUPTIBLE); m = comedi_buf_read_n_available(s); - if (async->buf_read_ptr + m > async->prealloc_bufsz) - m = async->prealloc_bufsz - async->buf_read_ptr; n = min_t(size_t, m, nbytes); if (n == 0) { @@ -2532,8 +2532,14 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, } continue; } - m = copy_to_user(buf, async->prealloc_buf + - async->buf_read_ptr, n); + rp = async->buf_read_ptr; + n1 = min(n, async->prealloc_bufsz - rp); + n2 = n - n1; + m = copy_to_user(buf, async->prealloc_buf + rp, n1); + if (m) + m += n2; + else if (n2) + m = copy_to_user(buf + n1, async->prealloc_buf, n2); if (m) { n -= m; retval = -EFAULT; From f84e27adfc4cb0c4aa97d830c43f8c82aca0547c Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:26 +0100 Subject: [PATCH 1742/2431] staging: comedi: remove superfluous retval = 0 in comedi_read() `comedi_read()` initializes `retval` to 0. The other `retval = 0` assignments are superfluous, so remove them. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index a979f621f932..88ba0b648805 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2504,8 +2504,6 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, if (!comedi_is_runflags_running(runflags)) { if (comedi_is_runflags_in_error(runflags)) retval = -EPIPE; - else - retval = 0; become_nonbusy = true; break; } @@ -2519,7 +2517,6 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, break; } if (!s->busy) { - retval = 0; break; } if (s->busy != file) { From a8ed75c0836ebc530f7fbf613bba75de3656b105 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:27 +0100 Subject: [PATCH 1743/2431] staging: comedi: return error on "read" if no command set up The "read" file operation handler, `comedi_read()` returns an error for pretty much any condition that prevents a "read" going ahead. One of the conditions that prevents a "read" going ahead is that no asynchronous command has been set up, but that currently results in a return value of 0 (unless COMEDI instructions are being processed or an asynchronous command has been set up by a different file object). Change it to return `-EINVAL` in this case. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 88ba0b648805..190592ad0921 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2478,8 +2478,12 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, } async = s->async; - if (!s->busy || !nbytes) + if (!nbytes) goto out; + if (!s->busy) { + retval = -EINVAL; + goto out; + } if (s->busy != file) { retval = -EACCES; goto out; @@ -2517,6 +2521,7 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, break; } if (!s->busy) { + retval = -EINVAL; break; } if (s->busy != file) { From 39582847757ef79fb9de2661dd9297f1c988478d Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:28 +0100 Subject: [PATCH 1744/2431] staging: comedi: simplify returned errors for comedi_read() In order to perform a "read" file operation, an asynchronous COMEDI command in the "read" direction needs to have been set up by the current file object on the COMEDI "read" subdevice associated with the file object. If there is a "read" subdevice, but a command has not been set up by the file object (or is has been set-up in the wrong direction), `comedi_read()` currently returns one of two error values `-EINVAL` or `-EACCES`. `-EACCES` is returned if the command was set up by a different subdevice, or somewhat randomly, if a COMEDI "instruction" is currently being processed. `-EINVAL` is returned in other cases. Simplify it by returning `-EINVAL` for all these cases. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 190592ad0921..466dc95d5611 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2480,15 +2480,7 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, async = s->async; if (!nbytes) goto out; - if (!s->busy) { - retval = -EINVAL; - goto out; - } - if (s->busy != file) { - retval = -EACCES; - goto out; - } - if (async->cmd.flags & CMDF_WRITE) { + if (s->busy != file || (async->cmd.flags & CMDF_WRITE)) { retval = -EINVAL; goto out; } @@ -2520,15 +2512,8 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, retval = -ERESTARTSYS; break; } - if (!s->busy) { - retval = -EINVAL; - break; - } - if (s->busy != file) { - retval = -EACCES; - break; - } - if (async->cmd.flags & CMDF_WRITE) { + if (s->busy != file || + (async->cmd.flags & CMDF_WRITE)) { retval = -EINVAL; break; } From 3c3bea26ad3037924fd066c14fd391a69103dd63 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:29 +0100 Subject: [PATCH 1745/2431] staging: comedi: check for more errors for zero-length read If the "read" file operation handler, `comedi_read()` is passed 0 for the amount to read, some error conditions are currently skipped and the function just returns 0. Change it to check those error conditions and return an error value if appropriate. The trickiest case is the check for when the previously set up asynchronous command has terminated with an error. In that case, `-EPIPE` is returned (as it is for a read of non-zero length) and the subdevice gets marked as non-busy. A zero-length read that returns 0 has no other effects, in particular, it does not cause the subdevice to be marked as non-busy, and the return value does not indicate an "end-of-file" condition. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_fops.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 466dc95d5611..7b4af519e17e 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2478,15 +2478,13 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, } async = s->async; - if (!nbytes) - goto out; if (s->busy != file || (async->cmd.flags & CMDF_WRITE)) { retval = -EINVAL; goto out; } add_wait_queue(&async->wait_head, &wait); - while (nbytes > 0 && !retval) { + while (count == 0 && !retval) { unsigned int rp, n1, n2; set_current_state(TASK_INTERRUPTIBLE); @@ -2500,9 +2498,12 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, if (!comedi_is_runflags_running(runflags)) { if (comedi_is_runflags_in_error(runflags)) retval = -EPIPE; - become_nonbusy = true; + if (retval || nbytes) + become_nonbusy = true; break; } + if (nbytes == 0) + break; if (file->f_flags & O_NONBLOCK) { retval = -EAGAIN; break; @@ -2539,7 +2540,6 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes, nbytes -= n; buf += n; - break; /* makes device work like a pipe */ } remove_wait_queue(&async->wait_head, &wait); set_current_state(TASK_RUNNING); From 214e38421c330a1c9a16e65e071c86986cf3952d Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 18:03:24 +0100 Subject: [PATCH 1746/2431] staging: comedi: comedidev.h: add comments to spin-lock and mutex Fix the checkpatch.pl issues: CHECK: spinlock_t definition without comment CHECK: struct mutes definition withoug comment Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 6062493a7146..7a62e97b345c 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -174,7 +174,7 @@ struct comedi_subdevice { void *lock; void *busy; unsigned runflags; - spinlock_t spin_lock; + spinlock_t spin_lock; /* generic spin-lock for COMEDI and drivers */ unsigned int io_bits; @@ -537,8 +537,8 @@ struct comedi_device { const void *board_ptr; bool attached:1; bool ioenabled:1; - spinlock_t spinlock; - struct mutex mutex; + spinlock_t spinlock; /* generic spin-lock for low-level driver */ + struct mutex mutex; /* generic mutex for COMEDI core */ struct rw_semaphore attach_lock; struct kref refcount; From eb36cc282a9d9cc6c024010e7b65e88d1b088c54 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 18:03:25 +0100 Subject: [PATCH 1747/2431] staging: comedi: comedidev.h: spaces preferred around that '*' Fix the checkpatch.pl issues: CHECK: spaces preferred around that '*' (ctx:VxV) Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedidev.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 7a62e97b345c..115807215484 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -580,12 +580,12 @@ int comedi_check_chanlist(struct comedi_subdevice *s, /* range stuff */ -#define RANGE(a, b) {(a)*1e6, (b)*1e6, 0} -#define RANGE_ext(a, b) {(a)*1e6, (b)*1e6, RF_EXTERNAL} -#define RANGE_mA(a, b) {(a)*1e6, (b)*1e6, UNIT_mA} -#define RANGE_unitless(a, b) {(a)*1e6, (b)*1e6, 0} -#define BIP_RANGE(a) {-(a)*1e6, (a)*1e6, 0} -#define UNI_RANGE(a) {0, (a)*1e6, 0} +#define RANGE(a, b) {(a) * 1e6, (b) * 1e6, 0} +#define RANGE_ext(a, b) {(a) * 1e6, (b) * 1e6, RF_EXTERNAL} +#define RANGE_mA(a, b) {(a) * 1e6, (b) * 1e6, UNIT_mA} +#define RANGE_unitless(a, b) {(a) * 1e6, (b) * 1e6, 0} +#define BIP_RANGE(a) {-(a) * 1e6, (a) * 1e6, 0} +#define UNI_RANGE(a) {0, (a) * 1e6, 0} extern const struct comedi_lrange range_bipolar10; extern const struct comedi_lrange range_bipolar5; From 56b3152e5e8b0501ff9ef100b772df8ecb3efd82 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Mon, 12 Oct 2015 21:02:36 -0700 Subject: [PATCH 1748/2431] rtl8192u: BIT() macro cleanup Use the BIT(x) macro directly instead using multiple BITX defines. Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192u/ieee80211/ieee80211.h | 10 +- .../staging/rtl8192u/ieee80211/rtl819x_Qos.h | 49 +----- drivers/staging/rtl8192u/r8192U.h | 95 ++++-------- drivers/staging/rtl8192u/r8192U_core.c | 12 +- drivers/staging/rtl8192u/r8192U_dm.c | 17 +- drivers/staging/rtl8192u/r8192U_hw.h | 145 +++++++++--------- drivers/staging/rtl8192u/r819xU_cmdpkt.h | 6 +- drivers/staging/rtl8192u/r819xU_phy.c | 4 +- 8 files changed, 139 insertions(+), 199 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211.h b/drivers/staging/rtl8192u/ieee80211/ieee80211.h index d481a26c25ae..967ef9a98fc0 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211.h +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211.h @@ -415,7 +415,7 @@ typedef struct ieee_param { /* QOS control */ #define IEEE80211_QCTL_TID 0x000F -#define FC_QOS_BIT BIT7 +#define FC_QOS_BIT BIT(7) #define IsDataFrame(pdu) ( ((pdu[0] & 0x0C)==0x08) ? true : false ) #define IsLegacyDataFrame(pdu) (IsDataFrame(pdu) && (!(pdu[0]&FC_QOS_BIT)) ) //added by wb. Is this right? @@ -1565,10 +1565,10 @@ typedef struct _RT_POWER_SAVE_CONTROL { } RT_POWER_SAVE_CONTROL, *PRT_POWER_SAVE_CONTROL; typedef u32 RT_RF_CHANGE_SOURCE; -#define RF_CHANGE_BY_SW BIT31 -#define RF_CHANGE_BY_HW BIT30 -#define RF_CHANGE_BY_PS BIT29 -#define RF_CHANGE_BY_IPS BIT28 +#define RF_CHANGE_BY_SW BIT(31) +#define RF_CHANGE_BY_HW BIT(30) +#define RF_CHANGE_BY_PS BIT(29) +#define RF_CHANGE_BY_IPS BIT(28) #define RF_CHANGE_BY_INIT 0 // Do not change the RFOff reason. Defined by Bruce, 2008-01-17. typedef enum diff --git a/drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h b/drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h index 9fbce912a74b..49c23c720f78 100644 --- a/drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h +++ b/drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h @@ -1,39 +1,6 @@ #ifndef __INC_QOS_TYPE_H #define __INC_QOS_TYPE_H -#define BIT0 0x00000001 -#define BIT1 0x00000002 -#define BIT2 0x00000004 -#define BIT3 0x00000008 -#define BIT4 0x00000010 -#define BIT5 0x00000020 -#define BIT6 0x00000040 -#define BIT7 0x00000080 -#define BIT8 0x00000100 -#define BIT9 0x00000200 -#define BIT10 0x00000400 -#define BIT11 0x00000800 -#define BIT12 0x00001000 -#define BIT13 0x00002000 -#define BIT14 0x00004000 -#define BIT15 0x00008000 -#define BIT16 0x00010000 -#define BIT17 0x00020000 -#define BIT18 0x00040000 -#define BIT19 0x00080000 -#define BIT20 0x00100000 -#define BIT21 0x00200000 -#define BIT22 0x00400000 -#define BIT23 0x00800000 -#define BIT24 0x01000000 -#define BIT25 0x02000000 -#define BIT26 0x04000000 -#define BIT27 0x08000000 -#define BIT28 0x10000000 -#define BIT29 0x20000000 -#define BIT30 0x40000000 -#define BIT31 0x80000000 - #define MAX_WMMELE_LENGTH 64 // @@ -375,17 +342,17 @@ typedef struct _ACM{ typedef u8 AC_UAPSD, *PAC_UAPSD; -#define GET_VO_UAPSD(_apsd) ((_apsd) & BIT0) -#define SET_VO_UAPSD(_apsd) ((_apsd) |= BIT0) +#define GET_VO_UAPSD(_apsd) ((_apsd) & BIT(0)) +#define SET_VO_UAPSD(_apsd) ((_apsd) |= BIT(0)) -#define GET_VI_UAPSD(_apsd) ((_apsd) & BIT1) -#define SET_VI_UAPSD(_apsd) ((_apsd) |= BIT1) +#define GET_VI_UAPSD(_apsd) ((_apsd) & BIT(1)) +#define SET_VI_UAPSD(_apsd) ((_apsd) |= BIT(1)) -#define GET_BK_UAPSD(_apsd) ((_apsd) & BIT2) -#define SET_BK_UAPSD(_apsd) ((_apsd) |= BIT2) +#define GET_BK_UAPSD(_apsd) ((_apsd) & BIT(2)) +#define SET_BK_UAPSD(_apsd) ((_apsd) |= BIT(2)) -#define GET_BE_UAPSD(_apsd) ((_apsd) & BIT3) -#define SET_BE_UAPSD(_apsd) ((_apsd) |= BIT3) +#define GET_BE_UAPSD(_apsd) ((_apsd) & BIT(3)) +#define SET_BE_UAPSD(_apsd) ((_apsd) |= BIT(3)) //typedef struct _TCLASS{ diff --git a/drivers/staging/rtl8192u/r8192U.h b/drivers/staging/rtl8192u/r8192U.h index a76748e3b506..ee1c72267811 100644 --- a/drivers/staging/rtl8192u/r8192U.h +++ b/drivers/staging/rtl8192u/r8192U.h @@ -43,39 +43,6 @@ #define MAX_KEY_LEN 61 #define KEY_BUF_SIZE 5 -#define BIT0 0x00000001 -#define BIT1 0x00000002 -#define BIT2 0x00000004 -#define BIT3 0x00000008 -#define BIT4 0x00000010 -#define BIT5 0x00000020 -#define BIT6 0x00000040 -#define BIT7 0x00000080 -#define BIT8 0x00000100 -#define BIT9 0x00000200 -#define BIT10 0x00000400 -#define BIT11 0x00000800 -#define BIT12 0x00001000 -#define BIT13 0x00002000 -#define BIT14 0x00004000 -#define BIT15 0x00008000 -#define BIT16 0x00010000 -#define BIT17 0x00020000 -#define BIT18 0x00040000 -#define BIT19 0x00080000 -#define BIT20 0x00100000 -#define BIT21 0x00200000 -#define BIT22 0x00400000 -#define BIT23 0x00800000 -#define BIT24 0x01000000 -#define BIT25 0x02000000 -#define BIT26 0x04000000 -#define BIT27 0x08000000 -#define BIT28 0x10000000 -#define BIT29 0x20000000 -#define BIT30 0x40000000 -#define BIT31 0x80000000 - #define Rx_Smooth_Factor 20 #define DMESG(x, a...) #define DMESGW(x, a...) @@ -87,44 +54,44 @@ extern u32 rt_global_debug_component; pr_debug("RTL8192U: " x "\n", ##args); \ } while (0) -#define COMP_TRACE BIT0 /* Function call tracing. */ -#define COMP_DBG BIT1 -#define COMP_INIT BIT2 /* Driver initialization/halt/reset. */ +#define COMP_TRACE BIT(0) /* Function call tracing. */ +#define COMP_DBG BIT(1) +#define COMP_INIT BIT(2) /* Driver initialization/halt/reset. */ -#define COMP_RECV BIT3 /* Receive data path. */ -#define COMP_SEND BIT4 /* Send data path. */ -#define COMP_IO BIT5 +#define COMP_RECV BIT(3) /* Receive data path. */ +#define COMP_SEND BIT(4) /* Send data path. */ +#define COMP_IO BIT(5) /* 802.11 Power Save mode or System/Device Power state. */ -#define COMP_POWER BIT6 +#define COMP_POWER BIT(6) /* 802.11 link related: join/start BSS, leave BSS. */ -#define COMP_EPROM BIT7 -#define COMP_SWBW BIT8 /* Bandwidth switch. */ -#define COMP_POWER_TRACKING BIT9 /* 8190 TX Power Tracking */ -#define COMP_TURBO BIT10 /* Turbo Mode */ -#define COMP_QOS BIT11 -#define COMP_RATE BIT12 /* Rate Adaptive mechanism */ -#define COMP_RM BIT13 /* Radio Measurement */ -#define COMP_DIG BIT14 -#define COMP_PHY BIT15 -#define COMP_CH BIT16 /* Channel setting debug */ -#define COMP_TXAGC BIT17 /* Tx power */ -#define COMP_HIPWR BIT18 /* High Power Mechanism */ -#define COMP_HALDM BIT19 /* HW Dynamic Mechanism */ -#define COMP_SEC BIT20 /* Event handling */ -#define COMP_LED BIT21 -#define COMP_RF BIT22 -#define COMP_RXDESC BIT23 /* Rx desc information for SD3 debug */ +#define COMP_EPROM BIT(7) +#define COMP_SWBW BIT(8) /* Bandwidth switch. */ +#define COMP_POWER_TRACKING BIT(9) /* 8190 TX Power Tracking */ +#define COMP_TURBO BIT(10) /* Turbo Mode */ +#define COMP_QOS BIT(11) +#define COMP_RATE BIT(12) /* Rate Adaptive mechanism */ +#define COMP_RM BIT(13) /* Radio Measurement */ +#define COMP_DIG BIT(14) +#define COMP_PHY BIT(15) +#define COMP_CH BIT(16) /* Channel setting debug */ +#define COMP_TXAGC BIT(17) /* Tx power */ +#define COMP_HIPWR BIT(18) /* High Power Mechanism */ +#define COMP_HALDM BIT(19) /* HW Dynamic Mechanism */ +#define COMP_SEC BIT(20) /* Event handling */ +#define COMP_LED BIT(21) +#define COMP_RF BIT(22) +#define COMP_RXDESC BIT(23) /* Rx desc information for SD3 debug */ /* 11n or 8190 specific code */ -#define COMP_FIRMWARE BIT24 /* Firmware downloading */ -#define COMP_HT BIT25 /* 802.11n HT related information */ -#define COMP_AMSDU BIT26 /* A-MSDU Debugging */ -#define COMP_SCAN BIT27 -#define COMP_DOWN BIT29 /* rm driver module */ -#define COMP_RESET BIT30 /* Silent reset */ -#define COMP_ERR BIT31 /* Error out, always on */ +#define COMP_FIRMWARE BIT(24) /* Firmware downloading */ +#define COMP_HT BIT(25) /* 802.11n HT related information */ +#define COMP_AMSDU BIT(26) /* A-MSDU Debugging */ +#define COMP_SCAN BIT(27) +#define COMP_DOWN BIT(29) /* rm driver module */ +#define COMP_RESET BIT(30) /* Silent reset */ +#define COMP_ERR BIT(31) /* Error out, always on */ #define RTL819x_DEBUG #ifdef RTL819x_DEBUG diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index eab0d811e85a..678ecf6d2b79 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -233,7 +233,7 @@ static void CamResetAllEntry(struct net_device *dev) * condition, Cam can not be reset because upper layer will not set * this static key again. */ - ulcommand |= BIT31 | BIT30; + ulcommand |= BIT(31) | BIT(30); write_nic_dword(dev, RWCAM, ulcommand); } @@ -242,7 +242,7 @@ static void CamResetAllEntry(struct net_device *dev) void write_cam(struct net_device *dev, u8 addr, u32 data) { write_nic_dword(dev, WCAMI, data); - write_nic_dword(dev, RWCAM, BIT31 | BIT16 | (addr & 0xff)); + write_nic_dword(dev, RWCAM, BIT(31) | BIT(16) | (addr & 0xff)); } u32 read_cam(struct net_device *dev, u8 addr) @@ -2412,7 +2412,7 @@ static void rtl8192_get_eeprom_size(struct net_device *dev) read_nic_word_E(dev, EPROM_CMD, &curCR); RT_TRACE(COMP_EPROM, "read from Reg EPROM_CMD(%x):%x\n", EPROM_CMD, curCR); - /* whether need I consider BIT5? */ + /* whether need I consider BIT(5?) */ priv->epromtype = (curCR & Cmd9346CR_9356SEL) ? EPROM_93c56 : EPROM_93c46; RT_TRACE(COMP_EPROM, @@ -5180,14 +5180,14 @@ void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, dev, EntryNo, KeyIndex, KeyType, MacAddr); if (DefaultKey) - usConfig |= BIT15 | (KeyType << 2); + usConfig |= BIT(15) | (KeyType << 2); else - usConfig |= BIT15 | (KeyType << 2) | KeyIndex; + usConfig |= BIT(15) | (KeyType << 2) | KeyIndex; for (i = 0; i < CAM_CONTENT_COUNT; i++) { TargetCommand = i + CAM_CONTENT_COUNT * EntryNo; - TargetCommand |= BIT31 | BIT16; + TargetCommand |= BIT(31) | BIT(16); if (i == 0) { /* MAC|Config */ TargetContent = (u32)(*(MacAddr + 0)) << 16 | diff --git a/drivers/staging/rtl8192u/r8192U_dm.c b/drivers/staging/rtl8192u/r8192U_dm.c index 5277f2eec033..375ec96b9469 100644 --- a/drivers/staging/rtl8192u/r8192U_dm.c +++ b/drivers/staging/rtl8192u/r8192U_dm.c @@ -325,21 +325,26 @@ static void dm_check_rate_adaptive(struct net_device *dev) (!pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI20MHz); pra->upper_rssi_threshold_ratr = - (pra->upper_rssi_threshold_ratr & (~BIT31)) | ((bshort_gi_enabled) ? BIT31:0); + (pra->upper_rssi_threshold_ratr & (~BIT(31))) | + ((bshort_gi_enabled) ? BIT(31) : 0); pra->middle_rssi_threshold_ratr = - (pra->middle_rssi_threshold_ratr & (~BIT31)) | ((bshort_gi_enabled) ? BIT31:0); + (pra->middle_rssi_threshold_ratr & (~BIT(31))) | + ((bshort_gi_enabled) ? BIT(31) : 0); if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) { pra->low_rssi_threshold_ratr = - (pra->low_rssi_threshold_ratr_40M & (~BIT31)) | ((bshort_gi_enabled) ? BIT31:0); + (pra->low_rssi_threshold_ratr_40M & (~BIT(31))) | + ((bshort_gi_enabled) ? BIT(31) : 0); } else { pra->low_rssi_threshold_ratr = - (pra->low_rssi_threshold_ratr_20M & (~BIT31)) | ((bshort_gi_enabled) ? BIT31:0); + (pra->low_rssi_threshold_ratr_20M & (~BIT(31))) | + ((bshort_gi_enabled) ? BIT(31) : 0); } /* cosa add for test */ pra->ping_rssi_ratr = - (pra->ping_rssi_ratr & (~BIT31)) | ((bshort_gi_enabled) ? BIT31:0); + (pra->ping_rssi_ratr & (~BIT(31))) | + ((bshort_gi_enabled) ? BIT(31) : 0); /* 2007/10/08 MH We support RA smooth scheme now. When it is the first time to link with AP. We will not change upper/lower threshold. If @@ -2378,7 +2383,7 @@ static void dm_check_pbc_gpio(struct net_device *dev) if (tmp1byte == 0xff) return; - if (tmp1byte&BIT6 || tmp1byte&BIT0) { + if (tmp1byte & BIT(6) || tmp1byte & BIT(0)) { /* * Here we only set bPbcPressed to TRUE * After trigger PBC, the variable will be set to FALSE diff --git a/drivers/staging/rtl8192u/r8192U_hw.h b/drivers/staging/rtl8192u/r8192U_hw.h index a93694ff0c42..e07d65d04dbc 100644 --- a/drivers/staging/rtl8192u/r8192U_hw.h +++ b/drivers/staging/rtl8192u/r8192U_hw.h @@ -55,17 +55,17 @@ typedef enum _BaseBand_Config_Type{ #define BB_ANTATTEN_CHAN14 0x0c #define BB_ANTENNA_B 0x40 -#define BB_HOST_BANG (1<<30) -#define BB_HOST_BANG_EN (1<<2) -#define BB_HOST_BANG_CLK (1<<1) -#define BB_HOST_BANG_RW (1<<3) +#define BB_HOST_BANG BIT(30) +#define BB_HOST_BANG_EN BIT(2) +#define BB_HOST_BANG_CLK BIT(1) +#define BB_HOST_BANG_RW BIT(3) #define BB_HOST_BANG_DATA 1 //#if (RTL819X_FPGA_VER & RTL819X_FPGA_VIVI_070920) #define AFR 0x010 -#define AFR_CardBEn (1<<0) -#define AFR_CLKRUN_SEL (1<<1) -#define AFR_FuncRegEn (1<<2) +#define AFR_CardBEn BIT(0) +#define AFR_CLKRUN_SEL BIT(1) +#define AFR_FuncRegEn BIT(2) #define RTL8190_EEPROM_ID 0x8129 #define EEPROM_VID 0x02 #define EEPROM_PID 0x04 @@ -126,38 +126,39 @@ enum _RTL8192Usb_HW { #define TCR_LRL_OFFSET 0 #define TCR_SRL_OFFSET 8 #define TCR_MXDMA_OFFSET 21 -#define TCR_SAT BIT24 // Enable Rate depedent ack timeout timer +#define TCR_SAT BIT(24) // Enable Rate depedent ack timeout timer RCR = 0x044, // Receive Configuration Register -#define MAC_FILTER_MASK ((1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<5) | \ - (1<<12) | (1<<18) | (1<<19) | (1<<20) | (1<<21) | (1<<22) | (1<<23)) -#define RX_FIFO_THRESHOLD_MASK ((1<<13) | (1<<14) | (1<<15)) +#define MAC_FILTER_MASK (BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(5) | \ + BIT(12) | BIT(18) | BIT(19) | BIT(20) | BIT(21) | \ + BIT(22) | BIT(23)) +#define RX_FIFO_THRESHOLD_MASK (BIT(13) | BIT(14) | BIT(15)) #define RX_FIFO_THRESHOLD_SHIFT 13 #define RX_FIFO_THRESHOLD_128 3 #define RX_FIFO_THRESHOLD_256 4 #define RX_FIFO_THRESHOLD_512 5 #define RX_FIFO_THRESHOLD_1024 6 #define RX_FIFO_THRESHOLD_NONE 7 -#define MAX_RX_DMA_MASK ((1<<8) | (1<<9) | (1<<10)) +#define MAX_RX_DMA_MASK (BIT(8) | BIT(9) | BIT(10)) #define RCR_MXDMA_OFFSET 8 #define RCR_FIFO_OFFSET 13 -#define RCR_ONLYERLPKT BIT31 // Early Receiving based on Packet Size. -#define RCR_ENCS2 BIT30 // Enable Carrier Sense Detection Method 2 -#define RCR_ENCS1 BIT29 // Enable Carrier Sense Detection Method 1 -#define RCR_ENMBID BIT27 // Enable Multiple BssId. -#define RCR_ACKTXBW (BIT24|BIT25) // TXBW Setting of ACK frames -#define RCR_CBSSID BIT23 // Accept BSSID match packet -#define RCR_APWRMGT BIT22 // Accept power management packet -#define RCR_ADD3 BIT21 // Accept address 3 match packet -#define RCR_AMF BIT20 // Accept management type frame -#define RCR_ACF BIT19 // Accept control type frame -#define RCR_ADF BIT18 // Accept data type frame -#define RCR_RXFTH BIT13 // Rx FIFO Threshold -#define RCR_AICV BIT12 // Accept ICV error packet -#define RCR_ACRC32 BIT5 // Accept CRC32 error packet -#define RCR_AB BIT3 // Accept broadcast packet -#define RCR_AM BIT2 // Accept multicast packet -#define RCR_APM BIT1 // Accept physical match packet -#define RCR_AAP BIT0 // Accept all unicast packet +#define RCR_ONLYERLPKT BIT(31) // Early Receiving based on Packet Size. +#define RCR_ENCS2 BIT(30) // Enable Carrier Sense Detection Method 2 +#define RCR_ENCS1 BIT(29) // Enable Carrier Sense Detection Method 1 +#define RCR_ENMBID BIT(27) // Enable Multiple BssId. +#define RCR_ACKTXBW (BIT(24) | BIT(25)) // TXBW Setting of ACK frames +#define RCR_CBSSID BIT(23) // Accept BSSID match packet +#define RCR_APWRMGT BIT(22) // Accept power management packet +#define RCR_ADD3 BIT(21) // Accept address 3 match packet +#define RCR_AMF BIT(20) // Accept management type frame +#define RCR_ACF BIT(19) // Accept control type frame +#define RCR_ADF BIT(18) // Accept data type frame +#define RCR_RXFTH BIT(13) // Rx FIFO Threshold +#define RCR_AICV BIT(12) // Accept ICV error packet +#define RCR_ACRC32 BIT(5) // Accept CRC32 error packet +#define RCR_AB BIT(3) // Accept broadcast packet +#define RCR_AM BIT(2) // Accept multicast packet +#define RCR_APM BIT(1) // Accept physical match packet +#define RCR_AAP BIT(0) // Accept all unicast packet SLOT_TIME = 0x049, // Slot Time Register ACK_TIMEOUT = 0x04c, // Ack Timeout Register PIFS_TIME = 0x04d, // PIFS time @@ -180,12 +181,12 @@ enum _RTL8192Usb_HW { WCAMI = 0x0A4, // Software write CAM input content RCAMO = 0x0A8, // Software read/write CAM config SECR = 0x0B0, //Security Configuration Register -#define SCR_TxUseDK BIT0 //Force Tx Use Default Key -#define SCR_RxUseDK BIT1 //Force Rx Use Default Key -#define SCR_TxEncEnable BIT2 //Enable Tx Encryption -#define SCR_RxDecEnable BIT3 //Enable Rx Decryption -#define SCR_SKByA2 BIT4 //Search kEY BY A2 -#define SCR_NoSKMC BIT5 //No Key Search for Multicast +#define SCR_TxUseDK BIT(0) //Force Tx Use Default Key +#define SCR_RxUseDK BIT(1) //Force Rx Use Default Key +#define SCR_TxEncEnable BIT(2) //Enable Tx Encryption +#define SCR_RxDecEnable BIT(3) //Enable Rx Decryption +#define SCR_SKByA2 BIT(4) //Search kEY BY A2 +#define SCR_NoSKMC BIT(5) //No Key Search for Multicast #define SCR_UseDK 0x01 #define SCR_TxSecEnable 0x02 #define SCR_RxSecEnable 0x04 @@ -226,13 +227,13 @@ enum _RTL8192Usb_HW { //// 8190 AcmHwCtrl bits (offset 0x171, 1 byte) ////---------------------------------------------------------------------------- // -#define AcmHw_HwEn BIT0 -#define AcmHw_BeqEn BIT1 -#define AcmHw_ViqEn BIT2 -#define AcmHw_VoqEn BIT3 -#define AcmHw_BeqStatus BIT4 -#define AcmHw_ViqStatus BIT5 -#define AcmHw_VoqStatus BIT6 +#define AcmHw_HwEn BIT(0) +#define AcmHw_BeqEn BIT(1) +#define AcmHw_ViqEn BIT(2) +#define AcmHw_VoqEn BIT(3) +#define AcmHw_BeqStatus BIT(4) +#define AcmHw_ViqStatus BIT(5) +#define AcmHw_VoqStatus BIT(6) AcmFwCtrl = 0x172, // ACM Firmware Control Register AES_11N_FIX = 0x173, @@ -281,18 +282,18 @@ enum _RTL8192Usb_HW { NHM_RPI_COUNTER5 = 0x269, // Noise Histogram RPI counter5, the fraction of signal strength in (NHM_THRESHOLD4, NHM_THRESHOLD5]. NHM_RPI_COUNTER6 = 0x26A, // Noise Histogram RPI counter6, the fraction of signal strength in (NHM_THRESHOLD5, NHM_THRESHOLD6]. NHM_RPI_COUNTER7 = 0x26B, // Noise Histogram RPI counter7, the fraction of signal strength in (NHM_THRESHOLD6, NHM_THRESHOLD7]. -#define BW_OPMODE_11J BIT0 -#define BW_OPMODE_5G BIT1 -#define BW_OPMODE_20MHZ BIT2 +#define BW_OPMODE_11J BIT(0) +#define BW_OPMODE_5G BIT(1) +#define BW_OPMODE_20MHZ BIT(2) BW_OPMODE = 0x300, // Bandwidth operation mode MSR = 0x303, // Media Status register -#define MSR_LINK_MASK ((1<<0)|(1<<1)) +#define MSR_LINK_MASK (BIT(0)|BIT(1)) #define MSR_LINK_MANAGED 2 #define MSR_LINK_NONE 0 #define MSR_LINK_SHIFT 0 #define MSR_LINK_ADHOC 1 #define MSR_LINK_MASTER 3 -#define MSR_LINK_ENEDCA (1<<4) +#define MSR_LINK_ENEDCA BIT(4) RETRY_LIMIT = 0x304, // Retry Limit [15:8]-short, [7:0]-long #define RETRY_LIMIT_SHORT_SHIFT 8 #define RETRY_LIMIT_LONG_SHIFT 0 @@ -304,27 +305,27 @@ enum _RTL8192Usb_HW { #define RRSR_RSC_LOWSUBCHNL 0x400000 #define RRSR_RSC_UPSUBCHANL 0x200000 #define RRSR_SHORT 0x800000 -#define RRSR_1M BIT0 -#define RRSR_2M BIT1 -#define RRSR_5_5M BIT2 -#define RRSR_11M BIT3 -#define RRSR_6M BIT4 -#define RRSR_9M BIT5 -#define RRSR_12M BIT6 -#define RRSR_18M BIT7 -#define RRSR_24M BIT8 -#define RRSR_36M BIT9 -#define RRSR_48M BIT10 -#define RRSR_54M BIT11 -#define RRSR_MCS0 BIT12 -#define RRSR_MCS1 BIT13 -#define RRSR_MCS2 BIT14 -#define RRSR_MCS3 BIT15 -#define RRSR_MCS4 BIT16 -#define RRSR_MCS5 BIT17 -#define RRSR_MCS6 BIT18 -#define RRSR_MCS7 BIT19 -#define BRSR_AckShortPmb BIT23 // CCK ACK: use Short Preamble or not. +#define RRSR_1M BIT(0) +#define RRSR_2M BIT(1) +#define RRSR_5_5M BIT(2) +#define RRSR_11M BIT(3) +#define RRSR_6M BIT(4) +#define RRSR_9M BIT(5) +#define RRSR_12M BIT(6) +#define RRSR_18M BIT(7) +#define RRSR_24M BIT(8) +#define RRSR_36M BIT(9) +#define RRSR_48M BIT(10) +#define RRSR_54M BIT(11) +#define RRSR_MCS0 BIT(12) +#define RRSR_MCS1 BIT(13) +#define RRSR_MCS2 BIT(14) +#define RRSR_MCS3 BIT(15) +#define RRSR_MCS4 BIT(16) +#define RRSR_MCS5 BIT(17) +#define RRSR_MCS6 BIT(18) +#define RRSR_MCS7 BIT(19) +#define BRSR_AckShortPmb BIT(23) // CCK ACK: use Short Preamble or not. RATR0 = 0x320, // Rate Adaptive Table register1 UFWP = 0x318, DRIVER_RSSI = 0x32c, // Driver tell Firmware current RSSI @@ -380,10 +381,10 @@ enum _RTL8192Usb_HW { MacBlkCtrl = 0x403, // Mac block on/off control register EPROM_CMD = 0xfe58, -#define Cmd9346CR_9356SEL (1<<4) -#define EPROM_CMD_RESERVED_MASK (1<<5) +#define Cmd9346CR_9356SEL BIT(4) +#define EPROM_CMD_RESERVED_MASK BIT(5) #define EPROM_CMD_OPERATING_MODE_SHIFT 6 -#define EPROM_CMD_OPERATING_MODE_MASK ((1<<7)|(1<<6)) +#define EPROM_CMD_OPERATING_MODE_MASK (BIT(7) | BIT(6)) #define EPROM_CMD_CONFIG 0x3 #define EPROM_CMD_NORMAL 0 #define EPROM_CMD_LOAD 1 diff --git a/drivers/staging/rtl8192u/r819xU_cmdpkt.h b/drivers/staging/rtl8192u/r819xU_cmdpkt.h index cc8029a15df4..f490e253ee50 100644 --- a/drivers/staging/rtl8192u/r819xU_cmdpkt.h +++ b/drivers/staging/rtl8192u/r819xU_cmdpkt.h @@ -9,9 +9,9 @@ #define CMPK_TX_RAHIS_SIZE sizeof(cmpk_tx_rahis_t) /* 2008/05/08 amy For USB constant. */ -#define ISR_TxBcnOk BIT27 /* Transmit Beacon OK */ -#define ISR_TxBcnErr BIT26 /* Transmit Beacon Error */ -#define ISR_BcnTimerIntr BIT13 /* Beacon Timer Interrupt */ +#define ISR_TxBcnOk BIT(27) /* Transmit Beacon OK */ +#define ISR_TxBcnErr BIT(26) /* Transmit Beacon Error */ +#define ISR_BcnTimerIntr BIT(13) /* Beacon Timer Interrupt */ /* Define element ID of command packet. */ diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c index e5dbaca9e518..70656441c145 100644 --- a/drivers/staging/rtl8192u/r819xU_phy.c +++ b/drivers/staging/rtl8192u/r819xU_phy.c @@ -1110,7 +1110,7 @@ bool rtl8192_SetRFPowerState(struct net_device *dev, case eRfOn: /* RF-A, RF-B */ /* enable RF-Chip A/B - 0x860[4] */ - rtl8192_setBBreg(dev, rFPGA0_XA_RFInterfaceOE, BIT4, + rtl8192_setBBreg(dev, rFPGA0_XA_RFInterfaceOE, BIT(4), 0x1); /* analog to digital on - 0x88c[9:8] */ rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0x300, @@ -1135,7 +1135,7 @@ bool rtl8192_SetRFPowerState(struct net_device *dev, case eRfOff: /* RF-A, RF-B */ /* disable RF-Chip A/B - 0x860[4] */ - rtl8192_setBBreg(dev, rFPGA0_XA_RFInterfaceOE, BIT4, + rtl8192_setBBreg(dev, rFPGA0_XA_RFInterfaceOE, BIT(4), 0x0); /* analog to digital off, for power save */ rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, From d4c402ff3505be1cba62128b74998492566c35e6 Mon Sep 17 00:00:00 2001 From: Dennis Menschel Date: Wed, 7 Oct 2015 22:15:45 +0200 Subject: [PATCH 1749/2431] staging: fbtft: add support for ST7789V display controller This patch adds support for the Sitronix ST7789V display controller. The controller is intended for small color displays with a resolution of up to 320x240 pixels. Signed-off-by: Dennis Menschel Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/Kconfig | 10 + drivers/staging/fbtft/Makefile | 1 + drivers/staging/fbtft/fb_st7789v.c | 290 +++++++++++++++++++++++++++++ 3 files changed, 301 insertions(+) create mode 100644 drivers/staging/fbtft/fb_st7789v.c diff --git a/drivers/staging/fbtft/Kconfig b/drivers/staging/fbtft/Kconfig index d473010fa474..883ff5b8fdab 100644 --- a/drivers/staging/fbtft/Kconfig +++ b/drivers/staging/fbtft/Kconfig @@ -141,6 +141,16 @@ config FB_TFT_ST7735R help Generic Framebuffer support for ST7735R +config FB_TFT_ST7789V + tristate "FB driver for the ST7789V LCD Controller" + depends on FB_TFT + help + This enables generic framebuffer support for the Sitronix ST7789V + display controller. The controller is intended for small color + displays with a resolution of up to 320x240 pixels. + + Say Y if you have such a display that utilizes this controller. + config FB_TFT_TINYLCD tristate "FB driver for tinylcd.com display" depends on FB_TFT diff --git a/drivers/staging/fbtft/Makefile b/drivers/staging/fbtft/Makefile index b26efdc87775..4f9071d96d01 100644 --- a/drivers/staging/fbtft/Makefile +++ b/drivers/staging/fbtft/Makefile @@ -25,6 +25,7 @@ obj-$(CONFIG_FB_TFT_SSD1306) += fb_ssd1306.o obj-$(CONFIG_FB_TFT_SSD1331) += fb_ssd1331.o obj-$(CONFIG_FB_TFT_SSD1351) += fb_ssd1351.o obj-$(CONFIG_FB_TFT_ST7735R) += fb_st7735r.o +obj-$(CONFIG_FB_TFT_ST7789V) += fb_st7789v.o obj-$(CONFIG_FB_TFT_TINYLCD) += fb_tinylcd.o obj-$(CONFIG_FB_TFT_TLS8204) += fb_tls8204.o obj-$(CONFIG_FB_TFT_UC1611) += fb_uc1611.o diff --git a/drivers/staging/fbtft/fb_st7789v.c b/drivers/staging/fbtft/fb_st7789v.c new file mode 100644 index 000000000000..dc7d304fccc6 --- /dev/null +++ b/drivers/staging/fbtft/fb_st7789v.c @@ -0,0 +1,290 @@ +/* + * FB driver for the ST7789V LCD Controller + * + * Copyright (C) 2015 Dennis Menschel + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include + +#include "fbtft.h" + +#define DRVNAME "fb_st7789v" + +#define DEFAULT_GAMMA \ + "70 2C 2E 15 10 09 48 33 53 0B 19 18 20 25\n" \ + "70 2C 2E 15 10 09 48 33 53 0B 19 18 20 25" + +/** + * enum st7789v_command - ST7789V display controller commands + * + * @SLPOUT: sleep out + * @DISPOFF: display off + * @DISPON: display on + * @CASET: column address set + * @RASET: row address set + * @RAMRW: memory write + * @MADCTL: memory data access control + * @COLMOD: interface pixel format + * @PORCTRL: porch setting + * @GCTRL: gate control + * @VCOMS: VCOM setting + * @VDVVRHEN: VDV and VRH command enable + * @VRHS: VRH set + * @VDVS: VDV set + * @VCMOFSET: VCOM offset set + * @PWCTRL1: power control 1 + * @PVGAMCTRL: positive voltage gamma control + * @NVGAMCTRL: negative voltage gamma control + * + * The command names are the same as those found in the datasheet to ease + * looking up their semantics and usage. + * + * Note that the ST7789V display controller offers quite a few more commands + * which have been omitted from this list as they are not used at the moment. + */ +enum st7789v_command { + SLPOUT = 0x11, + DISPOFF = 0x28, + DISPON = 0x29, + CASET = 0x2A, + RASET = 0x2B, + RAMRW = 0x2C, + MADCTL = 0x36, + COLMOD = 0x3A, + PORCTRL = 0xB2, + GCTRL = 0xB7, + VCOMS = 0xBB, + VDVVRHEN = 0xC2, + VRHS = 0xC3, + VDVS = 0xC4, + VCMOFSET = 0xC5, + PWCTRL1 = 0xD0, + PVGAMCTRL = 0xE0, + NVGAMCTRL = 0xE1, +}; + +#define MADCTL_BGR BIT(3) /* bitmask for RGB/BGR order */ +#define MADCTL_MV BIT(5) /* bitmask for page/column order */ +#define MADCTL_MX BIT(6) /* bitmask for column address order */ +#define MADCTL_MY BIT(7) /* bitmask for page address order */ + +/** + * default_init_sequence - default initialization sequence for ST7789V + * + * Most of the commands in this init sequence set their parameters to the + * same default values which are already in place after the display has been + * powered up. (The main exception to this rule is the pixel format which + * would default to 18 instead of 16 bit per pixel.) + * Nonetheless, this sequence can be used as a template for concrete + * displays which usually need some adjustments. + */ +static int default_init_sequence[] = { + /* turn off sleep mode */ + -1, SLPOUT, + -2, 120, + + /* set pixel format to RGB-565 */ + -1, COLMOD, 0x05, + + -1, PORCTRL, 0x08, 0x08, 0x00, 0x22, 0x22, + + /* + * VGH = 13.26V + * VGL = -10.43V + */ + -1, GCTRL, 0x35, + + /* + * VDV and VRH register values come from command write + * (instead of NVM) + */ + -1, VDVVRHEN, 0x01, 0xFF, + + /* + * VAP = 4.1V + (VCOM + VCOM offset + 0.5 * VDV) + * VAN = -4.1V + (VCOM + VCOM offset + 0.5 * VDV) + */ + -1, VRHS, 0x0B, + + /* VDV = 0V */ + -1, VDVS, 0x20, + + /* VCOM = 0.9V */ + -1, VCOMS, 0x20, + + /* VCOM offset = 0V */ + -1, VCMOFSET, 0x20, + + /* + * AVDD = 6.8V + * AVCL = -4.8V + * VDS = 2.3V + */ + -1, PWCTRL1, 0xA4, 0xA1, + + -1, DISPON, + + -3, +}; + +/** + * set_addr_win() - configure display area to use + * + * @par: FBTFT parameter object + * @xs: first active pixel of x-axis + * @ys: first active pixel of y-axis + * @xe: last active pixel of x-axis + * @ye: last active pixel of y-axis + */ +static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) +{ + write_reg(par, CASET, xs >> 8, xs & 0xFF, xe >> 8, xe & 0xFF); + write_reg(par, RASET, ys >> 8, ys & 0xFF, ye >> 8, ye & 0xFF); + write_reg(par, RAMRW); +} + +/** + * set_var() - apply LCD properties like rotation and BGR mode + * + * @par: FBTFT parameter object + * + * Return: 0 on success, < 0 if error occurred. + */ +static int set_var(struct fbtft_par *par) +{ + u8 madctl_par = 0; + + if (par->bgr) + madctl_par |= MADCTL_BGR; + switch (par->info->var.rotate) { + case 0: + break; + case 90: + madctl_par |= (MADCTL_MV | MADCTL_MY); + break; + case 180: + madctl_par |= (MADCTL_MX | MADCTL_MY); + break; + case 270: + madctl_par |= (MADCTL_MV | MADCTL_MX); + break; + default: + return -EINVAL; + } + write_reg(par, MADCTL, madctl_par); + return 0; +} + +/** + * set_gamma() - set gamma curves + * + * @par: FBTFT parameter object + * @curves: gamma curves + * + * Before the gamma curves are applied, they are preprocessed with a bitmask + * to ensure syntactically correct input for the display controller. + * This implies that the curves input parameter might be changed by this + * function and that illegal gamma values are auto-corrected and not + * reported as errors. + * + * Return: 0 on success, < 0 if error occurred. + */ +static int set_gamma(struct fbtft_par *par, unsigned long *curves) +{ + int i; + int j; + int c; /* curve index offset */ + + /* + * Bitmasks for gamma curve command parameters. + * The masks are the same for both positive and negative voltage + * gamma curves. + */ + const u8 gamma_par_mask[] = { + 0xFF, /* V63[3:0], V0[3:0]*/ + 0x3F, /* V1[5:0] */ + 0x3F, /* V2[5:0] */ + 0x1F, /* V4[4:0] */ + 0x1F, /* V6[4:0] */ + 0x3F, /* J0[1:0], V13[3:0] */ + 0x7F, /* V20[6:0] */ + 0x77, /* V36[2:0], V27[2:0] */ + 0x7F, /* V43[6:0] */ + 0x3F, /* J1[1:0], V50[3:0] */ + 0x1F, /* V57[4:0] */ + 0x1F, /* V59[4:0] */ + 0x3F, /* V61[5:0] */ + 0x3F, /* V62[5:0] */ + }; + + for (i = 0; i < par->gamma.num_curves; i++) { + c = i * par->gamma.num_values; + for (j = 0; j < par->gamma.num_values; j++) + curves[c + j] &= gamma_par_mask[j]; + write_reg( + par, PVGAMCTRL + i, + curves[c + 0], curves[c + 1], curves[c + 2], + curves[c + 3], curves[c + 4], curves[c + 5], + curves[c + 6], curves[c + 7], curves[c + 8], + curves[c + 9], curves[c + 10], curves[c + 11], + curves[c + 12], curves[c + 13]); + } + return 0; +} + +/** + * blank() - blank the display + * + * @par: FBTFT parameter object + * @on: whether to enable or disable blanking the display + * + * Return: 0 on success, < 0 if error occurred. + */ +static int blank(struct fbtft_par *par, bool on) +{ + if (on) + write_reg(par, DISPOFF); + else + write_reg(par, DISPON); + return 0; +} + +static struct fbtft_display display = { + .regwidth = 8, + .width = 240, + .height = 320, + .init_sequence = default_init_sequence, + .gamma_num = 2, + .gamma_len = 14, + .gamma = DEFAULT_GAMMA, + .fbtftops = { + .set_addr_win = set_addr_win, + .set_var = set_var, + .set_gamma = set_gamma, + .blank = blank, + }, +}; + +FBTFT_REGISTER_DRIVER(DRVNAME, "sitronix,st7789v", &display); + +MODULE_ALIAS("spi:" DRVNAME); +MODULE_ALIAS("platform:" DRVNAME); +MODULE_ALIAS("spi:st7789v"); +MODULE_ALIAS("platform:st7789v"); + +MODULE_DESCRIPTION("FB driver for the ST7789V LCD Controller"); +MODULE_AUTHOR("Dennis Menschel"); +MODULE_LICENSE("GPL"); From e9f6806551c3b2f02fa8225582d731994a3f3fa2 Mon Sep 17 00:00:00 2001 From: Dennis Menschel Date: Wed, 7 Oct 2015 22:15:46 +0200 Subject: [PATCH 1750/2431] staging: fbtft: add support for C-Berry28 display This patch adds support for the C-Berry28, a small 2.8" color display with a resolution of 320x240 pixels from admatec for the Raspberry Pi. It uses the Sitronix ST7789V display controller along with a custom init sequence and custom gamma curves. Signed-off-by: Dennis Menschel Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft_device.c | 74 ++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index a60f389122b0..0e501d093251 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -126,6 +126,59 @@ static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par, "02 1c 07 12 37 32 29 2d 29 25 2B 39 00 01 03 10\n" \ "03 1d 07 06 2E 2C 29 2D 2E 2E 37 3F 00 00 02 10" +#define CBERRY28_GAMMA \ + "D0 00 14 15 13 2C 42 43 4E 09 16 14 18 21\n" \ + "D0 00 14 15 13 0B 43 55 53 0C 17 14 23 20" + +static int cberry28_init_sequence[] = { + /* turn off sleep mode */ + -1, 0x11, + -2, 120, + + /* set pixel format to RGB-565 */ + -1, 0x3A, 0x05, + + -1, 0xB2, 0x0C, 0x0C, 0x00, 0x33, 0x33, + + /* + * VGH = 13.26V + * VGL = -10.43V + */ + -1, 0xB7, 0x35, + + /* + * VDV and VRH register values come from command write + * (instead of NVM) + */ + -1, 0xC2, 0x01, 0xFF, + + /* + * VAP = 4.7V + (VCOM + VCOM offset + 0.5 * VDV) + * VAN = -4.7V + (VCOM + VCOM offset + 0.5 * VDV) + */ + -1, 0xC3, 0x17, + + /* VDV = 0V */ + -1, 0xC4, 0x20, + + /* VCOM = 0.875V */ + -1, 0xBB, 0x1F, + + /* VCOM offset = 0V */ + -1, 0xC5, 0x20, + + /* + * AVDD = 6.6V + * AVCL = -4.8V + * VDS = 2.3V + */ + -1, 0xD0, 0xA4, 0x61, + + -1, 0x29, + + -3, +}; + static int hy28b_init_sequence[] = { -1, 0x00e7, 0x0010, -1, 0x0000, 0x0001, -1, 0x0001, 0x0100, -1, 0x0002, 0x0700, @@ -312,6 +365,27 @@ static struct fbtft_device_display displays[] = { }, } } + }, { + .name = "admatec_c-berry28", + .spi = &(struct spi_board_info) { + .modalias = "fb_st7789v", + .max_speed_hz = 48000000, + .mode = SPI_MODE_0, + .platform_data = &(struct fbtft_platform_data) { + .display = { + .buswidth = 8, + .backlight = 1, + .init_sequence = cberry28_init_sequence, + }, + .gpios = (const struct fbtft_gpio []) { + { "reset", 25 }, + { "dc", 22 }, + { "led", 18 }, + {}, + }, + .gamma = CBERRY28_GAMMA, + } + } }, { .name = "agm1264k-fl", .pdev = &(struct platform_device) { From 17a7b0b4d9749f80d365d7baff5dec2f54b0e992 Mon Sep 17 00:00:00 2001 From: Lars Svensson Date: Wed, 7 Oct 2015 09:20:12 +0200 Subject: [PATCH 1751/2431] fb.h: Provide alternate screen_base pointer Some drivers use member screen_base of struct fb_info to store non- __iomem pointers, creating the need for ugly __force typecasts to avoid sparse warnings. This adds an alternate pointer without the __iomem qualifyer for this use. Signed-off-by: Lars Svensson Signed-off-by: Greg Kroah-Hartman --- include/linux/fb.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/linux/fb.h b/include/linux/fb.h index bc9afa74ee11..41a3b11f7796 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -483,7 +483,10 @@ struct fb_info { #ifdef CONFIG_FB_TILEBLITTING struct fb_tile_ops *tileops; /* Tile Blitting */ #endif - char __iomem *screen_base; /* Virtual address */ + union { + char __iomem *screen_base; /* Virtual address */ + char *screen_buffer; + }; unsigned long screen_size; /* Amount of ioremapped VRAM or 0 */ void *pseudo_palette; /* Fake palette of 16 colors */ #define FBINFO_STATE_RUNNING 0 From 4b6dc179dcf8e6fa023fb38a0b4fc456b90186f5 Mon Sep 17 00:00:00 2001 From: Lars Svensson Date: Wed, 7 Oct 2015 09:20:13 +0200 Subject: [PATCH 1752/2431] staging: fbtft: use alternate screen pointer Member screen_base in struct fb_info is declared with __iomem qualifier causing sparse warnings when used as a regular ponter. To avoid the warnings, instead use alternate non-__iomem pointer, screen_buffer, troughout the driver. Signed-off-by: Lars Svensson Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_agm1264k-fl.c | 2 +- drivers/staging/fbtft/fb_pcd8544.c | 2 +- drivers/staging/fbtft/fb_ra8875.c | 2 +- drivers/staging/fbtft/fb_ssd1306.c | 2 +- drivers/staging/fbtft/fb_tls8204.c | 2 +- drivers/staging/fbtft/fb_uc1611.c | 2 +- drivers/staging/fbtft/fb_uc1701.c | 2 +- drivers/staging/fbtft/fb_watterott.c | 4 ++-- drivers/staging/fbtft/fbtft-bus.c | 6 +++--- drivers/staging/fbtft/fbtft-core.c | 4 ++-- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 88718f61eb5b..19f6136eb310 100644 --- a/drivers/staging/fbtft/fb_agm1264k-fl.c +++ b/drivers/staging/fbtft/fb_agm1264k-fl.c @@ -266,7 +266,7 @@ construct_line_bitmap(struct fbtft_par *par, u8 *dest, signed short *src, static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) { - u16 *vmem16 = (u16 *)par->info->screen_base; + u16 *vmem16 = (u16 *)par->info->screen_buffer; u8 *buf = par->txbuf.buf; int x, y; int ret = 0; diff --git a/drivers/staging/fbtft/fb_pcd8544.c b/drivers/staging/fbtft/fb_pcd8544.c index 8b52523fdc9e..a6b43323f29a 100644 --- a/drivers/staging/fbtft/fb_pcd8544.c +++ b/drivers/staging/fbtft/fb_pcd8544.c @@ -112,7 +112,7 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) { - u16 *vmem16 = (u16 *)par->info->screen_base; + u16 *vmem16 = (u16 *)par->info->screen_buffer; u8 *buf = par->txbuf.buf; int x, y, i; int ret = 0; diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c index 5c1d93d425d0..86e43e158c61 100644 --- a/drivers/staging/fbtft/fb_ra8875.c +++ b/drivers/staging/fbtft/fb_ra8875.c @@ -269,7 +269,7 @@ static int write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len) __func__, offset, len); remain = len / 2; - vmem16 = (u16 *)(par->info->screen_base + offset); + vmem16 = (u16 *)(par->info->screen_buffer + offset); tx_array_size = par->txbuf.len / 2; txbuf16 = (u16 *)(par->txbuf.buf + 1); tx_array_size -= 2; diff --git a/drivers/staging/fbtft/fb_ssd1306.c b/drivers/staging/fbtft/fb_ssd1306.c index 568b4334c9d9..e0b34a42c9c6 100644 --- a/drivers/staging/fbtft/fb_ssd1306.c +++ b/drivers/staging/fbtft/fb_ssd1306.c @@ -160,7 +160,7 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves) static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) { - u16 *vmem16 = (u16 *)par->info->screen_base; + u16 *vmem16 = (u16 *)par->info->screen_buffer; u8 *buf = par->txbuf.buf; int x, y, i; int ret = 0; diff --git a/drivers/staging/fbtft/fb_tls8204.c b/drivers/staging/fbtft/fb_tls8204.c index d609f875bcb1..2183f98c8315 100644 --- a/drivers/staging/fbtft/fb_tls8204.c +++ b/drivers/staging/fbtft/fb_tls8204.c @@ -94,7 +94,7 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) { - u16 *vmem16 = (u16 *)par->info->screen_base; + u16 *vmem16 = (u16 *)par->info->screen_buffer; int x, y, i; int ret = 0; diff --git a/drivers/staging/fbtft/fb_uc1611.c b/drivers/staging/fbtft/fb_uc1611.c index a72f920ca1d7..4e828142058e 100644 --- a/drivers/staging/fbtft/fb_uc1611.c +++ b/drivers/staging/fbtft/fb_uc1611.c @@ -221,7 +221,7 @@ static int set_var(struct fbtft_par *par) static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) { - u8 *vmem8 = (u8 *)(par->info->screen_base); + u8 *vmem8 = (u8 *)(par->info->screen_buffer); u8 *buf8 = (u8 *)(par->txbuf.buf); u16 *buf16 = (u16 *)(par->txbuf.buf); int line_length = par->info->fix.line_length; diff --git a/drivers/staging/fbtft/fb_uc1701.c b/drivers/staging/fbtft/fb_uc1701.c index 28aa1008b297..212908e39277 100644 --- a/drivers/staging/fbtft/fb_uc1701.c +++ b/drivers/staging/fbtft/fb_uc1701.c @@ -141,7 +141,7 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) { - u16 *vmem16 = (u16 *)par->info->screen_base; + u16 *vmem16 = (u16 *)par->info->screen_buffer; u8 *buf = par->txbuf.buf; int x, y, i; int ret = 0; diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c index be99a9d76316..f8cb610a7b69 100644 --- a/drivers/staging/fbtft/fb_watterott.c +++ b/drivers/staging/fbtft/fb_watterott.c @@ -68,7 +68,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...) static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) { unsigned start_line, end_line; - u16 *vmem16 = (u16 *)(par->info->screen_base + offset); + u16 *vmem16 = (u16 *)(par->info->screen_buffer + offset); u16 *pos = par->txbuf.buf + 1; u16 *buf16 = par->txbuf.buf + 10; int i, j; @@ -105,7 +105,7 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len) static int write_vmem_8bit(struct fbtft_par *par, size_t offset, size_t len) { unsigned start_line, end_line; - u16 *vmem16 = (u16 *)(par->info->screen_base + offset); + u16 *vmem16 = (u16 *)(par->info->screen_buffer + offset); u16 *pos = par->txbuf.buf + 1; u8 *buf8 = par->txbuf.buf + 10; int i, j; diff --git a/drivers/staging/fbtft/fbtft-bus.c b/drivers/staging/fbtft/fbtft-bus.c index 97129241cab9..9a95fde194d5 100644 --- a/drivers/staging/fbtft/fbtft-bus.c +++ b/drivers/staging/fbtft/fbtft-bus.c @@ -137,7 +137,7 @@ int fbtft_write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len) __func__, offset, len); remain = len / 2; - vmem16 = (u16 *)(par->info->screen_base + offset); + vmem16 = (u16 *)(par->info->screen_buffer + offset); if (par->gpio.dc != -1) gpio_set_value(par->gpio.dc, 1); @@ -196,7 +196,7 @@ int fbtft_write_vmem16_bus9(struct fbtft_par *par, size_t offset, size_t len) } remain = len; - vmem8 = par->info->screen_base + offset; + vmem8 = par->info->screen_buffer + offset; tx_array_size = par->txbuf.len / 2; @@ -240,7 +240,7 @@ int fbtft_write_vmem16_bus16(struct fbtft_par *par, size_t offset, size_t len) fbtft_par_dbg(DEBUG_WRITE_VMEM, par, "%s(offset=%zu, len=%zu)\n", __func__, offset, len); - vmem16 = (u16 *)(par->info->screen_base + offset); + vmem16 = (u16 *)(par->info->screen_buffer + offset); if (par->gpio.dc != -1) gpio_set_value(par->gpio.dc, 1); diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index deccb1d99251..b1e45161eefc 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -748,7 +748,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display, if (!info) goto alloc_fail; - info->screen_base = (u8 __force __iomem *)vmem; + info->screen_buffer = vmem; info->fbops = fbops; info->fbdefio = fbdefio; @@ -888,7 +888,7 @@ EXPORT_SYMBOL(fbtft_framebuffer_alloc); void fbtft_framebuffer_release(struct fb_info *info) { fb_deferred_io_cleanup(info); - vfree(info->screen_base); + vfree(info->screen_buffer); framebuffer_release(info); } EXPORT_SYMBOL(fbtft_framebuffer_release); From 6b626c77be5ecf34534a45bb2012f6ed0565a0a7 Mon Sep 17 00:00:00 2001 From: Lars Svensson Date: Wed, 7 Oct 2015 09:20:14 +0200 Subject: [PATCH 1753/2431] staging: fbtft: access screen buffer directly In fbtft-bus.c:fbtft_write_vmem16_bus9(), ioread8() is used for accessing the provided screen array. Since screen_buffer actually points to an ordinary buffer, instead access it directly. Signed-off-by: Lars Svensson Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fbtft-bus.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/fbtft/fbtft-bus.c b/drivers/staging/fbtft/fbtft-bus.c index 9a95fde194d5..58449ad84f46 100644 --- a/drivers/staging/fbtft/fbtft-bus.c +++ b/drivers/staging/fbtft/fbtft-bus.c @@ -179,7 +179,7 @@ EXPORT_SYMBOL(fbtft_write_vmem16_bus8); /* 16 bit pixel over 9-bit SPI bus: dc + high byte, dc + low byte */ int fbtft_write_vmem16_bus9(struct fbtft_par *par, size_t offset, size_t len) { - u8 __iomem *vmem8; + u8 *vmem8; u16 *txbuf16 = par->txbuf.buf; size_t remain; size_t to_copy; @@ -207,12 +207,12 @@ int fbtft_write_vmem16_bus9(struct fbtft_par *par, size_t offset, size_t len) #ifdef __LITTLE_ENDIAN for (i = 0; i < to_copy; i += 2) { - txbuf16[i] = 0x0100 | ioread8(vmem8 + i + 1); - txbuf16[i + 1] = 0x0100 | ioread8(vmem8 + i); + txbuf16[i] = 0x0100 | vmem8[i + 1]; + txbuf16[i + 1] = 0x0100 | vmem8[i]; } #else for (i = 0; i < to_copy; i++) - txbuf16[i] = 0x0100 | ioread8(vmem8 + i); + txbuf16[i] = 0x0100 | vmem8[i]; #endif vmem8 = vmem8 + to_copy; ret = par->fbtftops.write(par, par->txbuf.buf, to_copy * 2); From 8c6c463ee96a8c357c43f66d391925e0aae1babb Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Tue, 13 Oct 2015 16:46:53 -0400 Subject: [PATCH 1754/2431] "drivers/staging: mark android/ion fcns with EXPORT_SYMBOL for tristate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In a recent change, we made a bool into a tristate in: "drivers/staging: make android tegra_ion.c properly tristate", since it was self evident that was the original intention. However on the final link phase we'll see an allmodconfig fail with: ERROR: "ion_device_add_heap" [drivers/staging/android/ion/tegra/tegra_ion.ko] undefined! ERROR: "ion_heap_create" [drivers/staging/android/ion/tegra/tegra_ion.ko] undefined! ERROR: "ion_device_create" [drivers/staging/android/ion/tegra/tegra_ion.ko] undefined! ERROR: "ion_heap_destroy" [drivers/staging/android/ion/tegra/tegra_ion.ko] undefined! ERROR: "ion_device_destroy" [drivers/staging/android/ion/tegra/tegra_ion.ko] undefined! Export the above using the non GPL specific export, since that is what the rest of the ion code base does. Cc: Greg Kroah-Hartman Cc: "Arve Hjønnevåg" Cc: Riley Andrews Cc: Stephen Warren Cc: Thierry Reding Cc: Alexandre Courbot Cc: Markus Elfring Cc: devel@driverdev.osuosl.org Cc: linux-tegra@vger.kernel.org Reported-by: kbuild test robot Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ion/ion.c | 3 +++ drivers/staging/android/ion/ion_heap.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index 91b9b75e41da..e237e9f3312d 100644 --- a/drivers/staging/android/ion/ion.c +++ b/drivers/staging/android/ion/ion.c @@ -1557,6 +1557,7 @@ void ion_device_add_heap(struct ion_device *dev, struct ion_heap *heap) up_write(&dev->lock); } +EXPORT_SYMBOL(ion_device_add_heap); struct ion_device *ion_device_create(long (*custom_ioctl) (struct ion_client *client, @@ -1606,6 +1607,7 @@ debugfs_done: idev->clients = RB_ROOT; return idev; } +EXPORT_SYMBOL(ion_device_create); void ion_device_destroy(struct ion_device *dev) { @@ -1614,6 +1616,7 @@ void ion_device_destroy(struct ion_device *dev) /* XXX need to free the heaps and clients ? */ kfree(dev); } +EXPORT_SYMBOL(ion_device_destroy); void __init ion_reserve(struct ion_platform_data *data) { diff --git a/drivers/staging/android/ion/ion_heap.c b/drivers/staging/android/ion/ion_heap.c index fd13d05b538a..e97a2c32ed78 100644 --- a/drivers/staging/android/ion/ion_heap.c +++ b/drivers/staging/android/ion/ion_heap.c @@ -352,6 +352,7 @@ struct ion_heap *ion_heap_create(struct ion_platform_heap *heap_data) heap->id = heap_data->id; return heap; } +EXPORT_SYMBOL(ion_heap_create); void ion_heap_destroy(struct ion_heap *heap) { @@ -379,3 +380,4 @@ void ion_heap_destroy(struct ion_heap *heap) heap->type); } } +EXPORT_SYMBOL(ion_heap_destroy); From b156f1ed160d621c1c6c7667c46948b4a061db91 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 23:07:00 +0530 Subject: [PATCH 1755/2431] Staging: wilc1000: Use kzalloc instead of kmalloc and memset Replace kmalloc and memset with a single call to kzalloc. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 392bf085555e..706b27d8803e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1867,15 +1867,13 @@ static int Handle_Key(struct host_if_drv *hif_drv, case WPARxGtk: if (pstrHostIFkeyAttr->action & ADDKEY_AP) { - pu8keybuf = kmalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); + pu8keybuf = kzalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send RxGTK Key\n"); ret = -1; goto _WPARxGtk_end_case_; } - memset(pu8keybuf, 0, RX_MIC_KEY_MSG_LEN); - if (pstrHostIFkeyAttr->attr.wpa.seq != NULL) memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.seq, 8); @@ -1904,15 +1902,13 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->action & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling group key(Rx) function\n"); - pu8keybuf = kmalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); + pu8keybuf = kzalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send RxGTK Key\n"); ret = -1; goto _WPARxGtk_end_case_; } - memset(pu8keybuf, 0, RX_MIC_KEY_MSG_LEN); - if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) memcpy(pu8keybuf, hif_drv->au8AssociatedBSSID, ETH_ALEN); else @@ -4936,9 +4932,8 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pu8IEs = ptstrNetworkInfo->pu8IEs; u16IEsLen = ptstrNetworkInfo->u16IEsLen; - pNewJoinBssParam = kmalloc(sizeof(struct join_bss_param), GFP_KERNEL); + pNewJoinBssParam = kzalloc(sizeof(struct join_bss_param), GFP_KERNEL); if (pNewJoinBssParam != NULL) { - memset(pNewJoinBssParam, 0, sizeof(struct join_bss_param)); pNewJoinBssParam->dtim_period = ptstrNetworkInfo->u8DtimPeriod; pNewJoinBssParam->beacon_period = ptstrNetworkInfo->u16BeaconPeriod; pNewJoinBssParam->cap_info = ptstrNetworkInfo->u16CapInfo; From 1a86f2a1b792ea6b8f21dd3448624f053ef1d6f6 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 02:02:11 +0530 Subject: [PATCH 1756/2431] Staging: wilc1000: host_interface: Remove extra NULL test Remove a NULL test on variable hif_drv as it is already preceded by one. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 706b27d8803e..04f3bc2ceaa3 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -3592,11 +3592,6 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, return s32Error; } - if (!hif_drv) { - PRINT_ER("Driver is null\n"); - return -EFAULT; - } - if (pJoinParams == NULL) { PRINT_ER("Unable to Join - JoinParams is NULL\n"); return -EFAULT; From 05489e82f567ce524e4c0c406bdc7ddc61a41412 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 02:23:40 +0530 Subject: [PATCH 1757/2431] Staging: wilc1000: wilc_wlan_cfg: Remove unnecessary cast Remove a cast which is not required. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wlan_cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index d148d6efadbb..a34a81cdeb5e 100644 --- a/drivers/staging/wilc1000/wilc_wlan_cfg.c +++ b/drivers/staging/wilc1000/wilc_wlan_cfg.c @@ -364,7 +364,7 @@ static void wilc_wlan_parse_response_frame(u8 *info, int size) static int wilc_wlan_parse_info_frame(u8 *info, int size) { - wilc_mac_cfg_t *pd = (wilc_mac_cfg_t *)&g_mac; + wilc_mac_cfg_t *pd = &g_mac; u32 wid, len; int type = WILC_CFG_RSP_STATUS; From 26368fd7048f2c26d5263a932614351f04436be7 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Tue, 13 Oct 2015 23:55:07 +0300 Subject: [PATCH 1758/2431] Staging: skein: Remove NULL comparison Problem found using checkpatch.pl CHECK: Comparison to NULL could be written "key" Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_base.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/skein/skein_base.c b/drivers/staging/skein/skein_base.c index bfb08fa4045c..25a01ca76953 100644 --- a/drivers/staging/skein/skein_base.c +++ b/drivers/staging/skein/skein_base.c @@ -88,7 +88,7 @@ int skein_256_init_ext(struct skein_256_ctx *ctx, size_t hash_bit_len, } cfg; /* config block */ skein_assert_ret(hash_bit_len > 0, SKEIN_BAD_HASHLEN); - skein_assert_ret(key_bytes == 0 || key != NULL, SKEIN_FAIL); + skein_assert_ret(key_bytes == 0 || key, SKEIN_FAIL); /* compute the initial chaining values ctx->x[], based on key */ if (key_bytes == 0) { /* is there a key? */ @@ -316,7 +316,7 @@ int skein_512_init_ext(struct skein_512_ctx *ctx, size_t hash_bit_len, } cfg; /* config block */ skein_assert_ret(hash_bit_len > 0, SKEIN_BAD_HASHLEN); - skein_assert_ret(key_bytes == 0 || key != NULL, SKEIN_FAIL); + skein_assert_ret(key_bytes == 0 || key, SKEIN_FAIL); /* compute the initial chaining values ctx->x[], based on key */ if (key_bytes == 0) { /* is there a key? */ @@ -537,7 +537,7 @@ int skein_1024_init_ext(struct skein_1024_ctx *ctx, size_t hash_bit_len, } cfg; /* config block */ skein_assert_ret(hash_bit_len > 0, SKEIN_BAD_HASHLEN); - skein_assert_ret(key_bytes == 0 || key != NULL, SKEIN_FAIL); + skein_assert_ret(key_bytes == 0 || key, SKEIN_FAIL); /* compute the initial chaining values ctx->x[], based on key */ if (key_bytes == 0) { /* is there a key? */ From 784c7d2f0e390bcda734ee4ea8c7289777abf1c6 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 03:29:58 +0530 Subject: [PATCH 1759/2431] Staging: wilc1000: host_interface: Remove unnecessary enum enum scan_conn_timer and its instances are never used anywhere in the code so, remove it. Semantic patch used: @@ type T; identifier i; constant C; position p != e.p; @@ - T i@p; <+... when != i - i = C; ...+> Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 04f3bc2ceaa3..14c8abea463e 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -229,12 +229,6 @@ struct join_bss_param { u8 au8StartTime[4]; }; -enum scan_conn_timer { - SCAN_TIMER = 0, - CONNECT_TIMER = 1, - SCAN_CONNECT_TIMER_FORCE_32BIT = 0xFFFFFFFF -}; - static struct host_if_drv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; struct host_if_drv *terminated_handle; struct host_if_drv *gWFiDrvHandle; @@ -3584,7 +3578,6 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, { s32 s32Error = 0; struct host_if_msg msg; - enum scan_conn_timer enuScanConnTimer; if (!hif_drv || pfConnectResult == NULL) { s32Error = -EFAULT; @@ -3636,7 +3629,6 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, return -EFAULT; } - enuScanConnTimer = CONNECT_TIMER; hif_drv->hConnectTimer.data = (unsigned long)hif_drv; mod_timer(&hif_drv->hConnectTimer, jiffies + msecs_to_jiffies(HOST_IF_CONNECT_TIMEOUT)); @@ -4020,7 +4012,6 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, { s32 s32Error = 0; struct host_if_msg msg; - enum scan_conn_timer enuScanConnTimer; if (!hif_drv || ScanResult == NULL) { PRINT_ER("hif_drv or ScanResult = NULL\n"); @@ -4058,7 +4049,6 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, return -EINVAL; } - enuScanConnTimer = SCAN_TIMER; PRINT_D(HOSTINF_DBG, ">> Starting the SCAN timer\n"); hif_drv->hScanTimer.data = (unsigned long)hif_drv; mod_timer(&hif_drv->hScanTimer, From 95f840fb5355eda0bf797a2d7b6e684127128cac Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 14 Oct 2015 07:29:19 +0530 Subject: [PATCH 1760/2431] Staging: wilc1000: Remove null check before kfree kfree on NULL pointer is a no-op. The semantic patch used to find such an instance where NULL check is present before kfree- // @@ expression E; @@ - if (E != NULL) { kfree(E); } + kfree(E); @@ expression E; @@ - if (E != NULL) { kfree(E); E = NULL; } + kfree(E); + E = NULL; // smpl> Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 90 ++++++++--------------- 1 file changed, 30 insertions(+), 60 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 14c8abea463e..aa7f7cc219a9 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -936,22 +936,15 @@ ERRORHANDLER: Handle_ScanDone(hif_drv, SCAN_EVENT_ABORTED); } - if (pstrHostIFscanAttr->ch_freq_list != NULL) { - kfree(pstrHostIFscanAttr->ch_freq_list); - pstrHostIFscanAttr->ch_freq_list = NULL; - } + kfree(pstrHostIFscanAttr->ch_freq_list); + pstrHostIFscanAttr->ch_freq_list = NULL; - if (pstrHostIFscanAttr->ies != NULL) { - kfree(pstrHostIFscanAttr->ies); - pstrHostIFscanAttr->ies = NULL; - } - if (pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo != NULL) { - kfree(pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo); - pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo = NULL; - } + kfree(pstrHostIFscanAttr->ies); + pstrHostIFscanAttr->ies = NULL; + kfree(pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo); + pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo = NULL; - if (pu8HdnNtwrksWidVal != NULL) - kfree(pu8HdnNtwrksWidVal); + kfree(pu8HdnNtwrksWidVal); return s32Error; } @@ -1269,10 +1262,8 @@ ERRORHANDLER: NULL, pstrHostIFconnectAttr->arg); hif_drv->enuHostIFstate = HOST_IF_IDLE; - if (strConnectInfo.pu8ReqIEs != NULL) { - kfree(strConnectInfo.pu8ReqIEs); - strConnectInfo.pu8ReqIEs = NULL; - } + kfree(strConnectInfo.pu8ReqIEs); + strConnectInfo.pu8ReqIEs = NULL; } else { PRINT_ER("Connect callback function pointer is NULL\n"); @@ -1280,23 +1271,16 @@ ERRORHANDLER: } PRINT_D(HOSTINF_DBG, "Deallocating connection parameters\n"); - if (pstrHostIFconnectAttr->bssid != NULL) { - kfree(pstrHostIFconnectAttr->bssid); - pstrHostIFconnectAttr->bssid = NULL; - } + kfree(pstrHostIFconnectAttr->bssid); + pstrHostIFconnectAttr->bssid = NULL; - if (pstrHostIFconnectAttr->ssid != NULL) { - kfree(pstrHostIFconnectAttr->ssid); - pstrHostIFconnectAttr->ssid = NULL; - } + kfree(pstrHostIFconnectAttr->ssid); + pstrHostIFconnectAttr->ssid = NULL; - if (pstrHostIFconnectAttr->ies != NULL) { - kfree(pstrHostIFconnectAttr->ies); - pstrHostIFconnectAttr->ies = NULL; - } + kfree(pstrHostIFconnectAttr->ies); + pstrHostIFconnectAttr->ies = NULL; - if (pu8CurrByte != NULL) - kfree(pu8CurrByte); + kfree(pu8CurrByte); return s32Error; } @@ -1387,10 +1371,8 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) NULL, hif_drv->strWILC_UsrConnReq.u32UserConnectPvoid); - if (strConnectInfo.pu8ReqIEs != NULL) { - kfree(strConnectInfo.pu8ReqIEs); - strConnectInfo.pu8ReqIEs = NULL; - } + kfree(strConnectInfo.pu8ReqIEs); + strConnectInfo.pu8ReqIEs = NULL; } else { PRINT_ER("Connect callback function pointer is NULL\n"); } @@ -1503,10 +1485,8 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, } done: - if (pstrRcvdNetworkInfo->buffer != NULL) { - kfree(pstrRcvdNetworkInfo->buffer); - pstrRcvdNetworkInfo->buffer = NULL; - } + kfree(pstrRcvdNetworkInfo->buffer); + pstrRcvdNetworkInfo->buffer = NULL; if (pstrNetworkInfo != NULL) { DeallocateNetworkInfo(pstrNetworkInfo); @@ -1666,15 +1646,11 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, gbScanWhileConnected = false; } - if (strConnectInfo.pu8RespIEs != NULL) { - kfree(strConnectInfo.pu8RespIEs); - strConnectInfo.pu8RespIEs = NULL; - } + kfree(strConnectInfo.pu8RespIEs); + strConnectInfo.pu8RespIEs = NULL; - if (strConnectInfo.pu8ReqIEs != NULL) { - kfree(strConnectInfo.pu8ReqIEs); - strConnectInfo.pu8ReqIEs = NULL; - } + kfree(strConnectInfo.pu8ReqIEs); + strConnectInfo.pu8ReqIEs = NULL; hif_drv->strWILC_UsrConnReq.ssidLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ssid); kfree(hif_drv->strWILC_UsrConnReq.pu8bssid); @@ -1743,10 +1719,8 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } - if (pstrRcvdGnrlAsyncInfo->buffer != NULL) { - kfree(pstrRcvdGnrlAsyncInfo->buffer); - pstrRcvdGnrlAsyncInfo->buffer = NULL; - } + kfree(pstrRcvdGnrlAsyncInfo->buffer); + pstrRcvdGnrlAsyncInfo->buffer = NULL; return s32Error; } @@ -2868,8 +2842,7 @@ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, s32Error = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (strWID.val != NULL) - kfree(strWID.val); + kfree(strWID.val); return s32Error; @@ -2908,8 +2881,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); - if (strWID.val != NULL) - kfree(strWID.val); + kfree(strWID.val); up(&hWaitResponse); @@ -4648,11 +4620,9 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, ERRORHANDLER: if (s32Error) { - if (pstrSetBeaconParam->head != NULL) - kfree(pstrSetBeaconParam->head); + kfree(pstrSetBeaconParam->head); - if (pstrSetBeaconParam->tail != NULL) - kfree(pstrSetBeaconParam->tail); + kfree(pstrSetBeaconParam->tail); } return s32Error; From 9b7ecb01886b4ad34e3cbabb08796bff1e1a709d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 14 Oct 2015 20:46:29 +0900 Subject: [PATCH 1761/2431] staging: wilc1000: remove extern declarations of g_linux_wlan This patch removes extern declaration of g_linux_wlan from the followings because it is declared as extern in the wilc_wfi_netdevice.h file. - linux_mon.c - linux_wlan_sdio.c - wilc_wfi_cfgoperations.c Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_mon.c | 2 -- drivers/staging/wilc1000/linux_wlan_sdio.c | 1 - drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 -- 3 files changed, 5 deletions(-) diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index bde409526774..450af1b77f99 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -24,8 +24,6 @@ struct wilc_wfi_radiotap_cb_hdr { u16 tx_flags; } __attribute__((packed)); -extern linux_wlan_t *g_linux_wlan; - static struct net_device *wilc_wfi_mon; /* global monitor netdev */ extern int mac_xmit(struct sk_buff *skb, struct net_device *dev); diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index b1c6b6fc0481..ebacd297abca 100644 --- a/drivers/staging/wilc1000/linux_wlan_sdio.c +++ b/drivers/staging/wilc1000/linux_wlan_sdio.c @@ -23,7 +23,6 @@ struct sdio_func *local_sdio_func; -extern linux_wlan_t *g_linux_wlan; extern int wilc_netdev_init(void); extern void wilc_handle_isr(void); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 706912b84798..a950b043e9a5 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -35,7 +35,6 @@ static u8 op_ifcs; extern u8 u8ConnectedSSID[6]; u8 g_wilc_initialized = 1; -extern linux_wlan_t *g_linux_wlan; extern bool g_obtainingIP; #define CHAN2G(_channel, _freq, _flags) { \ @@ -2192,7 +2191,6 @@ void WILC_WFI_add_wilcvendorspec(u8 *buff) * @date 01 JUL 2012 * @version */ -extern linux_wlan_t *g_linux_wlan; extern bool bEnablePS; static int mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, From f61c5aff3b4213f246e0531b47f7c6d76f2574ea Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 14 Oct 2015 20:46:30 +0900 Subject: [PATCH 1762/2431] staging: wilc1000: remove typedef from the linux_wlan_t This patch removes typedef from the struct linux_wlan_t and renames it to the wilc. In addition, all of linux_wlan_t is replaced with struct wilc and memory allocation style is changed with preferred form as well like the following: p = kmalloc(sizeof(*p), ...) where "struct wilc" is used Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 38 +++++++++---------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 8 ++-- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index ccab89f8b0cc..b879b8be0f3f 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -49,7 +49,7 @@ extern bool g_obtainingIP; extern u16 Set_machw_change_vir_if(bool bValue); extern void resolve_disconnect_aberration(void *drvHandler); extern u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; -void wilc1000_wlan_deinit(linux_wlan_t *nic); +void wilc1000_wlan_deinit(struct wilc *nic); extern struct timer_list hDuringIpTimer; static int linux_wlan_device_power(int on_off) @@ -96,8 +96,8 @@ static struct notifier_block g_dev_notifier = { */ static struct semaphore close_exit_sync; -static int wlan_deinit_locks(linux_wlan_t *nic); -static void wlan_deinitialize_threads(linux_wlan_t *nic); +static int wlan_deinit_locks(struct wilc *nic); +static void wlan_deinitialize_threads(struct wilc *nic); extern void WILC_WFI_monitor_rx(u8 *buff, u32 size); extern void WILC_WFI_p2p_rx(struct net_device *dev, u8 *buff, u32 size); @@ -114,7 +114,7 @@ static void wilc_set_multicast_list(struct net_device *dev); * for now - in frmw_to_linux there should be private data to be passed to it * and this data should be pointer to net device */ -linux_wlan_t *g_linux_wlan; +struct wilc *g_linux_wlan; bool bEnablePS = true; static const struct net_device_ops wilc_netdev_ops = { @@ -243,9 +243,9 @@ static irqreturn_t isr_uh_routine(int irq, void *user_data) irqreturn_t isr_bh_routine(int irq, void *userdata) { - linux_wlan_t *nic; + struct wilc *nic; - nic = (linux_wlan_t *)userdata; + nic = (struct wilc *)userdata; /*While mac is closing cacncel the handling of any interrupts received*/ if (g_linux_wlan->close) { @@ -260,10 +260,10 @@ irqreturn_t isr_bh_routine(int irq, void *userdata) } #if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) -static int init_irq(linux_wlan_t *p_nic) +static int init_irq(struct wilc *p_nic) { int ret = 0; - linux_wlan_t *nic = p_nic; + struct wilc *nic = p_nic; /*initialize GPIO and register IRQ num*/ /*GPIO request*/ @@ -299,7 +299,7 @@ static int init_irq(linux_wlan_t *p_nic) } #endif -static void deinit_irq(linux_wlan_t *nic) +static void deinit_irq(struct wilc *nic) { #if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) /* Deintialize IRQ */ @@ -336,7 +336,7 @@ void linux_wlan_mac_indicate(int flag) /*I have to do it that way becuase there is no mean to encapsulate device pointer * as a parameter */ - linux_wlan_t *pd = g_linux_wlan; + struct wilc *pd = g_linux_wlan; int status; if (flag == WILC_MAC_INDICATE_STATUS) { @@ -594,7 +594,7 @@ static int linux_wlan_start_firmware(perInterface_wlan_t *nic) _fail_: return ret; } -static int linux_wlan_firmware_download(linux_wlan_t *p_nic) +static int linux_wlan_firmware_download(struct wilc *p_nic) { int ret = 0; @@ -626,7 +626,7 @@ _FAIL_: } /* startup configuration - could be changed later using iconfig*/ -static int linux_wlan_init_test_config(struct net_device *dev, linux_wlan_t *p_nic) +static int linux_wlan_init_test_config(struct net_device *dev, struct wilc *p_nic) { unsigned char c_val[64]; @@ -882,7 +882,7 @@ _fail_: } /**************************/ -void wilc1000_wlan_deinit(linux_wlan_t *nic) +void wilc1000_wlan_deinit(struct wilc *nic) { if (g_linux_wlan->wilc1000_initialized) { @@ -944,7 +944,7 @@ void wilc1000_wlan_deinit(linux_wlan_t *nic) } } -int wlan_init_locks(linux_wlan_t *p_nic) +int wlan_init_locks(struct wilc *p_nic) { PRINT_D(INIT_DBG, "Initializing Locks ...\n"); @@ -965,7 +965,7 @@ int wlan_init_locks(linux_wlan_t *p_nic) return 0; } -static int wlan_deinit_locks(linux_wlan_t *nic) +static int wlan_deinit_locks(struct wilc *nic) { PRINT_D(INIT_DBG, "De-Initializing Locks\n"); @@ -977,7 +977,7 @@ static int wlan_deinit_locks(linux_wlan_t *nic) return 0; } -void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) +void linux_to_wlan(wilc_wlan_inp_t *nwi, struct wilc *nic) { PRINT_D(INIT_DBG, "Linux to Wlan services ...\n"); @@ -1031,7 +1031,7 @@ _fail_2: return ret; } -static void wlan_deinitialize_threads(linux_wlan_t *nic) +static void wlan_deinitialize_threads(struct wilc *nic) { g_linux_wlan->close = 1; @@ -1053,7 +1053,7 @@ extern u8 core_11b_ready(void); #define READY_CHECK_THRESHOLD 30 extern void wilc_wlan_global_reset(void); -u8 wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, linux_wlan_t *nic) +u8 wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, struct wilc *nic) { u8 trials = 0; @@ -1714,7 +1714,7 @@ int wilc_netdev_init(void) sema_init(&close_exit_sync, 0); /*create the common structure*/ - g_linux_wlan = kzalloc(sizeof(linux_wlan_t), GFP_KERNEL); + g_linux_wlan = kzalloc(sizeof(*g_linux_wlan), GFP_KERNEL); if (!g_linux_wlan) return -ENOMEM; diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index a950b043e9a5..08ba5ba9318d 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2523,7 +2523,7 @@ static int set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, * @date 01 MAR 2012 * @version 1.0 */ -void wilc1000_wlan_deinit(linux_wlan_t *nic); +void wilc1000_wlan_deinit(struct wilc *nic); int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic); static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 8bcfcc298d59..373959b0e976 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -154,7 +154,8 @@ typedef struct { struct host_if_drv *drvHandler; struct net_device *wilc_netdev; } tstrInterfaceInfo; -typedef struct { + +struct wilc { int mac_status; int wilc1000_initialized; #if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) @@ -188,8 +189,7 @@ typedef struct { #else struct spi_device *wilc_spidev; #endif - -} linux_wlan_t; +}; typedef struct { u8 u8IfIdx; @@ -206,7 +206,7 @@ struct WILC_WFI_mon_priv { struct net_device *real_ndev; }; -extern linux_wlan_t *g_linux_wlan; +extern struct wilc *g_linux_wlan; extern struct net_device *WILC_WFI_devs[]; void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset); void linux_wlan_mac_indicate(int flag); From 1a08bc43c4c89e79e7e653bb1c2cdef489843e3a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 14 Oct 2015 20:46:32 +0900 Subject: [PATCH 1763/2431] staging: wilc1000: remove typedef from the tstrInterfaceInfo This patch removes typedef from the tstrInterfaceInfo and renames it to the wilc_vif. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 373959b0e976..c5061fd07312 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -148,12 +148,12 @@ typedef struct { } struct_frame_reg; -typedef struct { +struct wilc_vif { u8 aSrcAddress[ETH_ALEN]; u8 aBSSID[ETH_ALEN]; struct host_if_drv *drvHandler; struct net_device *wilc_netdev; -} tstrInterfaceInfo; +}; struct wilc { int mac_status; @@ -163,7 +163,7 @@ struct wilc { #endif int close; u8 u8NoIfcs; - tstrInterfaceInfo strInterfaceInfo[NUM_CONCURRENT_IFC]; + struct wilc_vif strInterfaceInfo[NUM_CONCURRENT_IFC]; u8 open_ifcs; struct semaphore txq_add_to_head_cs; From 619d27b88ceddae481ecdf313c455e01258b7360 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:42 +0900 Subject: [PATCH 1764/2431] staging: wilc1000: rename ssidLen of struct join_bss_param This patch renames ssidLen of struct join_bss_param to ssid_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index aa7f7cc219a9..5dc7c99e62ac 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -207,7 +207,7 @@ struct join_bss_param { u16 cap_info; u8 au8bssid[6]; char ssid[MAX_SSID_LEN]; - u8 ssidLen; + u8 ssid_len; u8 supp_rates[MAX_RATES_SUPPORTED + 1]; u8 ht_capable; u8 wmm_cap; @@ -4894,7 +4894,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pNewJoinBssParam->cap_info = ptstrNetworkInfo->u16CapInfo; memcpy(pNewJoinBssParam->au8bssid, ptstrNetworkInfo->au8bssid, 6); memcpy((u8 *)pNewJoinBssParam->ssid, ptstrNetworkInfo->au8ssid, ptstrNetworkInfo->u8SsidLen + 1); - pNewJoinBssParam->ssidLen = ptstrNetworkInfo->u8SsidLen; + pNewJoinBssParam->ssid_len = ptstrNetworkInfo->u8SsidLen; memset(pNewJoinBssParam->rsn_pcip_policy, 0xFF, 3); memset(pNewJoinBssParam->rsn_auth_policy, 0xFF, 3); From 7a8d51d776b7f145b3a719f6f8f49e45c1075f23 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:43 +0900 Subject: [PATCH 1765/2431] staging: wilc1000: rename u8NoaEnbaled of struct join_bss_param This patch renames u8NoaEnbaled of struct join_bss_param to noa_enabled to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5dc7c99e62ac..ee86a69a1fcd 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -219,7 +219,7 @@ struct join_bss_param { u8 rsn_auth_policy[3]; u8 rsn_cap[2]; u32 tsf; - u8 u8NoaEnbaled; + u8 noa_enabled; u8 u8OppEnable; u8 u8CtWindow; u8 u8Count; @@ -1171,9 +1171,9 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, pu8CurrByte += sizeof(ptstrJoinBssParam->rsn_cap); *(pu8CurrByte++) = REAL_JOIN_REQ; + *(pu8CurrByte++) = ptstrJoinBssParam->noa_enabled; - *(pu8CurrByte++) = ptstrJoinBssParam->u8NoaEnbaled; - if (ptstrJoinBssParam->u8NoaEnbaled) { + if (ptstrJoinBssParam->noa_enabled) { PRINT_D(HOSTINF_DBG, "NOA present\n"); *(pu8CurrByte++) = (ptstrJoinBssParam->tsf) & 0xFF; @@ -4944,7 +4944,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) u16 u16P2P_count; pNewJoinBssParam->tsf = ptstrNetworkInfo->u32Tsf; - pNewJoinBssParam->u8NoaEnbaled = 1; + pNewJoinBssParam->noa_enabled = 1; pNewJoinBssParam->u8Index = pu8IEs[index + 9]; if (pu8IEs[index + 10] & BIT(7)) { From d72b33caee4763d28f5e11cc230ff50b96698582 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:44 +0900 Subject: [PATCH 1766/2431] staging: wilc1000: rename u8OppEnable of struct join_bss_param This patch renames u8OppEnable of struct join_bss_param to opp_enabled to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ee86a69a1fcd..7c6560942e3d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -220,7 +220,7 @@ struct join_bss_param { u8 rsn_cap[2]; u32 tsf; u8 noa_enabled; - u8 u8OppEnable; + u8 opp_enabled; u8 u8CtWindow; u8 u8Count; u8 u8Index; @@ -1182,10 +1182,9 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, *(pu8CurrByte++) = ((ptstrJoinBssParam->tsf) >> 24) & 0xFF; *(pu8CurrByte++) = ptstrJoinBssParam->u8Index; + *(pu8CurrByte++) = ptstrJoinBssParam->opp_enabled; - *(pu8CurrByte++) = ptstrJoinBssParam->u8OppEnable; - - if (ptstrJoinBssParam->u8OppEnable) + if (ptstrJoinBssParam->opp_enabled) *(pu8CurrByte++) = ptstrJoinBssParam->u8CtWindow; *(pu8CurrByte++) = ptstrJoinBssParam->u8Count; @@ -4948,10 +4947,11 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pNewJoinBssParam->u8Index = pu8IEs[index + 9]; if (pu8IEs[index + 10] & BIT(7)) { - pNewJoinBssParam->u8OppEnable = 1; + pNewJoinBssParam->opp_enabled = 1; pNewJoinBssParam->u8CtWindow = pu8IEs[index + 10]; - } else - pNewJoinBssParam->u8OppEnable = 0; + } else { + pNewJoinBssParam->opp_enabled = 0; + } PRINT_D(GENERIC_DBG, "P2P Dump\n"); for (i = 0; i < pu8IEs[index + 7]; i++) From 99b669453b3e2add47697a2da1e708ff40a1801c Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:45 +0900 Subject: [PATCH 1767/2431] staging: wilc1000: rename u8CtWindow of struct join_bss_param This patch renames u8CtWindow of struct join_bss_param to ct_window to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7c6560942e3d..b472292f2e94 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -221,7 +221,7 @@ struct join_bss_param { u32 tsf; u8 noa_enabled; u8 opp_enabled; - u8 u8CtWindow; + u8 ct_window; u8 u8Count; u8 u8Index; u8 au8Duration[4]; @@ -1185,7 +1185,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, *(pu8CurrByte++) = ptstrJoinBssParam->opp_enabled; if (ptstrJoinBssParam->opp_enabled) - *(pu8CurrByte++) = ptstrJoinBssParam->u8CtWindow; + *(pu8CurrByte++) = ptstrJoinBssParam->ct_window; *(pu8CurrByte++) = ptstrJoinBssParam->u8Count; @@ -4948,7 +4948,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) if (pu8IEs[index + 10] & BIT(7)) { pNewJoinBssParam->opp_enabled = 1; - pNewJoinBssParam->u8CtWindow = pu8IEs[index + 10]; + pNewJoinBssParam->ct_window = pu8IEs[index + 10]; } else { pNewJoinBssParam->opp_enabled = 0; } From c21047edfa569c05325b7f3511b40b3e3ff4ec53 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:46 +0900 Subject: [PATCH 1768/2431] staging: wilc1000: rename u8Count of struct join_bss_param This patch renames u8Count of struct join_bss_param to cnt to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b472292f2e94..72a84cead3e8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -222,7 +222,7 @@ struct join_bss_param { u8 noa_enabled; u8 opp_enabled; u8 ct_window; - u8 u8Count; + u8 cnt; u8 u8Index; u8 au8Duration[4]; u8 au8Interval[4]; @@ -1187,7 +1187,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, if (ptstrJoinBssParam->opp_enabled) *(pu8CurrByte++) = ptstrJoinBssParam->ct_window; - *(pu8CurrByte++) = ptstrJoinBssParam->u8Count; + *(pu8CurrByte++) = ptstrJoinBssParam->cnt; memcpy(pu8CurrByte, ptstrJoinBssParam->au8Duration, sizeof(ptstrJoinBssParam->au8Duration)); @@ -4957,7 +4957,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) for (i = 0; i < pu8IEs[index + 7]; i++) PRINT_D(GENERIC_DBG, " %x\n", pu8IEs[index + 9 + i]); - pNewJoinBssParam->u8Count = pu8IEs[index + 11]; + pNewJoinBssParam->cnt = pu8IEs[index + 11]; u16P2P_count = index + 12; memcpy(pNewJoinBssParam->au8Duration, pu8IEs + u16P2P_count, 4); From cc179008425b419f7a0fcc0c145d6f69750184ff Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:47 +0900 Subject: [PATCH 1769/2431] staging: wilc1000: rename u8Index of struct join_bss_param This patch renames u8Index of struct join_bss_param to idx to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 72a84cead3e8..a4dcc4049577 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -223,7 +223,7 @@ struct join_bss_param { u8 opp_enabled; u8 ct_window; u8 cnt; - u8 u8Index; + u8 idx; u8 au8Duration[4]; u8 au8Interval[4]; u8 au8StartTime[4]; @@ -1181,8 +1181,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, *(pu8CurrByte++) = ((ptstrJoinBssParam->tsf) >> 16) & 0xFF; *(pu8CurrByte++) = ((ptstrJoinBssParam->tsf) >> 24) & 0xFF; - *(pu8CurrByte++) = ptstrJoinBssParam->u8Index; *(pu8CurrByte++) = ptstrJoinBssParam->opp_enabled; + *(pu8CurrByte++) = ptstrJoinBssParam->idx; if (ptstrJoinBssParam->opp_enabled) *(pu8CurrByte++) = ptstrJoinBssParam->ct_window; @@ -4944,7 +4944,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pNewJoinBssParam->tsf = ptstrNetworkInfo->u32Tsf; pNewJoinBssParam->noa_enabled = 1; - pNewJoinBssParam->u8Index = pu8IEs[index + 9]; + pNewJoinBssParam->idx = pu8IEs[index + 9]; if (pu8IEs[index + 10] & BIT(7)) { pNewJoinBssParam->opp_enabled = 1; From 109e6cab4804fd8fa84dfca82746e67a435f8102 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:48 +0900 Subject: [PATCH 1770/2431] staging: wilc1000: rename au8Duration of struct join_bss_param This patch renames au8Duration of struct join_bss_param to duration to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a4dcc4049577..070dede37b03 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -224,7 +224,7 @@ struct join_bss_param { u8 ct_window; u8 cnt; u8 idx; - u8 au8Duration[4]; + u8 duration[4]; u8 au8Interval[4]; u8 au8StartTime[4]; }; @@ -1189,9 +1189,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, *(pu8CurrByte++) = ptstrJoinBssParam->cnt; - memcpy(pu8CurrByte, ptstrJoinBssParam->au8Duration, sizeof(ptstrJoinBssParam->au8Duration)); - - pu8CurrByte += sizeof(ptstrJoinBssParam->au8Duration); + memcpy(pu8CurrByte, ptstrJoinBssParam->duration, sizeof(ptstrJoinBssParam->duration)); + pu8CurrByte += sizeof(ptstrJoinBssParam->duration); memcpy(pu8CurrByte, ptstrJoinBssParam->au8Interval, sizeof(ptstrJoinBssParam->au8Interval)); @@ -4960,7 +4959,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) pNewJoinBssParam->cnt = pu8IEs[index + 11]; u16P2P_count = index + 12; - memcpy(pNewJoinBssParam->au8Duration, pu8IEs + u16P2P_count, 4); + memcpy(pNewJoinBssParam->duration, pu8IEs + u16P2P_count, 4); u16P2P_count += 4; memcpy(pNewJoinBssParam->au8Interval, pu8IEs + u16P2P_count, 4); From 1d8b76b31824c51be48007e4b5c6159a9cc19d6e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:49 +0900 Subject: [PATCH 1771/2431] staging: wilc1000: rename au8Interval of struct join_bss_param This patch renames au8Interval of struct join_bss_param to interval to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 070dede37b03..9550af5a0454 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -225,7 +225,7 @@ struct join_bss_param { u8 cnt; u8 idx; u8 duration[4]; - u8 au8Interval[4]; + u8 interval[4]; u8 au8StartTime[4]; }; @@ -1192,9 +1192,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, ptstrJoinBssParam->duration, sizeof(ptstrJoinBssParam->duration)); pu8CurrByte += sizeof(ptstrJoinBssParam->duration); - memcpy(pu8CurrByte, ptstrJoinBssParam->au8Interval, sizeof(ptstrJoinBssParam->au8Interval)); - - pu8CurrByte += sizeof(ptstrJoinBssParam->au8Interval); + memcpy(pu8CurrByte, ptstrJoinBssParam->interval, sizeof(ptstrJoinBssParam->interval)); + pu8CurrByte += sizeof(ptstrJoinBssParam->interval); memcpy(pu8CurrByte, ptstrJoinBssParam->au8StartTime, sizeof(ptstrJoinBssParam->au8StartTime)); @@ -4962,7 +4961,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) memcpy(pNewJoinBssParam->duration, pu8IEs + u16P2P_count, 4); u16P2P_count += 4; - memcpy(pNewJoinBssParam->au8Interval, pu8IEs + u16P2P_count, 4); + memcpy(pNewJoinBssParam->interval, pu8IEs + u16P2P_count, 4); u16P2P_count += 4; memcpy(pNewJoinBssParam->au8StartTime, pu8IEs + u16P2P_count, 4); From 4fb770d64e0e0a6ce14ff62e53f9ce86ed214d49 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:51 +0900 Subject: [PATCH 1772/2431] staging: wilc1000: remove unused variable gWFiDrvHandle This patch removes unused the variable gWFiDrvHandle. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9550af5a0454..b65da9bce9d9 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -231,7 +231,6 @@ struct join_bss_param { static struct host_if_drv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; struct host_if_drv *terminated_handle; -struct host_if_drv *gWFiDrvHandle; bool g_obtainingIP; u8 P2P_LISTEN_STATE; static struct task_struct *HostIFthreadHandler; From c2115d8ef82d84678ec39e3a2f8b745bb018e07c Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:52 +0900 Subject: [PATCH 1773/2431] staging: wilc1000: rename variable HostIFthreadHandler This patch renames variable HostIFthreadHandler to hif_thread_handler to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b65da9bce9d9..b93776af3b37 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -233,7 +233,7 @@ static struct host_if_drv *wfidrv_list[NUM_CONCURRENT_IFC + 1]; struct host_if_drv *terminated_handle; bool g_obtainingIP; u8 P2P_LISTEN_STATE; -static struct task_struct *HostIFthreadHandler; +static struct task_struct *hif_thread_handler; static WILC_MsgQueueHandle gMsgQHostIF; static struct semaphore hSemHostIFthrdEnd; @@ -4235,8 +4235,10 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) PRINT_ER("Failed to creat MQ\n"); goto _fail_; } - HostIFthreadHandler = kthread_run(hostIFthread, NULL, "WILC_kthread"); - if (IS_ERR(HostIFthreadHandler)) { + + hif_thread_handler = kthread_run(hostIFthread, NULL, "WILC_kthread"); + + if (IS_ERR(hif_thread_handler)) { PRINT_ER("Failed to creat Thread\n"); result = -EFAULT; goto _fail_mq_; @@ -4280,7 +4282,7 @@ _fail_timer_2: up(&hif_drv->gtOsCfgValuesSem); del_timer_sync(&hif_drv->hConnectTimer); del_timer_sync(&hif_drv->hScanTimer); - kthread_stop(HostIFthreadHandler); + kthread_stop(hif_thread_handler); _fail_mq_: wilc_mq_destroy(&gMsgQHostIF); _fail_: From cb067dcf211fc3b707ad2feecb2986dd7866da9d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:53 +0900 Subject: [PATCH 1774/2431] staging: wilc1000: rename variable gMsgQHostIF This patch renames variable gMsgQHostIF to hif_msg_q to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 109 +++++++++++----------- 1 file changed, 53 insertions(+), 56 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b93776af3b37..72ac25c59a20 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -234,7 +234,7 @@ struct host_if_drv *terminated_handle; bool g_obtainingIP; u8 P2P_LISTEN_STATE; static struct task_struct *hif_thread_handler; -static WILC_MsgQueueHandle gMsgQHostIF; +static WILC_MsgQueueHandle hif_msg_q; static struct semaphore hSemHostIFthrdEnd; struct semaphore hSemDeinitDrvHandle; @@ -2708,7 +2708,7 @@ static void ListenTimerCB(unsigned long arg) msg.drv = hif_drv; msg.body.remain_on_ch.u32ListenSessionID = hif_drv->strHostIfRemainOnChan.u32ListenSessionID; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); } @@ -2894,7 +2894,7 @@ static int hostIFthread(void *pvArg) memset(&msg, 0, sizeof(struct host_if_msg)); while (1) { - wilc_mq_recv(&gMsgQHostIF, &msg, sizeof(struct host_if_msg), &u32Ret); + wilc_mq_recv(&hif_msg_q, &msg, sizeof(struct host_if_msg), &u32Ret); hif_drv = (struct host_if_drv *)msg.drv; if (msg.id == HOST_IF_MSG_EXIT) { PRINT_D(GENERIC_DBG, "THREAD: Exiting HostIfThread\n"); @@ -2904,13 +2904,13 @@ static int hostIFthread(void *pvArg) if ((!g_wilc_initialized)) { PRINT_D(GENERIC_DBG, "--WAIT--"); usleep_range(200 * 1000, 200 * 1000); - wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); continue; } if (msg.id == HOST_IF_MSG_CONNECT && hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_D(HOSTINF_DBG, "Requeue connect request till scan done received\n"); - wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); usleep_range(2 * 1000, 2 * 1000); continue; } @@ -3104,7 +3104,7 @@ static void TimerCB_Scan(unsigned long arg) msg.drv = pvArg; msg.id = HOST_IF_MSG_SCAN_TIMER_FIRED; - wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); } static void TimerCB_Connect(unsigned long arg) @@ -3116,7 +3116,7 @@ static void TimerCB_Connect(unsigned long arg) msg.drv = pvArg; msg.id = HOST_IF_MSG_CONNECT_TIMER_FIRED; - wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); } s32 host_int_remove_key(struct host_if_drv *hif_drv, const u8 *pu8StaAddress) @@ -3150,7 +3150,7 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) msg.drv = hif_drv; msg.body.key_info.attr.wep.index = index; - result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (result) PRINT_ER("Error in sending message queue : Request to remove WEP key\n"); down(&hif_drv->hSemTestKeyBlock); @@ -3179,7 +3179,7 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) msg.drv = hif_drv; msg.body.key_info.attr.wep.index = u8Index; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue : Default key index\n"); down(&hif_drv->hSemTestKeyBlock); @@ -3214,7 +3214,7 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.body.key_info.attr.wep.key_len = (u8WepKeylen); msg.body.key_info.attr.wep.index = u8Keyidx; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); down(&hif_drv->hSemTestKeyBlock); @@ -3258,7 +3258,7 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info.attr.wep.mode = u8mode; msg.body.key_info.attr.wep.auth_type = tenuAuth_type; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue :WEP Key\n"); @@ -3323,7 +3323,7 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.body.key_info.attr.wpa.mode = u8Ciphermode; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: PTK Key\n"); @@ -3386,7 +3386,7 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, msg.body.key_info.attr.wpa.key_len = u8KeyLen; msg.body.key_info.attr.wpa.seq_len = u32KeyRSClen; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue: RX GTK\n"); @@ -3422,7 +3422,7 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at PMKID_LEN); } - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER(" Error in sending messagequeue: PMKID Info\n"); @@ -3470,7 +3470,7 @@ s32 host_int_get_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) msg.body.get_mac_info.u8MacAddress = pu8MacAddress; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get mac address\n"); return -EFAULT; @@ -3492,7 +3492,7 @@ s32 host_int_set_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) memcpy(msg.body.set_mac_info.u8MacAddress, pu8MacAddress, ETH_ALEN); msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: Set mac address\n"); @@ -3591,7 +3591,7 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, else PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", hif_drv->enuHostIFstate); - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Set join request\n"); return -EFAULT; @@ -3624,7 +3624,7 @@ s32 host_int_flush_join_req(struct host_if_drv *hif_drv) msg.id = HOST_IF_MSG_FLUSH_CONNECT; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send message queue: Flush join request\n"); return -EFAULT; @@ -3648,7 +3648,7 @@ s32 host_int_disconnect(struct host_if_drv *hif_drv, u16 u16ReasonCode) msg.id = HOST_IF_MSG_DISCONNECT; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send message queue: disconnect\n"); @@ -3739,7 +3739,7 @@ int host_int_set_mac_chnl_num(struct host_if_drv *hif_drv, u8 channel) msg.body.channel_info.set_ch = channel; msg.drv = hif_drv; - result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (result) { PRINT_ER("wilc mq send fail\n"); return -EINVAL; @@ -3755,7 +3755,7 @@ int host_int_wait_msg_queue_idle(void) struct host_if_msg msg; memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_Q_IDLE; - result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (result) { PRINT_ER("wilc mq send fail\n"); result = -EINVAL; @@ -3776,7 +3776,7 @@ int host_int_set_wfi_drv_handler(struct host_if_drv *hif_drv) msg.body.drv.u32Address = get_id_from_handler(hif_drv); msg.drv = hif_drv; - result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (result) { PRINT_ER("wilc mq send fail\n"); result = -EINVAL; @@ -3795,7 +3795,7 @@ int host_int_set_operation_mode(struct host_if_drv *hif_drv, u32 mode) msg.body.mode.u32Mode = mode; msg.drv = hif_drv; - result = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (result) { PRINT_ER("wilc mq send fail\n"); result = -EINVAL; @@ -3819,7 +3819,7 @@ s32 host_int_get_host_chnl_num(struct host_if_drv *hif_drv, u8 *pu8ChNo) msg.id = HOST_IF_MSG_GET_CHNL; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); down(&hif_drv->hSemGetCHNL); @@ -3851,7 +3851,7 @@ s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, msg.id = HOST_IF_MSG_GET_INACTIVETIME; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Failed to send get host channel param's message queue "); @@ -3901,7 +3901,7 @@ s32 host_int_get_rssi(struct host_if_drv *hif_drv, s8 *ps8Rssi) msg.id = HOST_IF_MSG_GET_RSSI; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; @@ -3931,7 +3931,7 @@ s32 host_int_get_link_speed(struct host_if_drv *hif_drv, s8 *ps8lnkspd) msg.id = HOST_IF_MSG_GET_LINKSPEED; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send GET_LINKSPEED to message queue "); return -EFAULT; @@ -3962,7 +3962,7 @@ s32 host_int_get_statistics(struct host_if_drv *hif_drv, struct rf_info *pstrSta msg.body.data = (char *)pstrStatistics; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; @@ -4011,7 +4011,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.body.scan_info.ies = kmalloc(IEsLen, GFP_KERNEL); memcpy(msg.body.scan_info.ies, pu8IEs, IEsLen); - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Error in sending message queue\n"); return -EINVAL; @@ -4044,7 +4044,7 @@ s32 hif_set_cfg(struct host_if_drv *hif_drv, msg.body.cfg_info.cfg_attr_info = *pstrCfgParamVal; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); return s32Error; @@ -4168,7 +4168,7 @@ static void GetPeriodicRSSI(unsigned long arg) msg.id = HOST_IF_MSG_GET_RSSI; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) { PRINT_ER("Failed to send get host channel param's message queue "); return; @@ -4229,7 +4229,7 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) PRINT_D(HOSTINF_DBG, "INIT: CLIENT COUNT %d\n", clients_count); if (clients_count == 0) { - result = wilc_mq_create(&gMsgQHostIF); + result = wilc_mq_create(&hif_msg_q); if (result < 0) { PRINT_ER("Failed to creat MQ\n"); @@ -4284,7 +4284,7 @@ _fail_timer_2: del_timer_sync(&hif_drv->hScanTimer); kthread_stop(hif_thread_handler); _fail_mq_: - wilc_mq_destroy(&gMsgQHostIF); + wilc_mq_destroy(&hif_msg_q); _fail_: return result; } @@ -4343,14 +4343,13 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) msg.id = HOST_IF_MSG_EXIT; msg.drv = hif_drv; - - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error != 0) PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", s32Error); down(&hSemHostIFthrdEnd); - wilc_mq_destroy(&gMsgQHostIF); + wilc_mq_destroy(&hif_msg_q); } down(&(hif_drv->gtOsCfgValuesSem)); @@ -4394,7 +4393,7 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.body.net_info.buffer = kmalloc(u32Length, GFP_KERNEL); memcpy(msg.body.net_info.buffer, pu8Buffer, u32Length); - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending network info message queue message parameters: Error(%d)\n", s32Error); } @@ -4435,7 +4434,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.body.async_info.buffer = kmalloc(u32Length, GFP_KERNEL); memcpy(msg.body.async_info.buffer, pu8Buffer, u32Length); - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); @@ -4464,7 +4463,7 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) msg.id = HOST_IF_MSG_RCVD_SCAN_COMPLETE; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("Error in sending message queue scan complete parameters: Error(%d)\n", s32Error); } @@ -4499,7 +4498,7 @@ s32 host_int_remain_on_channel(struct host_if_drv *hif_drv, u32 u32SessionID, msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -4523,7 +4522,7 @@ s32 host_int_ListenStateExpired(struct host_if_drv *hif_drv, u32 u32SessionID) msg.drv = hif_drv; msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -4562,7 +4561,7 @@ s32 host_int_frame_register(struct host_if_drv *hif_drv, u16 u16FrameType, bool msg.body.reg_frame.bReg = bReg; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -4612,7 +4611,7 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, pstrSetBeaconParam->tail = NULL; } - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc mq send fail\n"); @@ -4641,7 +4640,7 @@ s32 host_int_del_beacon(struct host_if_drv *hif_drv) msg.drv = hif_drv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -4679,8 +4678,7 @@ s32 host_int_add_station(struct host_if_drv *hif_drv, pstrAddStationMsg->pu8Rates = rates; } - - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -4709,7 +4707,7 @@ s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) else memcpy(pstrDelStationMsg->mac_addr, pu8MacAddr, ETH_ALEN); - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -4757,8 +4755,7 @@ s32 host_int_del_allstation(struct host_if_drv *hif_drv, } pstrDelAllStationMsg->assoc_sta = u8AssocNumb; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); - + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -4799,7 +4796,7 @@ s32 host_int_edit_station(struct host_if_drv *hif_drv, pstrAddStationMsg->pu8Rates = rates; } - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -4831,7 +4828,7 @@ s32 host_int_set_power_mgmt(struct host_if_drv *hif_drv, pstrPowerMgmtParam->enabled = bIsEnabled; pstrPowerMgmtParam->timeout = u32Timeout; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -4861,7 +4858,7 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hif_drv, pstrMulticastFilterParam->enabled = bIsEnabled; pstrMulticastFilterParam->cnt = u32count; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); return s32Error; @@ -5055,7 +5052,7 @@ s32 host_int_delBASession(struct host_if_drv *hif_drv, char *pBSSID, char TID) pBASessionInfo->u8Ted = TID; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -5085,7 +5082,7 @@ s32 host_int_del_All_Rx_BASession(struct host_if_drv *hif_drv, pBASessionInfo->u8Ted = TID; msg.drv = hif_drv; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -5114,7 +5111,7 @@ s32 host_int_setup_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) msg.drv = hif_drv; msg.body.ip_info.idx = idx; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); @@ -5141,7 +5138,7 @@ s32 host_int_get_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) msg.drv = hif_drv; msg.body.ip_info.idx = idx; - s32Error = wilc_mq_send(&gMsgQHostIF, &msg, sizeof(struct host_if_msg)); + s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); if (s32Error) PRINT_ER("wilc_mq_send fail\n"); From 834e0cb01db0dd33cd9b889dce6a01a05fb6daac Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:54 +0900 Subject: [PATCH 1775/2431] staging: wilc1000: rename variable hSemHostIFthrdEnd This patch renames variable hSemHostIFthrdEnd to hif_sema_thread to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 72ac25c59a20..53e981db2b4d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -235,8 +235,7 @@ bool g_obtainingIP; u8 P2P_LISTEN_STATE; static struct task_struct *hif_thread_handler; static WILC_MsgQueueHandle hif_msg_q; -static struct semaphore hSemHostIFthrdEnd; - +static struct semaphore hif_sema_thread; struct semaphore hSemDeinitDrvHandle; static struct semaphore hWaitResponse; struct semaphore hSemHostIntDeinit; @@ -3091,7 +3090,7 @@ static int hostIFthread(void *pvArg) } PRINT_D(HOSTINF_DBG, "Releasing thread exit semaphore\n"); - up(&hSemHostIFthrdEnd); + up(&hif_sema_thread); return 0; } @@ -4214,7 +4213,7 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) PRINT_D(HOSTINF_DBG, "Global handle pointer value=%p\n", hif_drv); if (clients_count == 0) { - sema_init(&hSemHostIFthrdEnd, 0); + sema_init(&hif_sema_thread, 0); sema_init(&hSemDeinitDrvHandle, 0); sema_init(&hSemHostIntDeinit, 1); } @@ -4347,7 +4346,7 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) if (s32Error != 0) PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", s32Error); - down(&hSemHostIFthrdEnd); + down(&hif_sema_thread); wilc_mq_destroy(&hif_msg_q); } From 27ff21681b4362fb8e0623c260603e39c8aa41d5 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:55 +0900 Subject: [PATCH 1776/2431] staging: wilc1000: rename variable hSemDeinitDrvHandle This patch renames variable hSemDeinitDrvHandle to hif_sema_driver to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 53e981db2b4d..e3bfad0146dc 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -236,7 +236,7 @@ u8 P2P_LISTEN_STATE; static struct task_struct *hif_thread_handler; static WILC_MsgQueueHandle hif_msg_q; static struct semaphore hif_sema_thread; -struct semaphore hSemDeinitDrvHandle; +struct semaphore hif_sema_driver; static struct semaphore hWaitResponse; struct semaphore hSemHostIntDeinit; struct timer_list g_hPeriodicRSSI; @@ -364,8 +364,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *hif_drv, pstrHostIfSetDrvHandler->u32Address); if (!hif_drv) - up(&hSemDeinitDrvHandle); - + up(&hif_sema_driver); if (s32Error) { PRINT_ER("Failed to set driver handler\n"); @@ -392,8 +391,7 @@ static s32 Handle_SetOperationMode(struct host_if_drv *hif_drv, if ((pstrHostIfSetOperationMode->u32Mode) == IDLE_MODE) - up(&hSemDeinitDrvHandle); - + up(&hif_sema_driver); if (s32Error) { PRINT_ER("Failed to set driver handler\n"); @@ -4214,7 +4212,7 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) PRINT_D(HOSTINF_DBG, "Global handle pointer value=%p\n", hif_drv); if (clients_count == 0) { sema_init(&hif_sema_thread, 0); - sema_init(&hSemDeinitDrvHandle, 0); + sema_init(&hif_sema_driver, 0); sema_init(&hSemHostIntDeinit, 1); } @@ -4320,7 +4318,7 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) del_timer_sync(&hif_drv->hRemainOnChannel); host_int_set_wfi_drv_handler(NULL); - down(&hSemDeinitDrvHandle); + down(&hif_sema_driver); if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { hif_drv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_ABORTED, NULL, From 413f930eab1111e7591b0494e689309f1dbd34a0 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 14:07:41 +0800 Subject: [PATCH 1777/2431] staging: wilc1000: hif_sema_driver can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e3bfad0146dc..3e728b6bee50 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -236,7 +236,7 @@ u8 P2P_LISTEN_STATE; static struct task_struct *hif_thread_handler; static WILC_MsgQueueHandle hif_msg_q; static struct semaphore hif_sema_thread; -struct semaphore hif_sema_driver; +static struct semaphore hif_sema_driver; static struct semaphore hWaitResponse; struct semaphore hSemHostIntDeinit; struct timer_list g_hPeriodicRSSI; From 2d25af87768e7bc73dd171933f2bbd1464eba1ec Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:56 +0900 Subject: [PATCH 1778/2431] staging: wilc1000: rename variable hWaitResponse This patch renames variable hWaitResponse to hif_sema_wait_response to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 26 +++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3e728b6bee50..452c9beba888 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -237,7 +237,7 @@ static struct task_struct *hif_thread_handler; static WILC_MsgQueueHandle hif_msg_q; static struct semaphore hif_sema_thread; static struct semaphore hif_sema_driver; -static struct semaphore hWaitResponse; +static struct semaphore hif_sema_wait_response; struct semaphore hSemHostIntDeinit; struct timer_list g_hPeriodicRSSI; @@ -520,7 +520,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *hif_drv, PRINT_ER("Failed to get mac address\n"); s32Error = -EFAULT; } - up(&hWaitResponse); + up(&hif_sema_wait_response); return s32Error; } @@ -811,7 +811,7 @@ ERRORHANDLER: static s32 Handle_wait_msg_q_empty(void) { g_wilc_initialized = 0; - up(&hWaitResponse); + up(&hif_sema_wait_response); return 0; } @@ -2223,7 +2223,7 @@ s32 Handle_GetStatistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatis if (s32Error) PRINT_ER("Failed to send scan paramters config packet\n"); - up(&hWaitResponse); + up(&hif_sema_wait_response); return 0; } @@ -2478,7 +2478,7 @@ static void Handle_DelAllSta(struct host_if_drv *hif_drv, ERRORHANDLER: kfree(strWID.val); - up(&hWaitResponse); + up(&hif_sema_wait_response); } static void Handle_DelStation(struct host_if_drv *hif_drv, @@ -2876,7 +2876,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, kfree(strWID.val); - up(&hWaitResponse); + up(&hif_sema_wait_response); return s32Error; @@ -3473,7 +3473,7 @@ s32 host_int_get_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) return -EFAULT; } - down(&hWaitResponse); + down(&hif_sema_wait_response); return s32Error; } @@ -3758,7 +3758,7 @@ int host_int_wait_msg_queue_idle(void) result = -EINVAL; } - down(&hWaitResponse); + down(&hif_sema_wait_response); return result; } @@ -3965,7 +3965,7 @@ s32 host_int_get_statistics(struct host_if_drv *hif_drv, struct rf_info *pstrSta return -EFAULT; } - down(&hWaitResponse); + down(&hif_sema_wait_response); return s32Error; } @@ -4193,7 +4193,7 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) gbScanWhileConnected = false; - sema_init(&hWaitResponse, 0); + sema_init(&hif_sema_wait_response, 0); hif_drv = kzalloc(sizeof(struct host_if_drv), GFP_KERNEL); if (!hif_drv) { @@ -4757,7 +4757,7 @@ s32 host_int_del_allstation(struct host_if_drv *hif_drv, if (s32Error) PRINT_ER("wilc_mq_send fail\n"); - down(&hWaitResponse); + down(&hif_sema_wait_response); return s32Error; @@ -5053,7 +5053,7 @@ s32 host_int_delBASession(struct host_if_drv *hif_drv, char *pBSSID, char TID) if (s32Error) PRINT_ER("wilc_mq_send fail\n"); - down(&hWaitResponse); + down(&hif_sema_wait_response); return s32Error; } @@ -5083,7 +5083,7 @@ s32 host_int_del_All_Rx_BASession(struct host_if_drv *hif_drv, if (s32Error) PRINT_ER("wilc_mq_send fail\n"); - down(&hWaitResponse); + down(&hif_sema_wait_response); return s32Error; } From 440e8993d1258bc6a7d1522dde8b582dd5a1b7d8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:57 +0900 Subject: [PATCH 1779/2431] staging: wilc1000: rename variable hSemHostIntDeinit This patch renames variable hSemHostIntDeinit to hif_sema_deinit to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 452c9beba888..40581bcfa78d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -238,7 +238,7 @@ static WILC_MsgQueueHandle hif_msg_q; static struct semaphore hif_sema_thread; static struct semaphore hif_sema_driver; static struct semaphore hif_sema_wait_response; -struct semaphore hSemHostIntDeinit; +struct semaphore hif_sema_deinit; struct timer_list g_hPeriodicRSSI; @@ -4213,7 +4213,7 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) if (clients_count == 0) { sema_init(&hif_sema_thread, 0); sema_init(&hif_sema_driver, 0); - sema_init(&hSemHostIntDeinit, 1); + sema_init(&hif_sema_deinit, 1); } sema_init(&hif_drv->hSemTestKeyBlock, 0); @@ -4297,7 +4297,7 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) return 0; } - down(&hSemHostIntDeinit); + down(&hif_sema_deinit); terminated_handle = hif_drv; PRINT_D(HOSTINF_DBG, "De-initializing host interface for client %d\n", clients_count); @@ -4359,7 +4359,7 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) clients_count--; terminated_handle = NULL; - up(&hSemHostIntDeinit); + up(&hif_sema_deinit); return s32Error; } @@ -4402,7 +4402,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) int id; struct host_if_drv *hif_drv = NULL; - down(&hSemHostIntDeinit); + down(&hif_sema_deinit); id = ((pu8Buffer[u32Length - 4]) | (pu8Buffer[u32Length - 3] << 8) | (pu8Buffer[u32Length - 2] << 16) | (pu8Buffer[u32Length - 1] << 24)); hif_drv = get_handler_from_id(id); @@ -4411,13 +4411,13 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) if (!hif_drv || hif_drv == terminated_handle) { PRINT_D(HOSTINF_DBG, "Wifi driver handler is equal to NULL\n"); - up(&hSemHostIntDeinit); + up(&hif_sema_deinit); return; } if (!hif_drv->strWILC_UsrConnReq.pfUserConnectResult) { PRINT_ER("Received mac status is not needed when there is no current Connect Reques\n"); - up(&hSemHostIntDeinit); + up(&hif_sema_deinit); return; } @@ -4435,7 +4435,7 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) if (s32Error) PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); - up(&hSemHostIntDeinit); + up(&hif_sema_deinit); } void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) From 172250024cc4b30efde4666e51540010ecd75ee0 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 14:21:32 +0800 Subject: [PATCH 1780/2431] staging: wilc1000: hif_sema_deinit can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 40581bcfa78d..0947e93db0df 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -238,7 +238,7 @@ static WILC_MsgQueueHandle hif_msg_q; static struct semaphore hif_sema_thread; static struct semaphore hif_sema_driver; static struct semaphore hif_sema_wait_response; -struct semaphore hif_sema_deinit; +static struct semaphore hif_sema_deinit; struct timer_list g_hPeriodicRSSI; From 262f55e1543e9f3c837481da695c3531d2c32dcc Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:58 +0900 Subject: [PATCH 1781/2431] staging: wilc1000: rename variable g_hPeriodicRSSI This patch renames variable g_hPeriodicRSSI to periodic_rssi to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0947e93db0df..fcedceb5fbc7 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -239,9 +239,7 @@ static struct semaphore hif_sema_thread; static struct semaphore hif_sema_driver; static struct semaphore hif_sema_wait_response; static struct semaphore hif_sema_deinit; -struct timer_list g_hPeriodicRSSI; - - +struct timer_list periodic_rssi; u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; @@ -4171,8 +4169,8 @@ static void GetPeriodicRSSI(unsigned long arg) return; } } - g_hPeriodicRSSI.data = (unsigned long)hif_drv; - mod_timer(&g_hPeriodicRSSI, jiffies + msecs_to_jiffies(5000)); + periodic_rssi.data = (unsigned long)hif_drv; + mod_timer(&periodic_rssi, jiffies + msecs_to_jiffies(5000)); } @@ -4240,9 +4238,9 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) result = -EFAULT; goto _fail_mq_; } - setup_timer(&g_hPeriodicRSSI, GetPeriodicRSSI, + setup_timer(&periodic_rssi, GetPeriodicRSSI, (unsigned long)hif_drv); - mod_timer(&g_hPeriodicRSSI, jiffies + msecs_to_jiffies(5000)); + mod_timer(&periodic_rssi, jiffies + msecs_to_jiffies(5000)); } setup_timer(&hif_drv->hScanTimer, TimerCB_Scan, 0); @@ -4310,10 +4308,8 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); } - - if (del_timer_sync(&g_hPeriodicRSSI)) { + if (del_timer_sync(&periodic_rssi)) PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); - } del_timer_sync(&hif_drv->hRemainOnChannel); @@ -4334,9 +4330,9 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) memset(&msg, 0, sizeof(struct host_if_msg)); if (clients_count == 1) { - if (del_timer_sync(&g_hPeriodicRSSI)) { + if (del_timer_sync(&periodic_rssi)) PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n"); - } + msg.id = HOST_IF_MSG_EXIT; msg.drv = hif_drv; From 24aadb8bd24999416e75fc301389e102cef5194e Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 14:32:40 +0800 Subject: [PATCH 1782/2431] staging: wilc1000: periodic_rssi can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fcedceb5fbc7..639fd5e013a3 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -239,7 +239,7 @@ static struct semaphore hif_sema_thread; static struct semaphore hif_sema_driver; static struct semaphore hif_sema_wait_response; static struct semaphore hif_sema_deinit; -struct timer_list periodic_rssi; +static struct timer_list periodic_rssi; u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; From a633c0b5d5633d406354a6eb10df838c6dc24632 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:59 +0900 Subject: [PATCH 1783/2431] staging: wilc1000: rename variable gapu8RcvdAssocResp This patch renames variable gapu8RcvdAssocResp to rcv_assoc_resp to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 639fd5e013a3..cc10e6a5a4e1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -243,7 +243,7 @@ static struct timer_list periodic_rssi; u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; -static u8 gapu8RcvdAssocResp[MAX_ASSOC_RESP_FRAME_SIZE]; +static u8 rcv_assoc_resp[MAX_ASSOC_RESP_FRAME_SIZE]; bool gbScanWhileConnected; @@ -1543,10 +1543,10 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, memset(&strConnectInfo, 0, sizeof(tstrConnectInfo)); if (u8MacStatus == MAC_CONNECTED) { - memset(gapu8RcvdAssocResp, 0, MAX_ASSOC_RESP_FRAME_SIZE); + memset(rcv_assoc_resp, 0, MAX_ASSOC_RESP_FRAME_SIZE); host_int_get_assoc_res_info(hif_drv, - gapu8RcvdAssocResp, + rcv_assoc_resp, MAX_ASSOC_RESP_FRAME_SIZE, &u32RcvdAssocRespInfoLen); @@ -1555,7 +1555,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, if (u32RcvdAssocRespInfoLen != 0) { PRINT_D(HOSTINF_DBG, "Parsing association response\n"); - s32Err = ParseAssocRespInfo(gapu8RcvdAssocResp, u32RcvdAssocRespInfoLen, + s32Err = ParseAssocRespInfo(rcv_assoc_resp, u32RcvdAssocRespInfoLen, &pstrConnectRespInfo); if (s32Err) { PRINT_ER("ParseAssocRespInfo() returned error %d\n", s32Err); From ca8540e4d79c37a7128000990079650e5bb3302a Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:00 +0900 Subject: [PATCH 1784/2431] staging: wilc1000: rename variable gbScanWhileConnected This patch renames variable gbScanWhileConnected to scan_while_connected to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index cc10e6a5a4e1..3e5fcd9524c4 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -245,7 +245,7 @@ u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; static u8 rcv_assoc_resp[MAX_ASSOC_RESP_FRAME_SIZE]; -bool gbScanWhileConnected; +bool scan_while_connected; static s8 gs8Rssi; static s8 gs8lnkspd; @@ -912,9 +912,9 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, u32WidsCount++; if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) - gbScanWhileConnected = true; + scan_while_connected = true; else if (hif_drv->enuHostIFstate == HOST_IF_IDLE) - gbScanWhileConnected = false; + scan_while_connected = false; s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, get_id_from_handler(hif_drv)); @@ -1337,8 +1337,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) hif_drv->enuHostIFstate = HOST_IF_IDLE; - gbScanWhileConnected = false; - + scan_while_connected = false; memset(&strConnectInfo, 0, sizeof(tstrConnectInfo)); @@ -1634,7 +1633,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } else { PRINT_D(HOSTINF_DBG, "MAC status : %d and Connect Status : %d\n", u8MacStatus, strConnectInfo.u16ConnectStatus); hif_drv->enuHostIFstate = HOST_IF_IDLE; - gbScanWhileConnected = false; + scan_while_connected = false; } kfree(strConnectInfo.pu8RespIEs); @@ -1695,7 +1694,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } hif_drv->enuHostIFstate = HOST_IF_IDLE; - gbScanWhileConnected = false; + scan_while_connected = false; } else if ((u8MacStatus == MAC_DISCONNECTED) && (hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL)) { @@ -2063,7 +2062,7 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) PRINT_ER("strWILC_UsrConnReq.pfUserConnectResult = NULL\n"); } - gbScanWhileConnected = false; + scan_while_connected = false; hif_drv->enuHostIFstate = HOST_IF_IDLE; @@ -4189,7 +4188,7 @@ s32 host_int_init(struct host_if_drv **hif_drv_handler) PRINT_D(HOSTINF_DBG, "Initializing host interface for client %d\n", clients_count + 1); - gbScanWhileConnected = false; + scan_while_connected = false; sema_init(&hif_sema_wait_response, 0); @@ -4325,7 +4324,7 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) hif_drv->enuHostIFstate = HOST_IF_IDLE; - gbScanWhileConnected = false; + scan_while_connected = false; memset(&msg, 0, sizeof(struct host_if_msg)); From f64321c6ba1ec92918e0bb1a9f440290a891580a Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 14:46:26 +0800 Subject: [PATCH 1785/2431] staging: wilc1000: scan_while_connected can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3e5fcd9524c4..4b87fba4ac81 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -245,7 +245,7 @@ u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; static u8 rcv_assoc_resp[MAX_ASSOC_RESP_FRAME_SIZE]; -bool scan_while_connected; +static bool scan_while_connected; static s8 gs8Rssi; static s8 gs8lnkspd; From 144b7b2336443109f921fb00c1fe1b70da885065 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:01 +0900 Subject: [PATCH 1786/2431] staging: wilc1000: rename variable gs8Rssi This patch renames variable gs8Rssi to rssi to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4b87fba4ac81..1465f2685d50 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -247,7 +247,7 @@ static u8 rcv_assoc_resp[MAX_ASSOC_RESP_FRAME_SIZE]; static bool scan_while_connected; -static s8 gs8Rssi; +static s8 rssi; static s8 gs8lnkspd; static u8 gu8Chnl; static u8 gs8SetIP[2][4]; @@ -2135,7 +2135,7 @@ static void Handle_GetRssi(struct host_if_drv *hif_drv) strWID.id = (u16)WID_RSSI; strWID.type = WID_CHAR; - strWID.val = &gs8Rssi; + strWID.val = &rssi; strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); @@ -3909,9 +3909,7 @@ s32 host_int_get_rssi(struct host_if_drv *hif_drv, s8 *ps8Rssi) return -EFAULT; } - - *ps8Rssi = gs8Rssi; - + *ps8Rssi = rssi; return s32Error; } From 75327a0244b7ba0ef180601d414af6302821a6ff Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:02 +0900 Subject: [PATCH 1787/2431] staging: wilc1000: rename variable gs8lnkspd This patch renames variable gs8lnkspd to link_speed. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1465f2685d50..8a434e093d14 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -248,7 +248,7 @@ static u8 rcv_assoc_resp[MAX_ASSOC_RESP_FRAME_SIZE]; static bool scan_while_connected; static s8 rssi; -static s8 gs8lnkspd; +static s8 link_speed; static u8 gu8Chnl; static u8 gs8SetIP[2][4]; static u8 gs8GetIP[2][4]; @@ -2158,11 +2158,11 @@ static void Handle_GetLinkspeed(struct host_if_drv *hif_drv) s32 s32Error = 0; struct wid strWID; - gs8lnkspd = 0; + link_speed = 0; strWID.id = (u16)WID_LINKSPEED; strWID.type = WID_CHAR; - strWID.val = &gs8lnkspd; + strWID.val = &link_speed; strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); @@ -3937,9 +3937,7 @@ s32 host_int_get_link_speed(struct host_if_drv *hif_drv, s8 *ps8lnkspd) return -EFAULT; } - - *ps8lnkspd = gs8lnkspd; - + *ps8lnkspd = link_speed; return s32Error; } From 95ebb0ffe4e26dbcb75cee57b01119c9f23fccba Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:03 +0900 Subject: [PATCH 1788/2431] staging: wilc1000: rename variable gu8Chnl This patch renames variable gu8Chnl to ch_no to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8a434e093d14..c9faf47ea37f 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -249,7 +249,7 @@ static bool scan_while_connected; static s8 rssi; static s8 link_speed; -static u8 gu8Chnl; +static u8 ch_no; static u8 gs8SetIP[2][4]; static u8 gs8GetIP[2][4]; static u32 gu32InactiveTime; @@ -2107,7 +2107,7 @@ static s32 Handle_GetChnl(struct host_if_drv *hif_drv) strWID.id = (u16)WID_CURRENT_CHANNEL; strWID.type = WID_CHAR; - strWID.val = (s8 *)&gu8Chnl; + strWID.val = (s8 *)&ch_no; strWID.size = sizeof(char); PRINT_D(HOSTINF_DBG, "Getting channel value\n"); @@ -3818,7 +3818,7 @@ s32 host_int_get_host_chnl_num(struct host_if_drv *hif_drv, u8 *pu8ChNo) PRINT_ER("wilc mq send fail\n"); down(&hif_drv->hSemGetCHNL); - *pu8ChNo = gu8Chnl; + *pu8ChNo = ch_no; return s32Error; From 078b1e98be884ae0296aeaae657e65b3f98d4080 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:04 +0900 Subject: [PATCH 1789/2431] staging: wilc1000: rename variable gs8SetIP This patch renames variable gs8SetIP to set_ip to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c9faf47ea37f..592b689d1144 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -250,7 +250,7 @@ static bool scan_while_connected; static s8 rssi; static s8 link_speed; static u8 ch_no; -static u8 gs8SetIP[2][4]; +static u8 set_ip[2][4]; static u8 gs8GetIP[2][4]; static u32 gu32InactiveTime; static u8 gu8DelBcn; @@ -411,7 +411,7 @@ s32 Handle_set_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) PRINT_INFO(HOSTINF_DBG, "Indx = %d, Handling set IP = %pI4\n", idx, pu8IPAddr); - memcpy(gs8SetIP[idx], pu8IPAddr, IP_ALEN); + memcpy(set_ip[idx], pu8IPAddr, IP_ALEN); strWID.id = (u16)WID_IP_ADDRESS; strWID.type = WID_STR; @@ -454,8 +454,8 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) kfree(strWID.val); - if (memcmp(gs8GetIP[idx], gs8SetIP[idx], IP_ALEN) != 0) - host_int_setup_ipaddress(hif_drv, gs8SetIP[idx], idx); + if (memcmp(gs8GetIP[idx], set_ip[idx], IP_ALEN) != 0) + host_int_setup_ipaddress(hif_drv, set_ip[idx], idx); if (s32Error != 0) { PRINT_ER("Failed to get IP address\n"); From 1e75d01c6da6ac7fc6382f999a0cecb5cff32f0e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:05 +0900 Subject: [PATCH 1790/2431] staging: wilc1000: rename variable gs8GetIP This patch renames variable gs8GetIP to get_ip to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 592b689d1144..f64b2052838d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -251,7 +251,7 @@ static s8 rssi; static s8 link_speed; static u8 ch_no; static u8 set_ip[2][4]; -static u8 gs8GetIP[2][4]; +static u8 get_ip[2][4]; static u32 gu32InactiveTime; static u8 gu8DelBcn; static u32 gu32WidConnRstHack; @@ -450,11 +450,11 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.val); - memcpy(gs8GetIP[idx], strWID.val, IP_ALEN); + memcpy(get_ip[idx], strWID.val, IP_ALEN); kfree(strWID.val); - if (memcmp(gs8GetIP[idx], set_ip[idx], IP_ALEN) != 0) + if (memcmp(get_ip[idx], set_ip[idx], IP_ALEN) != 0) host_int_setup_ipaddress(hif_drv, set_ip[idx], idx); if (s32Error != 0) { @@ -463,7 +463,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) } PRINT_INFO(HOSTINF_DBG, "IP address retrieved:: u8IfIdx = %d\n", idx); - PRINT_INFO(HOSTINF_DBG, "%pI4\n", gs8GetIP[idx]); + PRINT_INFO(HOSTINF_DBG, "%pI4\n", get_ip[idx]); PRINT_INFO(HOSTINF_DBG, "\n"); return s32Error; From ad26906ff6a241f8b114966250ab543ebbfcef9b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:06 +0900 Subject: [PATCH 1791/2431] staging: wilc1000: rename variable gu32InactiveTime This patch renames variable gu32InactiveTime to inactive_time to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f64b2052838d..1b010ef537fa 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -252,7 +252,7 @@ static s8 link_speed; static u8 ch_no; static u8 set_ip[2][4]; static u8 get_ip[2][4]; -static u32 gu32InactiveTime; +static u32 inactive_time; static u8 gu8DelBcn; static u32 gu32WidConnRstHack; @@ -2257,7 +2257,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, strWID.id = (u16)WID_GET_INACTIVE_TIME; strWID.type = WID_INT; - strWID.val = (s8 *)&gu32InactiveTime; + strWID.val = (s8 *)&inactive_time; strWID.size = sizeof(u32); @@ -2269,8 +2269,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, return -EFAULT; } - - PRINT_D(CFG80211_DBG, "Getting inactive time : %d\n", gu32InactiveTime); + PRINT_D(CFG80211_DBG, "Getting inactive time : %d\n", inactive_time); up(&hif_drv->hSemInactiveTime); @@ -3851,7 +3850,7 @@ s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, down(&hif_drv->hSemInactiveTime); - *pu32InactiveTime = gu32InactiveTime; + *pu32InactiveTime = inactive_time; return s32Error; } From a74c7bf86c62b0cfd02d127ee00192ccbab6a9b1 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:07 +0900 Subject: [PATCH 1792/2431] staging: wilc1000: rename variable gu8DelBcn This patch renames variable gu8DelBcn to del_beacon to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1b010ef537fa..a2a865fc1278 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -253,7 +253,7 @@ static u8 ch_no; static u8 set_ip[2][4]; static u8 get_ip[2][4]; static u32 inactive_time; -static u8 gu8DelBcn; +static u8 del_beacon; static u32 gu32WidConnRstHack; u8 *gu8FlushedJoinReq; @@ -2343,7 +2343,7 @@ static void Handle_DelBeacon(struct host_if_drv *hif_drv) strWID.id = (u16)WID_DEL_BEACON; strWID.type = WID_CHAR; strWID.size = sizeof(char); - strWID.val = &gu8DelBcn; + strWID.val = &del_beacon; if (strWID.val == NULL) return; From 7a9adb051cd182d25ba050de8ff99fad83efda7e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:08 +0900 Subject: [PATCH 1793/2431] staging: wilc1000: remove unused variable gu32WidConnRstHack This patch removes unused the variable gu32WidConnRstHack. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a2a865fc1278..38fe63256e54 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -254,7 +254,6 @@ static u8 set_ip[2][4]; static u8 get_ip[2][4]; static u32 inactive_time; static u8 del_beacon; -static u32 gu32WidConnRstHack; u8 *gu8FlushedJoinReq; u8 *gu8FlushedInfoElemAsoc; @@ -1198,7 +1197,6 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, pu8CurrByte = strWIDList[u32WidsCount].val; u32WidsCount++; - gu32WidConnRstHack = 0; if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { memcpy(gu8FlushedJoinReq, pu8CurrByte, gu32FlushedJoinReqSize); From 044a641014b3da1acdd9edc7e7b8716f5b145084 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:09 +0900 Subject: [PATCH 1794/2431] staging: wilc1000: rename variable gu8FlushedJoinReq This patch renames variable gu8FlushedJoinReq to join_req to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 28 +++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 38fe63256e54..9b084ebafccd 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -255,7 +255,7 @@ static u8 get_ip[2][4]; static u32 inactive_time; static u8 del_beacon; -u8 *gu8FlushedJoinReq; +u8 *join_req; u8 *gu8FlushedInfoElemAsoc; u8 gu8Flushed11iMode; u8 gu8FlushedAuthType; @@ -1100,7 +1100,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { gu32FlushedJoinReqSize = strWIDList[u32WidsCount].size; - gu8FlushedJoinReq = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); + join_req = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); } if (strWIDList[u32WidsCount].val == NULL) { s32Error = -EFAULT; @@ -1199,7 +1199,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { - memcpy(gu8FlushedJoinReq, pu8CurrByte, gu32FlushedJoinReqSize); + memcpy(join_req, pu8CurrByte, gu32FlushedJoinReqSize); gu8FlushedJoinReqDrvHandler = hif_drv; } @@ -1303,7 +1303,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; strWIDList[u32WidsCount].size = gu32FlushedJoinReqSize; - strWIDList[u32WidsCount].val = (s8 *)gu8FlushedJoinReq; + strWIDList[u32WidsCount].val = (s8 *)join_req; pu8CurrByte = strWIDList[u32WidsCount].val; pu8CurrByte += FLUSHED_BYTE_POS; @@ -1385,9 +1385,9 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) eth_zero_addr(u8ConnectedSSID); - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { - kfree(gu8FlushedJoinReq); - gu8FlushedJoinReq = NULL; + if (join_req != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + kfree(join_req); + join_req = NULL; } if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedInfoElemAsoc); @@ -1682,9 +1682,9 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { - kfree(gu8FlushedJoinReq); - gu8FlushedJoinReq = NULL; + if (join_req != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + kfree(join_req); + join_req = NULL; } if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedInfoElemAsoc); @@ -2072,9 +2072,9 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); - if (gu8FlushedJoinReq != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { - kfree(gu8FlushedJoinReq); - gu8FlushedJoinReq = NULL; + if (join_req != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + kfree(join_req); + join_req = NULL; } if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { kfree(gu8FlushedInfoElemAsoc); @@ -3600,7 +3600,7 @@ s32 host_int_flush_join_req(struct host_if_drv *hif_drv) s32 s32Error = 0; struct host_if_msg msg; - if (!gu8FlushedJoinReq) { + if (!join_req) { s32Error = -EFAULT; return s32Error; } From ef5991947fda0d4003417c7457386c294c388cb7 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 15:04:15 +0800 Subject: [PATCH 1795/2431] staging: wilc1000: join_req can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9b084ebafccd..4f39f94f48f1 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -255,7 +255,7 @@ static u8 get_ip[2][4]; static u32 inactive_time; static u8 del_beacon; -u8 *join_req; +static u8 *join_req; u8 *gu8FlushedInfoElemAsoc; u8 gu8Flushed11iMode; u8 gu8FlushedAuthType; From 48ce24654e3ae51711fa57ec5e23de6e64036ee9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:10 +0900 Subject: [PATCH 1796/2431] staging: wilc1000: rename variable gu8FlushedInfoElemAsoc This patch renames variable gu8FlushedInfoElemAsoc to info_element to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 29 +++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4f39f94f48f1..4095064b6ff2 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -256,7 +256,7 @@ static u32 inactive_time; static u8 del_beacon; static u8 *join_req; -u8 *gu8FlushedInfoElemAsoc; +u8 *info_element; u8 gu8Flushed11iMode; u8 gu8FlushedAuthType; u32 gu32FlushedJoinReqSize; @@ -1063,8 +1063,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { gu32FlushedInfoElemAsocSize = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; - gu8FlushedInfoElemAsoc = kmalloc(gu32FlushedInfoElemAsocSize, GFP_KERNEL); - memcpy(gu8FlushedInfoElemAsoc, hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, + info_element = kmalloc(gu32FlushedInfoElemAsocSize, GFP_KERNEL); + memcpy(info_element, hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, gu32FlushedInfoElemAsocSize); } } @@ -1282,7 +1282,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; - strWIDList[u32WidsCount].val = gu8FlushedInfoElemAsoc; + strWIDList[u32WidsCount].val = info_element; strWIDList[u32WidsCount].size = gu32FlushedInfoElemAsocSize; u32WidsCount++; @@ -1389,9 +1389,10 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) kfree(join_req); join_req = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { - kfree(gu8FlushedInfoElemAsoc); - gu8FlushedInfoElemAsoc = NULL; + + if (info_element != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + kfree(info_element); + info_element = NULL; } return s32Error; @@ -1686,9 +1687,10 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, kfree(join_req); join_req = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { - kfree(gu8FlushedInfoElemAsoc); - gu8FlushedInfoElemAsoc = NULL; + + if (info_element != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + kfree(info_element); + info_element = NULL; } hif_drv->enuHostIFstate = HOST_IF_IDLE; @@ -2076,9 +2078,10 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) kfree(join_req); join_req = NULL; } - if (gu8FlushedInfoElemAsoc != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { - kfree(gu8FlushedInfoElemAsoc); - gu8FlushedInfoElemAsoc = NULL; + + if (info_element != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + kfree(info_element); + info_element = NULL; } } From 1bd9d44c510622bf41bdf2bd77a9d8fb44f2f89c Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:11 +0900 Subject: [PATCH 1797/2431] staging: wilc1000: rename variable gu8Flushed11iMode This patch renames variable gu8Flushed11iMode to mode_11i to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4095064b6ff2..3d2f0bdce8da 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -257,7 +257,7 @@ static u8 del_beacon; static u8 *join_req; u8 *info_element; -u8 gu8Flushed11iMode; +u8 mode_11i; u8 gu8FlushedAuthType; u32 gu32FlushedJoinReqSize; u32 gu32FlushedInfoElemAsocSize; @@ -1075,7 +1075,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) - gu8Flushed11iMode = hif_drv->strWILC_UsrConnReq.u8security; + mode_11i = hif_drv->strWILC_UsrConnReq.u8security; PRINT_INFO(HOSTINF_DBG, "Encrypt Mode = %x\n", hif_drv->strWILC_UsrConnReq.u8security); @@ -1289,7 +1289,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].val = (s8 *)(&(gu8Flushed11iMode)); + strWIDList[u32WidsCount].val = (s8 *)(&(mode_11i)); u32WidsCount++; From 23047d5b1e95c003dd6e43d930ace593c53c46ee Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 15:18:34 +0800 Subject: [PATCH 1798/2431] staging: wilc1000: mode_11i can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3d2f0bdce8da..8b41ba1c25de 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -257,7 +257,7 @@ static u8 del_beacon; static u8 *join_req; u8 *info_element; -u8 mode_11i; +static u8 mode_11i; u8 gu8FlushedAuthType; u32 gu32FlushedJoinReqSize; u32 gu32FlushedInfoElemAsocSize; From fba4989eb25a02b21c7a8cfc892917a1747590b8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:12 +0900 Subject: [PATCH 1799/2431] staging: wilc1000: rename variable gu8FlushedAuthType This patch renames variable gu8FlushedAuthType to auth_type to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8b41ba1c25de..658417cca7b8 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -258,7 +258,7 @@ static u8 del_beacon; static u8 *join_req; u8 *info_element; static u8 mode_11i; -u8 gu8FlushedAuthType; +u8 auth_type; u32 gu32FlushedJoinReqSize; u32 gu32FlushedInfoElemAsocSize; struct host_if_drv *gu8FlushedJoinReqDrvHandler; @@ -1087,7 +1087,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) - gu8FlushedAuthType = (u8)hif_drv->strWILC_UsrConnReq.tenuAuth_type; + auth_type = (u8)hif_drv->strWILC_UsrConnReq.tenuAuth_type; PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", hif_drv->strWILC_UsrConnReq.tenuAuth_type); PRINT_D(HOSTINF_DBG, "Connecting to network of SSID %s on channel %d\n", @@ -1297,7 +1297,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) strWIDList[u32WidsCount].id = (u16)WID_AUTH_TYPE; strWIDList[u32WidsCount].type = WID_CHAR; strWIDList[u32WidsCount].size = sizeof(char); - strWIDList[u32WidsCount].val = (s8 *)(&gu8FlushedAuthType); + strWIDList[u32WidsCount].val = (s8 *)(&auth_type); u32WidsCount++; strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; From 0626baaacfe36bcbc2c65ea7d210752ed29c9293 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:13 +0900 Subject: [PATCH 1800/2431] staging: wilc1000: rename variable gu32FlushedJoinReqSize This patch renames variable gu32FlushedJoinReqSize to join_req_size to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 658417cca7b8..681e1de3e040 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -259,7 +259,7 @@ static u8 *join_req; u8 *info_element; static u8 mode_11i; u8 auth_type; -u32 gu32FlushedJoinReqSize; +u32 join_req_size; u32 gu32FlushedInfoElemAsocSize; struct host_if_drv *gu8FlushedJoinReqDrvHandler; #define REAL_JOIN_REQ 0 @@ -1099,8 +1099,8 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].val = kmalloc(strWIDList[u32WidsCount].size, GFP_KERNEL); if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { - gu32FlushedJoinReqSize = strWIDList[u32WidsCount].size; - join_req = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); + join_req_size = strWIDList[u32WidsCount].size; + join_req = kmalloc(join_req_size, GFP_KERNEL); } if (strWIDList[u32WidsCount].val == NULL) { s32Error = -EFAULT; @@ -1199,7 +1199,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { - memcpy(join_req, pu8CurrByte, gu32FlushedJoinReqSize); + memcpy(join_req, pu8CurrByte, join_req_size); gu8FlushedJoinReqDrvHandler = hif_drv; } @@ -1302,7 +1302,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) strWIDList[u32WidsCount].id = (u16)WID_JOIN_REQ_EXTENDED; strWIDList[u32WidsCount].type = WID_STR; - strWIDList[u32WidsCount].size = gu32FlushedJoinReqSize; + strWIDList[u32WidsCount].size = join_req_size; strWIDList[u32WidsCount].val = (s8 *)join_req; pu8CurrByte = strWIDList[u32WidsCount].val; From dfef7b84e8772e297ceeeb388f25e0bc611797f8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:14 +0900 Subject: [PATCH 1801/2431] staging: wilc1000: rename variable gu32FlushedInfoElemAsocSize This patch renames variable gu32FlushedInfoElemAsocSize to info_element_size to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 681e1de3e040..2ae1078e02db 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -260,7 +260,7 @@ u8 *info_element; static u8 mode_11i; u8 auth_type; u32 join_req_size; -u32 gu32FlushedInfoElemAsocSize; +u32 info_element_size; struct host_if_drv *gu8FlushedJoinReqDrvHandler; #define REAL_JOIN_REQ 0 #define FLUSHED_JOIN_REQ 1 @@ -1061,11 +1061,10 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, u32WidsCount++; if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { - - gu32FlushedInfoElemAsocSize = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; - info_element = kmalloc(gu32FlushedInfoElemAsocSize, GFP_KERNEL); + info_element_size = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; + info_element = kmalloc(info_element_size, GFP_KERNEL); memcpy(info_element, hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, - gu32FlushedInfoElemAsocSize); + info_element_size); } } strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; @@ -1283,7 +1282,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) strWIDList[u32WidsCount].id = WID_INFO_ELEMENT_ASSOCIATE; strWIDList[u32WidsCount].type = WID_BIN_DATA; strWIDList[u32WidsCount].val = info_element; - strWIDList[u32WidsCount].size = gu32FlushedInfoElemAsocSize; + strWIDList[u32WidsCount].size = info_element_size; u32WidsCount++; strWIDList[u32WidsCount].id = (u16)WID_11I_MODE; From 5e0e7c2e4594f9ec85f999b98d186c66403ff1b4 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 15:47:44 +0800 Subject: [PATCH 1802/2431] staging: wilc1000: info_element_size can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2ae1078e02db..f6c61dd01237 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -260,7 +260,7 @@ u8 *info_element; static u8 mode_11i; u8 auth_type; u32 join_req_size; -u32 info_element_size; +static u32 info_element_size; struct host_if_drv *gu8FlushedJoinReqDrvHandler; #define REAL_JOIN_REQ 0 #define FLUSHED_JOIN_REQ 1 From 870515c113899cc9595cfe507c4262881a2a1df0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:15 +0900 Subject: [PATCH 1803/2431] staging: wilc1000: rename variable gu8FlushedJoinReqDrvHandler This patch renames variable gu8FlushedJoinReqDrvHandler to join_req_drv to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f6c61dd01237..0170842a657b 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -261,7 +261,7 @@ static u8 mode_11i; u8 auth_type; u32 join_req_size; static u32 info_element_size; -struct host_if_drv *gu8FlushedJoinReqDrvHandler; +struct host_if_drv *join_req_drv; #define REAL_JOIN_REQ 0 #define FLUSHED_JOIN_REQ 1 #define FLUSHED_BYTE_POS 79 @@ -1199,7 +1199,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, if (memcmp("DIRECT-", pstrHostIFconnectAttr->ssid, 7)) { memcpy(join_req, pu8CurrByte, join_req_size); - gu8FlushedJoinReqDrvHandler = hif_drv; + join_req_drv = hif_drv; } PRINT_D(GENERIC_DBG, "send HOST_IF_WAITING_CONN_RESP\n"); @@ -1311,7 +1311,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) u32WidsCount++; s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, - get_id_from_handler(gu8FlushedJoinReqDrvHandler)); + get_id_from_handler(join_req_drv)); if (s32Error) { PRINT_ER("failed to send config packet\n"); s32Error = -EINVAL; @@ -1384,12 +1384,12 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) eth_zero_addr(u8ConnectedSSID); - if (join_req != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + if (join_req != NULL && join_req_drv == hif_drv) { kfree(join_req); join_req = NULL; } - if (info_element != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + if (info_element != NULL && join_req_drv == hif_drv) { kfree(info_element); info_element = NULL; } @@ -1682,12 +1682,12 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); - if (join_req != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + if (join_req != NULL && join_req_drv == hif_drv) { kfree(join_req); join_req = NULL; } - if (info_element != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + if (info_element != NULL && join_req_drv == hif_drv) { kfree(info_element); info_element = NULL; } @@ -2073,12 +2073,12 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); - if (join_req != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + if (join_req != NULL && join_req_drv == hif_drv) { kfree(join_req); join_req = NULL; } - if (info_element != NULL && gu8FlushedJoinReqDrvHandler == hif_drv) { + if (info_element != NULL && join_req_drv == hif_drv) { kfree(info_element); info_element = NULL; } From 23fba59de00aeeb587db16b450aea7c497cde8ed Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 15:59:53 +0800 Subject: [PATCH 1804/2431] staging: wilc1000: join_req_drv can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0170842a657b..3dbb74ebafa0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -261,7 +261,7 @@ static u8 mode_11i; u8 auth_type; u32 join_req_size; static u32 info_element_size; -struct host_if_drv *join_req_drv; +static struct host_if_drv *join_req_drv; #define REAL_JOIN_REQ 0 #define FLUSHED_JOIN_REQ 1 #define FLUSHED_BYTE_POS 79 From baba7c743a91da1fa5946da98ce86eddfe81a5fb Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:48:29 +0530 Subject: [PATCH 1805/2431] staging: wilc1000: wilc_wfi_cfgoperations: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 08ba5ba9318d..be5086fca10a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -546,7 +546,7 @@ static void CfgConnectResult(enum conn_event enuConnDisconnEvent, if (enuConnDisconnEvent == CONN_DISCONN_EVENT_CONN_RESP) { /*Initialization*/ - u16 u16ConnectStatus = WLAN_STATUS_SUCCESS; + u16 u16ConnectStatus; u16ConnectStatus = pstrConnectInfo->u16ConnectStatus; From b5c84cd86e86d929a28eb322659f69db353cabb9 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:49:47 +0530 Subject: [PATCH 1806/2431] staging: wilc1000: coreconfigurator: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 39e463c6f9a8..3d45cc347a32 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -114,7 +114,7 @@ enum info_element_id { /* response frame. */ static inline u16 get_beacon_period(u8 *data) { - u16 bcn_per = 0; + u16 bcn_per; bcn_per = data[0]; bcn_per |= (data[1] << 8); @@ -256,7 +256,7 @@ static inline u16 get_cap_info(u8 *data) /* response frame. */ static inline u16 get_assoc_resp_cap_info(u8 *data) { - u16 cap_info = 0; + u16 cap_info; cap_info = data[0]; cap_info |= (data[1] << 8); @@ -268,7 +268,7 @@ static inline u16 get_assoc_resp_cap_info(u8 *data) /* association response frame and returns association status code */ static inline u16 get_asoc_status(u8 *data) { - u16 asoc_status = 0; + u16 asoc_status; asoc_status = data[3]; asoc_status = (asoc_status << 8) | data[2]; @@ -280,7 +280,7 @@ static inline u16 get_asoc_status(u8 *data) /* response frame */ static inline u16 get_asoc_id(u8 *data) { - u16 asoc_id = 0; + u16 asoc_id; asoc_id = data[4]; asoc_id |= (data[5] << 8); @@ -290,7 +290,7 @@ static inline u16 get_asoc_id(u8 *data) u8 *get_tim_elm(u8 *pu8msa, u16 u16RxLen, u16 u16TagParamOffset) { - u16 u16index = 0; + u16 u16index; /*************************************************************************/ /* Beacon Frame - Frame Body */ From 543f5b1313b758d38f8ac9c2492a36400a0f0966 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 16 Oct 2015 10:47:11 +0530 Subject: [PATCH 1807/2431] Staging: wilc1000: Use kmemdup instead of kmalloc and memcpy Replace kmalloc followed by memcpy with kmemdup Problem found using coccicheck Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3dbb74ebafa0..38fead44cce0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1750,16 +1750,15 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[2].val = (s8 *)(&(pstrHostIFkeyAttr->attr.wep.index)); strWIDList[2].size = sizeof(char); - pu8keybuf = kmalloc(pstrHostIFkeyAttr->attr.wep.key_len, GFP_KERNEL); + pu8keybuf = kmemdup(pstrHostIFkeyAttr->attr.wep.key, + pstrHostIFkeyAttr->attr.wep.key_len, + GFP_KERNEL); if (pu8keybuf == NULL) { PRINT_ER("No buffer to send Key\n"); return -1; } - memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wep.key, - pstrHostIFkeyAttr->attr.wep.key_len); - kfree(pstrHostIFkeyAttr->attr.wep.key); strWIDList[3].id = (u16)WID_WEP_KEY_VALUE; @@ -4579,21 +4578,20 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, pstrSetBeaconParam->interval = u32Interval; pstrSetBeaconParam->dtim_period = u32DTIMPeriod; pstrSetBeaconParam->head_len = u32HeadLen; - pstrSetBeaconParam->head = kmalloc(u32HeadLen, GFP_KERNEL); + pstrSetBeaconParam->head = kmemdup(pu8Head, u32HeadLen, GFP_KERNEL); if (pstrSetBeaconParam->head == NULL) { s32Error = -ENOMEM; goto ERRORHANDLER; } - memcpy(pstrSetBeaconParam->head, pu8Head, u32HeadLen); pstrSetBeaconParam->tail_len = u32TailLen; if (u32TailLen > 0) { - pstrSetBeaconParam->tail = kmalloc(u32TailLen, GFP_KERNEL); + pstrSetBeaconParam->tail = kmemdup(pu8Tail, u32TailLen, + GFP_KERNEL); if (pstrSetBeaconParam->tail == NULL) { s32Error = -ENOMEM; goto ERRORHANDLER; } - memcpy(pstrSetBeaconParam->tail, pu8Tail, u32TailLen); } else { pstrSetBeaconParam->tail = NULL; } From 7e4e87d32804c6a14e41b83c5b3f70ebdc3f0d9e Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Fri, 16 Oct 2015 16:32:26 +0100 Subject: [PATCH 1808/2431] staging: wilc1000: Remove boolean comparisons Boolean tests do not need explicit comparison to true or false. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index be5086fca10a..bcbf1bd29a50 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -362,7 +362,7 @@ static void CfgScanResult(enum scan_event enuScanEvent, tstrNetworkInfo *pstrNet struct cfg80211_bss *bss = NULL; priv = (struct wilc_priv *)pUserVoid; - if (priv->bCfgScanning == true) { + if (priv->bCfgScanning) { if (enuScanEvent == SCAN_EVENT_NETWORK_FOUND) { wiphy = priv->dev->ieee80211_ptr->wiphy; @@ -390,7 +390,7 @@ static void CfgScanResult(enum scan_event enuScanEvent, tstrNetworkInfo *pstrNet "BeaconPeriod: %d\n", channel->center_freq, (((s32)pstrNetworkInfo->s8rssi) * 100), pstrNetworkInfo->u16CapInfo, pstrNetworkInfo->u16BeaconPeriod); - if (pstrNetworkInfo->bNewNetwork == true) { + if (pstrNetworkInfo->bNewNetwork) { if (priv->u32RcvdChCount < MAX_NUM_SCANNED_NETWORKS) { /* TODO: mostafa: to be replaced by */ /* max_scan_ssids */ PRINT_D(CFG80211_DBG, "Network %s found\n", pstrNetworkInfo->au8ssid); @@ -1946,7 +1946,7 @@ void WILC_WFI_p2p_rx (struct net_device *dev, u8 *buff, u32 size) if (ieee80211_is_action(buff[FRAME_TYPE_ID])) { PRINT_D(GENERIC_DBG, "Rx Action Frame Type: %x %x\n", buff[ACTION_SUBTYPE_ID], buff[P2P_PUB_ACTION_SUBTYPE]); - if (priv->bCfgScanning == true && time_after_eq(jiffies, (unsigned long)pstrWFIDrv->u64P2p_MgmtTimeout)) { + if (priv->bCfgScanning && time_after_eq(jiffies, (unsigned long)pstrWFIDrv->u64P2p_MgmtTimeout)) { PRINT_D(GENERIC_DBG, "Receiving action frames from wrong channels\n"); return; } @@ -2358,7 +2358,7 @@ static int mgmt_tx_cancel_wait(struct wiphy *wiphy, PRINT_D(GENERIC_DBG, "Tx Cancel wait :%lu\n", jiffies); pstrWFIDrv->u64P2p_MgmtTimeout = jiffies; - if (priv->bInP2PlistenState == false) { + if (!priv->bInP2PlistenState) { cfg80211_remain_on_channel_expired(priv->wdev, priv->strRemainOnChanParams.u64ListenCookie, priv->strRemainOnChanParams.pstrListenChan, From 92af89d37c415c61c676bb28ae7facdef1821477 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 16 Oct 2015 22:05:34 +0200 Subject: [PATCH 1809/2431] staging: wilc1000: restore wilc_spi_dev variable A recent change to wilc1000 accidentally deleted an important variable, so we now get a build error when the SPI mode is selected: ERROR: "wilc_spi_dev" [drivers/staging/wilc1000/wilc1000.ko] undefined! This partially reverts the broken commit to put the variable back. Signed-off-by: Arnd Bergmann Fixes: 56293ff232b9 ("staging: wilc1000: linux_wlan_spi: include header") Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan_spi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 760b72a9a6ff..039d06192d6b 100644 --- a/drivers/staging/wilc1000/linux_wlan_spi.c +++ b/drivers/staging/wilc1000/linux_wlan_spi.c @@ -41,6 +41,7 @@ static u32 SPEED = MIN_SPEED; +struct spi_device *wilc_spi_dev; void linux_spi_deinit(void *vp); static int __init wilc_bus_probe(struct spi_device *spi) From bcc43a4b5ed75285aeacf2cf8d9b96d6379fb429 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 16 Oct 2015 22:45:39 +0200 Subject: [PATCH 1810/2431] staging/wilc: fix Kconfig dependencies, second try My first attempt to fix the Kconfig logic for wilc1000 was incomplete, as it missed the case where SPI is built-in while SDIO is modular and wilc1000 is configured as built-in in SPI mode (or vice versa), which would still lead to a link failure. This works around the problem by adding an intermediate Kconfig symbol "WILC1000_DRIVER" that controls visibility of the SDIO and SPI sub-drivers, so we can control the dependencies better. Signed-off-by: Arnd Bergmann Fixes: 9535ebc5e9cc ("staging/wilc1000: fix Kconfig dependencies") Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/Kconfig | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/Kconfig b/drivers/staging/wilc1000/Kconfig index 59ccecc316df..ee51b4278088 100644 --- a/drivers/staging/wilc1000/Kconfig +++ b/drivers/staging/wilc1000/Kconfig @@ -1,14 +1,16 @@ -config WILC1000 - tristate "WILC1000 support (WiFi only)" - depends on !S390 +config WILC1000_DRIVER + bool "WILC1000 support (WiFi only)" depends on CFG80211 && WEXT_CORE && INET - depends on MMC || SPI ---help--- This module only support IEEE 802.11n WiFi. +if WILC1000_DRIVER + +config WILC1000 + tristate + choice prompt "Memory Allocation" - depends on WILC1000 default WILC1000_PREALLOCATE_AT_LOADING_DRIVER config WILC1000_PREALLOCATE_AT_LOADING_DRIVER @@ -29,12 +31,12 @@ endchoice choice prompt "Bus Type" - depends on WILC1000 default WILC1000_SDIO - config WILC1000_SDIO +config WILC1000_SDIO bool "SDIO support" depends on MMC + select WILC1000 ---help--- This module adds support for the SDIO interface of adapters using WILC1000 chipset. The Atmel WILC1000 SDIO is a full speed interface. @@ -45,8 +47,9 @@ choice To use this interface, pin9 (SDIO_SPI_CFG) must be grounded. Select this if your platform is using the SDIO bus. - config WILC1000_SPI +config WILC1000_SPI depends on SPI + select WILC1000 bool "SPI support" ---help--- This module adds support for the SPI interface of adapters using @@ -60,7 +63,7 @@ endchoice config WILC1000_HW_OOB_INTR bool "Use out of band interrupt" - depends on WILC1000 && WILC1000_SDIO + depends on WILC1000_SDIO default n ---help--- This option enables out-of-band interrupt support for the WILC1000 @@ -68,3 +71,5 @@ config WILC1000_HW_OOB_INTR mechanism for SDIO host controllers that don't support SDIO interrupt. Select this option If the SDIO host controller in your platform doesn't support SDIO time devision interrupt. + +endif From 7751e0e2d2f2dd75e8e7adf96750ac403b799874 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 09:26:44 +0300 Subject: [PATCH 1811/2431] staging: sm750fb: merge calcPLL and getPllValue into getChipClock The getChipClock function is used only to get MXCLK frequency, which makes most of getPllValue function unused and thus. The detection of MXCLK frequency may be implemented directly in getChipClock rendering getPllValue and calcPLL unused. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 53 +++++---------------------- 1 file changed, 10 insertions(+), 43 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 8b8ec14965a1..a27cde95be1d 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -34,54 +34,21 @@ logical_chip_type_t getChipType(void) return chip; } -static inline unsigned int calcPLL(pll_value_t *pPLL) -{ - return (pPLL->inputFreq * pPLL->M / pPLL->N / (1 << pPLL->OD) / - (1 << pPLL->POD)); -} - -static unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL) -{ - unsigned int ulPllReg = 0; - - pPLL->inputFreq = DEFAULT_INPUT_CLOCK; - pPLL->clockType = clockType; - - switch (clockType) { - case MXCLK_PLL: - ulPllReg = PEEK32(MXCLK_PLL_CTRL); - break; - case PRIMARY_PLL: - ulPllReg = PEEK32(PANEL_PLL_CTRL); - break; - case SECONDARY_PLL: - ulPllReg = PEEK32(CRT_PLL_CTRL); - break; - case VGA0_PLL: - ulPllReg = PEEK32(VGA_PLL0_CTRL); - break; - case VGA1_PLL: - ulPllReg = PEEK32(VGA_PLL1_CTRL); - break; - } - - pPLL->M = FIELD_GET(ulPllReg, PANEL_PLL_CTRL, M); - pPLL->N = FIELD_GET(ulPllReg, PANEL_PLL_CTRL, N); - pPLL->OD = FIELD_GET(ulPllReg, PANEL_PLL_CTRL, OD); - pPLL->POD = FIELD_GET(ulPllReg, PANEL_PLL_CTRL, POD); - - return calcPLL(pPLL); -} - static unsigned int getChipClock(void) { - pll_value_t pll; -#if 1 + unsigned int pll_reg; + unsigned int M, N, OD, POD; + if (getChipType() == SM750LE) return MHz(130); -#endif - return getPllValue(MXCLK_PLL, &pll); + pll_reg = PEEK32(MXCLK_PLL_CTRL); + M = FIELD_GET(pll_reg, PANEL_PLL_CTRL, M); + N = FIELD_GET(pll_reg, PANEL_PLL_CTRL, N); + OD = FIELD_GET(pll_reg, PANEL_PLL_CTRL, OD); + POD = FIELD_GET(pll_reg, PANEL_PLL_CTRL, POD); + + return DEFAULT_INPUT_CLOCK * M / N / (1 << OD) / (1 << POD); } /* From 7092d76f144dc852b2143fe3daabc66fb794dba6 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 09:26:45 +0300 Subject: [PATCH 1812/2431] staging: sm750fb: rename getChipClock to get_mxclk_freq The getChipClock is used to detect MXCLK frequency. Make it's name reflect what the function is actually doing. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index a27cde95be1d..77f3e43719db 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -34,7 +34,7 @@ logical_chip_type_t getChipType(void) return chip; } -static unsigned int getChipClock(void) +static unsigned int get_mxclk_freq(void) { unsigned int pll_reg; unsigned int M, N, OD, POD; @@ -100,7 +100,7 @@ static void setMemoryClock(unsigned int frequency) frequency = MHz(336); /* Calculate the divisor */ - divisor = (unsigned int)roundedDiv(getChipClock(), frequency); + divisor = (unsigned int)roundedDiv(get_mxclk_freq(), frequency); /* Set the corresponding divisor in the register. */ ulReg = PEEK32(CURRENT_GATE); @@ -147,7 +147,7 @@ static void setMasterClock(unsigned int frequency) frequency = MHz(190); /* Calculate the divisor */ - divisor = (unsigned int)roundedDiv(getChipClock(), frequency); + divisor = (unsigned int)roundedDiv(get_mxclk_freq(), frequency); /* Set the corresponding divisor in the register. */ ulReg = PEEK32(CURRENT_GATE); From b02f9240e0e02a030883e3bb7f712f5e1ea58ac9 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 09:26:46 +0300 Subject: [PATCH 1813/2431] staging: sm750fb: remove some unnecessary castings The clock divisor calculations in setMasterClock and setMemoryClock unnecessaryly cast unsigned int to unsigned int. Removing the casting. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 77f3e43719db..bab3d91c70bf 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -100,7 +100,7 @@ static void setMemoryClock(unsigned int frequency) frequency = MHz(336); /* Calculate the divisor */ - divisor = (unsigned int)roundedDiv(get_mxclk_freq(), frequency); + divisor = roundedDiv(get_mxclk_freq(), frequency); /* Set the corresponding divisor in the register. */ ulReg = PEEK32(CURRENT_GATE); @@ -147,7 +147,7 @@ static void setMasterClock(unsigned int frequency) frequency = MHz(190); /* Calculate the divisor */ - divisor = (unsigned int)roundedDiv(get_mxclk_freq(), frequency); + divisor = roundedDiv(get_mxclk_freq(), frequency); /* Set the corresponding divisor in the register. */ ulReg = PEEK32(CURRENT_GATE); From f955a398f2cc5bc896388b8046c3c12fc5ec687b Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 03:06:20 +0530 Subject: [PATCH 1814/2431] Staging: sm750fb: sm750: Remove irrelevant code The variable ret is only declared and initialized to 0, but never referenced, so remove it. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 8c1ecb32f953..805a403eaba4 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -524,14 +524,12 @@ static int lynxfb_ops_check_var(struct fb_var_screeninfo *var, struct lynxfb_crtc *crtc; struct lynxfb_output *output; struct lynx_share *share; - int ret; resource_size_t request; par = info->par; crtc = &par->crtc; output = &par->output; share = par->share; - ret = 0; pr_debug("check var:%dx%d-%d\n", var->xres, From ad942cb19b416fc64f17871372ee0932878861c0 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 05:04:00 +0530 Subject: [PATCH 1815/2431] Staging: rtl8723au: rtl8723a_bt-coexist: Remove unused variable A variable is initialized and then assigned values in the code but is never used and therefore, should be removed. Semantic patch used: @@ type T; identifier i; constant C; position p != e.p; @@ - T i@p; <+... when != i - i = C; ...+> Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c index 049adea5f9de..0052a91fdb12 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c @@ -5549,7 +5549,7 @@ static s8 btdm_1AntTdmaJudgement(struct rtw_adapter *padapter, u8 retry) { struct hal_data_8723a *pHalData; struct btdm_8723a_1ant *pBtdm8723; - static s8 up, dn, m = 1, n = 3, WaitCount; + static s8 up, dn, m = 1, WaitCount; s8 ret; pHalData = GET_HAL_DATA(padapter); @@ -5560,7 +5560,6 @@ static s8 btdm_1AntTdmaJudgement(struct rtw_adapter *padapter, u8 retry) up = 0; dn = 0; m = 1; - n = 3; WaitCount = 0; } else { WaitCount++; @@ -5575,8 +5574,6 @@ static s8 btdm_1AntTdmaJudgement(struct rtw_adapter *padapter, u8 retry) if (up >= 3*m) { /* retry = 0 in consecutive 3m*(2s), add WiFi duration */ ret = 1; - - n = 3; up = 0; dn = 0; WaitCount = 0; From 5aebea5590295ab35df87cc0c0a19f0d0241f012 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 15:49:06 +0530 Subject: [PATCH 1816/2431] Staging: rtl8723au: rtw_mlme_ext: Remove unnecessary test expression Logical and-ing of a struct and its member should be replaced by the member only as the struct has already been NULL tested before. Signed-off-by: Shivani Bhardwaj Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c index fca22ba896b3..d28f29a93810 100644 --- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c @@ -1715,7 +1715,7 @@ OnAssocReq23a(struct rtw_adapter *padapter, struct recv_frame *precv_frame) spin_unlock_bh(&pstapriv->asoc_list_lock); /* now the station is qualified to join our BSS... */ - if (pstat && pstat->state & WIFI_FW_ASSOC_SUCCESS && + if (pstat->state & WIFI_FW_ASSOC_SUCCESS && status == WLAN_STATUS_SUCCESS) { /* 1 bss_cap_update & sta_info_update23a */ bss_cap_update_on_sta_join23a(padapter, pstat); From d26a752e198fcd4e3bcd8787a045f6aacb93419d Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:34:41 +0530 Subject: [PATCH 1817/2431] staging: rtl8723au: hal: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The problem was found using coccinelle semantic patch and further opportunities were identified by hand. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c index 0052a91fdb12..d5c48a56d4ac 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c @@ -5644,7 +5644,7 @@ static void btdm_1AntTdmaDurationAdjustForACL(struct rtw_adapter *padapter) (pBtdm8723->curPsTdma != 11)) { btdm_1AntSetPSTDMA(padapter, true, 0, true, pBtdm8723->psTdmaDuAdjType); } else { - s32 judge = 0; + s32 judge; judge = btdm_1AntTdmaJudgement(padapter, pHalData->bt_coexist.halCoex8723.btRetryCnt); if (judge == -1) { @@ -9075,7 +9075,7 @@ static void btdm_BTCoexist8723AHandler(struct rtw_adapter *padapter) u32 BTDM_BtTxRxCounterH(struct rtw_adapter *padapter) { struct hal_data_8723a *pHalData = GET_HAL_DATA(padapter); - u32 counters = 0; + u32 counters; counters = pHalData->bt_coexist.halCoex8723.highPriorityTx+ pHalData->bt_coexist.halCoex8723.highPriorityRx; @@ -9085,7 +9085,7 @@ u32 BTDM_BtTxRxCounterH(struct rtw_adapter *padapter) u32 BTDM_BtTxRxCounterL(struct rtw_adapter *padapter) { struct hal_data_8723a *pHalData = GET_HAL_DATA(padapter); - u32 counters = 0; + u32 counters; counters = pHalData->bt_coexist.halCoex8723.lowPriorityTx+ pHalData->bt_coexist.halCoex8723.lowPriorityRx; @@ -9297,7 +9297,7 @@ static void BTDM_AdjustForBtOperation8723A(struct rtw_adapter *padapter) static void BTDM_FwC2hBtRssi8723A(struct rtw_adapter *padapter, u8 *tmpBuf) { struct hal_data_8723a *pHalData = GET_HAL_DATA(padapter); - u8 percent = 0, u1tmp = 0; + u8 percent, u1tmp; u1tmp = tmpBuf[0]; percent = u1tmp*2+10; From fcf7f33866378e51c12bab11826a76658364bd88 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:35:58 +0530 Subject: [PATCH 1818/2431] staging: rtl8723au: core: rtw_wlan_util: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_wlan_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8723au/core/rtw_wlan_util.c b/drivers/staging/rtl8723au/core/rtw_wlan_util.c index 3c1315fc02e5..5e8736092720 100644 --- a/drivers/staging/rtl8723au/core/rtw_wlan_util.c +++ b/drivers/staging/rtl8723au/core/rtw_wlan_util.c @@ -1212,7 +1212,7 @@ unsigned int update_supported_rate23a(unsigned char *ptn, unsigned int ptn_sz) unsigned int update_MSC_rate23a(struct ieee80211_ht_cap *pHT_caps) { - unsigned int mask = 0; + unsigned int mask; mask = pHT_caps->mcs.rx_mask[0] << 12 | pHT_caps->mcs.rx_mask[1] << 20; From e847655a29384c4a5275b30b0bc553bd2b152e4f Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:37:09 +0530 Subject: [PATCH 1819/2431] staging: rtl8723au: core: rtw_recv: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_recv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c b/drivers/staging/rtl8723au/core/rtw_recv.c index ad0549c66529..404b61898d08 100644 --- a/drivers/staging/rtl8723au/core/rtw_recv.c +++ b/drivers/staging/rtl8723au/core/rtw_recv.c @@ -626,7 +626,7 @@ void process23a_pwrbit_data(struct rtw_adapter *padapter, struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; struct rx_pkt_attrib *pattrib = &precv_frame->attrib; struct sta_priv *pstapriv = &padapter->stapriv; - struct sta_info *psta = NULL; + struct sta_info *psta; psta = rtw_get_stainfo23a(pstapriv, pattrib->src); @@ -653,7 +653,7 @@ void process_wmmps_data(struct rtw_adapter *padapter, #ifdef CONFIG_8723AU_AP_MODE struct rx_pkt_attrib *pattrib = &precv_frame->attrib; struct sta_priv *pstapriv = &padapter->stapriv; - struct sta_info *psta = NULL; + struct sta_info *psta; psta = rtw_get_stainfo23a(pstapriv, pattrib->src); @@ -2151,7 +2151,7 @@ int process_recv_indicatepkts(struct rtw_adapter *padapter, static int recv_func_prehandle(struct rtw_adapter *padapter, struct recv_frame *rframe) { - int ret = _SUCCESS; + int ret; /* check the frame crtl field and decache */ ret = validate_recv_frame(padapter, rframe); From d538ae34be092486fea32431232bc5cc58df4545 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:38:21 +0530 Subject: [PATCH 1820/2431] staging: rtl8723au: core: rtw_ap: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_ap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c b/drivers/staging/rtl8723au/core/rtw_ap.c index 65b209a20c29..a7c8b7315122 100644 --- a/drivers/staging/rtl8723au/core/rtw_ap.c +++ b/drivers/staging/rtl8723au/core/rtw_ap.c @@ -403,7 +403,7 @@ void add_RATid23a(struct rtw_adapter *padapter, struct sta_info *psta, u8 rssi_l init_rate = get_highest_rate_idx23a(tx_ra_bitmap&0x0fffffff)&0x3f; if (psta->aid < NUM_STA) { - u8 arg = 0; + u8 arg; arg = psta->mac_id&0x1f; @@ -487,7 +487,7 @@ static void update_bmc_sta(struct rtw_adapter *padapter) rtl8723a_SetHalODMVar(padapter, HAL_ODM_STA_INFO, psta, true); { - u8 arg = 0; + u8 arg; arg = psta->mac_id&0x1f; From adc6b375aae108cf03aa42d4e39e42a08be4e9a8 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 17:32:58 +0530 Subject: [PATCH 1821/2431] Staging: rtl8712: os_intfs: Remove unnecessary cast Explicit type conversions are not required and so, they should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/os_intfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index f34a9635217b..6805f79ae00a 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -333,7 +333,7 @@ u8 r8712_init_drv_sw(struct _adapter *padapter) u8 r8712_free_drv_sw(struct _adapter *padapter) { - struct net_device *pnetdev = (struct net_device *)padapter->pnetdev; + struct net_device *pnetdev = padapter->pnetdev; r8712_free_cmd_priv(&padapter->cmdpriv); r8712_free_evt_priv(&padapter->evtpriv); From adc08cc4c9a34a81194e81754f4a1c8b558df850 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 17:38:23 +0530 Subject: [PATCH 1822/2431] Staging: rtl8712: rtl8712_cmd: Remove useless cast Explicit type conversions are not required so, remove them. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl8712_cmd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index b755ab4bd1d3..f70235c8683d 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -340,8 +340,7 @@ _next: memset(pdesc, 0, TXDESC_SIZE); pcmd = cmd_hdl_filter(padapter, pcmd); if (pcmd) { /* if pcmd != NULL, cmd will be handled by f/w */ - struct dvobj_priv *pdvobj = (struct dvobj_priv *) - &padapter->dvobjpriv; + struct dvobj_priv *pdvobj = &padapter->dvobjpriv; u8 blnPending = 0; pcmdpriv->cmd_issued_cnt++; From 7074ed3df1e23acf68dc398207b6b4bc6a26cac7 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 17:48:58 +0530 Subject: [PATCH 1823/2431] Staging: rtl8712: rtl8712_io: Remove unnecessary cast Typecasting should be removed from variables as it is not required. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl8712_io.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/rtl8712/rtl8712_io.c b/drivers/staging/rtl8712/rtl8712_io.c index 921fcffb3065..b9abe05e6078 100644 --- a/drivers/staging/rtl8712/rtl8712_io.c +++ b/drivers/staging/rtl8712/rtl8712_io.c @@ -36,7 +36,7 @@ u8 r8712_read8(struct _adapter *adapter, u32 addr) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); u8 (*_read8)(struct intf_hdl *pintfhdl, u32 addr); @@ -46,7 +46,7 @@ u8 r8712_read8(struct _adapter *adapter, u32 addr) u16 r8712_read16(struct _adapter *adapter, u32 addr) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); u16 (*_read16)(struct intf_hdl *pintfhdl, u32 addr); @@ -56,7 +56,7 @@ u16 r8712_read16(struct _adapter *adapter, u32 addr) u32 r8712_read32(struct _adapter *adapter, u32 addr) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); u32 (*_read32)(struct intf_hdl *pintfhdl, u32 addr); @@ -66,7 +66,7 @@ u32 r8712_read32(struct _adapter *adapter, u32 addr) void r8712_write8(struct _adapter *adapter, u32 addr, u8 val) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); void (*_write8)(struct intf_hdl *pintfhdl, u32 addr, u8 val); @@ -76,7 +76,7 @@ void r8712_write8(struct _adapter *adapter, u32 addr, u8 val) void r8712_write16(struct _adapter *adapter, u32 addr, u16 val) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); void (*_write16)(struct intf_hdl *pintfhdl, u32 addr, u16 val); @@ -86,8 +86,8 @@ void r8712_write16(struct _adapter *adapter, u32 addr, u16 val) void r8712_write32(struct _adapter *adapter, u32 addr, u32 val) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; - struct intf_hdl *pintfhdl = (struct intf_hdl *)(&(pio_queue->intf)); + struct io_queue *pio_queue = adapter->pio_queue; + struct intf_hdl *pintfhdl = &(pio_queue->intf); void (*_write32)(struct intf_hdl *pintfhdl, u32 addr, u32 val); @@ -97,7 +97,7 @@ void r8712_write32(struct _adapter *adapter, u32 addr, u32 val) void r8712_read_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); void (*_read_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, @@ -111,7 +111,7 @@ void r8712_read_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) void r8712_write_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); void (*_write_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem); @@ -122,7 +122,7 @@ void r8712_write_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) void r8712_read_port(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); u32 (*_read_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, @@ -136,7 +136,7 @@ void r8712_read_port(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) void r8712_write_port(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) { - struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; + struct io_queue *pio_queue = adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, From 993c307eb48accf5fc34f703e6c290ddfc251b6e Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 19:10:21 +0530 Subject: [PATCH 1824/2431] Staging: rtl8712: rtl8712_xmit: Remove useless cast Explicit typecasting of variables is not required and should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl8712_xmit.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8712/rtl8712_xmit.c b/drivers/staging/rtl8712/rtl8712_xmit.c index 86206d34a40e..27b121398027 100644 --- a/drivers/staging/rtl8712/rtl8712_xmit.c +++ b/drivers/staging/rtl8712/rtl8712_xmit.c @@ -96,7 +96,7 @@ static u32 get_ff_hwaddr(struct xmit_frame *pxmitframe) u32 addr = 0; struct pkt_attrib *pattrib = &pxmitframe->attrib; struct _adapter *padapter = pxmitframe->padapter; - struct dvobj_priv *pdvobj = (struct dvobj_priv *)&padapter->dvobjpriv; + struct dvobj_priv *pdvobj = &padapter->dvobjpriv; if (pxmitframe->frame_tag == TXAGG_FRAMETAG) addr = RTL8712_DMA_H2CCMD; @@ -237,7 +237,7 @@ void r8712_do_queue_select(struct _adapter *padapter, struct pkt_attrib *pattrib) { unsigned int qsel = 0; - struct dvobj_priv *pdvobj = (struct dvobj_priv *)&padapter->dvobjpriv; + struct dvobj_priv *pdvobj = &padapter->dvobjpriv; if (pdvobj->nr_endpoint == 6) qsel = (unsigned int) pattrib->priority; @@ -374,8 +374,8 @@ u8 r8712_dump_aggr_xframe(struct xmit_buf *pxmitbuf, struct xmit_frame *pxmitframe) { struct _adapter *padapter = pxmitframe->padapter; - struct dvobj_priv *pdvobj = (struct dvobj_priv *) &padapter->dvobjpriv; - struct tx_desc *ptxdesc = (struct tx_desc *)pxmitbuf->pbuf; + struct dvobj_priv *pdvobj = &padapter->dvobjpriv; + struct tx_desc *ptxdesc = pxmitbuf->pbuf; struct cmd_hdr *pcmd_hdr = (struct cmd_hdr *) (pxmitbuf->pbuf + TXDESC_SIZE); u16 total_length = (u16) (ptxdesc->txdw0 & 0xffff); @@ -420,9 +420,9 @@ static void update_txdesc(struct xmit_frame *pxmitframe, uint *pmem, int sz) struct security_priv *psecuritypriv = &padapter->securitypriv; struct pkt_attrib *pattrib = &pxmitframe->attrib; struct tx_desc *ptxdesc = (struct tx_desc *)pmem; - struct dvobj_priv *pdvobj = (struct dvobj_priv *)&padapter->dvobjpriv; + struct dvobj_priv *pdvobj = &padapter->dvobjpriv; #ifdef CONFIG_R8712_TX_AGGR - struct cmd_priv *pcmdpriv = (struct cmd_priv *)&padapter->cmdpriv; + struct cmd_priv *pcmdpriv = &padapter->cmdpriv; #endif u8 blnSetTxDescOffset; sint bmcst = IS_MCAST(pattrib->ra); From 0b2ea2c7adf0abb528d277889f74243b537b1705 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 19:14:59 +0530 Subject: [PATCH 1825/2431] Staging: rtl8712: rtl871x_io: Remove explicit cast Explicit typecasting is not required and should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/rtl871x_io.c b/drivers/staging/rtl8712/rtl871x_io.c index e4e5b13cb927..fbbc63570eab 100644 --- a/drivers/staging/rtl8712/rtl871x_io.c +++ b/drivers/staging/rtl8712/rtl871x_io.c @@ -150,7 +150,7 @@ alloc_io_queue_fail: void r8712_free_io_queue(struct _adapter *adapter) { - struct io_queue *pio_queue = (struct io_queue *)(adapter->pio_queue); + struct io_queue *pio_queue = adapter->pio_queue; if (pio_queue) { kfree(pio_queue->pallocated_free_ioreqs_buf); From 28aba5001300c46320bdc4eba26a8aebf4d83694 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 19:24:10 +0530 Subject: [PATCH 1826/2431] Staging: rtl8712: usb_ops_linux: Remove useless cast Explicit type conversion is not required and should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/usb_ops_linux.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index 9d0d0311a49e..c940722fbfd3 100644 --- a/drivers/staging/rtl8712/usb_ops_linux.c +++ b/drivers/staging/rtl8712/usb_ops_linux.c @@ -170,7 +170,7 @@ void r8712_usb_write_mem(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *wmem) unsigned int pipe; struct _adapter *padapter = (struct _adapter *)pintfhdl->adapter; struct intf_priv *pintfpriv = pintfhdl->pintfpriv; - struct io_queue *pio_queue = (struct io_queue *)padapter->pio_queue; + struct io_queue *pio_queue = padapter->pio_queue; struct dvobj_priv *pdvobj = (struct dvobj_priv *)pintfpriv->intf_dev; struct usb_device *pusbd = pdvobj->pusbdev; struct urb *piorw_urb = pintfpriv->piorw_urb; @@ -259,7 +259,7 @@ u32 r8712_usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem) struct recv_buf *precvbuf = (struct recv_buf *)rmem; struct intf_priv *pintfpriv = pintfhdl->pintfpriv; struct dvobj_priv *pdvobj = (struct dvobj_priv *)pintfpriv->intf_dev; - struct _adapter *adapter = (struct _adapter *)pdvobj->padapter; + struct _adapter *adapter = pdvobj->padapter; struct recv_priv *precvpriv = &adapter->recvpriv; struct usb_device *pusbd = pdvobj->pusbdev; @@ -400,7 +400,7 @@ u32 r8712_usb_write_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *wmem) u32 ret, bwritezero; struct urb *purb = NULL; struct _adapter *padapter = (struct _adapter *)pintfhdl->adapter; - struct dvobj_priv *pdvobj = (struct dvobj_priv *)&padapter->dvobjpriv; + struct dvobj_priv *pdvobj = &padapter->dvobjpriv; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; struct xmit_frame *pxmitframe = (struct xmit_frame *)wmem; struct usb_device *pusbd = pdvobj->pusbdev; From a90391e4c11c453dfde739f94fac73fe94f1957a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 02:29:55 +0530 Subject: [PATCH 1827/2431] staging: rtl8712: rtl8712_recv: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl8712_recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index 4fa2540a6c34..534dc04d51a6 100644 --- a/drivers/staging/rtl8712/rtl8712_recv.c +++ b/drivers/staging/rtl8712/rtl8712_recv.c @@ -158,7 +158,7 @@ int r8712_free_recvframe(union recv_frame *precvframe, static void update_recvframe_attrib_from_recvstat(struct rx_pkt_attrib *pattrib, struct recv_stat *prxstat) { - u16 drvinfo_sz = 0; + u16 drvinfo_sz; drvinfo_sz = (le32_to_cpu(prxstat->rxdw0)&0x000f0000)>>16; drvinfo_sz <<= 3; From e904cc8f57d0fb7efb90529475a5793d534538b2 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Wed, 14 Oct 2015 23:55:52 +0530 Subject: [PATCH 1828/2431] Staging: rtl8712: Fix warning prefer eth_broadcast_addr() over memset() This patch is to the rtl871x_ioctl_linux.c that fixes up following warning by checkpatch.pl: -Prefer eth_broadcast_addr() over memset() Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 4e6db88e36ff..5618dba8e05f 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -1785,8 +1785,7 @@ static int r871x_wx_set_enc_ext(struct net_device *dev, if (param == NULL) return -ENOMEM; param->cmd = IEEE_CMD_SET_ENCRYPTION; - memset(param->sta_addr, 0xff, ETH_ALEN); - + eth_broadcast_addr(param->sta_addr); strncpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN); if (pext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) param->u.crypt.set_tx = 0; From a1b42bef0a4bfea3b6679ef05e9b26eebe0d0682 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Wed, 14 Oct 2015 23:55:53 +0530 Subject: [PATCH 1829/2431] Staging: rtl8712: Use ether_addr_equal() over memcmp() This patch is to the rtl871x_ioctl_linux.c file that fixes up following warning reported by checkpatch.pl : -Prefer ether_addr_equal() or ether_addr_equal_unaligned() over memcmp() bssid and pnetwork->network.MacAddress both are 6 byte array which aligned with u16 Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 5618dba8e05f..e5a52a90feeb 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -1981,7 +1981,7 @@ static int r871x_get_ap_info(struct net_device *dev, return -EINVAL; } netdev_info(dev, "r8712u: BSSID:%pM\n", bssid); - if (!memcmp(bssid, pnetwork->network.MacAddress, ETH_ALEN)) { + if (ether_addr_equal(bssid, pnetwork->network.MacAddress)) { /* BSSID match, then check if supporting wpa/wpa2 */ pbuf = r8712_get_wpa_ie(&pnetwork->network.IEs[12], &wpa_ielen, pnetwork->network.IELength-12); From d32c16d2fc5c45f97c77f687d8e61277c543d210 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Wed, 14 Oct 2015 23:55:54 +0530 Subject: [PATCH 1830/2431] Staging: rtl8712: Coding style warnings fix for block comments This patch is to the rtl871x_ioctl_linux.c file that fixes up following warnings reported by checkpatch.pl : -Block comments use * on subsequent lines -Block comments use a trailing */ on a separate line Signed-off-by: Punit Vara Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index e5a52a90feeb..a96481609f39 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -771,13 +771,13 @@ static int r871x_wx_set_pmkid(struct net_device *dev, int intReturn = false; /* - There are the BSSID information in the bssid.sa_data array. - If cmd is IW_PMKSA_FLUSH, it means the wpa_supplicant wants to clear - all the PMKID information. If cmd is IW_PMKSA_ADD, it means the - wpa_supplicant wants to add a PMKID/BSSID to driver. - If cmd is IW_PMKSA_REMOVE, it means the wpa_supplicant wants to - remove a PMKID/BSSID from driver. -*/ + * There are the BSSID information in the bssid.sa_data array. + * If cmd is IW_PMKSA_FLUSH, it means the wpa_supplicant wants to clear + * all the PMKID information. If cmd is IW_PMKSA_ADD, it means the + * wpa_supplicant wants to add a PMKID/BSSID to driver. + * If cmd is IW_PMKSA_REMOVE, it means the wpa_supplicant wants to + * remove a PMKID/BSSID from driver. + */ if (pPMK == NULL) return -EINVAL; memcpy(strIssueBssid, pPMK->bssid.sa_data, ETH_ALEN); @@ -792,7 +792,8 @@ static int r871x_wx_set_pmkid(struct net_device *dev, if (!memcmp(psecuritypriv->PMKIDList[j].Bssid, strIssueBssid, ETH_ALEN)) { /* BSSID is matched, the same AP => rewrite - * with new PMKID. */ + * with new PMKID. + */ netdev_info(dev, "r8712u: %s: BSSID exists in the PMKList.\n", __func__); memcpy(psecuritypriv->PMKIDList[j].PMKID, @@ -824,7 +825,8 @@ static int r871x_wx_set_pmkid(struct net_device *dev, if (!memcmp(psecuritypriv->PMKIDList[j].Bssid, strIssueBssid, ETH_ALEN)) { /* BSSID is matched, the same AP => Remove - * this PMKID information and reset it. */ + * this PMKID information and reset it. + */ eth_zero_addr(psecuritypriv->PMKIDList[j].Bssid); psecuritypriv->PMKIDList[j].bUsed = false; break; @@ -1561,7 +1563,8 @@ static int r8711_wx_set_enc(struct net_device *dev, } else { wep.KeyLength = 0; if (keyindex_provided == 1) { /* set key_id only, no given - * KeyMaterial(erq->length==0).*/ + * KeyMaterial(erq->length==0). + */ padapter->securitypriv.PrivacyKeyIndex = key; switch (padapter->securitypriv.DefKeylen[key]) { case 5: @@ -2214,7 +2217,8 @@ static iw_handler r8711_handlers[] = { r8711_wx_set_wap, /* SIOCSIWAP */ r8711_wx_get_wap, /* SIOCGIWAP */ r871x_wx_set_mlme, /* request MLME operation; - * uses struct iw_mlme */ + * uses struct iw_mlme + */ dummy, /* SIOCGIWAPLIST -- deprecated */ r8711_wx_set_scan, /* SIOCSIWSCAN */ r8711_wx_get_scan, /* SIOCGIWSCAN */ From afd0fea4e691ff53bff8adb4bc89398010b6f954 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 23:03:50 +0530 Subject: [PATCH 1831/2431] Staging: rtl8192u: ieee80211_softmac: Remove extra NULL check Remove NULL check on a variable as it is already preceded by one. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index c443e2eee8d3..fcbd59f9d6e9 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c @@ -1463,10 +1463,8 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee } memcpy(&ieee->current_network, net, sizeof(struct ieee80211_network)); - if (!ssidbroad) { - strncpy(ieee->current_network.ssid, tmp_ssid, IW_ESSID_MAX_SIZE); - ieee->current_network.ssid_len = tmp_ssid_len; - } + strncpy(ieee->current_network.ssid, tmp_ssid, IW_ESSID_MAX_SIZE); + ieee->current_network.ssid_len = tmp_ssid_len; printk(KERN_INFO"Linking with %s,channel:%d, qos:%d, myHT:%d, networkHT:%d\n",ieee->current_network.ssid,ieee->current_network.channel, ieee->current_network.qos_data.supported, ieee->pHTInfo->bEnableHT, ieee->current_network.bssht.bdSupportHT); //ieee->pHTInfo->IOTAction = 0; From f3a8fb0729557ac7f9bee7e208a8227abc056e0e Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 22:48:50 +0530 Subject: [PATCH 1832/2431] Staging: rtl8192u: ieee80211_rx: Remove unnecessary code The variable frame_authorized is declared and mentioned in the code but is not used anywhere so, it should be removed. Also, two case statements are merged by removing an extra break. Semantic patch used: @@ type T; identifier i; constant C; position p != e.p; @@ - T i@p; <+... when != i - i = C; ...+> Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c index 4b5f32dda8b8..130c852ffa02 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c @@ -899,7 +899,6 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb, struct net_device *wds = NULL; struct sk_buff *skb2 = NULL; struct net_device *wds = NULL; - int frame_authorized = 0; int from_assoc_ap = 0; void *sta = NULL; #endif @@ -1106,10 +1105,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb, switch (hostap_handle_sta_rx(ieee, dev, skb, rx_stats, wds != NULL)) { case AP_RX_CONTINUE_NOT_AUTHORIZED: - frame_authorized = 0; - break; case AP_RX_CONTINUE: - frame_authorized = 1; break; case AP_RX_DROP: goto rx_dropped; From 3df82ddccfc80d6f9665daf05a7836874d32a40c Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:11:37 +0530 Subject: [PATCH 1833/2431] staging: lustre: ptlrpc: sec_bulk: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c index 8fce717ea79e..cd8a9987f7ac 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c @@ -540,8 +540,7 @@ int sptlrpc_get_bulk_checksum(struct ptlrpc_bulk_desc *desc, __u8 alg, memcpy(buf, hashbuf, buflen); } else { bufsize = buflen; - err = cfs_crypto_hash_final(hdesc, (unsigned char *)buf, - &bufsize); + err = cfs_crypto_hash_final(hdesc, buf, &bufsize); } if (err) From 864ef621fa45b5dd6a113d771640fc4984cc8dc6 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:13:30 +0530 Subject: [PATCH 1834/2431] staging: lustre: ptlrpc: service: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/service.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 3f6f07002726..f45898f17793 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -1872,7 +1872,7 @@ ptlrpc_check_rqbd_pool(struct ptlrpc_service_part *svcpt) static int ptlrpc_retry_rqbds(void *arg) { - struct ptlrpc_service_part *svcpt = (struct ptlrpc_service_part *)arg; + struct ptlrpc_service_part *svcpt = arg; svcpt->scp_rqbd_timeout = 0; return -ETIMEDOUT; @@ -1979,7 +1979,7 @@ ptlrpc_wait_event(struct ptlrpc_service_part *svcpt, */ static int ptlrpc_main(void *arg) { - struct ptlrpc_thread *thread = (struct ptlrpc_thread *)arg; + struct ptlrpc_thread *thread = arg; struct ptlrpc_service_part *svcpt = thread->t_svcpt; struct ptlrpc_service *svc = svcpt->scp_service; struct ptlrpc_reply_state *rs; @@ -2181,7 +2181,7 @@ static int hrt_dont_sleep(struct ptlrpc_hr_thread *hrt, */ static int ptlrpc_hr_main(void *arg) { - struct ptlrpc_hr_thread *hrt = (struct ptlrpc_hr_thread *)arg; + struct ptlrpc_hr_thread *hrt = arg; struct ptlrpc_hr_partition *hrp = hrt->hrt_partition; LIST_HEAD (replies); char threadname[20]; From c54ed23f65407f2d91c358e98b9a639ec0c6ca1d Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:15:23 +0530 Subject: [PATCH 1835/2431] staging: lustre: ptlrpc: pinger: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index 53bfae143dfc..5c719f175657 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pinger.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pinger.c @@ -221,7 +221,7 @@ static void ptlrpc_pinger_process_import(struct obd_import *imp, static int ptlrpc_pinger_main(void *arg) { - struct ptlrpc_thread *thread = (struct ptlrpc_thread *)arg; + struct ptlrpc_thread *thread = arg; /* Record that the thread is running */ thread_set_flags(thread, SVC_RUNNING); From 7f93fca90e09ade58cc1d4221706c0af5ef29076 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:17:08 +0530 Subject: [PATCH 1836/2431] staging: lustre: ptlrpc: sec_gc: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/sec_gc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c index 07cf2fef4462..6e58d5f955d6 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c @@ -146,7 +146,7 @@ static void sec_do_gc(struct ptlrpc_sec *sec) static int sec_gc_main(void *arg) { - struct ptlrpc_thread *thread = (struct ptlrpc_thread *) arg; + struct ptlrpc_thread *thread = arg; struct l_wait_info lwi; unshare_fs_struct(); From 9581bada1f64003fd8cc7bc6cad3f0643877b439 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:18:33 +0530 Subject: [PATCH 1837/2431] staging: lustre: mgc: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/mgc/mgc_request.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index 780ea81064ba..7315733bc5b0 100644 --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c +++ b/drivers/staging/lustre/lustre/mgc/mgc_request.c @@ -756,7 +756,7 @@ static int mgc_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, void *data, int flag) { struct lustre_handle lockh; - struct config_llog_data *cld = (struct config_llog_data *)data; + struct config_llog_data *cld = data; int rc = 0; switch (flag) { @@ -860,7 +860,7 @@ static int mgc_enqueue(struct obd_export *exp, struct lov_stripe_md *lsm, void *data, __u32 lvb_len, void *lvb_swabber, struct lustre_handle *lockh) { - struct config_llog_data *cld = (struct config_llog_data *)data; + struct config_llog_data *cld = data; struct ldlm_enqueue_info einfo = { .ei_type = type, .ei_mode = mode, @@ -973,7 +973,7 @@ static int mgc_set_info_async(const struct lu_env *env, struct obd_export *exp, if (KEY_IS(KEY_SET_INFO)) { struct mgs_send_param *msp; - msp = (struct mgs_send_param *)val; + msp = val; rc = mgc_set_mgs_param(exp, msp); return rc; } From 167a47c5207fdfbe633cf54518c0291c88d0d97f Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:20:03 +0530 Subject: [PATCH 1838/2431] staging: lustre: osc: Remove useless cast on void pointer The semantic patch used to find this is: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/osc_request.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index a3a63749a0fc..32c9713d47eb 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -2665,7 +2665,7 @@ static int osc_iocontrol(unsigned int cmd, struct obd_export *exp, int len, data->ioc_offset); goto out; case OBD_IOC_POLL_QUOTACHECK: - err = osc_quota_poll_check(exp, (struct if_quotacheck *)karg); + err = osc_quota_poll_check(exp, karg); goto out; case OBD_IOC_PING_TARGET: err = ptlrpc_obd_ping(obd); @@ -2732,8 +2732,7 @@ static int osc_get_info(const struct lu_env *env, struct obd_export *exp, ptlrpc_req_finished(req); return rc; } else if (KEY_IS(KEY_FIEMAP)) { - struct ll_fiemap_info_key *fm_key = - (struct ll_fiemap_info_key *)key; + struct ll_fiemap_info_key *fm_key = key; struct ldlm_res_id res_id; ldlm_policy_data_t policy; struct lustre_handle lockh; @@ -2855,7 +2854,7 @@ static int osc_set_info_async(const struct lu_env *env, struct obd_export *exp, struct client_obd *cli = &obd->u.cli; LASSERT(cli->cl_cache == NULL); /* only once */ - cli->cl_cache = (struct cl_client_cache *)val; + cli->cl_cache = val; atomic_inc(&cli->cl_cache->ccc_users); cli->cl_lru_left = &cli->cl_cache->ccc_lru_left; From 8ba53beb2ce30f5fd0abe1638440889d10988b7c Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:28 +0530 Subject: [PATCH 1839/2431] Staging: lustre: ptlrpc: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/connection.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/connection.c b/drivers/staging/lustre/lustre/ptlrpc/connection.c index ffe36e22245f..1ba1f5f2eeaa 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/connection.c +++ b/drivers/staging/lustre/lustre/ptlrpc/connection.c @@ -173,7 +173,7 @@ conn_keycmp(const void *key, struct hlist_node *hnode) const lnet_process_id_t *conn_key; LASSERT(key != NULL); - conn_key = (lnet_process_id_t *)key; + conn_key = key; conn = hlist_entry(hnode, struct ptlrpc_connection, c_hash); return conn_key->nid == conn->c_peer.nid && From cca3241628f02fe68ce22a71bbc555d16915e6a8 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:22 +0530 Subject: [PATCH 1840/2431] Staging: lustre: lnet: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index f1799aa1fdad..8989e36091fb 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -3234,7 +3234,7 @@ kiblnd_cq_completion(struct ib_cq *cq, void *arg) * consuming my CQ I could be called after all completions have * occurred. But in this case, ibc_nrx == 0 && ibc_nsends_posted == 0 * and this CQ is about to be destroyed so I NOOP. */ - kib_conn_t *conn = (kib_conn_t *)arg; + kib_conn_t *conn = arg; struct kib_sched_info *sched = conn->ibc_sched; unsigned long flags; From ab12717607e363124da88d64eeb3fedce9674dfe Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:21 +0530 Subject: [PATCH 1841/2431] Staging: lustre: obdclass: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. Semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 6 +++--- drivers/staging/lustre/lustre/obdclass/obd_config.c | 4 ++-- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 7cc4b554af1d..3228feed4747 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -612,7 +612,7 @@ int lprocfs_rd_import(struct seq_file *m, void *data) { struct lprocfs_counter ret; struct lprocfs_counter_header *header; - struct obd_device *obd = (struct obd_device *)data; + struct obd_device *obd = data; struct obd_import *imp; struct obd_import_conn *conn; int j; @@ -757,7 +757,7 @@ EXPORT_SYMBOL(lprocfs_rd_import); int lprocfs_rd_state(struct seq_file *m, void *data) { - struct obd_device *obd = (struct obd_device *)data; + struct obd_device *obd = data; struct obd_import *imp; int j, k; @@ -797,7 +797,7 @@ EXPORT_SYMBOL(lprocfs_at_hist_helper); /* See also ptlrpc_lprocfs_rd_timeouts */ int lprocfs_rd_timeouts(struct seq_file *m, void *data) { - struct obd_device *obd = (struct obd_device *)data; + struct obd_device *obd = data; struct obd_import *imp; unsigned int cur, worst; time64_t now, worstt; diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 64e2d1b368be..38e5e13c7fde 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -88,7 +88,7 @@ static int class_match_param(char *buf, char *key, char **valp) static int parse_nid(char *buf, void *value, int quiet) { - lnet_nid_t *nid = (lnet_nid_t *)value; + lnet_nid_t *nid = value; *nid = libcfs_str2nid(buf); if (*nid != LNET_NID_ANY) @@ -101,7 +101,7 @@ static int parse_nid(char *buf, void *value, int quiet) static int parse_net(char *buf, void *value) { - __u32 *net = (__u32 *)value; + __u32 *net = value; *net = libcfs_str2net(buf); CDEBUG(D_INFO, "Net %s\n", libcfs_net2str(*net)); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index 0d324cc28243..149c83813583 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -1100,7 +1100,7 @@ static int lustre_fill_super(struct super_block *sb, void *data, int silent) obd_zombie_barrier(); /* Figure out the lmd from the mount options */ - if (lmd_parse((char *)(lmd2->lmd2_data), lmd)) { + if (lmd_parse((lmd2->lmd2_data), lmd)) { lustre_put_lsi(sb); rc = -EINVAL; goto out; From b55044062ce243868e9f1dbceda8a453fd61c7d3 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:42:53 +0530 Subject: [PATCH 1842/2431] staging: lustre: ptlrpc: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index c6c23f92348a..9bf13d7096a8 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -697,7 +697,7 @@ static inline struct ptlrpc_request *__ptlrpc_request_alloc(struct obd_import *imp, struct ptlrpc_request_pool *pool) { - struct ptlrpc_request *request = NULL; + struct ptlrpc_request *request; request = ptlrpc_request_cache_alloc(GFP_NOFS); From f5ef08d8f1f51f29c9f4f7457e76789e7f10212b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 13:50:19 +0530 Subject: [PATCH 1843/2431] Staging: lustre: obd_class.h: Remove unused macro OBD_CHECK_MD_OP Remove macro OBD_CHECK_MD_OP since it is defined but not used Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_class.h | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index ec36c882fcab..561dcd53442a 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -353,16 +353,6 @@ static inline int obd_check_dev_active(struct obd_device *obd) (export)->exp_md_stats, coffset); \ } -#define OBD_CHECK_MD_OP(obd, op, err) \ -do { \ - if (!OBT(obd) || !MDP((obd), op)) { \ - if (err) \ - CERROR("md_" #op ": dev %s/%d no operation\n", \ - obd->obd_name, obd->obd_minor); \ - return err; \ - } \ -} while (0) - #define EXP_CHECK_MD_OP(exp, op) \ do { \ if ((exp) == NULL) { \ From 83d6b8fee71f66ac2c55b98053be53aa3251e8fa Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 18:24:05 +0530 Subject: [PATCH 1844/2431] Staging: lustre: llite_lib: Remove unnecessary NULL check Variable op_data is already tested for NULL value and therefore any further checks should be removed. Semantic patch used: @@ expression E;@@ if(E==NULL) {... return ...;} - if(E){ ... - } Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/llite_lib.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index e3ea477b9f39..e874e631e006 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1350,14 +1350,13 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr, bool hsm_import) up_write(&lli->lli_trunc_sem); } out: - if (op_data) { - if (op_data->op_ioepoch) { - rc1 = ll_setattr_done_writing(inode, op_data, mod); - if (!rc) - rc = rc1; - } - ll_finish_md_op_data(op_data); + if (op_data->op_ioepoch) { + rc1 = ll_setattr_done_writing(inode, op_data, mod); + if (!rc) + rc = rc1; } + ll_finish_md_op_data(op_data); + if (!S_ISDIR(inode->i_mode)) { mutex_lock(&inode->i_mutex); if ((attr->ia_valid & ATTR_SIZE) && !hsm_import) From a3aa95f887f5816c4832f108b2fa4e5f2dba3e11 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 19:46:06 +0530 Subject: [PATCH 1845/2431] Staging: lustre: mdc_locks: Remove extra test expression struct it is already NULL tested before so, it should be removed from the if test expression. Signed-off-by: Shivani Bhardwaj Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c index e0b81eea9486..d4bf34b61f3a 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_locks.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_locks.c @@ -885,7 +885,7 @@ resend: /* Retry the create infinitely when we get -EINPROGRESS from * server. This is required by the new quota design. */ - if (it && it->it_op & IT_CREAT && + if (it->it_op & IT_CREAT && (int)lockrep->lock_policy_res2 == -EINPROGRESS) { mdc_clear_replay_flag(req, rc); ptlrpc_req_finished(req); From 673536c9880867e7d9bacd261c423ee953bf4392 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 16 Oct 2015 01:00:10 +0530 Subject: [PATCH 1846/2431] Staging: lustre: obd_support.h: Remove unused OBD_SLAB_FREE_RTN0 Remove macro OBD_SLAB_FREE_RTN0 since it is defined but not used Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_support.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index ec14b72c0327..abc53f115fb6 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -517,12 +517,6 @@ do { \ /* we memset() the slab object to 0 when allocation succeeds, so DO NOT * HAVE A CTOR THAT DOES ANYTHING. its work will be cleared here. we'd * love to assert on that, but slab.c keeps kmem_cache_s all to itself. */ -#define OBD_SLAB_FREE_RTN0(ptr, slab) \ -({ \ - kmem_cache_free((slab), (ptr)); \ - (ptr) = NULL; \ - 0; \ -}) #define __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, cptab, cpt, size, type) \ do { \ From fea6fc647b589e5954330f1f0497b6de59b7fe01 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 01:36:31 +0530 Subject: [PATCH 1847/2431] Staging: lustre: lproc_osc: Change the variable to be checked The variable rc is supposed to hold the value returned by function kstrtoul which can either be 0, -EINVAL (-22) or -ERANGE (-34). Therefore, the check must be performed on rc instead of val for error values. Also, rc can never be greater than 0. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/lproc_osc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index 053d5088f02f..cdc7f889564e 100644 --- a/drivers/staging/lustre/lustre/osc/lproc_osc.c +++ b/drivers/staging/lustre/lustre/osc/lproc_osc.c @@ -61,9 +61,7 @@ static ssize_t active_store(struct kobject *kobj, struct attribute *attr, unsigned long val; rc = kstrtoul(buffer, 10, &val); - if (rc) - return rc; - if (val < 0 || val > 1) + if (rc < 0) return -ERANGE; /* opposite senses */ From e3ce40cb734f2a0edd51f3a7cda913274dab42ed Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 02:17:20 +0530 Subject: [PATCH 1848/2431] Staging: lustre: lproc_ptlrpc: Replace simple_strtol with simple_stroul The variable inst is a __u32 type and hence the function used should be simple_strtoul. Semantic patch used: @@ typedef __u32; __u32 e; @@ e = - simple_strtol + simple_strtoul (...) Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index ec44b3c70e25..415817c423dd 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -1251,7 +1251,7 @@ int lprocfs_wr_import(struct file *file, const char __user *buffer, *ptr = 0; do_reconn = 0; ptr += strlen("::"); - inst = simple_strtol(ptr, &endptr, 10); + inst = simple_strtoul(ptr, &endptr, 10); if (*endptr) { CERROR("config: wrong instance # %s\n", ptr); } else if (inst != imp->imp_connect_data.ocd_instance) { From bd60ac14db902ed8e5c7a769c85fc9005fd69c26 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 23:46:05 +0530 Subject: [PATCH 1849/2431] Staging: rtl8192e: rtllib_softmac: Remove useless cast Explicit type conversion is not required to remove it. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtllib_softmac.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c index 3bc4223fe347..d0fedb0ff132 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c @@ -1520,8 +1520,7 @@ static void rtllib_associate_complete_wq(void *data) container_of_work_rsl(data, struct rtllib_device, associate_complete_wq); - struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *) - (&(ieee->PowerSaveControl)); + struct rt_pwr_save_ctrl *pPSC = &(ieee->PowerSaveControl); netdev_info(ieee->dev, "Associated successfully\n"); if (!ieee->is_silent_reset) { netdev_info(ieee->dev, "normal associate\n"); @@ -1974,8 +1973,7 @@ static short rtllib_sta_ps_sleep(struct rtllib_device *ieee, u64 *time) { int timeout = ieee->ps_timeout; u8 dtim; - struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *) - (&(ieee->PowerSaveControl)); + struct rt_pwr_save_ctrl *pPSC = &(ieee->PowerSaveControl); if (ieee->LPSDelayCnt) { ieee->LPSDelayCnt--; From 4a737ec350caf0d04e3706f86887ac716abf584e Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 22:34:27 +0300 Subject: [PATCH 1850/2431] staging: iio: cdc: simplify return flow Simplify return flow ad7150_write_event_params in order to reduce code length. Since i2c_smbus_write_word_data only returns a negative value or 0 the change is safe. This patch fixes the following coccicheck warning: drivers/staging/iio/cdc/ad7150.c:182:2-5: WARNING: end returns can be simpified if negative or 0 value Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/cdc/ad7150.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c index ff833949591c..636a7ee4a508 100644 --- a/drivers/staging/iio/cdc/ad7150.c +++ b/drivers/staging/iio/cdc/ad7150.c @@ -179,12 +179,9 @@ static int ad7150_write_event_params(struct iio_dev *indio_dev, /* Note completely different from the adaptive versions */ case IIO_EV_TYPE_THRESH: value = chip->threshold[rising][chan]; - ret = i2c_smbus_write_word_data(chip->client, + return i2c_smbus_write_word_data(chip->client, ad7150_addresses[chan][3], swab16(value)); - if (ret < 0) - return ret; - return 0; case IIO_EV_TYPE_MAG_ADAPTIVE: sens = chip->mag_sensitivity[rising][chan]; timeout = chip->mag_timeout[rising][chan]; From 0e4f007500397921bda7038fa4afafde68fc0b23 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:12 +0300 Subject: [PATCH 1851/2431] staging: iio: adc: use kernel types u32 and u64 Convert uint32_t to u32 and uint64_t to u64 in order to follow the kernel best practice Signed-off-by: Ioana Ciornei Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/mxs-lradc.c | 30 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c index 3f7715c9968b..d88d85bd48a0 100644 --- a/drivers/staging/iio/adc/mxs-lradc.c +++ b/drivers/staging/iio/adc/mxs-lradc.c @@ -108,12 +108,12 @@ static const char * const mx28_lradc_irq_names[] = { struct mxs_lradc_of_config { const int irq_count; const char * const *irq_name; - const uint32_t *vref_mv; + const u32 *vref_mv; }; #define VREF_MV_BASE 1850 -static const uint32_t mx23_vref_mv[LRADC_MAX_TOTAL_CHANS] = { +static const u32 mx23_vref_mv[LRADC_MAX_TOTAL_CHANS] = { VREF_MV_BASE, /* CH0 */ VREF_MV_BASE, /* CH1 */ VREF_MV_BASE, /* CH2 */ @@ -132,7 +132,7 @@ static const uint32_t mx23_vref_mv[LRADC_MAX_TOTAL_CHANS] = { VREF_MV_BASE * 4, /* CH15 VDD5V */ }; -static const uint32_t mx28_vref_mv[LRADC_MAX_TOTAL_CHANS] = { +static const u32 mx28_vref_mv[LRADC_MAX_TOTAL_CHANS] = { VREF_MV_BASE, /* CH0 */ VREF_MV_BASE, /* CH1 */ VREF_MV_BASE, /* CH2 */ @@ -198,14 +198,14 @@ struct mxs_lradc { struct clk *clk; - uint32_t *buffer; + u32 *buffer; struct iio_trigger *trig; struct mutex lock; struct completion completion; - const uint32_t *vref_mv; + const u32 *vref_mv; struct mxs_lradc_scale scale_avail[LRADC_MAX_TOTAL_CHANS][2]; unsigned long is_divided; @@ -1138,8 +1138,8 @@ static irqreturn_t mxs_lradc_handle_irq(int irq, void *data) struct iio_dev *iio = data; struct mxs_lradc *lradc = iio_priv(iio); unsigned long reg = readl(lradc->base + LRADC_CTRL1); - uint32_t clr_irq = mxs_lradc_irq_mask(lradc); - const uint32_t ts_irq_mask = + u32 clr_irq = mxs_lradc_irq_mask(lradc); + const u32 ts_irq_mask = LRADC_CTRL1_TOUCH_DETECT_IRQ | LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1) | LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL2); @@ -1175,7 +1175,7 @@ static irqreturn_t mxs_lradc_trigger_handler(int irq, void *p) struct iio_poll_func *pf = p; struct iio_dev *iio = pf->indio_dev; struct mxs_lradc *lradc = iio_priv(iio); - const uint32_t chan_value = LRADC_CH_ACCUMULATE | + const u32 chan_value = LRADC_CH_ACCUMULATE | ((LRADC_DELAY_TIMER_LOOP - 1) << LRADC_CH_NUM_SAMPLES_OFFSET); unsigned int i, j = 0; @@ -1198,7 +1198,7 @@ static int mxs_lradc_configure_trigger(struct iio_trigger *trig, bool state) { struct iio_dev *iio = iio_trigger_get_drvdata(trig); struct mxs_lradc *lradc = iio_priv(iio); - const uint32_t st = state ? STMP_OFFSET_REG_SET : STMP_OFFSET_REG_CLR; + const u32 st = state ? STMP_OFFSET_REG_SET : STMP_OFFSET_REG_CLR; mxs_lradc_reg_wrt(lradc, LRADC_DELAY_KICK, LRADC_DELAY(0) + st); @@ -1248,10 +1248,10 @@ static int mxs_lradc_buffer_preenable(struct iio_dev *iio) struct mxs_lradc *lradc = iio_priv(iio); int ret = 0, chan, ofs = 0; unsigned long enable = 0; - uint32_t ctrl4_set = 0; - uint32_t ctrl4_clr = 0; - uint32_t ctrl1_irq = 0; - const uint32_t chan_value = LRADC_CH_ACCUMULATE | + u32 ctrl4_set = 0; + u32 ctrl4_clr = 0; + u32 ctrl1_irq = 0; + const u32 chan_value = LRADC_CH_ACCUMULATE | ((LRADC_DELAY_TIMER_LOOP - 1) << LRADC_CH_NUM_SAMPLES_OFFSET); const int len = bitmap_weight(iio->active_scan_mask, LRADC_MAX_TOTAL_CHANS); @@ -1456,7 +1456,7 @@ static const struct iio_chan_spec mx28_lradc_chan_spec[] = { static int mxs_lradc_hw_init(struct mxs_lradc *lradc) { /* The ADC always uses DELAY CHANNEL 0. */ - const uint32_t adc_cfg = + const u32 adc_cfg = (1 << (LRADC_DELAY_TRIGGER_DELAYS_OFFSET + 0)) | (LRADC_DELAY_TIMER_PER << LRADC_DELAY_DELAY_OFFSET); @@ -1583,7 +1583,7 @@ static int mxs_lradc_probe(struct platform_device *pdev) struct resource *iores; int ret = 0, touch_ret; int i, s; - uint64_t scale_uv; + u64 scale_uv; /* Allocate the IIO device. */ iio = devm_iio_device_alloc(dev, sizeof(*lradc)); From e8ef49f09b26a4c11ad846ef1afa2a726a8c6800 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:13 +0300 Subject: [PATCH 1852/2431] staging: iio: adc: properly indent to match open paranthesis Indent parameters and arguments passed to function calls to match open paranthesis Signed-off-by: Ioana Ciornei Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7192.c | 47 ++++---- drivers/staging/iio/adc/ad7280a.c | 159 +++++++++++++------------- drivers/staging/iio/adc/ad7606_core.c | 21 ++-- drivers/staging/iio/adc/ad7606_par.c | 10 +- drivers/staging/iio/adc/ad7606_spi.c | 4 +- drivers/staging/iio/adc/ad7780.c | 12 +- drivers/staging/iio/adc/ad7816.c | 48 ++++---- drivers/staging/iio/adc/lpc32xx_adc.c | 14 +-- drivers/staging/iio/adc/mxs-lradc.c | 153 ++++++++++++++----------- drivers/staging/iio/adc/spear_adc.c | 4 +- 10 files changed, 249 insertions(+), 223 deletions(-) diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index fe56fb6c7d30..5ae7a50116b1 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -201,7 +201,7 @@ static int ad7192_calibrate_all(struct ad7192_state *st) } static int ad7192_setup(struct ad7192_state *st, - const struct ad7192_platform_data *pdata) + const struct ad7192_platform_data *pdata) { struct iio_dev *indio_dev = spi_get_drvdata(st->sd.spi); unsigned long long scale_uv; @@ -224,7 +224,7 @@ static int ad7192_setup(struct ad7192_state *st, if (id != st->devid) dev_warn(&st->sd.spi->dev, "device ID query failed (0x%X)\n", - id); + id); switch (pdata->clock_source_sel) { case AD7192_CLK_EXT_MCLK1_2: @@ -307,8 +307,8 @@ out: } static ssize_t ad7192_read_frequency(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7192_state *st = iio_priv(indio_dev); @@ -318,9 +318,9 @@ static ssize_t ad7192_read_frequency(struct device *dev, } static ssize_t ad7192_write_frequency(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7192_state *st = iio_priv(indio_dev); @@ -359,8 +359,9 @@ static IIO_DEV_ATTR_SAMP_FREQ(S_IWUSR | S_IRUGO, ad7192_read_frequency, ad7192_write_frequency); -static ssize_t ad7192_show_scale_available(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t +ad7192_show_scale_available(struct device *dev, + struct device_attribute *attr, char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7192_state *st = iio_priv(indio_dev); @@ -383,8 +384,8 @@ static IIO_DEVICE_ATTR(in_voltage_scale_available, S_IRUGO, ad7192_show_scale_available, NULL, 0); static ssize_t ad7192_show_ac_excitation(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7192_state *st = iio_priv(indio_dev); @@ -393,8 +394,8 @@ static ssize_t ad7192_show_ac_excitation(struct device *dev, } static ssize_t ad7192_show_bridge_switch(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7192_state *st = iio_priv(indio_dev); @@ -403,9 +404,9 @@ static ssize_t ad7192_show_bridge_switch(struct device *dev, } static ssize_t ad7192_set(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7192_state *st = iio_priv(indio_dev); @@ -529,10 +530,10 @@ static int ad7192_read_raw(struct iio_dev *indio_dev, } static int ad7192_write_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, - int val, - int val2, - long mask) + struct iio_chan_spec const *chan, + int val, + int val2, + long mask) { struct ad7192_state *st = iio_priv(indio_dev); int ret, i; @@ -556,7 +557,7 @@ static int ad7192_write_raw(struct iio_dev *indio_dev, if (tmp == st->conf) break; ad_sd_write_reg(&st->sd, AD7192_REG_CONF, - 3, st->conf); + 3, st->conf); ad7192_calibrate_all(st); break; } @@ -571,8 +572,8 @@ static int ad7192_write_raw(struct iio_dev *indio_dev, } static int ad7192_write_raw_get_fmt(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, - long mask) + struct iio_chan_spec const *chan, + long mask) { return IIO_VAL_INT_PLUS_NANO; } diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c index edbfba1c503c..6db764e68c97 100644 --- a/drivers/staging/iio/adc/ad7280a.c +++ b/drivers/staging/iio/adc/ad7280a.c @@ -224,24 +224,24 @@ static int ad7280_write(struct ad7280_state *st, unsigned devaddr, } static int ad7280_read(struct ad7280_state *st, unsigned devaddr, - unsigned addr) + unsigned addr) { int ret; unsigned tmp; /* turns off the read operation on all parts */ ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1, - AD7280A_CTRL_HB_CONV_INPUT_ALL | - AD7280A_CTRL_HB_CONV_RES_READ_NO | - st->ctrl_hb); + AD7280A_CTRL_HB_CONV_INPUT_ALL | + AD7280A_CTRL_HB_CONV_RES_READ_NO | + st->ctrl_hb); if (ret) return ret; /* turns on the read operation on the addressed part */ ret = ad7280_write(st, devaddr, AD7280A_CONTROL_HB, 0, - AD7280A_CTRL_HB_CONV_INPUT_ALL | - AD7280A_CTRL_HB_CONV_RES_READ_ALL | - st->ctrl_hb); + AD7280A_CTRL_HB_CONV_INPUT_ALL | + AD7280A_CTRL_HB_CONV_RES_READ_ALL | + st->ctrl_hb); if (ret) return ret; @@ -272,17 +272,17 @@ static int ad7280_read_channel(struct ad7280_state *st, unsigned devaddr, return ret; ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1, - AD7280A_CTRL_HB_CONV_INPUT_ALL | - AD7280A_CTRL_HB_CONV_RES_READ_NO | - st->ctrl_hb); + AD7280A_CTRL_HB_CONV_INPUT_ALL | + AD7280A_CTRL_HB_CONV_RES_READ_NO | + st->ctrl_hb); if (ret) return ret; ret = ad7280_write(st, devaddr, AD7280A_CONTROL_HB, 0, - AD7280A_CTRL_HB_CONV_INPUT_ALL | - AD7280A_CTRL_HB_CONV_RES_READ_ALL | - AD7280A_CTRL_HB_CONV_START_CS | - st->ctrl_hb); + AD7280A_CTRL_HB_CONV_INPUT_ALL | + AD7280A_CTRL_HB_CONV_RES_READ_ALL | + AD7280A_CTRL_HB_CONV_START_CS | + st->ctrl_hb); if (ret) return ret; @@ -300,7 +300,7 @@ static int ad7280_read_channel(struct ad7280_state *st, unsigned devaddr, } static int ad7280_read_all_channels(struct ad7280_state *st, unsigned cnt, - unsigned *array) + unsigned *array) { int i, ret; unsigned tmp, sum = 0; @@ -311,10 +311,10 @@ static int ad7280_read_all_channels(struct ad7280_state *st, unsigned cnt, return ret; ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1, - AD7280A_CTRL_HB_CONV_INPUT_ALL | - AD7280A_CTRL_HB_CONV_RES_READ_ALL | - AD7280A_CTRL_HB_CONV_START_CS | - st->ctrl_hb); + AD7280A_CTRL_HB_CONV_INPUT_ALL | + AD7280A_CTRL_HB_CONV_RES_READ_ALL | + AD7280A_CTRL_HB_CONV_START_CS | + st->ctrl_hb); if (ret) return ret; @@ -342,24 +342,24 @@ static int ad7280_chain_setup(struct ad7280_state *st) int ret; ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_LB, 1, - AD7280A_CTRL_LB_DAISY_CHAIN_RB_EN | - AD7280A_CTRL_LB_LOCK_DEV_ADDR | - AD7280A_CTRL_LB_MUST_SET | - AD7280A_CTRL_LB_SWRST | - st->ctrl_lb); + AD7280A_CTRL_LB_DAISY_CHAIN_RB_EN | + AD7280A_CTRL_LB_LOCK_DEV_ADDR | + AD7280A_CTRL_LB_MUST_SET | + AD7280A_CTRL_LB_SWRST | + st->ctrl_lb); if (ret) return ret; ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_LB, 1, - AD7280A_CTRL_LB_DAISY_CHAIN_RB_EN | - AD7280A_CTRL_LB_LOCK_DEV_ADDR | - AD7280A_CTRL_LB_MUST_SET | - st->ctrl_lb); + AD7280A_CTRL_LB_DAISY_CHAIN_RB_EN | + AD7280A_CTRL_LB_LOCK_DEV_ADDR | + AD7280A_CTRL_LB_MUST_SET | + st->ctrl_lb); if (ret) return ret; ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_READ, 1, - AD7280A_CONTROL_LB << 2); + AD7280A_CONTROL_LB << 2); if (ret) return ret; @@ -379,8 +379,8 @@ static int ad7280_chain_setup(struct ad7280_state *st) } static ssize_t ad7280_show_balance_sw(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7280_state *st = iio_priv(indio_dev); @@ -392,9 +392,9 @@ static ssize_t ad7280_show_balance_sw(struct device *dev, } static ssize_t ad7280_store_balance_sw(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7280_state *st = iio_priv(indio_dev); @@ -424,8 +424,8 @@ static ssize_t ad7280_store_balance_sw(struct device *dev, } static ssize_t ad7280_show_balance_timer(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7280_state *st = iio_priv(indio_dev); @@ -435,7 +435,7 @@ static ssize_t ad7280_show_balance_timer(struct device *dev, mutex_lock(&indio_dev->mlock); ret = ad7280_read(st, this_attr->address >> 8, - this_attr->address & 0xFF); + this_attr->address & 0xFF); mutex_unlock(&indio_dev->mlock); if (ret < 0) @@ -447,9 +447,9 @@ static ssize_t ad7280_show_balance_timer(struct device *dev, } static ssize_t ad7280_store_balance_timer(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7280_state *st = iio_priv(indio_dev); @@ -492,8 +492,8 @@ static int ad7280_channel_init(struct ad7280_state *st) return -ENOMEM; for (dev = 0, cnt = 0; dev <= st->slave_num; dev++) - for (ch = AD7280A_CELL_VOLTAGE_1; ch <= AD7280A_AUX_ADC_6; ch++, - cnt++) { + for (ch = AD7280A_CELL_VOLTAGE_1; ch <= AD7280A_AUX_ADC_6; + ch++, cnt++) { if (ch < AD7280A_AUX_ADC_1) { st->channels[cnt].type = IIO_VOLTAGE; st->channels[cnt].differential = 1; @@ -566,9 +566,9 @@ static int ad7280_attr_init(struct ad7280_state *st) ad7280_store_balance_sw; st->iio_attr[cnt].dev_attr.attr.name = kasprintf(GFP_KERNEL, - "in%d-in%d_balance_switch_en", - (dev * AD7280A_CELLS_PER_DEV) + ch, - (dev * AD7280A_CELLS_PER_DEV) + ch + 1); + "in%d-in%d_balance_switch_en", + dev * AD7280A_CELLS_PER_DEV + ch, + dev * AD7280A_CELLS_PER_DEV + ch + 1); ad7280_attributes[cnt] = &st->iio_attr[cnt].dev_attr.attr; cnt++; @@ -582,9 +582,10 @@ static int ad7280_attr_init(struct ad7280_state *st) st->iio_attr[cnt].dev_attr.store = ad7280_store_balance_timer; st->iio_attr[cnt].dev_attr.attr.name = - kasprintf(GFP_KERNEL, "in%d-in%d_balance_timer", - (dev * AD7280A_CELLS_PER_DEV) + ch, - (dev * AD7280A_CELLS_PER_DEV) + ch + 1); + kasprintf(GFP_KERNEL, + "in%d-in%d_balance_timer", + dev * AD7280A_CELLS_PER_DEV + ch, + dev * AD7280A_CELLS_PER_DEV + ch + 1); ad7280_attributes[cnt] = &st->iio_attr[cnt].dev_attr.attr; } @@ -595,8 +596,8 @@ static int ad7280_attr_init(struct ad7280_state *st) } static ssize_t ad7280_read_channel_config(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7280_state *st = iio_priv(indio_dev); @@ -624,9 +625,9 @@ static ssize_t ad7280_read_channel_config(struct device *dev, } static ssize_t ad7280_write_channel_config(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7280_state *st = iio_priv(indio_dev); @@ -698,39 +699,41 @@ static irqreturn_t ad7280_event_handler(int irq, void *private) if (((channels[i] >> 11) & 0xFFF) >= st->cell_threshhigh) iio_push_event(indio_dev, - IIO_EVENT_CODE(IIO_VOLTAGE, - 1, - 0, - IIO_EV_DIR_RISING, - IIO_EV_TYPE_THRESH, - 0, 0, 0), - iio_get_time_ns()); + IIO_EVENT_CODE(IIO_VOLTAGE, + 1, + 0, + IIO_EV_DIR_RISING, + IIO_EV_TYPE_THRESH, + 0, 0, 0), + iio_get_time_ns()); else if (((channels[i] >> 11) & 0xFFF) <= st->cell_threshlow) iio_push_event(indio_dev, - IIO_EVENT_CODE(IIO_VOLTAGE, - 1, - 0, - IIO_EV_DIR_FALLING, - IIO_EV_TYPE_THRESH, - 0, 0, 0), - iio_get_time_ns()); + IIO_EVENT_CODE(IIO_VOLTAGE, + 1, + 0, + IIO_EV_DIR_FALLING, + IIO_EV_TYPE_THRESH, + 0, 0, 0), + iio_get_time_ns()); } else { if (((channels[i] >> 11) & 0xFFF) >= st->aux_threshhigh) iio_push_event(indio_dev, - IIO_UNMOD_EVENT_CODE(IIO_TEMP, - 0, - IIO_EV_TYPE_THRESH, - IIO_EV_DIR_RISING), - iio_get_time_ns()); + IIO_UNMOD_EVENT_CODE( + IIO_TEMP, + 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_RISING), + iio_get_time_ns()); else if (((channels[i] >> 11) & 0xFFF) <= st->aux_threshlow) iio_push_event(indio_dev, - IIO_UNMOD_EVENT_CODE(IIO_TEMP, - 0, - IIO_EV_TYPE_THRESH, - IIO_EV_DIR_FALLING), - iio_get_time_ns()); + IIO_UNMOD_EVENT_CODE( + IIO_TEMP, + 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_FALLING), + iio_get_time_ns()); } } @@ -955,7 +958,7 @@ static int ad7280_remove(struct spi_device *spi) iio_device_unregister(indio_dev); ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1, - AD7280A_CTRL_HB_PWRDN_SW | st->ctrl_hb); + AD7280A_CTRL_HB_PWRDN_SW | st->ctrl_hb); kfree(st->channels); kfree(st->iio_attr); diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c index bf2c8013134c..1e324fe31b98 100644 --- a/drivers/staging/iio/adc/ad7606_core.c +++ b/drivers/staging/iio/adc/ad7606_core.c @@ -108,7 +108,7 @@ static int ad7606_read_raw(struct iio_dev *indio_dev, } static ssize_t ad7606_show_range(struct device *dev, - struct device_attribute *attr, char *buf) + struct device_attribute *attr, char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7606_state *st = iio_priv(indio_dev); @@ -117,7 +117,8 @@ static ssize_t ad7606_show_range(struct device *dev, } static ssize_t ad7606_store_range(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) + struct device_attribute *attr, + const char *buf, size_t count) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7606_state *st = iio_priv(indio_dev); @@ -145,7 +146,8 @@ static IIO_DEVICE_ATTR(in_voltage_range, S_IRUGO | S_IWUSR, static IIO_CONST_ATTR(in_voltage_range_available, "5000 10000"); static ssize_t ad7606_show_oversampling_ratio(struct device *dev, - struct device_attribute *attr, char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7606_state *st = iio_priv(indio_dev); @@ -166,7 +168,8 @@ static int ad7606_oversampling_get_index(unsigned val) } static ssize_t ad7606_store_oversampling_ratio(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) + struct device_attribute *attr, + const char *buf, size_t count) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7606_state *st = iio_priv(indio_dev); @@ -460,9 +463,9 @@ static const struct iio_info ad7606_info_range = { }; struct iio_dev *ad7606_probe(struct device *dev, int irq, - void __iomem *base_address, - unsigned id, - const struct ad7606_bus_ops *bops) + void __iomem *base_address, + unsigned id, + const struct ad7606_bus_ops *bops) { struct ad7606_platform_data *pdata = dev->platform_data; struct ad7606_state *st; @@ -529,7 +532,7 @@ struct iio_dev *ad7606_probe(struct device *dev, int irq, dev_warn(st->dev, "failed to RESET: no RESET GPIO specified\n"); ret = request_irq(irq, ad7606_interrupt, - IRQF_TRIGGER_FALLING, st->chip_info->name, indio_dev); + IRQF_TRIGGER_FALLING, st->chip_info->name, indio_dev); if (ret) goto error_free_gpios; @@ -591,7 +594,7 @@ void ad7606_resume(struct iio_dev *indio_dev) if (gpio_is_valid(st->pdata->gpio_stby)) { if (gpio_is_valid(st->pdata->gpio_range)) gpio_set_value(st->pdata->gpio_range, - st->range == 10000); + st->range == 10000); gpio_set_value(st->pdata->gpio_stby, 1); ad7606_reset(st); diff --git a/drivers/staging/iio/adc/ad7606_par.c b/drivers/staging/iio/adc/ad7606_par.c index 1d48ae381d16..fbe8237e0be1 100644 --- a/drivers/staging/iio/adc/ad7606_par.c +++ b/drivers/staging/iio/adc/ad7606_par.c @@ -16,7 +16,7 @@ #include "ad7606.h" static int ad7606_par16_read_block(struct device *dev, - int count, void *buf) + int count, void *buf) { struct platform_device *pdev = to_platform_device(dev); struct iio_dev *indio_dev = platform_get_drvdata(pdev); @@ -32,7 +32,7 @@ static const struct ad7606_bus_ops ad7606_par16_bops = { }; static int ad7606_par8_read_block(struct device *dev, - int count, void *buf) + int count, void *buf) { struct platform_device *pdev = to_platform_device(dev); struct iio_dev *indio_dev = platform_get_drvdata(pdev); @@ -69,9 +69,9 @@ static int ad7606_par_probe(struct platform_device *pdev) remap_size = resource_size(res); indio_dev = ad7606_probe(&pdev->dev, irq, addr, - platform_get_device_id(pdev)->driver_data, - remap_size > 1 ? &ad7606_par16_bops : - &ad7606_par8_bops); + platform_get_device_id(pdev)->driver_data, + remap_size > 1 ? &ad7606_par16_bops : + &ad7606_par8_bops); if (IS_ERR(indio_dev)) return PTR_ERR(indio_dev); diff --git a/drivers/staging/iio/adc/ad7606_spi.c b/drivers/staging/iio/adc/ad7606_spi.c index 7303983e64a7..9c62e941a538 100644 --- a/drivers/staging/iio/adc/ad7606_spi.c +++ b/drivers/staging/iio/adc/ad7606_spi.c @@ -44,8 +44,8 @@ static int ad7606_spi_probe(struct spi_device *spi) struct iio_dev *indio_dev; indio_dev = ad7606_probe(&spi->dev, spi->irq, NULL, - spi_get_device_id(spi)->driver_data, - &ad7606_spi_bops); + spi_get_device_id(spi)->driver_data, + &ad7606_spi_bops); if (IS_ERR(indio_dev)) return PTR_ERR(indio_dev); diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c index 9f03fe3ee3d9..722bb1524d65 100644 --- a/drivers/staging/iio/adc/ad7780.c +++ b/drivers/staging/iio/adc/ad7780.c @@ -62,7 +62,7 @@ static struct ad7780_state *ad_sigma_delta_to_ad7780(struct ad_sigma_delta *sd) } static int ad7780_set_mode(struct ad_sigma_delta *sigma_delta, - enum ad_sigma_delta_mode mode) + enum ad_sigma_delta_mode mode) { struct ad7780_state *st = ad_sigma_delta_to_ad7780(sigma_delta); unsigned val; @@ -107,13 +107,13 @@ static int ad7780_read_raw(struct iio_dev *indio_dev, } static int ad7780_postprocess_sample(struct ad_sigma_delta *sigma_delta, - unsigned int raw_sample) + unsigned int raw_sample) { struct ad7780_state *st = ad_sigma_delta_to_ad7780(sigma_delta); const struct ad7780_chip_info *chip_info = st->chip_info; if ((raw_sample & AD7780_ERR) || - ((raw_sample & chip_info->pattern_mask) != chip_info->pattern)) + ((raw_sample & chip_info->pattern_mask) != chip_info->pattern)) return -EIO; if (raw_sample & AD7780_GAIN) @@ -207,8 +207,10 @@ static int ad7780_probe(struct spi_device *spi) if (pdata && gpio_is_valid(pdata->gpio_pdrst)) { - ret = devm_gpio_request_one(&spi->dev, pdata->gpio_pdrst, - GPIOF_OUT_INIT_LOW, "AD7780 /PDRST"); + ret = devm_gpio_request_one(&spi->dev, + pdata->gpio_pdrst, + GPIOF_OUT_INIT_LOW, + "AD7780 /PDRST"); if (ret) { dev_err(&spi->dev, "failed to request GPIO PDRST\n"); goto error_disable_reg; diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c index 48b1c3740030..4e954d25bd6e 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -110,8 +110,8 @@ static int ad7816_spi_write(struct ad7816_chip_info *chip, u8 data) } static ssize_t ad7816_show_mode(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7816_chip_info *chip = iio_priv(indio_dev); @@ -122,9 +122,9 @@ static ssize_t ad7816_show_mode(struct device *dev, } static ssize_t ad7816_store_mode(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7816_chip_info *chip = iio_priv(indio_dev); @@ -146,8 +146,8 @@ static IIO_DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, 0); static ssize_t ad7816_show_available_modes(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { return sprintf(buf, "full\npower-save\n"); } @@ -156,8 +156,8 @@ static IIO_DEVICE_ATTR(available_modes, S_IRUGO, ad7816_show_available_modes, NULL, 0); static ssize_t ad7816_show_channel(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7816_chip_info *chip = iio_priv(indio_dev); @@ -166,9 +166,9 @@ static ssize_t ad7816_show_channel(struct device *dev, } static ssize_t ad7816_store_channel(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7816_chip_info *chip = iio_priv(indio_dev); @@ -205,8 +205,8 @@ static IIO_DEVICE_ATTR(channel, S_IRUGO | S_IWUSR, static ssize_t ad7816_show_value(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7816_chip_info *chip = iio_priv(indio_dev); @@ -260,8 +260,8 @@ static irqreturn_t ad7816_event_handler(int irq, void *private) } static ssize_t ad7816_show_oti(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7816_chip_info *chip = iio_priv(indio_dev); @@ -280,9 +280,9 @@ static ssize_t ad7816_show_oti(struct device *dev, } static inline ssize_t ad7816_set_oti(struct device *dev, - struct device_attribute *attr, - const char *buf, - size_t len) + struct device_attribute *attr, + const char *buf, + size_t len) { struct iio_dev *indio_dev = dev_to_iio_dev(dev); struct ad7816_chip_info *chip = iio_priv(indio_dev); @@ -299,7 +299,7 @@ static inline ssize_t ad7816_set_oti(struct device *dev, return -EINVAL; } else if (chip->channel_id == 0) { if (ret || value < AD7816_BOUND_VALUE_MIN || - value > AD7816_BOUND_VALUE_MAX) + value > AD7816_BOUND_VALUE_MAX) return -EINVAL; data = (u8)(value - AD7816_BOUND_VALUE_MIN + @@ -371,7 +371,7 @@ static int ad7816_probe(struct spi_device *spi_dev) chip->busy_pin = pins[2]; ret = devm_gpio_request(&spi_dev->dev, chip->rdwr_pin, - spi_get_device_id(spi_dev)->name); + spi_get_device_id(spi_dev)->name); if (ret) { dev_err(&spi_dev->dev, "Fail to request rdwr gpio PIN %d.\n", chip->rdwr_pin); @@ -379,7 +379,7 @@ static int ad7816_probe(struct spi_device *spi_dev) } gpio_direction_input(chip->rdwr_pin); ret = devm_gpio_request(&spi_dev->dev, chip->convert_pin, - spi_get_device_id(spi_dev)->name); + spi_get_device_id(spi_dev)->name); if (ret) { dev_err(&spi_dev->dev, "Fail to request convert gpio PIN %d.\n", chip->convert_pin); @@ -387,7 +387,7 @@ static int ad7816_probe(struct spi_device *spi_dev) } gpio_direction_input(chip->convert_pin); ret = devm_gpio_request(&spi_dev->dev, chip->busy_pin, - spi_get_device_id(spi_dev)->name); + spi_get_device_id(spi_dev)->name); if (ret) { dev_err(&spi_dev->dev, "Fail to request busy gpio PIN %d.\n", chip->busy_pin); @@ -417,7 +417,7 @@ static int ad7816_probe(struct spi_device *spi_dev) return ret; dev_info(&spi_dev->dev, "%s temperature sensor and ADC registered.\n", - indio_dev->name); + indio_dev->name); return 0; } diff --git a/drivers/staging/iio/adc/lpc32xx_adc.c b/drivers/staging/iio/adc/lpc32xx_adc.c index bcf4ebb2e3ab..d11c54b72186 100644 --- a/drivers/staging/iio/adc/lpc32xx_adc.c +++ b/drivers/staging/iio/adc/lpc32xx_adc.c @@ -67,10 +67,10 @@ struct lpc32xx_adc_info { }; static int lpc32xx_read_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, - int *val, - int *val2, - long mask) + struct iio_chan_spec const *chan, + int *val, + int *val2, + long mask) { struct lpc32xx_adc_info *info = iio_priv(indio_dev); @@ -79,10 +79,10 @@ static int lpc32xx_read_raw(struct iio_dev *indio_dev, clk_enable(info->clk); /* Measurement setup */ __raw_writel(AD_INTERNAL | (chan->address) | AD_REFp | AD_REFm, - LPC32XX_ADC_SELECT(info->adc_base)); + LPC32XX_ADC_SELECT(info->adc_base)); /* Trigger conversion */ __raw_writel(AD_PDN_CTRL | AD_STROBE, - LPC32XX_ADC_CTRL(info->adc_base)); + LPC32XX_ADC_CTRL(info->adc_base)); wait_for_completion(&info->completion); /* set by ISR */ clk_disable(info->clk); *val = info->value; @@ -166,7 +166,7 @@ static int lpc32xx_adc_probe(struct platform_device *pdev) } retval = devm_request_irq(&pdev->dev, irq, lpc32xx_adc_isr, 0, - MOD_NAME, info); + MOD_NAME, info); if (retval < 0) { dev_err(&pdev->dev, "failed requesting interrupt\n"); return retval; diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c index d88d85bd48a0..f250aaf3bf26 100644 --- a/drivers/staging/iio/adc/mxs-lradc.c +++ b/drivers/staging/iio/adc/mxs-lradc.c @@ -425,7 +425,7 @@ static void mxs_lradc_map_channel(struct mxs_lradc *lradc, unsigned vch, unsigned ch) { mxs_lradc_reg_clear(lradc, LRADC_CTRL4_LRADCSELECT_MASK(vch), - LRADC_CTRL4); + LRADC_CTRL4); mxs_lradc_reg_set(lradc, LRADC_CTRL4_LRADCSELECT(vch, ch), LRADC_CTRL4); } @@ -440,8 +440,8 @@ static void mxs_lradc_setup_ts_channel(struct mxs_lradc *lradc, unsigned ch) * otherwise, the IRQs will not fire." */ mxs_lradc_reg_wrt(lradc, LRADC_CH_ACCUMULATE | - LRADC_CH_NUM_SAMPLES(lradc->over_sample_cnt - 1), - LRADC_CH(ch)); + LRADC_CH_NUM_SAMPLES(lradc->over_sample_cnt - 1), + LRADC_CH(ch)); /* from the datasheet: * "Software must clear this register in preparation for a @@ -458,10 +458,10 @@ static void mxs_lradc_setup_ts_channel(struct mxs_lradc *lradc, unsigned ch) * the LRADC will not trigger the delay group." */ mxs_lradc_reg_wrt(lradc, LRADC_DELAY_TRIGGER(1 << ch) | - LRADC_DELAY_TRIGGER_DELAYS(0) | - LRADC_DELAY_LOOP(lradc->over_sample_cnt - 1) | - LRADC_DELAY_DELAY(lradc->over_sample_delay - 1), - LRADC_DELAY(3)); + LRADC_DELAY_TRIGGER_DELAYS(0) | + LRADC_DELAY_LOOP(lradc->over_sample_cnt - 1) | + LRADC_DELAY_DELAY(lradc->over_sample_delay - 1), + LRADC_DELAY(3)); mxs_lradc_reg_clear(lradc, LRADC_CTRL1_LRADC_IRQ(ch), LRADC_CTRL1); @@ -471,12 +471,13 @@ static void mxs_lradc_setup_ts_channel(struct mxs_lradc *lradc, unsigned ch) * SoC's delay unit and start the conversion later * and automatically. */ - mxs_lradc_reg_wrt(lradc, + mxs_lradc_reg_wrt( + lradc, LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */ LRADC_DELAY_TRIGGER_DELAYS(BIT(3)) | /* trigger DELAY unit#3 */ LRADC_DELAY_KICK | LRADC_DELAY_DELAY(lradc->settling_delay), - LRADC_DELAY(2)); + LRADC_DELAY(2)); } /* @@ -486,7 +487,7 @@ static void mxs_lradc_setup_ts_channel(struct mxs_lradc *lradc, unsigned ch) * hardware report one interrupt if both conversions are done */ static void mxs_lradc_setup_ts_pressure(struct mxs_lradc *lradc, unsigned ch1, - unsigned ch2) + unsigned ch2) { u32 reg; @@ -511,12 +512,14 @@ static void mxs_lradc_setup_ts_pressure(struct mxs_lradc *lradc, unsigned ch1, mxs_lradc_reg_clear(lradc, LRADC_CH_VALUE_MASK, LRADC_CH(ch2)); /* prepare the delay/loop unit according to the oversampling count */ - mxs_lradc_reg_wrt(lradc, LRADC_DELAY_TRIGGER(1 << ch1) | - LRADC_DELAY_TRIGGER(1 << ch2) | /* start both channels */ - LRADC_DELAY_TRIGGER_DELAYS(0) | - LRADC_DELAY_LOOP(lradc->over_sample_cnt - 1) | - LRADC_DELAY_DELAY(lradc->over_sample_delay - 1), - LRADC_DELAY(3)); + mxs_lradc_reg_wrt( + lradc, + LRADC_DELAY_TRIGGER(1 << ch1) | + LRADC_DELAY_TRIGGER(1 << ch2) | /* start both channels */ + LRADC_DELAY_TRIGGER_DELAYS(0) | + LRADC_DELAY_LOOP(lradc->over_sample_cnt - 1) | + LRADC_DELAY_DELAY(lradc->over_sample_delay - 1), + LRADC_DELAY(3)); mxs_lradc_reg_clear(lradc, LRADC_CTRL1_LRADC_IRQ(ch2), LRADC_CTRL1); @@ -526,7 +529,8 @@ static void mxs_lradc_setup_ts_pressure(struct mxs_lradc *lradc, unsigned ch1, * SoC's delay unit and start the conversion later * and automatically. */ - mxs_lradc_reg_wrt(lradc, + mxs_lradc_reg_wrt( + lradc, LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */ LRADC_DELAY_TRIGGER_DELAYS(BIT(3)) | /* trigger DELAY unit#3 */ LRADC_DELAY_KICK | @@ -534,7 +538,7 @@ static void mxs_lradc_setup_ts_pressure(struct mxs_lradc *lradc, unsigned ch1, } static unsigned mxs_lradc_read_raw_channel(struct mxs_lradc *lradc, - unsigned channel) + unsigned channel) { u32 reg; unsigned num_samples, val; @@ -550,7 +554,7 @@ static unsigned mxs_lradc_read_raw_channel(struct mxs_lradc *lradc, } static unsigned mxs_lradc_read_ts_pressure(struct mxs_lradc *lradc, - unsigned ch1, unsigned ch2) + unsigned ch1, unsigned ch2) { u32 reg, mask; unsigned pressure, m1, m2; @@ -607,7 +611,7 @@ static void mxs_lradc_setup_touch_detection(struct mxs_lradc *lradc) */ mxs_lradc_reg_clear(lradc, mxs_lradc_plate_mask(lradc), LRADC_CTRL0); mxs_lradc_reg_set(lradc, mxs_lradc_touch_detect_bit(lradc), - LRADC_CTRL0); + LRADC_CTRL0); } /* @@ -675,7 +679,7 @@ static void mxs_lradc_prepare_pressure(struct mxs_lradc *lradc) mxs_lradc_map_channel(lradc, TOUCHSCREEN_VCHANNEL1, TS_CH_YM); mxs_lradc_map_channel(lradc, TOUCHSCREEN_VCHANNEL2, TS_CH_XP); mxs_lradc_setup_ts_pressure(lradc, TOUCHSCREEN_VCHANNEL2, - TOUCHSCREEN_VCHANNEL1); + TOUCHSCREEN_VCHANNEL1); } static void mxs_lradc_enable_touch_detection(struct mxs_lradc *lradc) @@ -684,16 +688,18 @@ static void mxs_lradc_enable_touch_detection(struct mxs_lradc *lradc) lradc->cur_plate = LRADC_TOUCH; mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ | - LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1); + LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1); mxs_lradc_reg_set(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1); } static void mxs_lradc_start_touch_event(struct mxs_lradc *lradc) { - mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, - LRADC_CTRL1); + mxs_lradc_reg_clear(lradc, + LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, + LRADC_CTRL1); mxs_lradc_reg_set(lradc, - LRADC_CTRL1_LRADC_IRQ_EN(TOUCHSCREEN_VCHANNEL1), LRADC_CTRL1); + LRADC_CTRL1_LRADC_IRQ_EN(TOUCHSCREEN_VCHANNEL1), + LRADC_CTRL1); /* * start with the Y-pos, because it uses nearly the same plate * settings like the touch detection @@ -720,12 +726,14 @@ static void mxs_lradc_complete_touch_event(struct mxs_lradc *lradc) */ mxs_lradc_reg_wrt(lradc, 0, LRADC_CH(TOUCHSCREEN_VCHANNEL1)); mxs_lradc_reg_clear(lradc, - LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1) | - LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL2), LRADC_CTRL1); - mxs_lradc_reg_wrt(lradc, - LRADC_DELAY_TRIGGER(1 << TOUCHSCREEN_VCHANNEL1) | - LRADC_DELAY_KICK | LRADC_DELAY_DELAY(10), /* waste 5 ms */ - LRADC_DELAY(2)); + LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1) | + LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL2), + LRADC_CTRL1); + mxs_lradc_reg_wrt( + lradc, + LRADC_DELAY_TRIGGER(1 << TOUCHSCREEN_VCHANNEL1) | + LRADC_DELAY_KICK | LRADC_DELAY_DELAY(10), /* waste 5 ms */ + LRADC_DELAY(2)); } /* @@ -757,9 +765,11 @@ static void mxs_lradc_finish_touch_event(struct mxs_lradc *lradc, bool valid) lradc->cur_plate = LRADC_TOUCH; mxs_lradc_reg_wrt(lradc, 0, LRADC_DELAY(2)); mxs_lradc_reg_wrt(lradc, 0, LRADC_DELAY(3)); - mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ | - LRADC_CTRL1_LRADC_IRQ_EN(TOUCHSCREEN_VCHANNEL1) | - LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1), LRADC_CTRL1); + mxs_lradc_reg_clear(lradc, + LRADC_CTRL1_TOUCH_DETECT_IRQ | + LRADC_CTRL1_LRADC_IRQ_EN(TOUCHSCREEN_VCHANNEL1) | + LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1), + LRADC_CTRL1); mxs_lradc_reg_set(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1); } @@ -771,25 +781,28 @@ static void mxs_lradc_handle_touch(struct mxs_lradc *lradc) if (mxs_lradc_check_touch_event(lradc)) mxs_lradc_start_touch_event(lradc); mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ, - LRADC_CTRL1); + LRADC_CTRL1); return; case LRADC_SAMPLE_Y: - lradc->ts_y_pos = mxs_lradc_read_raw_channel(lradc, - TOUCHSCREEN_VCHANNEL1); + lradc->ts_y_pos = + mxs_lradc_read_raw_channel(lradc, + TOUCHSCREEN_VCHANNEL1); mxs_lradc_prepare_x_pos(lradc); return; case LRADC_SAMPLE_X: - lradc->ts_x_pos = mxs_lradc_read_raw_channel(lradc, - TOUCHSCREEN_VCHANNEL1); + lradc->ts_x_pos = + mxs_lradc_read_raw_channel(lradc, + TOUCHSCREEN_VCHANNEL1); mxs_lradc_prepare_pressure(lradc); return; case LRADC_SAMPLE_PRESSURE: - lradc->ts_pressure = mxs_lradc_read_ts_pressure(lradc, - TOUCHSCREEN_VCHANNEL2, - TOUCHSCREEN_VCHANNEL1); + lradc->ts_pressure = + mxs_lradc_read_ts_pressure(lradc, + TOUCHSCREEN_VCHANNEL2, + TOUCHSCREEN_VCHANNEL1); mxs_lradc_complete_touch_event(lradc); return; @@ -826,20 +839,22 @@ static int mxs_lradc_read_single(struct iio_dev *iio_dev, int chan, int *val) */ if (lradc->soc == IMX28_LRADC) mxs_lradc_reg_clear(lradc, LRADC_CTRL1_LRADC_IRQ_EN(0), - LRADC_CTRL1); + LRADC_CTRL1); mxs_lradc_reg_clear(lradc, 0x1, LRADC_CTRL0); /* Enable / disable the divider per requirement */ if (test_bit(chan, &lradc->is_divided)) - mxs_lradc_reg_set(lradc, 1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET, - LRADC_CTRL2); + mxs_lradc_reg_set(lradc, + 1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET, + LRADC_CTRL2); else mxs_lradc_reg_clear(lradc, - 1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET, LRADC_CTRL2); + 1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET, + LRADC_CTRL2); /* Clean the slot's previous content, then set new one. */ mxs_lradc_reg_clear(lradc, LRADC_CTRL4_LRADCSELECT_MASK(0), - LRADC_CTRL4); + LRADC_CTRL4); mxs_lradc_reg_set(lradc, chan, LRADC_CTRL4); mxs_lradc_reg_wrt(lradc, 0, LRADC_CH(0)); @@ -885,8 +900,8 @@ static int mxs_lradc_read_temp(struct iio_dev *iio_dev, int *val) } static int mxs_lradc_read_raw(struct iio_dev *iio_dev, - const struct iio_chan_spec *chan, - int *val, int *val2, long m) + const struct iio_chan_spec *chan, + int *val, int *val2, long m) { struct mxs_lradc *lradc = iio_priv(iio_dev); @@ -980,9 +995,9 @@ static int mxs_lradc_write_raw_get_fmt(struct iio_dev *iio_dev, } static ssize_t mxs_lradc_show_scale_available_ch(struct device *dev, - struct device_attribute *attr, - char *buf, - int ch) + struct device_attribute *attr, + char *buf, + int ch) { struct iio_dev *iio = dev_to_iio_dev(dev); struct mxs_lradc *lradc = iio_priv(iio); @@ -999,8 +1014,8 @@ static ssize_t mxs_lradc_show_scale_available_ch(struct device *dev, } static ssize_t mxs_lradc_show_scale_available(struct device *dev, - struct device_attribute *attr, - char *buf) + struct device_attribute *attr, + char *buf) { struct iio_dev_attr *iio_attr = to_iio_dev_attr(attr); @@ -1274,7 +1289,8 @@ static int mxs_lradc_buffer_preenable(struct iio_dev *iio) } if (lradc->soc == IMX28_LRADC) - mxs_lradc_reg_clear(lradc, + mxs_lradc_reg_clear( + lradc, lradc->buffer_vchans << LRADC_CTRL1_LRADC_IRQ_EN_OFFSET, LRADC_CTRL1); mxs_lradc_reg_clear(lradc, lradc->buffer_vchans, LRADC_CTRL0); @@ -1289,12 +1305,12 @@ static int mxs_lradc_buffer_preenable(struct iio_dev *iio) } mxs_lradc_reg_clear(lradc, LRADC_DELAY_TRIGGER_LRADCS_MASK | - LRADC_DELAY_KICK, LRADC_DELAY(0)); + LRADC_DELAY_KICK, LRADC_DELAY(0)); mxs_lradc_reg_clear(lradc, ctrl4_clr, LRADC_CTRL4); mxs_lradc_reg_set(lradc, ctrl4_set, LRADC_CTRL4); mxs_lradc_reg_set(lradc, ctrl1_irq, LRADC_CTRL1); mxs_lradc_reg_set(lradc, enable << LRADC_DELAY_TRIGGER_LRADCS_OFFSET, - LRADC_DELAY(0)); + LRADC_DELAY(0)); return 0; @@ -1308,11 +1324,12 @@ static int mxs_lradc_buffer_postdisable(struct iio_dev *iio) struct mxs_lradc *lradc = iio_priv(iio); mxs_lradc_reg_clear(lradc, LRADC_DELAY_TRIGGER_LRADCS_MASK | - LRADC_DELAY_KICK, LRADC_DELAY(0)); + LRADC_DELAY_KICK, LRADC_DELAY(0)); mxs_lradc_reg_clear(lradc, lradc->buffer_vchans, LRADC_CTRL0); if (lradc->soc == IMX28_LRADC) - mxs_lradc_reg_clear(lradc, + mxs_lradc_reg_clear( + lradc, lradc->buffer_vchans << LRADC_CTRL1_LRADC_IRQ_EN_OFFSET, LRADC_CTRL1); @@ -1323,7 +1340,7 @@ static int mxs_lradc_buffer_postdisable(struct iio_dev *iio) } static bool mxs_lradc_validate_scan_mask(struct iio_dev *iio, - const unsigned long *mask) + const unsigned long *mask) { struct mxs_lradc *lradc = iio_priv(iio); const int map_chans = bitmap_weight(mask, LRADC_MAX_TOTAL_CHANS); @@ -1476,11 +1493,11 @@ static int mxs_lradc_hw_init(struct mxs_lradc *lradc) /* Configure the touchscreen type */ if (lradc->soc == IMX28_LRADC) { mxs_lradc_reg_clear(lradc, LRADC_CTRL0_MX28_TOUCH_SCREEN_TYPE, - LRADC_CTRL0); + LRADC_CTRL0); if (lradc->use_touchscreen == MXS_LRADC_TOUCHSCREEN_5WIRE) mxs_lradc_reg_set(lradc, LRADC_CTRL0_MX28_TOUCH_SCREEN_TYPE, - LRADC_CTRL0); + LRADC_CTRL0); } /* Start internal temperature sensing. */ @@ -1507,13 +1524,13 @@ static const struct of_device_id mxs_lradc_dt_ids[] = { MODULE_DEVICE_TABLE(of, mxs_lradc_dt_ids); static int mxs_lradc_probe_touchscreen(struct mxs_lradc *lradc, - struct device_node *lradc_node) + struct device_node *lradc_node) { int ret; u32 ts_wires = 0, adapt; ret = of_property_read_u32(lradc_node, "fsl,lradc-touchscreen-wires", - &ts_wires); + &ts_wires); if (ret) return -ENODEV; /* touchscreen feature disabled */ @@ -1629,8 +1646,8 @@ static int mxs_lradc_probe(struct platform_device *pdev) } ret = devm_request_irq(dev, lradc->irq[i], - mxs_lradc_handle_irq, 0, - of_cfg->irq_name[i], iio); + mxs_lradc_handle_irq, 0, + of_cfg->irq_name[i], iio); if (ret) goto err_clk; } @@ -1657,8 +1674,8 @@ static int mxs_lradc_probe(struct platform_device *pdev) } ret = iio_triggered_buffer_setup(iio, &iio_pollfunc_store_time, - &mxs_lradc_trigger_handler, - &mxs_lradc_buffer_ops); + &mxs_lradc_trigger_handler, + &mxs_lradc_buffer_ops); if (ret) goto err_clk; diff --git a/drivers/staging/iio/adc/spear_adc.c b/drivers/staging/iio/adc/spear_adc.c index c5382374ddf6..712cae0e8608 100644 --- a/drivers/staging/iio/adc/spear_adc.c +++ b/drivers/staging/iio/adc/spear_adc.c @@ -191,8 +191,8 @@ static int spear_adc_write_raw(struct iio_dev *indio_dev, mutex_lock(&indio_dev->mlock); if ((val < SPEAR_ADC_CLK_MIN) || - (val > SPEAR_ADC_CLK_MAX) || - (val2 != 0)) { + (val > SPEAR_ADC_CLK_MAX) || + (val2 != 0)) { ret = -EINVAL; goto out; } From 603f102f7887e742ae85939dad80e868c2e64885 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:14 +0300 Subject: [PATCH 1853/2431] staging: iio: adc: remove explicit comparison to NULL Use !condition instead off condition == NULL when comparing with NULL Signed-off-by: Ioana Ciornei Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7192.c | 2 +- drivers/staging/iio/adc/ad7280a.c | 8 ++++---- drivers/staging/iio/adc/mxs-lradc.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 5ae7a50116b1..6adac6198854 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -626,7 +626,7 @@ static int ad7192_probe(struct spi_device *spi) } indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); - if (indio_dev == NULL) + if (!indio_dev) return -ENOMEM; st = iio_priv(indio_dev); diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c index 6db764e68c97..01156c7ceefb 100644 --- a/drivers/staging/iio/adc/ad7280a.c +++ b/drivers/staging/iio/adc/ad7280a.c @@ -488,7 +488,7 @@ static int ad7280_channel_init(struct ad7280_state *st) st->channels = kcalloc((st->slave_num + 1) * 12 + 2, sizeof(*st->channels), GFP_KERNEL); - if (st->channels == NULL) + if (!st->channels) return -ENOMEM; for (dev = 0, cnt = 0; dev <= st->slave_num; dev++) @@ -550,7 +550,7 @@ static int ad7280_attr_init(struct ad7280_state *st) st->iio_attr = kcalloc(2, sizeof(*st->iio_attr) * (st->slave_num + 1) * AD7280A_CELLS_PER_DEV, GFP_KERNEL); - if (st->iio_attr == NULL) + if (!st->iio_attr) return -ENOMEM; for (dev = 0, cnt = 0; dev <= st->slave_num; dev++) @@ -687,7 +687,7 @@ static irqreturn_t ad7280_event_handler(int irq, void *private) int i, ret; channels = kcalloc(st->scan_cnt, sizeof(*channels), GFP_KERNEL); - if (channels == NULL) + if (!channels) return IRQ_HANDLED; ret = ad7280_read_all_channels(st, st->scan_cnt, channels); @@ -842,7 +842,7 @@ static int ad7280_probe(struct spi_device *spi) struct iio_dev *indio_dev; indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); - if (indio_dev == NULL) + if (!indio_dev) return -ENOMEM; st = iio_priv(indio_dev); diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c index f250aaf3bf26..407d4a2c8eda 100644 --- a/drivers/staging/iio/adc/mxs-lradc.c +++ b/drivers/staging/iio/adc/mxs-lradc.c @@ -1232,7 +1232,7 @@ static int mxs_lradc_trigger_init(struct iio_dev *iio) struct mxs_lradc *lradc = iio_priv(iio); trig = iio_trigger_alloc("%s-dev%i", iio->name, iio->id); - if (trig == NULL) + if (!trig) return -ENOMEM; trig->dev.parent = lradc->dev; From c30685c67cc21490fc6842cbbc68404be90f6859 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:15 +0300 Subject: [PATCH 1854/2431] staging: iio: adc: remove space after cast Remove the space after an explicit cast because there is no point in having it Signed-off-by: Ioana Ciornei Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7192.c | 2 +- drivers/staging/iio/adc/ad7280a.c | 6 +++--- drivers/staging/iio/adc/ad7606_core.c | 2 +- drivers/staging/iio/adc/ad7606_par.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 6adac6198854..e7212c8dff04 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -424,7 +424,7 @@ static ssize_t ad7192_set(struct device *dev, return -EBUSY; } - switch ((u32) this_attr->address) { + switch ((u32)this_attr->address) { case AD7192_REG_GPOCON: if (val) st->gpocon |= AD7192_GPOCON_BPDSW; diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c index 01156c7ceefb..273703399282 100644 --- a/drivers/staging/iio/adc/ad7280a.c +++ b/drivers/staging/iio/adc/ad7280a.c @@ -604,7 +604,7 @@ static ssize_t ad7280_read_channel_config(struct device *dev, struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); unsigned val; - switch ((u32) this_attr->address) { + switch ((u32)this_attr->address) { case AD7280A_CELL_OVERVOLTAGE: val = 1000 + (st->cell_threshhigh * 1568) / 100; break; @@ -640,7 +640,7 @@ static ssize_t ad7280_write_channel_config(struct device *dev, if (ret) return ret; - switch ((u32) this_attr->address) { + switch ((u32)this_attr->address) { case AD7280A_CELL_OVERVOLTAGE: case AD7280A_CELL_UNDERVOLTAGE: val = ((val - 1000) * 100) / 1568; /* LSB 15.68mV */ @@ -656,7 +656,7 @@ static ssize_t ad7280_write_channel_config(struct device *dev, val = clamp(val, 0L, 0xFFL); mutex_lock(&indio_dev->mlock); - switch ((u32) this_attr->address) { + switch ((u32)this_attr->address) { case AD7280A_CELL_OVERVOLTAGE: st->cell_threshhigh = val; break; diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c index 1e324fe31b98..5796ed2409d0 100644 --- a/drivers/staging/iio/adc/ad7606_core.c +++ b/drivers/staging/iio/adc/ad7606_core.c @@ -97,7 +97,7 @@ static int ad7606_read_raw(struct iio_dev *indio_dev, if (ret < 0) return ret; - *val = (short) ret; + *val = (short)ret; return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: *val = st->range * 2; diff --git a/drivers/staging/iio/adc/ad7606_par.c b/drivers/staging/iio/adc/ad7606_par.c index fbe8237e0be1..3537a78e2d92 100644 --- a/drivers/staging/iio/adc/ad7606_par.c +++ b/drivers/staging/iio/adc/ad7606_par.c @@ -22,7 +22,7 @@ static int ad7606_par16_read_block(struct device *dev, struct iio_dev *indio_dev = platform_get_drvdata(pdev); struct ad7606_state *st = iio_priv(indio_dev); - insw((unsigned long) st->base_address, buf, count); + insw((unsigned long)st->base_address, buf, count); return 0; } @@ -38,7 +38,7 @@ static int ad7606_par8_read_block(struct device *dev, struct iio_dev *indio_dev = platform_get_drvdata(pdev); struct ad7606_state *st = iio_priv(indio_dev); - insb((unsigned long) st->base_address, buf, count * 2); + insb((unsigned long)st->base_address, buf, count * 2); return 0; } From 5feb8c51dba6813bcfbdeb688cd5fd6bcde2c5da Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:16 +0300 Subject: [PATCH 1855/2431] staging: iio: adc: add spaces around binary operators Add spaces around binary operators like -, +, * etc in order to improve readability Signed-off-by: Ioana Ciornei Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7816.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c index 4e954d25bd6e..663608762b6b 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -48,7 +48,7 @@ struct ad7816_chip_info { u16 rdwr_pin; u16 convert_pin; u16 busy_pin; - u8 oti_data[AD7816_CS_MAX+1]; + u8 oti_data[AD7816_CS_MAX + 1]; u8 channel_id; /* 0 always be temperature */ u8 mode; }; From 779c123e1a6cab6e564366198dcdcea8f273dbcf Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:17 +0300 Subject: [PATCH 1856/2431] staging: iio: adc: add blank line after declarations Insert a blank line after declarations Signed-off-by: Ioana Ciornei Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7606_par.c | 1 + drivers/staging/iio/adc/ad7606_spi.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/staging/iio/adc/ad7606_par.c b/drivers/staging/iio/adc/ad7606_par.c index 3537a78e2d92..adc370ee8632 100644 --- a/drivers/staging/iio/adc/ad7606_par.c +++ b/drivers/staging/iio/adc/ad7606_par.c @@ -113,6 +113,7 @@ static const struct dev_pm_ops ad7606_pm_ops = { .suspend = ad7606_par_suspend, .resume = ad7606_par_resume, }; + #define AD7606_PAR_PM_OPS (&ad7606_pm_ops) #else diff --git a/drivers/staging/iio/adc/ad7606_spi.c b/drivers/staging/iio/adc/ad7606_spi.c index 9c62e941a538..b88f8825797d 100644 --- a/drivers/staging/iio/adc/ad7606_spi.c +++ b/drivers/staging/iio/adc/ad7606_spi.c @@ -85,6 +85,7 @@ static const struct dev_pm_ops ad7606_pm_ops = { .suspend = ad7606_spi_suspend, .resume = ad7606_spi_resume, }; + #define AD7606_SPI_PM_OPS (&ad7606_pm_ops) #else From 253ed6848f07b910be5a9bbe1a741c6bc679cb54 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:18 +0300 Subject: [PATCH 1857/2431] staging: iio: adc: remove multiple blank lines Remove multiple blank lines since there is no practical reason to have it Signed-off-by: Ioana Ciornei Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7192.c | 1 - drivers/staging/iio/adc/ad7280a.c | 1 - drivers/staging/iio/adc/ad7780.c | 1 - drivers/staging/iio/adc/ad7816.c | 3 --- 4 files changed, 6 deletions(-) diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index e7212c8dff04..f3d793cc3f08 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -88,7 +88,6 @@ #define AD7192_CLK_INT_CO 3 /* Internal 4.92 MHz Clock available * at the MCLK2 pin */ - /* Configuration Register Bit Designations (AD7192_REG_CONF) */ #define AD7192_CONF_CHOP BIT(23) /* CHOP enable */ diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c index 273703399282..d37e8a436986 100644 --- a/drivers/staging/iio/adc/ad7280a.c +++ b/drivers/staging/iio/adc/ad7280a.c @@ -769,7 +769,6 @@ static IIO_DEVICE_ATTR(in_temp_thresh_high_value, ad7280_write_channel_config, AD7280A_AUX_ADC_OVERVOLTAGE); - static struct attribute *ad7280_event_attributes[] = { &iio_dev_attr_in_thresh_low_value.dev_attr.attr, &iio_dev_attr_in_thresh_high_value.dev_attr.attr, diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c index 722bb1524d65..618b41faa289 100644 --- a/drivers/staging/iio/adc/ad7780.c +++ b/drivers/staging/iio/adc/ad7780.c @@ -206,7 +206,6 @@ static int ad7780_probe(struct spi_device *spi) indio_dev->info = &ad7780_info; if (pdata && gpio_is_valid(pdata->gpio_pdrst)) { - ret = devm_gpio_request_one(&spi->dev, pdata->gpio_pdrst, GPIOF_OUT_INIT_LOW, diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c index 663608762b6b..b3dec7060d40 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -38,7 +38,6 @@ #define AD7816_TEMP_FLOAT_OFFSET 2 #define AD7816_TEMP_FLOAT_MASK 0x3 - /* * struct ad7816_chip_info - chip specific information */ @@ -70,7 +69,6 @@ static int ad7816_spi_read(struct ad7816_chip_info *chip, u16 *data) } gpio_set_value(chip->rdwr_pin, 1); - if (chip->mode == AD7816_PD) { /* operating mode 2 */ gpio_set_value(chip->convert_pin, 1); gpio_set_value(chip->convert_pin, 0); @@ -203,7 +201,6 @@ static IIO_DEVICE_ATTR(channel, S_IRUGO | S_IWUSR, ad7816_store_channel, 0); - static ssize_t ad7816_show_value(struct device *dev, struct device_attribute *attr, char *buf) From 5f7e280f5ae61450a7aecd9feefe3f032b6a5abf Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:19 +0300 Subject: [PATCH 1858/2431] staging: iio: adc: remove the use of CamelCase Remove the use of CamelCase to follow the kernel naming conventions Signed-off-by: Ioana Ciornei Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7192.c | 10 +++++----- drivers/staging/iio/adc/ad7192.h | 2 +- drivers/staging/iio/adc/ad7280a.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index f3d793cc3f08..bb760963aa24 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -124,7 +124,7 @@ #define AD7192_GPOCON_P1DAT BIT(1) /* P1 state */ #define AD7192_GPOCON_P0DAT BIT(0) /* P0 state */ -#define AD7192_INT_FREQ_MHz 4915200 +#define AD7192_INT_FREQ_MHZ 4915200 /* NOTE: * The AD7190/2/5 features a dual use data out ready DOUT/RDY output. @@ -228,14 +228,14 @@ static int ad7192_setup(struct ad7192_state *st, switch (pdata->clock_source_sel) { case AD7192_CLK_EXT_MCLK1_2: case AD7192_CLK_EXT_MCLK2: - st->mclk = AD7192_INT_FREQ_MHz; + st->mclk = AD7192_INT_FREQ_MHZ; break; case AD7192_CLK_INT: case AD7192_CLK_INT_CO: - if (pdata->ext_clk_Hz) - st->mclk = pdata->ext_clk_Hz; + if (pdata->ext_clk_hz) + st->mclk = pdata->ext_clk_hz; else - st->mclk = AD7192_INT_FREQ_MHz; + st->mclk = AD7192_INT_FREQ_MHZ; break; default: ret = -EINVAL; diff --git a/drivers/staging/iio/adc/ad7192.h b/drivers/staging/iio/adc/ad7192.h index a0a5b61a41f1..7433a43c2611 100644 --- a/drivers/staging/iio/adc/ad7192.h +++ b/drivers/staging/iio/adc/ad7192.h @@ -34,7 +34,7 @@ struct ad7192_platform_data { u16 vref_mv; u8 clock_source_sel; - u32 ext_clk_Hz; + u32 ext_clk_hz; bool refin2_en; bool rej60_en; bool sinc3_en; diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c index d37e8a436986..45df714cc83a 100644 --- a/drivers/staging/iio/adc/ad7280a.c +++ b/drivers/staging/iio/adc/ad7280a.c @@ -89,7 +89,7 @@ #define AD7280A_ALL_CELLS (0xAD << 16) -#define AD7280A_MAX_SPI_CLK_Hz 700000 /* < 1MHz */ +#define AD7280A_MAX_SPI_CLK_HZ 700000 /* < 1MHz */ #define AD7280A_MAX_CHAIN 8 #define AD7280A_CELLS_PER_DEV 6 #define AD7280A_BITS 12 @@ -853,7 +853,7 @@ static int ad7280_probe(struct spi_device *spi) ad7280_crc8_build_table(st->crc_tab); - st->spi->max_speed_hz = AD7280A_MAX_SPI_CLK_Hz; + st->spi->max_speed_hz = AD7280A_MAX_SPI_CLK_HZ; st->spi->mode = SPI_MODE_1; spi_setup(st->spi); From 859ba4684ec442b78e7ea8abd3529b9ad7c6024b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 16 Oct 2015 10:50:56 +0530 Subject: [PATCH 1859/2431] Staging: iio: cdc: Remove unused macros Remove the macros since they are not used anywhere throughout the kernel. Signed-off-by: Shraddha Barke Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/cdc/ad7746.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 6cd15e65185a..2c5d27784ed3 100644 --- a/drivers/staging/iio/cdc/ad7746.c +++ b/drivers/staging/iio/cdc/ad7746.c @@ -27,11 +27,7 @@ #define AD7746_REG_STATUS 0 #define AD7746_REG_CAP_DATA_HIGH 1 -#define AD7746_REG_CAP_DATA_MID 2 -#define AD7746_REG_CAP_DATA_LOW 3 #define AD7746_REG_VT_DATA_HIGH 4 -#define AD7746_REG_VT_DATA_MID 5 -#define AD7746_REG_VT_DATA_LOW 6 #define AD7746_REG_CAP_SETUP 7 #define AD7746_REG_VT_SETUP 8 #define AD7746_REG_EXC_SETUP 9 @@ -39,11 +35,8 @@ #define AD7746_REG_CAPDACA 11 #define AD7746_REG_CAPDACB 12 #define AD7746_REG_CAP_OFFH 13 -#define AD7746_REG_CAP_OFFL 14 #define AD7746_REG_CAP_GAINH 15 -#define AD7746_REG_CAP_GAINL 16 #define AD7746_REG_VOLT_GAINH 17 -#define AD7746_REG_VOLT_GAINL 18 /* Status Register Bit Designations (AD7746_REG_STATUS) */ #define AD7746_STATUS_EXCERR BIT(3) From 3c6b71a503181ccfcbad25f500f18b1253b8a247 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 19:12:06 +0530 Subject: [PATCH 1860/2431] Staging: iio: ad7192: Remove unnecessary NULL test The variable pdata is already NULL tested before so, any further tests should be removed. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/adc/ad7192.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index bb760963aa24..5b87049cd3f9 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -639,7 +639,7 @@ static int ad7192_probe(struct spi_device *spi) voltage_uv = regulator_get_voltage(st->reg); } - if (pdata && pdata->vref_mv) + if (pdata->vref_mv) st->int_vref_mv = pdata->vref_mv; else if (voltage_uv) st->int_vref_mv = voltage_uv / 1000; From 561e2967346af25aca786df77a339888574caec2 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 20:50:10 +0530 Subject: [PATCH 1861/2431] Staging: iio: tsl2x7x_core: Remove unrequired parentheses from DIV_ROUND_UP Remove parentheses surrounding the first argument of the macro DIV_ROUND_UP as they are not required. Semantic patch used: @@ expression e1,e2; @@ DIV_ROUND_UP( - ( e1 - ) ,e2) Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/light/tsl2x7x_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/iio/light/tsl2x7x_core.c b/drivers/staging/iio/light/tsl2x7x_core.c index 010e607dd880..bf9627ea2ffb 100644 --- a/drivers/staging/iio/light/tsl2x7x_core.c +++ b/drivers/staging/iio/light/tsl2x7x_core.c @@ -418,9 +418,9 @@ static int tsl2x7x_get_lux(struct iio_dev *indio_dev) if (p->ratio == 0) { lux = 0; } else { - ch0lux = DIV_ROUND_UP((ch0 * p->ch0), + ch0lux = DIV_ROUND_UP(ch0 * p->ch0, tsl2X7X_als_gainadj[chip->tsl2x7x_settings.als_gain]); - ch1lux = DIV_ROUND_UP((ch1 * p->ch1), + ch1lux = DIV_ROUND_UP(ch1 * p->ch1, tsl2X7X_als_gainadj[chip->tsl2x7x_settings.als_gain]); lux = ch0lux - ch1lux; } @@ -1057,7 +1057,7 @@ static ssize_t tsl2x7x_als_persistence_store(struct device *dev, z = y * TSL2X7X_MIN_ITIME; filter_delay = - DIV_ROUND_UP(((result.integer * 1000) + result.fract), z); + DIV_ROUND_UP((result.integer * 1000) + result.fract, z); chip->tsl2x7x_settings.persistence &= 0xF0; chip->tsl2x7x_settings.persistence |= (filter_delay & 0x0F); @@ -1103,7 +1103,7 @@ static ssize_t tsl2x7x_prox_persistence_store(struct device *dev, z = y * TSL2X7X_MIN_ITIME; filter_delay = - DIV_ROUND_UP(((result.integer * 1000) + result.fract), z); + DIV_ROUND_UP((result.integer * 1000) + result.fract, z); chip->tsl2x7x_settings.persistence &= 0x0F; chip->tsl2x7x_settings.persistence |= ((filter_delay << 4) & 0xF0); From 4b6184336ebb5c8dc1eae7f7ab46ee608a748b05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salva=20Peir=C3=B3?= Date: Wed, 14 Oct 2015 17:48:02 +0200 Subject: [PATCH 1862/2431] staging/dgnc: fix info leak in ioctl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dgnc_mgmt_ioctl() code fails to initialize the 16 _reserved bytes of struct digi_dinfo after the ->dinfo_nboards member. Add an explicit memset(0) before filling the structure to avoid the info leak. Signed-off-by: Salva Peiró Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_mgmt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c index 9ec3efe0a287..518fbd5e2d0e 100644 --- a/drivers/staging/dgnc/dgnc_mgmt.c +++ b/drivers/staging/dgnc/dgnc_mgmt.c @@ -110,6 +110,7 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) spin_lock_irqsave(&dgnc_global_lock, flags); + memset(&ddi, 0, sizeof(ddi)); ddi.dinfo_nboards = dgnc_NumBoards; sprintf(ddi.dinfo_version, "%s", DG_PART); From 96c35228559a6e9ec14cb494a3f6807b9f755c50 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 00:21:11 +0530 Subject: [PATCH 1863/2431] Staging: rtl8188eu: rf_cfg: Remove useless cast Type conversion of variables can be done by compiler implicitly so, explicit conversions should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/rf_cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8188eu/hal/rf_cfg.c b/drivers/staging/rtl8188eu/hal/rf_cfg.c index 954cade478db..067649a7fbec 100644 --- a/drivers/staging/rtl8188eu/hal/rf_cfg.c +++ b/drivers/staging/rtl8188eu/hal/rf_cfg.c @@ -188,7 +188,7 @@ static void rtl8188e_config_rf_reg(struct adapter *adapt, u32 addr, u32 data) { u32 content = 0x1000; /*RF Content: radio_a_txt*/ - u32 maskforphyset = (u32)(content & 0xE000); + u32 maskforphyset = content & 0xE000; rtl_rfreg_delay(adapt, RF90_PATH_A, addr | maskforphyset, RFREG_OFFSET_MASK, From d762c9b4b48acd082eb1d3ffe56401eac92fbef4 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 00:02:14 +0530 Subject: [PATCH 1864/2431] Staging: rtl8188eu: rtw_ieee80211: Remove unnecessary cast Explicit type conversion is not required and should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c index 39325a3a2fa2..82d4e888ca63 100644 --- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c +++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c @@ -1103,7 +1103,7 @@ void rtw_macaddr_cfg(u8 *mac_addr) void dump_ies(u8 *buf, u32 buf_len) { - u8 *pos = (u8 *)buf; + u8 *pos = buf; u8 id, len; while (pos-buf <= buf_len) { @@ -1119,7 +1119,7 @@ void dump_ies(u8 *buf, u32 buf_len) void dump_wps_ie(u8 *ie, u32 ie_len) { - u8 *pos = (u8 *)ie; + u8 *pos = ie; u16 id; u16 len; u8 *wps_ie; From 0d04cd1972d0d8c51845c243be160fef9480f219 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:30 +0530 Subject: [PATCH 1865/2431] Staging: media: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- .../staging/media/davinci_vpfe/dm365_ipipe.c | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c index 1bbb90ce0086..b1dfa2ccc4ef 100644 --- a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c +++ b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c @@ -79,7 +79,7 @@ static int ipipe_set_lutdpc_params(struct vpfe_ipipe_device *ipipe, void *param) } dev = ipipe->subdev.v4l2_dev->dev; - dpc_param = (struct vpfe_ipipe_lutdpc *)param; + dpc_param = param; lutdpc->en = dpc_param->en; lutdpc->repl_white = dpc_param->repl_white; lutdpc->dpc_size = dpc_param->dpc_size; @@ -96,7 +96,7 @@ success: static int ipipe_get_lutdpc_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_lutdpc *lut_param = (struct vpfe_ipipe_lutdpc *)param; + struct vpfe_ipipe_lutdpc *lut_param = param; struct vpfe_ipipe_lutdpc *lutdpc = &ipipe->config.lutdpc; lut_param->en = lutdpc->en; @@ -171,7 +171,7 @@ static int ipipe_validate_otfdpc_params(struct vpfe_ipipe_otfdpc *dpc_param) static int ipipe_set_otfdpc_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_otfdpc *dpc_param = (struct vpfe_ipipe_otfdpc *)param; + struct vpfe_ipipe_otfdpc *dpc_param = param; struct vpfe_ipipe_otfdpc *otfdpc = &ipipe->config.otfdpc; struct device *dev; @@ -194,7 +194,7 @@ success: static int ipipe_get_otfdpc_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_otfdpc *dpc_param = (struct vpfe_ipipe_otfdpc *)param; + struct vpfe_ipipe_otfdpc *dpc_param = param; struct vpfe_ipipe_otfdpc *otfdpc = &ipipe->config.otfdpc; memcpy(dpc_param, otfdpc, sizeof(struct vpfe_ipipe_otfdpc)); @@ -226,7 +226,7 @@ static int ipipe_validate_nf_params(struct vpfe_ipipe_nf *nf_param) static int ipipe_set_nf_params(struct vpfe_ipipe_device *ipipe, unsigned int id, void *param) { - struct vpfe_ipipe_nf *nf_param = (struct vpfe_ipipe_nf *)param; + struct vpfe_ipipe_nf *nf_param = param; struct vpfe_ipipe_nf *nf = &ipipe->config.nf1; struct device *dev; @@ -264,7 +264,7 @@ static int ipipe_set_nf2_params(struct vpfe_ipipe_device *ipipe, void *param) static int ipipe_get_nf_params(struct vpfe_ipipe_device *ipipe, unsigned int id, void *param) { - struct vpfe_ipipe_nf *nf_param = (struct vpfe_ipipe_nf *)param; + struct vpfe_ipipe_nf *nf_param = param; struct vpfe_ipipe_nf *nf = &ipipe->config.nf1; if (id == IPIPE_D2F_2ND) @@ -299,7 +299,7 @@ static int ipipe_validate_gic_params(struct vpfe_ipipe_gic *gic) static int ipipe_set_gic_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_gic *gic_param = (struct vpfe_ipipe_gic *)param; + struct vpfe_ipipe_gic *gic_param = param; struct device *dev = ipipe->subdev.v4l2_dev->dev; struct vpfe_ipipe_gic *gic = &ipipe->config.gic; @@ -322,7 +322,7 @@ success: static int ipipe_get_gic_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_gic *gic_param = (struct vpfe_ipipe_gic *)param; + struct vpfe_ipipe_gic *gic_param = param; struct vpfe_ipipe_gic *gic = &ipipe->config.gic; memcpy(gic_param, gic, sizeof(struct vpfe_ipipe_gic)); @@ -351,7 +351,7 @@ static int ipipe_validate_wb_params(struct vpfe_ipipe_wb *wbal) static int ipipe_set_wb_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_wb *wb_param = (struct vpfe_ipipe_wb *)param; + struct vpfe_ipipe_wb *wb_param = param; struct vpfe_ipipe_wb *wbal = &ipipe->config.wbal; if (!wb_param) { @@ -377,7 +377,7 @@ success: static int ipipe_get_wb_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_wb *wb_param = (struct vpfe_ipipe_wb *)param; + struct vpfe_ipipe_wb *wb_param = param; struct vpfe_ipipe_wb *wbal = &ipipe->config.wbal; memcpy(wb_param, wbal, sizeof(struct vpfe_ipipe_wb)); @@ -407,7 +407,7 @@ static int ipipe_validate_cfa_params(struct vpfe_ipipe_cfa *cfa) static int ipipe_set_cfa_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_cfa *cfa_param = (struct vpfe_ipipe_cfa *)param; + struct vpfe_ipipe_cfa *cfa_param = param; struct vpfe_ipipe_cfa *cfa = &ipipe->config.cfa; if (!cfa_param) { @@ -428,7 +428,7 @@ success: static int ipipe_get_cfa_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_cfa *cfa_param = (struct vpfe_ipipe_cfa *)param; + struct vpfe_ipipe_cfa *cfa_param = param; struct vpfe_ipipe_cfa *cfa = &ipipe->config.cfa; memcpy(cfa_param, cfa, sizeof(struct vpfe_ipipe_cfa)); @@ -498,7 +498,7 @@ static int ipipe_set_rgb2rgb_params(struct vpfe_ipipe_device *ipipe, struct device *dev = ipipe->subdev.v4l2_dev->dev; struct vpfe_ipipe_rgb2rgb *rgb2rgb_param; - rgb2rgb_param = (struct vpfe_ipipe_rgb2rgb *)param; + rgb2rgb_param = param; if (id == IPIPE_RGB2RGB_2) rgb2rgb = &ipipe->config.rgb2rgb2; @@ -551,7 +551,7 @@ static int ipipe_get_rgb2rgb_params(struct vpfe_ipipe_device *ipipe, struct vpfe_ipipe_rgb2rgb *rgb2rgb = &ipipe->config.rgb2rgb1; struct vpfe_ipipe_rgb2rgb *rgb2rgb_param; - rgb2rgb_param = (struct vpfe_ipipe_rgb2rgb *)param; + rgb2rgb_param = param; if (id == IPIPE_RGB2RGB_2) rgb2rgb = &ipipe->config.rgb2rgb2; @@ -634,7 +634,7 @@ ipipe_validate_gamma_params(struct vpfe_ipipe_gamma *gamma, struct device *dev) static int ipipe_set_gamma_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_gamma *gamma_param = (struct vpfe_ipipe_gamma *)param; + struct vpfe_ipipe_gamma *gamma_param = param; struct vpfe_ipipe_gamma *gamma = &ipipe->config.gamma; struct device *dev = ipipe->subdev.v4l2_dev->dev; int table_size; @@ -678,7 +678,7 @@ success: static int ipipe_get_gamma_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_gamma *gamma_param = (struct vpfe_ipipe_gamma *)param; + struct vpfe_ipipe_gamma *gamma_param = param; struct vpfe_ipipe_gamma *gamma = &ipipe->config.gamma; struct device *dev = ipipe->subdev.v4l2_dev->dev; int table_size; @@ -737,7 +737,7 @@ static int ipipe_validate_3d_lut_params(struct vpfe_ipipe_3d_lut *lut) static int ipipe_get_3d_lut_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_3d_lut *lut_param = (struct vpfe_ipipe_3d_lut *)param; + struct vpfe_ipipe_3d_lut *lut_param = param; struct vpfe_ipipe_3d_lut *lut = &ipipe->config.lut; struct device *dev = ipipe->subdev.v4l2_dev->dev; @@ -757,7 +757,7 @@ static int ipipe_get_3d_lut_params(struct vpfe_ipipe_device *ipipe, void *param) static int ipipe_set_3d_lut_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_3d_lut *lut_param = (struct vpfe_ipipe_3d_lut *)param; + struct vpfe_ipipe_3d_lut *lut_param = param; struct vpfe_ipipe_3d_lut *lut = &ipipe->config.lut; struct device *dev = ipipe->subdev.v4l2_dev->dev; @@ -831,7 +831,7 @@ ipipe_set_rgb2yuv_params(struct vpfe_ipipe_device *ipipe, void *param) struct device *dev = ipipe->subdev.v4l2_dev->dev; struct vpfe_ipipe_rgb2yuv *rgb2yuv_param; - rgb2yuv_param = (struct vpfe_ipipe_rgb2yuv *)param; + rgb2yuv_param = param; if (!rgb2yuv_param) { /* Defaults for rgb2yuv conversion */ const struct vpfe_ipipe_rgb2yuv rgb2yuv_defaults = { @@ -871,7 +871,7 @@ ipipe_get_rgb2yuv_params(struct vpfe_ipipe_device *ipipe, void *param) struct vpfe_ipipe_rgb2yuv *rgb2yuv = &ipipe->config.rgb2yuv; struct vpfe_ipipe_rgb2yuv *rgb2yuv_param; - rgb2yuv_param = (struct vpfe_ipipe_rgb2yuv *)param; + rgb2yuv_param = param; memcpy(rgb2yuv_param, rgb2yuv, sizeof(struct vpfe_ipipe_rgb2yuv)); return 0; } @@ -896,7 +896,7 @@ static int ipipe_validate_gbce_params(struct vpfe_ipipe_gbce *gbce) static int ipipe_set_gbce_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_gbce *gbce_param = (struct vpfe_ipipe_gbce *)param; + struct vpfe_ipipe_gbce *gbce_param = param; struct vpfe_ipipe_gbce *gbce = &ipipe->config.gbce; struct device *dev = ipipe->subdev.v4l2_dev->dev; @@ -917,7 +917,7 @@ static int ipipe_set_gbce_params(struct vpfe_ipipe_device *ipipe, void *param) static int ipipe_get_gbce_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_gbce *gbce_param = (struct vpfe_ipipe_gbce *)param; + struct vpfe_ipipe_gbce *gbce_param = param; struct vpfe_ipipe_gbce *gbce = &ipipe->config.gbce; struct device *dev = ipipe->subdev.v4l2_dev->dev; @@ -950,7 +950,7 @@ ipipe_set_yuv422_conv_params(struct vpfe_ipipe_device *ipipe, void *param) struct vpfe_ipipe_yuv422_conv *yuv422_conv_param; struct device *dev = ipipe->subdev.v4l2_dev->dev; - yuv422_conv_param = (struct vpfe_ipipe_yuv422_conv *)param; + yuv422_conv_param = param; if (!yuv422_conv_param) { memset(yuv422_conv, 0, sizeof(struct vpfe_ipipe_yuv422_conv)); yuv422_conv->chrom_pos = VPFE_IPIPE_YUV422_CHR_POS_COSITE; @@ -974,7 +974,7 @@ ipipe_get_yuv422_conv_params(struct vpfe_ipipe_device *ipipe, void *param) struct vpfe_ipipe_yuv422_conv *yuv422_conv = &ipipe->config.yuv422_conv; struct vpfe_ipipe_yuv422_conv *yuv422_conv_param; - yuv422_conv_param = (struct vpfe_ipipe_yuv422_conv *)param; + yuv422_conv_param = param; memcpy(yuv422_conv_param, yuv422_conv, sizeof(struct vpfe_ipipe_yuv422_conv)); @@ -1018,7 +1018,7 @@ static int ipipe_validate_yee_params(struct vpfe_ipipe_yee *yee) static int ipipe_set_yee_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_yee *yee_param = (struct vpfe_ipipe_yee *)param; + struct vpfe_ipipe_yee *yee_param = param; struct device *dev = ipipe->subdev.v4l2_dev->dev; struct vpfe_ipipe_yee *yee = &ipipe->config.yee; @@ -1039,7 +1039,7 @@ static int ipipe_set_yee_params(struct vpfe_ipipe_device *ipipe, void *param) static int ipipe_get_yee_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_yee *yee_param = (struct vpfe_ipipe_yee *)param; + struct vpfe_ipipe_yee *yee_param = param; struct vpfe_ipipe_yee *yee = &ipipe->config.yee; yee_param->en = yee->en; @@ -1081,7 +1081,7 @@ static int ipipe_validate_car_params(struct vpfe_ipipe_car *car) static int ipipe_set_car_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_car *car_param = (struct vpfe_ipipe_car *)param; + struct vpfe_ipipe_car *car_param = param; struct device *dev = ipipe->subdev.v4l2_dev->dev; struct vpfe_ipipe_car *car = &ipipe->config.car; @@ -1102,7 +1102,7 @@ static int ipipe_set_car_params(struct vpfe_ipipe_device *ipipe, void *param) static int ipipe_get_car_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_car *car_param = (struct vpfe_ipipe_car *)param; + struct vpfe_ipipe_car *car_param = param; struct vpfe_ipipe_car *car = &ipipe->config.car; memcpy(car_param, car, sizeof(struct vpfe_ipipe_car)); @@ -1119,7 +1119,7 @@ static int ipipe_validate_cgs_params(struct vpfe_ipipe_cgs *cgs) static int ipipe_set_cgs_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_cgs *cgs_param = (struct vpfe_ipipe_cgs *)param; + struct vpfe_ipipe_cgs *cgs_param = param; struct device *dev = ipipe->subdev.v4l2_dev->dev; struct vpfe_ipipe_cgs *cgs = &ipipe->config.cgs; @@ -1140,7 +1140,7 @@ static int ipipe_set_cgs_params(struct vpfe_ipipe_device *ipipe, void *param) static int ipipe_get_cgs_params(struct vpfe_ipipe_device *ipipe, void *param) { - struct vpfe_ipipe_cgs *cgs_param = (struct vpfe_ipipe_cgs *)param; + struct vpfe_ipipe_cgs *cgs_param = param; struct vpfe_ipipe_cgs *cgs = &ipipe->config.cgs; memcpy(cgs_param, cgs, sizeof(struct vpfe_ipipe_cgs)); From a787bde8ce7f3c6c5ba50175769827fbde3b42c0 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:29 +0530 Subject: [PATCH 1866/2431] Staging: rdma: hfi1: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/chip.c | 30 +++++++++++++++--------------- drivers/staging/rdma/hfi1/mad.c | 8 ++++---- drivers/staging/rdma/hfi1/verbs.c | 2 +- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/staging/rdma/hfi1/chip.c b/drivers/staging/rdma/hfi1/chip.c index 11523596ca57..46ebc381a792 100644 --- a/drivers/staging/rdma/hfi1/chip.c +++ b/drivers/staging/rdma/hfi1/chip.c @@ -1295,7 +1295,7 @@ static inline u64 read_write_csr(const struct hfi1_devdata *dd, u32 csr, static u64 dev_access_u32_csr(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_devdata *dd = (struct hfi1_devdata *)context; + struct hfi1_devdata *dd = context; if (vl != CNTR_INVALID_VL) return 0; @@ -1305,7 +1305,7 @@ static u64 dev_access_u32_csr(const struct cntr_entry *entry, static u64 dev_access_u64_csr(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_devdata *dd = (struct hfi1_devdata *)context; + struct hfi1_devdata *dd = context; u64 val = 0; u64 csr = entry->csr; @@ -1326,7 +1326,7 @@ static u64 dev_access_u64_csr(const struct cntr_entry *entry, void *context, static u64 dc_access_lcb_cntr(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_devdata *dd = (struct hfi1_devdata *)context; + struct hfi1_devdata *dd = context; u32 csr = entry->csr; int ret = 0; @@ -1350,7 +1350,7 @@ static u64 dc_access_lcb_cntr(const struct cntr_entry *entry, void *context, static u64 port_access_u32_csr(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_pportdata *ppd = (struct hfi1_pportdata *)context; + struct hfi1_pportdata *ppd = context; if (vl != CNTR_INVALID_VL) return 0; @@ -1360,7 +1360,7 @@ static u64 port_access_u32_csr(const struct cntr_entry *entry, void *context, static u64 port_access_u64_csr(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_pportdata *ppd = (struct hfi1_pportdata *)context; + struct hfi1_pportdata *ppd = context; u64 val; u64 csr = entry->csr; @@ -1400,7 +1400,7 @@ static inline u64 read_write_sw(struct hfi1_devdata *dd, u64 *cntr, int mode, static u64 access_sw_link_dn_cnt(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_pportdata *ppd = (struct hfi1_pportdata *)context; + struct hfi1_pportdata *ppd = context; if (vl != CNTR_INVALID_VL) return 0; @@ -1410,7 +1410,7 @@ static u64 access_sw_link_dn_cnt(const struct cntr_entry *entry, void *context, static u64 access_sw_link_up_cnt(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_pportdata *ppd = (struct hfi1_pportdata *)context; + struct hfi1_pportdata *ppd = context; if (vl != CNTR_INVALID_VL) return 0; @@ -1420,7 +1420,7 @@ static u64 access_sw_link_up_cnt(const struct cntr_entry *entry, void *context, static u64 access_sw_xmit_discards(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_pportdata *ppd = (struct hfi1_pportdata *)context; + struct hfi1_pportdata *ppd = context; if (vl != CNTR_INVALID_VL) return 0; @@ -1431,7 +1431,7 @@ static u64 access_sw_xmit_discards(const struct cntr_entry *entry, static u64 access_xmit_constraint_errs(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_pportdata *ppd = (struct hfi1_pportdata *)context; + struct hfi1_pportdata *ppd = context; if (vl != CNTR_INVALID_VL) return 0; @@ -1443,7 +1443,7 @@ static u64 access_xmit_constraint_errs(const struct cntr_entry *entry, static u64 access_rcv_constraint_errs(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_pportdata *ppd = (struct hfi1_pportdata *)context; + struct hfi1_pportdata *ppd = context; if (vl != CNTR_INVALID_VL) return 0; @@ -1491,7 +1491,7 @@ static u64 read_write_cpu(struct hfi1_devdata *dd, u64 *z_val, static u64 access_sw_cpu_intr(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_devdata *dd = (struct hfi1_devdata *)context; + struct hfi1_devdata *dd = context; return read_write_cpu(dd, &dd->z_int_counter, dd->int_counter, vl, mode, data); @@ -1500,7 +1500,7 @@ static u64 access_sw_cpu_intr(const struct cntr_entry *entry, static u64 access_sw_cpu_rcv_limit(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_devdata *dd = (struct hfi1_devdata *)context; + struct hfi1_devdata *dd = context; return read_write_cpu(dd, &dd->z_rcv_limit, dd->rcv_limit, vl, mode, data); @@ -1509,7 +1509,7 @@ static u64 access_sw_cpu_rcv_limit(const struct cntr_entry *entry, static u64 access_sw_pio_wait(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_devdata *dd = (struct hfi1_devdata *)context; + struct hfi1_devdata *dd = context; return dd->verbs_dev.n_piowait; } @@ -1517,7 +1517,7 @@ static u64 access_sw_pio_wait(const struct cntr_entry *entry, static u64 access_sw_vtx_wait(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_devdata *dd = (struct hfi1_devdata *)context; + struct hfi1_devdata *dd = context; return dd->verbs_dev.n_txwait; } @@ -1525,7 +1525,7 @@ static u64 access_sw_vtx_wait(const struct cntr_entry *entry, static u64 access_sw_kmem_wait(const struct cntr_entry *entry, void *context, int vl, int mode, u64 data) { - struct hfi1_devdata *dd = (struct hfi1_devdata *)context; + struct hfi1_devdata *dd = context; return dd->verbs_dev.n_kmem_wait; } diff --git a/drivers/staging/rdma/hfi1/mad.c b/drivers/staging/rdma/hfi1/mad.c index b2c1b72d38ce..58723fb6b8bd 100644 --- a/drivers/staging/rdma/hfi1/mad.c +++ b/drivers/staging/rdma/hfi1/mad.c @@ -1438,7 +1438,7 @@ static int __subn_set_opa_pkeytable(struct opa_smp *smp, u32 am, u8 *data, static int get_sc2vlt_tables(struct hfi1_devdata *dd, void *data) { - u64 *val = (u64 *)data; + u64 *val = data; *val++ = read_csr(dd, SEND_SC2VLT0); *val++ = read_csr(dd, SEND_SC2VLT1); @@ -1457,7 +1457,7 @@ static int get_sc2vlt_tables(struct hfi1_devdata *dd, void *data) static void filter_sc2vlt(void *data) { int i; - u8 *pd = (u8 *)data; + u8 *pd = data; for (i = 0; i < OPA_MAX_SCS; i++) { if (i == 15) @@ -1469,7 +1469,7 @@ static void filter_sc2vlt(void *data) static int set_sc2vlt_tables(struct hfi1_devdata *dd, void *data) { - u64 *val = (u64 *)data; + u64 *val = data; filter_sc2vlt(data); @@ -1478,7 +1478,7 @@ static int set_sc2vlt_tables(struct hfi1_devdata *dd, void *data) write_csr(dd, SEND_SC2VLT2, *val++); write_csr(dd, SEND_SC2VLT3, *val++); write_seqlock_irq(&dd->sc2vl_lock); - memcpy(dd->sc2vl, (u64 *)data, sizeof(dd->sc2vl)); + memcpy(dd->sc2vl, data, sizeof(dd->sc2vl)); write_sequnlock_irq(&dd->sc2vl_lock); return 0; } diff --git a/drivers/staging/rdma/hfi1/verbs.c b/drivers/staging/rdma/hfi1/verbs.c index a43fccd68a73..45f291fd3236 100644 --- a/drivers/staging/rdma/hfi1/verbs.c +++ b/drivers/staging/rdma/hfi1/verbs.c @@ -1885,7 +1885,7 @@ static void init_ibport(struct hfi1_pportdata *ppd) static void verbs_txreq_kmem_cache_ctor(void *obj) { - struct verbs_txreq *tx = (struct verbs_txreq *)obj; + struct verbs_txreq *tx = obj; memset(tx, 0, sizeof(*tx)); } From 2512233334d9694c42a0da14f5a6393e75c7835e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:27 +0530 Subject: [PATCH 1867/2431] Staging: rdma: amso1100: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/amso1100/c2.c | 2 +- drivers/staging/rdma/amso1100/c2_ae.c | 6 +++--- drivers/staging/rdma/amso1100/c2_intr.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rdma/amso1100/c2.c b/drivers/staging/rdma/amso1100/c2.c index 7f1e794a858c..35ac536b2d45 100644 --- a/drivers/staging/rdma/amso1100/c2.c +++ b/drivers/staging/rdma/amso1100/c2.c @@ -548,7 +548,7 @@ static irqreturn_t c2_interrupt(int irq, void *dev_id) { unsigned int netisr0, dmaisr; int handled = 0; - struct c2_dev *c2dev = (struct c2_dev *) dev_id; + struct c2_dev *c2dev = dev_id; /* Process CCILNET interrupts */ netisr0 = readl(c2dev->regs + C2_NISR0); diff --git a/drivers/staging/rdma/amso1100/c2_ae.c b/drivers/staging/rdma/amso1100/c2_ae.c index cedda25232be..eb7a92b2692f 100644 --- a/drivers/staging/rdma/amso1100/c2_ae.c +++ b/drivers/staging/rdma/amso1100/c2_ae.c @@ -183,7 +183,7 @@ void c2_ae_event(struct c2_dev *c2dev, u32 mq_index) switch (resource_indicator) { case C2_RES_IND_QP:{ - struct c2_qp *qp = (struct c2_qp *)resource_user_context; + struct c2_qp *qp = resource_user_context; struct iw_cm_id *cm_id = qp->cm_id; struct c2wr_ae_active_connect_results *res; @@ -273,7 +273,7 @@ void c2_ae_event(struct c2_dev *c2dev, u32 mq_index) struct c2wr_ae_connection_request *req = &wr->ae.ae_connection_request; struct iw_cm_id *cm_id = - (struct iw_cm_id *)resource_user_context; + resource_user_context; pr_debug("C2_RES_IND_EP event_id=%d\n", event_id); if (event_id != CCAE_CONNECTION_REQUEST) { @@ -303,7 +303,7 @@ void c2_ae_event(struct c2_dev *c2dev, u32 mq_index) case C2_RES_IND_CQ:{ struct c2_cq *cq = - (struct c2_cq *) resource_user_context; + resource_user_context; pr_debug("IB_EVENT_CQ_ERR\n"); ib_event.device = &c2dev->ibdev; diff --git a/drivers/staging/rdma/amso1100/c2_intr.c b/drivers/staging/rdma/amso1100/c2_intr.c index 3a17d9b36dba..74b32a971124 100644 --- a/drivers/staging/rdma/amso1100/c2_intr.c +++ b/drivers/staging/rdma/amso1100/c2_intr.c @@ -122,7 +122,7 @@ static void handle_vq(struct c2_dev *c2dev, u32 mq_index) struct iw_cm_event cm_event; int err; - reply_vq = (struct c2_mq *) c2dev->qptr_array[mq_index]; + reply_vq = c2dev->qptr_array[mq_index]; /* * get next msg from mq_index into adapter_msg. From e4c0c6bc0c3baa6ba8cce4db5568fe9db5ad3c5f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:26 +0530 Subject: [PATCH 1868/2431] Staging: comedi: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/amplc_pci230.c | 2 +- drivers/staging/comedi/drivers/cb_pcidas.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/amplc_pci230.c b/drivers/staging/comedi/drivers/amplc_pci230.c index 5c5c4e2ec3d5..4b39f6960c0a 100644 --- a/drivers/staging/comedi/drivers/amplc_pci230.c +++ b/drivers/staging/comedi/drivers/amplc_pci230.c @@ -2275,7 +2275,7 @@ static int pci230_ai_cancel(struct comedi_device *dev, static irqreturn_t pci230_interrupt(int irq, void *d) { unsigned char status_int, valid_status_int, temp_ier; - struct comedi_device *dev = (struct comedi_device *)d; + struct comedi_device *dev = d; struct pci230_private *devpriv = dev->private; struct comedi_subdevice *s_ao = dev->write_subdev; struct comedi_subdevice *s_ai = dev->read_subdev; diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index b43e836575fd..b589e17379cc 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1234,7 +1234,7 @@ static void handle_ao_interrupt(struct comedi_device *dev, unsigned int status) static irqreturn_t cb_pcidas_interrupt(int irq, void *d) { - struct comedi_device *dev = (struct comedi_device *)d; + struct comedi_device *dev = d; const struct cb_pcidas_board *board = dev->board_ptr; struct cb_pcidas_private *devpriv = dev->private; struct comedi_subdevice *s = dev->read_subdev; From 759f19dda576703ebb76d7d460dbcbcdc6d0ac2e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:25 +0530 Subject: [PATCH 1869/2431] Staging: gdm72xx: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm72xx/gdm_qos.c | 2 +- drivers/staging/gdm72xx/gdm_wimax.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/gdm72xx/gdm_qos.c b/drivers/staging/gdm72xx/gdm_qos.c index 72c0f7ef8f2b..81feffa5784a 100644 --- a/drivers/staging/gdm72xx/gdm_qos.c +++ b/drivers/staging/gdm72xx/gdm_qos.c @@ -59,7 +59,7 @@ static void *alloc_qos_entry(void) static void free_qos_entry(void *entry) { - struct qos_entry_s *qentry = (struct qos_entry_s *)entry; + struct qos_entry_s *qentry = entry; unsigned long flags; spin_lock_irqsave(&qos_free_list.lock, flags); diff --git a/drivers/staging/gdm72xx/gdm_wimax.c b/drivers/staging/gdm72xx/gdm_wimax.c index 69f00cc49bad..d9ddced96e19 100644 --- a/drivers/staging/gdm72xx/gdm_wimax.c +++ b/drivers/staging/gdm72xx/gdm_wimax.c @@ -339,7 +339,7 @@ static void gdm_wimax_ind_if_updown(struct net_device *dev, int if_up) static int gdm_wimax_open(struct net_device *dev) { struct nic *nic = netdev_priv(dev); - struct fsm_s *fsm = (struct fsm_s *)nic->sdk_data[SIOC_DATA_FSM].buf; + struct fsm_s *fsm = nic->sdk_data[SIOC_DATA_FSM].buf; netif_start_queue(dev); @@ -351,7 +351,7 @@ static int gdm_wimax_open(struct net_device *dev) static int gdm_wimax_close(struct net_device *dev) { struct nic *nic = netdev_priv(dev); - struct fsm_s *fsm = (struct fsm_s *)nic->sdk_data[SIOC_DATA_FSM].buf; + struct fsm_s *fsm = nic->sdk_data[SIOC_DATA_FSM].buf; netif_stop_queue(dev); @@ -378,7 +378,7 @@ static int gdm_wimax_ioctl_get_data(struct data_s *dst, struct data_s *src) if (src->size) { if (!dst->buf) return -EINVAL; - if (copy_to_user((void __user *)dst->buf, src->buf, size)) + if (copy_to_user(dst->buf, src->buf, size)) return -EFAULT; } return 0; @@ -401,7 +401,7 @@ static int gdm_wimax_ioctl_set_data(struct data_s *dst, struct data_s *src) return -ENOMEM; } - if (copy_from_user(dst->buf, (void __user *)src->buf, src->size)) { + if (copy_from_user(dst->buf, src->buf, src->size)) { kdelete(&dst->buf); return -EFAULT; } @@ -435,7 +435,7 @@ static void gdm_wimax_ind_fsm_update(struct net_device *dev, struct fsm_s *fsm) static void gdm_update_fsm(struct net_device *dev, struct fsm_s *new_fsm) { struct nic *nic = netdev_priv(dev); - struct fsm_s *cur_fsm = (struct fsm_s *) + struct fsm_s *cur_fsm = nic->sdk_data[SIOC_DATA_FSM].buf; if (!cur_fsm) @@ -483,7 +483,7 @@ static int gdm_wimax_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) * before gdm_wimax_ioctl_set_data is called. */ gdm_update_fsm(dev, - (struct fsm_s *)req->data.buf); + req->data.buf); } ret = gdm_wimax_ioctl_set_data( &nic->sdk_data[req->data_id], &req->data); @@ -798,7 +798,7 @@ cleanup: void unregister_wimax_device(struct phy_dev *phy_dev) { struct nic *nic = netdev_priv(phy_dev->netdev); - struct fsm_s *fsm = (struct fsm_s *)nic->sdk_data[SIOC_DATA_FSM].buf; + struct fsm_s *fsm = nic->sdk_data[SIOC_DATA_FSM].buf; if (fsm) fsm->m_status = M_INIT; From dd146d2194eeae078a9a8e5562c8eefa475fa220 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:24 +0530 Subject: [PATCH 1870/2431] Staging: slicoss: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/slicoss/slicoss.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index 2025b615a6c1..36001762fe20 100644 --- a/drivers/staging/slicoss/slicoss.c +++ b/drivers/staging/slicoss/slicoss.c @@ -1309,7 +1309,7 @@ static void slic_cmdq_addcmdpage(struct adapter *adapter, u32 *page) unsigned long flags; cmdaddr = page; - cmd = (struct slic_hostcmd *)cmdaddr; + cmd = cmdaddr; cmdcnt = 0; phys_addr = virt_to_bus((void *)page); @@ -1342,7 +1342,7 @@ static void slic_cmdq_addcmdpage(struct adapter *adapter, u32 *page) phys_addrl += SLIC_HOSTCMD_SIZE; cmdaddr += SLIC_HOSTCMD_SIZE; - cmd = (struct slic_hostcmd *)cmdaddr; + cmd = cmdaddr; cmdcnt++; } @@ -2055,7 +2055,6 @@ static void slic_xmit_complete(struct adapter *adapter) */ slic_handle_word.handle_token = rspbuf->hosthandle; hcmd = - (struct slic_hostcmd *) adapter->slic_handles[slic_handle_word.handle_index]. address; /* hcmd = (struct slic_hostcmd *) rspbuf->hosthandle; */ @@ -2135,7 +2134,7 @@ static void slic_interrupt_card_up(u32 isr, struct adapter *adapter, static irqreturn_t slic_interrupt(int irq, void *dev_id) { - struct net_device *dev = (struct net_device *)dev_id; + struct net_device *dev = dev_id; struct adapter *adapter = netdev_priv(dev); u32 isr; @@ -2881,7 +2880,7 @@ static void slic_init_adapter(struct net_device *netdev, adapter->busnumber = pcidev->bus->number; adapter->slotnumber = ((pcidev->devfn >> 3) & 0x1F); adapter->functionnumber = (pcidev->devfn & 0x7); - adapter->slic_regs = (__iomem struct slic_regs *)memaddr; + adapter->slic_regs = memaddr; adapter->irq = pcidev->irq; /* adapter->netdev = netdev;*/ adapter->chipid = chip_idx; From 7f44582ea77229331c52cdd1374488523796a86f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:23 +0530 Subject: [PATCH 1871/2431] Staging: unisys: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorbus/visorchipset.c | 2 +- drivers/staging/unisys/visorhba/visorhba_main.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c index 94419c36d2af..07594f43853d 100644 --- a/drivers/staging/unisys/visorbus/visorchipset.c +++ b/drivers/staging/unisys/visorbus/visorchipset.c @@ -696,7 +696,7 @@ struct visor_busdev { static int match_visorbus_dev_by_id(struct device *dev, void *data) { struct visor_device *vdev = to_visor_device(dev); - struct visor_busdev *id = (struct visor_busdev *)data; + struct visor_busdev *id = data; u32 bus_no = id->bus_no; u32 dev_no = id->dev_no; diff --git a/drivers/staging/unisys/visorhba/visorhba_main.c b/drivers/staging/unisys/visorhba/visorhba_main.c index 41a7bca97fc0..c119f20dfd44 100644 --- a/drivers/staging/unisys/visorhba/visorhba_main.c +++ b/drivers/staging/unisys/visorhba/visorhba_main.c @@ -695,20 +695,20 @@ static void visorhba_serverdown_complete(struct visorhba_devdata *devdata) pendingdel = &devdata->pending[i]; switch (pendingdel->cmdtype) { case CMD_SCSI_TYPE: - scsicmd = (struct scsi_cmnd *)pendingdel->sent; + scsicmd = pendingdel->sent; scsicmd->result = DID_RESET << 16; if (scsicmd->scsi_done) scsicmd->scsi_done(scsicmd); break; case CMD_SCSITASKMGMT_TYPE: - cmdrsp = (struct uiscmdrsp *)pendingdel->sent; + cmdrsp = pendingdel->sent; cmdrsp->scsitaskmgmt.notifyresult_handle = TASK_MGMT_FAILED; wake_up_all((wait_queue_head_t *) cmdrsp->scsitaskmgmt.notify_handle); break; case CMD_VDISKMGMT_TYPE: - cmdrsp = (struct uiscmdrsp *)pendingdel->sent; + cmdrsp = pendingdel->sent; cmdrsp->vdiskmgmt.notifyresult_handle = VDISK_MGMT_FAILED; wake_up_all((wait_queue_head_t *) From 2594ca30c0ae7f126fc84dc3a795f007c2b2787f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:20 +0530 Subject: [PATCH 1872/2431] Staging: gdm724x: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. Semantic patch: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm724x/gdm_lte.c | 14 +++++++------- drivers/staging/gdm724x/gdm_mux.c | 4 ++-- drivers/staging/gdm724x/gdm_tty.c | 2 +- drivers/staging/gdm724x/gdm_usb.c | 6 +++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index a8d2cffb411c..8a55ec1e5331 100644 --- a/drivers/staging/gdm724x/gdm_lte.c +++ b/drivers/staging/gdm724x/gdm_lte.c @@ -377,11 +377,11 @@ static s32 gdm_lte_tx_nic_type(struct net_device *dev, struct sk_buff *skb) break; case ETH_P_IP: nic_type |= NIC_TYPE_F_IPV4; - ip = (struct iphdr *)network_data; + ip = network_data; /* Check DHCPv4 */ if (ip->protocol == IPPROTO_UDP) { - struct udphdr *udp = (struct udphdr *) + struct udphdr *udp = (network_data + sizeof(struct iphdr)); if (ntohs(udp->dest) == 67 || ntohs(udp->dest) == 68) nic_type |= NIC_TYPE_F_DHCP; @@ -389,15 +389,15 @@ static s32 gdm_lte_tx_nic_type(struct net_device *dev, struct sk_buff *skb) break; case ETH_P_IPV6: nic_type |= NIC_TYPE_F_IPV6; - ipv6 = (struct ipv6hdr *)network_data; + ipv6 = network_data; if (ipv6->nexthdr == IPPROTO_ICMPV6) /* Check NDP request */ { - struct icmp6hdr *icmp6 = (struct icmp6hdr *) + struct icmp6hdr *icmp6 = (network_data + sizeof(struct ipv6hdr)); if (icmp6->icmp6_type == NDISC_NEIGHBOUR_SOLICITATION) nic_type |= NIC_TYPE_ICMPV6; } else if (ipv6->nexthdr == IPPROTO_UDP) /* Check DHCPv6 */ { - struct udphdr *udp = (struct udphdr *) + struct udphdr *udp = (network_data + sizeof(struct ipv6hdr)); if (ntohs(udp->dest) == 546 || ntohs(udp->dest) == 547) nic_type |= NIC_TYPE_F_DHCP; @@ -814,9 +814,9 @@ static int gdm_lte_receive_pkt(struct phy_dev *phy_dev, char *buf, int len) static int rx_complete(void *arg, void *data, int len, int context) { - struct phy_dev *phy_dev = (struct phy_dev *)arg; + struct phy_dev *phy_dev = arg; - return gdm_lte_receive_pkt(phy_dev, (char *)data, len); + return gdm_lte_receive_pkt(phy_dev, data, len); } void start_rx_proc(struct phy_dev *phy_dev) diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 1cf24e4edf25..97b72a0b4ab7 100644 --- a/drivers/staging/gdm724x/gdm_mux.c +++ b/drivers/staging/gdm724x/gdm_mux.c @@ -153,7 +153,7 @@ static void put_rx_struct(struct rx_cxt *rx, struct mux_rx *r) static int up_to_host(struct mux_rx *r) { - struct mux_dev *mux_dev = (struct mux_dev *)r->mux_dev; + struct mux_dev *mux_dev = r->mux_dev; struct mux_pkt_header *mux_header; unsigned int start_flag; unsigned int payload_size; @@ -262,7 +262,7 @@ static void remove_rx_submit_list(struct mux_rx *r, struct rx_cxt *rx) static void gdm_mux_rcv_complete(struct urb *urb) { struct mux_rx *r = urb->context; - struct mux_dev *mux_dev = (struct mux_dev *)r->mux_dev; + struct mux_dev *mux_dev = r->mux_dev; struct rx_cxt *rx = &mux_dev->rx; unsigned long flags; diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c index 001348ccacf9..655f7688d039 100644 --- a/drivers/staging/gdm724x/gdm_tty.c +++ b/drivers/staging/gdm724x/gdm_tty.c @@ -167,7 +167,7 @@ static int gdm_tty_recv_complete(void *data, static void gdm_tty_send_complete(void *arg) { - struct gdm *gdm = (struct gdm *)arg; + struct gdm *gdm = arg; if (!GDM_TTY_READY(gdm)) return; diff --git a/drivers/staging/gdm724x/gdm_usb.c b/drivers/staging/gdm724x/gdm_usb.c index ed1a12f504e2..9ceba147d390 100644 --- a/drivers/staging/gdm724x/gdm_usb.c +++ b/drivers/staging/gdm724x/gdm_usb.c @@ -367,7 +367,7 @@ fail: static int set_mac_address(u8 *data, void *arg) { - struct phy_dev *phy_dev = (struct phy_dev *)arg; + struct phy_dev *phy_dev = arg; struct lte_udev *udev = phy_dev->priv_dev; struct tlv *tlv = (struct tlv *)data; u8 mac_address[ETH_ALEN] = {0, }; @@ -410,8 +410,8 @@ static void do_rx(struct work_struct *work) list_del(&r->to_host_list); spin_unlock_irqrestore(&rx->to_host_lock, flags); - phy_dev = (struct phy_dev *)r->cb_data; - udev = (struct lte_udev *)phy_dev->priv_dev; + phy_dev = r->cb_data; + udev = phy_dev->priv_dev; hci = (struct hci_packet *)r->buf; cmd_evt = gdm_dev16_to_cpu(&udev->gdm_ed, hci->cmd_evt); From 98b5afd833e8b9549418296ae2e02f273b0e7b01 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:19 +0530 Subject: [PATCH 1873/2431] Staging: most: Remove unnecessary cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hdm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index c7e956f5fec0..38876316d869 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -279,7 +279,7 @@ static int try_start_dim_transfer(struct hdm_channel *hdm_ch) */ static int deliver_netinfo_thread(void *data) { - struct dim2_hdm *dev = (struct dim2_hdm *)data; + struct dim2_hdm *dev = data; while (!kthread_should_stop()) { wait_event_interruptible(dev->netinfo_waitq, @@ -450,7 +450,7 @@ static void dim2_tasklet_fn(unsigned long data) */ static irqreturn_t dim2_ahb_isr(int irq, void *_dev) { - struct dim2_hdm *dev = (struct dim2_hdm *)_dev; + struct dim2_hdm *dev = _dev; struct dim_channel *buffer[DMA_CHANNELS + 1]; unsigned long flags; From df18b9304e3c8db6753519068cc2b8fb8cc6a40b Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 01:42:11 +0530 Subject: [PATCH 1874/2431] staging: wlan-ng: Remove useless initialization Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wlan-ng/hfa384x_usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wlan-ng/hfa384x_usb.c b/drivers/staging/wlan-ng/hfa384x_usb.c index e109a7fd422f..444ebed7313a 100644 --- a/drivers/staging/wlan-ng/hfa384x_usb.c +++ b/drivers/staging/wlan-ng/hfa384x_usb.c @@ -1194,7 +1194,7 @@ int hfa384x_cmd_download(hfa384x_t *hw, u16 mode, u16 lowaddr, ----------------------------------------------------------------*/ int hfa384x_corereset(hfa384x_t *hw, int holdtime, int settletime, int genesis) { - int result = 0; + int result; result = usb_reset_device(hw->usb); if (result < 0) { From 51c826f0733479a44407a7bb28b1c160ec1a19f3 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 14 Oct 2015 23:26:15 +0300 Subject: [PATCH 1875/2431] staging: dgnc: Fix lines over 80 characters Fix 'line over 80 characters' checkpatch.pl warnings Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_driver.h | 58 ++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_driver.h b/drivers/staging/dgnc/dgnc_driver.h index c61884c14777..ce7cd9b96542 100644 --- a/drivers/staging/dgnc/dgnc_driver.h +++ b/drivers/staging/dgnc/dgnc_driver.h @@ -61,7 +61,9 @@ #define PORT_NUM(dev) ((dev) & 0x7f) #define IS_PRINT(dev) (((dev) & 0xff) >= 0x80) -/* MAX number of stop characters we will send when our read queue is getting full */ +/* MAX number of stop characters we will send + * when our read queue is getting full + */ #define MAX_STOPS_SENT 5 /* 4 extra for alignment play space */ @@ -165,12 +167,15 @@ struct dgnc_board { uint maxports; /* MAX ports this board can handle */ unsigned char dvid; /* Board specific device id */ unsigned char vpd[128]; /* VPD of board, if found */ - unsigned char serial_num[20]; /* Serial number of board, if found in VPD */ + unsigned char serial_num[20]; /* Serial number of board, + * if found in VPD + */ spinlock_t bd_lock; /* Used to protect board */ - spinlock_t bd_intr_lock; /* Used to protect the poller tasklet and - * the interrupt routine from each other. + spinlock_t bd_intr_lock; /* Used to protect the poller tasklet + * and the interrupt routine from each + * other. */ uint state; /* State of card. */ @@ -189,14 +194,16 @@ struct dgnc_board { ulong membase; /* Start of base memory of the card */ ulong membase_end; /* End of base memory of the card */ - u8 __iomem *re_map_membase;/* Remapped memory of the card */ + u8 __iomem *re_map_membase; /* Remapped memory of the card */ ulong iobase; /* Start of io base of the card */ ulong iobase_end; /* End of io base of the card */ uint bd_uart_offset; /* Space between each UART */ - struct channel_t *channels[MAXPORTS]; /* array of pointers to our channels. */ + struct channel_t *channels[MAXPORTS]; /* array of pointers + * to our channels. + */ struct tty_driver SerialDriver; char SerialName[200]; @@ -211,8 +218,12 @@ struct dgnc_board { uint TtyRefCnt; - u16 dpatype; /* The board "type", as defined by DPA */ - u16 dpastatus; /* The board "status", as defined by DPA */ + u16 dpatype; /* The board "type", + * as defined by DPA + */ + u16 dpastatus; /* The board "status", + * as defined by DPA + */ /* * Mgmt data. @@ -304,7 +315,7 @@ struct un_t { ************************************************************************/ struct channel_t { int magic; /* Channel Magic Number */ - struct dgnc_board *ch_bd; /* Board structure pointer */ + struct dgnc_board *ch_bd; /* Board structure pointer */ struct digi_t ch_digi; /* Transparent Print structure */ struct un_t ch_tun; /* Terminal unit info */ struct un_t ch_pun; /* Printer unit info */ @@ -316,7 +327,9 @@ struct channel_t { uint ch_open_count; /* open count */ uint ch_flags; /* Channel flags */ - ulong ch_close_delay; /* How long we should drop RTS/DTR for */ + ulong ch_close_delay; /* How long we should + * drop RTS/DTR for + */ ulong ch_cpstime; /* Time for CPS calculations */ @@ -332,11 +345,15 @@ struct channel_t { uint ch_wopen; /* Waiting for open process cnt */ - unsigned char ch_mostat; /* FEP output modem status */ - unsigned char ch_mistat; /* FEP input modem status */ + unsigned char ch_mostat; /* FEP output modem status */ + unsigned char ch_mistat; /* FEP input modem status */ - struct neo_uart_struct __iomem *ch_neo_uart; /* Pointer to the "mapped" UART struct */ - struct cls_uart_struct __iomem *ch_cls_uart; /* Pointer to the "mapped" UART struct */ + struct neo_uart_struct __iomem *ch_neo_uart; /* Pointer to the + * "mapped" UART struct + */ + struct cls_uart_struct __iomem *ch_cls_uart; /* Pointer to the + * "mapped" UART struct + */ unsigned char ch_cached_lsr; /* Cached value of the LSR register */ @@ -360,10 +377,13 @@ struct channel_t { unsigned char ch_r_watermark; /* Receive Watermark */ - ulong ch_stop_sending_break; /* Time we should STOP sending a break */ + ulong ch_stop_sending_break; /* Time we should STOP + * sending a break + */ - uint ch_stops_sent; /* How many times I have sent a stop character - * to try to stop the other guy sending. + uint ch_stops_sent; /* How many times I have sent a stop + * character to try to stop the other + * guy sending. */ ulong ch_err_parity; /* Count of parity errors on channel */ ulong ch_err_frame; /* Count of framing errors on channel */ @@ -392,6 +412,8 @@ extern int dgnc_poll_tick; /* Poll interval - 20 ms */ extern spinlock_t dgnc_global_lock; /* Driver global spinlock */ extern spinlock_t dgnc_poll_lock; /* Poll scheduling lock */ extern uint dgnc_NumBoards; /* Total number of boards */ -extern struct dgnc_board *dgnc_Board[MAXBOARDS]; /* Array of board structs */ +extern struct dgnc_board *dgnc_Board[MAXBOARDS]; /* Array of board + * structs + */ #endif From d09c1b96a731639436402bf0d957b974f4eed6b8 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:55:45 +0530 Subject: [PATCH 1876/2431] staging: dgnc: dgnc_tty: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_tty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index 4ac9092da392..48e4b90578c1 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -838,7 +838,7 @@ static void dgnc_set_custom_speed(struct channel_t *ch, uint newrate) void dgnc_check_queue_flow_control(struct channel_t *ch) { - int qleft = 0; + int qleft; /* Store how much space we have left in the queue */ qleft = ch->ch_r_tail - ch->ch_r_head - 1; From f4edff5208df48ebb3099a3b4a521eb58803f877 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:56:52 +0530 Subject: [PATCH 1877/2431] staging: dgnc: dgnc_driver: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgnc/dgnc_driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 619baa9e0c12..fc6d2989e28f 100644 --- a/drivers/staging/dgnc/dgnc_driver.c +++ b/drivers/staging/dgnc/dgnc_driver.c @@ -167,7 +167,7 @@ static void dgnc_cleanup_module(void) */ static int __init dgnc_init_module(void) { - int rc = 0; + int rc; /* * Initialize global stuff From ed400c9617766daf652bb9cc310005d4b6325413 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 14 Oct 2015 23:27:12 +0300 Subject: [PATCH 1878/2431] staging: fbtft: Fix multi-line comment style Thus use the preferred style for multi-line coments as mentioned in Documentation/CodingStyle. It also silences 'Block comments use * on subsequent lines' checkpatch.pl warnings. Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_ssd1351.c | 40 +++++++++++++++--------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index eb45b270aaa8..cef33e439f46 100644 --- a/drivers/staging/fbtft/fb_ssd1351.c +++ b/drivers/staging/fbtft/fb_ssd1351.c @@ -97,26 +97,26 @@ static int set_var(struct fbtft_par *par) } /* - Grayscale Lookup Table - GS1 - GS63 - The driver Gamma curve contains the relative values between the entries - in the Lookup table. - - From datasheet: - 8.8 Gray Scale Decoder - - there are total 180 Gamma Settings (Setting 0 to Setting 180) - available for the Gray Scale table. - - The gray scale is defined in incremental way, with reference - to the length of previous table entry: - Setting of GS1 has to be >= 0 - Setting of GS2 has to be > Setting of GS1 +1 - Setting of GS3 has to be > Setting of GS2 +1 - : - Setting of GS63 has to be > Setting of GS62 +1 - -*/ + * Grayscale Lookup Table + * GS1 - GS63 + * The driver Gamma curve contains the relative values between the entries + * in the Lookup table. + * + * From datasheet: + * 8.8 Gray Scale Decoder + * + * there are total 180 Gamma Settings (Setting 0 to Setting 180) + * available for the Gray Scale table. + * + * The gray scale is defined in incremental way, with reference + * to the length of previous table entry: + * Setting of GS1 has to be >= 0 + * Setting of GS2 has to be > Setting of GS1 +1 + * Setting of GS3 has to be > Setting of GS2 +1 + * : + * Setting of GS63 has to be > Setting of GS62 +1 + * + */ static int set_gamma(struct fbtft_par *par, unsigned long *curves) { unsigned long tmp[GAMMA_NUM * GAMMA_LEN]; From 193ef315246df696e3d51e07745c04525c4919db Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 21:38:34 +0530 Subject: [PATCH 1879/2431] Staging: fbtft: fb_agm1264k-fl: Remove unnecessary cast Remove explicit typecast from variables as compiler can typecast implicitly. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_agm1264k-fl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 19f6136eb310..2a50cf957101 100644 --- a/drivers/staging/fbtft/fb_agm1264k-fl.c +++ b/drivers/staging/fbtft/fb_agm1264k-fl.c @@ -177,7 +177,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...) { va_list args; int i, ret; - u8 *buf = (u8 *)par->buf; + u8 *buf = par->buf; if (unlikely(par->debug & DEBUG_WRITE_REGISTER)) { va_start(args, len); From e788b70f3bc058b73390e03bd8e58835ac66fa82 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 21:49:01 +0530 Subject: [PATCH 1880/2431] Staging: fbtft: fb_ra8875: Remove useless cast Remove explicit type conversion as it is not required. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_ra8875.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c index 86e43e158c61..b167c5061631 100644 --- a/drivers/staging/fbtft/fb_ra8875.c +++ b/drivers/staging/fbtft/fb_ra8875.c @@ -204,7 +204,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...) { va_list args; int i, ret; - u8 *buf = (u8 *)par->buf; + u8 *buf = par->buf; /* slow down spi-speed for writing registers */ par->fbtftops.write = write_spi; From f1092794c0132cfca2329748983b840ffeae379e Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 21:49:20 +0530 Subject: [PATCH 1881/2431] Staging: fbtft: fb_ssd1331: Remove unnecessary cast Compiler can typecast variables implicitly so, explicit type cast is not required and should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_ssd1331.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/fbtft/fb_ssd1331.c b/drivers/staging/fbtft/fb_ssd1331.c index 53cb8e9847cf..bd294f886c5f 100644 --- a/drivers/staging/fbtft/fb_ssd1331.c +++ b/drivers/staging/fbtft/fb_ssd1331.c @@ -60,7 +60,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...) { va_list args; int i, ret; - u8 *buf = (u8 *)par->buf; + u8 *buf = par->buf; if (unlikely(par->debug & DEBUG_WRITE_REGISTER)) { va_start(args, len); From 7ea8778ef33438a6509313cc1177a9a8ec44b214 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 14 Oct 2015 23:28:29 +0300 Subject: [PATCH 1882/2431] staging: speakup: Fix multi-line comment style Thus using the preferred style for multi-line coments as mentioned in Documentation/CodingStyle. It also silences 'Block comments use * on subsequent lines' and 'Block comments use a trailing */ on a separate line' checkpatch.pl warnings. Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/speakup_soft.c | 3 +- drivers/staging/speakup/spk_priv.h | 42 ++++++++++----------- drivers/staging/speakup/spk_priv_keyinfo.h | 44 +++++++++++----------- 3 files changed, 45 insertions(+), 44 deletions(-) diff --git a/drivers/staging/speakup/speakup_soft.c b/drivers/staging/speakup/speakup_soft.c index 366358b600a1..b2eb5b133a5d 100644 --- a/drivers/staging/speakup/speakup_soft.c +++ b/drivers/staging/speakup/speakup_soft.c @@ -19,7 +19,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * this code is specificly written as a driver for the speakup screenreview - * package and is not a general device driver. */ + * package and is not a general device driver. + */ #include #include /* for misc_register, and SYNTH_MINOR */ diff --git a/drivers/staging/speakup/spk_priv.h b/drivers/staging/speakup/spk_priv.h index 1ef3795b865d..9bb281d36556 100644 --- a/drivers/staging/speakup/spk_priv.h +++ b/drivers/staging/speakup/spk_priv.h @@ -1,26 +1,26 @@ /* spk_priv.h - review functions for the speakup screen review package. - originally written by: Kirk Reiser and Andy Berdan. + * review functions for the speakup screen review package. + * originally written by: Kirk Reiser and Andy Berdan. + * + * extensively modified by David Borowski. + * + * Copyright (C) 1998 Kirk Reiser. + * Copyright (C) 2003 David Borowski. - extensively modified by David Borowski. - - Copyright (C) 1998 Kirk Reiser. - Copyright (C) 2003 David Borowski. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ #ifndef _SPEAKUP_PRIVATE_H #define _SPEAKUP_PRIVATE_H diff --git a/drivers/staging/speakup/spk_priv_keyinfo.h b/drivers/staging/speakup/spk_priv_keyinfo.h index 95c473a7e65f..3116ef78c196 100644 --- a/drivers/staging/speakup/spk_priv_keyinfo.h +++ b/drivers/staging/speakup/spk_priv_keyinfo.h @@ -1,26 +1,26 @@ /* spk_priv.h - review functions for the speakup screen review package. - originally written by: Kirk Reiser and Andy Berdan. - - extensively modified by David Borowski. - - Copyright (C) 1998 Kirk Reiser. - Copyright (C) 2003 David Borowski. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ + * review functions for the speakup screen review package. + * originally written by: Kirk Reiser and Andy Berdan. + * + * extensively modified by David Borowski. + * + * Copyright (C) 1998 Kirk Reiser. + * Copyright (C) 2003 David Borowski. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ #ifndef _SPEAKUP_KEYINFO_H #define _SPEAKUP_KEYINFO_H From b5186a9fd2ff333693034cd0d24590dd0bc34ea7 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 03:23:35 +0530 Subject: [PATCH 1883/2431] staging: speakup: speakup_audptr: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/speakup_audptr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/speakup/speakup_audptr.c b/drivers/staging/speakup/speakup_audptr.c index ea89e36ecd0d..a9a687232955 100644 --- a/drivers/staging/speakup/speakup_audptr.c +++ b/drivers/staging/speakup/speakup_audptr.c @@ -162,7 +162,7 @@ static void synth_version(struct spk_synth *synth) static int synth_probe(struct spk_synth *synth) { - int failed = 0; + int failed; failed = spk_serial_synth_probe(synth); if (failed == 0) From b62c535cd0485804ab889fd8f9ac789ede230dd2 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 02:28:36 +0530 Subject: [PATCH 1884/2431] staging: speakup: varhandlers: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/varhandlers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/speakup/varhandlers.c b/drivers/staging/speakup/varhandlers.c index b2afec63a6dd..ab4fe8de415f 100644 --- a/drivers/staging/speakup/varhandlers.c +++ b/drivers/staging/speakup/varhandlers.c @@ -323,7 +323,7 @@ char *spk_strlwr(char *s) char *spk_s2uchar(char *start, char *dest) { - int val = 0; + int val; val = simple_strtoul(skip_spaces(start), &start, 10); if (*start == ',') From 8f94c5a6829c764cd1a4f8d497ffb201419bed85 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 16 Oct 2015 10:06:46 -0400 Subject: [PATCH 1885/2431] staging: unisys: visorinput: address checkpatch alignment issues Fix the alignment of function parameters to the parenthesis above. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 058ee91c2671..5f28c3d9ecfa 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -630,7 +630,7 @@ out_locked: static int visorinput_pause(struct visor_device *dev, - visorbus_state_complete_func complete_func) + visorbus_state_complete_func complete_func) { int rc; struct visorinput_devdata *devdata = dev_get_drvdata(&dev->device); @@ -656,7 +656,7 @@ out: static int visorinput_resume(struct visor_device *dev, - visorbus_state_complete_func complete_func) + visorbus_state_complete_func complete_func) { int rc; struct visorinput_devdata *devdata = dev_get_drvdata(&dev->device); From 1b756c43ce3b1696282670bd1de41d36e5205781 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 16 Oct 2015 10:06:47 -0400 Subject: [PATCH 1886/2431] staging: unisys: visorinput: fix comment format Fix the multi-line comment formatting in visorinput.c. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 5f28c3d9ecfa..9fdaa9c8a269 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -168,7 +168,8 @@ static const unsigned char visorkbd_keycode[KEYCODE_TABLE_BYTES] = { [82] = KEY_KP0, [83] = KEY_KPDOT, [86] = KEY_102ND, /* enables UK backslash+pipe key, - * and FR lessthan+greaterthan key */ + * and FR lessthan+greaterthan key + */ [87] = KEY_F11, [88] = KEY_F12, [90] = KEY_KPLEFTPAREN, From 7eb1f7a09bcc1c5f10241d85bee65e786558f171 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Wed, 14 Oct 2015 09:45:10 -0400 Subject: [PATCH 1887/2431] staging: unisys: visorinput: no need to track open count evdev_open_device() and evdev_close_device() (in evdev.c) already track the open count under lock, and will only call visorinput_open() on the first open and visorinput_close() on the last close. So this patch removes the unnessary logic from visorinput, and the now-unused counter from the struct. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 9fdaa9c8a269..d23c12946b0b 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -66,7 +66,6 @@ struct visorinput_devdata { struct rw_semaphore lock_visor_dev; /* lock for dev */ struct input_dev *visorinput_dev; bool paused; - unsigned int opened; unsigned int keycode_table_bytes; /* size of following array */ /* for keyboard devices: visorkbd_keycode[] + visorkbd_ext_keycode[] */ unsigned char keycode_table[0]; @@ -227,11 +226,8 @@ static int visorinput_open(struct input_dev *visorinput_dev) __func__, visorinput_dev); return -EINVAL; } - devdata->opened++; - dev_dbg(&visorinput_dev->dev, "%s opened %d\n", __func__, - devdata->opened); - if (devdata->opened == 1) - visorbus_enable_channel_interrupts(devdata->dev); + dev_dbg(&visorinput_dev->dev, "%s opened\n", __func__); + visorbus_enable_channel_interrupts(devdata->dev); return 0; } @@ -244,14 +240,8 @@ static void visorinput_close(struct input_dev *visorinput_dev) __func__, visorinput_dev); return; } - if (devdata->opened) { - devdata->opened--; - dev_dbg(&visorinput_dev->dev, "%s closed %d\n", __func__, - devdata->opened); - if (devdata->opened == 0) - visorbus_disable_channel_interrupts(devdata->dev); - } else - dev_err(&visorinput_dev->dev, "%s not open\n", __func__); + dev_dbg(&visorinput_dev->dev, "%s closed\n", __func__); + visorbus_disable_channel_interrupts(devdata->dev); } /* From 8d53d80b12c9683d51b8649a74b6c09ca0c15f8a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 03:22:22 +0530 Subject: [PATCH 1888/2431] staging: unisys: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorinput/visorinput.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index d23c12946b0b..5c16f6634368 100644 --- a/drivers/staging/unisys/visorinput/visorinput.c +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -255,7 +255,7 @@ register_client_keyboard(void *devdata, /* opaque on purpose */ { int i, error; - struct input_dev *visorinput_dev = NULL; + struct input_dev *visorinput_dev; visorinput_dev = input_allocate_device(); if (!visorinput_dev) From 4690ba0d4f4b2699db6802ebcbd4e66358d67849 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:54:35 +0530 Subject: [PATCH 1889/2431] staging: rdma: hfi1: sysfs: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rdma/hfi1/sysfs.c b/drivers/staging/rdma/hfi1/sysfs.c index b78c72861ef9..1dd6727dd5ef 100644 --- a/drivers/staging/rdma/hfi1/sysfs.c +++ b/drivers/staging/rdma/hfi1/sysfs.c @@ -555,7 +555,7 @@ static ssize_t show_tempsense(struct device *device, container_of(device, struct hfi1_ibdev, ibdev.dev); struct hfi1_devdata *dd = dd_from_dev(dev); struct hfi1_temp temp; - int ret = -ENXIO; + int ret; ret = hfi1_tempsense_rd(dd, &temp); if (!ret) { From 16709962c119a75d140da9dc226eeb9035e2c353 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:53:23 +0530 Subject: [PATCH 1890/2431] staging: rdma: hfi1: diag: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/diag.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rdma/hfi1/diag.c b/drivers/staging/rdma/hfi1/diag.c index 3d025d7c5a73..88414d720469 100644 --- a/drivers/staging/rdma/hfi1/diag.c +++ b/drivers/staging/rdma/hfi1/diag.c @@ -607,7 +607,7 @@ static int hfi1_snoop_add(struct hfi1_devdata *dd, const char *name) static struct hfi1_devdata *hfi1_dd_from_sc_inode(struct inode *in) { int unit = iminor(in) - HFI1_SNOOP_CAPTURE_BASE; - struct hfi1_devdata *dd = NULL; + struct hfi1_devdata *dd; dd = hfi1_lookup(unit); return dd; @@ -1477,7 +1477,7 @@ static struct snoop_packet *allocate_snoop_packet(u32 hdr_len, u32 md_len) { - struct snoop_packet *packet = NULL; + struct snoop_packet *packet; packet = kzalloc(sizeof(struct snoop_packet) + hdr_len + data_len + md_len, From 939cb02e6efd4d2d9f3129c6e6c31f68869ab7b3 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:52:08 +0530 Subject: [PATCH 1891/2431] staging: rdma: ipath: ipath_init_chip: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ipath/ipath_init_chip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rdma/ipath/ipath_init_chip.c b/drivers/staging/rdma/ipath/ipath_init_chip.c index cec1ebbb86d2..4aea99c7e6f8 100644 --- a/drivers/staging/rdma/ipath/ipath_init_chip.c +++ b/drivers/staging/rdma/ipath/ipath_init_chip.c @@ -210,7 +210,7 @@ static int bringup_link(struct ipath_devdata *dd) static struct ipath_portdata *create_portdata0(struct ipath_devdata *dd) { - struct ipath_portdata *pd = NULL; + struct ipath_portdata *pd; pd = kzalloc(sizeof(*pd), GFP_KERNEL); if (pd) { From 065779434e59efa6252b3ed27df77f2151d47c54 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:50:56 +0530 Subject: [PATCH 1892/2431] staging: rdma: ipath: ipath_eeprom: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ipath/ipath_eeprom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rdma/ipath/ipath_eeprom.c b/drivers/staging/rdma/ipath/ipath_eeprom.c index fc7181985e8e..ef84107c7ce0 100644 --- a/drivers/staging/rdma/ipath/ipath_eeprom.c +++ b/drivers/staging/rdma/ipath/ipath_eeprom.c @@ -411,7 +411,7 @@ bail: */ static int i2c_probe(struct ipath_devdata *dd, int devaddr) { - int ret = 0; + int ret; ret = eeprom_reset(dd); if (ret) { From 6618c051b52ec108f5b5a2deacd70fbaed4b4542 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 15:14:41 +0530 Subject: [PATCH 1893/2431] Staging: rdma: mad: Remove explicit cast Explicit type casting is not required as compiler can type cast variables implicitly. Therefore, it should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/mad.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rdma/hfi1/mad.c b/drivers/staging/rdma/hfi1/mad.c index 58723fb6b8bd..1de282c989b0 100644 --- a/drivers/staging/rdma/hfi1/mad.c +++ b/drivers/staging/rdma/hfi1/mad.c @@ -1488,7 +1488,7 @@ static int __subn_get_opa_sl_to_sc(struct opa_smp *smp, u32 am, u8 *data, u32 *resp_len) { struct hfi1_ibport *ibp = to_iport(ibdev, port); - u8 *p = (u8 *)data; + u8 *p = data; size_t size = ARRAY_SIZE(ibp->sl_to_sc); /* == 32 */ unsigned i; @@ -1511,7 +1511,7 @@ static int __subn_set_opa_sl_to_sc(struct opa_smp *smp, u32 am, u8 *data, u32 *resp_len) { struct hfi1_ibport *ibp = to_iport(ibdev, port); - u8 *p = (u8 *)data; + u8 *p = data; int i; if (am) { @@ -1530,7 +1530,7 @@ static int __subn_get_opa_sc_to_sl(struct opa_smp *smp, u32 am, u8 *data, u32 *resp_len) { struct hfi1_ibport *ibp = to_iport(ibdev, port); - u8 *p = (u8 *)data; + u8 *p = data; size_t size = ARRAY_SIZE(ibp->sc_to_sl); /* == 32 */ unsigned i; @@ -1553,7 +1553,7 @@ static int __subn_set_opa_sc_to_sl(struct opa_smp *smp, u32 am, u8 *data, u32 *resp_len) { struct hfi1_ibport *ibp = to_iport(ibdev, port); - u8 *p = (u8 *)data; + u8 *p = data; int i; if (am) { From 0bfe513cac8cf0655489e0e6dd5e7dd3cb2b5927 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Fri, 16 Oct 2015 09:06:52 -0700 Subject: [PATCH 1894/2431] staging: rdma: hfi1: delete unneeded tabs in conditional statement block Delete unneeded tabs to indent statement block correctly at (8, 16). checkpatch.pl: WARNING: suspect code indent for conditional statements (8, 24) Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/mr.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/staging/rdma/hfi1/mr.c b/drivers/staging/rdma/hfi1/mr.c index bd64e4f986f9..0208fc200c1a 100644 --- a/drivers/staging/rdma/hfi1/mr.c +++ b/drivers/staging/rdma/hfi1/mr.c @@ -284,20 +284,20 @@ struct ib_mr *hfi1_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, m = 0; n = 0; for_each_sg(umem->sg_head.sgl, sg, umem->nmap, entry) { - void *vaddr; + void *vaddr; - vaddr = page_address(sg_page(sg)); - if (!vaddr) { - ret = ERR_PTR(-EINVAL); - goto bail; - } - mr->mr.map[m]->segs[n].vaddr = vaddr; - mr->mr.map[m]->segs[n].length = umem->page_size; - n++; - if (n == HFI1_SEGSZ) { - m++; - n = 0; - } + vaddr = page_address(sg_page(sg)); + if (!vaddr) { + ret = ERR_PTR(-EINVAL); + goto bail; + } + mr->mr.map[m]->segs[n].vaddr = vaddr; + mr->mr.map[m]->segs[n].length = umem->page_size; + n++; + if (n == HFI1_SEGSZ) { + m++; + n = 0; + } } ret = &mr->ibmr; From d32cf44a62716d4fa9e9d8a5d7201a89d936fe5e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:09:08 +0530 Subject: [PATCH 1895/2431] staging: rdma: hfi1: Prefer using BIT Macro Replace bit shifting on 1 with the BIT(x) Macro The semantic patch used to find this is: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/file_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rdma/hfi1/file_ops.c b/drivers/staging/rdma/hfi1/file_ops.c index 7d2868050981..cbaf4f734add 100644 --- a/drivers/staging/rdma/hfi1/file_ops.c +++ b/drivers/staging/rdma/hfi1/file_ops.c @@ -508,7 +508,7 @@ static int hfi1_file_mmap(struct file *fp, struct vm_area_struct *vma) case PIO_BUFS_SOP: memaddr = ((dd->physaddr + TXE_PIO_SEND) + /* chip pio base */ - (uctxt->sc->hw_context * (1 << 16))) + + (uctxt->sc->hw_context * BIT(16))) + /* 64K PIO space / ctxt */ (type == PIO_BUFS_SOP ? (TXE_PIO_SIZE / 2) : 0); /* sop? */ From b49f3b23428433dc1e8bf323d1c39be73f1605e5 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:10:25 +0530 Subject: [PATCH 1896/2431] staging: rdma: amso1100: Prefer using BIT Macro Replace bit shifting on 1 with the BIT(x) Macro The semantic patch used to find this is: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/amso1100/c2_provider.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rdma/amso1100/c2_provider.c b/drivers/staging/rdma/amso1100/c2_provider.c index 956d76b111b0..25632158a52a 100644 --- a/drivers/staging/rdma/amso1100/c2_provider.c +++ b/drivers/staging/rdma/amso1100/c2_provider.c @@ -372,7 +372,7 @@ static struct ib_mr *c2_reg_phys_mr(struct ib_pd *ib_pd, total_len += buffer_list[i].size; pbl_depth += ALIGN(buffer_list[i].size, - (1 << page_shift)) >> page_shift; + BIT(page_shift)) >> page_shift; } page_list = vmalloc(sizeof(u64) * pbl_depth); @@ -387,7 +387,7 @@ static struct ib_mr *c2_reg_phys_mr(struct ib_pd *ib_pd, int naddrs; naddrs = ALIGN(buffer_list[i].size, - (1 << page_shift)) >> page_shift; + BIT(page_shift)) >> page_shift; for (k = 0; k < naddrs; k++) page_list[j++] = (buffer_list[i].addr + (k << page_shift)); @@ -408,7 +408,7 @@ static struct ib_mr *c2_reg_phys_mr(struct ib_pd *ib_pd, (unsigned long long) page_list[0], (unsigned long long) page_list[pbl_depth-1]); err = c2_nsmr_register_phys_kern(to_c2dev(ib_pd->device), page_list, - (1 << page_shift), pbl_depth, + BIT(page_shift), pbl_depth, total_len, 0, iova_start, c2_convert_access(acc), mr); vfree(page_list); From 5309c5b8f00b399dd3f80da855d9211944f1ed7e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:45:39 +0530 Subject: [PATCH 1897/2431] staging: vt6655: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index f842be64a139..4640b56ecd37 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -892,7 +892,7 @@ bool CARDbSoftwareReset(struct vnt_private *pDevice) u64 CARDqGetTSFOffset(unsigned char byRxRate, u64 qwTSF1, u64 qwTSF2) { u64 qwTSFOffset = 0; - unsigned short wRxBcnTSFOffst = 0; + unsigned short wRxBcnTSFOffst; wRxBcnTSFOffst = cwRXBCNTSFOff[byRxRate%MAX_RATE]; From 4b1443a248c5073d0e11e1f26bf7d8522d193b63 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:47:00 +0530 Subject: [PATCH 1898/2431] staging: vt6656: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c index a215563de07d..167dca9d243a 100644 --- a/drivers/staging/vt6656/card.c +++ b/drivers/staging/vt6656/card.c @@ -508,7 +508,7 @@ u8 vnt_get_pkt_type(struct vnt_private *priv) u64 vnt_get_tsf_offset(u8 rx_rate, u64 tsf1, u64 tsf2) { u64 tsf_offset = 0; - u16 rx_bcn_offset = 0; + u16 rx_bcn_offset; rx_bcn_offset = cwRXBCNTSFOff[rx_rate % MAX_RATE]; From 17accc46ec6e015a48c5afd281381a33d6b1da16 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 15 Oct 2015 13:31:11 +0100 Subject: [PATCH 1899/2431] staging: vt6655: Remove boolean comparisons Boolean tests do not need explicit comparison to true or false. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 4640b56ecd37..e0bf39e07c6d 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -472,14 +472,14 @@ bool CARDbRadioPowerOn(struct vnt_private *pDevice) bool bResult = true; pr_debug("chester power on\n"); - if (pDevice->bRadioControlOff == true) { - if (pDevice->bHWRadioOff == true) + if (pDevice->bRadioControlOff) { + if (pDevice->bHWRadioOff) pr_debug("chester bHWRadioOff\n"); - if (pDevice->bRadioControlOff == true) + if (pDevice->bRadioControlOff) pr_debug("chester bRadioControlOff\n"); return false; } - if (pDevice->bRadioOff == false) { + if (!pDevice->bRadioOff) { pr_debug("chester pbRadioOff\n"); return true; } From 574dddc6d73eedb3177c8db4f61fa7cebcabb128 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:12:35 +0530 Subject: [PATCH 1900/2431] staging: vt6656: Prefer using BIT Macro Replace bit shifting on 1 with the BIT(x) Macro The semantic patch used to find this is: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6656/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c index 167dca9d243a..70685e5a79a9 100644 --- a/drivers/staging/vt6656/card.c +++ b/drivers/staging/vt6656/card.c @@ -473,7 +473,7 @@ int vnt_ofdm_min_rate(struct vnt_private *priv) int ii; for (ii = RATE_54M; ii >= RATE_6M; ii--) { - if ((priv->basic_rates) & ((u16)(1 << ii))) + if ((priv->basic_rates) & ((u16)BIT(ii))) return true; } From a8a211c481f806c20d56ddb7b0f8533813e936d0 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:13:29 +0530 Subject: [PATCH 1901/2431] staging: vt6655: Prefer using BIT Macro Replace bit shifting on 1 with the BIT(x) Macro The semantic patch used to find this is: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index e0bf39e07c6d..5c7f07e183c7 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -808,7 +808,7 @@ bool CARDbIsOFDMinBasicRate(struct vnt_private *pDevice) int ii; for (ii = RATE_54M; ii >= RATE_6M; ii--) { - if ((pDevice->basic_rates) & ((u32)(1 << ii))) + if ((pDevice->basic_rates) & ((u32)BIT(ii))) return true; } return false; From 779fcc8410757386bac35ddf4ba026943f2f24f3 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:44:20 +0530 Subject: [PATCH 1902/2431] staging: skein: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/skein/skein_api.c b/drivers/staging/skein/skein_api.c index e6c2b06aef80..46a74fc40375 100644 --- a/drivers/staging/skein/skein_api.c +++ b/drivers/staging/skein/skein_api.c @@ -127,7 +127,7 @@ int skein_mac_init(struct skein_ctx *ctx, const u8 *key, size_t key_len, void skein_reset(struct skein_ctx *ctx) { size_t x_len = 0; - u64 *x = NULL; + u64 *x; /* * The following two lines rely of the fact that the real Skein From 79f2af620ef5ae6a6ddf4a3da65568c90c0c5e25 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:11:36 +0530 Subject: [PATCH 1903/2431] staging: panel: Prefer using BIT Macro Replace bit shifting on 1 with the BIT(x) Macro The semantic patch used to find this is: @@ int g; @@ -(1 << g) +BIT(g) Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/panel/panel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index a7e38758dc55..b47da2b44689 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c @@ -1794,7 +1794,7 @@ static void phys_scan_contacts(void) * So we'll scan them. */ for (bit = 0; bit < 8; bit++) { - bitval = 1 << bit; + bitval = BIT(bit); if (!(scan_mask_o & bitval)) /* skip unused bits */ continue; @@ -2060,12 +2060,12 @@ static int input_name2mask(const char *name, pmask_t *mask, pmask_t *value, return 0; /* input name not found */ neg = (in & 1); /* odd (lower) names are negated */ in >>= 1; - im |= (1 << in); + im |= BIT(in); name++; if (isdigit(*name)) { out = *name - '0'; - om |= (1 << out); + om |= BIT(out); } else if (*name == '-') { out = 8; } else { From 05ea2d97b9c7a2273a4f0405c036d6e4b61e2245 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:41:30 +0530 Subject: [PATCH 1904/2431] staging: media: davinci_vpfe: Remove useless intialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c b/drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c index 57426199ad7a..01df0683e950 100644 --- a/drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c +++ b/drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c @@ -294,7 +294,7 @@ static void vpfe_detach_irq(struct vpfe_device *vpfe_dev) */ static int vpfe_attach_irq(struct vpfe_device *vpfe_dev) { - int ret = 0; + int ret; ret = request_irq(vpfe_dev->ccdc_irq0, vpfe_isr, 0, "vpfe_capture0", vpfe_dev); From 3bf3cdee6368a0093584f021aaded582427048dd Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:40:08 +0530 Subject: [PATCH 1905/2431] staging: media: lirc: Remove useless initialisation Remove intialisation of a variable that is immediately reassigned. The semantic patch used to find this is: // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/media/lirc/lirc_sasem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/lirc/lirc_sasem.c b/drivers/staging/media/lirc/lirc_sasem.c index d3dedb831dee..bc78da014c33 100644 --- a/drivers/staging/media/lirc/lirc_sasem.c +++ b/drivers/staging/media/lirc/lirc_sasem.c @@ -244,7 +244,7 @@ exit: */ static long vfd_ioctl(struct file *file, unsigned cmd, unsigned long arg) { - struct sasem_context *context = NULL; + struct sasem_context *context; context = (struct sasem_context *) file->private_data; From 15aae23e9e5e98a93cf4d942080d17a6ef07d074 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 20:56:22 +0530 Subject: [PATCH 1906/2431] Staging: gdx724x: gdm_mux: Remove explicit cast Compiler can typecast variables implicitly so, explicit type cast is not required and should be removed. Semantic patch used: @@ type T; T e; identifier x; @@ * T x = (T)e; Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm724x/gdm_mux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 97b72a0b4ab7..07de99cf473e 100644 --- a/drivers/staging/gdm724x/gdm_mux.c +++ b/drivers/staging/gdm724x/gdm_mux.c @@ -222,7 +222,7 @@ static void do_rx(struct work_struct *work) struct mux_dev *mux_dev = container_of(work, struct mux_dev, work_rx.work); struct mux_rx *r; - struct rx_cxt *rx = (struct rx_cxt *)&mux_dev->rx; + struct rx_cxt *rx = &mux_dev->rx; unsigned long flags; int ret = 0; From 258e7af2954fb68b55fe9253560f6dfaa4896e54 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 22:09:57 +0530 Subject: [PATCH 1907/2431] Staging: dgap: Remove unnecessary test expression struct bd is already NULL tested so, any further NULL checks should be removed. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index aa3aa720724c..ca64126618ed 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -2059,7 +2059,7 @@ out: /* * If board is doing interrupts, ACK the interrupt. */ - if (bd && bd->intr_running) + if (bd->intr_running) readb(bd->re_map_port + 2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); From 2f31c4b4188933e812b66f5e78d4cb0be9d5f3d2 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Fri, 16 Oct 2015 11:46:29 -0700 Subject: [PATCH 1908/2431] staging: r8723au: replace NULL and zero comparison tests with ! operator Replace explicit NULL comparison and zero comparison test with ! operator to simplify code. Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_ap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c b/drivers/staging/rtl8723au/core/rtw_ap.c index a7c8b7315122..a0b68451abf0 100644 --- a/drivers/staging/rtl8723au/core/rtw_ap.c +++ b/drivers/staging/rtl8723au/core/rtw_ap.c @@ -919,8 +919,8 @@ int rtw_check_beacon_data23a(struct rtw_adapter *padapter, break; } - if ((p == NULL) || (ie_len == 0)) - break; + if (!p || !ie_len) + break; } /* wmm */ From 26fc5d01d12323fb9ca231032d47cef4e4cb6bd6 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 16 Oct 2015 21:51:43 +0300 Subject: [PATCH 1909/2431] Staging: olpc_dcon: Remove multiple blank lines Remove multiple blank lines. Problem found using checkpatch.pl CHECK: Please don't use multiple blank lines. Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/olpc_dcon/olpc_dcon.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index 3f424d14c334..d0f86d313aaf 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon.c +++ b/drivers/staging/olpc_dcon/olpc_dcon.c @@ -100,7 +100,6 @@ static int dcon_hw_init(struct dcon_priv *dcon, int is_init) } dcon_write(dcon, DCON_REG_MODE, dcon->disp_mode); - /* Set the scanline to interrupt on during resume */ dcon_write(dcon, DCON_REG_SCAN_INT, resumeline); @@ -723,7 +722,6 @@ static int dcon_resume(struct device *dev) #endif /* CONFIG_PM */ - irqreturn_t dcon_interrupt(int irq, void *id) { struct dcon_priv *dcon = id; From bdf4b8811f02067dc332f635b59f600a869da1a0 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 16 Oct 2015 21:51:44 +0300 Subject: [PATCH 1910/2431] Staging: olpc_dcon: Use preferred kernel type This patch "uint16_t" type instead of "u16" type was used. checkpatch.pl issue. Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/olpc_dcon/olpc_dcon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index d0f86d313aaf..2c34f61e1b39 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon.c +++ b/drivers/staging/olpc_dcon/olpc_dcon.c @@ -60,7 +60,7 @@ static s32 dcon_read(struct dcon_priv *dcon, u8 reg) static int dcon_hw_init(struct dcon_priv *dcon, int is_init) { - uint16_t ver; + u16 ver; int rc = 0; ver = dcon_read(dcon, DCON_REG_ID); From 5e6731c88b2dc2dd484f5b4177df9f3f95c3f6c9 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 16 Oct 2015 21:51:45 +0300 Subject: [PATCH 1911/2431] Staging: olpc_dcon: Remove NULL comparison Problem found using checkpatch.pl CHECK: Comparison to NULL could be written "(!)dcon_device" Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/olpc_dcon/olpc_dcon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index 2c34f61e1b39..f45b2ef05f48 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon.c +++ b/drivers/staging/olpc_dcon/olpc_dcon.c @@ -616,7 +616,7 @@ static int dcon_probe(struct i2c_client *client, const struct i2c_device_id *id) dcon_device = platform_device_alloc("dcon", -1); - if (dcon_device == NULL) { + if (!dcon_device) { pr_err("Unable to create the DCON device\n"); rc = -ENOMEM; goto eirq; @@ -679,7 +679,7 @@ static int dcon_remove(struct i2c_client *client) backlight_device_unregister(dcon->bl_dev); - if (dcon_device != NULL) + if (dcon_device) platform_device_unregister(dcon_device); cancel_work_sync(&dcon->switch_source); From b981da12513469324a18ae8250bca2848f8bf787 Mon Sep 17 00:00:00 2001 From: Gavin Thomas Claugus Date: Tue, 13 Oct 2015 17:44:40 -0400 Subject: [PATCH 1912/2431] Staging: most: fix style issue in aim-cdev/cdev.c Fix 80+ character line in cdev.c to stop checkpatch from whining. Signed-off-by: Gavin Thomas Claugus Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 930ada0922f3..16be88e2b454 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -99,7 +99,8 @@ static int aim_open(struct inode *inode, struct file *filp) return -EBUSY; } - ret = most_start_channel(channel->iface, channel->channel_id, &cdev_aim); + ret = most_start_channel(channel->iface, channel->channel_id, + &cdev_aim); if (ret) atomic_dec(&channel->access_ref); return ret; From bba76322c3075776f222c4c7dd36f954ed458250 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 16:12:01 +0530 Subject: [PATCH 1913/2431] Staging: most: cdev: Remove useless check The variable mbo is already NULL tested so, check on it should be removed. Semantic patch used: @@ expression E; statement S; @@ if(E==NULL) {... return ...;} - if(E) S Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 16be88e2b454..212a667820df 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -208,8 +208,7 @@ static ssize_t aim_write(struct file *filp, const char __user *buf, } return actual_len - retval; error: - if (mbo) - most_put_mbo(mbo); + most_put_mbo(mbo); return err; } From 9158d33a5d38d1d23717d31c1e5eb11a6ebc982e Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:51 +0200 Subject: [PATCH 1914/2431] staging: most: correct coding style breaches This patch fixes line-over-80-characters violation and removes the splitting of quoted strings. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hal.c | 21 ++++++++++++--------- drivers/staging/most/hdm-dim2/dim2_hdm.c | 20 ++++++++++---------- drivers/staging/most/hdm-dim2/dim2_sysfs.c | 3 ++- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 0e548301e3bc..81dd8de57e4f 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.c +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c @@ -134,7 +134,7 @@ static int alloc_dbr(u16 size) return block_idx * DBR_BLOCK_SIZE; } block_idx += mask_size; - /* do shift left with 2 steps for case mask_size == 32 */ + /* do shift left with 2 steps in case mask_size == 32 */ mask <<= mask_size - 1; } while ((mask <<= 1) != 0); } @@ -639,7 +639,8 @@ static bool channel_start(struct dim_channel *ch, u32 buf_addr, u16 buf_size) if (ch->packet_length || ch->bytes_per_frame) dim2_start_isoc_sync(ch->addr, state->idx1, buf_addr, buf_size); else - dim2_start_ctrl_async(ch->addr, state->idx1, buf_addr, buf_size); + dim2_start_ctrl_async(ch->addr, state->idx1, buf_addr, + buf_size); state->idx1 ^= 1; return true; @@ -855,11 +856,11 @@ void DIM_ServiceIrq(struct dim_channel *const *channels) } /* - * Use while-loop and a flag to make sure the age is changed back at least once, - * otherwise the interrupt may never come if CPU generates interrupt on changing age. - * - * This cycle runs not more than number of channels, because service_interrupts - * routine doesn't start the channel again. + * Use while-loop and a flag to make sure the age is changed back at + * least once, otherwise the interrupt may never come if CPU generates + * interrupt on changing age. + * This cycle runs not more than number of channels, because + * channel_service_interrupt() routine doesn't start the channel again. */ do { struct dim_channel *const *ch = channels; @@ -900,7 +901,8 @@ struct dim_ch_state_t *DIM_GetChannelState(struct dim_channel *ch, bool DIM_EnqueueBuffer(struct dim_channel *ch, u32 buffer_addr, u16 buffer_size) { if (!ch) - return dim_on_error(DIM_ERR_DRIVER_NOT_INITIALIZED, "Bad channel"); + return dim_on_error(DIM_ERR_DRIVER_NOT_INITIALIZED, + "Bad channel"); return channel_start(ch, buffer_addr, buffer_size); } @@ -908,7 +910,8 @@ bool DIM_EnqueueBuffer(struct dim_channel *ch, u32 buffer_addr, u16 buffer_size) bool DIM_DetachBuffers(struct dim_channel *ch, u16 buffers_number) { if (!ch) - return dim_on_error(DIM_ERR_DRIVER_NOT_INITIALIZED, "Bad channel"); + return dim_on_error(DIM_ERR_DRIVER_NOT_INITIALIZED, + "Bad channel"); return channel_detach_buffers(ch, buffers_number); } diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 38876316d869..58a85146b429 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -200,8 +200,7 @@ static int startup_dim(struct platform_device *pdev) } if (dev->clk_speed == -1) { - pr_info("Bad or missing clock speed parameter," - " using default value: 3072fs\n"); + pr_info("Bad or missing clock speed parameter, using default value: 3072fs\n"); dev->clk_speed = CLK_3072FS; } else pr_info("Selected clock speed: %s\n", clock_speed); @@ -359,8 +358,7 @@ static void service_done_flag(struct dim2_hdm *dev, int ch_idx) spin_lock_irqsave(&dim_lock, flags); if (list_empty(head)) { spin_unlock_irqrestore(&dim_lock, flags); - pr_crit("hard error: started_mbo list is empty " - "whereas DIM2 has sent buffers\n"); + pr_crit("hard error: started_mbo list is empty whereas DIM2 has sent buffers\n"); break; } @@ -547,7 +545,8 @@ static int configure_channel(struct most_interface *most_iface, int ch_idx, pr_warn("%s: fixed buffer size (%d -> %d)\n", hdm_ch->name, buf_size, new_size); spin_lock_irqsave(&dim_lock, flags); - hal_ret = DIM_InitControl(&hdm_ch->ch, is_tx, ch_addr, buf_size); + hal_ret = DIM_InitControl(&hdm_ch->ch, is_tx, ch_addr, + buf_size); break; case MOST_CH_ASYNC: new_size = DIM_NormCtrlAsyncBufferSize(buf_size); @@ -565,8 +564,8 @@ static int configure_channel(struct most_interface *most_iface, int ch_idx, case MOST_CH_ISOC_AVP: new_size = DIM_NormIsocBufferSize(buf_size, sub_size); if (new_size == 0) { - pr_err("%s: invalid sub-buffer size or " - "too small buffer size\n", hdm_ch->name); + pr_err("%s: invalid sub-buffer size or too small buffer size\n", + hdm_ch->name); return -EINVAL; } ccfg->buffer_size = new_size; @@ -579,8 +578,8 @@ static int configure_channel(struct most_interface *most_iface, int ch_idx, case MOST_CH_SYNC: new_size = DIM_NormSyncBufferSize(buf_size, sub_size); if (new_size == 0) { - pr_err("%s: invalid sub-buffer size or " - "too small buffer size\n", hdm_ch->name); + pr_err("%s: invalid sub-buffer size or too small buffer size\n", + hdm_ch->name); return -EINVAL; } ccfg->buffer_size = new_size; @@ -777,7 +776,8 @@ static int dim2_probe(struct platform_device *pdev) ret = request_irq(dev->irq_ahb0, dim2_ahb_isr, 0, "mlb_ahb0", dev); if (ret) { - pr_err("failed to request IRQ: %d, err: %d\n", dev->irq_ahb0, ret); + pr_err("failed to request IRQ: %d, err: %d\n", + dev->irq_ahb0, ret); goto err_unmap_io; } #endif diff --git a/drivers/staging/most/hdm-dim2/dim2_sysfs.c b/drivers/staging/most/hdm-dim2/dim2_sysfs.c index 8e331a286fc3..c5b10c7d2fac 100644 --- a/drivers/staging/most/hdm-dim2/dim2_sysfs.c +++ b/drivers/staging/most/hdm-dim2/dim2_sysfs.c @@ -21,7 +21,8 @@ struct bus_attr { struct attribute attr; ssize_t (*show)(struct medialb_bus *bus, char *buf); - ssize_t (*store)(struct medialb_bus *bus, const char *buf, size_t count); + ssize_t (*store)(struct medialb_bus *bus, const char *buf, + size_t count); }; static ssize_t state_show(struct medialb_bus *bus, char *buf) From ff466a5bc26af4f2bed11cd6adf625c6e57e0242 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:54 +0200 Subject: [PATCH 1915/2431] staging: most: remove constants from comparisons This patch removes constants from comparisons and fixes checkpatch warnings about constants being put in the wrong place inside a comparison. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 212a667820df..49411b722f19 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -134,7 +134,7 @@ static int aim_close(struct inode *inode, struct file *filp) } mutex_unlock(&channel->io_mutex); - while (0 != kfifo_out((struct kfifo *)&channel->fifo, &mbo, 1)) + while (kfifo_out((struct kfifo *)&channel->fifo, &mbo, 1)) most_put_mbo(mbo); if (channel->keep_mbo) most_put_mbo(channel->stacked_mbo); @@ -232,7 +232,7 @@ aim_read(struct file *filp, char __user *buf, size_t count, loff_t *offset) channel->keep_mbo = false; goto start_copy; } - while ((0 == kfifo_out(&channel->fifo, &mbo, 1)) + while ((!kfifo_out(&channel->fifo, &mbo, 1)) && (channel->dev)) { if (filp->f_flags & O_NONBLOCK) return -EAGAIN; From bfa1a42ec367afd82d70298e451a1ca1cf4989ce Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:55 +0200 Subject: [PATCH 1916/2431] staging: most: fix checkpatch issues of hdm i2c This patch fixes the issues of HDM module i2c found by checkpatch.pl Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-i2c/hdm_i2c.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 976828164ccd..2cce1e572e48 100644 --- a/drivers/staging/most/hdm-i2c/hdm_i2c.c +++ b/drivers/staging/most/hdm-i2c/hdm_i2c.c @@ -96,7 +96,7 @@ static int configure_channel(struct most_interface *most_iface, if (channel_config->direction == MOST_CH_RX) { if (dev->polling_mode) schedule_delayed_work(&dev->rx.dwork, - msecs_to_jiffies(MSEC_PER_SEC / 4)); + msecs_to_jiffies(MSEC_PER_SEC / 4)); } dev->is_open[ch_idx] = true; @@ -222,7 +222,8 @@ static void do_rx_work(struct hdm_i2c *dev) for (;;) { /* Conditions to wait for: poisoned channel or free buffer - available for reading */ + * available for reading + */ if (wait_event_interruptible(dev->rx.waitq, !dev->is_open[ch_idx] || !list_empty(&dev->rx.list))) { @@ -367,8 +368,8 @@ static int i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) ret = request_irq(client->irq, most_irq_handler, 0, client->name, dev); if (ret) { - pr_info("IRQ request failed: %d, " - "falling back to polling\n", ret); + pr_info("IRQ request failed: %d, falling back to polling\n", + ret); dev->polling_mode = true; } } From ba170ee2b95f53d6e973b63860a4bb80c3140ff4 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:56 +0200 Subject: [PATCH 1917/2431] staging: most: make hdm-usb follow the coding style This patch fixes a couple of issues of the hdm-usb module found by checkpatch.pl. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index a73eb5f5ac90..0bf38c454362 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -198,7 +198,8 @@ static void free_anchored_buffers(struct most_dev *mdev, unsigned int channel) unsigned long flags; spin_lock_irqsave(&mdev->anchor_list_lock[channel], flags); - list_for_each_entry_safe(anchor, tmp, &mdev->anchor_list[channel], list) { + list_for_each_entry_safe(anchor, tmp, &mdev->anchor_list[channel], + list) { struct urb *urb = anchor->urb; spin_unlock_irqrestore(&mdev->anchor_list_lock[channel], flags); @@ -343,7 +344,8 @@ static int hdm_add_padding(struct most_dev *mdev, int channel, struct mbo *mbo) * This takes the INIC hardware specific padding bytes off a streaming * channel's buffer. */ -static int hdm_remove_padding(struct most_dev *mdev, int channel, struct mbo *mbo) +static int hdm_remove_padding(struct most_dev *mdev, int channel, + struct mbo *mbo) { unsigned int j, num_frames, frame_size; struct most_channel_config *const conf = &mdev->conf[channel]; @@ -619,7 +621,8 @@ static void hdm_read_completion(struct urb *urb) * * Context: Could in _some_ cases be interrupt! */ -static int hdm_enqueue(struct most_interface *iface, int channel, struct mbo *mbo) +static int hdm_enqueue(struct most_interface *iface, int channel, + struct mbo *mbo) { struct most_dev *mdev; struct buf_anchor *anchor; @@ -767,8 +770,7 @@ static int hdm_configure_channel(struct most_interface *iface, int channel, tmp_val = conf->buffer_size / frame_size; conf->buffer_size = tmp_val * frame_size; dev_notice(dev, - "Channel %d - rounding buffer size to %d bytes, " - "channel config says %d bytes\n", + "Channel %d - rounding buffer size to %d bytes, channel config says %d bytes\n", channel, conf->buffer_size, temp_size); @@ -891,7 +893,7 @@ static void wq_netinfo(struct work_struct *wq_obj) for (i = 0; i < 6; i++) prev_hw_addr[i] = mdev->hw_addr[i]; - if (0 > hdm_update_netinfo(mdev)) + if (hdm_update_netinfo(mdev) < 0) return; if ((prev_link_stat != mdev->link_stat) || (prev_hw_addr[0] != mdev->hw_addr[0]) || From 47af41b0d9c078a8f093d418464de6083bd4e80d Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:57 +0200 Subject: [PATCH 1918/2431] staging: most: fix misplaced constants in comparisons This patch removes and fixes constants being misplaced in comparisons. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/mostcore/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 1905547bf990..ca32b2147afa 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -938,7 +938,7 @@ most_c_obj *get_channel_by_name(char *mdev, char *mdev_ch) break; } } - if (unlikely(2 > found)) + if (unlikely(found < 2)) return ERR_PTR(-EIO); return c; } @@ -1561,7 +1561,7 @@ int most_start_channel(struct most_interface *iface, int id, else num_buffer = arm_mbo_chain(c, c->cfg.direction, most_write_completion); - if (unlikely(0 == num_buffer)) { + if (unlikely(!num_buffer)) { pr_info("failed to allocate memory\n"); ret = -ENOMEM; goto error; From d58b0ee39abe889dd32718bdf407d13e7dbfb5df Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:58 +0200 Subject: [PATCH 1919/2431] staging: most: replace memcpy by ether_addr_copy This patch replaces memcpy() by the preferred function ether_addr_copy(). Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-network/networking.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index f0d9a439544e..4334e5197f05 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -467,7 +467,7 @@ static int aim_rx_data(struct mbo *mbo) if (nd->is_mamac) { /* dest */ - memcpy(skb_put(skb, ETH_ALEN), dev->dev_addr, ETH_ALEN); + ether_addr_copy(skb_put(skb, ETH_ALEN), dev->dev_addr); /* src */ memcpy(skb_put(skb, 4), &zero, 4); @@ -554,7 +554,7 @@ void most_deliver_netinfo(struct most_interface *iface, return; if (mac_addr) - memcpy(dev->dev_addr, mac_addr, ETH_ALEN); + ether_addr_copy(dev->dev_addr, mac_addr); if (nd->link_stat != link_stat) { nd->link_stat = link_stat; From b2db4b245ec8962ac1c1029462770efbf2d54f18 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:59 +0200 Subject: [PATCH 1920/2431] staging: most: change parameter description This patch changes the description of a function parameter for a better understanding. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/mostcore/mostcore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/mostcore/mostcore.h b/drivers/staging/most/mostcore/mostcore.h index 9bd4c779f1b6..e148b324331a 100644 --- a/drivers/staging/most/mostcore/mostcore.h +++ b/drivers/staging/most/mostcore/mostcore.h @@ -255,7 +255,7 @@ struct most_interface { * struct most_aim - identifies MOST device driver to mostcore * @name: Driver name * @probe_channel: function for core to notify driver about channel connection - * @disconnect_channel: notification that a certain channel isn't available anymore + * @disconnect_channel: callback function to disconnect a certain channel * @rx_completion: completion handler for received packets * @tx_completion: completion handler for transmitted packets * @context: context pointer to be used by mostcore From 1446ff09ff87b9103fdde74962b3451f95b059c9 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:29:00 +0200 Subject: [PATCH 1921/2431] staging: most: fix line-over-80-characters violations This patch prevents code from crossing the 80 character margin. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-network/networking.c | 3 ++- drivers/staging/most/hdm-dim2/dim2_hdm.h | 3 ++- drivers/staging/most/mostcore/core.c | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index 4334e5197f05..5f0ea9b79a3d 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -349,7 +349,8 @@ static int aim_probe_channel(struct most_interface *iface, int channel_idx, if (nd->tx.linked || nd->rx.linked) { struct net_device *dev = - alloc_netdev(0, "meth%d", NET_NAME_UNKNOWN, most_nd_setup); + alloc_netdev(0, "meth%d", NET_NAME_UNKNOWN, + most_nd_setup); if (!dev) { pr_err("no memory for net_device\n"); diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.h b/drivers/staging/most/hdm-dim2/dim2_hdm.h index 6e6883232809..1c94e3355fcc 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.h +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.h @@ -18,7 +18,8 @@ struct device; /* platform dependent data for dim2 interface */ struct dim2_platform_data { - int (*init)(struct dim2_platform_data *pd, void *io_base, int clk_speed); + int (*init)(struct dim2_platform_data *pd, void *io_base, + int clk_speed); void (*destroy)(struct dim2_platform_data *pd); void *priv; }; diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index ca32b2147afa..0efc3911aaa4 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -988,7 +988,8 @@ static ssize_t store_add_link(struct most_aim_obj *aim_obj, return ret; if (!mdev_devnod || *mdev_devnod == 0) { - snprintf(devnod_buf, sizeof(devnod_buf), "%s-%s", mdev, mdev_ch); + snprintf(devnod_buf, sizeof(devnod_buf), "%s-%s", mdev, + mdev_ch); mdev_devnod = devnod_buf; } @@ -1063,7 +1064,8 @@ static ssize_t store_remove_link(struct most_aim_obj *aim_obj, } static struct most_aim_attribute most_aim_attr_remove_link = - __ATTR(remove_link, S_IRUGO | S_IWUSR, show_remove_link, store_remove_link); + __ATTR(remove_link, S_IRUGO | S_IWUSR, show_remove_link, + store_remove_link); static struct attribute *most_aim_def_attrs[] = { &most_aim_attr_add_link.attr, From 27f88f3f1a7f203f79146a5a2c835c901af100fe Mon Sep 17 00:00:00 2001 From: Ronit Halder Date: Fri, 16 Oct 2015 14:20:20 +0530 Subject: [PATCH 1922/2431] Staging: rts5208: use dmam_alloc_coherent This patch replaces dma_alloc_coherent with the corresponding managed interface. Signed-off-by: Ronit Halder Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rts5208/rtsx.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rts5208/rtsx.c b/drivers/staging/rts5208/rtsx.c index b4e45436a4b9..1fe8e3e0a3fb 100644 --- a/drivers/staging/rts5208/rtsx.c +++ b/drivers/staging/rts5208/rtsx.c @@ -647,8 +647,6 @@ static void rtsx_release_resources(struct rtsx_dev *dev) wait_timeout(200); if (dev->rtsx_resv_buf) { - dma_free_coherent(&(dev->pci->dev), RTSX_RESV_BUF_LEN, - dev->rtsx_resv_buf, dev->rtsx_resv_buf_addr); dev->chip->host_cmds_ptr = NULL; dev->chip->host_sg_tbl_ptr = NULL; } @@ -918,8 +916,8 @@ static int rtsx_probe(struct pci_dev *pci, dev_info(&pci->dev, "Original address: 0x%lx, remapped address: 0x%lx\n", (unsigned long)(dev->addr), (unsigned long)(dev->remap_addr)); - dev->rtsx_resv_buf = dma_alloc_coherent(&(pci->dev), RTSX_RESV_BUF_LEN, - &(dev->rtsx_resv_buf_addr), GFP_KERNEL); + dev->rtsx_resv_buf = dmam_alloc_coherent(&pci->dev, RTSX_RESV_BUF_LEN, + &dev->rtsx_resv_buf_addr, GFP_KERNEL); if (dev->rtsx_resv_buf == NULL) { dev_err(&pci->dev, "alloc dma buffer fail\n"); err = -ENXIO; From dbabedf38eb9cc435450d48cb68b30f1337e1bea Mon Sep 17 00:00:00 2001 From: Sakshi Bansal Date: Thu, 15 Oct 2015 20:05:03 +0530 Subject: [PATCH 1923/2431] staging: netlogic: xlr_net.h: fixed coding style warnings Fixed block comments usage of * on subsequent lines Signed-off-by: Sakshi Bansal Signed-off-by: Greg Kroah-Hartman --- drivers/staging/netlogic/xlr_net.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/netlogic/xlr_net.h b/drivers/staging/netlogic/xlr_net.h index 2f65ec5a615c..7ae8874daee8 100644 --- a/drivers/staging/netlogic/xlr_net.h +++ b/drivers/staging/netlogic/xlr_net.h @@ -999,7 +999,8 @@ #define MAC_CRC_LEN 4 #define MAX_NUM_MSGRNG_STN_CC 128 #define MAX_MSG_SND_ATTEMPTS 100 /* 13 stns x 4 entry msg/stn + - headroom */ + * headroom + */ #define MAC_FRIN_TO_BE_SENT_THRESHOLD 16 From d41af47d9f3adb49c4328f1b6c769926478679c4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:25 -0700 Subject: [PATCH 1924/2431] staging: comedi: cb_pcidas: tidy up multi-line comments Reformat the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 113 ++++++++++----------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index b589e17379cc..f27090dc90cb 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1,65 +1,64 @@ /* - comedi/drivers/cb_pcidas.c + * cb_pcidas.c + * Developed by Ivan Martinez and Frank Mori Hess, with valuable help from + * David Schleef and the rest of the Comedi developers comunity. + * + * Copyright (C) 2001-2003 Ivan Martinez + * Copyright (C) 2001,2002 Frank Mori Hess + * + * COMEDI - Linux Control and Measurement Device Interface + * Copyright (C) 1997-8 David A. Schleef + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ - Developed by Ivan Martinez and Frank Mori Hess, with valuable help from - David Schleef and the rest of the Comedi developers comunity. - - Copyright (C) 2001-2003 Ivan Martinez - Copyright (C) 2001,2002 Frank Mori Hess - - COMEDI - Linux Control and Measurement Device Interface - Copyright (C) 1997-8 David A. Schleef - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -*/ /* -Driver: cb_pcidas -Description: MeasurementComputing PCI-DAS series - with the AMCC S5933 PCI controller -Author: Ivan Martinez , - Frank Mori Hess -Updated: 2003-3-11 -Devices: [Measurement Computing] PCI-DAS1602/16 (cb_pcidas), - PCI-DAS1602/16jr, PCI-DAS1602/12, PCI-DAS1200, PCI-DAS1200jr, - PCI-DAS1000, PCI-DAS1001, PCI_DAS1002 + * Driver: cb_pcidas + * Description: MeasurementComputing PCI-DAS series + * with the AMCC S5933 PCI controller + * Devices: [Measurement Computing] PCI-DAS1602/16 (cb_pcidas), + * PCI-DAS1602/16jr, PCI-DAS1602/12, PCI-DAS1200, PCI-DAS1200jr, + * PCI-DAS1000, PCI-DAS1001, PCI_DAS1002 + * Author: Ivan Martinez , + * Frank Mori Hess + * Updated: 2003-3-11 + * + * Status: + * There are many reports of the driver being used with most of the + * supported cards. Despite no detailed log is maintained, it can + * be said that the driver is quite tested and stable. + * + * The boards may be autocalibrated using the comedi_calibrate + * utility. + * + * Configuration options: not applicable, uses PCI auto config + * + * For commands, the scanned channels must be consecutive + * (i.e. 4-5-6-7, 2-3-4,...), and must all have the same + * range and aref. + * + * AI Triggering: + * For start_src == TRIG_EXT, the A/D EXTERNAL TRIGGER IN (pin 45) is used. + * For 1602 series, the start_arg is interpreted as follows: + * start_arg == 0 => gated trigger (level high) + * start_arg == CR_INVERT => gated trigger (level low) + * start_arg == CR_EDGE => Rising edge + * start_arg == CR_EDGE | CR_INVERT => Falling edge + * For the other boards the trigger will be done on rising edge + */ -Status: - There are many reports of the driver being used with most of the - supported cards. Despite no detailed log is maintained, it can - be said that the driver is quite tested and stable. - - The boards may be autocalibrated using the comedi_calibrate - utility. - -Configuration options: not applicable, uses PCI auto config - -For commands, the scanned channels must be consecutive -(i.e. 4-5-6-7, 2-3-4,...), and must all have the same -range and aref. - -AI Triggering: - For start_src == TRIG_EXT, the A/D EXTERNAL TRIGGER IN (pin 45) is used. - For 1602 series, the start_arg is interpreted as follows: - start_arg == 0 => gated trigger (level high) - start_arg == CR_INVERT => gated trigger (level low) - start_arg == CR_EDGE => Rising edge - start_arg == CR_EDGE | CR_INVERT => Falling edge - For the other boards the trigger will be done on rising edge -*/ /* - -TODO: - -analog triggering on 1602 series -*/ + * TODO: + * analog triggering on 1602 series + */ #include #include From 3ab2733b7ce9e20be53f483f626f3d06ff507de3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:26 -0700 Subject: [PATCH 1925/2431] staging: comedi: cb_pcidas: remove NUM_CHANNELS_* defines These defines don't add any additional clarity to the driver. Just remove them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f27090dc90cb..dee4f8ef6a67 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -72,10 +72,6 @@ #define AI_BUFFER_SIZE 1024 /* max ai fifo size */ #define AO_BUFFER_SIZE 1024 /* max ao fifo size */ -#define NUM_CHANNELS_8800 8 -#define NUM_CHANNELS_7376 1 -#define NUM_CHANNELS_8402 2 -#define NUM_CHANNELS_DAC08 1 /* Control/Status registers */ #define INT_ADCFIFO 0 /* INTERRUPT / ADC FIFO register */ @@ -1459,7 +1455,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s = &dev->subdevices[4]; s->type = COMEDI_SUBD_CALIB; s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_INTERNAL; - s->n_chan = NUM_CHANNELS_8800; + s->n_chan = 8; s->maxdata = 0xff; s->insn_write = cb_pcidas_caldac_insn_write; @@ -1477,10 +1473,10 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_CALIB; s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_INTERNAL; if (board->trimpot == AD7376) { - s->n_chan = NUM_CHANNELS_7376; + s->n_chan = 1; s->maxdata = 0x7f; } else { - s->n_chan = NUM_CHANNELS_8402; + s->n_chan = 2; s->maxdata = 0xff; } s->insn_write = cb_pcidas_trimpot_insn_write; @@ -1499,7 +1495,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, if (board->has_dac08) { s->type = COMEDI_SUBD_CALIB; s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_INTERNAL; - s->n_chan = NUM_CHANNELS_DAC08; + s->n_chan = 1; s->maxdata = 0xff; s->insn_write = cb_pcidas_dac08_insn_write; From bfd2eb8d2077776fab9dbd2d91082990908480ab Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:27 -0700 Subject: [PATCH 1926/2431] staging: comedi: cb_pcidas: refactor 'ai_bits' boardinfo The boards supported by this driver either have 16-bit or 12-bit analog input/output resolution. For aesthetics, replace the 'ai_bits' member of the boardinfo with a bit-field flag 'is_16bit'. Also, change the types of the other bit-field flags to unsigned int. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 24 +++++++--------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index dee4f8ef6a67..99f12dce8666 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -229,7 +229,6 @@ enum cb_pcidas_boardid { struct cb_pcidas_board { const char *name; int ai_nchan; /* Inputs in single-ended mode */ - int ai_bits; /* analog input resolution */ int ai_speed; /* fastest conversion period in ns */ int ao_nchan; /* number of analog out channels */ int has_ao_fifo; /* analog output has fifo */ @@ -237,15 +236,15 @@ struct cb_pcidas_board { int fifo_size; /* number of samples fifo can hold */ const struct comedi_lrange *ranges; enum trimpot_model trimpot; - unsigned has_dac08:1; - unsigned is_1602:1; + unsigned int is_16bit; /* ADC/DAC resolution 1=16-bit; 0=12-bit */ + unsigned int has_dac08:1; + unsigned int is_1602:1; }; static const struct cb_pcidas_board cb_pcidas_boards[] = { [BOARD_PCIDAS1602_16] = { .name = "pci-das1602/16", .ai_nchan = 16, - .ai_bits = 16, .ai_speed = 5000, .ao_nchan = 2, .has_ao_fifo = 1, @@ -253,13 +252,13 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .fifo_size = 512, .ranges = &cb_pcidas_ranges, .trimpot = AD8402, + .is_16bit = 1, .has_dac08 = 1, .is_1602 = 1, }, [BOARD_PCIDAS1200] = { .name = "pci-das1200", .ai_nchan = 16, - .ai_bits = 12, .ai_speed = 3200, .ao_nchan = 2, .fifo_size = 1024, @@ -269,7 +268,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { [BOARD_PCIDAS1602_12] = { .name = "pci-das1602/12", .ai_nchan = 16, - .ai_bits = 12, .ai_speed = 3200, .ao_nchan = 2, .has_ao_fifo = 1, @@ -282,7 +280,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { [BOARD_PCIDAS1200_JR] = { .name = "pci-das1200/jr", .ai_nchan = 16, - .ai_bits = 12, .ai_speed = 3200, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, @@ -291,18 +288,17 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { [BOARD_PCIDAS1602_16_JR] = { .name = "pci-das1602/16/jr", .ai_nchan = 16, - .ai_bits = 16, .ai_speed = 5000, .fifo_size = 512, .ranges = &cb_pcidas_ranges, .trimpot = AD8402, + .is_16bit = 1, .has_dac08 = 1, .is_1602 = 1, }, [BOARD_PCIDAS1000] = { .name = "pci-das1000", .ai_nchan = 16, - .ai_bits = 12, .ai_speed = 4000, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, @@ -311,7 +307,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { [BOARD_PCIDAS1001] = { .name = "pci-das1001", .ai_nchan = 16, - .ai_bits = 12, .ai_speed = 6800, .ao_nchan = 2, .fifo_size = 1024, @@ -321,7 +316,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { [BOARD_PCIDAS1002] = { .name = "pci-das1002", .ai_nchan = 16, - .ai_bits = 12, .ai_speed = 6800, .ao_nchan = 2, .fifo_size = 1024, @@ -1397,7 +1391,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, /* WARNING: Number of inputs in differential mode is ignored */ s->n_chan = board->ai_nchan; s->len_chanlist = board->ai_nchan; - s->maxdata = (1 << board->ai_bits) - 1; + s->maxdata = board->is_16bit ? 0xffff : 0x0fff; s->range_table = board->ranges; s->insn_read = cb_pcidas_ai_rinsn; s->insn_config = ai_config_insn; @@ -1411,11 +1405,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_AO; s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_GROUND; s->n_chan = board->ao_nchan; - /* - * analog out resolution is the same as - * analog input resolution, so use ai_bits - */ - s->maxdata = (1 << board->ai_bits) - 1; + s->maxdata = board->is_16bit ? 0xffff : 0x0fff; s->range_table = &cb_pcidas_ao_ranges; /* default to no fifo (*insn_write) */ s->insn_write = cb_pcidas_ao_nofifo_winsn; From fe97f142bb18903f91cde3de73c6b14ae031d4b4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:28 -0700 Subject: [PATCH 1927/2431] staging: comedi: cb_pcidas: refactor analog output boardinfo Only some of the boards supported by this driver have analog outputs but they always have 2 channels. Refactor the 'ao_nchan' member of the boardinfo into a bit-field flag 'has_ao' to save a bit of space. Also, convert the 'has_ao_fifo' member into a bit-field flag. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 99f12dce8666..f6309c9c034e 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -230,13 +230,13 @@ struct cb_pcidas_board { const char *name; int ai_nchan; /* Inputs in single-ended mode */ int ai_speed; /* fastest conversion period in ns */ - int ao_nchan; /* number of analog out channels */ - int has_ao_fifo; /* analog output has fifo */ int ao_scan_speed; /* analog output scan speed for 1602 series */ int fifo_size; /* number of samples fifo can hold */ const struct comedi_lrange *ranges; enum trimpot_model trimpot; unsigned int is_16bit; /* ADC/DAC resolution 1=16-bit; 0=12-bit */ + unsigned int has_ao:1; /* has 2 analog output channels */ + unsigned int has_ao_fifo:1; /* analog output has fifo */ unsigned int has_dac08:1; unsigned int is_1602:1; }; @@ -246,13 +246,13 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1602/16", .ai_nchan = 16, .ai_speed = 5000, - .ao_nchan = 2, - .has_ao_fifo = 1, .ao_scan_speed = 10000, .fifo_size = 512, .ranges = &cb_pcidas_ranges, .trimpot = AD8402, .is_16bit = 1, + .has_ao = 1, + .has_ao_fifo = 1, .has_dac08 = 1, .is_1602 = 1, }, @@ -260,21 +260,21 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1200", .ai_nchan = 16, .ai_speed = 3200, - .ao_nchan = 2, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, .trimpot = AD7376, + .has_ao = 1, }, [BOARD_PCIDAS1602_12] = { .name = "pci-das1602/12", .ai_nchan = 16, .ai_speed = 3200, - .ao_nchan = 2, - .has_ao_fifo = 1, .ao_scan_speed = 4000, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, .trimpot = AD7376, + .has_ao = 1, + .has_ao_fifo = 1, .is_1602 = 1, }, [BOARD_PCIDAS1200_JR] = { @@ -308,19 +308,19 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1001", .ai_nchan = 16, .ai_speed = 6800, - .ao_nchan = 2, .fifo_size = 1024, .ranges = &cb_pcidas_alt_ranges, .trimpot = AD7376, + .has_ao = 1, }, [BOARD_PCIDAS1002] = { .name = "pci-das1002", .ai_nchan = 16, .ai_speed = 6800, - .ao_nchan = 2, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, .trimpot = AD7376, + .has_ao = 1, }, }; @@ -1352,7 +1352,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, devpriv->control_status = pci_resource_start(pcidev, 1); devpriv->adc_fifo = pci_resource_start(pcidev, 2); dev->iobase = pci_resource_start(pcidev, 3); - if (board->ao_nchan) + if (board->has_ao) devpriv->ao_registers = pci_resource_start(pcidev, 4); /* disable and clear interrupts on amcc s5933 */ @@ -1401,10 +1401,10 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, /* analog output subdevice */ s = &dev->subdevices[1]; - if (board->ao_nchan) { + if (board->has_ao) { s->type = COMEDI_SUBD_AO; s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_GROUND; - s->n_chan = board->ao_nchan; + s->n_chan = 2; s->maxdata = board->is_16bit ? 0xffff : 0x0fff; s->range_table = &cb_pcidas_ao_ranges; /* default to no fifo (*insn_write) */ From 2743803dc4fce84365204a494ef94edd81c8320b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:29 -0700 Subject: [PATCH 1928/2431] staging: comedi: cb_pcidas: all boards have 16 analog input channels All the boards supported by this driver have 16 analog input channels. Remove this unnecessary information from the boardinfo. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f6309c9c034e..46c47ed7be9b 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -228,7 +228,6 @@ enum cb_pcidas_boardid { struct cb_pcidas_board { const char *name; - int ai_nchan; /* Inputs in single-ended mode */ int ai_speed; /* fastest conversion period in ns */ int ao_scan_speed; /* analog output scan speed for 1602 series */ int fifo_size; /* number of samples fifo can hold */ @@ -244,7 +243,6 @@ struct cb_pcidas_board { static const struct cb_pcidas_board cb_pcidas_boards[] = { [BOARD_PCIDAS1602_16] = { .name = "pci-das1602/16", - .ai_nchan = 16, .ai_speed = 5000, .ao_scan_speed = 10000, .fifo_size = 512, @@ -258,7 +256,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { }, [BOARD_PCIDAS1200] = { .name = "pci-das1200", - .ai_nchan = 16, .ai_speed = 3200, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, @@ -267,7 +264,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { }, [BOARD_PCIDAS1602_12] = { .name = "pci-das1602/12", - .ai_nchan = 16, .ai_speed = 3200, .ao_scan_speed = 4000, .fifo_size = 1024, @@ -279,7 +275,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { }, [BOARD_PCIDAS1200_JR] = { .name = "pci-das1200/jr", - .ai_nchan = 16, .ai_speed = 3200, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, @@ -287,7 +282,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { }, [BOARD_PCIDAS1602_16_JR] = { .name = "pci-das1602/16/jr", - .ai_nchan = 16, .ai_speed = 5000, .fifo_size = 512, .ranges = &cb_pcidas_ranges, @@ -298,7 +292,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { }, [BOARD_PCIDAS1000] = { .name = "pci-das1000", - .ai_nchan = 16, .ai_speed = 4000, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, @@ -306,7 +299,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { }, [BOARD_PCIDAS1001] = { .name = "pci-das1001", - .ai_nchan = 16, .ai_speed = 6800, .fifo_size = 1024, .ranges = &cb_pcidas_alt_ranges, @@ -315,7 +307,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { }, [BOARD_PCIDAS1002] = { .name = "pci-das1002", - .ai_nchan = 16, .ai_speed = 6800, .fifo_size = 1024, .ranges = &cb_pcidas_ranges, @@ -1389,8 +1380,8 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_AI; s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF | SDF_CMD_READ; /* WARNING: Number of inputs in differential mode is ignored */ - s->n_chan = board->ai_nchan; - s->len_chanlist = board->ai_nchan; + s->n_chan = 16; + s->len_chanlist = s->n_chan; s->maxdata = board->is_16bit ? 0xffff : 0x0fff; s->range_table = board->ranges; s->insn_read = cb_pcidas_ai_rinsn; From c368e6687066c0dcaddacdd1bcdf7999caa21fa4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:30 -0700 Subject: [PATCH 1929/2431] staging: comedi: cb_pcidas: refactor 'ranges' boardinfo All the boards, except the 'pci-das1001', use the normal analog input range table 'cb_pcidas_ranges'. Convert the 'ranges' boardinfo into a bit-field flag 'use_alt_range' to save a bit of space. For aesthetics, reword the comments in the boardinfo for the bit-field members so they align. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 46c47ed7be9b..a844103c92f2 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -231,11 +231,11 @@ struct cb_pcidas_board { int ai_speed; /* fastest conversion period in ns */ int ao_scan_speed; /* analog output scan speed for 1602 series */ int fifo_size; /* number of samples fifo can hold */ - const struct comedi_lrange *ranges; enum trimpot_model trimpot; - unsigned int is_16bit; /* ADC/DAC resolution 1=16-bit; 0=12-bit */ - unsigned int has_ao:1; /* has 2 analog output channels */ - unsigned int has_ao_fifo:1; /* analog output has fifo */ + unsigned int is_16bit; /* ai/ao is 1=16-bit; 0=12-bit */ + unsigned int use_alt_range:1; /* use alternate ai range table */ + unsigned int has_ao:1; /* has 2 analog output channels */ + unsigned int has_ao_fifo:1; /* analog output has fifo */ unsigned int has_dac08:1; unsigned int is_1602:1; }; @@ -246,7 +246,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .ai_speed = 5000, .ao_scan_speed = 10000, .fifo_size = 512, - .ranges = &cb_pcidas_ranges, .trimpot = AD8402, .is_16bit = 1, .has_ao = 1, @@ -258,7 +257,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1200", .ai_speed = 3200, .fifo_size = 1024, - .ranges = &cb_pcidas_ranges, .trimpot = AD7376, .has_ao = 1, }, @@ -267,7 +265,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .ai_speed = 3200, .ao_scan_speed = 4000, .fifo_size = 1024, - .ranges = &cb_pcidas_ranges, .trimpot = AD7376, .has_ao = 1, .has_ao_fifo = 1, @@ -277,14 +274,12 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1200/jr", .ai_speed = 3200, .fifo_size = 1024, - .ranges = &cb_pcidas_ranges, .trimpot = AD7376, }, [BOARD_PCIDAS1602_16_JR] = { .name = "pci-das1602/16/jr", .ai_speed = 5000, .fifo_size = 512, - .ranges = &cb_pcidas_ranges, .trimpot = AD8402, .is_16bit = 1, .has_dac08 = 1, @@ -294,22 +289,20 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1000", .ai_speed = 4000, .fifo_size = 1024, - .ranges = &cb_pcidas_ranges, .trimpot = AD7376, }, [BOARD_PCIDAS1001] = { .name = "pci-das1001", .ai_speed = 6800, .fifo_size = 1024, - .ranges = &cb_pcidas_alt_ranges, .trimpot = AD7376, + .use_alt_range = 1, .has_ao = 1, }, [BOARD_PCIDAS1002] = { .name = "pci-das1002", .ai_speed = 6800, .fifo_size = 1024, - .ranges = &cb_pcidas_ranges, .trimpot = AD7376, .has_ao = 1, }, @@ -1383,7 +1376,8 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->n_chan = 16; s->len_chanlist = s->n_chan; s->maxdata = board->is_16bit ? 0xffff : 0x0fff; - s->range_table = board->ranges; + s->range_table = board->use_alt_range ? &cb_pcidas_alt_ranges + : &cb_pcidas_ranges; s->insn_read = cb_pcidas_ai_rinsn; s->insn_config = ai_config_insn; s->do_cmd = cb_pcidas_ai_cmd; From 9d39f185130432452ba8cead55ec7c4a914133bc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:31 -0700 Subject: [PATCH 1930/2431] staging: comedi: cb_pcidas: rename private data 'control_status' This member of the private data holds the PCI BAR1 resource starting address. For aesthetics, rename this member to 'pcibar1'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 82 +++++++++++----------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index a844103c92f2..3a17611173d0 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -73,7 +73,9 @@ #define AI_BUFFER_SIZE 1024 /* max ai fifo size */ #define AO_BUFFER_SIZE 1024 /* max ao fifo size */ -/* Control/Status registers */ +/* + * PCI BAR1 Register map (devpriv->pcibar1) + */ #define INT_ADCFIFO 0 /* INTERRUPT / ADC FIFO register */ #define INT_EOS 0x1 /* int end of scan */ #define INT_FHF 0x2 /* int fifo half full */ @@ -312,7 +314,7 @@ struct cb_pcidas_private { struct comedi_8254 *ao_pacer; /* base addresses */ unsigned long s5933_config; - unsigned long control_status; + unsigned long pcibar1; unsigned long adc_fifo; unsigned long ao_registers; /* bits to write to registers */ @@ -340,7 +342,7 @@ static int cb_pcidas_ai_eoc(struct comedi_device *dev, struct cb_pcidas_private *devpriv = dev->private; unsigned int status; - status = inw(devpriv->control_status + ADCMUX_CONT); + status = inw(devpriv->pcibar1 + ADCMUX_CONT); if (status & EOC) return 0; return -EBUSY; @@ -361,10 +363,10 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, /* enable calibration input if appropriate */ if (insn->chanspec & CR_ALT_SOURCE) { outw(cal_enable_bits(dev), - devpriv->control_status + CALIBRATION_REG); + devpriv->pcibar1 + CALIBRATION_REG); chan = 0; } else { - outw(0, devpriv->control_status + CALIBRATION_REG); + outw(0, devpriv->pcibar1 + CALIBRATION_REG); } /* set mux limits and gain */ @@ -375,7 +377,7 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, /* set single-ended/differential */ if (aref != AREF_DIFF) bits |= SE; - outw(bits, devpriv->control_status + ADCMUX_CONT); + outw(bits, devpriv->pcibar1 + ADCMUX_CONT); /* clear fifo */ outw(0, devpriv->adc_fifo + ADCFIFOCLR); @@ -437,7 +439,7 @@ static int cb_pcidas_ao_nofifo_winsn(struct comedi_device *dev, devpriv->ao_control_bits &= (~DAC_MODE_UPDATE_BOTH & ~DAC_RANGE_MASK(chan)); devpriv->ao_control_bits |= (DACEN | DAC_RANGE(chan, range)); - outw(devpriv->ao_control_bits, devpriv->control_status + DAC_CSR); + outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); spin_unlock_irqrestore(&dev->spinlock, flags); /* remember value for readback */ @@ -468,7 +470,7 @@ static int cb_pcidas_ao_fifo_winsn(struct comedi_device *dev, ~DAC_RANGE_MASK(chan) & ~DAC_PACER_MASK); devpriv->ao_control_bits |= (DACEN | DAC_RANGE(chan, range) | DAC_CHAN_EN(chan) | DAC_START); - outw(devpriv->ao_control_bits, devpriv->control_status + DAC_CSR); + outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); spin_unlock_irqrestore(&dev->spinlock, flags); /* remember value for readback */ @@ -551,7 +553,7 @@ static void write_calibration_bitstream(struct comedi_device *dev, else register_bits &= ~SERIAL_DATA_IN_BIT; udelay(write_delay); - outw(register_bits, devpriv->control_status + CALIBRATION_REG); + outw(register_bits, devpriv->pcibar1 + CALIBRATION_REG); } } @@ -568,9 +570,9 @@ static void caldac_8800_write(struct comedi_device *dev, udelay(caldac_8800_udelay); outw(cal_enable_bits(dev) | SELECT_8800_BIT, - devpriv->control_status + CALIBRATION_REG); + devpriv->pcibar1 + CALIBRATION_REG); udelay(caldac_8800_udelay); - outw(cal_enable_bits(dev), devpriv->control_status + CALIBRATION_REG); + outw(cal_enable_bits(dev), devpriv->pcibar1 + CALIBRATION_REG); } static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, @@ -601,12 +603,12 @@ static void dac08_write(struct comedi_device *dev, unsigned int value) value |= cal_enable_bits(dev); /* latch the new value into the caldac */ - outw(value, devpriv->control_status + CALIBRATION_REG); + outw(value, devpriv->pcibar1 + CALIBRATION_REG); udelay(1); outw(value | SELECT_DAC08_BIT, - devpriv->control_status + CALIBRATION_REG); + devpriv->pcibar1 + CALIBRATION_REG); udelay(1); - outw(value, devpriv->control_status + CALIBRATION_REG); + outw(value, devpriv->pcibar1 + CALIBRATION_REG); udelay(1); } @@ -639,13 +641,13 @@ static int trimpot_7376_write(struct comedi_device *dev, uint8_t value) register_bits = cal_enable_bits(dev) | SELECT_TRIMPOT_BIT; udelay(ad7376_udelay); - outw(register_bits, devpriv->control_status + CALIBRATION_REG); + outw(register_bits, devpriv->pcibar1 + CALIBRATION_REG); write_calibration_bitstream(dev, register_bits, bitstream, bitstream_length); udelay(ad7376_udelay); - outw(cal_enable_bits(dev), devpriv->control_status + CALIBRATION_REG); + outw(cal_enable_bits(dev), devpriv->pcibar1 + CALIBRATION_REG); return 0; } @@ -664,13 +666,13 @@ static int trimpot_8402_write(struct comedi_device *dev, unsigned int channel, register_bits = cal_enable_bits(dev) | SELECT_TRIMPOT_BIT; udelay(ad8402_udelay); - outw(register_bits, devpriv->control_status + CALIBRATION_REG); + outw(register_bits, devpriv->pcibar1 + CALIBRATION_REG); write_calibration_bitstream(dev, register_bits, bitstream, bitstream_length); udelay(ad8402_udelay); - outw(cal_enable_bits(dev), devpriv->control_status + CALIBRATION_REG); + outw(cal_enable_bits(dev), devpriv->pcibar1 + CALIBRATION_REG); return 0; } @@ -860,9 +862,9 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, unsigned long flags; /* make sure CAL_EN_BIT is disabled */ - outw(0, devpriv->control_status + CALIBRATION_REG); + outw(0, devpriv->pcibar1 + CALIBRATION_REG); /* initialize before settings pacer source and count values */ - outw(0, devpriv->control_status + TRIG_CONTSTAT); + outw(0, devpriv->pcibar1 + TRIG_CONTSTAT); /* clear fifo */ outw(0, devpriv->adc_fifo + ADCFIFOCLR); @@ -881,7 +883,7 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, bits |= PACER_EXT_RISE; else bits |= PACER_INT; - outw(bits, devpriv->control_status + ADCMUX_CONT); + outw(bits, devpriv->pcibar1 + ADCMUX_CONT); /* load counters */ if (cmd->scan_begin_src == TRIG_TIMER || @@ -909,7 +911,7 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, /* enable (and clear) interrupts */ outw(devpriv->adc_fifo_bits | EOAI | INT | LADFUL, - devpriv->control_status + INT_ADCFIFO); + devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); /* set start trigger and burst mode */ @@ -927,7 +929,7 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, } if (cmd->convert_src == TRIG_NOW && cmd->chanlist_len > 1) bits |= BURSTE; - outw(bits, devpriv->control_status + TRIG_CONTSTAT); + outw(bits, devpriv->pcibar1 + TRIG_CONTSTAT); return 0; } @@ -1034,13 +1036,13 @@ static int cb_pcidas_cancel(struct comedi_device *dev, spin_lock_irqsave(&dev->spinlock, flags); /* disable interrupts */ devpriv->adc_fifo_bits &= ~INTE & ~EOAIE; - outw(devpriv->adc_fifo_bits, devpriv->control_status + INT_ADCFIFO); + outw(devpriv->adc_fifo_bits, devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); /* disable start trigger source and burst mode */ - outw(0, devpriv->control_status + TRIG_CONTSTAT); + outw(0, devpriv->pcibar1 + TRIG_CONTSTAT); /* software pacer source */ - outw(0, devpriv->control_status + ADCMUX_CONT); + outw(0, devpriv->pcibar1 + ADCMUX_CONT); return 0; } @@ -1080,11 +1082,11 @@ static int cb_pcidas_ao_inttrig(struct comedi_device *dev, /* enable and clear interrupts */ outw(devpriv->adc_fifo_bits | DAEMI | DAHFI, - devpriv->control_status + INT_ADCFIFO); + devpriv->pcibar1 + INT_ADCFIFO); /* start dac */ devpriv->ao_control_bits |= DAC_START | DACEN | DAC_EMPTY; - outw(devpriv->ao_control_bits, devpriv->control_status + DAC_CSR); + outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); spin_unlock_irqrestore(&dev->spinlock, flags); @@ -1115,7 +1117,7 @@ static int cb_pcidas_ao_cmd(struct comedi_device *dev, } /* disable analog out before settings pacer source and count values */ - outw(devpriv->ao_control_bits, devpriv->control_status + DAC_CSR); + outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); spin_unlock_irqrestore(&dev->spinlock, flags); /* clear fifo */ @@ -1158,11 +1160,11 @@ static int cb_pcidas_ao_cancel(struct comedi_device *dev, spin_lock_irqsave(&dev->spinlock, flags); /* disable interrupts */ devpriv->adc_fifo_bits &= ~DAHFIE & ~DAEMIE; - outw(devpriv->adc_fifo_bits, devpriv->control_status + INT_ADCFIFO); + outw(devpriv->adc_fifo_bits, devpriv->pcibar1 + INT_ADCFIFO); /* disable output */ devpriv->ao_control_bits &= ~DACEN & ~DAC_PACER_MASK; - outw(devpriv->ao_control_bits, devpriv->control_status + DAC_CSR); + outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); spin_unlock_irqrestore(&dev->spinlock, flags); return 0; @@ -1181,7 +1183,7 @@ static void handle_ao_interrupt(struct comedi_device *dev, unsigned int status) /* clear dac empty interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); outw(devpriv->adc_fifo_bits | DAEMI, - devpriv->control_status + INT_ADCFIFO); + devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); if (inw(devpriv->ao_registers + DAC_CSR) & DAC_EMPTY) { if (cmd->stop_src == TRIG_COUNT && @@ -1198,7 +1200,7 @@ static void handle_ao_interrupt(struct comedi_device *dev, unsigned int status) /* clear half-full interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); outw(devpriv->adc_fifo_bits | DAHFI, - devpriv->control_status + INT_ADCFIFO); + devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); } @@ -1236,7 +1238,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) outl(devpriv->s5933_intcsr_bits | INTCSR_INBOX_INTR_STATUS, devpriv->s5933_config + AMCC_OP_REG_INTCSR); - status = inw(devpriv->control_status + INT_ADCFIFO); + status = inw(devpriv->pcibar1 + INT_ADCFIFO); /* check for analog output interrupt */ if (status & (DAHFI | DAEMI)) @@ -1257,7 +1259,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) /* clear half-full interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); outw(devpriv->adc_fifo_bits | INT, - devpriv->control_status + INT_ADCFIFO); + devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); /* else if fifo not empty */ } else if (status & (ADNEI | EOBI)) { @@ -1265,7 +1267,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) unsigned short val; /* break if fifo is empty */ - if ((ADNE & inw(devpriv->control_status + + if ((ADNE & inw(devpriv->pcibar1 + INT_ADCFIFO)) == 0) break; val = inw(devpriv->adc_fifo); @@ -1280,7 +1282,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) /* clear not-empty interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); outw(devpriv->adc_fifo_bits | INT, - devpriv->control_status + INT_ADCFIFO); + devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); } else if (status & EOAI) { dev_err(dev->class_dev, @@ -1288,7 +1290,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) /* clear EOA interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); outw(devpriv->adc_fifo_bits | EOAI, - devpriv->control_status + INT_ADCFIFO); + devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); } /* check for fifo overflow */ @@ -1297,7 +1299,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) /* clear overflow interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); outw(devpriv->adc_fifo_bits | LADFUL, - devpriv->control_status + INT_ADCFIFO); + devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); async->events |= COMEDI_CB_ERROR; } @@ -1333,7 +1335,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, return ret; devpriv->s5933_config = pci_resource_start(pcidev, 0); - devpriv->control_status = pci_resource_start(pcidev, 1); + devpriv->pcibar1 = pci_resource_start(pcidev, 1); devpriv->adc_fifo = pci_resource_start(pcidev, 2); dev->iobase = pci_resource_start(pcidev, 3); if (board->has_ao) From 800235b64ef3440a77af019a3f6ffd5a42cff785 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:32 -0700 Subject: [PATCH 1931/2431] staging: comedi: cb_pcidas: rename private data 'adc_fifo' This member of the private data holds the PCI BAR2 resource starting address. For aesthetics, rename this member to 'pcibar2'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 3a17611173d0..47827513b8ea 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -153,7 +153,9 @@ static inline unsigned int DAC_CHAN_EN(unsigned int channel) return 1 << (5 + (channel & 0x1)); /* enable channel 0 or 1 */ }; -/* analog input fifo */ +/* + * PCI BAR2 Register map (devpriv->pcibar2) + */ #define ADCDATA 0 /* ADC DATA register */ #define ADCFIFOCLR 2 /* ADC FIFO CLEAR */ @@ -315,7 +317,7 @@ struct cb_pcidas_private { /* base addresses */ unsigned long s5933_config; unsigned long pcibar1; - unsigned long adc_fifo; + unsigned long pcibar2; unsigned long ao_registers; /* bits to write to registers */ unsigned int adc_fifo_bits; @@ -380,12 +382,12 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, outw(bits, devpriv->pcibar1 + ADCMUX_CONT); /* clear fifo */ - outw(0, devpriv->adc_fifo + ADCFIFOCLR); + outw(0, devpriv->pcibar2 + ADCFIFOCLR); /* convert n samples */ for (n = 0; n < insn->n; n++) { /* trigger conversion */ - outw(0, devpriv->adc_fifo + ADCDATA); + outw(0, devpriv->pcibar2 + ADCDATA); /* wait for conversion to end */ ret = comedi_timeout(dev, s, insn, cb_pcidas_ai_eoc, 0); @@ -393,7 +395,7 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, return ret; /* read data */ - data[n] = inw(devpriv->adc_fifo + ADCDATA); + data[n] = inw(devpriv->pcibar2 + ADCDATA); } /* return the number of samples read/written */ @@ -866,7 +868,7 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, /* initialize before settings pacer source and count values */ outw(0, devpriv->pcibar1 + TRIG_CONTSTAT); /* clear fifo */ - outw(0, devpriv->adc_fifo + ADCFIFOCLR); + outw(0, devpriv->pcibar2 + ADCFIFOCLR); /* set mux limits, gain and pacer source */ bits = BEGIN_SCAN(CR_CHAN(cmd->chanlist[0])) | @@ -1248,7 +1250,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) if (status & ADHFI) { /* read data */ num_samples = comedi_nsamples_left(s, half_fifo); - insw(devpriv->adc_fifo + ADCDATA, devpriv->ai_buffer, + insw(devpriv->pcibar2 + ADCDATA, devpriv->ai_buffer, num_samples); comedi_buf_write_samples(s, devpriv->ai_buffer, num_samples); @@ -1270,7 +1272,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) if ((ADNE & inw(devpriv->pcibar1 + INT_ADCFIFO)) == 0) break; - val = inw(devpriv->adc_fifo); + val = inw(devpriv->pcibar2 + ADCDATA); comedi_buf_write_samples(s, &val, 1); if (cmd->stop_src == TRIG_COUNT && @@ -1336,7 +1338,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, devpriv->s5933_config = pci_resource_start(pcidev, 0); devpriv->pcibar1 = pci_resource_start(pcidev, 1); - devpriv->adc_fifo = pci_resource_start(pcidev, 2); + devpriv->pcibar2 = pci_resource_start(pcidev, 2); dev->iobase = pci_resource_start(pcidev, 3); if (board->has_ao) devpriv->ao_registers = pci_resource_start(pcidev, 4); From 71c1d717b3d0318edafc91c45e84140379c86e8d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:33 -0700 Subject: [PATCH 1932/2431] staging: comedi: cb_pcidas: rename private data 'ao_registers' This member of the private data holds the PCI BAR4 resource starting address. For aesthetics, rename this member to 'pcibar4'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 47827513b8ea..3c1b80a6f937 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -164,6 +164,10 @@ static inline unsigned int DAC_CHAN_EN(unsigned int channel) #define DIO_8255 4 #define DAC8254 8 +/* + * PCI BAR4 Register map (devpriv->pcibar4) + */ + /* analog output registers for 100x, 1200 series */ static inline unsigned int DAC_DATA_REG(unsigned int channel) { @@ -318,7 +322,7 @@ struct cb_pcidas_private { unsigned long s5933_config; unsigned long pcibar1; unsigned long pcibar2; - unsigned long ao_registers; + unsigned long pcibar4; /* bits to write to registers */ unsigned int adc_fifo_bits; unsigned int s5933_intcsr_bits; @@ -448,7 +452,7 @@ static int cb_pcidas_ao_nofifo_winsn(struct comedi_device *dev, s->readback[chan] = data[0]; /* send data */ - outw(data[0], devpriv->ao_registers + DAC_DATA_REG(chan)); + outw(data[0], devpriv->pcibar4 + DAC_DATA_REG(chan)); return insn->n; } @@ -464,7 +468,7 @@ static int cb_pcidas_ao_fifo_winsn(struct comedi_device *dev, unsigned long flags; /* clear dac fifo */ - outw(0, devpriv->ao_registers + DACFIFOCLR); + outw(0, devpriv->pcibar4 + DACFIFOCLR); /* set channel and range */ spin_lock_irqsave(&dev->spinlock, flags); @@ -479,7 +483,7 @@ static int cb_pcidas_ao_fifo_winsn(struct comedi_device *dev, s->readback[chan] = data[0]; /* send data */ - outw(data[0], devpriv->ao_registers + DACDATA); + outw(data[0], devpriv->pcibar4 + DACDATA); return insn->n; } @@ -1060,7 +1064,7 @@ static void cb_pcidas_ao_load_fifo(struct comedi_device *dev, nbytes = comedi_buf_read_samples(s, devpriv->ao_buffer, nsamples); nsamples = comedi_bytes_to_samples(s, nbytes); - outsw(devpriv->ao_registers + DACDATA, devpriv->ao_buffer, nsamples); + outsw(devpriv->pcibar4 + DACDATA, devpriv->ao_buffer, nsamples); } static int cb_pcidas_ao_inttrig(struct comedi_device *dev, @@ -1123,7 +1127,7 @@ static int cb_pcidas_ao_cmd(struct comedi_device *dev, spin_unlock_irqrestore(&dev->spinlock, flags); /* clear fifo */ - outw(0, devpriv->ao_registers + DACFIFOCLR); + outw(0, devpriv->pcibar4 + DACFIFOCLR); /* load counters */ if (cmd->scan_begin_src == TRIG_TIMER) { @@ -1187,7 +1191,7 @@ static void handle_ao_interrupt(struct comedi_device *dev, unsigned int status) outw(devpriv->adc_fifo_bits | DAEMI, devpriv->pcibar1 + INT_ADCFIFO); spin_unlock_irqrestore(&dev->spinlock, flags); - if (inw(devpriv->ao_registers + DAC_CSR) & DAC_EMPTY) { + if (inw(devpriv->pcibar4 + DAC_CSR) & DAC_EMPTY) { if (cmd->stop_src == TRIG_COUNT && async->scans_done >= cmd->stop_arg) { async->events |= COMEDI_CB_EOA; @@ -1341,7 +1345,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, devpriv->pcibar2 = pci_resource_start(pcidev, 2); dev->iobase = pci_resource_start(pcidev, 3); if (board->has_ao) - devpriv->ao_registers = pci_resource_start(pcidev, 4); + devpriv->pcibar4 = pci_resource_start(pcidev, 4); /* disable and clear interrupts on amcc s5933 */ outl(INTCSR_INBOX_INTR_STATUS, From 9846ec3a48e1ef4be619478d0822467dbfe79ec4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:34 -0700 Subject: [PATCH 1933/2431] staging: comedi: cb_pcidas: tidy up PCI BAR4 register defines Convert the inline function DAC_DATA_REG() into a simple macro. Rename the defines for the PCI BAR4 register offsets so they have namespace associated with the driver and convert the offsets to hex. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 24 ++++++++-------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 3c1b80a6f937..f5db76c50f5e 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -167,16 +167,9 @@ static inline unsigned int DAC_CHAN_EN(unsigned int channel) /* * PCI BAR4 Register map (devpriv->pcibar4) */ - -/* analog output registers for 100x, 1200 series */ -static inline unsigned int DAC_DATA_REG(unsigned int channel) -{ - return 2 * (channel & 0x1); -} - -/* analog output registers for 1602 series*/ -#define DACDATA 0 /* DAC DATA register */ -#define DACFIFOCLR 2 /* DAC FIFO CLEAR */ +#define PCIDAS_AO_DATA_REG(x) (0x00 + ((x) * 2)) +#define PCIDAS_AO_FIFO_REG 0x00 +#define PCIDAS_AO_FIFO_CLR_REG 0x02 #define IS_UNIPOLAR 0x4 /* unipolar range mask */ @@ -452,7 +445,7 @@ static int cb_pcidas_ao_nofifo_winsn(struct comedi_device *dev, s->readback[chan] = data[0]; /* send data */ - outw(data[0], devpriv->pcibar4 + DAC_DATA_REG(chan)); + outw(data[0], devpriv->pcibar4 + PCIDAS_AO_DATA_REG(chan)); return insn->n; } @@ -468,7 +461,7 @@ static int cb_pcidas_ao_fifo_winsn(struct comedi_device *dev, unsigned long flags; /* clear dac fifo */ - outw(0, devpriv->pcibar4 + DACFIFOCLR); + outw(0, devpriv->pcibar4 + PCIDAS_AO_FIFO_CLR_REG); /* set channel and range */ spin_lock_irqsave(&dev->spinlock, flags); @@ -483,7 +476,7 @@ static int cb_pcidas_ao_fifo_winsn(struct comedi_device *dev, s->readback[chan] = data[0]; /* send data */ - outw(data[0], devpriv->pcibar4 + DACDATA); + outw(data[0], devpriv->pcibar4 + PCIDAS_AO_FIFO_REG); return insn->n; } @@ -1064,7 +1057,8 @@ static void cb_pcidas_ao_load_fifo(struct comedi_device *dev, nbytes = comedi_buf_read_samples(s, devpriv->ao_buffer, nsamples); nsamples = comedi_bytes_to_samples(s, nbytes); - outsw(devpriv->pcibar4 + DACDATA, devpriv->ao_buffer, nsamples); + outsw(devpriv->pcibar4 + PCIDAS_AO_FIFO_REG, + devpriv->ao_buffer, nsamples); } static int cb_pcidas_ao_inttrig(struct comedi_device *dev, @@ -1127,7 +1121,7 @@ static int cb_pcidas_ao_cmd(struct comedi_device *dev, spin_unlock_irqrestore(&dev->spinlock, flags); /* clear fifo */ - outw(0, devpriv->pcibar4 + DACFIFOCLR); + outw(0, devpriv->pcibar4 + PCIDAS_AO_FIFO_CLR_REG); /* load counters */ if (cmd->scan_begin_src == TRIG_TIMER) { From 19aab073245923e8b8b4876dbc2d0287e9e9f700 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:35 -0700 Subject: [PATCH 1934/2431] staging: comedi: cb_pcidas: use comedi_range_is_unipolar() Instead of relying on the IS_UNIPOLAR mask value, use the comedi helper function to check if the range is unipolar. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f5db76c50f5e..5757dacec094 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -171,8 +171,6 @@ static inline unsigned int DAC_CHAN_EN(unsigned int channel) #define PCIDAS_AO_FIFO_REG 0x00 #define PCIDAS_AO_FIFO_CLR_REG 0x02 -#define IS_UNIPOLAR 0x4 /* unipolar range mask */ - /* analog input ranges for most boards */ static const struct comedi_lrange cb_pcidas_ranges = { 8, { @@ -371,7 +369,7 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, /* set mux limits and gain */ bits = BEGIN_SCAN(chan) | END_SCAN(chan) | GAIN_BITS(range); /* set unipolar/bipolar */ - if (range & IS_UNIPOLAR) + if (comedi_range_is_unipolar(s, range)) bits |= UNIP; /* set single-ended/differential */ if (aref != AREF_DIFF) @@ -857,6 +855,7 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, struct cb_pcidas_private *devpriv = dev->private; struct comedi_async *async = s->async; struct comedi_cmd *cmd = &async->cmd; + unsigned int range0 = CR_RANGE(cmd->chanlist[0]); unsigned int bits; unsigned long flags; @@ -870,9 +869,9 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, /* set mux limits, gain and pacer source */ bits = BEGIN_SCAN(CR_CHAN(cmd->chanlist[0])) | END_SCAN(CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1])) | - GAIN_BITS(CR_RANGE(cmd->chanlist[0])); + GAIN_BITS(range0); /* set unipolar/bipolar */ - if (CR_RANGE(cmd->chanlist[0]) & IS_UNIPOLAR) + if (comedi_range_is_unipolar(s, range0)) bits |= UNIP; /* set singleended/differential */ if (CR_AREF(cmd->chanlist[0]) != AREF_DIFF) From 1532421f4128414aa1e86885de8377b28d5bb079 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:36 -0700 Subject: [PATCH 1935/2431] staging: comedi: cb_pcidas: tidy up PCI BAR3 register defines Rename the defines for the PCI BAR3 register offsets so they have namespace associated with the driver and convert the offsets to hex. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 5757dacec094..df4fd3c51174 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -159,10 +159,12 @@ static inline unsigned int DAC_CHAN_EN(unsigned int channel) #define ADCDATA 0 /* ADC DATA register */ #define ADCFIFOCLR 2 /* ADC FIFO CLEAR */ -/* pacer, counter, dio registers */ -#define ADC8254 0 -#define DIO_8255 4 -#define DAC8254 8 +/* + * PCI BAR3 Register map (dev->iobase) + */ +#define PCIDAS_AI_8254_BASE 0x00 +#define PCIDAS_8255_BASE 0x04 +#define PCIDAS_AO_8254_BASE 0x08 /* * PCI BAR4 Register map (devpriv->pcibar4) @@ -1353,12 +1355,12 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, } dev->irq = pcidev->irq; - dev->pacer = comedi_8254_init(dev->iobase + ADC8254, + dev->pacer = comedi_8254_init(dev->iobase + PCIDAS_AI_8254_BASE, I8254_OSC_BASE_10MHZ, I8254_IO8, 0); if (!dev->pacer) return -ENOMEM; - devpriv->ao_pacer = comedi_8254_init(dev->iobase + DAC8254, + devpriv->ao_pacer = comedi_8254_init(dev->iobase + PCIDAS_AO_8254_BASE, I8254_OSC_BASE_10MHZ, I8254_IO8, 0); if (!devpriv->ao_pacer) @@ -1415,7 +1417,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, /* 8255 */ s = &dev->subdevices[2]; - ret = subdev_8255_init(dev, s, NULL, DIO_8255); + ret = subdev_8255_init(dev, s, NULL, PCIDAS_8255_BASE); if (ret) return ret; From 964db7469f3b7cae5acd49f863fd612271322bf6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:37 -0700 Subject: [PATCH 1936/2431] staging: comedi: cb_pcidas: tidy up PCI BAR2 register defines Rename the defines for the PCI BAR2 register offsets so they have namespace associated with the driver and convert the offsets to hex. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index df4fd3c51174..8a288ed3df87 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -156,8 +156,8 @@ static inline unsigned int DAC_CHAN_EN(unsigned int channel) /* * PCI BAR2 Register map (devpriv->pcibar2) */ -#define ADCDATA 0 /* ADC DATA register */ -#define ADCFIFOCLR 2 /* ADC FIFO CLEAR */ +#define PCIDAS_AI_DATA_REG 0x00 +#define PCIDAS_AI_FIFO_CLR_REG 0x02 /* * PCI BAR3 Register map (dev->iobase) @@ -379,12 +379,12 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, outw(bits, devpriv->pcibar1 + ADCMUX_CONT); /* clear fifo */ - outw(0, devpriv->pcibar2 + ADCFIFOCLR); + outw(0, devpriv->pcibar2 + PCIDAS_AI_FIFO_CLR_REG); /* convert n samples */ for (n = 0; n < insn->n; n++) { /* trigger conversion */ - outw(0, devpriv->pcibar2 + ADCDATA); + outw(0, devpriv->pcibar2 + PCIDAS_AI_DATA_REG); /* wait for conversion to end */ ret = comedi_timeout(dev, s, insn, cb_pcidas_ai_eoc, 0); @@ -392,7 +392,7 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, return ret; /* read data */ - data[n] = inw(devpriv->pcibar2 + ADCDATA); + data[n] = inw(devpriv->pcibar2 + PCIDAS_AI_DATA_REG); } /* return the number of samples read/written */ @@ -866,7 +866,7 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, /* initialize before settings pacer source and count values */ outw(0, devpriv->pcibar1 + TRIG_CONTSTAT); /* clear fifo */ - outw(0, devpriv->pcibar2 + ADCFIFOCLR); + outw(0, devpriv->pcibar2 + PCIDAS_AI_FIFO_CLR_REG); /* set mux limits, gain and pacer source */ bits = BEGIN_SCAN(CR_CHAN(cmd->chanlist[0])) | @@ -1249,8 +1249,8 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) if (status & ADHFI) { /* read data */ num_samples = comedi_nsamples_left(s, half_fifo); - insw(devpriv->pcibar2 + ADCDATA, devpriv->ai_buffer, - num_samples); + insw(devpriv->pcibar2 + PCIDAS_AI_DATA_REG, + devpriv->ai_buffer, num_samples); comedi_buf_write_samples(s, devpriv->ai_buffer, num_samples); if (cmd->stop_src == TRIG_COUNT && @@ -1271,7 +1271,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) if ((ADNE & inw(devpriv->pcibar1 + INT_ADCFIFO)) == 0) break; - val = inw(devpriv->pcibar2 + ADCDATA); + val = inw(devpriv->pcibar2 + PCIDAS_AI_DATA_REG); comedi_buf_write_samples(s, &val, 1); if (cmd->stop_src == TRIG_COUNT && From f5c65f0298c9d2776f91a769ba880b4c6704b939 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:38 -0700 Subject: [PATCH 1937/2431] staging: comedi: cb_pcidas: convert inline DAC bit helpers to macros For aesthetics, convert the inline functions that return the bits used to set the DAC range and enable bits to macros. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 26 +++++++--------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 8a288ed3df87..8ed747da613f 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -130,15 +130,8 @@ #define DACEN 0x02 /* dac enable */ #define DAC_MODE_UPDATE_BOTH 0x80 /* update both dacs */ -static inline unsigned int DAC_RANGE(unsigned int channel, unsigned int range) -{ - return (range & 0x3) << (8 + 2 * (channel & 0x1)); -} - -static inline unsigned int DAC_RANGE_MASK(unsigned int channel) -{ - return 0x3 << (8 + 2 * (channel & 0x1)); -}; +#define DAC_RANGE(c, r) (((r) & 0x3) << (8 + 2 * ((c) & 0x1))) +#define DAC_RANGE_MASK(c) DAC_RANGE((c), 0x3) /* bits for 1602 series only */ #define DAC_EMPTY 0x1 /* fifo empty, read, write clear */ @@ -148,10 +141,7 @@ static inline unsigned int DAC_RANGE_MASK(unsigned int channel) #define DAC_PACER_EXT_FALL 0x10 /* ext. pacing, falling edge */ #define DAC_PACER_EXT_RISE 0x18 /* ext. pacing, rising edge */ -static inline unsigned int DAC_CHAN_EN(unsigned int channel) -{ - return 1 << (5 + (channel & 0x1)); /* enable channel 0 or 1 */ -}; +#define DAC_CHAN_EN(c) BIT(5 + ((c) & 0x1)) /* * PCI BAR2 Register map (devpriv->pcibar2) @@ -1108,13 +1098,13 @@ static int cb_pcidas_ao_cmd(struct comedi_device *dev, /* set channel limits, gain */ spin_lock_irqsave(&dev->spinlock, flags); for (i = 0; i < cmd->chanlist_len; i++) { + unsigned int chan = CR_CHAN(cmd->chanlist[i]); + unsigned int range = CR_RANGE(cmd->chanlist[i]); + /* enable channel */ - devpriv->ao_control_bits |= - DAC_CHAN_EN(CR_CHAN(cmd->chanlist[i])); + devpriv->ao_control_bits |= DAC_CHAN_EN(chan); /* set range */ - devpriv->ao_control_bits |= DAC_RANGE(CR_CHAN(cmd->chanlist[i]), - CR_RANGE(cmd-> - chanlist[i])); + devpriv->ao_control_bits |= DAC_RANGE(chan, range); } /* disable analog out before settings pacer source and count values */ From 56a160b0ca481c6f2b56894b5a43862b0103fd93 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:39 -0700 Subject: [PATCH 1938/2431] staging: comedi: cb_pcidas: tidy up interrupt/ADC FIFO register Rename this register and its bit defines so they have namespace associated with the driver. Use the BIT macro to define the bits. For aesthetics, rename the associated member of the private data. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 113 +++++++++++---------- 1 file changed, 58 insertions(+), 55 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 8ed747da613f..830904659a66 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -76,24 +76,26 @@ /* * PCI BAR1 Register map (devpriv->pcibar1) */ -#define INT_ADCFIFO 0 /* INTERRUPT / ADC FIFO register */ -#define INT_EOS 0x1 /* int end of scan */ -#define INT_FHF 0x2 /* int fifo half full */ -#define INT_FNE 0x3 /* int fifo not empty */ -#define INT_MASK 0x3 /* mask of int select bits */ -#define INTE 0x4 /* int enable */ -#define DAHFIE 0x8 /* dac half full int enable */ -#define EOAIE 0x10 /* end of acq. int enable */ -#define DAHFI 0x20 /* dac half full status / clear */ -#define EOAI 0x40 /* end of acq. int status / clear */ -#define INT 0x80 /* int status / clear */ -#define EOBI 0x200 /* end of burst int status */ -#define ADHFI 0x400 /* half-full int status */ -#define ADNEI 0x800 /* fifo not empty int status (latch) */ -#define ADNE 0x1000 /* fifo not empty status (realtime) */ -#define DAEMIE 0x1000 /* dac empty int enable */ -#define LADFUL 0x2000 /* fifo overflow / clear */ -#define DAEMI 0x4000 /* dac fifo empty int status / clear */ +#define PCIDAS_CTRL_REG 0x00 /* INTERRUPT / ADC FIFO register */ +#define PCIDAS_CTRL_INT(x) (((x) & 0x3) << 0) +#define PCIDAS_CTRL_INT_NONE PCIDAS_CTRL_INT(0) /* no int selected */ +#define PCIDAS_CTRL_INT_EOS PCIDAS_CTRL_INT(1) /* int on end of scan */ +#define PCIDAS_CTRL_INT_FHF PCIDAS_CTRL_INT(2) /* int on fifo half full */ +#define PCIDAS_CTRL_INT_FNE PCIDAS_CTRL_INT(3) /* int on fifo not empty */ +#define PCIDAS_CTRL_INT_MASK PCIDAS_CTRL_INT(3) /* mask of int select bits */ +#define PCIDAS_CTRL_INTE BIT(2) /* int enable */ +#define PCIDAS_CTRL_DAHFIE BIT(3) /* dac half full int enable */ +#define PCIDAS_CTRL_EOAIE BIT(4) /* end of acq. int enable */ +#define PCIDAS_CTRL_DAHFI BIT(5) /* dac half full status / clear */ +#define PCIDAS_CTRL_EOAI BIT(6) /* end of acq. int status / clear */ +#define PCIDAS_CTRL_INT_CLR BIT(7) /* int status / clear */ +#define PCIDAS_CTRL_EOBI BIT(9) /* end of burst int status */ +#define PCIDAS_CTRL_ADHFI BIT(10) /* half-full int status */ +#define PCIDAS_CTRL_ADNEI BIT(11) /* fifo not empty int status (latch) */ +#define PCIDAS_CTRL_ADNE BIT(12) /* fifo not empty status (realtime) */ +#define PCIDAS_CTRL_DAEMIE BIT(12) /* dac empty int enable */ +#define PCIDAS_CTRL_LADFUL BIT(13) /* fifo overflow / clear */ +#define PCIDAS_CTRL_DAEMI BIT(14) /* dac fifo empty int status / clear */ #define ADCMUX_CONT 2 /* ADC CHANNEL MUX AND CONTROL reg */ #define BEGIN_SCAN(x) ((x) & 0xf) @@ -307,7 +309,7 @@ struct cb_pcidas_private { unsigned long pcibar2; unsigned long pcibar4; /* bits to write to registers */ - unsigned int adc_fifo_bits; + unsigned int ctrl; unsigned int s5933_intcsr_bits; unsigned int ao_control_bits; /* fifo buffers */ @@ -884,24 +886,25 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, /* enable interrupts */ spin_lock_irqsave(&dev->spinlock, flags); - devpriv->adc_fifo_bits |= INTE; - devpriv->adc_fifo_bits &= ~INT_MASK; + devpriv->ctrl |= PCIDAS_CTRL_INTE; + devpriv->ctrl &= ~PCIDAS_CTRL_INT_MASK; if (cmd->flags & CMDF_WAKE_EOS) { if (cmd->convert_src == TRIG_NOW && cmd->chanlist_len > 1) { /* interrupt end of burst */ - devpriv->adc_fifo_bits |= INT_EOS; + devpriv->ctrl |= PCIDAS_CTRL_INT_EOS; } else { /* interrupt fifo not empty */ - devpriv->adc_fifo_bits |= INT_FNE; + devpriv->ctrl |= PCIDAS_CTRL_INT_FNE; } } else { /* interrupt fifo half full */ - devpriv->adc_fifo_bits |= INT_FHF; + devpriv->ctrl |= PCIDAS_CTRL_INT_FHF; } /* enable (and clear) interrupts */ - outw(devpriv->adc_fifo_bits | EOAI | INT | LADFUL, - devpriv->pcibar1 + INT_ADCFIFO); + outw(devpriv->ctrl | + PCIDAS_CTRL_EOAI | PCIDAS_CTRL_INT_CLR | PCIDAS_CTRL_LADFUL, + devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); /* set start trigger and burst mode */ @@ -1025,8 +1028,8 @@ static int cb_pcidas_cancel(struct comedi_device *dev, spin_lock_irqsave(&dev->spinlock, flags); /* disable interrupts */ - devpriv->adc_fifo_bits &= ~INTE & ~EOAIE; - outw(devpriv->adc_fifo_bits, devpriv->pcibar1 + INT_ADCFIFO); + devpriv->ctrl &= ~(PCIDAS_CTRL_INTE | PCIDAS_CTRL_EOAIE); + outw(devpriv->ctrl, devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); /* disable start trigger source and burst mode */ @@ -1069,11 +1072,11 @@ static int cb_pcidas_ao_inttrig(struct comedi_device *dev, /* enable dac half-full and empty interrupts */ spin_lock_irqsave(&dev->spinlock, flags); - devpriv->adc_fifo_bits |= DAEMIE | DAHFIE; + devpriv->ctrl |= PCIDAS_CTRL_DAEMIE | PCIDAS_CTRL_DAHFIE; /* enable and clear interrupts */ - outw(devpriv->adc_fifo_bits | DAEMI | DAHFI, - devpriv->pcibar1 + INT_ADCFIFO); + outw(devpriv->ctrl | PCIDAS_CTRL_DAEMI | PCIDAS_CTRL_DAHFI, + devpriv->pcibar1 + PCIDAS_CTRL_REG); /* start dac */ devpriv->ao_control_bits |= DAC_START | DACEN | DAC_EMPTY; @@ -1150,8 +1153,8 @@ static int cb_pcidas_ao_cancel(struct comedi_device *dev, spin_lock_irqsave(&dev->spinlock, flags); /* disable interrupts */ - devpriv->adc_fifo_bits &= ~DAHFIE & ~DAEMIE; - outw(devpriv->adc_fifo_bits, devpriv->pcibar1 + INT_ADCFIFO); + devpriv->ctrl &= ~(PCIDAS_CTRL_DAHFIE | PCIDAS_CTRL_DAEMIE); + outw(devpriv->ctrl, devpriv->pcibar1 + PCIDAS_CTRL_REG); /* disable output */ devpriv->ao_control_bits &= ~DACEN & ~DAC_PACER_MASK; @@ -1170,11 +1173,11 @@ static void handle_ao_interrupt(struct comedi_device *dev, unsigned int status) struct comedi_cmd *cmd = &async->cmd; unsigned long flags; - if (status & DAEMI) { + if (status & PCIDAS_CTRL_DAEMI) { /* clear dac empty interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->adc_fifo_bits | DAEMI, - devpriv->pcibar1 + INT_ADCFIFO); + outw(devpriv->ctrl | PCIDAS_CTRL_DAEMI, + devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); if (inw(devpriv->pcibar4 + DAC_CSR) & DAC_EMPTY) { if (cmd->stop_src == TRIG_COUNT && @@ -1185,13 +1188,13 @@ static void handle_ao_interrupt(struct comedi_device *dev, unsigned int status) async->events |= COMEDI_CB_ERROR; } } - } else if (status & DAHFI) { + } else if (status & PCIDAS_CTRL_DAHFI) { cb_pcidas_ao_load_fifo(dev, s, board->fifo_size / 2); /* clear half-full interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->adc_fifo_bits | DAHFI, - devpriv->pcibar1 + INT_ADCFIFO); + outw(devpriv->ctrl | PCIDAS_CTRL_DAHFI, + devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); } @@ -1229,14 +1232,14 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) outl(devpriv->s5933_intcsr_bits | INTCSR_INBOX_INTR_STATUS, devpriv->s5933_config + AMCC_OP_REG_INTCSR); - status = inw(devpriv->pcibar1 + INT_ADCFIFO); + status = inw(devpriv->pcibar1 + PCIDAS_CTRL_REG); /* check for analog output interrupt */ - if (status & (DAHFI | DAEMI)) + if (status & (PCIDAS_CTRL_DAHFI | PCIDAS_CTRL_DAEMI)) handle_ao_interrupt(dev, status); /* check for analog input interrupts */ /* if fifo half-full */ - if (status & ADHFI) { + if (status & PCIDAS_CTRL_ADHFI) { /* read data */ num_samples = comedi_nsamples_left(s, half_fifo); insw(devpriv->pcibar2 + PCIDAS_AI_DATA_REG, @@ -1249,17 +1252,17 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) /* clear half-full interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->adc_fifo_bits | INT, - devpriv->pcibar1 + INT_ADCFIFO); + outw(devpriv->ctrl | PCIDAS_CTRL_INT_CLR, + devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); /* else if fifo not empty */ - } else if (status & (ADNEI | EOBI)) { + } else if (status & (PCIDAS_CTRL_ADNEI | PCIDAS_CTRL_EOBI)) { for (i = 0; i < timeout; i++) { unsigned short val; /* break if fifo is empty */ - if ((ADNE & inw(devpriv->pcibar1 + - INT_ADCFIFO)) == 0) + if ((inw(devpriv->pcibar1 + PCIDAS_CTRL_REG) & + PCIDAS_CTRL_ADNE) == 0) break; val = inw(devpriv->pcibar2 + PCIDAS_AI_DATA_REG); comedi_buf_write_samples(s, &val, 1); @@ -1272,25 +1275,25 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) } /* clear not-empty interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->adc_fifo_bits | INT, - devpriv->pcibar1 + INT_ADCFIFO); + outw(devpriv->ctrl | PCIDAS_CTRL_INT_CLR, + devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); - } else if (status & EOAI) { + } else if (status & PCIDAS_CTRL_EOAI) { dev_err(dev->class_dev, "bug! encountered end of acquisition interrupt?\n"); /* clear EOA interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->adc_fifo_bits | EOAI, - devpriv->pcibar1 + INT_ADCFIFO); + outw(devpriv->ctrl | PCIDAS_CTRL_EOAI, + devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); } /* check for fifo overflow */ - if (status & LADFUL) { + if (status & PCIDAS_CTRL_LADFUL) { dev_err(dev->class_dev, "fifo overflow\n"); /* clear overflow interrupt latch */ spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->adc_fifo_bits | LADFUL, - devpriv->pcibar1 + INT_ADCFIFO); + outw(devpriv->ctrl | PCIDAS_CTRL_LADFUL, + devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); async->events |= COMEDI_CB_ERROR; } From 1f9cb9424e406551e32cd203c2fab37c00943935 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:40 -0700 Subject: [PATCH 1939/2431] staging: comedi: cb_pcidas: tidy up ADC mux/control register Rename this register and its bit defines so they have namespace associated with the driver. Use the BIT macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 56 +++++++++++----------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 830904659a66..72395ea2876c 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -97,17 +97,20 @@ #define PCIDAS_CTRL_LADFUL BIT(13) /* fifo overflow / clear */ #define PCIDAS_CTRL_DAEMI BIT(14) /* dac fifo empty int status / clear */ -#define ADCMUX_CONT 2 /* ADC CHANNEL MUX AND CONTROL reg */ -#define BEGIN_SCAN(x) ((x) & 0xf) -#define END_SCAN(x) (((x) & 0xf) << 4) -#define GAIN_BITS(x) (((x) & 0x3) << 8) -#define UNIP 0x800 /* Analog front-end unipolar mode */ -#define SE 0x400 /* Inputs in single-ended mode */ -#define PACER_MASK 0x3000 /* pacer source bits */ -#define PACER_INT 0x1000 /* int. pacer */ -#define PACER_EXT_FALL 0x2000 /* ext. falling edge */ -#define PACER_EXT_RISE 0x3000 /* ext. rising edge */ -#define EOC 0x4000 /* adc not busy */ +#define PCIDAS_AI_REG 0x02 /* ADC CHANNEL MUX AND CONTROL reg */ +#define PCIDAS_AI_FIRST(x) ((x) & 0xf) +#define PCIDAS_AI_LAST(x) (((x) & 0xf) << 4) +#define PCIDAS_AI_CHAN(x) (PCIDAS_AI_FIRST(x) | PCIDAS_AI_LAST(x)) +#define PCIDAS_AI_GAIN(x) (((x) & 0x3) << 8) +#define PCIDAS_AI_SE BIT(10) /* Inputs in single-ended mode */ +#define PCIDAS_AI_UNIP BIT(11) /* Analog front-end unipolar mode */ +#define PCIDAS_AI_PACER(x) (((x) & 0x3) << 12) +#define PCIDAS_AI_PACER_SW PCIDAS_AI_PACER(0) /* software pacer */ +#define PCIDAS_AI_PACER_INT PCIDAS_AI_PACER(1) /* int. pacer */ +#define PCIDAS_AI_PACER_EXTN PCIDAS_AI_PACER(2) /* ext. falling edge */ +#define PCIDAS_AI_PACER_EXTP PCIDAS_AI_PACER(3) /* ext. rising edge */ +#define PCIDAS_AI_PACER_MASK PCIDAS_AI_PACER(3) /* pacer source bits */ +#define PCIDAS_AI_EOC BIT(14) /* adc not busy */ #define TRIG_CONTSTAT 4 /* TRIGGER CONTROL/STATUS register */ #define SW_TRIGGER 0x1 /* software start trigger */ @@ -333,8 +336,8 @@ static int cb_pcidas_ai_eoc(struct comedi_device *dev, struct cb_pcidas_private *devpriv = dev->private; unsigned int status; - status = inw(devpriv->pcibar1 + ADCMUX_CONT); - if (status & EOC) + status = inw(devpriv->pcibar1 + PCIDAS_AI_REG); + if (status & PCIDAS_AI_EOC) return 0; return -EBUSY; } @@ -361,14 +364,14 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, } /* set mux limits and gain */ - bits = BEGIN_SCAN(chan) | END_SCAN(chan) | GAIN_BITS(range); + bits = PCIDAS_AI_CHAN(chan) | PCIDAS_AI_GAIN(range); /* set unipolar/bipolar */ if (comedi_range_is_unipolar(s, range)) - bits |= UNIP; + bits |= PCIDAS_AI_UNIP; /* set single-ended/differential */ if (aref != AREF_DIFF) - bits |= SE; - outw(bits, devpriv->pcibar1 + ADCMUX_CONT); + bits |= PCIDAS_AI_SE; + outw(bits, devpriv->pcibar1 + PCIDAS_AI_REG); /* clear fifo */ outw(0, devpriv->pcibar2 + PCIDAS_AI_FIFO_CLR_REG); @@ -861,21 +864,21 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, outw(0, devpriv->pcibar2 + PCIDAS_AI_FIFO_CLR_REG); /* set mux limits, gain and pacer source */ - bits = BEGIN_SCAN(CR_CHAN(cmd->chanlist[0])) | - END_SCAN(CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1])) | - GAIN_BITS(range0); + bits = PCIDAS_AI_FIRST(CR_CHAN(cmd->chanlist[0])) | + PCIDAS_AI_LAST(CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1])) | + PCIDAS_AI_GAIN(range0); /* set unipolar/bipolar */ if (comedi_range_is_unipolar(s, range0)) - bits |= UNIP; + bits |= PCIDAS_AI_UNIP; /* set singleended/differential */ if (CR_AREF(cmd->chanlist[0]) != AREF_DIFF) - bits |= SE; + bits |= PCIDAS_AI_SE; /* set pacer source */ if (cmd->convert_src == TRIG_EXT || cmd->scan_begin_src == TRIG_EXT) - bits |= PACER_EXT_RISE; + bits |= PCIDAS_AI_PACER_EXTP; else - bits |= PACER_INT; - outw(bits, devpriv->pcibar1 + ADCMUX_CONT); + bits |= PCIDAS_AI_PACER_INT; + outw(bits, devpriv->pcibar1 + PCIDAS_AI_REG); /* load counters */ if (cmd->scan_begin_src == TRIG_TIMER || @@ -1034,8 +1037,7 @@ static int cb_pcidas_cancel(struct comedi_device *dev, /* disable start trigger source and burst mode */ outw(0, devpriv->pcibar1 + TRIG_CONTSTAT); - /* software pacer source */ - outw(0, devpriv->pcibar1 + ADCMUX_CONT); + outw(PCIDAS_AI_PACER_SW, devpriv->pcibar1 + PCIDAS_AI_REG); return 0; } From 1a55808d6245a294d1785778de7d80cab3d14136 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:41 -0700 Subject: [PATCH 1940/2431] staging: comedi: cb_pcidas: tidy up trigger control/status register Rename this register and its bit defines so they have namespace associated with the driver. Use the BIT macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 38 ++++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 72395ea2876c..423a2e1fc307 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -112,16 +112,18 @@ #define PCIDAS_AI_PACER_MASK PCIDAS_AI_PACER(3) /* pacer source bits */ #define PCIDAS_AI_EOC BIT(14) /* adc not busy */ -#define TRIG_CONTSTAT 4 /* TRIGGER CONTROL/STATUS register */ -#define SW_TRIGGER 0x1 /* software start trigger */ -#define EXT_TRIGGER 0x2 /* ext. start trigger */ -#define ANALOG_TRIGGER 0x3 /* ext. analog trigger */ -#define TRIGGER_MASK 0x3 /* start trigger mask */ -#define TGPOL 0x04 /* invert trigger (1602 only) */ -#define TGSEL 0x08 /* edge/level trigerred (1602 only) */ -#define TGEN 0x10 /* enable external start trigger */ -#define BURSTE 0x20 /* burst mode enable */ -#define XTRCL 0x80 /* clear external trigger */ +#define PCIDAS_TRIG_REG 0x04 /* TRIGGER CONTROL/STATUS register */ +#define PCIDAS_TRIG_SEL(x) (((x) & 0x3) << 0) +#define PCIDAS_TRIG_SEL_NONE PCIDAS_TRIG_SEL(0) /* no start trigger */ +#define PCIDAS_TRIG_SEL_SW PCIDAS_TRIG_SEL(1) /* software start trigger */ +#define PCIDAS_TRIG_SEL_EXT PCIDAS_TRIG_SEL(2) /* ext. start trigger */ +#define PCIDAS_TRIG_SEL_ANALOG PCIDAS_TRIG_SEL(3) /* ext. analog trigger */ +#define PCIDAS_TRIG_SEL_MASK PCIDAS_TRIG_SEL(3) /* start trigger mask */ +#define PCIDAS_TRIG_POL BIT(2) /* invert trigger (1602 only) */ +#define PCIDAS_TRIG_MODE BIT(3) /* edge/level trigerred (1602 only) */ +#define PCIDAS_TRIG_EN BIT(4) /* enable external start trigger */ +#define PCIDAS_TRIG_BURSTE BIT(5) /* burst mode enable */ +#define PCIDAS_TRIG_CLR BIT(7) /* clear external trigger */ #define CALIBRATION_REG 6 /* CALIBRATION register */ #define SELECT_8800_BIT 0x100 /* select 8800 caldac */ @@ -859,7 +861,7 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, /* make sure CAL_EN_BIT is disabled */ outw(0, devpriv->pcibar1 + CALIBRATION_REG); /* initialize before settings pacer source and count values */ - outw(0, devpriv->pcibar1 + TRIG_CONTSTAT); + outw(PCIDAS_TRIG_SEL_NONE, devpriv->pcibar1 + PCIDAS_TRIG_REG); /* clear fifo */ outw(0, devpriv->pcibar2 + PCIDAS_AI_FIFO_CLR_REG); @@ -913,19 +915,19 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, /* set start trigger and burst mode */ bits = 0; if (cmd->start_src == TRIG_NOW) { - bits |= SW_TRIGGER; + bits |= PCIDAS_TRIG_SEL_SW; } else { /* TRIG_EXT */ - bits |= EXT_TRIGGER | TGEN | XTRCL; + bits |= PCIDAS_TRIG_SEL_EXT | PCIDAS_TRIG_EN | PCIDAS_TRIG_CLR; if (board->is_1602) { if (cmd->start_arg & CR_INVERT) - bits |= TGPOL; + bits |= PCIDAS_TRIG_POL; if (cmd->start_arg & CR_EDGE) - bits |= TGSEL; + bits |= PCIDAS_TRIG_MODE; } } if (cmd->convert_src == TRIG_NOW && cmd->chanlist_len > 1) - bits |= BURSTE; - outw(bits, devpriv->pcibar1 + TRIG_CONTSTAT); + bits |= PCIDAS_TRIG_BURSTE; + outw(bits, devpriv->pcibar1 + PCIDAS_TRIG_REG); return 0; } @@ -1036,7 +1038,7 @@ static int cb_pcidas_cancel(struct comedi_device *dev, spin_unlock_irqrestore(&dev->spinlock, flags); /* disable start trigger source and burst mode */ - outw(0, devpriv->pcibar1 + TRIG_CONTSTAT); + outw(PCIDAS_TRIG_SEL_NONE, devpriv->pcibar1 + PCIDAS_TRIG_REG); outw(PCIDAS_AI_PACER_SW, devpriv->pcibar1 + PCIDAS_AI_REG); return 0; From 21b6476af98672f8c784a40817793fe17504f978 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:42 -0700 Subject: [PATCH 1941/2431] staging: comedi: cb_pcidas: tidy up calibration register Rename this register and its bit defines so they have namespace associated with the driver. Use the BIT macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 56 +++++++++++----------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 423a2e1fc307..751cb6fd3313 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -125,13 +125,13 @@ #define PCIDAS_TRIG_BURSTE BIT(5) /* burst mode enable */ #define PCIDAS_TRIG_CLR BIT(7) /* clear external trigger */ -#define CALIBRATION_REG 6 /* CALIBRATION register */ -#define SELECT_8800_BIT 0x100 /* select 8800 caldac */ -#define SELECT_TRIMPOT_BIT 0x200 /* select ad7376 trim pot */ -#define SELECT_DAC08_BIT 0x400 /* select dac08 caldac */ -#define CAL_SRC_BITS(x) (((x) & 0x7) << 11) -#define CAL_EN_BIT 0x4000 /* calibration source enable */ -#define SERIAL_DATA_IN_BIT 0x8000 /* serial data bit going to caldac */ +#define PCIDAS_CALIB_REG 0x06 /* CALIBRATION register */ +#define PCIDAS_CALIB_8800_SEL BIT(8) /* select 8800 caldac */ +#define PCIDAS_CALIB_TRIM_SEL BIT(9) /* select ad7376 trim pot */ +#define PCIDAS_CALIB_DAC08_SEL BIT(10) /* select dac08 caldac */ +#define PCIDAS_CALIB_SRC(x) (((x) & 0x7) << 11) +#define PCIDAS_CALIB_EN BIT(14) /* calibration source enable */ +#define PCIDAS_CALIB_DATA BIT(15) /* serial data bit going to caldac */ #define DAC_CSR 0x8 /* dac control and status register */ #define DACEN 0x02 /* dac enable */ @@ -327,7 +327,7 @@ static inline unsigned int cal_enable_bits(struct comedi_device *dev) { struct cb_pcidas_private *devpriv = dev->private; - return CAL_EN_BIT | CAL_SRC_BITS(devpriv->calibration_source); + return PCIDAS_CALIB_EN | PCIDAS_CALIB_SRC(devpriv->calibration_source); } static int cb_pcidas_ai_eoc(struct comedi_device *dev, @@ -359,10 +359,10 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, /* enable calibration input if appropriate */ if (insn->chanspec & CR_ALT_SOURCE) { outw(cal_enable_bits(dev), - devpriv->pcibar1 + CALIBRATION_REG); + devpriv->pcibar1 + PCIDAS_CALIB_REG); chan = 0; } else { - outw(0, devpriv->pcibar1 + CALIBRATION_REG); + outw(0, devpriv->pcibar1 + PCIDAS_CALIB_REG); } /* set mux limits and gain */ @@ -545,11 +545,11 @@ static void write_calibration_bitstream(struct comedi_device *dev, for (bit = 1 << (bitstream_length - 1); bit; bit >>= 1) { if (bitstream & bit) - register_bits |= SERIAL_DATA_IN_BIT; + register_bits |= PCIDAS_CALIB_DATA; else - register_bits &= ~SERIAL_DATA_IN_BIT; + register_bits &= ~PCIDAS_CALIB_DATA; udelay(write_delay); - outw(register_bits, devpriv->pcibar1 + CALIBRATION_REG); + outw(register_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); } } @@ -565,10 +565,10 @@ static void caldac_8800_write(struct comedi_device *dev, bitstream_length); udelay(caldac_8800_udelay); - outw(cal_enable_bits(dev) | SELECT_8800_BIT, - devpriv->pcibar1 + CALIBRATION_REG); + outw(cal_enable_bits(dev) | PCIDAS_CALIB_8800_SEL, + devpriv->pcibar1 + PCIDAS_CALIB_REG); udelay(caldac_8800_udelay); - outw(cal_enable_bits(dev), devpriv->pcibar1 + CALIBRATION_REG); + outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); } static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, @@ -599,12 +599,12 @@ static void dac08_write(struct comedi_device *dev, unsigned int value) value |= cal_enable_bits(dev); /* latch the new value into the caldac */ - outw(value, devpriv->pcibar1 + CALIBRATION_REG); + outw(value, devpriv->pcibar1 + PCIDAS_CALIB_REG); udelay(1); - outw(value | SELECT_DAC08_BIT, - devpriv->pcibar1 + CALIBRATION_REG); + outw(value | PCIDAS_CALIB_DAC08_SEL, + devpriv->pcibar1 + PCIDAS_CALIB_REG); udelay(1); - outw(value, devpriv->pcibar1 + CALIBRATION_REG); + outw(value, devpriv->pcibar1 + PCIDAS_CALIB_REG); udelay(1); } @@ -635,15 +635,15 @@ static int trimpot_7376_write(struct comedi_device *dev, uint8_t value) unsigned int register_bits; static const int ad7376_udelay = 1; - register_bits = cal_enable_bits(dev) | SELECT_TRIMPOT_BIT; + register_bits = cal_enable_bits(dev) | PCIDAS_CALIB_TRIM_SEL; udelay(ad7376_udelay); - outw(register_bits, devpriv->pcibar1 + CALIBRATION_REG); + outw(register_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); write_calibration_bitstream(dev, register_bits, bitstream, bitstream_length); udelay(ad7376_udelay); - outw(cal_enable_bits(dev), devpriv->pcibar1 + CALIBRATION_REG); + outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); return 0; } @@ -660,15 +660,15 @@ static int trimpot_8402_write(struct comedi_device *dev, unsigned int channel, unsigned int register_bits; static const int ad8402_udelay = 1; - register_bits = cal_enable_bits(dev) | SELECT_TRIMPOT_BIT; + register_bits = cal_enable_bits(dev) | PCIDAS_CALIB_TRIM_SEL; udelay(ad8402_udelay); - outw(register_bits, devpriv->pcibar1 + CALIBRATION_REG); + outw(register_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); write_calibration_bitstream(dev, register_bits, bitstream, bitstream_length); udelay(ad8402_udelay); - outw(cal_enable_bits(dev), devpriv->pcibar1 + CALIBRATION_REG); + outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); return 0; } @@ -858,8 +858,8 @@ static int cb_pcidas_ai_cmd(struct comedi_device *dev, unsigned int bits; unsigned long flags; - /* make sure CAL_EN_BIT is disabled */ - outw(0, devpriv->pcibar1 + CALIBRATION_REG); + /* make sure PCIDAS_CALIB_EN is disabled */ + outw(0, devpriv->pcibar1 + PCIDAS_CALIB_REG); /* initialize before settings pacer source and count values */ outw(PCIDAS_TRIG_SEL_NONE, devpriv->pcibar1 + PCIDAS_TRIG_REG); /* clear fifo */ From be3a7688753b18986c10de5fb99a40b9c639cc59 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:43 -0700 Subject: [PATCH 1942/2431] staging: comedi: cb_pcidas: tidy up DAC control/status register Rename this register and its bit defines so they have namespace associated with the driver. Use the BIT macro to define the bits. For aesthetics, rename the associated member of the private data. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 71 +++++++++++----------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 751cb6fd3313..2eae7054067f 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -133,22 +133,21 @@ #define PCIDAS_CALIB_EN BIT(14) /* calibration source enable */ #define PCIDAS_CALIB_DATA BIT(15) /* serial data bit going to caldac */ -#define DAC_CSR 0x8 /* dac control and status register */ -#define DACEN 0x02 /* dac enable */ -#define DAC_MODE_UPDATE_BOTH 0x80 /* update both dacs */ - -#define DAC_RANGE(c, r) (((r) & 0x3) << (8 + 2 * ((c) & 0x1))) -#define DAC_RANGE_MASK(c) DAC_RANGE((c), 0x3) - -/* bits for 1602 series only */ -#define DAC_EMPTY 0x1 /* fifo empty, read, write clear */ -#define DAC_START 0x4 /* start/arm fifo operations */ -#define DAC_PACER_MASK 0x18 /* bits that set pacer source */ -#define DAC_PACER_INT 0x8 /* int. pacing */ -#define DAC_PACER_EXT_FALL 0x10 /* ext. pacing, falling edge */ -#define DAC_PACER_EXT_RISE 0x18 /* ext. pacing, rising edge */ - -#define DAC_CHAN_EN(c) BIT(5 + ((c) & 0x1)) +#define PCIDAS_AO_REG 0x08 /* dac control and status register */ +#define PCIDAS_AO_EMPTY BIT(0) /* fifo empty, write clear (1602) */ +#define PCIDAS_AO_DACEN BIT(1) /* dac enable */ +#define PCIDAS_AO_START BIT(2) /* start/arm fifo (1602) */ +#define PCIDAS_AO_PACER(x) (((x) & 0x3) << 3) /* (1602) */ +#define PCIDAS_AO_PACER_SW PCIDAS_AO_PACER(0) /* software pacer */ +#define PCIDAS_AO_PACER_INT PCIDAS_AO_PACER(1) /* int. pacer */ +#define PCIDAS_AO_PACER_EXTN PCIDAS_AO_PACER(2) /* ext. falling edge */ +#define PCIDAS_AO_PACER_EXTP PCIDAS_AO_PACER(3) /* ext. rising edge */ +#define PCIDAS_AO_PACER_MASK PCIDAS_AO_PACER(3) /* pacer source bits */ +#define PCIDAS_AO_CHAN_EN(c) BIT(5 + ((c) & 0x1)) +#define PCIDAS_AO_CHAN_MASK (PCIDAS_AO_CHAN_EN(0) | PCIDAS_AO_CHAN_EN(1)) +#define PCIDAS_AO_UPDATE_BOTH BIT(7) /* update both dacs */ +#define PCIDAS_AO_RANGE(c, r) (((r) & 0x3) << (8 + 2 * ((c) & 0x1))) +#define PCIDAS_AO_RANGE_MASK(c) PCIDAS_AO_RANGE((c), 0x3) /* * PCI BAR2 Register map (devpriv->pcibar2) @@ -316,7 +315,7 @@ struct cb_pcidas_private { /* bits to write to registers */ unsigned int ctrl; unsigned int s5933_intcsr_bits; - unsigned int ao_control_bits; + unsigned int ao_ctrl; /* fifo buffers */ unsigned short ai_buffer[AI_BUFFER_SIZE]; unsigned short ao_buffer[AO_BUFFER_SIZE]; @@ -432,10 +431,10 @@ static int cb_pcidas_ao_nofifo_winsn(struct comedi_device *dev, /* set channel and range */ spin_lock_irqsave(&dev->spinlock, flags); - devpriv->ao_control_bits &= (~DAC_MODE_UPDATE_BOTH & - ~DAC_RANGE_MASK(chan)); - devpriv->ao_control_bits |= (DACEN | DAC_RANGE(chan, range)); - outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); + devpriv->ao_ctrl &= ~(PCIDAS_AO_UPDATE_BOTH | + PCIDAS_AO_RANGE_MASK(chan)); + devpriv->ao_ctrl |= PCIDAS_AO_DACEN | PCIDAS_AO_RANGE(chan, range); + outw(devpriv->ao_ctrl, devpriv->pcibar1 + PCIDAS_AO_REG); spin_unlock_irqrestore(&dev->spinlock, flags); /* remember value for readback */ @@ -462,11 +461,11 @@ static int cb_pcidas_ao_fifo_winsn(struct comedi_device *dev, /* set channel and range */ spin_lock_irqsave(&dev->spinlock, flags); - devpriv->ao_control_bits &= (~DAC_CHAN_EN(0) & ~DAC_CHAN_EN(1) & - ~DAC_RANGE_MASK(chan) & ~DAC_PACER_MASK); - devpriv->ao_control_bits |= (DACEN | DAC_RANGE(chan, range) | - DAC_CHAN_EN(chan) | DAC_START); - outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); + devpriv->ao_ctrl &= ~(PCIDAS_AO_CHAN_MASK | PCIDAS_AO_RANGE_MASK(chan) | + PCIDAS_AO_PACER_MASK); + devpriv->ao_ctrl |= PCIDAS_AO_DACEN | PCIDAS_AO_RANGE(chan, range) | + PCIDAS_AO_CHAN_EN(chan) | PCIDAS_AO_START; + outw(devpriv->ao_ctrl, devpriv->pcibar1 + PCIDAS_AO_REG); spin_unlock_irqrestore(&dev->spinlock, flags); /* remember value for readback */ @@ -1083,8 +1082,8 @@ static int cb_pcidas_ao_inttrig(struct comedi_device *dev, devpriv->pcibar1 + PCIDAS_CTRL_REG); /* start dac */ - devpriv->ao_control_bits |= DAC_START | DACEN | DAC_EMPTY; - outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); + devpriv->ao_ctrl |= PCIDAS_AO_START | PCIDAS_AO_DACEN | PCIDAS_AO_EMPTY; + outw(devpriv->ao_ctrl, devpriv->pcibar1 + PCIDAS_AO_REG); spin_unlock_irqrestore(&dev->spinlock, flags); @@ -1109,13 +1108,13 @@ static int cb_pcidas_ao_cmd(struct comedi_device *dev, unsigned int range = CR_RANGE(cmd->chanlist[i]); /* enable channel */ - devpriv->ao_control_bits |= DAC_CHAN_EN(chan); + devpriv->ao_ctrl |= PCIDAS_AO_CHAN_EN(chan); /* set range */ - devpriv->ao_control_bits |= DAC_RANGE(chan, range); + devpriv->ao_ctrl |= PCIDAS_AO_RANGE(chan, range); } /* disable analog out before settings pacer source and count values */ - outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); + outw(devpriv->ao_ctrl, devpriv->pcibar1 + PCIDAS_AO_REG); spin_unlock_irqrestore(&dev->spinlock, flags); /* clear fifo */ @@ -1131,10 +1130,10 @@ static int cb_pcidas_ao_cmd(struct comedi_device *dev, spin_lock_irqsave(&dev->spinlock, flags); switch (cmd->scan_begin_src) { case TRIG_TIMER: - devpriv->ao_control_bits |= DAC_PACER_INT; + devpriv->ao_ctrl |= PCIDAS_AO_PACER_INT; break; case TRIG_EXT: - devpriv->ao_control_bits |= DAC_PACER_EXT_RISE; + devpriv->ao_ctrl |= PCIDAS_AO_PACER_EXTP; break; default: spin_unlock_irqrestore(&dev->spinlock, flags); @@ -1161,8 +1160,8 @@ static int cb_pcidas_ao_cancel(struct comedi_device *dev, outw(devpriv->ctrl, devpriv->pcibar1 + PCIDAS_CTRL_REG); /* disable output */ - devpriv->ao_control_bits &= ~DACEN & ~DAC_PACER_MASK; - outw(devpriv->ao_control_bits, devpriv->pcibar1 + DAC_CSR); + devpriv->ao_ctrl &= ~(PCIDAS_AO_DACEN | PCIDAS_AO_PACER_MASK); + outw(devpriv->ao_ctrl, devpriv->pcibar1 + PCIDAS_AO_REG); spin_unlock_irqrestore(&dev->spinlock, flags); return 0; @@ -1183,7 +1182,7 @@ static void handle_ao_interrupt(struct comedi_device *dev, unsigned int status) outw(devpriv->ctrl | PCIDAS_CTRL_DAEMI, devpriv->pcibar1 + PCIDAS_CTRL_REG); spin_unlock_irqrestore(&dev->spinlock, flags); - if (inw(devpriv->pcibar4 + DAC_CSR) & DAC_EMPTY) { + if (inw(devpriv->pcibar4 + PCIDAS_AO_REG) & PCIDAS_AO_EMPTY) { if (cmd->stop_src == TRIG_COUNT && async->scans_done >= cmd->stop_arg) { async->events |= COMEDI_CB_EOA; From 53cb50aae6fea6af83bde3c773a34abf3469377c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:44 -0700 Subject: [PATCH 1943/2431] staging: comedi: cb_pcidas: use preferred kernel types As suggested by checkpatch.pl: CHECK: Prefer kernel type 'u8' over 'uint8_t' Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 2eae7054067f..2df80f6631f1 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -493,7 +493,7 @@ static int wait_for_nvram_ready(unsigned long s5933_base_addr) } static int nvram_read(struct comedi_device *dev, unsigned int address, - uint8_t *data) + u8 *data) { struct cb_pcidas_private *devpriv = dev->private; unsigned long iobase = devpriv->s5933_config; @@ -521,7 +521,7 @@ static int eeprom_read_insn(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) { - uint8_t nvram_data; + u8 nvram_data; int retval; retval = nvram_read(dev, CR_CHAN(insn->chanspec), &nvram_data); @@ -553,7 +553,7 @@ static void write_calibration_bitstream(struct comedi_device *dev, } static void caldac_8800_write(struct comedi_device *dev, - unsigned int chan, uint8_t val) + unsigned int chan, u8 val) { struct cb_pcidas_private *devpriv = dev->private; static const int bitstream_length = 11; @@ -626,7 +626,7 @@ static int cb_pcidas_dac08_insn_write(struct comedi_device *dev, return insn->n; } -static int trimpot_7376_write(struct comedi_device *dev, uint8_t value) +static int trimpot_7376_write(struct comedi_device *dev, u8 value) { struct cb_pcidas_private *devpriv = dev->private; static const int bitstream_length = 7; @@ -651,7 +651,7 @@ static int trimpot_7376_write(struct comedi_device *dev, uint8_t value) * ch 0 : adc gain * ch 1 : adc postgain offset */ static int trimpot_8402_write(struct comedi_device *dev, unsigned int channel, - uint8_t value) + u8 value) { struct cb_pcidas_private *devpriv = dev->private; static const int bitstream_length = 10; From 19ce5d61528a464d97f7cfa17f01bcdc86ded8ae Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:45 -0700 Subject: [PATCH 1944/2431] staging: comedi: cb_pcidas: tidy up calibration trimpot subdevice For aesthetics, add some whitespace to the subdevice init. It's not possible to actually read from the trimpot. For convienence the subdevice readback provided by the core is used to return the last value written to the subdevice. Remove the SDF_READABLE flag from the subdev_flags. Move the comment about the channels from trimpot_8402_write() to the subdevice init and fix the checkpatch.pl issue about: WARNING: Block comments use a trailing */ on a separate line Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 26 ++++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 2df80f6631f1..99a95c2ccaa9 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -647,9 +647,6 @@ static int trimpot_7376_write(struct comedi_device *dev, u8 value) return 0; } -/* For 1602/16 only - * ch 0 : adc gain - * ch 1 : adc postgain offset */ static int trimpot_8402_write(struct comedi_device *dev, unsigned int channel, u8 value) { @@ -1442,18 +1439,23 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->readback[i] = s->maxdata / 2; } - /* trim potentiometer */ + /* Calibration subdevice - trim potentiometer */ s = &dev->subdevices[5]; - s->type = COMEDI_SUBD_CALIB; - s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_INTERNAL; + s->type = COMEDI_SUBD_CALIB; + s->subdev_flags = SDF_WRITABLE | SDF_INTERNAL; if (board->trimpot == AD7376) { - s->n_chan = 1; - s->maxdata = 0x7f; - } else { - s->n_chan = 2; - s->maxdata = 0xff; + s->n_chan = 1; + s->maxdata = 0x7f; + } else { /* AD8402 */ + /* + * For pci-das1602/16: + * chan 0 : adc gain + * chan 1 : adc postgain offset + */ + s->n_chan = 2; + s->maxdata = 0xff; } - s->insn_write = cb_pcidas_trimpot_insn_write; + s->insn_write = cb_pcidas_trimpot_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) From 8c11f4772c54d9bea4448ae9de1d4b99695ee72a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:46 -0700 Subject: [PATCH 1945/2431] staging: comedi: cb_pcidas: tidy up trimpot_7376_write() Rename this function so it has namespace associated with the driver. Change the return type to void, it always returns '0' and the return value is never checked. For aesthetics, remove the 'static const' local variables. They don't add any significant value. Remove the 'bitstream' local variable. The 'value' passed to this function will always be in the correct range due to s->maxdata so the masking is not necessary. Change the type of the 'value' param to match the callers type and write_calibration_bitstream()'s type. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 26 ++++++++++------------ 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 99a95c2ccaa9..84bc3defcc2d 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -626,25 +626,23 @@ static int cb_pcidas_dac08_insn_write(struct comedi_device *dev, return insn->n; } -static int trimpot_7376_write(struct comedi_device *dev, u8 value) +static void cb_pcidas_trimpot_7376_write(struct comedi_device *dev, + unsigned int val) { struct cb_pcidas_private *devpriv = dev->private; - static const int bitstream_length = 7; - unsigned int bitstream = value & 0x7f; - unsigned int register_bits; - static const int ad7376_udelay = 1; + unsigned int calib_bits; - register_bits = cal_enable_bits(dev) | PCIDAS_CALIB_TRIM_SEL; - udelay(ad7376_udelay); - outw(register_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); + /* select trimpot */ + calib_bits = cal_enable_bits(dev) | PCIDAS_CALIB_TRIM_SEL; + udelay(1); + outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); - write_calibration_bitstream(dev, register_bits, bitstream, - bitstream_length); + /* write 7-bit value */ + write_calibration_bitstream(dev, calib_bits, val, 7); + udelay(1); - udelay(ad7376_udelay); + /* latch value */ outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); - - return 0; } static int trimpot_8402_write(struct comedi_device *dev, unsigned int channel, @@ -676,7 +674,7 @@ static void cb_pcidas_trimpot_write(struct comedi_device *dev, switch (board->trimpot) { case AD7376: - trimpot_7376_write(dev, val); + cb_pcidas_trimpot_7376_write(dev, val); break; case AD8402: trimpot_8402_write(dev, chan, val); From 6eb2455dcf1353408c7525ad8617314b3c084efc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:47 -0700 Subject: [PATCH 1946/2431] staging: comedi: cb_pcidas: tidy up trimpot_8402_write() Rename this function so it has namespace associated with the driver. Change the return type to void, it always returns '0' and the return value is never checked. For aesthetics, remove the 'static const' local variables. They don't add any significant value. Remove the 'bitstream' local variable. The 'value' passed to this function will always be in the correct range due to s->maxdata so the masking is not necessary. Change the type of the 'value' param to match the callers type and write_calibration_bitstream()'s type. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 28 ++++++++++------------ 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 84bc3defcc2d..3c1a747ea1ad 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -645,26 +645,24 @@ static void cb_pcidas_trimpot_7376_write(struct comedi_device *dev, outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); } -static int trimpot_8402_write(struct comedi_device *dev, unsigned int channel, - u8 value) +static void cb_pcidas_trimpot_8402_write(struct comedi_device *dev, + unsigned int chan, unsigned int val) { struct cb_pcidas_private *devpriv = dev->private; - static const int bitstream_length = 10; - unsigned int bitstream = ((channel & 0x3) << 8) | (value & 0xff); - unsigned int register_bits; - static const int ad8402_udelay = 1; + unsigned int calib_bits; - register_bits = cal_enable_bits(dev) | PCIDAS_CALIB_TRIM_SEL; - udelay(ad8402_udelay); - outw(register_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); + /* select trimpot */ + calib_bits = cal_enable_bits(dev) | PCIDAS_CALIB_TRIM_SEL; + udelay(1); + outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); - write_calibration_bitstream(dev, register_bits, bitstream, - bitstream_length); + /* write 10-bit value */ + write_calibration_bitstream(dev, calib_bits, + ((chan & 0x3) << 8) | val, 10); + udelay(1); - udelay(ad8402_udelay); + /* latch value */ outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); - - return 0; } static void cb_pcidas_trimpot_write(struct comedi_device *dev, @@ -677,7 +675,7 @@ static void cb_pcidas_trimpot_write(struct comedi_device *dev, cb_pcidas_trimpot_7376_write(dev, val); break; case AD8402: - trimpot_8402_write(dev, chan, val); + cb_pcidas_trimpot_8402_write(dev, chan, val); break; default: dev_err(dev->class_dev, "driver bug?\n"); From 2285cd513128d8765334083a997eaa4df4e08791 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:48 -0700 Subject: [PATCH 1947/2431] staging: comedi: cb_pcidas: tidy up caldac_8800_write() Rename this function so it has namespace associated with the driver. For aesthetics, remove the 'static const' local variables. They don't add any significant value. Remove the 'bitstream' local variable. Change the type of the 'value' param to match the callers type and write_calibration_bitstream()'s type. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 3c1a747ea1ad..fb10fe6d3806 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -552,21 +552,22 @@ static void write_calibration_bitstream(struct comedi_device *dev, } } -static void caldac_8800_write(struct comedi_device *dev, - unsigned int chan, u8 val) +static void cb_pcidas_caldac_8800_write(struct comedi_device *dev, + unsigned int chan, unsigned int val) { struct cb_pcidas_private *devpriv = dev->private; - static const int bitstream_length = 11; - unsigned int bitstream = ((chan & 0x7) << 8) | val; - static const int caldac_8800_udelay = 1; - write_calibration_bitstream(dev, cal_enable_bits(dev), bitstream, - bitstream_length); + /* write 11-bit value */ + write_calibration_bitstream(dev, cal_enable_bits(dev), + ((chan & 0x7) << 8) | val, 11); + udelay(1); - udelay(caldac_8800_udelay); + /* select caldac */ outw(cal_enable_bits(dev) | PCIDAS_CALIB_8800_SEL, devpriv->pcibar1 + PCIDAS_CALIB_REG); - udelay(caldac_8800_udelay); + udelay(1); + + /* latch value */ outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); } @@ -581,7 +582,7 @@ static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, unsigned int val = data[insn->n - 1]; if (s->readback[chan] != val) { - caldac_8800_write(dev, chan, val); + cb_pcidas_caldac_8800_write(dev, chan, val); s->readback[chan] = val; } } @@ -1431,7 +1432,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, return ret; for (i = 0; i < s->n_chan; i++) { - caldac_8800_write(dev, i, s->maxdata / 2); + cb_pcidas_caldac_8800_write(dev, i, s->maxdata / 2); s->readback[i] = s->maxdata / 2; } From eddd2a4c675c95f19da79b5adbf46851b2441212 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:49 -0700 Subject: [PATCH 1948/2431] staging: comedi: cb_pcidas: refactor write_calibration_bitstream() Refactor this function to handle the common code used to select the calibration device (trimpot or caldac) and latch the data after sending the bitstream. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 92 +++++++++------------- 1 file changed, 37 insertions(+), 55 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index fb10fe6d3806..c034de3fca42 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -533,42 +533,49 @@ static int eeprom_read_insn(struct comedi_device *dev, return 1; } -static void write_calibration_bitstream(struct comedi_device *dev, - unsigned int register_bits, - unsigned int bitstream, - unsigned int bitstream_length) +static void cb_pcidas_calib_write(struct comedi_device *dev, + unsigned int val, unsigned int len, + bool trimpot) { struct cb_pcidas_private *devpriv = dev->private; - static const int write_delay = 1; + unsigned int calib_bits = cal_enable_bits(dev); unsigned int bit; - for (bit = 1 << (bitstream_length - 1); bit; bit >>= 1) { - if (bitstream & bit) - register_bits |= PCIDAS_CALIB_DATA; - else - register_bits &= ~PCIDAS_CALIB_DATA; - udelay(write_delay); - outw(register_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); + if (trimpot) { + /* select trimpot */ + calib_bits |= PCIDAS_CALIB_TRIM_SEL; + outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); } + + /* write bitstream to calibration device */ + for (bit = 1 << (len - 1); bit; bit >>= 1) { + if (val & bit) + calib_bits |= PCIDAS_CALIB_DATA; + else + calib_bits &= ~PCIDAS_CALIB_DATA; + udelay(1); + outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); + } + udelay(1); + + calib_bits = cal_enable_bits(dev); + + if (!trimpot) { + /* select caldac */ + outw(calib_bits | PCIDAS_CALIB_8800_SEL, + devpriv->pcibar1 + PCIDAS_CALIB_REG); + udelay(1); + } + + /* latch value to trimpot/caldac */ + outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); } static void cb_pcidas_caldac_8800_write(struct comedi_device *dev, unsigned int chan, unsigned int val) { - struct cb_pcidas_private *devpriv = dev->private; - - /* write 11-bit value */ - write_calibration_bitstream(dev, cal_enable_bits(dev), - ((chan & 0x7) << 8) | val, 11); - udelay(1); - - /* select caldac */ - outw(cal_enable_bits(dev) | PCIDAS_CALIB_8800_SEL, - devpriv->pcibar1 + PCIDAS_CALIB_REG); - udelay(1); - - /* latch value */ - outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); + /* write 11-bit value to caldac */ + cb_pcidas_calib_write(dev, ((chan & 0x7) << 8) | val, 11, false); } static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, @@ -630,40 +637,15 @@ static int cb_pcidas_dac08_insn_write(struct comedi_device *dev, static void cb_pcidas_trimpot_7376_write(struct comedi_device *dev, unsigned int val) { - struct cb_pcidas_private *devpriv = dev->private; - unsigned int calib_bits; - - /* select trimpot */ - calib_bits = cal_enable_bits(dev) | PCIDAS_CALIB_TRIM_SEL; - udelay(1); - outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); - - /* write 7-bit value */ - write_calibration_bitstream(dev, calib_bits, val, 7); - udelay(1); - - /* latch value */ - outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); + /* write 7-bit value to trimpot */ + cb_pcidas_calib_write(dev, val, 7, true); } static void cb_pcidas_trimpot_8402_write(struct comedi_device *dev, unsigned int chan, unsigned int val) { - struct cb_pcidas_private *devpriv = dev->private; - unsigned int calib_bits; - - /* select trimpot */ - calib_bits = cal_enable_bits(dev) | PCIDAS_CALIB_TRIM_SEL; - udelay(1); - outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); - - /* write 10-bit value */ - write_calibration_bitstream(dev, calib_bits, - ((chan & 0x3) << 8) | val, 10); - udelay(1); - - /* latch value */ - outw(cal_enable_bits(dev), devpriv->pcibar1 + PCIDAS_CALIB_REG); + /* write 10-bit value to trimpot */ + cb_pcidas_calib_write(dev, ((chan & 0x3) << 8) | val, 10, true); } static void cb_pcidas_trimpot_write(struct comedi_device *dev, From 2d71464fd137d4a830dddfc799de8158e9ddc97c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:50 -0700 Subject: [PATCH 1949/2431] staging: comedi: cb_pcidas: absorb caldac/trimpot write functions These functions are all just wrappers for cb_pcidas_calib_write(). Remove them and absorb the code into the callers. Remove the unnecessary masking of the 'chan'. It will always be in range due to the subdevice initialization. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 38 +++++++--------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index c034de3fca42..f22611b3edcd 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -571,13 +571,6 @@ static void cb_pcidas_calib_write(struct comedi_device *dev, outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); } -static void cb_pcidas_caldac_8800_write(struct comedi_device *dev, - unsigned int chan, unsigned int val) -{ - /* write 11-bit value to caldac */ - cb_pcidas_calib_write(dev, ((chan & 0x7) << 8) | val, 11, false); -} - static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -589,7 +582,9 @@ static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, unsigned int val = data[insn->n - 1]; if (s->readback[chan] != val) { - cb_pcidas_caldac_8800_write(dev, chan, val); + /* write 11-bit channel/value to caldac */ + cb_pcidas_calib_write(dev, (chan << 8) | val, 11, + false); s->readback[chan] = val; } } @@ -634,20 +629,6 @@ static int cb_pcidas_dac08_insn_write(struct comedi_device *dev, return insn->n; } -static void cb_pcidas_trimpot_7376_write(struct comedi_device *dev, - unsigned int val) -{ - /* write 7-bit value to trimpot */ - cb_pcidas_calib_write(dev, val, 7, true); -} - -static void cb_pcidas_trimpot_8402_write(struct comedi_device *dev, - unsigned int chan, unsigned int val) -{ - /* write 10-bit value to trimpot */ - cb_pcidas_calib_write(dev, ((chan & 0x3) << 8) | val, 10, true); -} - static void cb_pcidas_trimpot_write(struct comedi_device *dev, unsigned int chan, unsigned int val) { @@ -655,10 +636,12 @@ static void cb_pcidas_trimpot_write(struct comedi_device *dev, switch (board->trimpot) { case AD7376: - cb_pcidas_trimpot_7376_write(dev, val); + /* write 7-bit value to trimpot */ + cb_pcidas_calib_write(dev, val, 7, true); break; case AD8402: - cb_pcidas_trimpot_8402_write(dev, chan, val); + /* write 10-bit channel/value to trimpot */ + cb_pcidas_calib_write(dev, (chan << 8) | val, 10, true); break; default: dev_err(dev->class_dev, "driver bug?\n"); @@ -1414,8 +1397,11 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, return ret; for (i = 0; i < s->n_chan; i++) { - cb_pcidas_caldac_8800_write(dev, i, s->maxdata / 2); - s->readback[i] = s->maxdata / 2; + unsigned int val = s->maxdata / 2; + + /* write 11-bit channel/value to caldac */ + cb_pcidas_calib_write(dev, (i << 8) | val, 11, false); + s->readback[i] = val; } /* Calibration subdevice - trim potentiometer */ From 873524c8517cf0986768685358d124aae7f7e495 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:51 -0700 Subject: [PATCH 1950/2431] staging: comedi: cb_pcidas: tidy up cb_pcidas_trimpot_write() All the boards supported by this driver have an AD7376 or AD8402 trimpot. Replace the switch () with and if () and remove the unreachable dev_err() noise. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f22611b3edcd..2c6ef6eae095 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -634,18 +634,12 @@ static void cb_pcidas_trimpot_write(struct comedi_device *dev, { const struct cb_pcidas_board *board = dev->board_ptr; - switch (board->trimpot) { - case AD7376: + if (board->trimpot == AD7376) { /* write 7-bit value to trimpot */ cb_pcidas_calib_write(dev, val, 7, true); - break; - case AD8402: + } else { /* AD8402 */ /* write 10-bit channel/value to trimpot */ cb_pcidas_calib_write(dev, (chan << 8) | val, 10, true); - break; - default: - dev_err(dev->class_dev, "driver bug?\n"); - break; } } From fe970e4d2d75497a7fed75cea0acd7150e92ed92 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:52 -0700 Subject: [PATCH 1951/2431] staging: comedi: cb_pcidas: refactor 'trimpot' boardinfo Only the pci-das1602/16 boards have an AD8402 trimpot. The rest of the boards supported by this driver have an AD7376 trimpot. Replace the 'enum trimpot_module' in the boardinfo with a bit-field flag 'has_ad8402' to save a bit of space. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 38 ++++++++-------------- 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 2c6ef6eae095..fc972e56a623 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -207,11 +207,6 @@ static const struct comedi_lrange cb_pcidas_ao_ranges = { } }; -enum trimpot_model { - AD7376, - AD8402, -}; - enum cb_pcidas_boardid { BOARD_PCIDAS1602_16, BOARD_PCIDAS1200, @@ -228,11 +223,11 @@ struct cb_pcidas_board { int ai_speed; /* fastest conversion period in ns */ int ao_scan_speed; /* analog output scan speed for 1602 series */ int fifo_size; /* number of samples fifo can hold */ - enum trimpot_model trimpot; unsigned int is_16bit; /* ai/ao is 1=16-bit; 0=12-bit */ unsigned int use_alt_range:1; /* use alternate ai range table */ unsigned int has_ao:1; /* has 2 analog output channels */ unsigned int has_ao_fifo:1; /* analog output has fifo */ + unsigned int has_ad8402:1; /* trimpot type 1=AD8402; 0=AD7376 */ unsigned int has_dac08:1; unsigned int is_1602:1; }; @@ -243,10 +238,10 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .ai_speed = 5000, .ao_scan_speed = 10000, .fifo_size = 512, - .trimpot = AD8402, .is_16bit = 1, .has_ao = 1, .has_ao_fifo = 1, + .has_ad8402 = 1, .has_dac08 = 1, .is_1602 = 1, }, @@ -254,7 +249,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1200", .ai_speed = 3200, .fifo_size = 1024, - .trimpot = AD7376, .has_ao = 1, }, [BOARD_PCIDAS1602_12] = { @@ -262,7 +256,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .ai_speed = 3200, .ao_scan_speed = 4000, .fifo_size = 1024, - .trimpot = AD7376, .has_ao = 1, .has_ao_fifo = 1, .is_1602 = 1, @@ -271,14 +264,13 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1200/jr", .ai_speed = 3200, .fifo_size = 1024, - .trimpot = AD7376, }, [BOARD_PCIDAS1602_16_JR] = { .name = "pci-das1602/16/jr", .ai_speed = 5000, .fifo_size = 512, - .trimpot = AD8402, .is_16bit = 1, + .has_ad8402 = 1, .has_dac08 = 1, .is_1602 = 1, }, @@ -286,13 +278,11 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1000", .ai_speed = 4000, .fifo_size = 1024, - .trimpot = AD7376, }, [BOARD_PCIDAS1001] = { .name = "pci-das1001", .ai_speed = 6800, .fifo_size = 1024, - .trimpot = AD7376, .use_alt_range = 1, .has_ao = 1, }, @@ -300,7 +290,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { .name = "pci-das1002", .ai_speed = 6800, .fifo_size = 1024, - .trimpot = AD7376, .has_ao = 1, }, }; @@ -634,12 +623,12 @@ static void cb_pcidas_trimpot_write(struct comedi_device *dev, { const struct cb_pcidas_board *board = dev->board_ptr; - if (board->trimpot == AD7376) { - /* write 7-bit value to trimpot */ - cb_pcidas_calib_write(dev, val, 7, true); - } else { /* AD8402 */ - /* write 10-bit channel/value to trimpot */ + if (board->has_ad8402) { + /* write 10-bit channel/value to AD8402 trimpot */ cb_pcidas_calib_write(dev, (chan << 8) | val, 10, true); + } else { + /* write 7-bit value to AD7376 trimpot */ + cb_pcidas_calib_write(dev, val, 7, true); } } @@ -1402,17 +1391,18 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s = &dev->subdevices[5]; s->type = COMEDI_SUBD_CALIB; s->subdev_flags = SDF_WRITABLE | SDF_INTERNAL; - if (board->trimpot == AD7376) { - s->n_chan = 1; - s->maxdata = 0x7f; - } else { /* AD8402 */ + if (board->has_ad8402) { /* - * For pci-das1602/16: + * pci-das1602/16 have an AD8402 trimpot: * chan 0 : adc gain * chan 1 : adc postgain offset */ s->n_chan = 2; s->maxdata = 0xff; + } else { + /* all other boards have an AD7376 trimpot */ + s->n_chan = 1; + s->maxdata = 0x7f; } s->insn_write = cb_pcidas_trimpot_insn_write; From e56aaa24a0347d6e0f3be83eb31252855cadba93 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:53 -0700 Subject: [PATCH 1952/2431] staging: comedi: cb_pcidas: tidy up dac08 calibration subdevice For aesthetics, add some whitespace to the subdevice init. It's not possible to actually read from the dac08. For convienence the subdevice readback provided by the core is used to return the last value written to the subdevice. Remove the SDF_READABLE flag from the subdev_flags. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index fc972e56a623..b5c7dc3a9c6b 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1415,14 +1415,14 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->readback[i] = s->maxdata / 2; } - /* dac08 caldac */ + /* Calibration subdevice - dac08 caldac */ s = &dev->subdevices[6]; if (board->has_dac08) { - s->type = COMEDI_SUBD_CALIB; - s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_INTERNAL; - s->n_chan = 1; - s->maxdata = 0xff; - s->insn_write = cb_pcidas_dac08_insn_write; + s->type = COMEDI_SUBD_CALIB; + s->subdev_flags = SDF_WRITABLE | SDF_INTERNAL; + s->n_chan = 1; + s->maxdata = 0xff; + s->insn_write = cb_pcidas_dac08_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) @@ -1433,7 +1433,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->readback[i] = s->maxdata / 2; } } else { - s->type = COMEDI_SUBD_UNUSED; + s->type = COMEDI_SUBD_UNUSED; } /* make sure mailbox 4 is empty */ From a266cd7992e7d2920a40a27c8192884fee261c21 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:54 -0700 Subject: [PATCH 1953/2431] staging: comedi: cb_pcidas: tidy up dac08_write() Rename this function so it has namespace associated with the driver. Also rename the 'value' parameter to avoid having to split the line to keep it under 80 chars. Remove the unnecessary masking on the 'value'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index b5c7dc3a9c6b..04d12bf1f6cd 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -581,21 +581,19 @@ static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, return insn->n; } -/* 1602/16 pregain offset */ -static void dac08_write(struct comedi_device *dev, unsigned int value) +static void cb_pcidas_dac08_write(struct comedi_device *dev, unsigned int val) { struct cb_pcidas_private *devpriv = dev->private; - value &= 0xff; - value |= cal_enable_bits(dev); + val |= cal_enable_bits(dev); /* latch the new value into the caldac */ - outw(value, devpriv->pcibar1 + PCIDAS_CALIB_REG); + outw(val, devpriv->pcibar1 + PCIDAS_CALIB_REG); udelay(1); - outw(value | PCIDAS_CALIB_DAC08_SEL, + outw(val | PCIDAS_CALIB_DAC08_SEL, devpriv->pcibar1 + PCIDAS_CALIB_REG); udelay(1); - outw(value, devpriv->pcibar1 + PCIDAS_CALIB_REG); + outw(val, devpriv->pcibar1 + PCIDAS_CALIB_REG); udelay(1); } @@ -610,7 +608,7 @@ static int cb_pcidas_dac08_insn_write(struct comedi_device *dev, unsigned int val = data[insn->n - 1]; if (s->readback[chan] != val) { - dac08_write(dev, val); + cb_pcidas_dac08_write(dev, val); s->readback[chan] = val; } } @@ -1415,7 +1413,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->readback[i] = s->maxdata / 2; } - /* Calibration subdevice - dac08 caldac */ + /* Calibration subdevice - pci-das1602/16 pregain offset (dac08) */ s = &dev->subdevices[6]; if (board->has_dac08) { s->type = COMEDI_SUBD_CALIB; @@ -1429,7 +1427,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, return ret; for (i = 0; i < s->n_chan; i++) { - dac08_write(dev, s->maxdata / 2); + cb_pcidas_dac08_write(dev, s->maxdata / 2); s->readback[i] = s->maxdata / 2; } } else { From d9b0cde41992bbd9047b435354bd5e2317158748 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:55 -0700 Subject: [PATCH 1954/2431] staging: comedi: cb_pcidas: tidy up 8800 caldac calibration subdevice For aesthetics, add some whitespace to the subdevice init. It's not possible to actually read from the caldac. For convienence the subdevice readback provided by the core is used to return the last value written to the subdevice. Remove the SDF_READABLE flag from the subdev_flags. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 04d12bf1f6cd..f34a615df841 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1365,13 +1365,13 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->maxdata = 0xff; s->insn_read = eeprom_read_insn; - /* 8800 caldac */ + /* Calibration subdevice - 8800 caldac */ s = &dev->subdevices[4]; - s->type = COMEDI_SUBD_CALIB; - s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_INTERNAL; - s->n_chan = 8; - s->maxdata = 0xff; - s->insn_write = cb_pcidas_caldac_insn_write; + s->type = COMEDI_SUBD_CALIB; + s->subdev_flags = SDF_WRITABLE | SDF_INTERNAL; + s->n_chan = 8; + s->maxdata = 0xff; + s->insn_write = cb_pcidas_caldac_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) From 73d38effd10b8e399790aa67d6eace855f2d81ce Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:56 -0700 Subject: [PATCH 1955/2431] staging: comedi: cb_pcidas: tidy up memory subdevice init For aesthetics, add some whitespace to the initialization of this subdevice. Rename the (*insn_read) function so it has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f34a615df841..3238cabca7ac 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -506,9 +506,10 @@ static int nvram_read(struct comedi_device *dev, unsigned int address, return 0; } -static int eeprom_read_insn(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int cb_pcidas_eeprom_insn_read(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { u8 nvram_data; int retval; @@ -1357,13 +1358,13 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, if (ret) return ret; - /* serial EEPROM, */ + /* Memory subdevice - serial EEPROM */ s = &dev->subdevices[3]; - s->type = COMEDI_SUBD_MEMORY; - s->subdev_flags = SDF_READABLE | SDF_INTERNAL; - s->n_chan = 256; - s->maxdata = 0xff; - s->insn_read = eeprom_read_insn; + s->type = COMEDI_SUBD_MEMORY; + s->subdev_flags = SDF_READABLE | SDF_INTERNAL; + s->n_chan = 256; + s->maxdata = 0xff; + s->insn_read = cb_pcidas_eeprom_insn_read; /* Calibration subdevice - 8800 caldac */ s = &dev->subdevices[4]; From 16ded01b69b10d09659e61f0703979c63dcd385f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:57 -0700 Subject: [PATCH 1956/2431] staging: comedi: cb_pcidas: fix cb_pcidas_eeprom_insn_read() The comedi core expects (*insn_read) operations to return insn->n data values. Refactor this function to work like the core expects. For aesthetics, nvram_read() and use the comedi_timeout() helper to handle the busy wait for the eeprom to be "ready". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 80 ++++++++++------------ 1 file changed, 38 insertions(+), 42 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 3238cabca7ac..c0ae92dc9fa2 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -466,44 +466,18 @@ static int cb_pcidas_ao_fifo_winsn(struct comedi_device *dev, return insn->n; } -static int wait_for_nvram_ready(unsigned long s5933_base_addr) -{ - static const int timeout = 1000; - unsigned int i; - - for (i = 0; i < timeout; i++) { - if ((inb(s5933_base_addr + - AMCC_OP_REG_MCSR_NVCMD) & MCSR_NV_BUSY) - == 0) - return 0; - udelay(1); - } - return -1; -} - -static int nvram_read(struct comedi_device *dev, unsigned int address, - u8 *data) +static int cb_pcidas_eeprom_ready(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned long context) { struct cb_pcidas_private *devpriv = dev->private; - unsigned long iobase = devpriv->s5933_config; + unsigned int status; - if (wait_for_nvram_ready(iobase) < 0) - return -ETIMEDOUT; - - outb(MCSR_NV_ENABLE | MCSR_NV_LOAD_LOW_ADDR, - iobase + AMCC_OP_REG_MCSR_NVCMD); - outb(address & 0xff, iobase + AMCC_OP_REG_MCSR_NVDATA); - outb(MCSR_NV_ENABLE | MCSR_NV_LOAD_HIGH_ADDR, - iobase + AMCC_OP_REG_MCSR_NVCMD); - outb((address >> 8) & 0xff, iobase + AMCC_OP_REG_MCSR_NVDATA); - outb(MCSR_NV_ENABLE | MCSR_NV_READ, iobase + AMCC_OP_REG_MCSR_NVCMD); - - if (wait_for_nvram_ready(iobase) < 0) - return -ETIMEDOUT; - - *data = inb(iobase + AMCC_OP_REG_MCSR_NVDATA); - - return 0; + status = inb(devpriv->s5933_config + AMCC_OP_REG_MCSR_NVCMD); + if ((status & MCSR_NV_BUSY) == 0) + return 0; + return -EBUSY; } static int cb_pcidas_eeprom_insn_read(struct comedi_device *dev, @@ -511,16 +485,38 @@ static int cb_pcidas_eeprom_insn_read(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - u8 nvram_data; - int retval; + struct cb_pcidas_private *devpriv = dev->private; + unsigned int chan = CR_CHAN(insn->chanspec); + int ret; + int i; - retval = nvram_read(dev, CR_CHAN(insn->chanspec), &nvram_data); - if (retval < 0) - return retval; + for (i = 0; i < insn->n; i++) { + /* make sure eeprom is ready */ + ret = comedi_timeout(dev, s, insn, cb_pcidas_eeprom_ready, 0); + if (ret) + return ret; - data[0] = nvram_data; + /* set address (chan) and read operation */ + outb(MCSR_NV_ENABLE | MCSR_NV_LOAD_LOW_ADDR, + devpriv->s5933_config + AMCC_OP_REG_MCSR_NVCMD); + outb(chan & 0xff, + devpriv->s5933_config + AMCC_OP_REG_MCSR_NVDATA); + outb(MCSR_NV_ENABLE | MCSR_NV_LOAD_HIGH_ADDR, + devpriv->s5933_config + AMCC_OP_REG_MCSR_NVCMD); + outb((chan >> 8) & 0xff, + devpriv->s5933_config + AMCC_OP_REG_MCSR_NVDATA); + outb(MCSR_NV_ENABLE | MCSR_NV_READ, + devpriv->s5933_config + AMCC_OP_REG_MCSR_NVCMD); - return 1; + /* wait for data to be returned */ + ret = comedi_timeout(dev, s, insn, cb_pcidas_eeprom_ready, 0); + if (ret) + return ret; + + data[i] = inb(devpriv->s5933_config + AMCC_OP_REG_MCSR_NVDATA); + } + + return insn->n; } static void cb_pcidas_calib_write(struct comedi_device *dev, From 8499ad694a20de85a9e37da4a1aa57869f368fb2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:58 -0700 Subject: [PATCH 1957/2431] staging: comedi: cb_pcidas: rename private data 's5933_config' For aesthetics, rename this member of the private data. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 35 +++++++++++----------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index c0ae92dc9fa2..5305d60e5a41 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -297,7 +297,7 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { struct cb_pcidas_private { struct comedi_8254 *ao_pacer; /* base addresses */ - unsigned long s5933_config; + unsigned long amcc; /* pcibar0 */ unsigned long pcibar1; unsigned long pcibar2; unsigned long pcibar4; @@ -474,7 +474,7 @@ static int cb_pcidas_eeprom_ready(struct comedi_device *dev, struct cb_pcidas_private *devpriv = dev->private; unsigned int status; - status = inb(devpriv->s5933_config + AMCC_OP_REG_MCSR_NVCMD); + status = inb(devpriv->amcc + AMCC_OP_REG_MCSR_NVCMD); if ((status & MCSR_NV_BUSY) == 0) return 0; return -EBUSY; @@ -498,22 +498,21 @@ static int cb_pcidas_eeprom_insn_read(struct comedi_device *dev, /* set address (chan) and read operation */ outb(MCSR_NV_ENABLE | MCSR_NV_LOAD_LOW_ADDR, - devpriv->s5933_config + AMCC_OP_REG_MCSR_NVCMD); - outb(chan & 0xff, - devpriv->s5933_config + AMCC_OP_REG_MCSR_NVDATA); + devpriv->amcc + AMCC_OP_REG_MCSR_NVCMD); + outb(chan & 0xff, devpriv->amcc + AMCC_OP_REG_MCSR_NVDATA); outb(MCSR_NV_ENABLE | MCSR_NV_LOAD_HIGH_ADDR, - devpriv->s5933_config + AMCC_OP_REG_MCSR_NVCMD); + devpriv->amcc + AMCC_OP_REG_MCSR_NVCMD); outb((chan >> 8) & 0xff, - devpriv->s5933_config + AMCC_OP_REG_MCSR_NVDATA); + devpriv->amcc + AMCC_OP_REG_MCSR_NVDATA); outb(MCSR_NV_ENABLE | MCSR_NV_READ, - devpriv->s5933_config + AMCC_OP_REG_MCSR_NVCMD); + devpriv->amcc + AMCC_OP_REG_MCSR_NVCMD); /* wait for data to be returned */ ret = comedi_timeout(dev, s, insn, cb_pcidas_eeprom_ready, 0); if (ret) return ret; - data[i] = inb(devpriv->s5933_config + AMCC_OP_REG_MCSR_NVDATA); + data[i] = inb(devpriv->amcc + AMCC_OP_REG_MCSR_NVDATA); } return insn->n; @@ -1161,16 +1160,16 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) async = s->async; cmd = &async->cmd; - s5933_status = inl(devpriv->s5933_config + AMCC_OP_REG_INTCSR); + s5933_status = inl(devpriv->amcc + AMCC_OP_REG_INTCSR); if ((INTCSR_INTR_ASSERTED & s5933_status) == 0) return IRQ_NONE; /* make sure mailbox 4 is empty */ - inl_p(devpriv->s5933_config + AMCC_OP_REG_IMB4); + inl_p(devpriv->amcc + AMCC_OP_REG_IMB4); /* clear interrupt on amcc s5933 */ outl(devpriv->s5933_intcsr_bits | INTCSR_INBOX_INTR_STATUS, - devpriv->s5933_config + AMCC_OP_REG_INTCSR); + devpriv->amcc + AMCC_OP_REG_INTCSR); status = inw(devpriv->pcibar1 + PCIDAS_CTRL_REG); @@ -1268,7 +1267,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, if (ret) return ret; - devpriv->s5933_config = pci_resource_start(pcidev, 0); + devpriv->amcc = pci_resource_start(pcidev, 0); devpriv->pcibar1 = pci_resource_start(pcidev, 1); devpriv->pcibar2 = pci_resource_start(pcidev, 2); dev->iobase = pci_resource_start(pcidev, 3); @@ -1277,7 +1276,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, /* disable and clear interrupts on amcc s5933 */ outl(INTCSR_INBOX_INTR_STATUS, - devpriv->s5933_config + AMCC_OP_REG_INTCSR); + devpriv->amcc + AMCC_OP_REG_INTCSR); ret = request_irq(pcidev->irq, cb_pcidas_interrupt, IRQF_SHARED, dev->board_name, dev); @@ -1432,14 +1431,14 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, } /* make sure mailbox 4 is empty */ - inl(devpriv->s5933_config + AMCC_OP_REG_IMB4); + inl(devpriv->amcc + AMCC_OP_REG_IMB4); /* Set bits to enable incoming mailbox interrupts on amcc s5933. */ devpriv->s5933_intcsr_bits = INTCSR_INBOX_BYTE(3) | INTCSR_INBOX_SELECT(3) | INTCSR_INBOX_FULL_INT; /* clear and enable interrupt on amcc s5933 */ outl(devpriv->s5933_intcsr_bits | INTCSR_INBOX_INTR_STATUS, - devpriv->s5933_config + AMCC_OP_REG_INTCSR); + devpriv->amcc + AMCC_OP_REG_INTCSR); return 0; } @@ -1449,9 +1448,9 @@ static void cb_pcidas_detach(struct comedi_device *dev) struct cb_pcidas_private *devpriv = dev->private; if (devpriv) { - if (devpriv->s5933_config) + if (devpriv->amcc) outl(INTCSR_INBOX_INTR_STATUS, - devpriv->s5933_config + AMCC_OP_REG_INTCSR); + devpriv->amcc + AMCC_OP_REG_INTCSR); kfree(devpriv->ao_pacer); } comedi_pci_detach(dev); From b4008c7207e832d14414f76774a8ebc7067f2154 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:59 -0700 Subject: [PATCH 1958/2431] staging: comedi: cb_pcidas: rename private data 's5933_intcsr_bits' For aesthetics, rename this member of the private data. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 5305d60e5a41..58f20d597700 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -303,7 +303,7 @@ struct cb_pcidas_private { unsigned long pcibar4; /* bits to write to registers */ unsigned int ctrl; - unsigned int s5933_intcsr_bits; + unsigned int amcc_intcsr; unsigned int ao_ctrl; /* fifo buffers */ unsigned short ai_buffer[AI_BUFFER_SIZE]; @@ -1168,7 +1168,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) /* make sure mailbox 4 is empty */ inl_p(devpriv->amcc + AMCC_OP_REG_IMB4); /* clear interrupt on amcc s5933 */ - outl(devpriv->s5933_intcsr_bits | INTCSR_INBOX_INTR_STATUS, + outl(devpriv->amcc_intcsr | INTCSR_INBOX_INTR_STATUS, devpriv->amcc + AMCC_OP_REG_INTCSR); status = inw(devpriv->pcibar1 + PCIDAS_CTRL_REG); @@ -1433,11 +1433,10 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, /* make sure mailbox 4 is empty */ inl(devpriv->amcc + AMCC_OP_REG_IMB4); /* Set bits to enable incoming mailbox interrupts on amcc s5933. */ - devpriv->s5933_intcsr_bits = - INTCSR_INBOX_BYTE(3) | INTCSR_INBOX_SELECT(3) | - INTCSR_INBOX_FULL_INT; + devpriv->amcc_intcsr = INTCSR_INBOX_BYTE(3) | INTCSR_INBOX_SELECT(3) | + INTCSR_INBOX_FULL_INT; /* clear and enable interrupt on amcc s5933 */ - outl(devpriv->s5933_intcsr_bits | INTCSR_INBOX_INTR_STATUS, + outl(devpriv->amcc_intcsr | INTCSR_INBOX_INTR_STATUS, devpriv->amcc + AMCC_OP_REG_INTCSR); return 0; From c5c51b1d6a7629a3efd413fc9f6a6e5d553d5f24 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:48:00 -0700 Subject: [PATCH 1959/2431] staging: comedi: cb_pcidas: tidy up analog output subdevice init For aesthetics, add some whitespace to the subdevice initialization and rename the (*insn_write) functions to follow the normal form in comedi drivers. It's not possible to actually read the analog outpus. For convienence the subdevice readback provided by the core is used to return the last value written to the subdevice. Remove the SDF_READABLE flag from the subdev_flags. Async command support uses interrupts. For clarity, make sure the driver has an IRQ before initializing command support. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 46 +++++++++++----------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 58f20d597700..4c192fc04be5 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -408,10 +408,10 @@ static int ai_config_insn(struct comedi_device *dev, struct comedi_subdevice *s, } /* analog output insn for pcidas-1000 and 1200 series */ -static int cb_pcidas_ao_nofifo_winsn(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, - unsigned int *data) +static int cb_pcidas_ao_nofifo_insn_write(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct cb_pcidas_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); @@ -436,9 +436,10 @@ static int cb_pcidas_ao_nofifo_winsn(struct comedi_device *dev, } /* analog output insn for pcidas-1602 series */ -static int cb_pcidas_ao_fifo_winsn(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int cb_pcidas_ao_fifo_insn_write(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct cb_pcidas_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); @@ -1319,32 +1320,31 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, s->do_cmdtest = cb_pcidas_ai_cmdtest; s->cancel = cb_pcidas_cancel; - /* analog output subdevice */ + /* Analog Output subdevice */ s = &dev->subdevices[1]; if (board->has_ao) { - s->type = COMEDI_SUBD_AO; - s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_GROUND; - s->n_chan = 2; - s->maxdata = board->is_16bit ? 0xffff : 0x0fff; - s->range_table = &cb_pcidas_ao_ranges; - /* default to no fifo (*insn_write) */ - s->insn_write = cb_pcidas_ao_nofifo_winsn; + s->type = COMEDI_SUBD_AO; + s->subdev_flags = SDF_WRITABLE | SDF_GROUND; + s->n_chan = 2; + s->maxdata = board->is_16bit ? 0xffff : 0x0fff; + s->range_table = &cb_pcidas_ao_ranges; + s->insn_write = (board->has_ao_fifo) + ? cb_pcidas_ao_fifo_insn_write + : cb_pcidas_ao_nofifo_insn_write; ret = comedi_alloc_subdev_readback(s); if (ret) return ret; - if (board->has_ao_fifo) { + if (dev->irq && board->has_ao_fifo) { dev->write_subdev = s; - s->subdev_flags |= SDF_CMD_WRITE; - /* use fifo (*insn_write) instead */ - s->insn_write = cb_pcidas_ao_fifo_winsn; - s->do_cmdtest = cb_pcidas_ao_cmdtest; - s->do_cmd = cb_pcidas_ao_cmd; - s->cancel = cb_pcidas_ao_cancel; + s->subdev_flags |= SDF_CMD_WRITE; + s->do_cmdtest = cb_pcidas_ao_cmdtest; + s->do_cmd = cb_pcidas_ao_cmd; + s->cancel = cb_pcidas_ao_cancel; } } else { - s->type = COMEDI_SUBD_UNUSED; + s->type = COMEDI_SUBD_UNUSED; } /* 8255 */ From 790b2f06249602ee2560bb94cce4b934abcba6e4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:48:01 -0700 Subject: [PATCH 1960/2431] staging: comedi: cb_pcidas: tidy up analog input subdevice init For aesthetics, add some whitespace to the subdevice initialization and rename the subdevice functions to follow the normal form in comedi drivers. Async command support uses interrupts. For clarity, make sure the driver has an IRQ before initializing command support. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 46 ++++++++++++---------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 4c192fc04be5..268ec777342a 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -332,9 +332,10 @@ static int cb_pcidas_ai_eoc(struct comedi_device *dev, return -EBUSY; } -static int cb_pcidas_ai_rinsn(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int cb_pcidas_ai_insn_read(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct cb_pcidas_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); @@ -384,8 +385,10 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, return n; } -static int ai_config_insn(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int cb_pcidas_ai_insn_config(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct cb_pcidas_private *devpriv = dev->private; int id = data[0]; @@ -960,9 +963,8 @@ static int cb_pcidas_ao_cmdtest(struct comedi_device *dev, return 0; } -/* cancel analog input command */ -static int cb_pcidas_cancel(struct comedi_device *dev, - struct comedi_subdevice *s) +static int cb_pcidas_ai_cancel(struct comedi_device *dev, + struct comedi_subdevice *s) { struct cb_pcidas_private *devpriv = dev->private; unsigned long flags; @@ -1303,22 +1305,24 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, if (ret) return ret; + /* Analog Input subdevice */ s = &dev->subdevices[0]; - /* analog input subdevice */ - dev->read_subdev = s; - s->type = COMEDI_SUBD_AI; - s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF | SDF_CMD_READ; - /* WARNING: Number of inputs in differential mode is ignored */ - s->n_chan = 16; - s->len_chanlist = s->n_chan; - s->maxdata = board->is_16bit ? 0xffff : 0x0fff; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; + s->n_chan = 16; + s->maxdata = board->is_16bit ? 0xffff : 0x0fff; s->range_table = board->use_alt_range ? &cb_pcidas_alt_ranges : &cb_pcidas_ranges; - s->insn_read = cb_pcidas_ai_rinsn; - s->insn_config = ai_config_insn; - s->do_cmd = cb_pcidas_ai_cmd; - s->do_cmdtest = cb_pcidas_ai_cmdtest; - s->cancel = cb_pcidas_cancel; + s->insn_read = cb_pcidas_ai_insn_read; + s->insn_config = cb_pcidas_ai_insn_config; + if (dev->irq) { + dev->read_subdev = s; + s->subdev_flags |= SDF_CMD_READ; + s->len_chanlist = s->n_chan; + s->do_cmd = cb_pcidas_ai_cmd; + s->do_cmdtest = cb_pcidas_ai_cmdtest; + s->cancel = cb_pcidas_ai_cancel; + } /* Analog Output subdevice */ s = &dev->subdevices[1]; From edebf6199bfec7cdefc69a4178b760d09165a926 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:48:02 -0700 Subject: [PATCH 1961/2431] staging: comedi: cb_pcidas: rename handle_ao_interrupt() Rename this function so it has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 268ec777342a..4aa2742641c0 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1106,7 +1106,8 @@ static int cb_pcidas_ao_cancel(struct comedi_device *dev, return 0; } -static void handle_ao_interrupt(struct comedi_device *dev, unsigned int status) +static void cb_pcidas_ao_interrupt(struct comedi_device *dev, + unsigned int status) { const struct cb_pcidas_board *board = dev->board_ptr; struct cb_pcidas_private *devpriv = dev->private; @@ -1178,7 +1179,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) /* check for analog output interrupt */ if (status & (PCIDAS_CTRL_DAHFI | PCIDAS_CTRL_DAEMI)) - handle_ao_interrupt(dev, status); + cb_pcidas_ao_interrupt(dev, status); /* check for analog input interrupts */ /* if fifo half-full */ if (status & PCIDAS_CTRL_ADHFI) { From b5f00637784f09e524ca882e8d43d78e36da166b Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 17 Oct 2015 08:55:15 -0700 Subject: [PATCH 1962/2431] Staging: lustre: remove unneeded variable ldlm_lock_enqueue() always returns ELDLM_OK, no matter what happens, so removed the unneeded variable that this value was being stored in and just return the value itself. Reported-by: kbuild test robot Cc: Oleg Drokin Cc: Andreas Dilger Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 658c878cacce..1600375f74b6 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -1520,7 +1520,6 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, { struct ldlm_lock *lock = *lockp; struct ldlm_resource *res = lock->l_resource; - ldlm_error_t rc = ELDLM_OK; lock->l_last_activity = ktime_get_real_seconds(); @@ -1558,7 +1557,7 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, out: unlock_res_and_lock(lock); - return rc; + return ELDLM_OK; } /** From 350979e4870711912f4a391d7b2fadfedf775fc3 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Sat, 17 Oct 2015 15:25:33 +0300 Subject: [PATCH 1963/2431] Staging: wilc1000: Remove multiple blank lines Remove multiple blank lines. Problem found using checkpatch.pl CHECK: Please don't use multiple blank lines. Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 3d45cc347a32..93f3c75f1546 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -8,7 +8,6 @@ * @version 1.0 */ - #include "coreconfigurator.h" #include "wilc_wlan_if.h" #include "wilc_wlan.h" @@ -544,7 +543,6 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, *ppstrConnectRespInfo = pstrConnectRespInfo; - return s32Error; } From 86e4180e122161469f5215aed6a75300a1c406e7 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Sat, 17 Oct 2015 15:25:34 +0300 Subject: [PATCH 1964/2431] Staging: wilc1000: Remove unnecessary else after return Problem found using checkpatch.pl: WARNING: else is not generally useful after a break or return Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 93f3c75f1546..cea7c6feb4bf 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -307,8 +307,7 @@ u8 *get_tim_elm(u8 *pu8msa, u16 u16RxLen, u16 u16TagParamOffset) while (u16index < (u16RxLen - FCS_LEN)) { if (pu8msa[u16index] == ITIM) return &pu8msa[u16index]; - else - u16index += (IE_HDR_LEN + pu8msa[u16index + 1]); + u16index += (IE_HDR_LEN + pu8msa[u16index + 1]); } return NULL; @@ -324,9 +323,8 @@ u8 get_current_channel_802_11n(u8 *pu8msa, u16 u16RxLen) while (index < (u16RxLen - FCS_LEN)) { if (pu8msa[index] == IDSPARMS) return pu8msa[index + 2]; - else - /* Increment index by length information and header */ - index += pu8msa[index + 1] + IE_HDR_LEN; + /* Increment index by length information and header */ + index += pu8msa[index + 1] + IE_HDR_LEN; } /* Return current channel information from the MIB, if beacon/probe */ From 09c02cb5a610b33425169cabae3efed390ff400a Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Sat, 17 Oct 2015 15:25:35 +0300 Subject: [PATCH 1965/2431] Staging: wilc1000: Remove unnecessary parentheses Problem found using checkpatch.pl: CHECK: Unnecessary parentheses around pstrNetworkInfo->u8SsidLen Signed-off-by: Aybuke Ozdemir Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/coreconfigurator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index cea7c6feb4bf..427adfd295da 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -422,7 +422,7 @@ s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo) pstrNetworkInfo->u64Tsf = u32Tsf_Lo | ((u64)u32Tsf_Hi << 32); /* Get SSID */ - get_ssid(pu8msa, pstrNetworkInfo->au8ssid, &(pstrNetworkInfo->u8SsidLen)); + get_ssid(pu8msa, pstrNetworkInfo->au8ssid, &pstrNetworkInfo->u8SsidLen); /* Get BSSID */ get_BSSID(pu8msa, pstrNetworkInfo->au8bssid); From 13d0580cd1eabceb1661049d8830d913d1e31098 Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Sat, 17 Oct 2015 23:52:26 +0800 Subject: [PATCH 1966/2431] Staging: mt29f_spinand: Remove space after a cast Modify retval to reflect removal of space during cast operation. Checkpatch found this issue. CHECK: No space is necessary after a cast Signed-off-by: Eva Rachel Retuya Signed-off-by: Greg Kroah-Hartman --- drivers/staging/mt29f_spinand/mt29f_spinand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index 1aa449e5fecf..cf982288f68e 100644 --- a/drivers/staging/mt29f_spinand/mt29f_spinand.c +++ b/drivers/staging/mt29f_spinand/mt29f_spinand.c @@ -594,7 +594,7 @@ static int spinand_erase_block(struct spi_device *spi_nand, u16 block_id) if (retval < 0) { dev_err(&spi_nand->dev, "error %d reading status register\n", - (int) retval); + (int)retval); return retval; } From a5eabae947af6f6e1f7c5c7a6eeb5fb691c100ba Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 17 Oct 2015 21:20:00 +0530 Subject: [PATCH 1967/2431] staging: sm750fb: Prefer using BIT Macro Replace bit shifting on 1 with the BIT(x) Macro Problem found using checkpatch.pl WARNING: 'Prefer using the BIT macro' Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_display.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_display.h b/drivers/staging/sm750fb/ddk750_display.h index 3d2e8b401e71..ca35aa1df9d7 100644 --- a/drivers/staging/sm750fb/ddk750_display.h +++ b/drivers/staging/sm750fb/ddk750_display.h @@ -17,7 +17,7 @@ 0: both off */ #define PRI_TP_OFFSET 4 -#define PRI_TP_MASK (1 << PRI_TP_OFFSET) +#define PRI_TP_MASK BIT(PRI_TP_OFFSET) #define PRI_TP_USAGE (PRI_TP_MASK << 16) #define PRI_TP_ON ((0x1 << PRI_TP_OFFSET)|PRI_TP_USAGE) #define PRI_TP_OFF ((0x0 << PRI_TP_OFFSET)|PRI_TP_USAGE) @@ -27,18 +27,18 @@ 80000[27:24] */ #define PNL_SEQ_OFFSET 6 -#define PNL_SEQ_MASK (1 << PNL_SEQ_OFFSET) +#define PNL_SEQ_MASK BIT(PNL_SEQ_OFFSET) #define PNL_SEQ_USAGE (PNL_SEQ_MASK << 16) -#define PNL_SEQ_ON ((1 << PNL_SEQ_OFFSET)|PNL_SEQ_USAGE) +#define PNL_SEQ_ON (BIT(PNL_SEQ_OFFSET)|PNL_SEQ_USAGE) #define PNL_SEQ_OFF ((0 << PNL_SEQ_OFFSET)|PNL_SEQ_USAGE) /* dual digital output 80000[19] */ #define DUAL_TFT_OFFSET 8 -#define DUAL_TFT_MASK (1 << DUAL_TFT_OFFSET) +#define DUAL_TFT_MASK BIT(DUAL_TFT_OFFSET) #define DUAL_TFT_USAGE (DUAL_TFT_MASK << 16) -#define DUAL_TFT_ON ((1 << DUAL_TFT_OFFSET)|DUAL_TFT_USAGE) +#define DUAL_TFT_ON (BIT(DUAL_TFT_OFFSET)|DUAL_TFT_USAGE) #define DUAL_TFT_OFF ((0 << DUAL_TFT_OFFSET)|DUAL_TFT_USAGE) /* secondary timing & plane enable bit @@ -46,7 +46,7 @@ 0: both off */ #define SEC_TP_OFFSET 5 -#define SEC_TP_MASK (1 << SEC_TP_OFFSET) +#define SEC_TP_MASK BIT(SEC_TP_OFFSET) #define SEC_TP_USAGE (SEC_TP_MASK << 16) #define SEC_TP_ON ((0x1 << SEC_TP_OFFSET)|SEC_TP_USAGE) #define SEC_TP_OFF ((0x0 << SEC_TP_OFFSET)|SEC_TP_USAGE) @@ -65,7 +65,7 @@ 4[20] */ #define DAC_OFFSET 7 -#define DAC_MASK (1 << DAC_OFFSET) +#define DAC_MASK BIT(DAC_OFFSET) #define DAC_USAGE (DAC_MASK << 16) #define DAC_ON ((0x0 << DAC_OFFSET)|DAC_USAGE) #define DAC_OFF ((0x1 << DAC_OFFSET)|DAC_USAGE) From 0924a89b0b06ce569c7f536984d64bf6cd2cb4d4 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:54 +0100 Subject: [PATCH 1968/2431] staging: vt6655: device_main Replace uIdx with idx. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 673ca47e1889..0ed82a644d15 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -142,8 +142,8 @@ static void device_init_rd1_ring(struct vnt_private *priv); static void device_init_td0_ring(struct vnt_private *priv); static void device_init_td1_ring(struct vnt_private *priv); -static int device_rx_srv(struct vnt_private *priv, unsigned int uIdx); -static int device_tx_srv(struct vnt_private *priv, unsigned int uIdx); +static int device_rx_srv(struct vnt_private *priv, unsigned int idx); +static int device_tx_srv(struct vnt_private *priv, unsigned int idx); static bool device_alloc_rx_buf(struct vnt_private *, struct vnt_rx_desc *); static void device_init_registers(struct vnt_private *priv); static void device_free_tx_buf(struct vnt_private *, struct vnt_tx_desc *); @@ -700,12 +700,12 @@ static void device_free_td1_ring(struct vnt_private *priv) /*-----------------------------------------------------------------*/ -static int device_rx_srv(struct vnt_private *priv, unsigned int uIdx) +static int device_rx_srv(struct vnt_private *priv, unsigned int idx) { struct vnt_rx_desc *rd; int works = 0; - for (rd = priv->pCurrRD[uIdx]; + for (rd = priv->pCurrRD[idx]; rd->rd0.owner == OWNED_BY_HOST; rd = rd->next) { if (works++ > 15) @@ -724,7 +724,7 @@ static int device_rx_srv(struct vnt_private *priv, unsigned int uIdx) rd->rd0.owner = OWNED_BY_NIC; } - priv->pCurrRD[uIdx] = rd; + priv->pCurrRD[idx] = rd; return works; } @@ -829,14 +829,14 @@ static int vnt_int_report_rate(struct vnt_private *priv, return 0; } -static int device_tx_srv(struct vnt_private *priv, unsigned int uIdx) +static int device_tx_srv(struct vnt_private *priv, unsigned int idx) { struct vnt_tx_desc *desc; int works = 0; unsigned char byTsr0; unsigned char byTsr1; - for (desc = priv->apTailTD[uIdx]; priv->iTDUsed[uIdx] > 0; desc = desc->next) { + for (desc = priv->apTailTD[idx]; priv->iTDUsed[idx] > 0; desc = desc->next) { if (desc->td0.owner == OWNED_BY_NIC) break; if (works++ > 15) @@ -851,30 +851,30 @@ static int device_tx_srv(struct vnt_private *priv, unsigned int uIdx) if (!(byTsr1 & TSR1_TERR)) { if (byTsr0 != 0) { pr_debug(" Tx[%d] OK but has error. tsr1[%02X] tsr0[%02X]\n", - (int)uIdx, byTsr1, + (int)idx, byTsr1, byTsr0); } } else { pr_debug(" Tx[%d] dropped & tsr1[%02X] tsr0[%02X]\n", - (int)uIdx, byTsr1, byTsr0); + (int)idx, byTsr1, byTsr0); } } if (byTsr1 & TSR1_TERR) { if ((desc->td_info->flags & TD_FLAGS_PRIV_SKB) != 0) { pr_debug(" Tx[%d] fail has error. tsr1[%02X] tsr0[%02X]\n", - (int)uIdx, byTsr1, byTsr0); + (int)idx, byTsr1, byTsr0); } } vnt_int_report_rate(priv, desc->td_info, byTsr0, byTsr1); device_free_tx_buf(priv, desc); - priv->iTDUsed[uIdx]--; + priv->iTDUsed[idx]--; } } - priv->apTailTD[uIdx] = desc; + priv->apTailTD[idx] = desc; return works; } From 5137897949ab640910fc3bbb5d46c0d9c8492e9f Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:55 +0100 Subject: [PATCH 1969/2431] staging: vt6655: device.h remove unused macros. None of these are used in driver anymore. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device.h | 64 --------------------------------- 1 file changed, 64 deletions(-) diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 271a719fe7dd..4b8573bbbe34 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -60,10 +60,6 @@ #include #include /* New driver API */ -#ifndef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT -#define WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT -#endif - /* device specific */ #include "device_cfg.h" @@ -87,30 +83,8 @@ #define RATE_36M 9 #define RATE_48M 10 #define RATE_54M 11 -#define RATE_AUTO 12 #define MAX_RATE 12 -#define MAC_MAX_CONTEXT_REG (256+128) - -#define MAX_MULTICAST_ADDRESS_NUM 32 -#define MULTICAST_ADDRESS_LIST_SIZE (MAX_MULTICAST_ADDRESS_NUM * ETH_ALEN) - -#define DUPLICATE_RX_CACHE_LENGTH 5 - -#define NUM_KEY_ENTRY 11 - -#define TX_WEP_NONE 0 -#define TX_WEP_OTF 1 -#define TX_WEP_SW 2 -#define TX_WEP_SWOTP 3 -#define TX_WEP_OTPSW 4 -#define TX_WEP_SW232 5 - -#define KEYSEL_WEP40 0 -#define KEYSEL_WEP104 1 -#define KEYSEL_TKIP 2 -#define KEYSEL_CCMP 3 - #define AUTO_FB_NONE 0 #define AUTO_FB_0 1 #define AUTO_FB_1 2 @@ -126,26 +100,15 @@ #define ANT_RXD_TXB 4 #define ANT_UNKNOWN 0xFF -#define MAXCHECKHANGCNT 4 - #define BB_VGA_LEVEL 4 #define BB_VGA_CHANGE_THRESHOLD 16 -#ifndef RUN_AT -#define RUN_AT(x) (jiffies+(x)) -#endif - #define MAKE_BEACON_RESERVED 10 /* (us) */ -/* DMA related */ -#define RESERV_AC0DMA 4 - /* BUILD OBJ mode */ #define AVAIL_TD(p, q) ((p)->sOpts.nTxDescs[(q)] - ((p)->iTDUsed[(q)])) -#define NUM 64 - /* 0:11A 1:11B 2:11G */ #define BB_TYPE_11A 0 #define BB_TYPE_11B 1 @@ -162,33 +125,6 @@ typedef enum { OWNED_BY_NIC = 1 } DEVICE_OWNER_TYPE, *PDEVICE_OWNER_TYPE; -/* flags for options */ -#define DEVICE_FLAGS_IP_ALIGN 0x00000001UL -#define DEVICE_FLAGS_PREAMBLE_TYPE 0x00000002UL -#define DEVICE_FLAGS_OP_MODE 0x00000004UL -#define DEVICE_FLAGS_PS_MODE 0x00000008UL -#define DEVICE_FLAGS_80211h_MODE 0x00000010UL -#define DEVICE_FLAGS_DiversityANT 0x00000020UL - -/* flags for driver status */ -#define DEVICE_FLAGS_OPENED 0x00010000UL -#define DEVICE_FLAGS_WOL_ENABLED 0x00080000UL -/* flags for capabilities */ -#define DEVICE_FLAGS_TX_ALIGN 0x01000000UL -#define DEVICE_FLAGS_HAVE_CAM 0x02000000UL -#define DEVICE_FLAGS_FLOW_CTRL 0x04000000UL - -/* flags for MII status */ -#define DEVICE_LINK_FAIL 0x00000001UL -#define DEVICE_SPEED_10 0x00000002UL -#define DEVICE_SPEED_100 0x00000004UL -#define DEVICE_SPEED_1000 0x00000008UL -#define DEVICE_DUPLEX_FULL 0x00000010UL -#define DEVICE_AUTONEG_ENABLE 0x00000020UL -#define DEVICE_FORCED_BY_EEPROM 0x00000040UL -/* for device_set_media_duplex */ -#define DEVICE_LINK_CHANGE 0x00000001UL - typedef struct __device_opt { int nRxDescs0; /* Number of RX descriptors0 */ int nRxDescs1; /* Number of RX descriptors1 */ From 83373ac0be558428d64b60a994e03eb607313f2a Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:56 +0100 Subject: [PATCH 1970/2431] staging: vt6655: device.h remove unsed headers. Most of these headers rate to old api that are no longer used in driver. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device.h | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 4b8573bbbe34..be6c42b6a358 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -31,34 +31,12 @@ #include #include -#include -#include -#include #include -#include -#include #include #include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -/* Include Wireless Extension definition and check version - Jean II */ #include -#include -#include /* New driver API */ /* device specific */ From 28c777cb1f828197b3896c6d549e6e091e68e36c Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:57 +0100 Subject: [PATCH 1971/2431] staging: vt6655: device.h remove typedef enum Covert values to macros. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index be6c42b6a358..83bb68bb66ee 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -98,10 +98,8 @@ #define PK_TYPE_11GB 2 #define PK_TYPE_11GA 3 -typedef enum { - OWNED_BY_HOST = 0, - OWNED_BY_NIC = 1 -} DEVICE_OWNER_TYPE, *PDEVICE_OWNER_TYPE; +#define OWNED_BY_HOST 0 +#define OWNED_BY_NIC 1 typedef struct __device_opt { int nRxDescs0; /* Number of RX descriptors0 */ From bed02d93a1e3d6880982f9429aa75334afd29851 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:58 +0100 Subject: [PATCH 1972/2431] staging: vt6655: replace typedef struct __device_opt with struct vnt_options and members rx_descs0 for nRxDescs0 rx_descs1 for nRxDescs1 tx_descs for nTxDescs int_works short_retry long_retry bbp_type flags Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 8 +-- drivers/staging/vt6655/device.h | 24 ++++---- drivers/staging/vt6655/device_main.c | 92 ++++++++++++++-------------- 3 files changed, 62 insertions(+), 62 deletions(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 5c7f07e183c7..71c9b97634ea 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -523,12 +523,12 @@ CARDvSafeResetTx( for (uu = 0; uu < TYPE_MAXTD; uu++) pDevice->iTDUsed[uu] = 0; - for (uu = 0; uu < pDevice->sOpts.nTxDescs[0]; uu++) { + for (uu = 0; uu < pDevice->sOpts.tx_descs[0]; uu++) { pCurrTD = &(pDevice->apTD0Rings[uu]); pCurrTD->td0.owner = OWNED_BY_HOST; /* init all Tx Packet pointer to NULL */ } - for (uu = 0; uu < pDevice->sOpts.nTxDescs[1]; uu++) { + for (uu = 0; uu < pDevice->sOpts.tx_descs[1]; uu++) { pCurrTD = &(pDevice->apTD1Rings[uu]); pCurrTD->td0.owner = OWNED_BY_HOST; /* init all Tx Packet pointer to NULL */ @@ -571,7 +571,7 @@ CARDvSafeResetRx( pDevice->pCurrRD[1] = &(pDevice->aRD1Ring[0]); /* init state, all RD is chip's */ - for (uu = 0; uu < pDevice->sOpts.nRxDescs0; uu++) { + for (uu = 0; uu < pDevice->sOpts.rx_descs0; uu++) { pDesc = &(pDevice->aRD0Ring[uu]); pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); pDesc->rd0.owner = OWNED_BY_NIC; @@ -579,7 +579,7 @@ CARDvSafeResetRx( } /* init state, all RD is chip's */ - for (uu = 0; uu < pDevice->sOpts.nRxDescs1; uu++) { + for (uu = 0; uu < pDevice->sOpts.rx_descs1; uu++) { pDesc = &(pDevice->aRD1Ring[uu]); pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); pDesc->rd0.owner = OWNED_BY_NIC; diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 83bb68bb66ee..aca6e00a368b 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -85,7 +85,7 @@ /* BUILD OBJ mode */ -#define AVAIL_TD(p, q) ((p)->sOpts.nTxDescs[(q)] - ((p)->iTDUsed[(q)])) +#define AVAIL_TD(p, q) ((p)->sOpts.tx_descs[(q)] - ((p)->iTDUsed[(q)])) /* 0:11A 1:11B 2:11G */ #define BB_TYPE_11A 0 @@ -101,16 +101,16 @@ #define OWNED_BY_HOST 0 #define OWNED_BY_NIC 1 -typedef struct __device_opt { - int nRxDescs0; /* Number of RX descriptors0 */ - int nRxDescs1; /* Number of RX descriptors1 */ - int nTxDescs[2]; /* Number of TX descriptors 0, 1 */ - int int_works; /* interrupt limits */ - int short_retry; - int long_retry; - int bbp_type; - u32 flags; -} OPTIONS, *POPTIONS; +struct vnt_options { + int rx_descs0; /* Number of RX descriptors0 */ + int rx_descs1; /* Number of RX descriptors1 */ + int tx_descs[2]; /* Number of TX descriptors 0, 1 */ + int int_works; /* interrupt limits */ + int short_retry; + int long_retry; + int bbp_type; + u32 flags; +}; struct vnt_private { struct pci_dev *pcid; @@ -159,7 +159,7 @@ struct vnt_private { struct vnt_rx_desc *aRD1Ring; struct vnt_rx_desc *pCurrRD[TYPE_MAXRD]; - OPTIONS sOpts; + struct vnt_options sOpts; u32 flags; diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 0ed82a644d15..8bca3fcf09be 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -168,12 +168,12 @@ static void vt6655_remove(struct pci_dev *pcid) static void device_get_options(struct vnt_private *priv) { - POPTIONS pOpts = &priv->sOpts; + struct vnt_options *pOpts = &priv->sOpts; - pOpts->nRxDescs0 = RX_DESC_DEF0; - pOpts->nRxDescs1 = RX_DESC_DEF1; - pOpts->nTxDescs[0] = TX_DESC_DEF0; - pOpts->nTxDescs[1] = TX_DESC_DEF1; + pOpts->rx_descs0 = RX_DESC_DEF0; + pOpts->rx_descs1 = RX_DESC_DEF1; + pOpts->tx_descs[0] = TX_DESC_DEF0; + pOpts->tx_descs[1] = TX_DESC_DEF1; pOpts->int_works = INT_WORKS_DEF; pOpts->short_retry = SHORT_RETRY_DEF; @@ -452,10 +452,10 @@ static bool device_init_rings(struct vnt_private *priv) /*allocate all RD/TD rings a single pool*/ vir_pool = dma_zalloc_coherent(&priv->pcid->dev, - priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + - priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + - priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + - priv->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc) + + priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc) + + priv->sOpts.tx_descs[1] * sizeof(struct vnt_tx_desc), &priv->pool_dma, GFP_ATOMIC); if (vir_pool == NULL) { dev_err(&priv->pcid->dev, "allocate desc dma memory failed\n"); @@ -464,15 +464,15 @@ static bool device_init_rings(struct vnt_private *priv) priv->aRD0Ring = vir_pool; priv->aRD1Ring = vir_pool + - priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc); + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc); priv->rd0_pool_dma = priv->pool_dma; priv->rd1_pool_dma = priv->rd0_pool_dma + - priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc); + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc); priv->tx0_bufs = dma_zalloc_coherent(&priv->pcid->dev, - priv->sOpts.nTxDescs[0] * PKT_BUF_SZ + - priv->sOpts.nTxDescs[1] * PKT_BUF_SZ + + priv->sOpts.tx_descs[0] * PKT_BUF_SZ + + priv->sOpts.tx_descs[1] * PKT_BUF_SZ + CB_BEACON_BUF_SIZE + CB_MAX_BUF_SIZE, &priv->tx_bufs_dma0, @@ -481,44 +481,44 @@ static bool device_init_rings(struct vnt_private *priv) dev_err(&priv->pcid->dev, "allocate buf dma memory failed\n"); dma_free_coherent(&priv->pcid->dev, - priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + - priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + - priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + - priv->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc) + + priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc) + + priv->sOpts.tx_descs[1] * sizeof(struct vnt_tx_desc), vir_pool, priv->pool_dma); return false; } priv->td0_pool_dma = priv->rd1_pool_dma + - priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc); + priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc); priv->td1_pool_dma = priv->td0_pool_dma + - priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc); + priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc); /* vir_pool: pvoid type */ priv->apTD0Rings = vir_pool - + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) - + priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc); + + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc); priv->apTD1Rings = vir_pool - + priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) - + priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) - + priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc); + + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc) + + priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc); priv->tx1_bufs = priv->tx0_bufs + - priv->sOpts.nTxDescs[0] * PKT_BUF_SZ; + priv->sOpts.tx_descs[0] * PKT_BUF_SZ; priv->tx_beacon_bufs = priv->tx1_bufs + - priv->sOpts.nTxDescs[1] * PKT_BUF_SZ; + priv->sOpts.tx_descs[1] * PKT_BUF_SZ; priv->pbyTmpBuff = priv->tx_beacon_bufs + CB_BEACON_BUF_SIZE; priv->tx_bufs_dma1 = priv->tx_bufs_dma0 + - priv->sOpts.nTxDescs[0] * PKT_BUF_SZ; + priv->sOpts.tx_descs[0] * PKT_BUF_SZ; priv->tx_beacon_dma = priv->tx_bufs_dma1 + - priv->sOpts.nTxDescs[1] * PKT_BUF_SZ; + priv->sOpts.tx_descs[1] * PKT_BUF_SZ; return true; } @@ -526,16 +526,16 @@ static bool device_init_rings(struct vnt_private *priv) static void device_free_rings(struct vnt_private *priv) { dma_free_coherent(&priv->pcid->dev, - priv->sOpts.nRxDescs0 * sizeof(struct vnt_rx_desc) + - priv->sOpts.nRxDescs1 * sizeof(struct vnt_rx_desc) + - priv->sOpts.nTxDescs[0] * sizeof(struct vnt_tx_desc) + - priv->sOpts.nTxDescs[1] * sizeof(struct vnt_tx_desc), + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc) + + priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc) + + priv->sOpts.tx_descs[1] * sizeof(struct vnt_tx_desc), priv->aRD0Ring, priv->pool_dma); if (priv->tx0_bufs) dma_free_coherent(&priv->pcid->dev, - priv->sOpts.nTxDescs[0] * PKT_BUF_SZ + - priv->sOpts.nTxDescs[1] * PKT_BUF_SZ + + priv->sOpts.tx_descs[0] * PKT_BUF_SZ + + priv->sOpts.tx_descs[1] * PKT_BUF_SZ + CB_BEACON_BUF_SIZE + CB_MAX_BUF_SIZE, priv->tx0_bufs, priv->tx_bufs_dma0); @@ -548,7 +548,7 @@ static void device_init_rd0_ring(struct vnt_private *priv) struct vnt_rx_desc *desc; /* Init the RD0 ring entries */ - for (i = 0; i < priv->sOpts.nRxDescs0; + for (i = 0; i < priv->sOpts.rx_descs0; i ++, curr += sizeof(struct vnt_rx_desc)) { desc = &priv->aRD0Ring[i]; desc->rd_info = alloc_rd_info(); @@ -556,7 +556,7 @@ static void device_init_rd0_ring(struct vnt_private *priv) if (!device_alloc_rx_buf(priv, desc)) dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); - desc->next = &(priv->aRD0Ring[(i+1) % priv->sOpts.nRxDescs0]); + desc->next = &(priv->aRD0Ring[(i+1) % priv->sOpts.rx_descs0]); desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } @@ -572,7 +572,7 @@ static void device_init_rd1_ring(struct vnt_private *priv) struct vnt_rx_desc *desc; /* Init the RD1 ring entries */ - for (i = 0; i < priv->sOpts.nRxDescs1; + for (i = 0; i < priv->sOpts.rx_descs1; i ++, curr += sizeof(struct vnt_rx_desc)) { desc = &priv->aRD1Ring[i]; desc->rd_info = alloc_rd_info(); @@ -580,7 +580,7 @@ static void device_init_rd1_ring(struct vnt_private *priv) if (!device_alloc_rx_buf(priv, desc)) dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); - desc->next = &(priv->aRD1Ring[(i+1) % priv->sOpts.nRxDescs1]); + desc->next = &(priv->aRD1Ring[(i+1) % priv->sOpts.rx_descs1]); desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } @@ -593,7 +593,7 @@ static void device_free_rd0_ring(struct vnt_private *priv) { int i; - for (i = 0; i < priv->sOpts.nRxDescs0; i++) { + for (i = 0; i < priv->sOpts.rx_descs0; i++) { struct vnt_rx_desc *desc = &(priv->aRD0Ring[i]); struct vnt_rd_info *rd_info = desc->rd_info; @@ -610,7 +610,7 @@ static void device_free_rd1_ring(struct vnt_private *priv) { int i; - for (i = 0; i < priv->sOpts.nRxDescs1; i++) { + for (i = 0; i < priv->sOpts.rx_descs1; i++) { struct vnt_rx_desc *desc = &priv->aRD1Ring[i]; struct vnt_rd_info *rd_info = desc->rd_info; @@ -630,7 +630,7 @@ static void device_init_td0_ring(struct vnt_private *priv) struct vnt_tx_desc *desc; curr = priv->td0_pool_dma; - for (i = 0; i < priv->sOpts.nTxDescs[0]; + for (i = 0; i < priv->sOpts.tx_descs[0]; i++, curr += sizeof(struct vnt_tx_desc)) { desc = &priv->apTD0Rings[i]; desc->td_info = alloc_td_info(); @@ -638,7 +638,7 @@ static void device_init_td0_ring(struct vnt_private *priv) desc->td_info->buf = priv->tx0_bufs + i * PKT_BUF_SZ; desc->td_info->buf_dma = priv->tx_bufs_dma0 + i * PKT_BUF_SZ; - desc->next = &(priv->apTD0Rings[(i+1) % priv->sOpts.nTxDescs[0]]); + desc->next = &(priv->apTD0Rings[(i+1) % priv->sOpts.tx_descs[0]]); desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } @@ -655,7 +655,7 @@ static void device_init_td1_ring(struct vnt_private *priv) /* Init the TD ring entries */ curr = priv->td1_pool_dma; - for (i = 0; i < priv->sOpts.nTxDescs[1]; + for (i = 0; i < priv->sOpts.tx_descs[1]; i++, curr += sizeof(struct vnt_tx_desc)) { desc = &priv->apTD1Rings[i]; desc->td_info = alloc_td_info(); @@ -663,7 +663,7 @@ static void device_init_td1_ring(struct vnt_private *priv) desc->td_info->buf = priv->tx1_bufs + i * PKT_BUF_SZ; desc->td_info->buf_dma = priv->tx_bufs_dma1 + i * PKT_BUF_SZ; - desc->next = &(priv->apTD1Rings[(i + 1) % priv->sOpts.nTxDescs[1]]); + desc->next = &(priv->apTD1Rings[(i + 1) % priv->sOpts.tx_descs[1]]); desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } @@ -676,7 +676,7 @@ static void device_free_td0_ring(struct vnt_private *priv) { int i; - for (i = 0; i < priv->sOpts.nTxDescs[0]; i++) { + for (i = 0; i < priv->sOpts.tx_descs[0]; i++) { struct vnt_tx_desc *desc = &priv->apTD0Rings[i]; struct vnt_td_info *td_info = desc->td_info; @@ -689,7 +689,7 @@ static void device_free_td1_ring(struct vnt_private *priv) { int i; - for (i = 0; i < priv->sOpts.nTxDescs[1]; i++) { + for (i = 0; i < priv->sOpts.tx_descs[1]; i++) { struct vnt_tx_desc *desc = &priv->apTD1Rings[i]; struct vnt_td_info *td_info = desc->td_info; From e06cf9aba8dadb92b1ec12a757d0a824c022176f Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:59 +0100 Subject: [PATCH 1973/2431] staging: vt6655: remove static inline alloc_rd_info. Since this only contains one function and only used twice remove inline altogether. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device.h | 5 ----- drivers/staging/vt6655/device_main.c | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index aca6e00a368b..0002049e70e6 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -306,11 +306,6 @@ struct vnt_private { struct ieee80211_low_level_stats low_stats; }; -static inline struct vnt_rd_info *alloc_rd_info(void) -{ - return kzalloc(sizeof(struct vnt_rd_info), GFP_ATOMIC); -} - static inline struct vnt_td_info *alloc_td_info(void) { return kzalloc(sizeof(struct vnt_td_info), GFP_ATOMIC); diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 8bca3fcf09be..aa8f750ebf80 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -551,7 +551,7 @@ static void device_init_rd0_ring(struct vnt_private *priv) for (i = 0; i < priv->sOpts.rx_descs0; i ++, curr += sizeof(struct vnt_rx_desc)) { desc = &priv->aRD0Ring[i]; - desc->rd_info = alloc_rd_info(); + desc->rd_info = kzalloc(sizeof(*desc->rd_info), GFP_ATOMIC); if (!device_alloc_rx_buf(priv, desc)) dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); @@ -575,7 +575,7 @@ static void device_init_rd1_ring(struct vnt_private *priv) for (i = 0; i < priv->sOpts.rx_descs1; i ++, curr += sizeof(struct vnt_rx_desc)) { desc = &priv->aRD1Ring[i]; - desc->rd_info = alloc_rd_info(); + desc->rd_info = kzalloc(sizeof(*desc->rd_info), GFP_ATOMIC); if (!device_alloc_rx_buf(priv, desc)) dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); From 068b998835168b5107d1e62a346f52b9f44ed10b Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:33:00 +0100 Subject: [PATCH 1974/2431] staging: vt6655: remove static inline alloc_td_info. Since this only contains one function and used only twice remove inline altogether. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device.h | 4 ---- drivers/staging/vt6655/device_main.c | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 0002049e70e6..8be3e212f86c 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -306,8 +306,4 @@ struct vnt_private { struct ieee80211_low_level_stats low_stats; }; -static inline struct vnt_td_info *alloc_td_info(void) -{ - return kzalloc(sizeof(struct vnt_td_info), GFP_ATOMIC); -} #endif diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index aa8f750ebf80..d305d7ab466f 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -633,7 +633,7 @@ static void device_init_td0_ring(struct vnt_private *priv) for (i = 0; i < priv->sOpts.tx_descs[0]; i++, curr += sizeof(struct vnt_tx_desc)) { desc = &priv->apTD0Rings[i]; - desc->td_info = alloc_td_info(); + desc->td_info = kzalloc(sizeof(*desc->td_info), GFP_ATOMIC); desc->td_info->buf = priv->tx0_bufs + i * PKT_BUF_SZ; desc->td_info->buf_dma = priv->tx_bufs_dma0 + i * PKT_BUF_SZ; @@ -658,7 +658,7 @@ static void device_init_td1_ring(struct vnt_private *priv) for (i = 0; i < priv->sOpts.tx_descs[1]; i++, curr += sizeof(struct vnt_tx_desc)) { desc = &priv->apTD1Rings[i]; - desc->td_info = alloc_td_info(); + desc->td_info = kzalloc(sizeof(*desc->td_info), GFP_ATOMIC); desc->td_info->buf = priv->tx1_bufs + i * PKT_BUF_SZ; desc->td_info->buf_dma = priv->tx_bufs_dma1 + i * PKT_BUF_SZ; From bc667b99ccb7392c33b9fd46360356b11755979c Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:33:01 +0100 Subject: [PATCH 1975/2431] staging: vt6655: rename pOpts and sOpts to opts. bring pointers and members into line. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 8 +- drivers/staging/vt6655/device.h | 4 +- drivers/staging/vt6655/device_main.c | 108 +++++++++++++-------------- 3 files changed, 60 insertions(+), 60 deletions(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 71c9b97634ea..c45e494fc9a9 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -523,12 +523,12 @@ CARDvSafeResetTx( for (uu = 0; uu < TYPE_MAXTD; uu++) pDevice->iTDUsed[uu] = 0; - for (uu = 0; uu < pDevice->sOpts.tx_descs[0]; uu++) { + for (uu = 0; uu < pDevice->opts.tx_descs[0]; uu++) { pCurrTD = &(pDevice->apTD0Rings[uu]); pCurrTD->td0.owner = OWNED_BY_HOST; /* init all Tx Packet pointer to NULL */ } - for (uu = 0; uu < pDevice->sOpts.tx_descs[1]; uu++) { + for (uu = 0; uu < pDevice->opts.tx_descs[1]; uu++) { pCurrTD = &(pDevice->apTD1Rings[uu]); pCurrTD->td0.owner = OWNED_BY_HOST; /* init all Tx Packet pointer to NULL */ @@ -571,7 +571,7 @@ CARDvSafeResetRx( pDevice->pCurrRD[1] = &(pDevice->aRD1Ring[0]); /* init state, all RD is chip's */ - for (uu = 0; uu < pDevice->sOpts.rx_descs0; uu++) { + for (uu = 0; uu < pDevice->opts.rx_descs0; uu++) { pDesc = &(pDevice->aRD0Ring[uu]); pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); pDesc->rd0.owner = OWNED_BY_NIC; @@ -579,7 +579,7 @@ CARDvSafeResetRx( } /* init state, all RD is chip's */ - for (uu = 0; uu < pDevice->sOpts.rx_descs1; uu++) { + for (uu = 0; uu < pDevice->opts.rx_descs1; uu++) { pDesc = &(pDevice->aRD1Ring[uu]); pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); pDesc->rd0.owner = OWNED_BY_NIC; diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 8be3e212f86c..55405e058196 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -85,7 +85,7 @@ /* BUILD OBJ mode */ -#define AVAIL_TD(p, q) ((p)->sOpts.tx_descs[(q)] - ((p)->iTDUsed[(q)])) +#define AVAIL_TD(p, q) ((p)->opts.tx_descs[(q)] - ((p)->iTDUsed[(q)])) /* 0:11A 1:11B 2:11G */ #define BB_TYPE_11A 0 @@ -159,7 +159,7 @@ struct vnt_private { struct vnt_rx_desc *aRD1Ring; struct vnt_rx_desc *pCurrRD[TYPE_MAXRD]; - struct vnt_options sOpts; + struct vnt_options opts; u32 flags; diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index d305d7ab466f..fefbf826c622 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -168,25 +168,25 @@ static void vt6655_remove(struct pci_dev *pcid) static void device_get_options(struct vnt_private *priv) { - struct vnt_options *pOpts = &priv->sOpts; + struct vnt_options *opts = &priv->opts; - pOpts->rx_descs0 = RX_DESC_DEF0; - pOpts->rx_descs1 = RX_DESC_DEF1; - pOpts->tx_descs[0] = TX_DESC_DEF0; - pOpts->tx_descs[1] = TX_DESC_DEF1; - pOpts->int_works = INT_WORKS_DEF; + opts->rx_descs0 = RX_DESC_DEF0; + opts->rx_descs1 = RX_DESC_DEF1; + opts->tx_descs[0] = TX_DESC_DEF0; + opts->tx_descs[1] = TX_DESC_DEF1; + opts->int_works = INT_WORKS_DEF; - pOpts->short_retry = SHORT_RETRY_DEF; - pOpts->long_retry = LONG_RETRY_DEF; - pOpts->bbp_type = BBP_TYPE_DEF; + opts->short_retry = SHORT_RETRY_DEF; + opts->long_retry = LONG_RETRY_DEF; + opts->bbp_type = BBP_TYPE_DEF; } static void device_set_options(struct vnt_private *priv) { - priv->byShortRetryLimit = priv->sOpts.short_retry; - priv->byLongRetryLimit = priv->sOpts.long_retry; - priv->byBBType = priv->sOpts.bbp_type; + priv->byShortRetryLimit = priv->opts.short_retry; + priv->byLongRetryLimit = priv->opts.long_retry; + priv->byBBType = priv->opts.bbp_type; priv->byPacketType = priv->byBBType; priv->byAutoFBCtrl = AUTO_FB_0; priv->bUpdateBBVGA = true; @@ -452,10 +452,10 @@ static bool device_init_rings(struct vnt_private *priv) /*allocate all RD/TD rings a single pool*/ vir_pool = dma_zalloc_coherent(&priv->pcid->dev, - priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) + - priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc) + - priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc) + - priv->sOpts.tx_descs[1] * sizeof(struct vnt_tx_desc), + priv->opts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->opts.rx_descs1 * sizeof(struct vnt_rx_desc) + + priv->opts.tx_descs[0] * sizeof(struct vnt_tx_desc) + + priv->opts.tx_descs[1] * sizeof(struct vnt_tx_desc), &priv->pool_dma, GFP_ATOMIC); if (vir_pool == NULL) { dev_err(&priv->pcid->dev, "allocate desc dma memory failed\n"); @@ -464,15 +464,15 @@ static bool device_init_rings(struct vnt_private *priv) priv->aRD0Ring = vir_pool; priv->aRD1Ring = vir_pool + - priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc); + priv->opts.rx_descs0 * sizeof(struct vnt_rx_desc); priv->rd0_pool_dma = priv->pool_dma; priv->rd1_pool_dma = priv->rd0_pool_dma + - priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc); + priv->opts.rx_descs0 * sizeof(struct vnt_rx_desc); priv->tx0_bufs = dma_zalloc_coherent(&priv->pcid->dev, - priv->sOpts.tx_descs[0] * PKT_BUF_SZ + - priv->sOpts.tx_descs[1] * PKT_BUF_SZ + + priv->opts.tx_descs[0] * PKT_BUF_SZ + + priv->opts.tx_descs[1] * PKT_BUF_SZ + CB_BEACON_BUF_SIZE + CB_MAX_BUF_SIZE, &priv->tx_bufs_dma0, @@ -481,44 +481,44 @@ static bool device_init_rings(struct vnt_private *priv) dev_err(&priv->pcid->dev, "allocate buf dma memory failed\n"); dma_free_coherent(&priv->pcid->dev, - priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) + - priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc) + - priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc) + - priv->sOpts.tx_descs[1] * sizeof(struct vnt_tx_desc), + priv->opts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->opts.rx_descs1 * sizeof(struct vnt_rx_desc) + + priv->opts.tx_descs[0] * sizeof(struct vnt_tx_desc) + + priv->opts.tx_descs[1] * sizeof(struct vnt_tx_desc), vir_pool, priv->pool_dma); return false; } priv->td0_pool_dma = priv->rd1_pool_dma + - priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc); + priv->opts.rx_descs1 * sizeof(struct vnt_rx_desc); priv->td1_pool_dma = priv->td0_pool_dma + - priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc); + priv->opts.tx_descs[0] * sizeof(struct vnt_tx_desc); /* vir_pool: pvoid type */ priv->apTD0Rings = vir_pool - + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) - + priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc); + + priv->opts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->opts.rx_descs1 * sizeof(struct vnt_rx_desc); priv->apTD1Rings = vir_pool - + priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) - + priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc) - + priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc); + + priv->opts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->opts.rx_descs1 * sizeof(struct vnt_rx_desc) + + priv->opts.tx_descs[0] * sizeof(struct vnt_tx_desc); priv->tx1_bufs = priv->tx0_bufs + - priv->sOpts.tx_descs[0] * PKT_BUF_SZ; + priv->opts.tx_descs[0] * PKT_BUF_SZ; priv->tx_beacon_bufs = priv->tx1_bufs + - priv->sOpts.tx_descs[1] * PKT_BUF_SZ; + priv->opts.tx_descs[1] * PKT_BUF_SZ; priv->pbyTmpBuff = priv->tx_beacon_bufs + CB_BEACON_BUF_SIZE; priv->tx_bufs_dma1 = priv->tx_bufs_dma0 + - priv->sOpts.tx_descs[0] * PKT_BUF_SZ; + priv->opts.tx_descs[0] * PKT_BUF_SZ; priv->tx_beacon_dma = priv->tx_bufs_dma1 + - priv->sOpts.tx_descs[1] * PKT_BUF_SZ; + priv->opts.tx_descs[1] * PKT_BUF_SZ; return true; } @@ -526,16 +526,16 @@ static bool device_init_rings(struct vnt_private *priv) static void device_free_rings(struct vnt_private *priv) { dma_free_coherent(&priv->pcid->dev, - priv->sOpts.rx_descs0 * sizeof(struct vnt_rx_desc) + - priv->sOpts.rx_descs1 * sizeof(struct vnt_rx_desc) + - priv->sOpts.tx_descs[0] * sizeof(struct vnt_tx_desc) + - priv->sOpts.tx_descs[1] * sizeof(struct vnt_tx_desc), + priv->opts.rx_descs0 * sizeof(struct vnt_rx_desc) + + priv->opts.rx_descs1 * sizeof(struct vnt_rx_desc) + + priv->opts.tx_descs[0] * sizeof(struct vnt_tx_desc) + + priv->opts.tx_descs[1] * sizeof(struct vnt_tx_desc), priv->aRD0Ring, priv->pool_dma); if (priv->tx0_bufs) dma_free_coherent(&priv->pcid->dev, - priv->sOpts.tx_descs[0] * PKT_BUF_SZ + - priv->sOpts.tx_descs[1] * PKT_BUF_SZ + + priv->opts.tx_descs[0] * PKT_BUF_SZ + + priv->opts.tx_descs[1] * PKT_BUF_SZ + CB_BEACON_BUF_SIZE + CB_MAX_BUF_SIZE, priv->tx0_bufs, priv->tx_bufs_dma0); @@ -548,7 +548,7 @@ static void device_init_rd0_ring(struct vnt_private *priv) struct vnt_rx_desc *desc; /* Init the RD0 ring entries */ - for (i = 0; i < priv->sOpts.rx_descs0; + for (i = 0; i < priv->opts.rx_descs0; i ++, curr += sizeof(struct vnt_rx_desc)) { desc = &priv->aRD0Ring[i]; desc->rd_info = kzalloc(sizeof(*desc->rd_info), GFP_ATOMIC); @@ -556,7 +556,7 @@ static void device_init_rd0_ring(struct vnt_private *priv) if (!device_alloc_rx_buf(priv, desc)) dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); - desc->next = &(priv->aRD0Ring[(i+1) % priv->sOpts.rx_descs0]); + desc->next = &(priv->aRD0Ring[(i+1) % priv->opts.rx_descs0]); desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } @@ -572,7 +572,7 @@ static void device_init_rd1_ring(struct vnt_private *priv) struct vnt_rx_desc *desc; /* Init the RD1 ring entries */ - for (i = 0; i < priv->sOpts.rx_descs1; + for (i = 0; i < priv->opts.rx_descs1; i ++, curr += sizeof(struct vnt_rx_desc)) { desc = &priv->aRD1Ring[i]; desc->rd_info = kzalloc(sizeof(*desc->rd_info), GFP_ATOMIC); @@ -580,7 +580,7 @@ static void device_init_rd1_ring(struct vnt_private *priv) if (!device_alloc_rx_buf(priv, desc)) dev_err(&priv->pcid->dev, "can not alloc rx bufs\n"); - desc->next = &(priv->aRD1Ring[(i+1) % priv->sOpts.rx_descs1]); + desc->next = &(priv->aRD1Ring[(i+1) % priv->opts.rx_descs1]); desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_rx_desc)); } @@ -593,7 +593,7 @@ static void device_free_rd0_ring(struct vnt_private *priv) { int i; - for (i = 0; i < priv->sOpts.rx_descs0; i++) { + for (i = 0; i < priv->opts.rx_descs0; i++) { struct vnt_rx_desc *desc = &(priv->aRD0Ring[i]); struct vnt_rd_info *rd_info = desc->rd_info; @@ -610,7 +610,7 @@ static void device_free_rd1_ring(struct vnt_private *priv) { int i; - for (i = 0; i < priv->sOpts.rx_descs1; i++) { + for (i = 0; i < priv->opts.rx_descs1; i++) { struct vnt_rx_desc *desc = &priv->aRD1Ring[i]; struct vnt_rd_info *rd_info = desc->rd_info; @@ -630,7 +630,7 @@ static void device_init_td0_ring(struct vnt_private *priv) struct vnt_tx_desc *desc; curr = priv->td0_pool_dma; - for (i = 0; i < priv->sOpts.tx_descs[0]; + for (i = 0; i < priv->opts.tx_descs[0]; i++, curr += sizeof(struct vnt_tx_desc)) { desc = &priv->apTD0Rings[i]; desc->td_info = kzalloc(sizeof(*desc->td_info), GFP_ATOMIC); @@ -638,7 +638,7 @@ static void device_init_td0_ring(struct vnt_private *priv) desc->td_info->buf = priv->tx0_bufs + i * PKT_BUF_SZ; desc->td_info->buf_dma = priv->tx_bufs_dma0 + i * PKT_BUF_SZ; - desc->next = &(priv->apTD0Rings[(i+1) % priv->sOpts.tx_descs[0]]); + desc->next = &(priv->apTD0Rings[(i+1) % priv->opts.tx_descs[0]]); desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } @@ -655,7 +655,7 @@ static void device_init_td1_ring(struct vnt_private *priv) /* Init the TD ring entries */ curr = priv->td1_pool_dma; - for (i = 0; i < priv->sOpts.tx_descs[1]; + for (i = 0; i < priv->opts.tx_descs[1]; i++, curr += sizeof(struct vnt_tx_desc)) { desc = &priv->apTD1Rings[i]; desc->td_info = kzalloc(sizeof(*desc->td_info), GFP_ATOMIC); @@ -663,7 +663,7 @@ static void device_init_td1_ring(struct vnt_private *priv) desc->td_info->buf = priv->tx1_bufs + i * PKT_BUF_SZ; desc->td_info->buf_dma = priv->tx_bufs_dma1 + i * PKT_BUF_SZ; - desc->next = &(priv->apTD1Rings[(i + 1) % priv->sOpts.tx_descs[1]]); + desc->next = &(priv->apTD1Rings[(i + 1) % priv->opts.tx_descs[1]]); desc->next_desc = cpu_to_le32(curr + sizeof(struct vnt_tx_desc)); } @@ -676,7 +676,7 @@ static void device_free_td0_ring(struct vnt_private *priv) { int i; - for (i = 0; i < priv->sOpts.tx_descs[0]; i++) { + for (i = 0; i < priv->opts.tx_descs[0]; i++) { struct vnt_tx_desc *desc = &priv->apTD0Rings[i]; struct vnt_td_info *td_info = desc->td_info; @@ -689,7 +689,7 @@ static void device_free_td1_ring(struct vnt_private *priv) { int i; - for (i = 0; i < priv->sOpts.tx_descs[1]; i++) { + for (i = 0; i < priv->opts.tx_descs[1]; i++) { struct vnt_tx_desc *desc = &priv->apTD1Rings[i]; struct vnt_td_info *td_info = desc->td_info; @@ -1057,7 +1057,7 @@ static void vnt_interrupt_process(struct vnt_private *priv) MACvReceive0(priv->PortOffset); MACvReceive1(priv->PortOffset); - if (max_count > priv->sOpts.int_works) + if (max_count > priv->opts.int_works) break; } From 919612444272c00e0322a3d081cc720dbfa956d3 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:33:02 +0100 Subject: [PATCH 1976/2431] staging: vt6655: card.c rename pDevice with priv Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 386 +++++++++++++++++----------------- 1 file changed, 193 insertions(+), 193 deletions(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index c45e494fc9a9..76ad036cbbaa 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -197,13 +197,13 @@ s_vCalculateOFDMRParameter( * * Parameters: * In: - * pDevice - The adapter to be set + * priv - The adapter to be set * Out: * none * * Return Value: None. */ -bool CARDbSetPhyParameter(struct vnt_private *pDevice, u8 bb_type) +bool CARDbSetPhyParameter(struct vnt_private *priv, u8 bb_type) { unsigned char byCWMaxMin = 0; unsigned char bySlot = 0; @@ -214,77 +214,77 @@ bool CARDbSetPhyParameter(struct vnt_private *pDevice, u8 bb_type) /* Set SIFS, DIFS, EIFS, SlotTime, CwMin */ if (bb_type == BB_TYPE_11A) { - if (pDevice->byRFType == RF_AIROHA7230) { + if (priv->byRFType == RF_AIROHA7230) { /* AL7230 use single PAPE and connect to PAPE_2.4G */ - MACvSetBBType(pDevice->PortOffset, BB_TYPE_11G); - pDevice->abyBBVGA[0] = 0x20; - pDevice->abyBBVGA[2] = 0x10; - pDevice->abyBBVGA[3] = 0x10; - BBbReadEmbedded(pDevice, 0xE7, &byData); + MACvSetBBType(priv->PortOffset, BB_TYPE_11G); + priv->abyBBVGA[0] = 0x20; + priv->abyBBVGA[2] = 0x10; + priv->abyBBVGA[3] = 0x10; + BBbReadEmbedded(priv, 0xE7, &byData); if (byData == 0x1C) - BBbWriteEmbedded(pDevice, 0xE7, pDevice->abyBBVGA[0]); + BBbWriteEmbedded(priv, 0xE7, priv->abyBBVGA[0]); - } else if (pDevice->byRFType == RF_UW2452) { - MACvSetBBType(pDevice->PortOffset, BB_TYPE_11A); - pDevice->abyBBVGA[0] = 0x18; - BBbReadEmbedded(pDevice, 0xE7, &byData); + } else if (priv->byRFType == RF_UW2452) { + MACvSetBBType(priv->PortOffset, BB_TYPE_11A); + priv->abyBBVGA[0] = 0x18; + BBbReadEmbedded(priv, 0xE7, &byData); if (byData == 0x14) { - BBbWriteEmbedded(pDevice, 0xE7, pDevice->abyBBVGA[0]); - BBbWriteEmbedded(pDevice, 0xE1, 0x57); + BBbWriteEmbedded(priv, 0xE7, priv->abyBBVGA[0]); + BBbWriteEmbedded(priv, 0xE1, 0x57); } } else { - MACvSetBBType(pDevice->PortOffset, BB_TYPE_11A); + MACvSetBBType(priv->PortOffset, BB_TYPE_11A); } - BBbWriteEmbedded(pDevice, 0x88, 0x03); + BBbWriteEmbedded(priv, 0x88, 0x03); bySlot = C_SLOT_SHORT; bySIFS = C_SIFS_A; byDIFS = C_SIFS_A + 2*C_SLOT_SHORT; byCWMaxMin = 0xA4; } else if (bb_type == BB_TYPE_11B) { - MACvSetBBType(pDevice->PortOffset, BB_TYPE_11B); - if (pDevice->byRFType == RF_AIROHA7230) { - pDevice->abyBBVGA[0] = 0x1C; - pDevice->abyBBVGA[2] = 0x00; - pDevice->abyBBVGA[3] = 0x00; - BBbReadEmbedded(pDevice, 0xE7, &byData); + MACvSetBBType(priv->PortOffset, BB_TYPE_11B); + if (priv->byRFType == RF_AIROHA7230) { + priv->abyBBVGA[0] = 0x1C; + priv->abyBBVGA[2] = 0x00; + priv->abyBBVGA[3] = 0x00; + BBbReadEmbedded(priv, 0xE7, &byData); if (byData == 0x20) - BBbWriteEmbedded(pDevice, 0xE7, pDevice->abyBBVGA[0]); + BBbWriteEmbedded(priv, 0xE7, priv->abyBBVGA[0]); - } else if (pDevice->byRFType == RF_UW2452) { - pDevice->abyBBVGA[0] = 0x14; - BBbReadEmbedded(pDevice, 0xE7, &byData); + } else if (priv->byRFType == RF_UW2452) { + priv->abyBBVGA[0] = 0x14; + BBbReadEmbedded(priv, 0xE7, &byData); if (byData == 0x18) { - BBbWriteEmbedded(pDevice, 0xE7, pDevice->abyBBVGA[0]); - BBbWriteEmbedded(pDevice, 0xE1, 0xD3); + BBbWriteEmbedded(priv, 0xE7, priv->abyBBVGA[0]); + BBbWriteEmbedded(priv, 0xE1, 0xD3); } } - BBbWriteEmbedded(pDevice, 0x88, 0x02); + BBbWriteEmbedded(priv, 0x88, 0x02); bySlot = C_SLOT_LONG; bySIFS = C_SIFS_BG; byDIFS = C_SIFS_BG + 2*C_SLOT_LONG; byCWMaxMin = 0xA5; } else { /* PK_TYPE_11GA & PK_TYPE_11GB */ - MACvSetBBType(pDevice->PortOffset, BB_TYPE_11G); - if (pDevice->byRFType == RF_AIROHA7230) { - pDevice->abyBBVGA[0] = 0x1C; - pDevice->abyBBVGA[2] = 0x00; - pDevice->abyBBVGA[3] = 0x00; - BBbReadEmbedded(pDevice, 0xE7, &byData); + MACvSetBBType(priv->PortOffset, BB_TYPE_11G); + if (priv->byRFType == RF_AIROHA7230) { + priv->abyBBVGA[0] = 0x1C; + priv->abyBBVGA[2] = 0x00; + priv->abyBBVGA[3] = 0x00; + BBbReadEmbedded(priv, 0xE7, &byData); if (byData == 0x20) - BBbWriteEmbedded(pDevice, 0xE7, pDevice->abyBBVGA[0]); + BBbWriteEmbedded(priv, 0xE7, priv->abyBBVGA[0]); - } else if (pDevice->byRFType == RF_UW2452) { - pDevice->abyBBVGA[0] = 0x14; - BBbReadEmbedded(pDevice, 0xE7, &byData); + } else if (priv->byRFType == RF_UW2452) { + priv->abyBBVGA[0] = 0x14; + BBbReadEmbedded(priv, 0xE7, &byData); if (byData == 0x18) { - BBbWriteEmbedded(pDevice, 0xE7, pDevice->abyBBVGA[0]); - BBbWriteEmbedded(pDevice, 0xE1, 0xD3); + BBbWriteEmbedded(priv, 0xE7, priv->abyBBVGA[0]); + BBbWriteEmbedded(priv, 0xE1, 0xD3); } } - BBbWriteEmbedded(pDevice, 0x88, 0x08); + BBbWriteEmbedded(priv, 0x88, 0x08); bySIFS = C_SIFS_BG; - if (pDevice->bShortSlotTime) { + if (priv->bShortSlotTime) { bySlot = C_SLOT_SHORT; byDIFS = C_SIFS_BG + 2*C_SLOT_SHORT; } else { @@ -295,14 +295,14 @@ bool CARDbSetPhyParameter(struct vnt_private *pDevice, u8 bb_type) byCWMaxMin = 0xa4; for (i = RATE_54M; i >= RATE_6M; i--) { - if (pDevice->basic_rates & ((u32)(0x1 << i))) { + if (priv->basic_rates & ((u32)(0x1 << i))) { byCWMaxMin |= 0x1; break; } } } - if (pDevice->byRFType == RF_RFMD2959) { + if (priv->byRFType == RF_RFMD2959) { /* * bcs TX_PE will reserve 3 us hardware's processing * time here is 2 us. @@ -316,32 +316,32 @@ bool CARDbSetPhyParameter(struct vnt_private *pDevice, u8 bb_type) */ } - if (pDevice->bySIFS != bySIFS) { - pDevice->bySIFS = bySIFS; - VNSvOutPortB(pDevice->PortOffset + MAC_REG_SIFS, pDevice->bySIFS); + if (priv->bySIFS != bySIFS) { + priv->bySIFS = bySIFS; + VNSvOutPortB(priv->PortOffset + MAC_REG_SIFS, priv->bySIFS); } - if (pDevice->byDIFS != byDIFS) { - pDevice->byDIFS = byDIFS; - VNSvOutPortB(pDevice->PortOffset + MAC_REG_DIFS, pDevice->byDIFS); + if (priv->byDIFS != byDIFS) { + priv->byDIFS = byDIFS; + VNSvOutPortB(priv->PortOffset + MAC_REG_DIFS, priv->byDIFS); } - if (pDevice->byEIFS != C_EIFS) { - pDevice->byEIFS = C_EIFS; - VNSvOutPortB(pDevice->PortOffset + MAC_REG_EIFS, pDevice->byEIFS); + if (priv->byEIFS != C_EIFS) { + priv->byEIFS = C_EIFS; + VNSvOutPortB(priv->PortOffset + MAC_REG_EIFS, priv->byEIFS); } - if (pDevice->bySlot != bySlot) { - pDevice->bySlot = bySlot; - VNSvOutPortB(pDevice->PortOffset + MAC_REG_SLOT, pDevice->bySlot); + if (priv->bySlot != bySlot) { + priv->bySlot = bySlot; + VNSvOutPortB(priv->PortOffset + MAC_REG_SLOT, priv->bySlot); - BBvSetShortSlotTime(pDevice); + BBvSetShortSlotTime(priv); } - if (pDevice->byCWMaxMin != byCWMaxMin) { - pDevice->byCWMaxMin = byCWMaxMin; - VNSvOutPortB(pDevice->PortOffset + MAC_REG_CWMAXMIN0, pDevice->byCWMaxMin); + if (priv->byCWMaxMin != byCWMaxMin) { + priv->byCWMaxMin = byCWMaxMin; + VNSvOutPortB(priv->PortOffset + MAC_REG_CWMAXMIN0, priv->byCWMaxMin); } - pDevice->byPacketType = CARDbyGetPktType(pDevice); + priv->byPacketType = CARDbyGetPktType(priv); - CARDvSetRSPINF(pDevice, bb_type); + CARDvSetRSPINF(priv, bb_type); return true; } @@ -352,7 +352,7 @@ bool CARDbSetPhyParameter(struct vnt_private *pDevice, u8 bb_type) * * Parameters: * In: - * pDevice - The adapter to be sync. + * priv - The adapter to be sync. * byRxRate - data rate of receive beacon * qwBSSTimestamp - Rx BCN's TSF * qwLocalTSF - Local TSF @@ -361,21 +361,21 @@ bool CARDbSetPhyParameter(struct vnt_private *pDevice, u8 bb_type) * * Return Value: none */ -bool CARDbUpdateTSF(struct vnt_private *pDevice, unsigned char byRxRate, +bool CARDbUpdateTSF(struct vnt_private *priv, unsigned char byRxRate, u64 qwBSSTimestamp) { u64 local_tsf; u64 qwTSFOffset = 0; - CARDbGetCurrentTSF(pDevice, &local_tsf); + CARDbGetCurrentTSF(priv, &local_tsf); if (qwBSSTimestamp != local_tsf) { qwTSFOffset = CARDqGetTSFOffset(byRxRate, qwBSSTimestamp, local_tsf); /* adjust TSF, HW's TSF add TSF Offset reg */ - VNSvOutPortD(pDevice->PortOffset + MAC_REG_TSFOFST, (u32)qwTSFOffset); - VNSvOutPortD(pDevice->PortOffset + MAC_REG_TSFOFST + 4, (u32)(qwTSFOffset >> 32)); - MACvRegBitsOn(pDevice->PortOffset, MAC_REG_TFTCTL, TFTCTL_TSFSYNCEN); + VNSvOutPortD(priv->PortOffset + MAC_REG_TSFOFST, (u32)qwTSFOffset); + VNSvOutPortD(priv->PortOffset + MAC_REG_TSFOFST + 4, (u32)(qwTSFOffset >> 32)); + MACvRegBitsOn(priv->PortOffset, MAC_REG_TFTCTL, TFTCTL_TSFSYNCEN); } return true; } @@ -386,29 +386,29 @@ bool CARDbUpdateTSF(struct vnt_private *pDevice, unsigned char byRxRate, * * Parameters: * In: - * pDevice - The adapter to be set. + * priv - The adapter to be set. * wBeaconInterval - Beacon Interval * Out: * none * * Return Value: true if succeed; otherwise false */ -bool CARDbSetBeaconPeriod(struct vnt_private *pDevice, +bool CARDbSetBeaconPeriod(struct vnt_private *priv, unsigned short wBeaconInterval) { u64 qwNextTBTT = 0; - CARDbGetCurrentTSF(pDevice, &qwNextTBTT); /* Get Local TSF counter */ + CARDbGetCurrentTSF(priv, &qwNextTBTT); /* Get Local TSF counter */ qwNextTBTT = CARDqGetNextTBTT(qwNextTBTT, wBeaconInterval); /* set HW beacon interval */ - VNSvOutPortW(pDevice->PortOffset + MAC_REG_BI, wBeaconInterval); - pDevice->wBeaconInterval = wBeaconInterval; + VNSvOutPortW(priv->PortOffset + MAC_REG_BI, wBeaconInterval); + priv->wBeaconInterval = wBeaconInterval; /* Set NextTBTT */ - VNSvOutPortD(pDevice->PortOffset + MAC_REG_NEXTTBTT, (u32)qwNextTBTT); - VNSvOutPortD(pDevice->PortOffset + MAC_REG_NEXTTBTT + 4, (u32)(qwNextTBTT >> 32)); - MACvRegBitsOn(pDevice->PortOffset, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN); + VNSvOutPortD(priv->PortOffset + MAC_REG_NEXTTBTT, (u32)qwNextTBTT); + VNSvOutPortD(priv->PortOffset + MAC_REG_NEXTTBTT + 4, (u32)(qwNextTBTT >> 32)); + MACvRegBitsOn(priv->PortOffset, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN); return true; } @@ -418,41 +418,41 @@ bool CARDbSetBeaconPeriod(struct vnt_private *pDevice, * * Parameters: * In: - * pDevice - The adapter to be turned off + * priv - The adapter to be turned off * Out: * none * * Return Value: true if success; otherwise false */ -bool CARDbRadioPowerOff(struct vnt_private *pDevice) +bool CARDbRadioPowerOff(struct vnt_private *priv) { bool bResult = true; - if (pDevice->bRadioOff) + if (priv->bRadioOff) return true; - switch (pDevice->byRFType) { + switch (priv->byRFType) { case RF_RFMD2959: - MACvWordRegBitsOff(pDevice->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_TXPEINV); - MACvWordRegBitsOn(pDevice->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE1); + MACvWordRegBitsOff(priv->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_TXPEINV); + MACvWordRegBitsOn(priv->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE1); break; case RF_AIROHA: case RF_AL2230S: case RF_AIROHA7230: - MACvWordRegBitsOff(pDevice->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE2); - MACvWordRegBitsOff(pDevice->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE3); + MACvWordRegBitsOff(priv->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE2); + MACvWordRegBitsOff(priv->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE3); break; } - MACvRegBitsOff(pDevice->PortOffset, MAC_REG_HOSTCR, HOSTCR_RXON); + MACvRegBitsOff(priv->PortOffset, MAC_REG_HOSTCR, HOSTCR_RXON); - BBvSetDeepSleep(pDevice, pDevice->byLocalID); + BBvSetDeepSleep(priv, priv->byLocalID); - pDevice->bRadioOff = true; + priv->bRadioOff = true; pr_debug("chester power off\n"); - MACvRegBitsOn(pDevice->PortOffset, MAC_REG_GPIOCTL0, LED_ACTSET); /* LED issue */ + MACvRegBitsOn(priv->PortOffset, MAC_REG_GPIOCTL0, LED_ACTSET); /* LED issue */ return bResult; } @@ -461,89 +461,89 @@ bool CARDbRadioPowerOff(struct vnt_private *pDevice) * * Parameters: * In: - * pDevice - The adapter to be turned on + * priv - The adapter to be turned on * Out: * none * * Return Value: true if success; otherwise false */ -bool CARDbRadioPowerOn(struct vnt_private *pDevice) +bool CARDbRadioPowerOn(struct vnt_private *priv) { bool bResult = true; pr_debug("chester power on\n"); - if (pDevice->bRadioControlOff) { - if (pDevice->bHWRadioOff) + if (priv->bRadioControlOff) { + if (priv->bHWRadioOff) pr_debug("chester bHWRadioOff\n"); - if (pDevice->bRadioControlOff) + if (priv->bRadioControlOff) pr_debug("chester bRadioControlOff\n"); return false; } - if (!pDevice->bRadioOff) { + if (!priv->bRadioOff) { pr_debug("chester pbRadioOff\n"); return true; } - BBvExitDeepSleep(pDevice, pDevice->byLocalID); + BBvExitDeepSleep(priv, priv->byLocalID); - MACvRegBitsOn(pDevice->PortOffset, MAC_REG_HOSTCR, HOSTCR_RXON); + MACvRegBitsOn(priv->PortOffset, MAC_REG_HOSTCR, HOSTCR_RXON); - switch (pDevice->byRFType) { + switch (priv->byRFType) { case RF_RFMD2959: - MACvWordRegBitsOn(pDevice->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_TXPEINV); - MACvWordRegBitsOff(pDevice->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE1); + MACvWordRegBitsOn(priv->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_TXPEINV); + MACvWordRegBitsOff(priv->PortOffset, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE1); break; case RF_AIROHA: case RF_AL2230S: case RF_AIROHA7230: - MACvWordRegBitsOn(pDevice->PortOffset, MAC_REG_SOFTPWRCTL, (SOFTPWRCTL_SWPE2 | + MACvWordRegBitsOn(priv->PortOffset, MAC_REG_SOFTPWRCTL, (SOFTPWRCTL_SWPE2 | SOFTPWRCTL_SWPE3)); break; } - pDevice->bRadioOff = false; + priv->bRadioOff = false; pr_debug("chester power on\n"); - MACvRegBitsOff(pDevice->PortOffset, MAC_REG_GPIOCTL0, LED_ACTSET); /* LED issue */ + MACvRegBitsOff(priv->PortOffset, MAC_REG_GPIOCTL0, LED_ACTSET); /* LED issue */ return bResult; } void CARDvSafeResetTx( - struct vnt_private *pDevice + struct vnt_private *priv ) { unsigned int uu; struct vnt_tx_desc *pCurrTD; /* initialize TD index */ - pDevice->apTailTD[0] = pDevice->apCurrTD[0] = &(pDevice->apTD0Rings[0]); - pDevice->apTailTD[1] = pDevice->apCurrTD[1] = &(pDevice->apTD1Rings[0]); + priv->apTailTD[0] = priv->apCurrTD[0] = &(priv->apTD0Rings[0]); + priv->apTailTD[1] = priv->apCurrTD[1] = &(priv->apTD1Rings[0]); for (uu = 0; uu < TYPE_MAXTD; uu++) - pDevice->iTDUsed[uu] = 0; + priv->iTDUsed[uu] = 0; - for (uu = 0; uu < pDevice->opts.tx_descs[0]; uu++) { - pCurrTD = &(pDevice->apTD0Rings[uu]); + for (uu = 0; uu < priv->opts.tx_descs[0]; uu++) { + pCurrTD = &(priv->apTD0Rings[uu]); pCurrTD->td0.owner = OWNED_BY_HOST; /* init all Tx Packet pointer to NULL */ } - for (uu = 0; uu < pDevice->opts.tx_descs[1]; uu++) { - pCurrTD = &(pDevice->apTD1Rings[uu]); + for (uu = 0; uu < priv->opts.tx_descs[1]; uu++) { + pCurrTD = &(priv->apTD1Rings[uu]); pCurrTD->td0.owner = OWNED_BY_HOST; /* init all Tx Packet pointer to NULL */ } /* set MAC TD pointer */ - MACvSetCurrTXDescAddr(TYPE_TXDMA0, pDevice->PortOffset, - (pDevice->td0_pool_dma)); + MACvSetCurrTXDescAddr(TYPE_TXDMA0, priv->PortOffset, + (priv->td0_pool_dma)); - MACvSetCurrTXDescAddr(TYPE_AC0DMA, pDevice->PortOffset, - (pDevice->td1_pool_dma)); + MACvSetCurrTXDescAddr(TYPE_AC0DMA, priv->PortOffset, + (priv->td1_pool_dma)); /* set MAC Beacon TX pointer */ - MACvSetCurrBCNTxDescAddr(pDevice->PortOffset, - (pDevice->tx_beacon_dma)); + MACvSetCurrBCNTxDescAddr(priv->PortOffset, + (priv->tx_beacon_dma)); } /* @@ -552,7 +552,7 @@ CARDvSafeResetTx( * * Parameters: * In: - * pDevice - Pointer to the adapter + * priv - Pointer to the adapter * Out: * none * @@ -560,41 +560,41 @@ CARDvSafeResetTx( */ void CARDvSafeResetRx( - struct vnt_private *pDevice + struct vnt_private *priv ) { unsigned int uu; struct vnt_rx_desc *pDesc; /* initialize RD index */ - pDevice->pCurrRD[0] = &(pDevice->aRD0Ring[0]); - pDevice->pCurrRD[1] = &(pDevice->aRD1Ring[0]); + priv->pCurrRD[0] = &(priv->aRD0Ring[0]); + priv->pCurrRD[1] = &(priv->aRD1Ring[0]); /* init state, all RD is chip's */ - for (uu = 0; uu < pDevice->opts.rx_descs0; uu++) { - pDesc = &(pDevice->aRD0Ring[uu]); - pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); + for (uu = 0; uu < priv->opts.rx_descs0; uu++) { + pDesc = &(priv->aRD0Ring[uu]); + pDesc->rd0.res_count = cpu_to_le16(priv->rx_buf_sz); pDesc->rd0.owner = OWNED_BY_NIC; - pDesc->rd1.req_count = cpu_to_le16(pDevice->rx_buf_sz); + pDesc->rd1.req_count = cpu_to_le16(priv->rx_buf_sz); } /* init state, all RD is chip's */ - for (uu = 0; uu < pDevice->opts.rx_descs1; uu++) { - pDesc = &(pDevice->aRD1Ring[uu]); - pDesc->rd0.res_count = cpu_to_le16(pDevice->rx_buf_sz); + for (uu = 0; uu < priv->opts.rx_descs1; uu++) { + pDesc = &(priv->aRD1Ring[uu]); + pDesc->rd0.res_count = cpu_to_le16(priv->rx_buf_sz); pDesc->rd0.owner = OWNED_BY_NIC; - pDesc->rd1.req_count = cpu_to_le16(pDevice->rx_buf_sz); + pDesc->rd1.req_count = cpu_to_le16(priv->rx_buf_sz); } /* set perPkt mode */ - MACvRx0PerPktMode(pDevice->PortOffset); - MACvRx1PerPktMode(pDevice->PortOffset); + MACvRx0PerPktMode(priv->PortOffset); + MACvRx1PerPktMode(priv->PortOffset); /* set MAC RD pointer */ - MACvSetCurrRx0DescAddr(pDevice->PortOffset, - pDevice->rd0_pool_dma); + MACvSetCurrRx0DescAddr(priv->PortOffset, + priv->rd0_pool_dma); - MACvSetCurrRx1DescAddr(pDevice->PortOffset, - pDevice->rd1_pool_dma); + MACvSetCurrRx1DescAddr(priv->PortOffset, + priv->rd1_pool_dma); } /* @@ -602,20 +602,20 @@ CARDvSafeResetRx( * * Parameters: * In: - * pDevice - The adapter to be set + * priv - The adapter to be set * wRateIdx - Receiving data rate * Out: * none * * Return Value: response Control frame rate */ -static unsigned short CARDwGetCCKControlRate(struct vnt_private *pDevice, +static unsigned short CARDwGetCCKControlRate(struct vnt_private *priv, unsigned short wRateIdx) { unsigned int ui = (unsigned int) wRateIdx; while (ui > RATE_1M) { - if (pDevice->basic_rates & ((u32)0x1 << ui)) + if (priv->basic_rates & ((u32)0x1 << ui)) return (unsigned short)ui; ui--; @@ -628,28 +628,28 @@ static unsigned short CARDwGetCCKControlRate(struct vnt_private *pDevice, * * Parameters: * In: - * pDevice - The adapter to be set + * priv - The adapter to be set * wRateIdx - Receiving data rate * Out: * none * * Return Value: response Control frame rate */ -static unsigned short CARDwGetOFDMControlRate(struct vnt_private *pDevice, +static unsigned short CARDwGetOFDMControlRate(struct vnt_private *priv, unsigned short wRateIdx) { unsigned int ui = (unsigned int) wRateIdx; - pr_debug("BASIC RATE: %X\n", pDevice->basic_rates); + pr_debug("BASIC RATE: %X\n", priv->basic_rates); - if (!CARDbIsOFDMinBasicRate((void *)pDevice)) { + if (!CARDbIsOFDMinBasicRate((void *)priv)) { pr_debug("CARDwGetOFDMControlRate:(NO OFDM) %d\n", wRateIdx); if (wRateIdx > RATE_24M) wRateIdx = RATE_24M; return wRateIdx; } while (ui > RATE_11M) { - if (pDevice->basic_rates & ((u32)0x1 << ui)) { + if (priv->basic_rates & ((u32)0x1 << ui)) { pr_debug("CARDwGetOFDMControlRate : %d\n", ui); return (unsigned short)ui; } @@ -664,162 +664,162 @@ static unsigned short CARDwGetOFDMControlRate(struct vnt_private *pDevice, * * Parameters: * In: - * pDevice - The adapter to be set + * priv - The adapter to be set * Out: * none * * Return Value: None. */ -void CARDvSetRSPINF(struct vnt_private *pDevice, u8 bb_type) +void CARDvSetRSPINF(struct vnt_private *priv, u8 bb_type) { union vnt_phy_field_swap phy; unsigned char byTxRate, byRsvTime; /* For OFDM */ unsigned long flags; - spin_lock_irqsave(&pDevice->lock, flags); + spin_lock_irqsave(&priv->lock, flags); /* Set to Page1 */ - MACvSelectPage1(pDevice->PortOffset); + MACvSelectPage1(priv->PortOffset); /* RSPINF_b_1 */ - vnt_get_phy_field(pDevice, 14, - CARDwGetCCKControlRate(pDevice, RATE_1M), + vnt_get_phy_field(priv, 14, + CARDwGetCCKControlRate(priv, RATE_1M), PK_TYPE_11B, &phy.field_read); /* swap over to get correct write order */ swap(phy.swap[0], phy.swap[1]); - VNSvOutPortD(pDevice->PortOffset + MAC_REG_RSPINF_B_1, phy.field_write); + VNSvOutPortD(priv->PortOffset + MAC_REG_RSPINF_B_1, phy.field_write); /* RSPINF_b_2 */ - vnt_get_phy_field(pDevice, 14, - CARDwGetCCKControlRate(pDevice, RATE_2M), + vnt_get_phy_field(priv, 14, + CARDwGetCCKControlRate(priv, RATE_2M), PK_TYPE_11B, &phy.field_read); swap(phy.swap[0], phy.swap[1]); - VNSvOutPortD(pDevice->PortOffset + MAC_REG_RSPINF_B_2, phy.field_write); + VNSvOutPortD(priv->PortOffset + MAC_REG_RSPINF_B_2, phy.field_write); /* RSPINF_b_5 */ - vnt_get_phy_field(pDevice, 14, - CARDwGetCCKControlRate(pDevice, RATE_5M), + vnt_get_phy_field(priv, 14, + CARDwGetCCKControlRate(priv, RATE_5M), PK_TYPE_11B, &phy.field_read); swap(phy.swap[0], phy.swap[1]); - VNSvOutPortD(pDevice->PortOffset + MAC_REG_RSPINF_B_5, phy.field_write); + VNSvOutPortD(priv->PortOffset + MAC_REG_RSPINF_B_5, phy.field_write); /* RSPINF_b_11 */ - vnt_get_phy_field(pDevice, 14, - CARDwGetCCKControlRate(pDevice, RATE_11M), + vnt_get_phy_field(priv, 14, + CARDwGetCCKControlRate(priv, RATE_11M), PK_TYPE_11B, &phy.field_read); swap(phy.swap[0], phy.swap[1]); - VNSvOutPortD(pDevice->PortOffset + MAC_REG_RSPINF_B_11, phy.field_write); + VNSvOutPortD(priv->PortOffset + MAC_REG_RSPINF_B_11, phy.field_write); /* RSPINF_a_6 */ s_vCalculateOFDMRParameter(RATE_6M, bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_6, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_6, MAKEWORD(byTxRate, byRsvTime)); /* RSPINF_a_9 */ s_vCalculateOFDMRParameter(RATE_9M, bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_9, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_9, MAKEWORD(byTxRate, byRsvTime)); /* RSPINF_a_12 */ s_vCalculateOFDMRParameter(RATE_12M, bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_12, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_12, MAKEWORD(byTxRate, byRsvTime)); /* RSPINF_a_18 */ s_vCalculateOFDMRParameter(RATE_18M, bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_18, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_18, MAKEWORD(byTxRate, byRsvTime)); /* RSPINF_a_24 */ s_vCalculateOFDMRParameter(RATE_24M, bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_24, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_24, MAKEWORD(byTxRate, byRsvTime)); /* RSPINF_a_36 */ - s_vCalculateOFDMRParameter(CARDwGetOFDMControlRate((void *)pDevice, RATE_36M), + s_vCalculateOFDMRParameter(CARDwGetOFDMControlRate((void *)priv, RATE_36M), bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_36, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_36, MAKEWORD(byTxRate, byRsvTime)); /* RSPINF_a_48 */ - s_vCalculateOFDMRParameter(CARDwGetOFDMControlRate((void *)pDevice, RATE_48M), + s_vCalculateOFDMRParameter(CARDwGetOFDMControlRate((void *)priv, RATE_48M), bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_48, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_48, MAKEWORD(byTxRate, byRsvTime)); /* RSPINF_a_54 */ - s_vCalculateOFDMRParameter(CARDwGetOFDMControlRate((void *)pDevice, RATE_54M), + s_vCalculateOFDMRParameter(CARDwGetOFDMControlRate((void *)priv, RATE_54M), bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_54, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_54, MAKEWORD(byTxRate, byRsvTime)); /* RSPINF_a_72 */ - s_vCalculateOFDMRParameter(CARDwGetOFDMControlRate((void *)pDevice, RATE_54M), + s_vCalculateOFDMRParameter(CARDwGetOFDMControlRate((void *)priv, RATE_54M), bb_type, &byTxRate, &byRsvTime); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_RSPINF_A_72, MAKEWORD(byTxRate, byRsvTime)); + VNSvOutPortW(priv->PortOffset + MAC_REG_RSPINF_A_72, MAKEWORD(byTxRate, byRsvTime)); /* Set to Page0 */ - MACvSelectPage0(pDevice->PortOffset); + MACvSelectPage0(priv->PortOffset); - spin_unlock_irqrestore(&pDevice->lock, flags); + spin_unlock_irqrestore(&priv->lock, flags); } -void CARDvUpdateBasicTopRate(struct vnt_private *pDevice) +void CARDvUpdateBasicTopRate(struct vnt_private *priv) { unsigned char byTopOFDM = RATE_24M, byTopCCK = RATE_1M; unsigned char ii; /* Determines the highest basic rate. */ for (ii = RATE_54M; ii >= RATE_6M; ii--) { - if ((pDevice->basic_rates) & ((u32)(1 << ii))) { + if ((priv->basic_rates) & ((u32)(1 << ii))) { byTopOFDM = ii; break; } } - pDevice->byTopOFDMBasicRate = byTopOFDM; + priv->byTopOFDMBasicRate = byTopOFDM; for (ii = RATE_11M;; ii--) { - if ((pDevice->basic_rates) & ((u32)(1 << ii))) { + if ((priv->basic_rates) & ((u32)(1 << ii))) { byTopCCK = ii; break; } if (ii == RATE_1M) break; } - pDevice->byTopCCKBasicRate = byTopCCK; + priv->byTopCCKBasicRate = byTopCCK; } -bool CARDbIsOFDMinBasicRate(struct vnt_private *pDevice) +bool CARDbIsOFDMinBasicRate(struct vnt_private *priv) { int ii; for (ii = RATE_54M; ii >= RATE_6M; ii--) { - if ((pDevice->basic_rates) & ((u32)BIT(ii))) + if ((priv->basic_rates) & ((u32)BIT(ii))) return true; } return false; } -unsigned char CARDbyGetPktType(struct vnt_private *pDevice) +unsigned char CARDbyGetPktType(struct vnt_private *priv) { - if (pDevice->byBBType == BB_TYPE_11A || pDevice->byBBType == BB_TYPE_11B) - return (unsigned char)pDevice->byBBType; - else if (CARDbIsOFDMinBasicRate((void *)pDevice)) + if (priv->byBBType == BB_TYPE_11A || priv->byBBType == BB_TYPE_11B) + return (unsigned char)priv->byBBType; + else if (CARDbIsOFDMinBasicRate((void *)priv)) return PK_TYPE_11GA; else return PK_TYPE_11GB; @@ -830,7 +830,7 @@ unsigned char CARDbyGetPktType(struct vnt_private *pDevice) * * Parameters: * In: - * pDevice - The adapter to be set + * priv - The adapter to be set * wLoopbackMode - Loopback mode to be set * Out: * none @@ -859,17 +859,17 @@ void CARDvSetLoopbackMode(struct vnt_private *priv, unsigned short wLoopbackMode * * Parameters: * In: - * pDevice - The adapter to be reset + * priv - The adapter to be reset * Out: * none * * Return Value: none */ -bool CARDbSoftwareReset(struct vnt_private *pDevice) +bool CARDbSoftwareReset(struct vnt_private *priv) { /* reset MAC */ - if (!MACbSafeSoftwareReset(pDevice->PortOffset)) + if (!MACbSafeSoftwareReset(priv->PortOffset)) return false; return true; @@ -881,7 +881,7 @@ bool CARDbSoftwareReset(struct vnt_private *pDevice) * * Parameters: * In: - * pDevice - The adapter to be sync. + * priv - The adapter to be sync. * qwTSF1 - Rx BCN's TSF * qwTSF2 - Local TSF * Out: @@ -909,7 +909,7 @@ u64 CARDqGetTSFOffset(unsigned char byRxRate, u64 qwTSF1, u64 qwTSF2) * * Parameters: * In: - * pDevice - The adapter to be read + * priv - The adapter to be read * Out: * qwCurrTSF - Current TSF counter * @@ -995,7 +995,7 @@ void CARDvSetFirstNextTBTT(struct vnt_private *priv, unsigned short wBeaconInter * * Parameters: * In: - * pDevice - The adapter to be set + * priv - The adapter to be set * qwTSF - Current TSF counter * wBeaconInterval - Beacon Interval * Out: From a1d825e9376b7c3c9a3eaa26d14bb74c3c3ff2d0 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 17 Oct 2015 18:17:05 +0200 Subject: [PATCH 1977/2431] Staging: lustre: include: Move function prototypes Functions: struct obd_export *class_export_get(struct obd_export *exp); void class_export_put(struct obd_export *exp) are being used in macros that are converted into static inline functions, therefore move function prototypes to avoid build error in later patches. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/obd_class.h | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 561dcd53442a..0b4cdbcbadbd 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -189,6 +189,25 @@ extern void (*class_export_dump_hook)(struct obd_export *); #endif +/* genops.c */ +struct obd_export *class_export_get(struct obd_export *exp); +void class_export_put(struct obd_export *exp); +struct obd_export *class_new_export(struct obd_device *obddev, + struct obd_uuid *cluuid); +void class_unlink_export(struct obd_export *exp); + +struct obd_import *class_import_get(struct obd_import *); +void class_import_put(struct obd_import *); +struct obd_import *class_new_import(struct obd_device *obd); +void class_destroy_import(struct obd_import *exp); + +void class_put_type(struct obd_type *type); +int class_connect(struct lustre_handle *conn, struct obd_device *obd, + struct obd_uuid *cluuid); +int class_disconnect(struct obd_export *exp); +void class_fail_export(struct obd_export *exp); +int class_manual_cleanup(struct obd_device *obd); + static inline void class_export_rpc_inc(struct obd_export *exp) { atomic_inc(&(exp)->exp_rpc_count); @@ -240,24 +259,6 @@ static inline void class_export_rpc_dec(struct obd_export *exp) class_export_put(exp); \ }) -/* genops.c */ -struct obd_export *class_export_get(struct obd_export *exp); -void class_export_put(struct obd_export *exp); -struct obd_export *class_new_export(struct obd_device *obddev, - struct obd_uuid *cluuid); -void class_unlink_export(struct obd_export *exp); - -struct obd_import *class_import_get(struct obd_import *); -void class_import_put(struct obd_import *); -struct obd_import *class_new_import(struct obd_device *obd); -void class_destroy_import(struct obd_import *exp); - -void class_put_type(struct obd_type *type); -int class_connect(struct lustre_handle *conn, struct obd_device *obd, - struct obd_uuid *cluuid); -int class_disconnect(struct obd_export *exp); -void class_fail_export(struct obd_export *exp); -int class_manual_cleanup(struct obd_device *obd); static inline enum obd_option exp_flags_from_obd(struct obd_device *obd) { return ((obd->obd_fail ? OBD_OPT_FAILOVER : 0) | From edc6a40e3a75650be003be0e35a54f3edc6b4f7e Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 17 Oct 2015 18:18:34 +0200 Subject: [PATCH 1978/2431] Staging: lustre: include: Convert macro class_export_lock_get into static inline function Static inline functions are preferred over macros. This change is safe because the types of arguments at all the call sites are same. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/obd_class.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 0b4cdbcbadbd..ea2b66764a3d 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -223,14 +223,15 @@ static inline void class_export_rpc_dec(struct obd_export *exp) (exp), atomic_read(&(exp)->exp_rpc_count)); } -#define class_export_lock_get(exp, lock) \ -({ \ - atomic_inc(&(exp)->exp_locks_count); \ - __class_export_add_lock_ref(exp, lock); \ - CDEBUG(D_INFO, "lock GETting export %p : new locks_count %d\n", \ - (exp), atomic_read(&(exp)->exp_locks_count)); \ - class_export_get(exp); \ -}) +static inline struct obd_export *class_export_lock_get(struct obd_export *exp, + struct ldlm_lock *lock) +{ + atomic_inc(&(exp)->exp_locks_count); + __class_export_add_lock_ref(exp, lock); + CDEBUG(D_INFO, "lock GETting export %p : new locks_count %d\n", + (exp), atomic_read(&(exp)->exp_locks_count)); + return class_export_get(exp); +} #define class_export_lock_put(exp, lock) \ ({ \ From d811ed6974532cdb47301ba993f766c6e5b3fd5d Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 17 Oct 2015 18:19:46 +0200 Subject: [PATCH 1979/2431] Staging: lustre: include: Convert macro class_export_lock_put into static inline function Static inline functions are preferred over macros. This change is safe because the types of arguments at all the call sites are same. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/obd_class.h | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index ea2b66764a3d..f5d0a98b73f0 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -233,15 +233,16 @@ static inline struct obd_export *class_export_lock_get(struct obd_export *exp, return class_export_get(exp); } -#define class_export_lock_put(exp, lock) \ -({ \ - LASSERT_ATOMIC_POS(&exp->exp_locks_count); \ - atomic_dec(&(exp)->exp_locks_count); \ - __class_export_del_lock_ref(exp, lock); \ - CDEBUG(D_INFO, "lock PUTting export %p : new locks_count %d\n", \ - (exp), atomic_read(&(exp)->exp_locks_count)); \ - class_export_put(exp); \ -}) +static inline void class_export_lock_put(struct obd_export *exp, + struct ldlm_lock *lock) +{ + LASSERT_ATOMIC_POS(&exp->exp_locks_count); + atomic_dec(&(exp)->exp_locks_count); + __class_export_del_lock_ref(exp, lock); + CDEBUG(D_INFO, "lock PUTting export %p : new locks_count %d\n", + (exp), atomic_read(&(exp)->exp_locks_count)); + class_export_put(exp); +} #define class_export_cb_get(exp) \ ({ \ From fcc74c4dd696ad9cf3f58f8aeb1938d9b6f57261 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 17 Oct 2015 18:19:46 +0200 Subject: [PATCH 1980/2431] Staging: lustre: include : Remove unused macros These macro are not used anymore, therefore remove them. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/lustre/include/obd_class.h | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index f5d0a98b73f0..bf2bde5e6896 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -244,23 +244,6 @@ static inline void class_export_lock_put(struct obd_export *exp, class_export_put(exp); } -#define class_export_cb_get(exp) \ -({ \ - atomic_inc(&(exp)->exp_cb_count); \ - CDEBUG(D_INFO, "callback GETting export %p : new cb_count %d\n",\ - (exp), atomic_read(&(exp)->exp_cb_count)); \ - class_export_get(exp); \ -}) - -#define class_export_cb_put(exp) \ -({ \ - LASSERT_ATOMIC_POS(&exp->exp_cb_count); \ - atomic_dec(&(exp)->exp_cb_count); \ - CDEBUG(D_INFO, "callback PUTting export %p : new cb_count %d\n",\ - (exp), atomic_read(&(exp)->exp_cb_count)); \ - class_export_put(exp); \ -}) - static inline enum obd_option exp_flags_from_obd(struct obd_device *obd) { return ((obd->obd_fail ? OBD_OPT_FAILOVER : 0) | From e405f0e45e854191755d49bff8dfaa6e3c0584da Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Sat, 17 Oct 2015 18:19:46 +0200 Subject: [PATCH 1981/2431] staging: r8723au: move * to be adjacent to pointer name Move * in pointer types to be adjacent to pointer names per Linux coding style. Addresses checkpatch.pl: ERROR: "foo* bar" should be "foo *bar" Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_ieee80211.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_ieee80211.c b/drivers/staging/rtl8723au/core/rtw_ieee80211.c index cdd7bc402ece..07a6490a83d6 100644 --- a/drivers/staging/rtl8723au/core/rtw_ieee80211.c +++ b/drivers/staging/rtl8723au/core/rtw_ieee80211.c @@ -348,9 +348,9 @@ int rtw_generate_ie23a(struct registry_priv *pregistrypriv) { u8 wireless_mode; int sz = 0, rateLen; - struct wlan_bssid_ex* pdev_network = &pregistrypriv->dev_network; - u8* ie = pdev_network->IEs; - u16 cap; + struct wlan_bssid_ex *pdev_network = &pregistrypriv->dev_network; + u8 *ie = pdev_network->IEs; + u16 cap; pdev_network->tsf = 0; @@ -444,7 +444,8 @@ static int rtw_get_wpa2_cipher_suite(const u8 *s) return 0; } -int rtw_parse_wpa_ie23a(const u8* wpa_ie, int wpa_ie_len, int *group_cipher, int *pairwise_cipher, int *is_8021x) +int rtw_parse_wpa_ie23a(const u8 *wpa_ie, int wpa_ie_len, int *group_cipher, + int *pairwise_cipher, int *is_8021x) { int i, ret = _SUCCESS; int left, count; From 724e50f7c21abd1f9ac0bc4d56fc08e3b51e8596 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:13 -0500 Subject: [PATCH 1982/2431] staging: fsl-mc: Naming cleanup in fsl_mc-portal_allocate mc_adev is a local variable for the allocated dpmcp object. Renamed mc_adev as dpmcp_dev for clarity. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-allocator.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index d087b4c7537f..a4aa85958733 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -284,7 +284,7 @@ int __must_check fsl_mc_portal_allocate(struct fsl_mc_device *mc_dev, struct fsl_mc_bus *mc_bus; phys_addr_t mc_portal_phys_addr; size_t mc_portal_size; - struct fsl_mc_device *mc_adev; + struct fsl_mc_device *dpmcp_dev; int error = -EINVAL; struct fsl_mc_resource *resource = NULL; struct fsl_mc_io *mc_io = NULL; @@ -304,16 +304,16 @@ int __must_check fsl_mc_portal_allocate(struct fsl_mc_device *mc_dev, if (error < 0) return error; - mc_adev = resource->data; - if (WARN_ON(!mc_adev)) + dpmcp_dev = resource->data; + if (WARN_ON(!dpmcp_dev)) goto error_cleanup_resource; - if (WARN_ON(mc_adev->obj_desc.region_count == 0)) + if (WARN_ON(dpmcp_dev->obj_desc.region_count == 0)) goto error_cleanup_resource; - mc_portal_phys_addr = mc_adev->regions[0].start; - mc_portal_size = mc_adev->regions[0].end - - mc_adev->regions[0].start + 1; + mc_portal_phys_addr = dpmcp_dev->regions[0].start; + mc_portal_size = dpmcp_dev->regions[0].end - + dpmcp_dev->regions[0].start + 1; if (WARN_ON(mc_portal_size != mc_bus_dev->mc_io->portal_size)) goto error_cleanup_resource; From ffcd52ef0907f56181a28f4ae5ab6f0b39e3cf58 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:14 -0500 Subject: [PATCH 1983/2431] staging: fsl-mc: fsl_mc_io object refactoring Each fsl_mc_io object is associated with an fsl_mc_device object of type "dpmcp" representing the MC portal associated with the fsl_mc_io object. Before, we were representing this association with an fsl_mc_resource pointer. To enhance code clarity, it is more straight forward to use an fsl_mc_device pointer instead. So, this change replaces the 'resource' field in the fsl_mc_io object with 'dpmcp_dev'. Also, it changes parameter 'resource' of fsl_create_mc_io() to be an fsl_mc_device pointer instead. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-allocator.c | 34 +++++++++++++---------- drivers/staging/fsl-mc/bus/mc-sys.c | 16 ++++++++--- drivers/staging/fsl-mc/include/mc-sys.h | 8 ++---- 3 files changed, 35 insertions(+), 23 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index a4aa85958733..c3222c6c7e1f 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -320,7 +320,7 @@ int __must_check fsl_mc_portal_allocate(struct fsl_mc_device *mc_dev, error = fsl_create_mc_io(&mc_bus_dev->dev, mc_portal_phys_addr, - mc_portal_size, resource, + mc_portal_size, dpmcp_dev, mc_io_flags, &mc_io); if (error < 0) goto error_cleanup_resource; @@ -342,12 +342,22 @@ EXPORT_SYMBOL_GPL(fsl_mc_portal_allocate); */ void fsl_mc_portal_free(struct fsl_mc_io *mc_io) { + struct fsl_mc_device *dpmcp_dev; struct fsl_mc_resource *resource; - resource = mc_io->resource; - if (WARN_ON(resource->type != FSL_MC_POOL_DPMCP)) + /* + * Every mc_io obtained by calling fsl_mc_portal_allocate() is supposed + * to have a DPMCP object associated with. + */ + dpmcp_dev = mc_io->dpmcp_dev; + if (WARN_ON(!dpmcp_dev)) return; - if (WARN_ON(!resource->data)) + + resource = dpmcp_dev->resource; + if (WARN_ON(!resource || resource->type != FSL_MC_POOL_DPMCP)) + return; + + if (WARN_ON(resource->data != dpmcp_dev)) return; fsl_destroy_mc_io(mc_io); @@ -364,30 +374,26 @@ int fsl_mc_portal_reset(struct fsl_mc_io *mc_io) { int error; u16 token; - struct fsl_mc_resource *resource = mc_io->resource; - struct fsl_mc_device *mc_dev = resource->data; + struct fsl_mc_device *dpmcp_dev = mc_io->dpmcp_dev; - if (WARN_ON(resource->type != FSL_MC_POOL_DPMCP)) + if (WARN_ON(!dpmcp_dev)) return -EINVAL; - if (WARN_ON(!mc_dev)) - return -EINVAL; - - error = dpmcp_open(mc_io, 0, mc_dev->obj_desc.id, &token); + error = dpmcp_open(mc_io, 0, dpmcp_dev->obj_desc.id, &token); if (error < 0) { - dev_err(&mc_dev->dev, "dpmcp_open() failed: %d\n", error); + dev_err(&dpmcp_dev->dev, "dpmcp_open() failed: %d\n", error); return error; } error = dpmcp_reset(mc_io, 0, token); if (error < 0) { - dev_err(&mc_dev->dev, "dpmcp_reset() failed: %d\n", error); + dev_err(&dpmcp_dev->dev, "dpmcp_reset() failed: %d\n", error); return error; } error = dpmcp_close(mc_io, 0, token); if (error < 0) { - dev_err(&mc_dev->dev, "dpmcp_close() failed: %d\n", error); + dev_err(&dpmcp_dev->dev, "dpmcp_close() failed: %d\n", error); return error; } diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index b58b53fe165c..e53acfaa2304 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -34,10 +34,12 @@ #include "../include/mc-sys.h" #include "../include/mc-cmd.h" +#include "../include/mc.h" #include #include #include #include +#include "dpmcp.h" /** * Timeout in jiffies to wait for the completion of an MC command @@ -60,8 +62,8 @@ * @dev: device to be associated with the MC I/O object * @mc_portal_phys_addr: physical address of the MC portal to use * @mc_portal_size: size in bytes of the MC portal - * @resource: Pointer to MC bus object allocator resource associated - * with this MC I/O object or NULL if none. + * @dpmcp-dev: Pointer to the DPMCP object associated with this MC I/O + * object or NULL if none. * @flags: flags for the new MC I/O object * @new_mc_io: Area to return pointer to newly created MC I/O object * @@ -70,7 +72,7 @@ int __must_check fsl_create_mc_io(struct device *dev, phys_addr_t mc_portal_phys_addr, u32 mc_portal_size, - struct fsl_mc_resource *resource, + struct fsl_mc_device *dpmcp_dev, u32 flags, struct fsl_mc_io **new_mc_io) { struct fsl_mc_io *mc_io; @@ -85,7 +87,8 @@ int __must_check fsl_create_mc_io(struct device *dev, mc_io->flags = flags; mc_io->portal_phys_addr = mc_portal_phys_addr; mc_io->portal_size = mc_portal_size; - mc_io->resource = resource; + mc_io->dpmcp_dev = dpmcp_dev; + dpmcp_dev->mc_io = mc_io; res = devm_request_mem_region(dev, mc_portal_phys_addr, mc_portal_size, @@ -126,6 +129,11 @@ void fsl_destroy_mc_io(struct fsl_mc_io *mc_io) mc_io->portal_size); mc_io->portal_virt_addr = NULL; + if (mc_io->dpmcp_dev) { + WARN_ON(mc_io->dpmcp_dev->mc_io != mc_io); + mc_io->dpmcp_dev->mc_io = NULL; + } + devm_kfree(mc_io->dev, mc_io); } EXPORT_SYMBOL_GPL(fsl_destroy_mc_io); diff --git a/drivers/staging/fsl-mc/include/mc-sys.h b/drivers/staging/fsl-mc/include/mc-sys.h index 939b7d39b365..bfbecafe75d9 100644 --- a/drivers/staging/fsl-mc/include/mc-sys.h +++ b/drivers/staging/fsl-mc/include/mc-sys.h @@ -50,9 +50,7 @@ struct mc_command; * @portal_size: MC command portal size in bytes * @portal_phys_addr: MC command portal physical address * @portal_virt_addr: MC command portal virtual address - * @resource: generic resource associated with the MC portal if - * the MC portal came from a resource pool, or NULL if the MC portal - * is permanently bound to a device (e.g., a DPRC) + * @dpmcp_dev: pointer to the DPMCP device associated with the MC portal. */ struct fsl_mc_io { struct device *dev; @@ -60,13 +58,13 @@ struct fsl_mc_io { u32 portal_size; phys_addr_t portal_phys_addr; void __iomem *portal_virt_addr; - struct fsl_mc_resource *resource; + struct fsl_mc_device *dpmcp_dev; }; int __must_check fsl_create_mc_io(struct device *dev, phys_addr_t mc_portal_phys_addr, u32 mc_portal_size, - struct fsl_mc_resource *resource, + struct fsl_mc_device *dpmcp_dev, u32 flags, struct fsl_mc_io **new_mc_io); void fsl_destroy_mc_io(struct fsl_mc_io *mc_io); From d2f8499153aa78b21881b3ca1fcdc026c3a79079 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:15 -0500 Subject: [PATCH 1984/2431] staging: fsl-mc: dpmcp opening/closing refactoring Before, we were opening and closing a mc_io's dpmcp object in fsl_mc_portal_reset(), since that was the only function that was calling dpmcp MC operations. However, it is better for maintainability to open the dpmcp object when it gets associated with an mc_io object, and close it when this association is terminated. This way, we are free to call dpmcp operations on a mc_io's dpmcp object at any time, without having to check if the dpmcp object is opened or not. Consequently, the creation/teardown of the association between an mc_io object and a dpmcp is now encapsulated in two functions: fsl_mc_io_set_dpmcp()/fsl_mc_io_unset_dpmcp(). Besides, setting the corresponding pointers for the association, these functions open and close the dpmcp object respectively. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-allocator.c | 15 +---- drivers/staging/fsl-mc/bus/mc-sys.c | 74 ++++++++++++++++++++--- drivers/staging/fsl-mc/include/mc-sys.h | 5 ++ 3 files changed, 73 insertions(+), 21 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index c3222c6c7e1f..33f5de4f2c67 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -373,30 +373,17 @@ EXPORT_SYMBOL_GPL(fsl_mc_portal_free); int fsl_mc_portal_reset(struct fsl_mc_io *mc_io) { int error; - u16 token; struct fsl_mc_device *dpmcp_dev = mc_io->dpmcp_dev; if (WARN_ON(!dpmcp_dev)) return -EINVAL; - error = dpmcp_open(mc_io, 0, dpmcp_dev->obj_desc.id, &token); - if (error < 0) { - dev_err(&dpmcp_dev->dev, "dpmcp_open() failed: %d\n", error); - return error; - } - - error = dpmcp_reset(mc_io, 0, token); + error = dpmcp_reset(mc_io, 0, dpmcp_dev->mc_handle); if (error < 0) { dev_err(&dpmcp_dev->dev, "dpmcp_reset() failed: %d\n", error); return error; } - error = dpmcp_close(mc_io, 0, token); - if (error < 0) { - dev_err(&dpmcp_dev->dev, "dpmcp_close() failed: %d\n", error); - return error; - } - return 0; } EXPORT_SYMBOL_GPL(fsl_mc_portal_reset); diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index e53acfaa2304..07848a0cbe5a 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -75,6 +75,7 @@ int __must_check fsl_create_mc_io(struct device *dev, struct fsl_mc_device *dpmcp_dev, u32 flags, struct fsl_mc_io **new_mc_io) { + int error; struct fsl_mc_io *mc_io; void __iomem *mc_portal_virt_addr; struct resource *res; @@ -87,8 +88,6 @@ int __must_check fsl_create_mc_io(struct device *dev, mc_io->flags = flags; mc_io->portal_phys_addr = mc_portal_phys_addr; mc_io->portal_size = mc_portal_size; - mc_io->dpmcp_dev = dpmcp_dev; - dpmcp_dev->mc_io = mc_io; res = devm_request_mem_region(dev, mc_portal_phys_addr, mc_portal_size, @@ -111,8 +110,18 @@ int __must_check fsl_create_mc_io(struct device *dev, } mc_io->portal_virt_addr = mc_portal_virt_addr; + if (dpmcp_dev) { + error = fsl_mc_io_set_dpmcp(mc_io, dpmcp_dev); + if (error < 0) + goto error_destroy_mc_io; + } + *new_mc_io = mc_io; return 0; + +error_destroy_mc_io: + fsl_destroy_mc_io(mc_io); + return error; } EXPORT_SYMBOL_GPL(fsl_create_mc_io); @@ -123,21 +132,72 @@ EXPORT_SYMBOL_GPL(fsl_create_mc_io); */ void fsl_destroy_mc_io(struct fsl_mc_io *mc_io) { + struct fsl_mc_device *dpmcp_dev = mc_io->dpmcp_dev; + + if (dpmcp_dev) + fsl_mc_io_unset_dpmcp(mc_io); + devm_iounmap(mc_io->dev, mc_io->portal_virt_addr); devm_release_mem_region(mc_io->dev, mc_io->portal_phys_addr, mc_io->portal_size); mc_io->portal_virt_addr = NULL; - if (mc_io->dpmcp_dev) { - WARN_ON(mc_io->dpmcp_dev->mc_io != mc_io); - mc_io->dpmcp_dev->mc_io = NULL; - } - devm_kfree(mc_io->dev, mc_io); } EXPORT_SYMBOL_GPL(fsl_destroy_mc_io); +int fsl_mc_io_set_dpmcp(struct fsl_mc_io *mc_io, + struct fsl_mc_device *dpmcp_dev) +{ + int error; + + if (WARN_ON(!dpmcp_dev)) + return -EINVAL; + + if (WARN_ON(mc_io->dpmcp_dev)) + return -EINVAL; + + if (WARN_ON(dpmcp_dev->mc_io)) + return -EINVAL; + + error = dpmcp_open(mc_io, + 0, + dpmcp_dev->obj_desc.id, + &dpmcp_dev->mc_handle); + if (error < 0) + return error; + + mc_io->dpmcp_dev = dpmcp_dev; + dpmcp_dev->mc_io = mc_io; + return 0; +} +EXPORT_SYMBOL_GPL(fsl_mc_io_set_dpmcp); + +void fsl_mc_io_unset_dpmcp(struct fsl_mc_io *mc_io) +{ + int error; + struct fsl_mc_device *dpmcp_dev = mc_io->dpmcp_dev; + + if (WARN_ON(!dpmcp_dev)) + return; + + if (WARN_ON(dpmcp_dev->mc_io != mc_io)) + return; + + error = dpmcp_close(mc_io, + 0, + dpmcp_dev->mc_handle); + if (error < 0) { + dev_err(&dpmcp_dev->dev, "dpmcp_close() failed: %d\n", + error); + } + + mc_io->dpmcp_dev = NULL; + dpmcp_dev->mc_io = NULL; +} +EXPORT_SYMBOL_GPL(fsl_mc_io_unset_dpmcp); + static int mc_status_to_error(enum mc_cmd_status status) { static const int mc_status_to_error_map[] = { diff --git a/drivers/staging/fsl-mc/include/mc-sys.h b/drivers/staging/fsl-mc/include/mc-sys.h index bfbecafe75d9..d4fb60289df7 100644 --- a/drivers/staging/fsl-mc/include/mc-sys.h +++ b/drivers/staging/fsl-mc/include/mc-sys.h @@ -69,6 +69,11 @@ int __must_check fsl_create_mc_io(struct device *dev, void fsl_destroy_mc_io(struct fsl_mc_io *mc_io); +int fsl_mc_io_set_dpmcp(struct fsl_mc_io *mc_io, + struct fsl_mc_device *dpmcp_dev); + +void fsl_mc_io_unset_dpmcp(struct fsl_mc_io *mc_io); + int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd); #endif /* _FSL_MC_SYS_H */ From 6998d6ba8c7a28a77c703242e232240495c144a2 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:16 -0500 Subject: [PATCH 1985/2431] staging: fsl-mc: Changed dev_info() calls to dev_dbg() Changed dev_info() calls to dev_dbg() in fsl_mc_allocator_probe/fsl_mc_allocator_remove, as they are useful only for debugging. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-allocator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index 33f5de4f2c67..527cb4bc379a 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -492,8 +492,8 @@ static int fsl_mc_allocator_probe(struct fsl_mc_device *mc_dev) if (error < 0) goto error; - dev_info(&mc_dev->dev, - "Allocatable MC object device bound to fsl_mc_allocator driver"); + dev_dbg(&mc_dev->dev, + "Allocatable MC object device bound to fsl_mc_allocator driver"); return 0; error: @@ -515,8 +515,8 @@ static int fsl_mc_allocator_remove(struct fsl_mc_device *mc_dev) if (error < 0) goto out; - dev_info(&mc_dev->dev, - "Allocatable MC object device unbound from fsl_mc_allocator driver"); + dev_dbg(&mc_dev->dev, + "Allocatable MC object device unbound from fsl_mc_allocator driver"); error = 0; out: return error; From eceebf8bb35f14d4d4862a47fa6440eaff2698de Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:17 -0500 Subject: [PATCH 1986/2431] staging: fsl-mc: Changed types of flags, portal size in Changed these two fields from 32-bit integers to 16-bit integers in struct fsl_mc_io, as 32 bits is too much for these fields. This change does not affect other components since fsl_mc_io is an opaque type. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/include/mc-sys.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/fsl-mc/include/mc-sys.h b/drivers/staging/fsl-mc/include/mc-sys.h index d4fb60289df7..7d44d8ceef9f 100644 --- a/drivers/staging/fsl-mc/include/mc-sys.h +++ b/drivers/staging/fsl-mc/include/mc-sys.h @@ -54,8 +54,8 @@ struct mc_command; */ struct fsl_mc_io { struct device *dev; - u32 flags; - u32 portal_size; + u16 flags; + u16 portal_size; phys_addr_t portal_phys_addr; void __iomem *portal_virt_addr; struct fsl_mc_device *dpmcp_dev; From 770417bb856e7f82c2906283687143db5f93f0e2 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:18 -0500 Subject: [PATCH 1987/2431] staging: fsl-mc: Removed unused DPMCP macros The macros were a left-over from a previous implementation of the dpmcp APIs and are no longer used. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/dpmcp-cmd.h | 79 -------------------------- 1 file changed, 79 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dpmcp-cmd.h b/drivers/staging/fsl-mc/bus/dpmcp-cmd.h index 6cc0fedd802f..a87e9f84fa42 100644 --- a/drivers/staging/fsl-mc/bus/dpmcp-cmd.h +++ b/drivers/staging/fsl-mc/bus/dpmcp-cmd.h @@ -54,83 +54,4 @@ #define DPMCP_CMDID_GET_IRQ_STATUS 0x016 #define DPMCP_CMDID_CLEAR_IRQ_STATUS 0x017 -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_CREATE(cmd, cfg) \ - MC_CMD_OP(cmd, 0, 0, 32, int, cfg->portal_id) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_SET_IRQ(cmd, irq_index, irq_addr, irq_val, user_irq_id) \ -do { \ - MC_CMD_OP(cmd, 0, 0, 8, uint8_t, irq_index);\ - MC_CMD_OP(cmd, 0, 32, 32, uint32_t, irq_val);\ - MC_CMD_OP(cmd, 1, 0, 64, uint64_t, irq_addr); \ - MC_CMD_OP(cmd, 2, 0, 32, int, user_irq_id); \ -} while (0) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_GET_IRQ(cmd, irq_index) \ - MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_RSP_GET_IRQ(cmd, type, irq_addr, irq_val, user_irq_id) \ -do { \ - MC_RSP_OP(cmd, 0, 0, 32, uint32_t, irq_val); \ - MC_RSP_OP(cmd, 1, 0, 64, uint64_t, irq_addr); \ - MC_RSP_OP(cmd, 2, 0, 32, int, user_irq_id); \ - MC_RSP_OP(cmd, 2, 32, 32, int, type); \ -} while (0) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_SET_IRQ_ENABLE(cmd, irq_index, en) \ -do { \ - MC_CMD_OP(cmd, 0, 0, 8, uint8_t, en); \ - MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index);\ -} while (0) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_GET_IRQ_ENABLE(cmd, irq_index) \ - MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_RSP_GET_IRQ_ENABLE(cmd, en) \ - MC_RSP_OP(cmd, 0, 0, 8, uint8_t, en) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_SET_IRQ_MASK(cmd, irq_index, mask) \ -do { \ - MC_CMD_OP(cmd, 0, 0, 32, uint32_t, mask);\ - MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index);\ -} while (0) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_GET_IRQ_MASK(cmd, irq_index) \ - MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_RSP_GET_IRQ_MASK(cmd, mask) \ - MC_RSP_OP(cmd, 0, 0, 32, uint32_t, mask) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_GET_IRQ_STATUS(cmd, irq_index) \ - MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_RSP_GET_IRQ_STATUS(cmd, status) \ - MC_RSP_OP(cmd, 0, 0, 32, uint32_t, status) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_CMD_CLEAR_IRQ_STATUS(cmd, irq_index, status) \ -do { \ - MC_CMD_OP(cmd, 0, 0, 32, uint32_t, status); \ - MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index);\ -} while (0) - -/* cmd, param, offset, width, type, arg_name */ -#define DPMCP_RSP_GET_ATTRIBUTES(cmd, attr) \ -do { \ - MC_RSP_OP(cmd, 0, 32, 32, int, attr->id);\ - MC_RSP_OP(cmd, 1, 0, 16, uint16_t, attr->version.major);\ - MC_RSP_OP(cmd, 1, 16, 16, uint16_t, attr->version.minor);\ -} while (0) - #endif /* _FSL_DPMCP_CMD_H */ From 95e9a09af4b55b8a1daa4d62afb287994aecfb8e Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:19 -0500 Subject: [PATCH 1988/2431] staging: fsl-mc: Fixed alignment of copyright comment Whitespace cleanup-- add missing spaces in column 1 of copyright Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/include/dpcon-cmd.h | 60 +++++++++++----------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/drivers/staging/fsl-mc/include/dpcon-cmd.h b/drivers/staging/fsl-mc/include/dpcon-cmd.h index 261702496ca8..536b2ef13507 100644 --- a/drivers/staging/fsl-mc/include/dpcon-cmd.h +++ b/drivers/staging/fsl-mc/include/dpcon-cmd.h @@ -1,34 +1,34 @@ /* Copyright 2013-2015 Freescale Semiconductor Inc. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the above-listed copyright holders nor the -* names of any contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* -* ALTERNATIVELY, this software may be distributed under the terms of the -* GNU General Public License ("GPL") as published by the Free Software -* Foundation, either version 2 of that License or (at your option) any -* later version. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the above-listed copyright holders nor the + * names of any contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ #ifndef _FSL_DPCON_CMD_H #define _FSL_DPCON_CMD_H From 6958cd44834ecd1e490be94343c44fc64076d391 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:20 -0500 Subject: [PATCH 1989/2431] staging: fsl-mc: Fixed bug in fsl_mc_allocator_remove Call fsl_mc_resource_pool_remove_device() only if mc_dev->resource is not NULL. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-allocator.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index 527cb4bc379a..e9c3dec201cb 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -511,9 +511,11 @@ static int fsl_mc_allocator_remove(struct fsl_mc_device *mc_dev) if (WARN_ON(!FSL_MC_IS_ALLOCATABLE(mc_dev->obj_desc.type))) goto out; - error = fsl_mc_resource_pool_remove_device(mc_dev); - if (error < 0) - goto out; + if (mc_dev->resource) { + error = fsl_mc_resource_pool_remove_device(mc_dev); + if (error < 0) + goto out; + } dev_dbg(&mc_dev->dev, "Allocatable MC object device unbound from fsl_mc_allocator driver"); From 09a38ab0b1a67e85b11d363dedc1f5de3d0e17e8 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:21 -0500 Subject: [PATCH 1990/2431] staging: fsl-mc: refactored error exit in allocator probe/remove Replaced error gotos with direct returns in fsl_mc_allocator_probe() and fsl_mc_allocator_remove(), since the only error handling done in those functions is to exit. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-allocator.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index e9c3dec201cb..a45293bfce5a 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -474,30 +474,27 @@ static int fsl_mc_allocator_probe(struct fsl_mc_device *mc_dev) enum fsl_mc_pool_type pool_type; struct fsl_mc_device *mc_bus_dev; struct fsl_mc_bus *mc_bus; - int error = -EINVAL; + int error; if (WARN_ON(!FSL_MC_IS_ALLOCATABLE(mc_dev->obj_desc.type))) - goto error; + return -EINVAL; mc_bus_dev = to_fsl_mc_device(mc_dev->dev.parent); if (WARN_ON(mc_bus_dev->dev.bus != &fsl_mc_bus_type)) - goto error; + return -EINVAL; mc_bus = to_fsl_mc_bus(mc_bus_dev); error = object_type_to_pool_type(mc_dev->obj_desc.type, &pool_type); if (error < 0) - goto error; + return error; error = fsl_mc_resource_pool_add_device(mc_bus, pool_type, mc_dev); if (error < 0) - goto error; + return error; dev_dbg(&mc_dev->dev, "Allocatable MC object device bound to fsl_mc_allocator driver"); return 0; -error: - - return error; } /** @@ -506,22 +503,20 @@ error: */ static int fsl_mc_allocator_remove(struct fsl_mc_device *mc_dev) { - int error = -EINVAL; + int error; if (WARN_ON(!FSL_MC_IS_ALLOCATABLE(mc_dev->obj_desc.type))) - goto out; + return -EINVAL; if (mc_dev->resource) { error = fsl_mc_resource_pool_remove_device(mc_dev); if (error < 0) - goto out; + return error; } dev_dbg(&mc_dev->dev, "Allocatable MC object device unbound from fsl_mc_allocator driver"); - error = 0; -out: - return error; + return 0; } static const struct fsl_mc_device_match_id match_id_table[] = { From 2379bdbc6c37ad9db6538dbe8f56f18968b566ad Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:22 -0500 Subject: [PATCH 1991/2431] staging: fsl-mc: Fixed WARN_ON() in fsl_mc_resource_pool_remove_device Check that resource is not NULL before de-referencing it. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-allocator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index a45293bfce5a..88d1857521a5 100644 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c @@ -111,7 +111,7 @@ static int __must_check fsl_mc_resource_pool_remove_device(struct fsl_mc_device goto out; resource = mc_dev->resource; - if (WARN_ON(resource->data != mc_dev)) + if (WARN_ON(!resource || resource->data != mc_dev)) goto out; mc_bus_dev = to_fsl_mc_device(mc_dev->dev.parent); From a17f4aa62724732b4c3922d5a3a8d22b19ed2901 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:23 -0500 Subject: [PATCH 1992/2431] staging: fsl-mc: fixed bug in uninitialized root dprc irq count When initializing the object attributes for the root dprc, the irq_count was uninitialized. Initialize it to 1. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-bus.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index fd13053cbd9b..4ac3d0791b9f 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -749,6 +749,7 @@ static int fsl_mc_bus_probe(struct platform_device *pdev) obj_desc.id = container_id; obj_desc.ver_major = DPRC_VER_MAJOR; obj_desc.ver_minor = DPRC_VER_MINOR; + obj_desc.irq_count = 1; obj_desc.region_count = 0; error = fsl_mc_device_add(&obj_desc, mc_io, &pdev->dev, &mc_bus_dev); From 4e65f46abafbc98decbc617ca620d44151449e68 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:24 -0500 Subject: [PATCH 1993/2431] staging: fsl-mc: Added missing initializer in fsl_mc_bus_driver owner needs to be initialized as THIS_MOUDLE. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-bus.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 4ac3d0791b9f..84db55b4dda5 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -790,6 +790,7 @@ MODULE_DEVICE_TABLE(of, fsl_mc_bus_match_table); static struct platform_driver fsl_mc_bus_driver = { .driver = { .name = "fsl_mc_bus", + .owner = THIS_MODULE, .pm = NULL, .of_match_table = fsl_mc_bus_match_table, }, From c6a3363c13f43599919b82ef64ce32856d836e00 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 15:33:12 -0500 Subject: [PATCH 1994/2431] staging: fsl-mc: changed timeout units for MC cmd completion Changed units for the timeout to wait for completion of MC command, from jiffies to milliseconds. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-sys.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index 07848a0cbe5a..2c5f1096e594 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -42,9 +42,9 @@ #include "dpmcp.h" /** - * Timeout in jiffies to wait for the completion of an MC command + * Timeout in milliseconds to wait for the completion of an MC command */ -#define MC_CMD_COMPLETION_TIMEOUT_JIFFIES (HZ / 2) /* 500 ms */ +#define MC_CMD_COMPLETION_TIMEOUT_MS 500 /* * usleep_range() min and max values used to throttle down polling @@ -305,7 +305,7 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) { enum mc_cmd_status status; unsigned long jiffies_until_timeout = - jiffies + MC_CMD_COMPLETION_TIMEOUT_JIFFIES; + jiffies + msecs_to_jiffies(MC_CMD_COMPLETION_TIMEOUT_MS); /* * Send command to the MC hardware: From 140305e77aa449b492af0fdd2c0d51b07a3315b2 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 15:33:13 -0500 Subject: [PATCH 1995/2431] staging: fsl-mc: refactored mc_send_command() Moved wait logic in mc_send_command() to its own function Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-sys.c | 50 ++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index 2c5f1096e594..c4f5bdd3cb29 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -292,26 +292,21 @@ static inline enum mc_cmd_status mc_read_response(struct mc_command __iomem * } /** - * Sends an command to the MC device using the given MC I/O object + * Waits for the completion of an MC command doing preemptible polling. + * uslepp_range() is called between polling iterations. * * @mc_io: MC I/O object to be used - * @cmd: command to be sent - * - * Returns '0' on Success; Error code otherwise. - * - * NOTE: This function cannot be invoked from from atomic contexts. + * @cmd: command buffer to receive MC response + * @mc_status: MC command completion status */ -int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) +static int mc_polling_wait_preemptible(struct fsl_mc_io *mc_io, + struct mc_command *cmd, + enum mc_cmd_status *mc_status) { enum mc_cmd_status status; unsigned long jiffies_until_timeout = jiffies + msecs_to_jiffies(MC_CMD_COMPLETION_TIMEOUT_MS); - /* - * Send command to the MC hardware: - */ - mc_write_command(mc_io->portal_virt_addr, cmd); - /* * Wait for response from the MC hardware: */ @@ -339,6 +334,37 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) } } + *mc_status = status; + return 0; +} + +/** + * Sends a command to the MC device using the given MC I/O object + * + * @mc_io: MC I/O object to be used + * @cmd: command to be sent + * + * Returns '0' on Success; Error code otherwise. + * + * NOTE: This function cannot be invoked from from atomic contexts. + */ +int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) +{ + int error; + enum mc_cmd_status status; + + /* + * Send command to the MC hardware: + */ + mc_write_command(mc_io->portal_virt_addr, cmd); + + /* + * Wait for response from the MC hardware: + */ + error = mc_polling_wait_preemptible(mc_io, cmd, &status); + if (error < 0) + return error; + if (status != MC_CMD_STATUS_OK) { pr_debug("MC command failed: portal: %#llx, obj handle: %#x, command: %#x, status: %s (%#x)\n", mc_io->portal_phys_addr, From 3f95ad21855f750fe0428853214754f414b82daf Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 15:33:14 -0500 Subject: [PATCH 1996/2431] staging: fsl-mc:Added support for atomic portals Refactored mc_send_command() to support two flavors of polling: - preemptible (for non-atomic portals), which was already supported. It calls usleep_range() between polling iterations. - non-preemptible (for atomic portals), which is needed when mc_send_command() is called with interrupts disabled. It calls udelay() between polling iterations. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-sys.c | 53 +++++++++++++++++++++++-- drivers/staging/fsl-mc/include/mc-sys.h | 5 +++ 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index c4f5bdd3cb29..6eeb9fa8ae6a 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -338,6 +338,47 @@ static int mc_polling_wait_preemptible(struct fsl_mc_io *mc_io, return 0; } +/** + * Waits for the completion of an MC command doing atomic polling. + * udelay() is called between polling iterations. + * + * @mc_io: MC I/O object to be used + * @cmd: command buffer to receive MC response + * @mc_status: MC command completion status + */ +static int mc_polling_wait_atomic(struct fsl_mc_io *mc_io, + struct mc_command *cmd, + enum mc_cmd_status *mc_status) +{ + enum mc_cmd_status status; + unsigned long timeout_usecs = MC_CMD_COMPLETION_TIMEOUT_MS * 1000; + + BUILD_BUG_ON((MC_CMD_COMPLETION_TIMEOUT_MS * 1000) % + MC_CMD_COMPLETION_POLLING_MAX_SLEEP_USECS != 0); + + for (;;) { + status = mc_read_response(mc_io->portal_virt_addr, cmd); + if (status != MC_CMD_STATUS_READY) + break; + + udelay(MC_CMD_COMPLETION_POLLING_MAX_SLEEP_USECS); + timeout_usecs -= MC_CMD_COMPLETION_POLLING_MAX_SLEEP_USECS; + if (timeout_usecs == 0) { + pr_debug("MC command timed out (portal: %#llx, obj handle: %#x, command: %#x)\n", + mc_io->portal_phys_addr, + (unsigned int) + MC_CMD_HDR_READ_TOKEN(cmd->header), + (unsigned int) + MC_CMD_HDR_READ_CMDID(cmd->header)); + + return -ETIMEDOUT; + } + } + + *mc_status = status; + return 0; +} + /** * Sends a command to the MC device using the given MC I/O object * @@ -345,14 +386,16 @@ static int mc_polling_wait_preemptible(struct fsl_mc_io *mc_io, * @cmd: command to be sent * * Returns '0' on Success; Error code otherwise. - * - * NOTE: This function cannot be invoked from from atomic contexts. */ int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) { int error; enum mc_cmd_status status; + if (WARN_ON(in_irq() && + !(mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL))) + return -EINVAL; + /* * Send command to the MC hardware: */ @@ -361,7 +404,11 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) /* * Wait for response from the MC hardware: */ - error = mc_polling_wait_preemptible(mc_io, cmd, &status); + if (!(mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL)) + error = mc_polling_wait_preemptible(mc_io, cmd, &status); + else + error = mc_polling_wait_atomic(mc_io, cmd, &status); + if (error < 0) return error; diff --git a/drivers/staging/fsl-mc/include/mc-sys.h b/drivers/staging/fsl-mc/include/mc-sys.h index 7d44d8ceef9f..15e19af31115 100644 --- a/drivers/staging/fsl-mc/include/mc-sys.h +++ b/drivers/staging/fsl-mc/include/mc-sys.h @@ -40,6 +40,11 @@ #include #include +/** + * Bit masks for a MC I/O object (struct fsl_mc_io) flags + */ +#define FSL_MC_IO_ATOMIC_CONTEXT_PORTAL 0x0001 + struct fsl_mc_resource; struct mc_command; From 63f2be5c3b358db031f86eafa9cd450f6558a55b Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 15:33:15 -0500 Subject: [PATCH 1997/2431] staging: fsl-mc: Added serialization to mc_send_command() When the same portal is used to call mc_send_command() from two different threads or a thread and an interrupt handler, serialization is required, as the MC only supports one outstanding command per MC portal. Thus, a new command should not be sent to the MC until the last command sent has been responded by the MC. Signed-off-by: J. German Rivera Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/bus/mc-sys.c | 25 ++++++++++++++++++--- drivers/staging/fsl-mc/include/mc-sys.h | 29 +++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index 6eeb9fa8ae6a..6e1489246066 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -88,6 +88,11 @@ int __must_check fsl_create_mc_io(struct device *dev, mc_io->flags = flags; mc_io->portal_phys_addr = mc_portal_phys_addr; mc_io->portal_size = mc_portal_size; + if (flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL) + spin_lock_init(&mc_io->spinlock); + else + mutex_init(&mc_io->mutex); + res = devm_request_mem_region(dev, mc_portal_phys_addr, mc_portal_size, @@ -391,11 +396,17 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) { int error; enum mc_cmd_status status; + unsigned long irq_flags = 0; if (WARN_ON(in_irq() && !(mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL))) return -EINVAL; + if (mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL) + spin_lock_irqsave(&mc_io->spinlock, irq_flags); + else + mutex_lock(&mc_io->mutex); + /* * Send command to the MC hardware: */ @@ -410,7 +421,7 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) error = mc_polling_wait_atomic(mc_io, cmd, &status); if (error < 0) - return error; + goto common_exit; if (status != MC_CMD_STATUS_OK) { pr_debug("MC command failed: portal: %#llx, obj handle: %#x, command: %#x, status: %s (%#x)\n", @@ -420,9 +431,17 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd) mc_status_to_string(status), (unsigned int)status); - return mc_status_to_error(status); + error = mc_status_to_error(status); + goto common_exit; } - return 0; + error = 0; +common_exit: + if (mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL) + spin_unlock_irqrestore(&mc_io->spinlock, irq_flags); + else + mutex_unlock(&mc_io->mutex); + + return error; } EXPORT_SYMBOL(mc_send_command); diff --git a/drivers/staging/fsl-mc/include/mc-sys.h b/drivers/staging/fsl-mc/include/mc-sys.h index 15e19af31115..c5038cc77240 100644 --- a/drivers/staging/fsl-mc/include/mc-sys.h +++ b/drivers/staging/fsl-mc/include/mc-sys.h @@ -39,6 +39,8 @@ #include #include #include +#include +#include /** * Bit masks for a MC I/O object (struct fsl_mc_io) flags @@ -56,6 +58,20 @@ struct mc_command; * @portal_phys_addr: MC command portal physical address * @portal_virt_addr: MC command portal virtual address * @dpmcp_dev: pointer to the DPMCP device associated with the MC portal. + * + * Fields are only meaningful if the FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag is not + * set: + * @mutex: Mutex to serialize mc_send_command() calls that use the same MC + * portal, if the fsl_mc_io object was created with the + * FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag off. mc_send_command() calls for this + * fsl_mc_io object must be made only from non-atomic context. + * + * Fields are only meaningful if the FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag is + * set: + * @spinlock: Spinlock to serialize mc_send_command() calls that use the same MC + * portal, if the fsl_mc_io object was created with the + * FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag on. mc_send_command() calls for this + * fsl_mc_io object can be made from atomic or non-atomic context. */ struct fsl_mc_io { struct device *dev; @@ -64,6 +80,19 @@ struct fsl_mc_io { phys_addr_t portal_phys_addr; void __iomem *portal_virt_addr; struct fsl_mc_device *dpmcp_dev; + union { + /* + * This field is only meaningful if the + * FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag is not set + */ + struct mutex mutex; /* serializes mc_send_command() */ + + /* + * This field is only meaningful if the + * FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag is set + */ + spinlock_t spinlock; /* serializes mc_send_command() */ + }; }; int __must_check fsl_create_mc_io(struct device *dev, From 064e08350f122dbede94be231e7de9012ae47ec0 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Sat, 17 Oct 2015 22:28:54 +0300 Subject: [PATCH 1998/2431] staging: octeon-ethernet: rgmii: poll link status on open Get the initial link status already on open instead of postponing it to the periodic poll task. This unifies the behaviour with other interfaces types. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet-rgmii.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/octeon/ethernet-rgmii.c b/drivers/staging/octeon/ethernet-rgmii.c index 51dcb611702f..98ad4cdb05bc 100644 --- a/drivers/staging/octeon/ethernet-rgmii.c +++ b/drivers/staging/octeon/ethernet-rgmii.c @@ -207,7 +207,7 @@ static irqreturn_t cvm_oct_rgmii_rml_interrupt(int cpl, void *dev_id) int cvm_oct_rgmii_open(struct net_device *dev) { - return cvm_oct_common_open(dev, cvm_oct_rgmii_poll, false); + return cvm_oct_common_open(dev, cvm_oct_rgmii_poll, true); } static void cvm_oct_rgmii_immediate_poll(struct work_struct *work) From 2c265f7479e43a9c0d0f4519adbc6839645c976a Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Sat, 17 Oct 2015 22:28:55 +0300 Subject: [PATCH 1999/2431] staging: octeon-ethernet: drop poll_now parameter from cvm_oct_common_open Drop redundant poll_now parameter from cvm_oct_common_open. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet-rgmii.c | 2 +- drivers/staging/octeon/ethernet-sgmii.c | 2 +- drivers/staging/octeon/ethernet-xaui.c | 2 +- drivers/staging/octeon/ethernet.c | 5 ++--- drivers/staging/octeon/octeon-ethernet.h | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/staging/octeon/ethernet-rgmii.c b/drivers/staging/octeon/ethernet-rgmii.c index 98ad4cdb05bc..613344b886e1 100644 --- a/drivers/staging/octeon/ethernet-rgmii.c +++ b/drivers/staging/octeon/ethernet-rgmii.c @@ -207,7 +207,7 @@ static irqreturn_t cvm_oct_rgmii_rml_interrupt(int cpl, void *dev_id) int cvm_oct_rgmii_open(struct net_device *dev) { - return cvm_oct_common_open(dev, cvm_oct_rgmii_poll, true); + return cvm_oct_common_open(dev, cvm_oct_rgmii_poll); } static void cvm_oct_rgmii_immediate_poll(struct work_struct *work) diff --git a/drivers/staging/octeon/ethernet-sgmii.c b/drivers/staging/octeon/ethernet-sgmii.c index 8bceb769166c..7424dc45ad39 100644 --- a/drivers/staging/octeon/ethernet-sgmii.c +++ b/drivers/staging/octeon/ethernet-sgmii.c @@ -27,7 +27,7 @@ int cvm_oct_sgmii_open(struct net_device *dev) { - return cvm_oct_common_open(dev, cvm_oct_link_poll, true); + return cvm_oct_common_open(dev, cvm_oct_link_poll); } int cvm_oct_sgmii_init(struct net_device *dev) diff --git a/drivers/staging/octeon/ethernet-xaui.c b/drivers/staging/octeon/ethernet-xaui.c index c26d1e666cd7..1b9c5f9f1e94 100644 --- a/drivers/staging/octeon/ethernet-xaui.c +++ b/drivers/staging/octeon/ethernet-xaui.c @@ -27,5 +27,5 @@ int cvm_oct_xaui_open(struct net_device *dev) { - return cvm_oct_common_open(dev, cvm_oct_link_poll, true); + return cvm_oct_common_open(dev, cvm_oct_link_poll); } diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index d6f8a10a60b3..44142cffbfe5 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -481,7 +481,7 @@ void cvm_oct_common_uninit(struct net_device *dev) } int cvm_oct_common_open(struct net_device *dev, - void (*link_poll)(struct net_device *), bool poll_now) + void (*link_poll)(struct net_device *)) { union cvmx_gmxx_prtx_cfg gmx_cfg; struct octeon_ethernet *priv = netdev_priv(dev); @@ -512,8 +512,7 @@ int cvm_oct_common_open(struct net_device *dev, if (!link_info.s.link_up) netif_carrier_off(dev); priv->poll = link_poll; - if (poll_now) - link_poll(dev); + link_poll(dev); } return 0; diff --git a/drivers/staging/octeon/octeon-ethernet.h b/drivers/staging/octeon/octeon-ethernet.h index dfb808f4ee5c..50bb42fdcaaf 100644 --- a/drivers/staging/octeon/octeon-ethernet.h +++ b/drivers/staging/octeon/octeon-ethernet.h @@ -69,7 +69,7 @@ void cvm_oct_common_uninit(struct net_device *dev); void cvm_oct_adjust_link(struct net_device *dev); int cvm_oct_common_stop(struct net_device *dev); int cvm_oct_common_open(struct net_device *dev, - void (*link_poll)(struct net_device *), bool poll_now); + void (*link_poll)(struct net_device *)); void cvm_oct_note_carrier(struct octeon_ethernet *priv, cvmx_helper_link_info_t li); void cvm_oct_link_poll(struct net_device *dev); From d566e69024ac9d00ab7d0b0442ad2ba3ed4bd668 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Sat, 17 Oct 2015 22:28:56 +0300 Subject: [PATCH 2000/2431] staging: octeon-ethernet: move cvm_oct_xaui_open() cvm_oct_xaui_open() is trivial and does not need a dedicated file. Move it to the main file. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/Makefile | 2 -- drivers/staging/octeon/ethernet-xaui.c | 31 ------------------------ drivers/staging/octeon/ethernet.c | 5 ++++ drivers/staging/octeon/octeon-ethernet.h | 1 - 4 files changed, 5 insertions(+), 34 deletions(-) delete mode 100644 drivers/staging/octeon/ethernet-xaui.c diff --git a/drivers/staging/octeon/Makefile b/drivers/staging/octeon/Makefile index 9012dee0c348..8ca17210d917 100644 --- a/drivers/staging/octeon/Makefile +++ b/drivers/staging/octeon/Makefile @@ -19,5 +19,3 @@ octeon-ethernet-y += ethernet-rx.o octeon-ethernet-y += ethernet-sgmii.o octeon-ethernet-y += ethernet-spi.o octeon-ethernet-y += ethernet-tx.o -octeon-ethernet-y += ethernet-xaui.o - diff --git a/drivers/staging/octeon/ethernet-xaui.c b/drivers/staging/octeon/ethernet-xaui.c deleted file mode 100644 index 1b9c5f9f1e94..000000000000 --- a/drivers/staging/octeon/ethernet-xaui.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is based on code from OCTEON SDK by Cavium Networks. - * - * Copyright (c) 2003-2007 Cavium Networks - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, Version 2, as - * published by the Free Software Foundation. - */ - -#include -#include -#include -#include -#include - -#include - -#include "ethernet-defines.h" -#include "octeon-ethernet.h" -#include "ethernet-util.h" -#include "ethernet-mdio.h" - -#include - -#include - -int cvm_oct_xaui_open(struct net_device *dev) -{ - return cvm_oct_common_open(dev, cvm_oct_link_poll); -} diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index 44142cffbfe5..d78fd7b5c74c 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -539,6 +539,11 @@ void cvm_oct_link_poll(struct net_device *dev) cvm_oct_note_carrier(priv, link_info); } +static int cvm_oct_xaui_open(struct net_device *dev) +{ + return cvm_oct_common_open(dev, cvm_oct_link_poll); +} + static const struct net_device_ops cvm_oct_npi_netdev_ops = { .ndo_init = cvm_oct_common_init, .ndo_uninit = cvm_oct_common_uninit, diff --git a/drivers/staging/octeon/octeon-ethernet.h b/drivers/staging/octeon/octeon-ethernet.h index 50bb42fdcaaf..fdf24d120e77 100644 --- a/drivers/staging/octeon/octeon-ethernet.h +++ b/drivers/staging/octeon/octeon-ethernet.h @@ -62,7 +62,6 @@ int cvm_oct_sgmii_open(struct net_device *dev); int cvm_oct_spi_init(struct net_device *dev); void cvm_oct_spi_uninit(struct net_device *dev); -int cvm_oct_xaui_open(struct net_device *dev); int cvm_oct_common_init(struct net_device *dev); void cvm_oct_common_uninit(struct net_device *dev); From ac0a36679928e3e8d7cc0b4c2fd02fb368186992 Mon Sep 17 00:00:00 2001 From: Alexey Khoroshilov Date: Sun, 18 Oct 2015 00:33:09 +0300 Subject: [PATCH 2001/2431] staging: r8188eu: Add _enter_critical_mutex() error handling _enter_critical_mutex() is a simple call to mutex_lock_interruptible(), but there is no error handling code for it. The patch removes wrapper _enter_critical_mutex() and adds error handling for mutex_lock_interruptible(). Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 5 +++-- drivers/staging/rtl8188eu/include/osdep_service.h | 9 --------- drivers/staging/rtl8188eu/os_dep/os_intfs.c | 3 ++- drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 5 ++++- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index d8a0895aa86f..e15c198abbe3 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c @@ -271,7 +271,8 @@ static s32 dump_mgntframe_and_wait_ack(struct adapter *padapter, if (padapter->bSurpriseRemoved || padapter->bDriverStopped) return -1; - _enter_critical_mutex(&pxmitpriv->ack_tx_mutex, NULL); + if (mutex_lock_interruptible(&pxmitpriv->ack_tx_mutex)) + return _FAIL; pxmitpriv->ack_tx = true; pmgntframe->ack_report = 1; @@ -282,7 +283,7 @@ static s32 dump_mgntframe_and_wait_ack(struct adapter *padapter, pxmitpriv->ack_tx = false; mutex_unlock(&pxmitpriv->ack_tx_mutex); - return ret; + return ret; } static int update_hidden_ssid(u8 *ies, u32 ies_len, u8 hidden_ssid_mode) diff --git a/drivers/staging/rtl8188eu/include/osdep_service.h b/drivers/staging/rtl8188eu/include/osdep_service.h index cf9ca685eb77..96505a6dbe2c 100644 --- a/drivers/staging/rtl8188eu/include/osdep_service.h +++ b/drivers/staging/rtl8188eu/include/osdep_service.h @@ -67,15 +67,6 @@ static inline struct list_head *get_list_head(struct __queue *queue) return &(queue->queue); } -static inline int _enter_critical_mutex(struct mutex *pmutex, - unsigned long *pirqL) -{ - int ret; - - ret = mutex_lock_interruptible(pmutex); - return ret; -} - static inline int rtw_netif_queue_stopped(struct net_device *pnetdev) { return netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 0)) && diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c b/drivers/staging/rtl8188eu/os_dep/os_intfs.c index d85647c07c6c..d063d02db7f0 100644 --- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c +++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c @@ -1058,7 +1058,8 @@ static int netdev_open(struct net_device *pnetdev) int ret; struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev); - _enter_critical_mutex(&padapter->hw_init_mutex, NULL); + if (mutex_lock_interruptible(&padapter->hw_init_mutex)) + return -ERESTARTSYS; ret = _netdev_open(pnetdev); mutex_unlock(&padapter->hw_init_mutex); return ret; diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c index 7e599bc5b2d3..0fea338d7313 100644 --- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c +++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c @@ -249,7 +249,10 @@ static int usbctrl_vendorreq(struct adapter *adapt, u8 request, u16 value, u16 i goto exit; } - _enter_critical_mutex(&dvobjpriv->usb_vendor_req_mutex, NULL); + if (mutex_lock_interruptible(&dvobjpriv->usb_vendor_req_mutex)) { + status = -ERESTARTSYS; + goto exit; + } /* Acquire IO memory for vendorreq */ pIo_buf = dvobjpriv->usb_vendor_req_buf; From c3af8a28f43315fc46753465a4e77e5619dd9f30 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Thu, 8 Oct 2015 22:04:26 -0700 Subject: [PATCH 2002/2431] staging: IB/hfi1: use TASK_COMM_LEN in hfi1_ctxtdata Use comm[TASK_COMM_LEN] instead of comm[16]. Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/hfi1/hfi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rdma/hfi1/hfi.h b/drivers/staging/rdma/hfi1/hfi.h index 8ca171bf3e36..a35213e9b500 100644 --- a/drivers/staging/rdma/hfi1/hfi.h +++ b/drivers/staging/rdma/hfi1/hfi.h @@ -262,7 +262,7 @@ struct hfi1_ctxtdata { pid_t pid; pid_t subpid[HFI1_MAX_SHARED_CTXTS]; /* same size as task_struct .comm[], command that opened context */ - char comm[16]; + char comm[TASK_COMM_LEN]; /* so file ops can get at unit */ struct hfi1_devdata *dd; /* so functions that need physical port can get it easily */ From 31390eec7dce6360a96e32d440bf6e0c1bb31d0f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:08 +0900 Subject: [PATCH 2003/2431] staging: wilc1000: rename variable s32Error This patch renames variable s32Error to result to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 781 ++++++++++------------ 1 file changed, 370 insertions(+), 411 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 38fead44cce0..066123fdf86d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -324,8 +324,7 @@ static struct host_if_drv *get_handler_from_id(int id) static s32 Handle_SetChannel(struct host_if_drv *hif_drv, struct channel_attr *pstrHostIFSetChan) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; strWID.id = (u16)WID_CURRENT_CHANNEL; @@ -335,21 +334,21 @@ static s32 Handle_SetChannel(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting channel\n"); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + + if (result) { PRINT_ER("Failed to set channel\n"); return -EINVAL; } - return s32Error; + return result; } static s32 Handle_SetWfiDrvHandler(struct host_if_drv *hif_drv, struct drv_handler *pstrHostIfSetDrvHandler) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; strWID.id = (u16)WID_SET_DRV_HANDLER; @@ -357,25 +356,24 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *hif_drv, strWID.val = (s8 *)&(pstrHostIfSetDrvHandler->u32Address); strWID.size = sizeof(u32); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, pstrHostIfSetDrvHandler->u32Address); if (!hif_drv) up(&hif_sema_driver); - if (s32Error) { + if (result) { PRINT_ER("Failed to set driver handler\n"); return -EINVAL; } - return s32Error; + return result; } static s32 Handle_SetOperationMode(struct host_if_drv *hif_drv, struct op_mode *pstrHostIfSetOperationMode) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; strWID.id = (u16)WID_SET_OPERATION_MODE; @@ -383,25 +381,23 @@ static s32 Handle_SetOperationMode(struct host_if_drv *hif_drv, strWID.val = (s8 *)&(pstrHostIfSetOperationMode->u32Mode); strWID.size = sizeof(u32); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if ((pstrHostIfSetOperationMode->u32Mode) == IDLE_MODE) up(&hif_sema_driver); - if (s32Error) { + if (result) { PRINT_ER("Failed to set driver handler\n"); return -EINVAL; } - return s32Error; + return result; } s32 Handle_set_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; char firmwareIPAddress[4] = {0}; @@ -417,26 +413,24 @@ s32 Handle_set_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) strWID.val = (u8 *)pu8IPAddr; strWID.size = IP_ALEN; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - host_int_get_ipaddress(hif_drv, firmwareIPAddress, idx); - if (s32Error) { + if (result) { PRINT_ER("Failed to set IP address\n"); return -EINVAL; } PRINT_INFO(HOSTINF_DBG, "IP address set\n"); - return s32Error; + return result; } s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; strWID.id = (u16)WID_IP_ADDRESS; @@ -444,7 +438,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) strWID.val = kmalloc(IP_ALEN, GFP_KERNEL); strWID.size = IP_ALEN; - s32Error = send_config_pkt(GET_CFG, &strWID, 1, + result = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.val); @@ -456,7 +450,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) if (memcmp(get_ip[idx], set_ip[idx], IP_ALEN) != 0) host_int_setup_ipaddress(hif_drv, set_ip[idx], idx); - if (s32Error != 0) { + if (result != 0) { PRINT_ER("Failed to get IP address\n"); return -EINVAL; } @@ -465,14 +459,13 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) PRINT_INFO(HOSTINF_DBG, "%pI4\n", get_ip[idx]); PRINT_INFO(HOSTINF_DBG, "\n"); - return s32Error; + return result; } static s32 Handle_SetMacAddress(struct host_if_drv *hif_drv, struct set_mac_addr *pstrHostIfSetMacAddress) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *mac_buf = kmalloc(ETH_ALEN, GFP_KERNEL); @@ -488,22 +481,21 @@ static s32 Handle_SetMacAddress(struct host_if_drv *hif_drv, strWID.size = ETH_ALEN; PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.val); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to set mac address\n"); - s32Error = -EFAULT; + result = -EFAULT; } kfree(mac_buf); - return s32Error; + return result; } static s32 Handle_GetMacAddress(struct host_if_drv *hif_drv, struct get_mac_addr *pstrHostIfGetMacAddress) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; strWID.id = (u16)WID_MAC_ADDR; @@ -511,21 +503,22 @@ static s32 Handle_GetMacAddress(struct host_if_drv *hif_drv, strWID.val = pstrHostIfGetMacAddress->u8MacAddress; strWID.size = ETH_ALEN; - s32Error = send_config_pkt(GET_CFG, &strWID, 1, + result = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + + if (result) { PRINT_ER("Failed to get mac address\n"); - s32Error = -EFAULT; + result = -EFAULT; } up(&hif_sema_wait_response); - return s32Error; + return result; } static s32 Handle_CfgParam(struct host_if_drv *hif_drv, struct cfg_param_attr *strHostIFCfgParamAttr) { - s32 s32Error = 0; + s32 result = 0; struct wid strWIDList[32]; u8 u8WidCnt = 0; @@ -543,7 +536,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.bss_type = (u8)strHostIFCfgParamAttr->cfg_attr_info.bss_type; } else { PRINT_ER("check value 6 over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -557,7 +550,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.auth_type = (u8)strHostIFCfgParamAttr->cfg_attr_info.auth_type; } else { PRINT_ER("Impossible value \n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -571,7 +564,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.auth_timeout = strHostIFCfgParamAttr->cfg_attr_info.auth_timeout; } else { PRINT_ER("Range(1 ~ 65535) over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -585,7 +578,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.power_mgmt_mode = (u8)strHostIFCfgParamAttr->cfg_attr_info.power_mgmt_mode; } else { PRINT_ER("Invalide power mode\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -599,7 +592,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.short_retry_limit = strHostIFCfgParamAttr->cfg_attr_info.short_retry_limit; } else { PRINT_ER("Range(1~256) over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -614,7 +607,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.long_retry_limit = strHostIFCfgParamAttr->cfg_attr_info.long_retry_limit; } else { PRINT_ER("Range(1~256) over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -629,7 +622,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.frag_threshold = strHostIFCfgParamAttr->cfg_attr_info.frag_threshold; } else { PRINT_ER("Threshold Range fail\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -643,7 +636,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.rts_threshold = strHostIFCfgParamAttr->cfg_attr_info.rts_threshold; } else { PRINT_ER("Threshold Range fail\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -657,7 +650,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.preamble_type = strHostIFCfgParamAttr->cfg_attr_info.preamble_type; } else { PRINT_ER("Preamle Range(0~2) over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -671,7 +664,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.short_slot_allowed = (u8)strHostIFCfgParamAttr->cfg_attr_info.short_slot_allowed; } else { PRINT_ER("Short slot(2) over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -685,7 +678,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.txop_prot_disabled = (u8)strHostIFCfgParamAttr->cfg_attr_info.txop_prot_disabled; } else { PRINT_ER("TXOP prot disable\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -699,7 +692,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.beacon_interval = strHostIFCfgParamAttr->cfg_attr_info.beacon_interval; } else { PRINT_ER("Beacon interval(1~65535) fail\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -713,7 +706,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.dtim_period = strHostIFCfgParamAttr->cfg_attr_info.dtim_period; } else { PRINT_ER("DTIM range(1~255) fail\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -727,7 +720,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.site_survey_enabled = (u8)strHostIFCfgParamAttr->cfg_attr_info.site_survey_enabled; } else { PRINT_ER("Site survey disable\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -741,7 +734,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.site_survey_scan_time = strHostIFCfgParamAttr->cfg_attr_info.site_survey_scan_time; } else { PRINT_ER("Site survey scan time(1~65535) over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -755,7 +748,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.active_scan_time = strHostIFCfgParamAttr->cfg_attr_info.active_scan_time; } else { PRINT_ER("Active scan time(1~65535) over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -769,7 +762,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.passive_scan_time = strHostIFCfgParamAttr->cfg_attr_info.passive_scan_time; } else { PRINT_ER("Passive scan time(1~65535) over\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; @@ -789,20 +782,21 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, hif_drv->strCfgValues.curr_tx_rate = (u8)curr_tx_rate; } else { PRINT_ER("out of TX rate\n"); - s32Error = -EINVAL; + result = -EINVAL; goto ERRORHANDLER; } u8WidCnt++; } - s32Error = send_config_pkt(SET_CFG, strWIDList, u8WidCnt, + + result = send_config_pkt(SET_CFG, strWIDList, u8WidCnt, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Error in setting CFG params\n"); ERRORHANDLER: up(&hif_drv->gtOsCfgValuesSem); - return s32Error; + return result; } static s32 Handle_wait_msg_q_empty(void) @@ -815,7 +809,7 @@ static s32 Handle_wait_msg_q_empty(void) static s32 Handle_Scan(struct host_if_drv *hif_drv, struct scan_attr *pstrHostIFscanAttr) { - s32 s32Error = 0; + s32 result = 0; struct wid strWIDList[5]; u32 u32WidsCount = 0; u32 i; @@ -832,14 +826,14 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, if ((hif_drv->enuHostIFstate >= HOST_IF_SCANNING) && (hif_drv->enuHostIFstate < HOST_IF_CONNECTED)) { PRINT_D(GENERIC_DBG, "Don't scan we are already in [%d] state\n", hif_drv->enuHostIFstate); PRINT_ER("Already scan\n"); - s32Error = -EBUSY; + result = -EBUSY; goto ERRORHANDLER; } if (g_obtainingIP || connecting) { PRINT_D(GENERIC_DBG, "[handle_scan]: Don't do obss scan until IP adresss is obtained\n"); PRINT_ER("Don't do obss scan\n"); - s32Error = -EBUSY; + result = -EBUSY; goto ERRORHANDLER; } @@ -915,16 +909,16 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, else if (hif_drv->enuHostIFstate == HOST_IF_IDLE) scan_while_connected = false; - s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, + result = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send scan paramters config packet\n"); else PRINT_D(HOSTINF_DBG, "Successfully sent SCAN params config packet\n"); ERRORHANDLER: - if (s32Error) { + if (result) { del_timer(&hif_drv->hScanTimer); Handle_ScanDone(hif_drv, SCAN_EVENT_ABORTED); } @@ -939,13 +933,13 @@ ERRORHANDLER: kfree(pu8HdnNtwrksWidVal); - return s32Error; + return result; } static s32 Handle_ScanDone(struct host_if_drv *hif_drv, enum scan_event enuEvent) { - s32 s32Error = 0; + s32 result = 0; u8 u8abort_running_scan; struct wid strWID; @@ -960,17 +954,18 @@ static s32 Handle_ScanDone(struct host_if_drv *hif_drv, strWID.val = (s8 *)&u8abort_running_scan; strWID.size = sizeof(char); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + + if (result) { PRINT_ER("Failed to set abort running scan\n"); - s32Error = -EFAULT; + result = -EFAULT; } } if (!hif_drv) { PRINT_ER("Driver handler is NULL\n"); - return s32Error; + return result; } if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { @@ -979,14 +974,14 @@ static s32 Handle_ScanDone(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrScanReq.pfUserScanResult = NULL; } - return s32Error; + return result; } u8 u8ConnectedSSID[6] = {0}; static s32 Handle_Connect(struct host_if_drv *hif_drv, struct connect_attr *pstrHostIFconnectAttr) { - s32 s32Error = 0; + s32 result = 0; struct wid strWIDList[8]; u32 u32WidsCount = 0, dummyval = 0; u8 *pu8CurrByte = NULL; @@ -995,10 +990,9 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, PRINT_D(GENERIC_DBG, "Handling connect request\n"); if (memcmp(pstrHostIFconnectAttr->bssid, u8ConnectedSSID, ETH_ALEN) == 0) { - - s32Error = 0; + result = 0; PRINT_ER("Trying to connect to an already connected AP, Discard connect request\n"); - return s32Error; + return result; } PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n"); @@ -1006,7 +1000,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, ptstrJoinBssParam = (struct join_bss_param *)pstrHostIFconnectAttr->params; if (ptstrJoinBssParam == NULL) { PRINT_ER("Required BSSID not found\n"); - s32Error = -ENOENT; + result = -ENOENT; goto ERRORHANDLER; } @@ -1102,7 +1096,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, join_req = kmalloc(join_req_size, GFP_KERNEL); } if (strWIDList[u32WidsCount].val == NULL) { - s32Error = -EFAULT; + result = -EFAULT; goto ERRORHANDLER; } @@ -1211,11 +1205,11 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, PRINT_D(GENERIC_DBG, "save bssid = %pM\n", u8ConnectedSSID); } - s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, + result = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("failed to send config packet\n"); - s32Error = -EFAULT; + result = -EFAULT; goto ERRORHANDLER; } else { PRINT_D(GENERIC_DBG, "set HOST_IF_WAITING_CONN_RESP\n"); @@ -1223,7 +1217,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, } ERRORHANDLER: - if (s32Error) { + if (result) { tstrConnectInfo strConnectInfo; del_timer(&hif_drv->hConnectTimer); @@ -1269,12 +1263,12 @@ ERRORHANDLER: pstrHostIFconnectAttr->ies = NULL; kfree(pu8CurrByte); - return s32Error; + return result; } static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) { - s32 s32Error = 0; + s32 result = 0; struct wid strWIDList[5]; u32 u32WidsCount = 0; u8 *pu8CurrByte = NULL; @@ -1310,26 +1304,26 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) u32WidsCount++; - s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, + result = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, get_id_from_handler(join_req_drv)); - if (s32Error) { + if (result) { PRINT_ER("failed to send config packet\n"); - s32Error = -EINVAL; + result = -EINVAL; } - return s32Error; + return result; } static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) { - s32 s32Error = 0; + s32 result = 0; tstrConnectInfo strConnectInfo; struct wid strWID; u16 u16DummyReasonCode = 0; if (!hif_drv) { PRINT_ER("Driver handler is NULL\n"); - return s32Error; + return result; } hif_drv->enuHostIFstate = HOST_IF_IDLE; @@ -1371,9 +1365,9 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send dissconect config packet\n"); hif_drv->strWILC_UsrConnReq.ssidLen = 0; @@ -1394,7 +1388,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) info_element = NULL; } - return s32Error; + return result; } static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, @@ -1402,10 +1396,7 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, { u32 i; bool bNewNtwrkFound; - - - - s32 s32Error = 0; + s32 result = 0; tstrNetworkInfo *pstrNetworkInfo = NULL; void *pJoinParams = NULL; @@ -1418,7 +1409,7 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, if ((pstrNetworkInfo == NULL) || (hif_drv->strWILC_UsrScanReq.pfUserScanResult == NULL)) { PRINT_ER("driver is null\n"); - s32Error = -EINVAL; + result = -EINVAL; goto done; } @@ -1481,13 +1472,13 @@ done: pstrNetworkInfo = NULL; } - return s32Error; + return result; } static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, struct rcvd_async_info *pstrRcvdGnrlAsyncInfo) { - s32 s32Error = 0; + s32 result = 0; u8 u8MsgType = 0; u8 u8MsgID = 0; u16 u16MsgLen = 0; @@ -1711,13 +1702,13 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, kfree(pstrRcvdGnrlAsyncInfo->buffer); pstrRcvdGnrlAsyncInfo->buffer = NULL; - return s32Error; + return result; } static int Handle_Key(struct host_if_drv *hif_drv, struct key_attr *pstrHostIFkeyAttr) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; struct wid strWIDList[5]; u8 i; @@ -1766,8 +1757,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[3].size = pstrHostIFkeyAttr->attr.wep.key_len; strWIDList[3].val = (s8 *)pu8keybuf; - - s32Error = send_config_pkt(SET_CFG, strWIDList, 4, + result = send_config_pkt(SET_CFG, strWIDList, 4, get_id_from_handler(hif_drv)); kfree(pu8keybuf); @@ -1792,7 +1782,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.val = (s8 *)pu8keybuf; strWID.size = pstrHostIFkeyAttr->attr.wep.key_len + 2; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); kfree(pu8keybuf); } else if (pstrHostIFkeyAttr->action & REMOVEKEY) { @@ -1805,7 +1795,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.val = s8idxarray; strWID.size = 1; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); } else { strWID.id = (u16)WID_KEY_ID; @@ -1815,7 +1805,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting default key index\n"); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); } up(&hif_drv->hSemTestKeyBlock); @@ -1848,7 +1838,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[1].val = (s8 *)pu8keybuf; strWIDList[1].size = RX_MIC_KEY_MSG_LEN; - s32Error = send_config_pkt(SET_CFG, strWIDList, 2, + result = send_config_pkt(SET_CFG, strWIDList, 2, get_id_from_handler(hif_drv)); kfree(pu8keybuf); @@ -1881,7 +1871,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.val = (s8 *)pu8keybuf; strWID.size = RX_MIC_KEY_MSG_LEN; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); kfree(pu8keybuf); @@ -1926,7 +1916,7 @@ _WPARxGtk_end_case_: strWIDList[1].val = (s8 *)pu8keybuf; strWIDList[1].size = PTK_KEY_MSG_LEN + 1; - s32Error = send_config_pkt(SET_CFG, strWIDList, 2, + result = send_config_pkt(SET_CFG, strWIDList, 2, get_id_from_handler(hif_drv)); kfree(pu8keybuf); up(&hif_drv->hSemTestKeyBlock); @@ -1955,7 +1945,7 @@ _WPARxGtk_end_case_: strWID.val = (s8 *)pu8keybuf; strWID.size = PTK_KEY_MSG_LEN; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); kfree(pu8keybuf); up(&hif_drv->hSemTestKeyBlock); @@ -1991,25 +1981,24 @@ _WPAPtk_end_case_: strWID.val = (s8 *)pu8keybuf; strWID.size = (pstrHostIFkeyAttr->attr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); kfree(pu8keybuf); break; } - if (s32Error) + if (result) PRINT_ER("Failed to send key config packet\n"); - - return s32Error; + return result; } static void Handle_Disconnect(struct host_if_drv *hif_drv) { struct wid strWID; - s32 s32Error = 0; + s32 result = 0; u16 u16DummyReasonCode = 0; strWID.id = (u16)WID_DISCONNECT; @@ -2026,10 +2015,10 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) eth_zero_addr(u8ConnectedSSID); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to send dissconect config packet\n"); } else { tstrDisconnectNotifInfo strDisconnectNotifInfo; @@ -2100,8 +2089,7 @@ void resolve_disconnect_aberration(struct host_if_drv *hif_drv) static s32 Handle_GetChnl(struct host_if_drv *hif_drv) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; strWID.id = (u16)WID_CURRENT_CHANNEL; @@ -2111,25 +2099,22 @@ static s32 Handle_GetChnl(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Getting channel value\n"); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, + result = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to get channel number\n"); - s32Error = -EFAULT; + result = -EFAULT; } up(&hif_drv->hSemGetCHNL); - return s32Error; - - - + return result; } static void Handle_GetRssi(struct host_if_drv *hif_drv) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; strWID.id = (u16)WID_RSSI; @@ -2139,11 +2124,11 @@ static void Handle_GetRssi(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, + result = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to get RSSI value\n"); - s32Error = -EFAULT; + result = -EFAULT; } up(&hif_drv->hSemGetRSSI); @@ -2154,7 +2139,7 @@ static void Handle_GetRssi(struct host_if_drv *hif_drv) static void Handle_GetLinkspeed(struct host_if_drv *hif_drv) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; link_speed = 0; @@ -2166,11 +2151,11 @@ static void Handle_GetLinkspeed(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, + result = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to get LINKSPEED value\n"); - s32Error = -EFAULT; + result = -EFAULT; } up(&(hif_drv->hSemGetLINKSPEED)); @@ -2181,7 +2166,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *hif_drv) s32 Handle_GetStatistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatistics) { struct wid strWIDList[5]; - u32 u32WidsCount = 0, s32Error = 0; + u32 u32WidsCount = 0, result = 0; strWIDList[u32WidsCount].id = WID_LINKSPEED; strWIDList[u32WidsCount].type = WID_CHAR; @@ -2213,10 +2198,10 @@ s32 Handle_GetStatistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatis strWIDList[u32WidsCount].val = (s8 *)(&(pstrStatistics->u32TxFailureCount)); u32WidsCount++; - s32Error = send_config_pkt(GET_CFG, strWIDList, u32WidsCount, + result = send_config_pkt(GET_CFG, strWIDList, u32WidsCount, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send scan paramters config packet\n"); up(&hif_sema_wait_response); @@ -2227,8 +2212,7 @@ s32 Handle_GetStatistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatis static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, struct sta_inactive_t *strHostIfStaInactiveT) { - - s32 s32Error = 0; + s32 result = 0; u8 *stamac; struct wid strWID; @@ -2244,11 +2228,10 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, PRINT_D(CFG80211_DBG, "SETING STA inactive time\n"); - - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to SET incative time\n"); return -EFAULT; } @@ -2259,11 +2242,10 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, strWID.val = (s8 *)&inactive_time; strWID.size = sizeof(u32); - - s32Error = send_config_pkt(GET_CFG, &strWID, 1, + result = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to get incative time\n"); return -EFAULT; } @@ -2272,16 +2254,13 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, up(&hif_drv->hSemInactiveTime); - return s32Error; - - - + return result; } static void Handle_AddBeacon(struct host_if_drv *hif_drv, struct beacon_attr *pstrSetBeaconParam) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *pu8CurrByte; @@ -2322,9 +2301,9 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, pstrSetBeaconParam->tail, pstrSetBeaconParam->tail_len); pu8CurrByte += pstrSetBeaconParam->tail_len; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send add beacon config packet\n"); ERRORHANDLER: @@ -2335,7 +2314,7 @@ ERRORHANDLER: static void Handle_DelBeacon(struct host_if_drv *hif_drv) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *pu8CurrByte; @@ -2351,9 +2330,9 @@ static void Handle_DelBeacon(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Deleting BEACON\n"); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send delete beacon config packet\n"); } @@ -2406,7 +2385,7 @@ static u32 WILC_HostIf_PackStaParam(u8 *pu8Buffer, static void Handle_AddStation(struct host_if_drv *hif_drv, struct add_sta_param *pstrStationParam) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *pu8CurrByte; @@ -2422,9 +2401,9 @@ static void Handle_AddStation(struct host_if_drv *hif_drv, pu8CurrByte = strWID.val; pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error != 0) + if (result != 0) PRINT_ER("Failed to send add station config packet\n"); ERRORHANDLER: @@ -2435,7 +2414,7 @@ ERRORHANDLER: static void Handle_DelAllSta(struct host_if_drv *hif_drv, struct del_all_sta *pstrDelAllStaParam) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *pu8CurrByte; @@ -2465,9 +2444,9 @@ static void Handle_DelAllSta(struct host_if_drv *hif_drv, pu8CurrByte += ETH_ALEN; } - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send add station config packet\n"); ERRORHANDLER: @@ -2479,7 +2458,7 @@ ERRORHANDLER: static void Handle_DelStation(struct host_if_drv *hif_drv, struct del_sta *pstrDelStaParam) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *pu8CurrByte; @@ -2497,9 +2476,9 @@ static void Handle_DelStation(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, pstrDelStaParam->mac_addr, ETH_ALEN); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send add station config packet\n"); ERRORHANDLER: @@ -2509,7 +2488,7 @@ ERRORHANDLER: static void Handle_EditStation(struct host_if_drv *hif_drv, struct add_sta_param *pstrStationParam) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *pu8CurrByte; @@ -2525,9 +2504,9 @@ static void Handle_EditStation(struct host_if_drv *hif_drv, pu8CurrByte = strWID.val; pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send edit station config packet\n"); ERRORHANDLER: @@ -2538,7 +2517,7 @@ ERRORHANDLER: static int Handle_RemainOnChan(struct host_if_drv *hif_drv, struct remain_ch *pstrHostIfRemainOnChan) { - s32 s32Error = 0; + s32 result = 0; u8 u8remain_on_chan_flag; struct wid strWID; @@ -2555,18 +2534,18 @@ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, if (hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while scanning return\n"); hif_drv->u8RemainOnChan_pendingreq = 1; - s32Error = -EBUSY; + result = -EBUSY; goto ERRORHANDLER; } if (hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while connecting return\n"); - s32Error = -EBUSY; + result = -EBUSY; goto ERRORHANDLER; } if (g_obtainingIP || connecting) { PRINT_D(GENERIC_DBG, "[handle_scan]: Don't do obss scan until IP adresss is obtained\n"); - s32Error = -EBUSY; + result = -EBUSY; goto ERRORHANDLER; } @@ -2579,16 +2558,16 @@ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, strWID.val = kmalloc(strWID.size, GFP_KERNEL); if (strWID.val == NULL) { - s32Error = -ENOMEM; + result = -ENOMEM; goto ERRORHANDLER; } strWID.val[0] = u8remain_on_chan_flag; strWID.val[1] = (s8)pstrHostIfRemainOnChan->u16Channel; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error != 0) + if (result != 0) PRINT_ER("Failed to set remain on channel\n"); ERRORHANDLER: @@ -2605,13 +2584,14 @@ ERRORHANDLER: if (hif_drv->u8RemainOnChan_pendingreq) hif_drv->u8RemainOnChan_pendingreq = 0; } - return s32Error; + + return result; } static int Handle_RegisterFrame(struct host_if_drv *hif_drv, struct reg_frame *pstrHostIfRegisterFrame) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *pu8CurrByte; @@ -2632,15 +2612,14 @@ static int Handle_RegisterFrame(struct host_if_drv *hif_drv, strWID.size = sizeof(u16) + 2; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to frame register config packet\n"); - s32Error = -EINVAL; + result = -EINVAL; } - return s32Error; - + return result; } #define FALSE_FRMWR_CHANNEL 100 @@ -2649,7 +2628,7 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, { u8 u8remain_on_chan_flag; struct wid strWID; - s32 s32Error = 0; + s32 result = 0; PRINT_D(HOSTINF_DBG, "CANCEL REMAIN ON CHAN\n"); @@ -2666,9 +2645,9 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, strWID.val[0] = u8remain_on_chan_flag; strWID.val[1] = FALSE_FRMWR_CHANNEL; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error != 0) { + if (result != 0) { PRINT_ER("Failed to set remain on channel\n"); goto _done_; } @@ -2680,16 +2659,16 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, P2P_LISTEN_STATE = 0; } else { PRINT_D(GENERIC_DBG, "Not in listen state\n"); - s32Error = -EFAULT; + result = -EFAULT; } _done_: - return s32Error; + return result; } static void ListenTimerCB(unsigned long arg) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct host_if_drv *hif_drv = (struct host_if_drv *)arg; @@ -2700,15 +2679,15 @@ static void ListenTimerCB(unsigned long arg) msg.drv = hif_drv; msg.body.remain_on_ch.u32ListenSessionID = hif_drv->strHostIfRemainOnChan.u32ListenSessionID; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); } static void Handle_PowerManagement(struct host_if_drv *hif_drv, struct power_mgmt_param *strPowerMgmtParam) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; s8 s8PowerMode; @@ -2724,16 +2703,16 @@ static void Handle_PowerManagement(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Handling Power Management\n"); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send power management config packet\n"); } static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, struct set_multicast *strHostIfSetMulti) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; u8 *pu8CurrByte; @@ -2760,9 +2739,9 @@ static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, if ((strHostIfSetMulti->cnt) > 0) memcpy(pu8CurrByte, gau8MulticastMacAddrList, ((strHostIfSetMulti->cnt) * ETH_ALEN)); - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_ER("Failed to send setup multicast config packet\n"); ERRORHANDLER: @@ -2773,7 +2752,7 @@ ERRORHANDLER: static s32 Handle_AddBASession(struct host_if_drv *hif_drv, struct ba_session_info *strHostIfBASessionInfo) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; int AddbaTimeout = 100; char *ptr = NULL; @@ -2807,9 +2786,9 @@ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, *ptr++ = 8; *ptr++ = 0; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_D(HOSTINF_DBG, "Couldn't open BA Session\n"); @@ -2827,19 +2806,19 @@ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, *ptr++ = (strHostIfBASessionInfo->u16BufferSize & 0xFF); *ptr++ = ((strHostIfBASessionInfo->u16SessionTimeout >> 16) & 0xFF); *ptr++ = 3; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); kfree(strWID.val); - return s32Error; + return result; } static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, struct ba_session_info *strHostIfBASessionInfo) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; char *ptr = NULL; @@ -2863,9 +2842,9 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, *ptr++ = 0; *ptr++ = 32; - s32Error = send_config_pkt(SET_CFG, &strWID, 1, + result = send_config_pkt(SET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) + if (result) PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); @@ -2873,8 +2852,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, up(&hif_sema_wait_response); - return s32Error; - + return result; } static int hostIFthread(void *pvArg) @@ -3152,14 +3130,14 @@ int host_int_remove_wep_key(struct host_if_drv *hif_drv, u8 index) s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("driver is null\n"); - return s32Error; + return result; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3171,12 +3149,12 @@ s32 host_int_set_WEPDefaultKeyID(struct host_if_drv *hif_drv, u8 u8Index) msg.drv = hif_drv; msg.body.key_info.attr.wep.index = u8Index; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("Error in sending message queue : Default key index\n"); down(&hif_drv->hSemTestKeyBlock); - return s32Error; + return result; } s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, @@ -3184,14 +3162,13 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, u8 u8WepKeylen, u8 u8Keyidx) { - - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("driver is null\n"); - return s32Error; + return result; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3206,13 +3183,12 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, msg.body.key_info.attr.wep.key_len = (u8WepKeylen); msg.body.key_info.attr.wep.index = u8Keyidx; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("Error in sending message queue :WEP Key\n"); down(&hif_drv->hSemTestKeyBlock); - return s32Error; - + return result; } s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, @@ -3222,15 +3198,14 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, u8 u8mode, enum AUTHTYPE tenuAuth_type) { - - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; u8 i; if (!hif_drv) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("driver is null\n"); - return s32Error; + return result; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3250,14 +3225,13 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, msg.body.key_info.attr.wep.mode = u8mode; msg.body.key_info.attr.wep.auth_type = tenuAuth_type; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + if (result) PRINT_ER("Error in sending message queue :WEP Key\n"); down(&hif_drv->hSemTestKeyBlock); - return s32Error; - + return result; } s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, @@ -3265,15 +3239,15 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode, u8 u8Idx) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; u8 u8KeyLen = u8PtkKeylen; u32 i; if (!hif_drv) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("driver is null\n"); - return s32Error; + return result; } if (pu8RxMic != NULL) u8KeyLen += RX_MIC_KEY_LEN; @@ -3315,14 +3289,14 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.body.key_info.attr.wpa.mode = u8Ciphermode; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + if (result) PRINT_ER("Error in sending message queue: PTK Key\n"); down(&hif_drv->hSemTestKeyBlock); - return s32Error; + return result; } s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, @@ -3331,14 +3305,14 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; u8 u8KeyLen = u8GtkKeylen; if (!hif_drv) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("driver is null\n"); - return s32Error; + return result; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3378,26 +3352,26 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, msg.body.key_info.attr.wpa.key_len = u8KeyLen; msg.body.key_info.attr.wpa.seq_len = u32KeyRSClen; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("Error in sending message queue: RX GTK\n"); down(&hif_drv->hSemTestKeyBlock); - return s32Error; + return result; } s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_attr *pu8PmkidInfoArray) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; u32 i; if (!hif_drv) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("driver is null\n"); - return s32Error; + return result; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3414,11 +3388,11 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at PMKID_LEN); } - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER(" Error in sending messagequeue: PMKID Info\n"); - return s32Error; + return result; } s32 host_int_get_pmkid_info(struct host_if_drv *hif_drv, @@ -3453,7 +3427,7 @@ s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hif_drv, s32 host_int_get_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3462,19 +3436,19 @@ s32 host_int_get_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) msg.body.get_mac_info.u8MacAddress = pu8MacAddress; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("Failed to send get mac address\n"); return -EFAULT; } down(&hif_sema_wait_response); - return s32Error; + return result; } s32 host_int_set_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; PRINT_D(GENERIC_DBG, "mac addr = %x:%x:%x\n", pu8MacAddress[0], pu8MacAddress[1], pu8MacAddress[2]); @@ -3484,12 +3458,11 @@ s32 host_int_set_MacAddress(struct host_if_drv *hif_drv, u8 *pu8MacAddress) memcpy(msg.body.set_mac_info.u8MacAddress, pu8MacAddress, ETH_ALEN); msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("Failed to send message queue: Set mac address\n"); - return s32Error; - + return result; } s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hif_drv, @@ -3536,13 +3509,13 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, u8 u8security, enum AUTHTYPE tenuAuth_type, u8 u8channel, void *pJoinParams) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv || pfConnectResult == NULL) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("Driver is null\n"); - return s32Error; + return result; } if (pJoinParams == NULL) { @@ -3583,8 +3556,8 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, else PRINT_D(GENERIC_DBG, "Don't set state to 'connecting' as state is %d\n", hif_drv->enuHostIFstate); - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("Failed to send message queue: Set join request\n"); return -EFAULT; } @@ -3593,41 +3566,41 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, mod_timer(&hif_drv->hConnectTimer, jiffies + msecs_to_jiffies(HOST_IF_CONNECT_TIMEOUT)); - return s32Error; + return result; } s32 host_int_flush_join_req(struct host_if_drv *hif_drv) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!join_req) { - s32Error = -EFAULT; - return s32Error; + result = -EFAULT; + return result; } if (!hif_drv) { - s32Error = -EFAULT; + result = -EFAULT; PRINT_ER("Driver is null\n"); - return s32Error; + return result; } msg.id = HOST_IF_MSG_FLUSH_CONNECT; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("Failed to send message queue: Flush join request\n"); return -EFAULT; } - return s32Error; + return result; } s32 host_int_disconnect(struct host_if_drv *hif_drv, u16 u16ReasonCode) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { @@ -3640,13 +3613,13 @@ s32 host_int_disconnect(struct host_if_drv *hif_drv, u16 u16ReasonCode) msg.id = HOST_IF_MSG_DISCONNECT; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("Failed to send message queue: disconnect\n"); down(&hif_drv->hSemTestDisconnectBlock); - return s32Error; + return result; } s32 host_int_disconnect_station(struct host_if_drv *hif_drv, u8 assoc_id) @@ -3677,7 +3650,7 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hif_drv, u8 *pu8AssocReqInfo s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInfo, u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen) { - s32 s32Error = 0; + s32 result = 0; struct wid strWID; if (!hif_drv) { @@ -3690,9 +3663,9 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInf strWID.val = pu8AssocRespInfo; strWID.size = u32MaxAssocRespInfoLen; - s32Error = send_config_pkt(GET_CFG, &strWID, 1, + result = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { *pu32RcvdAssocRespInfoLen = 0; PRINT_ER("Failed to send association response config packet\n"); return -EINVAL; @@ -3700,7 +3673,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInf *pu32RcvdAssocRespInfoLen = strWID.size; } - return s32Error; + return result; } s32 host_int_get_rx_power_level(struct host_if_drv *hif_drv, u8 *pu8RxPowerLevel, @@ -3798,7 +3771,7 @@ int host_int_set_operation_mode(struct host_if_drv *hif_drv, u32 mode) s32 host_int_get_host_chnl_num(struct host_if_drv *hif_drv, u8 *pu8ChNo) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { @@ -3811,22 +3784,20 @@ s32 host_int_get_host_chnl_num(struct host_if_drv *hif_drv, u8 *pu8ChNo) msg.id = HOST_IF_MSG_GET_CHNL; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc mq send fail\n"); down(&hif_drv->hSemGetCHNL); *pu8ChNo = ch_no; - return s32Error; - - + return result; } s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, const u8 *mac, u32 *pu32InactiveTime) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { @@ -3843,21 +3814,20 @@ s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, msg.id = HOST_IF_MSG_GET_INACTIVETIME; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("Failed to send get host channel param's message queue "); down(&hif_drv->hSemInactiveTime); *pu32InactiveTime = inactive_time; - return s32Error; + return result; } s32 host_int_test_get_int_wid(struct host_if_drv *hif_drv, u32 *pu32TestMemAddr) { - - s32 s32Error = 0; + s32 result = 0; struct wid strWID; if (!hif_drv) { @@ -3870,10 +3840,10 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hif_drv, u32 *pu32TestMemAddr) strWID.val = (s8 *)pu32TestMemAddr; strWID.size = sizeof(u32); - s32Error = send_config_pkt(GET_CFG, &strWID, 1, + result = send_config_pkt(GET_CFG, &strWID, 1, get_id_from_handler(hif_drv)); - if (s32Error) { + if (result) { PRINT_ER("Failed to get wid value\n"); return -EINVAL; } else { @@ -3881,20 +3851,20 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hif_drv, u32 *pu32TestMemAddr) } - return s32Error; + return result; } s32 host_int_get_rssi(struct host_if_drv *hif_drv, s8 *ps8Rssi) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_RSSI; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; } @@ -3909,20 +3879,20 @@ s32 host_int_get_rssi(struct host_if_drv *hif_drv, s8 *ps8Rssi) *ps8Rssi = rssi; - return s32Error; + return result; } s32 host_int_get_link_speed(struct host_if_drv *hif_drv, s8 *ps8lnkspd) { struct host_if_msg msg; - s32 s32Error = 0; + s32 result = 0; memset(&msg, 0, sizeof(struct host_if_msg)); msg.id = HOST_IF_MSG_GET_LINKSPEED; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("Failed to send GET_LINKSPEED to message queue "); return -EFAULT; } @@ -3937,12 +3907,12 @@ s32 host_int_get_link_speed(struct host_if_drv *hif_drv, s8 *ps8lnkspd) *ps8lnkspd = link_speed; - return s32Error; + return result; } s32 host_int_get_statistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatistics) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3950,14 +3920,14 @@ s32 host_int_get_statistics(struct host_if_drv *hif_drv, struct rf_info *pstrSta msg.body.data = (char *)pstrStatistics; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("Failed to send get host channel param's message queue "); return -EFAULT; } down(&hif_sema_wait_response); - return s32Error; + return result; } s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, @@ -3966,7 +3936,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, size_t IEsLen, wilc_scan_result ScanResult, void *pvUserArg, struct hidden_network *pstrHiddenNetwork) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv || ScanResult == NULL) { @@ -3999,8 +3969,8 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.body.scan_info.ies = kmalloc(IEsLen, GFP_KERNEL); memcpy(msg.body.scan_info.ies, pu8IEs, IEsLen); - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("Error in sending message queue\n"); return -EINVAL; } @@ -4010,15 +3980,13 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, mod_timer(&hif_drv->hScanTimer, jiffies + msecs_to_jiffies(HOST_IF_SCAN_TIMEOUT)); - return s32Error; - + return result; } s32 hif_set_cfg(struct host_if_drv *hif_drv, struct cfg_param_val *pstrCfgParamVal) { - - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; @@ -4032,15 +4000,14 @@ s32 hif_set_cfg(struct host_if_drv *hif_drv, msg.body.cfg_info.cfg_attr_info = *pstrCfgParamVal; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - - return s32Error; + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + return result; } s32 hif_get_cfg(struct host_if_drv *hif_drv, u16 u16WID, u16 *pu16WID_Value) { - s32 s32Error = 0; + s32 result = 0; down(&hif_drv->gtOsCfgValuesSem); @@ -4129,8 +4096,7 @@ s32 hif_get_cfg(struct host_if_drv *hif_drv, u16 u16WID, u16 *pu16WID_Value) up(&hif_drv->gtOsCfgValuesSem); - return s32Error; - + return result; } void host_int_send_join_leave_info_to_host @@ -4148,7 +4114,7 @@ static void GetPeriodicRSSI(unsigned long arg) } if (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; memset(&msg, 0, sizeof(struct host_if_msg)); @@ -4156,8 +4122,8 @@ static void GetPeriodicRSSI(unsigned long arg) msg.id = HOST_IF_MSG_GET_RSSI; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) { + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) { PRINT_ER("Failed to send get host channel param's message queue "); return; } @@ -4279,7 +4245,7 @@ _fail_: s32 host_int_deinit(struct host_if_drv *hif_drv) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; int ret; @@ -4329,9 +4295,9 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) msg.id = HOST_IF_MSG_EXIT; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error != 0) - PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", s32Error); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result != 0) + PRINT_ER("Error in sending deinit's message queue message function: Error(%d)\n", result); down(&hif_sema_thread); @@ -4342,19 +4308,19 @@ s32 host_int_deinit(struct host_if_drv *hif_drv) ret = remove_handler_in_list(hif_drv); if (ret) - s32Error = -ENOENT; + result = -ENOENT; kfree(hif_drv); clients_count--; terminated_handle = NULL; up(&hif_sema_deinit); - return s32Error; + return result; } void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; int id; struct host_if_drv *hif_drv = NULL; @@ -4379,14 +4345,14 @@ void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.body.net_info.buffer = kmalloc(u32Length, GFP_KERNEL); memcpy(msg.body.net_info.buffer, pu8Buffer, u32Length); - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) - PRINT_ER("Error in sending network info message queue message parameters: Error(%d)\n", s32Error); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) + PRINT_ER("Error in sending network info message queue message parameters: Error(%d)\n", result); } void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; int id; struct host_if_drv *hif_drv = NULL; @@ -4420,16 +4386,16 @@ void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length) msg.body.async_info.buffer = kmalloc(u32Length, GFP_KERNEL); memcpy(msg.body.async_info.buffer, pu8Buffer, u32Length); - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) - PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", s32Error); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) + PRINT_ER("Error in sending message queue asynchronous message info: Error(%d)\n", result); up(&hif_sema_deinit); } void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; int id; struct host_if_drv *hif_drv = NULL; @@ -4449,9 +4415,9 @@ void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length) msg.id = HOST_IF_MSG_RCVD_SCAN_COMPLETE; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) - PRINT_ER("Error in sending message queue scan complete parameters: Error(%d)\n", s32Error); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) + PRINT_ER("Error in sending message queue scan complete parameters: Error(%d)\n", result); } @@ -4465,7 +4431,7 @@ s32 host_int_remain_on_channel(struct host_if_drv *hif_drv, u32 u32SessionID, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { @@ -4484,16 +4450,16 @@ s32 host_int_remain_on_channel(struct host_if_drv *hif_drv, u32 u32SessionID, msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc mq send fail\n"); - return s32Error; + return result; } s32 host_int_ListenStateExpired(struct host_if_drv *hif_drv, u32 u32SessionID) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { @@ -4508,16 +4474,16 @@ s32 host_int_ListenStateExpired(struct host_if_drv *hif_drv, u32 u32SessionID) msg.drv = hif_drv; msg.body.remain_on_ch.u32ListenSessionID = u32SessionID; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc mq send fail\n"); - return s32Error; + return result; } s32 host_int_frame_register(struct host_if_drv *hif_drv, u16 u16FrameType, bool bReg) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { @@ -4547,20 +4513,18 @@ s32 host_int_frame_register(struct host_if_drv *hif_drv, u16 u16FrameType, bool msg.body.reg_frame.bReg = bReg; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc mq send fail\n"); - return s32Error; - - + return result; } s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, u32 u32DTIMPeriod, u32 u32HeadLen, u8 *pu8Head, u32 u32TailLen, u8 *pu8Tail) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct beacon_attr *pstrSetBeaconParam = &msg.body.beacon_info; @@ -4580,7 +4544,7 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, pstrSetBeaconParam->head_len = u32HeadLen; pstrSetBeaconParam->head = kmemdup(pu8Head, u32HeadLen, GFP_KERNEL); if (pstrSetBeaconParam->head == NULL) { - s32Error = -ENOMEM; + result = -ENOMEM; goto ERRORHANDLER; } pstrSetBeaconParam->tail_len = u32TailLen; @@ -4589,31 +4553,31 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, pstrSetBeaconParam->tail = kmemdup(pu8Tail, u32TailLen, GFP_KERNEL); if (pstrSetBeaconParam->tail == NULL) { - s32Error = -ENOMEM; + result = -ENOMEM; goto ERRORHANDLER; } } else { pstrSetBeaconParam->tail = NULL; } - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc mq send fail\n"); ERRORHANDLER: - if (s32Error) { + if (result) { kfree(pstrSetBeaconParam->head); kfree(pstrSetBeaconParam->tail); } - return s32Error; + return result; } s32 host_int_del_beacon(struct host_if_drv *hif_drv) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { @@ -4625,17 +4589,17 @@ s32 host_int_del_beacon(struct host_if_drv *hif_drv) msg.drv = hif_drv; PRINT_D(HOSTINF_DBG, "Setting deleting beacon message queue params\n"); - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); - return s32Error; + return result; } s32 host_int_add_station(struct host_if_drv *hif_drv, struct add_sta_param *pstrStaParams) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct add_sta_param *pstrAddStationMsg = &msg.body.add_sta_info; @@ -4663,15 +4627,15 @@ s32 host_int_add_station(struct host_if_drv *hif_drv, pstrAddStationMsg->pu8Rates = rates; } - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); - return s32Error; + return result; } s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct del_sta *pstrDelStationMsg = &msg.body.del_sta_info; @@ -4692,16 +4656,16 @@ s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) else memcpy(pstrDelStationMsg->mac_addr, pu8MacAddr, ETH_ALEN); - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); - return s32Error; + return result; } s32 host_int_del_allstation(struct host_if_drv *hif_drv, u8 pu8MacAddr[][ETH_ALEN]) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct del_all_sta *pstrDelAllStationMsg = &msg.body.del_all_sta_info; u8 au8Zero_Buff[ETH_ALEN] = {0}; @@ -4736,25 +4700,24 @@ s32 host_int_del_allstation(struct host_if_drv *hif_drv, } if (!u8AssocNumb) { PRINT_D(CFG80211_DBG, "NO ASSOCIATED STAS\n"); - return s32Error; + return result; } pstrDelAllStationMsg->assoc_sta = u8AssocNumb; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + if (result) PRINT_ER("wilc_mq_send fail\n"); down(&hif_sema_wait_response); - return s32Error; - + return result; } s32 host_int_edit_station(struct host_if_drv *hif_drv, struct add_sta_param *pstrStaParams) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct add_sta_param *pstrAddStationMsg = &msg.body.add_sta_info; @@ -4781,18 +4744,18 @@ s32 host_int_edit_station(struct host_if_drv *hif_drv, pstrAddStationMsg->pu8Rates = rates; } - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); - return s32Error; + return result; } s32 host_int_set_power_mgmt(struct host_if_drv *hif_drv, bool bIsEnabled, u32 u32Timeout) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct power_mgmt_param *pstrPowerMgmtParam = &msg.body.pwr_mgmt_info; @@ -4813,17 +4776,17 @@ s32 host_int_set_power_mgmt(struct host_if_drv *hif_drv, pstrPowerMgmtParam->enabled = bIsEnabled; pstrPowerMgmtParam->timeout = u32Timeout; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); - return s32Error; + return result; } s32 host_int_setup_multicast_filter(struct host_if_drv *hif_drv, bool bIsEnabled, u32 u32count) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct set_multicast *pstrMulticastFilterParam = &msg.body.multicast_info; @@ -4843,10 +4806,10 @@ s32 host_int_setup_multicast_filter(struct host_if_drv *hif_drv, pstrMulticastFilterParam->enabled = bIsEnabled; pstrMulticastFilterParam->cnt = u32count; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); - return s32Error; + return result; } static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) @@ -5020,7 +4983,7 @@ void host_int_freeJoinParams(void *pJoinParams) s32 host_int_delBASession(struct host_if_drv *hif_drv, char *pBSSID, char TID) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct ba_session_info *pBASessionInfo = &msg.body.session_info; @@ -5037,20 +5000,20 @@ s32 host_int_delBASession(struct host_if_drv *hif_drv, char *pBSSID, char TID) pBASessionInfo->u8Ted = TID; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); down(&hif_sema_wait_response); - return s32Error; + return result; } s32 host_int_del_All_Rx_BASession(struct host_if_drv *hif_drv, char *pBSSID, char TID) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; struct ba_session_info *pBASessionInfo = &msg.body.session_info; @@ -5067,18 +5030,18 @@ s32 host_int_del_All_Rx_BASession(struct host_if_drv *hif_drv, pBASessionInfo->u8Ted = TID; msg.drv = hif_drv; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); down(&hif_sema_wait_response); - return s32Error; + return result; } s32 host_int_setup_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; return 0; @@ -5096,18 +5059,16 @@ s32 host_int_setup_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) msg.drv = hif_drv; msg.body.ip_info.idx = idx; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); - return s32Error; - - + return result; } s32 host_int_get_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) { - s32 s32Error = 0; + s32 result = 0; struct host_if_msg msg; if (!hif_drv) { @@ -5123,11 +5084,9 @@ s32 host_int_get_ipaddress(struct host_if_drv *hif_drv, u8 *u16ipadd, u8 idx) msg.drv = hif_drv; msg.body.ip_info.idx = idx; - s32Error = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); - if (s32Error) + result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); + if (result) PRINT_ER("wilc_mq_send fail\n"); - return s32Error; - - + return result; } From 7178aed8ec170006ed3264ecb0b78de6d087c9b6 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:09 +0900 Subject: [PATCH 2004/2431] staging: wilc1000: move variable clients_count This patch moves static variable clients_count to around where the local variables are togther. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 066123fdf86d..c61042ede3d4 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -254,6 +254,7 @@ static u8 set_ip[2][4]; static u8 get_ip[2][4]; static u32 inactive_time; static u8 del_beacon; +static u32 clients_count; static u8 *join_req; u8 *info_element; @@ -4138,8 +4139,6 @@ void host_int_send_network_info_to_host { } -static u32 clients_count; - s32 host_int_init(struct host_if_drv **hif_drv_handler) { s32 result = 0; From 9f3295a2dd08a28762bc627f5c3d57409b34474d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:10 +0900 Subject: [PATCH 2005/2431] staging: wilc1000: move variable FALSE_FRMWR_CHANNEL This patch moves the variable 'FALSE_FRMWR_CHANNEL' to where local definitions are. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c61042ede3d4..948b986238ec 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -60,6 +60,7 @@ extern u8 g_wilc_initialized; #define BA_SESSION_DEFAULT_BUFFER_SIZE 16 #define BA_SESSION_DEFAULT_TIMEOUT 1000 #define BLOCK_ACK_REQ_SIZE 0x14 +#define FALSE_FRMWR_CHANNEL 100 struct cfg_param_attr { struct cfg_param_val cfg_attr_info; @@ -2623,7 +2624,6 @@ static int Handle_RegisterFrame(struct host_if_drv *hif_drv, return result; } -#define FALSE_FRMWR_CHANNEL 100 static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, struct remain_ch *pstrHostIfRemainOnChan) { From 771788078a5c20bb1979e3ad2a6ef6a78e1044f9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:11 +0900 Subject: [PATCH 2006/2431] staging: wilc1000: fixes unnecessary variable replacement This patch removes an unnecessary variable use for the errors and returns errors directly without a result variable. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 28 ++++++++--------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 948b986238ec..b1bfd9ec72f2 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -3167,9 +3167,8 @@ s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hif_drv, struct host_if_msg msg; if (!hif_drv) { - result = -EFAULT; PRINT_ER("driver is null\n"); - return result; + return -EFAULT; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3204,9 +3203,8 @@ s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv, u8 i; if (!hif_drv) { - result = -EFAULT; PRINT_ER("driver is null\n"); - return result; + return -EFAULT; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3246,9 +3244,8 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, u32 i; if (!hif_drv) { - result = -EFAULT; PRINT_ER("driver is null\n"); - return result; + return -EFAULT; } if (pu8RxMic != NULL) u8KeyLen += RX_MIC_KEY_LEN; @@ -3311,9 +3308,8 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, u8 u8KeyLen = u8GtkKeylen; if (!hif_drv) { - result = -EFAULT; PRINT_ER("driver is null\n"); - return result; + return -EFAULT; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3370,9 +3366,8 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at if (!hif_drv) { - result = -EFAULT; PRINT_ER("driver is null\n"); - return result; + return -EFAULT; } memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3514,9 +3509,8 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, struct host_if_msg msg; if (!hif_drv || pfConnectResult == NULL) { - result = -EFAULT; PRINT_ER("Driver is null\n"); - return result; + return -EFAULT; } if (pJoinParams == NULL) { @@ -3575,16 +3569,12 @@ s32 host_int_flush_join_req(struct host_if_drv *hif_drv) s32 result = 0; struct host_if_msg msg; - if (!join_req) { - result = -EFAULT; - return result; - } - + if (!join_req) + return -EFAULT; if (!hif_drv) { - result = -EFAULT; PRINT_ER("Driver is null\n"); - return result; + return -EFAULT; } msg.id = HOST_IF_MSG_FLUSH_CONNECT; From 8c8360b3f9397caaf106add76a3374bcd084aba7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:12 +0900 Subject: [PATCH 2007/2431] staging: wilc1000: fixes alignment should match open parenthesis This patch fixes the checks reported by checkpatch.pl for alignment should match open parenthesis. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 153 +++++++++++----------- 1 file changed, 78 insertions(+), 75 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b1bfd9ec72f2..9ee2d86913b0 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -337,7 +337,7 @@ static s32 Handle_SetChannel(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting channel\n"); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to set channel\n"); @@ -359,7 +359,7 @@ static s32 Handle_SetWfiDrvHandler(struct host_if_drv *hif_drv, strWID.size = sizeof(u32); result = send_config_pkt(SET_CFG, &strWID, 1, - pstrHostIfSetDrvHandler->u32Address); + pstrHostIfSetDrvHandler->u32Address); if (!hif_drv) up(&hif_sema_driver); @@ -384,7 +384,7 @@ static s32 Handle_SetOperationMode(struct host_if_drv *hif_drv, strWID.size = sizeof(u32); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if ((pstrHostIfSetOperationMode->u32Mode) == IDLE_MODE) up(&hif_sema_driver); @@ -416,7 +416,7 @@ s32 Handle_set_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) strWID.size = IP_ALEN; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); host_int_get_ipaddress(hif_drv, firmwareIPAddress, idx); @@ -441,7 +441,7 @@ s32 Handle_get_IPAddress(struct host_if_drv *hif_drv, u8 *pu8IPAddr, u8 idx) strWID.size = IP_ALEN; result = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); PRINT_INFO(HOSTINF_DBG, "%pI4\n", strWID.val); @@ -484,7 +484,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *hif_drv, PRINT_D(GENERIC_DBG, "mac addr = :%pM\n", strWID.val); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to set mac address\n"); result = -EFAULT; @@ -506,7 +506,7 @@ static s32 Handle_GetMacAddress(struct host_if_drv *hif_drv, strWID.size = ETH_ALEN; result = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to get mac address\n"); @@ -791,7 +791,7 @@ static s32 Handle_CfgParam(struct host_if_drv *hif_drv, } result = send_config_pkt(SET_CFG, strWIDList, u8WidCnt, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Error in setting CFG params\n"); @@ -912,7 +912,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, scan_while_connected = false; result = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send scan paramters config packet\n"); @@ -957,7 +957,7 @@ static s32 Handle_ScanDone(struct host_if_drv *hif_drv, strWID.size = sizeof(char); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to set abort running scan\n"); @@ -1014,16 +1014,18 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssid_len; if (pstrHostIFconnectAttr->ssid != NULL) { hif_drv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssid_len + 1, GFP_KERNEL); - memcpy(hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->ssid, - pstrHostIFconnectAttr->ssid_len); + memcpy(hif_drv->strWILC_UsrConnReq.pu8ssid, + pstrHostIFconnectAttr->ssid, + pstrHostIFconnectAttr->ssid_len); hif_drv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssid_len] = '\0'; } hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->ies_len; if (pstrHostIFconnectAttr->ies != NULL) { hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->ies_len, GFP_KERNEL); - memcpy(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->ies, - pstrHostIFconnectAttr->ies_len); + memcpy(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, + pstrHostIFconnectAttr->ies, + pstrHostIFconnectAttr->ies_len); } hif_drv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->security; @@ -1208,7 +1210,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, } result = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("failed to send config packet\n"); result = -EFAULT; @@ -1236,8 +1238,8 @@ ERRORHANDLER: strConnectInfo.ReqIEsLen = pstrHostIFconnectAttr->ies_len; strConnectInfo.pu8ReqIEs = kmalloc(pstrHostIFconnectAttr->ies_len, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, - pstrHostIFconnectAttr->ies, - pstrHostIFconnectAttr->ies_len); + pstrHostIFconnectAttr->ies, + pstrHostIFconnectAttr->ies_len); } pstrHostIFconnectAttr->result(CONN_DISCONN_EVENT_CONN_RESP, @@ -1307,7 +1309,7 @@ static s32 Handle_FlushConnect(struct host_if_drv *hif_drv) u32WidsCount++; result = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, - get_id_from_handler(join_req_drv)); + get_id_from_handler(join_req_drv)); if (result) { PRINT_ER("failed to send config packet\n"); result = -EINVAL; @@ -1337,15 +1339,15 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { if (hif_drv->strWILC_UsrConnReq.pu8bssid != NULL) { memcpy(strConnectInfo.au8bssid, - hif_drv->strWILC_UsrConnReq.pu8bssid, 6); + hif_drv->strWILC_UsrConnReq.pu8bssid, 6); } if (hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { strConnectInfo.ReqIEsLen = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; strConnectInfo.pu8ReqIEs = kmalloc(hif_drv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, - hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, - hif_drv->strWILC_UsrConnReq.ConnReqIEsLen); + hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, + hif_drv->strWILC_UsrConnReq.ConnReqIEsLen); } hif_drv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_CONN_RESP, @@ -1368,7 +1370,7 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Sending disconnect request\n"); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send dissconect config packet\n"); @@ -1420,7 +1422,7 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, if ((hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid != NULL) && (pstrNetworkInfo->au8bssid != NULL)) { if (memcmp(hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid, - pstrNetworkInfo->au8bssid, 6) == 0) { + pstrNetworkInfo->au8bssid, 6) == 0) { if (pstrNetworkInfo->s8rssi <= hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].s8rssi) { PRINT_D(HOSTINF_DBG, "Network previously discovered\n"); goto done; @@ -1442,7 +1444,7 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, if ((hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid != NULL) && (pstrNetworkInfo->au8bssid != NULL)) { memcpy(hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid, - pstrNetworkInfo->au8bssid, 6); + pstrNetworkInfo->au8bssid, 6); hif_drv->strWILC_UsrScanReq.u32RcvdChCount++; @@ -1760,7 +1762,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[3].val = (s8 *)pu8keybuf; result = send_config_pkt(SET_CFG, strWIDList, 4, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); @@ -1776,7 +1778,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, pu8keybuf[0] = pstrHostIFkeyAttr->attr.wep.index; memcpy(pu8keybuf + 1, &pstrHostIFkeyAttr->attr.wep.key_len, 1); memcpy(pu8keybuf + 2, pstrHostIFkeyAttr->attr.wep.key, - pstrHostIFkeyAttr->attr.wep.key_len); + pstrHostIFkeyAttr->attr.wep.key_len); kfree(pstrHostIFkeyAttr->attr.wep.key); strWID.id = (u16)WID_ADD_WEP_KEY; @@ -1785,7 +1787,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.size = pstrHostIFkeyAttr->attr.wep.key_len + 2; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); } else if (pstrHostIFkeyAttr->action & REMOVEKEY) { @@ -1798,7 +1800,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.size = 1; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); } else { strWID.id = (u16)WID_KEY_ID; strWID.type = WID_CHAR; @@ -1808,7 +1810,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Setting default key index\n"); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); } up(&hif_drv->hSemTestKeyBlock); break; @@ -1828,7 +1830,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.index, 1); memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.key_len, 1); memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, - pstrHostIFkeyAttr->attr.wpa.key_len); + pstrHostIFkeyAttr->attr.wpa.key_len); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; @@ -1841,7 +1843,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWIDList[1].size = RX_MIC_KEY_MSG_LEN; result = send_config_pkt(SET_CFG, strWIDList, 2, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); up(&hif_drv->hSemTestKeyBlock); @@ -1866,7 +1868,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.index, 1); memcpy(pu8keybuf + 15, &pstrHostIFkeyAttr->attr.wpa.key_len, 1); memcpy(pu8keybuf + 16, pstrHostIFkeyAttr->attr.wpa.key, - pstrHostIFkeyAttr->attr.wpa.key_len); + pstrHostIFkeyAttr->attr.wpa.key_len); strWID.id = (u16)WID_ADD_RX_GTK; strWID.type = WID_STR; @@ -1874,7 +1876,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, strWID.size = RX_MIC_KEY_MSG_LEN; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); up(&hif_drv->hSemTestKeyBlock); @@ -1906,7 +1908,7 @@ _WPARxGtk_end_case_: memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.index, 1); memcpy(pu8keybuf + 7, &pstrHostIFkeyAttr->attr.wpa.key_len, 1); memcpy(pu8keybuf + 8, pstrHostIFkeyAttr->attr.wpa.key, - pstrHostIFkeyAttr->attr.wpa.key_len); + pstrHostIFkeyAttr->attr.wpa.key_len); strWIDList[0].id = (u16)WID_11I_MODE; strWIDList[0].type = WID_CHAR; @@ -1919,7 +1921,7 @@ _WPARxGtk_end_case_: strWIDList[1].size = PTK_KEY_MSG_LEN + 1; result = send_config_pkt(SET_CFG, strWIDList, 2, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); up(&hif_drv->hSemTestKeyBlock); } @@ -1940,7 +1942,7 @@ _WPARxGtk_end_case_: memcpy(pu8keybuf, pstrHostIFkeyAttr->attr.wpa.mac_addr, 6); memcpy(pu8keybuf + 6, &pstrHostIFkeyAttr->attr.wpa.key_len, 1); memcpy(pu8keybuf + 7, pstrHostIFkeyAttr->attr.wpa.key, - pstrHostIFkeyAttr->attr.wpa.key_len); + pstrHostIFkeyAttr->attr.wpa.key_len); strWID.id = (u16)WID_ADD_PTK; strWID.type = WID_STR; @@ -1948,7 +1950,7 @@ _WPARxGtk_end_case_: strWID.size = PTK_KEY_MSG_LEN; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); up(&hif_drv->hSemTestKeyBlock); } @@ -1984,7 +1986,7 @@ _WPAPtk_end_case_: strWID.size = (pstrHostIFkeyAttr->attr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); kfree(pu8keybuf); break; @@ -2018,7 +2020,7 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) eth_zero_addr(u8ConnectedSSID); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to send dissconect config packet\n"); @@ -2102,7 +2104,7 @@ static s32 Handle_GetChnl(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Getting channel value\n"); result = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to get channel number\n"); @@ -2127,7 +2129,7 @@ static void Handle_GetRssi(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Getting RSSI value\n"); result = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to get RSSI value\n"); result = -EFAULT; @@ -2154,7 +2156,7 @@ static void Handle_GetLinkspeed(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Getting LINKSPEED value\n"); result = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to get LINKSPEED value\n"); result = -EFAULT; @@ -2201,7 +2203,7 @@ s32 Handle_GetStatistics(struct host_if_drv *hif_drv, struct rf_info *pstrStatis u32WidsCount++; result = send_config_pkt(GET_CFG, strWIDList, u32WidsCount, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send scan paramters config packet\n"); @@ -2231,7 +2233,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, PRINT_D(CFG80211_DBG, "SETING STA inactive time\n"); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to SET incative time\n"); @@ -2245,7 +2247,7 @@ static s32 Handle_Get_InActiveTime(struct host_if_drv *hif_drv, strWID.size = sizeof(u32); result = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to get incative time\n"); @@ -2304,7 +2306,7 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, pu8CurrByte += pstrSetBeaconParam->tail_len; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send add beacon config packet\n"); @@ -2333,7 +2335,7 @@ static void Handle_DelBeacon(struct host_if_drv *hif_drv) PRINT_D(HOSTINF_DBG, "Deleting BEACON\n"); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send delete beacon config packet\n"); } @@ -2404,7 +2406,7 @@ static void Handle_AddStation(struct host_if_drv *hif_drv, pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result != 0) PRINT_ER("Failed to send add station config packet\n"); @@ -2447,7 +2449,7 @@ static void Handle_DelAllSta(struct host_if_drv *hif_drv, } result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send add station config packet\n"); @@ -2479,7 +2481,7 @@ static void Handle_DelStation(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, pstrDelStaParam->mac_addr, ETH_ALEN); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send add station config packet\n"); @@ -2507,7 +2509,7 @@ static void Handle_EditStation(struct host_if_drv *hif_drv, pu8CurrByte += WILC_HostIf_PackStaParam(pu8CurrByte, pstrStationParam); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send edit station config packet\n"); @@ -2568,7 +2570,7 @@ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, strWID.val[1] = (s8)pstrHostIfRemainOnChan->u16Channel; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result != 0) PRINT_ER("Failed to set remain on channel\n"); @@ -2615,7 +2617,7 @@ static int Handle_RegisterFrame(struct host_if_drv *hif_drv, strWID.size = sizeof(u16) + 2; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to frame register config packet\n"); result = -EINVAL; @@ -2647,7 +2649,7 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, strWID.val[1] = FALSE_FRMWR_CHANNEL; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result != 0) { PRINT_ER("Failed to set remain on channel\n"); goto _done_; @@ -2705,7 +2707,7 @@ static void Handle_PowerManagement(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Handling Power Management\n"); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send power management config packet\n"); } @@ -2741,7 +2743,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, gau8MulticastMacAddrList, ((strHostIfSetMulti->cnt) * ETH_ALEN)); result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_ER("Failed to send setup multicast config packet\n"); @@ -2788,7 +2790,7 @@ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, *ptr++ = 0; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_D(HOSTINF_DBG, "Couldn't open BA Session\n"); @@ -2808,7 +2810,7 @@ static s32 Handle_AddBASession(struct host_if_drv *hif_drv, *ptr++ = ((strHostIfBASessionInfo->u16SessionTimeout >> 16) & 0xFF); *ptr++ = 3; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); kfree(strWID.val); @@ -2844,7 +2846,7 @@ static s32 Handle_DelAllRxBASessions(struct host_if_drv *hif_drv, *ptr++ = 32; result = send_config_pkt(SET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) PRINT_D(HOSTINF_DBG, "Couldn't delete BA Session\n"); @@ -3378,10 +3380,10 @@ s32 host_int_set_pmkid_info(struct host_if_drv *hif_drv, struct host_if_pmkid_at msg.drv = hif_drv; for (i = 0; i < pu8PmkidInfoArray->numpmkid; i++) { - memcpy(msg.body.key_info.attr.pmkid.pmkidlist[i].bssid, &pu8PmkidInfoArray->pmkidlist[i].bssid, - ETH_ALEN); - memcpy(msg.body.key_info.attr.pmkid.pmkidlist[i].pmkid, &pu8PmkidInfoArray->pmkidlist[i].pmkid, - PMKID_LEN); + memcpy(msg.body.key_info.attr.pmkid.pmkidlist[i].bssid, + &pu8PmkidInfoArray->pmkidlist[i].bssid, ETH_ALEN); + memcpy(msg.body.key_info.attr.pmkid.pmkidlist[i].pmkid, + &pu8PmkidInfoArray->pmkidlist[i].pmkid, PMKID_LEN); } result = wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); @@ -3625,8 +3627,9 @@ s32 host_int_disconnect_station(struct host_if_drv *hif_drv, u8 assoc_id) return 0; } -s32 host_int_get_assoc_req_info(struct host_if_drv *hif_drv, u8 *pu8AssocReqInfo, - u32 u32AssocReqInfoLen) +s32 host_int_get_assoc_req_info(struct host_if_drv *hif_drv, + u8 *pu8AssocReqInfo, + u32 u32AssocReqInfoLen) { struct wid strWID; @@ -3638,8 +3641,10 @@ s32 host_int_get_assoc_req_info(struct host_if_drv *hif_drv, u8 *pu8AssocReqInfo return 0; } -s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInfo, - u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen) +s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, + u8 *pu8AssocRespInfo, + u32 u32MaxAssocRespInfoLen, + u32 *pu32RcvdAssocRespInfoLen) { s32 result = 0; struct wid strWID; @@ -3655,7 +3660,7 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInf strWID.size = u32MaxAssocRespInfoLen; result = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { *pu32RcvdAssocRespInfoLen = 0; PRINT_ER("Failed to send association response config packet\n"); @@ -3667,8 +3672,9 @@ s32 host_int_get_assoc_res_info(struct host_if_drv *hif_drv, u8 *pu8AssocRespInf return result; } -s32 host_int_get_rx_power_level(struct host_if_drv *hif_drv, u8 *pu8RxPowerLevel, - u32 u32RxPowerLevelLen) +s32 host_int_get_rx_power_level(struct host_if_drv *hif_drv, + u8 *pu8RxPowerLevel, + u32 u32RxPowerLevelLen) { struct wid strWID; @@ -3797,10 +3803,7 @@ s32 host_int_get_inactive_time(struct host_if_drv *hif_drv, } memset(&msg, 0, sizeof(struct host_if_msg)); - - - memcpy(msg.body.mac_info.mac, - mac, ETH_ALEN); + memcpy(msg.body.mac_info.mac, mac, ETH_ALEN); msg.id = HOST_IF_MSG_GET_INACTIVETIME; msg.drv = hif_drv; @@ -3832,7 +3835,7 @@ s32 host_int_test_get_int_wid(struct host_if_drv *hif_drv, u32 *pu32TestMemAddr) strWID.size = sizeof(u32); result = send_config_pkt(GET_CFG, &strWID, 1, - get_id_from_handler(hif_drv)); + get_id_from_handler(hif_drv)); if (result) { PRINT_ER("Failed to get wid value\n"); From 91109e113c71715cd0f21fd94fb2db95103f4092 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:13 +0900 Subject: [PATCH 2008/2431] staging: wilc1000: fixes comparison to NULL could be written This patch fixes the checks reported by checkpatch.pl for comparison to NULL could be written. Signed-off-by: Leo Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 181 +++++++++++----------- 1 file changed, 87 insertions(+), 94 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9ee2d86913b0..646e7e919674 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -470,8 +470,7 @@ static s32 Handle_SetMacAddress(struct host_if_drv *hif_drv, s32 result = 0; struct wid strWID; u8 *mac_buf = kmalloc(ETH_ALEN, GFP_KERNEL); - - if (mac_buf == NULL) { + if (!mac_buf) { PRINT_ER("No buffer to send mac address\n"); return -EFAULT; } @@ -851,7 +850,7 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, valuesize += ((pstrHostIFscanAttr->hidden_network.pstrHiddenNetworkInfo[i].u8ssidlen) + 1); pu8HdnNtwrksWidVal = kmalloc(valuesize + 1, GFP_KERNEL); strWIDList[u32WidsCount].val = pu8HdnNtwrksWidVal; - if (strWIDList[u32WidsCount].val != NULL) { + if (strWIDList[u32WidsCount].val) { pu8Buffer = strWIDList[u32WidsCount].val; *pu8Buffer++ = pstrHostIFscanAttr->hidden_network.u8ssidnum; @@ -887,7 +886,8 @@ static s32 Handle_Scan(struct host_if_drv *hif_drv, strWIDList[u32WidsCount].id = WID_SCAN_CHANNEL_LIST; strWIDList[u32WidsCount].type = WID_BIN_DATA; - if (pstrHostIFscanAttr->ch_freq_list != NULL && pstrHostIFscanAttr->ch_list_len > 0) { + if (pstrHostIFscanAttr->ch_freq_list && + pstrHostIFscanAttr->ch_list_len > 0) { int i; for (i = 0; i < pstrHostIFscanAttr->ch_list_len; i++) { @@ -1000,19 +1000,19 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n"); ptstrJoinBssParam = (struct join_bss_param *)pstrHostIFconnectAttr->params; - if (ptstrJoinBssParam == NULL) { + if (!ptstrJoinBssParam) { PRINT_ER("Required BSSID not found\n"); result = -ENOENT; goto ERRORHANDLER; } - if (pstrHostIFconnectAttr->bssid != NULL) { + if (pstrHostIFconnectAttr->bssid) { hif_drv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL); memcpy(hif_drv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->bssid, 6); } hif_drv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssid_len; - if (pstrHostIFconnectAttr->ssid != NULL) { + if (pstrHostIFconnectAttr->ssid) { hif_drv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssid_len + 1, GFP_KERNEL); memcpy(hif_drv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->ssid, @@ -1021,7 +1021,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, } hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->ies_len; - if (pstrHostIFconnectAttr->ies != NULL) { + if (pstrHostIFconnectAttr->ies) { hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->ies_len, GFP_KERNEL); memcpy(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->ies, @@ -1099,15 +1099,14 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, join_req_size = strWIDList[u32WidsCount].size; join_req = kmalloc(join_req_size, GFP_KERNEL); } - if (strWIDList[u32WidsCount].val == NULL) { + if (!strWIDList[u32WidsCount].val) { result = -EFAULT; goto ERRORHANDLER; } pu8CurrByte = strWIDList[u32WidsCount].val; - - if (pstrHostIFconnectAttr->ssid != NULL) { + if (pstrHostIFconnectAttr->ssid) { memcpy(pu8CurrByte, pstrHostIFconnectAttr->ssid, pstrHostIFconnectAttr->ssid_len); pu8CurrByte[pstrHostIFconnectAttr->ssid_len] = '\0'; } @@ -1124,7 +1123,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, *(pu8CurrByte++) = ((ptstrJoinBssParam->cap_info) >> 8) & 0xFF; PRINT_D(HOSTINF_DBG, "* Cap Info %0x*\n", (*(pu8CurrByte - 2) | ((*(pu8CurrByte - 1)) << 8))); - if (pstrHostIFconnectAttr->bssid != NULL) + if (pstrHostIFconnectAttr->bssid) memcpy(pu8CurrByte, pstrHostIFconnectAttr->bssid, 6); pu8CurrByte += 6; @@ -1202,7 +1201,7 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, PRINT_D(GENERIC_DBG, "send HOST_IF_WAITING_CONN_RESP\n"); - if (pstrHostIFconnectAttr->bssid != NULL) { + if (pstrHostIFconnectAttr->bssid) { memcpy(u8ConnectedSSID, pstrHostIFconnectAttr->bssid, ETH_ALEN); PRINT_D(GENERIC_DBG, "save Bssid = %pM\n", pstrHostIFconnectAttr->bssid); @@ -1230,11 +1229,11 @@ ERRORHANDLER: memset(&strConnectInfo, 0, sizeof(tstrConnectInfo)); - if (pstrHostIFconnectAttr->result != NULL) { - if (pstrHostIFconnectAttr->bssid != NULL) + if (pstrHostIFconnectAttr->result) { + if (pstrHostIFconnectAttr->bssid) memcpy(strConnectInfo.au8bssid, pstrHostIFconnectAttr->bssid, 6); - if (pstrHostIFconnectAttr->ies != NULL) { + if (pstrHostIFconnectAttr->ies) { strConnectInfo.ReqIEsLen = pstrHostIFconnectAttr->ies_len; strConnectInfo.pu8ReqIEs = kmalloc(pstrHostIFconnectAttr->ies_len, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, @@ -1336,13 +1335,13 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) memset(&strConnectInfo, 0, sizeof(tstrConnectInfo)); - if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { - if (hif_drv->strWILC_UsrConnReq.pu8bssid != NULL) { + if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult) { + if (hif_drv->strWILC_UsrConnReq.pu8bssid) { memcpy(strConnectInfo.au8bssid, hif_drv->strWILC_UsrConnReq.pu8bssid, 6); } - if (hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { + if (hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs) { strConnectInfo.ReqIEsLen = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; strConnectInfo.pu8ReqIEs = kmalloc(hif_drv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, @@ -1382,12 +1381,12 @@ static s32 Handle_ConnectTimeout(struct host_if_drv *hif_drv) eth_zero_addr(u8ConnectedSSID); - if (join_req != NULL && join_req_drv == hif_drv) { + if (join_req && join_req_drv == hif_drv) { kfree(join_req); join_req = NULL; } - if (info_element != NULL && join_req_drv == hif_drv) { + if (info_element && join_req_drv == hif_drv) { kfree(info_element); info_element = NULL; } @@ -1410,8 +1409,8 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { PRINT_D(HOSTINF_DBG, "State: Scanning, parsing network information received\n"); parse_network_info(pstrRcvdNetworkInfo->buffer, &pstrNetworkInfo); - if ((pstrNetworkInfo == NULL) - || (hif_drv->strWILC_UsrScanReq.pfUserScanResult == NULL)) { + if ((!pstrNetworkInfo) || + (!hif_drv->strWILC_UsrScanReq.pfUserScanResult)) { PRINT_ER("driver is null\n"); result = -EINVAL; goto done; @@ -1419,8 +1418,8 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, for (i = 0; i < hif_drv->strWILC_UsrScanReq.u32RcvdChCount; i++) { - if ((hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid != NULL) && - (pstrNetworkInfo->au8bssid != NULL)) { + if ((hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid) && + (pstrNetworkInfo->au8bssid)) { if (memcmp(hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].au8bssid, pstrNetworkInfo->au8bssid, 6) == 0) { if (pstrNetworkInfo->s8rssi <= hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[i].s8rssi) { @@ -1441,8 +1440,8 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, if (hif_drv->strWILC_UsrScanReq.u32RcvdChCount < MAX_NUM_SCANNED_NETWORKS) { hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].s8rssi = pstrNetworkInfo->s8rssi; - if ((hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid != NULL) - && (pstrNetworkInfo->au8bssid != NULL)) { + if (hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid && + pstrNetworkInfo->au8bssid) { memcpy(hif_drv->strWILC_UsrScanReq.astrFoundNetworkInfo[hif_drv->strWILC_UsrScanReq.u32RcvdChCount].au8bssid, pstrNetworkInfo->au8bssid, 6); @@ -1471,7 +1470,7 @@ done: kfree(pstrRcvdNetworkInfo->buffer); pstrRcvdNetworkInfo->buffer = NULL; - if (pstrNetworkInfo != NULL) { + if (pstrNetworkInfo) { DeallocateNetworkInfo(pstrNetworkInfo); pstrNetworkInfo = NULL; } @@ -1505,8 +1504,8 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, if ((hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) || (hif_drv->enuHostIFstate == HOST_IF_CONNECTED) || hif_drv->strWILC_UsrScanReq.pfUserScanResult) { - if ((pstrRcvdGnrlAsyncInfo->buffer == NULL) || - (hif_drv->strWILC_UsrConnReq.pfUserConnectResult == NULL)) { + if (!pstrRcvdGnrlAsyncInfo->buffer || + !hif_drv->strWILC_UsrConnReq.pfUserConnectResult) { PRINT_ER("driver is null\n"); return -EINVAL; } @@ -1556,7 +1555,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, if (strConnectInfo.u16ConnectStatus == SUCCESSFUL_STATUSCODE) { PRINT_INFO(HOSTINF_DBG, "Association response received : Successful connection status\n"); - if (pstrConnectRespInfo->pu8RespIEs != NULL) { + if (pstrConnectRespInfo->pu8RespIEs) { strConnectInfo.u16RespIEsLen = pstrConnectRespInfo->u16RespIEsLen; @@ -1566,7 +1565,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } } - if (pstrConnectRespInfo != NULL) { + if (pstrConnectRespInfo) { DeallocateAssocRespInfo(pstrConnectRespInfo); pstrConnectRespInfo = NULL; } @@ -1584,7 +1583,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, eth_zero_addr(u8ConnectedSSID); } - if (hif_drv->strWILC_UsrConnReq.pu8bssid != NULL) { + if (hif_drv->strWILC_UsrConnReq.pu8bssid) { PRINT_D(HOSTINF_DBG, "Retrieving actual BSSID from AP\n"); memcpy(strConnectInfo.au8bssid, hif_drv->strWILC_UsrConnReq.pu8bssid, 6); @@ -1596,7 +1595,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, } - if (hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) { + if (hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs) { strConnectInfo.ReqIEsLen = hif_drv->strWILC_UsrConnReq.ConnReqIEsLen; strConnectInfo.pu8ReqIEs = kmalloc(hif_drv->strWILC_UsrConnReq.ConnReqIEsLen, GFP_KERNEL); memcpy(strConnectInfo.pu8ReqIEs, @@ -1655,7 +1654,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, strDisconnectNotifInfo.ie = NULL; strDisconnectNotifInfo.ie_len = 0; - if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { + if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult) { g_obtainingIP = false; host_int_set_power_mgmt(hif_drv, 0, 0); @@ -1677,12 +1676,12 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); - if (join_req != NULL && join_req_drv == hif_drv) { + if (join_req && join_req_drv == hif_drv) { kfree(join_req); join_req = NULL; } - if (info_element != NULL && join_req_drv == hif_drv) { + if (info_element && join_req_drv == hif_drv) { kfree(info_element); info_element = NULL; } @@ -1691,7 +1690,7 @@ static s32 Handle_RcvdGnrlAsyncInfo(struct host_if_drv *hif_drv, scan_while_connected = false; } else if ((u8MacStatus == MAC_DISCONNECTED) && - (hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL)) { + (hif_drv->strWILC_UsrScanReq.pfUserScanResult)) { PRINT_D(HOSTINF_DBG, "Received MAC_DISCONNECTED from the FW while scanning\n"); PRINT_D(HOSTINF_DBG, "\n\n<< Abort the running Scan >>\n\n"); @@ -1771,7 +1770,7 @@ static int Handle_Key(struct host_if_drv *hif_drv, if (pstrHostIFkeyAttr->action & ADDKEY) { PRINT_D(HOSTINF_DBG, "Handling WEP key\n"); pu8keybuf = kmalloc(pstrHostIFkeyAttr->attr.wep.key_len + 2, GFP_KERNEL); - if (pu8keybuf == NULL) { + if (!pu8keybuf) { PRINT_ER("No buffer to send Key\n"); return -1; } @@ -1818,13 +1817,13 @@ static int Handle_Key(struct host_if_drv *hif_drv, case WPARxGtk: if (pstrHostIFkeyAttr->action & ADDKEY_AP) { pu8keybuf = kzalloc(RX_MIC_KEY_MSG_LEN, GFP_KERNEL); - if (pu8keybuf == NULL) { + if (!pu8keybuf) { PRINT_ER("No buffer to send RxGTK Key\n"); ret = -1; goto _WPARxGtk_end_case_; } - if (pstrHostIFkeyAttr->attr.wpa.seq != NULL) + if (pstrHostIFkeyAttr->attr.wpa.seq) memcpy(pu8keybuf + 6, pstrHostIFkeyAttr->attr.wpa.seq, 8); memcpy(pu8keybuf + 14, &pstrHostIFkeyAttr->attr.wpa.index, 1); @@ -1894,10 +1893,7 @@ _WPARxGtk_end_case_: pu8keybuf = kmalloc(PTK_KEY_MSG_LEN + 1, GFP_KERNEL); - - - - if (pu8keybuf == NULL) { + if (!pu8keybuf) { PRINT_ER("No buffer to send PTK Key\n"); ret = -1; goto _WPAPtk_end_case_; @@ -1929,10 +1925,7 @@ _WPARxGtk_end_case_: pu8keybuf = kmalloc(PTK_KEY_MSG_LEN, GFP_KERNEL); - - - - if (pu8keybuf == NULL) { + if (!pu8keybuf) { PRINT_ER("No buffer to send PTK Key\n"); ret = -1; goto _WPAPtk_end_case_; @@ -1968,7 +1961,7 @@ _WPAPtk_end_case_: PRINT_D(HOSTINF_DBG, "Handling PMKSA key\n"); pu8keybuf = kmalloc((pstrHostIFkeyAttr->attr.pmkid.numpmkid * PMKSA_KEY_LEN) + 1, GFP_KERNEL); - if (pu8keybuf == NULL) { + if (!pu8keybuf) { PRINT_ER("No buffer to send PMKSA Key\n"); return -1; } @@ -2041,7 +2034,7 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) hif_drv->strWILC_UsrScanReq.pfUserScanResult = NULL; } - if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult != NULL) { + if (hif_drv->strWILC_UsrConnReq.pfUserConnectResult) { if (hif_drv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { PRINT_D(HOSTINF_DBG, "Upper layer requested termination of connection\n"); del_timer(&hif_drv->hConnectTimer); @@ -2065,12 +2058,12 @@ static void Handle_Disconnect(struct host_if_drv *hif_drv) hif_drv->strWILC_UsrConnReq.ConnReqIEsLen = 0; kfree(hif_drv->strWILC_UsrConnReq.pu8ConnReqIEs); - if (join_req != NULL && join_req_drv == hif_drv) { + if (join_req && join_req_drv == hif_drv) { kfree(join_req); join_req = NULL; } - if (info_element != NULL && join_req_drv == hif_drv) { + if (info_element && join_req_drv == hif_drv) { kfree(info_element); info_element = NULL; } @@ -2274,7 +2267,7 @@ static void Handle_AddBeacon(struct host_if_drv *hif_drv, strWID.type = WID_BIN; strWID.size = pstrSetBeaconParam->head_len + pstrSetBeaconParam->tail_len + 16; strWID.val = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.val == NULL) + if (!strWID.val) goto ERRORHANDLER; pu8CurrByte = strWID.val; @@ -2327,7 +2320,7 @@ static void Handle_DelBeacon(struct host_if_drv *hif_drv) strWID.size = sizeof(char); strWID.val = &del_beacon; - if (strWID.val == NULL) + if (!strWID.val) return; pu8CurrByte = strWID.val; @@ -2399,7 +2392,7 @@ static void Handle_AddStation(struct host_if_drv *hif_drv, strWID.size = WILC_ADD_STA_LENGTH + pstrStationParam->u8NumRates; strWID.val = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.val == NULL) + if (!strWID.val) goto ERRORHANDLER; pu8CurrByte = strWID.val; @@ -2432,7 +2425,7 @@ static void Handle_DelAllSta(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Handling delete station\n"); strWID.val = kmalloc((pstrDelAllStaParam->assoc_sta * ETH_ALEN) + 1, GFP_KERNEL); - if (strWID.val == NULL) + if (!strWID.val) goto ERRORHANDLER; pu8CurrByte = strWID.val; @@ -2473,7 +2466,7 @@ static void Handle_DelStation(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Handling delete station\n"); strWID.val = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.val == NULL) + if (!strWID.val) goto ERRORHANDLER; pu8CurrByte = strWID.val; @@ -2502,7 +2495,7 @@ static void Handle_EditStation(struct host_if_drv *hif_drv, PRINT_D(HOSTINF_DBG, "Handling edit station\n"); strWID.val = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.val == NULL) + if (!strWID.val) goto ERRORHANDLER; pu8CurrByte = strWID.val; @@ -2535,7 +2528,7 @@ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, pstrHostIfRemainOnChan->u16Channel = hif_drv->strHostIfRemainOnChan.u16Channel; } - if (hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL) { + if (hif_drv->strWILC_UsrScanReq.pfUserScanResult) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while scanning return\n"); hif_drv->u8RemainOnChan_pendingreq = 1; result = -EBUSY; @@ -2560,8 +2553,7 @@ static int Handle_RemainOnChan(struct host_if_drv *hif_drv, strWID.type = WID_STR; strWID.size = 2; strWID.val = kmalloc(strWID.size, GFP_KERNEL); - - if (strWID.val == NULL) { + if (!strWID.val) { result = -ENOMEM; goto ERRORHANDLER; } @@ -2604,7 +2596,7 @@ static int Handle_RegisterFrame(struct host_if_drv *hif_drv, strWID.id = (u16)WID_REGISTER_FRAME; strWID.type = WID_STR; strWID.val = kmalloc(sizeof(u16) + 2, GFP_KERNEL); - if (strWID.val == NULL) + if (!strWID.val) return -ENOMEM; pu8CurrByte = strWID.val; @@ -2642,7 +2634,7 @@ static u32 Handle_ListenStateExpired(struct host_if_drv *hif_drv, strWID.size = 2; strWID.val = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.val == NULL) + if (!strWID.val) PRINT_ER("Failed to allocate memory\n"); strWID.val[0] = u8remain_on_chan_flag; @@ -2725,7 +2717,7 @@ static void Handle_SetMulticastFilter(struct host_if_drv *hif_drv, strWID.type = WID_BIN; strWID.size = sizeof(struct set_multicast) + ((strHostIfSetMulti->cnt) * ETH_ALEN); strWID.val = kmalloc(strWID.size, GFP_KERNEL); - if (strWID.val == NULL) + if (!strWID.val) goto ERRORHANDLER; pu8CurrByte = strWID.val; @@ -2881,7 +2873,8 @@ static int hostIFthread(void *pvArg) continue; } - if (msg.id == HOST_IF_MSG_CONNECT && hif_drv->strWILC_UsrScanReq.pfUserScanResult != NULL) { + if (msg.id == HOST_IF_MSG_CONNECT && + hif_drv->strWILC_UsrScanReq.pfUserScanResult) { PRINT_D(HOSTINF_DBG, "Requeue connect request till scan done received\n"); wilc_mq_send(&hif_msg_q, &msg, sizeof(struct host_if_msg)); usleep_range(2 * 1000, 2 * 1000); @@ -3249,9 +3242,11 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, PRINT_ER("driver is null\n"); return -EFAULT; } - if (pu8RxMic != NULL) + + if (pu8RxMic) u8KeyLen += RX_MIC_KEY_LEN; - if (pu8TxMic != NULL) + + if (pu8TxMic) u8KeyLen += TX_MIC_KEY_LEN; memset(&msg, 0, sizeof(struct host_if_msg)); @@ -3269,14 +3264,14 @@ s32 host_int_add_ptk(struct host_if_drv *hif_drv, const u8 *pu8Ptk, msg.body.key_info.attr.wpa.key = kmalloc(u8PtkKeylen, GFP_KERNEL); memcpy(msg.body.key_info.attr.wpa.key, pu8Ptk, u8PtkKeylen); - if (pu8RxMic != NULL) { + if (pu8RxMic) { memcpy(msg.body.key_info.attr.wpa.key + 16, pu8RxMic, RX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < RX_MIC_KEY_LEN; i++) PRINT_INFO(CFG80211_DBG, "PairwiseRx[%d] = %x\n", i, pu8RxMic[i]); } } - if (pu8TxMic != NULL) { + if (pu8TxMic) { memcpy(msg.body.key_info.attr.wpa.key + 24, pu8TxMic, TX_MIC_KEY_LEN); if (INFO) { for (i = 0; i < TX_MIC_KEY_LEN; i++) @@ -3315,12 +3310,13 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, } memset(&msg, 0, sizeof(struct host_if_msg)); - - if (pu8RxMic != NULL) + if (pu8RxMic) u8KeyLen += RX_MIC_KEY_LEN; - if (pu8TxMic != NULL) + + if (pu8TxMic) u8KeyLen += TX_MIC_KEY_LEN; - if (KeyRSC != NULL) { + + if (KeyRSC) { msg.body.key_info.attr.wpa.seq = kmalloc(u32KeyRSClen, GFP_KERNEL); memcpy(msg.body.key_info.attr.wpa.seq, KeyRSC, u32KeyRSClen); } @@ -3340,10 +3336,11 @@ s32 host_int_add_rx_gtk(struct host_if_drv *hif_drv, const u8 *pu8RxGtk, msg.body.key_info.attr.wpa.key = kmalloc(u8KeyLen, GFP_KERNEL); memcpy(msg.body.key_info.attr.wpa.key, pu8RxGtk, u8GtkKeylen); - if (pu8RxMic != NULL) { + if (pu8RxMic) { memcpy(msg.body.key_info.attr.wpa.key + 16, pu8RxMic, RX_MIC_KEY_LEN); } - if (pu8TxMic != NULL) { + + if (pu8TxMic) { memcpy(msg.body.key_info.attr.wpa.key + 24, pu8TxMic, TX_MIC_KEY_LEN); } @@ -3510,12 +3507,12 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, s32 result = 0; struct host_if_msg msg; - if (!hif_drv || pfConnectResult == NULL) { + if (!hif_drv || !pfConnectResult) { PRINT_ER("Driver is null\n"); return -EFAULT; } - if (pJoinParams == NULL) { + if (!pJoinParams) { PRINT_ER("Unable to Join - JoinParams is NULL\n"); return -EFAULT; } @@ -3532,18 +3529,18 @@ s32 host_int_set_join_req(struct host_if_drv *hif_drv, u8 *pu8bssid, msg.body.con_info.params = pJoinParams; msg.drv = hif_drv ; - if (pu8bssid != NULL) { + if (pu8bssid) { msg.body.con_info.bssid = kmalloc(6, GFP_KERNEL); memcpy(msg.body.con_info.bssid, pu8bssid, 6); } - if (pu8ssid != NULL) { + if (pu8ssid) { msg.body.con_info.ssid_len = ssidLen; msg.body.con_info.ssid = kmalloc(ssidLen, GFP_KERNEL); memcpy(msg.body.con_info.ssid, pu8ssid, ssidLen); } - if (pu8IEs != NULL) { + if (pu8IEs) { msg.body.con_info.ies_len = IEsLen; msg.body.con_info.ies = kmalloc(IEsLen, GFP_KERNEL); memcpy(msg.body.con_info.ies, pu8IEs, IEsLen); @@ -3865,8 +3862,7 @@ s32 host_int_get_rssi(struct host_if_drv *hif_drv, s8 *ps8Rssi) down(&hif_drv->hSemGetRSSI); - - if (ps8Rssi == NULL) { + if (!ps8Rssi) { PRINT_ER("RSS pointer value is null"); return -EFAULT; } @@ -3893,8 +3889,7 @@ s32 host_int_get_link_speed(struct host_if_drv *hif_drv, s8 *ps8lnkspd) down(&hif_drv->hSemGetLINKSPEED); - - if (ps8lnkspd == NULL) { + if (!ps8lnkspd) { PRINT_ER("LINKSPEED pointer value is null"); return -EFAULT; } @@ -3933,7 +3928,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, s32 result = 0; struct host_if_msg msg; - if (!hif_drv || ScanResult == NULL) { + if (!hif_drv || !ScanResult) { PRINT_ER("hif_drv or ScanResult = NULL\n"); return -EFAULT; } @@ -3942,7 +3937,7 @@ s32 host_int_scan(struct host_if_drv *hif_drv, u8 u8ScanSource, msg.id = HOST_IF_MSG_SCAN; - if (pstrHiddenNetwork != NULL) { + if (pstrHiddenNetwork) { msg.body.scan_info.hidden_network.pstrHiddenNetworkInfo = pstrHiddenNetwork->pstrHiddenNetworkInfo; msg.body.scan_info.hidden_network.u8ssidnum = pstrHiddenNetwork->u8ssidnum; @@ -4535,7 +4530,7 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, pstrSetBeaconParam->dtim_period = u32DTIMPeriod; pstrSetBeaconParam->head_len = u32HeadLen; pstrSetBeaconParam->head = kmemdup(pu8Head, u32HeadLen, GFP_KERNEL); - if (pstrSetBeaconParam->head == NULL) { + if (!pstrSetBeaconParam->head) { result = -ENOMEM; goto ERRORHANDLER; } @@ -4544,7 +4539,7 @@ s32 host_int_add_beacon(struct host_if_drv *hif_drv, u32 u32Interval, if (u32TailLen > 0) { pstrSetBeaconParam->tail = kmemdup(pu8Tail, u32TailLen, GFP_KERNEL); - if (pstrSetBeaconParam->tail == NULL) { + if (!pstrSetBeaconParam->tail) { result = -ENOMEM; goto ERRORHANDLER; } @@ -4611,7 +4606,6 @@ s32 host_int_add_station(struct host_if_drv *hif_drv, memcpy(pstrAddStationMsg, pstrStaParams, sizeof(struct add_sta_param)); if (pstrAddStationMsg->u8NumRates > 0) { u8 *rates = kmalloc(pstrAddStationMsg->u8NumRates, GFP_KERNEL); - if (!rates) return -ENOMEM; @@ -4643,7 +4637,7 @@ s32 host_int_del_station(struct host_if_drv *hif_drv, const u8 *pu8MacAddr) msg.id = HOST_IF_MSG_DEL_STATION; msg.drv = hif_drv; - if (pu8MacAddr == NULL) + if (!pu8MacAddr) memset(pstrDelStationMsg->mac_addr, 255, ETH_ALEN); else memcpy(pstrDelStationMsg->mac_addr, pu8MacAddr, ETH_ALEN); @@ -4728,7 +4722,6 @@ s32 host_int_edit_station(struct host_if_drv *hif_drv, memcpy(pstrAddStationMsg, pstrStaParams, sizeof(struct add_sta_param)); if (pstrAddStationMsg->u8NumRates > 0) { u8 *rates = kmalloc(pstrAddStationMsg->u8NumRates, GFP_KERNEL); - if (!rates) return -ENOMEM; @@ -4823,7 +4816,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) u16IEsLen = ptstrNetworkInfo->u16IEsLen; pNewJoinBssParam = kzalloc(sizeof(struct join_bss_param), GFP_KERNEL); - if (pNewJoinBssParam != NULL) { + if (pNewJoinBssParam) { pNewJoinBssParam->dtim_period = ptstrNetworkInfo->u8DtimPeriod; pNewJoinBssParam->beacon_period = ptstrNetworkInfo->u16BeaconPeriod; pNewJoinBssParam->cap_info = ptstrNetworkInfo->u16CapInfo; @@ -4967,7 +4960,7 @@ static void *host_int_ParseJoinBssParam(tstrNetworkInfo *ptstrNetworkInfo) void host_int_freeJoinParams(void *pJoinParams) { - if ((struct bss_param *)pJoinParams != NULL) + if ((struct bss_param *)pJoinParams) kfree((struct bss_param *)pJoinParams); else PRINT_ER("Unable to FREE null pointer\n"); From 080f11bb3782352a05dfec5fd3ecddf94793af0c Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:45 +0900 Subject: [PATCH 2009/2431] staging: wilc1000: change the type of wilc1000_initialized This patch changes the type of wilc1000_initialized in the struc wilc from int to bool and also renames it to the initialized. In addition, unnecessary wilc1000_initialized codes are removed in this patch. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 13 +++++-------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 15 +++++++-------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index b879b8be0f3f..191851b27694 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -884,9 +884,7 @@ _fail_: /**************************/ void wilc1000_wlan_deinit(struct wilc *nic) { - - if (g_linux_wlan->wilc1000_initialized) { - + if (g_linux_wlan->initialized) { printk("Deinitializing wilc1000 ...\n"); if (nic == NULL) { @@ -935,7 +933,7 @@ void wilc1000_wlan_deinit(struct wilc *nic) wlan_deinit_locks(g_linux_wlan); /* announce that wilc1000 is not initialized */ - g_linux_wlan->wilc1000_initialized = 0; + g_linux_wlan->initialized = false; PRINT_D(INIT_DBG, "wilc1000 deinitialization Done\n"); @@ -1143,10 +1141,9 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) perInterface_wlan_t *nic = p_nic; int ret = 0; - if (!g_linux_wlan->wilc1000_initialized) { + if (!g_linux_wlan->initialized) { g_linux_wlan->mac_status = WILC_MAC_STATUS_INIT; g_linux_wlan->close = 0; - g_linux_wlan->wilc1000_initialized = 0; wlan_init_locks(g_linux_wlan); @@ -1233,7 +1230,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) goto _fail_fw_start_; } - g_linux_wlan->wilc1000_initialized = 1; + g_linux_wlan->initialized = true; return 0; /*success*/ _fail_fw_start_: @@ -1567,7 +1564,7 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd) /* struct iwreq *wrq = (struct iwreq *) req; // tony moved to case SIOCSIWPRIV */ nic = netdev_priv(ndev); - if (!g_linux_wlan->wilc1000_initialized) + if (!g_linux_wlan->initialized) return 0; switch (cmd) { diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index bcbf1bd29a50..e4630908b7fb 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2418,7 +2418,7 @@ void wilc_mgmt_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, } /*If mac is closed, then return*/ - if (!g_linux_wlan->wilc1000_initialized) { + if (!g_linux_wlan->initialized) { PRINT_D(GENERIC_DBG, "Return since mac is closed\n"); return; } @@ -2571,7 +2571,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, interface_type = nic->iftype; nic->iftype = STATION_MODE; - if (g_linux_wlan->wilc1000_initialized) { + if (g_linux_wlan->initialized) { host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->strInterfaceInfo[0].aBSSID, TID); /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); @@ -2627,7 +2627,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, (struct key_params *)(&g_key_gtk_params)); } - if (g_linux_wlan->wilc1000_initialized) { + if (g_linux_wlan->initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, nic->g_struct_frame_reg[i].reg); @@ -2658,7 +2658,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, nic->iftype = CLIENT_MODE; - if (g_linux_wlan->wilc1000_initialized) { + if (g_linux_wlan->initialized) { /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); @@ -2712,7 +2712,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, refresh_scan(priv, 1, true); Set_machw_change_vir_if(false); - if (g_linux_wlan->wilc1000_initialized) { + if (g_linux_wlan->initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, nic->g_struct_frame_reg[i].reg); @@ -2735,9 +2735,8 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Downloading AP firmware\n"); linux_wlan_get_firmware(nic); /*If wilc is running, then close-open to actually get new firmware running (serves P2P)*/ - if (g_linux_wlan->wilc1000_initialized) { + if (g_linux_wlan->initialized) { nic->iftype = AP_MODE; - g_linux_wlan->wilc1000_initialized = 1; mac_close(dev); mac_open(dev); @@ -2826,7 +2825,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, (struct key_params *)(&g_key_gtk_params)); } - if (g_linux_wlan->wilc1000_initialized) { + if (g_linux_wlan->initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, nic->g_struct_frame_reg[i].reg); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index c5061fd07312..863571abaeca 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -157,7 +157,7 @@ struct wilc_vif { struct wilc { int mac_status; - int wilc1000_initialized; + bool initialized; #if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) unsigned short dev_irq_num; #endif From c1b30f6a34166af4f1ee8b35906600b55f7fd591 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:46 +0900 Subject: [PATCH 2010/2431] staging: wilc1000: rename u8NoIfcs in the struct wilc This patch renames u8NoIfcs of the struct wilc to the vif_num to avoid CamelCase naming convention. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 18 +++++++++--------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 191851b27694..2bea103878fe 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -366,7 +366,7 @@ struct net_device *GetIfHandler(u8 *pMacHeader) Bssid = pMacHeader + 10; Bssid1 = pMacHeader + 4; - for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { + for (i = 0; i < g_linux_wlan->vif_num; i++) { if (!memcmp(Bssid1, g_linux_wlan->strInterfaceInfo[i].aBSSID, ETH_ALEN) || !memcmp(Bssid, g_linux_wlan->strInterfaceInfo[i].aBSSID, ETH_ALEN)) { return g_linux_wlan->strInterfaceInfo[i].wilc_netdev; @@ -377,7 +377,7 @@ struct net_device *GetIfHandler(u8 *pMacHeader) PRINT_D(INIT_DBG, "%02x ", pMacHeader[i]); Bssid = pMacHeader + 18; Bssid1 = pMacHeader + 12; - for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { + for (i = 0; i < g_linux_wlan->vif_num; i++) { if (!memcmp(Bssid1, g_linux_wlan->strInterfaceInfo[i].aBSSID, ETH_ALEN) || !memcmp(Bssid, g_linux_wlan->strInterfaceInfo[i].aBSSID, ETH_ALEN)) { PRINT_D(INIT_DBG, "Ctx [%p]\n", g_linux_wlan->strInterfaceInfo[i].wilc_netdev); @@ -394,7 +394,7 @@ int linux_wlan_set_bssid(struct net_device *wilc_netdev, u8 *pBSSID) int ret = -1; PRINT_D(INIT_DBG, "set bssid on[%p]\n", wilc_netdev); - for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { + for (i = 0; i < g_linux_wlan->vif_num; i++) { if (g_linux_wlan->strInterfaceInfo[i].wilc_netdev == wilc_netdev) { PRINT_D(INIT_DBG, "set bssid [%x][%x][%x]\n", pBSSID[0], pBSSID[1], pBSSID[2]); memcpy(g_linux_wlan->strInterfaceInfo[i].aBSSID, pBSSID, 6); @@ -412,7 +412,7 @@ int linux_wlan_get_num_conn_ifcs(void) u8 null_bssid[6] = {0}; u8 ret_val = 0; - for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { + for (i = 0; i < g_linux_wlan->vif_num; i++) { if (memcmp(g_linux_wlan->strInterfaceInfo[i].aBSSID, null_bssid, 6)) ret_val++; } @@ -1316,7 +1316,7 @@ int mac_open(struct net_device *ndev) PRINT_D(INIT_DBG, "Mac address: %pM\n", mac_add); /* loop through the NUM of supported devices and set the MAC address */ - for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { + for (i = 0; i < g_linux_wlan->vif_num; i++) { if (ndev == g_linux_wlan->strInterfaceInfo[i].wilc_netdev) { memcpy(g_linux_wlan->strInterfaceInfo[i].aSrcAddress, mac_add, ETH_ALEN); g_linux_wlan->strInterfaceInfo[i].drvHandler = priv->hWILCWFIDrv; @@ -1687,7 +1687,7 @@ void WILC_WFI_mgmt_rx(u8 *buff, u32 size) /*Pass the frame on the monitor interface, if any.*/ /*Otherwise, pass it on p2p0 netdev, if registered on it*/ - for (i = 0; i < g_linux_wlan->u8NoIfcs; i++) { + for (i = 0; i < g_linux_wlan->vif_num; i++) { nic = netdev_priv(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); if (nic->monitor_flag) { WILC_WFI_monitor_rx(buff, size); @@ -1740,10 +1740,10 @@ int wilc_netdev_init(void) } else strcpy(ndev->name, "p2p%d"); - nic->u8IfIdx = g_linux_wlan->u8NoIfcs; + nic->u8IfIdx = g_linux_wlan->vif_num; nic->wilc_netdev = ndev; - g_linux_wlan->strInterfaceInfo[g_linux_wlan->u8NoIfcs].wilc_netdev = ndev; - g_linux_wlan->u8NoIfcs++; + g_linux_wlan->strInterfaceInfo[g_linux_wlan->vif_num].wilc_netdev = ndev; + g_linux_wlan->vif_num++; ndev->netdev_ops = &wilc_netdev_ops; { diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 863571abaeca..a3f18b5ecb8b 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -162,7 +162,7 @@ struct wilc { unsigned short dev_irq_num; #endif int close; - u8 u8NoIfcs; + u8 vif_num; struct wilc_vif strInterfaceInfo[NUM_CONCURRENT_IFC]; u8 open_ifcs; From 8259a53e1c88765084a68c38bc6c5ebae563d6e5 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:47 +0900 Subject: [PATCH 2011/2431] staging: wilc1000: rename strInterfaceInfo in the sturct wilc This patch renames strInterfaceInfo in the struct wilc to the vif. In addition, unnecessary print statements around it are removed in this patch. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 91 +++++++++---------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 72 +++++++-------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 80 insertions(+), 85 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 2bea103878fe..971b99a9dc34 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -366,24 +366,21 @@ struct net_device *GetIfHandler(u8 *pMacHeader) Bssid = pMacHeader + 10; Bssid1 = pMacHeader + 4; - for (i = 0; i < g_linux_wlan->vif_num; i++) { - if (!memcmp(Bssid1, g_linux_wlan->strInterfaceInfo[i].aBSSID, ETH_ALEN) || - !memcmp(Bssid, g_linux_wlan->strInterfaceInfo[i].aBSSID, ETH_ALEN)) { - return g_linux_wlan->strInterfaceInfo[i].wilc_netdev; - } - } + for (i = 0; i < g_linux_wlan->vif_num; i++) + if (!memcmp(Bssid1, g_linux_wlan->vif[i].aBSSID, ETH_ALEN) || + !memcmp(Bssid, g_linux_wlan->vif[i].aBSSID, ETH_ALEN)) + return g_linux_wlan->vif[i].wilc_netdev; + PRINT_INFO(INIT_DBG, "Invalide handle\n"); for (i = 0; i < 25; i++) PRINT_D(INIT_DBG, "%02x ", pMacHeader[i]); Bssid = pMacHeader + 18; Bssid1 = pMacHeader + 12; - for (i = 0; i < g_linux_wlan->vif_num; i++) { - if (!memcmp(Bssid1, g_linux_wlan->strInterfaceInfo[i].aBSSID, ETH_ALEN) || - !memcmp(Bssid, g_linux_wlan->strInterfaceInfo[i].aBSSID, ETH_ALEN)) { - PRINT_D(INIT_DBG, "Ctx [%p]\n", g_linux_wlan->strInterfaceInfo[i].wilc_netdev); - return g_linux_wlan->strInterfaceInfo[i].wilc_netdev; - } - } + for (i = 0; i < g_linux_wlan->vif_num; i++) + if (!memcmp(Bssid1, g_linux_wlan->vif[i].aBSSID, ETH_ALEN) || + !memcmp(Bssid, g_linux_wlan->vif[i].aBSSID, ETH_ALEN)) + return g_linux_wlan->vif[i].wilc_netdev; + PRINT_INFO(INIT_DBG, "\n"); return NULL; } @@ -393,15 +390,13 @@ int linux_wlan_set_bssid(struct net_device *wilc_netdev, u8 *pBSSID) int i = 0; int ret = -1; - PRINT_D(INIT_DBG, "set bssid on[%p]\n", wilc_netdev); - for (i = 0; i < g_linux_wlan->vif_num; i++) { - if (g_linux_wlan->strInterfaceInfo[i].wilc_netdev == wilc_netdev) { - PRINT_D(INIT_DBG, "set bssid [%x][%x][%x]\n", pBSSID[0], pBSSID[1], pBSSID[2]); - memcpy(g_linux_wlan->strInterfaceInfo[i].aBSSID, pBSSID, 6); + for (i = 0; i < g_linux_wlan->vif_num; i++) + if (g_linux_wlan->vif[i].wilc_netdev == wilc_netdev) { + memcpy(g_linux_wlan->vif[i].aBSSID, pBSSID, 6); ret = 0; break; } - } + return ret; } @@ -412,10 +407,10 @@ int linux_wlan_get_num_conn_ifcs(void) u8 null_bssid[6] = {0}; u8 ret_val = 0; - for (i = 0; i < g_linux_wlan->vif_num; i++) { - if (memcmp(g_linux_wlan->strInterfaceInfo[i].aBSSID, null_bssid, 6)) + for (i = 0; i < g_linux_wlan->vif_num; i++) + if (memcmp(g_linux_wlan->vif[i].aBSSID, null_bssid, 6)) ret_val++; - } + return ret_val; } @@ -462,10 +457,10 @@ static int linux_wlan_txq_task(void *vp) if (txq_count < FLOW_CONTROL_LOWER_THRESHOLD /* && netif_queue_stopped(pd->wilc_netdev)*/) { PRINT_D(TX_DBG, "Waking up queue\n"); /* netif_wake_queue(pd->wilc_netdev); */ - if (netif_queue_stopped(g_linux_wlan->strInterfaceInfo[0].wilc_netdev)) - netif_wake_queue(g_linux_wlan->strInterfaceInfo[0].wilc_netdev); - if (netif_queue_stopped(g_linux_wlan->strInterfaceInfo[1].wilc_netdev)) - netif_wake_queue(g_linux_wlan->strInterfaceInfo[1].wilc_netdev); + if (netif_queue_stopped(g_linux_wlan->vif[0].wilc_netdev)) + netif_wake_queue(g_linux_wlan->vif[0].wilc_netdev); + if (netif_queue_stopped(g_linux_wlan->vif[1].wilc_netdev)) + netif_wake_queue(g_linux_wlan->vif[1].wilc_netdev); } if (ret == WILC_TX_ERR_NO_BUF) { /* failed to allocate buffers in chip. */ @@ -1317,15 +1312,15 @@ int mac_open(struct net_device *ndev) /* loop through the NUM of supported devices and set the MAC address */ for (i = 0; i < g_linux_wlan->vif_num; i++) { - if (ndev == g_linux_wlan->strInterfaceInfo[i].wilc_netdev) { - memcpy(g_linux_wlan->strInterfaceInfo[i].aSrcAddress, mac_add, ETH_ALEN); - g_linux_wlan->strInterfaceInfo[i].drvHandler = priv->hWILCWFIDrv; + if (ndev == g_linux_wlan->vif[i].wilc_netdev) { + memcpy(g_linux_wlan->vif[i].aSrcAddress, mac_add, ETH_ALEN); + g_linux_wlan->vif[i].drvHandler = priv->hWILCWFIDrv; break; } } /* TODO: get MAC address whenever the source is EPROM - hardcoded and copy it to ndev*/ - memcpy(ndev->dev_addr, g_linux_wlan->strInterfaceInfo[i].aSrcAddress, ETH_ALEN); + memcpy(ndev->dev_addr, g_linux_wlan->vif[i].aSrcAddress, ETH_ALEN); if (!is_valid_ether_addr(ndev->dev_addr)) { PRINT_ER("Error: Wrong MAC address\n"); @@ -1477,14 +1472,14 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) PRINT_D(TX_DBG, "Adding tx packet to TX Queue\n"); nic->netstats.tx_packets++; nic->netstats.tx_bytes += tx_data->size; - tx_data->pBssid = g_linux_wlan->strInterfaceInfo[nic->u8IfIdx].aBSSID; + tx_data->pBssid = g_linux_wlan->vif[nic->u8IfIdx].aBSSID; QueueCount = wilc_wlan_txq_add_net_pkt((void *)tx_data, tx_data->buff, tx_data->size, linux_wlan_tx_complete); if (QueueCount > FLOW_CONTROL_UPPER_THRESHOLD) { - netif_stop_queue(g_linux_wlan->strInterfaceInfo[0].wilc_netdev); - netif_stop_queue(g_linux_wlan->strInterfaceInfo[1].wilc_netdev); + netif_stop_queue(g_linux_wlan->vif[0].wilc_netdev); + netif_stop_queue(g_linux_wlan->vif[1].wilc_netdev); } return 0; @@ -1688,17 +1683,17 @@ void WILC_WFI_mgmt_rx(u8 *buff, u32 size) /*Pass the frame on the monitor interface, if any.*/ /*Otherwise, pass it on p2p0 netdev, if registered on it*/ for (i = 0; i < g_linux_wlan->vif_num; i++) { - nic = netdev_priv(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); + nic = netdev_priv(g_linux_wlan->vif[i].wilc_netdev); if (nic->monitor_flag) { WILC_WFI_monitor_rx(buff, size); return; } } - nic = netdev_priv(g_linux_wlan->strInterfaceInfo[1].wilc_netdev); /* p2p0 */ + nic = netdev_priv(g_linux_wlan->vif[1].wilc_netdev); /* p2p0 */ if ((buff[0] == nic->g_struct_frame_reg[0].frame_type && nic->g_struct_frame_reg[0].reg) || (buff[0] == nic->g_struct_frame_reg[1].frame_type && nic->g_struct_frame_reg[1].reg)) - WILC_WFI_p2p_rx(g_linux_wlan->strInterfaceInfo[1].wilc_netdev, buff, size); + WILC_WFI_p2p_rx(g_linux_wlan->vif[1].wilc_netdev, buff, size); } int wilc_netdev_init(void) @@ -1742,7 +1737,7 @@ int wilc_netdev_init(void) nic->u8IfIdx = g_linux_wlan->vif_num; nic->wilc_netdev = ndev; - g_linux_wlan->strInterfaceInfo[g_linux_wlan->vif_num].wilc_netdev = ndev; + g_linux_wlan->vif[g_linux_wlan->vif_num].wilc_netdev = ndev; g_linux_wlan->vif_num++; ndev->netdev_ops = &wilc_netdev_ops; @@ -1837,12 +1832,12 @@ static void __exit exit_wilc_driver(void) perInterface_wlan_t *nic[NUM_CONCURRENT_IFC] = {NULL,}; #define CLOSE_TIMEOUT (12 * 1000) - if ((g_linux_wlan != NULL) && (((g_linux_wlan->strInterfaceInfo[0].wilc_netdev) != NULL) - || ((g_linux_wlan->strInterfaceInfo[1].wilc_netdev) != NULL))) { + if ((g_linux_wlan != NULL) && (((g_linux_wlan->vif[0].wilc_netdev) != NULL) + || ((g_linux_wlan->vif[1].wilc_netdev) != NULL))) { unregister_inetaddr_notifier(&g_dev_notifier); for (i = 0; i < NUM_CONCURRENT_IFC; i++) - nic[i] = netdev_priv(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); + nic[i] = netdev_priv(g_linux_wlan->vif[i].wilc_netdev); } if ((g_linux_wlan != NULL) && g_linux_wlan->wilc_firmware != NULL) { @@ -1850,8 +1845,8 @@ static void __exit exit_wilc_driver(void) g_linux_wlan->wilc_firmware = NULL; } - if ((g_linux_wlan != NULL) && (((g_linux_wlan->strInterfaceInfo[0].wilc_netdev) != NULL) - || ((g_linux_wlan->strInterfaceInfo[1].wilc_netdev) != NULL))) { + if ((g_linux_wlan != NULL) && (((g_linux_wlan->vif[0].wilc_netdev) != NULL) + || ((g_linux_wlan->vif[1].wilc_netdev) != NULL))) { PRINT_D(INIT_DBG, "Waiting for mac_close ....\n"); if (linux_wlan_lock_timeout(&close_exit_sync, CLOSE_TIMEOUT) < 0) @@ -1861,18 +1856,18 @@ static void __exit exit_wilc_driver(void) for (i = 0; i < NUM_CONCURRENT_IFC; i++) { /* close all opened interfaces */ - if (g_linux_wlan->strInterfaceInfo[i].wilc_netdev != NULL) { + if (g_linux_wlan->vif[i].wilc_netdev != NULL) { if (nic[i]->mac_opened) - mac_close(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); + mac_close(g_linux_wlan->vif[i].wilc_netdev); } } for (i = 0; i < NUM_CONCURRENT_IFC; i++) { - PRINT_D(INIT_DBG, "Unregistering netdev %p\n", g_linux_wlan->strInterfaceInfo[i].wilc_netdev); - unregister_netdev(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); + PRINT_D(INIT_DBG, "Unregistering netdev %p\n", g_linux_wlan->vif[i].wilc_netdev); + unregister_netdev(g_linux_wlan->vif[i].wilc_netdev); PRINT_D(INIT_DBG, "Freeing Wiphy...\n"); - wilc_free_wiphy(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); + wilc_free_wiphy(g_linux_wlan->vif[i].wilc_netdev); PRINT_D(INIT_DBG, "Freeing netdev...\n"); - free_netdev(g_linux_wlan->strInterfaceInfo[i].wilc_netdev); + free_netdev(g_linux_wlan->vif[i].wilc_netdev); } } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e4630908b7fb..f2c8a45ba7e8 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -624,12 +624,12 @@ static void CfgConnectResult(enum conn_event enuConnDisconnEvent, u8WLANChannel = INVALID_CHANNEL; /*Incase "P2P CLIENT Connected" send deauthentication reason by 3 to force the WPA_SUPPLICANT to directly change * virtual interface to station*/ - if ((pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->strInterfaceInfo[1].wilc_netdev)) { + if ((pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->vif[1].wilc_netdev)) { pstrDisconnectNotifInfo->u16reason = 3; } /*Incase "P2P CLIENT during connection(not connected)" send deauthentication reason by 1 to force the WPA_SUPPLICANT * to scan again and retry the connection*/ - else if ((!pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->strInterfaceInfo[1].wilc_netdev)) { + else if ((!pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->vif[1].wilc_netdev)) { pstrDisconnectNotifInfo->u16reason = 1; } cfg80211_disconnected(dev, pstrDisconnectNotifInfo->u16reason, pstrDisconnectNotifInfo->ie, @@ -1255,7 +1255,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } /*save keys only on interface 0 (wifi interface)*/ - if (!g_gtk_keys_saved && netdev == g_linux_wlan->strInterfaceInfo[0].wilc_netdev) { + if (!g_gtk_keys_saved && netdev == g_linux_wlan->vif[0].wilc_netdev) { g_add_gtk_key_params.key_idx = key_index; g_add_gtk_key_params.pairwise = pairwise; if (!mac_addr) { @@ -1291,7 +1291,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } /*save keys only on interface 0 (wifi interface)*/ - if (!g_ptk_keys_saved && netdev == g_linux_wlan->strInterfaceInfo[0].wilc_netdev) { + if (!g_ptk_keys_saved && netdev == g_linux_wlan->vif[0].wilc_netdev) { g_add_ptk_key_params.key_idx = key_index; g_add_ptk_key_params.pairwise = pairwise; if (!mac_addr) { @@ -1356,7 +1356,7 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, priv = wiphy_priv(wiphy); /*delete saved keys, if any*/ - if (netdev == g_linux_wlan->strInterfaceInfo[0].wilc_netdev) { + if (netdev == g_linux_wlan->vif[0].wilc_netdev) { g_ptk_keys_saved = false; g_gtk_keys_saved = false; g_wep_keys_saved = false; @@ -2572,7 +2572,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, nic->iftype = STATION_MODE; if (g_linux_wlan->initialized) { - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->strInterfaceInfo[0].aBSSID, TID); + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].aBSSID, TID); /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); @@ -2585,16 +2585,16 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, nic->iftype = interface_type; /*Setting interface 1 drv handler and mac address in newly downloaded FW*/ - host_int_set_wfi_drv_handler(g_linux_wlan->strInterfaceInfo[0].drvHandler); - host_int_set_MacAddress(g_linux_wlan->strInterfaceInfo[0].drvHandler, - g_linux_wlan->strInterfaceInfo[0].aSrcAddress); + host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); + host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, + g_linux_wlan->vif[0].aSrcAddress); host_int_set_operation_mode(priv->hWILCWFIDrv, STATION_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->strInterfaceInfo[0].drvHandler, + host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].drvHandler, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->strInterfaceInfo[0].drvHandler, + host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].drvHandler, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); @@ -2612,15 +2612,15 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CFG80211_DBG, "gtk %x %x %x\n", g_key_gtk_params.key[0], g_key_gtk_params.key[1], g_key_gtk_params.key[2]); - add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].wilc_netdev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].wilc_netdev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, @@ -2648,7 +2648,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, connecting = 0; PRINT_D(HOSTAPD_DBG, "Interface type = NL80211_IFTYPE_P2P_CLIENT\n"); - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->strInterfaceInfo[0].aBSSID, TID); + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].aBSSID, TID); dev->ieee80211_ptr->iftype = type; priv->wdev->iftype = type; @@ -2666,16 +2666,16 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, wilc1000_wlan_init(dev, nic); g_wilc_initialized = 1; - host_int_set_wfi_drv_handler(g_linux_wlan->strInterfaceInfo[0].drvHandler); - host_int_set_MacAddress(g_linux_wlan->strInterfaceInfo[0].drvHandler, - g_linux_wlan->strInterfaceInfo[0].aSrcAddress); + host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); + host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, + g_linux_wlan->vif[0].aSrcAddress); host_int_set_operation_mode(priv->hWILCWFIDrv, STATION_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->strInterfaceInfo[0].drvHandler, + host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].drvHandler, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->strInterfaceInfo[0].drvHandler, + host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].drvHandler, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); @@ -2693,15 +2693,15 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CFG80211_DBG, "gtk %x %x %x\n", g_key_gtk_params.key[0], g_key_gtk_params.key[1], g_key_gtk_params.key[2]); - add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].wilc_netdev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].wilc_netdev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, @@ -2760,7 +2760,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*sent before downloading new FW. This is because it blocks on*/ /*hWaitResponse semaphore, which allows previous config*/ /*packets to actually take action on old FW*/ - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->strInterfaceInfo[0].aBSSID, TID); + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].aBSSID, TID); bEnablePS = false; PRINT_D(HOSTAPD_DBG, "Interface type = NL80211_IFTYPE_GO\n"); dev->ieee80211_ptr->iftype = type; @@ -2781,16 +2781,16 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*Setting interface 1 drv handler and mac address in newly downloaded FW*/ - host_int_set_wfi_drv_handler(g_linux_wlan->strInterfaceInfo[0].drvHandler); - host_int_set_MacAddress(g_linux_wlan->strInterfaceInfo[0].drvHandler, - g_linux_wlan->strInterfaceInfo[0].aSrcAddress); + host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); + host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, + g_linux_wlan->vif[0].aSrcAddress); host_int_set_operation_mode(priv->hWILCWFIDrv, AP_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->strInterfaceInfo[0].drvHandler, + host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].drvHandler, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->strInterfaceInfo[0].drvHandler, + host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].drvHandler, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); @@ -2810,15 +2810,15 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, g_key_gtk_params.key[1], g_key_gtk_params.key[2], g_key_gtk_params.cipher); - add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].wilc_netdev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->strInterfaceInfo[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->strInterfaceInfo[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].wilc_netdev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, @@ -2888,7 +2888,7 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, if (s32Error != 0) PRINT_ER("Error in setting channel\n"); - linux_wlan_set_bssid(dev, g_linux_wlan->strInterfaceInfo[0].aSrcAddress); + linux_wlan_set_bssid(dev, g_linux_wlan->vif[0].aSrcAddress); s32Error = host_int_add_beacon(priv->hWILCWFIDrv, settings->beacon_interval, diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index a3f18b5ecb8b..71cd3ded2421 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -163,7 +163,7 @@ struct wilc { #endif int close; u8 vif_num; - struct wilc_vif strInterfaceInfo[NUM_CONCURRENT_IFC]; + struct wilc_vif vif[NUM_CONCURRENT_IFC]; u8 open_ifcs; struct semaphore txq_add_to_head_cs; From 7e7fa470efb691058de43e65373aa919e4523fe2 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:48 +0900 Subject: [PATCH 2012/2431] staging: wilc1000: rename aSrcAddress in the struct wilc_vif This patch renames aSrcAddress in the struct wilc_vif to the src_addr. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 971b99a9dc34..9d5796207493 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1313,14 +1313,14 @@ int mac_open(struct net_device *ndev) /* loop through the NUM of supported devices and set the MAC address */ for (i = 0; i < g_linux_wlan->vif_num; i++) { if (ndev == g_linux_wlan->vif[i].wilc_netdev) { - memcpy(g_linux_wlan->vif[i].aSrcAddress, mac_add, ETH_ALEN); + memcpy(g_linux_wlan->vif[i].src_addr, mac_add, ETH_ALEN); g_linux_wlan->vif[i].drvHandler = priv->hWILCWFIDrv; break; } } /* TODO: get MAC address whenever the source is EPROM - hardcoded and copy it to ndev*/ - memcpy(ndev->dev_addr, g_linux_wlan->vif[i].aSrcAddress, ETH_ALEN); + memcpy(ndev->dev_addr, g_linux_wlan->vif[i].src_addr, ETH_ALEN); if (!is_valid_ether_addr(ndev->dev_addr)) { PRINT_ER("Error: Wrong MAC address\n"); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index f2c8a45ba7e8..b39ea1849ce5 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2587,7 +2587,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*Setting interface 1 drv handler and mac address in newly downloaded FW*/ host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, - g_linux_wlan->vif[0].aSrcAddress); + g_linux_wlan->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, STATION_MODE); /*Add saved WEP keys, if any*/ @@ -2668,7 +2668,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, - g_linux_wlan->vif[0].aSrcAddress); + g_linux_wlan->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, STATION_MODE); /*Add saved WEP keys, if any*/ @@ -2783,7 +2783,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*Setting interface 1 drv handler and mac address in newly downloaded FW*/ host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, - g_linux_wlan->vif[0].aSrcAddress); + g_linux_wlan->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, AP_MODE); /*Add saved WEP keys, if any*/ @@ -2888,7 +2888,7 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, if (s32Error != 0) PRINT_ER("Error in setting channel\n"); - linux_wlan_set_bssid(dev, g_linux_wlan->vif[0].aSrcAddress); + linux_wlan_set_bssid(dev, g_linux_wlan->vif[0].src_addr); s32Error = host_int_add_beacon(priv->hWILCWFIDrv, settings->beacon_interval, diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 71cd3ded2421..308912986534 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -149,7 +149,7 @@ typedef struct { } struct_frame_reg; struct wilc_vif { - u8 aSrcAddress[ETH_ALEN]; + u8 src_addr[ETH_ALEN]; u8 aBSSID[ETH_ALEN]; struct host_if_drv *drvHandler; struct net_device *wilc_netdev; From 7201cd2ca5d03e9b3b6d21e5a23fd82246a3501d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:49 +0900 Subject: [PATCH 2013/2431] staging: wilc1000: rename aBSSID in the sturct wilc_vif This patch renames aBSSID in the struct wilc_vif to the bssid. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 14 +++++++------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 9d5796207493..493e02cf34ab 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -367,8 +367,8 @@ struct net_device *GetIfHandler(u8 *pMacHeader) Bssid1 = pMacHeader + 4; for (i = 0; i < g_linux_wlan->vif_num; i++) - if (!memcmp(Bssid1, g_linux_wlan->vif[i].aBSSID, ETH_ALEN) || - !memcmp(Bssid, g_linux_wlan->vif[i].aBSSID, ETH_ALEN)) + if (!memcmp(Bssid1, g_linux_wlan->vif[i].bssid, ETH_ALEN) || + !memcmp(Bssid, g_linux_wlan->vif[i].bssid, ETH_ALEN)) return g_linux_wlan->vif[i].wilc_netdev; PRINT_INFO(INIT_DBG, "Invalide handle\n"); @@ -377,8 +377,8 @@ struct net_device *GetIfHandler(u8 *pMacHeader) Bssid = pMacHeader + 18; Bssid1 = pMacHeader + 12; for (i = 0; i < g_linux_wlan->vif_num; i++) - if (!memcmp(Bssid1, g_linux_wlan->vif[i].aBSSID, ETH_ALEN) || - !memcmp(Bssid, g_linux_wlan->vif[i].aBSSID, ETH_ALEN)) + if (!memcmp(Bssid1, g_linux_wlan->vif[i].bssid, ETH_ALEN) || + !memcmp(Bssid, g_linux_wlan->vif[i].bssid, ETH_ALEN)) return g_linux_wlan->vif[i].wilc_netdev; PRINT_INFO(INIT_DBG, "\n"); @@ -392,7 +392,7 @@ int linux_wlan_set_bssid(struct net_device *wilc_netdev, u8 *pBSSID) for (i = 0; i < g_linux_wlan->vif_num; i++) if (g_linux_wlan->vif[i].wilc_netdev == wilc_netdev) { - memcpy(g_linux_wlan->vif[i].aBSSID, pBSSID, 6); + memcpy(g_linux_wlan->vif[i].bssid, pBSSID, 6); ret = 0; break; } @@ -408,7 +408,7 @@ int linux_wlan_get_num_conn_ifcs(void) u8 ret_val = 0; for (i = 0; i < g_linux_wlan->vif_num; i++) - if (memcmp(g_linux_wlan->vif[i].aBSSID, null_bssid, 6)) + if (memcmp(g_linux_wlan->vif[i].bssid, null_bssid, 6)) ret_val++; return ret_val; @@ -1472,7 +1472,7 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) PRINT_D(TX_DBG, "Adding tx packet to TX Queue\n"); nic->netstats.tx_packets++; nic->netstats.tx_bytes += tx_data->size; - tx_data->pBssid = g_linux_wlan->vif[nic->u8IfIdx].aBSSID; + tx_data->pBssid = g_linux_wlan->vif[nic->u8IfIdx].bssid; QueueCount = wilc_wlan_txq_add_net_pkt((void *)tx_data, tx_data->buff, tx_data->size, linux_wlan_tx_complete); diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index b39ea1849ce5..c166d3f0e409 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2572,7 +2572,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, nic->iftype = STATION_MODE; if (g_linux_wlan->initialized) { - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].aBSSID, TID); + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].bssid, TID); /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); @@ -2648,7 +2648,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, connecting = 0; PRINT_D(HOSTAPD_DBG, "Interface type = NL80211_IFTYPE_P2P_CLIENT\n"); - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].aBSSID, TID); + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].bssid, TID); dev->ieee80211_ptr->iftype = type; priv->wdev->iftype = type; @@ -2760,7 +2760,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*sent before downloading new FW. This is because it blocks on*/ /*hWaitResponse semaphore, which allows previous config*/ /*packets to actually take action on old FW*/ - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].aBSSID, TID); + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].bssid, TID); bEnablePS = false; PRINT_D(HOSTAPD_DBG, "Interface type = NL80211_IFTYPE_GO\n"); dev->ieee80211_ptr->iftype = type; diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 308912986534..6ac93280b8a2 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -150,7 +150,7 @@ typedef struct { struct wilc_vif { u8 src_addr[ETH_ALEN]; - u8 aBSSID[ETH_ALEN]; + u8 bssid[ETH_ALEN]; struct host_if_drv *drvHandler; struct net_device *wilc_netdev; }; From 3134a57875e2cb87d6c84088fc634fa4e1c155c4 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:50 +0900 Subject: [PATCH 2014/2431] staging: wilc1000: rename drvHandler in the struct wilc_vif This patch renames drvHandler in the struct wilc_vif to the hif_drv. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 2 +- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 24 +++++++++---------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 493e02cf34ab..11e26fb1090b 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1314,7 +1314,7 @@ int mac_open(struct net_device *ndev) for (i = 0; i < g_linux_wlan->vif_num; i++) { if (ndev == g_linux_wlan->vif[i].wilc_netdev) { memcpy(g_linux_wlan->vif[i].src_addr, mac_add, ETH_ALEN); - g_linux_wlan->vif[i].drvHandler = priv->hWILCWFIDrv; + g_linux_wlan->vif[i].hif_drv = priv->hWILCWFIDrv; break; } } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c166d3f0e409..2dfc0fde7d2e 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2585,16 +2585,16 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, nic->iftype = interface_type; /*Setting interface 1 drv handler and mac address in newly downloaded FW*/ - host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); - host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, + host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].hif_drv); + host_int_set_MacAddress(g_linux_wlan->vif[0].hif_drv, g_linux_wlan->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, STATION_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].drvHandler, + host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].hif_drv, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].drvHandler, + host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].hif_drv, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); @@ -2666,16 +2666,16 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, wilc1000_wlan_init(dev, nic); g_wilc_initialized = 1; - host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); - host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, + host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].hif_drv); + host_int_set_MacAddress(g_linux_wlan->vif[0].hif_drv, g_linux_wlan->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, STATION_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].drvHandler, + host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].hif_drv, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].drvHandler, + host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].hif_drv, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); @@ -2781,16 +2781,16 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*Setting interface 1 drv handler and mac address in newly downloaded FW*/ - host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].drvHandler); - host_int_set_MacAddress(g_linux_wlan->vif[0].drvHandler, + host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].hif_drv); + host_int_set_MacAddress(g_linux_wlan->vif[0].hif_drv, g_linux_wlan->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, AP_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].drvHandler, + host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].hif_drv, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].drvHandler, + host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].hif_drv, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 6ac93280b8a2..521d3cbe50fb 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -151,7 +151,7 @@ typedef struct { struct wilc_vif { u8 src_addr[ETH_ALEN]; u8 bssid[ETH_ALEN]; - struct host_if_drv *drvHandler; + struct host_if_drv *hif_drv; struct net_device *wilc_netdev; }; From 817f3fb988642f050d6e4afce5db0a3e7a345720 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:51 +0900 Subject: [PATCH 2015/2431] staging: wilc1000: rename wilc_netdev in the struct wilc_vif This patch renames wilc_netdev in the struct wilc_vif to the ndev. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 50 +++++++++---------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 34 ++++++------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 11e26fb1090b..41a2f0928604 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -369,7 +369,7 @@ struct net_device *GetIfHandler(u8 *pMacHeader) for (i = 0; i < g_linux_wlan->vif_num; i++) if (!memcmp(Bssid1, g_linux_wlan->vif[i].bssid, ETH_ALEN) || !memcmp(Bssid, g_linux_wlan->vif[i].bssid, ETH_ALEN)) - return g_linux_wlan->vif[i].wilc_netdev; + return g_linux_wlan->vif[i].ndev; PRINT_INFO(INIT_DBG, "Invalide handle\n"); for (i = 0; i < 25; i++) @@ -379,7 +379,7 @@ struct net_device *GetIfHandler(u8 *pMacHeader) for (i = 0; i < g_linux_wlan->vif_num; i++) if (!memcmp(Bssid1, g_linux_wlan->vif[i].bssid, ETH_ALEN) || !memcmp(Bssid, g_linux_wlan->vif[i].bssid, ETH_ALEN)) - return g_linux_wlan->vif[i].wilc_netdev; + return g_linux_wlan->vif[i].ndev; PRINT_INFO(INIT_DBG, "\n"); return NULL; @@ -391,7 +391,7 @@ int linux_wlan_set_bssid(struct net_device *wilc_netdev, u8 *pBSSID) int ret = -1; for (i = 0; i < g_linux_wlan->vif_num; i++) - if (g_linux_wlan->vif[i].wilc_netdev == wilc_netdev) { + if (g_linux_wlan->vif[i].ndev == wilc_netdev) { memcpy(g_linux_wlan->vif[i].bssid, pBSSID, 6); ret = 0; break; @@ -457,10 +457,10 @@ static int linux_wlan_txq_task(void *vp) if (txq_count < FLOW_CONTROL_LOWER_THRESHOLD /* && netif_queue_stopped(pd->wilc_netdev)*/) { PRINT_D(TX_DBG, "Waking up queue\n"); /* netif_wake_queue(pd->wilc_netdev); */ - if (netif_queue_stopped(g_linux_wlan->vif[0].wilc_netdev)) - netif_wake_queue(g_linux_wlan->vif[0].wilc_netdev); - if (netif_queue_stopped(g_linux_wlan->vif[1].wilc_netdev)) - netif_wake_queue(g_linux_wlan->vif[1].wilc_netdev); + if (netif_queue_stopped(g_linux_wlan->vif[0].ndev)) + netif_wake_queue(g_linux_wlan->vif[0].ndev); + if (netif_queue_stopped(g_linux_wlan->vif[1].ndev)) + netif_wake_queue(g_linux_wlan->vif[1].ndev); } if (ret == WILC_TX_ERR_NO_BUF) { /* failed to allocate buffers in chip. */ @@ -1312,7 +1312,7 @@ int mac_open(struct net_device *ndev) /* loop through the NUM of supported devices and set the MAC address */ for (i = 0; i < g_linux_wlan->vif_num; i++) { - if (ndev == g_linux_wlan->vif[i].wilc_netdev) { + if (ndev == g_linux_wlan->vif[i].ndev) { memcpy(g_linux_wlan->vif[i].src_addr, mac_add, ETH_ALEN); g_linux_wlan->vif[i].hif_drv = priv->hWILCWFIDrv; break; @@ -1478,8 +1478,8 @@ int mac_xmit(struct sk_buff *skb, struct net_device *ndev) linux_wlan_tx_complete); if (QueueCount > FLOW_CONTROL_UPPER_THRESHOLD) { - netif_stop_queue(g_linux_wlan->vif[0].wilc_netdev); - netif_stop_queue(g_linux_wlan->vif[1].wilc_netdev); + netif_stop_queue(g_linux_wlan->vif[0].ndev); + netif_stop_queue(g_linux_wlan->vif[1].ndev); } return 0; @@ -1683,17 +1683,17 @@ void WILC_WFI_mgmt_rx(u8 *buff, u32 size) /*Pass the frame on the monitor interface, if any.*/ /*Otherwise, pass it on p2p0 netdev, if registered on it*/ for (i = 0; i < g_linux_wlan->vif_num; i++) { - nic = netdev_priv(g_linux_wlan->vif[i].wilc_netdev); + nic = netdev_priv(g_linux_wlan->vif[i].ndev); if (nic->monitor_flag) { WILC_WFI_monitor_rx(buff, size); return; } } - nic = netdev_priv(g_linux_wlan->vif[1].wilc_netdev); /* p2p0 */ + nic = netdev_priv(g_linux_wlan->vif[1].ndev); /* p2p0 */ if ((buff[0] == nic->g_struct_frame_reg[0].frame_type && nic->g_struct_frame_reg[0].reg) || (buff[0] == nic->g_struct_frame_reg[1].frame_type && nic->g_struct_frame_reg[1].reg)) - WILC_WFI_p2p_rx(g_linux_wlan->vif[1].wilc_netdev, buff, size); + WILC_WFI_p2p_rx(g_linux_wlan->vif[1].ndev, buff, size); } int wilc_netdev_init(void) @@ -1737,7 +1737,7 @@ int wilc_netdev_init(void) nic->u8IfIdx = g_linux_wlan->vif_num; nic->wilc_netdev = ndev; - g_linux_wlan->vif[g_linux_wlan->vif_num].wilc_netdev = ndev; + g_linux_wlan->vif[g_linux_wlan->vif_num].ndev = ndev; g_linux_wlan->vif_num++; ndev->netdev_ops = &wilc_netdev_ops; @@ -1832,12 +1832,12 @@ static void __exit exit_wilc_driver(void) perInterface_wlan_t *nic[NUM_CONCURRENT_IFC] = {NULL,}; #define CLOSE_TIMEOUT (12 * 1000) - if ((g_linux_wlan != NULL) && (((g_linux_wlan->vif[0].wilc_netdev) != NULL) - || ((g_linux_wlan->vif[1].wilc_netdev) != NULL))) { + if ((g_linux_wlan != NULL) && (((g_linux_wlan->vif[0].ndev) != NULL) + || ((g_linux_wlan->vif[1].ndev) != NULL))) { unregister_inetaddr_notifier(&g_dev_notifier); for (i = 0; i < NUM_CONCURRENT_IFC; i++) - nic[i] = netdev_priv(g_linux_wlan->vif[i].wilc_netdev); + nic[i] = netdev_priv(g_linux_wlan->vif[i].ndev); } if ((g_linux_wlan != NULL) && g_linux_wlan->wilc_firmware != NULL) { @@ -1845,8 +1845,8 @@ static void __exit exit_wilc_driver(void) g_linux_wlan->wilc_firmware = NULL; } - if ((g_linux_wlan != NULL) && (((g_linux_wlan->vif[0].wilc_netdev) != NULL) - || ((g_linux_wlan->vif[1].wilc_netdev) != NULL))) { + if ((g_linux_wlan != NULL) && (((g_linux_wlan->vif[0].ndev) != NULL) + || ((g_linux_wlan->vif[1].ndev) != NULL))) { PRINT_D(INIT_DBG, "Waiting for mac_close ....\n"); if (linux_wlan_lock_timeout(&close_exit_sync, CLOSE_TIMEOUT) < 0) @@ -1856,18 +1856,18 @@ static void __exit exit_wilc_driver(void) for (i = 0; i < NUM_CONCURRENT_IFC; i++) { /* close all opened interfaces */ - if (g_linux_wlan->vif[i].wilc_netdev != NULL) { + if (g_linux_wlan->vif[i].ndev != NULL) { if (nic[i]->mac_opened) - mac_close(g_linux_wlan->vif[i].wilc_netdev); + mac_close(g_linux_wlan->vif[i].ndev); } } for (i = 0; i < NUM_CONCURRENT_IFC; i++) { - PRINT_D(INIT_DBG, "Unregistering netdev %p\n", g_linux_wlan->vif[i].wilc_netdev); - unregister_netdev(g_linux_wlan->vif[i].wilc_netdev); + PRINT_D(INIT_DBG, "Unregistering netdev %p\n", g_linux_wlan->vif[i].ndev); + unregister_netdev(g_linux_wlan->vif[i].ndev); PRINT_D(INIT_DBG, "Freeing Wiphy...\n"); - wilc_free_wiphy(g_linux_wlan->vif[i].wilc_netdev); + wilc_free_wiphy(g_linux_wlan->vif[i].ndev); PRINT_D(INIT_DBG, "Freeing netdev...\n"); - free_netdev(g_linux_wlan->vif[i].wilc_netdev); + free_netdev(g_linux_wlan->vif[i].ndev); } } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 2dfc0fde7d2e..264fcb9d9dfa 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -624,12 +624,12 @@ static void CfgConnectResult(enum conn_event enuConnDisconnEvent, u8WLANChannel = INVALID_CHANNEL; /*Incase "P2P CLIENT Connected" send deauthentication reason by 3 to force the WPA_SUPPLICANT to directly change * virtual interface to station*/ - if ((pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->vif[1].wilc_netdev)) { + if ((pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->vif[1].ndev)) { pstrDisconnectNotifInfo->u16reason = 3; } /*Incase "P2P CLIENT during connection(not connected)" send deauthentication reason by 1 to force the WPA_SUPPLICANT * to scan again and retry the connection*/ - else if ((!pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->vif[1].wilc_netdev)) { + else if ((!pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->vif[1].ndev)) { pstrDisconnectNotifInfo->u16reason = 1; } cfg80211_disconnected(dev, pstrDisconnectNotifInfo->u16reason, pstrDisconnectNotifInfo->ie, @@ -1255,7 +1255,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } /*save keys only on interface 0 (wifi interface)*/ - if (!g_gtk_keys_saved && netdev == g_linux_wlan->vif[0].wilc_netdev) { + if (!g_gtk_keys_saved && netdev == g_linux_wlan->vif[0].ndev) { g_add_gtk_key_params.key_idx = key_index; g_add_gtk_key_params.pairwise = pairwise; if (!mac_addr) { @@ -1291,7 +1291,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } /*save keys only on interface 0 (wifi interface)*/ - if (!g_ptk_keys_saved && netdev == g_linux_wlan->vif[0].wilc_netdev) { + if (!g_ptk_keys_saved && netdev == g_linux_wlan->vif[0].ndev) { g_add_ptk_key_params.key_idx = key_index; g_add_ptk_key_params.pairwise = pairwise; if (!mac_addr) { @@ -1356,7 +1356,7 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, priv = wiphy_priv(wiphy); /*delete saved keys, if any*/ - if (netdev == g_linux_wlan->vif[0].wilc_netdev) { + if (netdev == g_linux_wlan->vif[0].ndev) { g_ptk_keys_saved = false; g_gtk_keys_saved = false; g_wep_keys_saved = false; @@ -2612,15 +2612,15 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CFG80211_DBG, "gtk %x %x %x\n", g_key_gtk_params.key[0], g_key_gtk_params.key[1], g_key_gtk_params.key[2]); - add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].ndev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].ndev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, @@ -2693,15 +2693,15 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CFG80211_DBG, "gtk %x %x %x\n", g_key_gtk_params.key[0], g_key_gtk_params.key[1], g_key_gtk_params.key[2]); - add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].ndev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].ndev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, @@ -2810,15 +2810,15 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, g_key_gtk_params.key[1], g_key_gtk_params.key[2], g_key_gtk_params.cipher); - add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].ndev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->vif[0].wilc_netdev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].wilc_netdev, + add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, + g_linux_wlan->vif[0].ndev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 521d3cbe50fb..429b6544107f 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -152,7 +152,7 @@ struct wilc_vif { u8 src_addr[ETH_ALEN]; u8 bssid[ETH_ALEN]; struct host_if_drv *hif_drv; - struct net_device *wilc_netdev; + struct net_device *ndev; }; struct wilc { From 4875c499dc9b69f64c849677b55f0fc02a461a49 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:52 +0900 Subject: [PATCH 2016/2431] staging: wilc1000: move clean up codes into wl_wlan_cleanup function This patch moves clean up codes from exit_wilc_driver into the wl_wlan_cleanup newly introduced in this patch. In addition, it is called by linux_sdio_remove function. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 95 ++++++++----------- drivers/staging/wilc1000/linux_wlan_sdio.c | 5 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 43 insertions(+), 59 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 41a2f0928604..74b7cc0ea9d2 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1696,6 +1696,47 @@ void WILC_WFI_mgmt_rx(u8 *buff, u32 size) WILC_WFI_p2p_rx(g_linux_wlan->vif[1].ndev, buff, size); } +void wl_wlan_cleanup(void) +{ + int i = 0; + perInterface_wlan_t *nic[NUM_CONCURRENT_IFC]; + + if (g_linux_wlan && + (g_linux_wlan->vif[0].ndev || g_linux_wlan->vif[1].ndev)) { + unregister_inetaddr_notifier(&g_dev_notifier); + + for (i = 0; i < NUM_CONCURRENT_IFC; i++) + nic[i] = netdev_priv(g_linux_wlan->vif[i].ndev); + } + + if (g_linux_wlan && g_linux_wlan->wilc_firmware) + release_firmware(g_linux_wlan->wilc_firmware); + + if (g_linux_wlan && + (g_linux_wlan->vif[0].ndev || g_linux_wlan->vif[1].ndev)) { + linux_wlan_lock_timeout(&close_exit_sync, 12 * 1000); + + for (i = 0; i < NUM_CONCURRENT_IFC; i++) + if (g_linux_wlan->vif[i].ndev) + if (nic[i]->mac_opened) + mac_close(g_linux_wlan->vif[i].ndev); + + for (i = 0; i < NUM_CONCURRENT_IFC; i++) { + unregister_netdev(g_linux_wlan->vif[i].ndev); + wilc_free_wiphy(g_linux_wlan->vif[i].ndev); + free_netdev(g_linux_wlan->vif[i].ndev); + } + } + + kfree(g_linux_wlan); + +#if defined(WILC_DEBUGFS) + wilc_debugfs_remove(); +#endif + linux_wlan_device_detection(0); + linux_wlan_device_power(0); +} + int wilc_netdev_init(void) { @@ -1828,49 +1869,6 @@ late_initcall(init_wilc_driver); static void __exit exit_wilc_driver(void) { - int i = 0; - perInterface_wlan_t *nic[NUM_CONCURRENT_IFC] = {NULL,}; - #define CLOSE_TIMEOUT (12 * 1000) - - if ((g_linux_wlan != NULL) && (((g_linux_wlan->vif[0].ndev) != NULL) - || ((g_linux_wlan->vif[1].ndev) != NULL))) { - unregister_inetaddr_notifier(&g_dev_notifier); - - for (i = 0; i < NUM_CONCURRENT_IFC; i++) - nic[i] = netdev_priv(g_linux_wlan->vif[i].ndev); - } - - if ((g_linux_wlan != NULL) && g_linux_wlan->wilc_firmware != NULL) { - release_firmware(g_linux_wlan->wilc_firmware); - g_linux_wlan->wilc_firmware = NULL; - } - - if ((g_linux_wlan != NULL) && (((g_linux_wlan->vif[0].ndev) != NULL) - || ((g_linux_wlan->vif[1].ndev) != NULL))) { - PRINT_D(INIT_DBG, "Waiting for mac_close ....\n"); - - if (linux_wlan_lock_timeout(&close_exit_sync, CLOSE_TIMEOUT) < 0) - PRINT_D(INIT_DBG, "Closed TimedOUT\n"); - else - PRINT_D(INIT_DBG, "mac_closed\n"); - - for (i = 0; i < NUM_CONCURRENT_IFC; i++) { - /* close all opened interfaces */ - if (g_linux_wlan->vif[i].ndev != NULL) { - if (nic[i]->mac_opened) - mac_close(g_linux_wlan->vif[i].ndev); - } - } - for (i = 0; i < NUM_CONCURRENT_IFC; i++) { - PRINT_D(INIT_DBG, "Unregistering netdev %p\n", g_linux_wlan->vif[i].ndev); - unregister_netdev(g_linux_wlan->vif[i].ndev); - PRINT_D(INIT_DBG, "Freeing Wiphy...\n"); - wilc_free_wiphy(g_linux_wlan->vif[i].ndev); - PRINT_D(INIT_DBG, "Freeing netdev...\n"); - free_netdev(g_linux_wlan->vif[i].ndev); - } - } - #ifndef WILC_SDIO PRINT_D(INIT_DBG, "SPI unregsiter...\n"); spi_unregister_driver(&wilc_bus); @@ -1878,17 +1876,6 @@ static void __exit exit_wilc_driver(void) PRINT_D(INIT_DBG, "SDIO unregsiter...\n"); sdio_unregister_driver(&wilc_bus); #endif - - kfree(g_linux_wlan); - g_linux_wlan = NULL; - printk("Module_exit Done.\n"); - -#if defined(WILC_DEBUGFS) - wilc_debugfs_remove(); -#endif - - linux_wlan_device_detection(0); - linux_wlan_device_power(0); } module_exit(exit_wilc_driver); diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index ebacd297abca..e5764fc19b6f 100644 --- a/drivers/staging/wilc1000/linux_wlan_sdio.c +++ b/drivers/staging/wilc1000/linux_wlan_sdio.c @@ -136,10 +136,7 @@ static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id static void linux_sdio_remove(struct sdio_func *func) { - /** - * TODO - **/ - + wl_wlan_cleanup(); } struct sdio_driver wilc_bus = { diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 429b6544107f..b410424beeb7 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -213,5 +213,5 @@ void linux_wlan_mac_indicate(int flag); void linux_wlan_rx_complete(void); void linux_wlan_dbg(u8 *buff); int linux_wlan_lock_timeout(void *vp, u32 timeout); - +void wl_wlan_cleanup(void); #endif From 8b8ad7bc90bca63d6bc00b57af1a5f94c1897e12 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:53 +0900 Subject: [PATCH 2017/2431] staging: wilc1000: rename wilc_firmware in the struct wilc This patch renames wilc_firmware in the struct wilc to the firmware. In addition, null assignments to the wl->firmware after release_firmware are removed because it is not necessary. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 15 +++++++-------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 74b7cc0ea9d2..16b1d80775e5 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -537,7 +537,7 @@ int linux_wlan_get_firmware(perInterface_wlan_t *p_nic) goto _fail_; } #endif - g_linux_wlan->wilc_firmware = wilc_firmware; + g_linux_wlan->firmware = wilc_firmware; _fail_: @@ -594,7 +594,7 @@ static int linux_wlan_firmware_download(struct wilc *p_nic) int ret = 0; - if (g_linux_wlan->wilc_firmware == NULL) { + if (!g_linux_wlan->firmware) { PRINT_ER("Firmware buffer is NULL\n"); ret = -ENOBUFS; goto _FAIL_; @@ -603,16 +603,15 @@ static int linux_wlan_firmware_download(struct wilc *p_nic) * do the firmware download **/ PRINT_D(INIT_DBG, "Downloading Firmware ...\n"); - ret = wilc_wlan_firmware_download(g_linux_wlan->wilc_firmware->data, - g_linux_wlan->wilc_firmware->size); + ret = wilc_wlan_firmware_download(g_linux_wlan->firmware->data, + g_linux_wlan->firmware->size); if (ret < 0) goto _FAIL_; /* Freeing FW buffer */ PRINT_D(INIT_DBG, "Freeing FW buffer ...\n"); PRINT_D(INIT_DBG, "Releasing firmware\n"); - release_firmware(g_linux_wlan->wilc_firmware); - g_linux_wlan->wilc_firmware = NULL; + release_firmware(g_linux_wlan->firmware); PRINT_D(INIT_DBG, "Download Succeeded\n"); @@ -1709,8 +1708,8 @@ void wl_wlan_cleanup(void) nic[i] = netdev_priv(g_linux_wlan->vif[i].ndev); } - if (g_linux_wlan && g_linux_wlan->wilc_firmware) - release_firmware(g_linux_wlan->wilc_firmware); + if (g_linux_wlan && g_linux_wlan->firmware) + release_firmware(g_linux_wlan->firmware); if (g_linux_wlan && (g_linux_wlan->vif[0].ndev || g_linux_wlan->vif[1].ndev)) { diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index b410424beeb7..74eb7b695d13 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -182,7 +182,7 @@ struct wilc { unsigned char eth_src_address[NUM_CONCURRENT_IFC][6]; - const struct firmware *wilc_firmware; + const struct firmware *firmware; #ifdef WILC_SDIO struct sdio_func *wilc_sdio_func; From b46d68825c2d3af70ad18b53dfed6516e393b7fa Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:54 +0900 Subject: [PATCH 2018/2431] staging: wilc1000: remove COMPLEMENT_BOOT This patch removes a preprocessor definition, COMPLEMENT_BOOT which is not used anymore. This is just workaround to avoid weird issue, which is that 11b core is not ready after the power is givin to the chip. However, this issue happened only in the unstable hardware a long time ago and no more seen. In addition, this patch removes _fail_threads_ statement to avoid the build warning after removing COMPLEMENT_BOOT conditionals. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 132 ++------------------- drivers/staging/wilc1000/linux_wlan_sdio.c | 9 -- drivers/staging/wilc1000/wilc_wlan.c | 18 --- 3 files changed, 8 insertions(+), 151 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 16b1d80775e5..3cad5b633e16 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -545,10 +545,6 @@ _fail_: } -#ifdef COMPLEMENT_BOOT -int repeat_power_cycle(perInterface_wlan_t *nic); -#endif - static int linux_wlan_start_firmware(perInterface_wlan_t *nic) { @@ -565,18 +561,6 @@ static int linux_wlan_start_firmware(perInterface_wlan_t *nic) PRINT_D(INIT_DBG, "Waiting for Firmware to get ready ...\n"); ret = linux_wlan_lock_timeout(&g_linux_wlan->sync_event, 5000); if (ret) { -#ifdef COMPLEMENT_BOOT - static int timeout = 5; - - if (timeout--) { - PRINT_D(INIT_DBG, "repeat power cycle[%d]", timeout); - ret = repeat_power_cycle(nic); - } else { - timeout = 5; - ret = -1; - goto _fail_; - } -#endif PRINT_D(INIT_DBG, "Firmware start timed out"); goto _fail_; } @@ -1038,97 +1022,6 @@ static void wlan_deinitialize_threads(struct wilc *nic) } } -#ifdef COMPLEMENT_BOOT - -extern volatile int probe; -extern u8 core_11b_ready(void); - -#define READY_CHECK_THRESHOLD 30 -extern void wilc_wlan_global_reset(void); -u8 wilc1000_prepare_11b_core(wilc_wlan_inp_t *nwi, struct wilc *nic) -{ - u8 trials = 0; - - while ((core_11b_ready() && (READY_CHECK_THRESHOLD > (trials++)))) { - PRINT_D(INIT_DBG, "11b core not ready yet: %u\n", trials); - wilc_wlan_cleanup(); - wilc_wlan_global_reset(); - sdio_unregister_driver(&wilc_bus); - - linux_wlan_device_detection(0); - - mdelay(100); - - linux_wlan_device_detection(1); - - sdio_register_driver(&wilc_bus); - - while (!probe) - msleep(100); - probe = 0; - g_linux_wlan->wilc_sdio_func = local_sdio_func; - linux_to_wlan(nwi, nic); - wilc_wlan_init(nwi); - } - - if (READY_CHECK_THRESHOLD <= trials) - return 1; - else - return 0; - -} - -int repeat_power_cycle(perInterface_wlan_t *nic) -{ - int ret = 0; - wilc_wlan_inp_t nwi; - - sdio_unregister_driver(&wilc_bus); - - linux_wlan_device_detection(0); - linux_wlan_device_power(0); - msleep(100); - linux_wlan_device_power(1); - msleep(80); - linux_wlan_device_detection(1); - msleep(20); - - sdio_register_driver(&wilc_bus); - - /* msleep(1000); */ - while (!probe) - msleep(100); - probe = 0; - g_linux_wlan->wilc_sdio_func = local_sdio_func; - linux_to_wlan(&nwi, g_linux_wlan); - ret = wilc_wlan_init(&nwi); - - g_linux_wlan->mac_status = WILC_MAC_STATUS_INIT; - #if (defined WILC_SDIO) && (!defined WILC_SDIO_IRQ_GPIO) - enable_sdio_interrupt(); - #endif - - if (linux_wlan_get_firmware(nic)) { - PRINT_ER("Can't get firmware\n"); - ret = -1; - goto __fail__; - } - - /*Download firmware*/ - ret = linux_wlan_firmware_download(g_linux_wlan); - if (ret < 0) { - PRINT_ER("Failed to download firmware\n"); - goto __fail__; - } - /* Start firmware*/ - ret = linux_wlan_start_firmware(nic); - if (ret < 0) - PRINT_ER("Failed to start firmware\n"); -__fail__: - return ret; -} -#endif - int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) { wilc_wlan_inp_t nwi; @@ -1150,6 +1043,14 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) goto _fail_locks_; } +#if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) + if (init_irq(g_linux_wlan)) { + PRINT_ER("couldn't initialize IRQ\n"); + ret = -EIO; + goto _fail_locks_; + } +#endif + ret = wlan_initialize_threads(nic); if (ret < 0) { PRINT_ER("Initializing Threads FAILED\n"); @@ -1157,22 +1058,6 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) goto _fail_wilc_wlan_; } -#if (defined WILC_SDIO) && (defined COMPLEMENT_BOOT) - if (wilc1000_prepare_11b_core(&nwi, g_linux_wlan)) { - PRINT_ER("11b Core is not ready\n"); - ret = -EIO; - goto _fail_threads_; - } -#endif - -#if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) - if (init_irq(g_linux_wlan)) { - PRINT_ER("couldn't initialize IRQ\n"); - ret = -EIO; - goto _fail_threads_; - } -#endif - #if (defined WILC_SDIO) && (!defined WILC_SDIO_IRQ_GPIO) if (enable_sdio_interrupt()) { PRINT_ER("couldn't initialize IRQ\n"); @@ -1239,7 +1124,6 @@ _fail_irq_init_: deinit_irq(g_linux_wlan); #endif -_fail_threads_: wlan_deinitialize_threads(g_linux_wlan); _fail_wilc_wlan_: wilc_wlan_cleanup(); diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index e5764fc19b6f..1bd7f9b20ee7 100644 --- a/drivers/staging/wilc1000/linux_wlan_sdio.c +++ b/drivers/staging/wilc1000/linux_wlan_sdio.c @@ -110,19 +110,10 @@ int linux_sdio_cmd53(sdio_cmd53_t *cmd) return 1; } -volatile int probe; /* COMPLEMENT_BOOT */ static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id) { PRINT_D(INIT_DBG, "probe function\n"); -#ifdef COMPLEMENT_BOOT - if (local_sdio_func != NULL) { - local_sdio_func = func; - probe = 1; - PRINT_D(INIT_DBG, "local_sdio_func isn't NULL\n"); - return 0; - } -#endif PRINT_D(INIT_DBG, "Initializing netdev\n"); local_sdio_func = func; if (wilc_netdev_init()) { diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index c73164165323..67b0c52d97fa 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1919,24 +1919,6 @@ _fail_: return chipid; } -#ifdef COMPLEMENT_BOOT -u8 core_11b_ready(void) -{ - u32 reg_val; - - acquire_bus(ACQUIRE_ONLY); - g_wlan.hif_func.hif_write_reg(0x16082c, 1); - g_wlan.hif_func.hif_write_reg(0x161600, 0x90); - g_wlan.hif_func.hif_read_reg(0x161600, ®_val); - release_bus(RELEASE_ONLY); - - if (reg_val == 0x90) - return 0; - else - return 1; -} -#endif - int wilc_wlan_init(wilc_wlan_inp_t *inp) { From 75ce07d4a09e31a8d2c38bce95e92d12031e605a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:55 +0900 Subject: [PATCH 2019/2431] staging: wilc1000: introduce struct wilc_sdio for sdio data This patch introduces struct wilc_sdio for sdio driver data. The wilc_sdio is allocated and set as driver data when the sdio is probed and deallocated when the sdio is removed. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan_sdio.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index 1bd7f9b20ee7..9a45871e9093 100644 --- a/drivers/staging/wilc1000/linux_wlan_sdio.c +++ b/drivers/staging/wilc1000/linux_wlan_sdio.c @@ -21,6 +21,10 @@ #define MAX_SPEED (6 * 1000000) /* Max 50M */ #endif +struct wilc_sdio { + struct sdio_func *func; + struct wilc *wilc; +}; struct sdio_func *local_sdio_func; extern int wilc_netdev_init(void); @@ -112,14 +116,22 @@ int linux_sdio_cmd53(sdio_cmd53_t *cmd) static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id) { + struct wilc_sdio *wl_sdio; + PRINT_D(INIT_DBG, "probe function\n"); + wl_sdio = kzalloc(sizeof(struct wilc_sdio), GFP_KERNEL); + if (!wl_sdio) + return -ENOMEM; PRINT_D(INIT_DBG, "Initializing netdev\n"); local_sdio_func = func; if (wilc_netdev_init()) { PRINT_ER("Couldn't initialize netdev\n"); + kfree(wl_sdio); return -1; } + wl_sdio->func = func; + sdio_set_drvdata(func, wl_sdio); printk("Driver Initializing success\n"); return 0; @@ -127,7 +139,11 @@ static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id static void linux_sdio_remove(struct sdio_func *func) { + struct wilc_sdio *wl_sdio; + + wl_sdio = sdio_get_drvdata(func); wl_wlan_cleanup(); + kfree(wl_sdio); } struct sdio_driver wilc_bus = { From 12ba5416dc7702cc5bb6d8611d4c288302722c6a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:56 +0900 Subject: [PATCH 2020/2431] staging: wilc1000: assign pointer of g_linux_wlan to sdio device data This patch assigns wl pointer to sdio device data. The global variable g_linux_wlan will be removed finally. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 5 +++-- drivers/staging/wilc1000/linux_wlan_sdio.c | 5 +++-- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 3cad5b633e16..5701e58f7c4e 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1620,9 +1620,8 @@ void wl_wlan_cleanup(void) linux_wlan_device_power(0); } -int wilc_netdev_init(void) +int wilc_netdev_init(struct wilc **wilc) { - int i; perInterface_wlan_t *nic; struct net_device *ndev; @@ -1634,6 +1633,8 @@ int wilc_netdev_init(void) if (!g_linux_wlan) return -ENOMEM; + *wilc = g_linux_wlan; + register_inetaddr_notifier(&g_dev_notifier); for (i = 0; i < NUM_CONCURRENT_IFC; i++) { diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index 9a45871e9093..1f8d8743f376 100644 --- a/drivers/staging/wilc1000/linux_wlan_sdio.c +++ b/drivers/staging/wilc1000/linux_wlan_sdio.c @@ -27,7 +27,6 @@ struct wilc_sdio { }; struct sdio_func *local_sdio_func; -extern int wilc_netdev_init(void); extern void wilc_handle_isr(void); static unsigned int sdio_default_speed; @@ -117,6 +116,7 @@ int linux_sdio_cmd53(sdio_cmd53_t *cmd) static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id) { struct wilc_sdio *wl_sdio; + struct wilc *wilc; PRINT_D(INIT_DBG, "probe function\n"); wl_sdio = kzalloc(sizeof(struct wilc_sdio), GFP_KERNEL); @@ -125,12 +125,13 @@ static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id PRINT_D(INIT_DBG, "Initializing netdev\n"); local_sdio_func = func; - if (wilc_netdev_init()) { + if (wilc_netdev_init(&wilc)) { PRINT_ER("Couldn't initialize netdev\n"); kfree(wl_sdio); return -1; } wl_sdio->func = func; + wl_sdio->wilc = wilc; sdio_set_drvdata(func, wl_sdio); printk("Driver Initializing success\n"); diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 74eb7b695d13..e0c66bcdf88a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -214,4 +214,5 @@ void linux_wlan_rx_complete(void); void linux_wlan_dbg(u8 *buff); int linux_wlan_lock_timeout(void *vp, u32 timeout); void wl_wlan_cleanup(void); +int wilc_netdev_init(struct wilc **wilc); #endif From c0f52fbac74e4ab17014c1625a651689a96896bb Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 17:10:46 +0900 Subject: [PATCH 2021/2431] staging: wilc1000: fix the bug on copying bssid This patch reverts the commit, d79fd35b8c5d927695b48fa35aa586919818cce9. The WID_JOIN_REQ_EXTENDED among WIDs needs two parameters for the request to be sent to the firmware, which are the SA and the BSSID. For this case, both is the same bssid in the handle_connect function. So, it's required to be copied twice. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/host_interface.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 646e7e919674..4c7e1e4adc7d 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1127,6 +1127,10 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv, memcpy(pu8CurrByte, pstrHostIFconnectAttr->bssid, 6); pu8CurrByte += 6; + if (pstrHostIFconnectAttr->bssid) + memcpy(pu8CurrByte, pstrHostIFconnectAttr->bssid, 6); + pu8CurrByte += 6; + *(pu8CurrByte++) = (ptstrJoinBssParam->beacon_period) & 0xFF; *(pu8CurrByte++) = ((ptstrJoinBssParam->beacon_period) >> 8) & 0xFF; PRINT_D(HOSTINF_DBG, "* Beacon Period %d*\n", (*(pu8CurrByte - 2) | ((*(pu8CurrByte - 1)) << 8))); From 38b3001de95ad5a52cf32ebb9c7fe1fd2b16c396 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:51 +0900 Subject: [PATCH 2022/2431] staging: wilc1000: add wilc to netdev private data structure This patch add wilc to struct perInterface_wlan_t which is netdev private data to access wilc via netdev_priv function. Assign wilc to nic->wilc. The global variable g_linux_wlan will be replaced with netdev private data member wilc step by step. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 1 + drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5701e58f7c4e..8fa6b7c54f5a 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1662,6 +1662,7 @@ int wilc_netdev_init(struct wilc **wilc) nic->u8IfIdx = g_linux_wlan->vif_num; nic->wilc_netdev = ndev; + nic->wilc = *wilc; g_linux_wlan->vif[g_linux_wlan->vif_num].ndev = ndev; g_linux_wlan->vif_num++; ndev->netdev_ops = &wilc_netdev_ops; diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index e0c66bcdf88a..40a44f8318eb 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -199,7 +199,7 @@ typedef struct { struct_frame_reg g_struct_frame_reg[num_reg_frame]; struct net_device *wilc_netdev; struct net_device_stats netstats; - + struct wilc *wilc; } perInterface_wlan_t; struct WILC_WFI_mon_priv { From 0fa683b66524805c25b5fec3eb79d963e2f4485d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:52 +0900 Subject: [PATCH 2023/2431] staging: wilc1000: wilc1000_wlan_init: use netdev private wilc This patch use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 8fa6b7c54f5a..39341a8c95cd 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1027,14 +1027,15 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) wilc_wlan_inp_t nwi; perInterface_wlan_t *nic = p_nic; int ret = 0; + struct wilc *wl = nic->wilc; - if (!g_linux_wlan->initialized) { - g_linux_wlan->mac_status = WILC_MAC_STATUS_INIT; - g_linux_wlan->close = 0; + if (!wl->initialized) { + wl->mac_status = WILC_MAC_STATUS_INIT; + wl->close = 0; - wlan_init_locks(g_linux_wlan); + wlan_init_locks(wl); - linux_to_wlan(&nwi, g_linux_wlan); + linux_to_wlan(&nwi, wl); ret = wilc_wlan_init(&nwi); if (ret < 0) { @@ -1044,7 +1045,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) } #if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) - if (init_irq(g_linux_wlan)) { + if (init_irq(wl)) { PRINT_ER("couldn't initialize IRQ\n"); ret = -EIO; goto _fail_locks_; @@ -1073,7 +1074,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) } /*Download firmware*/ - ret = linux_wlan_firmware_download(g_linux_wlan); + ret = linux_wlan_firmware_download(wl); if (ret < 0) { PRINT_ER("Failed to download firmware\n"); ret = -EIO; @@ -1101,7 +1102,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) PRINT_D(INIT_DBG, "***** Firmware Ver = %s *******\n", Firmware_ver); } /* Initialize firmware with default configuration */ - ret = linux_wlan_init_test_config(dev, g_linux_wlan); + ret = linux_wlan_init_test_config(dev, wl); if (ret < 0) { PRINT_ER("Failed to configure firmware\n"); @@ -1109,7 +1110,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) goto _fail_fw_start_; } - g_linux_wlan->initialized = true; + wl->initialized = true; return 0; /*success*/ _fail_fw_start_: @@ -1121,14 +1122,14 @@ _fail_irq_enable_: _fail_irq_init_: #endif #if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) - deinit_irq(g_linux_wlan); + deinit_irq(wl); #endif - wlan_deinitialize_threads(g_linux_wlan); + wlan_deinitialize_threads(wl); _fail_wilc_wlan_: wilc_wlan_cleanup(); _fail_locks_: - wlan_deinit_locks(g_linux_wlan); + wlan_deinit_locks(wl); PRINT_ER("WLAN Iinitialization FAILED\n"); } else { PRINT_D(INIT_DBG, "wilc1000 already initialized\n"); From 38afb390497a0c5f72e936ced1d29ef99a1e9131 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:53 +0900 Subject: [PATCH 2024/2431] staging: wilc1000: wlan_init_locks: change parameter and use wilc This patch changes function parameter type wilc with net_device and use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 39341a8c95cd..5fcbfac63e28 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -920,23 +920,28 @@ void wilc1000_wlan_deinit(struct wilc *nic) } } -int wlan_init_locks(struct wilc *p_nic) +int wlan_init_locks(struct net_device *dev) { + perInterface_wlan_t *nic; + struct wilc *wl; + + nic = netdev_priv(dev); + wl = nic->wilc; PRINT_D(INIT_DBG, "Initializing Locks ...\n"); - mutex_init(&g_linux_wlan->hif_cs); - mutex_init(&g_linux_wlan->rxq_cs); + mutex_init(&wl->hif_cs); + mutex_init(&wl->rxq_cs); - spin_lock_init(&g_linux_wlan->txq_spinlock); - sema_init(&g_linux_wlan->txq_add_to_head_cs, 1); + spin_lock_init(&wl->txq_spinlock); + sema_init(&wl->txq_add_to_head_cs, 1); - sema_init(&g_linux_wlan->txq_event, 0); + sema_init(&wl->txq_event, 0); - sema_init(&g_linux_wlan->cfg_event, 0); - sema_init(&g_linux_wlan->sync_event, 0); + sema_init(&wl->cfg_event, 0); + sema_init(&wl->sync_event, 0); - sema_init(&g_linux_wlan->txq_thread_started, 0); + sema_init(&wl->txq_thread_started, 0); return 0; } @@ -1033,7 +1038,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) wl->mac_status = WILC_MAC_STATUS_INIT; wl->close = 0; - wlan_init_locks(wl); + wlan_init_locks(dev); linux_to_wlan(&nwi, wl); From f3c1366ebbdf54e85810951e8efc9fcf9e430b99 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:54 +0900 Subject: [PATCH 2025/2431] staging: wilc1000: mac_open: use netdev private wilc Use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5fcbfac63e28..ebedffa8f645 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1167,9 +1167,13 @@ int mac_open(struct net_device *ndev) int ret = 0; int i = 0; struct wilc_priv *priv; + struct wilc *wl; + + nic = netdev_priv(ndev); + wl = nic->wilc; #ifdef WILC_SPI - if (!g_linux_wlan || !g_linux_wlan->wilc_spidev) { + if (!wl|| !wl->wilc_spidev) { netdev_err(ndev, "wilc1000: SPI device not ready\n"); return -ENODEV; } @@ -1200,16 +1204,16 @@ int mac_open(struct net_device *ndev) PRINT_D(INIT_DBG, "Mac address: %pM\n", mac_add); /* loop through the NUM of supported devices and set the MAC address */ - for (i = 0; i < g_linux_wlan->vif_num; i++) { - if (ndev == g_linux_wlan->vif[i].ndev) { - memcpy(g_linux_wlan->vif[i].src_addr, mac_add, ETH_ALEN); - g_linux_wlan->vif[i].hif_drv = priv->hWILCWFIDrv; + for (i = 0; i < wl->vif_num; i++) { + if (ndev == wl->vif[i].ndev) { + memcpy(wl->vif[i].src_addr, mac_add, ETH_ALEN); + wl->vif[i].hif_drv = priv->hWILCWFIDrv; break; } } /* TODO: get MAC address whenever the source is EPROM - hardcoded and copy it to ndev*/ - memcpy(ndev->dev_addr, g_linux_wlan->vif[i].src_addr, ETH_ALEN); + memcpy(ndev->dev_addr, wl->vif[i].src_addr, ETH_ALEN); if (!is_valid_ether_addr(ndev->dev_addr)) { PRINT_ER("Error: Wrong MAC address\n"); @@ -1222,13 +1226,13 @@ int mac_open(struct net_device *ndev) wilc_mgmt_frame_register(nic->wilc_netdev->ieee80211_ptr->wiphy, nic->wilc_netdev->ieee80211_ptr, nic->g_struct_frame_reg[1].frame_type, nic->g_struct_frame_reg[1].reg); netif_wake_queue(ndev); - g_linux_wlan->open_ifcs++; + wl->open_ifcs++; nic->mac_opened = 1; return 0; _err_: wilc_deinit_host_int(ndev); - wilc1000_wlan_deinit(g_linux_wlan); + wilc1000_wlan_deinit(wl); return ret; } From ca64ad6e6436ed69aa6b79eaf39ff833986bcea8 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:55 +0900 Subject: [PATCH 2026/2431] staging: wilc1000: mac_close: use netdev private wilc instead of g_linux_wlan Use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index ebedffa8f645..93475aa57c8e 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1383,6 +1383,7 @@ int mac_close(struct net_device *ndev) struct wilc_priv *priv; perInterface_wlan_t *nic; struct host_if_drv *pstrWFIDrv; + struct wilc *wl; nic = netdev_priv(ndev); @@ -1392,6 +1393,7 @@ int mac_close(struct net_device *ndev) } priv = wiphy_priv(nic->wilc_netdev->ieee80211_ptr->wiphy); + wl = nic->wilc; if (priv == NULL) { PRINT_ER("priv = NULL\n"); @@ -1402,8 +1404,8 @@ int mac_close(struct net_device *ndev) PRINT_D(GENERIC_DBG, "Mac close\n"); - if (g_linux_wlan == NULL) { - PRINT_ER("g_linux_wlan = NULL\n"); + if (!wl) { + PRINT_ER("wl = NULL\n"); return 0; } @@ -1412,8 +1414,8 @@ int mac_close(struct net_device *ndev) return 0; } - if ((g_linux_wlan->open_ifcs) > 0) { - g_linux_wlan->open_ifcs--; + if ((wl->open_ifcs) > 0) { + wl->open_ifcs--; } else { PRINT_ER("ERROR: MAC close called while number of opened interfaces is zero\n"); return 0; @@ -1426,10 +1428,10 @@ int mac_close(struct net_device *ndev) wilc_deinit_host_int(nic->wilc_netdev); } - if (g_linux_wlan->open_ifcs == 0) { + if (wl->open_ifcs == 0) { PRINT_D(GENERIC_DBG, "Deinitializing wilc1000\n"); - g_linux_wlan->close = 1; - wilc1000_wlan_deinit(g_linux_wlan); + wl->close = 1; + wilc1000_wlan_deinit(wl); WILC_WFI_deinit_mon_interface(); } From 299382cf437d5115f8c132dd0bd87aa78ee146b7 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:56 +0900 Subject: [PATCH 2027/2431] staging: wilc1000: chage_virtual_intf: use netdev private wilc Use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 85 ++++++++++--------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 264fcb9d9dfa..422d4624b9cd 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2534,9 +2534,11 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, u8 interface_type; u16 TID = 0; u8 i; + struct wilc *wl; nic = netdev_priv(dev); priv = wiphy_priv(wiphy); + wl = nic->wilc; PRINT_D(HOSTAPD_DBG, "In Change virtual interface function\n"); PRINT_D(HOSTAPD_DBG, "Wireless interface name =%s\n", dev->name); @@ -2571,30 +2573,31 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, interface_type = nic->iftype; nic->iftype = STATION_MODE; - if (g_linux_wlan->initialized) { - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].bssid, TID); + if (wl->initialized) { + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, + wl->vif[0].bssid, TID); /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); /*Eliminate host interface blocking state*/ - up(&g_linux_wlan->cfg_event); + up(&wl->cfg_event); - wilc1000_wlan_deinit(g_linux_wlan); + wilc1000_wlan_deinit(wl); wilc1000_wlan_init(dev, nic); g_wilc_initialized = 1; nic->iftype = interface_type; /*Setting interface 1 drv handler and mac address in newly downloaded FW*/ - host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].hif_drv); - host_int_set_MacAddress(g_linux_wlan->vif[0].hif_drv, - g_linux_wlan->vif[0].src_addr); + host_int_set_wfi_drv_handler(wl->vif[0].hif_drv); + host_int_set_MacAddress(wl->vif[0].hif_drv, + wl->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, STATION_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].hif_drv, + host_int_set_WEPDefaultKeyID(wl->vif[0].hif_drv, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].hif_drv, + host_int_add_wep_key_bss_sta(wl->vif[0].hif_drv, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); @@ -2612,22 +2615,22 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CFG80211_DBG, "gtk %x %x %x\n", g_key_gtk_params.key[0], g_key_gtk_params.key[1], g_key_gtk_params.key[2]); - add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].ndev, + add_key(wl->vif[0].ndev->ieee80211_ptr->wiphy, + wl->vif[0].ndev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].ndev, + add_key(wl->vif[0].ndev->ieee80211_ptr->wiphy, + wl->vif[0].ndev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, (struct key_params *)(&g_key_gtk_params)); } - if (g_linux_wlan->initialized) { + if (wl->initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, nic->g_struct_frame_reg[i].reg); @@ -2648,7 +2651,8 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, connecting = 0; PRINT_D(HOSTAPD_DBG, "Interface type = NL80211_IFTYPE_P2P_CLIENT\n"); - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].bssid, TID); + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, + wl->vif[0].bssid, TID); dev->ieee80211_ptr->iftype = type; priv->wdev->iftype = type; @@ -2658,24 +2662,24 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, nic->iftype = CLIENT_MODE; - if (g_linux_wlan->initialized) { + if (wl->initialized) { /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); - wilc1000_wlan_deinit(g_linux_wlan); + wilc1000_wlan_deinit(wl); wilc1000_wlan_init(dev, nic); g_wilc_initialized = 1; - host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].hif_drv); - host_int_set_MacAddress(g_linux_wlan->vif[0].hif_drv, - g_linux_wlan->vif[0].src_addr); + host_int_set_wfi_drv_handler(wl->vif[0].hif_drv); + host_int_set_MacAddress(wl->vif[0].hif_drv, + wl->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, STATION_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].hif_drv, + host_int_set_WEPDefaultKeyID(wl->vif[0].hif_drv, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].hif_drv, + host_int_add_wep_key_bss_sta(wl->vif[0].hif_drv, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); @@ -2693,15 +2697,15 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(CFG80211_DBG, "gtk %x %x %x\n", g_key_gtk_params.key[0], g_key_gtk_params.key[1], g_key_gtk_params.key[2]); - add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].ndev, + add_key(wl->vif[0].ndev->ieee80211_ptr->wiphy, + wl->vif[0].ndev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].ndev, + add_key(wl->vif[0].ndev->ieee80211_ptr->wiphy, + wl->vif[0].ndev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, @@ -2712,7 +2716,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, refresh_scan(priv, 1, true); Set_machw_change_vir_if(false); - if (g_linux_wlan->initialized) { + if (wl->initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, nic->g_struct_frame_reg[i].reg); @@ -2735,7 +2739,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, PRINT_D(HOSTAPD_DBG, "Downloading AP firmware\n"); linux_wlan_get_firmware(nic); /*If wilc is running, then close-open to actually get new firmware running (serves P2P)*/ - if (g_linux_wlan->initialized) { + if (wl->initialized) { nic->iftype = AP_MODE; mac_close(dev); mac_open(dev); @@ -2760,7 +2764,8 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*sent before downloading new FW. This is because it blocks on*/ /*hWaitResponse semaphore, which allows previous config*/ /*packets to actually take action on old FW*/ - host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, g_linux_wlan->vif[0].bssid, TID); + host_int_del_All_Rx_BASession(priv->hWILCWFIDrv, + wl->vif[0].bssid, TID); bEnablePS = false; PRINT_D(HOSTAPD_DBG, "Interface type = NL80211_IFTYPE_GO\n"); dev->ieee80211_ptr->iftype = type; @@ -2775,22 +2780,22 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); - wilc1000_wlan_deinit(g_linux_wlan); + wilc1000_wlan_deinit(wl); wilc1000_wlan_init(dev, nic); g_wilc_initialized = 1; /*Setting interface 1 drv handler and mac address in newly downloaded FW*/ - host_int_set_wfi_drv_handler(g_linux_wlan->vif[0].hif_drv); - host_int_set_MacAddress(g_linux_wlan->vif[0].hif_drv, - g_linux_wlan->vif[0].src_addr); + host_int_set_wfi_drv_handler(wl->vif[0].hif_drv); + host_int_set_MacAddress(wl->vif[0].hif_drv, + wl->vif[0].src_addr); host_int_set_operation_mode(priv->hWILCWFIDrv, AP_MODE); /*Add saved WEP keys, if any*/ if (g_wep_keys_saved) { - host_int_set_WEPDefaultKeyID(g_linux_wlan->vif[0].hif_drv, + host_int_set_WEPDefaultKeyID(wl->vif[0].hif_drv, g_key_wep_params.key_idx); - host_int_add_wep_key_bss_sta(g_linux_wlan->vif[0].hif_drv, + host_int_add_wep_key_bss_sta(wl->vif[0].hif_drv, g_key_wep_params.key, g_key_wep_params.key_len, g_key_wep_params.key_idx); @@ -2810,22 +2815,22 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, g_key_gtk_params.key[1], g_key_gtk_params.key[2], g_key_gtk_params.cipher); - add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].ndev, + add_key(wl->vif[0].ndev->ieee80211_ptr->wiphy, + wl->vif[0].ndev, g_add_ptk_key_params.key_idx, g_add_ptk_key_params.pairwise, g_add_ptk_key_params.mac_addr, (struct key_params *)(&g_key_ptk_params)); - add_key(g_linux_wlan->vif[0].ndev->ieee80211_ptr->wiphy, - g_linux_wlan->vif[0].ndev, + add_key(wl->vif[0].ndev->ieee80211_ptr->wiphy, + wl->vif[0].ndev, g_add_gtk_key_params.key_idx, g_add_gtk_key_params.pairwise, g_add_gtk_key_params.mac_addr, (struct key_params *)(&g_key_gtk_params)); } - if (g_linux_wlan->initialized) { + if (wl->initialized) { for (i = 0; i < num_reg_frame; i++) { PRINT_D(INIT_DBG, "Frame registering Type: %x - Reg: %d\n", nic->g_struct_frame_reg[i].frame_type, nic->g_struct_frame_reg[i].reg); From 53dc0cfea3cfec470418730df7abfef401f75a4d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:57 +0900 Subject: [PATCH 2028/2431] staging: wilc1000: wilc1000_wlan_deinit: change argument and use wilc This patch changes function argument wilc with net_device and use nic->wilc instead of global variable g_linux_wlan. The null check codes should be placed before it is used so move it. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 45 ++++++++++--------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 7 ++- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 93475aa57c8e..2c4673c32734 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -49,7 +49,6 @@ extern bool g_obtainingIP; extern u16 Set_machw_change_vir_if(bool bValue); extern void resolve_disconnect_aberration(void *drvHandler); extern u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN]; -void wilc1000_wlan_deinit(struct wilc *nic); extern struct timer_list hDuringIpTimer; static int linux_wlan_device_power(int on_off) @@ -860,15 +859,21 @@ _fail_: } /**************************/ -void wilc1000_wlan_deinit(struct wilc *nic) +void wilc1000_wlan_deinit(struct net_device *dev) { - if (g_linux_wlan->initialized) { - printk("Deinitializing wilc1000 ...\n"); + perInterface_wlan_t *nic; + struct wilc *wl; - if (nic == NULL) { - PRINT_ER("nic is NULL\n"); - return; - } + nic = netdev_priv(dev); + wl = nic->wilc; + + if (!wl) { + netdev_err(dev, "wl is NULL\n"); + return; + } + + if (wl->initialized) { + netdev_info(dev, "Deinitializing wilc1000...\n"); #if defined(PLAT_ALLWINNER_A20) || defined(PLAT_ALLWINNER_A23) || defined(PLAT_ALLWINNER_A31) /* johnny : remove */ @@ -879,18 +884,18 @@ void wilc1000_wlan_deinit(struct wilc *nic) PRINT_D(INIT_DBG, "Disabling IRQ\n"); #ifdef WILC_SDIO - mutex_lock(&g_linux_wlan->hif_cs); + mutex_lock(&wl->hif_cs); disable_sdio_interrupt(); - mutex_unlock(&g_linux_wlan->hif_cs); + mutex_unlock(&wl->hif_cs); #endif - if (&g_linux_wlan->txq_event != NULL) - up(&g_linux_wlan->txq_event); + if (&wl->txq_event != NULL) + up(&wl->txq_event); PRINT_D(INIT_DBG, "Deinitializing Threads\n"); - wlan_deinitialize_threads(nic); + wlan_deinitialize_threads(wl); PRINT_D(INIT_DBG, "Deinitializing IRQ\n"); - deinit_irq(g_linux_wlan); + deinit_irq(wl); wilc_wlan_stop(); @@ -900,18 +905,18 @@ void wilc1000_wlan_deinit(struct wilc *nic) #if defined(PLAT_ALLWINNER_A20) || defined(PLAT_ALLWINNER_A23) || defined(PLAT_ALLWINNER_A31) PRINT_D(INIT_DBG, "Disabling IRQ 2\n"); - mutex_lock(&g_linux_wlan->hif_cs); + mutex_lock(&wl->hif_cs); disable_sdio_interrupt(); - mutex_unlock(&g_linux_wlan->hif_cs); + mutex_unlock(&wl->hif_cs); #endif #endif /*De-Initialize locks*/ PRINT_D(INIT_DBG, "Deinitializing Locks\n"); - wlan_deinit_locks(g_linux_wlan); + wlan_deinit_locks(wl); /* announce that wilc1000 is not initialized */ - g_linux_wlan->initialized = false; + wl->initialized = false; PRINT_D(INIT_DBG, "wilc1000 deinitialization Done\n"); @@ -1232,7 +1237,7 @@ int mac_open(struct net_device *ndev) _err_: wilc_deinit_host_int(ndev); - wilc1000_wlan_deinit(wl); + wilc1000_wlan_deinit(ndev); return ret; } @@ -1431,7 +1436,7 @@ int mac_close(struct net_device *ndev) if (wl->open_ifcs == 0) { PRINT_D(GENERIC_DBG, "Deinitializing wilc1000\n"); wl->close = 1; - wilc1000_wlan_deinit(wl); + wilc1000_wlan_deinit(ndev); WILC_WFI_deinit_mon_interface(); } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 422d4624b9cd..33a082f6a74a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2523,7 +2523,6 @@ static int set_power_mgmt(struct wiphy *wiphy, struct net_device *dev, * @date 01 MAR 2012 * @version 1.0 */ -void wilc1000_wlan_deinit(struct wilc *nic); int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic); static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, @@ -2582,7 +2581,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /*Eliminate host interface blocking state*/ up(&wl->cfg_event); - wilc1000_wlan_deinit(wl); + wilc1000_wlan_deinit(dev); wilc1000_wlan_init(dev, nic); g_wilc_initialized = 1; nic->iftype = interface_type; @@ -2666,7 +2665,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); - wilc1000_wlan_deinit(wl); + wilc1000_wlan_deinit(dev); wilc1000_wlan_init(dev, nic); g_wilc_initialized = 1; @@ -2780,7 +2779,7 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev, /* ensure that the message Q is empty */ host_int_wait_msg_queue_idle(); - wilc1000_wlan_deinit(wl); + wilc1000_wlan_deinit(dev); wilc1000_wlan_init(dev, nic); g_wilc_initialized = 1; diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 40a44f8318eb..8aa335505fda 100644 --- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h +++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h @@ -215,4 +215,5 @@ void linux_wlan_dbg(u8 *buff); int linux_wlan_lock_timeout(void *vp, u32 timeout); void wl_wlan_cleanup(void); int wilc_netdev_init(struct wilc **wilc); +void wilc1000_wlan_deinit(struct net_device *dev); #endif From c1ec2c12a3f238a7a7a0397bfd164b596316968a Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:58 +0900 Subject: [PATCH 2029/2431] staging: wilc1000: CfgConnectResult: use netdev private wilc Use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 33a082f6a74a..153380490425 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -537,11 +537,15 @@ static void CfgConnectResult(enum conn_event enuConnDisconnEvent, struct net_device *dev; struct host_if_drv *pstrWFIDrv; u8 NullBssid[ETH_ALEN] = {0}; + struct wilc *wl; + perInterface_wlan_t *nic; connecting = 0; priv = (struct wilc_priv *)pUserVoid; dev = priv->dev; + nic = netdev_priv(dev); + wl = nic->wilc; pstrWFIDrv = (struct host_if_drv *)priv->hWILCWFIDrv; if (enuConnDisconnEvent == CONN_DISCONN_EVENT_CONN_RESP) { @@ -624,12 +628,12 @@ static void CfgConnectResult(enum conn_event enuConnDisconnEvent, u8WLANChannel = INVALID_CHANNEL; /*Incase "P2P CLIENT Connected" send deauthentication reason by 3 to force the WPA_SUPPLICANT to directly change * virtual interface to station*/ - if ((pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->vif[1].ndev)) { + if ((pstrWFIDrv->IFC_UP) && (dev == wl->vif[1].ndev)) { pstrDisconnectNotifInfo->u16reason = 3; } /*Incase "P2P CLIENT during connection(not connected)" send deauthentication reason by 1 to force the WPA_SUPPLICANT * to scan again and retry the connection*/ - else if ((!pstrWFIDrv->IFC_UP) && (dev == g_linux_wlan->vif[1].ndev)) { + else if ((!pstrWFIDrv->IFC_UP) && (dev == wl->vif[1].ndev)) { pstrDisconnectNotifInfo->u16reason = 1; } cfg80211_disconnected(dev, pstrDisconnectNotifInfo->u16reason, pstrDisconnectNotifInfo->ie, From 7646920087bc523b4ef1fa2b00cbbf3a6c0cc1c1 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:59 +0900 Subject: [PATCH 2030/2431] staging: wilc1000: add_key: use netdev private wilc instead of g_linux_wlan Use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 153380490425..8aea4b560b2e 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1086,8 +1086,12 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, u8 u8gmode = NO_ENCRYPT; u8 u8pmode = NO_ENCRYPT; enum AUTHTYPE tenuAuth_type = ANY; + struct wilc *wl; + perInterface_wlan_t *nic; priv = wiphy_priv(wiphy); + nic = netdev_priv(netdev); + wl = nic->wilc; PRINT_D(CFG80211_DBG, "Adding key with cipher suite = %x\n", params->cipher); @@ -1259,7 +1263,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } /*save keys only on interface 0 (wifi interface)*/ - if (!g_gtk_keys_saved && netdev == g_linux_wlan->vif[0].ndev) { + if (!g_gtk_keys_saved && netdev == wl->vif[0].ndev) { g_add_gtk_key_params.key_idx = key_index; g_add_gtk_key_params.pairwise = pairwise; if (!mac_addr) { @@ -1295,7 +1299,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } /*save keys only on interface 0 (wifi interface)*/ - if (!g_ptk_keys_saved && netdev == g_linux_wlan->vif[0].ndev) { + if (!g_ptk_keys_saved && netdev == wl->vif[0].ndev) { g_add_ptk_key_params.key_idx = key_index; g_add_ptk_key_params.pairwise = pairwise; if (!mac_addr) { From 692e2aceffd00f91a846f6e628277222899b198e Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:14:00 +0900 Subject: [PATCH 2031/2431] staging: wilc1000: del_key: use netdev private wilc instead of g_linux_wlan Use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 8aea4b560b2e..eea7f3b1e416 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1360,11 +1360,15 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac_addr) { struct wilc_priv *priv; + struct wilc *wl; + perInterface_wlan_t *nic; priv = wiphy_priv(wiphy); + nic = netdev_priv(netdev); + wl = nic->wilc; /*delete saved keys, if any*/ - if (netdev == g_linux_wlan->vif[0].ndev) { + if (netdev == wl->vif[0].ndev) { g_ptk_keys_saved = false; g_gtk_keys_saved = false; g_wep_keys_saved = false; From 1b86935eb98e1afae43616ec7316afbbeb313e51 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:14:01 +0900 Subject: [PATCH 2032/2431] staging: wilc1000: wilc_mgmt_frame_register: use netdev private wilc Use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index eea7f3b1e416..59db1d5ca88e 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2397,12 +2397,11 @@ void wilc_mgmt_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, struct wilc_priv *priv; perInterface_wlan_t *nic; - + struct wilc *wl; priv = wiphy_priv(wiphy); nic = netdev_priv(priv->wdev->netdev); - - + wl = nic->wilc; if (!frame_type) return; @@ -2430,7 +2429,7 @@ void wilc_mgmt_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev, } /*If mac is closed, then return*/ - if (!g_linux_wlan->initialized) { + if (!wl->initialized) { PRINT_D(GENERIC_DBG, "Return since mac is closed\n"); return; } From 684dc1861c9e4e1c52de5f8410d6ce4ac0e970ab Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:14:02 +0900 Subject: [PATCH 2033/2431] staging: wilc1000: start_ap: use netdev private data wilc Use netdev private data member wilc instead of global variable g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 59db1d5ca88e..5559aa671b8a 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2891,8 +2891,12 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_beacon_data *beacon = &(settings->beacon); struct wilc_priv *priv; s32 s32Error = 0; + struct wilc *wl; + perInterface_wlan_t *nic; priv = wiphy_priv(wiphy); + nic = netdev_priv(dev); + wl = nic->wilc; PRINT_D(HOSTAPD_DBG, "Starting ap\n"); PRINT_D(HOSTAPD_DBG, "Interval = %d\n DTIM period = %d\n Head length = %zu Tail length = %zu\n", @@ -2903,7 +2907,7 @@ static int start_ap(struct wiphy *wiphy, struct net_device *dev, if (s32Error != 0) PRINT_ER("Error in setting channel\n"); - linux_wlan_set_bssid(dev, g_linux_wlan->vif[0].src_addr); + linux_wlan_set_bssid(dev, wl->vif[0].src_addr); s32Error = host_int_add_beacon(priv->hWILCWFIDrv, settings->beacon_interval, From 2c1d05d103f99f3c7979ab37f6431bd641c6bb3f Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:14:03 +0900 Subject: [PATCH 2034/2431] staging: wilc1000: init_irq: change argument and use netdev private wilc This patch changes function argument type wilc with net_device and use netdev private data member wilc instead of p_nic. Signed-off-by: Glen Lee Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 2c4673c32734..bb5bd81102b3 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -259,10 +259,14 @@ irqreturn_t isr_bh_routine(int irq, void *userdata) } #if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO) -static int init_irq(struct wilc *p_nic) +static int init_irq(struct net_device *dev) { int ret = 0; - struct wilc *nic = p_nic; + perInterface_wlan_t *nic; + struct wilc *wl; + + nic = netdev_priv(dev); + wl = nic->wilc; /*initialize GPIO and register IRQ num*/ /*GPIO request*/ @@ -275,23 +279,23 @@ static int init_irq(struct wilc *p_nic) * ex) nic->dev_irq_num = gpio_to_irq(GPIO_NUM); */ #else - nic->dev_irq_num = gpio_to_irq(GPIO_NUM); + wl->dev_irq_num = gpio_to_irq(GPIO_NUM); #endif } else { ret = -1; PRINT_ER("could not obtain gpio for WILC_INTR\n"); } - if ((ret != -1) && (request_threaded_irq(nic->dev_irq_num, isr_uh_routine, isr_bh_routine, + if ((ret != -1) && (request_threaded_irq(wl->dev_irq_num, isr_uh_routine, isr_bh_routine, IRQF_TRIGGER_LOW | IRQF_ONESHOT, /*Without IRQF_ONESHOT the uh will remain kicked in and dont gave a chance to bh*/ - "WILC_IRQ", nic)) < 0) { + "WILC_IRQ", wl)) < 0) { PRINT_ER("Failed to request IRQ for GPIO: %d\n", GPIO_NUM); ret = -1; } else { PRINT_D(INIT_DBG, "IRQ request succeeded IRQ-NUM= %d on GPIO: %d\n", - nic->dev_irq_num, GPIO_NUM); + wl->dev_irq_num, GPIO_NUM); } return ret; @@ -1055,7 +1059,7 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) } #if (!defined WILC_SDIO) || (defined WILC_SDIO_IRQ_GPIO) - if (init_irq(wl)) { + if (init_irq(dev)) { PRINT_ER("couldn't initialize IRQ\n"); ret = -EIO; goto _fail_locks_; From 0c07f8c7ca0e2119065f4b3f497ad99304bdd8ea Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 23:31:11 +0800 Subject: [PATCH 2035/2431] staging: wilc1000: fix trivial typos s/regsiter/register/ Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index bb5bd81102b3..1f6b16589622 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1776,10 +1776,10 @@ late_initcall(init_wilc_driver); static void __exit exit_wilc_driver(void) { #ifndef WILC_SDIO - PRINT_D(INIT_DBG, "SPI unregsiter...\n"); + PRINT_D(INIT_DBG, "SPI unregister...\n"); spi_unregister_driver(&wilc_bus); #else - PRINT_D(INIT_DBG, "SDIO unregsiter...\n"); + PRINT_D(INIT_DBG, "SDIO unregister...\n"); sdio_unregister_driver(&wilc_bus); #endif } From 1ff0c8a97d3ec26ed3c7a26a74851a4b0fb515e3 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 23 Oct 2015 14:28:17 +0900 Subject: [PATCH 2036/2431] staging: wilc1000: isr_bh_routine: remove unused variable nic This patch removes unused variable nic. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman --- drivers/staging/wilc1000/linux_wlan.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 1f6b16589622..9f899daca524 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -242,10 +242,6 @@ static irqreturn_t isr_uh_routine(int irq, void *user_data) irqreturn_t isr_bh_routine(int irq, void *userdata) { - struct wilc *nic; - - nic = (struct wilc *)userdata; - /*While mac is closing cacncel the handling of any interrupts received*/ if (g_linux_wlan->close) { PRINT_ER("Driver is CLOSING: Can't handle BH interrupt\n"); From 4b6a8799f341820e7327fb534f130c7f82fb6356 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sat, 17 Oct 2015 11:39:25 +0100 Subject: [PATCH 2037/2431] staging: rtl8192u: simplify conditional The code can be much cleaner and readable by simplifying the conditional statement. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index fcbd59f9d6e9..c57fb220a129 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c @@ -466,13 +466,9 @@ void ieee80211_softmac_scan_syncro(struct ieee80211_device *ieee) /* this prevent excessive time wait when we * need to wait for a syncro scan to end.. */ - if(ieee->state < IEEE80211_LINKED) - ; - else - if (ieee->sync_scan_hurryup) + if (ieee->state >= IEEE80211_LINKED && ieee->sync_scan_hurryup) goto out; - msleep_interruptible_rsl(IEEE80211_SOFTMAC_SCAN_TIME); } From 34b8dae75fd52e5216456edbaee401f62c8024f5 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 21 Oct 2015 20:19:18 +0530 Subject: [PATCH 2038/2431] Staging: rtl8192u: Eliminate use of MSECS macro Use msecs_to_jiffies instead of driver specific macro MSECS. This is done using Coccinelle and semantic patch used for this is as follows: @@expression t;@@ - MSECS(t) + msecs_to_jiffies(t) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192u/r8192U_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 678ecf6d2b79..e06864f64beb 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -3516,7 +3516,7 @@ static void watch_dog_timer_callback(unsigned long data) queue_delayed_work(priv->priv_wq, &priv->watch_dog_wq, 0); mod_timer(&priv->watch_dog_timer, - jiffies + MSECS(IEEE80211_WATCH_DOG_TIME)); + jiffies + msecs_to_jiffies(IEEE80211_WATCH_DOG_TIME)); } static int _rtl8192_up(struct net_device *dev) { From 522f005082ff480da44353e97ce44b308f803ff0 Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Fri, 23 Oct 2015 01:07:38 +0800 Subject: [PATCH 2039/2431] Staging: mt29f_spinand: Add blank line after function declaration Add missing blank line in-between function declarations. Issue found by checkpatch. CHECK: Please use a blank line after function/struct/union/enum declarations Signed-off-by: Eva Rachel Retuya Signed-off-by: Greg Kroah-Hartman --- drivers/staging/mt29f_spinand/mt29f_spinand.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index cf982288f68e..dc9877efe127 100644 --- a/drivers/staging/mt29f_spinand/mt29f_spinand.c +++ b/drivers/staging/mt29f_spinand/mt29f_spinand.c @@ -186,6 +186,7 @@ static int wait_till_ready(struct spi_device *spi_nand) return -1; } + /** * spinand_get_otp- send command 0xf to read the SPI Nand OTP register * Description: @@ -839,6 +840,7 @@ static int spinand_lock_block(struct spi_device *spi_nand, u8 lock) return ret; } + /* * spinand_probe - [spinand Interface] * @spi_nand: registered device driver. From 1a25d6da550319dd2d483b5043a416fd12b32aca Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Fri, 23 Oct 2015 01:07:39 +0800 Subject: [PATCH 2040/2431] Staging: mt29f_spinand: Remove blank line before '}' and after '{' braces Remove unneeded blank lines preceding/following '}' and '{' braces, as pointed out by checkpatch. This patch addresses the following checkpatch checks: CHECK: Blank lines aren't necessary before a close brace '}' CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Eva Rachel Retuya Signed-off-by: Greg Kroah-Hartman --- drivers/staging/mt29f_spinand/mt29f_spinand.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index dc9877efe127..c00749ed6da0 100644 --- a/drivers/staging/mt29f_spinand/mt29f_spinand.c +++ b/drivers/staging/mt29f_spinand/mt29f_spinand.c @@ -660,7 +660,6 @@ static int spinand_read_page_hwecc(struct mtd_info *mtd, struct nand_chip *chip, } } return 0; - } #endif @@ -711,7 +710,6 @@ static int spinand_wait(struct mtd_info *mtd, struct nand_chip *chip) static void spinand_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len) { - struct spinand_state *state = mtd_to_state(mtd); memcpy(state->buf + state->buf_ptr, buf, len); From 236276625452545c161448c70d67f0388bb13b4a Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Fri, 23 Oct 2015 01:07:40 +0800 Subject: [PATCH 2041/2431] Staging: mt29f_spinand: Remove multiple blank lines Remove excess blank line in-between two function declarations. Issue found by checkpatch. CHECK: Please don't use multiple blank lines Signed-off-by: Eva Rachel Retuya Signed-off-by: Greg Kroah-Hartman --- drivers/staging/mt29f_spinand/mt29f_spinand.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index c00749ed6da0..7691417eebd6 100644 --- a/drivers/staging/mt29f_spinand/mt29f_spinand.c +++ b/drivers/staging/mt29f_spinand/mt29f_spinand.c @@ -677,7 +677,6 @@ static uint8_t spinand_read_byte(struct mtd_info *mtd) return data; } - static int spinand_wait(struct mtd_info *mtd, struct nand_chip *chip) { struct spinand_info *info = (struct spinand_info *)chip->priv; From 74f63bd664b68efdb5b81db8c39765430206f394 Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Sat, 24 Oct 2015 00:13:19 +0800 Subject: [PATCH 2042/2431] Staging: mt29f_spinand: Use preferred kernel types Replace remaining instances of 'uint8_t' with 'u8' for consistency since 'u8' and 'u16' are already being used in other parts of the code. Replace also 'uint32_t' with 'u32' on the header file. Checkpatch pointed out this issue. CHECK: Prefer kernel type 'u8' over 'uint8_t' CHECK: Prefer kernel type 'u32' over 'uint32_t' Signed-off-by: Eva Rachel Retuya Signed-off-by: Greg Kroah-Hartman --- drivers/staging/mt29f_spinand/mt29f_spinand.c | 18 +++++++++--------- drivers/staging/mt29f_spinand/mt29f_spinand.h | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index 7691417eebd6..3d1696c8e9e5 100644 --- a/drivers/staging/mt29f_spinand/mt29f_spinand.c +++ b/drivers/staging/mt29f_spinand/mt29f_spinand.c @@ -145,7 +145,7 @@ static int spinand_read_id(struct spi_device *spi_nand, u8 *id) * Once the status turns to be ready, the other status bits also are * valid status bits. */ -static int spinand_read_status(struct spi_device *spi_nand, uint8_t *status) +static int spinand_read_status(struct spi_device *spi_nand, u8 *status) { struct spinand_cmd cmd = {0}; int ret; @@ -478,7 +478,7 @@ static int spinand_program_page(struct spi_device *spi_nand, { int retval; u8 status = 0; - uint8_t *wbuf; + u8 *wbuf; #ifdef CONFIG_MTD_SPINAND_ONDIEECC unsigned int i, j; @@ -613,9 +613,9 @@ static int spinand_erase_block(struct spi_device *spi_nand, u16 block_id) #ifdef CONFIG_MTD_SPINAND_ONDIEECC static int spinand_write_page_hwecc(struct mtd_info *mtd, - struct nand_chip *chip, const uint8_t *buf, int oob_required) + struct nand_chip *chip, const u8 *buf, int oob_required) { - const uint8_t *p = buf; + const u8 *p = buf; int eccsize = chip->ecc.size; int eccsteps = chip->ecc.steps; @@ -625,11 +625,11 @@ static int spinand_write_page_hwecc(struct mtd_info *mtd, } static int spinand_read_page_hwecc(struct mtd_info *mtd, struct nand_chip *chip, - uint8_t *buf, int oob_required, int page) + u8 *buf, int oob_required, int page) { int retval; u8 status; - uint8_t *p = buf; + u8 *p = buf; int eccsize = chip->ecc.size; int eccsteps = chip->ecc.steps; struct spinand_info *info = (struct spinand_info *)chip->priv; @@ -667,7 +667,7 @@ static void spinand_select_chip(struct mtd_info *mtd, int dev) { } -static uint8_t spinand_read_byte(struct mtd_info *mtd) +static u8 spinand_read_byte(struct mtd_info *mtd) { struct spinand_state *state = mtd_to_state(mtd); u8 data; @@ -707,7 +707,7 @@ static int spinand_wait(struct mtd_info *mtd, struct nand_chip *chip) return 0; } -static void spinand_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len) +static void spinand_write_buf(struct mtd_info *mtd, const u8 *buf, int len) { struct spinand_state *state = mtd_to_state(mtd); @@ -715,7 +715,7 @@ static void spinand_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len) state->buf_ptr += len; } -static void spinand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len) +static void spinand_read_buf(struct mtd_info *mtd, u8 *buf, int len) { struct spinand_state *state = mtd_to_state(mtd); diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.h b/drivers/staging/mt29f_spinand/mt29f_spinand.h index 6c8e413b5b63..fe6c15a50c35 100644 --- a/drivers/staging/mt29f_spinand/mt29f_spinand.h +++ b/drivers/staging/mt29f_spinand/mt29f_spinand.h @@ -84,8 +84,8 @@ struct spinand_info { }; struct spinand_state { - uint32_t col; - uint32_t row; + u32 col; + u32 row; int buf_ptr; u8 *buf; }; From 4cd1a64a3b2a1290e6abb560db0dcc8260d1e274 Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Fri, 23 Oct 2015 01:09:56 +0800 Subject: [PATCH 2043/2431] Staging: mt29f_spinand: Remove redundant cast on 'retval' Remove the unneeded cast to 'int' since 'retval' is originally declared as 'int'. Signed-off-by: Eva Rachel Retuya Signed-off-by: Greg Kroah-Hartman --- drivers/staging/mt29f_spinand/mt29f_spinand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index 3d1696c8e9e5..a8292a1a8e41 100644 --- a/drivers/staging/mt29f_spinand/mt29f_spinand.c +++ b/drivers/staging/mt29f_spinand/mt29f_spinand.c @@ -595,7 +595,7 @@ static int spinand_erase_block(struct spi_device *spi_nand, u16 block_id) if (retval < 0) { dev_err(&spi_nand->dev, "error %d reading status register\n", - (int)retval); + retval); return retval; } From ae127bf301d784e533b353571634e38c6ff6eb59 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Sun, 18 Oct 2015 13:31:57 +0300 Subject: [PATCH 2044/2431] staging: lustre: Replace aligned packed with packed Replace __aligned__((packed)) with __packed in order to follow the best practices and to fix checkpatch.pl warning: 'WARNING: __packed is preferred over __attribute__((packed))' Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- .../lustre/include/lustre/lustre_user.h | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index 286e96af608b..80f8ec529424 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -312,7 +312,7 @@ struct lov_user_ost_data_v1 { /* per-stripe data structure */ struct ost_id l_ost_oi; /* OST object ID */ __u32 l_ost_gen; /* generation of this OST index */ __u32 l_ost_idx; /* OST index in LOV */ -} __attribute__((packed)); +} __packed; #define lov_user_md lov_user_md_v1 struct lov_user_md_v1 { /* LOV EA user data (host-endian) */ @@ -344,7 +344,7 @@ struct lov_user_md_v3 { /* LOV EA user data (host-endian) */ }; char lmm_pool_name[LOV_MAXPOOLNAME]; /* pool name */ struct lov_user_ost_data_v1 lmm_objects[0]; /* per-stripe data */ -} __attribute__((packed)); +} __packed; static inline __u32 lov_user_md_size(__u16 stripes, __u32 lmm_magic) { @@ -364,12 +364,12 @@ static inline __u32 lov_user_md_size(__u16 stripes, __u32 lmm_magic) struct lov_user_mds_data_v1 { lstat_t lmd_st; /* MDS stat struct */ struct lov_user_md_v1 lmd_lmm; /* LOV EA V1 user data */ -} __attribute__((packed)); +} __packed; struct lov_user_mds_data_v3 { lstat_t lmd_st; /* MDS stat struct */ struct lov_user_md_v3 lmd_lmm; /* LOV EA V3 user data */ -} __attribute__((packed)); +} __packed; #endif /* keep this to be the same size as lov_user_ost_data_v1 */ @@ -766,7 +766,7 @@ struct changelog_rec { }; lustre_fid cr_pfid; /**< parent fid */ char cr_name[0]; /**< last element */ -} __attribute__((packed)); +} __packed; /* changelog_ext_rec is 2*sizeof(lu_fid) bigger than changelog_rec, to save * space, only rename uses changelog_ext_rec, while others use changelog_rec to @@ -788,7 +788,7 @@ struct changelog_ext_rec { lustre_fid cr_sfid; /**< source fid, or zero */ lustre_fid cr_spfid; /**< source parent fid, or zero */ char cr_name[0]; /**< last element */ -} __attribute__((packed)); +} __packed; #define CHANGELOG_REC_EXTENDED(rec) \ (((rec)->cr_flags & CLF_VERMASK) == CLF_EXT_VERSION) @@ -894,7 +894,7 @@ static inline char *hsm_progress_state2name(enum hsm_progress_states s) struct hsm_extent { __u64 offset; __u64 length; -} __attribute__((packed)); +} __packed; /** * Current HSM states of a Lustre file. @@ -978,7 +978,7 @@ struct hsm_request { struct hsm_user_item { lustre_fid hui_fid; struct hsm_extent hui_extent; -} __attribute__((packed)); +} __packed; struct hsm_user_request { struct hsm_request hur_request; @@ -986,7 +986,7 @@ struct hsm_user_request { /* extra data blob at end of struct (after all * hur_user_items), only use helpers to access it */ -} __attribute__((packed)); +} __packed; /** Return pointer to data field in a hsm user request */ static inline void *hur_data(struct hsm_user_request *hur) @@ -1052,7 +1052,7 @@ struct hsm_action_item { __u64 hai_cookie; /* action cookie from coordinator */ __u64 hai_gid; /* grouplock id */ char hai_data[0]; /* variable length */ -} __attribute__((packed)); +} __packed; /* * helper function which print in hexa the first bytes of @@ -1096,7 +1096,7 @@ struct hsm_action_list { char hal_fsname[0]; /* null-terminated */ /* struct hsm_action_item[hal_count] follows, aligned on 8-byte boundaries. See hai_zero */ -} __attribute__((packed)); +} __packed; #ifndef HAVE_CFS_SIZE_ROUND static inline int cfs_size_round (int val) From 9ebafb530be42dea90cb698857ac518058346b7b Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Sun, 18 Oct 2015 18:50:30 +0530 Subject: [PATCH 2045/2431] Staging: lustre: lproc_osc: Add check on a variable Variable rc is not tested for negative values and hence a check should be included. Also, a check for variable val should be introduced. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/lproc_osc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index cdc7f889564e..c4d44e70f1d7 100644 --- a/drivers/staging/lustre/lustre/osc/lproc_osc.c +++ b/drivers/staging/lustre/lustre/osc/lproc_osc.c @@ -61,7 +61,9 @@ static ssize_t active_store(struct kobject *kobj, struct attribute *attr, unsigned long val; rc = kstrtoul(buffer, 10, &val); - if (rc < 0) + if (rc) + return rc; + if (val > 1) return -ERANGE; /* opposite senses */ From 316bd5e085cbd38176a7c1ea100416322bc1633f Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 22:35:31 +0800 Subject: [PATCH 2046/2431] staging: lustre: make sptlrpc_flavor_has_bulk return boolean This patch makes sptlrpc_flavor_has_bulk return boolean, since this function only uses either one or zero as its return value. Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/lustre_sec.h | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index aaadf098989f..dd1033be6bfa 100644 --- a/drivers/staging/lustre/lustre/include/lustre_sec.h +++ b/drivers/staging/lustre/lustre/include/lustre_sec.h @@ -322,7 +322,7 @@ struct sptlrpc_rule_set { }; int sptlrpc_parse_flavor(const char *str, struct sptlrpc_flavor *flvr); -int sptlrpc_flavor_has_bulk(struct sptlrpc_flavor *flvr); +bool sptlrpc_flavor_has_bulk(struct sptlrpc_flavor *flvr); static inline void sptlrpc_rule_set_init(struct sptlrpc_rule_set *set) { diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec.c b/drivers/staging/lustre/lustre/ptlrpc/sec.c index 34d133075302..39f5261c9854 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/sec.c +++ b/drivers/staging/lustre/lustre/ptlrpc/sec.c @@ -2261,14 +2261,14 @@ EXPORT_SYMBOL(sec2target_str); /* * return true if the bulk data is protected */ -int sptlrpc_flavor_has_bulk(struct sptlrpc_flavor *flvr) +bool sptlrpc_flavor_has_bulk(struct sptlrpc_flavor *flvr) { switch (SPTLRPC_FLVR_BULK_SVC(flvr->sf_rpc)) { case SPTLRPC_BULK_SVC_INTG: case SPTLRPC_BULK_SVC_PRIV: - return 1; + return true; default: - return 0; + return false; } } EXPORT_SYMBOL(sptlrpc_flavor_has_bulk); From 7b318b411cc9dcc6309eaeba56ff822979e2b15c Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Mon, 19 Oct 2015 00:17:13 +0530 Subject: [PATCH 2047/2431] Staging: lustre: interval_tree: Remove multiple assignments Remove multiple assignments by factorizing them. Fix checkpatch CHECK: multiple assignments should be avoided Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ldlm/interval_tree.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/ldlm/interval_tree.c b/drivers/staging/lustre/lustre/ldlm/interval_tree.c index 3d2d85ba8a26..39b571721881 100644 --- a/drivers/staging/lustre/lustre/ldlm/interval_tree.c +++ b/drivers/staging/lustre/lustre/ldlm/interval_tree.c @@ -294,7 +294,8 @@ struct interval_node *interval_insert(struct interval_node *node, /* link node into the tree */ node->in_parent = parent; node->in_color = INTERVAL_RED; - node->in_left = node->in_right = NULL; + node->in_left = NULL; + node->in_right = NULL; *p = node; interval_insert_color(node, root); From ce1c42ed6053c229666a47d9e0d2d82c3e71813e Mon Sep 17 00:00:00 2001 From: Sanne Wouda Date: Mon, 19 Oct 2015 13:56:51 +0200 Subject: [PATCH 2048/2431] staging: lustre: kernel style neating (block comments) Fix lustre/ptlrpc/client.c block comments following the Coding Style preferred format for multi-line and single-line comments: /* * This is the preferred style for multi-line * comments in the Linux kernel source code. * Please use it consistently. * * Description: A column of asterisks on the left side, * with beginning and ending almost-blank lines. */ Included some minor textual fixes to get some comments on a single line. Signed-off-by: Sanne Wouda Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ptlrpc/client.c | 322 ++++++++++-------- 1 file changed, 182 insertions(+), 140 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index 9bf13d7096a8..083f99cb0e48 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -72,9 +72,11 @@ struct ptlrpc_connection *ptlrpc_uuid_to_connection(struct obd_uuid *uuid) lnet_process_id_t peer; int err; - /* ptlrpc_uuid_to_peer() initializes its 2nd parameter - * before accessing its values. */ - /* coverity[uninit_use_in_call] */ + /* + * ptlrpc_uuid_to_peer() initializes its 2nd parameter + * before accessing its values. + * coverity[uninit_use_in_call] + */ err = ptlrpc_uuid_to_peer(uuid, &peer, &self); if (err != 0) { CNETERR("cannot find peer %s!\n", uuid->uuid); @@ -117,8 +119,10 @@ struct ptlrpc_bulk_desc *ptlrpc_new_bulk(unsigned npages, unsigned max_brw, desc->bd_md_count = 0; LASSERT(max_brw > 0); desc->bd_md_max_brw = min(max_brw, PTLRPC_BULK_OPS_COUNT); - /* PTLRPC_BULK_OPS_COUNT is the compile-time transfer limit for this - * node. Negotiated ocd_brw_size will always be <= this number. */ + /* + * PTLRPC_BULK_OPS_COUNT is the compile-time transfer limit for this + * node. Negotiated ocd_brw_size will always be <= this number. + */ for (i = 0; i < PTLRPC_BULK_OPS_COUNT; i++) LNetInvalidateHandle(&desc->bd_mds[i]); @@ -223,8 +227,9 @@ void ptlrpc_at_set_req_timeout(struct ptlrpc_request *req) LASSERT(req->rq_import); if (AT_OFF) { - /* non-AT settings */ - /** + /* + * non-AT settings + * * \a imp_server_timeout means this is reverse import and * we send (currently only) ASTs to the client and cannot afford * to wait too long for the reply, otherwise the other client @@ -240,11 +245,15 @@ void ptlrpc_at_set_req_timeout(struct ptlrpc_request *req) serv_est = at_get(&at->iat_service_estimate[idx]); req->rq_timeout = at_est2timeout(serv_est); } - /* We could get even fancier here, using history to predict increased - loading... */ + /* + * We could get even fancier here, using history to predict increased + * loading... + */ - /* Let the server know what this RPC timeout is by putting it in the - reqmsg*/ + /* + * Let the server know what this RPC timeout is by putting it in the + * reqmsg + */ lustre_msg_set_timeout(req->rq_reqmsg, req->rq_timeout); } EXPORT_SYMBOL(ptlrpc_at_set_req_timeout); @@ -261,8 +270,10 @@ static void ptlrpc_at_adj_service(struct ptlrpc_request *req, at = &req->rq_import->imp_at; idx = import_at_get_index(req->rq_import, req->rq_request_portal); - /* max service estimates are tracked on the server side, - so just keep minimal history here */ + /* + * max service estimates are tracked on the server side, + * so just keep minimal history here + */ oldse = at_measured(&at->iat_service_estimate[idx], serv_est); if (oldse != 0) CDEBUG(D_ADAPTTO, "The RPC service estimate for %s ptl %d has changed from %d to %d\n", @@ -287,7 +298,8 @@ static void ptlrpc_at_adj_net_latency(struct ptlrpc_request *req, LASSERT(req->rq_import); if (service_time > now - req->rq_sent + 3) { - /* bz16408, however, this can also happen if early reply + /* + * bz16408, however, this can also happen if early reply * is lost and client RPC is expired and resent, early reply * or reply of original RPC can still be fit in reply buffer * of resent RPC, now client is measuring time from the @@ -376,8 +388,10 @@ static int ptlrpc_at_recv_early_reply(struct ptlrpc_request *req) spin_lock(&req->rq_lock); olddl = req->rq_deadline; - /* server assumes it now has rq_timeout from when it sent the - * early reply, so client should give it at least that long. */ + /* + * server assumes it now has rq_timeout from when it sent the + * early reply, so client should give it at least that long. + */ req->rq_deadline = ktime_get_real_seconds() + req->rq_timeout + ptlrpc_at_get_net_latency(req); @@ -503,8 +517,10 @@ ptlrpc_init_rq_pool(int num_rq, int msgsize, if (!pool) return NULL; - /* Request next power of two for the allocation, because internally - kernel would do exactly this */ + /* + * Request next power of two for the allocation, because internally + * kernel would do exactly this + */ spin_lock_init(&pool->prp_lock); INIT_LIST_HEAD(&pool->prp_req_list); @@ -531,10 +547,12 @@ ptlrpc_prep_req_from_pool(struct ptlrpc_request_pool *pool) spin_lock(&pool->prp_lock); - /* See if we have anything in a pool, and bail out if nothing, + /* + * See if we have anything in a pool, and bail out if nothing, * in writeout path, where this matters, this is safe to do, because * nothing is lost in this case, and when some in-flight requests - * complete, this code will be called again. */ + * complete, this code will be called again. + */ if (unlikely(list_empty(&pool->prp_req_list))) { spin_unlock(&pool->prp_lock); return NULL; @@ -665,7 +683,8 @@ int ptlrpc_request_pack(struct ptlrpc_request *request, if (rc) return rc; - /* For some old 1.8 clients (< 1.8.7), they will LASSERT the size of + /* + * For some old 1.8 clients (< 1.8.7), they will LASSERT the size of * ptlrpc_body sent from server equal to local ptlrpc_body size, so we * have to send old ptlrpc_body to keep interoperability with these * clients. @@ -936,8 +955,10 @@ void ptlrpc_set_add_req(struct ptlrpc_request_set *set, lustre_msg_set_jobid(req->rq_reqmsg, NULL); if (set->set_producer != NULL) - /* If the request set has a producer callback, the RPC must be - * sent straight away */ + /* + * If the request set has a producer callback, the RPC must be + * sent straight away + */ ptlrpc_send_new_req(req); } EXPORT_SYMBOL(ptlrpc_set_add_req); @@ -957,9 +978,7 @@ void ptlrpc_set_add_new_req(struct ptlrpcd_ctl *pc, LASSERT(test_bit(LIOD_STOP, &pc->pc_flags) == 0); spin_lock(&set->set_new_req_lock); - /* - * The set takes over the caller's request reference. - */ + /* The set takes over the caller's request reference. */ req->rq_set = set; req->rq_queued_time = cfs_time_current(); list_add_tail(&req->rq_set_chain, &set->set_new_requests); @@ -970,9 +989,11 @@ void ptlrpc_set_add_new_req(struct ptlrpcd_ctl *pc, if (count == 1) { wake_up(&set->set_waitq); - /* XXX: It maybe unnecessary to wakeup all the partners. But to + /* + * XXX: It maybe unnecessary to wakeup all the partners. But to * guarantee the async RPC can be processed ASAP, we have - * no other better choice. It maybe fixed in future. */ + * no other better choice. It maybe fixed in future. + */ for (i = 0; i < pc->pc_npartners; i++) wake_up(&pc->pc_partners[i]->pc_set->set_waitq); } @@ -1060,8 +1081,10 @@ static int ptlrpc_console_allow(struct ptlrpc_request *req) LASSERT(req->rq_reqmsg != NULL); opc = lustre_msg_get_opc(req->rq_reqmsg); - /* Suppress particular reconnect errors which are to be expected. No - * errors are suppressed for the initial connection on an import */ + /* + * Suppress particular reconnect errors which are to be expected. No + * errors are suppressed for the initial connection on an import + */ if ((lustre_handle_is_used(&req->rq_import->imp_remote_handle)) && (opc == OST_CONNECT || opc == MDS_CONNECT || opc == MGS_CONNECT)) { @@ -1156,10 +1179,11 @@ static int after_reply(struct ptlrpc_request *req) } sptlrpc_cli_free_repbuf(req); - /* Pass the required reply buffer size (include - * space for early reply). - * NB: no need to roundup because alloc_repbuf - * will roundup it */ + /* + * Pass the required reply buffer size (include space for early + * reply). NB: no need to round up because alloc_repbuf will + * round it up + */ req->rq_replen = req->rq_nob_received; req->rq_nob_received = 0; spin_lock(&req->rq_lock); @@ -1178,9 +1202,7 @@ static int after_reply(struct ptlrpc_request *req) return rc; } - /* - * Security layer unwrap might ask resend this request. - */ + /* Security layer unwrap might ask resend this request. */ if (req->rq_resend) return 0; @@ -1201,18 +1223,19 @@ static int after_reply(struct ptlrpc_request *req) /* allocate new xid to avoid reply reconstruction */ if (!req->rq_bulk) { - /* new xid is already allocated for bulk in - * ptlrpc_check_set() */ + /* new xid is already allocated for bulk in ptlrpc_check_set() */ req->rq_xid = ptlrpc_next_xid(); DEBUG_REQ(D_RPCTRACE, req, "Allocating new xid for resend on EINPROGRESS"); } /* Readjust the timeout for current conditions */ ptlrpc_at_set_req_timeout(req); - /* delay resend to give a chance to the server to get ready. + /* + * delay resend to give a chance to the server to get ready. * The delay is increased by 1s on every resend and is capped to * the current request timeout (i.e. obd_timeout if AT is off, - * or AT service time x 125% + 5s, see at_est2timeout) */ + * or AT service time x 125% + 5s, see at_est2timeout) + */ if (req->rq_nr_resend > req->rq_timeout) req->rq_sent = now + req->rq_timeout; else @@ -1268,9 +1291,7 @@ static int after_reply(struct ptlrpc_request *req) ldlm_cli_update_pool(req); } - /* - * Store transno in reqmsg for replay. - */ + /* Store transno in reqmsg for replay. */ if (!(lustre_msg_get_flags(req->rq_reqmsg) & MSG_REPLAY)) { req->rq_transno = lustre_msg_get_transno(req->rq_repmsg); lustre_msg_set_transno(req->rq_reqmsg, req->rq_transno); @@ -1286,22 +1307,22 @@ static int after_reply(struct ptlrpc_request *req) (req->rq_transno > lustre_msg_get_last_committed(req->rq_repmsg) || req->rq_replay)) { - /** version recovery */ + /* version recovery */ ptlrpc_save_versions(req); ptlrpc_retain_replayable_request(req, imp); } else if (req->rq_commit_cb != NULL && list_empty(&req->rq_replay_list)) { - /* NB: don't call rq_commit_cb if it's already on + /* + * NB: don't call rq_commit_cb if it's already on * rq_replay_list, ptlrpc_free_committed() will call - * it later, see LU-3618 for details */ + * it later, see LU-3618 for details + */ spin_unlock(&imp->imp_lock); req->rq_commit_cb(req); spin_lock(&imp->imp_lock); } - /* - * Replay-enabled imports return commit-status information. - */ + /* Replay-enabled imports return commit-status information. */ if (lustre_msg_get_last_committed(req->rq_repmsg)) { imp->imp_peer_committed_transno = lustre_msg_get_last_committed(req->rq_repmsg); @@ -1420,8 +1441,10 @@ static inline int ptlrpc_set_producer(struct ptlrpc_request_set *set) remaining = atomic_read(&set->set_remaining); - /* populate the ->set_requests list with requests until we - * reach the maximum number of RPCs in flight for this set */ + /* + * populate the ->set_requests list with requests until we + * reach the maximum number of RPCs in flight for this set + */ while (atomic_read(&set->set_remaining) < set->set_max_inflight) { rc = set->set_producer(set, set->set_producer_arg); if (rc == -ENOENT) { @@ -1461,7 +1484,8 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) int unregistered = 0; int rc = 0; - /* This schedule point is mainly for the ptlrpcd caller of this + /* + * This schedule point is mainly for the ptlrpcd caller of this * function. Most ptlrpc sets are not long-lived and unbounded * in length, but at the least the set used by the ptlrpcd is. * Since the processing time is unbounded, we need to insert an @@ -1520,8 +1544,7 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) OBD_FAIL_ONCE); } - /* - * Move to next phase if reply was successfully + /* Move to next phase if reply was successfully * unlinked. */ ptlrpc_rqphase_move(req, req->rq_next_phase); @@ -1535,15 +1558,11 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) if (req->rq_phase == RQ_PHASE_INTERPRET) goto interpret; - /* - * Note that this also will start async reply unlink. - */ + /* Note that this also will start async reply unlink. */ if (req->rq_net_err && !req->rq_timedout) { ptlrpc_expire_one_request(req, 1); - /* - * Check if we still need to wait for unlink. - */ + /* Check if we still need to wait for unlink. */ if (ptlrpc_client_recv_or_unlink(req) || ptlrpc_client_bulk_active(req)) continue; @@ -1568,7 +1587,8 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) goto interpret; } - /* ptlrpc_set_wait->l_wait_event sets lwi_allow_intr + /* + * ptlrpc_set_wait->l_wait_event sets lwi_allow_intr * so it sets rq_intr regardless of individual rpc * timeouts. The synchronous IO waiting path sets * rq_intr irrespective of whether ptlrpcd @@ -1595,8 +1615,10 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) spin_lock(&imp->imp_lock); if (ptlrpc_import_delay_req(imp, req, &status)) { - /* put on delay list - only if we wait - * recovery finished - before send */ + /* + * put on delay list - only if we wait + * recovery finished - before send + */ list_del_init(&req->rq_list); list_add_tail(&req->rq_list, &imp-> @@ -1632,8 +1654,7 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) spin_unlock(&req->rq_lock); if (req->rq_timedout || req->rq_resend) { - /* This is re-sending anyways, - * let's mark req as resend. */ + /* This is re-sending anyway, let's mark req as resend. */ spin_lock(&req->rq_lock); req->rq_resend = 1; spin_unlock(&req->rq_lock); @@ -1711,8 +1732,10 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) spin_unlock(&req->rq_lock); - /* unlink from net because we are going to - * swab in-place of reply buffer */ + /* + * unlink from net because we are going to + * swab in-place of reply buffer + */ unregistered = ptlrpc_unregister_reply(req, 1); if (!unregistered) continue; @@ -1721,7 +1744,8 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) if (req->rq_resend) continue; - /* If there is no bulk associated with this request, + /* + * If there is no bulk associated with this request, * then we're done and should let the interpreter * process the reply. Similarly if the RPC returned * an error, and therefore the bulk will never arrive. @@ -1739,10 +1763,12 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) continue; if (req->rq_bulk->bd_failure) { - /* The RPC reply arrived OK, but the bulk screwed + /* + * The RPC reply arrived OK, but the bulk screwed * up! Dead weird since the server told us the RPC * was good after getting the REPLY for her GET or - * the ACK for her PUT. */ + * the ACK for her PUT. + */ DEBUG_REQ(D_ERROR, req, "bulk transfer failed"); req->rq_status = -EIO; } @@ -1752,8 +1778,10 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) interpret: LASSERT(req->rq_phase == RQ_PHASE_INTERPRET); - /* This moves to "unregistering" phase we need to wait for - * reply unlink. */ + /* + * This moves to "unregistering" phase we need to wait for + * reply unlink. + */ if (!unregistered && !ptlrpc_unregister_reply(req, 1)) { /* start async bulk unlink too */ ptlrpc_unregister_bulk(req, 1); @@ -1763,8 +1791,7 @@ interpret: if (!ptlrpc_unregister_bulk(req, 1)) continue; - /* When calling interpret receiving already should be - * finished. */ + /* When calling interpret receive should already be finished. */ LASSERT(!req->rq_receiving_reply); ptlrpc_req_interpret(env, req, req->rq_status); @@ -1783,10 +1810,12 @@ interpret: lustre_msg_get_opc(req->rq_reqmsg)); spin_lock(&imp->imp_lock); - /* Request already may be not on sending or delaying list. This + /* + * Request already may be not on sending or delaying list. This * may happen in the case of marking it erroneous for the case * ptlrpc_import_delay_req(req, status) find it impossible to - * allow sending this rpc and returns *status != 0. */ + * allow sending this rpc and returns *status != 0. + */ if (!list_empty(&req->rq_list)) { list_del_init(&req->rq_list); atomic_dec(&imp->imp_inflight); @@ -1801,8 +1830,10 @@ interpret: if (ptlrpc_set_producer(set) > 0) force_timer_recalc = 1; - /* free the request that has just been completed - * in order not to pollute set->set_requests */ + /* + * free the request that has just been completed + * in order not to pollute set->set_requests + */ list_del_init(&req->rq_set_chain); spin_lock(&req->rq_lock); req->rq_set = NULL; @@ -1818,8 +1849,10 @@ interpret: } } - /* move completed request at the head of list so it's easier for - * caller to find them */ + /* + * move completed request at the head of list so it's easier for + * caller to find them + */ list_splice(&comp_reqs, &set->set_requests); /* If we hit an error, we want to recover promptly. */ @@ -1869,8 +1902,10 @@ int ptlrpc_expire_one_request(struct ptlrpc_request *req, int async_unlink) if (imp->imp_dlm_fake) return 1; - /* If this request is for recovery or other primordial tasks, - * then error it out here. */ + /* + * If this request is for recovery or other primordial tasks, + * then error it out here. + */ if (req->rq_ctx_init || req->rq_ctx_fini || req->rq_send_state != LUSTRE_IMP_FULL || imp->imp_obd->obd_no_recov) { @@ -1884,8 +1919,10 @@ int ptlrpc_expire_one_request(struct ptlrpc_request *req, int async_unlink) return 1; } - /* if a request can't be resent we can't wait for an answer after - the timeout */ + /* + * if a request can't be resent we can't wait for an answer after + * the timeout + */ if (ptlrpc_no_resend(req)) { DEBUG_REQ(D_RPCTRACE, req, "TIMEOUT-NORESEND:"); rc = 1; @@ -1909,9 +1946,7 @@ int ptlrpc_expired_set(void *data) LASSERT(set != NULL); - /* - * A timeout expired. See which reqs it applies to... - */ + /* A timeout expired. See which reqs it applies to... */ list_for_each(tmp, &set->set_requests) { struct ptlrpc_request *req = list_entry(tmp, struct ptlrpc_request, @@ -1931,8 +1966,10 @@ int ptlrpc_expired_set(void *data) req->rq_deadline > now) /* not expired */ continue; - /* Deal with this guy. Do it asynchronously to not block - * ptlrpcd thread. */ + /* + * Deal with this guy. Do it asynchronously to not block + * ptlrpcd thread. + */ ptlrpc_expire_one_request(req, 1); } @@ -1996,23 +2033,17 @@ int ptlrpc_set_next_timeout(struct ptlrpc_request_set *set) list_for_each(tmp, &set->set_requests) { req = list_entry(tmp, struct ptlrpc_request, rq_set_chain); - /* - * Request in-flight? - */ + /* Request in-flight? */ if (!(((req->rq_phase == RQ_PHASE_RPC) && !req->rq_waiting) || (req->rq_phase == RQ_PHASE_BULK) || (req->rq_phase == RQ_PHASE_NEW))) continue; - /* - * Already timed out. - */ + /* Already timed out. */ if (req->rq_timedout) continue; - /* - * Waiting for ctx. - */ + /* Waiting for ctx. */ if (req->rq_wait_ctx) continue; @@ -2061,8 +2092,10 @@ int ptlrpc_set_wait(struct ptlrpc_request_set *set) do { timeout = ptlrpc_set_next_timeout(set); - /* wait until all complete, interrupted, or an in-flight - * req times out */ + /* + * wait until all complete, interrupted, or an in-flight + * req times out + */ CDEBUG(D_RPCTRACE, "set %p going to sleep for %d seconds\n", set, timeout); @@ -2087,18 +2120,22 @@ int ptlrpc_set_wait(struct ptlrpc_request_set *set) rc = l_wait_event(set->set_waitq, ptlrpc_check_set(NULL, set), &lwi); - /* LU-769 - if we ignored the signal because it was already + /* + * LU-769 - if we ignored the signal because it was already * pending when we started, we need to handle it now or we risk - * it being ignored forever */ + * it being ignored forever + */ if (rc == -ETIMEDOUT && !lwi.lwi_allow_intr && cfs_signal_pending()) { sigset_t blocked_sigs = cfs_block_sigsinv(LUSTRE_FATAL_SIGS); - /* In fact we only interrupt for the "fatal" signals + /* + * In fact we only interrupt for the "fatal" signals * like SIGINT or SIGKILL. We still ignore less * important signals since ptlrpc set is not easily - * reentrant from userspace again */ + * reentrant from userspace again + */ if (cfs_signal_pending()) ptlrpc_interrupted_set(set); cfs_restore_sigs(blocked_sigs); @@ -2106,13 +2143,15 @@ int ptlrpc_set_wait(struct ptlrpc_request_set *set) LASSERT(rc == 0 || rc == -EINTR || rc == -ETIMEDOUT); - /* -EINTR => all requests have been flagged rq_intr so next + /* + * -EINTR => all requests have been flagged rq_intr so next * check completes. * -ETIMEDOUT => someone timed out. When all reqs have * timed out, signals are enabled allowing completion with * EINTR. * I don't really care if we go once more round the loop in - * the error cases -eeb. */ + * the error cases -eeb. + */ if (rc == 0 && atomic_read(&set->set_remaining) == 0) { list_for_each(tmp, &set->set_requests) { req = list_entry(tmp, struct ptlrpc_request, @@ -2178,8 +2217,10 @@ static void __ptlrpc_free_req(struct ptlrpc_request *request, int locked) req_capsule_fini(&request->rq_pill); - /* We must take it off the imp_replay_list first. Otherwise, we'll set - * request->rq_reqmsg to NULL while osc_close is dereferencing it. */ + /* + * We must take it off the imp_replay_list first. Otherwise, we'll set + * request->rq_reqmsg to NULL while osc_close is dereferencing it. + */ if (request->rq_import != NULL) { if (!locked) spin_lock(&request->rq_import->imp_lock); @@ -2280,40 +2321,28 @@ int ptlrpc_unregister_reply(struct ptlrpc_request *request, int async) wait_queue_head_t *wq; struct l_wait_info lwi; - /* - * Might sleep. - */ + /* Might sleep. */ LASSERT(!in_interrupt()); - /* - * Let's setup deadline for reply unlink. - */ + /* Let's setup deadline for reply unlink. */ if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_REPL_UNLINK) && async && request->rq_reply_deadline == 0) request->rq_reply_deadline = ktime_get_real_seconds()+LONG_UNLINK; - /* - * Nothing left to do. - */ + /* Nothing left to do. */ if (!ptlrpc_client_recv_or_unlink(request)) return 1; LNetMDUnlink(request->rq_reply_md_h); - /* - * Let's check it once again. - */ + /* Let's check it once again. */ if (!ptlrpc_client_recv_or_unlink(request)) return 1; - /* - * Move to "Unregistering" phase as reply was not unlinked yet. - */ + /* Move to "Unregistering" phase as reply was not unlinked yet. */ ptlrpc_rqphase_move(request, RQ_PHASE_UNREGISTERING); - /* - * Do not wait for unlink to finish. - */ + /* Do not wait for unlink to finish. */ if (async) return 0; @@ -2328,8 +2357,10 @@ int ptlrpc_unregister_reply(struct ptlrpc_request *request, int async) wq = &request->rq_reply_waitq; for (;;) { - /* Network access will complete in finite time but the HUGE - * timeout lets us CWARN for visibility of sluggish NALs */ + /* + * Network access will complete in finite time but the HUGE + * timeout lets us CWARN for visibility of sluggish NALs + */ lwi = LWI_TIMEOUT_INTERVAL(cfs_time_seconds(LONG_UNLINK), cfs_time_seconds(1), NULL, NULL); rc = l_wait_event(*wq, !ptlrpc_client_recv_or_unlink(request), @@ -2472,8 +2503,10 @@ void ptlrpc_resend_req(struct ptlrpc_request *req) DEBUG_REQ(D_HA, req, "going to resend"); spin_lock(&req->rq_lock); - /* Request got reply but linked to the import list still. - Let ptlrpc_check_set() to process it. */ + /* + * Request got reply but linked to the import list still. + * Let ptlrpc_check_set() to process it. + */ if (ptlrpc_client_replied(req)) { spin_unlock(&req->rq_lock); DEBUG_REQ(D_HA, req, "it has reply, so skip it"); @@ -2525,8 +2558,10 @@ void ptlrpc_retain_replayable_request(struct ptlrpc_request *req, LBUG(); } - /* clear this for new requests that were resent as well - as resent replayed requests. */ + /* + * clear this for new requests that were resent as well + * as resent replayed requests. + */ lustre_msg_clear_flags(req->rq_reqmsg, MSG_RESENT); /* don't re-add requests that have been replayed */ @@ -2543,7 +2578,8 @@ void ptlrpc_retain_replayable_request(struct ptlrpc_request *req, list_entry(tmp, struct ptlrpc_request, rq_replay_list); - /* We may have duplicate transnos if we create and then + /* + * We may have duplicate transnos if we create and then * open a file, or for closes retained if to match creating * opens, so use req->rq_xid as a secondary key. * (See bugs 684, 685, and 428.) @@ -2728,8 +2764,10 @@ int ptlrpc_replay_req(struct ptlrpc_request *req) /* Readjust the timeout for current conditions */ ptlrpc_at_set_req_timeout(req); - /* Tell server the net_latency, so the server can calculate how long - * it should wait for next replay */ + /* + * Tell server the net_latency, so the server can calculate how long + * it should wait for next replay + */ lustre_msg_set_service_time(req->rq_reqmsg, ptlrpc_at_get_net_latency(req)); DEBUG_REQ(D_HA, req, "REPLAY"); @@ -2749,13 +2787,15 @@ void ptlrpc_abort_inflight(struct obd_import *imp) { struct list_head *tmp, *n; - /* Make sure that no new requests get processed for this import. + /* + * Make sure that no new requests get processed for this import. * ptlrpc_{queue,set}_wait must (and does) hold imp_lock while testing * this flag and then putting requests on sending_list or delayed_list. */ spin_lock(&imp->imp_lock); - /* XXX locking? Maybe we should remove each request with the list + /* + * XXX locking? Maybe we should remove each request with the list * locked? Also, how do we know if the requests on the list are * being freed at this time? */ @@ -2789,8 +2829,10 @@ void ptlrpc_abort_inflight(struct obd_import *imp) spin_unlock(&req->rq_lock); } - /* Last chance to free reqs left on the replay list, but we - * will still leak reqs that haven't committed. */ + /* + * Last chance to free reqs left on the replay list, but we + * will still leak reqs that haven't committed. + */ if (imp->imp_replayable) ptlrpc_free_committed(imp); From 4490ff89b136451940cd8a4a21e2be9396664498 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:44 +0300 Subject: [PATCH 2049/2431] staging: lustre: remove unused OBD_SLAB_CPT_ALLOC* macros The OBD_SLAB_CPT_ALLOC* macros are not used and can be removed Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_support.h | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index abc53f115fb6..bef80e2b8dd3 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -529,8 +529,6 @@ do { \ #define OBD_SLAB_ALLOC_GFP(ptr, slab, size, flags) \ __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, NULL, 0, size, flags) -#define OBD_SLAB_CPT_ALLOC_GFP(ptr, slab, cptab, cpt, size, flags) \ - __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, cptab, cpt, size, flags) #define OBD_SLAB_FREE(ptr, slab, size) \ do { \ @@ -541,21 +539,12 @@ do { \ #define OBD_SLAB_ALLOC(ptr, slab, size) \ OBD_SLAB_ALLOC_GFP(ptr, slab, size, GFP_NOFS) -#define OBD_SLAB_CPT_ALLOC(ptr, slab, cptab, cpt, size) \ - OBD_SLAB_CPT_ALLOC_GFP(ptr, slab, cptab, cpt, size, GFP_NOFS) - #define OBD_SLAB_ALLOC_PTR(ptr, slab) \ OBD_SLAB_ALLOC(ptr, slab, sizeof(*(ptr))) -#define OBD_SLAB_CPT_ALLOC_PTR(ptr, slab, cptab, cpt) \ - OBD_SLAB_CPT_ALLOC(ptr, slab, cptab, cpt, sizeof(*(ptr))) - #define OBD_SLAB_ALLOC_PTR_GFP(ptr, slab, flags) \ OBD_SLAB_ALLOC_GFP(ptr, slab, sizeof(*(ptr)), flags) -#define OBD_SLAB_CPT_ALLOC_PTR_GFP(ptr, slab, cptab, cpt, flags) \ - OBD_SLAB_CPT_ALLOC_GFP(ptr, slab, cptab, cpt, sizeof(*(ptr)), flags) - #define OBD_SLAB_FREE_PTR(ptr, slab) \ OBD_SLAB_FREE((ptr), (slab), sizeof(*(ptr))) From 131637b811fd8e6c7f2743316f127dcb4407ad7c Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:45 +0300 Subject: [PATCH 2050/2431] staging: lustre: replace OBDO_ALLOC with kmem_cache_alloc Use direct call to kmem_cache_alloc instead of wrapping macro Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/llite/llite_close.c | 2 +- drivers/staging/lustre/lustre/llite/llite_lib.c | 3 ++- drivers/staging/lustre/lustre/llite/namei.c | 2 +- drivers/staging/lustre/lustre/lov/lov_request.c | 11 +++++++---- drivers/staging/lustre/lustre/osc/osc_request.c | 4 ++-- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index ad02f2b9e590..02c9910c43ff 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -1260,7 +1260,7 @@ static int ll_lov_recreate(struct inode *inode, struct ost_id *oi, u32 ost_idx) int rc = 0; struct lov_stripe_md *lsm = NULL, *lsm2; - OBDO_ALLOC(oa); + oa = kmem_cache_alloc(obdo_cachep, GFP_NOFS | __GFP_ZERO); if (oa == NULL) return -ENOMEM; diff --git a/drivers/staging/lustre/lustre/llite/llite_close.c b/drivers/staging/lustre/lustre/llite/llite_close.c index e31cad82d5af..8ee1eb400c06 100644 --- a/drivers/staging/lustre/lustre/llite/llite_close.c +++ b/drivers/staging/lustre/lustre/llite/llite_close.c @@ -221,7 +221,7 @@ int ll_som_update(struct inode *inode, struct md_op_data *op_data) inode->i_ino, inode->i_generation, lli->lli_flags); - OBDO_ALLOC(oa); + oa = kmem_cache_alloc(obdo_cachep, GFP_NOFS | __GFP_ZERO); if (!oa) { CERROR("can't allocate memory for Size-on-MDS update.\n"); return -ENOMEM; diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index e874e631e006..cfb60c8f6a02 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1776,7 +1776,8 @@ int ll_iocontrol(struct inode *inode, struct file *file, return 0; } - OBDO_ALLOC(oinfo.oi_oa); + oinfo.oi_oa = kmem_cache_alloc(obdo_cachep, + GFP_NOFS | __GFP_ZERO); if (!oinfo.oi_oa) { ccc_inode_lsm_put(inode, lsm); return -ENOMEM; diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index 2ee7d31d78ae..e069f3115271 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@ -903,7 +903,7 @@ int ll_objects_destroy(struct ptlrpc_request *request, struct inode *dir) } LASSERT(rc >= sizeof(*lsm)); - OBDO_ALLOC(oa); + oa = kmem_cache_alloc(obdo_cachep, GFP_NOFS | __GFP_ZERO); if (oa == NULL) { rc = -ENOMEM; goto out_free_memmd; diff --git a/drivers/staging/lustre/lustre/lov/lov_request.c b/drivers/staging/lustre/lustre/lov/lov_request.c index 104c92ace682..f4c70194900c 100644 --- a/drivers/staging/lustre/lustre/lov/lov_request.c +++ b/drivers/staging/lustre/lustre/lov/lov_request.c @@ -202,7 +202,7 @@ static int common_attr_done(struct lov_request_set *set) if (!atomic_read(&set->set_success)) return -EIO; - OBDO_ALLOC(tmp_oa); + tmp_oa = kmem_cache_alloc(obdo_cachep, GFP_NOFS | __GFP_ZERO); if (tmp_oa == NULL) { rc = -ENOMEM; goto out; @@ -309,7 +309,8 @@ int lov_prep_getattr_set(struct obd_export *exp, struct obd_info *oinfo, req->rq_stripe = i; req->rq_idx = loi->loi_ost_idx; - OBDO_ALLOC(req->rq_oi.oi_oa); + req->rq_oi.oi_oa = kmem_cache_alloc(obdo_cachep, + GFP_NOFS | __GFP_ZERO); if (req->rq_oi.oi_oa == NULL) { kfree(req); rc = -ENOMEM; @@ -391,7 +392,8 @@ int lov_prep_destroy_set(struct obd_export *exp, struct obd_info *oinfo, req->rq_stripe = i; req->rq_idx = loi->loi_ost_idx; - OBDO_ALLOC(req->rq_oi.oi_oa); + req->rq_oi.oi_oa = kmem_cache_alloc(obdo_cachep, + GFP_NOFS | __GFP_ZERO); if (req->rq_oi.oi_oa == NULL) { kfree(req); rc = -ENOMEM; @@ -506,7 +508,8 @@ int lov_prep_setattr_set(struct obd_export *exp, struct obd_info *oinfo, req->rq_stripe = i; req->rq_idx = loi->loi_ost_idx; - OBDO_ALLOC(req->rq_oi.oi_oa); + req->rq_oi.oi_oa = kmem_cache_alloc(obdo_cachep, + GFP_NOFS | __GFP_ZERO); if (req->rq_oi.oi_oa == NULL) { kfree(req); rc = -ENOMEM; diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 32c9713d47eb..58c466420d3c 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -1877,7 +1877,7 @@ int osc_build_rpc(const struct lu_env *env, struct client_obd *cli, goto out; } - OBDO_ALLOC(oa); + oa = kmem_cache_alloc(obdo_cachep, GFP_NOFS | __GFP_ZERO); if (oa == NULL) { rc = -ENOMEM; goto out; @@ -2917,7 +2917,7 @@ static int osc_set_info_async(const struct lu_env *env, struct obd_export *exp, CLASSERT(sizeof(*aa) <= sizeof(req->rq_async_args)); aa = ptlrpc_req_async_args(req); - OBDO_ALLOC(oa); + oa = kmem_cache_alloc(obdo_cachep, GFP_NOFS | __GFP_ZERO); if (!oa) { ptlrpc_req_finished(req); return -ENOMEM; From 2ba262fb6a15994542d77c662d82484990eb18cb Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:46 +0300 Subject: [PATCH 2051/2431] staging: lustre: replace OBDO_FREE with kmem_cache_free Use kmem_cache_free directly instead of wrapping macro. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/llite/llite_close.c | 2 +- drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +- drivers/staging/lustre/lustre/llite/namei.c | 2 +- drivers/staging/lustre/lustre/lov/lov_request.c | 4 ++-- drivers/staging/lustre/lustre/osc/osc_request.c | 6 +++--- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index 02c9910c43ff..e724a1425ab9 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -1295,7 +1295,7 @@ static int ll_lov_recreate(struct inode *inode, struct ost_id *oi, u32 ost_idx) goto out; out: ccc_inode_lsm_put(inode, lsm); - OBDO_FREE(oa); + kmem_cache_free(obdo_cachep, oa); return rc; } diff --git a/drivers/staging/lustre/lustre/llite/llite_close.c b/drivers/staging/lustre/lustre/llite/llite_close.c index 8ee1eb400c06..3f348a3aad43 100644 --- a/drivers/staging/lustre/lustre/llite/llite_close.c +++ b/drivers/staging/lustre/lustre/llite/llite_close.c @@ -252,7 +252,7 @@ int ll_som_update(struct inode *inode, struct md_op_data *op_data) NULL, 0, NULL, 0, &request, NULL); ptlrpc_req_finished(request); - OBDO_FREE(oa); + kmem_cache_free(obdo_cachep, oa); return rc; } diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index cfb60c8f6a02..4a8c759fef42 100644 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -1789,7 +1789,7 @@ int ll_iocontrol(struct inode *inode, struct file *file, OBD_MD_FLGROUP; obdo_set_parent_fid(oinfo.oi_oa, &ll_i2info(inode)->lli_fid); rc = obd_setattr_rqset(sbi->ll_dt_exp, &oinfo, NULL); - OBDO_FREE(oinfo.oi_oa); + kmem_cache_free(obdo_cachep, oinfo.oi_oa); ccc_inode_lsm_put(inode, lsm); if (rc && rc != -EPERM && rc != -EACCES) diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index e069f3115271..2ca22001a534 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@ -933,7 +933,7 @@ int ll_objects_destroy(struct ptlrpc_request *request, struct inode *dir) POSTID(&lsm->lsm_oi), rc); out_free_memmd: obd_free_memmd(ll_i2dtexp(dir), &lsm); - OBDO_FREE(oa); + kmem_cache_free(obdo_cachep, oa); out: return rc; } diff --git a/drivers/staging/lustre/lustre/lov/lov_request.c b/drivers/staging/lustre/lustre/lov/lov_request.c index f4c70194900c..1a150c26798d 100644 --- a/drivers/staging/lustre/lustre/lov/lov_request.c +++ b/drivers/staging/lustre/lustre/lov/lov_request.c @@ -67,7 +67,7 @@ void lov_finish_set(struct lov_request_set *set) list_del_init(&req->rq_link); if (req->rq_oi.oi_oa) - OBDO_FREE(req->rq_oi.oi_oa); + kmem_cache_free(obdo_cachep, req->rq_oi.oi_oa); kfree(req->rq_oi.oi_osfs); kfree(req); } @@ -236,7 +236,7 @@ static int common_attr_done(struct lov_request_set *set) memcpy(set->set_oi->oi_oa, tmp_oa, sizeof(*set->set_oi->oi_oa)); out: if (tmp_oa) - OBDO_FREE(tmp_oa); + kmem_cache_free(obdo_cachep, tmp_oa); return rc; } diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 58c466420d3c..57189ad907d0 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -878,7 +878,7 @@ static int osc_shrink_grant_interpret(const struct lu_env *env, LASSERT(body); osc_update_grant(cli, body); out: - OBDO_FREE(oa); + kmem_cache_free(obdo_cachep, oa); return rc; } @@ -1789,7 +1789,7 @@ static int brw_interpret(const struct lu_env *env, } cl_object_put(env, obj); } - OBDO_FREE(aa->aa_oa); + kmem_cache_free(obdo_cachep, aa->aa_oa); cl_req_completion(env, aa->aa_clerq, rc < 0 ? rc : req->rq_bulk->bd_nob_transferred); @@ -2005,7 +2005,7 @@ out: LASSERT(req == NULL); if (oa) - OBDO_FREE(oa); + kmem_cache_free(obdo_cachep, oa); kfree(pga); /* this should happen rarely and is pretty bad, it makes the * pending list not follow the dirty order */ From b4fb17e7504316d01c1fd1fe3e5f0f4d9640d227 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:47 +0300 Subject: [PATCH 2052/2431] staging: lustre: remove unused OBDO_{ALLOC, FREE} macros The OBDO_ALLOC and OBDO_FREE macros are not used and can be removed. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/include/obd_class.h | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index bf2bde5e6896..ceb3137f577c 100644 --- a/drivers/staging/lustre/lustre/include/obd_class.h +++ b/drivers/staging/lustre/lustre/include/obd_class.h @@ -1726,16 +1726,6 @@ void obd_cleanup_caches(void); /* support routines */ extern struct kmem_cache *obdo_cachep; -#define OBDO_ALLOC(ptr) \ -do { \ - OBD_SLAB_ALLOC_PTR_GFP((ptr), obdo_cachep, GFP_NOFS); \ -} while (0) - -#define OBDO_FREE(ptr) \ -do { \ - OBD_SLAB_FREE_PTR((ptr), obdo_cachep); \ -} while (0) - static inline void obdo2fid(struct obdo *oa, struct lu_fid *fid) { /* something here */ From bbc63f56fb159deb3203327848968311366b83df Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:48 +0300 Subject: [PATCH 2053/2431] staging: lustre: replace OBD_SLAB_ALLOC_PTR with kmem_cache_alloc The OBD_SLAB_ALLOC_PTR macro expands to call to kmem_cache_alloc, which may be used directly. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/osc/osc_quota.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/osc/osc_quota.c b/drivers/staging/lustre/lustre/osc/osc_quota.c index 3b32928eb4fc..98b9bcda7981 100644 --- a/drivers/staging/lustre/lustre/osc/osc_quota.c +++ b/drivers/staging/lustre/lustre/osc/osc_quota.c @@ -35,7 +35,7 @@ static inline struct osc_quota_info *osc_oqi_alloc(u32 id) { struct osc_quota_info *oqi; - OBD_SLAB_ALLOC_PTR(oqi, osc_quota_kmem); + oqi = kmem_cache_alloc(osc_quota_kmem, GFP_NOFS | __GFP_ZERO); if (oqi != NULL) oqi->oqi_id = id; From ccaabce1171b3194ded7c3961ed33ff09a5a0739 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:49 +0300 Subject: [PATCH 2054/2431] staging: lustre: replace OBD_SLAB_ALLOC_PTR_GFP with kmem_cache_alloc The OBD_SLAB_ALLOC_PTR_GFP macro expands to call to kmem_cache_alloc, which may be used directly. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 10 +++++----- drivers/staging/lustre/lustre/ldlm/ldlm_extent.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 2 +- drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/llite/remote_perm.c | 2 +- drivers/staging/lustre/lustre/llite/super25.c | 2 +- drivers/staging/lustre/lustre/llite/vvp_dev.c | 4 ++-- drivers/staging/lustre/lustre/llite/xattr_cache.c | 2 +- drivers/staging/lustre/lustre/lov/lov_dev.c | 6 +++--- drivers/staging/lustre/lustre/lov/lov_ea.c | 2 +- drivers/staging/lustre/lustre/lov/lov_lock.c | 6 +++--- drivers/staging/lustre/lustre/lov/lov_object.c | 2 +- drivers/staging/lustre/lustre/lov/lovsub_dev.c | 2 +- drivers/staging/lustre/lustre/lov/lovsub_lock.c | 2 +- drivers/staging/lustre/lustre/lov/lovsub_object.c | 2 +- drivers/staging/lustre/lustre/obdclass/cl_lock.c | 2 +- drivers/staging/lustre/lustre/obdclass/cl_object.c | 2 +- drivers/staging/lustre/lustre/obdclass/genops.c | 2 +- drivers/staging/lustre/lustre/obdecho/echo_client.c | 8 ++++---- drivers/staging/lustre/lustre/osc/osc_cache.c | 2 +- drivers/staging/lustre/lustre/osc/osc_dev.c | 4 ++-- drivers/staging/lustre/lustre/osc/osc_io.c | 2 +- drivers/staging/lustre/lustre/osc/osc_lock.c | 2 +- drivers/staging/lustre/lustre/osc/osc_object.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/client.c | 2 +- 26 files changed, 39 insertions(+), 39 deletions(-) diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index ef2e2667cabd..7794bfaba4dd 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c @@ -116,7 +116,7 @@ void *ccc_key_init(const struct lu_context *ctx, struct lu_context_key *key) { struct ccc_thread_info *info; - OBD_SLAB_ALLOC_PTR_GFP(info, ccc_thread_kmem, GFP_NOFS); + info = kmem_cache_alloc(ccc_thread_kmem, GFP_NOFS | __GFP_ZERO); if (info == NULL) info = ERR_PTR(-ENOMEM); return info; @@ -135,7 +135,7 @@ void *ccc_session_key_init(const struct lu_context *ctx, { struct ccc_session *session; - OBD_SLAB_ALLOC_PTR_GFP(session, ccc_session_kmem, GFP_NOFS); + session = kmem_cache_alloc(ccc_session_kmem, GFP_NOFS | __GFP_ZERO); if (session == NULL) session = ERR_PTR(-ENOMEM); return session; @@ -251,7 +251,7 @@ int ccc_req_init(const struct lu_env *env, struct cl_device *dev, struct ccc_req *vrq; int result; - OBD_SLAB_ALLOC_PTR_GFP(vrq, ccc_req_kmem, GFP_NOFS); + vrq = kmem_cache_alloc(ccc_req_kmem, GFP_NOFS | __GFP_ZERO); if (vrq != NULL) { cl_req_slice_add(req, &vrq->crq_cl, dev, &ccc_req_ops); result = 0; @@ -327,7 +327,7 @@ struct lu_object *ccc_object_alloc(const struct lu_env *env, struct ccc_object *vob; struct lu_object *obj; - OBD_SLAB_ALLOC_PTR_GFP(vob, ccc_object_kmem, GFP_NOFS); + vob = kmem_cache_alloc(ccc_object_kmem, GFP_NOFS | __GFP_ZERO); if (vob != NULL) { struct cl_object_header *hdr; @@ -396,7 +396,7 @@ int ccc_lock_init(const struct lu_env *env, CLOBINVRNT(env, obj, ccc_object_invariant(obj)); - OBD_SLAB_ALLOC_PTR_GFP(clk, ccc_lock_kmem, GFP_NOFS); + clk = kmem_cache_alloc(ccc_lock_kmem, GFP_NOFS | __GFP_ZERO); if (clk != NULL) { cl_lock_slice_add(lock, &clk->clk_cl, obj, lkops); result = 0; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c index 57b997dc42f5..644a413ac768 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c @@ -112,7 +112,7 @@ struct ldlm_interval *ldlm_interval_alloc(struct ldlm_lock *lock) struct ldlm_interval *node; LASSERT(lock->l_resource->lr_type == LDLM_EXTENT); - OBD_SLAB_ALLOC_PTR_GFP(node, ldlm_interval_slab, GFP_NOFS); + node = kmem_cache_alloc(ldlm_interval_slab, GFP_NOFS | __GFP_ZERO); if (node == NULL) return NULL; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 1600375f74b6..b1a347f883f9 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -415,7 +415,7 @@ static struct ldlm_lock *ldlm_lock_new(struct ldlm_resource *resource) if (resource == NULL) LBUG(); - OBD_SLAB_ALLOC_PTR_GFP(lock, ldlm_lock_slab, GFP_NOFS); + lock = kmem_cache_alloc(ldlm_lock_slab, GFP_NOFS | __GFP_ZERO); if (lock == NULL) return NULL; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index e09f2cdb1fbc..6077ffb4283f 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -1031,7 +1031,7 @@ static struct ldlm_resource *ldlm_resource_new(void) struct ldlm_resource *res; int idx; - OBD_SLAB_ALLOC_PTR_GFP(res, ldlm_resource_slab, GFP_NOFS); + res = kmem_cache_alloc(ldlm_resource_slab, GFP_NOFS | __GFP_ZERO); if (res == NULL) return NULL; diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index e724a1425ab9..f5905098e5e9 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -64,7 +64,7 @@ static struct ll_file_data *ll_file_data_get(void) { struct ll_file_data *fd; - OBD_SLAB_ALLOC_PTR_GFP(fd, ll_file_data_slab, GFP_NOFS); + fd = kmem_cache_alloc(ll_file_data_slab, GFP_NOFS | __GFP_ZERO); if (fd == NULL) return NULL; fd->fd_write_failed = false; diff --git a/drivers/staging/lustre/lustre/llite/remote_perm.c b/drivers/staging/lustre/lustre/llite/remote_perm.c index dc33055acf3b..7b5ec4174ea6 100644 --- a/drivers/staging/lustre/lustre/llite/remote_perm.c +++ b/drivers/staging/lustre/lustre/llite/remote_perm.c @@ -61,7 +61,7 @@ static inline struct ll_remote_perm *alloc_ll_remote_perm(void) { struct ll_remote_perm *lrp; - OBD_SLAB_ALLOC_PTR_GFP(lrp, ll_remote_perm_cachep, GFP_KERNEL); + lrp = kmem_cache_alloc(ll_remote_perm_cachep, GFP_KERNEL | __GFP_ZERO); if (lrp) INIT_HLIST_NODE(&lrp->lrp_list); return lrp; diff --git a/drivers/staging/lustre/lustre/llite/super25.c b/drivers/staging/lustre/lustre/llite/super25.c index dae1f9caf0db..639499482e76 100644 --- a/drivers/staging/lustre/lustre/llite/super25.c +++ b/drivers/staging/lustre/lustre/llite/super25.c @@ -53,7 +53,7 @@ static struct inode *ll_alloc_inode(struct super_block *sb) struct ll_inode_info *lli; ll_stats_ops_tally(ll_s2sbi(sb), LPROC_LL_ALLOC_INODE, 1); - OBD_SLAB_ALLOC_PTR_GFP(lli, ll_inode_cachep, GFP_NOFS); + lli = kmem_cache_alloc(ll_inode_cachep, GFP_NOFS | __GFP_ZERO); if (lli == NULL) return NULL; diff --git a/drivers/staging/lustre/lustre/llite/vvp_dev.c b/drivers/staging/lustre/lustre/llite/vvp_dev.c index 9f7449fadb80..3fe8e638dcc5 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_dev.c +++ b/drivers/staging/lustre/lustre/llite/vvp_dev.c @@ -79,7 +79,7 @@ static void *vvp_key_init(const struct lu_context *ctx, { struct vvp_thread_info *info; - OBD_SLAB_ALLOC_PTR_GFP(info, vvp_thread_kmem, GFP_NOFS); + info = kmem_cache_alloc(vvp_thread_kmem, GFP_NOFS | __GFP_ZERO); if (info == NULL) info = ERR_PTR(-ENOMEM); return info; @@ -98,7 +98,7 @@ static void *vvp_session_key_init(const struct lu_context *ctx, { struct vvp_session *session; - OBD_SLAB_ALLOC_PTR_GFP(session, vvp_session_kmem, GFP_NOFS); + session = kmem_cache_alloc(vvp_session_kmem, GFP_NOFS | __GFP_ZERO); if (session == NULL) session = ERR_PTR(-ENOMEM); return session; diff --git a/drivers/staging/lustre/lustre/llite/xattr_cache.c b/drivers/staging/lustre/lustre/llite/xattr_cache.c index 819d3867183c..ca6cddb906db 100644 --- a/drivers/staging/lustre/lustre/llite/xattr_cache.c +++ b/drivers/staging/lustre/lustre/llite/xattr_cache.c @@ -115,7 +115,7 @@ static int ll_xattr_cache_add(struct list_head *cache, return -EPROTO; } - OBD_SLAB_ALLOC_PTR_GFP(xattr, xattr_kmem, GFP_NOFS); + xattr = kmem_cache_alloc(xattr_kmem, GFP_NOFS | __GFP_ZERO); if (xattr == NULL) { CDEBUG(D_CACHE, "failed to allocate xattr\n"); return -ENOMEM; diff --git a/drivers/staging/lustre/lustre/lov/lov_dev.c b/drivers/staging/lustre/lustre/lov/lov_dev.c index 6f89c194d51f..ed36797517c1 100644 --- a/drivers/staging/lustre/lustre/lov/lov_dev.c +++ b/drivers/staging/lustre/lustre/lov/lov_dev.c @@ -142,7 +142,7 @@ static void *lov_key_init(const struct lu_context *ctx, { struct lov_thread_info *info; - OBD_SLAB_ALLOC_PTR_GFP(info, lov_thread_kmem, GFP_NOFS); + info = kmem_cache_alloc(lov_thread_kmem, GFP_NOFS | __GFP_ZERO); if (info != NULL) INIT_LIST_HEAD(&info->lti_closure.clc_list); else @@ -170,7 +170,7 @@ static void *lov_session_key_init(const struct lu_context *ctx, { struct lov_session *info; - OBD_SLAB_ALLOC_PTR_GFP(info, lov_session_kmem, GFP_NOFS); + info = kmem_cache_alloc(lov_session_kmem, GFP_NOFS | __GFP_ZERO); if (info == NULL) info = ERR_PTR(-ENOMEM); return info; @@ -261,7 +261,7 @@ static int lov_req_init(const struct lu_env *env, struct cl_device *dev, struct lov_req *lr; int result; - OBD_SLAB_ALLOC_PTR_GFP(lr, lov_req_kmem, GFP_NOFS); + lr = kmem_cache_alloc(lov_req_kmem, GFP_NOFS | __GFP_ZERO); if (lr != NULL) { cl_req_slice_add(req, &lr->lr_cl, dev, &lov_req_ops); result = 0; diff --git a/drivers/staging/lustre/lustre/lov/lov_ea.c b/drivers/staging/lustre/lustre/lov/lov_ea.c index 3f51b573e1fb..a453cb942176 100644 --- a/drivers/staging/lustre/lustre/lov/lov_ea.c +++ b/drivers/staging/lustre/lustre/lov/lov_ea.c @@ -100,7 +100,7 @@ struct lov_stripe_md *lsm_alloc_plain(__u16 stripe_count, int *size) return NULL; for (i = 0; i < stripe_count; i++) { - OBD_SLAB_ALLOC_PTR_GFP(loi, lov_oinfo_slab, GFP_NOFS); + loi = kmem_cache_alloc(lov_oinfo_slab, GFP_NOFS | __GFP_ZERO); if (loi == NULL) goto err; lsm->lsm_oinfo[i] = loi; diff --git a/drivers/staging/lustre/lustre/lov/lov_lock.c b/drivers/staging/lustre/lustre/lov/lov_lock.c index 1a26496d844b..fe126a773992 100644 --- a/drivers/staging/lustre/lustre/lov/lov_lock.c +++ b/drivers/staging/lustre/lustre/lov/lov_lock.c @@ -144,7 +144,7 @@ static struct cl_lock *lov_sublock_alloc(const struct lu_env *env, LASSERT(idx < lck->lls_nr); - OBD_SLAB_ALLOC_PTR_GFP(link, lov_lock_link_kmem, GFP_NOFS); + link = kmem_cache_alloc(lov_lock_link_kmem, GFP_NOFS | __GFP_ZERO); if (link != NULL) { struct lov_sublock_env *subenv; struct lov_lock_sub *lls; @@ -1139,7 +1139,7 @@ int lov_lock_init_raid0(const struct lu_env *env, struct cl_object *obj, struct lov_lock *lck; int result; - OBD_SLAB_ALLOC_PTR_GFP(lck, lov_lock_kmem, GFP_NOFS); + lck = kmem_cache_alloc(lov_lock_kmem, GFP_NOFS | __GFP_ZERO); if (lck != NULL) { cl_lock_slice_add(lock, &lck->lls_cl, obj, &lov_lock_ops); result = lov_lock_sub_init(env, lck, io); @@ -1175,7 +1175,7 @@ int lov_lock_init_empty(const struct lu_env *env, struct cl_object *obj, struct lov_lock *lck; int result = -ENOMEM; - OBD_SLAB_ALLOC_PTR_GFP(lck, lov_lock_kmem, GFP_NOFS); + lck = kmem_cache_alloc(lov_lock_kmem, GFP_NOFS | __GFP_ZERO); if (lck != NULL) { cl_lock_slice_add(lock, &lck->lls_cl, obj, &lov_empty_lock_ops); lck->lls_orig = lock->cll_descr; diff --git a/drivers/staging/lustre/lustre/lov/lov_object.c b/drivers/staging/lustre/lustre/lov/lov_object.c index 1837bbff76bf..571a06e90614 100644 --- a/drivers/staging/lustre/lustre/lov/lov_object.c +++ b/drivers/staging/lustre/lustre/lov/lov_object.c @@ -891,7 +891,7 @@ struct lu_object *lov_object_alloc(const struct lu_env *env, struct lov_object *lov; struct lu_object *obj; - OBD_SLAB_ALLOC_PTR_GFP(lov, lov_object_kmem, GFP_NOFS); + lov = kmem_cache_alloc(lov_object_kmem, GFP_NOFS | __GFP_ZERO); if (lov != NULL) { obj = lov2lu(lov); lu_object_init(obj, NULL, dev); diff --git a/drivers/staging/lustre/lustre/lov/lovsub_dev.c b/drivers/staging/lustre/lustre/lov/lovsub_dev.c index 8cbbfb03c849..5053bfba20fe 100644 --- a/drivers/staging/lustre/lustre/lov/lovsub_dev.c +++ b/drivers/staging/lustre/lustre/lov/lovsub_dev.c @@ -146,7 +146,7 @@ static int lovsub_req_init(const struct lu_env *env, struct cl_device *dev, struct lovsub_req *lsr; int result; - OBD_SLAB_ALLOC_PTR_GFP(lsr, lovsub_req_kmem, GFP_NOFS); + lsr = kmem_cache_alloc(lovsub_req_kmem, GFP_NOFS | __GFP_ZERO); if (lsr != NULL) { cl_req_slice_add(req, &lsr->lsrq_cl, dev, &lovsub_req_ops); result = 0; diff --git a/drivers/staging/lustre/lustre/lov/lovsub_lock.c b/drivers/staging/lustre/lustre/lov/lovsub_lock.c index 62b696d25d81..88373e8410c0 100644 --- a/drivers/staging/lustre/lustre/lov/lovsub_lock.c +++ b/drivers/staging/lustre/lustre/lov/lovsub_lock.c @@ -453,7 +453,7 @@ int lovsub_lock_init(const struct lu_env *env, struct cl_object *obj, struct lovsub_lock *lsk; int result; - OBD_SLAB_ALLOC_PTR_GFP(lsk, lovsub_lock_kmem, GFP_NOFS); + lsk = kmem_cache_alloc(lovsub_lock_kmem, GFP_NOFS | __GFP_ZERO); if (lsk != NULL) { INIT_LIST_HEAD(&lsk->lss_parents); cl_lock_slice_add(lock, &lsk->lss_cl, obj, &lovsub_lock_ops); diff --git a/drivers/staging/lustre/lustre/lov/lovsub_object.c b/drivers/staging/lustre/lustre/lov/lovsub_object.c index f2d885212f19..5c94d0bebaf1 100644 --- a/drivers/staging/lustre/lustre/lov/lovsub_object.c +++ b/drivers/staging/lustre/lustre/lov/lovsub_object.c @@ -143,7 +143,7 @@ struct lu_object *lovsub_object_alloc(const struct lu_env *env, struct lovsub_object *los; struct lu_object *obj; - OBD_SLAB_ALLOC_PTR_GFP(los, lovsub_object_kmem, GFP_NOFS); + los = kmem_cache_alloc(lovsub_object_kmem, GFP_NOFS | __GFP_ZERO); if (los != NULL) { struct cl_object_header *hdr; diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index 4338aeed1f60..b9227ab254bd 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c @@ -361,7 +361,7 @@ static struct cl_lock *cl_lock_alloc(const struct lu_env *env, struct cl_lock *lock; struct lu_object_header *head; - OBD_SLAB_ALLOC_PTR_GFP(lock, cl_lock_kmem, GFP_NOFS); + lock = kmem_cache_alloc(cl_lock_kmem, GFP_NOFS | __GFP_ZERO); if (lock != NULL) { atomic_set(&lock->cll_ref, 1); lock->cll_descr = *descr; diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index a29540360fd5..b7d0f2649e1e 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -661,7 +661,7 @@ static struct lu_env *cl_env_new(__u32 ctx_tags, __u32 ses_tags, void *debug) struct lu_env *env; struct cl_env *cle; - OBD_SLAB_ALLOC_PTR_GFP(cle, cl_env_kmem, GFP_NOFS); + cle = kmem_cache_alloc(cl_env_kmem, GFP_NOFS | __GFP_ZERO); if (cle != NULL) { int rc; diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index ab0748b1765b..6fd58895703d 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -68,7 +68,7 @@ static struct obd_device *obd_device_alloc(void) { struct obd_device *obd; - OBD_SLAB_ALLOC_PTR_GFP(obd, obd_device_cachep, GFP_NOFS); + obd = kmem_cache_alloc(obd_device_cachep, GFP_NOFS | __GFP_ZERO); if (obd != NULL) obd->obd_magic = OBD_DEVICE_MAGIC; return obd; diff --git a/drivers/staging/lustre/lustre/obdecho/echo_client.c b/drivers/staging/lustre/lustre/obdecho/echo_client.c index ef9cb31ecb57..19d1664c9392 100644 --- a/drivers/staging/lustre/lustre/obdecho/echo_client.c +++ b/drivers/staging/lustre/lustre/obdecho/echo_client.c @@ -396,7 +396,7 @@ static int echo_lock_init(const struct lu_env *env, { struct echo_lock *el; - OBD_SLAB_ALLOC_PTR_GFP(el, echo_lock_kmem, GFP_NOFS); + el = kmem_cache_alloc(echo_lock_kmem, GFP_NOFS | __GFP_ZERO); if (el != NULL) { cl_lock_slice_add(lock, &el->el_cl, obj, &echo_lock_ops); el->el_object = cl2echo_obj(obj); @@ -567,7 +567,7 @@ static struct lu_object *echo_object_alloc(const struct lu_env *env, /* we're the top dev. */ LASSERT(hdr == NULL); - OBD_SLAB_ALLOC_PTR_GFP(eco, echo_object_kmem, GFP_NOFS); + eco = kmem_cache_alloc(echo_object_kmem, GFP_NOFS | __GFP_ZERO); if (eco != NULL) { struct cl_object_header *hdr = &eco->eo_hdr; @@ -630,7 +630,7 @@ static void *echo_thread_key_init(const struct lu_context *ctx, { struct echo_thread_info *info; - OBD_SLAB_ALLOC_PTR_GFP(info, echo_thread_kmem, GFP_NOFS); + info = kmem_cache_alloc(echo_thread_kmem, GFP_NOFS | __GFP_ZERO); if (info == NULL) info = ERR_PTR(-ENOMEM); return info; @@ -661,7 +661,7 @@ static void *echo_session_key_init(const struct lu_context *ctx, { struct echo_session_info *session; - OBD_SLAB_ALLOC_PTR_GFP(session, echo_session_kmem, GFP_NOFS); + session = kmem_cache_alloc(echo_session_kmem, GFP_NOFS | __GFP_ZERO); if (session == NULL) session = ERR_PTR(-ENOMEM); return session; diff --git a/drivers/staging/lustre/lustre/osc/osc_cache.c b/drivers/staging/lustre/lustre/osc/osc_cache.c index b552a5611fdf..dae13d9522f3 100644 --- a/drivers/staging/lustre/lustre/osc/osc_cache.c +++ b/drivers/staging/lustre/lustre/osc/osc_cache.c @@ -346,7 +346,7 @@ static struct osc_extent *osc_extent_alloc(struct osc_object *obj) { struct osc_extent *ext; - OBD_SLAB_ALLOC_PTR_GFP(ext, osc_extent_kmem, GFP_IOFS); + ext = kmem_cache_alloc(osc_extent_kmem, GFP_IOFS | __GFP_ZERO); if (ext == NULL) return NULL; diff --git a/drivers/staging/lustre/lustre/osc/osc_dev.c b/drivers/staging/lustre/lustre/osc/osc_dev.c index 91fdec44792b..f10757ef65d3 100644 --- a/drivers/staging/lustre/lustre/osc/osc_dev.c +++ b/drivers/staging/lustre/lustre/osc/osc_dev.c @@ -122,7 +122,7 @@ static void *osc_key_init(const struct lu_context *ctx, { struct osc_thread_info *info; - OBD_SLAB_ALLOC_PTR_GFP(info, osc_thread_kmem, GFP_NOFS); + info = kmem_cache_alloc(osc_thread_kmem, GFP_NOFS | __GFP_ZERO); if (info == NULL) info = ERR_PTR(-ENOMEM); return info; @@ -147,7 +147,7 @@ static void *osc_session_init(const struct lu_context *ctx, { struct osc_session *info; - OBD_SLAB_ALLOC_PTR_GFP(info, osc_session_kmem, GFP_NOFS); + info = kmem_cache_alloc(osc_session_kmem, GFP_NOFS | __GFP_ZERO); if (info == NULL) info = ERR_PTR(-ENOMEM); return info; diff --git a/drivers/staging/lustre/lustre/osc/osc_io.c b/drivers/staging/lustre/lustre/osc/osc_io.c index 3a4200fa8b6f..9f995e7aea95 100644 --- a/drivers/staging/lustre/lustre/osc/osc_io.c +++ b/drivers/staging/lustre/lustre/osc/osc_io.c @@ -803,7 +803,7 @@ int osc_req_init(const struct lu_env *env, struct cl_device *dev, struct osc_req *or; int result; - OBD_SLAB_ALLOC_PTR_GFP(or, osc_req_kmem, GFP_NOFS); + or = kmem_cache_alloc(osc_req_kmem, GFP_NOFS | __GFP_ZERO); if (or != NULL) { cl_req_slice_add(req, &or->or_cl, dev, &osc_req_ops); result = 0; diff --git a/drivers/staging/lustre/lustre/osc/osc_lock.c b/drivers/staging/lustre/lustre/osc/osc_lock.c index 70b1b43f692b..fbeaa1dabbeb 100644 --- a/drivers/staging/lustre/lustre/osc/osc_lock.c +++ b/drivers/staging/lustre/lustre/osc/osc_lock.c @@ -1555,7 +1555,7 @@ int osc_lock_init(const struct lu_env *env, struct osc_lock *clk; int result; - OBD_SLAB_ALLOC_PTR_GFP(clk, osc_lock_kmem, GFP_NOFS); + clk = kmem_cache_alloc(osc_lock_kmem, GFP_NOFS | __GFP_ZERO); if (clk != NULL) { __u32 enqflags = lock->cll_descr.cld_enq_flags; diff --git a/drivers/staging/lustre/lustre/osc/osc_object.c b/drivers/staging/lustre/lustre/osc/osc_object.c index acffab954ad7..5ed88ae74143 100644 --- a/drivers/staging/lustre/lustre/osc/osc_object.c +++ b/drivers/staging/lustre/lustre/osc/osc_object.c @@ -255,7 +255,7 @@ struct lu_object *osc_object_alloc(const struct lu_env *env, struct osc_object *osc; struct lu_object *obj; - OBD_SLAB_ALLOC_PTR_GFP(osc, osc_object_kmem, GFP_NOFS); + osc = kmem_cache_alloc(osc_object_kmem, GFP_NOFS | __GFP_ZERO); if (osc != NULL) { obj = osc2lu(osc); lu_object_init(obj, NULL, dev); diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index 083f99cb0e48..bda63aaf1ad0 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -423,7 +423,7 @@ struct ptlrpc_request *ptlrpc_request_cache_alloc(gfp_t flags) { struct ptlrpc_request *req; - OBD_SLAB_ALLOC_PTR_GFP(req, request_cache, flags); + req = kmem_cache_alloc(request_cache, flags | __GFP_ZERO); return req; } From ebbc7c8b920e57c4ab3291b382ada1b92ca70822 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:50 +0300 Subject: [PATCH 2055/2431] staging: lustre: replace OBD_SLAB_ALLOC_GFP with kmem_cache_alloc Use kmem_cache_free directly instead of wrapping macro. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/llite/remote_perm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/llite/remote_perm.c b/drivers/staging/lustre/lustre/llite/remote_perm.c index 7b5ec4174ea6..4257d74c212a 100644 --- a/drivers/staging/lustre/lustre/llite/remote_perm.c +++ b/drivers/staging/lustre/lustre/llite/remote_perm.c @@ -82,9 +82,7 @@ static struct hlist_head *alloc_rmtperm_hash(void) struct hlist_head *hash; int i; - OBD_SLAB_ALLOC_GFP(hash, ll_rmtperm_hash_cachep, - REMOTE_PERM_HASHSIZE * sizeof(*hash), - GFP_IOFS); + hash = kmem_cache_alloc(ll_rmtperm_hash_cachep, GFP_IOFS | __GFP_ZERO); if (!hash) return NULL; From 50d3036294e9d4c5763e5fbc6557e5b07c2bdac0 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:51 +0300 Subject: [PATCH 2056/2431] staging: lustre: replace OBD_SLAB_FREE_PTR with kmem_cache_free Use kmem_cache_free directly instead of wrapping macro. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 10 +++++----- drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/llite/super25.c | 2 +- drivers/staging/lustre/lustre/llite/vvp_dev.c | 4 ++-- drivers/staging/lustre/lustre/llite/xattr_cache.c | 4 ++-- drivers/staging/lustre/lustre/lov/lov_dev.c | 6 +++--- drivers/staging/lustre/lustre/lov/lov_lock.c | 10 +++++----- drivers/staging/lustre/lustre/lov/lov_object.c | 2 +- drivers/staging/lustre/lustre/lov/lovsub_dev.c | 2 +- drivers/staging/lustre/lustre/lov/lovsub_lock.c | 2 +- drivers/staging/lustre/lustre/lov/lovsub_object.c | 2 +- drivers/staging/lustre/lustre/obdclass/cl_lock.c | 2 +- drivers/staging/lustre/lustre/obdclass/cl_object.c | 4 ++-- drivers/staging/lustre/lustre/obdclass/genops.c | 2 +- drivers/staging/lustre/lustre/obdecho/echo_client.c | 8 ++++---- drivers/staging/lustre/lustre/osc/osc_cache.c | 2 +- drivers/staging/lustre/lustre/osc/osc_dev.c | 4 ++-- drivers/staging/lustre/lustre/osc/osc_io.c | 2 +- drivers/staging/lustre/lustre/osc/osc_lock.c | 2 +- drivers/staging/lustre/lustre/osc/osc_object.c | 2 +- drivers/staging/lustre/lustre/osc/osc_quota.c | 6 +++--- drivers/staging/lustre/lustre/ptlrpc/client.c | 2 +- 22 files changed, 41 insertions(+), 41 deletions(-) diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index 7794bfaba4dd..0b8e4d2175ae 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c @@ -127,7 +127,7 @@ void ccc_key_fini(const struct lu_context *ctx, { struct ccc_thread_info *info = data; - OBD_SLAB_FREE_PTR(info, ccc_thread_kmem); + kmem_cache_free(ccc_thread_kmem, info); } void *ccc_session_key_init(const struct lu_context *ctx, @@ -146,7 +146,7 @@ void ccc_session_key_fini(const struct lu_context *ctx, { struct ccc_session *session = data; - OBD_SLAB_FREE_PTR(session, ccc_session_kmem); + kmem_cache_free(ccc_session_kmem, session); } struct lu_context_key ccc_key = { @@ -383,7 +383,7 @@ void ccc_object_free(const struct lu_env *env, struct lu_object *obj) lu_object_fini(obj); lu_object_header_fini(obj->lo_header); - OBD_SLAB_FREE_PTR(vob, ccc_object_kmem); + kmem_cache_free(ccc_object_kmem, vob); } int ccc_lock_init(const struct lu_env *env, @@ -511,7 +511,7 @@ void ccc_lock_fini(const struct lu_env *env, struct cl_lock_slice *slice) { struct ccc_lock *clk = cl2ccc_lock(slice); - OBD_SLAB_FREE_PTR(clk, ccc_lock_kmem); + kmem_cache_free(ccc_lock_kmem, clk); } int ccc_lock_enqueue(const struct lu_env *env, @@ -804,7 +804,7 @@ void ccc_req_completion(const struct lu_env *env, cl_stats_tally(slice->crs_dev, slice->crs_req->crq_type, ioret); vrq = cl2ccc_req(slice); - OBD_SLAB_FREE_PTR(vrq, ccc_req_kmem); + kmem_cache_free(ccc_req_kmem, vrq); } /** diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index f5905098e5e9..11bf2c60c31a 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -74,7 +74,7 @@ static struct ll_file_data *ll_file_data_get(void) static void ll_file_data_put(struct ll_file_data *fd) { if (fd != NULL) - OBD_SLAB_FREE_PTR(fd, ll_file_data_slab); + kmem_cache_free(ll_file_data_slab, fd); } void ll_pack_inode2opdata(struct inode *inode, struct md_op_data *op_data, diff --git a/drivers/staging/lustre/lustre/llite/super25.c b/drivers/staging/lustre/lustre/llite/super25.c index 639499482e76..013136860664 100644 --- a/drivers/staging/lustre/lustre/llite/super25.c +++ b/drivers/staging/lustre/lustre/llite/super25.c @@ -66,7 +66,7 @@ static void ll_inode_destroy_callback(struct rcu_head *head) struct inode *inode = container_of(head, struct inode, i_rcu); struct ll_inode_info *ptr = ll_i2info(inode); - OBD_SLAB_FREE_PTR(ptr, ll_inode_cachep); + kmem_cache_free(ll_inode_cachep, ptr); } static void ll_destroy_inode(struct inode *inode) diff --git a/drivers/staging/lustre/lustre/llite/vvp_dev.c b/drivers/staging/lustre/lustre/llite/vvp_dev.c index 3fe8e638dcc5..d16d6cfce81a 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_dev.c +++ b/drivers/staging/lustre/lustre/llite/vvp_dev.c @@ -90,7 +90,7 @@ static void vvp_key_fini(const struct lu_context *ctx, { struct vvp_thread_info *info = data; - OBD_SLAB_FREE_PTR(info, vvp_thread_kmem); + kmem_cache_free(vvp_thread_kmem, info); } static void *vvp_session_key_init(const struct lu_context *ctx, @@ -109,7 +109,7 @@ static void vvp_session_key_fini(const struct lu_context *ctx, { struct vvp_session *session = data; - OBD_SLAB_FREE_PTR(session, vvp_session_kmem); + kmem_cache_free(vvp_session_kmem, session); } struct lu_context_key vvp_key = { diff --git a/drivers/staging/lustre/lustre/llite/xattr_cache.c b/drivers/staging/lustre/lustre/llite/xattr_cache.c index ca6cddb906db..e1e599ceb173 100644 --- a/drivers/staging/lustre/lustre/llite/xattr_cache.c +++ b/drivers/staging/lustre/lustre/llite/xattr_cache.c @@ -141,7 +141,7 @@ static int ll_xattr_cache_add(struct list_head *cache, err_value: kfree(xattr->xe_name); err_name: - OBD_SLAB_FREE_PTR(xattr, xattr_kmem); + kmem_cache_free(xattr_kmem, xattr); return -ENOMEM; } @@ -165,7 +165,7 @@ static int ll_xattr_cache_del(struct list_head *cache, list_del(&xattr->xe_list); kfree(xattr->xe_name); kfree(xattr->xe_value); - OBD_SLAB_FREE_PTR(xattr, xattr_kmem); + kmem_cache_free(xattr_kmem, xattr); return 0; } diff --git a/drivers/staging/lustre/lustre/lov/lov_dev.c b/drivers/staging/lustre/lustre/lov/lov_dev.c index ed36797517c1..2e8b566458f6 100644 --- a/drivers/staging/lustre/lustre/lov/lov_dev.c +++ b/drivers/staging/lustre/lustre/lov/lov_dev.c @@ -124,7 +124,7 @@ static void lov_req_completion(const struct lu_env *env, struct lov_req *lr; lr = cl2lov_req(slice); - OBD_SLAB_FREE_PTR(lr, lov_req_kmem); + kmem_cache_free(lov_req_kmem, lr); } static const struct cl_req_operations lov_req_ops = { @@ -156,7 +156,7 @@ static void lov_key_fini(const struct lu_context *ctx, struct lov_thread_info *info = data; LINVRNT(list_empty(&info->lti_closure.clc_list)); - OBD_SLAB_FREE_PTR(info, lov_thread_kmem); + kmem_cache_free(lov_thread_kmem, info); } struct lu_context_key lov_key = { @@ -181,7 +181,7 @@ static void lov_session_key_fini(const struct lu_context *ctx, { struct lov_session *info = data; - OBD_SLAB_FREE_PTR(info, lov_session_kmem); + kmem_cache_free(lov_session_kmem, info); } struct lu_context_key lov_session_key = { diff --git a/drivers/staging/lustre/lustre/lov/lov_lock.c b/drivers/staging/lustre/lustre/lov/lov_lock.c index fe126a773992..d866791d7b22 100644 --- a/drivers/staging/lustre/lustre/lov/lov_lock.c +++ b/drivers/staging/lustre/lustre/lov/lov_lock.c @@ -173,7 +173,7 @@ static struct cl_lock *lov_sublock_alloc(const struct lu_env *env, if (!IS_ERR(sublock)) *out = link; else - OBD_SLAB_FREE_PTR(link, lov_lock_link_kmem); + kmem_cache_free(lov_lock_link_kmem, link); } else sublock = ERR_PTR(-ENOMEM); return sublock; @@ -444,7 +444,7 @@ static void lov_lock_fini(const struct lu_env *env, LASSERT(lck->lls_sub[i].sub_lock == NULL); kvfree(lck->lls_sub); } - OBD_SLAB_FREE_PTR(lck, lov_lock_kmem); + kmem_cache_free(lov_lock_kmem, lck); } static int lov_lock_enqueue_wait(const struct lu_env *env, @@ -518,7 +518,7 @@ static int lov_sublock_fill(const struct lu_env *env, struct cl_lock *parent, lck->lls_sub[idx].sub_lock == NULL) { lov_sublock_adopt(env, lck, sublock, idx, link); } else { - OBD_SLAB_FREE_PTR(link, lov_lock_link_kmem); + kmem_cache_free(lov_lock_link_kmem, link); /* other thread allocated sub-lock, or enqueue is no * longer going on */ cl_lock_mutex_put(env, parent); @@ -1027,7 +1027,7 @@ void lov_lock_unlink(const struct lu_env *env, lck->lls_nr_filled--; lu_ref_del(&parent->cll_reference, "lov-child", sub->lss_cl.cls_lock); cl_lock_put(env, parent); - OBD_SLAB_FREE_PTR(link, lov_lock_link_kmem); + kmem_cache_free(lov_lock_link_kmem, link); } struct lov_lock_link *lov_lock_link_find(const struct lu_env *env, @@ -1153,7 +1153,7 @@ static void lov_empty_lock_fini(const struct lu_env *env, { struct lov_lock *lck = cl2lov_lock(slice); - OBD_SLAB_FREE_PTR(lck, lov_lock_kmem); + kmem_cache_free(lov_lock_kmem, lck); } static int lov_empty_lock_print(const struct lu_env *env, void *cookie, diff --git a/drivers/staging/lustre/lustre/lov/lov_object.c b/drivers/staging/lustre/lustre/lov/lov_object.c index 571a06e90614..c7ff817bb6fb 100644 --- a/drivers/staging/lustre/lustre/lov/lov_object.c +++ b/drivers/staging/lustre/lustre/lov/lov_object.c @@ -808,7 +808,7 @@ static void lov_object_free(const struct lu_env *env, struct lu_object *obj) LOV_2DISPATCH_VOID(lov, llo_fini, env, lov, &lov->u); lu_object_fini(obj); - OBD_SLAB_FREE_PTR(lov, lov_object_kmem); + kmem_cache_free(lov_object_kmem, lov); } static int lov_object_print(const struct lu_env *env, void *cookie, diff --git a/drivers/staging/lustre/lustre/lov/lovsub_dev.c b/drivers/staging/lustre/lustre/lov/lovsub_dev.c index 5053bfba20fe..8bc04c8d3d60 100644 --- a/drivers/staging/lustre/lustre/lov/lovsub_dev.c +++ b/drivers/staging/lustre/lustre/lov/lovsub_dev.c @@ -56,7 +56,7 @@ static void lovsub_req_completion(const struct lu_env *env, struct lovsub_req *lsr; lsr = cl2lovsub_req(slice); - OBD_SLAB_FREE_PTR(lsr, lovsub_req_kmem); + kmem_cache_free(lovsub_req_kmem, lsr); } /** diff --git a/drivers/staging/lustre/lustre/lov/lovsub_lock.c b/drivers/staging/lustre/lustre/lov/lovsub_lock.c index 88373e8410c0..1a3e30a14895 100644 --- a/drivers/staging/lustre/lustre/lov/lovsub_lock.c +++ b/drivers/staging/lustre/lustre/lov/lovsub_lock.c @@ -59,7 +59,7 @@ static void lovsub_lock_fini(const struct lu_env *env, lsl = cl2lovsub_lock(slice); LASSERT(list_empty(&lsl->lss_parents)); - OBD_SLAB_FREE_PTR(lsl, lovsub_lock_kmem); + kmem_cache_free(lovsub_lock_kmem, lsl); } static void lovsub_parent_lock(const struct lu_env *env, struct lov_lock *lov) diff --git a/drivers/staging/lustre/lustre/lov/lovsub_object.c b/drivers/staging/lustre/lustre/lov/lovsub_object.c index 5c94d0bebaf1..d775e28d4097 100644 --- a/drivers/staging/lustre/lustre/lov/lovsub_object.c +++ b/drivers/staging/lustre/lustre/lov/lovsub_object.c @@ -91,7 +91,7 @@ static void lovsub_object_free(const struct lu_env *env, struct lu_object *obj) lu_object_fini(obj); lu_object_header_fini(&los->lso_header.coh_lu); - OBD_SLAB_FREE_PTR(los, lovsub_object_kmem); + kmem_cache_free(lovsub_object_kmem, los); } static int lovsub_object_print(const struct lu_env *env, void *cookie, diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index b9227ab254bd..5621bebf33a9 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c @@ -270,7 +270,7 @@ static void cl_lock_free(const struct lu_env *env, struct cl_lock *lock) lu_ref_fini(&lock->cll_reference); lu_ref_fini(&lock->cll_holders); mutex_destroy(&lock->cll_guard); - OBD_SLAB_FREE_PTR(lock, cl_lock_kmem); + kmem_cache_free(cl_lock_kmem, lock); } /** diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index b7d0f2649e1e..f59c03cd4705 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -680,7 +680,7 @@ static struct lu_env *cl_env_new(__u32 ctx_tags, __u32 ses_tags, void *debug) lu_env_fini(env); } if (rc != 0) { - OBD_SLAB_FREE_PTR(cle, cl_env_kmem); + kmem_cache_free(cl_env_kmem, cle); env = ERR_PTR(rc); } else { CL_ENV_INC(create); @@ -696,7 +696,7 @@ static void cl_env_fini(struct cl_env *cle) CL_ENV_DEC(total); lu_context_fini(&cle->ce_lu.le_ctx); lu_context_fini(&cle->ce_ses); - OBD_SLAB_FREE_PTR(cle, cl_env_kmem); + kmem_cache_free(cl_env_kmem, cle); } static inline struct cl_env *cl_env_container(struct lu_env *env) diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index 6fd58895703d..6477aeb88028 100644 --- a/drivers/staging/lustre/lustre/obdclass/genops.c +++ b/drivers/staging/lustre/lustre/obdclass/genops.c @@ -85,7 +85,7 @@ static void obd_device_free(struct obd_device *obd) LBUG(); } lu_ref_fini(&obd->obd_reference); - OBD_SLAB_FREE_PTR(obd, obd_device_cachep); + kmem_cache_free(obd_device_cachep, obd); } static struct obd_type *class_search_type(const char *name) diff --git a/drivers/staging/lustre/lustre/obdecho/echo_client.c b/drivers/staging/lustre/lustre/obdecho/echo_client.c index 19d1664c9392..6751382ce338 100644 --- a/drivers/staging/lustre/lustre/obdecho/echo_client.c +++ b/drivers/staging/lustre/lustre/obdecho/echo_client.c @@ -337,7 +337,7 @@ static void echo_lock_fini(const struct lu_env *env, struct echo_lock *ecl = cl2echo_lock(slice); LASSERT(list_empty(&ecl->el_chain)); - OBD_SLAB_FREE_PTR(ecl, echo_lock_kmem); + kmem_cache_free(echo_lock_kmem, ecl); } static void echo_lock_delete(const struct lu_env *env, @@ -530,7 +530,7 @@ static void echo_object_free(const struct lu_env *env, struct lu_object *obj) if (eco->eo_lsm) echo_free_memmd(eco->eo_dev, &eco->eo_lsm); - OBD_SLAB_FREE_PTR(eco, echo_object_kmem); + kmem_cache_free(echo_object_kmem, eco); } static int echo_object_print(const struct lu_env *env, void *cookie, @@ -641,7 +641,7 @@ static void echo_thread_key_fini(const struct lu_context *ctx, { struct echo_thread_info *info = data; - OBD_SLAB_FREE_PTR(info, echo_thread_kmem); + kmem_cache_free(echo_thread_kmem, info); } static void echo_thread_key_exit(const struct lu_context *ctx, @@ -672,7 +672,7 @@ static void echo_session_key_fini(const struct lu_context *ctx, { struct echo_session_info *session = data; - OBD_SLAB_FREE_PTR(session, echo_session_kmem); + kmem_cache_free(echo_session_kmem, session); } static void echo_session_key_exit(const struct lu_context *ctx, diff --git a/drivers/staging/lustre/lustre/osc/osc_cache.c b/drivers/staging/lustre/lustre/osc/osc_cache.c index dae13d9522f3..cfb83bcfcb17 100644 --- a/drivers/staging/lustre/lustre/osc/osc_cache.c +++ b/drivers/staging/lustre/lustre/osc/osc_cache.c @@ -365,7 +365,7 @@ static struct osc_extent *osc_extent_alloc(struct osc_object *obj) static void osc_extent_free(struct osc_extent *ext) { - OBD_SLAB_FREE_PTR(ext, osc_extent_kmem); + kmem_cache_free(osc_extent_kmem, ext); } static struct osc_extent *osc_extent_get(struct osc_extent *ext) diff --git a/drivers/staging/lustre/lustre/osc/osc_dev.c b/drivers/staging/lustre/lustre/osc/osc_dev.c index f10757ef65d3..69b523c0f570 100644 --- a/drivers/staging/lustre/lustre/osc/osc_dev.c +++ b/drivers/staging/lustre/lustre/osc/osc_dev.c @@ -133,7 +133,7 @@ static void osc_key_fini(const struct lu_context *ctx, { struct osc_thread_info *info = data; - OBD_SLAB_FREE_PTR(info, osc_thread_kmem); + kmem_cache_free(osc_thread_kmem, info); } struct lu_context_key osc_key = { @@ -158,7 +158,7 @@ static void osc_session_fini(const struct lu_context *ctx, { struct osc_session *info = data; - OBD_SLAB_FREE_PTR(info, osc_session_kmem); + kmem_cache_free(osc_session_kmem, info); } struct lu_context_key osc_session_key = { diff --git a/drivers/staging/lustre/lustre/osc/osc_io.c b/drivers/staging/lustre/lustre/osc/osc_io.c index 9f995e7aea95..d413496c0f63 100644 --- a/drivers/staging/lustre/lustre/osc/osc_io.c +++ b/drivers/staging/lustre/lustre/osc/osc_io.c @@ -700,7 +700,7 @@ static void osc_req_completion(const struct lu_env *env, struct osc_req *or; or = cl2osc_req(slice); - OBD_SLAB_FREE_PTR(or, osc_req_kmem); + kmem_cache_free(osc_req_kmem, or); } /** diff --git a/drivers/staging/lustre/lustre/osc/osc_lock.c b/drivers/staging/lustre/lustre/osc/osc_lock.c index fbeaa1dabbeb..194490dcaca9 100644 --- a/drivers/staging/lustre/lustre/osc/osc_lock.c +++ b/drivers/staging/lustre/lustre/osc/osc_lock.c @@ -251,7 +251,7 @@ static void osc_lock_fini(const struct lu_env *env, LASSERT(atomic_read(&ols->ols_pageref) == 0 || atomic_read(&ols->ols_pageref) == _PAGEREF_MAGIC); - OBD_SLAB_FREE_PTR(ols, osc_lock_kmem); + kmem_cache_free(osc_lock_kmem, ols); } static void osc_lock_build_policy(const struct lu_env *env, diff --git a/drivers/staging/lustre/lustre/osc/osc_object.c b/drivers/staging/lustre/lustre/osc/osc_object.c index 5ed88ae74143..ba57f8df5c7f 100644 --- a/drivers/staging/lustre/lustre/osc/osc_object.c +++ b/drivers/staging/lustre/lustre/osc/osc_object.c @@ -122,7 +122,7 @@ static void osc_object_free(const struct lu_env *env, struct lu_object *obj) LASSERT(atomic_read(&osc->oo_nr_writes) == 0); lu_object_fini(obj); - OBD_SLAB_FREE_PTR(osc, osc_object_kmem); + kmem_cache_free(osc_object_kmem, osc); } int osc_lvb_print(const struct lu_env *env, void *cookie, diff --git a/drivers/staging/lustre/lustre/osc/osc_quota.c b/drivers/staging/lustre/lustre/osc/osc_quota.c index 98b9bcda7981..df8cfb4fde28 100644 --- a/drivers/staging/lustre/lustre/osc/osc_quota.c +++ b/drivers/staging/lustre/lustre/osc/osc_quota.c @@ -104,7 +104,7 @@ int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[], /* race with others? */ if (rc == -EALREADY) { rc = 0; - OBD_SLAB_FREE_PTR(oqi, osc_quota_kmem); + kmem_cache_free(osc_quota_kmem, oqi); } CDEBUG(D_QUOTA, "%s: setdq to insert for %s %d (%d)\n", @@ -120,7 +120,7 @@ int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[], oqi = cfs_hash_del_key(cli->cl_quota_hash[type], &qid[type]); if (oqi) - OBD_SLAB_FREE_PTR(oqi, osc_quota_kmem); + kmem_cache_free(osc_quota_kmem, oqi); CDEBUG(D_QUOTA, "%s: setdq to remove for %s %d (%p)\n", cli->cl_import->imp_obd->obd_name, @@ -186,7 +186,7 @@ oqi_exit(struct cfs_hash *hs, struct hlist_node *hnode) oqi = hlist_entry(hnode, struct osc_quota_info, oqi_hash); - OBD_SLAB_FREE_PTR(oqi, osc_quota_kmem); + kmem_cache_free(osc_quota_kmem, oqi); } #define HASH_QUOTA_BKT_BITS 5 diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index bda63aaf1ad0..a9f1bf536da9 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -429,7 +429,7 @@ struct ptlrpc_request *ptlrpc_request_cache_alloc(gfp_t flags) void ptlrpc_request_cache_free(struct ptlrpc_request *req) { - OBD_SLAB_FREE_PTR(req, request_cache); + kmem_cache_free(request_cache, req); } /** From 5c4d8ed8e880f6f9d6183e31a52cf89528d11784 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:52 +0300 Subject: [PATCH 2057/2431] staging: lustre: replace OBD_SLAB_FREE with kmem_cache_free Use kmem_cache_free directly instead of wrapping macro. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/ldlm/ldlm_extent.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 6 +++--- drivers/staging/lustre/lustre/llite/remote_perm.c | 5 ++--- drivers/staging/lustre/lustre/lov/lov_ea.c | 5 ++--- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c index 644a413ac768..c787888eb8af 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c @@ -126,7 +126,7 @@ void ldlm_interval_free(struct ldlm_interval *node) if (node) { LASSERT(list_empty(&node->li_group)); LASSERT(!interval_is_intree(&node->li_node)); - OBD_SLAB_FREE(node, ldlm_interval_slab, sizeof(*node)); + kmem_cache_free(ldlm_interval_slab, node); } } diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index b1a347f883f9..7f8c70056ffd 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -392,7 +392,7 @@ static void lock_handle_addref(void *lock) static void lock_handle_free(void *lock, int size) { LASSERT(size == sizeof(struct ldlm_lock)); - OBD_SLAB_FREE(lock, ldlm_lock_slab, size); + kmem_cache_free(ldlm_lock_slab, lock); } static struct portals_handle_ops lock_handle_ops = { diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index 6077ffb4283f..342c465ed9b2 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -1124,7 +1124,7 @@ ldlm_resource_get(struct ldlm_namespace *ns, struct ldlm_resource *parent, lu_ref_fini(&res->lr_reference); /* We have taken lr_lvb_mutex. Drop it. */ mutex_unlock(&res->lr_lvb_mutex); - OBD_SLAB_FREE(res, ldlm_resource_slab, sizeof(*res)); + kmem_cache_free(ldlm_resource_slab, res); res = hlist_entry(hnode, struct ldlm_resource, lr_hash); /* Synchronize with regard to resource creation. */ @@ -1218,7 +1218,7 @@ int ldlm_resource_putref(struct ldlm_resource *res) cfs_hash_bd_unlock(ns->ns_rs_hash, &bd, 1); if (ns->ns_lvbo && ns->ns_lvbo->lvbo_free) ns->ns_lvbo->lvbo_free(res); - OBD_SLAB_FREE(res, ldlm_resource_slab, sizeof(*res)); + kmem_cache_free(ldlm_resource_slab, res); return 1; } return 0; @@ -1248,7 +1248,7 @@ int ldlm_resource_putref_locked(struct ldlm_resource *res) */ if (ns->ns_lvbo && ns->ns_lvbo->lvbo_free) ns->ns_lvbo->lvbo_free(res); - OBD_SLAB_FREE(res, ldlm_resource_slab, sizeof(*res)); + kmem_cache_free(ldlm_resource_slab, res); cfs_hash_bd_lock(ns->ns_rs_hash, &bd, 1); return 1; diff --git a/drivers/staging/lustre/lustre/llite/remote_perm.c b/drivers/staging/lustre/lustre/llite/remote_perm.c index 4257d74c212a..c902133dfc97 100644 --- a/drivers/staging/lustre/lustre/llite/remote_perm.c +++ b/drivers/staging/lustre/lustre/llite/remote_perm.c @@ -74,7 +74,7 @@ static inline void free_ll_remote_perm(struct ll_remote_perm *lrp) if (!hlist_unhashed(&lrp->lrp_list)) hlist_del(&lrp->lrp_list); - OBD_SLAB_FREE(lrp, ll_remote_perm_cachep, sizeof(*lrp)); + kmem_cache_free(ll_remote_perm_cachep, lrp); } static struct hlist_head *alloc_rmtperm_hash(void) @@ -104,8 +104,7 @@ void free_rmtperm_hash(struct hlist_head *hash) for (i = 0; i < REMOTE_PERM_HASHSIZE; i++) hlist_for_each_entry_safe(lrp, next, hash + i, lrp_list) free_ll_remote_perm(lrp); - OBD_SLAB_FREE(hash, ll_rmtperm_hash_cachep, - REMOTE_PERM_HASHSIZE * sizeof(*hash)); + kmem_cache_free(ll_rmtperm_hash_cachep, hash); } static inline int remote_perm_hashfunc(uid_t uid) diff --git a/drivers/staging/lustre/lustre/lov/lov_ea.c b/drivers/staging/lustre/lustre/lov/lov_ea.c index a453cb942176..34c1346f0dc7 100644 --- a/drivers/staging/lustre/lustre/lov/lov_ea.c +++ b/drivers/staging/lustre/lustre/lov/lov_ea.c @@ -110,7 +110,7 @@ struct lov_stripe_md *lsm_alloc_plain(__u16 stripe_count, int *size) err: while (--i >= 0) - OBD_SLAB_FREE(lsm->lsm_oinfo[i], lov_oinfo_slab, sizeof(*loi)); + kmem_cache_free(lov_oinfo_slab, lsm->lsm_oinfo[i]); kvfree(lsm); return NULL; } @@ -121,8 +121,7 @@ void lsm_free_plain(struct lov_stripe_md *lsm) int i; for (i = 0; i < stripe_count; i++) - OBD_SLAB_FREE(lsm->lsm_oinfo[i], lov_oinfo_slab, - sizeof(struct lov_oinfo)); + kmem_cache_free(lov_oinfo_slab, lsm->lsm_oinfo[i]); kvfree(lsm); } From 185938e06f9608de836169c8ff5492154272cec0 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:53 +0300 Subject: [PATCH 2058/2431] staging: lustre: remove unused OBD_SLAB_ALLOC* and OBD_SLAB_FREE* macros The OBD_SLAB_ALLOC* and OBD_SLAB_FREE* macros are not used and can be removed. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- .../lustre/lustre/include/obd_support.h | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index bef80e2b8dd3..7e06d2242df6 100644 --- a/drivers/staging/lustre/lustre/include/obd_support.h +++ b/drivers/staging/lustre/lustre/include/obd_support.h @@ -514,40 +514,6 @@ do { \ POISON_PTR(ptr); \ } while (0) -/* we memset() the slab object to 0 when allocation succeeds, so DO NOT - * HAVE A CTOR THAT DOES ANYTHING. its work will be cleared here. we'd - * love to assert on that, but slab.c keeps kmem_cache_s all to itself. */ - -#define __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, cptab, cpt, size, type) \ -do { \ - LASSERT(ergo((type) != GFP_ATOMIC, !in_interrupt())); \ - (ptr) = (cptab) == NULL ? \ - kmem_cache_alloc(slab, type | __GFP_ZERO) : \ - kmem_cache_alloc_node(slab, type | __GFP_ZERO, \ - cfs_cpt_spread_node(cptab, cpt)); \ -} while (0) - -#define OBD_SLAB_ALLOC_GFP(ptr, slab, size, flags) \ - __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, NULL, 0, size, flags) - -#define OBD_SLAB_FREE(ptr, slab, size) \ -do { \ - kmem_cache_free(slab, ptr); \ - POISON_PTR(ptr); \ -} while (0) - -#define OBD_SLAB_ALLOC(ptr, slab, size) \ - OBD_SLAB_ALLOC_GFP(ptr, slab, size, GFP_NOFS) - -#define OBD_SLAB_ALLOC_PTR(ptr, slab) \ - OBD_SLAB_ALLOC(ptr, slab, sizeof(*(ptr))) - -#define OBD_SLAB_ALLOC_PTR_GFP(ptr, slab, flags) \ - OBD_SLAB_ALLOC_GFP(ptr, slab, sizeof(*(ptr)), flags) - -#define OBD_SLAB_FREE_PTR(ptr, slab) \ - OBD_SLAB_FREE((ptr), (slab), sizeof(*(ptr))) - #define KEY_IS(str) \ (keylen >= (sizeof(str)-1) && memcmp(key, str, (sizeof(str)-1)) == 0) From a1dfc93af0462117db3754846d386e7c47144709 Mon Sep 17 00:00:00 2001 From: Gregoire Pichon Date: Wed, 21 Oct 2015 21:52:39 -0400 Subject: [PATCH 2059/2431] staging: lustre: add a service that prints a nidlist The libcfs already provides services to parse a string into a nidlist and to match a nid into a nidlist. This patch implements a service that prints a nidlist into a buffer. This is required for instance to print the nosquash_nids parameter of the MDT procfs component. Additionally, this patch fixes a bug in return code of parse_addrange() routine, so that parsing of nids including a * character works fine ('*@elan' for instance). Signed-off-by: Gregoire Pichon Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-1778 Reviewed-on: http://review.whamcloud.com/9221 Reviewed-by: Andreas Dilger Reviewed-by: Liang Zhen Reviewed-by: Oleg Drokin Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman --- .../include/linux/libcfs/libcfs_string.h | 2 + .../lustre/include/linux/lnet/nidstr.h | 2 + .../lustre/lustre/libcfs/libcfs_string.c | 71 +++++++++- .../staging/lustre/lustre/libcfs/nidstrings.c | 124 +++++++++++++++++- 4 files changed, 193 insertions(+), 6 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h index 478e9582ff54..d178e43c8f50 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h @@ -83,6 +83,8 @@ int cfs_gettok(struct cfs_lstr *next, char delim, struct cfs_lstr *res); int cfs_str2num_check(char *str, int nob, unsigned *num, unsigned min, unsigned max); int cfs_expr_list_match(__u32 value, struct cfs_expr_list *expr_list); +int cfs_expr_list_print(char *buffer, int count, + struct cfs_expr_list *expr_list); int cfs_expr_list_values(struct cfs_expr_list *expr_list, int max, __u32 **values); static inline void diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h index a627be9fcdd0..082782bd4978 100644 --- a/drivers/staging/lustre/include/linux/lnet/nidstr.h +++ b/drivers/staging/lustre/include/linux/lnet/nidstr.h @@ -69,7 +69,9 @@ int libcfs_str2anynid(lnet_nid_t *nid, const char *str); char *libcfs_id2str(lnet_process_id_t id); void cfs_free_nidlist(struct list_head *list); int cfs_parse_nidlist(char *str, int len, struct list_head *list); +int cfs_print_nidlist(char *buffer, int count, struct list_head *list); int cfs_match_nid(lnet_nid_t nid, struct list_head *list); + bool cfs_nidrange_is_contiguous(struct list_head *nidlist); void cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid, char *max_nid, size_t nidstr_length); diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c index efe5e667a2e5..bbfef983e130 100644 --- a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c +++ b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c @@ -320,6 +320,73 @@ cfs_range_expr_parse(struct cfs_lstr *src, unsigned min, unsigned max, return -EINVAL; } +/** + * Print the range expression \a re into specified \a buffer. + * If \a bracketed is true, expression does not need additional + * brackets. + * + * \retval number of characters written + */ +static int +cfs_range_expr_print(char *buffer, int count, struct cfs_range_expr *expr, + bool bracketed) +{ + int i; + char s[] = "["; + char e[] = "]"; + + if (bracketed) + s[0] = e[0] = '\0'; + + if (expr->re_lo == expr->re_hi) + i = scnprintf(buffer, count, "%u", expr->re_lo); + else if (expr->re_stride == 1) + i = scnprintf(buffer, count, "%s%u-%u%s", + s, expr->re_lo, expr->re_hi, e); + else + i = scnprintf(buffer, count, "%s%u-%u/%u%s", + s, expr->re_lo, expr->re_hi, + expr->re_stride, e); + return i; +} + +/** + * Print a list of range expressions (\a expr_list) into specified \a buffer. + * If the list contains several expressions, separate them with comma + * and surround the list with brackets. + * + * \retval number of characters written + */ +int +cfs_expr_list_print(char *buffer, int count, struct cfs_expr_list *expr_list) +{ + struct cfs_range_expr *expr; + int i = 0, j = 0; + int numexprs = 0; + + if (count <= 0) + return 0; + + list_for_each_entry(expr, &expr_list->el_exprs, re_link) + numexprs++; + + if (numexprs > 1) + i += scnprintf(buffer + i, count - i, "["); + + list_for_each_entry(expr, &expr_list->el_exprs, re_link) { + if (j++ != 0) + i += scnprintf(buffer + i, count - i, ","); + i += cfs_range_expr_print(buffer + i, count - i, expr, + numexprs > 1); + } + + if (numexprs > 1) + i += scnprintf(buffer + i, count - i, "]"); + + return i; +} +EXPORT_SYMBOL(cfs_expr_list_print); + /** * Matches value (\a value) against ranges expression list \a expr_list. * @@ -412,8 +479,8 @@ EXPORT_SYMBOL(cfs_expr_list_free); /** * Parses \ token of the syntax. * - * \retval 1 if \a str parses to \ | \ - * \retval 0 otherwise + * \retval 0 if \a str parses to \ | \ + * \retval -errno otherwise */ int cfs_expr_list_parse(char *str, int len, unsigned min, unsigned max, diff --git a/drivers/staging/lustre/lustre/libcfs/nidstrings.c b/drivers/staging/lustre/lustre/libcfs/nidstrings.c index 087449f4e6c1..a54594a3ad5d 100644 --- a/drivers/staging/lustre/lustre/libcfs/nidstrings.c +++ b/drivers/staging/lustre/lustre/libcfs/nidstrings.c @@ -114,6 +114,21 @@ static int libcfs_ip_str2addr(const char *str, int nob, __u32 *addr) return 0; } +static int +libcfs_ip_addr_range_print(char *buffer, int count, struct list_head *list) +{ + int i = 0, j = 0; + struct cfs_expr_list *el; + + list_for_each_entry(el, list, el_link) { + LASSERT(j++ < 4); + if (i != 0) + i += scnprintf(buffer + i, count - i, "."); + i += cfs_expr_list_print(buffer + i, count - i, el); + } + return i; +} + static void libcfs_decnum_addr2str(__u32 addr, char *str) { snprintf(str, LNET_NIDSTR_SIZE, "%u", addr); @@ -164,6 +179,19 @@ libcfs_num_parse(char *str, int len, struct list_head *list) return rc; } +static int +libcfs_num_addr_range_print(char *buffer, int count, struct list_head *list) +{ + int i = 0, j = 0; + struct cfs_expr_list *el; + + list_for_each_entry(el, list, el_link) { + LASSERT(j++ < 1); + i += cfs_expr_list_print(buffer + i, count - i, el); + } + return i; +} + /* * Nf_match_addr method for networks using numeric addresses * @@ -189,6 +217,8 @@ struct netstrfns { int (*nf_str2addr)(const char *str, int nob, __u32 *addr); int (*nf_parse_addrlist)(char *str, int len, struct list_head *list); + int (*nf_print_addrlist)(char *buffer, int count, + struct list_head *list); int (*nf_match_addr)(__u32 addr, struct list_head *list); }; @@ -199,6 +229,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_decnum_addr2str, /* .nf_str2addr */ libcfs_lo_str2addr, /* .nf_parse_addr*/ libcfs_num_parse, + /* .nf_print_addrlist*/ libcfs_num_addr_range_print, /* .nf_match_addr*/ libcfs_num_match}, {/* .nf_type */ SOCKLND, /* .nf_name */ "tcp", @@ -206,6 +237,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_ip_addr2str, /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, + /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, /* .nf_match_addr*/ cfs_ip_addr_match}, {/* .nf_type */ O2IBLND, /* .nf_name */ "o2ib", @@ -213,6 +245,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_ip_addr2str, /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, + /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, /* .nf_match_addr*/ cfs_ip_addr_match}, {/* .nf_type */ CIBLND, /* .nf_name */ "cib", @@ -220,6 +253,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_ip_addr2str, /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, + /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, /* .nf_match_addr*/ cfs_ip_addr_match}, {/* .nf_type */ OPENIBLND, /* .nf_name */ "openib", @@ -227,6 +261,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_ip_addr2str, /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, + /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, /* .nf_match_addr*/ cfs_ip_addr_match}, {/* .nf_type */ IIBLND, /* .nf_name */ "iib", @@ -234,6 +269,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_ip_addr2str, /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, + /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, /* .nf_match_addr*/ cfs_ip_addr_match}, {/* .nf_type */ VIBLND, /* .nf_name */ "vib", @@ -241,6 +277,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_ip_addr2str, /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, + /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, /* .nf_match_addr*/ cfs_ip_addr_match}, {/* .nf_type */ RALND, /* .nf_name */ "ra", @@ -248,6 +285,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_ip_addr2str, /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, + /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, /* .nf_match_addr*/ cfs_ip_addr_match}, {/* .nf_type */ QSWLND, /* .nf_name */ "elan", @@ -255,6 +293,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_decnum_addr2str, /* .nf_str2addr */ libcfs_num_str2addr, /* .nf_parse_addrlist*/ libcfs_num_parse, + /* .nf_print_addrlist*/ libcfs_num_addr_range_print, /* .nf_match_addr*/ libcfs_num_match}, {/* .nf_type */ GMLND, /* .nf_name */ "gm", @@ -262,6 +301,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_hexnum_addr2str, /* .nf_str2addr */ libcfs_num_str2addr, /* .nf_parse_addrlist*/ libcfs_num_parse, + /* .nf_print_addrlist*/ libcfs_num_addr_range_print, /* .nf_match_addr*/ libcfs_num_match}, {/* .nf_type */ MXLND, /* .nf_name */ "mx", @@ -269,6 +309,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_ip_addr2str, /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, + /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, /* .nf_match_addr*/ cfs_ip_addr_match}, {/* .nf_type */ PTLLND, /* .nf_name */ "ptl", @@ -276,6 +317,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_decnum_addr2str, /* .nf_str2addr */ libcfs_num_str2addr, /* .nf_parse_addrlist*/ libcfs_num_parse, + /* .nf_print_addrlist*/ libcfs_num_addr_range_print, /* .nf_match_addr*/ libcfs_num_match}, {/* .nf_type */ GNILND, /* .nf_name */ "gni", @@ -283,6 +325,7 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_addr2str */ libcfs_decnum_addr2str, /* .nf_str2addr */ libcfs_num_str2addr, /* .nf_parse_addrlist*/ libcfs_num_parse, + /* .nf_print_addrlist*/ libcfs_num_addr_range_print, /* .nf_match_addr*/ libcfs_num_match}, /* placeholder for net0 alias. It MUST BE THE LAST ENTRY */ {/* .nf_type */ -1}, @@ -612,8 +655,8 @@ struct addrrange { * Allocates struct addrrange and links to \a nidrange via * (nidrange::nr_addrranges) * - * \retval 1 if \a src parses to '*' | \ | \ - * \retval 0 otherwise + * \retval 0 if \a src parses to '*' | \ | \ + * \retval -errno otherwise */ static int parse_addrange(const struct cfs_lstr *src, struct nidrange *nidrange) @@ -622,12 +665,12 @@ parse_addrange(const struct cfs_lstr *src, struct nidrange *nidrange) if (src->ls_len == 1 && src->ls_str[0] == '*') { nidrange->nr_all = 1; - return 1; + return 0; } LIBCFS_ALLOC(addrrange, sizeof(struct addrrange)); if (addrrange == NULL) - return 0; + return -ENOMEM; list_add_tail(&addrrange->ar_link, &nidrange->nr_addrranges); INIT_LIST_HEAD(&addrrange->ar_numaddr_ranges); @@ -840,3 +883,76 @@ int cfs_match_nid(lnet_nid_t nid, struct list_head *nidlist) return 0; } EXPORT_SYMBOL(cfs_match_nid); + +/** + * Print the network part of the nidrange \a nr into the specified \a buffer. + * + * \retval number of characters written + */ +static int +cfs_print_network(char *buffer, int count, struct nidrange *nr) +{ + struct netstrfns *nf = nr->nr_netstrfns; + + if (nr->nr_netnum == 0) + return scnprintf(buffer, count, "@%s", nf->nf_name); + else + return scnprintf(buffer, count, "@%s%u", + nf->nf_name, nr->nr_netnum); +} + +/** + * Print a list of addrrange (\a addrranges) into the specified \a buffer. + * At max \a count characters can be printed into \a buffer. + * + * \retval number of characters written + */ +static int +cfs_print_addrranges(char *buffer, int count, struct list_head *addrranges, + struct nidrange *nr) +{ + int i = 0; + struct addrrange *ar; + struct netstrfns *nf = nr->nr_netstrfns; + + list_for_each_entry(ar, addrranges, ar_link) { + if (i != 0) + i += scnprintf(buffer + i, count - i, " "); + i += nf->nf_print_addrlist(buffer + i, count - i, + &ar->ar_numaddr_ranges); + i += cfs_print_network(buffer + i, count - i, nr); + } + return i; +} + +/** + * Print a list of nidranges (\a nidlist) into the specified \a buffer. + * At max \a count characters can be printed into \a buffer. + * Nidranges are separated by a space character. + * + * \retval number of characters written + */ +int cfs_print_nidlist(char *buffer, int count, struct list_head *nidlist) +{ + int i = 0; + struct nidrange *nr; + + if (count <= 0) + return 0; + + list_for_each_entry(nr, nidlist, nr_link) { + if (i != 0) + i += scnprintf(buffer + i, count - i, " "); + + if (nr->nr_all != 0) { + LASSERT(list_empty(&nr->nr_addrranges)); + i += scnprintf(buffer + i, count - i, "*"); + i += cfs_print_network(buffer + i, count - i, nr); + } else { + i += cfs_print_addrranges(buffer + i, count - i, + &nr->nr_addrranges, nr); + } + } + return i; +} +EXPORT_SYMBOL(cfs_print_nidlist); From 47ca6ec2673eff06e6befab2c04528c5b1f3c5bb Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:40 -0400 Subject: [PATCH 2060/2431] staging: lustre: move nidstring handling to LNet layer Moved the source file nidstring.c from libcfs to lnet since that is the only place it is used. With the move of nidstring to lnet some functions in libcfs need to be exported. In later patches those functions that are only used by LNet also will be moved to the LNet layer. Also add in missing MAX_NUMERIC_VALUE defination. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/Makefile | 2 +- .../{lustre/libcfs => lnet/lnet}/nidstrings.c | 13 +++++++++---- drivers/staging/lustre/lustre/libcfs/Makefile | 2 +- .../staging/lustre/lustre/libcfs/libcfs_string.c | 4 ++++ 4 files changed, 15 insertions(+), 6 deletions(-) rename drivers/staging/lustre/{lustre/libcfs => lnet/lnet}/nidstrings.c (99%) diff --git a/drivers/staging/lustre/lnet/lnet/Makefile b/drivers/staging/lustre/lnet/lnet/Makefile index 52492fb10f85..e276fe2bf8f3 100644 --- a/drivers/staging/lustre/lnet/lnet/Makefile +++ b/drivers/staging/lustre/lnet/lnet/Makefile @@ -1,6 +1,6 @@ obj-$(CONFIG_LNET) += lnet.o -lnet-y := api-ni.o config.o \ +lnet-y := api-ni.o config.o nidstrings.o \ lib-me.o lib-msg.o lib-eq.o lib-md.o lib-ptl.o \ lib-socket.o lib-move.o module.o lo.o \ router.o router_proc.o acceptor.o peer.o diff --git a/drivers/staging/lustre/lustre/libcfs/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c similarity index 99% rename from drivers/staging/lustre/lustre/libcfs/nidstrings.c rename to drivers/staging/lustre/lnet/lnet/nidstrings.c index a54594a3ad5d..81ec3a8ec650 100644 --- a/drivers/staging/lustre/lustre/libcfs/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -33,7 +33,7 @@ * This file is part of Lustre, http://www.lustre.org/ * Lustre is a trademark of Sun Microsystems, Inc. * - * libcfs/libcfs/nidstrings.c + * lnet/lnet/nidstrings.c * * Author: Phil Schwan */ @@ -43,6 +43,9 @@ #include "../../include/linux/libcfs/libcfs.h" #include "../../include/linux/lnet/lnet.h" +/* max value for numeric network address */ +#define MAX_NUMERIC_VALUE 0xffffffff + /* CAVEAT VENDITOR! Keep the canonical string representation of nets/nids * consistent in all conversion functions. Some code fragments are copied * around for the sake of clarity... @@ -64,12 +67,13 @@ void libcfs_init_nidstrings(void) { spin_lock_init(&libcfs_nidstring_lock); } +EXPORT_SYMBOL(libcfs_init_nidstrings); -static char * +char * libcfs_next_nidstring(void) { - char *str; - unsigned long flags; + char *str; + unsigned long flags; spin_lock_irqsave(&libcfs_nidstring_lock, flags); @@ -80,6 +84,7 @@ libcfs_next_nidstring(void) spin_unlock_irqrestore(&libcfs_nidstring_lock, flags); return str; } +EXPORT_SYMBOL(libcfs_next_nidstring); static int libcfs_lo_str2addr(const char *str, int nob, __u32 *addr) { diff --git a/drivers/staging/lustre/lustre/libcfs/Makefile b/drivers/staging/lustre/lustre/libcfs/Makefile index ec98f44a10dd..03d3f3d7b1f8 100644 --- a/drivers/staging/lustre/lustre/libcfs/Makefile +++ b/drivers/staging/lustre/lustre/libcfs/Makefile @@ -10,7 +10,7 @@ libcfs-linux-objs += linux-mem.o libcfs-linux-objs := $(addprefix linux/,$(libcfs-linux-objs)) -libcfs-all-objs := debug.o fail.o nidstrings.o module.o tracefile.o \ +libcfs-all-objs := debug.o fail.o module.o tracefile.o \ libcfs_string.o hash.o kernel_user_comm.o \ prng.o workitem.o libcfs_cpu.o \ libcfs_mem.o libcfs_lock.o diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c index bbfef983e130..896185f54c4f 100644 --- a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c +++ b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c @@ -214,6 +214,7 @@ cfs_gettok(struct cfs_lstr *next, char delim, struct cfs_lstr *res) res->ls_len = end - res->ls_str + 1; return 1; } +EXPORT_SYMBOL(cfs_gettok); /** * Converts string to integer. @@ -242,6 +243,7 @@ cfs_str2num_check(char *str, int nob, unsigned *num, return (*num >= min && *num <= max); } +EXPORT_SYMBOL(cfs_str2num_check); /** * Parses \ token of the syntax. If \a bracketed is false, @@ -406,6 +408,7 @@ cfs_expr_list_match(__u32 value, struct cfs_expr_list *expr_list) return 0; } +EXPORT_SYMBOL(cfs_expr_list_match); /** * Convert express list (\a expr_list) to an array of all matched values @@ -558,6 +561,7 @@ cfs_expr_list_free_list(struct list_head *list) cfs_expr_list_free(el); } } +EXPORT_SYMBOL(cfs_expr_list_free_list); int cfs_ip_addr_parse(char *str, int len, struct list_head *list) From 43049a83b57118753abcd9fa2141a0ce64533680 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:41 -0400 Subject: [PATCH 2061/2431] staging: lustre: remove libcfs_init_string function All the function libcfs_init_string did was initialize a spinlock. We can initialize the spinlock statically instead. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/include/linux/libcfs/libcfs.h | 2 -- drivers/staging/lustre/lnet/lnet/nidstrings.c | 8 +------- drivers/staging/lustre/lustre/libcfs/module.c | 2 -- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/libcfs.h index 385ced15c742..4d74e8af5088 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs.h @@ -152,8 +152,6 @@ extern struct miscdevice libcfs_dev; extern char lnet_upcall[1024]; extern char lnet_debug_log_upcall[1024]; -extern void libcfs_init_nidstrings(void); - extern struct cfs_psdev_ops libcfs_psdev_ops; extern struct cfs_wi_sched *cfs_sched_rehash; diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index 81ec3a8ec650..fdbdf0668aaf 100644 --- a/drivers/staging/lustre/lnet/lnet/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -61,13 +61,7 @@ static char libcfs_nidstrings[LNET_NIDSTR_COUNT][LNET_NIDSTR_SIZE]; static int libcfs_nidstring_idx; -static spinlock_t libcfs_nidstring_lock; - -void libcfs_init_nidstrings(void) -{ - spin_lock_init(&libcfs_nidstring_lock); -} -EXPORT_SYMBOL(libcfs_init_nidstrings); +static DEFINE_SPINLOCK(libcfs_nidstring_lock); char * libcfs_next_nidstring(void) diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c index 0d9b223e71d6..50e8fd23fa17 100644 --- a/drivers/staging/lustre/lustre/libcfs/module.c +++ b/drivers/staging/lustre/lustre/libcfs/module.c @@ -701,8 +701,6 @@ static int init_libcfs_module(void) { int rc; - libcfs_init_nidstrings(); - rc = libcfs_debug_init(5 * 1024 * 1024); if (rc < 0) { pr_err("LustreError: libcfs_debug_init: %d\n", rc); From a620ec637274706370db1b2178d409304a4f66eb Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:42 -0400 Subject: [PATCH 2062/2431] staging: lustre: remove cfs_ip_addr_free wrapper No need to have a one line wrapper in libcfs that only is used to delete a list which is only done once in the LNet layer. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman --- .../staging/lustre/include/linux/libcfs/libcfs_string.h | 1 - drivers/staging/lustre/lnet/lnet/config.c | 2 +- drivers/staging/lustre/lustre/libcfs/libcfs_string.c | 7 ------- 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h index d178e43c8f50..908efaac9ed7 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h @@ -102,6 +102,5 @@ int cfs_expr_list_parse(char *str, int len, unsigned min, unsigned max, void cfs_expr_list_free_list(struct list_head *list); int cfs_ip_addr_parse(char *str, int len, struct list_head *list); int cfs_ip_addr_match(__u32 addr, struct list_head *list); -void cfs_ip_addr_free(struct list_head *list); #endif diff --git a/drivers/staging/lustre/lnet/lnet/config.c b/drivers/staging/lustre/lnet/lnet/config.c index b09a438c49d6..1b3bc8386524 100644 --- a/drivers/staging/lustre/lnet/lnet/config.c +++ b/drivers/staging/lustre/lnet/lnet/config.c @@ -824,7 +824,7 @@ lnet_match_network_token(char *token, int len, __u32 *ipaddrs, int nip) for (rc = i = 0; !rc && i < nip; i++) rc = cfs_ip_addr_match(ipaddrs[i], &list); - cfs_ip_addr_free(&list); + cfs_expr_list_free_list(&list); return rc; } diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c index 896185f54c4f..51669613fc68 100644 --- a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c +++ b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c @@ -624,10 +624,3 @@ cfs_ip_addr_match(__u32 addr, struct list_head *list) return i == 4; } EXPORT_SYMBOL(cfs_ip_addr_match); - -void -cfs_ip_addr_free(struct list_head *list) -{ - cfs_expr_list_free_list(list); -} -EXPORT_SYMBOL(cfs_ip_addr_free); From 00e27ff1e2de33f7b278b50999e2d587f019b0e8 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:43 -0400 Subject: [PATCH 2063/2431] staging: lustre: move struct netstrfns to nidstr.h The reason struct netstrfns exist in nidstrings.c was to avoid forward decleration errors. The best way to handle this instead is to move this structure to a header file. Since this structure is used in the userland utilities as well so we place it in nidstr.h which is exposed to userland. Signed-off-by: James Simmons Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6245 Reviewed-on: http://review.whamcloud.com/15083 Reviewed-by: Dmitry Eremin Reviewed-by: Bob Glossman Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/include/linux/lnet/nidstr.h | 13 +++++++++++++ drivers/staging/lustre/lnet/lnet/nidstrings.c | 13 ------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h index 082782bd4978..b32f8cd037d4 100644 --- a/drivers/staging/lustre/include/linux/lnet/nidstr.h +++ b/drivers/staging/lustre/include/linux/lnet/nidstr.h @@ -76,4 +76,17 @@ bool cfs_nidrange_is_contiguous(struct list_head *nidlist); void cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid, char *max_nid, size_t nidstr_length); +struct netstrfns { + int nf_type; + char *nf_name; + char *nf_modname; + void (*nf_addr2str)(__u32 addr, char *str); + int (*nf_str2addr)(const char *str, int nob, __u32 *addr); + int (*nf_parse_addrlist)(char *str, int len, + struct list_head *list); + int (*nf_print_addrlist)(char *buffer, int count, + struct list_head *list); + int (*nf_match_addr)(__u32 addr, struct list_head *list); +}; + #endif /* _LNET_NIDSTRINGS_H */ diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index fdbdf0668aaf..6a778b9f8567 100644 --- a/drivers/staging/lustre/lnet/lnet/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -208,19 +208,6 @@ libcfs_num_match(__u32 addr, struct list_head *numaddr) return cfs_expr_list_match(addr, el); } -struct netstrfns { - int nf_type; - char *nf_name; - char *nf_modname; - void (*nf_addr2str)(__u32 addr, char *str); - int (*nf_str2addr)(const char *str, int nob, __u32 *addr); - int (*nf_parse_addrlist)(char *str, int len, - struct list_head *list); - int (*nf_print_addrlist)(char *buffer, int count, - struct list_head *list); - int (*nf_match_addr)(__u32 addr, struct list_head *list); -}; - static struct netstrfns libcfs_netstrfns[] = { {/* .nf_type */ LOLND, /* .nf_name */ "lo", From c1af01da79ef67868bc95a113a8613cf26d9c931 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:44 -0400 Subject: [PATCH 2064/2431] staging: lustre: move cfs_ip_addr_* function from kernel libcfs to LNet Both of cfs_ip_addr_parse and cfs_ip_addr_match which are located in libcfs kernel module are used only for LNet so move this into the nidstring handling code where it belongs. Also create user land versions of these functions in the libcfs user land library. Signed-off-by: James Simmons Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6245 Reviewed-on: http://review.whamcloud.com/15085 Reviewed-by: Bob Glossman Reviewed-by: Dmitry Eremin Reviewed-by: frank zago Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- .../include/linux/libcfs/libcfs_string.h | 2 - .../lustre/include/linux/lnet/nidstr.h | 2 + drivers/staging/lustre/lnet/lnet/nidstrings.c | 60 ++++++++++++++++++ .../lustre/lustre/libcfs/libcfs_string.c | 62 ------------------- 4 files changed, 62 insertions(+), 64 deletions(-) diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h index 908efaac9ed7..d8d2e7dc212e 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h @@ -100,7 +100,5 @@ void cfs_expr_list_free(struct cfs_expr_list *expr_list); int cfs_expr_list_parse(char *str, int len, unsigned min, unsigned max, struct cfs_expr_list **elpp); void cfs_expr_list_free_list(struct list_head *list); -int cfs_ip_addr_parse(char *str, int len, struct list_head *list); -int cfs_ip_addr_match(__u32 addr, struct list_head *list); #endif diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h index b32f8cd037d4..15363664eb86 100644 --- a/drivers/staging/lustre/include/linux/lnet/nidstr.h +++ b/drivers/staging/lustre/include/linux/lnet/nidstr.h @@ -72,6 +72,8 @@ int cfs_parse_nidlist(char *str, int len, struct list_head *list); int cfs_print_nidlist(char *buffer, int count, struct list_head *list); int cfs_match_nid(lnet_nid_t nid, struct list_head *list); +int cfs_ip_addr_parse(char *str, int len, struct list_head *list); +int cfs_ip_addr_match(__u32 addr, struct list_head *list); bool cfs_nidrange_is_contiguous(struct list_head *nidlist); void cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid, char *max_nid, size_t nidstr_length); diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index 6a778b9f8567..a02c1f664f95 100644 --- a/drivers/staging/lustre/lnet/lnet/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -113,6 +113,44 @@ static int libcfs_ip_str2addr(const char *str, int nob, __u32 *addr) return 0; } +int +cfs_ip_addr_parse(char *str, int len, struct list_head *list) +{ + struct cfs_expr_list *el; + struct cfs_lstr src; + int rc; + int i; + + src.ls_str = str; + src.ls_len = len; + i = 0; + + while (src.ls_str != NULL) { + struct cfs_lstr res; + + if (!cfs_gettok(&src, '.', &res)) { + rc = -EINVAL; + goto out; + } + + rc = cfs_expr_list_parse(res.ls_str, res.ls_len, 0, 255, &el); + if (rc != 0) + goto out; + + list_add_tail(&el->el_link, list); + i++; + } + + if (i == 4) + return 0; + + rc = -EINVAL; +out: + cfs_expr_list_free_list(list); + + return rc; +} + static int libcfs_ip_addr_range_print(char *buffer, int count, struct list_head *list) { @@ -128,6 +166,28 @@ libcfs_ip_addr_range_print(char *buffer, int count, struct list_head *list) return i; } +/** + * Matches address (\a addr) against address set encoded in \a list. + * + * \retval 1 if \a addr matches + * \retval 0 otherwise + */ +int +cfs_ip_addr_match(__u32 addr, struct list_head *list) +{ + struct cfs_expr_list *el; + int i = 0; + + list_for_each_entry_reverse(el, list, el_link) { + if (!cfs_expr_list_match(addr & 0xff, el)) + return 0; + addr >>= 8; + i++; + } + + return i == 4; +} + static void libcfs_decnum_addr2str(__u32 addr, char *str) { snprintf(str, LNET_NIDSTR_SIZE, "%u", addr); diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c index 51669613fc68..d40be5396769 100644 --- a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c +++ b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c @@ -562,65 +562,3 @@ cfs_expr_list_free_list(struct list_head *list) } } EXPORT_SYMBOL(cfs_expr_list_free_list); - -int -cfs_ip_addr_parse(char *str, int len, struct list_head *list) -{ - struct cfs_expr_list *el; - struct cfs_lstr src; - int rc; - int i; - - src.ls_str = str; - src.ls_len = len; - i = 0; - - while (src.ls_str != NULL) { - struct cfs_lstr res; - - if (!cfs_gettok(&src, '.', &res)) { - rc = -EINVAL; - goto out; - } - - rc = cfs_expr_list_parse(res.ls_str, res.ls_len, 0, 255, &el); - if (rc != 0) - goto out; - - list_add_tail(&el->el_link, list); - i++; - } - - if (i == 4) - return 0; - - rc = -EINVAL; - out: - cfs_expr_list_free_list(list); - - return rc; -} -EXPORT_SYMBOL(cfs_ip_addr_parse); - -/** - * Matches address (\a addr) against address set encoded in \a list. - * - * \retval 1 if \a addr matches - * \retval 0 otherwise - */ -int -cfs_ip_addr_match(__u32 addr, struct list_head *list) -{ - struct cfs_expr_list *el; - int i = 0; - - list_for_each_entry_reverse(el, list, el_link) { - if (!cfs_expr_list_match(addr & 0xff, el)) - return 0; - addr >>= 8; - i++; - } - - return i == 4; -} -EXPORT_SYMBOL(cfs_ip_addr_match); From e8834329bb954fd054db70f03fb4399cea87b462 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:45 -0400 Subject: [PATCH 2065/2431] staging: lustre: Avoid nid range related forward declarations in nidstring.c Since forward declarations are frowned on upstream we move the NID range handling to near the start of the nidstring.c file. Signed-off-by: James Simmons Reviewed-on: http://review.whamcloud.com/15086 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6245 Reviewed-by: Dmitry Eremin Reviewed-by: Bob Glossman Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/nidstrings.c | 782 +++++++++--------- 1 file changed, 395 insertions(+), 387 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index a02c1f664f95..1874dfebe33f 100644 --- a/drivers/staging/lustre/lnet/lnet/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -63,6 +63,8 @@ static int libcfs_nidstring_idx; static DEFINE_SPINLOCK(libcfs_nidstring_lock); +static struct netstrfns *libcfs_namenum2netstrfns(const char *name); + char * libcfs_next_nidstring(void) { @@ -80,20 +82,403 @@ libcfs_next_nidstring(void) } EXPORT_SYMBOL(libcfs_next_nidstring); -static int libcfs_lo_str2addr(const char *str, int nob, __u32 *addr) +/** + * Nid range list syntax. + * \verbatim + * + * :== [ ' ' ] + * :== '@' + * :== '*' | + * | + * + * :== ... + * + * :== | + * + * :== '[' [ ',' ] ']' + * :== | + * '-' | + * '-' '/' + * :== | + * :== "lo" | "tcp" | "o2ib" | "cib" | "openib" | "iib" | + * "vib" | "ra" | "elan" | "mx" | "ptl" + * \endverbatim + */ + +/** + * Structure to represent \ token of the syntax. + * + * One of this is created for each \ parsed. + */ +struct nidrange { + /** + * Link to list of this structures which is built on nid range + * list parsing. + */ + struct list_head nr_link; + /** + * List head for addrrange::ar_link. + */ + struct list_head nr_addrranges; + /** + * Flag indicating that *@ is found. + */ + int nr_all; + /** + * Pointer to corresponding element of libcfs_netstrfns. + */ + struct netstrfns *nr_netstrfns; + /** + * Number of network. E.g. 5 if \ is "elan5". + */ + int nr_netnum; +}; + +/** + * Structure to represent \ token of the syntax. + */ +struct addrrange { + /** + * Link to nidrange::nr_addrranges. + */ + struct list_head ar_link; + /** + * List head for cfs_expr_list::el_list. + */ + struct list_head ar_numaddr_ranges; +}; + +/** + * Parses \ token on the syntax. + * + * Allocates struct addrrange and links to \a nidrange via + * (nidrange::nr_addrranges) + * + * \retval 0 if \a src parses to '*' | \ | \ + * \retval -errno otherwise + */ +static int +parse_addrange(const struct cfs_lstr *src, struct nidrange *nidrange) +{ + struct addrrange *addrrange; + + if (src->ls_len == 1 && src->ls_str[0] == '*') { + nidrange->nr_all = 1; + return 0; + } + + LIBCFS_ALLOC(addrrange, sizeof(struct addrrange)); + if (addrrange == NULL) + return -ENOMEM; + list_add_tail(&addrrange->ar_link, &nidrange->nr_addrranges); + INIT_LIST_HEAD(&addrrange->ar_numaddr_ranges); + + return nidrange->nr_netstrfns->nf_parse_addrlist(src->ls_str, + src->ls_len, + &addrrange->ar_numaddr_ranges); +} + +/** + * Finds or creates struct nidrange. + * + * Checks if \a src is a valid network name, looks for corresponding + * nidrange on the ist of nidranges (\a nidlist), creates new struct + * nidrange if it is not found. + * + * \retval pointer to struct nidrange matching network specified via \a src + * \retval NULL if \a src does not match any network + */ +static struct nidrange * +add_nidrange(const struct cfs_lstr *src, + struct list_head *nidlist) +{ + struct netstrfns *nf; + struct nidrange *nr; + int endlen; + unsigned netnum; + + if (src->ls_len >= LNET_NIDSTR_SIZE) + return NULL; + + nf = libcfs_namenum2netstrfns(src->ls_str); + if (nf == NULL) + return NULL; + endlen = src->ls_len - strlen(nf->nf_name); + if (endlen == 0) + /* network name only, e.g. "elan" or "tcp" */ + netnum = 0; + else { + /* e.g. "elan25" or "tcp23", refuse to parse if + * network name is not appended with decimal or + * hexadecimal number */ + if (!cfs_str2num_check(src->ls_str + strlen(nf->nf_name), + endlen, &netnum, 0, MAX_NUMERIC_VALUE)) + return NULL; + } + + list_for_each_entry(nr, nidlist, nr_link) { + if (nr->nr_netstrfns != nf) + continue; + if (nr->nr_netnum != netnum) + continue; + return nr; + } + + LIBCFS_ALLOC(nr, sizeof(struct nidrange)); + if (nr == NULL) + return NULL; + list_add_tail(&nr->nr_link, nidlist); + INIT_LIST_HEAD(&nr->nr_addrranges); + nr->nr_netstrfns = nf; + nr->nr_all = 0; + nr->nr_netnum = netnum; + + return nr; +} + +/** + * Parses \ token of the syntax. + * + * \retval 1 if \a src parses to \ '@' \ + * \retval 0 otherwise + */ +static int +parse_nidrange(struct cfs_lstr *src, struct list_head *nidlist) +{ + struct cfs_lstr addrrange; + struct cfs_lstr net; + struct cfs_lstr tmp; + struct nidrange *nr; + + tmp = *src; + if (cfs_gettok(src, '@', &addrrange) == 0) + goto failed; + + if (cfs_gettok(src, '@', &net) == 0 || src->ls_str != NULL) + goto failed; + + nr = add_nidrange(&net, nidlist); + if (nr == NULL) + goto failed; + + if (parse_addrange(&addrrange, nr) != 0) + goto failed; + + return 1; +failed: + CWARN("can't parse nidrange: \"%.*s\"\n", tmp.ls_len, tmp.ls_str); + return 0; +} + +/** + * Frees addrrange structures of \a list. + * + * For each struct addrrange structure found on \a list it frees + * cfs_expr_list list attached to it and frees the addrrange itself. + * + * \retval none + */ +static void +free_addrranges(struct list_head *list) +{ + while (!list_empty(list)) { + struct addrrange *ar; + + ar = list_entry(list->next, struct addrrange, ar_link); + + cfs_expr_list_free_list(&ar->ar_numaddr_ranges); + list_del(&ar->ar_link); + LIBCFS_FREE(ar, sizeof(struct addrrange)); + } +} + +/** + * Frees nidrange strutures of \a list. + * + * For each struct nidrange structure found on \a list it frees + * addrrange list attached to it and frees the nidrange itself. + * + * \retval none + */ +void +cfs_free_nidlist(struct list_head *list) +{ + struct list_head *pos, *next; + struct nidrange *nr; + + list_for_each_safe(pos, next, list) { + nr = list_entry(pos, struct nidrange, nr_link); + free_addrranges(&nr->nr_addrranges); + list_del(pos); + LIBCFS_FREE(nr, sizeof(struct nidrange)); + } +} +EXPORT_SYMBOL(cfs_free_nidlist); + +/** + * Parses nid range list. + * + * Parses with rigorous syntax and overflow checking \a str into + * \ [ ' ' \ ], compiles \a str into set of + * structures and links that structure to \a nidlist. The resulting + * list can be used to match a NID againts set of NIDS defined by \a + * str. + * \see cfs_match_nid + * + * \retval 1 on success + * \retval 0 otherwise + */ +int +cfs_parse_nidlist(char *str, int len, struct list_head *nidlist) +{ + struct cfs_lstr src; + struct cfs_lstr res; + int rc; + + src.ls_str = str; + src.ls_len = len; + INIT_LIST_HEAD(nidlist); + while (src.ls_str) { + rc = cfs_gettok(&src, ' ', &res); + if (rc == 0) { + cfs_free_nidlist(nidlist); + return 0; + } + rc = parse_nidrange(&res, nidlist); + if (rc == 0) { + cfs_free_nidlist(nidlist); + return 0; + } + } + return 1; +} +EXPORT_SYMBOL(cfs_parse_nidlist); + +/** + * Matches a nid (\a nid) against the compiled list of nidranges (\a nidlist). + * + * \see cfs_parse_nidlist() + * + * \retval 1 on match + * \retval 0 otherwises + */ +int cfs_match_nid(lnet_nid_t nid, struct list_head *nidlist) +{ + struct nidrange *nr; + struct addrrange *ar; + + list_for_each_entry(nr, nidlist, nr_link) { + if (nr->nr_netstrfns->nf_type != LNET_NETTYP(LNET_NIDNET(nid))) + continue; + if (nr->nr_netnum != LNET_NETNUM(LNET_NIDNET(nid))) + continue; + if (nr->nr_all) + return 1; + list_for_each_entry(ar, &nr->nr_addrranges, ar_link) + if (nr->nr_netstrfns->nf_match_addr(LNET_NIDADDR(nid), + &ar->ar_numaddr_ranges)) + return 1; + } + return 0; +} +EXPORT_SYMBOL(cfs_match_nid); + +/** + * Print the network part of the nidrange \a nr into the specified \a buffer. + * + * \retval number of characters written + */ +static int +cfs_print_network(char *buffer, int count, struct nidrange *nr) +{ + struct netstrfns *nf = nr->nr_netstrfns; + + if (nr->nr_netnum == 0) + return scnprintf(buffer, count, "@%s", nf->nf_name); + else + return scnprintf(buffer, count, "@%s%u", + nf->nf_name, nr->nr_netnum); +} + +/** + * Print a list of addrrange (\a addrranges) into the specified \a buffer. + * At max \a count characters can be printed into \a buffer. + * + * \retval number of characters written + */ +static int +cfs_print_addrranges(char *buffer, int count, struct list_head *addrranges, + struct nidrange *nr) +{ + int i = 0; + struct addrrange *ar; + struct netstrfns *nf = nr->nr_netstrfns; + + list_for_each_entry(ar, addrranges, ar_link) { + if (i != 0) + i += scnprintf(buffer + i, count - i, " "); + i += nf->nf_print_addrlist(buffer + i, count - i, + &ar->ar_numaddr_ranges); + i += cfs_print_network(buffer + i, count - i, nr); + } + return i; +} + +/** + * Print a list of nidranges (\a nidlist) into the specified \a buffer. + * At max \a count characters can be printed into \a buffer. + * Nidranges are separated by a space character. + * + * \retval number of characters written + */ +int cfs_print_nidlist(char *buffer, int count, struct list_head *nidlist) +{ + int i = 0; + struct nidrange *nr; + + if (count <= 0) + return 0; + + list_for_each_entry(nr, nidlist, nr_link) { + if (i != 0) + i += scnprintf(buffer + i, count - i, " "); + + if (nr->nr_all != 0) { + LASSERT(list_empty(&nr->nr_addrranges)); + i += scnprintf(buffer + i, count - i, "*"); + i += cfs_print_network(buffer + i, count - i, nr); + } else { + i += cfs_print_addrranges(buffer + i, count - i, + &nr->nr_addrranges, nr); + } + } + return i; +} +EXPORT_SYMBOL(cfs_print_nidlist); + +static int +libcfs_lo_str2addr(const char *str, int nob, __u32 *addr) { *addr = 0; return 1; } -static void libcfs_ip_addr2str(__u32 addr, char *str) +static void +libcfs_ip_addr2str(__u32 addr, char *str) { snprintf(str, LNET_NIDSTR_SIZE, "%u.%u.%u.%u", (addr >> 24) & 0xff, (addr >> 16) & 0xff, (addr >> 8) & 0xff, addr & 0xff); } -static int libcfs_ip_str2addr(const char *str, int nob, __u32 *addr) +/* CAVEAT EMPTOR XscanfX + * I use "%n" at the end of a sscanf format to detect trailing junk. However + * sscanf may return immediately if it sees the terminating '0' in a string, so + * I initialise the %n variable to the expected length. If sscanf sets it; + * fine, if it doesn't, then the scan ended at the end of the string, which is + * fine too :) */ +static int +libcfs_ip_str2addr(const char *str, int nob, __u32 *addr) { unsigned int a; unsigned int b; @@ -113,6 +498,7 @@ static int libcfs_ip_str2addr(const char *str, int nob, __u32 *addr) return 0; } +/* Used by lnet/config.c so it can't be static */ int cfs_ip_addr_parse(char *str, int len, struct list_head *list) { @@ -188,17 +574,20 @@ cfs_ip_addr_match(__u32 addr, struct list_head *list) return i == 4; } -static void libcfs_decnum_addr2str(__u32 addr, char *str) +static void +libcfs_decnum_addr2str(__u32 addr, char *str) { snprintf(str, LNET_NIDSTR_SIZE, "%u", addr); } -static void libcfs_hexnum_addr2str(__u32 addr, char *str) +static void +libcfs_hexnum_addr2str(__u32 addr, char *str) { snprintf(str, LNET_NIDSTR_SIZE, "0x%x", addr); } -static int libcfs_num_str2addr(const char *str, int nob, __u32 *addr) +static int +libcfs_num_str2addr(const char *str, int nob, __u32 *addr) { int n; @@ -379,13 +768,6 @@ static struct netstrfns libcfs_netstrfns[] = { static const int libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns); -/* CAVEAT EMPTOR XscanfX - * I use "%n" at the end of a sscanf format to detect trailing junk. However - * sscanf may return immediately if it sees the terminating '0' in a string, so - * I initialise the %n variable to the expected length. If sscanf sets it; - * fine, if it doesn't, then the scan ended at the end of the string, which is - * fine too :) */ - static struct netstrfns * libcfs_lnd2netstrfns(int lnd) { @@ -628,377 +1010,3 @@ libcfs_str2anynid(lnet_nid_t *nidp, const char *str) return *nidp != LNET_NID_ANY; } EXPORT_SYMBOL(libcfs_str2anynid); - -/** - * Nid range list syntax. - * \verbatim - * - * :== [ ' ' ] - * :== '@' - * :== '*' | - * | - * - * :== ... - * - * :== | - * - * :== '[' [ ',' ] ']' - * :== | - * '-' | - * '-' '/' - * :== | - * :== "lo" | "tcp" | "o2ib" | "cib" | "openib" | "iib" | - * "vib" | "ra" | "elan" | "mx" | "ptl" - * \endverbatim - */ - -/** - * Structure to represent \ token of the syntax. - * - * One of this is created for each \ parsed. - */ -struct nidrange { - /** - * Link to list of this structures which is built on nid range - * list parsing. - */ - struct list_head nr_link; - /** - * List head for addrrange::ar_link. - */ - struct list_head nr_addrranges; - /** - * Flag indicating that *@ is found. - */ - int nr_all; - /** - * Pointer to corresponding element of libcfs_netstrfns. - */ - struct netstrfns *nr_netstrfns; - /** - * Number of network. E.g. 5 if \ is "elan5". - */ - int nr_netnum; -}; - -/** - * Structure to represent \ token of the syntax. - */ -struct addrrange { - /** - * Link to nidrange::nr_addrranges. - */ - struct list_head ar_link; - /** - * List head for cfs_expr_list::el_list. - */ - struct list_head ar_numaddr_ranges; -}; - -/** - * Parses \ token on the syntax. - * - * Allocates struct addrrange and links to \a nidrange via - * (nidrange::nr_addrranges) - * - * \retval 0 if \a src parses to '*' | \ | \ - * \retval -errno otherwise - */ -static int -parse_addrange(const struct cfs_lstr *src, struct nidrange *nidrange) -{ - struct addrrange *addrrange; - - if (src->ls_len == 1 && src->ls_str[0] == '*') { - nidrange->nr_all = 1; - return 0; - } - - LIBCFS_ALLOC(addrrange, sizeof(struct addrrange)); - if (addrrange == NULL) - return -ENOMEM; - list_add_tail(&addrrange->ar_link, &nidrange->nr_addrranges); - INIT_LIST_HEAD(&addrrange->ar_numaddr_ranges); - - return nidrange->nr_netstrfns->nf_parse_addrlist(src->ls_str, - src->ls_len, - &addrrange->ar_numaddr_ranges); -} - -/** - * Finds or creates struct nidrange. - * - * Checks if \a src is a valid network name, looks for corresponding - * nidrange on the ist of nidranges (\a nidlist), creates new struct - * nidrange if it is not found. - * - * \retval pointer to struct nidrange matching network specified via \a src - * \retval NULL if \a src does not match any network - */ -static struct nidrange * -add_nidrange(const struct cfs_lstr *src, - struct list_head *nidlist) -{ - struct netstrfns *nf; - struct nidrange *nr; - int endlen; - unsigned netnum; - - if (src->ls_len >= LNET_NIDSTR_SIZE) - return NULL; - - nf = libcfs_namenum2netstrfns(src->ls_str); - if (nf == NULL) - return NULL; - endlen = src->ls_len - strlen(nf->nf_name); - if (endlen == 0) - /* network name only, e.g. "elan" or "tcp" */ - netnum = 0; - else { - /* e.g. "elan25" or "tcp23", refuse to parse if - * network name is not appended with decimal or - * hexadecimal number */ - if (!cfs_str2num_check(src->ls_str + strlen(nf->nf_name), - endlen, &netnum, 0, MAX_NUMERIC_VALUE)) - return NULL; - } - - list_for_each_entry(nr, nidlist, nr_link) { - if (nr->nr_netstrfns != nf) - continue; - if (nr->nr_netnum != netnum) - continue; - return nr; - } - - LIBCFS_ALLOC(nr, sizeof(struct nidrange)); - if (nr == NULL) - return NULL; - list_add_tail(&nr->nr_link, nidlist); - INIT_LIST_HEAD(&nr->nr_addrranges); - nr->nr_netstrfns = nf; - nr->nr_all = 0; - nr->nr_netnum = netnum; - - return nr; -} - -/** - * Parses \ token of the syntax. - * - * \retval 1 if \a src parses to \ '@' \ - * \retval 0 otherwise - */ -static int -parse_nidrange(struct cfs_lstr *src, struct list_head *nidlist) -{ - struct cfs_lstr addrrange; - struct cfs_lstr net; - struct cfs_lstr tmp; - struct nidrange *nr; - - tmp = *src; - if (cfs_gettok(src, '@', &addrrange) == 0) - goto failed; - - if (cfs_gettok(src, '@', &net) == 0 || src->ls_str != NULL) - goto failed; - - nr = add_nidrange(&net, nidlist); - if (nr == NULL) - goto failed; - - if (parse_addrange(&addrrange, nr) != 0) - goto failed; - - return 1; - failed: - CWARN("can't parse nidrange: \"%.*s\"\n", tmp.ls_len, tmp.ls_str); - return 0; -} - -/** - * Frees addrrange structures of \a list. - * - * For each struct addrrange structure found on \a list it frees - * cfs_expr_list list attached to it and frees the addrrange itself. - * - * \retval none - */ -static void -free_addrranges(struct list_head *list) -{ - while (!list_empty(list)) { - struct addrrange *ar; - - ar = list_entry(list->next, struct addrrange, ar_link); - - cfs_expr_list_free_list(&ar->ar_numaddr_ranges); - list_del(&ar->ar_link); - LIBCFS_FREE(ar, sizeof(struct addrrange)); - } -} - -/** - * Frees nidrange strutures of \a list. - * - * For each struct nidrange structure found on \a list it frees - * addrrange list attached to it and frees the nidrange itself. - * - * \retval none - */ -void -cfs_free_nidlist(struct list_head *list) -{ - struct list_head *pos, *next; - struct nidrange *nr; - - list_for_each_safe(pos, next, list) { - nr = list_entry(pos, struct nidrange, nr_link); - free_addrranges(&nr->nr_addrranges); - list_del(pos); - LIBCFS_FREE(nr, sizeof(struct nidrange)); - } -} -EXPORT_SYMBOL(cfs_free_nidlist); - -/** - * Parses nid range list. - * - * Parses with rigorous syntax and overflow checking \a str into - * \ [ ' ' \ ], compiles \a str into set of - * structures and links that structure to \a nidlist. The resulting - * list can be used to match a NID againts set of NIDS defined by \a - * str. - * \see cfs_match_nid - * - * \retval 1 on success - * \retval 0 otherwise - */ -int -cfs_parse_nidlist(char *str, int len, struct list_head *nidlist) -{ - struct cfs_lstr src; - struct cfs_lstr res; - int rc; - - src.ls_str = str; - src.ls_len = len; - INIT_LIST_HEAD(nidlist); - while (src.ls_str) { - rc = cfs_gettok(&src, ' ', &res); - if (rc == 0) { - cfs_free_nidlist(nidlist); - return 0; - } - rc = parse_nidrange(&res, nidlist); - if (rc == 0) { - cfs_free_nidlist(nidlist); - return 0; - } - } - return 1; -} -EXPORT_SYMBOL(cfs_parse_nidlist); - -/** - * Matches a nid (\a nid) against the compiled list of nidranges (\a nidlist). - * - * \see cfs_parse_nidlist() - * - * \retval 1 on match - * \retval 0 otherwises - */ -int cfs_match_nid(lnet_nid_t nid, struct list_head *nidlist) -{ - struct nidrange *nr; - struct addrrange *ar; - - list_for_each_entry(nr, nidlist, nr_link) { - if (nr->nr_netstrfns->nf_type != LNET_NETTYP(LNET_NIDNET(nid))) - continue; - if (nr->nr_netnum != LNET_NETNUM(LNET_NIDNET(nid))) - continue; - if (nr->nr_all) - return 1; - list_for_each_entry(ar, &nr->nr_addrranges, ar_link) - if (nr->nr_netstrfns->nf_match_addr(LNET_NIDADDR(nid), - &ar->ar_numaddr_ranges)) - return 1; - } - return 0; -} -EXPORT_SYMBOL(cfs_match_nid); - -/** - * Print the network part of the nidrange \a nr into the specified \a buffer. - * - * \retval number of characters written - */ -static int -cfs_print_network(char *buffer, int count, struct nidrange *nr) -{ - struct netstrfns *nf = nr->nr_netstrfns; - - if (nr->nr_netnum == 0) - return scnprintf(buffer, count, "@%s", nf->nf_name); - else - return scnprintf(buffer, count, "@%s%u", - nf->nf_name, nr->nr_netnum); -} - -/** - * Print a list of addrrange (\a addrranges) into the specified \a buffer. - * At max \a count characters can be printed into \a buffer. - * - * \retval number of characters written - */ -static int -cfs_print_addrranges(char *buffer, int count, struct list_head *addrranges, - struct nidrange *nr) -{ - int i = 0; - struct addrrange *ar; - struct netstrfns *nf = nr->nr_netstrfns; - - list_for_each_entry(ar, addrranges, ar_link) { - if (i != 0) - i += scnprintf(buffer + i, count - i, " "); - i += nf->nf_print_addrlist(buffer + i, count - i, - &ar->ar_numaddr_ranges); - i += cfs_print_network(buffer + i, count - i, nr); - } - return i; -} - -/** - * Print a list of nidranges (\a nidlist) into the specified \a buffer. - * At max \a count characters can be printed into \a buffer. - * Nidranges are separated by a space character. - * - * \retval number of characters written - */ -int cfs_print_nidlist(char *buffer, int count, struct list_head *nidlist) -{ - int i = 0; - struct nidrange *nr; - - if (count <= 0) - return 0; - - list_for_each_entry(nr, nidlist, nr_link) { - if (i != 0) - i += scnprintf(buffer + i, count - i, " "); - - if (nr->nr_all != 0) { - LASSERT(list_empty(&nr->nr_addrranges)); - i += scnprintf(buffer + i, count - i, "*"); - i += cfs_print_network(buffer + i, count - i, nr); - } else { - i += cfs_print_addrranges(buffer + i, count - i, - &nr->nr_addrranges, nr); - } - } - return i; -} -EXPORT_SYMBOL(cfs_print_nidlist); From 335ea564509045796dc07faa7333162a0b03f214 Mon Sep 17 00:00:00 2001 From: Joshua Walgenbach Date: Wed, 21 Oct 2015 21:52:46 -0400 Subject: [PATCH 2066/2431] staging: lustre: add in NID range management for libcfs This is a partial backport of the NID range management added in for nodemap. We only backport the libcfs related parts here. Signed-off-by: Joshua Walgenbach Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3527 Reviewed-on: http://review.whamcloud.com/8057 Reviewed-by: Andreas Dilger Reviewed-by: Andrew Perepechko Reviewed-by: John L. Hammond Reviewed-by: Ken Hornstein Signed-off-by: Greg Kroah-Hartman --- .../lustre/include/linux/lnet/nidstr.h | 3 + drivers/staging/lustre/lnet/lnet/nidstrings.c | 365 +++++++++++++++++- 2 files changed, 355 insertions(+), 13 deletions(-) diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h index 15363664eb86..4e7c9a5f9a9b 100644 --- a/drivers/staging/lustre/include/linux/lnet/nidstr.h +++ b/drivers/staging/lustre/include/linux/lnet/nidstr.h @@ -89,6 +89,9 @@ struct netstrfns { int (*nf_print_addrlist)(char *buffer, int count, struct list_head *list); int (*nf_match_addr)(__u32 addr, struct list_head *list); + bool (*nf_is_contiguous)(struct list_head *nidlist); + void (*nf_min_max)(struct list_head *nidlist, __u32 *min_nid, + __u32 *max_nid); }; #endif /* _LNET_NIDSTRINGS_H */ diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index 1874dfebe33f..4402b80c8bf0 100644 --- a/drivers/staging/lustre/lnet/lnet/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -46,6 +46,8 @@ /* max value for numeric network address */ #define MAX_NUMERIC_VALUE 0xffffffff +#define IPSTRING_LENGTH 16 + /* CAVEAT VENDITOR! Keep the canonical string representation of nets/nids * consistent in all conversion functions. Some code fragments are copied * around for the sake of clarity... @@ -456,6 +458,317 @@ int cfs_print_nidlist(char *buffer, int count, struct list_head *nidlist) } EXPORT_SYMBOL(cfs_print_nidlist); +/** + * Determines minimum and maximum addresses for a single + * numeric address range + * + * \param ar + * \param min_nid + * \param max_nid + */ +static void cfs_ip_ar_min_max(struct addrrange *ar, __u32 *min_nid, + __u32 *max_nid) +{ + struct cfs_expr_list *el; + struct cfs_range_expr *re; + __u32 tmp_ip_addr = 0; + unsigned int min_ip[4] = {0}; + unsigned int max_ip[4] = {0}; + int re_count = 0; + + list_for_each_entry(el, &ar->ar_numaddr_ranges, el_link) { + list_for_each_entry(re, &el->el_exprs, re_link) { + min_ip[re_count] = re->re_lo; + max_ip[re_count] = re->re_hi; + re_count++; + } + } + + tmp_ip_addr = ((min_ip[0] << 24) | (min_ip[1] << 16) | + (min_ip[2] << 8) | min_ip[3]); + + if (min_nid != NULL) + *min_nid = tmp_ip_addr; + + tmp_ip_addr = ((max_ip[0] << 24) | (max_ip[1] << 16) | + (max_ip[2] << 8) | max_ip[3]); + + if (max_nid != NULL) + *max_nid = tmp_ip_addr; +} + +/** + * Determines minimum and maximum addresses for a single + * numeric address range + * + * \param ar + * \param min_nid + * \param max_nid + */ +static void cfs_num_ar_min_max(struct addrrange *ar, __u32 *min_nid, + __u32 *max_nid) +{ + struct cfs_expr_list *el; + struct cfs_range_expr *re; + unsigned int min_addr = 0; + unsigned int max_addr = 0; + + list_for_each_entry(el, &ar->ar_numaddr_ranges, el_link) { + list_for_each_entry(re, &el->el_exprs, re_link) { + if (re->re_lo < min_addr || min_addr == 0) + min_addr = re->re_lo; + if (re->re_hi > max_addr) + max_addr = re->re_hi; + } + } + + if (min_nid != NULL) + *min_nid = min_addr; + if (max_nid != NULL) + *max_nid = max_addr; +} + +/** + * Determines whether an expression list in an nidrange contains exactly + * one contiguous address range. Calls the correct netstrfns for the LND + * + * \param *nidlist + * + * \retval true if contiguous + * \retval false if not contiguous + */ +bool cfs_nidrange_is_contiguous(struct list_head *nidlist) +{ + struct nidrange *nr; + struct netstrfns *nf = NULL; + char *lndname = NULL; + int netnum = -1; + + list_for_each_entry(nr, nidlist, nr_link) { + nf = nr->nr_netstrfns; + if (lndname == NULL) + lndname = nf->nf_name; + if (netnum == -1) + netnum = nr->nr_netnum; + + if (strcmp(lndname, nf->nf_name) != 0 || + netnum != nr->nr_netnum) + return false; + } + + if (nf == NULL) + return false; + + if (!nf->nf_is_contiguous(nidlist)) + return false; + + return true; +} +EXPORT_SYMBOL(cfs_nidrange_is_contiguous); + +/** + * Determines whether an expression list in an num nidrange contains exactly + * one contiguous address range. + * + * \param *nidlist + * + * \retval true if contiguous + * \retval false if not contiguous + */ +static bool cfs_num_is_contiguous(struct list_head *nidlist) +{ + struct nidrange *nr; + struct addrrange *ar; + struct cfs_expr_list *el; + struct cfs_range_expr *re; + int last_hi = 0; + __u32 last_end_nid = 0; + __u32 current_start_nid = 0; + __u32 current_end_nid = 0; + + list_for_each_entry(nr, nidlist, nr_link) { + list_for_each_entry(ar, &nr->nr_addrranges, ar_link) { + cfs_num_ar_min_max(ar, ¤t_start_nid, + ¤t_end_nid); + if (last_end_nid != 0 && + (current_start_nid - last_end_nid != 1)) + return false; + last_end_nid = current_end_nid; + list_for_each_entry(el, &ar->ar_numaddr_ranges, + el_link) { + list_for_each_entry(re, &el->el_exprs, + re_link) { + if (re->re_stride > 1) + return false; + else if (last_hi != 0 && + re->re_hi - last_hi != 1) + return false; + last_hi = re->re_hi; + } + } + } + } + + return true; +} + +/** + * Determines whether an expression list in an ip nidrange contains exactly + * one contiguous address range. + * + * \param *nidlist + * + * \retval true if contiguous + * \retval false if not contiguous + */ +static bool cfs_ip_is_contiguous(struct list_head *nidlist) +{ + struct nidrange *nr; + struct addrrange *ar; + struct cfs_expr_list *el; + struct cfs_range_expr *re; + int expr_count; + int last_hi = 255; + int last_diff = 0; + __u32 last_end_nid = 0; + __u32 current_start_nid = 0; + __u32 current_end_nid = 0; + + list_for_each_entry(nr, nidlist, nr_link) { + list_for_each_entry(ar, &nr->nr_addrranges, ar_link) { + last_hi = 255; + last_diff = 0; + cfs_ip_ar_min_max(ar, ¤t_start_nid, + ¤t_end_nid); + if (last_end_nid != 0 && + (current_start_nid - last_end_nid != 1)) + return false; + last_end_nid = current_end_nid; + list_for_each_entry(el, &ar->ar_numaddr_ranges, + el_link) { + expr_count = 0; + list_for_each_entry(re, &el->el_exprs, + re_link) { + expr_count++; + if (re->re_stride > 1 || + (last_diff > 0 && last_hi != 255) || + (last_diff > 0 && last_hi == 255 && + re->re_lo > 0)) + return false; + last_hi = re->re_hi; + last_diff = re->re_hi - re->re_lo; + } + } + } + } + + return true; +} + +/** + * Takes a linked list of nidrange expressions, determines the minimum + * and maximum nid and creates appropriate nid structures + * + * \param *nidlist + * \param *min_nid + * \param *max_nid + */ +void cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid, + char *max_nid, size_t nidstr_length) +{ + struct nidrange *nr; + struct netstrfns *nf = NULL; + int netnum = -1; + __u32 min_addr; + __u32 max_addr; + char *lndname = NULL; + char min_addr_str[IPSTRING_LENGTH]; + char max_addr_str[IPSTRING_LENGTH]; + + list_for_each_entry(nr, nidlist, nr_link) { + nf = nr->nr_netstrfns; + lndname = nf->nf_name; + if (netnum == -1) + netnum = nr->nr_netnum; + + nf->nf_min_max(nidlist, &min_addr, &max_addr); + } + nf->nf_addr2str(min_addr, min_addr_str); + nf->nf_addr2str(max_addr, max_addr_str); + + snprintf(min_nid, nidstr_length, "%s@%s%d", min_addr_str, lndname, + netnum); + snprintf(max_nid, nidstr_length, "%s@%s%d", max_addr_str, lndname, + netnum); +} +EXPORT_SYMBOL(cfs_nidrange_find_min_max); + +/** + * Determines the min and max NID values for num LNDs + * + * \param *nidlist + * \param *min_nid + * \param *max_nid + */ +static void cfs_num_min_max(struct list_head *nidlist, __u32 *min_nid, + __u32 *max_nid) +{ + struct nidrange *nr; + struct addrrange *ar; + unsigned int tmp_min_addr = 0; + unsigned int tmp_max_addr = 0; + unsigned int min_addr = 0; + unsigned int max_addr = 0; + + list_for_each_entry(nr, nidlist, nr_link) { + list_for_each_entry(ar, &nr->nr_addrranges, ar_link) { + cfs_num_ar_min_max(ar, &tmp_min_addr, + &tmp_max_addr); + if (tmp_min_addr < min_addr || min_addr == 0) + min_addr = tmp_min_addr; + if (tmp_max_addr > max_addr) + max_addr = tmp_min_addr; + } + } + *max_nid = max_addr; + *min_nid = min_addr; +} + +/** + * Takes an nidlist and determines the minimum and maximum + * ip addresses. + * + * \param *nidlist + * \param *min_nid + * \param *max_nid + */ +static void cfs_ip_min_max(struct list_head *nidlist, __u32 *min_nid, + __u32 *max_nid) +{ + struct nidrange *nr; + struct addrrange *ar; + __u32 tmp_min_ip_addr = 0; + __u32 tmp_max_ip_addr = 0; + __u32 min_ip_addr = 0; + __u32 max_ip_addr = 0; + + list_for_each_entry(nr, nidlist, nr_link) { + list_for_each_entry(ar, &nr->nr_addrranges, ar_link) { + cfs_ip_ar_min_max(ar, &tmp_min_ip_addr, + &tmp_max_ip_addr); + if (tmp_min_ip_addr < min_ip_addr || min_ip_addr == 0) + min_ip_addr = tmp_min_ip_addr; + if (tmp_max_ip_addr > max_ip_addr) + max_ip_addr = tmp_max_ip_addr; + } + } + + if (min_nid != NULL) + *min_nid = min_ip_addr; + if (max_nid != NULL) + *max_nid = max_ip_addr; +} + static int libcfs_lo_str2addr(const char *str, int nob, __u32 *addr) { @@ -665,7 +978,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_lo_str2addr, /* .nf_parse_addr*/ libcfs_num_parse, /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match}, + /* .nf_match_addr*/ libcfs_num_match, + /* .nf_is_contiguous */ cfs_num_is_contiguous, + /* .nf_min_max */ cfs_num_min_max}, {/* .nf_type */ SOCKLND, /* .nf_name */ "tcp", /* .nf_modname */ "ksocklnd", @@ -673,7 +988,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match}, + /* .nf_match_addr*/ cfs_ip_addr_match, + /* .nf_is_contiguous */ cfs_ip_is_contiguous, + /* .nf_min_max */ cfs_ip_min_max}, {/* .nf_type */ O2IBLND, /* .nf_name */ "o2ib", /* .nf_modname */ "ko2iblnd", @@ -681,7 +998,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match}, + /* .nf_match_addr*/ cfs_ip_addr_match, + /* .nf_is_contiguous */ cfs_ip_is_contiguous, + /* .nf_min_max */ cfs_ip_min_max}, {/* .nf_type */ CIBLND, /* .nf_name */ "cib", /* .nf_modname */ "kciblnd", @@ -689,7 +1008,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match}, + /* .nf_match_addr*/ cfs_ip_addr_match, + /* .nf_is_contiguous */ cfs_ip_is_contiguous, + /* .nf_min_max */ cfs_ip_min_max}, {/* .nf_type */ OPENIBLND, /* .nf_name */ "openib", /* .nf_modname */ "kopeniblnd", @@ -697,7 +1018,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match}, + /* .nf_match_addr*/ cfs_ip_addr_match, + /* .nf_is_contiguous */ cfs_ip_is_contiguous, + /* .nf_min_max */ cfs_ip_min_max}, {/* .nf_type */ IIBLND, /* .nf_name */ "iib", /* .nf_modname */ "kiiblnd", @@ -705,7 +1028,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match}, + /* .nf_match_addr*/ cfs_ip_addr_match, + /* .nf_is_contiguous */ cfs_ip_is_contiguous, + /* .nf_min_max */ cfs_ip_min_max}, {/* .nf_type */ VIBLND, /* .nf_name */ "vib", /* .nf_modname */ "kviblnd", @@ -713,7 +1038,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match}, + /* .nf_match_addr*/ cfs_ip_addr_match, + /* .nf_is_contiguous */ cfs_ip_is_contiguous, + /* .nf_min_max */ cfs_ip_min_max}, {/* .nf_type */ RALND, /* .nf_name */ "ra", /* .nf_modname */ "kralnd", @@ -721,7 +1048,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match}, + /* .nf_match_addr*/ cfs_ip_addr_match, + /* .nf_is_contiguous */ cfs_ip_is_contiguous, + /* .nf_min_max */ cfs_ip_min_max}, {/* .nf_type */ QSWLND, /* .nf_name */ "elan", /* .nf_modname */ "kqswlnd", @@ -729,7 +1058,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_num_str2addr, /* .nf_parse_addrlist*/ libcfs_num_parse, /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match}, + /* .nf_match_addr*/ libcfs_num_match, + /* .nf_is_contiguous */ cfs_num_is_contiguous, + /* .nf_min_max */ cfs_num_min_max}, {/* .nf_type */ GMLND, /* .nf_name */ "gm", /* .nf_modname */ "kgmlnd", @@ -737,7 +1068,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_num_str2addr, /* .nf_parse_addrlist*/ libcfs_num_parse, /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match}, + /* .nf_match_addr*/ libcfs_num_match, + /* .nf_is_contiguous */ cfs_num_is_contiguous, + /* .nf_min_max */ cfs_num_min_max}, {/* .nf_type */ MXLND, /* .nf_name */ "mx", /* .nf_modname */ "kmxlnd", @@ -745,7 +1078,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_ip_str2addr, /* .nf_parse_addrlist*/ cfs_ip_addr_parse, /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match}, + /* .nf_match_addr*/ cfs_ip_addr_match, + /* .nf_is_contiguous */ cfs_ip_is_contiguous, + /* .nf_min_max */ cfs_ip_min_max}, {/* .nf_type */ PTLLND, /* .nf_name */ "ptl", /* .nf_modname */ "kptllnd", @@ -753,7 +1088,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_num_str2addr, /* .nf_parse_addrlist*/ libcfs_num_parse, /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match}, + /* .nf_match_addr*/ libcfs_num_match, + /* .nf_is_contiguous */ cfs_num_is_contiguous, + /* .nf_min_max */ cfs_num_min_max}, {/* .nf_type */ GNILND, /* .nf_name */ "gni", /* .nf_modname */ "kgnilnd", @@ -761,7 +1098,9 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_str2addr */ libcfs_num_str2addr, /* .nf_parse_addrlist*/ libcfs_num_parse, /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match}, + /* .nf_match_addr*/ libcfs_num_match, + /* .nf_is_contiguous */ cfs_num_is_contiguous, + /* .nf_min_max */ cfs_num_min_max}, /* placeholder for net0 alias. It MUST BE THE LAST ENTRY */ {/* .nf_type */ -1}, }; From 80feb1ef349ed03f121c086c02579ee9a08bb343 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin Date: Wed, 21 Oct 2015 21:52:47 -0400 Subject: [PATCH 2067/2431] staging: lustre: provide separate buffers for libcfs_*2str() Provide duplicates with separate buffers for libcfs_*2str() functions. Replace libcfs_nid2str() with libcfs_nid2str_r() function in critical places. Provide buffer size for nf_addr2str functions. Use __u32 as nf_type always Signed-off-by: Dmitry Eremin Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6070 Reviewed-on: http://review.whamcloud.com/13185 Reviewed-by: John L. Hammond Reviewed-by: Andreas Dilger Signed-off-by: Greg Kroah-Hartman --- .../lustre/include/linux/lnet/nidstr.h | 31 +++- drivers/staging/lustre/lnet/lnet/api-ni.c | 6 +- drivers/staging/lustre/lnet/lnet/nidstrings.c | 156 +++++++++--------- drivers/staging/lustre/lnet/lnet/router.c | 2 +- .../lustre/lustre/obdclass/lprocfs_status.c | 11 +- .../lustre/lustre/obdclass/obd_config.c | 9 +- .../lustre/lustre/obdclass/obd_mount.c | 7 +- .../staging/lustre/lustre/osc/osc_request.c | 8 +- .../lustre/lustre/ptlrpc/lproc_ptlrpc.c | 5 +- 9 files changed, 130 insertions(+), 105 deletions(-) diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h index 4e7c9a5f9a9b..46ad9147ad2a 100644 --- a/drivers/staging/lustre/include/linux/lnet/nidstr.h +++ b/drivers/staging/lustre/include/linux/lnet/nidstr.h @@ -57,12 +57,29 @@ struct list_head; #define LNET_NIDSTR_COUNT 1024 /* # of nidstrings */ #define LNET_NIDSTR_SIZE 32 /* size of each one (see below for usage) */ -int libcfs_isknown_lnd(int type); -char *libcfs_lnd2modname(int type); -char *libcfs_lnd2str(int type); +/* support decl needed by both kernel and user space */ +char *libcfs_next_nidstring(void); +int libcfs_isknown_lnd(__u32 lnd); +char *libcfs_lnd2modname(__u32 lnd); +char *libcfs_lnd2str_r(__u32 lnd, char *buf, size_t buf_size); +static inline char *libcfs_lnd2str(__u32 lnd) +{ + return libcfs_lnd2str_r(lnd, libcfs_next_nidstring(), + LNET_NIDSTR_SIZE); +} int libcfs_str2lnd(const char *str); -char *libcfs_net2str(__u32 net); -char *libcfs_nid2str(lnet_nid_t nid); +char *libcfs_net2str_r(__u32 net, char *buf, size_t buf_size); +static inline char *libcfs_net2str(__u32 net) +{ + return libcfs_net2str_r(net, libcfs_next_nidstring(), + LNET_NIDSTR_SIZE); +} +char *libcfs_nid2str_r(lnet_nid_t nid, char *buf, size_t buf_size); +static inline char *libcfs_nid2str(lnet_nid_t nid) +{ + return libcfs_nid2str_r(nid, libcfs_next_nidstring(), + LNET_NIDSTR_SIZE); +} __u32 libcfs_str2net(const char *str); lnet_nid_t libcfs_str2nid(const char *str); int libcfs_str2anynid(lnet_nid_t *nid, const char *str); @@ -79,10 +96,10 @@ void cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid, char *max_nid, size_t nidstr_length); struct netstrfns { - int nf_type; + __u32 nf_type; char *nf_name; char *nf_modname; - void (*nf_addr2str)(__u32 addr, char *str); + void (*nf_addr2str)(__u32 addr, char *str, size_t size); int (*nf_str2addr)(const char *str, int nob, __u32 *addr); int (*nf_parse_addrlist)(char *str, int len, struct list_head *list); diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c index 53ad5ef4cde4..395412639935 100644 --- a/drivers/staging/lustre/lnet/lnet/api-ni.c +++ b/drivers/staging/lustre/lnet/lnet/api-ni.c @@ -263,7 +263,7 @@ static void lnet_assert_wire_constants(void) } static lnd_t * -lnet_find_lnd_by_type(int type) +lnet_find_lnd_by_type(__u32 type) { lnd_t *lnd; struct list_head *tmp; @@ -272,7 +272,7 @@ lnet_find_lnd_by_type(int type) list_for_each(tmp, &the_lnet.ln_lnds) { lnd = list_entry(tmp, lnd_t, lnd_list); - if ((int)lnd->lnd_type == type) + if (lnd->lnd_type == type) return lnd; } @@ -962,7 +962,7 @@ lnet_startup_lndnis(void) struct list_head nilist; int i; int rc = 0; - int lnd_type; + __u32 lnd_type; int nicount = 0; char *nets = lnet_get_networks(); diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index 4402b80c8bf0..b7a65da5d07b 100644 --- a/drivers/staging/lustre/lnet/lnet/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -693,8 +693,8 @@ void cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid, nf->nf_min_max(nidlist, &min_addr, &max_addr); } - nf->nf_addr2str(min_addr, min_addr_str); - nf->nf_addr2str(max_addr, max_addr_str); + nf->nf_addr2str(min_addr, min_addr_str, sizeof(min_addr_str)); + nf->nf_addr2str(max_addr, max_addr_str, sizeof(max_addr_str)); snprintf(min_nid, nidstr_length, "%s@%s%d", min_addr_str, lndname, netnum); @@ -777,9 +777,9 @@ libcfs_lo_str2addr(const char *str, int nob, __u32 *addr) } static void -libcfs_ip_addr2str(__u32 addr, char *str) +libcfs_ip_addr2str(__u32 addr, char *str, size_t size) { - snprintf(str, LNET_NIDSTR_SIZE, "%u.%u.%u.%u", + snprintf(str, size, "%u.%u.%u.%u", (addr >> 24) & 0xff, (addr >> 16) & 0xff, (addr >> 8) & 0xff, addr & 0xff); } @@ -888,15 +888,15 @@ cfs_ip_addr_match(__u32 addr, struct list_head *list) } static void -libcfs_decnum_addr2str(__u32 addr, char *str) +libcfs_decnum_addr2str(__u32 addr, char *str, size_t size) { - snprintf(str, LNET_NIDSTR_SIZE, "%u", addr); + snprintf(str, size, "%u", addr); } static void -libcfs_hexnum_addr2str(__u32 addr, char *str) +libcfs_hexnum_addr2str(__u32 addr, char *str, size_t size) { - snprintf(str, LNET_NIDSTR_SIZE, "0x%x", addr); + snprintf(str, size, "0x%x", addr); } static int @@ -1105,17 +1105,16 @@ static struct netstrfns libcfs_netstrfns[] = { {/* .nf_type */ -1}, }; -static const int libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns); +static const size_t libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns); static struct netstrfns * -libcfs_lnd2netstrfns(int lnd) +libcfs_lnd2netstrfns(__u32 lnd) { - int i; + int i; - if (lnd >= 0) - for (i = 0; i < libcfs_nnetstrfns; i++) - if (lnd == libcfs_netstrfns[i].nf_type) - return &libcfs_netstrfns[i]; + for (i = 0; i < libcfs_nnetstrfns; i++) + if (lnd == libcfs_netstrfns[i].nf_type) + return &libcfs_netstrfns[i]; return NULL; } @@ -1124,7 +1123,7 @@ static struct netstrfns * libcfs_namenum2netstrfns(const char *name) { struct netstrfns *nf; - int i; + int i; for (i = 0; i < libcfs_nnetstrfns; i++) { nf = &libcfs_netstrfns[i]; @@ -1149,14 +1148,14 @@ libcfs_name2netstrfns(const char *name) } int -libcfs_isknown_lnd(int type) +libcfs_isknown_lnd(__u32 lnd) { - return libcfs_lnd2netstrfns(type) != NULL; + return libcfs_lnd2netstrfns(lnd) != NULL; } EXPORT_SYMBOL(libcfs_isknown_lnd); char * -libcfs_lnd2modname(int lnd) +libcfs_lnd2modname(__u32 lnd) { struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); @@ -1164,21 +1163,6 @@ libcfs_lnd2modname(int lnd) } EXPORT_SYMBOL(libcfs_lnd2modname); -char * -libcfs_lnd2str(int lnd) -{ - char *str; - struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); - - if (nf != NULL) - return nf->nf_name; - - str = libcfs_next_nidstring(); - snprintf(str, LNET_NIDSTR_SIZE, "?%d?", lnd); - return str; -} -EXPORT_SYMBOL(libcfs_lnd2str); - int libcfs_str2lnd(const char *str) { @@ -1192,65 +1176,81 @@ libcfs_str2lnd(const char *str) EXPORT_SYMBOL(libcfs_str2lnd); char * -libcfs_net2str(__u32 net) +libcfs_lnd2str_r(__u32 lnd, char *buf, size_t buf_size) { - int lnd = LNET_NETTYP(net); - int num = LNET_NETNUM(net); - struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); - char *str = libcfs_next_nidstring(); - - if (nf == NULL) - snprintf(str, LNET_NIDSTR_SIZE, "<%d:%d>", lnd, num); - else if (num == 0) - snprintf(str, LNET_NIDSTR_SIZE, "%s", nf->nf_name); - else - snprintf(str, LNET_NIDSTR_SIZE, "%s%d", nf->nf_name, num); - - return str; -} -EXPORT_SYMBOL(libcfs_net2str); - -char * -libcfs_nid2str(lnet_nid_t nid) -{ - __u32 addr = LNET_NIDADDR(nid); - __u32 net = LNET_NIDNET(nid); - int lnd = LNET_NETTYP(net); - int nnum = LNET_NETNUM(net); struct netstrfns *nf; - char *str; - int nob; - - if (nid == LNET_NID_ANY) - return ""; nf = libcfs_lnd2netstrfns(lnd); - str = libcfs_next_nidstring(); - if (nf == NULL) - snprintf(str, LNET_NIDSTR_SIZE, "%x@<%d:%d>", addr, lnd, nnum); + snprintf(buf, buf_size, "?%u?", lnd); + else + snprintf(buf, buf_size, "%s", nf->nf_name); + + return buf; +} +EXPORT_SYMBOL(libcfs_lnd2str_r); + +char * +libcfs_net2str_r(__u32 net, char *buf, size_t buf_size) +{ + __u32 nnum = LNET_NETNUM(net); + __u32 lnd = LNET_NETTYP(net); + struct netstrfns *nf; + + nf = libcfs_lnd2netstrfns(lnd); + if (nf == NULL) + snprintf(buf, buf_size, "<%u:%u>", lnd, nnum); + else if (nnum == 0) + snprintf(buf, buf_size, "%s", nf->nf_name); + else + snprintf(buf, buf_size, "%s%u", nf->nf_name, nnum); + + return buf; +} +EXPORT_SYMBOL(libcfs_net2str_r); + +char * +libcfs_nid2str_r(lnet_nid_t nid, char *buf, size_t buf_size) +{ + __u32 addr = LNET_NIDADDR(nid); + __u32 net = LNET_NIDNET(nid); + __u32 nnum = LNET_NETNUM(net); + __u32 lnd = LNET_NETTYP(net); + struct netstrfns *nf; + + if (nid == LNET_NID_ANY) { + strncpy(buf, "", buf_size); + buf[buf_size - 1] = '\0'; + return buf; + } + + nf = libcfs_lnd2netstrfns(lnd); + if (nf == NULL) + snprintf(buf, buf_size, "%x@<%u:%u>", addr, lnd, nnum); else { - nf->nf_addr2str(addr, str); - nob = strlen(str); + size_t addr_len; + + nf->nf_addr2str(addr, buf, buf_size); + addr_len = strlen(buf); if (nnum == 0) - snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s", + snprintf(buf + addr_len, buf_size - addr_len, "@%s", nf->nf_name); else - snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s%d", + snprintf(buf + addr_len, buf_size - addr_len, "@%s%u", nf->nf_name, nnum); } - return str; + return buf; } -EXPORT_SYMBOL(libcfs_nid2str); +EXPORT_SYMBOL(libcfs_nid2str_r); static struct netstrfns * libcfs_str2net_internal(const char *str, __u32 *net) { struct netstrfns *uninitialized_var(nf); - int nob; - unsigned int netnum; - int i; + int nob; + unsigned int netnum; + int i; for (i = 0; i < libcfs_nnetstrfns; i++) { nf = &libcfs_netstrfns[i]; @@ -1296,10 +1296,10 @@ EXPORT_SYMBOL(libcfs_str2net); lnet_nid_t libcfs_str2nid(const char *str) { - const char *sep = strchr(str, '@'); + const char *sep = strchr(str, '@'); struct netstrfns *nf; - __u32 net; - __u32 addr; + __u32 net; + __u32 addr; if (sep != NULL) { nf = libcfs_str2net_internal(sep + 1, &net); diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c index 4b5677025cd5..fe49f1b87652 100644 --- a/drivers/staging/lustre/lnet/lnet/router.c +++ b/drivers/staging/lustre/lnet/lnet/router.c @@ -235,7 +235,7 @@ lnet_find_net_locked(__u32 net) static void lnet_shuffle_seed(void) { static int seeded; - int lnd_type, seed[2]; + __u32 lnd_type, seed[2]; struct timespec64 ts; lnet_ni_t *ni; struct list_head *tmp; diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 3228feed4747..047ced5c5230 100644 --- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c +++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c @@ -610,6 +610,7 @@ static void obd_connect_seq_flags2str(struct seq_file *m, __u64 flags, char *sep int lprocfs_rd_import(struct seq_file *m, void *data) { + char nidstr[LNET_NIDSTR_SIZE]; struct lprocfs_counter ret; struct lprocfs_counter_header *header; struct obd_device *obd = data; @@ -647,18 +648,20 @@ int lprocfs_rd_import(struct seq_file *m, void *data) spin_lock(&imp->imp_lock); j = 0; list_for_each_entry(conn, &imp->imp_conn_list, oic_item) { - seq_printf(m, "%s%s", j ? ", " : "", - libcfs_nid2str(conn->oic_conn->c_peer.nid)); + libcfs_nid2str_r(conn->oic_conn->c_peer.nid, + nidstr, sizeof(nidstr)); + seq_printf(m, "%s%s", j ? ", " : "", nidstr); j++; } + libcfs_nid2str_r(imp->imp_connection->c_peer.nid, + nidstr, sizeof(nidstr)); seq_printf(m, "]\n" " current_connection: %s\n" " connection_attempts: %u\n" " generation: %u\n" " in-progress_invalidations: %u\n", - imp->imp_connection == NULL ? "" : - libcfs_nid2str(imp->imp_connection->c_peer.nid), + imp->imp_connection == NULL ? "" : nidstr, imp->imp_conn_cnt, imp->imp_generation, atomic_read(&imp->imp_inval_count)); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 38e5e13c7fde..64753b39faf5 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -1316,10 +1316,13 @@ static int class_config_parse_rec(struct llog_rec_hdr *rec, char *buf, if (lcfg->lcfg_num) ptr += snprintf(ptr, end-ptr, "num=%#08x ", lcfg->lcfg_num); - if (lcfg->lcfg_nid) + if (lcfg->lcfg_nid) { + char nidstr[LNET_NIDSTR_SIZE]; + + libcfs_nid2str_r(lcfg->lcfg_nid, nidstr, sizeof(nidstr)); ptr += snprintf(ptr, end-ptr, "nid=%s(%#llx)\n ", - libcfs_nid2str(lcfg->lcfg_nid), - lcfg->lcfg_nid); + nidstr, lcfg->lcfg_nid); + } if (lcfg->lcfg_command == LCFG_MARKER) { struct cfg_marker *marker = lustre_cfg_buf(lcfg, 1); diff --git a/drivers/staging/lustre/lustre/obdclass/obd_mount.c b/drivers/staging/lustre/lustre/obdclass/obd_mount.c index 149c83813583..48003d5325e3 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_mount.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_mount.c @@ -209,9 +209,10 @@ int lustre_start_mgc(struct super_block *sb) struct obd_uuid *uuid; class_uuid_t uuidc; lnet_nid_t nid; + char nidstr[LNET_NIDSTR_SIZE]; char *mgcname = NULL, *niduuid = NULL, *mgssec = NULL; char *ptr; - int rc = 0, i = 0, j, len; + int rc = 0, i = 0, j; LASSERT(lsi->lsi_lmd); @@ -226,9 +227,9 @@ int lustre_start_mgc(struct super_block *sb) mutex_lock(&mgc_start_lock); - len = strlen(LUSTRE_MGC_OBDNAME) + strlen(libcfs_nid2str(nid)) + 1; + libcfs_nid2str_r(nid, nidstr, sizeof(nidstr)); mgcname = kasprintf(GFP_NOFS, - "%s%s", LUSTRE_MGC_OBDNAME, libcfs_nid2str(nid)); + "%s%s", LUSTRE_MGC_OBDNAME, nidstr); niduuid = kasprintf(GFP_NOFS, "%s_%x", mgcname, i); if (!mgcname || !niduuid) { rc = -ENOMEM; diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 57189ad907d0..367f83af12c0 100644 --- a/drivers/staging/lustre/lustre/osc/osc_request.c +++ b/drivers/staging/lustre/lustre/osc/osc_request.c @@ -1547,8 +1547,8 @@ static int osc_brw_fini_request(struct ptlrpc_request *req, int rc) if (body->oa.o_valid & OBD_MD_FLCKSUM) { static int cksum_counter; __u32 server_cksum = body->oa.o_cksum; - char *via; - char *router; + char *via = ""; + char *router = ""; cksum_type_t cksum_type; cksum_type = cksum_type_unpack(body->oa.o_valid&OBD_MD_FLFLAGS ? @@ -1557,9 +1557,7 @@ static int osc_brw_fini_request(struct ptlrpc_request *req, int rc) aa->aa_ppga, OST_READ, cksum_type); - if (peer->nid == req->rq_bulk->bd_sender) { - via = router = ""; - } else { + if (peer->nid != req->rq_bulk->bd_sender) { via = " via "; router = libcfs_nid2str(req->rq_bulk->bd_sender); } diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 415817c423dd..bc5437e85c6a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c +++ b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c @@ -909,8 +909,11 @@ static int ptlrpc_lprocfs_svc_req_history_show(struct seq_file *s, void *iter) rc = ptlrpc_lprocfs_svc_req_history_seek(svcpt, srhi, srhi->srhi_seq); if (rc == 0) { + char nidstr[LNET_NIDSTR_SIZE]; + req = srhi->srhi_req; + libcfs_nid2str_r(req->rq_self, nidstr, sizeof(nidstr)); /* Print common req fields. * CAVEAT EMPTOR: we're racing with the service handler * here. The request could contain any old crap, so you @@ -918,7 +921,7 @@ static int ptlrpc_lprocfs_svc_req_history_show(struct seq_file *s, void *iter) * parser. Currently I only print stuff here I know is OK * to look at coz it was set up in request_in_callback()!!! */ seq_printf(s, "%lld:%s:%s:x%llu:%d:%s:%lld:%lds(%+lds) ", - req->rq_history_seq, libcfs_nid2str(req->rq_self), + req->rq_history_seq, nidstr, libcfs_id2str(req->rq_peer), req->rq_xid, req->rq_reqlen, ptlrpc_rqphase2str(req), (s64)req->rq_arrival_time.tv_sec, From 1a1e76c07dacf774cd047aad62e8daa315433967 Mon Sep 17 00:00:00 2001 From: Frederic Saunier Date: Wed, 21 Oct 2015 21:52:48 -0400 Subject: [PATCH 2068/2431] staging: lustre: remove last entry of libcfs_netstrfns[] Currently NID string handling test for the last entry, and last entry has .nf_type == (__u32) -1. If we ask for a non existent LND we hit the last entry which then calls a strlen on a NULL which causes a error. We can avoid this problem if we just remove the last entry since it is not used for anything except as a last entry marker. Signed-off-by: Frederic Saunier Signed-off-by: James Simmons Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6501 Reviewed-on: http://review.whamcloud.com/15424 Reviewed-by: frank zago Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/nidstrings.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index b7a65da5d07b..a5cd0ae28611 100644 --- a/drivers/staging/lustre/lnet/lnet/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -1101,8 +1101,6 @@ static struct netstrfns libcfs_netstrfns[] = { /* .nf_match_addr*/ libcfs_num_match, /* .nf_is_contiguous */ cfs_num_is_contiguous, /* .nf_min_max */ cfs_num_min_max}, - /* placeholder for net0 alias. It MUST BE THE LAST ENTRY */ - {/* .nf_type */ -1}, }; static const size_t libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns); @@ -1127,8 +1125,7 @@ libcfs_namenum2netstrfns(const char *name) for (i = 0; i < libcfs_nnetstrfns; i++) { nf = &libcfs_netstrfns[i]; - if (nf->nf_type >= 0 && - !strncmp(name, nf->nf_name, strlen(nf->nf_name))) + if (!strncmp(name, nf->nf_name, strlen(nf->nf_name))) return nf; } return NULL; @@ -1140,8 +1137,7 @@ libcfs_name2netstrfns(const char *name) int i; for (i = 0; i < libcfs_nnetstrfns; i++) - if (libcfs_netstrfns[i].nf_type >= 0 && - !strcmp(libcfs_netstrfns[i].nf_name, name)) + if (!strcmp(libcfs_netstrfns[i].nf_name, name)) return &libcfs_netstrfns[i]; return NULL; @@ -1254,8 +1250,7 @@ libcfs_str2net_internal(const char *str, __u32 *net) for (i = 0; i < libcfs_nnetstrfns; i++) { nf = &libcfs_netstrfns[i]; - if (nf->nf_type >= 0 && - !strncmp(str, nf->nf_name, strlen(nf->nf_name))) + if (!strncmp(str, nf->nf_name, strlen(nf->nf_name))) break; } From a77ddf7cc0e5d6eee2434ed7035abbb5019f99bf Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:49 -0400 Subject: [PATCH 2069/2431] staging: lustre: Use C99 initializers for struct netstrfns Update struct netstrfns to use C99 initializers. Remove old LND types from the netstrfns table, as they are long obsolete and shouldn't be needed even for interop anymore. Signed-off-by: James Simmons Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6210 Reviewed-on: http://review.whamcloud.com/15088 Reviewed-by: frank zago Reviewed-by: Andreas Dilger Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/lnet/nidstrings.c | 188 +++++------------- 1 file changed, 51 insertions(+), 137 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index a5cd0ae28611..80f585afa259 100644 --- a/drivers/staging/lustre/lnet/lnet/nidstrings.c +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -893,12 +893,6 @@ libcfs_decnum_addr2str(__u32 addr, char *str, size_t size) snprintf(str, size, "%u", addr); } -static void -libcfs_hexnum_addr2str(__u32 addr, char *str, size_t size) -{ - snprintf(str, size, "0x%x", addr); -} - static int libcfs_num_str2addr(const char *str, int nob, __u32 *addr) { @@ -970,137 +964,57 @@ libcfs_num_match(__u32 addr, struct list_head *numaddr) return cfs_expr_list_match(addr, el); } -static struct netstrfns libcfs_netstrfns[] = { - {/* .nf_type */ LOLND, - /* .nf_name */ "lo", - /* .nf_modname */ "klolnd", - /* .nf_addr2str */ libcfs_decnum_addr2str, - /* .nf_str2addr */ libcfs_lo_str2addr, - /* .nf_parse_addr*/ libcfs_num_parse, - /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match, - /* .nf_is_contiguous */ cfs_num_is_contiguous, - /* .nf_min_max */ cfs_num_min_max}, - {/* .nf_type */ SOCKLND, - /* .nf_name */ "tcp", - /* .nf_modname */ "ksocklnd", - /* .nf_addr2str */ libcfs_ip_addr2str, - /* .nf_str2addr */ libcfs_ip_str2addr, - /* .nf_parse_addrlist*/ cfs_ip_addr_parse, - /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match, - /* .nf_is_contiguous */ cfs_ip_is_contiguous, - /* .nf_min_max */ cfs_ip_min_max}, - {/* .nf_type */ O2IBLND, - /* .nf_name */ "o2ib", - /* .nf_modname */ "ko2iblnd", - /* .nf_addr2str */ libcfs_ip_addr2str, - /* .nf_str2addr */ libcfs_ip_str2addr, - /* .nf_parse_addrlist*/ cfs_ip_addr_parse, - /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match, - /* .nf_is_contiguous */ cfs_ip_is_contiguous, - /* .nf_min_max */ cfs_ip_min_max}, - {/* .nf_type */ CIBLND, - /* .nf_name */ "cib", - /* .nf_modname */ "kciblnd", - /* .nf_addr2str */ libcfs_ip_addr2str, - /* .nf_str2addr */ libcfs_ip_str2addr, - /* .nf_parse_addrlist*/ cfs_ip_addr_parse, - /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match, - /* .nf_is_contiguous */ cfs_ip_is_contiguous, - /* .nf_min_max */ cfs_ip_min_max}, - {/* .nf_type */ OPENIBLND, - /* .nf_name */ "openib", - /* .nf_modname */ "kopeniblnd", - /* .nf_addr2str */ libcfs_ip_addr2str, - /* .nf_str2addr */ libcfs_ip_str2addr, - /* .nf_parse_addrlist*/ cfs_ip_addr_parse, - /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match, - /* .nf_is_contiguous */ cfs_ip_is_contiguous, - /* .nf_min_max */ cfs_ip_min_max}, - {/* .nf_type */ IIBLND, - /* .nf_name */ "iib", - /* .nf_modname */ "kiiblnd", - /* .nf_addr2str */ libcfs_ip_addr2str, - /* .nf_str2addr */ libcfs_ip_str2addr, - /* .nf_parse_addrlist*/ cfs_ip_addr_parse, - /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match, - /* .nf_is_contiguous */ cfs_ip_is_contiguous, - /* .nf_min_max */ cfs_ip_min_max}, - {/* .nf_type */ VIBLND, - /* .nf_name */ "vib", - /* .nf_modname */ "kviblnd", - /* .nf_addr2str */ libcfs_ip_addr2str, - /* .nf_str2addr */ libcfs_ip_str2addr, - /* .nf_parse_addrlist*/ cfs_ip_addr_parse, - /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match, - /* .nf_is_contiguous */ cfs_ip_is_contiguous, - /* .nf_min_max */ cfs_ip_min_max}, - {/* .nf_type */ RALND, - /* .nf_name */ "ra", - /* .nf_modname */ "kralnd", - /* .nf_addr2str */ libcfs_ip_addr2str, - /* .nf_str2addr */ libcfs_ip_str2addr, - /* .nf_parse_addrlist*/ cfs_ip_addr_parse, - /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match, - /* .nf_is_contiguous */ cfs_ip_is_contiguous, - /* .nf_min_max */ cfs_ip_min_max}, - {/* .nf_type */ QSWLND, - /* .nf_name */ "elan", - /* .nf_modname */ "kqswlnd", - /* .nf_addr2str */ libcfs_decnum_addr2str, - /* .nf_str2addr */ libcfs_num_str2addr, - /* .nf_parse_addrlist*/ libcfs_num_parse, - /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match, - /* .nf_is_contiguous */ cfs_num_is_contiguous, - /* .nf_min_max */ cfs_num_min_max}, - {/* .nf_type */ GMLND, - /* .nf_name */ "gm", - /* .nf_modname */ "kgmlnd", - /* .nf_addr2str */ libcfs_hexnum_addr2str, - /* .nf_str2addr */ libcfs_num_str2addr, - /* .nf_parse_addrlist*/ libcfs_num_parse, - /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match, - /* .nf_is_contiguous */ cfs_num_is_contiguous, - /* .nf_min_max */ cfs_num_min_max}, - {/* .nf_type */ MXLND, - /* .nf_name */ "mx", - /* .nf_modname */ "kmxlnd", - /* .nf_addr2str */ libcfs_ip_addr2str, - /* .nf_str2addr */ libcfs_ip_str2addr, - /* .nf_parse_addrlist*/ cfs_ip_addr_parse, - /* .nf_print_addrlist*/ libcfs_ip_addr_range_print, - /* .nf_match_addr*/ cfs_ip_addr_match, - /* .nf_is_contiguous */ cfs_ip_is_contiguous, - /* .nf_min_max */ cfs_ip_min_max}, - {/* .nf_type */ PTLLND, - /* .nf_name */ "ptl", - /* .nf_modname */ "kptllnd", - /* .nf_addr2str */ libcfs_decnum_addr2str, - /* .nf_str2addr */ libcfs_num_str2addr, - /* .nf_parse_addrlist*/ libcfs_num_parse, - /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match, - /* .nf_is_contiguous */ cfs_num_is_contiguous, - /* .nf_min_max */ cfs_num_min_max}, - {/* .nf_type */ GNILND, - /* .nf_name */ "gni", - /* .nf_modname */ "kgnilnd", - /* .nf_addr2str */ libcfs_decnum_addr2str, - /* .nf_str2addr */ libcfs_num_str2addr, - /* .nf_parse_addrlist*/ libcfs_num_parse, - /* .nf_print_addrlist*/ libcfs_num_addr_range_print, - /* .nf_match_addr*/ libcfs_num_match, - /* .nf_is_contiguous */ cfs_num_is_contiguous, - /* .nf_min_max */ cfs_num_min_max}, +static struct netstrfns libcfs_netstrfns[] = { + { .nf_type = LOLND, + .nf_name = "lo", + .nf_modname = "klolnd", + .nf_addr2str = libcfs_decnum_addr2str, + .nf_str2addr = libcfs_lo_str2addr, + .nf_parse_addrlist = libcfs_num_parse, + .nf_print_addrlist = libcfs_num_addr_range_print, + .nf_match_addr = libcfs_num_match, + .nf_is_contiguous = cfs_num_is_contiguous, + .nf_min_max = cfs_num_min_max }, + { .nf_type = SOCKLND, + .nf_name = "tcp", + .nf_modname = "ksocklnd", + .nf_addr2str = libcfs_ip_addr2str, + .nf_str2addr = libcfs_ip_str2addr, + .nf_parse_addrlist = cfs_ip_addr_parse, + .nf_print_addrlist = libcfs_ip_addr_range_print, + .nf_match_addr = cfs_ip_addr_match, + .nf_is_contiguous = cfs_ip_is_contiguous, + .nf_min_max = cfs_ip_min_max }, + { .nf_type = O2IBLND, + .nf_name = "o2ib", + .nf_modname = "ko2iblnd", + .nf_addr2str = libcfs_ip_addr2str, + .nf_str2addr = libcfs_ip_str2addr, + .nf_parse_addrlist = cfs_ip_addr_parse, + .nf_print_addrlist = libcfs_ip_addr_range_print, + .nf_match_addr = cfs_ip_addr_match, + .nf_is_contiguous = cfs_ip_is_contiguous, + .nf_min_max = cfs_ip_min_max }, + { .nf_type = GNILND, + .nf_name = "gni", + .nf_modname = "kgnilnd", + .nf_addr2str = libcfs_decnum_addr2str, + .nf_str2addr = libcfs_num_str2addr, + .nf_parse_addrlist = libcfs_num_parse, + .nf_print_addrlist = libcfs_num_addr_range_print, + .nf_match_addr = libcfs_num_match, + .nf_is_contiguous = cfs_num_is_contiguous, + .nf_min_max = cfs_num_min_max }, + { .nf_type = GNIIPLND, + .nf_name = "gip", + .nf_modname = "kgnilnd", + .nf_addr2str = libcfs_ip_addr2str, + .nf_str2addr = libcfs_ip_str2addr, + .nf_parse_addrlist = cfs_ip_addr_parse, + .nf_print_addrlist = libcfs_ip_addr_range_print, + .nf_match_addr = cfs_ip_addr_match, + .nf_is_contiguous = cfs_ip_is_contiguous, + .nf_min_max = cfs_ip_min_max }, }; static const size_t libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns); From 017384481135574b0efc61d0f00a3167a93f5726 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Wed, 21 Oct 2015 18:40:40 +0100 Subject: [PATCH 2070/2431] staging: lustre: o2iblnd: fix misleading indentation The code is correct, the indentation is misleading. Only the the return rc is part of the conditional statement if rc != 0. Fix a smatch warning: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2157 kiblnd_hdev_setup_mrs() warn: curly braces intended? Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- .../lustre/lnet/klnds/o2iblnd/o2iblnd.c | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c index c2cc4e446b22..7c730e3f7453 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c @@ -2154,23 +2154,23 @@ static int kiblnd_hdev_setup_mrs(kib_hca_dev_t *hdev) if (rc != 0) return rc; - LIBCFS_ALLOC(hdev->ibh_mrs, 1 * sizeof(*hdev->ibh_mrs)); - if (hdev->ibh_mrs == NULL) { - CERROR("Failed to allocate MRs table\n"); - return -ENOMEM; - } + LIBCFS_ALLOC(hdev->ibh_mrs, 1 * sizeof(*hdev->ibh_mrs)); + if (hdev->ibh_mrs == NULL) { + CERROR("Failed to allocate MRs table\n"); + return -ENOMEM; + } - hdev->ibh_mrs[0] = NULL; - hdev->ibh_nmrs = 1; + hdev->ibh_mrs[0] = NULL; + hdev->ibh_nmrs = 1; - mr = ib_get_dma_mr(hdev->ibh_pd, acflags); - if (IS_ERR(mr)) { - CERROR("Failed ib_get_dma_mr : %ld\n", PTR_ERR(mr)); - kiblnd_hdev_cleanup_mrs(hdev); - return PTR_ERR(mr); - } + mr = ib_get_dma_mr(hdev->ibh_pd, acflags); + if (IS_ERR(mr)) { + CERROR("Failed ib_get_dma_mr : %ld\n", PTR_ERR(mr)); + kiblnd_hdev_cleanup_mrs(hdev); + return PTR_ERR(mr); + } - hdev->ibh_mrs[0] = mr; + hdev->ibh_mrs[0] = mr; return 0; } From 7fc8f5a82b9082fdd738895c103b9f25ea530846 Mon Sep 17 00:00:00 2001 From: Nilesh Kokane Date: Thu, 22 Oct 2015 22:42:43 +0530 Subject: [PATCH 2071/2431] Staging: lustre: lov_obd: fixed a brace coding style issue Fixed a coding style issue. Signed-off-by: Nilesh kokane Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lustre/lov/lov_obd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index c3be0b5ca627..1d74d926d102 100644 --- a/drivers/staging/lustre/lustre/lov/lov_obd.c +++ b/drivers/staging/lustre/lustre/lov/lov_obd.c @@ -2101,11 +2101,10 @@ static int lov_set_info_async(const struct lu_env *env, struct obd_export *exp, } for (i = 0; i < count; i++, val = (char *)val + incr) { - if (next_id) { + if (next_id) tgt = lov->lov_tgts[((struct obd_id_info *)val)->idx]; - } else { + else tgt = lov->lov_tgts[i]; - } /* OST was disconnected */ if (!tgt || !tgt->ltd_exp) continue; From daa4d3ea1e353c0f6e7b2bd657d07e0c3f4cd756 Mon Sep 17 00:00:00 2001 From: Nilesh Kokane Date: Fri, 23 Oct 2015 11:02:20 +0530 Subject: [PATCH 2072/2431] Staging: lustre: lnet :socklnd return statement in void function not useful Return function in void function is not needed. Signed-off-by: Nilesh Kokane Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index 1967c21aefe9..86e172b2cd77 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c @@ -1838,7 +1838,6 @@ ksocknal_query(lnet_ni_t *ni, lnet_nid_t nid, unsigned long *when) ksocknal_launch_all_connections_locked(peer); write_unlock_bh(glock); - return; } static void From df5ddcc97e694bfa5dafa838c26e5b974c706929 Mon Sep 17 00:00:00 2001 From: Nilesh Kokane Date: Fri, 23 Oct 2015 11:24:04 +0530 Subject: [PATCH 2073/2431] staging: lustre: lnet :socklnd Braces not necessary Braces not needed for single statement block Signed-off-by: Nilesh Kokane Signed-off-by: Greg Kroah-Hartman --- drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index 86e172b2cd77..ecfe73302350 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c @@ -2259,9 +2259,8 @@ ksocknal_base_shutdown(void) case SOCKNAL_INIT_ALL: case SOCKNAL_INIT_DATA: LASSERT(ksocknal_data.ksnd_peers != NULL); - for (i = 0; i < ksocknal_data.ksnd_peer_hash_size; i++) { + for (i = 0; i < ksocknal_data.ksnd_peer_hash_size; i++) LASSERT(list_empty(&ksocknal_data.ksnd_peers[i])); - } LASSERT(list_empty(&ksocknal_data.ksnd_nets)); LASSERT(list_empty(&ksocknal_data.ksnd_enomem_conns)); From fb1dc957054c6a9823b20b2672f5193e47bc5f6d Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 21 Oct 2015 20:00:51 +0300 Subject: [PATCH 2074/2431] staging: rdma: Replace kmalloc with kmalloc_array Replace kmalloc with specialized function kmalloc_array when the size is a multiplication of: number_of_elements * size_of_element Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/amso1100/c2_provider.c | 2 +- drivers/staging/rdma/ipath/ipath_verbs.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rdma/amso1100/c2_provider.c b/drivers/staging/rdma/amso1100/c2_provider.c index 25632158a52a..c707e45887c2 100644 --- a/drivers/staging/rdma/amso1100/c2_provider.c +++ b/drivers/staging/rdma/amso1100/c2_provider.c @@ -462,7 +462,7 @@ static struct ib_mr *c2_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, shift = ffs(c2mr->umem->page_size) - 1; n = c2mr->umem->nmap; - pages = kmalloc(n * sizeof(u64), GFP_KERNEL); + pages = kmalloc_array(n, sizeof(u64), GFP_KERNEL); if (!pages) { err = -ENOMEM; goto err; diff --git a/drivers/staging/rdma/ipath/ipath_verbs.c b/drivers/staging/rdma/ipath/ipath_verbs.c index 40f7f059f6b2..ea3f21aa0b38 100644 --- a/drivers/staging/rdma/ipath/ipath_verbs.c +++ b/drivers/staging/rdma/ipath/ipath_verbs.c @@ -2025,8 +2025,8 @@ int ipath_register_ib_device(struct ipath_devdata *dd) dev = &idev->ibdev; if (dd->ipath_sdma_descq_cnt) { - tx = kmalloc(dd->ipath_sdma_descq_cnt * sizeof *tx, - GFP_KERNEL); + tx = kmalloc_array(dd->ipath_sdma_descq_cnt, sizeof *tx, + GFP_KERNEL); if (tx == NULL) { ret = -ENOMEM; goto err_tx; From a4785ef8102390fa7e0e8865efd44036b7337e22 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:48 +0300 Subject: [PATCH 2075/2431] staging: gdm724x: properly indent to match open paranthesis Indent parameters and arguments passed to function calls to match open paranthesis Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm724x/gdm_lte.c | 32 +++++++++++++++---------------- drivers/staging/gdm724x/gdm_mux.c | 2 +- drivers/staging/gdm724x/gdm_usb.c | 20 +++++++++---------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index 8a55ec1e5331..5efc588afec0 100644 --- a/drivers/staging/gdm724x/gdm_lte.c +++ b/drivers/staging/gdm724x/gdm_lte.c @@ -162,11 +162,11 @@ static int gdm_lte_emulate_arp(struct sk_buff *skb_in, u32 nic_type) skb_reserve(skb_out, NET_IP_ALIGN); memcpy(skb_put(skb_out, mac_header_len), mac_header_data, - mac_header_len); + mac_header_len); memcpy(skb_put(skb_out, sizeof(struct arphdr)), arp_out, - sizeof(struct arphdr)); + sizeof(struct arphdr)); memcpy(skb_put(skb_out, sizeof(struct arpdata)), arp_data_out, - sizeof(struct arpdata)); + sizeof(struct arpdata)); skb_out->protocol = ((struct ethhdr *)mac_header_data)->h_proto; skb_out->dev = skb_in->dev; @@ -300,13 +300,13 @@ static int gdm_lte_emulate_ndp(struct sk_buff *skb_in, u32 nic_type) memcpy(&ipv6_out, ipv6_in, sizeof(struct ipv6hdr)); memcpy(ipv6_out.saddr.in6_u.u6_addr8, &na.target_address, 16); memcpy(ipv6_out.daddr.in6_u.u6_addr8, - ipv6_in->saddr.in6_u.u6_addr8, 16); + ipv6_in->saddr.in6_u.u6_addr8, 16); ipv6_out.payload_len = htons(sizeof(struct icmp6hdr) + sizeof(struct neighbour_advertisement)); memcpy(icmp_na, &icmp6_out, sizeof(struct icmp6hdr)); memcpy(icmp_na + sizeof(struct icmp6hdr), &na, - sizeof(struct neighbour_advertisement)); + sizeof(struct neighbour_advertisement)); icmp6_out.icmp6_cksum = icmp6_checksum(&ipv6_out, (u16 *)icmp_na, sizeof(icmp_na)); @@ -326,13 +326,13 @@ static int gdm_lte_emulate_ndp(struct sk_buff *skb_in, u32 nic_type) skb_reserve(skb_out, NET_IP_ALIGN); memcpy(skb_put(skb_out, mac_header_len), mac_header_data, - mac_header_len); + mac_header_len); memcpy(skb_put(skb_out, sizeof(struct ipv6hdr)), &ipv6_out, - sizeof(struct ipv6hdr)); + sizeof(struct ipv6hdr)); memcpy(skb_put(skb_out, sizeof(struct icmp6hdr)), &icmp6_out, - sizeof(struct icmp6hdr)); + sizeof(struct icmp6hdr)); memcpy(skb_put(skb_out, sizeof(struct neighbour_advertisement)), &na, - sizeof(struct neighbour_advertisement)); + sizeof(struct neighbour_advertisement)); skb_out->protocol = ((struct ethhdr *)mac_header_data)->h_proto; skb_out->dev = skb_in->dev; @@ -530,7 +530,7 @@ static int gdm_lte_event_send(struct net_device *dev, char *buf, int len) } static void gdm_lte_event_rcv(struct net_device *dev, u16 type, - void *msg, int len) + void *msg, int len) { struct nic *nic = netdev_priv(dev); @@ -572,7 +572,7 @@ static u8 find_dev_index(u32 nic_type) } static void gdm_lte_netif_rx(struct net_device *dev, char *buf, - int len, int flagged_nic_type) + int len, int flagged_nic_type) { u32 nic_type; struct nic *nic; @@ -697,9 +697,9 @@ static void gdm_lte_multi_sdu_pkt(struct phy_dev *phy_dev, char *buf, int len) u8 index; hci_len = gdm_dev16_to_cpu(phy_dev->get_endian(phy_dev->priv_dev), - multi_sdu->len); + multi_sdu->len); num_packet = gdm_dev16_to_cpu(phy_dev->get_endian(phy_dev->priv_dev), - multi_sdu->num_packet); + multi_sdu->num_packet); for (i = 0; i < num_packet; i++) { sdu = (struct sdu *)data; @@ -724,7 +724,7 @@ static void gdm_lte_multi_sdu_pkt(struct phy_dev *phy_dev, char *buf, int len) if (index < MAX_NIC_TYPE) { dev = phy_dev->dev[index]; gdm_lte_netif_rx(dev, (char *)sdu->data, - (int)(hci_len-12), nic_type); + (int)(hci_len - 12), nic_type); } else { pr_err("rx sdu invalid nic_type :%x\n", nic_type); } @@ -772,7 +772,7 @@ static int gdm_lte_receive_pkt(struct phy_dev *phy_dev, char *buf, int len) return ret; cmd_evt = gdm_dev16_to_cpu(phy_dev->get_endian(phy_dev->priv_dev), - hci->cmd_evt); + hci->cmd_evt); dev = phy_dev->dev[0]; if (dev == NULL) @@ -839,7 +839,7 @@ static struct net_device_ops gdm_netdev_ops = { static u8 gdm_lte_macaddr[ETH_ALEN] = {0x00, 0x0a, 0x3b, 0x00, 0x00, 0x00}; static void form_mac_address(u8 *dev_addr, u8 *nic_src, u8 *nic_dest, - u8 *mac_address, u8 index) + u8 *mac_address, u8 index) { /* Form the dev_addr */ if (!mac_address) diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 07de99cf473e..e82f3179c5db 100644 --- a/drivers/staging/gdm724x/gdm_mux.c +++ b/drivers/staging/gdm724x/gdm_mux.c @@ -271,7 +271,7 @@ static void gdm_mux_rcv_complete(struct urb *urb) if (urb->status) { if (mux_dev->usb_state == PM_NORMAL) dev_err(&urb->dev->dev, "%s: urb status error %d\n", - __func__, urb->status); + __func__, urb->status); put_rx_struct(rx, r); } else { r->len = r->urb->actual_length; diff --git a/drivers/staging/gdm724x/gdm_usb.c b/drivers/staging/gdm724x/gdm_usb.c index 9ceba147d390..1c15b9c80e4f 100644 --- a/drivers/staging/gdm724x/gdm_usb.c +++ b/drivers/staging/gdm724x/gdm_usb.c @@ -63,7 +63,7 @@ static void do_rx(struct work_struct *work); static int gdm_usb_recv(void *priv_dev, int (*cb)(void *cb_data, - void *data, int len, int context), + void *data, int len, int context), void *cb_data, int context); @@ -80,7 +80,7 @@ static int request_mac_address(struct lte_udev *udev) hci->data[0] = MAC_ADDRESS; ret = usb_bulk_msg(usbdev, usb_sndbulkpipe(usbdev, 2), buf, 5, - &actual, 1000); + &actual, 1000); udev->request_mac_addr = 1; @@ -376,7 +376,7 @@ static int set_mac_address(u8 *data, void *arg) memcpy(mac_address, tlv->data, tlv->len); if (register_lte_device(phy_dev, - &udev->intf->dev, mac_address) < 0) + &udev->intf->dev, mac_address) < 0) pr_err("register lte device failed\n"); udev->request_mac_addr = 0; @@ -406,7 +406,7 @@ static void do_rx(struct work_struct *work) break; } r = list_entry(rx->to_host_list.next, - struct usb_rx, to_host_list); + struct usb_rx, to_host_list); list_del(&r->to_host_list); spin_unlock_irqrestore(&rx->to_host_lock, flags); @@ -481,7 +481,7 @@ static void gdm_usb_rcv_complete(struct urb *urb) } else { if (urb->status && udev->usb_state == PM_NORMAL) dev_err(&urb->dev->dev, "%s: urb status error %d\n", - __func__, urb->status); + __func__, urb->status); put_rx_struct(rx, r); } @@ -491,7 +491,7 @@ static void gdm_usb_rcv_complete(struct urb *urb) static int gdm_usb_recv(void *priv_dev, int (*cb)(void *cb_data, - void *data, int len, int context), + void *data, int len, int context), void *cb_data, int context) { @@ -711,8 +711,8 @@ static void do_tx(struct work_struct *work) #define SDU_PARAM_LEN 12 static int gdm_usb_sdu_send(void *priv_dev, void *data, int len, - unsigned int dftEpsId, unsigned int epsId, - void (*cb)(void *data), void *cb_data, + unsigned int dftEpsId, unsigned int epsId, + void (*cb)(void *data), void *cb_data, int dev_idx, int nic_type) { struct lte_udev *udev = priv_dev; @@ -769,7 +769,7 @@ static int gdm_usb_sdu_send(void *priv_dev, void *data, int len, } static int gdm_usb_hci_send(void *priv_dev, void *data, int len, - void (*cb)(void *data), void *cb_data) + void (*cb)(void *data), void *cb_data) { struct lte_udev *udev = priv_dev; struct tx_cxt *tx = &udev->tx; @@ -810,7 +810,7 @@ static struct gdm_endian *gdm_usb_get_endian(void *priv_dev) } static int gdm_usb_probe(struct usb_interface *intf, - const struct usb_device_id *id) + const struct usb_device_id *id) { int ret = 0; struct phy_dev *phy_dev = NULL; From b6f6fd8a871cebc8085719c08ea489d1d98bb21e Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:49 +0300 Subject: [PATCH 2076/2431] stating: gdm724x: remove explicit NULL comparison This patch converts explicit NULL comparison to its shorter equivalent form. Done with coccinelle semantic patch: @@ expression e; @@ - e == NULL + !e Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm724x/gdm_lte.c | 4 ++-- drivers/staging/gdm724x/gdm_mux.c | 4 ++-- drivers/staging/gdm724x/gdm_tty.c | 2 +- drivers/staging/gdm724x/gdm_usb.c | 16 ++++++++-------- drivers/staging/gdm724x/netlink_k.c | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index 5efc588afec0..28107dd520d4 100644 --- a/drivers/staging/gdm724x/gdm_lte.c +++ b/drivers/staging/gdm724x/gdm_lte.c @@ -775,7 +775,7 @@ static int gdm_lte_receive_pkt(struct phy_dev *phy_dev, char *buf, int len) hci->cmd_evt); dev = phy_dev->dev[0]; - if (dev == NULL) + if (!dev) return 0; switch (cmd_evt) { @@ -938,7 +938,7 @@ void unregister_lte_device(struct phy_dev *phy_dev) for (index = 0; index < MAX_NIC_TYPE; index++) { net = phy_dev->dev[index]; - if (net == NULL) + if (!net) continue; unregister_netdev(net); diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index e82f3179c5db..0408549ca994 100644 --- a/drivers/staging/gdm724x/gdm_mux.c +++ b/drivers/staging/gdm724x/gdm_mux.c @@ -492,7 +492,7 @@ static int init_usb(struct mux_dev *mux_dev) for (i = 0; i < MAX_ISSUE_NUM * 2; i++) { r = alloc_mux_rx(); - if (r == NULL) { + if (!r) { ret = -ENOMEM; break; } @@ -662,7 +662,7 @@ static int __init gdm_usb_mux_init(void) { mux_rx_wq = create_workqueue("mux_rx_wq"); - if (mux_rx_wq == NULL) { + if (!mux_rx_wq) { pr_err("work queue create fail\n"); return -1; } diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c index 655f7688d039..ce5202ebaf16 100644 --- a/drivers/staging/gdm724x/gdm_tty.c +++ b/drivers/staging/gdm724x/gdm_tty.c @@ -88,7 +88,7 @@ static int gdm_tty_install(struct tty_driver *driver, struct tty_struct *tty) mutex_lock(&gdm_table_lock); gdm = gdm_table[i][j]; - if (gdm == NULL) { + if (!gdm) { mutex_unlock(&gdm_table_lock); return -ENODEV; } diff --git a/drivers/staging/gdm724x/gdm_usb.c b/drivers/staging/gdm724x/gdm_usb.c index 1c15b9c80e4f..f87dd6144c31 100644 --- a/drivers/staging/gdm724x/gdm_usb.c +++ b/drivers/staging/gdm724x/gdm_usb.c @@ -338,7 +338,7 @@ static int init_usb(struct lte_udev *udev) for (i = 0; i < MAX_NUM_SDU_BUF; i++) { t_sdu = alloc_tx_sdu_struct(); - if (t_sdu == NULL) { + if (!t_sdu) { ret = -ENOMEM; goto fail; } @@ -349,7 +349,7 @@ static int init_usb(struct lte_udev *udev) for (i = 0; i < MAX_RX_SUBMIT_COUNT*2; i++) { r = alloc_rx_struct(); - if (r == NULL) { + if (!r) { ret = -ENOMEM; goto fail; } @@ -576,7 +576,7 @@ static int send_tx_packet(struct usb_device *usbdev, struct usb_tx *t, u32 len) { int ret = 0; - if (!(len%512)) + if (!(len % 512)) len++; usb_fill_bulk_urb(t->urb, @@ -682,7 +682,7 @@ static void do_tx(struct work_struct *work) } t = alloc_tx_struct(TX_BUF_SIZE); - if (t == NULL) { + if (!t) { spin_unlock_irqrestore(&tx->lock, flags); return; } @@ -732,7 +732,7 @@ static int gdm_usb_sdu_send(void *priv_dev, void *data, int len, t_sdu = get_tx_sdu_struct(tx, &no_spc); spin_unlock_irqrestore(&tx->lock, flags); - if (t_sdu == NULL) { + if (!t_sdu) { pr_err("sdu send - free list empty\n"); return TX_NO_SPC; } @@ -782,7 +782,7 @@ static int gdm_usb_hci_send(void *priv_dev, void *data, int len, } t = alloc_tx_struct(len); - if (t == NULL) { + if (!t) { pr_err("hci_send - out of memory\n"); return -ENOMEM; } @@ -1006,11 +1006,11 @@ static int __init gdm_usb_lte_init(void) } usb_tx_wq = create_workqueue("usb_tx_wq"); - if (usb_tx_wq == NULL) + if (!usb_tx_wq) return -1; usb_rx_wq = create_workqueue("usb_rx_wq"); - if (usb_rx_wq == NULL) + if (!usb_rx_wq) return -1; return usb_register(&gdm_usb_lte_driver); diff --git a/drivers/staging/gdm724x/netlink_k.c b/drivers/staging/gdm724x/netlink_k.c index 59a18304ef4a..749dd60ab34f 100644 --- a/drivers/staging/gdm724x/netlink_k.c +++ b/drivers/staging/gdm724x/netlink_k.c @@ -122,7 +122,7 @@ int netlink_send(struct sock *sock, int group, u16 type, void *msg, int len) if (group > ND_MAX_GROUP) return -EINVAL; - if (!netlink_has_listeners(sock, group+1)) + if (!netlink_has_listeners(sock, group + 1)) return -ESRCH; skb = alloc_skb(NLMSG_SPACE(len), GFP_ATOMIC); From ba7f55b705b94e26293971b9fbda183238cdc30c Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:50 +0300 Subject: [PATCH 2077/2431] staging: gdm724x: add spaces around binary operators This patch add spaces around binary operators in order to follow kernel coding style. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm724x/gdm_lte.c | 4 ++-- drivers/staging/gdm724x/gdm_mux.c | 4 ++-- drivers/staging/gdm724x/gdm_tty.c | 2 +- drivers/staging/gdm724x/gdm_usb.c | 4 ++-- drivers/staging/gdm724x/netlink_k.c | 8 ++++---- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index 28107dd520d4..79de678807cc 100644 --- a/drivers/staging/gdm724x/gdm_lte.c +++ b/drivers/staging/gdm724x/gdm_lte.c @@ -729,7 +729,7 @@ static void gdm_lte_multi_sdu_pkt(struct phy_dev *phy_dev, char *buf, int len) pr_err("rx sdu invalid nic_type :%x\n", nic_type); } - data += ((hci_len+3) & 0xfffc) + HCI_HEADER_SIZE; + data += ((hci_len + 3) & 0xfffc) + HCI_HEADER_SIZE; } } @@ -850,7 +850,7 @@ static void form_mac_address(u8 *dev_addr, u8 *nic_src, u8 *nic_dest, /* The last byte of the mac address * should be less than or equal to 0xFC */ - dev_addr[ETH_ALEN-1] += index; + dev_addr[ETH_ALEN - 1] += index; /* Create random nic src and copy the first * 3 bytes to be the same as dev_addr diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 0408549ca994..47148cfcbf1f 100644 --- a/drivers/staging/gdm724x/gdm_mux.c +++ b/drivers/staging/gdm724x/gdm_mux.c @@ -388,8 +388,8 @@ static int gdm_mux_send(void *priv_dev, void *data, int len, int tty_index, mux_header->payload_size = __cpu_to_le32((u32)len); mux_header->packet_type = __cpu_to_le16(packet_type[tty_index]); - memcpy(t->buf+MUX_HEADER_SIZE, data, len); - memset(t->buf+MUX_HEADER_SIZE+len, 0, total_len - MUX_HEADER_SIZE - + memcpy(t->buf + MUX_HEADER_SIZE, data, len); + memset(t->buf + MUX_HEADER_SIZE + len, 0, total_len - MUX_HEADER_SIZE - len); t->len = total_len; diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c index ce5202ebaf16..c1412a8a8ab4 100644 --- a/drivers/staging/gdm724x/gdm_tty.c +++ b/drivers/staging/gdm724x/gdm_tty.c @@ -193,7 +193,7 @@ static int gdm_tty_write(struct tty_struct *tty, const unsigned char *buf, sending_len = remain > MUX_TX_MAX_SIZE ? MUX_TX_MAX_SIZE : remain; gdm_tty_send(gdm, - (void *)(buf+sent_len), + (void *)(buf + sent_len), sending_len, gdm->index, gdm_tty_send_complete, diff --git a/drivers/staging/gdm724x/gdm_usb.c b/drivers/staging/gdm724x/gdm_usb.c index f87dd6144c31..d046769debf2 100644 --- a/drivers/staging/gdm724x/gdm_usb.c +++ b/drivers/staging/gdm724x/gdm_usb.c @@ -347,7 +347,7 @@ static int init_usb(struct lte_udev *udev) tx->avail_count++; } - for (i = 0; i < MAX_RX_SUBMIT_COUNT*2; i++) { + for (i = 0; i < MAX_RX_SUBMIT_COUNT * 2; i++) { r = alloc_rx_struct(); if (!r) { ret = -ENOMEM; @@ -745,7 +745,7 @@ static int gdm_usb_sdu_send(void *priv_dev, void *data, int len, } else { send_len = len - ETH_HLEN; send_len += SDU_PARAM_LEN; - memcpy(sdu->data, data+ETH_HLEN, len-ETH_HLEN); + memcpy(sdu->data, data + ETH_HLEN, len - ETH_HLEN); } sdu->len = gdm_cpu_to_dev16(&udev->gdm_ed, send_len); diff --git a/drivers/staging/gdm724x/netlink_k.c b/drivers/staging/gdm724x/netlink_k.c index 749dd60ab34f..92254fdaae1e 100644 --- a/drivers/staging/gdm724x/netlink_k.c +++ b/drivers/staging/gdm724x/netlink_k.c @@ -34,8 +34,8 @@ static struct semaphore netlink_mutex; #define ND_NLMSG_SPACE(len) (NLMSG_SPACE(len) + ND_IFINDEX_LEN) #define ND_NLMSG_DATA(nlh) ((void *)((char *)NLMSG_DATA(nlh) + \ ND_IFINDEX_LEN)) -#define ND_NLMSG_S_LEN(len) (len+ND_IFINDEX_LEN) -#define ND_NLMSG_R_LEN(nlh) (nlh->nlmsg_len-ND_IFINDEX_LEN) +#define ND_NLMSG_S_LEN(len) (len + ND_IFINDEX_LEN) +#define ND_NLMSG_R_LEN(nlh) (nlh->nlmsg_len - ND_IFINDEX_LEN) #define ND_NLMSG_IFIDX(nlh) NLMSG_DATA(nlh) #define ND_MAX_MSG_LEN (1024 * 32) @@ -136,14 +136,14 @@ int netlink_send(struct sock *sock, int group, u16 type, void *msg, int len) NETLINK_CB(skb).portid = 0; NETLINK_CB(skb).dst_group = 0; - ret = netlink_broadcast(sock, skb, 0, group+1, GFP_ATOMIC); + ret = netlink_broadcast(sock, skb, 0, group + 1, GFP_ATOMIC); if (!ret) return len; if (ret != -ESRCH) pr_err("nl broadcast g=%d, t=%d, l=%d, r=%d\n", group, type, len, ret); - else if (netlink_has_listeners(sock, group+1)) + else if (netlink_has_listeners(sock, group + 1)) return -EAGAIN; return ret; From 7b7df122f894f5b731e0f06777302ec248a7d9f1 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:51 +0300 Subject: [PATCH 2078/2431] staging: gdm724x: correct kzalloc/kmalloc sizeof argument This patch converts sizeof(TYPE) to sizeof(VAR) when used as a kzalloc/kmaloc argument. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm724x/gdm_mux.c | 8 ++++---- drivers/staging/gdm724x/gdm_tty.c | 2 +- drivers/staging/gdm724x/gdm_usb.c | 10 +++++----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 47148cfcbf1f..79af94f9a61d 100644 --- a/drivers/staging/gdm724x/gdm_mux.c +++ b/drivers/staging/gdm724x/gdm_mux.c @@ -67,7 +67,7 @@ static struct mux_tx *alloc_mux_tx(int len) { struct mux_tx *t = NULL; - t = kzalloc(sizeof(struct mux_tx), GFP_ATOMIC); + t = kzalloc(sizeof(*t), GFP_ATOMIC); if (!t) return NULL; @@ -96,7 +96,7 @@ static struct mux_rx *alloc_mux_rx(void) { struct mux_rx *r = NULL; - r = kzalloc(sizeof(struct mux_rx), GFP_KERNEL); + r = kzalloc(sizeof(*r), GFP_KERNEL); if (!r) return NULL; @@ -526,11 +526,11 @@ static int gdm_mux_probe(struct usb_interface *intf, if (bInterfaceNumber != 2) return -ENODEV; - mux_dev = kzalloc(sizeof(struct mux_dev), GFP_KERNEL); + mux_dev = kzalloc(sizeof(*mux_dev), GFP_KERNEL); if (!mux_dev) return -ENOMEM; - tty_dev = kzalloc(sizeof(struct tty_dev), GFP_KERNEL); + tty_dev = kzalloc(sizeof(*tty_dev), GFP_KERNEL); if (!tty_dev) { ret = -ENOMEM; goto err_free_mux; diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c index c1412a8a8ab4..e2c0f228f369 100644 --- a/drivers/staging/gdm724x/gdm_tty.c +++ b/drivers/staging/gdm724x/gdm_tty.c @@ -226,7 +226,7 @@ int register_lte_tty_device(struct tty_dev *tty_dev, struct device *device) for (i = 0; i < TTY_MAX_COUNT; i++) { - gdm = kmalloc(sizeof(struct gdm), GFP_KERNEL); + gdm = kmalloc(sizeof(*gdm), GFP_KERNEL); if (!gdm) return -ENOMEM; diff --git a/drivers/staging/gdm724x/gdm_usb.c b/drivers/staging/gdm724x/gdm_usb.c index d046769debf2..92ea1a16afff 100644 --- a/drivers/staging/gdm724x/gdm_usb.c +++ b/drivers/staging/gdm724x/gdm_usb.c @@ -92,7 +92,7 @@ static struct usb_tx *alloc_tx_struct(int len) struct usb_tx *t = NULL; int ret = 0; - t = kzalloc(sizeof(struct usb_tx), GFP_ATOMIC); + t = kzalloc(sizeof(*t), GFP_ATOMIC); if (!t) { ret = -ENOMEM; goto out; @@ -125,7 +125,7 @@ static struct usb_tx_sdu *alloc_tx_sdu_struct(void) { struct usb_tx_sdu *t_sdu; - t_sdu = kzalloc(sizeof(struct usb_tx_sdu), GFP_KERNEL); + t_sdu = kzalloc(sizeof(*t_sdu), GFP_KERNEL); if (!t_sdu) return NULL; @@ -183,7 +183,7 @@ static struct usb_rx *alloc_rx_struct(void) struct usb_rx *r = NULL; int ret = 0; - r = kmalloc(sizeof(struct usb_rx), GFP_KERNEL); + r = kmalloc(sizeof(*r), GFP_KERNEL); if (!r) { ret = -ENOMEM; goto out; @@ -830,11 +830,11 @@ static int gdm_usb_probe(struct usb_interface *intf, return -ENODEV; } - phy_dev = kzalloc(sizeof(struct phy_dev), GFP_KERNEL); + phy_dev = kzalloc(sizeof(*phy_dev), GFP_KERNEL); if (!phy_dev) return -ENOMEM; - udev = kzalloc(sizeof(struct lte_udev), GFP_KERNEL); + udev = kzalloc(sizeof(*udev), GFP_KERNEL); if (!udev) { ret = -ENOMEM; goto err_udev; From a487db8b67044b98fddf5433d4a5c96a2ce06d3a Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:52 +0300 Subject: [PATCH 2079/2431] staging: gdm724x: remove multiple blank lines This patch removes multiple blank lines in order to follow linux kernel coding style. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gdm724x/gdm_mux.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 79af94f9a61d..445f83615575 100644 --- a/drivers/staging/gdm724x/gdm_mux.c +++ b/drivers/staging/gdm724x/gdm_mux.c @@ -48,7 +48,6 @@ static const struct usb_device_id id_table[] = { {} }; - MODULE_DEVICE_TABLE(usb, id_table); static int packet_type_to_index(u16 packetType) @@ -150,7 +149,6 @@ static void put_rx_struct(struct rx_cxt *rx, struct mux_rx *r) spin_unlock_irqrestore(&rx->free_list_lock, flags); } - static int up_to_host(struct mux_rx *r) { struct mux_dev *mux_dev = r->mux_dev; @@ -474,7 +472,6 @@ static void release_usb(struct mux_dev *mux_dev) spin_unlock_irqrestore(&rx->to_host_lock, flags); } - static int init_usb(struct mux_dev *mux_dev) { struct mux_rx *r; @@ -612,7 +609,6 @@ static int gdm_mux_suspend(struct usb_interface *intf, pm_message_t pm_msg) mux_dev->usb_state = PM_SUSPEND; - spin_lock_irqsave(&rx->submit_list_lock, flags); list_for_each_entry_safe(r, r_next, &rx->rx_submit_list, rx_submit_list) { From 347cf6d109637b337dd3dd3ec777e9fd060d8644 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 18 Oct 2015 19:25:10 +0530 Subject: [PATCH 2080/2431] staging: sm750fb: Replace include with include Problem found using checkpatch.pl WARNING: Use #include instead of WARNING: Use #include instead of Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_help.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_help.h b/drivers/staging/sm750fb/ddk750_help.h index 9b2d2d2c899b..5be814eed735 100644 --- a/drivers/staging/sm750fb/ddk750_help.h +++ b/drivers/staging/sm750fb/ddk750_help.h @@ -4,8 +4,8 @@ #ifndef USE_INTERNAL_REGISTER_ACCESS #include -#include -#include +#include +#include #include "sm750_help.h" /* software control endianness */ From f741554e25e5c94bca1d5157608baab80586f81c Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 18 Oct 2015 21:27:57 +0530 Subject: [PATCH 2081/2431] staging: sm750fb: Replace uint32_t with u32 Replace uint32_t with u32 consistent with Linux kernel coding practice. Problem found using checkpatch.pl Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_power.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_power.c b/drivers/staging/sm750fb/ddk750_power.c index 198ff81161b1..667e4f822544 100644 --- a/drivers/staging/sm750fb/ddk750_power.c +++ b/drivers/staging/sm750fb/ddk750_power.c @@ -108,7 +108,7 @@ void setCurrentGate(unsigned int gate) */ void enable2DEngine(unsigned int enable) { - uint32_t gate; + u32 gate; gate = PEEK32(CURRENT_GATE); if (enable) { @@ -124,7 +124,7 @@ void enable2DEngine(unsigned int enable) void enableDMA(unsigned int enable) { - uint32_t gate; + u32 gate; /* Enable DMA Gate */ gate = PEEK32(CURRENT_GATE); @@ -141,7 +141,7 @@ void enableDMA(unsigned int enable) */ void enableGPIO(unsigned int enable) { - uint32_t gate; + u32 gate; /* Enable GPIO Gate */ gate = PEEK32(CURRENT_GATE); @@ -158,7 +158,7 @@ void enableGPIO(unsigned int enable) */ void enableI2C(unsigned int enable) { - uint32_t gate; + u32 gate; /* Enable I2C Gate */ gate = PEEK32(CURRENT_GATE); From cfac7d6a70b41982c770838edd5c2a3b4dbe55e6 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 22 Oct 2015 09:38:39 +0300 Subject: [PATCH 2082/2431] staging: sm750fb: remove '#if 1' conditionals The code enclosed in '#if 1' anyway gets compiled. Removing useless conditionals. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 13 +++++-------- drivers/staging/sm750fb/ddk750_mode.c | 3 +-- drivers/staging/sm750fb/sm750_hw.c | 3 +-- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index bab3d91c70bf..069d6e57d7a7 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -60,11 +60,10 @@ static void setChipClock(unsigned int frequency) { pll_value_t pll; unsigned int ulActualMxClk; -#if 1 + /* Cheok_0509: For SM750LE, the chip clock is fixed. Nothing to set. */ if (getChipType() == SM750LE) return; -#endif if (frequency) { /* @@ -88,11 +87,11 @@ static void setChipClock(unsigned int frequency) static void setMemoryClock(unsigned int frequency) { unsigned int ulReg, divisor; - #if 1 + /* Cheok_0509: For SM750LE, the memory clock is fixed. Nothing to set. */ if (getChipType() == SM750LE) return; -#endif + if (frequency) { /* Set the frequency to the maximum frequency that the DDR Memory can take which is 336MHz. */ @@ -135,11 +134,11 @@ static void setMemoryClock(unsigned int frequency) static void setMasterClock(unsigned int frequency) { unsigned int ulReg, divisor; -#if 1 + /* Cheok_0509: For SM750LE, the memory clock is fixed. Nothing to set. */ if (getChipType() == SM750LE) return; -#endif + if (frequency) { /* Set the frequency to the maximum frequency that the SM750 engine can run, which is about 190 MHz. */ @@ -332,13 +331,11 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) unsigned int tmpClock, ret; pllcalparam *xparm; -#if 1 if (getChipType() == SM750LE) { /* SM750LE don't have prgrammable PLL and M/N values to work on. Just return the requested clock. */ return request_orig; } -#endif ret = 0; mini_diff = ~0; diff --git a/drivers/staging/sm750fb/ddk750_mode.c b/drivers/staging/sm750fb/ddk750_mode.c index 2399b175ade0..fa35926680ab 100644 --- a/drivers/staging/sm750fb/ddk750_mode.c +++ b/drivers/staging/sm750fb/ddk750_mode.c @@ -168,14 +168,13 @@ static int programModeRegisters(mode_parameter_t *pModeParam, pll_value_t *pll) */ POKE32(PANEL_DISPLAY_CTRL, ulTmpValue|ulReg); -#if 1 + while ((PEEK32(PANEL_DISPLAY_CTRL) & ~ulReservedBits) != (ulTmpValue|ulReg)) { cnt++; if (cnt > 1000) break; POKE32(PANEL_DISPLAY_CTRL, ulTmpValue|ulReg); } -#endif } else { ret = -1; } diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 92e194ddb15a..8a5a8978638e 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -276,7 +276,7 @@ int hw_sm750_crtc_setMode(struct lynxfb_crtc *crtc, ret = 0; par = container_of(crtc, struct lynxfb_par, crtc); share = par->share; -#if 1 + if (!share->accel_off) { /* set 2d engine pixel format according to mode bpp */ switch (var->bits_per_pixel) { @@ -293,7 +293,6 @@ int hw_sm750_crtc_setMode(struct lynxfb_crtc *crtc, } hw_set2dformat(&share->accel, fmt); } -#endif /* set timing */ modparm.pixel_clock = ps_to_hz(var->pixclock); From a61dc139ceb5e9f0b2033fd1075ec68b53b14283 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 22 Oct 2015 09:38:40 +0300 Subject: [PATCH 2083/2431] staging: sm750fb: simplify PLL divisors calculations The calcPllValues currently uses arrays of PLL parametres that contain possible PLL control register field values and redundant data that is calculated according to those values. The usage of these arrays can be replaced with simple arithmetics. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 44 ++++++--------------------- 1 file changed, 10 insertions(+), 34 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 069d6e57d7a7..7084a4a41042 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -303,33 +303,14 @@ int ddk750_initHw(initchip_param_t *pInitParam) */ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) { - /* used for primary and secondary channel pixel clock pll */ - static pllcalparam xparm_PIXEL[] = { - /* 2^0 = 1*/ {0, 0, 0, 1}, - /* 2^ 1 =2*/ {1, 0, 1, 2}, - /* 2^ 2 = 4*/ {2, 0, 2, 4}, - {3, 0, 3, 8}, - {4, 1, 3, 16}, - {5, 2, 3, 32}, - /* 2^6 = 64 */ {6, 3, 3, 64}, - }; - - /* used for MXCLK (chip clock) */ - static pllcalparam xparm_MXCLK[] = { - /* 2^0 = 1*/ {0, 0, 0, 1}, - /* 2^ 1 =2*/ {1, 0, 1, 2}, - /* 2^ 2 = 4*/ {2, 0, 2, 4}, - {3, 0, 3, 8}, - }; - /* as sm750 register definition, N located in 2,15 and M located in 1,255 */ int N, M, X, d; - int xcnt; int mini_diff; unsigned int RN, quo, rem, fl_quo; unsigned int input, request; unsigned int tmpClock, ret; - pllcalparam *xparm; + const int max_OD = 3; + int max_d; if (getChipType() == SM750LE) { /* SM750LE don't have prgrammable PLL and M/N values to work on. @@ -343,15 +324,8 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) input = pll->inputFreq / 1000; /* for MXCLK register , no POD provided, so need be treated differently */ - - if (pll->clockType != MXCLK_PLL) { - xparm = &xparm_PIXEL[0]; - xcnt = ARRAY_SIZE(xparm_PIXEL); - } else { - xparm = &xparm_MXCLK[0]; - xcnt = ARRAY_SIZE(xparm_MXCLK); - } - + if (pll->clockType == MXCLK_PLL) + max_d = 3; for (N = 15; N > 1; N--) { /* RN will not exceed maximum long if @request <= 285 MHZ (for 32bit cpu) */ @@ -360,8 +334,8 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) rem = RN % input;/* rem always small than 14318181 */ fl_quo = (rem * 10000 / input); - for (d = xcnt - 1; d >= 0; d--) { - X = xparm[d].value; + for (d = max_d; d >= 0; d--) { + X = (1 << d); M = quo * X; M += fl_quo * X / 10000; /* round step */ @@ -374,8 +348,10 @@ unsigned int calcPllValue(unsigned int request_orig, pll_value_t *pll) if (diff < mini_diff) { pll->M = M; pll->N = N; - pll->OD = xparm[d].od; - pll->POD = xparm[d].pod; + pll->POD = 0; + if (d > max_OD) + pll->POD = d - max_OD; + pll->OD = d - pll->POD; mini_diff = diff; ret = tmpClock; } From 7a81b9477a0a247148096e8184a2657fdbd04a82 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 22 Oct 2015 09:38:41 +0300 Subject: [PATCH 2084/2431] staging: sm750fb: remove unused pllcalparam typedef The pllcalparam type is not used and can be removed. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/ddk750_chip.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 7084a4a41042..0331d34458ae 100644 --- a/drivers/staging/sm750fb/ddk750_chip.c +++ b/drivers/staging/sm750fb/ddk750_chip.c @@ -4,13 +4,6 @@ #include "ddk750_reg.h" #include "ddk750_chip.h" #include "ddk750_power.h" -typedef struct _pllcalparam { - unsigned char power;/* d : 0~ 6*/ - unsigned char pod; - unsigned char od; - unsigned char value;/* value of 2 power d (2^d) */ -} -pllcalparam; logical_chip_type_t getChipType(void) { From b108da75862b231ada8f26002138161214ca62d1 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:07 +0300 Subject: [PATCH 2085/2431] staging: sm750fb: remove defintion of offsetof There is no need to redefine offsetof Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index 52fe945101c8..e74a3e15d251 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -155,10 +155,6 @@ struct lynxfb_par { struct lynx_share *share; }; -#ifndef offsetof -#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) -#endif - static inline unsigned long ps_to_hz(unsigned int psvalue) { unsigned long long numerator = 1000*1000*1000*1000ULL; From 4edd3f3af2f4b9296bccbe8dd7de18b5de683801 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:08 +0300 Subject: [PATCH 2086/2431] staging: sm750fb: remove ancient kernel support Remove the code that should be compiled for ancient kernel versions together with controlling '#if LINUX_VERSION_CODE' conditionals Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750_hw.c | 36 ------------------------------ 1 file changed, 36 deletions(-) diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 8a5a8978638e..8343d2b8542e 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -394,41 +394,23 @@ int hw_sm750le_setBLANK(struct lynxfb_output *output, int blank) int dpms, crtdb; switch (blank) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_UNBLANK: -#else - case VESA_NO_BLANKING: -#endif dpms = CRT_DISPLAY_CTRL_DPMS_0; crtdb = CRT_DISPLAY_CTRL_BLANK_OFF; break; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_NORMAL: dpms = CRT_DISPLAY_CTRL_DPMS_0; crtdb = CRT_DISPLAY_CTRL_BLANK_ON; break; -#endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_VSYNC_SUSPEND: -#else - case VESA_VSYNC_SUSPEND: -#endif dpms = CRT_DISPLAY_CTRL_DPMS_2; crtdb = CRT_DISPLAY_CTRL_BLANK_ON; break; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_HSYNC_SUSPEND: -#else - case VESA_HSYNC_SUSPEND: -#endif dpms = CRT_DISPLAY_CTRL_DPMS_1; crtdb = CRT_DISPLAY_CTRL_BLANK_ON; break; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_POWERDOWN: -#else - case VESA_POWERDOWN: -#endif dpms = CRT_DISPLAY_CTRL_DPMS_3; crtdb = CRT_DISPLAY_CTRL_BLANK_ON; break; @@ -450,47 +432,29 @@ int hw_sm750_setBLANK(struct lynxfb_output *output, int blank) dpms = pps = crtdb = 0; switch (blank) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_UNBLANK: -#else - case VESA_NO_BLANKING: -#endif pr_info("flag = FB_BLANK_UNBLANK\n"); dpms = SYSTEM_CTRL_DPMS_VPHP; pps = PANEL_DISPLAY_CTRL_DATA_ENABLE; crtdb = CRT_DISPLAY_CTRL_BLANK_OFF; break; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_NORMAL: pr_info("flag = FB_BLANK_NORMAL\n"); dpms = SYSTEM_CTRL_DPMS_VPHP; pps = PANEL_DISPLAY_CTRL_DATA_DISABLE; crtdb = CRT_DISPLAY_CTRL_BLANK_ON; break; -#endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_VSYNC_SUSPEND: -#else - case VESA_VSYNC_SUSPEND: -#endif dpms = SYSTEM_CTRL_DPMS_VNHP; pps = PANEL_DISPLAY_CTRL_DATA_DISABLE; crtdb = CRT_DISPLAY_CTRL_BLANK_ON; break; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_HSYNC_SUSPEND: -#else - case VESA_HSYNC_SUSPEND: -#endif dpms = SYSTEM_CTRL_DPMS_VPHN; pps = PANEL_DISPLAY_CTRL_DATA_DISABLE; crtdb = CRT_DISPLAY_CTRL_BLANK_ON; break; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10) case FB_BLANK_POWERDOWN: -#else - case VESA_POWERDOWN: -#endif dpms = SYSTEM_CTRL_DPMS_VNHN; pps = PANEL_DISPLAY_CTRL_DATA_DISABLE; crtdb = CRT_DISPLAY_CTRL_BLANK_ON; From 9b2941e27e364c2c3ef7731dab9c7c8564acb690 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:09 +0300 Subject: [PATCH 2087/2431] staging: sm750fb: remove unused methods from lynx_share The suspend and resume methods in lynx_share are not implemented and never set. Remove them. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 6 ------ drivers/staging/sm750fb/sm750.h | 3 --- 2 files changed, 9 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 805a403eaba4..7eca4cb3c656 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -434,10 +434,6 @@ static int lynxfb_suspend(struct pci_dev *pdev, pm_message_t mesg) return ret; } - /* set chip to sleep mode */ - if (share->suspend) - (*share->suspend)(share); - pci_disable_device(pdev); ret = pci_set_power_state(pdev, pci_choose_state(pdev, mesg)); if (ret) { @@ -482,8 +478,6 @@ static int lynxfb_resume(struct pci_dev *pdev) } pci_set_master(pdev); } - if (share->resume) - (*share->resume)(share); hw_sm750_inithw(share, pdev); diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index e74a3e15d251..c18806173410 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -62,9 +62,6 @@ struct lynx_share { unsigned char __iomem *pvMem; /* locks*/ spinlock_t slock; - /* function pointers */ - void (*suspend)(struct lynx_share *); - void (*resume)(struct lynx_share *); }; struct lynx_cursor { From c202beee7f4b2b4f363e21fea714c8afcb08b12e Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:10 +0300 Subject: [PATCH 2088/2431] staging: sm750fb: replace lynx_crtc methods with function calls The methods in lynx_crtc always use the same implementation and there is no point to use redirection rather than direct function call. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 12 ++++-------- drivers/staging/sm750fb/sm750.h | 10 ---------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 7eca4cb3c656..24c4f39c79b7 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -304,7 +304,7 @@ static int lynxfb_ops_pan_display(struct fb_var_screeninfo *var, par = info->par; crtc = &par->crtc; - return crtc->proc_panDisplay(crtc, var, info); + return hw_sm750_pan_display(crtc, var, info); } static int lynxfb_ops_set_par(struct fb_info *info) @@ -384,7 +384,7 @@ static int lynxfb_ops_set_par(struct fb_info *info) pr_err("pixel bpp format not satisfied\n."); return ret; } - ret = crtc->proc_setMode(crtc, var, fix); + ret = hw_sm750_crtc_setMode(crtc, var, fix); if (!ret) ret = output->proc_setMode(output, var, fix); return ret; @@ -581,7 +581,7 @@ static int lynxfb_ops_check_var(struct fb_var_screeninfo *var, return -ENOMEM; } - return crtc->proc_checkMode(crtc, var); + return hw_sm750_crtc_checkMode(crtc, var); } static int lynxfb_ops_setcolreg(unsigned regno, @@ -614,7 +614,7 @@ static int lynxfb_ops_setcolreg(unsigned regno, red >>= 8; green >>= 8; blue >>= 8; - ret = crtc->proc_setColReg(crtc, regno, red, green, blue); + ret = hw_sm750_setColReg(crtc, regno, red, green, blue); goto exit; } @@ -669,10 +669,6 @@ static int sm750fb_set_drv(struct lynxfb_par *par) /* setup crtc and output member */ spec_share->hwCursor = g_hwcursor; - crtc->proc_setMode = hw_sm750_crtc_setMode; - crtc->proc_checkMode = hw_sm750_crtc_checkMode; - crtc->proc_setColReg = hw_sm750_setColReg; - crtc->proc_panDisplay = hw_sm750_pan_display; crtc->line_pad = 16; crtc->xpanstep = 8; crtc->ypanstep = 1; diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index c18806173410..6f5e09d259aa 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -104,16 +104,6 @@ struct lynxfb_crtc { void *priv; - int (*proc_setMode)(struct lynxfb_crtc*, - struct fb_var_screeninfo*, - struct fb_fix_screeninfo*); - - int (*proc_checkMode)(struct lynxfb_crtc*, struct fb_var_screeninfo*); - int (*proc_setColReg)(struct lynxfb_crtc*, ushort, ushort, ushort, ushort); - /* pan display */ - int (*proc_panDisplay)(struct lynxfb_crtc *, - const struct fb_var_screeninfo *, - const struct fb_info *); /* cursor information */ struct lynx_cursor cursor; }; From 9821ed04795f019bfa14573847c743c6b89d96c4 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:11 +0300 Subject: [PATCH 2089/2431] staging: sm750fb: use direct call to hw_sm750_output_setMode The proc_setMode method in lynx_output always uses the same implementation and there is no point to use redirection rather than direct function call. Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sm750fb/sm750.c | 4 +--- drivers/staging/sm750fb/sm750.h | 4 ---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 24c4f39c79b7..cd2062966f2f 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -386,7 +386,7 @@ static int lynxfb_ops_set_par(struct fb_info *info) } ret = hw_sm750_crtc_setMode(crtc, var, fix); if (!ret) - ret = output->proc_setMode(output, var, fix); + ret = hw_sm750_output_setMode(output, var, fix); return ret; } @@ -674,8 +674,6 @@ static int sm750fb_set_drv(struct lynxfb_par *par) crtc->ypanstep = 1; crtc->ywrapstep = 0; - output->proc_setMode = hw_sm750_output_setMode; - output->proc_setBLANK = (share->revid == SM750LE_REVISION_ID) ? hw_sm750le_setBLANK : hw_sm750_setBLANK; /* chip specific phase */ diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index 6f5e09d259aa..bf905aa9a13f 100644 --- a/drivers/staging/sm750fb/sm750.h +++ b/drivers/staging/sm750fb/sm750.h @@ -125,10 +125,6 @@ struct lynxfb_output { */ void *priv; - int (*proc_setMode)(struct lynxfb_output*, - struct fb_var_screeninfo*, - struct fb_fix_screeninfo*); - int (*proc_setBLANK)(struct lynxfb_output*, int); }; From 335c8ea16069aefd929acf6b287b3a23b39db978 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 21:57:08 +0800 Subject: [PATCH 2090/2431] staging: IB/ipath: use TASK_COMM_LEN in ipath_portdata Use comm[TASK_COMM_LEN] instead of comm[16] in ipath_kernel.h. And add sched.h header in it. Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ipath/ipath_kernel.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rdma/ipath/ipath_kernel.h b/drivers/staging/rdma/ipath/ipath_kernel.h index f0f947122779..66c934a5f839 100644 --- a/drivers/staging/rdma/ipath/ipath_kernel.h +++ b/drivers/staging/rdma/ipath/ipath_kernel.h @@ -44,6 +44,7 @@ #include #include #include +#include #include #include @@ -162,7 +163,7 @@ struct ipath_portdata { struct pid *port_pid; struct pid *port_subpid[INFINIPATH_MAX_SUBPORT]; /* same size as task_struct .comm[] */ - char port_comm[16]; + char port_comm[TASK_COMM_LEN]; /* pkeys set by this use of this port */ u16 port_pkeys[4]; /* so file ops can get at unit */ From f1c9e0ca0cfda2e6e93333ff86e086f0b925318e Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 21:57:09 +0800 Subject: [PATCH 2091/2431] staging: IB/ipath: remove sched.h header sched.h header in ipath_*.c is now unnecessary, since I have added sched.h in ipath_kernel.h. So remove it. Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rdma/ipath/ipath_driver.c | 1 - drivers/staging/rdma/ipath/ipath_intr.c | 1 - drivers/staging/rdma/ipath/ipath_qp.c | 1 - drivers/staging/rdma/ipath/ipath_ruc.c | 1 - drivers/staging/rdma/ipath/ipath_ud.c | 1 - drivers/staging/rdma/ipath/ipath_user_pages.c | 1 - drivers/staging/rdma/ipath/ipath_user_sdma.c | 1 - drivers/staging/rdma/ipath/ipath_verbs_mcast.c | 1 - 8 files changed, 8 deletions(-) diff --git a/drivers/staging/rdma/ipath/ipath_driver.c b/drivers/staging/rdma/ipath/ipath_driver.c index 46d98980d66a..dfcfaa5e811e 100644 --- a/drivers/staging/rdma/ipath/ipath_driver.c +++ b/drivers/staging/rdma/ipath/ipath_driver.c @@ -33,7 +33,6 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -#include #include #include #include diff --git a/drivers/staging/rdma/ipath/ipath_intr.c b/drivers/staging/rdma/ipath/ipath_intr.c index e56897108722..0403fa28ed8d 100644 --- a/drivers/staging/rdma/ipath/ipath_intr.c +++ b/drivers/staging/rdma/ipath/ipath_intr.c @@ -33,7 +33,6 @@ #include #include -#include #include "ipath_kernel.h" #include "ipath_verbs.h" diff --git a/drivers/staging/rdma/ipath/ipath_qp.c b/drivers/staging/rdma/ipath/ipath_qp.c index b2c67662081b..280cd2d638e4 100644 --- a/drivers/staging/rdma/ipath/ipath_qp.c +++ b/drivers/staging/rdma/ipath/ipath_qp.c @@ -32,7 +32,6 @@ */ #include -#include #include #include diff --git a/drivers/staging/rdma/ipath/ipath_ruc.c b/drivers/staging/rdma/ipath/ipath_ruc.c index 1f95bbaf7602..2296832f94da 100644 --- a/drivers/staging/rdma/ipath/ipath_ruc.c +++ b/drivers/staging/rdma/ipath/ipath_ruc.c @@ -31,7 +31,6 @@ * SOFTWARE. */ -#include #include #include "ipath_verbs.h" diff --git a/drivers/staging/rdma/ipath/ipath_ud.c b/drivers/staging/rdma/ipath/ipath_ud.c index e8a2a915251e..33fcfe206bc9 100644 --- a/drivers/staging/rdma/ipath/ipath_ud.c +++ b/drivers/staging/rdma/ipath/ipath_ud.c @@ -31,7 +31,6 @@ * SOFTWARE. */ -#include #include #include "ipath_verbs.h" diff --git a/drivers/staging/rdma/ipath/ipath_user_pages.c b/drivers/staging/rdma/ipath/ipath_user_pages.c index 1da1252dcdb3..d29b4daf61f8 100644 --- a/drivers/staging/rdma/ipath/ipath_user_pages.c +++ b/drivers/staging/rdma/ipath/ipath_user_pages.c @@ -34,7 +34,6 @@ #include #include #include -#include #include "ipath_kernel.h" diff --git a/drivers/staging/rdma/ipath/ipath_user_sdma.c b/drivers/staging/rdma/ipath/ipath_user_sdma.c index e82b3ee2dbe0..8c12e3cccc58 100644 --- a/drivers/staging/rdma/ipath/ipath_user_sdma.c +++ b/drivers/staging/rdma/ipath/ipath_user_sdma.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include diff --git a/drivers/staging/rdma/ipath/ipath_verbs_mcast.c b/drivers/staging/rdma/ipath/ipath_verbs_mcast.c index 6216ea923853..72d476fa5b8f 100644 --- a/drivers/staging/rdma/ipath/ipath_verbs_mcast.c +++ b/drivers/staging/rdma/ipath/ipath_verbs_mcast.c @@ -32,7 +32,6 @@ */ #include -#include #include #include "ipath_verbs.h" From 9ac23b344e72f21cc832c5f02744ab86e9210d12 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:39 +0200 Subject: [PATCH 2092/2431] staging: most: remove multiple blank lines This patch removes the usage of multiple blank lines from driver modules. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-network/networking.c | 4 ---- drivers/staging/most/aim-sound/sound.c | 1 - drivers/staging/most/aim-v4l2/video.c | 6 ------ drivers/staging/most/hdm-dim2/dim2_hal.c | 9 --------- drivers/staging/most/hdm-i2c/hdm_i2c.c | 1 - drivers/staging/most/hdm-usb/hdm_usb.c | 1 - drivers/staging/most/mostcore/core.c | 6 ------ 7 files changed, 28 deletions(-) diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index 5f0ea9b79a3d..f268d7d63267 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -24,7 +24,6 @@ #include "mostcore.h" #include "networking.h" - #define MEP_HDR_LEN 8 #define MDP_HDR_LEN 16 #define MAMAC_DATA_LEN (1024 - MDP_HDR_LEN) @@ -47,8 +46,6 @@ #define HB(value) ((u8)((u16)(value) >> 8)) #define LB(value) ((u8)(value)) - - #define EXTRACT_BIT_SET(bitset_name, value) \ (((value) >> bitset_name##_SHIFT) & bitset_name##_MASK) @@ -81,7 +78,6 @@ static struct list_head net_devices = LIST_HEAD_INIT(net_devices); static struct spinlock list_lock; static struct most_aim aim; - static int skb_to_mamac(const struct sk_buff *skb, struct mbo *mbo) { u8 *buff = mbo->virt_address; diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 4d3376340daa..9c645801cff4 100644 --- a/drivers/staging/most/aim-sound/sound.c +++ b/drivers/staging/most/aim-sound/sound.c @@ -470,7 +470,6 @@ static struct snd_pcm_ops pcm_ops = { .mmap = snd_pcm_lib_mmap_vmalloc, }; - static int split_arg_list(char *buf, char **card_name, char **pcm_format) { *card_name = strsep(&buf, "."); diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index 345a82437311..0d752580d809 100644 --- a/drivers/staging/most/aim-v4l2/video.c +++ b/drivers/staging/most/aim-v4l2/video.c @@ -29,7 +29,6 @@ #include "mostcore.h" - #define V4L2_AIM_MAX_INPUT 1 static struct most_aim aim_info; @@ -60,11 +59,9 @@ struct aim_fh { u32 offs; }; - static struct list_head video_devices = LIST_HEAD_INIT(video_devices); static struct spinlock list_lock; - static inline bool data_ready(struct most_video_dev *mdev) { return !list_empty(&mdev->pending_mbos); @@ -75,7 +72,6 @@ static inline struct mbo *get_top_mbo(struct most_video_dev *mdev) return list_first_entry(&mdev->pending_mbos, struct mbo, list); } - static int aim_vdev_open(struct file *filp) { int ret; @@ -276,7 +272,6 @@ static int aim_set_format(struct most_video_dev *mdev, unsigned int cmd, return 0; } - static int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *cap) { @@ -496,7 +491,6 @@ static void aim_unregister_videodev(struct most_video_dev *mdev) video_unregister_device(mdev->vdev); } - static void aim_v4l2_dev_release(struct v4l2_device *v4l2_dev) { struct most_video_dev *mdev = diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 81dd8de57e4f..6440d0ab2af4 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.c +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c @@ -19,7 +19,6 @@ #include "dim2_reg.h" #include - /* * The number of frames per sub-buffer for synchronous channels. * Allowed values: 1, 2, 4, 8, 16, 32, 64. @@ -51,7 +50,6 @@ */ #define DBR_MAP_SIZE 2 - /* -------------------------------------------------------------------------- */ /* not configurable area */ @@ -63,7 +61,6 @@ #define DBR_SIZE (16*1024) /* specified by IP */ #define DBR_BLOCK_SIZE (DBR_SIZE / 32 / DBR_MAP_SIZE) - /* -------------------------------------------------------------------------- */ /* generic helper functions and macros */ @@ -81,7 +78,6 @@ static inline bool dim_on_error(u8 error_id, const char *error_message) return false; } - /* -------------------------------------------------------------------------- */ /* types and local variables */ @@ -94,7 +90,6 @@ struct lld_global_vars_t { static struct lld_global_vars_t g = { false }; - /* -------------------------------------------------------------------------- */ static int dbr_get_mask_size(u16 size) @@ -327,7 +322,6 @@ static void dim2_start_isoc_sync(u8 ch_addr, u8 idx, u32 buf_addr, dim2_write_ctr_mask(ADT + ch_addr, mask, adt); } - static void dim2_clear_ctram(void) { u32 ctr_addr; @@ -530,7 +524,6 @@ static bool dim2_is_mlb_locked(void) (DIMCB_IoRead(&g.dim2->MLBC0) & mask0) != 0; } - /* -------------------------------------------------------------------------- */ /* channel help routines */ @@ -559,7 +552,6 @@ static inline bool service_channel(u8 ch_addr, u8 idx) return true; } - /* -------------------------------------------------------------------------- */ /* channel init routines */ @@ -671,7 +663,6 @@ static bool channel_detach_buffers(struct dim_channel *ch, u16 buffers_number) return true; } - /* -------------------------------------------------------------------------- */ /* API */ diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 2cce1e572e48..8fe06acefdf3 100644 --- a/drivers/staging/most/hdm-i2c/hdm_i2c.c +++ b/drivers/staging/most/hdm-i2c/hdm_i2c.c @@ -35,7 +35,6 @@ enum { CH_RX, CH_TX, NUM_CHANNELS }; #define list_first_mbo(ptr) \ list_first_entry(ptr, struct mbo, list) - /* IRQ / Polling option */ static bool polling_req; module_param(polling_req, bool, S_IRUGO); diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 0bf38c454362..a56df1386663 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -985,7 +985,6 @@ struct most_dci_attribute { }; #define to_dci_attr(a) container_of(a, struct most_dci_attribute, attr) - /** * dci_attr_show - show function for dci object * @kobj: pointer to kobject diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 0efc3911aaa4..276ca24e5c8e 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -331,7 +331,6 @@ static ssize_t show_channel_starving(struct most_c_obj *c, return snprintf(buf, PAGE_SIZE, "%d\n", c->is_starving); } - #define create_show_channel_attribute(val) \ static MOST_CHNL_ATTR(val, S_IRUGO, show_##val, NULL) @@ -493,7 +492,6 @@ create_channel_attribute(set_datatype); create_channel_attribute(set_subbuffer_size); create_channel_attribute(set_packets_per_xact); - /** * most_channel_def_attrs - array of default attributes of channel object */ @@ -720,7 +718,6 @@ static struct kobj_type most_inst_ktype = { static struct kset *most_inst_kset; - /** * create_most_inst_obj - creates an instance object * @name: name of the object to be created @@ -784,7 +781,6 @@ struct most_aim_obj { static struct list_head aim_list; - /** * struct most_aim_attribute - to access the attributes of AIM object * @attr: attributes of an AIM @@ -1120,7 +1116,6 @@ static void destroy_most_aim_obj(struct most_aim_obj *p) kobject_put(&p->kobj); } - /* ___ ___ * ___C O R E___ */ @@ -1449,7 +1444,6 @@ struct mbo *most_get_mbo(struct most_interface *iface, int id, } EXPORT_SYMBOL_GPL(most_get_mbo); - /** * most_put_mbo - return buffer to pool * @mbo: buffer object From 16dc374338b0124c937c0dda4588b06a4c9bd708 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:40 +0200 Subject: [PATCH 2093/2431] staging: most: put spaces around operator This patch puts spaces around the asterisk operator. It is needed to prevent checkpatch from reporting an issue. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 6440d0ab2af4..4c1104de36fe 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.c +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c @@ -58,7 +58,7 @@ #define MLB_CAT 0x80 #define AHB_CAT 0x88 -#define DBR_SIZE (16*1024) /* specified by IP */ +#define DBR_SIZE (16 * 1024) /* specified by IP */ #define DBR_BLOCK_SIZE (DBR_SIZE / 32 / DBR_MAP_SIZE) /* -------------------------------------------------------------------------- */ diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 58a85146b429..c912a6e1159b 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -37,7 +37,7 @@ #define MAX_BUFFERS_PACKET 32 #define MAX_BUFFERS_STREAMING 32 #define MAX_BUF_SIZE_PACKET 2048 -#define MAX_BUF_SIZE_STREAMING (8*1024) +#define MAX_BUF_SIZE_STREAMING (8 * 1024) /* command line parameter to select clock speed */ static char *clock_speed; From a64557bae30d5d9f8c3e32e22c5e4cbfdf1ca083 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:41 +0200 Subject: [PATCH 2094/2431] staging: most: removed redundant code This patch removes redundant code. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-v4l2/video.c | 22 ---------------------- drivers/staging/most/hdm-dim2/dim2_hal.c | 16 ---------------- 2 files changed, 38 deletions(-) diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index 0d752580d809..228971abf310 100644 --- a/drivers/staging/most/aim-v4l2/video.c +++ b/drivers/staging/most/aim-v4l2/video.c @@ -239,28 +239,6 @@ static void aim_set_format_struct(struct v4l2_format *f) static int aim_set_format(struct most_video_dev *mdev, unsigned int cmd, struct v4l2_format *format) { -#if 0 - u32 const pixfmt = format->fmt.pix.pixelformat; - const char *fmt; - - if (pixfmt != V4L2_PIX_FMT_MPEG) { - if (cmd == VIDIOC_TRY_FMT) - fmt = KERN_ERR "try %c%c%c%c failed\n"; - else - fmt = KERN_ERR "set %c%c%c%c failed\n"; - } else { - if (cmd == VIDIOC_TRY_FMT) - fmt = KERN_ERR "try %c%c%c%c\n"; - else - fmt = KERN_ERR "set %c%c%c%c\n"; - } - printk(fmt, - (pixfmt) & 255, - (pixfmt >> 8) & 255, - (pixfmt >> 16) & 255, - (pixfmt >> 24) & 255); -#endif - if (format->fmt.pix.pixelformat != V4L2_PIX_FMT_MPEG) return -EINVAL; diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 4c1104de36fe..53b34a74d724 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.c +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c @@ -493,22 +493,6 @@ static void dim2_initialize(bool enable_6pin, u8 mlb_clock) DIMCB_IoWrite(&g.dim2->ACTL, ACTL_DMA_MODE_VAL_DMA_MODE_1 << ACTL_DMA_MODE_BIT | true << ACTL_SCE_BIT); - -#if 0 - DIMCB_IoWrite(&g.dim2->MIEN, - bit_mask(MIEN_CTX_BREAK_BIT) | - bit_mask(MIEN_CTX_PE_BIT) | - bit_mask(MIEN_CTX_DONE_BIT) | - bit_mask(MIEN_CRX_BREAK_BIT) | - bit_mask(MIEN_CRX_PE_BIT) | - bit_mask(MIEN_CRX_DONE_BIT) | - bit_mask(MIEN_ATX_BREAK_BIT) | - bit_mask(MIEN_ATX_PE_BIT) | - bit_mask(MIEN_ATX_DONE_BIT) | - bit_mask(MIEN_ARX_BREAK_BIT) | - bit_mask(MIEN_ARX_PE_BIT) | - bit_mask(MIEN_ARX_DONE_BIT)); -#endif } static bool dim2_is_mlb_locked(void) From c6c3f3458f456d53da0f2ed587a0227b8b950eda Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:42 +0200 Subject: [PATCH 2095/2431] staging: most: remove multiple assignment This patch removes multiple assignments as specified in coding style. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hal.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 53b34a74d724..096eb8bc9ef6 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.c +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c @@ -663,7 +663,8 @@ u8 DIM_Startup(void *dim_base_address, u32 mlb_clock) return DIM_INIT_ERR_MLB_CLOCK; g.dim2 = dim_base_address; - g.dbr_map[0] = g.dbr_map[1] = 0; + g.dbr_map[0] = 0; + g.dbr_map[1] = 0; dim2_initialize(mlb_clock >= 3, mlb_clock); From edaa1e33e21ab38c683be0037605e3408f2a5a02 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:43 +0200 Subject: [PATCH 2096/2431] staging: most: make alignment match open parenthesis This patch fixes coding style violations by making alignments match open parenthesis. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- drivers/staging/most/hdm-i2c/hdm_i2c.c | 7 +++---- drivers/staging/most/mostcore/core.c | 4 ++-- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 49411b722f19..be81a6a57ab0 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -100,7 +100,7 @@ static int aim_open(struct inode *inode, struct file *filp) } ret = most_start_channel(channel->iface, channel->channel_id, - &cdev_aim); + &cdev_aim); if (ret) atomic_dec(&channel->access_ref); return ret; diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 096eb8bc9ef6..c915c44f025e 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hal.c +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c @@ -863,7 +863,7 @@ u8 DIM_ServiceChannel(struct dim_channel *ch) } struct dim_ch_state_t *DIM_GetChannelState(struct dim_channel *ch, - struct dim_ch_state_t *state_ptr) + struct dim_ch_state_t *state_ptr) { if (!ch || !state_ptr) return NULL; diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index c912a6e1159b..ba4fbb1aa13c 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -398,7 +398,7 @@ static void service_done_flag(struct dim2_hdm *dev, int ch_idx) } static struct dim_channel **get_active_channels(struct dim2_hdm *dev, - struct dim_channel **buffer) + struct dim_channel **buffer) { int idx = 0; int ch_idx; diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 8fe06acefdf3..711fdbc30d35 100644 --- a/drivers/staging/most/hdm-i2c/hdm_i2c.c +++ b/drivers/staging/most/hdm-i2c/hdm_i2c.c @@ -92,10 +92,9 @@ static int configure_channel(struct most_interface *most_iface, return -EPERM; } - if (channel_config->direction == MOST_CH_RX) { - if (dev->polling_mode) - schedule_delayed_work(&dev->rx.dwork, - msecs_to_jiffies(MSEC_PER_SEC / 4)); + if ((channel_config->direction == MOST_CH_RX) && (dev->polling_mode)) { + schedule_delayed_work(&dev->rx.dwork, + msecs_to_jiffies(MSEC_PER_SEC / 4)); } dev->is_open[ch_idx] = true; diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 276ca24e5c8e..8768475b5d9c 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -247,8 +247,8 @@ static void most_channel_release(struct kobject *kobj) } static ssize_t show_available_directions(struct most_c_obj *c, - struct most_c_attr *attr, - char *buf) + struct most_c_attr *attr, + char *buf) { unsigned int i = c->channel_id; From 9deba73de56ce5782ca46460b1ca5a5de82439c1 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:44 +0200 Subject: [PATCH 2097/2431] staging: most: use braces on all arms of statement This patch fixes style issues regarding braces on all arms of a statement. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hdm.c | 4 ++-- drivers/staging/most/hdm-i2c/hdm_i2c.c | 3 ++- drivers/staging/most/hdm-usb/hdm_usb.c | 5 +++-- drivers/staging/most/mostcore/core.c | 16 ++++++++-------- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index ba4fbb1aa13c..a08af5ee889e 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -202,9 +202,9 @@ static int startup_dim(struct platform_device *pdev) if (dev->clk_speed == -1) { pr_info("Bad or missing clock speed parameter, using default value: 3072fs\n"); dev->clk_speed = CLK_3072FS; - } else + } else { pr_info("Selected clock speed: %s\n", clock_speed); - + } if (pdata && pdata->init) { int ret = pdata->init(pdata, dev->io_base, dev->clk_speed); diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 711fdbc30d35..79448a56b20c 100644 --- a/drivers/staging/most/hdm-i2c/hdm_i2c.c +++ b/drivers/staging/most/hdm-i2c/hdm_i2c.c @@ -268,8 +268,9 @@ static void pending_rx_work(struct work_struct *work) schedule_delayed_work(&dev->rx.dwork, msecs_to_jiffies(MSEC_PER_SEC / scan_rate)); - } else + } else { enable_irq(dev->client->irq); + } } /* diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index a56df1386663..c8a74bc0f26c 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -246,10 +246,11 @@ static unsigned int get_stream_frame_size(struct most_channel_config *cfg) if (cfg->packets_per_xact == 0) { pr_warn("Misconfig: Packets per XACT zero\n"); frame_size = 0; - } else if (cfg->packets_per_xact == 0xFF) + } else if (cfg->packets_per_xact == 0xFF) { frame_size = (USB_MTU / sub_size) * sub_size; - else + } else { frame_size = cfg->packets_per_xact * sub_size; + } break; default: pr_warn("Query frame size of non-streaming channel\n"); diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 8768475b5d9c..ca0b3b27a2ed 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -396,11 +396,11 @@ static ssize_t store_set_direction(struct most_c_obj *c, const char *buf, size_t count) { - if (!strcmp(buf, "dir_rx\n")) + if (!strcmp(buf, "dir_rx\n")) { c->cfg.direction = MOST_CH_RX; - else if (!strcmp(buf, "dir_tx\n")) + } else if (!strcmp(buf, "dir_tx\n")) { c->cfg.direction = MOST_CH_TX; - else { + } else { pr_info("WARN: invalid attribute settings\n"); return -EINVAL; } @@ -427,15 +427,15 @@ static ssize_t store_set_datatype(struct most_c_obj *c, const char *buf, size_t count) { - if (!strcmp(buf, "control\n")) + if (!strcmp(buf, "control\n")) { c->cfg.data_type = MOST_CH_CONTROL; - else if (!strcmp(buf, "async\n")) + } else if (!strcmp(buf, "async\n")) { c->cfg.data_type = MOST_CH_ASYNC; - else if (!strcmp(buf, "sync\n")) + } else if (!strcmp(buf, "sync\n")) { c->cfg.data_type = MOST_CH_SYNC; - else if (!strcmp(buf, "isoc_avp\n")) + } else if (!strcmp(buf, "isoc_avp\n")) { c->cfg.data_type = MOST_CH_ISOC_AVP; - else { + } else { pr_info("WARN: invalid attribute settings\n"); return -EINVAL; } From 9cbe5aa65d5d4e90c8bb661d021b50131eb963c6 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:45 +0200 Subject: [PATCH 2098/2431] staging: most: use blank line after declarations This patch fixes style violation regarding blank lines after function/struct/union/enum declarations. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 1 + drivers/staging/most/hdm-usb/hdm_usb.c | 4 ++++ drivers/staging/most/mostcore/core.c | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index be81a6a57ab0..7bf4f61435c8 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -47,6 +47,7 @@ struct aim_channel { atomic_t access_ref; struct list_head list; }; + #define to_channel(d) container_of(d, struct aim_channel, cdev) static struct list_head channel_list; static spinlock_t ch_list_lock; diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index c8a74bc0f26c..747d22eabf97 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -77,6 +77,7 @@ struct buf_anchor { struct list_head list; struct completion urb_compl; }; + #define to_buf_anchor(w) container_of(w, struct buf_anchor, clear_work_obj) /** @@ -88,6 +89,7 @@ struct most_dci_obj { struct kobject kobj; struct usb_device *usb_device; }; + #define to_dci_obj(p) container_of(p, struct most_dci_obj, kobj) /** @@ -131,6 +133,7 @@ struct most_dev { struct timer_list link_stat_timer; struct work_struct poll_work_obj; }; + #define to_mdev(d) container_of(d, struct most_dev, iface) #define to_mdev_from_work(w) container_of(w, struct most_dev, poll_work_obj) @@ -984,6 +987,7 @@ struct most_dci_attribute { const char *buf, size_t count); }; + #define to_dci_attr(a) container_of(a, struct most_dci_attribute, attr) /** diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index ca0b3b27a2ed..d5e05724fb16 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -69,6 +69,7 @@ struct most_c_obj { struct mutex stop_task_mutex; wait_queue_head_t hdm_fifo_wq; }; + #define to_c_obj(d) container_of(d, struct most_c_obj, kobj) struct most_inst_obj { @@ -80,6 +81,7 @@ struct most_inst_obj { struct kobject kobj; struct list_head list; }; + #define to_inst_obj(d) container_of(d, struct most_inst_obj, kobj) /** @@ -115,6 +117,7 @@ struct most_c_attr { const char *buf, size_t count); }; + #define to_channel_attr(a) container_of(a, struct most_c_attr, attr) #define MOST_CHNL_ATTR(_name, _mode, _show, _store) \ @@ -596,6 +599,7 @@ struct most_inst_attribute { const char *buf, size_t count); }; + #define to_instance_attr(a) \ container_of(a, struct most_inst_attribute, attr) @@ -777,6 +781,7 @@ struct most_aim_obj { char add_link[STRING_SIZE]; char remove_link[STRING_SIZE]; }; + #define to_aim_obj(d) container_of(d, struct most_aim_obj, kobj) static struct list_head aim_list; @@ -797,6 +802,7 @@ struct most_aim_attribute { const char *buf, size_t count); }; + #define to_aim_attr(a) container_of(a, struct most_aim_attribute, attr) /** From df8da2e3e400b2f4601bdba4ecd424c212fe7d5c Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:47 +0200 Subject: [PATCH 2099/2431] staging: most: remove unnecessary parentheses This patch simply removes unnecessary parentheses. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index a08af5ee889e..558a5c8bfdd1 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -429,7 +429,7 @@ static void dim2_tasklet_fn(unsigned long data) continue; spin_lock_irqsave(&dim_lock, flags); - DIM_ServiceChannel(&(dev->hch[ch_idx].ch)); + DIM_ServiceChannel(&dev->hch[ch_idx].ch); spin_unlock_irqrestore(&dim_lock, flags); service_done_flag(dev, ch_idx); From 623d800252111942d357d8d8592d578d3783ff67 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:48 +0200 Subject: [PATCH 2100/2431] staging: most: fix logical operator position This patch puts logical continuations on the previous line to meet coding style. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-cdev/cdev.c | 7 +++---- drivers/staging/most/mostcore/core.c | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 7bf4f61435c8..4dd1434b8060 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -88,8 +88,8 @@ static int aim_open(struct inode *inode, struct file *filp) filp->private_data = channel; if (((channel->cfg->direction == MOST_CH_RX) && - ((filp->f_flags & O_ACCMODE) != O_RDONLY)) - || ((channel->cfg->direction == MOST_CH_TX) && + ((filp->f_flags & O_ACCMODE) != O_RDONLY)) || + ((channel->cfg->direction == MOST_CH_TX) && ((filp->f_flags & O_ACCMODE) != O_WRONLY))) { pr_info("WARN: Access flags mismatch\n"); return -EACCES; @@ -233,8 +233,7 @@ aim_read(struct file *filp, char __user *buf, size_t count, loff_t *offset) channel->keep_mbo = false; goto start_copy; } - while ((!kfifo_out(&channel->fifo, &mbo, 1)) - && (channel->dev)) { + while ((!kfifo_out(&channel->fifo, &mbo, 1)) && (channel->dev)) { if (filp->f_flags & O_NONBLOCK) return -EAGAIN; if (wait_event_interruptible(channel->wq, diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index d5e05724fb16..3e1cc5acf8df 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -1184,8 +1184,8 @@ static int hdm_enqueue_thread(void *data) while (likely(!kthread_should_stop())) { wait_event_interruptible(c->hdm_fifo_wq, - (mbo = get_hdm_mbo(c)) - || kthread_should_stop()); + (mbo = get_hdm_mbo(c)) || + kthread_should_stop()); if (unlikely(!mbo)) continue; From 2aa9b96ff6b3bbeedf8e0a042e6f24f71775c58a Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:49 +0200 Subject: [PATCH 2101/2431] staging: most: use preferred kernel types This patch makes use of the preferred kernel types such as u16, u32. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-network/networking.c | 2 +- drivers/staging/most/hdm-i2c/hdm_i2c.c | 2 +- drivers/staging/most/mostcore/core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index f268d7d63267..3c7beb03871d 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -428,7 +428,7 @@ static int aim_rx_data(struct mbo *mbo) const u32 zero = 0; struct net_dev_context *nd; char *buf = mbo->virt_address; - uint32_t len = mbo->processed_length; + u32 len = mbo->processed_length; struct sk_buff *skb; struct net_device *dev; diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 79448a56b20c..ba0263bb3d12 100644 --- a/drivers/staging/most/hdm-i2c/hdm_i2c.c +++ b/drivers/staging/most/hdm-i2c/hdm_i2c.c @@ -196,7 +196,7 @@ static void do_rx_work(struct hdm_i2c *dev) struct mbo *mbo; unsigned char msg[MAX_BUF_SIZE_CONTROL]; int ret, ch_idx = CH_RX; - uint16_t pml, data_size; + u16 pml, data_size; /* Read PML (2 bytes) */ ret = i2c_master_recv(dev->client, msg, 2); diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 3e1cc5acf8df..19852ca7e59c 100644 --- a/drivers/staging/most/mostcore/core.c +++ b/drivers/staging/most/mostcore/core.c @@ -49,7 +49,7 @@ struct most_c_obj { struct completion cleanup; atomic_t mbo_ref; atomic_t mbo_nq_level; - uint16_t channel_id; + u16 channel_id; bool is_poisoned; struct mutex start_mutex; int is_starving; From 181a2aa185c092b840a2bc089e83629619f5b1ab Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:50 +0200 Subject: [PATCH 2102/2431] staging: most: use preferred kzalloc parameters This patch uses the preferred call to kzalloc. It replaces kzalloc(sizeof(struct aim_fh)...) by kzalloc(sizeof(*fh)...). Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/aim-v4l2/video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index 228971abf310..13abf7c275a4 100644 --- a/drivers/staging/most/aim-v4l2/video.c +++ b/drivers/staging/most/aim-v4l2/video.c @@ -88,7 +88,7 @@ static int aim_vdev_open(struct file *filp) return -EINVAL; } - fh = kzalloc(sizeof(struct aim_fh), GFP_KERNEL); + fh = kzalloc(sizeof(*fh), GFP_KERNEL); if (!fh) return -ENOMEM; From f96d48aaa915178995b4bf246793168376fd0576 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:51 +0200 Subject: [PATCH 2103/2431] staging: most: remove comparison to NULL Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 747d22eabf97..b5fb1a781ae1 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -1417,7 +1417,7 @@ static int __init hdm_usb_init(void) return -EIO; } schedule_usb_work = create_workqueue("hdmu_work"); - if (schedule_usb_work == NULL) { + if (!schedule_usb_work) { pr_err("could not create workqueue\n"); usb_deregister(&hdm_usb); return -ENOMEM; From bff1d83d78db66d3307f856344fd2202b8b77ce3 Mon Sep 17 00:00:00 2001 From: Muhammad Falak R Wani Date: Sat, 24 Oct 2015 07:45:44 +0530 Subject: [PATCH 2104/2431] staging: most: hdm-usb: Use setup_timer Use the timer API function setup_timer instead of init_timer, removing the structure field assignments. @timer@ expression e1,e2,e3,fn_ptr; @@ -init_timer(&e1); +setup_timer(&e1, fn_ptr, e2); ... when != fn_ptr = e3 -e1.function = fn_ptr; -e1.data = e2; Signed-off-by: Muhammad Falak R Wani Signed-off-by: Greg Kroah-Hartman --- drivers/staging/most/hdm-usb/hdm_usb.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index b5fb1a781ae1..41690f801fb8 100644 --- a/drivers/staging/most/hdm-usb/hdm_usb.c +++ b/drivers/staging/most/hdm-usb/hdm_usb.c @@ -1239,11 +1239,10 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id) num_endpoints = usb_iface_desc->desc.bNumEndpoints; mutex_init(&mdev->io_mutex); INIT_WORK(&mdev->poll_work_obj, wq_netinfo); - init_timer(&mdev->link_stat_timer); + setup_timer(&mdev->link_stat_timer, link_stat_timer_handler, + (unsigned long)mdev); mdev->usb_device = usb_dev; - mdev->link_stat_timer.function = link_stat_timer_handler; - mdev->link_stat_timer.data = (unsigned long)mdev; mdev->link_stat_timer.expires = jiffies + (2 * HZ); mdev->iface.mod = hdm_usb_fops.owner; From 6fd9a2a19c241ce22f05cdc82b8eefb7f8a3e92f Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 22:35:32 +0800 Subject: [PATCH 2105/2431] staging: xgifb: make XGIfb_has_VB return boolean This patch makes XGIfb_has_VB return boolean, since this function only uses either one or zero as its return value. Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/xgifb/XGI_main_26.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c index 5a6251a45112..89f5b55ed546 100644 --- a/drivers/staging/xgifb/XGI_main_26.c +++ b/drivers/staging/xgifb/XGI_main_26.c @@ -1548,7 +1548,7 @@ static void XGIfb_detect_VB(struct xgifb_video_info *xgifb_info) } } -static int XGIfb_has_VB(struct xgifb_video_info *xgifb_info) +static bool XGIfb_has_VB(struct xgifb_video_info *xgifb_info) { u8 vb_chipid; @@ -1562,9 +1562,9 @@ static int XGIfb_has_VB(struct xgifb_video_info *xgifb_info) break; default: xgifb_info->hasVB = HASVB_NONE; - return 0; + return false; } - return 1; + return true; } static void XGIfb_get_VB_type(struct xgifb_video_info *xgifb_info) From d8acac9421fedb008f2ef04763c3912d138ac936 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 20:21:22 +0530 Subject: [PATCH 2106/2431] Staging: xgifb: Replace udelay, mdelay functions with usleep_range This patch fixes the checkpatch.pl check: CHECK: usleep_range is preferred over udelay. Replace mdelay with usleep_range function too. Add 1 millisecond to the delay time to get a reasonable upper limit which saves one wakeup call. Do same throughout the file. Signed-off-by: Navya Sri Nizamkari Signed-off-by: Greg Kroah-Hartman --- drivers/staging/xgifb/vb_init.c | 82 ++++++++++++++++----------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index 2b233af8eb80..0b8bbd77495c 100644 --- a/drivers/staging/xgifb/vb_init.c +++ b/drivers/staging/xgifb/vb_init.c @@ -51,7 +51,7 @@ XGINew_GetXG20DRAMType(struct xgi_hw_device_info *HwDeviceExtension, } else if (HwDeviceExtension->jChipType == XG21) { /* Independent GPIO control */ xgifb_reg_and(pVBInfo->P3d4, 0xB4, ~0x02); - udelay(800); + usleep_range(800, 1800); xgifb_reg_or(pVBInfo->P3d4, 0x4A, 0x80); /* Enable GPIOH read */ /* GPIOF 0:DVI 1:DVO */ data = xgifb_reg_get(pVBInfo->P3d4, 0x48); @@ -80,20 +80,20 @@ static void XGINew_DDR1x_MRS_340(unsigned long P3c4, xgifb_reg_set(P3c4, 0x16, 0x00); xgifb_reg_set(P3c4, 0x16, 0x80); - mdelay(3); + usleep_range(3, 1003); xgifb_reg_set(P3c4, 0x18, 0x00); xgifb_reg_set(P3c4, 0x19, 0x20); xgifb_reg_set(P3c4, 0x16, 0x00); xgifb_reg_set(P3c4, 0x16, 0x80); - udelay(60); + usleep_range(60, 1060); xgifb_reg_set(P3c4, 0x18, pVBInfo->SR18[pVBInfo->ram_type]); /* SR18 */ xgifb_reg_set(P3c4, 0x19, 0x01); xgifb_reg_set(P3c4, 0x16, 0x03); xgifb_reg_set(P3c4, 0x16, 0x83); - mdelay(1); + usleep_range(1, 1001); xgifb_reg_set(P3c4, 0x1B, 0x03); - udelay(500); + usleep_range(500, 1500); xgifb_reg_set(P3c4, 0x18, pVBInfo->SR18[pVBInfo->ram_type]); /* SR18 */ xgifb_reg_set(P3c4, 0x19, 0x00); xgifb_reg_set(P3c4, 0x16, 0x03); @@ -136,65 +136,65 @@ static void XGINew_DDRII_Bootup_XG27( /* Set Double Frequency */ xgifb_reg_set(P3d4, 0x97, pVBInfo->XGINew_CR97); /* CR97 */ - udelay(200); + usleep_range(200, 1200); xgifb_reg_set(P3c4, 0x18, 0x00); /* Set SR18 */ /* EMRS2 */ xgifb_reg_set(P3c4, 0x19, 0x80); /* Set SR19 */ xgifb_reg_set(P3c4, 0x16, 0x20); /* Set SR16 */ - udelay(15); + usleep_range(15, 1015); xgifb_reg_set(P3c4, 0x16, 0xA0); /* Set SR16 */ - udelay(15); + usleep_range(15, 1015); xgifb_reg_set(P3c4, 0x18, 0x00); /* Set SR18 */ /* EMRS3 */ xgifb_reg_set(P3c4, 0x19, 0xC0); /* Set SR19 */ xgifb_reg_set(P3c4, 0x16, 0x20); /* Set SR16 */ - udelay(15); + usleep_range(15, 1015); xgifb_reg_set(P3c4, 0x16, 0xA0); /* Set SR16 */ - udelay(15); + usleep_range(15, 1015); xgifb_reg_set(P3c4, 0x18, 0x00); /* Set SR18 */ /* EMRS1 */ xgifb_reg_set(P3c4, 0x19, 0x40); /* Set SR19 */ xgifb_reg_set(P3c4, 0x16, 0x20); /* Set SR16 */ - udelay(30); + usleep_range(30, 1030); xgifb_reg_set(P3c4, 0x16, 0xA0); /* Set SR16 */ - udelay(15); + usleep_range(15, 1015); xgifb_reg_set(P3c4, 0x18, 0x42); /* Set SR18 */ /* MRS, DLL Enable */ xgifb_reg_set(P3c4, 0x19, 0x0A); /* Set SR19 */ xgifb_reg_set(P3c4, 0x16, 0x00); /* Set SR16 */ - udelay(30); + usleep_range(30, 1030); xgifb_reg_set(P3c4, 0x16, 0x00); /* Set SR16 */ xgifb_reg_set(P3c4, 0x16, 0x80); /* Set SR16 */ xgifb_reg_set(P3c4, 0x1B, 0x04); /* Set SR1B */ - udelay(60); + usleep_range(60, 1060); xgifb_reg_set(P3c4, 0x1B, 0x00); /* Set SR1B */ xgifb_reg_set(P3c4, 0x18, 0x42); /* Set SR18 */ /* MRS, DLL Reset */ xgifb_reg_set(P3c4, 0x19, 0x08); /* Set SR19 */ xgifb_reg_set(P3c4, 0x16, 0x00); /* Set SR16 */ - udelay(30); + usleep_range(30, 1030); xgifb_reg_set(P3c4, 0x16, 0x83); /* Set SR16 */ - udelay(15); + usleep_range(15, 1015); xgifb_reg_set(P3c4, 0x18, 0x80); /* Set SR18 */ /* MRS, ODT */ xgifb_reg_set(P3c4, 0x19, 0x46); /* Set SR19 */ xgifb_reg_set(P3c4, 0x16, 0x20); /* Set SR16 */ - udelay(30); + usleep_range(30, 1030); xgifb_reg_set(P3c4, 0x16, 0xA0); /* Set SR16 */ - udelay(15); + usleep_range(15, 1015); xgifb_reg_set(P3c4, 0x18, 0x00); /* Set SR18 */ /* EMRS */ xgifb_reg_set(P3c4, 0x19, 0x40); /* Set SR19 */ xgifb_reg_set(P3c4, 0x16, 0x20); /* Set SR16 */ - udelay(30); + usleep_range(30, 1030); xgifb_reg_set(P3c4, 0x16, 0xA0); /* Set SR16 */ - udelay(15); + usleep_range(15, 1015); /* Set SR1B refresh control 000:close; 010:open */ xgifb_reg_set(P3c4, 0x1B, 0x04); - udelay(200); + usleep_range(200, 1200); } @@ -208,7 +208,7 @@ static void XGINew_DDR2_MRS_XG20(struct xgi_hw_device_info *HwDeviceExtension, xgifb_reg_set(P3d4, 0x97, 0x11); /* CR97 */ - udelay(200); + usleep_range(200, 1200); xgifb_reg_set(P3c4, 0x18, 0x00); /* EMRS2 */ xgifb_reg_set(P3c4, 0x19, 0x80); xgifb_reg_set(P3c4, 0x16, 0x05); @@ -229,18 +229,18 @@ static void XGINew_DDR2_MRS_XG20(struct xgi_hw_device_info *HwDeviceExtension, xgifb_reg_set(P3c4, 0x16, 0x05); xgifb_reg_set(P3c4, 0x16, 0x85); - udelay(15); + usleep_range(15, 1015); xgifb_reg_set(P3c4, 0x1B, 0x04); /* SR1B */ - udelay(30); + usleep_range(30, 1030); xgifb_reg_set(P3c4, 0x1B, 0x00); /* SR1B */ - udelay(100); + usleep_range(100, 1100); xgifb_reg_set(P3c4, 0x18, 0x42); /* MRS1 */ xgifb_reg_set(P3c4, 0x19, 0x00); xgifb_reg_set(P3c4, 0x16, 0x05); xgifb_reg_set(P3c4, 0x16, 0x85); - udelay(200); + usleep_range(200, 1200); } static void XGINew_DDR1x_MRS_XG20(unsigned long P3c4, @@ -250,20 +250,20 @@ static void XGINew_DDR1x_MRS_XG20(unsigned long P3c4, xgifb_reg_set(P3c4, 0x19, 0x40); xgifb_reg_set(P3c4, 0x16, 0x00); xgifb_reg_set(P3c4, 0x16, 0x80); - udelay(60); + usleep_range(60, 1060); xgifb_reg_set(P3c4, 0x18, 0x00); xgifb_reg_set(P3c4, 0x19, 0x40); xgifb_reg_set(P3c4, 0x16, 0x00); xgifb_reg_set(P3c4, 0x16, 0x80); - udelay(60); + usleep_range(60, 1060); xgifb_reg_set(P3c4, 0x18, pVBInfo->SR18[pVBInfo->ram_type]); /* SR18 */ xgifb_reg_set(P3c4, 0x19, 0x01); xgifb_reg_set(P3c4, 0x16, 0x03); xgifb_reg_set(P3c4, 0x16, 0x83); - mdelay(1); + usleep_range(1, 1001); xgifb_reg_set(P3c4, 0x1B, 0x03); - udelay(500); + usleep_range(500, 1500); xgifb_reg_set(P3c4, 0x18, pVBInfo->SR18[pVBInfo->ram_type]); /* SR18 */ xgifb_reg_set(P3c4, 0x19, 0x00); xgifb_reg_set(P3c4, 0x16, 0x03); @@ -533,7 +533,7 @@ static unsigned short XGINew_SetDRAMSize20Reg( 0x14, (xgifb_reg_get(pVBInfo->P3c4, 0x14) & 0x0F) | (data & 0xF0)); - udelay(15); + usleep_range(15, 1015); } return memsize; } @@ -552,7 +552,7 @@ static int XGINew_ReadWriteRest(unsigned short StopAddr, writel(Position, fbaddr + Position); } - udelay(500); /* Fix #1759 Memory Size error in Multi-Adapter. */ + usleep_range(500, 1500); /* Fix #1759 Memory Size error in Multi-Adapter. */ Position = 0; @@ -602,7 +602,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension, /* 22bit + 2 rank + 32bit */ xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xB1); xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x52); - udelay(15); + usleep_range(15, 1015); if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) return; @@ -616,7 +616,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension, xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x42); - udelay(15); + usleep_range(15, 1015); if (XGINew_ReadWriteRest(23, 23, @@ -631,14 +631,14 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension, /* 22bit + 2 rank + 16bit */ xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xB1); xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x41); - udelay(15); + usleep_range(15, 1015); if (XGINew_ReadWriteRest(23, 22, pVBInfo) == 1) return; xgifb_reg_set(pVBInfo->P3c4, 0x13, 0x31); - udelay(15); + usleep_range(15, 1015); } } else { /* Dual_16_8 */ @@ -649,7 +649,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension, xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xB1); /* 0x41:16Mx16 bit*/ xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x41); - udelay(15); + usleep_range(15, 1015); if (XGINew_ReadWriteRest(23, 22, pVBInfo) == 1) return; @@ -664,7 +664,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension, xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x31); - udelay(15); + usleep_range(15, 1015); if (XGINew_ReadWriteRest(22, 22, @@ -680,7 +680,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension, xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xB1); /* 0x30:8Mx8 bit*/ xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x30); - udelay(15); + usleep_range(15, 1015); if (XGINew_ReadWriteRest(22, 21, pVBInfo) == 1) return; @@ -689,7 +689,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension, xgifb_reg_set(pVBInfo->P3c4, 0x13, 0x31); - udelay(15); + usleep_range(15, 1015); } } break; @@ -808,7 +808,7 @@ static int XGINew_DDRSizing340(struct xgi_hw_device_info *HwDeviceExtension, for (i = 0; i < size; i++) { /* SetDRAMSizingType */ xgifb_reg_and_or(pVBInfo->P3c4, 0x13, 0x80, dram_table[i][1]); - udelay(15); /* should delay 50 ns */ + usleep_range(50, 1050); /* should delay 50 ns */ memsize = XGINew_SetDRAMSize20Reg(dram_table[i][0], pVBInfo); From 3fc27711dea034db381b6a5c532f384721e9ca73 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 22:16:19 +0530 Subject: [PATCH 2107/2431] Staging: xgifb: Remove blank line before } and after { Remove blank line after { and before }. Problem found using checkpatch. Signed-off-by: Navya Sri Nizamkari Signed-off-by: Greg Kroah-Hartman --- drivers/staging/xgifb/vb_init.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index 0b8bbd77495c..7982f076f5f6 100644 --- a/drivers/staging/xgifb/vb_init.c +++ b/drivers/staging/xgifb/vb_init.c @@ -195,7 +195,6 @@ static void XGINew_DDRII_Bootup_XG27( /* Set SR1B refresh control 000:close; 010:open */ xgifb_reg_set(P3c4, 0x1B, 0x04); usleep_range(200, 1200); - } static void XGINew_DDR2_MRS_XG20(struct xgi_hw_device_info *HwDeviceExtension, @@ -597,7 +596,6 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension, if ((HwDeviceExtension->ulVideoMemorySize - 1) > 0x1000000) { - pVBInfo->ram_bus = 32; /* 32 bits */ /* 22bit + 2 rank + 32bit */ xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xB1); @@ -1059,7 +1057,6 @@ static void XGINew_SetModeScratch(struct vb_device_info *pVBInfo) CR38Data &= ~SetYPbPr; CR38Data |= tempch; xgifb_reg_set(pVBInfo->P3d4, 0x38, CR38Data); - } static unsigned short XGINew_SenseLCD(struct xgi_hw_device_info @@ -1134,7 +1131,6 @@ static void XGINew_GetXG27Sense(struct vb_device_info *pVBInfo) xgifb_reg_and_or(pVBInfo->P3d4, 0x38, ~0xE0, 0xA0); } xgifb_reg_or(pVBInfo->P3d4, 0x32, LCDSense); - } static unsigned char GetXG21FPBits(struct vb_device_info *pVBInfo) @@ -1329,14 +1325,12 @@ unsigned char XGIInitNew(struct pci_dev *pdev) XGI_SenseCRT1(pVBInfo); if (HwDeviceExtension->jChipType == XG21) { - xgifb_reg_and_or(pVBInfo->P3d4, 0x32, ~Monitor1Sense, Monitor1Sense); /* Z9 default has CRT */ temp = GetXG21FPBits(pVBInfo); xgifb_reg_and_or(pVBInfo->P3d4, 0x37, ~0x01, temp); - } if (HwDeviceExtension->jChipType == XG27) { xgifb_reg_and_or(pVBInfo->P3d4, From 0d46afbce659f8ca4feef61451c719275698e7fc Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 22:17:24 +0530 Subject: [PATCH 2108/2431] Staging: xgifb: Remove extra blank lines. This patch fixes the checkpatch.pl check: CHECK: Please don't use multiple blank lines Signed-off-by: Navya Sri Nizamkari Signed-off-by: Greg Kroah-Hartman --- drivers/staging/xgifb/vb_init.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index 7982f076f5f6..af91523592fe 100644 --- a/drivers/staging/xgifb/vb_init.c +++ b/drivers/staging/xgifb/vb_init.c @@ -498,7 +498,6 @@ static void XGINew_SetDRAMDefaultRegister340( xgifb_reg_set(P3c4, 0x1B, 0x03); /* SR1B */ } - static unsigned short XGINew_SetDRAMSize20Reg( unsigned short dram_size, struct vb_device_info *pVBInfo) From 076e235856d1fbb026fd13dbf9139efb86a7b496 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 22:18:26 +0530 Subject: [PATCH 2109/2431] Staging: xgifb: Fix comparison to NULL warning Change comparison to NULL to a ! operation. Found using checkpatch. Signed-off-by: Navya Sri Nizamkari Signed-off-by: Greg Kroah-Hartman --- drivers/staging/xgifb/vb_init.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index af91523592fe..be30c13359e5 100644 --- a/drivers/staging/xgifb/vb_init.c +++ b/drivers/staging/xgifb/vb_init.c @@ -850,11 +850,11 @@ static u8 *xgifb_copy_rom(struct pci_dev *dev, size_t *rom_size) u8 *rom_copy; rom_address = pci_map_rom(dev, rom_size); - if (rom_address == NULL) + if (!rom_address) return NULL; rom_copy = vzalloc(XGIFB_ROM_SIZE); - if (rom_copy == NULL) + if (!rom_copy) goto done; *rom_size = min_t(size_t, *rom_size, XGIFB_ROM_SIZE); @@ -876,7 +876,7 @@ static bool xgifb_read_vbios(struct pci_dev *pdev) int entry; vbios = xgifb_copy_rom(pdev, &vbios_size); - if (vbios == NULL) { + if (!vbios) { dev_err(&pdev->dev, "Video BIOS not available\n"); return false; } @@ -1186,7 +1186,7 @@ unsigned char XGIInitNew(struct pci_dev *pdev) pVBInfo->FBAddr = HwDeviceExtension->pjVideoMemoryAddress; - if (pVBInfo->FBAddr == NULL) { + if (!pVBInfo->FBAddr) { dev_dbg(&pdev->dev, "pVBInfo->FBAddr == 0\n"); return 0; } From c3a56f750d430115f07d703858b8f3af31e17a87 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 22:20:15 +0530 Subject: [PATCH 2110/2431] Staging: xgifb: Remove space after cast This patch fixes the checkpatch check: CHECK: No space is necessary after a cast Signed-off-by: Navya Sri Nizamkari Signed-off-by: Greg Kroah-Hartman --- drivers/staging/xgifb/vb_init.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index be30c13359e5..879a7e6751ac 100644 --- a/drivers/staging/xgifb/vb_init.c +++ b/drivers/staging/xgifb/vb_init.c @@ -814,7 +814,7 @@ static int XGINew_DDRSizing340(struct xgi_hw_device_info *HwDeviceExtension, memsize += (pVBInfo->ram_channel - 2) + 20; if ((HwDeviceExtension->ulVideoMemorySize - 1) < - (unsigned long) (1 << memsize)) + (unsigned long)(1 << memsize)) continue; if (XGINew_ReadWriteRest(memsize, start_addr, pVBInfo) == 1) @@ -835,13 +835,13 @@ static void XGINew_SetDRAMSize_340(struct xgifb_video_info *xgifb_info, data = xgifb_reg_get(pVBInfo->P3c4, 0x21); /* disable read cache */ - xgifb_reg_set(pVBInfo->P3c4, 0x21, (unsigned short) (data & 0xDF)); + xgifb_reg_set(pVBInfo->P3c4, 0x21, (unsigned short)(data & 0xDF)); XGI_DisplayOff(xgifb_info, HwDeviceExtension, pVBInfo); XGINew_DDRSizing340(HwDeviceExtension, pVBInfo); data = xgifb_reg_get(pVBInfo->P3c4, 0x21); /* enable read cache */ - xgifb_reg_set(pVBInfo->P3c4, 0x21, (unsigned short) (data | 0x20)); + xgifb_reg_set(pVBInfo->P3c4, 0x21, (unsigned short)(data | 0x20)); } static u8 *xgifb_copy_rom(struct pci_dev *dev, size_t *rom_size) From 1e6e63283691a2a9048a35d9c6c59cf0abd342e4 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sun, 18 Oct 2015 22:14:48 -0500 Subject: [PATCH 2111/2431] staging: rtl8712: Add device ID for Sitecom WLA2100 This adds the USB ID for the Sitecom WLA2100. The Windows 10 inf file was checked to verify that the addition is correct. Reported-by: Frans van de Wiel Signed-off-by: Larry Finger Cc: Frans van de Wiel Cc: Stable [All stable versions] Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/usb_intf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c index 4c63baa66335..d1ff7c9d66ba 100644 --- a/drivers/staging/rtl8712/usb_intf.c +++ b/drivers/staging/rtl8712/usb_intf.c @@ -144,6 +144,7 @@ static struct usb_device_id rtl871x_usb_id_tbl[] = { {USB_DEVICE(0x0DF6, 0x0058)}, {USB_DEVICE(0x0DF6, 0x0049)}, {USB_DEVICE(0x0DF6, 0x004C)}, + {USB_DEVICE(0x0DF6, 0x006C)}, {USB_DEVICE(0x0DF6, 0x0064)}, /* Skyworth */ {USB_DEVICE(0x14b2, 0x3300)}, From c1ccdddc2e60e73011d0a5e2f06913be84b8bafb Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Mon, 19 Oct 2015 18:49:12 +0200 Subject: [PATCH 2112/2431] Staging: rtl8192e: Use module_pci_driver Use module_pci_driver for drivers whose init and exit functions only register and unregister, respectively. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 22 +------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 2e3c25c37e36..8f989a95a019 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -2775,24 +2775,7 @@ bool rtl92e_disable_nic(struct net_device *dev) return true; } -static int __init _rtl92e_pci_module_init(void) -{ - pr_info("\nLinux kernel driver for RTL8192E WLAN cards\n"); - pr_info("Copyright (c) 2007-2008, Realsil Wlan Driver\n"); - - if (0 != pci_register_driver(&rtl8192_pci_driver)) { - /*pci_unregister_driver (&rtl8192_pci_driver);*/ - return -ENODEV; - } - return 0; -} - -static void __exit _rtl92e_pci_module_exit(void) -{ - pci_unregister_driver(&rtl8192_pci_driver); - - RT_TRACE(COMP_DOWN, "Exiting"); -} +module_pci_driver(rtl8192_pci_driver); void rtl92e_check_rfctrl_gpio_timer(unsigned long data) { @@ -2809,9 +2792,6 @@ void rtl92e_check_rfctrl_gpio_timer(unsigned long data) /*************************************************************************** ------------------- module init / exit stubs ---------------- ****************************************************************************/ -module_init(_rtl92e_pci_module_init); -module_exit(_rtl92e_pci_module_exit); - MODULE_DESCRIPTION("Linux driver for Realtek RTL819x WiFi cards"); MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR); MODULE_VERSION(DRV_VERSION); From abfe2196e03d7026776a0bfb94f93ae1227b23d0 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 22:35:30 +0800 Subject: [PATCH 2113/2431] staging: comedi: make ni_tio_has_gate2_registers return boolean This patch makes ni_tio_has_gate2_registers return boolean, since this function only uses either one or zero as its return value. Signed-off-by: Geliang Tang Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ni_tio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/ni_tio.c b/drivers/staging/comedi/drivers/ni_tio.c index c20c51bef3e7..b74e44ec521a 100644 --- a/drivers/staging/comedi/drivers/ni_tio.c +++ b/drivers/staging/comedi/drivers/ni_tio.c @@ -167,15 +167,15 @@ static inline unsigned GI_HW_ARM_SEL_MASK(enum ni_gpct_variant variant) } } -static int ni_tio_has_gate2_registers(const struct ni_gpct_device *counter_dev) +static bool ni_tio_has_gate2_registers(const struct ni_gpct_device *counter_dev) { switch (counter_dev->variant) { case ni_gpct_variant_e_series: default: - return 0; + return false; case ni_gpct_variant_m_series: case ni_gpct_variant_660x: - return 1; + return true; } } From 7d783469871f48c765c5684dc99fcc409b944754 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:43:56 -0700 Subject: [PATCH 2114/2431] staging: comedi: cb_pcidas: split ai code out of interrupt handler Clarify the interrupt handler by splitting the analog input handling into a new function. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 80 +++++++++++++--------- 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 4aa2742641c0..403405be2557 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -97,6 +97,11 @@ #define PCIDAS_CTRL_LADFUL BIT(13) /* fifo overflow / clear */ #define PCIDAS_CTRL_DAEMI BIT(14) /* dac fifo empty int status / clear */ +#define PCIDAS_CTRL_AI_INT (PCIDAS_CTRL_EOAI | PCIDAS_CTRL_EOBI | \ + PCIDAS_CTRL_ADHFI | PCIDAS_CTRL_ADNEI | \ + PCIDAS_CTRL_LADFUL) +#define PCIDAS_CTRL_AO_INT (PCIDAS_CTRL_DAHFI | PCIDAS_CTRL_DAEMI) + #define PCIDAS_AI_REG 0x02 /* ADC CHANNEL MUX AND CONTROL reg */ #define PCIDAS_AI_FIRST(x) ((x) & 0xf) #define PCIDAS_AI_LAST(x) (((x) & 0xf) << 4) @@ -1144,47 +1149,22 @@ static void cb_pcidas_ao_interrupt(struct comedi_device *dev, comedi_handle_events(dev, s); } -static irqreturn_t cb_pcidas_interrupt(int irq, void *d) +static void cb_pcidas_ai_interrupt(struct comedi_device *dev, + unsigned int status) { - struct comedi_device *dev = d; const struct cb_pcidas_board *board = dev->board_ptr; struct cb_pcidas_private *devpriv = dev->private; struct comedi_subdevice *s = dev->read_subdev; - struct comedi_async *async; - struct comedi_cmd *cmd; - int status, s5933_status; - int half_fifo = board->fifo_size / 2; - unsigned int num_samples, i; - static const int timeout = 10000; + struct comedi_async *async = s->async; + struct comedi_cmd *cmd = &async->cmd; unsigned long flags; - if (!dev->attached) - return IRQ_NONE; - - async = s->async; - cmd = &async->cmd; - - s5933_status = inl(devpriv->amcc + AMCC_OP_REG_INTCSR); - - if ((INTCSR_INTR_ASSERTED & s5933_status) == 0) - return IRQ_NONE; - - /* make sure mailbox 4 is empty */ - inl_p(devpriv->amcc + AMCC_OP_REG_IMB4); - /* clear interrupt on amcc s5933 */ - outl(devpriv->amcc_intcsr | INTCSR_INBOX_INTR_STATUS, - devpriv->amcc + AMCC_OP_REG_INTCSR); - - status = inw(devpriv->pcibar1 + PCIDAS_CTRL_REG); - - /* check for analog output interrupt */ - if (status & (PCIDAS_CTRL_DAHFI | PCIDAS_CTRL_DAEMI)) - cb_pcidas_ao_interrupt(dev, status); - /* check for analog input interrupts */ /* if fifo half-full */ if (status & PCIDAS_CTRL_ADHFI) { + unsigned int num_samples; + /* read data */ - num_samples = comedi_nsamples_left(s, half_fifo); + num_samples = comedi_nsamples_left(s, board->fifo_size / 2); insw(devpriv->pcibar2 + PCIDAS_AI_DATA_REG, devpriv->ai_buffer, num_samples); comedi_buf_write_samples(s, devpriv->ai_buffer, num_samples); @@ -1200,7 +1180,9 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) spin_unlock_irqrestore(&dev->spinlock, flags); /* else if fifo not empty */ } else if (status & (PCIDAS_CTRL_ADNEI | PCIDAS_CTRL_EOBI)) { - for (i = 0; i < timeout; i++) { + unsigned int i; + + for (i = 0; i < 10000; i++) { unsigned short val; /* break if fifo is empty */ @@ -1242,6 +1224,38 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) } comedi_handle_events(dev, s); +} + +static irqreturn_t cb_pcidas_interrupt(int irq, void *d) +{ + struct comedi_device *dev = d; + struct cb_pcidas_private *devpriv = dev->private; + unsigned int amcc_status; + unsigned int status; + + if (!dev->attached) + return IRQ_NONE; + + amcc_status = inl(devpriv->amcc + AMCC_OP_REG_INTCSR); + + if ((INTCSR_INTR_ASSERTED & amcc_status) == 0) + return IRQ_NONE; + + /* make sure mailbox 4 is empty */ + inl_p(devpriv->amcc + AMCC_OP_REG_IMB4); + /* clear interrupt on amcc s5933 */ + outl(devpriv->amcc_intcsr | INTCSR_INBOX_INTR_STATUS, + devpriv->amcc + AMCC_OP_REG_INTCSR); + + status = inw(devpriv->pcibar1 + PCIDAS_CTRL_REG); + + /* handle analog output interrupts */ + if (status & PCIDAS_CTRL_AO_INT) + cb_pcidas_ao_interrupt(dev, status); + + /* handle analog input interrupts */ + if (status & PCIDAS_CTRL_AI_INT) + cb_pcidas_ai_interrupt(dev, status); return IRQ_HANDLED; } From 46c95d970fc2a2c9e7abc0560bbba7155f615982 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:43:57 -0700 Subject: [PATCH 2115/2431] staging: comedi: cb_pcidas: consolidate interrupt clear code The analog output and analog input interrupts are currently cleared as they are handled. Refactor the code to gather all the bits needed to clear the interrupts and do it once at the end of the interrupt handler. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 80 ++++++++++------------ 1 file changed, 37 insertions(+), 43 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 403405be2557..c334e4baeeda 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1111,22 +1111,19 @@ static int cb_pcidas_ao_cancel(struct comedi_device *dev, return 0; } -static void cb_pcidas_ao_interrupt(struct comedi_device *dev, - unsigned int status) +static unsigned int cb_pcidas_ao_interrupt(struct comedi_device *dev, + unsigned int status) { const struct cb_pcidas_board *board = dev->board_ptr; struct cb_pcidas_private *devpriv = dev->private; struct comedi_subdevice *s = dev->write_subdev; struct comedi_async *async = s->async; struct comedi_cmd *cmd = &async->cmd; - unsigned long flags; + unsigned int irq_clr = 0; if (status & PCIDAS_CTRL_DAEMI) { - /* clear dac empty interrupt latch */ - spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->ctrl | PCIDAS_CTRL_DAEMI, - devpriv->pcibar1 + PCIDAS_CTRL_REG); - spin_unlock_irqrestore(&dev->spinlock, flags); + irq_clr |= PCIDAS_CTRL_DAEMI; + if (inw(devpriv->pcibar4 + PCIDAS_AO_REG) & PCIDAS_AO_EMPTY) { if (cmd->stop_src == TRIG_COUNT && async->scans_done >= cmd->stop_arg) { @@ -1137,33 +1134,32 @@ static void cb_pcidas_ao_interrupt(struct comedi_device *dev, } } } else if (status & PCIDAS_CTRL_DAHFI) { - cb_pcidas_ao_load_fifo(dev, s, board->fifo_size / 2); + irq_clr |= PCIDAS_CTRL_DAHFI; - /* clear half-full interrupt latch */ - spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->ctrl | PCIDAS_CTRL_DAHFI, - devpriv->pcibar1 + PCIDAS_CTRL_REG); - spin_unlock_irqrestore(&dev->spinlock, flags); + cb_pcidas_ao_load_fifo(dev, s, board->fifo_size / 2); } comedi_handle_events(dev, s); + + return irq_clr; } -static void cb_pcidas_ai_interrupt(struct comedi_device *dev, - unsigned int status) +static unsigned int cb_pcidas_ai_interrupt(struct comedi_device *dev, + unsigned int status) { const struct cb_pcidas_board *board = dev->board_ptr; struct cb_pcidas_private *devpriv = dev->private; struct comedi_subdevice *s = dev->read_subdev; struct comedi_async *async = s->async; struct comedi_cmd *cmd = &async->cmd; - unsigned long flags; + unsigned int irq_clr = 0; - /* if fifo half-full */ if (status & PCIDAS_CTRL_ADHFI) { unsigned int num_samples; - /* read data */ + irq_clr |= PCIDAS_CTRL_INT_CLR; + + /* FIFO is half-full - read data */ num_samples = comedi_nsamples_left(s, board->fifo_size / 2); insw(devpriv->pcibar2 + PCIDAS_AI_DATA_REG, devpriv->ai_buffer, num_samples); @@ -1172,16 +1168,12 @@ static void cb_pcidas_ai_interrupt(struct comedi_device *dev, if (cmd->stop_src == TRIG_COUNT && async->scans_done >= cmd->stop_arg) async->events |= COMEDI_CB_EOA; - - /* clear half-full interrupt latch */ - spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->ctrl | PCIDAS_CTRL_INT_CLR, - devpriv->pcibar1 + PCIDAS_CTRL_REG); - spin_unlock_irqrestore(&dev->spinlock, flags); - /* else if fifo not empty */ } else if (status & (PCIDAS_CTRL_ADNEI | PCIDAS_CTRL_EOBI)) { unsigned int i; + irq_clr |= PCIDAS_CTRL_INT_CLR; + + /* FIFO is not empty - read data until empty or timeoout */ for (i = 0; i < 10000; i++) { unsigned short val; @@ -1198,38 +1190,31 @@ static void cb_pcidas_ai_interrupt(struct comedi_device *dev, break; } } - /* clear not-empty interrupt latch */ - spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->ctrl | PCIDAS_CTRL_INT_CLR, - devpriv->pcibar1 + PCIDAS_CTRL_REG); - spin_unlock_irqrestore(&dev->spinlock, flags); } else if (status & PCIDAS_CTRL_EOAI) { + irq_clr |= PCIDAS_CTRL_EOAI; + dev_err(dev->class_dev, "bug! encountered end of acquisition interrupt?\n"); - /* clear EOA interrupt latch */ - spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->ctrl | PCIDAS_CTRL_EOAI, - devpriv->pcibar1 + PCIDAS_CTRL_REG); - spin_unlock_irqrestore(&dev->spinlock, flags); } + /* check for fifo overflow */ if (status & PCIDAS_CTRL_LADFUL) { + irq_clr |= PCIDAS_CTRL_LADFUL; + dev_err(dev->class_dev, "fifo overflow\n"); - /* clear overflow interrupt latch */ - spin_lock_irqsave(&dev->spinlock, flags); - outw(devpriv->ctrl | PCIDAS_CTRL_LADFUL, - devpriv->pcibar1 + PCIDAS_CTRL_REG); - spin_unlock_irqrestore(&dev->spinlock, flags); async->events |= COMEDI_CB_ERROR; } comedi_handle_events(dev, s); + + return irq_clr; } static irqreturn_t cb_pcidas_interrupt(int irq, void *d) { struct comedi_device *dev = d; struct cb_pcidas_private *devpriv = dev->private; + unsigned int irq_clr = 0; unsigned int amcc_status; unsigned int status; @@ -1251,11 +1236,20 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d) /* handle analog output interrupts */ if (status & PCIDAS_CTRL_AO_INT) - cb_pcidas_ao_interrupt(dev, status); + irq_clr |= cb_pcidas_ao_interrupt(dev, status); /* handle analog input interrupts */ if (status & PCIDAS_CTRL_AI_INT) - cb_pcidas_ai_interrupt(dev, status); + irq_clr |= cb_pcidas_ai_interrupt(dev, status); + + if (irq_clr) { + unsigned long flags; + + spin_lock_irqsave(&dev->spinlock, flags); + outw(devpriv->ctrl | irq_clr, + devpriv->pcibar1 + PCIDAS_CTRL_REG); + spin_unlock_irqrestore(&dev->spinlock, flags); + } return IRQ_HANDLED; } From 042bac563b28c8067fa958470dd5c1dc31d42cb2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:43:58 -0700 Subject: [PATCH 2116/2431] staging: comedi: cb_pcidas: absorb cal_enable_bits() This inline function just returns the bits needd to enable a calibration source. For aethetics, absorb it into the callers. Sorten the variable name in the private data used to hold the current calibration source. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index c334e4baeeda..b763f25acad7 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -313,16 +313,9 @@ struct cb_pcidas_private { /* fifo buffers */ unsigned short ai_buffer[AI_BUFFER_SIZE]; unsigned short ao_buffer[AO_BUFFER_SIZE]; - unsigned int calibration_source; + unsigned int calib_src; }; -static inline unsigned int cal_enable_bits(struct comedi_device *dev) -{ - struct cb_pcidas_private *devpriv = dev->private; - - return PCIDAS_CALIB_EN | PCIDAS_CALIB_SRC(devpriv->calibration_source); -} - static int cb_pcidas_ai_eoc(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -352,7 +345,7 @@ static int cb_pcidas_ai_insn_read(struct comedi_device *dev, /* enable calibration input if appropriate */ if (insn->chanspec & CR_ALT_SOURCE) { - outw(cal_enable_bits(dev), + outw(PCIDAS_CALIB_EN | PCIDAS_CALIB_SRC(devpriv->calib_src), devpriv->pcibar1 + PCIDAS_CALIB_REG); chan = 0; } else { @@ -407,7 +400,7 @@ static int cb_pcidas_ai_insn_config(struct comedi_device *dev, source); return -EINVAL; } - devpriv->calibration_source = source; + devpriv->calib_src = source; break; default: return -EINVAL; @@ -532,9 +525,10 @@ static void cb_pcidas_calib_write(struct comedi_device *dev, bool trimpot) { struct cb_pcidas_private *devpriv = dev->private; - unsigned int calib_bits = cal_enable_bits(dev); + unsigned int calib_bits; unsigned int bit; + calib_bits = PCIDAS_CALIB_EN | PCIDAS_CALIB_SRC(devpriv->calib_src); if (trimpot) { /* select trimpot */ calib_bits |= PCIDAS_CALIB_TRIM_SEL; @@ -552,7 +546,7 @@ static void cb_pcidas_calib_write(struct comedi_device *dev, } udelay(1); - calib_bits = cal_enable_bits(dev); + calib_bits = PCIDAS_CALIB_EN | PCIDAS_CALIB_SRC(devpriv->calib_src); if (!trimpot) { /* select caldac */ @@ -590,7 +584,7 @@ static void cb_pcidas_dac08_write(struct comedi_device *dev, unsigned int val) { struct cb_pcidas_private *devpriv = dev->private; - val |= cal_enable_bits(dev); + val |= PCIDAS_CALIB_EN | PCIDAS_CALIB_SRC(devpriv->calib_src); /* latch the new value into the caldac */ outw(val, devpriv->pcibar1 + PCIDAS_CALIB_REG); From f92738ca2fa4f8ca30424ac2b770e2c8a8a7b364 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:43:59 -0700 Subject: [PATCH 2117/2431] staging: comedi: cb_pcidas: remove superfluous comment The ao (*cancel) function does not need commented. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index b763f25acad7..1e43c1a759d1 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1085,7 +1085,6 @@ static int cb_pcidas_ao_cmd(struct comedi_device *dev, return 0; } -/* cancel analog output command */ static int cb_pcidas_ao_cancel(struct comedi_device *dev, struct comedi_subdevice *s) { From ef7e20934ec906e7986566d45ea8ae652a64ba09 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:44:00 -0700 Subject: [PATCH 2118/2431] staging: comedi: cb_pcidas: fix cb_pcidas_ao_fifo_insn_write() The comedi core expects (*insn_write) functions to write insn->n data values to the hardware. Fix this function to work like the core expects. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 1e43c1a759d1..9e82fd24255f 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -445,7 +445,9 @@ static int cb_pcidas_ao_fifo_insn_write(struct comedi_device *dev, struct cb_pcidas_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int range = CR_RANGE(insn->chanspec); + unsigned int val = s->readback[chan]; unsigned long flags; + int i; /* clear dac fifo */ outw(0, devpriv->pcibar4 + PCIDAS_AO_FIFO_CLR_REG); @@ -459,11 +461,12 @@ static int cb_pcidas_ao_fifo_insn_write(struct comedi_device *dev, outw(devpriv->ao_ctrl, devpriv->pcibar1 + PCIDAS_AO_REG); spin_unlock_irqrestore(&dev->spinlock, flags); - /* remember value for readback */ - s->readback[chan] = data[0]; + for (i = 0; i < insn->n; i++) { + val = data[i]; + outw(val, devpriv->pcibar4 + PCIDAS_AO_FIFO_REG); + } - /* send data */ - outw(data[0], devpriv->pcibar4 + PCIDAS_AO_FIFO_REG); + s->readback[chan] = val; return insn->n; } From d52688055c9cdc81475882009e437248f073edf9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:44:01 -0700 Subject: [PATCH 2119/2431] staging: comedi: cb_pcidas: fix cb_pcidas_ao_nofifo_insn_write() The comedi core expects (*insn_write) functions to write insn->n data values to the hardware. Fix this function to work like the core expects. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 9e82fd24255f..58ba5533dc49 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -417,7 +417,9 @@ static int cb_pcidas_ao_nofifo_insn_write(struct comedi_device *dev, struct cb_pcidas_private *devpriv = dev->private; unsigned int chan = CR_CHAN(insn->chanspec); unsigned int range = CR_RANGE(insn->chanspec); + unsigned int val = s->readback[chan]; unsigned long flags; + int i; /* set channel and range */ spin_lock_irqsave(&dev->spinlock, flags); @@ -427,11 +429,12 @@ static int cb_pcidas_ao_nofifo_insn_write(struct comedi_device *dev, outw(devpriv->ao_ctrl, devpriv->pcibar1 + PCIDAS_AO_REG); spin_unlock_irqrestore(&dev->spinlock, flags); - /* remember value for readback */ - s->readback[chan] = data[0]; + for (i = 0; i < insn->n; i++) { + val = data[i]; + outw(val, devpriv->pcibar4 + PCIDAS_AO_DATA_REG(chan)); + } - /* send data */ - outw(data[0], devpriv->pcibar4 + PCIDAS_AO_DATA_REG(chan)); + s->readback[chan] = val; return insn->n; } From 64289a650656d7307832376fdfaf1e7131236a4b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:44:02 -0700 Subject: [PATCH 2120/2431] staging: comedi: cb_pcidas: update MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more useful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 58ba5533dc49..3cd008acb657 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1503,5 +1503,5 @@ static struct pci_driver cb_pcidas_pci_driver = { module_comedi_pci_driver(cb_pcidas_driver, cb_pcidas_pci_driver); MODULE_AUTHOR("Comedi http://www.comedi.org"); -MODULE_DESCRIPTION("Comedi low-level driver"); +MODULE_DESCRIPTION("Comedi driver for MeasurementComputing PCI-DAS series"); MODULE_LICENSE("GPL"); From 9aed06693df75c0e81ae2a25c3ed51dbb4d4ac61 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 13:16:33 +0300 Subject: [PATCH 2121/2431] staging: comedi: Fix return flow Simplify function return flow. Issue found with coccinelle. Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/daqboard2000.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c index 611b0a3ef5d7..57ab6680e3ae 100644 --- a/drivers/staging/comedi/drivers/daqboard2000.c +++ b/drivers/staging/comedi/drivers/daqboard2000.c @@ -713,12 +713,8 @@ static int daqboard2000_auto_attach(struct comedi_device *dev, return result; s = &dev->subdevices[2]; - result = subdev_8255_init(dev, s, daqboard2000_8255_cb, - dioP2ExpansionIO8Bit); - if (result) - return result; - - return 0; + return subdev_8255_init(dev, s, daqboard2000_8255_cb, + dioP2ExpansionIO8Bit); } static void daqboard2000_detach(struct comedi_device *dev) From 323538b825d4b1eb6c8a9022998822898ab52dff Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:12:56 -0700 Subject: [PATCH 2122/2431] staging: comedi: adl_pci9118: TRIG_INT is not vaild for scan_begin_src The (*do_cmdtest) in this driver validated the scan_begin_src as being TRIG_FOLLOW | TRIG_TIMER | TRIG_EXT. The TRIG_INT source is not valid. Remove the Step 2 mutual compatibility check that makes sure that TRIG_INT is only used for the start_src or the scan_begin_src. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index e5e0e1c4e50b..a7c974423a3e 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -1205,9 +1205,6 @@ static int pci9118_ai_cmdtest(struct comedi_device *dev, if (cmd->start_src == TRIG_EXT && cmd->scan_begin_src == TRIG_EXT) err |= -EINVAL; - if (cmd->start_src == TRIG_INT && cmd->scan_begin_src == TRIG_INT) - err |= -EINVAL; - if ((cmd->scan_begin_src & (TRIG_TIMER | TRIG_EXT)) && (!(cmd->convert_src & (TRIG_TIMER | TRIG_NOW)))) err |= -EINVAL; From 7c999314efef94be997b762bc22f0be55e139df8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:12:57 -0700 Subject: [PATCH 2123/2431] staging: comedi: adl_pci9118: remove unnecessary check in check_channel_list() Step 3 of the AI (*do_cmdtest) validates that the cmd->chanlist_len is >= 1. If it's not the (*do_cmdtest) fails and check_channel_list() is never called. This This function is also called by the AI (*do_cmd) and the comedi core ensures that the async command has a valid chanlist. Remove the unnecessary 'n_chan' check. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index a7c974423a3e..dcfe5cc08220 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -303,11 +303,6 @@ static int check_channel_list(struct comedi_device *dev, struct pci9118_private *devpriv = dev->private; unsigned int i, differencial = 0, bipolar = 0; - /* correct channel and range number check itself comedi/range.c */ - if (n_chan < 1) { - dev_err(dev->class_dev, "range/channel list is empty!\n"); - return 0; - } if ((frontadd + n_chan + backadd) > s->len_chanlist) { dev_err(dev->class_dev, "range/channel list is too long for actual configuration!\n"); From 0f3cb85ac85a6819248544113b495af27921e454 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:12:58 -0700 Subject: [PATCH 2124/2431] staging: comedi: adl_pci9118: tidy up check_channel_list() Rename this function to give it namespace associated with the driver. Currently this function is called by both the AI (*do_cmdtest) and the (*do_cmd) functions. It really only needs to be called by the (*do_cmdtest) to validate that the chanlist meets the requirements of the hardware. It's only called by the (*do_cmd) to verify that the scan length is not to large after adding the extra samples needed to satisfy the DMA. Move the extra scan length check into the (*do_cmd) function and remove the unnecessary parameters 'frontadd' and 'backadd'. Tidy up the reset of the function. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 104 +++++++++---------- 1 file changed, 51 insertions(+), 53 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index dcfe5cc08220..08cd04691bea 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -169,11 +169,6 @@ static const struct comedi_lrange pci9118hg_ai_range = { } }; -#define PCI9118_BIPOLAR_RANGES 4 /* - * used for test on mixture - * of BIP/UNI ranges - */ - enum pci9118_boardid { BOARD_PCI9118DG, BOARD_PCI9118HG, @@ -296,46 +291,44 @@ static void pci9118_ai_reset_fifo(struct comedi_device *dev) outl(0, dev->iobase + PCI9118_FIFO_RESET_REG); } -static int check_channel_list(struct comedi_device *dev, - struct comedi_subdevice *s, int n_chan, - unsigned int *chanlist, int frontadd, int backadd) +static int pci9118_ai_check_chanlist(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_cmd *cmd) { struct pci9118_private *devpriv = dev->private; - unsigned int i, differencial = 0, bipolar = 0; + unsigned int range0 = CR_RANGE(cmd->chanlist[0]); + unsigned int aref0 = CR_AREF(cmd->chanlist[0]); + int i; - if ((frontadd + n_chan + backadd) > s->len_chanlist) { - dev_err(dev->class_dev, - "range/channel list is too long for actual configuration!\n"); + /* single channel scans are always ok */ + if (cmd->chanlist_len == 1) return 0; + + for (i = 1; i < cmd->chanlist_len; i++) { + unsigned int chan = CR_CHAN(cmd->chanlist[i]); + unsigned int range = CR_RANGE(cmd->chanlist[i]); + unsigned int aref = CR_AREF(cmd->chanlist[i]); + + if (aref != aref0) { + dev_err(dev->class_dev, + "Differential and single ended inputs can't be mixed!\n"); + return -EINVAL; + } + if (comedi_range_is_bipolar(s, range) != + comedi_range_is_bipolar(s, range0)) { + dev_err(dev->class_dev, + "Bipolar and unipolar ranges can't be mixed!\n"); + return -EINVAL; + } + if (!devpriv->usemux && aref == AREF_DIFF && + (chan >= (s->n_chan / 2))) { + dev_err(dev->class_dev, + "AREF_DIFF is only available for the first 8 channels!\n"); + return -EINVAL; + } } - if (CR_AREF(chanlist[0]) == AREF_DIFF) - differencial = 1; /* all input must be diff */ - if (CR_RANGE(chanlist[0]) < PCI9118_BIPOLAR_RANGES) - bipolar = 1; /* all input must be bipolar */ - if (n_chan > 1) - for (i = 1; i < n_chan; i++) { /* check S.E/diff */ - if ((CR_AREF(chanlist[i]) == AREF_DIFF) != - (differencial)) { - dev_err(dev->class_dev, - "Differential and single ended inputs can't be mixed!\n"); - return 0; - } - if ((CR_RANGE(chanlist[i]) < PCI9118_BIPOLAR_RANGES) != - (bipolar)) { - dev_err(dev->class_dev, - "Bipolar and unipolar ranges can't be mixed!\n"); - return 0; - } - if (!devpriv->usemux && differencial && - (CR_CHAN(chanlist[i]) >= (s->n_chan / 2))) { - dev_err(dev->class_dev, - "AREF_DIFF is only available for the first 8 channels!\n"); - return 0; - } - } - - return 1; + return 0; } static void pci9118_set_chanlist(struct comedi_device *dev, @@ -940,6 +933,7 @@ static int pci9118_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) struct comedi_8254 *pacer = dev->pacer; struct comedi_cmd *cmd = &s->async->cmd; unsigned int addchans = 0; + unsigned int scanlen; devpriv->ai12_startstop = 0; devpriv->ai_flags = cmd->flags; @@ -1025,19 +1019,20 @@ static int pci9118_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) } } /* well, we now know what must be all added */ - devpriv->ai_n_realscanlen = /* - * what we must take from card in real - * to have cmd->scan_end_arg on output? - */ - (devpriv->ai_add_front + cmd->chanlist_len + - devpriv->ai_add_back) * (cmd->scan_end_arg / - cmd->chanlist_len); + scanlen = devpriv->ai_add_front + cmd->chanlist_len + + devpriv->ai_add_back; + /* + * what we must take from card in real to have cmd->scan_end_arg + * on output? + */ + devpriv->ai_n_realscanlen = scanlen * + (cmd->scan_end_arg / cmd->chanlist_len); - /* check and setup channel list */ - if (!check_channel_list(dev, s, cmd->chanlist_len, - cmd->chanlist, devpriv->ai_add_front, - devpriv->ai_add_back)) + if (scanlen > s->len_chanlist) { + dev_err(dev->class_dev, + "range/channel list is too long for actual configuration!\n"); return -EINVAL; + } /* * Configure analog input and load the chanlist. @@ -1307,10 +1302,13 @@ static int pci9118_ai_cmdtest(struct comedi_device *dev, if (err) return 4; + /* Step 5: check channel list if it exists */ + if (cmd->chanlist) - if (!check_channel_list(dev, s, cmd->chanlist_len, - cmd->chanlist, 0, 0)) - return 5; /* incorrect channels list */ + err |= pci9118_ai_check_chanlist(dev, s, cmd); + + if (err) + return 5; return 0; } From 766957f6f1841e5d435798741852f2697ad0b2ad Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:12:59 -0700 Subject: [PATCH 2125/2431] staging: comedi: adl_pci9118: remove unused defines These defines are not used in the driver. Remove them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 08cd04691bea..493bdef241be 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -83,7 +83,6 @@ #include "amcc_s5933.h" #include "comedi_8254.h" -#define IORANGE_9118 64 /* I hope */ #define PCI9118_CHANLEN 255 /* * len of chanlist, some source say 256, * but reality looks like 255 :-( @@ -141,8 +140,6 @@ #define STOP_AI_EXT 0x02 /* stop measure on external trigger */ #define STOP_AI_INT 0x08 /* stop measure on internal trigger */ -#define PCI9118_HALF_FIFO_SZ (1024 / 2) - static const struct comedi_lrange pci9118_ai_range = { 8, { BIP_RANGE(5), From dd2907c3e7a759e1ea2ea5587704515d907dd937 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:00 -0700 Subject: [PATCH 2126/2431] staging: comedi: adl_pci9118: remove PCI9118_CHANLEN This define is only used to initialize the analog input sudevice 'len_chanlist'. Remove the define and just open code the value. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 493bdef241be..87c2ddde6124 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -83,11 +83,6 @@ #include "amcc_s5933.h" #include "comedi_8254.h" -#define PCI9118_CHANLEN 255 /* - * len of chanlist, some source say 256, - * but reality looks like 255 :-( - */ - /* * PCI BAR2 Register map (dev->iobase) */ @@ -1595,7 +1590,7 @@ static int pci9118_common_attach(struct comedi_device *dev, if (dev->irq) { dev->read_subdev = s; s->subdev_flags |= SDF_CMD_READ; - s->len_chanlist = PCI9118_CHANLEN; + s->len_chanlist = 255; s->do_cmdtest = pci9118_ai_cmdtest; s->do_cmd = pci9118_ai_cmd; s->cancel = pci9118_ai_cancel; From ad1a9646b72ab58649b0e75bda794f7ca79ae497 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:01 -0700 Subject: [PATCH 2127/2431] staging: comedi: adl_pci9118: rename interrupt_pci9118_ai_mode4_switch() For aesthetics, remove "interrupt_" from this functions name to shorten it a bit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 87c2ddde6124..65823493b3e3 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -386,8 +386,8 @@ static void pci9118_set_chanlist(struct comedi_device *dev, /* udelay(100); important delay, or first sample will be crippled */ } -static void interrupt_pci9118_ai_mode4_switch(struct comedi_device *dev, - unsigned int next_buf) +static void pci9118_ai_mode4_switch(struct comedi_device *dev, + unsigned int next_buf) { struct pci9118_private *devpriv = dev->private; struct pci9118_dmabuf *dmabuf = &devpriv->dmabuf[next_buf]; @@ -649,10 +649,8 @@ static void interrupt_pci9118_ai_dma(struct comedi_device *dev, if (more_dma && devpriv->dma_doublebuf) { devpriv->dma_actbuf = 1 - devpriv->dma_actbuf; pci9118_amcc_setup_dma(dev, devpriv->dma_actbuf); - if (devpriv->ai_do == 4) { - interrupt_pci9118_ai_mode4_switch(dev, - devpriv->dma_actbuf); - } + if (devpriv->ai_do == 4) + pci9118_ai_mode4_switch(dev, devpriv->dma_actbuf); } if (n_all) @@ -670,7 +668,7 @@ static void interrupt_pci9118_ai_dma(struct comedi_device *dev, if (more_dma && !devpriv->dma_doublebuf) { pci9118_amcc_setup_dma(dev, 0); if (devpriv->ai_do == 4) - interrupt_pci9118_ai_mode4_switch(dev, 0); + pci9118_ai_mode4_switch(dev, 0); } } From 9459ff2b6bd103bd4bd0e31f5144a7b2b6e76bae Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:02 -0700 Subject: [PATCH 2128/2431] staging: comedi: adl_pci9118: rename valid_samples_in_act_dma_buf() Rename this function so it has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 65823493b3e3..ac1d298fae8d 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -401,9 +401,9 @@ static void pci9118_ai_mode4_switch(struct comedi_device *dev, outl(devpriv->ai_cfg, dev->iobase + PCI9118_AI_CFG_REG); } -static unsigned int valid_samples_in_act_dma_buf(struct comedi_device *dev, - struct comedi_subdevice *s, - unsigned int n_raw_samples) +static unsigned int pci9118_ai_samples_ready(struct comedi_device *dev, + struct comedi_subdevice *s, + unsigned int n_raw_samples) { struct pci9118_private *devpriv = dev->private; struct comedi_cmd *cmd = &s->async->cmd; @@ -642,7 +642,7 @@ static void interrupt_pci9118_ai_dma(struct comedi_device *dev, bool more_dma; /* determine whether more DMA buffers to do after this one */ - n_valid = valid_samples_in_act_dma_buf(dev, s, n_all); + n_valid = pci9118_ai_samples_ready(dev, s, n_all); more_dma = n_valid < comedi_nsamples_left(s, n_valid + 1); /* switch DMA buffers and restart DMA if double buffering */ From 5c912f1f285e91c9059f8b3cf2ff170ee42d604d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:03 -0700 Subject: [PATCH 2129/2431] staging: comedi: adl_pci9118: rename move_block_from_dma() Rename this function so it has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index ac1d298fae8d..be0d2a7607ef 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -457,7 +457,7 @@ static unsigned int pci9118_ai_samples_ready(struct comedi_device *dev, return n_samples; } -static void move_block_from_dma(struct comedi_device *dev, +static void pci9118_ai_dma_xfer(struct comedi_device *dev, struct comedi_subdevice *s, unsigned short *dma_buffer, unsigned int n_raw_samples) @@ -654,7 +654,7 @@ static void interrupt_pci9118_ai_dma(struct comedi_device *dev, } if (n_all) - move_block_from_dma(dev, s, dmabuf->virt, n_all); + pci9118_ai_dma_xfer(dev, s, dmabuf->virt, n_all); if (!devpriv->ai_neverending) { if (s->async->scans_done >= cmd->stop_arg) From 45037a9569183b49a9c9cf9faea294228c3963d2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:04 -0700 Subject: [PATCH 2130/2431] staging: comedi: adl_pci9118: rename interrupt_*() functions For aesthetics, rename these functions so it they namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index be0d2a7607ef..e2302cb5ce2c 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -614,8 +614,8 @@ static void pci9118_ai_munge(struct comedi_device *dev, } } -static void interrupt_pci9118_ai_onesample(struct comedi_device *dev, - struct comedi_subdevice *s) +static void pci9118_ai_get_onesample(struct comedi_device *dev, + struct comedi_subdevice *s) { struct pci9118_private *devpriv = dev->private; struct comedi_cmd *cmd = &s->async->cmd; @@ -631,8 +631,8 @@ static void interrupt_pci9118_ai_onesample(struct comedi_device *dev, } } -static void interrupt_pci9118_ai_dma(struct comedi_device *dev, - struct comedi_subdevice *s) +static void pci9118_ai_get_dma(struct comedi_device *dev, + struct comedi_subdevice *s) { struct pci9118_private *devpriv = dev->private; struct comedi_cmd *cmd = &s->async->cmd; @@ -757,9 +757,9 @@ static irqreturn_t pci9118_interrupt(int irq, void *d) } if (devpriv->usedma) - interrupt_pci9118_ai_dma(dev, s); + pci9118_ai_get_dma(dev, s); else - interrupt_pci9118_ai_onesample(dev, s); + pci9118_ai_get_onesample(dev, s); interrupt_exit: comedi_handle_events(dev, s); From eb96c7fc24fb89d7e3382260e1b391c05895cfa6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:05 -0700 Subject: [PATCH 2131/2431] staging: comedi: adl_pci9118: tidy up pci9118_ai_setup_dma() For aesthetics, init the dmalen[01] local variables when they are declared. Use a local variable, 'scan_bytes', for the (devpriv->ai_n_realscanlen << 1) calculation. For aesthetics and clarification, use comedi_bytes_per_sample() instead of the '<< 1' shift to calculate the value. The local variable 'i' is badly named. Remove it and use a local variable 'tmp' where it is used. When checking the DMA buffer lengths for non-neverending commands the scan length calculation, (devpriv->ai_n_realscanlen << 1) * cmd->stop_arg, could overflow. Use and unsigned long long local variable to hold the calculation and avoid the overflow. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9118.c | 67 +++++++++----------- 1 file changed, 31 insertions(+), 36 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index e2302cb5ce2c..0dff1dbb53fb 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -801,10 +801,11 @@ static int pci9118_ai_setup_dma(struct comedi_device *dev, struct comedi_cmd *cmd = &s->async->cmd; struct pci9118_dmabuf *dmabuf0 = &devpriv->dmabuf[0]; struct pci9118_dmabuf *dmabuf1 = &devpriv->dmabuf[1]; - unsigned int dmalen0, dmalen1, i; + unsigned int dmalen0 = dmabuf0->size; + unsigned int dmalen1 = dmabuf1->size; + unsigned int scan_bytes = devpriv->ai_n_realscanlen * + comedi_bytes_per_sample(s); - dmalen0 = dmabuf0->size; - dmalen1 = dmabuf1->size; /* isn't output buff smaller that our DMA buff? */ if (dmalen0 > s->async->prealloc_bufsz) { /* align to 32bit down */ @@ -817,15 +818,15 @@ static int pci9118_ai_setup_dma(struct comedi_device *dev, /* we want wake up every scan? */ if (devpriv->ai_flags & CMDF_WAKE_EOS) { - if (dmalen0 < (devpriv->ai_n_realscanlen << 1)) { + if (dmalen0 < scan_bytes) { /* uff, too short DMA buffer, disable EOS support! */ devpriv->ai_flags &= (~CMDF_WAKE_EOS); dev_info(dev->class_dev, "WAR: DMA0 buf too short, can't support CMDF_WAKE_EOS (%d<%d)\n", - dmalen0, devpriv->ai_n_realscanlen << 1); + dmalen0, scan_bytes); } else { /* short first DMA buffer to one scan */ - dmalen0 = devpriv->ai_n_realscanlen << 1; + dmalen0 = scan_bytes; if (dmalen0 < 4) { dev_info(dev->class_dev, "ERR: DMA0 buf len bug? (%d<4)\n", @@ -835,15 +836,15 @@ static int pci9118_ai_setup_dma(struct comedi_device *dev, } } if (devpriv->ai_flags & CMDF_WAKE_EOS) { - if (dmalen1 < (devpriv->ai_n_realscanlen << 1)) { + if (dmalen1 < scan_bytes) { /* uff, too short DMA buffer, disable EOS support! */ devpriv->ai_flags &= (~CMDF_WAKE_EOS); dev_info(dev->class_dev, "WAR: DMA1 buf too short, can't support CMDF_WAKE_EOS (%d<%d)\n", - dmalen1, devpriv->ai_n_realscanlen << 1); + dmalen1, scan_bytes); } else { /* short second DMA buffer to one scan */ - dmalen1 = devpriv->ai_n_realscanlen << 1; + dmalen1 = scan_bytes; if (dmalen1 < 4) { dev_info(dev->class_dev, "ERR: DMA1 buf len bug? (%d<4)\n", @@ -855,45 +856,39 @@ static int pci9118_ai_setup_dma(struct comedi_device *dev, /* transfer without CMDF_WAKE_EOS */ if (!(devpriv->ai_flags & CMDF_WAKE_EOS)) { + unsigned int tmp; + /* if it's possible then align DMA buffers to length of scan */ - i = dmalen0; - dmalen0 = - (dmalen0 / (devpriv->ai_n_realscanlen << 1)) * - (devpriv->ai_n_realscanlen << 1); + tmp = dmalen0; + dmalen0 = (dmalen0 / scan_bytes) * scan_bytes; dmalen0 &= ~3L; if (!dmalen0) - dmalen0 = i; /* uff. very long scan? */ - i = dmalen1; - dmalen1 = - (dmalen1 / (devpriv->ai_n_realscanlen << 1)) * - (devpriv->ai_n_realscanlen << 1); + dmalen0 = tmp; /* uff. very long scan? */ + tmp = dmalen1; + dmalen1 = (dmalen1 / scan_bytes) * scan_bytes; dmalen1 &= ~3L; if (!dmalen1) - dmalen1 = i; /* uff. very long scan? */ + dmalen1 = tmp; /* uff. very long scan? */ /* * if measure isn't neverending then test, if it fits whole * into one or two DMA buffers */ if (!devpriv->ai_neverending) { + unsigned long long scanlen; + + scanlen = (unsigned long long)scan_bytes * + cmd->stop_arg; + /* fits whole measure into one DMA buffer? */ - if (dmalen0 > - ((devpriv->ai_n_realscanlen << 1) * - cmd->stop_arg)) { - dmalen0 = - (devpriv->ai_n_realscanlen << 1) * - cmd->stop_arg; + if (dmalen0 > scanlen) { + dmalen0 = scanlen; dmalen0 &= ~3L; - } else { /* - * fits whole measure into - * two DMA buffer? - */ - if (dmalen1 > - ((devpriv->ai_n_realscanlen << 1) * - cmd->stop_arg - dmalen0)) - dmalen1 = - (devpriv->ai_n_realscanlen << 1) * - cmd->stop_arg - dmalen0; - dmalen1 &= ~3L; + } else { + /* fits whole measure into two DMA buffer? */ + if (dmalen1 > (scanlen - dmalen0)) { + dmalen1 = scanlen - dmalen0; + dmalen1 &= ~3L; + } } } } From 6512edec48b2ccfe9bb969ce26ebbbcd49de6c4b Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Wed, 21 Oct 2015 18:42:37 -0700 Subject: [PATCH 2132/2431] staging: ft1000: remove obsolete driver Remove support for Qleadtek Flash-OFDM modems. Telecom carrier is discontinuing service for the radio technology. See http://www.gtigroup.org/news/ind/2015-08-18/6996.html. Suggested-by: Arnd Bergmann Signed-off-by: Deepa Dinamani Acked-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- drivers/staging/Kconfig | 2 - drivers/staging/Makefile | 1 - drivers/staging/ft1000/Kconfig | 22 - drivers/staging/ft1000/Makefile | 3 - drivers/staging/ft1000/TODO | 9 - drivers/staging/ft1000/ft1000-pcmcia/Makefile | 2 - drivers/staging/ft1000/ft1000-pcmcia/boot.h | 158 -- drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 70 - .../staging/ft1000/ft1000-pcmcia/ft1000.img | Bin 305770 -> 0 bytes .../staging/ft1000/ft1000-pcmcia/ft1000_cs.c | 158 -- .../ft1000/ft1000-pcmcia/ft1000_dnld.c | 762 ------ .../staging/ft1000/ft1000-pcmcia/ft1000_hw.c | 2068 ----------------- drivers/staging/ft1000/ft1000-usb/Makefile | 3 - .../staging/ft1000/ft1000-usb/ft1000_debug.c | 789 ------- .../ft1000/ft1000-usb/ft1000_download.c | 1058 --------- drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 1586 ------------- .../staging/ft1000/ft1000-usb/ft1000_ioctl.h | 123 - .../staging/ft1000/ft1000-usb/ft1000_usb.c | 248 -- .../staging/ft1000/ft1000-usb/ft1000_usb.h | 150 -- drivers/staging/ft1000/ft1000-usb/ft3000.img | Bin 280414 -> 0 bytes drivers/staging/ft1000/ft1000.h | 366 --- 21 files changed, 7578 deletions(-) delete mode 100644 drivers/staging/ft1000/Kconfig delete mode 100644 drivers/staging/ft1000/Makefile delete mode 100644 drivers/staging/ft1000/TODO delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/Makefile delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/boot.h delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000.h delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000.img delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000_cs.c delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c delete mode 100644 drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/Makefile delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_debug.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_download.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_hw.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_usb.c delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft1000_usb.h delete mode 100644 drivers/staging/ft1000/ft1000-usb/ft3000.img delete mode 100644 drivers/staging/ft1000/ft1000.h diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index 39d950584c9f..5d3b86a33857 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -62,8 +62,6 @@ source "drivers/staging/xgifb/Kconfig" source "drivers/staging/emxx_udc/Kconfig" -source "drivers/staging/ft1000/Kconfig" - source "drivers/staging/speakup/Kconfig" source "drivers/staging/ste_rmi4/Kconfig" diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index e4f33d91872b..30918edef5e3 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -25,7 +25,6 @@ obj-$(CONFIG_IIO) += iio/ obj-$(CONFIG_FB_SM750) += sm750fb/ obj-$(CONFIG_FB_XGI) += xgifb/ obj-$(CONFIG_USB_EMXX) += emxx_udc/ -obj-$(CONFIG_FT1000) += ft1000/ obj-$(CONFIG_SPEAKUP) += speakup/ obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4) += ste_rmi4/ obj-$(CONFIG_MFD_NVEC) += nvec/ diff --git a/drivers/staging/ft1000/Kconfig b/drivers/staging/ft1000/Kconfig deleted file mode 100644 index c54b4e83d6e9..000000000000 --- a/drivers/staging/ft1000/Kconfig +++ /dev/null @@ -1,22 +0,0 @@ -config FT1000 - tristate "Drivers for Flarion ft1000 devices" - -if FT1000 - -config FT1000_USB - tristate "Driver for ft1000 usb devices." - depends on USB - depends on NET - help - Say Y if you want to have support for Qleadtek FLASH-OFDM USB Modem [LR7F04], - Qleadtek Express Card or Leadtek Multi-band modem HSDPA. - -config FT1000_PCMCIA - tristate "Driver for ft1000 pcmcia device." - depends on PCMCIA - depends on NET - help - Say Y if you want to have support for Flarion card also called - Multimedia Net Card. - -endif diff --git a/drivers/staging/ft1000/Makefile b/drivers/staging/ft1000/Makefile deleted file mode 100644 index 3e987770a142..000000000000 --- a/drivers/staging/ft1000/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -obj-$(CONFIG_FT1000_USB) += ft1000-usb/ -obj-$(CONFIG_FT1000_PCMCIA) += ft1000-pcmcia/ - diff --git a/drivers/staging/ft1000/TODO b/drivers/staging/ft1000/TODO deleted file mode 100644 index 1d346bc4f443..000000000000 --- a/drivers/staging/ft1000/TODO +++ /dev/null @@ -1,9 +0,0 @@ -TODO: - - checkpatch.pl cleanups - - coding style - - sparse fixes - - adapt to latest usb and pcmcia api changes - - change firmware loading for usb driver to proper kernel method (request_firmware) - -Please send patches to Greg Kroah-Hartman and -Cc: Marek Belisko diff --git a/drivers/staging/ft1000/ft1000-pcmcia/Makefile b/drivers/staging/ft1000/ft1000-pcmcia/Makefile deleted file mode 100644 index 715de3f00e33..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -obj-$(CONFIG_FT1000_PCMCIA) = ft1000_pcmcia.o -ft1000_pcmcia-y := ft1000_hw.o ft1000_dnld.o ft1000_cs.o diff --git a/drivers/staging/ft1000/ft1000-pcmcia/boot.h b/drivers/staging/ft1000/ft1000-pcmcia/boot.h deleted file mode 100644 index e4a698528520..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/boot.h +++ /dev/null @@ -1,158 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 2002 Flarion Technologies, All rights reserved. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - --------------------------------------------------------------------------- - - File: boot.h - - Description: boatloader - - History: - 1/11/05 Whc Ported to Linux. - - ---------------------------------------------------------------------------*/ -#ifndef _BOOTH_ -#define _BOOTH_ - -/* Official bootloader */ -static unsigned char bootimage[] = { - 0x00, 0x00, 0x01, 0x5E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0xD7, - 0x00, 0x00, 0x01, 0x5E, 0x46, 0xB3, - 0xE6, 0x02, 0x00, 0x98, 0xE6, 0x8C, - 0x00, 0x98, 0xFB, 0x92, 0xFF, 0xFF, - 0x98, 0xFB, 0x94, 0xFF, 0xFF, 0x98, - 0xFB, 0x06, 0x08, 0x00, 0x98, 0xFB, - 0x96, 0x84, 0x00, 0x98, 0xFB, 0x08, - 0x1C, 0x00, 0x98, 0xFB, 0x51, 0x25, - 0x10, 0x1C, 0x00, 0xE6, 0x51, 0x01, - 0x07, 0xFD, 0x4C, 0xFF, 0x20, 0xF5, - 0x51, 0x02, 0x20, 0x08, 0x00, 0x4C, - 0xFF, 0x20, 0x3C, 0x00, 0xC0, 0x64, - 0x98, 0xC0, 0x66, 0x98, 0xC0, 0x68, - 0x98, 0xC0, 0x6A, 0x98, 0xC0, 0x6C, - 0x98, 0x90, 0x08, 0x90, 0x09, 0x90, - 0x0A, 0x90, 0x0B, 0x90, 0x0C, 0x90, - 0x0D, 0x90, 0x0E, 0x90, 0x0F, 0x90, - 0x04, 0x90, 0x06, 0xFB, 0x51, 0x22, - 0x16, 0x08, 0x03, 0xFB, 0x51, 0x52, - 0x16, 0x08, 0x04, 0xFB, 0x51, 0x24, - 0x2B, 0x08, 0x06, 0xFB, 0x51, 0x54, - 0x2B, 0x08, 0x07, 0xFB, 0x51, 0x24, - 0x2B, 0x08, 0x09, 0xFB, 0x51, 0x54, - 0x2B, 0x08, 0x0A, 0xFB, 0x51, 0x12, - 0x16, 0x08, 0x0C, 0xFB, 0x51, 0x52, - 0x16, 0x08, 0x0D, 0x78, 0x00, 0x00, - 0x00, 0x16, 0x00, 0x00, 0xEC, 0x31, - 0xAE, 0x00, 0x00, 0x81, 0x4C, 0x0F, - 0xE6, 0x43, 0xFF, 0xEC, 0x31, 0x4E, - 0x00, 0x00, 0x91, 0xEC, 0x31, 0xAE, - 0x00, 0x00, 0x91, 0x4C, 0x0F, 0xE6, - 0x43, 0xFF, 0xEC, 0x31, 0x5E, 0x00, - 0x00, 0xA1, 0xEB, 0x31, 0x08, 0x00, - 0x00, 0xA6, 0xEB, 0x31, 0x08, 0x00, - 0x00, 0xAC, 0x3C, 0x00, 0xEB, 0x31, - 0x08, 0x00, 0x00, 0xA8, 0x76, 0xFE, - 0xFE, 0x08, 0xEB, 0x31, 0x08, 0x20, - 0x00, 0x00, 0x76, 0xFF, 0xFF, 0x18, - 0xED, 0x31, 0x08, 0x20, 0x00, 0x00, - 0x26, 0x10, 0x04, 0x10, 0xF5, 0x3C, - 0x01, 0x3C, 0x00, 0x08, 0x01, 0x12, - 0x3C, 0x11, 0x3C, 0x00, 0x08, 0x01, - 0x0B, 0x08, 0x00, 0x6D, 0xEC, 0x31, - 0xAE, 0x20, 0x00, 0x06, 0xED, 0x4D, - 0x08, 0x00, 0x00, 0x67, 0x80, 0x6F, - 0x00, 0x01, 0x0B, 0x6F, 0x00, 0x02, - 0x2E, 0x76, 0xEE, 0x01, 0x48, 0x06, - 0x01, 0x39, 0xED, 0x4D, 0x18, 0x00, - 0x02, 0xED, 0x4D, 0x08, 0x00, 0x04, - 0x14, 0x06, 0xA4, 0xED, 0x31, 0x22, - 0x00, 0x00, 0xAC, 0x76, 0xEE, 0x07, - 0x48, 0x6D, 0x22, 0x01, 0x1E, 0x08, - 0x01, 0x58, 0xEB, 0x31, 0x08, 0x00, - 0x00, 0xAC, 0x06, 0xFF, 0xBA, 0x3C, - 0x00, 0xEB, 0x31, 0x08, 0x20, 0x00, - 0x04, 0x3C, 0x30, 0xEB, 0x31, 0x08, - 0x20, 0x00, 0x02, 0x3C, 0x10, 0xEB, - 0x31, 0x08, 0x20, 0x00, 0x00, 0xED, - 0x31, 0x08, 0x20, 0x00, 0x00, 0x04, - 0x10, 0xF7, 0xED, 0x31, 0x08, 0x00, - 0x00, 0xA2, 0x91, 0x00, 0x9C, 0x3C, - 0x80, 0xEB, 0x31, 0x08, 0x20, 0x00, - 0x04, 0x3C, 0x20, 0xEB, 0x31, 0x08, - 0x20, 0x00, 0x02, 0x3C, 0x10, 0xEB, - 0x31, 0x08, 0x20, 0x00, 0x00, 0xED, - 0x31, 0x08, 0x20, 0x00, 0x00, 0x04, - 0x10, 0xF7, 0xED, 0x31, 0x08, 0x20, - 0x00, 0x04, 0x42, 0x10, 0x90, 0x08, - 0xEC, 0x31, 0xAE, 0x20, 0x00, 0x06, - 0xA4, 0x41, 0x08, 0x00, 0xB6, 0xED, - 0x41, 0x28, 0x7D, 0xFF, 0xFF, 0x22, - 0xB3, 0x40, 0x98, 0x2A, 0x32, 0xEB, - 0x41, 0x28, 0xB4, 0x43, 0xFC, 0x05, - 0xFF, 0xE6, 0xA0, 0x31, 0x20, 0x00, - 0x06, 0xEB, 0x31, 0x08, 0x20, 0x00, - 0x04, 0x3C, 0x20, 0xEB, 0x31, 0x08, - 0x20, 0x00, 0x02, 0x3C, 0x10, 0xEB, - 0x31, 0x08, 0x20, 0x00, 0x00, 0xED, - 0x31, 0x08, 0x20, 0x00, 0x00, 0x04, - 0x10, 0xF7, 0xED, 0x31, 0x08, 0x20, - 0x00, 0x04, 0x42, 0x10, 0x90, 0x08, - 0xEC, 0x31, 0xAE, 0x20, 0x00, 0x06, - 0xA4, 0x41, 0x08, 0x00, 0x68, 0xED, - 0x41, 0x28, 0x7D, 0xFF, 0xFF, 0x22, - 0xB3, 0x40, 0x98, 0x2A, 0x32, 0xEB, - 0x41, 0x28, 0xB4, 0x43, 0xFC, 0x05, - 0xFF, 0xE6, 0x48, 0x04, 0xEB, 0x31, - 0x08, 0x20, 0x00, 0x04, 0xEB, 0x31, - 0x18, 0x20, 0x00, 0x02, 0x3C, 0x11, - 0xEB, 0x31, 0x18, 0x20, 0x00, 0x00, - 0xED, 0x31, 0x08, 0x20, 0x00, 0x00, - 0x04, 0x10, 0xF7, 0xED, 0x31, 0x08, - 0x20, 0x00, 0x02, 0x66, 0x00, 0x6F, - 0x00, 0x01, 0x16, 0x76, 0xEE, 0x06, - 0x48, 0x4A, 0x1E, 0x48, 0x04, 0xED, - 0x31, 0x08, 0x20, 0x00, 0x04, 0xEB, - 0x31, 0x08, 0x00, 0x00, 0xA4, 0x48, - 0x04, 0xED, 0x31, 0x08, 0x20, 0x00, - 0x04, 0xEB, 0x31, 0x08, 0x00, 0x00, - 0xA2, 0x48, 0x04, 0x20, 0x20, 0x4A, - 0x7C, 0x46, 0x82, 0x50, 0x05, 0x50, - 0x15, 0xB5, 0x1E, 0x98, 0xED, 0x31, - 0x08, 0x00, 0x00, 0xA8, 0x10, 0x47, - 0x3B, 0x2C, 0x01, 0xDB, 0x40, 0x11, - 0x98, 0xC1, 0x1E, 0x98, 0x10, 0x07, - 0x30, 0xF9, 0x40, 0x07, 0x18, 0x98, - 0x2A, 0x10, 0xEB, 0x31, 0x08, 0x00, - 0x00, 0xA8, 0xA4, 0x1E, 0x98, 0xBB, - 0x1E, 0x98, 0x50, 0x14, 0x50, 0x04, - 0x46, 0x83, 0x48, 0x04, 0x02, 0x01, - 0x00, 0x50, 0x05, 0x50, 0x15, 0x10, - 0x87, 0x3F, 0x90, 0x2B, 0x18, 0x01, - 0x00, 0xC0, 0x31, 0x00, 0x00, 0xAE, - 0xDF, 0x41, 0x00, 0x08, 0x00, 0x1A, - 0x42, 0x11, 0x67, 0x01, 0xDF, 0x41, - 0x02, 0x08, 0x00, 0x10, 0x42, 0x11, - 0x62, 0x01, 0xB4, 0x43, 0x4A, 0x68, - 0x50, 0x14, 0x50, 0x04, 0x24, 0x10, - 0x48, 0x04, 0xF2, 0x31, 0x00, 0x01, - 0x00, 0x00, 0xAE, 0xF6, 0x31, 0x00, - 0x01, 0x00, 0x00, 0xAE, 0x62, 0xE4, - 0xE5, 0x61, 0x04, 0x48, 0x04, 0xE5, - 0x63, 0x05, 0x48, 0x04, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00 -}; - -#endif diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h deleted file mode 100644 index e1861cf5de73..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h +++ /dev/null @@ -1,70 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 2002 Flarion Technologies, All rights reserved. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - --------------------------------------------------------------------------- - Description: Common structures and defines - ---------------------------------------------------------------------------*/ -#ifndef _FT1000H_ -#define _FT1000H_ - -#include "../ft1000.h" - -#define FT1000_DRV_VER 0x01010300 - -#define FT1000_DPRAM_BASE 0x0000 /* Dual Port RAM starting offset */ - -/* - * Maximum number of occurrence of pseudo header errors before resetting PC - * Card. - */ -#define MAX_PH_ERR 300 - -#define SUCCESS 0x00 -#define FAILURE 0x01 - -struct ft1000_pcmcia { - int PktIntfErr; - u16 packetseqnum; - void *link; -}; - -struct pcmcia_device; -struct net_device; -struct net_device *init_ft1000_card(struct pcmcia_device *link, - void *ft1000_reset); -void stop_ft1000_card(struct net_device *dev); -int card_download(struct net_device *dev, const u8 *pFileStart, - size_t FileLength); - -u16 ft1000_read_dpram(struct net_device *dev, int offset); -void card_bootload(struct net_device *dev); -u16 ft1000_read_dpram_mag_16(struct net_device *dev, int offset, int Index); -u32 ft1000_read_dpram_mag_32(struct net_device *dev, int offset); -void ft1000_write_dpram_mag_32(struct net_device *dev, int offset, u32 value); - -/* Read the value of a given ASIC register. */ -static inline u16 ft1000_read_reg(struct net_device *dev, u16 offset) -{ - return inw(dev->base_addr + offset); -} - -/* Set the value of a given ASIC register. */ -static inline void ft1000_write_reg(struct net_device *dev, u16 offset, - u16 value) -{ - outw(value, dev->base_addr + offset); -} - -#endif diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.img b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.img deleted file mode 100644 index aad3c80d07c83c6564918cba5b74c3048f1bba24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305770 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�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 z%0D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. Portions created by David A. Hinds. - - This file was modified to support the Flarion Flash OFDM NIC Device - by Wai Chan (w.chan@flarion.com). - - Port for kernel 2.6 created by Patrik Ostrihon (patrik.ostrihon@pwc.sk) - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - -----------------------------------------------------------------------------*/ - -#include -#include -#include -#include -#include -#include - -/*====================================================================*/ - -MODULE_AUTHOR("Wai Chan"); -MODULE_DESCRIPTION("FT1000 PCMCIA driver"); -MODULE_LICENSE("GPL"); - -/*====================================================================*/ - -static int ft1000_config(struct pcmcia_device *link); -static void ft1000_detach(struct pcmcia_device *link); -static int ft1000_attach(struct pcmcia_device *link); - -#include "ft1000.h" - -/*====================================================================*/ - -static void ft1000_reset(struct pcmcia_device *link) -{ - pcmcia_reset_card(link->socket); -} - -static int ft1000_attach(struct pcmcia_device *link) -{ - link->priv = NULL; - link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO; - - return ft1000_config(link); -} - -static void ft1000_detach(struct pcmcia_device *link) -{ - struct net_device *dev = link->priv; - - if (dev) - stop_ft1000_card(dev); - - pcmcia_disable_device(link); - free_netdev(dev); -} - -static int ft1000_confcheck(struct pcmcia_device *link, void *priv_data) -{ - return pcmcia_request_io(link); -} - -/*====================================================================== - - ft1000_config() is scheduled to run after a CARD_INSERTION event - is received, to configure the PCMCIA socket, and to make the - device available to the system. - - ======================================================================*/ - -static int ft1000_config(struct pcmcia_device *link) -{ - int ret; - - dev_dbg(&link->dev, "ft1000_cs: ft1000_config(0x%p)\n", link); - - /* setup IO window */ - ret = pcmcia_loop_config(link, ft1000_confcheck, NULL); - if (ret) { - dev_err(&link->dev, "Could not configure pcmcia\n"); - return -ENODEV; - } - - /* configure device */ - ret = pcmcia_enable_device(link); - if (ret) { - dev_err(&link->dev, "Could not enable pcmcia\n"); - goto failed; - } - - link->priv = init_ft1000_card(link, &ft1000_reset); - if (!link->priv) { - dev_err(&link->dev, "Could not register as network device\n"); - goto failed; - } - - /* Finally, report what we've done */ - - return 0; -failed: - pcmcia_disable_device(link); - return -ENODEV; -} - -static int ft1000_suspend(struct pcmcia_device *link) -{ - struct net_device *dev = link->priv; - - if (link->open) - netif_device_detach(dev); - return 0; -} - -static int ft1000_resume(struct pcmcia_device *link) -{ - return 0; -} - -/*====================================================================*/ - -static const struct pcmcia_device_id ft1000_ids[] = { - PCMCIA_DEVICE_MANF_CARD(0x02cc, 0x0100), - PCMCIA_DEVICE_MANF_CARD(0x02cc, 0x1000), - PCMCIA_DEVICE_MANF_CARD(0x02cc, 0x1300), - PCMCIA_DEVICE_NULL, -}; - -MODULE_DEVICE_TABLE(pcmcia, ft1000_ids); - -static struct pcmcia_driver ft1000_cs_driver = { - .owner = THIS_MODULE, - .name = "ft1000_cs", - .probe = ft1000_attach, - .remove = ft1000_detach, - .id_table = ft1000_ids, - .suspend = ft1000_suspend, - .resume = ft1000_resume, -}; - -module_pcmcia_driver(ft1000_cs_driver); diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c deleted file mode 100644 index 612ac0bd3756..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c +++ /dev/null @@ -1,762 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 2002 Flarion Technologies, All rights reserved. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - -------------------------------------------------------------------------- - - Description: This module will handshake with the DSP bootloader to - download the DSP runtime image. - - ---------------------------------------------------------------------------*/ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#define __KERNEL_SYSCALLS__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ft1000.h" -#include "boot.h" - -#define MAX_DSP_WAIT_LOOPS 100 -#define DSP_WAIT_SLEEP_TIME 1 /* 1 millisecond */ - -#define MAX_LENGTH 0x7f0 - -#define DWNLD_MAG_HANDSHAKE_LOC 0x00 -#define DWNLD_MAG_TYPE_LOC 0x01 -#define DWNLD_MAG_SIZE_LOC 0x02 -#define DWNLD_MAG_PS_HDR_LOC 0x03 - -#define DWNLD_HANDSHAKE_LOC 0x02 -#define DWNLD_TYPE_LOC 0x04 -#define DWNLD_SIZE_MSW_LOC 0x06 -#define DWNLD_SIZE_LSW_LOC 0x08 -#define DWNLD_PS_HDR_LOC 0x0A - -#define HANDSHAKE_TIMEOUT_VALUE 0xF1F1 -#define HANDSHAKE_RESET_VALUE 0xFEFE /* When DSP requests startover */ -#define HANDSHAKE_DSP_BL_READY 0xFEFE /* At start DSP writes this when bootloader ready */ -#define HANDSHAKE_DRIVER_READY 0xFFFF /* Driver writes after receiving 0xFEFE */ -#define HANDSHAKE_SEND_DATA 0x0000 /* DSP writes this when ready for more data */ - -#define HANDSHAKE_REQUEST 0x0001 /* Request from DSP */ -#define HANDSHAKE_RESPONSE 0x0000 /* Satisfied DSP request */ - -#define REQUEST_CODE_LENGTH 0x0000 -#define REQUEST_RUN_ADDRESS 0x0001 -#define REQUEST_CODE_SEGMENT 0x0002 /* In WORD count */ -#define REQUEST_DONE_BL 0x0003 -#define REQUEST_DONE_CL 0x0004 -#define REQUEST_VERSION_INFO 0x0005 -#define REQUEST_CODE_BY_VERSION 0x0006 -#define REQUEST_MAILBOX_DATA 0x0007 -#define REQUEST_FILE_CHECKSUM 0x0008 - -#define STATE_START_DWNLD 0x01 -#define STATE_BOOT_DWNLD 0x02 -#define STATE_CODE_DWNLD 0x03 -#define STATE_DONE_DWNLD 0x04 -#define STATE_SECTION_PROV 0x05 -#define STATE_DONE_PROV 0x06 -#define STATE_DONE_FILE 0x07 - -struct dsp_file_hdr { - u32 version_id; /* Version ID of this image format. */ - u32 package_id; /* Package ID of code release. */ - u32 build_date; /* Date/time stamp when file was built. */ - u32 commands_offset; /* Offset to attached commands in Pseudo Hdr format. */ - u32 loader_offset; /* Offset to bootloader code. */ - u32 loader_code_address; /* Start address of bootloader. */ - u32 loader_code_end; /* Where bootloader code ends. */ - u32 loader_code_size; - u32 version_data_offset; /* Offset were scrambled version data begins. */ - u32 version_data_size; /* Size, in words, of scrambled version data. */ - u32 nDspImages; /* Number of DSP images in file. */ -} __packed; - -struct dsp_image_info { - u32 coff_date; /* Date/time when DSP Coff image was built. */ - u32 begin_offset; /* Offset in file where image begins. */ - u32 end_offset; /* Offset in file where image begins. */ - u32 run_address; /* On chip Start address of DSP code. */ - u32 image_size; /* Size of image. */ - u32 version; /* Embedded version # of DSP code. */ - unsigned short checksum; /* Dsp File checksum */ - unsigned short pad1; -} __packed; - -void card_bootload(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - u32 *pdata; - u32 size; - u32 i; - u32 templong; - - netdev_dbg(dev, "card_bootload is called\n"); - - pdata = (u32 *)bootimage; - size = sizeof(bootimage); - - /* check for odd word */ - if (size & 0x0003) - size += 4; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - - /* need to set i/o base address initially and hardware will autoincrement */ - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, FT1000_DPRAM_BASE); - /* write bytes */ - for (i = 0; i < (size >> 2); i++) { - templong = *pdata++; - outl(templong, dev->base_addr + FT1000_REG_MAG_DPDATA); - } - - spin_unlock_irqrestore(&info->dpram_lock, flags); -} - -static u16 get_handshake(struct net_device *dev, u16 expected_value) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 handshake; - u32 tempx; - int loopcnt; - - loopcnt = 0; - while (loopcnt < MAX_DSP_WAIT_LOOPS) { - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_HANDSHAKE_LOC); - - handshake = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - } else { - tempx = - ntohl(ft1000_read_dpram_mag_32 - (dev, DWNLD_MAG_HANDSHAKE_LOC)); - handshake = (u16)tempx; - } - - if ((handshake == expected_value) - || (handshake == HANDSHAKE_RESET_VALUE)) { - return handshake; - } - loopcnt++; - mdelay(DSP_WAIT_SLEEP_TIME); - - } - - return HANDSHAKE_TIMEOUT_VALUE; - -} - -static void put_handshake(struct net_device *dev, u16 handshake_value) -{ - struct ft1000_info *info = netdev_priv(dev); - u32 tempx; - - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_HANDSHAKE_LOC); - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, handshake_value); /* Handshake */ - } else { - tempx = (u32)handshake_value; - tempx = ntohl(tempx); - ft1000_write_dpram_mag_32(dev, DWNLD_MAG_HANDSHAKE_LOC, tempx); /* Handshake */ - } -} - -static u16 get_request_type(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 request_type; - u32 tempx; - - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, DWNLD_TYPE_LOC); - request_type = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - } else { - tempx = ft1000_read_dpram_mag_32(dev, DWNLD_MAG_TYPE_LOC); - tempx = ntohl(tempx); - request_type = (u16)tempx; - } - - return request_type; - -} - -static long get_request_value(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - long value; - u16 w_val; - - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_SIZE_MSW_LOC); - - w_val = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - - value = (long)(w_val << 16); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_SIZE_LSW_LOC); - - w_val = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - - value = (long)(value | w_val); - } else { - value = ft1000_read_dpram_mag_32(dev, DWNLD_MAG_SIZE_LOC); - value = ntohl(value); - } - - return value; - -} - -static void put_request_value(struct net_device *dev, long lvalue) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 size; - u32 tempx; - - if (info->AsicID == ELECTRABUZZ_ID) { - size = (u16) (lvalue >> 16); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_SIZE_MSW_LOC); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, size); - - size = (u16) (lvalue); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - DWNLD_SIZE_LSW_LOC); - - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, size); - } else { - tempx = ntohl(lvalue); - ft1000_write_dpram_mag_32(dev, DWNLD_MAG_SIZE_LOC, tempx); /* Handshake */ - } - -} - -static u16 hdr_checksum(struct pseudo_hdr *pHdr) -{ - u16 *usPtr = (u16 *)pHdr; - u16 chksum; - - chksum = (((((usPtr[0] ^ usPtr[1]) ^ usPtr[2]) ^ usPtr[3]) ^ - usPtr[4]) ^ usPtr[5]) ^ usPtr[6]; - - return chksum; -} - -int card_download(struct net_device *dev, const u8 *pFileStart, - size_t FileLength) -{ - struct ft1000_info *info = netdev_priv(dev); - int Status = SUCCESS; - u32 uiState; - u16 handshake; - struct pseudo_hdr *pHdr; - u16 usHdrLength; - long word_length; - u16 request; - u16 temp; - struct prov_record *pprov_record; - u8 *pbuffer; - struct dsp_file_hdr *pFileHdr5; - struct dsp_image_info *pDspImageInfoV6 = NULL; - long requested_version; - bool bGoodVersion = false; - struct drv_msg *pMailBoxData; - u16 *pUsData = NULL; - u16 *pUsFile = NULL; - u8 *pUcFile = NULL; - u8 *pBootEnd = NULL; - u8 *pCodeEnd = NULL; - int imageN; - long file_version; - long loader_code_address = 0; - long loader_code_size = 0; - long run_address = 0; - long run_size = 0; - unsigned long flags; - unsigned long templong; - unsigned long image_chksum = 0; - - file_version = *(long *)pFileStart; - if (file_version != 6) { - pr_err("unsupported firmware version %ld\n", file_version); - Status = FAILURE; - } - - uiState = STATE_START_DWNLD; - - pFileHdr5 = (struct dsp_file_hdr *)pFileStart; - - pUsFile = (u16 *) ((long)pFileStart + pFileHdr5->loader_offset); - pUcFile = (u8 *) ((long)pFileStart + pFileHdr5->loader_offset); - pBootEnd = (u8 *) ((long)pFileStart + pFileHdr5->loader_code_end); - loader_code_address = pFileHdr5->loader_code_address; - loader_code_size = pFileHdr5->loader_code_size; - bGoodVersion = false; - - while ((Status == SUCCESS) && (uiState != STATE_DONE_FILE)) { - - switch (uiState) { - case STATE_START_DWNLD: - - handshake = get_handshake(dev, HANDSHAKE_DSP_BL_READY); - - if (handshake == HANDSHAKE_DSP_BL_READY) - put_handshake(dev, HANDSHAKE_DRIVER_READY); - else - Status = FAILURE; - - uiState = STATE_BOOT_DWNLD; - - break; - - case STATE_BOOT_DWNLD: - handshake = get_handshake(dev, HANDSHAKE_REQUEST); - if (handshake == HANDSHAKE_REQUEST) { - /* - * Get type associated with the request. - */ - request = get_request_type(dev); - switch (request) { - case REQUEST_RUN_ADDRESS: - put_request_value(dev, - loader_code_address); - break; - case REQUEST_CODE_LENGTH: - put_request_value(dev, - loader_code_size); - break; - case REQUEST_DONE_BL: - /* Reposition ptrs to beginning of code section */ - pUsFile = (u16 *) ((long)pBootEnd); - pUcFile = (u8 *) ((long)pBootEnd); - uiState = STATE_CODE_DWNLD; - break; - case REQUEST_CODE_SEGMENT: - word_length = get_request_value(dev); - if (word_length > MAX_LENGTH) { - Status = FAILURE; - break; - } - if ((word_length * 2 + (long)pUcFile) > - (long)pBootEnd) { - /* - * Error, beyond boot code range. - */ - Status = FAILURE; - break; - } - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, - flags); - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, - dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) - word_length++; - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = *pUsFile++; - templong |= - (*pUsFile++ << 16); - pUcFile += 4; - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } - spin_unlock_irqrestore(&info-> - dpram_lock, - flags); - break; - default: - Status = FAILURE; - break; - } - put_handshake(dev, HANDSHAKE_RESPONSE); - } else { - Status = FAILURE; - } - - break; - - case STATE_CODE_DWNLD: - handshake = get_handshake(dev, HANDSHAKE_REQUEST); - if (handshake == HANDSHAKE_REQUEST) { - /* - * Get type associated with the request. - */ - request = get_request_type(dev); - switch (request) { - case REQUEST_FILE_CHECKSUM: - netdev_dbg(dev, - "ft1000_dnld: REQUEST_FOR_CHECKSUM\n"); - put_request_value(dev, image_chksum); - break; - case REQUEST_RUN_ADDRESS: - if (bGoodVersion) { - put_request_value(dev, - run_address); - } else { - Status = FAILURE; - break; - } - break; - case REQUEST_CODE_LENGTH: - if (bGoodVersion) { - put_request_value(dev, - run_size); - } else { - Status = FAILURE; - break; - } - break; - case REQUEST_DONE_CL: - /* Reposition ptrs to beginning of provisioning section */ - pUsFile = (u16 *) ((long)pFileStart + pFileHdr5->commands_offset); - pUcFile = (u8 *) ((long)pFileStart + pFileHdr5->commands_offset); - uiState = STATE_DONE_DWNLD; - break; - case REQUEST_CODE_SEGMENT: - if (!bGoodVersion) { - Status = FAILURE; - break; - } - word_length = get_request_value(dev); - if (word_length > MAX_LENGTH) { - Status = FAILURE; - break; - } - if ((word_length * 2 + (long)pUcFile) > - (long)pCodeEnd) { - /* - * Error, beyond boot code range. - */ - Status = FAILURE; - break; - } - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, - dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) - word_length++; - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = *pUsFile++; - templong |= - (*pUsFile++ << 16); - pUcFile += 4; - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } - break; - - case REQUEST_MAILBOX_DATA: - /* Convert length from byte count to word count. Make sure we round up. */ - word_length = - (long)(info->DSPInfoBlklen + 1) / 2; - put_request_value(dev, word_length); - pMailBoxData = - (struct drv_msg *)&info->DSPInfoBlk[0]; - pUsData = - (u16 *)&pMailBoxData->data[0]; - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, - flags); - if (file_version == 5) { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - ft1000_write_reg(dev, - FT1000_REG_DPRAM_ADDR, - DWNLD_PS_HDR_LOC); - - for (; word_length > 0; word_length--) { /* In words */ - temp = ntohs(*pUsData); - ft1000_write_reg(dev, - FT1000_REG_DPRAM_DATA, - temp); - pUsData++; - } - } else { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, - dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) - word_length++; - - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = *pUsData++; - templong |= - (*pUsData++ << 16); - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } - } - spin_unlock_irqrestore(&info-> - dpram_lock, - flags); - break; - - case REQUEST_VERSION_INFO: - word_length = - pFileHdr5->version_data_size; - put_request_value(dev, word_length); - pUsFile = - (u16 *) ((long)pFileStart + - pFileHdr5-> - version_data_offset); - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, - flags); - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, - dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) - word_length++; - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = - ntohs(*pUsFile++); - temp = - ntohs(*pUsFile++); - templong |= - (temp << 16); - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } - spin_unlock_irqrestore(&info-> - dpram_lock, - flags); - break; - - case REQUEST_CODE_BY_VERSION: - bGoodVersion = false; - requested_version = - get_request_value(dev); - pDspImageInfoV6 = - (struct dsp_image_info *) ((long) - pFileStart - + - sizeof - (struct dsp_file_hdr)); - for (imageN = 0; - imageN < - pFileHdr5->nDspImages; - imageN++) { - temp = (u16) - (pDspImageInfoV6-> - version); - templong = temp; - temp = (u16) - (pDspImageInfoV6-> - version >> 16); - templong |= - (temp << 16); - if (templong == - requested_version) { - bGoodVersion = - true; - pUsFile = - (u16 - *) ((long) - pFileStart - + - pDspImageInfoV6-> - begin_offset); - pUcFile = - (u8 - *) ((long) - pFileStart - + - pDspImageInfoV6-> - begin_offset); - pCodeEnd = - (u8 - *) ((long) - pFileStart - + - pDspImageInfoV6-> - end_offset); - run_address = - pDspImageInfoV6-> - run_address; - run_size = - pDspImageInfoV6-> - image_size; - image_chksum = - (u32) - pDspImageInfoV6-> - checksum; - netdev_dbg(dev, - "ft1000_dnld: image_chksum = 0x%8x\n", - (unsigned - int) - image_chksum); - break; - } - pDspImageInfoV6++; - } - if (!bGoodVersion) { - /* - * Error, beyond boot code range. - */ - Status = FAILURE; - break; - } - break; - - default: - Status = FAILURE; - break; - } - put_handshake(dev, HANDSHAKE_RESPONSE); - } else { - Status = FAILURE; - } - - break; - - case STATE_DONE_DWNLD: - if (((unsigned long)(pUcFile) - (unsigned long) pFileStart) >= - (unsigned long)FileLength) { - uiState = STATE_DONE_FILE; - break; - } - - pHdr = (struct pseudo_hdr *)pUsFile; - - if (pHdr->portdest == 0x80 /* DspOAM */ - && (pHdr->portsrc == 0x00 /* Driver */ - || pHdr->portsrc == 0x10 /* FMM */)) { - uiState = STATE_SECTION_PROV; - } else { - netdev_dbg(dev, - "Download error: Bad Port IDs in Pseudo Record\n"); - netdev_dbg(dev, "\t Port Source = 0x%2.2x\n", - pHdr->portsrc); - netdev_dbg(dev, "\t Port Destination = 0x%2.2x\n", - pHdr->portdest); - Status = FAILURE; - } - - break; - - case STATE_SECTION_PROV: - - pHdr = (struct pseudo_hdr *)pUcFile; - - if (pHdr->checksum == hdr_checksum(pHdr)) { - if (pHdr->portdest != 0x80 /* Dsp OAM */) { - uiState = STATE_DONE_PROV; - break; - } - usHdrLength = ntohs(pHdr->length); /* Byte length for PROV records */ - - /* Get buffer for provisioning data */ - pbuffer = - kmalloc(usHdrLength + sizeof(struct pseudo_hdr), - GFP_ATOMIC); - if (pbuffer) { - memcpy(pbuffer, pUcFile, - (u32) (usHdrLength + - sizeof(struct pseudo_hdr))); - /* link provisioning data */ - pprov_record = - kmalloc(sizeof(struct prov_record), - GFP_ATOMIC); - if (pprov_record) { - pprov_record->pprov_data = - pbuffer; - list_add_tail(&pprov_record-> - list, - &info->prov_list); - /* Move to next entry if available */ - pUcFile = - (u8 *)((unsigned long) pUcFile + - (unsigned long) ((usHdrLength + 1) & 0xFFFFFFFE) + sizeof(struct pseudo_hdr)); - if ((unsigned long) (pUcFile) - - (unsigned long) (pFileStart) >= - (unsigned long)FileLength) { - uiState = - STATE_DONE_FILE; - } - } else { - kfree(pbuffer); - Status = FAILURE; - } - } else { - Status = FAILURE; - } - } else { - /* Checksum did not compute */ - Status = FAILURE; - } - - break; - - case STATE_DONE_PROV: - uiState = STATE_DONE_FILE; - break; - - default: - Status = FAILURE; - break; - } /* End Switch */ - - } /* End while */ - - return Status; - -} diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c deleted file mode 100644 index eecfa377054d..000000000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c +++ /dev/null @@ -1,2068 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 2002 Flarion Technologies, All rights reserved. - Copyright (C) 2006 Patrik Ostrihon, All rights reserved. - Copyright (C) 2006 ProWeb Consulting, a.s, All rights reserved. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. - -------------------------------------------------------------------------*/ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include - -#include -#include "ft1000.h" - -static const struct firmware *fw_entry; - -static void ft1000_hbchk(u_long data); -static struct timer_list poll_timer = { - .function = ft1000_hbchk -}; - -static u16 cmdbuffer[1024]; -static u8 tempbuffer[1600]; -static u8 ft1000_card_present; -static u8 flarion_ft1000_cnt; - -static irqreturn_t ft1000_interrupt(int irq, void *dev_id); -static void ft1000_enable_interrupts(struct net_device *dev); -static void ft1000_disable_interrupts(struct net_device *dev); - -/* new kernel */ -MODULE_AUTHOR(""); -MODULE_DESCRIPTION("Support for Flarion Flash OFDM NIC Device. Support for PCMCIA when used with ft1000_cs."); -MODULE_LICENSE("GPL"); -MODULE_SUPPORTED_DEVICE("FT1000"); - -#define MAX_RCV_LOOP 100 - -/*--------------------------------------------------------------------------- - - Function: ft1000_read_fifo_len - Description: This function will read the ASIC Uplink FIFO status register - which will return the number of bytes remaining in the Uplink FIFO. - Sixteen bytes are subtracted to make sure that the ASIC does not - reach its threshold. - Input: - dev - network device structure - Output: - value - number of bytes available in the ASIC Uplink FIFO. - - -------------------------------------------------------------------------*/ -static inline u16 ft1000_read_fifo_len(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - - if (info->AsicID == ELECTRABUZZ_ID) - return (ft1000_read_reg(dev, FT1000_REG_UFIFO_STAT) - 16); - else - return (ft1000_read_reg(dev, FT1000_REG_MAG_UFSR) - 16); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_read_dpram - Description: This function will read the specific area of dpram - (Electrabuzz ASIC only) - Input: - dev - device structure - offset - index of dpram - Output: - value - value of dpram - - -------------------------------------------------------------------------*/ -u16 ft1000_read_dpram(struct net_device *dev, int offset) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - u16 data; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - data = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - spin_unlock_irqrestore(&info->dpram_lock, flags); - - return data; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_write_dpram - Description: This function will write to a specific area of dpram - (Electrabuzz ASIC only) - Input: - dev - device structure - offset - index of dpram - value - value to write - Output: - none. - - -------------------------------------------------------------------------*/ -static inline void ft1000_write_dpram(struct net_device *dev, - int offset, u16 value) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, value); - spin_unlock_irqrestore(&info->dpram_lock, flags); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_read_dpram_mag_16 - Description: This function will read the specific area of dpram - (Magnemite ASIC only) - Input: - dev - device structure - offset - index of dpram - Output: - value - value of dpram - - -------------------------------------------------------------------------*/ -u16 ft1000_read_dpram_mag_16(struct net_device *dev, int offset, int Index) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - u16 data; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - /* check if we want to read upper or lower 32-bit word */ - if (Index) - data = ft1000_read_reg(dev, FT1000_REG_MAG_DPDATAL); - else - data = ft1000_read_reg(dev, FT1000_REG_MAG_DPDATAH); - - spin_unlock_irqrestore(&info->dpram_lock, flags); - - return data; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_write_dpram_mag_16 - Description: This function will write to a specific area of dpram - (Magnemite ASIC only) - Input: - dev - device structure - offset - index of dpram - value - value to write - Output: - none. - - -------------------------------------------------------------------------*/ -static inline void ft1000_write_dpram_mag_16(struct net_device *dev, - int offset, u16 value, int Index) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - if (Index) - ft1000_write_reg(dev, FT1000_REG_MAG_DPDATAL, value); - else - ft1000_write_reg(dev, FT1000_REG_MAG_DPDATAH, value); - - spin_unlock_irqrestore(&info->dpram_lock, flags); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_read_dpram_mag_32 - Description: This function will read the specific area of dpram - (Magnemite ASIC only) - Input: - dev - device structure - offset - index of dpram - Output: - value - value of dpram - - -------------------------------------------------------------------------*/ -u32 ft1000_read_dpram_mag_32(struct net_device *dev, int offset) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - u32 data; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - data = inl(dev->base_addr + FT1000_REG_MAG_DPDATAL); - spin_unlock_irqrestore(&info->dpram_lock, flags); - - return data; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_write_dpram_mag_32 - Description: This function will write to a specific area of dpram - (Magnemite ASIC only) - Input: - dev - device structure - offset - index of dpram - value - value to write - Output: - none. - - -------------------------------------------------------------------------*/ -void ft1000_write_dpram_mag_32(struct net_device *dev, int offset, u32 value) -{ - struct ft1000_info *info = netdev_priv(dev); - unsigned long flags; - - /* Provide mutual exclusive access while reading ASIC registers. */ - spin_lock_irqsave(&info->dpram_lock, flags); - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, offset); - outl(value, dev->base_addr + FT1000_REG_MAG_DPDATAL); - spin_unlock_irqrestore(&info->dpram_lock, flags); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_enable_interrupts - Description: This function will enable interrupts base on the current - interrupt mask. - Input: - dev - device structure - Output: - None. - - -------------------------------------------------------------------------*/ -static void ft1000_enable_interrupts(struct net_device *dev) -{ - u16 tempword; - - ft1000_write_reg(dev, FT1000_REG_SUP_IMASK, ISR_DEFAULT_MASK); - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_IMASK); - pr_debug("current interrupt enable mask = 0x%x\n", tempword); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_disable_interrupts - Description: This function will disable all interrupts. - Input: - dev - device structure - Output: - None. - - -------------------------------------------------------------------------*/ -static void ft1000_disable_interrupts(struct net_device *dev) -{ - u16 tempword; - - ft1000_write_reg(dev, FT1000_REG_SUP_IMASK, ISR_MASK_ALL); - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_IMASK); - pr_debug("current interrupt enable mask = 0x%x\n", tempword); -} - -/*--------------------------------------------------------------------------- - Function: ft1000_read_dsp_timer - Description: This function reads the DSP timer and stores its value in the - DSP_TIME field of the ft1000_info struct passed as argument - Input: - dev - device structure - info - ft1000_info structure - Output: - None. - - -------------------------------------------------------------------------*/ -static void ft1000_read_dsp_timer(struct net_device *dev, - struct ft1000_info *info) -{ - if (info->AsicID == ELECTRABUZZ_ID) { - info->DSP_TIME[0] = ft1000_read_dpram(dev, FT1000_DSP_TIMER0); - info->DSP_TIME[1] = ft1000_read_dpram(dev, FT1000_DSP_TIMER1); - info->DSP_TIME[2] = ft1000_read_dpram(dev, FT1000_DSP_TIMER2); - info->DSP_TIME[3] = ft1000_read_dpram(dev, FT1000_DSP_TIMER3); - } else { - info->DSP_TIME[0] = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_DSP_TIMER0, - FT1000_MAG_DSP_TIMER0_INDX); - info->DSP_TIME[1] = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_DSP_TIMER1, - FT1000_MAG_DSP_TIMER1_INDX); - info->DSP_TIME[2] = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_DSP_TIMER2, - FT1000_MAG_DSP_TIMER2_INDX); - info->DSP_TIME[3] = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_DSP_TIMER3, - FT1000_MAG_DSP_TIMER3_INDX); - } -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_reset_asic - Description: This function will call the Card Service function to reset the - ASIC. - Input: - dev - device structure - Output: - none - - -------------------------------------------------------------------------*/ -static void ft1000_reset_asic(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_pcmcia *pcmcia = info->priv; - u16 tempword; - - (*info->ft1000_reset) (pcmcia->link); - - /* - * Let's use the register provided by the Magnemite ASIC to reset the - * ASIC and DSP. - */ - if (info->AsicID == MAGNEMITE_ID) { - ft1000_write_reg(dev, FT1000_REG_RESET, - DSP_RESET_BIT | ASIC_RESET_BIT); - } - mdelay(1); - if (info->AsicID == ELECTRABUZZ_ID) { - /* set watermark to -1 in order to not generate an interrupt */ - ft1000_write_reg(dev, FT1000_REG_WATERMARK, 0xffff); - } else { - /* set watermark to -1 in order to not generate an interrupt */ - ft1000_write_reg(dev, FT1000_REG_MAG_WATERMARK, 0xffff); - } - /* clear interrupts */ - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); - ft1000_write_reg(dev, FT1000_REG_SUP_ISR, tempword); - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); - -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_reset_card - Description: This function will reset the card - Input: - dev - device structure - Output: - status - false (card reset fail) - true (card reset successful) - - -------------------------------------------------------------------------*/ -static int ft1000_reset_card(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 tempword; - int i; - unsigned long flags; - struct prov_record *ptr; - struct prov_record *tmp; - - info->CardReady = 0; - info->ProgConStat = 0; - info->squeseqnum = 0; - ft1000_disable_interrupts(dev); - - /* del_timer(&poll_timer); */ - - /* Make sure we free any memory reserve for provisioning */ - list_for_each_entry_safe(ptr, tmp, &info->prov_list, list) { - pr_debug("deleting provisioning record\n"); - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - - if (info->AsicID == ELECTRABUZZ_ID) { - pr_debug("resetting DSP\n"); - ft1000_write_reg(dev, FT1000_REG_RESET, DSP_RESET_BIT); - } else { - pr_debug("resetting ASIC and DSP\n"); - ft1000_write_reg(dev, FT1000_REG_RESET, - DSP_RESET_BIT | ASIC_RESET_BIT); - } - - /* Copy DSP session record into info block if this is not a coldstart */ - if (ft1000_card_present == 1) { - spin_lock_irqsave(&info->dpram_lock, flags); - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_RX_BASE); - for (i = 0; i < MAX_DSP_SESS_REC; i++) { - info->DSPSess.Rec[i] = - ft1000_read_reg(dev, - FT1000_REG_DPRAM_DATA); - } - } else { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_RX_BASE); - for (i = 0; i < MAX_DSP_SESS_REC / 2; i++) { - info->DSPSess.MagRec[i] = - inl(dev->base_addr - + FT1000_REG_MAG_DPDATA); - } - } - spin_unlock_irqrestore(&info->dpram_lock, flags); - } - - pr_debug("resetting ASIC\n"); - mdelay(10); - /* reset ASIC */ - ft1000_reset_asic(dev); - - pr_debug("downloading dsp image\n"); - - if (info->AsicID == MAGNEMITE_ID) { - /* Put dsp in reset and take ASIC out of reset */ - pr_debug("Put DSP in reset and take ASIC out of reset\n"); - ft1000_write_reg(dev, FT1000_REG_RESET, DSP_RESET_BIT); - - /* Setting MAGNEMITE ASIC to big endian mode */ - ft1000_write_reg(dev, FT1000_REG_SUP_CTRL, HOST_INTF_BE); - /* Download bootloader */ - card_bootload(dev); - - /* Take DSP out of reset */ - ft1000_write_reg(dev, FT1000_REG_RESET, 0); - /* FLARION_DSP_ACTIVE; */ - mdelay(10); - pr_debug("Take DSP out of reset\n"); - - /* - * Wait for 0xfefe indicating dsp ready before starting - * download - */ - for (i = 0; i < 50; i++) { - tempword = ft1000_read_dpram_mag_16(dev, - FT1000_MAG_DPRAM_FEFE, - FT1000_MAG_DPRAM_FEFE_INDX); - if (tempword == 0xfefe) - break; - mdelay(20); - } - - if (i == 50) { - pr_debug("No FEFE detected from DSP\n"); - return false; - } - - } else { - /* Take DSP out of reset */ - ft1000_write_reg(dev, FT1000_REG_RESET, ~DSP_RESET_BIT); - mdelay(10); - } - - if (card_download(dev, fw_entry->data, fw_entry->size)) { - pr_debug("card download unsuccessful\n"); - return false; - } - pr_debug("card download successful\n"); - - mdelay(10); - - if (info->AsicID == ELECTRABUZZ_ID) { - /* - * Need to initialize the FIFO length counter to zero in order - * to sync up with the DSP - */ - info->fifo_cnt = 0; - ft1000_write_dpram(dev, FT1000_FIFO_LEN, info->fifo_cnt); - /* Initialize DSP heartbeat area to ho */ - ft1000_write_dpram(dev, FT1000_HI_HO, ho); - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - pr_debug("hi_ho value = 0x%x\n", tempword); - } else { - /* Initialize DSP heartbeat area to ho */ - ft1000_write_dpram_mag_16(dev, FT1000_MAG_HI_HO, ho_mag, - FT1000_MAG_HI_HO_INDX); - tempword = - ft1000_read_dpram_mag_16(dev, FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX); - pr_debug("hi_ho value = 0x%x\n", tempword); - } - - info->CardReady = 1; - ft1000_enable_interrupts(dev); - - /* Schedule heartbeat process to run every 2 seconds */ - /* poll_timer.expires = jiffies + (2*HZ); */ - /* poll_timer.data = (u_long)dev; */ - /* add_timer(&poll_timer); */ - - return true; - -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_chkcard - Description: This function will check if the device is presently available on - the system. - Input: - dev - device structure - Output: - status - false (device is not present) - true (device is present) - - -------------------------------------------------------------------------*/ -static int ft1000_chkcard(struct net_device *dev) -{ - u16 tempword; - - /* - * Mask register is used to check for device presence since it is never - * set to zero. - */ - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_IMASK); - if (tempword == 0) { - pr_debug("IMASK = 0 Card not detected\n"); - return false; - } - /* - * The system will return the value of 0xffff for the version register - * if the device is not present. - */ - tempword = ft1000_read_reg(dev, FT1000_REG_ASIC_ID); - if (tempword == 0xffff) { - pr_debug("Version = 0xffff Card not detected\n"); - return false; - } - return true; -} - - -/*--------------------------------------------------------------------------- - - Function: ft1000_hbchk - Description: This function will perform the heart beat check of the DSP as - well as the ASIC. - Input: - dev - device structure - Output: - none - - -------------------------------------------------------------------------*/ -static void ft1000_hbchk(u_long data) -{ - struct net_device *dev = (struct net_device *)data; - - struct ft1000_info *info; - u16 tempword; - - info = netdev_priv(dev); - - if (info->CardReady == 1) { - /* Perform dsp heartbeat check */ - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - } else { - tempword = - ntohs(ft1000_read_dpram_mag_16 - (dev, FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX)); - } - pr_debug("hi_ho value = 0x%x\n", tempword); - /* Let's perform another check if ho is not detected */ - if (tempword != ho) { - if (info->AsicID == ELECTRABUZZ_ID) - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - else - tempword = ntohs(ft1000_read_dpram_mag_16(dev, - FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX)); - } - if (tempword != ho) { - pr_info("heartbeat failed - no ho detected\n"); - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DSP_HB_INFO; - if (ft1000_reset_card(dev) == 0) { - pr_info("Hardware Failure Detected - PC Card disabled\n"); - info->ProgConStat = 0xff; - return; - } - /* Schedule this module to run every 2 seconds */ - poll_timer.expires = jiffies + (2*HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); - return; - } - - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - /* Let's check doorbell again if fail */ - if (tempword & FT1000_DB_HB) - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - - if (tempword & FT1000_DB_HB) { - pr_info("heartbeat doorbell not clear by firmware\n"); - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DSP_HB_INFO; - if (ft1000_reset_card(dev) == 0) { - pr_info("Hardware Failure Detected - PC Card disabled\n"); - info->ProgConStat = 0xff; - return; - } - /* Schedule this module to run every 2 seconds */ - poll_timer.expires = jiffies + (2*HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); - return; - } - /* - * Set dedicated area to hi and ring appropriate doorbell - * according to hi/ho heartbeat protocol - */ - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_dpram(dev, FT1000_HI_HO, hi); - } else { - ft1000_write_dpram_mag_16(dev, FT1000_MAG_HI_HO, hi_mag, - FT1000_MAG_HI_HO_INDX); - } - - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - } else { - tempword = - ntohs(ft1000_read_dpram_mag_16 - (dev, FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX)); - } - /* Let's write hi again if fail */ - if (tempword != hi) { - if (info->AsicID == ELECTRABUZZ_ID) - ft1000_write_dpram(dev, FT1000_HI_HO, hi); - else - ft1000_write_dpram_mag_16(dev, FT1000_MAG_HI_HO, - hi_mag, FT1000_MAG_HI_HO_INDX); - - if (info->AsicID == ELECTRABUZZ_ID) - tempword = ft1000_read_dpram(dev, FT1000_HI_HO); - else - tempword = ntohs(ft1000_read_dpram_mag_16(dev, - FT1000_MAG_HI_HO, - FT1000_MAG_HI_HO_INDX)); - } - - if (tempword != hi) { - pr_info("heartbeat failed - cannot write hi into DPRAM\n"); - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DSP_HB_INFO; - if (ft1000_reset_card(dev) == 0) { - pr_info("Hardware Failure Detected - PC Card disabled\n"); - info->ProgConStat = 0xff; - return; - } - /* Schedule this module to run every 2 seconds */ - poll_timer.expires = jiffies + (2*HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); - return; - } - ft1000_write_reg(dev, FT1000_REG_DOORBELL, FT1000_DB_HB); - - } - - /* Schedule this module to run every 2 seconds */ - poll_timer.expires = jiffies + (2 * HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_send_cmd - Description: - Input: - Output: - - -------------------------------------------------------------------------*/ -static void ft1000_send_cmd(struct net_device *dev, u16 *ptempbuffer, int size, - u16 qtype) -{ - struct ft1000_info *info = netdev_priv(dev); - int i; - u16 tempword; - unsigned long flags; - - size += sizeof(struct pseudo_hdr); - /* check for odd byte and increment to 16-bit word align value */ - if ((size & 0x0001)) - size++; - pr_debug("total length = %d\n", size); - pr_debug("length = %d\n", ntohs(*ptempbuffer)); - /* - * put message into slow queue area - * All messages are in the form total_len + pseudo header + message body - */ - spin_lock_irqsave(&info->dpram_lock, flags); - - /* Make sure SLOWQ doorbell is clear */ - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - i = 0; - while (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - i++; - if (i == 10) { - spin_unlock_irqrestore(&info->dpram_lock, flags); - return; - } - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - } - - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_TX_BASE); - /* Write total length to dpram */ - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, size); - /* Write pseudo header and messgae body */ - for (i = 0; i < (size >> 1); i++) { - pr_debug("data %d = 0x%x\n", i, *ptempbuffer); - tempword = htons(*ptempbuffer++); - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, tempword); - } - } else { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_TX_BASE); - /* Write total length to dpram */ - ft1000_write_reg(dev, FT1000_REG_MAG_DPDATAH, htons(size)); - /* Write pseudo header and messgae body */ - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_TX_BASE + 1); - for (i = 0; i < (size >> 2); i++) { - pr_debug("data = 0x%x\n", *ptempbuffer); - outw(*ptempbuffer++, - dev->base_addr + FT1000_REG_MAG_DPDATAL); - pr_debug("data = 0x%x\n", *ptempbuffer); - outw(*ptempbuffer++, - dev->base_addr + FT1000_REG_MAG_DPDATAH); - } - pr_debug("data = 0x%x\n", *ptempbuffer); - outw(*ptempbuffer++, dev->base_addr + FT1000_REG_MAG_DPDATAL); - pr_debug("data = 0x%x\n", *ptempbuffer); - outw(*ptempbuffer++, dev->base_addr + FT1000_REG_MAG_DPDATAH); - } - spin_unlock_irqrestore(&info->dpram_lock, flags); - - /* ring doorbell to notify DSP that we have a message ready */ - ft1000_write_reg(dev, FT1000_REG_DOORBELL, FT1000_DB_DPRAM_TX); -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_receive_cmd - Description: This function will read a message from the dpram area. - Input: - dev - network device structure - pbuffer - caller supply address to buffer - pnxtph - pointer to next pseudo header - Output: - Status = 0 (unsuccessful) - = 1 (successful) - - -------------------------------------------------------------------------*/ -static bool ft1000_receive_cmd(struct net_device *dev, u16 *pbuffer, - int maxsz, u16 *pnxtph) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 size; - u16 *ppseudohdr; - int i; - u16 tempword; - unsigned long flags; - - if (info->AsicID == ELECTRABUZZ_ID) { - size = ft1000_read_dpram(dev, *pnxtph) - + sizeof(struct pseudo_hdr); - } else { - size = ntohs(ft1000_read_dpram_mag_16(dev, FT1000_MAG_PH_LEN, - FT1000_MAG_PH_LEN_INDX)) - + sizeof(struct pseudo_hdr); - } - if (size > maxsz) { - pr_debug("Invalid command length = %d\n", size); - return false; - } - ppseudohdr = (u16 *)pbuffer; - spin_lock_irqsave(&info->dpram_lock, flags); - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_RX_BASE + 2); - for (i = 0; i <= (size >> 1); i++) { - tempword = - ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - *pbuffer++ = ntohs(tempword); - } - } else { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_RX_BASE); - *pbuffer = inw(dev->base_addr + FT1000_REG_MAG_DPDATAH); - pr_debug("received data = 0x%x\n", *pbuffer); - pbuffer++; - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_RX_BASE + 1); - for (i = 0; i <= (size >> 2); i++) { - *pbuffer = - inw(dev->base_addr + - FT1000_REG_MAG_DPDATAL); - pbuffer++; - *pbuffer = - inw(dev->base_addr + - FT1000_REG_MAG_DPDATAH); - pbuffer++; - } - /* copy odd aligned word */ - *pbuffer = inw(dev->base_addr + FT1000_REG_MAG_DPDATAL); - pr_debug("received data = 0x%x\n", *pbuffer); - pbuffer++; - *pbuffer = inw(dev->base_addr + FT1000_REG_MAG_DPDATAH); - pr_debug("received data = 0x%x\n", *pbuffer); - pbuffer++; - } - if (size & 0x0001) { - /* copy odd byte from fifo */ - tempword = ft1000_read_reg(dev, FT1000_REG_DPRAM_DATA); - *pbuffer = ntohs(tempword); - } - spin_unlock_irqrestore(&info->dpram_lock, flags); - - /* - * Check if pseudo header checksum is good - * Calculate pseudo header checksum - */ - tempword = *ppseudohdr++; - for (i = 1; i < 7; i++) - tempword ^= *ppseudohdr++; - if (tempword != *ppseudohdr) { - pr_debug("Pseudo header checksum mismatch\n"); - /* Drop this message */ - return false; - } - return true; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_proc_drvmsg - Description: This function will process the various driver messages. - Input: - dev - device structure - pnxtph - pointer to next pseudo header - Output: - none - - -------------------------------------------------------------------------*/ -static void ft1000_proc_drvmsg(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 msgtype; - u16 tempword; - struct media_msg *pmediamsg; - struct dsp_init_msg *pdspinitmsg; - struct drv_msg *pdrvmsg; - u16 len; - u16 i; - struct prov_record *ptr; - struct pseudo_hdr *ppseudo_hdr; - u16 *pmsg; - struct timeval tv; - union { - u8 byte[2]; - u16 wrd; - } convert; - - if (info->AsicID == ELECTRABUZZ_ID) - tempword = FT1000_DPRAM_RX_BASE+2; - else - tempword = FT1000_DPRAM_MAG_RX_BASE; - - if (ft1000_receive_cmd(dev, &cmdbuffer[0], MAX_CMD_SQSIZE, &tempword)) { - - /* - * Get the message type which is total_len + PSEUDO header - * + msgtype + message body - */ - pdrvmsg = (struct drv_msg *)&cmdbuffer[0]; - msgtype = ntohs(pdrvmsg->type); - pr_debug("Command message type = 0x%x\n", msgtype); - switch (msgtype) { - case DSP_PROVISION: - pr_debug("Got a provisioning request message from DSP\n"); - mdelay(25); - while (list_empty(&info->prov_list) == 0) { - pr_debug("Sending a provisioning message\n"); - /* Make sure SLOWQ doorbell is clear */ - tempword = ft1000_read_reg(dev, - FT1000_REG_DOORBELL); - i = 0; - while (tempword & FT1000_DB_DPRAM_TX) { - mdelay(5); - i++; - if (i == 10) - break; - } - ptr = list_entry(info->prov_list.next, - struct prov_record, list); - len = *(u16 *)ptr->pprov_data; - len = htons(len); - - pmsg = (u16 *)ptr->pprov_data; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - pr_debug("checksum = 0x%x\n", - ppseudo_hdr->checksum); - for (i = 1; i < 7; i++) { - ppseudo_hdr->checksum ^= *pmsg++; - pr_debug("checksum = 0x%x\n", - ppseudo_hdr->checksum); - } - - ft1000_send_cmd(dev, (u16 *)ptr->pprov_data, - len, SLOWQ_TYPE); - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - /* - * Indicate adapter is ready to take application - * messages after all provisioning messages are sent - */ - info->CardReady = 1; - break; - case MEDIA_STATE: - pmediamsg = (struct media_msg *)&cmdbuffer[0]; - if (info->ProgConStat != 0xFF) { - if (pmediamsg->state) { - pr_debug("Media is up\n"); - if (info->mediastate == 0) { - netif_carrier_on(dev); - netif_wake_queue(dev); - info->mediastate = 1; - do_gettimeofday(&tv); - info->ConTm = tv.tv_sec; - } - } else { - pr_debug("Media is down\n"); - if (info->mediastate == 1) { - info->mediastate = 0; - netif_carrier_off(dev); - netif_stop_queue(dev); - info->ConTm = 0; - } - } - } else { - pr_debug("Media is down\n"); - if (info->mediastate == 1) { - info->mediastate = 0; - netif_carrier_off(dev); - netif_stop_queue(dev); - info->ConTm = 0; - } - } - break; - case DSP_INIT_MSG: - pdspinitmsg = (struct dsp_init_msg *)&cmdbuffer[0]; - memcpy(info->DspVer, pdspinitmsg->DspVer, DSPVERSZ); - pr_debug("DSPVER = 0x%2x 0x%2x 0x%2x 0x%2x\n", - info->DspVer[0], info->DspVer[1], - info->DspVer[2], info->DspVer[3]); - memcpy(info->HwSerNum, pdspinitmsg->HwSerNum, - HWSERNUMSZ); - memcpy(info->Sku, pdspinitmsg->Sku, SKUSZ); - memcpy(info->eui64, pdspinitmsg->eui64, EUISZ); - dev->dev_addr[0] = info->eui64[0]; - dev->dev_addr[1] = info->eui64[1]; - dev->dev_addr[2] = info->eui64[2]; - dev->dev_addr[3] = info->eui64[5]; - dev->dev_addr[4] = info->eui64[6]; - dev->dev_addr[5] = info->eui64[7]; - - if (ntohs(pdspinitmsg->length) == - (sizeof(struct dsp_init_msg) - 20)) { - memcpy(info->ProductMode, - pdspinitmsg->ProductMode, MODESZ); - memcpy(info->RfCalVer, pdspinitmsg->RfCalVer, - CALVERSZ); - memcpy(info->RfCalDate, pdspinitmsg->RfCalDate, - CALDATESZ); - pr_debug("RFCalVer = 0x%2x 0x%2x\n", - info->RfCalVer[0], info->RfCalVer[1]); - } - - break; - case DSP_STORE_INFO: - pr_debug("Got DSP_STORE_INFO\n"); - tempword = ntohs(pdrvmsg->length); - info->DSPInfoBlklen = tempword; - if (tempword < (MAX_DSP_SESS_REC - 4)) { - pmsg = (u16 *)&pdrvmsg->data[0]; - for (i = 0; i < ((tempword + 1) / 2); i++) { - pr_debug("dsp info data = 0x%x\n", - *pmsg); - info->DSPInfoBlk[i + 10] = *pmsg++; - } - } - break; - case DSP_GET_INFO: - pr_debug("Got DSP_GET_INFO\n"); - /* - * copy dsp info block to dsp - * allow any outstanding ioctl to finish - */ - mdelay(10); - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - tempword = ft1000_read_reg(dev, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) - mdelay(10); - } - - if ((tempword & FT1000_DB_DPRAM_TX) == 0) { - /* - * Put message into Slow Queue - * Form Pseudo header - */ - pmsg = (u16 *)info->DSPInfoBlk; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - ppseudo_hdr->length = - htons(info->DSPInfoBlklen + 4); - ppseudo_hdr->source = 0x10; - ppseudo_hdr->destination = 0x20; - ppseudo_hdr->portdest = 0; - ppseudo_hdr->portsrc = 0; - ppseudo_hdr->sh_str_id = 0; - ppseudo_hdr->control = 0; - ppseudo_hdr->rsvd1 = 0; - ppseudo_hdr->rsvd2 = 0; - ppseudo_hdr->qos_class = 0; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - /* Insert application id */ - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - info->DSPInfoBlk[8] = 0x7200; - info->DSPInfoBlk[9] = - htons(info->DSPInfoBlklen); - ft1000_send_cmd(dev, info->DSPInfoBlk, - (u16)(info->DSPInfoBlklen+4), - 0); - } - - break; - case GET_DRV_ERR_RPT_MSG: - pr_debug("Got GET_DRV_ERR_RPT_MSG\n"); - /* - * copy driver error message to dsp - * allow any outstanding ioctl to finish - */ - mdelay(10); - tempword = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - tempword = ft1000_read_reg(dev, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) - mdelay(10); - } - - if ((tempword & FT1000_DB_DPRAM_TX) == 0) { - /* - * Put message into Slow Queue - * Form Pseudo header - */ - pmsg = (u16 *)&tempbuffer[0]; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - ppseudo_hdr->length = htons(0x0012); - ppseudo_hdr->source = 0x10; - ppseudo_hdr->destination = 0x20; - ppseudo_hdr->portdest = 0; - ppseudo_hdr->portsrc = 0; - ppseudo_hdr->sh_str_id = 0; - ppseudo_hdr->control = 0; - ppseudo_hdr->rsvd1 = 0; - ppseudo_hdr->rsvd2 = 0; - ppseudo_hdr->qos_class = 0; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - /* Insert application id */ - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - pmsg = (u16 *)&tempbuffer[16]; - *pmsg++ = htons(RSP_DRV_ERR_RPT_MSG); - *pmsg++ = htons(0x000e); - *pmsg++ = htons(info->DSP_TIME[0]); - *pmsg++ = htons(info->DSP_TIME[1]); - *pmsg++ = htons(info->DSP_TIME[2]); - *pmsg++ = htons(info->DSP_TIME[3]); - convert.byte[0] = info->DspVer[0]; - convert.byte[1] = info->DspVer[1]; - *pmsg++ = convert.wrd; - convert.byte[0] = info->DspVer[2]; - convert.byte[1] = info->DspVer[3]; - *pmsg++ = convert.wrd; - *pmsg++ = htons(info->DrvErrNum); - - ft1000_send_cmd(dev, (u16 *)&tempbuffer[0], - (u16)(0x0012), 0); - info->DrvErrNum = 0; - } - - break; - default: - break; - } - } -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_parse_dpram_msg - Description: This function will parse the message received from the DSP - via the DPRAM interface. - Input: - dev - device structure - Output: - status - FAILURE - SUCCESS - - -------------------------------------------------------------------------*/ -static int ft1000_parse_dpram_msg(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u16 doorbell; - u16 portid; - u16 nxtph; - u16 total_len; - int i = 0; - unsigned long flags; - - doorbell = ft1000_read_reg(dev, FT1000_REG_DOORBELL); - pr_debug("Doorbell = 0x%x\n", doorbell); - - if (doorbell & FT1000_ASIC_RESET_REQ) { - /* Copy DSP session record from info block */ - spin_lock_irqsave(&info->dpram_lock, flags); - if (info->AsicID == ELECTRABUZZ_ID) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_RX_BASE); - for (i = 0; i < MAX_DSP_SESS_REC; i++) { - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, - info->DSPSess.Rec[i]); - } - } else { - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, - FT1000_DPRAM_MAG_RX_BASE); - for (i = 0; i < MAX_DSP_SESS_REC / 2; i++) { - outl(info->DSPSess.MagRec[i], - dev->base_addr + FT1000_REG_MAG_DPDATA); - } - } - spin_unlock_irqrestore(&info->dpram_lock, flags); - - /* clear ASIC RESET request */ - ft1000_write_reg(dev, FT1000_REG_DOORBELL, - FT1000_ASIC_RESET_REQ); - pr_debug("Got an ASIC RESET Request\n"); - ft1000_write_reg(dev, FT1000_REG_DOORBELL, - FT1000_ASIC_RESET_DSP); - - if (info->AsicID == MAGNEMITE_ID) { - /* Setting MAGNEMITE ASIC to big endian mode */ - ft1000_write_reg(dev, FT1000_REG_SUP_CTRL, - HOST_INTF_BE); - } - } - - if (doorbell & FT1000_DSP_ASIC_RESET) { - pr_debug("Got a dsp ASIC reset message\n"); - ft1000_write_reg(dev, FT1000_REG_DOORBELL, - FT1000_DSP_ASIC_RESET); - udelay(200); - return SUCCESS; - } - - if (doorbell & FT1000_DB_DPRAM_RX) { - pr_debug("Got a slow queue message\n"); - nxtph = FT1000_DPRAM_RX_BASE + 2; - if (info->AsicID == ELECTRABUZZ_ID) { - total_len = - ft1000_read_dpram(dev, FT1000_DPRAM_RX_BASE); - } else { - total_len = - ntohs(ft1000_read_dpram_mag_16 - (dev, FT1000_MAG_TOTAL_LEN, - FT1000_MAG_TOTAL_LEN_INDX)); - } - pr_debug("total length = %d\n", total_len); - if ((total_len < MAX_CMD_SQSIZE) - && (total_len > sizeof(struct pseudo_hdr))) { - total_len += nxtph; - /* - * ft1000_read_reg will return a value that needs to be - * byteswap in order to get DSP_QID_OFFSET. - */ - if (info->AsicID == ELECTRABUZZ_ID) { - portid = (ft1000_read_dpram(dev, DSP_QID_OFFSET - + FT1000_DPRAM_RX_BASE + 2) - >> 8) & 0xff; - } else { - portid = - ft1000_read_dpram_mag_16 - (dev, FT1000_MAG_PORT_ID, - FT1000_MAG_PORT_ID_INDX) & 0xff; - } - pr_debug("DSP_QID = 0x%x\n", portid); - - if (portid == DRIVERID) { - /* - * We are assumming one driver message from the - * DSP at a time. - */ - ft1000_proc_drvmsg(dev); - } - } - ft1000_write_reg(dev, FT1000_REG_DOORBELL, FT1000_DB_DPRAM_RX); - } - - if (doorbell & FT1000_DB_COND_RESET) { - /* Reset ASIC and DSP */ - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DSP_CONDRESET_INFO; - pr_debug("DSP conditional reset requested\n"); - ft1000_reset_card(dev); - ft1000_write_reg(dev, FT1000_REG_DOORBELL, - FT1000_DB_COND_RESET); - } - /* let's clear any unexpected doorbells from DSP */ - doorbell = - doorbell & ~(FT1000_DB_DPRAM_RX | FT1000_ASIC_RESET_REQ | - FT1000_DB_COND_RESET | 0xff00); - if (doorbell) { - pr_debug("Clearing unexpected doorbell = 0x%x\n", doorbell); - ft1000_write_reg(dev, FT1000_REG_DOORBELL, doorbell); - } - - return SUCCESS; - -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_flush_fifo - Description: This function will flush one packet from the downlink - FIFO. - Input: - dev - device structure - drv_err - driver error causing the flush fifo - Output: - None. - - -------------------------------------------------------------------------*/ -static void ft1000_flush_fifo(struct net_device *dev, u16 DrvErrNum) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_pcmcia *pcmcia = info->priv; - u16 i; - u32 templong; - u16 tempword; - - if (pcmcia->PktIntfErr > MAX_PH_ERR) { - ft1000_read_dsp_timer(dev, info); - info->DrvErrNum = DrvErrNum; - ft1000_reset_card(dev); - return; - } - /* Flush corrupted pkt from FIFO */ - i = 0; - do { - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = - ft1000_read_reg(dev, FT1000_REG_DFIFO); - tempword = - ft1000_read_reg(dev, FT1000_REG_DFIFO_STAT); - } else { - templong = - inl(dev->base_addr + FT1000_REG_MAG_DFR); - tempword = - inw(dev->base_addr + FT1000_REG_MAG_DFSR); - } - i++; - /* - * This should never happen unless the ASIC is broken. - * We must reset to recover. - */ - if ((i > 2048) || (tempword == 0)) { - ft1000_read_dsp_timer(dev, info); - if (tempword == 0) { - /* - * Let's check if ASIC reads are still ok by - * reading the Mask register which is never zero - * at this point of the code. - */ - tempword = - inw(dev->base_addr + - FT1000_REG_SUP_IMASK); - if (tempword == 0) { - /* - * This indicates that we can not - * communicate with the ASIC - */ - info->DrvErrNum = FIFO_FLUSH_BADCNT; - } else { - /* - * Let's assume that we really flush - * the FIFO - */ - pcmcia->PktIntfErr++; - return; - } - } else { - info->DrvErrNum = FIFO_FLUSH_MAXLIMIT; - } - return; - } - tempword = inw(dev->base_addr + FT1000_REG_SUP_STAT); - } while ((tempword & 0x03) != 0x03); - if (info->AsicID == ELECTRABUZZ_ID) { - i++; - pr_debug("Flushing FIFO complete = %x\n", tempword); - /* Flush last word in FIFO. */ - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - /* Update FIFO counter for DSP */ - i = i * 2; - pr_debug("Flush Data byte count to dsp = %d\n", i); - info->fifo_cnt += i; - ft1000_write_dpram(dev, FT1000_FIFO_LEN, - info->fifo_cnt); - } else { - pr_debug("Flushing FIFO complete = %x\n", tempword); - /* Flush last word in FIFO */ - templong = inl(dev->base_addr + FT1000_REG_MAG_DFR); - tempword = inw(dev->base_addr + FT1000_REG_SUP_STAT); - pr_debug("FT1000_REG_SUP_STAT = 0x%x\n", tempword); - tempword = inw(dev->base_addr + FT1000_REG_MAG_DFSR); - pr_debug("FT1000_REG_MAG_DFSR = 0x%x\n", tempword); - } - if (DrvErrNum) - pcmcia->PktIntfErr++; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_copy_up_pkt - Description: This function will pull Flarion packets out of the Downlink - FIFO and convert it to an ethernet packet. The ethernet packet will - then be deliver to the TCP/IP stack. - Input: - dev - device structure - Output: - status - FAILURE - SUCCESS - - -------------------------------------------------------------------------*/ -static int ft1000_copy_up_pkt(struct net_device *dev) -{ - u16 tempword; - struct ft1000_info *info = netdev_priv(dev); - u16 len; - struct sk_buff *skb; - u16 i; - u8 *pbuffer = NULL; - u8 *ptemp = NULL; - u16 chksum; - u32 *ptemplong; - u32 templong; - - /* Read length */ - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - len = tempword; - } else { - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRL); - len = ntohs(tempword); - } - chksum = tempword; - pr_debug("Number of Bytes in FIFO = %d\n", len); - - if (len > ENET_MAX_SIZE) { - pr_debug("size of ethernet packet invalid\n"); - if (info->AsicID == MAGNEMITE_ID) { - /* Read High word to complete 32 bit access */ - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - } - ft1000_flush_fifo(dev, DSP_PKTLEN_INFO); - info->stats.rx_errors++; - return FAILURE; - } - - skb = dev_alloc_skb(len + 12 + 2); - - if (skb == NULL) { - /* Read High word to complete 32 bit access */ - if (info->AsicID == MAGNEMITE_ID) - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - - ft1000_flush_fifo(dev, 0); - info->stats.rx_errors++; - return FAILURE; - } - pbuffer = (u8 *)skb_put(skb, len + 12); - - /* Pseudo header */ - if (info->AsicID == ELECTRABUZZ_ID) { - for (i = 1; i < 7; i++) { - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - chksum ^= tempword; - } - /* read checksum value */ - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - } else { - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRL); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRL); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRL); - pr_debug("Pseudo = 0x%x\n", tempword); - chksum ^= tempword; - - /* read checksum value */ - tempword = ft1000_read_reg(dev, FT1000_REG_MAG_DFRH); - pr_debug("Pseudo = 0x%x\n", tempword); - } - - if (chksum != tempword) { - pr_debug("Packet checksum mismatch 0x%x 0x%x\n", - chksum, tempword); - ft1000_flush_fifo(dev, DSP_PKTPHCKSUM_INFO); - info->stats.rx_errors++; - kfree_skb(skb); - return FAILURE; - } - /* subtract the number of bytes read already */ - ptemp = pbuffer; - - /* fake MAC address */ - *pbuffer++ = dev->dev_addr[0]; - *pbuffer++ = dev->dev_addr[1]; - *pbuffer++ = dev->dev_addr[2]; - *pbuffer++ = dev->dev_addr[3]; - *pbuffer++ = dev->dev_addr[4]; - *pbuffer++ = dev->dev_addr[5]; - *pbuffer++ = 0x00; - *pbuffer++ = 0x07; - *pbuffer++ = 0x35; - *pbuffer++ = 0xff; - *pbuffer++ = 0xff; - *pbuffer++ = 0xfe; - - if (info->AsicID == ELECTRABUZZ_ID) { - for (i = 0; i < len / 2; i++) { - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - *pbuffer++ = (u8) (tempword >> 8); - *pbuffer++ = (u8)tempword; - if (ft1000_chkcard(dev) == false) { - kfree_skb(skb); - return FAILURE; - } - } - - /* Need to read one more word if odd byte */ - if (len & 0x0001) { - tempword = ft1000_read_reg(dev, FT1000_REG_DFIFO); - *pbuffer++ = (u8) (tempword >> 8); - } - } else { - ptemplong = (u32 *)pbuffer; - for (i = 0; i < len / 4; i++) { - templong = inl(dev->base_addr + FT1000_REG_MAG_DFR); - pr_debug("Data = 0x%8x\n", templong); - *ptemplong++ = templong; - } - - /* Need to read one more word if odd align. */ - if (len & 0x0003) { - templong = inl(dev->base_addr + FT1000_REG_MAG_DFR); - pr_debug("Data = 0x%8x\n", templong); - *ptemplong++ = templong; - } - - } - - pr_debug("Data passed to Protocol layer:\n"); - for (i = 0; i < len + 12; i++) - pr_debug("Protocol Data: 0x%x\n", *ptemp++); - - skb->dev = dev; - skb->protocol = eth_type_trans(skb, dev); - skb->ip_summed = CHECKSUM_UNNECESSARY; - netif_rx(skb); - - info->stats.rx_packets++; - /* Add on 12 bytes for MAC address which was removed */ - info->stats.rx_bytes += (len + 12); - - if (info->AsicID == ELECTRABUZZ_ID) { - /* track how many bytes have been read from FIFO - round up to - * 16 bit word */ - tempword = len + 16; - if (tempword & 0x01) - tempword++; - info->fifo_cnt += tempword; - ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, FT1000_FIFO_LEN); - ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, info->fifo_cnt); - } - - return SUCCESS; -} - -/*--------------------------------------------------------------------------- - - Function: ft1000_copy_down_pkt - Description: This function will take an ethernet packet and convert it to - a Flarion packet prior to sending it to the ASIC Downlink - FIFO. - Input: - dev - device structure - packet - address of ethernet packet - len - length of IP packet - Output: - status - FAILURE - SUCCESS - - -------------------------------------------------------------------------*/ -static int ft1000_copy_down_pkt(struct net_device *dev, u16 *packet, u16 len) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_pcmcia *pcmcia = info->priv; - union { - struct pseudo_hdr blk; - u16 buff[sizeof(struct pseudo_hdr) >> 1]; - u8 buffc[sizeof(struct pseudo_hdr)]; - } pseudo; - int i; - u32 *plong; - - /* Check if there is room on the FIFO */ - if (len > ft1000_read_fifo_len(dev)) { - udelay(10); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) - udelay(20); - if (len > ft1000_read_fifo_len(dev)) { - pr_debug("Transmit FIFO is full - pkt drop\n"); - info->stats.tx_errors++; - return SUCCESS; - } - } - /* Create pseudo header and send pseudo/ip to hardware */ - if (info->AsicID == ELECTRABUZZ_ID) - pseudo.blk.length = len; - else - pseudo.blk.length = ntohs(len); - - pseudo.blk.source = DSPID; /* Need to swap to get in correct - order */ - pseudo.blk.destination = HOSTID; - pseudo.blk.portdest = NETWORKID; /* Need to swap to get in - correct order */ - pseudo.blk.portsrc = DSPAIRID; - pseudo.blk.sh_str_id = 0; - pseudo.blk.control = 0; - pseudo.blk.rsvd1 = 0; - pseudo.blk.seq_num = 0; - pseudo.blk.rsvd2 = pcmcia->packetseqnum++; - pseudo.blk.qos_class = 0; - /* Calculate pseudo header checksum */ - pseudo.blk.checksum = pseudo.buff[0]; - for (i = 1; i < 7; i++) - pseudo.blk.checksum ^= pseudo.buff[i]; - - /* Production Mode */ - if (info->AsicID == ELECTRABUZZ_ID) { - /* copy first word to UFIFO_BEG reg */ - ft1000_write_reg(dev, FT1000_REG_UFIFO_BEG, pseudo.buff[0]); - pr_debug("data 0 BEG = 0x%04x\n", pseudo.buff[0]); - - /* copy subsequent words to UFIFO_MID reg */ - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[1]); - pr_debug("data 1 MID = 0x%04x\n", pseudo.buff[1]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[2]); - pr_debug("data 2 MID = 0x%04x\n", pseudo.buff[2]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[3]); - pr_debug("data 3 MID = 0x%04x\n", pseudo.buff[3]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[4]); - pr_debug("data 4 MID = 0x%04x\n", pseudo.buff[4]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[5]); - pr_debug("data 5 MID = 0x%04x\n", pseudo.buff[5]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[6]); - pr_debug("data 6 MID = 0x%04x\n", pseudo.buff[6]); - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, pseudo.buff[7]); - pr_debug("data 7 MID = 0x%04x\n", pseudo.buff[7]); - - /* Write PPP type + IP Packet into Downlink FIFO */ - for (i = 0; i < (len >> 1) - 1; i++) { - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, - htons(*packet)); - pr_debug("data %d MID = 0x%04x\n", - i + 8, htons(*packet)); - packet++; - } - - /* Check for odd byte */ - if (len & 0x0001) { - ft1000_write_reg(dev, FT1000_REG_UFIFO_MID, - htons(*packet)); - pr_debug("data MID = 0x%04x\n", htons(*packet)); - packet++; - ft1000_write_reg(dev, FT1000_REG_UFIFO_END, - htons(*packet)); - pr_debug("data %d MID = 0x%04x\n", - i + 8, htons(*packet)); - } else { - ft1000_write_reg(dev, FT1000_REG_UFIFO_END, - htons(*packet)); - pr_debug("data %d MID = 0x%04x\n", - i + 8, htons(*packet)); - } - } else { - outl(*(u32 *)&pseudo.buff[0], - dev->base_addr + FT1000_REG_MAG_UFDR); - pr_debug("Pseudo = 0x%8x\n", *(u32 *)&pseudo.buff[0]); - outl(*(u32 *)&pseudo.buff[2], - dev->base_addr + FT1000_REG_MAG_UFDR); - pr_debug("Pseudo = 0x%8x\n", *(u32 *)&pseudo.buff[2]); - outl(*(u32 *)&pseudo.buff[4], - dev->base_addr + FT1000_REG_MAG_UFDR); - pr_debug("Pseudo = 0x%8x\n", *(u32 *)&pseudo.buff[4]); - outl(*(u32 *)&pseudo.buff[6], - dev->base_addr + FT1000_REG_MAG_UFDR); - pr_debug("Pseudo = 0x%8x\n", *(u32 *)&pseudo.buff[6]); - - plong = (u32 *)packet; - /* Write PPP type + IP Packet into Downlink FIFO */ - for (i = 0; i < (len >> 2); i++) - outl(*plong++, dev->base_addr + FT1000_REG_MAG_UFDR); - - /* Check for odd alignment */ - if (len & 0x0003) { - pr_debug("data = 0x%8x\n", *plong); - outl(*plong++, dev->base_addr + FT1000_REG_MAG_UFDR); - } - outl(1, dev->base_addr + FT1000_REG_MAG_UFER); - } - - info->stats.tx_packets++; - /* Add 14 bytes for MAC address plus ethernet type */ - info->stats.tx_bytes += (len + 14); - return SUCCESS; -} - -static struct net_device_stats *ft1000_stats(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - - return &info->stats; -} - -static int ft1000_open(struct net_device *dev) -{ - ft1000_reset_card(dev); - - /* schedule ft1000_hbchk to perform periodic heartbeat checks on DSP - * and ASIC */ - init_timer(&poll_timer); - poll_timer.expires = jiffies + (2 * HZ); - poll_timer.data = (u_long)dev; - add_timer(&poll_timer); - - return 0; -} - -static int ft1000_close(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - - info->CardReady = 0; - del_timer(&poll_timer); - - if (ft1000_card_present == 1) { - pr_debug("Media is down\n"); - netif_stop_queue(dev); - - ft1000_disable_interrupts(dev); - ft1000_write_reg(dev, FT1000_REG_RESET, DSP_RESET_BIT); - - /* reset ASIC */ - ft1000_reset_asic(dev); - } - return 0; -} - -static int ft1000_start_xmit(struct sk_buff *skb, struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - u8 *pdata; - - if (skb == NULL) { - pr_debug("skb == NULL!!!\n"); - return 0; - } - - pr_debug("length of packet = %d\n", skb->len); - - pdata = (u8 *)skb->data; - - if (info->mediastate == 0) { - /* Drop packet is mediastate is down */ - pr_debug("mediastate is down\n"); - return SUCCESS; - } - - if ((skb->len < ENET_HEADER_SIZE) || (skb->len > ENET_MAX_SIZE)) { - /* Drop packet which has invalid size */ - pr_debug("invalid ethernet length\n"); - return SUCCESS; - } - ft1000_copy_down_pkt(dev, (u16 *) (pdata + ENET_HEADER_SIZE - 2), - skb->len - ENET_HEADER_SIZE + 2); - - dev_kfree_skb(skb); - - return 0; -} - -static irqreturn_t ft1000_interrupt(int irq, void *dev_id) -{ - struct net_device *dev = dev_id; - struct ft1000_info *info = netdev_priv(dev); - u16 tempword; - u16 inttype; - int cnt; - - if (info->CardReady == 0) { - ft1000_disable_interrupts(dev); - return IRQ_HANDLED; - } - - if (ft1000_chkcard(dev) == false) { - ft1000_disable_interrupts(dev); - return IRQ_HANDLED; - } - - ft1000_disable_interrupts(dev); - - /* Read interrupt type */ - inttype = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - - /* Make sure we process all interrupt before leaving the ISR due to the - * edge trigger interrupt type */ - while (inttype) { - if (inttype & ISR_DOORBELL_PEND) - ft1000_parse_dpram_msg(dev); - - if (inttype & ISR_RCV) { - pr_debug("Data in FIFO\n"); - - cnt = 0; - do { - /* Check if we have packets in the Downlink - * FIFO */ - if (info->AsicID == ELECTRABUZZ_ID) { - tempword = ft1000_read_reg(dev, - FT1000_REG_DFIFO_STAT); - } else { - tempword = ft1000_read_reg(dev, - FT1000_REG_MAG_DFSR); - } - if (!(tempword & 0x1f)) - break; - ft1000_copy_up_pkt(dev); - cnt++; - } while (cnt < MAX_RCV_LOOP); - - } - /* clear interrupts */ - tempword = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); - ft1000_write_reg(dev, FT1000_REG_SUP_ISR, tempword); - - /* Read interrupt type */ - inttype = ft1000_read_reg(dev, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register after clear = 0x%x\n", - inttype); - } - ft1000_enable_interrupts(dev); - return IRQ_HANDLED; -} - -void stop_ft1000_card(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - struct prov_record *ptr; - struct prov_record *tmp; - /* int cnt; */ - - info->CardReady = 0; - ft1000_card_present = 0; - netif_stop_queue(dev); - ft1000_disable_interrupts(dev); - - /* Make sure we free any memory reserve for provisioning */ - list_for_each_entry_safe(ptr, tmp, &info->prov_list, list) { - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - - kfree(info->priv); - - if (info->registered) { - unregister_netdev(dev); - info->registered = 0; - } - - free_irq(dev->irq, dev); - release_region(dev->base_addr, 256); - release_firmware(fw_entry); - flarion_ft1000_cnt--; - -} - -static void ft1000_get_drvinfo(struct net_device *dev, - struct ethtool_drvinfo *info) -{ - struct ft1000_info *ft_info; - - ft_info = netdev_priv(dev); - - strlcpy(info->driver, "ft1000", sizeof(info->driver)); - snprintf(info->bus_info, sizeof(info->bus_info), "PCMCIA 0x%lx", - dev->base_addr); - snprintf(info->fw_version, sizeof(info->fw_version), "%d.%d.%d.%d", - ft_info->DspVer[0], ft_info->DspVer[1], ft_info->DspVer[2], - ft_info->DspVer[3]); -} - -static u32 ft1000_get_link(struct net_device *dev) -{ - struct ft1000_info *info; - - info = netdev_priv(dev); - return info->mediastate; -} - -static const struct ethtool_ops ops = { - .get_drvinfo = ft1000_get_drvinfo, - .get_link = ft1000_get_link -}; - -struct net_device *init_ft1000_card(struct pcmcia_device *link, - void *ft1000_reset) -{ - struct ft1000_info *info; - struct ft1000_pcmcia *pcmcia; - struct net_device *dev; - - static const struct net_device_ops ft1000ops = { - .ndo_open = &ft1000_open, - .ndo_stop = &ft1000_close, - .ndo_start_xmit = &ft1000_start_xmit, - .ndo_get_stats = &ft1000_stats, - }; - - pr_debug("irq = %d, port = 0x%04llx\n", - link->irq, (unsigned long long)link->resource[0]->start); - - flarion_ft1000_cnt++; - - if (flarion_ft1000_cnt > 1) { - flarion_ft1000_cnt--; - - dev_info(&link->dev, - "This driver can not support more than one instance\n"); - return NULL; - } - - dev = alloc_etherdev(sizeof(struct ft1000_info)); - if (!dev) { - dev_err(&link->dev, "Failed to allocate etherdev\n"); - return NULL; - } - - SET_NETDEV_DEV(dev, &link->dev); - info = netdev_priv(dev); - - memset(info, 0, sizeof(struct ft1000_info)); - - pr_debug("address of dev = 0x%p\n", dev); - pr_debug("address of dev info = 0x%p\n", info); - pr_debug("device name = %s\n", dev->name); - - memset(&info->stats, 0, sizeof(struct net_device_stats)); - - info->priv = kzalloc(sizeof(struct ft1000_pcmcia), GFP_KERNEL); - pcmcia = info->priv; - pcmcia->link = link; - - spin_lock_init(&info->dpram_lock); - info->DrvErrNum = 0; - info->registered = 1; - info->ft1000_reset = ft1000_reset; - info->mediastate = 0; - info->fifo_cnt = 0; - info->CardReady = 0; - info->DSP_TIME[0] = 0; - info->DSP_TIME[1] = 0; - info->DSP_TIME[2] = 0; - info->DSP_TIME[3] = 0; - flarion_ft1000_cnt = 0; - - INIT_LIST_HEAD(&info->prov_list); - - info->squeseqnum = 0; - - /* dev->hard_start_xmit = &ft1000_start_xmit; */ - /* dev->get_stats = &ft1000_stats; */ - /* dev->open = &ft1000_open; */ - /* dev->stop = &ft1000_close; */ - - dev->netdev_ops = &ft1000ops; - - pr_debug("device name = %s\n", dev->name); - - dev->irq = link->irq; - dev->base_addr = link->resource[0]->start; - if (pcmcia_get_mac_from_cis(link, dev)) { - netdev_err(dev, "Could not read mac address\n"); - goto err_dev; - } - - if (request_irq(dev->irq, ft1000_interrupt, IRQF_SHARED, dev->name, - dev)) { - netdev_err(dev, "Could not request_irq\n"); - goto err_dev; - } - - if (request_region(dev->base_addr, 256, dev->name) == NULL) { - netdev_err(dev, "Could not request_region\n"); - goto err_irq; - } - - if (register_netdev(dev)) { - pr_debug("Could not register netdev\n"); - goto err_reg; - } - - info->AsicID = ft1000_read_reg(dev, FT1000_REG_ASIC_ID); - if (info->AsicID == ELECTRABUZZ_ID) { - pr_debug("ELECTRABUZZ ASIC\n"); - if (request_firmware(&fw_entry, "ft1000.img", - &link->dev) != 0) { - pr_info("Could not open ft1000.img\n"); - goto err_unreg; - } - } else { - pr_debug("MAGNEMITE ASIC\n"); - if (request_firmware(&fw_entry, "ft2000.img", - &link->dev) != 0) { - pr_info("Could not open ft2000.img\n"); - goto err_unreg; - } - } - - ft1000_enable_interrupts(dev); - - ft1000_card_present = 1; - dev->ethtool_ops = &ops; - pr_info("%s: addr 0x%04lx irq %d, MAC addr %pM\n", - dev->name, dev->base_addr, dev->irq, dev->dev_addr); - return dev; - -err_unreg: - unregister_netdev(dev); -err_reg: - release_region(dev->base_addr, 256); -err_irq: - free_irq(dev->irq, dev); -err_dev: - free_netdev(dev); - return NULL; -} diff --git a/drivers/staging/ft1000/ft1000-usb/Makefile b/drivers/staging/ft1000/ft1000-usb/Makefile deleted file mode 100644 index 7c4b78456254..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -obj-$(CONFIG_FT1000_USB) += ft1000.o - -ft1000-y := ft1000_debug.o ft1000_download.o ft1000_hw.o ft1000_usb.o diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c b/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c deleted file mode 100644 index f241a3a5a684..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c +++ /dev/null @@ -1,789 +0,0 @@ -/* - *--------------------------------------------------------------------------- - * FT1000 driver for Flarion Flash OFDM NIC Device - * - * Copyright (C) 2006 Flarion Technologies, All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) any - * later version. This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - - * Suite 330, Boston, MA 02111-1307, USA. - *--------------------------------------------------------------------------- - * - * File: ft1000_chdev.c - * - * Description: Custom character device dispatch routines. - * - * History: - * 8/29/02 Whc Ported to Linux. - * 6/05/06 Whc Porting to Linux 2.6.9 - * - *--------------------------------------------------------------------------- - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include "ft1000_usb.h" - -static int ft1000_flarion_cnt; - -static int ft1000_open(struct inode *inode, struct file *file); -static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait); -static long ft1000_ioctl(struct file *file, unsigned int command, - unsigned long argument); -static int ft1000_release(struct inode *inode, struct file *file); - -/* List to free receive command buffer pool */ -struct list_head freercvpool; - -/* lock to arbitrate free buffer list for receive command data */ -spinlock_t free_buff_lock; - -int numofmsgbuf; - -/* - * Table of entry-point routines for char device - */ -static const struct file_operations ft1000fops = { - .unlocked_ioctl = ft1000_ioctl, - .poll = ft1000_poll_dev, - .open = ft1000_open, - .release = ft1000_release, - .llseek = no_llseek, -}; - -/* - --------------------------------------------------------------------------- - * Function: ft1000_get_buffer - * - * Parameters: - * - * Returns: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -struct dpram_blk *ft1000_get_buffer(struct list_head *bufflist) -{ - unsigned long flags; - struct dpram_blk *ptr; - - spin_lock_irqsave(&free_buff_lock, flags); - /* Check if buffer is available */ - if (list_empty(bufflist)) { - pr_debug("No more buffer - %d\n", numofmsgbuf); - ptr = NULL; - } else { - numofmsgbuf--; - ptr = list_entry(bufflist->next, struct dpram_blk, list); - list_del(&ptr->list); - /* pr_debug("number of free msg buffers = %d\n", numofmsgbuf); */ - } - spin_unlock_irqrestore(&free_buff_lock, flags); - - return ptr; -} - - - - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_free_buffer - * - * Parameters: - * - * Returns: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -void ft1000_free_buffer(struct dpram_blk *pdpram_blk, struct list_head *plist) -{ - unsigned long flags; - - spin_lock_irqsave(&free_buff_lock, flags); - /* Put memory back to list */ - list_add_tail(&pdpram_blk->list, plist); - numofmsgbuf++; - /*pr_debug("number of free msg buffers = %d\n", numofmsgbuf); */ - spin_unlock_irqrestore(&free_buff_lock, flags); -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_CreateDevice - * - * Parameters: dev - pointer to adapter object - * - * Returns: 0 if successful - * - * Description: Creates a private char device. - * - * Notes: Only called by init_module(). - * - *--------------------------------------------------------------------------- - */ -int ft1000_create_dev(struct ft1000_usb *dev) -{ - int result; - int i; - struct dentry *dir, *file; - struct ft1000_debug_dirs *tmp; - - /* make a new device name */ - sprintf(dev->DeviceName, "%s%d", "FT1000_", dev->CardNumber); - - pr_debug("number of instance = %d\n", ft1000_flarion_cnt); - pr_debug("DeviceCreated = %x\n", dev->DeviceCreated); - - if (dev->DeviceCreated) { - pr_debug("\"%s\" already registered\n", dev->DeviceName); - return -EIO; - } - - - /* register the device */ - pr_debug("\"%s\" debugfs device registration\n", dev->DeviceName); - - tmp = kmalloc(sizeof(struct ft1000_debug_dirs), GFP_KERNEL); - if (tmp == NULL) { - result = -1; - goto fail; - } - - dir = debugfs_create_dir(dev->DeviceName, NULL); - if (IS_ERR(dir)) { - result = PTR_ERR(dir); - goto debug_dir_fail; - } - - file = debugfs_create_file("device", S_IRUGO | S_IWUSR, dir, - dev, &ft1000fops); - if (IS_ERR(file)) { - result = PTR_ERR(file); - goto debug_file_fail; - } - - tmp->dent = dir; - tmp->file = file; - tmp->int_number = dev->CardNumber; - list_add(&tmp->list, &dev->nodes.list); - - pr_debug("registered debugfs directory \"%s\"\n", dev->DeviceName); - - /* initialize application information */ - dev->appcnt = 0; - for (i = 0; i < MAX_NUM_APP; i++) { - dev->app_info[i].nTxMsg = 0; - dev->app_info[i].nRxMsg = 0; - dev->app_info[i].nTxMsgReject = 0; - dev->app_info[i].nRxMsgMiss = 0; - dev->app_info[i].fileobject = NULL; - dev->app_info[i].app_id = i+1; - dev->app_info[i].DspBCMsgFlag = 0; - dev->app_info[i].NumOfMsg = 0; - init_waitqueue_head(&dev->app_info[i].wait_dpram_msg); - INIT_LIST_HEAD(&dev->app_info[i].app_sqlist); - } - - dev->DeviceCreated = TRUE; - ft1000_flarion_cnt++; - - return 0; - -debug_file_fail: - debugfs_remove(dir); -debug_dir_fail: - kfree(tmp); -fail: - return result; -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_DestroyDeviceDEBUG - * - * Parameters: dev - pointer to adapter object - * - * Description: Destroys a private char device. - * - * Notes: Only called by cleanup_module(). - * - *--------------------------------------------------------------------------- - */ -void ft1000_destroy_dev(struct net_device *netdev) -{ - struct ft1000_info *info = netdev_priv(netdev); - struct ft1000_usb *dev = info->priv; - int i; - struct dpram_blk *pdpram_blk; - struct dpram_blk *ptr; - struct list_head *pos, *q; - struct ft1000_debug_dirs *dir; - - if (dev->DeviceCreated) { - ft1000_flarion_cnt--; - list_for_each_safe(pos, q, &dev->nodes.list) { - dir = list_entry(pos, struct ft1000_debug_dirs, list); - if (dir->int_number == dev->CardNumber) { - debugfs_remove(dir->file); - debugfs_remove(dir->dent); - list_del(pos); - kfree(dir); - } - } - pr_debug("unregistered device \"%s\"\n", dev->DeviceName); - - /* Make sure we free any memory reserve for slow Queue */ - for (i = 0; i < MAX_NUM_APP; i++) { - while (list_empty(&dev->app_info[i].app_sqlist) == 0) { - pdpram_blk = list_entry(dev->app_info[i].app_sqlist.next, - struct dpram_blk, list); - list_del(&pdpram_blk->list); - ft1000_free_buffer(pdpram_blk, &freercvpool); - - } - wake_up_interruptible(&dev->app_info[i].wait_dpram_msg); - } - - /* Remove buffer allocated for receive command data */ - if (ft1000_flarion_cnt == 0) { - while (list_empty(&freercvpool) == 0) { - ptr = list_entry(freercvpool.next, struct dpram_blk, list); - list_del(&ptr->list); - kfree(ptr->pbuffer); - kfree(ptr); - } - } - dev->DeviceCreated = FALSE; - } - - -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_open - * - * Parameters: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -static int ft1000_open(struct inode *inode, struct file *file) -{ - struct ft1000_info *info; - struct ft1000_usb *dev = (struct ft1000_usb *)inode->i_private; - int i, num; - - num = MINOR(inode->i_rdev) & 0xf; - pr_debug("minor number=%d\n", num); - - info = file->private_data = netdev_priv(dev->net); - - pr_debug("f_owner = %p number of application = %d\n", - &file->f_owner, dev->appcnt); - - /* Check if maximum number of application exceeded */ - if (dev->appcnt > MAX_NUM_APP) { - pr_debug("Maximum number of application exceeded\n"); - return -EACCES; - } - - /* Search for available application info block */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (dev->app_info[i].fileobject == NULL) - break; - } - - /* Fail due to lack of application info block */ - if (i == MAX_NUM_APP) { - pr_debug("Could not find an application info block\n"); - return -EACCES; - } - - dev->appcnt++; - dev->app_info[i].fileobject = &file->f_owner; - dev->app_info[i].nTxMsg = 0; - dev->app_info[i].nRxMsg = 0; - dev->app_info[i].nTxMsgReject = 0; - dev->app_info[i].nRxMsgMiss = 0; - - nonseekable_open(inode, file); - return 0; -} - - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_poll_dev - * - * Parameters: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ - -static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait) -{ - struct net_device *netdev = file->private_data; - struct ft1000_info *info = netdev_priv(netdev); - struct ft1000_usb *dev = info->priv; - int i; - - if (ft1000_flarion_cnt == 0) { - pr_debug("called with ft1000_flarion_cnt value zero\n"); - return -EBADF; - } - - /* Search for matching file object */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (dev->app_info[i].fileobject == &file->f_owner) { - /* pr_debug("Message is for AppId = %d\n", dev->app_info[i].app_id); */ - break; - } - } - - /* Could not find application info block */ - if (i == MAX_NUM_APP) { - pr_debug("Could not find application info block\n"); - return -EACCES; - } - - if (list_empty(&dev->app_info[i].app_sqlist) == 0) { - pr_debug("Message detected in slow queue\n"); - return(POLLIN | POLLRDNORM | POLLPRI); - } - - poll_wait(file, &dev->app_info[i].wait_dpram_msg, wait); - /* pr_debug("Polling for data from DSP\n"); */ - - return 0; -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_ioctl - * - * Parameters: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -static long ft1000_ioctl(struct file *file, unsigned int command, - unsigned long argument) -{ - void __user *argp = (void __user *)argument; - struct ft1000_info *info; - struct ft1000_usb *ft1000dev; - int result = 0; - int cmd; - int i; - u16 tempword; - unsigned long flags; - struct timeval tv; - struct IOCTL_GET_VER get_ver_data; - struct IOCTL_GET_DSP_STAT get_stat_data; - u8 ConnectionMsg[] = { - 0x00, 0x44, 0x10, 0x20, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x93, 0x64, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x37, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x7f, 0x00, - 0x00, 0x01, 0x00, 0x00 - }; - - unsigned short ledStat = 0; - unsigned short conStat = 0; - - if (ft1000_flarion_cnt == 0) { - pr_debug("called with ft1000_flarion_cnt of zero\n"); - return -EBADF; - } - - /* pr_debug("command = 0x%x argument = 0x%8x\n", command, (u32)argument); */ - - info = file->private_data; - ft1000dev = info->priv; - cmd = _IOC_NR(command); - /* pr_debug("cmd = 0x%x\n", cmd); */ - - /* process the command */ - switch (cmd) { - case IOCTL_REGISTER_CMD: - pr_debug("IOCTL_FT1000_REGISTER called\n"); - result = get_user(tempword, (__u16 __user *)argp); - if (result) { - pr_debug("result = %d failed to get_user\n", result); - break; - } - if (tempword == DSPBCMSGID) { - /* Search for matching file object */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (ft1000dev->app_info[i].fileobject == &file->f_owner) { - ft1000dev->app_info[i].DspBCMsgFlag = 1; - pr_debug("Registered for broadcast messages\n"); - break; - } - } - } - break; - - case IOCTL_GET_VER_CMD: - pr_debug("IOCTL_FT1000_GET_VER called\n"); - - get_ver_data.drv_ver = FT1000_DRV_VER; - - if (copy_to_user(argp, &get_ver_data, sizeof(get_ver_data))) { - pr_debug("copy fault occurred\n"); - result = -EFAULT; - break; - } - - pr_debug("driver version = 0x%x\n", - (unsigned int)get_ver_data.drv_ver); - - break; - case IOCTL_CONNECT: - /* Connect Message */ - pr_debug("IOCTL_FT1000_CONNECT\n"); - ConnectionMsg[79] = 0xfc; - result = card_send_command(ft1000dev, ConnectionMsg, 0x4c); - - break; - case IOCTL_DISCONNECT: - /* Disconnect Message */ - pr_debug("IOCTL_FT1000_DISCONNECT\n"); - ConnectionMsg[79] = 0xfd; - result = card_send_command(ft1000dev, ConnectionMsg, 0x4c); - break; - case IOCTL_GET_DSP_STAT_CMD: - /* pr_debug("IOCTL_FT1000_GET_DSP_STAT\n"); */ - memset(&get_stat_data, 0, sizeof(get_stat_data)); - memcpy(get_stat_data.DspVer, info->DspVer, DSPVERSZ); - memcpy(get_stat_data.HwSerNum, info->HwSerNum, HWSERNUMSZ); - memcpy(get_stat_data.Sku, info->Sku, SKUSZ); - memcpy(get_stat_data.eui64, info->eui64, EUISZ); - - if (info->ProgConStat != 0xFF) { - ft1000_read_dpram16(ft1000dev, FT1000_MAG_DSP_LED, - (u8 *)&ledStat, FT1000_MAG_DSP_LED_INDX); - get_stat_data.LedStat = ntohs(ledStat); - pr_debug("LedStat = 0x%x\n", get_stat_data.LedStat); - ft1000_read_dpram16(ft1000dev, FT1000_MAG_DSP_CON_STATE, - (u8 *)&conStat, FT1000_MAG_DSP_CON_STATE_INDX); - get_stat_data.ConStat = ntohs(conStat); - pr_debug("ConStat = 0x%x\n", get_stat_data.ConStat); - } else { - get_stat_data.ConStat = 0x0f; - } - - - get_stat_data.nTxPkts = info->stats.tx_packets; - get_stat_data.nRxPkts = info->stats.rx_packets; - get_stat_data.nTxBytes = info->stats.tx_bytes; - get_stat_data.nRxBytes = info->stats.rx_bytes; - do_gettimeofday(&tv); - get_stat_data.ConTm = (u32)(tv.tv_sec - info->ConTm); - pr_debug("Connection Time = %d\n", (int)get_stat_data.ConTm); - if (copy_to_user(argp, &get_stat_data, sizeof(get_stat_data))) { - pr_debug("copy fault occurred\n"); - result = -EFAULT; - break; - } - pr_debug("GET_DSP_STAT succeed\n"); - break; - case IOCTL_SET_DPRAM_CMD: - { - struct IOCTL_DPRAM_BLK *dpram_data = NULL; - /* struct IOCTL_DPRAM_COMMAND dpram_command; */ - u16 qtype; - u16 msgsz; - struct pseudo_hdr *ppseudo_hdr; - u16 *pmsg; - u16 total_len; - u16 app_index; - u16 status; - - /* pr_debug("IOCTL_FT1000_SET_DPRAM called\n");*/ - - - if (ft1000_flarion_cnt == 0) - return -EBADF; - - if (ft1000dev->DrvMsgPend) - return -ENOTTY; - - if (ft1000dev->fProvComplete == 0) - return -EACCES; - - ft1000dev->fAppMsgPend = true; - - if (info->CardReady) { - - /* pr_debug("try to SET_DPRAM\n"); */ - - /* Get the length field to see how many bytes to copy */ - result = get_user(msgsz, (__u16 __user *)argp); - if (result) - break; - msgsz = ntohs(msgsz); - /* pr_debug("length of message = %d\n", msgsz); */ - - if (msgsz > MAX_CMD_SQSIZE) { - pr_debug("bad message length = %d\n", msgsz); - result = -EINVAL; - break; - } - - result = -ENOMEM; - dpram_data = kmalloc(msgsz + 2, GFP_KERNEL); - if (!dpram_data) - break; - - if (copy_from_user(dpram_data, argp, msgsz+2)) { - pr_debug("copy fault occurred\n"); - result = -EFAULT; - } else { - /* Check if this message came from a registered application */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (ft1000dev->app_info[i].fileobject == &file->f_owner) - break; - } - if (i == MAX_NUM_APP) { - pr_debug("No matching application fileobject\n"); - result = -EINVAL; - kfree(dpram_data); - break; - } - app_index = i; - - /* Check message qtype type which is the lower byte within qos_class */ - qtype = ntohs(dpram_data->pseudohdr.qos_class) & 0xff; - /* pr_debug("qtype = %d\n", qtype); */ - if (!qtype) { - /* Put message into Slow Queue */ - /* Only put a message into the DPRAM if msg doorbell is available */ - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - /* pr_debug("READ REGISTER tempword=%x\n", tempword); */ - if (tempword & FT1000_DB_DPRAM_TX) { - /* Suspend for 2ms and try again due to DSP doorbell busy */ - mdelay(2); - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - /* Suspend for 1ms and try again due to DSP doorbell busy */ - mdelay(1); - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - /* Suspend for 3ms and try again due to DSP doorbell busy */ - mdelay(3); - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - pr_debug("Doorbell not available\n"); - result = -ENOTTY; - kfree(dpram_data); - break; - } - } - } - } - } - - /*pr_debug("finished reading register\n"); */ - - /* Make sure we are within the limits of the slow queue memory limitation */ - if ((msgsz < MAX_CMD_SQSIZE) && (msgsz > PSEUDOSZ)) { - /* Need to put sequence number plus new checksum for message */ - pmsg = (u16 *)&dpram_data->pseudohdr; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - total_len = msgsz+2; - if (total_len & 0x1) - total_len++; - - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - ppseudo_hdr->portsrc = ft1000dev->app_info[app_index].app_id; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - /* pr_debug("checksum = 0x%x\n", ppseudo_hdr->checksum); */ - for (i = 1; i < 7; i++) { - ppseudo_hdr->checksum ^= *pmsg++; - /* pr_debug("checksum = 0x%x\n", ppseudo_hdr->checksum); */ - } - pmsg++; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - result = card_send_command(ft1000dev, dpram_data, total_len+2); - - - ft1000dev->app_info[app_index].nTxMsg++; - } else { - result = -EINVAL; - } - } - } - } else { - pr_debug("Card not ready take messages\n"); - result = -EACCES; - } - kfree(dpram_data); - - } - break; - case IOCTL_GET_DPRAM_CMD: - { - struct dpram_blk *pdpram_blk; - struct IOCTL_DPRAM_BLK __user *pioctl_dpram; - int msglen; - - /* pr_debug("IOCTL_FT1000_GET_DPRAM called\n"); */ - - if (ft1000_flarion_cnt == 0) - return -EBADF; - - /* Search for matching file object */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (ft1000dev->app_info[i].fileobject == &file->f_owner) { - /*pr_debug("Message is for AppId = %d\n", ft1000dev->app_info[i].app_id); */ - break; - } - } - - /* Could not find application info block */ - if (i == MAX_NUM_APP) { - pr_debug("Could not find application info block\n"); - result = -EBADF; - break; - } - - result = 0; - pioctl_dpram = argp; - if (list_empty(&ft1000dev->app_info[i].app_sqlist) == 0) { - /* pr_debug("Message detected in slow queue\n"); */ - spin_lock_irqsave(&free_buff_lock, flags); - pdpram_blk = list_entry(ft1000dev->app_info[i].app_sqlist.next, - struct dpram_blk, list); - list_del(&pdpram_blk->list); - ft1000dev->app_info[i].NumOfMsg--; - /* pr_debug("NumOfMsg for app %d = %d\n", i, ft1000dev->app_info[i].NumOfMsg); */ - spin_unlock_irqrestore(&free_buff_lock, flags); - msglen = ntohs(*(u16 *)pdpram_blk->pbuffer) + PSEUDOSZ; - result = get_user(msglen, &pioctl_dpram->total_len); - if (result) - break; - msglen = htons(msglen); - /* pr_debug("msg length = %x\n", msglen); */ - if (copy_to_user(&pioctl_dpram->pseudohdr, pdpram_blk->pbuffer, msglen)) { - pr_debug("copy fault occurred\n"); - result = -EFAULT; - break; - } - - ft1000_free_buffer(pdpram_blk, &freercvpool); - result = msglen; - } - /* pr_debug("IOCTL_FT1000_GET_DPRAM no message\n"); */ - } - break; - - default: - pr_debug("unknown command: 0x%x\n", command); - result = -ENOTTY; - break; - } - ft1000dev->fAppMsgPend = false; - return result; -} - -/* - *--------------------------------------------------------------------------- - * Function: ft1000_release - * - * Parameters: - * - * Description: - * - * Notes: - * - *--------------------------------------------------------------------------- - */ -static int ft1000_release(struct inode *inode, struct file *file) -{ - struct ft1000_info *info; - struct net_device *dev; - struct ft1000_usb *ft1000dev; - int i; - struct dpram_blk *pdpram_blk; - struct dpram_blk *tmp; - - dev = file->private_data; - info = netdev_priv(dev); - ft1000dev = info->priv; - - if (ft1000_flarion_cnt == 0) { - ft1000dev->appcnt--; - return -EBADF; - } - - /* Search for matching file object */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (ft1000dev->app_info[i].fileobject == &file->f_owner) { - /* pr_debug("Message is for AppId = %d\n", ft1000dev->app_info[i].app_id); */ - break; - } - } - - if (i == MAX_NUM_APP) - return 0; - - list_for_each_entry_safe(pdpram_blk, tmp, &ft1000dev->app_info[i].app_sqlist, list) { - pr_debug("Remove and free memory queue up on slow queue\n"); - list_del(&pdpram_blk->list); - ft1000_free_buffer(pdpram_blk, &freercvpool); - } - - /* initialize application information */ - ft1000dev->appcnt--; - pr_debug("appcnt = %d\n", ft1000dev->appcnt); - ft1000dev->app_info[i].fileobject = NULL; - - return 0; -} diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c deleted file mode 100644 index cf850212f4b6..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c +++ /dev/null @@ -1,1058 +0,0 @@ -/* - * CopyRight (C) 2007 Qualcomm Inc. All Rights Reserved. - * - * This file is part of Express Card USB Driver - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include -#include "ft1000_usb.h" - - -#define DWNLD_HANDSHAKE_LOC 0x02 -#define DWNLD_TYPE_LOC 0x04 -#define DWNLD_SIZE_MSW_LOC 0x06 -#define DWNLD_SIZE_LSW_LOC 0x08 -#define DWNLD_PS_HDR_LOC 0x0A - -#define MAX_DSP_WAIT_LOOPS 40 -#define DSP_WAIT_SLEEP_TIME 1000 /* 1 millisecond */ -#define DSP_WAIT_DISPATCH_LVL 50 /* 50 usec */ - -#define HANDSHAKE_TIMEOUT_VALUE 0xF1F1 -#define HANDSHAKE_RESET_VALUE 0xFEFE /* When DSP requests startover */ -#define HANDSHAKE_RESET_VALUE_USB 0xFE7E /* When DSP requests startover */ -#define HANDSHAKE_DSP_BL_READY 0xFEFE /* At start DSP writes this when bootloader ready */ -#define HANDSHAKE_DSP_BL_READY_USB 0xFE7E /* At start DSP writes this when bootloader ready */ -#define HANDSHAKE_DRIVER_READY 0xFFFF /* Driver writes after receiving 0xFEFE */ -#define HANDSHAKE_SEND_DATA 0x0000 /* DSP writes this when ready for more data */ - -#define HANDSHAKE_REQUEST 0x0001 /* Request from DSP */ -#define HANDSHAKE_RESPONSE 0x0000 /* Satisfied DSP request */ - -#define REQUEST_CODE_LENGTH 0x0000 -#define REQUEST_RUN_ADDRESS 0x0001 -#define REQUEST_CODE_SEGMENT 0x0002 /* In WORD count */ -#define REQUEST_DONE_BL 0x0003 -#define REQUEST_DONE_CL 0x0004 -#define REQUEST_VERSION_INFO 0x0005 -#define REQUEST_CODE_BY_VERSION 0x0006 -#define REQUEST_MAILBOX_DATA 0x0007 -#define REQUEST_FILE_CHECKSUM 0x0008 - -#define STATE_START_DWNLD 0x01 -#define STATE_BOOT_DWNLD 0x02 -#define STATE_CODE_DWNLD 0x03 -#define STATE_DONE_DWNLD 0x04 -#define STATE_SECTION_PROV 0x05 -#define STATE_DONE_PROV 0x06 -#define STATE_DONE_FILE 0x07 - -#define MAX_LENGTH 0x7f0 - -/* Temporary download mechanism for Magnemite */ -#define DWNLD_MAG_TYPE_LOC 0x00 -#define DWNLD_MAG_LEN_LOC 0x01 -#define DWNLD_MAG_ADDR_LOC 0x02 -#define DWNLD_MAG_CHKSUM_LOC 0x03 -#define DWNLD_MAG_VAL_LOC 0x04 - -#define HANDSHAKE_MAG_DSP_BL_READY 0xFEFE0000 /* At start DSP writes this when bootloader ready */ -#define HANDSHAKE_MAG_DSP_ENTRY 0x01000000 /* Dsp writes this to request for entry address */ -#define HANDSHAKE_MAG_DSP_DATA 0x02000000 /* Dsp writes this to request for data block */ -#define HANDSHAKE_MAG_DSP_DONE 0x03000000 /* Dsp writes this to indicate download done */ - -#define HANDSHAKE_MAG_DRV_READY 0xFFFF0000 /* Driver writes this to indicate ready to download */ -#define HANDSHAKE_MAG_DRV_DATA 0x02FECDAB /* Driver writes this to indicate data available to DSP */ -#define HANDSHAKE_MAG_DRV_ENTRY 0x01FECDAB /* Driver writes this to indicate entry point to DSP */ - -#define HANDSHAKE_MAG_TIMEOUT_VALUE 0xF1F1 - - -/* New Magnemite downloader */ -#define DWNLD_MAG1_HANDSHAKE_LOC 0x00 -#define DWNLD_MAG1_TYPE_LOC 0x01 -#define DWNLD_MAG1_SIZE_LOC 0x02 -#define DWNLD_MAG1_PS_HDR_LOC 0x03 - -struct dsp_file_hdr { - long version_id; /* Version ID of this image format. */ - long package_id; /* Package ID of code release. */ - long build_date; /* Date/time stamp when file was built. */ - long commands_offset; /* Offset to attached commands in Pseudo Hdr format. */ - long loader_offset; /* Offset to bootloader code. */ - long loader_code_address; /* Start address of bootloader. */ - long loader_code_end; /* Where bootloader code ends. */ - long loader_code_size; - long version_data_offset; /* Offset were scrambled version data begins. */ - long version_data_size; /* Size, in words, of scrambled version data. */ - long nDspImages; /* Number of DSP images in file. */ -}; - -struct dsp_image_info { - long coff_date; /* Date/time when DSP Coff image was built. */ - long begin_offset; /* Offset in file where image begins. */ - long end_offset; /* Offset in file where image begins. */ - long run_address; /* On chip Start address of DSP code. */ - long image_size; /* Size of image. */ - long version; /* Embedded version # of DSP code. */ - unsigned short checksum; /* DSP File checksum */ - unsigned short pad1; -} __packed; - - -/* checks if the doorbell register is cleared */ -static int check_usb_db(struct ft1000_usb *ft1000dev) -{ - int loopcnt; - u16 temp; - int status; - - loopcnt = 0; - - while (loopcnt < 10) { - status = ft1000_read_register(ft1000dev, &temp, - FT1000_REG_DOORBELL); - pr_debug("read FT1000_REG_DOORBELL value is %x\n", temp); - if (temp & 0x0080) { - pr_debug("Got checkusb doorbell\n"); - status = ft1000_write_register(ft1000dev, 0x0080, - FT1000_REG_DOORBELL); - status = ft1000_write_register(ft1000dev, 0x0100, - FT1000_REG_DOORBELL); - status = ft1000_write_register(ft1000dev, 0x8000, - FT1000_REG_DOORBELL); - break; - } - loopcnt++; - usleep_range(10000, 11000); - - } - - loopcnt = 0; - while (loopcnt < 20) { - status = ft1000_read_register(ft1000dev, &temp, - FT1000_REG_DOORBELL); - pr_debug("Doorbell = 0x%x\n", temp); - if (temp & 0x8000) { - loopcnt++; - usleep_range(10000, 11000); - } else { - pr_debug("door bell is cleared, return 0\n"); - return 0; - } - } - - return -1; -} - -/* gets the handshake and compares it with the expected value */ -static u16 get_handshake(struct ft1000_usb *ft1000dev, u16 expected_value) -{ - u16 handshake; - int loopcnt; - int status = 0; - - loopcnt = 0; - - while (loopcnt < 100) { - /* Need to clear downloader doorbell if Hartley ASIC */ - status = ft1000_write_register(ft1000dev, FT1000_DB_DNLD_RX, - FT1000_REG_DOORBELL); - if (ft1000dev->fcodeldr) { - pr_debug("fcodeldr is %d\n", ft1000dev->fcodeldr); - ft1000dev->fcodeldr = 0; - status = check_usb_db(ft1000dev); - if (status != 0) { - pr_debug("check_usb_db failed\n"); - break; - } - status = ft1000_write_register(ft1000dev, - FT1000_DB_DNLD_RX, - FT1000_REG_DOORBELL); - } - - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_HANDSHAKE_LOC, - (u8 *)&handshake, 1); - handshake = ntohs(handshake); - - if (status) - return HANDSHAKE_TIMEOUT_VALUE; - - if ((handshake == expected_value) || - (handshake == HANDSHAKE_RESET_VALUE_USB)) { - return handshake; - } - loopcnt++; - usleep_range(10000, 11000); - } - - return HANDSHAKE_TIMEOUT_VALUE; -} - -/* write the handshake value to the handshake location */ -static void put_handshake(struct ft1000_usb *ft1000dev, u16 handshake_value) -{ - u32 tempx; - u16 tempword; - int status; - - tempx = (u32)handshake_value; - tempx = ntohl(tempx); - - tempword = (u16)(tempx & 0xffff); - status = ft1000_write_dpram16(ft1000dev, DWNLD_MAG1_HANDSHAKE_LOC, - tempword, 0); - tempword = (u16)(tempx >> 16); - status = ft1000_write_dpram16(ft1000dev, DWNLD_MAG1_HANDSHAKE_LOC, - tempword, 1); - status = ft1000_write_register(ft1000dev, FT1000_DB_DNLD_TX, - FT1000_REG_DOORBELL); -} - -static u16 get_handshake_usb(struct ft1000_usb *ft1000dev, u16 expected_value) -{ - u16 handshake; - int loopcnt; - u16 temp; - int status = 0; - - loopcnt = 0; - handshake = 0; - - while (loopcnt < 100) { - if (ft1000dev->usbboot == 2) { - status = ft1000_read_dpram32(ft1000dev, 0, - (u8 *)&ft1000dev->tempbuf[0], 64); - for (temp = 0; temp < 16; temp++) { - pr_debug("tempbuf %d = 0x%x\n", - temp, ft1000dev->tempbuf[temp]); - } - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_HANDSHAKE_LOC, - (u8 *)&handshake, 1); - pr_debug("handshake from read_dpram16 = 0x%x\n", - handshake); - if (ft1000dev->dspalive == ft1000dev->tempbuf[6]) { - handshake = 0; - } else { - handshake = ft1000dev->tempbuf[1]; - ft1000dev->dspalive = - ft1000dev->tempbuf[6]; - } - } else { - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_HANDSHAKE_LOC, - (u8 *)&handshake, 1); - } - - loopcnt++; - usleep_range(10000, 11000); - handshake = ntohs(handshake); - if ((handshake == expected_value) || - (handshake == HANDSHAKE_RESET_VALUE_USB)) - return handshake; - } - - return HANDSHAKE_TIMEOUT_VALUE; -} - -static void put_handshake_usb(struct ft1000_usb *ft1000dev, u16 handshake_value) -{ - int i; - - for (i = 0; i < 1000; i++) - ; -} - -static u16 get_request_type(struct ft1000_usb *ft1000dev) -{ - u16 request_type; - int status; - u16 tempword; - u32 tempx; - - if (ft1000dev->bootmode == 1) { - status = fix_ft1000_read_dpram32(ft1000dev, - DWNLD_MAG1_TYPE_LOC, - (u8 *)&tempx); - tempx = ntohl(tempx); - } else { - tempx = 0; - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_TYPE_LOC, - (u8 *)&tempword, 1); - tempx |= (tempword << 16); - tempx = ntohl(tempx); - } - request_type = (u16)tempx; - - return request_type; -} - -static u16 get_request_type_usb(struct ft1000_usb *ft1000dev) -{ - u16 request_type; - int status; - u16 tempword; - u32 tempx; - - if (ft1000dev->bootmode == 1) { - status = fix_ft1000_read_dpram32(ft1000dev, - DWNLD_MAG1_TYPE_LOC, - (u8 *)&tempx); - tempx = ntohl(tempx); - } else { - if (ft1000dev->usbboot == 2) { - tempx = ft1000dev->tempbuf[2]; - tempword = ft1000dev->tempbuf[3]; - } else { - tempx = 0; - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_TYPE_LOC, - (u8 *)&tempword, 1); - } - tempx |= (tempword << 16); - tempx = ntohl(tempx); - } - request_type = (u16)tempx; - - return request_type; -} - -static long get_request_value(struct ft1000_usb *ft1000dev) -{ - u32 value; - u16 tempword; - int status; - - if (ft1000dev->bootmode == 1) { - status = fix_ft1000_read_dpram32(ft1000dev, - DWNLD_MAG1_SIZE_LOC, - (u8 *)&value); - value = ntohl(value); - } else { - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_SIZE_LOC, - (u8 *)&tempword, 0); - value = tempword; - status = ft1000_read_dpram16(ft1000dev, - DWNLD_MAG1_SIZE_LOC, - (u8 *)&tempword, 1); - value |= (tempword << 16); - value = ntohl(value); - } - - return value; -} - - -/* writes a value to DWNLD_MAG1_SIZE_LOC */ -static void put_request_value(struct ft1000_usb *ft1000dev, long lvalue) -{ - u32 tempx; - int status; - - tempx = ntohl(lvalue); - status = fix_ft1000_write_dpram32(ft1000dev, DWNLD_MAG1_SIZE_LOC, - (u8 *)&tempx); -} - - - -/* returns the checksum of the pseudo header */ -static u16 hdr_checksum(struct pseudo_hdr *pHdr) -{ - u16 *usPtr = (u16 *)pHdr; - u16 chksum; - - - chksum = (((((usPtr[0] ^ usPtr[1]) ^ usPtr[2]) ^ usPtr[3]) ^ - usPtr[4]) ^ usPtr[5]) ^ usPtr[6]; - - return chksum; -} - -static int check_buffers(u16 *buff_w, u16 *buff_r, int len, int offset) -{ - int i; - - for (i = 0; i < len; i++) { - if (buff_w[i] != buff_r[i + offset]) - return -EREMOTEIO; - } - - return 0; -} - -static int write_dpram32_and_check(struct ft1000_usb *ft1000dev, - u16 tempbuffer[], u16 dpram) -{ - int status; - u16 resultbuffer[64]; - int i; - - for (i = 0; i < 10; i++) { - status = ft1000_write_dpram32(ft1000dev, dpram, - (u8 *)&tempbuffer[0], 64); - if (status == 0) { - /* Work around for ASIC bit stuffing problem. */ - if ((tempbuffer[31] & 0xfe00) == 0xfe00) { - status = ft1000_write_dpram32(ft1000dev, - dpram+12, (u8 *)&tempbuffer[24], - 64); - } - /* Let's check the data written */ - status = ft1000_read_dpram32(ft1000dev, dpram, - (u8 *)&resultbuffer[0], 64); - if ((tempbuffer[31] & 0xfe00) == 0xfe00) { - if (check_buffers(tempbuffer, resultbuffer, 28, - 0)) { - pr_debug("DPRAM write failed 1 during bootloading\n"); - usleep_range(9000, 11000); - break; - } - status = ft1000_read_dpram32(ft1000dev, - dpram+12, - (u8 *)&resultbuffer[0], 64); - - if (check_buffers(tempbuffer, resultbuffer, 16, - 24)) { - pr_debug("DPRAM write failed 2 during bootloading\n"); - usleep_range(9000, 11000); - break; - } - } else { - if (check_buffers(tempbuffer, resultbuffer, 32, - 0)) { - pr_debug("DPRAM write failed 3 during bootloading\n"); - usleep_range(9000, 11000); - break; - } - } - if (status == 0) - break; - } - } - return status; -} - -/* writes a block of DSP image to DPRAM - * Parameters: struct ft1000_usb - device structure - * u16 **pUsFile - DSP image file pointer in u16 - * u8 **pUcFile - DSP image file pointer in u8 - * long word_length - length of the buffer to be written to DPRAM - */ -static int write_blk(struct ft1000_usb *ft1000dev, u16 **pUsFile, u8 **pUcFile, - long word_length) -{ - int status = 0; - u16 dpram; - int loopcnt, i; - u16 tempword; - u16 tempbuffer[64]; - - /*pr_debug("start word_length = %d\n",(int)word_length); */ - dpram = (u16)DWNLD_MAG1_PS_HDR_LOC; - tempword = *(*pUsFile); - (*pUsFile)++; - status = ft1000_write_dpram16(ft1000dev, dpram, tempword, 0); - tempword = *(*pUsFile); - (*pUsFile)++; - status = ft1000_write_dpram16(ft1000dev, dpram++, tempword, 1); - - *pUcFile = *pUcFile + 4; - word_length--; - tempword = (u16)word_length; - word_length = (word_length / 16) + 1; - for (; word_length > 0; word_length--) { /* In words */ - loopcnt = 0; - for (i = 0; i < 32; i++) { - if (tempword != 0) { - tempbuffer[i++] = *(*pUsFile); - (*pUsFile)++; - tempbuffer[i] = *(*pUsFile); - (*pUsFile)++; - *pUcFile = *pUcFile + 4; - loopcnt++; - tempword--; - } else { - tempbuffer[i++] = 0; - tempbuffer[i] = 0; - } - } - - /*pr_debug("loopcnt is %d\n", loopcnt); */ - /*pr_debug("write_blk: bootmode = %d\n", bootmode); */ - /*pr_debug("write_blk: dpram = %x\n", dpram); */ - if (ft1000dev->bootmode == 0) { - if (dpram >= 0x3F4) - status = ft1000_write_dpram32(ft1000dev, dpram, - (u8 *)&tempbuffer[0], 8); - else - status = ft1000_write_dpram32(ft1000dev, dpram, - (u8 *)&tempbuffer[0], 64); - } else { - status = write_dpram32_and_check(ft1000dev, tempbuffer, - dpram); - if (status != 0) { - pr_debug("Write failed tempbuffer[31] = 0x%x\n", - tempbuffer[31]); - break; - } - } - dpram = dpram + loopcnt; - } - return status; -} - -static void usb_dnld_complete(struct urb *urb) -{ - /* pr_debug("****** usb_dnld_complete\n"); */ -} - -/* writes a block of DSP image to DPRAM - * Parameters: struct ft1000_usb - device structure - * u16 **pUsFile - DSP image file pointer in u16 - * u8 **pUcFile - DSP image file pointer in u8 - * long word_length - length of the buffer to be written to DPRAM - */ -static int write_blk_fifo(struct ft1000_usb *ft1000dev, u16 **pUsFile, - u8 **pUcFile, long word_length) -{ - int byte_length; - - byte_length = word_length * 4; - - if (byte_length && ((byte_length % 64) == 0)) - byte_length += 4; - - if (byte_length < 64) - byte_length = 68; - - usb_init_urb(ft1000dev->tx_urb); - memcpy(ft1000dev->tx_buf, *pUcFile, byte_length); - usb_fill_bulk_urb(ft1000dev->tx_urb, - ft1000dev->dev, - usb_sndbulkpipe(ft1000dev->dev, - ft1000dev->bulk_out_endpointAddr), - ft1000dev->tx_buf, byte_length, usb_dnld_complete, - ft1000dev); - - usb_submit_urb(ft1000dev->tx_urb, GFP_ATOMIC); - - *pUsFile = *pUsFile + (word_length << 1); - *pUcFile = *pUcFile + (word_length << 2); - - return 0; -} - -static int scram_start_dwnld(struct ft1000_usb *ft1000dev, u16 *hshake, - u32 *state) -{ - int status = 0; - - if (ft1000dev->usbboot) - *hshake = get_handshake_usb(ft1000dev, HANDSHAKE_DSP_BL_READY); - else - *hshake = get_handshake(ft1000dev, HANDSHAKE_DSP_BL_READY); - if (*hshake == HANDSHAKE_DSP_BL_READY) { - pr_debug("handshake is HANDSHAKE_DSP_BL_READY, call put_handshake(HANDSHAKE_DRIVER_READY)\n"); - put_handshake(ft1000dev, HANDSHAKE_DRIVER_READY); - } else if (*hshake == HANDSHAKE_TIMEOUT_VALUE) { - status = -ETIMEDOUT; - } else { - pr_debug("Download error: Handshake failed\n"); - status = -ENETRESET; - } - *state = STATE_BOOT_DWNLD; - return status; -} - -static int request_code_segment(struct ft1000_usb *ft1000dev, u16 **s_file, - u8 **c_file, const u8 *endpoint, bool boot_case) -{ - long word_length; - int status = 0; - - word_length = get_request_value(ft1000dev); - /*pr_debug("word_length = 0x%x\n", (int)word_length); */ - /*NdisMSleep (100); */ - if (word_length > MAX_LENGTH) { - pr_debug("Download error: Max length exceeded\n"); - return -1; - } - if ((word_length * 2 + (long)c_file) > (long)endpoint) { - /* Error, beyond boot code range.*/ - pr_debug("Download error: Requested len=%d exceeds BOOT code boundary\n", - (int)word_length); - return -1; - } - if (word_length & 0x1) - word_length++; - word_length = word_length / 2; - - if (boot_case) { - status = write_blk(ft1000dev, s_file, c_file, word_length); - /*pr_debug("write_blk returned %d\n", status); */ - } else { - status = write_blk_fifo(ft1000dev, s_file, c_file, word_length); - if (ft1000dev->usbboot == 0) - ft1000dev->usbboot++; - if (ft1000dev->usbboot == 1) - status |= ft1000_write_dpram16(ft1000dev, - DWNLD_MAG1_PS_HDR_LOC, 0, 0); - } - return status; -} - -/* Scramble downloader for Harley based ASIC via USB interface */ -int scram_dnldr(struct ft1000_usb *ft1000dev, void *pFileStart, - u32 FileLength) -{ - int status = 0; - u32 state; - u16 handshake; - struct pseudo_hdr *pseudo_header; - u16 pseudo_header_len; - long word_length; - u16 request; - u16 temp; - - struct dsp_file_hdr *file_hdr; - struct dsp_image_info *dsp_img_info = NULL; - long requested_version; - bool correct_version; - struct drv_msg *mailbox_data; - u16 *data = NULL; - u16 *s_file = NULL; - u8 *c_file = NULL; - u8 *boot_end = NULL, *code_end = NULL; - int image; - long loader_code_address, loader_code_size = 0; - long run_address = 0, run_size = 0; - - u32 templong; - u32 image_chksum = 0; - - u16 dpram = 0; - u8 *pbuffer; - struct prov_record *pprov_record; - struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net); - - ft1000dev->fcodeldr = 0; - ft1000dev->usbboot = 0; - ft1000dev->dspalive = 0xffff; - - /* - * Get version id of file, at first 4 bytes of file, for newer files. - */ - - state = STATE_START_DWNLD; - - file_hdr = pFileStart; - - ft1000_write_register(ft1000dev, 0x800, FT1000_REG_MAG_WATERMARK); - - s_file = (u16 *) (pFileStart + file_hdr->loader_offset); - c_file = (u8 *) (pFileStart + file_hdr->loader_offset); - - boot_end = (u8 *) (pFileStart + file_hdr->loader_code_end); - - loader_code_address = file_hdr->loader_code_address; - loader_code_size = file_hdr->loader_code_size; - correct_version = false; - - while ((status == 0) && (state != STATE_DONE_FILE)) { - switch (state) { - case STATE_START_DWNLD: - status = scram_start_dwnld(ft1000dev, &handshake, - &state); - break; - - case STATE_BOOT_DWNLD: - pr_debug("STATE_BOOT_DWNLD\n"); - ft1000dev->bootmode = 1; - handshake = get_handshake(ft1000dev, HANDSHAKE_REQUEST); - if (handshake == HANDSHAKE_REQUEST) { - /* - * Get type associated with the request. - */ - request = get_request_type(ft1000dev); - switch (request) { - case REQUEST_RUN_ADDRESS: - pr_debug("REQUEST_RUN_ADDRESS\n"); - put_request_value(ft1000dev, - loader_code_address); - break; - case REQUEST_CODE_LENGTH: - pr_debug("REQUEST_CODE_LENGTH\n"); - put_request_value(ft1000dev, - loader_code_size); - break; - case REQUEST_DONE_BL: - pr_debug("REQUEST_DONE_BL\n"); - /* Reposition ptrs to beginning of code section */ - s_file = (u16 *) (boot_end); - c_file = (u8 *) (boot_end); - /* pr_debug("download:s_file = 0x%8x\n", (int)s_file); */ - /* pr_debug("FT1000:download:c_file = 0x%8x\n", (int)c_file); */ - state = STATE_CODE_DWNLD; - ft1000dev->fcodeldr = 1; - break; - case REQUEST_CODE_SEGMENT: - status = request_code_segment(ft1000dev, - &s_file, &c_file, - boot_end, - true); - break; - default: - pr_debug("Download error: Bad request type=%d in BOOT download state\n", - request); - status = -1; - break; - } - if (ft1000dev->usbboot) - put_handshake_usb(ft1000dev, - HANDSHAKE_RESPONSE); - else - put_handshake(ft1000dev, - HANDSHAKE_RESPONSE); - } else { - pr_debug("Download error: Handshake failed\n"); - status = -1; - } - - break; - - case STATE_CODE_DWNLD: - /* pr_debug("STATE_CODE_DWNLD\n"); */ - ft1000dev->bootmode = 0; - if (ft1000dev->usbboot) - handshake = - get_handshake_usb(ft1000dev, - HANDSHAKE_REQUEST); - else - handshake = - get_handshake(ft1000dev, HANDSHAKE_REQUEST); - if (handshake == HANDSHAKE_REQUEST) { - /* - * Get type associated with the request. - */ - if (ft1000dev->usbboot) - request = - get_request_type_usb(ft1000dev); - else - request = get_request_type(ft1000dev); - switch (request) { - case REQUEST_FILE_CHECKSUM: - pr_debug("image_chksum = 0x%8x\n", - image_chksum); - put_request_value(ft1000dev, - image_chksum); - break; - case REQUEST_RUN_ADDRESS: - pr_debug("REQUEST_RUN_ADDRESS\n"); - if (correct_version) { - pr_debug("run_address = 0x%8x\n", - (int)run_address); - put_request_value(ft1000dev, - run_address); - } else { - pr_debug("Download error: Got Run address request before image offset request\n"); - status = -1; - break; - } - break; - case REQUEST_CODE_LENGTH: - pr_debug("REQUEST_CODE_LENGTH\n"); - if (correct_version) { - pr_debug("run_size = 0x%8x\n", - (int)run_size); - put_request_value(ft1000dev, - run_size); - } else { - pr_debug("Download error: Got Size request before image offset request\n"); - status = -1; - break; - } - break; - case REQUEST_DONE_CL: - ft1000dev->usbboot = 3; - /* Reposition ptrs to beginning of provisioning section */ - s_file = - (u16 *) (pFileStart + - file_hdr->commands_offset); - c_file = - (u8 *) (pFileStart + - file_hdr->commands_offset); - state = STATE_DONE_DWNLD; - break; - case REQUEST_CODE_SEGMENT: - /* pr_debug("REQUEST_CODE_SEGMENT - CODELOADER\n"); */ - if (!correct_version) { - pr_debug("Download error: Got Code Segment request before image offset request\n"); - status = -1; - break; - } - - status = request_code_segment(ft1000dev, - &s_file, &c_file, - code_end, - false); - - break; - - case REQUEST_MAILBOX_DATA: - pr_debug("REQUEST_MAILBOX_DATA\n"); - /* Convert length from byte count to word count. Make sure we round up. */ - word_length = - (long)(pft1000info->DSPInfoBlklen + - 1) / 2; - put_request_value(ft1000dev, - word_length); - mailbox_data = - (struct drv_msg *)&(pft1000info-> - DSPInfoBlk[0]); - /* - * Position ASIC DPRAM auto-increment pointer. - */ - - data = (u16 *)&mailbox_data->data[0]; - dpram = (u16)DWNLD_MAG1_PS_HDR_LOC; - if (word_length & 0x1) - word_length++; - - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - - templong = *data++; - templong |= (*data++ << 16); - status = - fix_ft1000_write_dpram32 - (ft1000dev, dpram++, - (u8 *)&templong); - - } - break; - - case REQUEST_VERSION_INFO: - pr_debug("REQUEST_VERSION_INFO\n"); - word_length = - file_hdr->version_data_size; - put_request_value(ft1000dev, - word_length); - /* - * Position ASIC DPRAM auto-increment pointer. - */ - - s_file = - (u16 *) (pFileStart + - file_hdr-> - version_data_offset); - - dpram = (u16)DWNLD_MAG1_PS_HDR_LOC; - if (word_length & 0x1) - word_length++; - - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - - templong = ntohs(*s_file++); - temp = ntohs(*s_file++); - templong |= (temp << 16); - status = - fix_ft1000_write_dpram32 - (ft1000dev, dpram++, - (u8 *)&templong); - - } - break; - - case REQUEST_CODE_BY_VERSION: - pr_debug("REQUEST_CODE_BY_VERSION\n"); - correct_version = false; - requested_version = - get_request_value(ft1000dev); - - dsp_img_info = - (struct dsp_image_info *)(pFileStart - + - sizeof - (struct - dsp_file_hdr)); - - for (image = 0; - image < file_hdr->nDspImages; - image++) { - - if (dsp_img_info->version == - requested_version) { - correct_version = true; - pr_debug("correct_version is TRUE\n"); - s_file = - (u16 *) (pFileStart - + - dsp_img_info-> - begin_offset); - c_file = - (u8 *) (pFileStart + - dsp_img_info-> - begin_offset); - code_end = - (u8 *) (pFileStart + - dsp_img_info-> - end_offset); - run_address = - dsp_img_info-> - run_address; - run_size = - dsp_img_info-> - image_size; - image_chksum = - (u32)dsp_img_info-> - checksum; - break; - } - dsp_img_info++; - - } /* end of for */ - - if (!correct_version) { - /* - * Error, beyond boot code range. - */ - pr_debug("Download error: Bad Version Request = 0x%x.\n", - (int)requested_version); - status = -1; - break; - } - break; - - default: - pr_debug("Download error: Bad request type=%d in CODE download state.\n", - request); - status = -1; - break; - } - if (ft1000dev->usbboot) - put_handshake_usb(ft1000dev, - HANDSHAKE_RESPONSE); - else - put_handshake(ft1000dev, - HANDSHAKE_RESPONSE); - } else { - pr_debug("Download error: Handshake failed\n"); - status = -1; - } - - break; - - case STATE_DONE_DWNLD: - pr_debug("Code loader is done...\n"); - state = STATE_SECTION_PROV; - break; - - case STATE_SECTION_PROV: - pr_debug("STATE_SECTION_PROV\n"); - pseudo_header = (struct pseudo_hdr *)c_file; - - if (pseudo_header->checksum == - hdr_checksum(pseudo_header)) { - if (pseudo_header->portdest != - 0x80 /* Dsp OAM */) { - state = STATE_DONE_PROV; - break; - } - pseudo_header_len = ntohs(pseudo_header->length); /* Byte length for PROV records */ - - /* Get buffer for provisioning data */ - pbuffer = - kmalloc(pseudo_header_len + - sizeof(struct pseudo_hdr), - GFP_ATOMIC); - if (pbuffer) { - memcpy(pbuffer, c_file, - (u32) (pseudo_header_len + - sizeof(struct - pseudo_hdr))); - /* link provisioning data */ - pprov_record = - kmalloc(sizeof(struct prov_record), - GFP_ATOMIC); - if (pprov_record) { - pprov_record->pprov_data = - pbuffer; - list_add_tail(&pprov_record-> - list, - &pft1000info-> - prov_list); - /* Move to next entry if available */ - c_file = - (u8 *) ((unsigned long) - c_file + - (u32) ((pseudo_header_len + 1) & 0xFFFFFFFE) + sizeof(struct pseudo_hdr)); - if ((unsigned long)(c_file) - - (unsigned long)(pFileStart) - >= - (unsigned long)FileLength) { - state = STATE_DONE_FILE; - } - } else { - kfree(pbuffer); - status = -1; - } - } else { - status = -1; - } - } else { - /* Checksum did not compute */ - status = -1; - } - pr_debug("after STATE_SECTION_PROV, state = %d, status= %d\n", - state, status); - break; - - case STATE_DONE_PROV: - pr_debug("STATE_DONE_PROV\n"); - state = STATE_DONE_FILE; - break; - - default: - status = -1; - break; - } /* End Switch */ - - if (status != 0) - break; - -/**** - // Check if Card is present - status = Harley_Read_Register(&temp, FT1000_REG_SUP_IMASK); - if ( (status != NDIS_STATUS_SUCCESS) || (temp == 0x0000) ) { - break; - } - - status = Harley_Read_Register(&temp, FT1000_REG_ASIC_ID); - if ( (status != NDIS_STATUS_SUCCESS) || (temp == 0xffff) ) { - break; - } -****/ - - } /* End while */ - - pr_debug("Download exiting with status = 0x%8x\n", status); - ft1000_write_register(ft1000dev, FT1000_DB_DNLD_TX, - FT1000_REG_DOORBELL); - - return status; -} diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c deleted file mode 100644 index 9ea32cea2c03..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c +++ /dev/null @@ -1,1586 +0,0 @@ -/* CopyRight (C) 2007 Qualcomm Inc. All Rights Reserved. - * - * - * This file is part of Express Card USB Driver - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include "ft1000_usb.h" -#include - -#define HARLEY_READ_REGISTER 0x0 -#define HARLEY_WRITE_REGISTER 0x01 -#define HARLEY_READ_DPRAM_32 0x02 -#define HARLEY_READ_DPRAM_LOW 0x03 -#define HARLEY_READ_DPRAM_HIGH 0x04 -#define HARLEY_WRITE_DPRAM_32 0x05 -#define HARLEY_WRITE_DPRAM_LOW 0x06 -#define HARLEY_WRITE_DPRAM_HIGH 0x07 - -#define HARLEY_READ_OPERATION 0xc1 -#define HARLEY_WRITE_OPERATION 0x41 - -#if 0 -#define JDEBUG -#endif - -static int ft1000_submit_rx_urb(struct ft1000_info *info); - -static u8 tempbuffer[1600]; - -#define MAX_RCV_LOOP 100 - -/* send a control message via USB interface synchronously - * Parameters: ft1000_usb - device structure - * pipe - usb control message pipe - * request - control request - * requesttype - control message request type - * value - value to be written or 0 - * index - register index - * data - data buffer to hold the read/write values - * size - data size - * timeout - control message time out value - */ -static int ft1000_control(struct ft1000_usb *ft1000dev, unsigned int pipe, - u8 request, u8 requesttype, u16 value, u16 index, - void *data, u16 size, int timeout) -{ - int ret; - - if ((ft1000dev == NULL) || (ft1000dev->dev == NULL)) { - pr_debug("ft1000dev or ft1000dev->dev == NULL, failure\n"); - return -ENODEV; - } - - ret = usb_control_msg(ft1000dev->dev, pipe, request, requesttype, - value, index, data, size, timeout); - - if (ret > 0) - ret = 0; - - return ret; -} - -/* returns the value in a register */ -int ft1000_read_register(struct ft1000_usb *ft1000dev, u16 *Data, - u16 nRegIndx) -{ - int ret = 0; - - ret = ft1000_control(ft1000dev, - usb_rcvctrlpipe(ft1000dev->dev, 0), - HARLEY_READ_REGISTER, - HARLEY_READ_OPERATION, - 0, - nRegIndx, - Data, - 2, - USB_CTRL_GET_TIMEOUT); - - return ret; -} - -/* writes the value in a register */ -int ft1000_write_register(struct ft1000_usb *ft1000dev, u16 value, - u16 nRegIndx) -{ - int ret = 0; - - ret = ft1000_control(ft1000dev, - usb_sndctrlpipe(ft1000dev->dev, 0), - HARLEY_WRITE_REGISTER, - HARLEY_WRITE_OPERATION, - value, - nRegIndx, - NULL, - 0, - USB_CTRL_SET_TIMEOUT); - - return ret; -} - -/* read a number of bytes from DPRAM */ -int ft1000_read_dpram32(struct ft1000_usb *ft1000dev, u16 indx, u8 *buffer, - u16 cnt) -{ - int ret = 0; - - ret = ft1000_control(ft1000dev, - usb_rcvctrlpipe(ft1000dev->dev, 0), - HARLEY_READ_DPRAM_32, - HARLEY_READ_OPERATION, - 0, - indx, - buffer, - cnt, - USB_CTRL_GET_TIMEOUT); - - return ret; -} - -/* writes into DPRAM a number of bytes */ -int ft1000_write_dpram32(struct ft1000_usb *ft1000dev, u16 indx, u8 *buffer, - u16 cnt) -{ - int ret = 0; - - if (cnt % 4) - cnt += cnt - (cnt % 4); - - ret = ft1000_control(ft1000dev, - usb_sndctrlpipe(ft1000dev->dev, 0), - HARLEY_WRITE_DPRAM_32, - HARLEY_WRITE_OPERATION, - 0, - indx, - buffer, - cnt, - USB_CTRL_SET_TIMEOUT); - - return ret; -} - -/* read 16 bits from DPRAM */ -int ft1000_read_dpram16(struct ft1000_usb *ft1000dev, u16 indx, u8 *buffer, - u8 highlow) -{ - int ret = 0; - u8 request; - - if (highlow == 0) - request = HARLEY_READ_DPRAM_LOW; - else - request = HARLEY_READ_DPRAM_HIGH; - - ret = ft1000_control(ft1000dev, - usb_rcvctrlpipe(ft1000dev->dev, 0), - request, - HARLEY_READ_OPERATION, - 0, - indx, - buffer, - 2, - USB_CTRL_GET_TIMEOUT); - - return ret; -} - -/* write into DPRAM a number of bytes */ -int ft1000_write_dpram16(struct ft1000_usb *ft1000dev, u16 indx, u16 value, - u8 highlow) -{ - int ret = 0; - u8 request; - - if (highlow == 0) - request = HARLEY_WRITE_DPRAM_LOW; - else - request = HARLEY_WRITE_DPRAM_HIGH; - - ret = ft1000_control(ft1000dev, - usb_sndctrlpipe(ft1000dev->dev, 0), - request, - HARLEY_WRITE_OPERATION, - value, - indx, - NULL, - 0, - USB_CTRL_SET_TIMEOUT); - - return ret; -} - -/* read DPRAM 4 words at a time */ -int fix_ft1000_read_dpram32(struct ft1000_usb *ft1000dev, u16 indx, - u8 *buffer) -{ - u8 buf[16]; - u16 pos; - int ret = 0; - - pos = (indx / 4) * 4; - ret = ft1000_read_dpram32(ft1000dev, pos, buf, 16); - - if (ret == 0) { - pos = (indx % 4) * 4; - *buffer++ = buf[pos++]; - *buffer++ = buf[pos++]; - *buffer++ = buf[pos++]; - *buffer++ = buf[pos++]; - } else { - pr_debug("DPRAM32 Read failed\n"); - *buffer++ = 0; - *buffer++ = 0; - *buffer++ = 0; - *buffer++ = 0; - } - - return ret; -} - - -/* Description: This function write to DPRAM 4 words at a time */ -int fix_ft1000_write_dpram32(struct ft1000_usb *ft1000dev, u16 indx, u8 *buffer) -{ - u16 pos1; - u16 pos2; - u16 i; - u8 buf[32]; - u8 resultbuffer[32]; - u8 *pdata; - int ret = 0; - - pos1 = (indx / 4) * 4; - pdata = buffer; - ret = ft1000_read_dpram32(ft1000dev, pos1, buf, 16); - - if (ret == 0) { - pos2 = (indx % 4)*4; - buf[pos2++] = *buffer++; - buf[pos2++] = *buffer++; - buf[pos2++] = *buffer++; - buf[pos2++] = *buffer++; - ret = ft1000_write_dpram32(ft1000dev, pos1, buf, 16); - } else { - pr_debug("DPRAM32 Read failed\n"); - return ret; - } - - ret = ft1000_read_dpram32(ft1000dev, pos1, (u8 *)&resultbuffer[0], 16); - - if (ret == 0) { - buffer = pdata; - for (i = 0; i < 16; i++) { - if (buf[i] != resultbuffer[i]) - ret = -1; - } - } - - if (ret == -1) { - ret = ft1000_write_dpram32(ft1000dev, pos1, - (u8 *)&tempbuffer[0], 16); - ret = ft1000_read_dpram32(ft1000dev, pos1, - (u8 *)&resultbuffer[0], 16); - if (ret == 0) { - buffer = pdata; - for (i = 0; i < 16; i++) { - if (tempbuffer[i] != resultbuffer[i]) { - ret = -1; - pr_debug("Failed to write\n"); - } - } - } - } - - return ret; -} - -/* reset or activate the DSP */ -static void card_reset_dsp(struct ft1000_usb *ft1000dev, bool value) -{ - int status = 0; - u16 tempword; - - status = ft1000_write_register(ft1000dev, HOST_INTF_BE, - FT1000_REG_SUP_CTRL); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_SUP_CTRL); - - if (value) { - pr_debug("Reset DSP\n"); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_RESET); - tempword |= DSP_RESET_BIT; - status = ft1000_write_register(ft1000dev, tempword, - FT1000_REG_RESET); - } else { - pr_debug("Activate DSP\n"); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_RESET); - tempword |= DSP_ENCRYPTED; - tempword &= ~DSP_UNENCRYPTED; - status = ft1000_write_register(ft1000dev, tempword, - FT1000_REG_RESET); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_RESET); - tempword &= ~EFUSE_MEM_DISABLE; - tempword &= ~DSP_RESET_BIT; - status = ft1000_write_register(ft1000dev, tempword, - FT1000_REG_RESET); - status = ft1000_read_register(ft1000dev, &tempword, - FT1000_REG_RESET); - } -} - -/* send a command to ASIC - * Parameters: ft1000_usb - device structure - * ptempbuffer - command buffer - * size - command buffer size - */ -int card_send_command(struct ft1000_usb *ft1000dev, void *ptempbuffer, - int size) -{ - int ret; - unsigned short temp; - unsigned char *commandbuf; - - pr_debug("enter card_send_command... size=%d\n", size); - - ret = ft1000_read_register(ft1000dev, &temp, FT1000_REG_DOORBELL); - if (ret) - return ret; - - commandbuf = kmalloc(size + 2, GFP_KERNEL); - if (!commandbuf) - return -ENOMEM; - memcpy((void *)commandbuf + 2, ptempbuffer, size); - - if (temp & 0x0100) - usleep_range(900, 1100); - - /* check for odd word */ - size = size + 2; - - /* Must force to be 32 bit aligned */ - if (size % 4) - size += 4 - (size % 4); - - ret = ft1000_write_dpram32(ft1000dev, 0, commandbuf, size); - if (ret) - return ret; - usleep_range(900, 1100); - ret = ft1000_write_register(ft1000dev, FT1000_DB_DPRAM_TX, - FT1000_REG_DOORBELL); - if (ret) - return ret; - usleep_range(900, 1100); - - ret = ft1000_read_register(ft1000dev, &temp, FT1000_REG_DOORBELL); - -#if 0 - if ((temp & 0x0100) == 0) - pr_debug("Message sent\n"); -#endif - return ret; -} - -/* load or reload the DSP */ -int dsp_reload(struct ft1000_usb *ft1000dev) -{ - int status; - u16 tempword; - u32 templong; - - struct ft1000_info *pft1000info; - - pft1000info = netdev_priv(ft1000dev->net); - - pft1000info->CardReady = 0; - - /* Program Interrupt Mask register */ - status = ft1000_write_register(ft1000dev, 0xffff, FT1000_REG_SUP_IMASK); - - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_RESET); - tempword |= ASIC_RESET_BIT; - status = ft1000_write_register(ft1000dev, tempword, FT1000_REG_RESET); - msleep(1000); - status = ft1000_read_register(ft1000dev, &tempword, FT1000_REG_RESET); - pr_debug("Reset Register = 0x%x\n", tempword); - - /* Toggle DSP reset */ - card_reset_dsp(ft1000dev, 1); - msleep(1000); - card_reset_dsp(ft1000dev, 0); - msleep(1000); - - status = ft1000_write_register(ft1000dev, HOST_INTF_BE, - FT1000_REG_SUP_CTRL); - - /* Let's check for FEFE */ - status = - ft1000_read_dpram32(ft1000dev, FT1000_MAG_DPRAM_FEFE_INDX, - (u8 *)&templong, 4); - pr_debug("templong (fefe) = 0x%8x\n", templong); - - /* call codeloader */ - status = scram_dnldr(ft1000dev, pFileStart, FileLength); - - if (status != 0) - return -EIO; - - msleep(1000); - - return 0; -} - -/* call the Card Service function to reset the ASIC. */ -static void ft1000_reset_asic(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_usb *ft1000dev = info->priv; - u16 tempword; - - /* Let's use the register provided by the Magnemite ASIC to reset the - * ASIC and DSP. - */ - ft1000_write_register(ft1000dev, DSP_RESET_BIT | ASIC_RESET_BIT, - FT1000_REG_RESET); - - mdelay(1); - - /* set watermark to -1 in order to not generate an interrupt */ - ft1000_write_register(ft1000dev, 0xffff, FT1000_REG_MAG_WATERMARK); - - /* clear interrupts */ - ft1000_read_register(ft1000dev, &tempword, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); - ft1000_write_register(ft1000dev, tempword, FT1000_REG_SUP_ISR); - ft1000_read_register(ft1000dev, &tempword, FT1000_REG_SUP_ISR); - pr_debug("interrupt status register = 0x%x\n", tempword); -} - -static int ft1000_reset_card(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - struct ft1000_usb *ft1000dev = info->priv; - u16 tempword; - struct prov_record *ptr; - struct prov_record *tmp; - - ft1000dev->fCondResetPend = true; - info->CardReady = 0; - ft1000dev->fProvComplete = false; - - /* Make sure we free any memory reserve for provisioning */ - list_for_each_entry_safe(ptr, tmp, &info->prov_list, list) { - pr_debug("deleting provisioning record\n"); - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - - pr_debug("reset asic\n"); - ft1000_reset_asic(dev); - - pr_debug("call dsp_reload\n"); - dsp_reload(ft1000dev); - - pr_debug("dsp reload successful\n"); - - mdelay(10); - - /* Initialize DSP heartbeat area */ - ft1000_write_dpram16(ft1000dev, FT1000_MAG_HI_HO, ho_mag, - FT1000_MAG_HI_HO_INDX); - ft1000_read_dpram16(ft1000dev, FT1000_MAG_HI_HO, (u8 *)&tempword, - FT1000_MAG_HI_HO_INDX); - pr_debug("hi_ho value = 0x%x\n", tempword); - - info->CardReady = 1; - - ft1000dev->fCondResetPend = false; - - return TRUE; -} - -/* callback function when a urb is transmitted */ -static void ft1000_usb_transmit_complete(struct urb *urb) -{ - - struct ft1000_usb *ft1000dev = urb->context; - - if (urb->status) - pr_err("%s: TX status %d\n", ft1000dev->net->name, urb->status); - - netif_wake_queue(ft1000dev->net); -} - -/* take an ethernet packet and convert it to a Flarion - * packet prior to sending it to the ASIC Downlink FIFO. - */ -static int ft1000_copy_down_pkt(struct net_device *netdev, u8 *packet, u16 len) -{ - struct ft1000_info *pInfo = netdev_priv(netdev); - struct ft1000_usb *pFt1000Dev = pInfo->priv; - - int count, ret; - u8 *t; - struct pseudo_hdr hdr; - - if (!pInfo->CardReady) { - pr_debug("Card Not Ready\n"); - return -ENODEV; - } - - count = sizeof(struct pseudo_hdr) + len; - if (count > MAX_BUF_SIZE) { - pr_debug("Message Size Overflow! size = %d\n", count); - return -EINVAL; - } - - if (count % 4) - count = count + (4 - (count % 4)); - - memset(&hdr, 0, sizeof(struct pseudo_hdr)); - - hdr.length = ntohs(count); - hdr.source = 0x10; - hdr.destination = 0x20; - hdr.portdest = 0x20; - hdr.portsrc = 0x10; - hdr.sh_str_id = 0x91; - hdr.control = 0x00; - - hdr.checksum = hdr.length ^ hdr.source ^ hdr.destination ^ - hdr.portdest ^ hdr.portsrc ^ hdr.sh_str_id ^ hdr.control; - - memcpy(&pFt1000Dev->tx_buf[0], &hdr, sizeof(hdr)); - memcpy(&pFt1000Dev->tx_buf[sizeof(struct pseudo_hdr)], packet, len); - - netif_stop_queue(netdev); - - usb_fill_bulk_urb(pFt1000Dev->tx_urb, - pFt1000Dev->dev, - usb_sndbulkpipe(pFt1000Dev->dev, - pFt1000Dev->bulk_out_endpointAddr), - pFt1000Dev->tx_buf, count, - ft1000_usb_transmit_complete, pFt1000Dev); - - t = (u8 *)pFt1000Dev->tx_urb->transfer_buffer; - - ret = usb_submit_urb(pFt1000Dev->tx_urb, GFP_ATOMIC); - - if (ret) { - pr_debug("failed tx_urb %d\n", ret); - return ret; - } - pInfo->stats.tx_packets++; - pInfo->stats.tx_bytes += (len + 14); - - return 0; -} - -/* transmit an ethernet packet - * Parameters: skb - socket buffer to be sent - * dev - network device - */ -static int ft1000_start_xmit(struct sk_buff *skb, struct net_device *dev) -{ - struct ft1000_info *pInfo = netdev_priv(dev); - struct ft1000_usb *pFt1000Dev = pInfo->priv; - u8 *pdata; - int maxlen, pipe; - - if (skb == NULL) { - pr_debug("skb == NULL!!!\n"); - return NETDEV_TX_OK; - } - - if (pFt1000Dev->status & FT1000_STATUS_CLOSING) { - pr_debug("network driver is closed, return\n"); - goto err; - } - - pipe = usb_sndbulkpipe(pFt1000Dev->dev, - pFt1000Dev->bulk_out_endpointAddr); - maxlen = usb_maxpacket(pFt1000Dev->dev, pipe, usb_pipeout(pipe)); - - pdata = (u8 *)skb->data; - - if (pInfo->mediastate == 0) { - /* Drop packet is mediastate is down */ - pr_debug("mediastate is down\n"); - goto err; - } - - if ((skb->len < ENET_HEADER_SIZE) || (skb->len > ENET_MAX_SIZE)) { - /* Drop packet which has invalid size */ - pr_debug("invalid ethernet length\n"); - goto err; - } - - ft1000_copy_down_pkt(dev, pdata + ENET_HEADER_SIZE - 2, - skb->len - ENET_HEADER_SIZE + 2); - -err: - dev_kfree_skb(skb); - - return NETDEV_TX_OK; -} - -/* open the network driver */ -static int ft1000_open(struct net_device *dev) -{ - struct ft1000_info *pInfo = netdev_priv(dev); - struct ft1000_usb *pFt1000Dev = pInfo->priv; - struct timeval tv; - - pr_debug("ft1000_open is called for card %d\n", pFt1000Dev->CardNumber); - - pInfo->stats.rx_bytes = 0; - pInfo->stats.tx_bytes = 0; - pInfo->stats.rx_packets = 0; - pInfo->stats.tx_packets = 0; - do_gettimeofday(&tv); - pInfo->ConTm = tv.tv_sec; - pInfo->ProgConStat = 0; - - netif_start_queue(dev); - - netif_carrier_on(dev); - - return ft1000_submit_rx_urb(pInfo); -} - -static struct net_device_stats *ft1000_netdev_stats(struct net_device *dev) -{ - struct ft1000_info *info = netdev_priv(dev); - - return &(info->stats); -} - -static const struct net_device_ops ftnet_ops = { - .ndo_open = &ft1000_open, - .ndo_stop = &ft1000_close, - .ndo_start_xmit = &ft1000_start_xmit, - .ndo_get_stats = &ft1000_netdev_stats, -}; - -/* initialize the network device */ -static int ft1000_reset(void *dev) -{ - ft1000_reset_card(dev); - return 0; -} - -int init_ft1000_netdev(struct ft1000_usb *ft1000dev) -{ - struct net_device *netdev; - struct ft1000_info *pInfo = NULL; - struct dpram_blk *pdpram_blk; - int i, ret_val; - struct list_head *cur, *tmp; - char card_nr[2]; - u8 gCardIndex = 0; - - netdev = alloc_etherdev(sizeof(struct ft1000_info)); - if (!netdev) { - pr_debug("can not allocate network device\n"); - return -ENOMEM; - } - - pInfo = netdev_priv(netdev); - - memset(pInfo, 0, sizeof(struct ft1000_info)); - - dev_alloc_name(netdev, netdev->name); - - pr_debug("network device name is %s\n", netdev->name); - - if (strncmp(netdev->name, "eth", 3) == 0) { - card_nr[0] = netdev->name[3]; - card_nr[1] = '\0'; - ret_val = kstrtou8(card_nr, 10, &gCardIndex); - if (ret_val) { - netdev_err(ft1000dev->net, "Can't parse netdev\n"); - goto err_net; - } - - ft1000dev->CardNumber = gCardIndex; - pr_debug("card number = %d\n", ft1000dev->CardNumber); - } else { - netdev_err(ft1000dev->net, "ft1000: Invalid device name\n"); - ret_val = -ENXIO; - goto err_net; - } - - memset(&pInfo->stats, 0, sizeof(struct net_device_stats)); - - spin_lock_init(&pInfo->dpram_lock); - pInfo->priv = ft1000dev; - pInfo->DrvErrNum = 0; - pInfo->registered = 1; - pInfo->ft1000_reset = ft1000_reset; - pInfo->mediastate = 0; - pInfo->fifo_cnt = 0; - ft1000dev->DeviceCreated = FALSE; - pInfo->CardReady = 0; - pInfo->DSP_TIME[0] = 0; - pInfo->DSP_TIME[1] = 0; - pInfo->DSP_TIME[2] = 0; - pInfo->DSP_TIME[3] = 0; - ft1000dev->fAppMsgPend = false; - ft1000dev->fCondResetPend = false; - ft1000dev->usbboot = 0; - ft1000dev->dspalive = 0; - memset(&ft1000dev->tempbuf[0], 0, sizeof(ft1000dev->tempbuf)); - - INIT_LIST_HEAD(&pInfo->prov_list); - - INIT_LIST_HEAD(&ft1000dev->nodes.list); - - netdev->netdev_ops = &ftnet_ops; - - ft1000dev->net = netdev; - - pr_debug("Initialize free_buff_lock and freercvpool\n"); - spin_lock_init(&free_buff_lock); - - /* initialize a list of buffers to be use for queuing - * up receive command data - */ - INIT_LIST_HEAD(&freercvpool); - - /* create list of free buffers */ - for (i = 0; i < NUM_OF_FREE_BUFFERS; i++) { - /* Get memory for DPRAM_DATA link list */ - pdpram_blk = kmalloc(sizeof(struct dpram_blk), GFP_KERNEL); - if (pdpram_blk == NULL) { - ret_val = -ENOMEM; - goto err_free; - } - /* Get a block of memory to store command data */ - pdpram_blk->pbuffer = kmalloc(MAX_CMD_SQSIZE, GFP_KERNEL); - if (pdpram_blk->pbuffer == NULL) { - ret_val = -ENOMEM; - kfree(pdpram_blk); - goto err_free; - } - /* link provisioning data */ - list_add_tail(&pdpram_blk->list, &freercvpool); - } - numofmsgbuf = NUM_OF_FREE_BUFFERS; - - return 0; - -err_free: - list_for_each_safe(cur, tmp, &freercvpool) { - pdpram_blk = list_entry(cur, struct dpram_blk, list); - list_del(&pdpram_blk->list); - kfree(pdpram_blk->pbuffer); - kfree(pdpram_blk); - } -err_net: - free_netdev(netdev); - return ret_val; -} - -/* register the network driver */ -int reg_ft1000_netdev(struct ft1000_usb *ft1000dev, - struct usb_interface *intf) -{ - struct net_device *netdev; - struct ft1000_info *pInfo; - int rc; - - netdev = ft1000dev->net; - pInfo = netdev_priv(ft1000dev->net); - - ft1000_read_register(ft1000dev, &pInfo->AsicID, FT1000_REG_ASIC_ID); - - usb_set_intfdata(intf, pInfo); - SET_NETDEV_DEV(netdev, &intf->dev); - - rc = register_netdev(netdev); - if (rc) { - pr_debug("could not register network device\n"); - free_netdev(netdev); - return rc; - } - - ft1000_create_dev(ft1000dev); - - pInfo->CardReady = 1; - - return 0; -} - -/* take a packet from the FIFO up link and - * convert it into an ethernet packet and deliver it to the IP stack - */ -static int ft1000_copy_up_pkt(struct urb *urb) -{ - struct ft1000_info *info = urb->context; - struct ft1000_usb *ft1000dev = info->priv; - struct net_device *net = ft1000dev->net; - - u16 tempword; - u16 len; - u16 lena; - struct sk_buff *skb; - u16 i; - u8 *pbuffer = NULL; - u8 *ptemp = NULL; - u16 *chksum; - - if (ft1000dev->status & FT1000_STATUS_CLOSING) { - pr_debug("network driver is closed, return\n"); - return 0; - } - /* Read length */ - len = urb->transfer_buffer_length; - lena = urb->actual_length; - - chksum = (u16 *)ft1000dev->rx_buf; - - tempword = *chksum++; - for (i = 1; i < 7; i++) - tempword ^= *chksum++; - - if (tempword != *chksum) { - info->stats.rx_errors++; - ft1000_submit_rx_urb(info); - return -1; - } - - skb = dev_alloc_skb(len + 12 + 2); - - if (skb == NULL) { - info->stats.rx_errors++; - ft1000_submit_rx_urb(info); - return -1; - } - - pbuffer = (u8 *)skb_put(skb, len + 12); - - /* subtract the number of bytes read already */ - ptemp = pbuffer; - - /* fake MAC address */ - *pbuffer++ = net->dev_addr[0]; - *pbuffer++ = net->dev_addr[1]; - *pbuffer++ = net->dev_addr[2]; - *pbuffer++ = net->dev_addr[3]; - *pbuffer++ = net->dev_addr[4]; - *pbuffer++ = net->dev_addr[5]; - *pbuffer++ = 0x00; - *pbuffer++ = 0x07; - *pbuffer++ = 0x35; - *pbuffer++ = 0xff; - *pbuffer++ = 0xff; - *pbuffer++ = 0xfe; - - memcpy(pbuffer, ft1000dev->rx_buf + sizeof(struct pseudo_hdr), - len - sizeof(struct pseudo_hdr)); - - skb->dev = net; - - skb->protocol = eth_type_trans(skb, net); - skb->ip_summed = CHECKSUM_UNNECESSARY; - netif_rx(skb); - - info->stats.rx_packets++; - /* Add on 12 bytes for MAC address which was removed */ - info->stats.rx_bytes += (lena + 12); - - ft1000_submit_rx_urb(info); - - return 0; -} - - -/* the receiving function of the network driver */ -static int ft1000_submit_rx_urb(struct ft1000_info *info) -{ - int result; - struct ft1000_usb *pFt1000Dev = info->priv; - - if (pFt1000Dev->status & FT1000_STATUS_CLOSING) { - pr_debug("network driver is closed, return\n"); - return -ENODEV; - } - - usb_fill_bulk_urb(pFt1000Dev->rx_urb, - pFt1000Dev->dev, - usb_rcvbulkpipe(pFt1000Dev->dev, - pFt1000Dev->bulk_in_endpointAddr), - pFt1000Dev->rx_buf, MAX_BUF_SIZE, - (usb_complete_t)ft1000_copy_up_pkt, info); - - result = usb_submit_urb(pFt1000Dev->rx_urb, GFP_ATOMIC); - - if (result) { - pr_err("submitting rx_urb %d failed\n", result); - return result; - } - - return 0; -} - -/* close the network driver */ -int ft1000_close(struct net_device *net) -{ - struct ft1000_info *pInfo = netdev_priv(net); - struct ft1000_usb *ft1000dev = pInfo->priv; - - ft1000dev->status |= FT1000_STATUS_CLOSING; - - pr_debug("pInfo=%p, ft1000dev=%p\n", pInfo, ft1000dev); - netif_carrier_off(net); - netif_stop_queue(net); - ft1000dev->status &= ~FT1000_STATUS_CLOSING; - - pInfo->ProgConStat = 0xff; - - return 0; -} - -/* check if the device is presently available on the system. */ -static int ft1000_chkcard(struct ft1000_usb *dev) -{ - u16 tempword; - int status; - - if (dev->fCondResetPend) { - pr_debug("Card is being reset, return FALSE\n"); - return TRUE; - } - /* Mask register is used to check for device presence since it is never - * set to zero. - */ - status = ft1000_read_register(dev, &tempword, FT1000_REG_SUP_IMASK); - if (tempword == 0) { - pr_debug("IMASK = 0 Card not detected\n"); - return FALSE; - } - /* The system will return the value of 0xffff for the version register - * if the device is not present. - */ - status = ft1000_read_register(dev, &tempword, FT1000_REG_ASIC_ID); - if (tempword != 0x1b01) { - dev->status |= FT1000_STATUS_CLOSING; - pr_debug("Version = 0xffff Card not detected\n"); - return FALSE; - } - return TRUE; -} - -/* read a message from the dpram area. - * Input: - * dev - network device structure - * pbuffer - caller supply address to buffer - */ -static bool ft1000_receive_cmd(struct ft1000_usb *dev, u16 *pbuffer, - int maxsz) -{ - u16 size; - int ret; - u16 *ppseudohdr; - int i; - u16 tempword; - - ret = - ft1000_read_dpram16(dev, FT1000_MAG_PH_LEN, (u8 *)&size, - FT1000_MAG_PH_LEN_INDX); - size = ntohs(size) + PSEUDOSZ; - if (size > maxsz) { - pr_debug("Invalid command length = %d\n", size); - return FALSE; - } - ppseudohdr = (u16 *)pbuffer; - ft1000_write_register(dev, FT1000_DPRAM_MAG_RX_BASE, - FT1000_REG_DPRAM_ADDR); - ret = - ft1000_read_register(dev, pbuffer, FT1000_REG_MAG_DPDATAH); - pbuffer++; - ft1000_write_register(dev, FT1000_DPRAM_MAG_RX_BASE + 1, - FT1000_REG_DPRAM_ADDR); - for (i = 0; i <= (size >> 2); i++) { - ret = - ft1000_read_register(dev, pbuffer, - FT1000_REG_MAG_DPDATAL); - pbuffer++; - ret = - ft1000_read_register(dev, pbuffer, - FT1000_REG_MAG_DPDATAH); - pbuffer++; - } - /* copy odd aligned word */ - ret = - ft1000_read_register(dev, pbuffer, FT1000_REG_MAG_DPDATAL); - - pbuffer++; - ret = - ft1000_read_register(dev, pbuffer, FT1000_REG_MAG_DPDATAH); - - pbuffer++; - if (size & 0x0001) { - /* copy odd byte from fifo */ - ret = - ft1000_read_register(dev, &tempword, - FT1000_REG_DPRAM_DATA); - *pbuffer = ntohs(tempword); - } - /* Check if pseudo header checksum is good - * Calculate pseudo header checksum - */ - tempword = *ppseudohdr++; - for (i = 1; i < 7; i++) - tempword ^= *ppseudohdr++; - - if (tempword != *ppseudohdr) - return FALSE; - - return TRUE; -} - -static int ft1000_dsp_prov(void *arg) -{ - struct ft1000_usb *dev = (struct ft1000_usb *)arg; - struct ft1000_info *info = netdev_priv(dev->net); - u16 tempword; - u16 len; - u16 i = 0; - struct prov_record *ptr; - struct pseudo_hdr *ppseudo_hdr; - u16 *pmsg; - int status; - u16 TempShortBuf[256]; - - while (list_empty(&info->prov_list) == 0) { - pr_debug("DSP Provisioning List Entry\n"); - - /* Check if doorbell is available */ - pr_debug("check if doorbell is cleared\n"); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (status) { - pr_debug("ft1000_read_register error\n"); - break; - } - - while (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - i++; - if (i == 10) { - pr_debug("message drop\n"); - return -1; - } - ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - } - - if (!(tempword & FT1000_DB_DPRAM_TX)) { - pr_debug("*** Provision Data Sent to DSP\n"); - - /* Send provisioning data */ - ptr = list_entry(info->prov_list.next, - struct prov_record, list); - len = *(u16 *)ptr->pprov_data; - len = htons(len); - len += PSEUDOSZ; - - pmsg = (u16 *)ptr->pprov_data; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - TempShortBuf[0] = 0; - TempShortBuf[1] = htons(len); - memcpy(&TempShortBuf[2], ppseudo_hdr, len); - - status = - ft1000_write_dpram32(dev, 0, - (u8 *)&TempShortBuf[0], - (unsigned short)(len + 2)); - status = - ft1000_write_register(dev, FT1000_DB_DPRAM_TX, - FT1000_REG_DOORBELL); - - list_del(&ptr->list); - kfree(ptr->pprov_data); - kfree(ptr); - } - usleep_range(9000, 11000); - } - - pr_debug("DSP Provisioning List Entry finished\n"); - - msleep(100); - - dev->fProvComplete = true; - info->CardReady = 1; - - return 0; -} - -static int ft1000_proc_drvmsg(struct ft1000_usb *dev, u16 size) -{ - struct ft1000_info *info = netdev_priv(dev->net); - u16 msgtype; - u16 tempword; - struct media_msg *pmediamsg; - struct dsp_init_msg *pdspinitmsg; - struct drv_msg *pdrvmsg; - u16 i; - struct pseudo_hdr *ppseudo_hdr; - u16 *pmsg; - int status; - union { - u8 byte[2]; - u16 wrd; - } convert; - - char *cmdbuffer = kmalloc(1600, GFP_KERNEL); - - if (!cmdbuffer) - return -ENOMEM; - - status = ft1000_read_dpram32(dev, 0x200, cmdbuffer, size); - -#ifdef JDEBUG - print_hex_dump_debug("cmdbuffer: ", HEX_DUMP_OFFSET, 16, 1, - cmdbuffer, size, true); -#endif - pdrvmsg = (struct drv_msg *)&cmdbuffer[2]; - msgtype = ntohs(pdrvmsg->type); - pr_debug("Command message type = 0x%x\n", msgtype); - switch (msgtype) { - case MEDIA_STATE:{ - pr_debug("Command message type = MEDIA_STATE\n"); - pmediamsg = (struct media_msg *)&cmdbuffer[0]; - if (info->ProgConStat != 0xFF) { - if (pmediamsg->state) { - pr_debug("Media is up\n"); - if (info->mediastate == 0) { - if (dev->NetDevRegDone) - netif_wake_queue(dev->net); - info->mediastate = 1; - } - } else { - pr_debug("Media is down\n"); - if (info->mediastate == 1) { - info->mediastate = 0; - if (dev->NetDevRegDone) - info->ConTm = 0; - } - } - } else { - pr_debug("Media is down\n"); - if (info->mediastate == 1) { - info->mediastate = 0; - info->ConTm = 0; - } - } - break; - } - case DSP_INIT_MSG:{ - pr_debug("Command message type = DSP_INIT_MSG\n"); - pdspinitmsg = (struct dsp_init_msg *)&cmdbuffer[2]; - memcpy(info->DspVer, pdspinitmsg->DspVer, DSPVERSZ); - pr_debug("DSPVER = 0x%2x 0x%2x 0x%2x 0x%2x\n", - info->DspVer[0], info->DspVer[1], info->DspVer[2], - info->DspVer[3]); - memcpy(info->HwSerNum, pdspinitmsg->HwSerNum, - HWSERNUMSZ); - memcpy(info->Sku, pdspinitmsg->Sku, SKUSZ); - memcpy(info->eui64, pdspinitmsg->eui64, EUISZ); - pr_debug("EUI64=%2x.%2x.%2x.%2x.%2x.%2x.%2x.%2x\n", - info->eui64[0], info->eui64[1], info->eui64[2], - info->eui64[3], info->eui64[4], info->eui64[5], - info->eui64[6], info->eui64[7]); - dev->net->dev_addr[0] = info->eui64[0]; - dev->net->dev_addr[1] = info->eui64[1]; - dev->net->dev_addr[2] = info->eui64[2]; - dev->net->dev_addr[3] = info->eui64[5]; - dev->net->dev_addr[4] = info->eui64[6]; - dev->net->dev_addr[5] = info->eui64[7]; - - if (ntohs(pdspinitmsg->length) == - (sizeof(struct dsp_init_msg) - 20)) { - memcpy(info->ProductMode, pdspinitmsg->ProductMode, - MODESZ); - memcpy(info->RfCalVer, pdspinitmsg->RfCalVer, CALVERSZ); - memcpy(info->RfCalDate, pdspinitmsg->RfCalDate, - CALDATESZ); - pr_debug("RFCalVer = 0x%2x 0x%2x\n", - info->RfCalVer[0], info->RfCalVer[1]); - } - break; - } - case DSP_PROVISION:{ - pr_debug("Command message type = DSP_PROVISION\n"); - - /* kick off dspprov routine to start provisioning - * Send provisioning data to DSP - */ - if (list_empty(&info->prov_list) == 0) { - dev->fProvComplete = false; - status = ft1000_dsp_prov(dev); - if (status != 0) - goto out; - } else { - dev->fProvComplete = true; - status = ft1000_write_register(dev, FT1000_DB_HB, - FT1000_REG_DOORBELL); - pr_debug("No more DSP provisioning data in dsp image\n"); - } - pr_debug("DSP PROVISION is done\n"); - break; - } - case DSP_STORE_INFO:{ - pr_debug("Command message type = DSP_STORE_INFO"); - tempword = ntohs(pdrvmsg->length); - info->DSPInfoBlklen = tempword; - if (tempword < (MAX_DSP_SESS_REC - 4)) { - pmsg = (u16 *)&pdrvmsg->data[0]; - for (i = 0; i < ((tempword + 1) / 2); i++) { - pr_debug("dsp info data = 0x%x\n", *pmsg); - info->DSPInfoBlk[i + 10] = *pmsg++; - } - } else { - info->DSPInfoBlklen = 0; - } - break; - } - case DSP_GET_INFO:{ - pr_debug("Got DSP_GET_INFO\n"); - /* copy dsp info block to dsp */ - dev->DrvMsgPend = 1; - /* allow any outstanding ioctl to finish */ - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) - break; - } - } - /* Put message into Slow Queue Form Pseudo header */ - pmsg = (u16 *)info->DSPInfoBlk; - *pmsg++ = 0; - *pmsg++ = htons(info->DSPInfoBlklen + 20 + info->DSPInfoBlklen); - ppseudo_hdr = - (struct pseudo_hdr *)(u16 *)&info->DSPInfoBlk[2]; - ppseudo_hdr->length = htons(info->DSPInfoBlklen + 4 - + info->DSPInfoBlklen); - ppseudo_hdr->source = 0x10; - ppseudo_hdr->destination = 0x20; - ppseudo_hdr->portdest = 0; - ppseudo_hdr->portsrc = 0; - ppseudo_hdr->sh_str_id = 0; - ppseudo_hdr->control = 0; - ppseudo_hdr->rsvd1 = 0; - ppseudo_hdr->rsvd2 = 0; - ppseudo_hdr->qos_class = 0; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - /* Insert application id */ - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - info->DSPInfoBlk[10] = 0x7200; - info->DSPInfoBlk[11] = htons(info->DSPInfoBlklen); - status = ft1000_write_dpram32(dev, 0, - (u8 *)&info->DSPInfoBlk[0], - (unsigned short)(info->DSPInfoBlklen + 22)); - status = ft1000_write_register(dev, FT1000_DB_DPRAM_TX, - FT1000_REG_DOORBELL); - dev->DrvMsgPend = 0; - break; - } - case GET_DRV_ERR_RPT_MSG:{ - pr_debug("Got GET_DRV_ERR_RPT_MSG\n"); - /* copy driver error message to dsp */ - dev->DrvMsgPend = 1; - /* allow any outstanding ioctl to finish */ - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) { - mdelay(10); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_DOORBELL); - if (tempword & FT1000_DB_DPRAM_TX) - mdelay(10); - } - if ((tempword & FT1000_DB_DPRAM_TX) == 0) { - /* Put message into Slow Queue Form Pseudo header */ - pmsg = (u16 *)&tempbuffer[0]; - ppseudo_hdr = (struct pseudo_hdr *)pmsg; - ppseudo_hdr->length = htons(0x0012); - ppseudo_hdr->source = 0x10; - ppseudo_hdr->destination = 0x20; - ppseudo_hdr->portdest = 0; - ppseudo_hdr->portsrc = 0; - ppseudo_hdr->sh_str_id = 0; - ppseudo_hdr->control = 0; - ppseudo_hdr->rsvd1 = 0; - ppseudo_hdr->rsvd2 = 0; - ppseudo_hdr->qos_class = 0; - /* Insert slow queue sequence number */ - ppseudo_hdr->seq_num = info->squeseqnum++; - /* Insert application id */ - ppseudo_hdr->portsrc = 0; - /* Calculate new checksum */ - ppseudo_hdr->checksum = *pmsg++; - for (i = 1; i < 7; i++) - ppseudo_hdr->checksum ^= *pmsg++; - - pmsg = (u16 *)&tempbuffer[16]; - *pmsg++ = htons(RSP_DRV_ERR_RPT_MSG); - *pmsg++ = htons(0x000e); - *pmsg++ = htons(info->DSP_TIME[0]); - *pmsg++ = htons(info->DSP_TIME[1]); - *pmsg++ = htons(info->DSP_TIME[2]); - *pmsg++ = htons(info->DSP_TIME[3]); - convert.byte[0] = info->DspVer[0]; - convert.byte[1] = info->DspVer[1]; - *pmsg++ = convert.wrd; - convert.byte[0] = info->DspVer[2]; - convert.byte[1] = info->DspVer[3]; - *pmsg++ = convert.wrd; - *pmsg++ = htons(info->DrvErrNum); - - status = card_send_command(dev, - (unsigned char *)&tempbuffer[0], - (u16)(0x0012 + PSEUDOSZ)); - if (status) - goto out; - info->DrvErrNum = 0; - } - dev->DrvMsgPend = 0; - break; - } - default: - break; - } - - status = 0; -out: - kfree(cmdbuffer); - return status; -} - -/* Check which application has registered for dsp broadcast messages */ -static int dsp_broadcast_msg_id(struct ft1000_usb *dev) -{ - struct dpram_blk *pdpram_blk; - unsigned long flags; - int i; - - for (i = 0; i < MAX_NUM_APP; i++) { - if ((dev->app_info[i].DspBCMsgFlag) - && (dev->app_info[i].fileobject) - && (dev->app_info[i].NumOfMsg - < MAX_MSG_LIMIT)) { - pdpram_blk = ft1000_get_buffer(&freercvpool); - if (pdpram_blk == NULL) { - pr_debug("Out of memory in free receive command pool\n"); - dev->app_info[i].nRxMsgMiss++; - return -1; - } - if (ft1000_receive_cmd(dev, pdpram_blk->pbuffer, - MAX_CMD_SQSIZE)) { - /* Put message into the - * appropriate application block - */ - dev->app_info[i].nRxMsg++; - spin_lock_irqsave(&free_buff_lock, flags); - list_add_tail(&pdpram_blk->list, - &dev->app_info[i] .app_sqlist); - dev->app_info[i].NumOfMsg++; - spin_unlock_irqrestore(&free_buff_lock, flags); - wake_up_interruptible(&dev->app_info[i] - .wait_dpram_msg); - } else { - dev->app_info[i].nRxMsgMiss++; - ft1000_free_buffer(pdpram_blk, &freercvpool); - pr_debug("ft1000_get_buffer NULL\n"); - return -1; - } - } - } - return 0; -} - -static int handle_misc_portid(struct ft1000_usb *dev) -{ - struct dpram_blk *pdpram_blk; - int i; - - pdpram_blk = ft1000_get_buffer(&freercvpool); - if (pdpram_blk == NULL) { - pr_debug("Out of memory in free receive command pool\n"); - return -1; - } - if (!ft1000_receive_cmd(dev, pdpram_blk->pbuffer, MAX_CMD_SQSIZE)) - goto exit_failure; - - /* Search for correct application block */ - for (i = 0; i < MAX_NUM_APP; i++) { - if (dev->app_info[i].app_id == ((struct pseudo_hdr *) - pdpram_blk->pbuffer)->portdest) - break; - } - if (i == MAX_NUM_APP) { - pr_debug("No application matching id = %d\n", - ((struct pseudo_hdr *)pdpram_blk->pbuffer)->portdest); - goto exit_failure; - } else if (dev->app_info[i].NumOfMsg > MAX_MSG_LIMIT) { - goto exit_failure; - } else { - dev->app_info[i].nRxMsg++; - /* Put message into the appropriate application block */ - list_add_tail(&pdpram_blk->list, &dev->app_info[i].app_sqlist); - dev->app_info[i].NumOfMsg++; - } - return 0; - -exit_failure: - ft1000_free_buffer(pdpram_blk, &freercvpool); - return -1; -} - -int ft1000_poll(void *dev_id) -{ - struct ft1000_usb *dev = (struct ft1000_usb *)dev_id; - struct ft1000_info *info = netdev_priv(dev->net); - u16 tempword; - int status; - u16 size; - int i; - u16 data; - u16 modulo; - u16 portid; - - if (ft1000_chkcard(dev) == FALSE) { - pr_debug("failed\n"); - return -1; - } - status = ft1000_read_register(dev, &tempword, FT1000_REG_DOORBELL); - if (!status) { - if (tempword & FT1000_DB_DPRAM_RX) { - status = ft1000_read_dpram16(dev, - 0x200, (u8 *)&data, 0); - size = ntohs(data) + 16 + 2; - if (size % 4) { - modulo = 4 - (size % 4); - size = size + modulo; - } - status = ft1000_read_dpram16(dev, 0x201, - (u8 *)&portid, 1); - portid &= 0xff; - if (size < MAX_CMD_SQSIZE) { - switch (portid) { - case DRIVERID: - pr_debug("FT1000_REG_DOORBELL message type: FT1000_DB_DPRAM_RX : portid DRIVERID\n"); - status = ft1000_proc_drvmsg(dev, size); - if (status != 0) - return status; - break; - case DSPBCMSGID: - status = dsp_broadcast_msg_id(dev); - break; - default: - status = handle_misc_portid(dev); - break; - } - } else - pr_debug("Invalid total length for SlowQ = %d\n", - size); - status = ft1000_write_register(dev, - FT1000_DB_DPRAM_RX, - FT1000_REG_DOORBELL); - } else if (tempword & FT1000_DSP_ASIC_RESET) { - /* Let's reset the ASIC from the Host side as well */ - status = ft1000_write_register(dev, ASIC_RESET_BIT, - FT1000_REG_RESET); - status = ft1000_read_register(dev, &tempword, - FT1000_REG_RESET); - i = 0; - while (tempword & ASIC_RESET_BIT) { - status = ft1000_read_register(dev, &tempword, - FT1000_REG_RESET); - usleep_range(9000, 11000); - i++; - if (i == 100) - break; - } - if (i == 100) { - pr_debug("Unable to reset ASIC\n"); - return 0; - } - usleep_range(9000, 11000); - /* Program WMARK register */ - status = ft1000_write_register(dev, 0x600, - FT1000_REG_MAG_WATERMARK); - /* clear ASIC reset doorbell */ - status = ft1000_write_register(dev, - FT1000_DSP_ASIC_RESET, - FT1000_REG_DOORBELL); - usleep_range(9000, 11000); - } else if (tempword & FT1000_ASIC_RESET_REQ) { - pr_debug("FT1000_REG_DOORBELL message type: FT1000_ASIC_RESET_REQ\n"); - /* clear ASIC reset request from DSP */ - status = ft1000_write_register(dev, - FT1000_ASIC_RESET_REQ, - FT1000_REG_DOORBELL); - status = ft1000_write_register(dev, HOST_INTF_BE, - FT1000_REG_SUP_CTRL); - /* copy dsp session record from Adapter block */ - status = ft1000_write_dpram32(dev, 0, - (u8 *)&info->DSPSess.Rec[0], 1024); - status = ft1000_write_register(dev, 0x600, - FT1000_REG_MAG_WATERMARK); - /* ring doorbell to tell DSP that - * ASIC is out of reset - */ - status = ft1000_write_register(dev, - FT1000_ASIC_RESET_DSP, - FT1000_REG_DOORBELL); - } else if (tempword & FT1000_DB_COND_RESET) { - pr_debug("FT1000_REG_DOORBELL message type: FT1000_DB_COND_RESET\n"); - if (!dev->fAppMsgPend) { - /* Reset ASIC and DSP */ - status = ft1000_read_dpram16(dev, - FT1000_MAG_DSP_TIMER0, - (u8 *)&info->DSP_TIME[0], - FT1000_MAG_DSP_TIMER0_INDX); - status = ft1000_read_dpram16(dev, - FT1000_MAG_DSP_TIMER1, - (u8 *)&info->DSP_TIME[1], - FT1000_MAG_DSP_TIMER1_INDX); - status = ft1000_read_dpram16(dev, - FT1000_MAG_DSP_TIMER2, - (u8 *)&info->DSP_TIME[2], - FT1000_MAG_DSP_TIMER2_INDX); - status = ft1000_read_dpram16(dev, - FT1000_MAG_DSP_TIMER3, - (u8 *)&info->DSP_TIME[3], - FT1000_MAG_DSP_TIMER3_INDX); - info->CardReady = 0; - info->DrvErrNum = DSP_CONDRESET_INFO; - pr_debug("DSP conditional reset requested\n"); - info->ft1000_reset(dev->net); - } else { - dev->fProvComplete = false; - dev->fCondResetPend = true; - } - ft1000_write_register(dev, FT1000_DB_COND_RESET, - FT1000_REG_DOORBELL); - } - } - return 0; -} diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h b/drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h deleted file mode 100644 index e9472bebda0b..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - *--------------------------------------------------------------------------- - * FT1000 driver for Flarion Flash OFDM NIC Device - * - * Copyright (C) 2002 Flarion Technologies, All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) any - * later version. This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - - * Suite 330, Boston, MA 02111-1307, USA. - *--------------------------------------------------------------------------- - * - * File: ft1000_ioctl.h - * - * Description: Common structures and defines relating to IOCTL - * - * History: - * 11/5/02 Whc Created. - * - *--------------------------------------------------------------------------- - */ -#ifndef _FT1000IOCTLH_ -#define _FT1000IOCTLH_ - -struct IOCTL_GET_VER { - unsigned long drv_ver; -} __packed; - -/* Data structure for Dsp statistics */ -struct IOCTL_GET_DSP_STAT { - unsigned char DspVer[DSPVERSZ]; /* DSP version number */ - unsigned char HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */ - unsigned char Sku[SKUSZ]; /* SKU */ - unsigned char eui64[EUISZ]; /* EUI64 */ - unsigned short ConStat; /* Connection Status */ - /* Bits 0-3 = Connection Status Field */ - /* 0000=Idle (Disconnect) */ - /* 0001=Searching */ - /* 0010=Active (Connected) */ - /* 0011=Waiting for L2 down */ - /* 0100=Sleep */ - unsigned short LedStat; /* Led Status */ - /* Bits 0-3 = Signal Strength Field */ - /* 0000 = -105dBm to -92dBm */ - /* 0001 = -92dBm to -85dBm */ - /* 0011 = -85dBm to -75dBm */ - /* 0111 = -75dBm to -50dBm */ - /* 1111 = -50dBm to 0dBm */ - /* Bits 4-7 = Reserved */ - /* Bits 8-11 = SNR Field */ - /* 0000 = <2dB */ - /* 0001 = 2dB to 8dB */ - /* 0011 = 8dB to 15dB */ - /* 0111 = 15dB to 22dB */ - /* 1111 = >22dB */ - /* Bits 12-15 = Reserved */ - unsigned long nTxPkts; /* Number of packets transmitted - * from host to dsp - */ - unsigned long nRxPkts; /* Number of packets received from - * dsp to host - */ - unsigned long nTxBytes; /* Number of bytes transmitted - * from host to dsp - */ - unsigned long nRxBytes; /* Number of bytes received from - * dsp to host - */ - unsigned long ConTm; /* Current session connection time - * in seconds - */ - unsigned char CalVer[CALVERSZ]; /* Proprietary Calibration - * Version - */ - unsigned char CalDate[CALDATESZ]; /* Proprietary Calibration Date */ -} __packed; - -/* Data structure for Dual Ported RAM messaging between Host and Dsp */ -struct IOCTL_DPRAM_BLK { - unsigned short total_len; - struct pseudo_hdr pseudohdr; - unsigned char buffer[1780]; -} __packed; - -struct IOCTL_DPRAM_COMMAND { - unsigned short extra; - struct IOCTL_DPRAM_BLK dpram_blk; -} __packed; - -/* - * Custom IOCTL command codes - */ -#define FT1000_MAGIC_CODE 'F' - -#define IOCTL_REGISTER_CMD 0 -#define IOCTL_SET_DPRAM_CMD 3 -#define IOCTL_GET_DPRAM_CMD 4 -#define IOCTL_GET_DSP_STAT_CMD 6 -#define IOCTL_GET_VER_CMD 7 -#define IOCTL_CONNECT 10 -#define IOCTL_DISCONNECT 11 - -#define IOCTL_FT1000_GET_DSP_STAT _IOR(FT1000_MAGIC_CODE, \ - IOCTL_GET_DSP_STAT_CMD, \ - struct IOCTL_GET_DSP_STAT) -#define IOCTL_FT1000_GET_VER _IOR(FT1000_MAGIC_CODE, IOCTL_GET_VER_CMD, \ - struct IOCTL_GET_VER) -#define IOCTL_FT1000_CONNECT _IO(FT1000_MAGIC_CODE, IOCTL_CONNECT) -#define IOCTL_FT1000_DISCONNECT _IO(FT1000_MAGIC_CODE, IOCTL_DISCONNECT) -#define IOCTL_FT1000_SET_DPRAM _IOW(FT1000_MAGIC_CODE, IOCTL_SET_DPRAM_CMD, \ - struct IOCTL_DPRAM_BLK) -#define IOCTL_FT1000_GET_DPRAM _IOR(FT1000_MAGIC_CODE, IOCTL_GET_DPRAM_CMD, \ - struct IOCTL_DPRAM_BLK) -#define IOCTL_FT1000_REGISTER _IOW(FT1000_MAGIC_CODE, IOCTL_REGISTER_CMD, \ - unsigned short *) - -#endif /* _FT1000IOCTLH_ */ diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c deleted file mode 100644 index d1ba0b827a55..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c +++ /dev/null @@ -1,248 +0,0 @@ -/*===================================================== - * CopyRight (C) 2007 Qualcomm Inc. All Rights Reserved. - * - * - * This file is part of Express Card USB Driver - *==================================================== - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include -#include -#include -#include -#include -#include -#include "ft1000_usb.h" - -#include - -MODULE_DESCRIPTION("FT1000 EXPRESS CARD DRIVER"); -MODULE_LICENSE("Dual MPL/GPL"); -MODULE_SUPPORTED_DEVICE("QFT FT1000 Express Cards"); - -void *pFileStart; -size_t FileLength; - -#define VENDOR_ID 0x1291 /* Qualcomm vendor id */ -#define PRODUCT_ID 0x11 /* fake product id */ - -/* table of devices that work with this driver */ -static struct usb_device_id id_table[] = { - {USB_DEVICE(VENDOR_ID, PRODUCT_ID)}, - {}, -}; - -MODULE_DEVICE_TABLE(usb, id_table); - -static bool gPollingfailed; -static int ft1000_poll_thread(void *arg) -{ - int ret; - - while (!kthread_should_stop()) { - usleep_range(10000, 11000); - if (!gPollingfailed) { - ret = ft1000_poll(arg); - if (ret != 0) { - pr_debug("polling failed\n"); - gPollingfailed = true; - } - } - } - return 0; -} - -static int ft1000_probe(struct usb_interface *interface, - const struct usb_device_id *id) -{ - struct usb_host_interface *iface_desc; - struct usb_endpoint_descriptor *endpoint; - struct usb_device *dev; - unsigned numaltsetting; - int i, ret = 0, size; - - struct ft1000_usb *ft1000dev; - struct ft1000_info *pft1000info = NULL; - const struct firmware *dsp_fw; - - ft1000dev = kzalloc(sizeof(struct ft1000_usb), GFP_KERNEL); - if (!ft1000dev) - return -ENOMEM; - - dev = interface_to_usbdev(interface); - pr_debug("usb device descriptor info - number of configuration is %d\n", - dev->descriptor.bNumConfigurations); - - ft1000dev->dev = dev; - ft1000dev->status = 0; - ft1000dev->net = NULL; - ft1000dev->tx_urb = usb_alloc_urb(0, GFP_KERNEL); - ft1000dev->rx_urb = usb_alloc_urb(0, GFP_KERNEL); - if (!ft1000dev->tx_urb || !ft1000dev->rx_urb) { - ret = -ENOMEM; - goto err_fw; - } - - numaltsetting = interface->num_altsetting; - pr_debug("number of alt settings is: %d\n", numaltsetting); - iface_desc = interface->cur_altsetting; - pr_debug("number of endpoints is: %d\n", - iface_desc->desc.bNumEndpoints); - pr_debug("descriptor type is: %d\n", iface_desc->desc.bDescriptorType); - pr_debug("interface number is: %d\n", - iface_desc->desc.bInterfaceNumber); - pr_debug("alternatesetting is: %d\n", - iface_desc->desc.bAlternateSetting); - pr_debug("interface class is: %d\n", iface_desc->desc.bInterfaceClass); - pr_debug("control endpoint info:\n"); - pr_debug("descriptor0 type -- %d\n", - iface_desc->endpoint[0].desc.bmAttributes); - pr_debug("descriptor1 type -- %d\n", - iface_desc->endpoint[1].desc.bmAttributes); - pr_debug("descriptor2 type -- %d\n", - iface_desc->endpoint[2].desc.bmAttributes); - - for (i = 0; i < iface_desc->desc.bNumEndpoints; i++) { - endpoint = - (struct usb_endpoint_descriptor *)&iface_desc-> - endpoint[i].desc; - pr_debug("endpoint %d\n", i); - pr_debug("bEndpointAddress=%x, bmAttributes=%x\n", - endpoint->bEndpointAddress, endpoint->bmAttributes); - if (usb_endpoint_is_bulk_in(endpoint)) { - ft1000dev->bulk_in_endpointAddr = - endpoint->bEndpointAddress; - pr_debug("in: %d\n", endpoint->bEndpointAddress); - } - - if (usb_endpoint_is_bulk_in(endpoint)) { - ft1000dev->bulk_out_endpointAddr = - endpoint->bEndpointAddress; - pr_debug("out: %d\n", endpoint->bEndpointAddress); - } - } - - pr_debug("bulk_in=%d, bulk_out=%d\n", - ft1000dev->bulk_in_endpointAddr, - ft1000dev->bulk_out_endpointAddr); - - ret = request_firmware(&dsp_fw, "ft3000.img", &dev->dev); - if (ret < 0) { - dev_err(interface->usb_dev, "Error request_firmware()\n"); - goto err_fw; - } - - size = max_t(uint, dsp_fw->size, 4096); - pFileStart = kmalloc(size, GFP_KERNEL); - - if (!pFileStart) { - release_firmware(dsp_fw); - ret = -ENOMEM; - goto err_fw; - } - - memcpy(pFileStart, dsp_fw->data, dsp_fw->size); - FileLength = dsp_fw->size; - release_firmware(dsp_fw); - - pr_debug("start downloading dsp image...\n"); - - ret = init_ft1000_netdev(ft1000dev); - if (ret) - goto err_load; - - pft1000info = netdev_priv(ft1000dev->net); - - pr_debug("pft1000info=%p\n", pft1000info); - ret = dsp_reload(ft1000dev); - if (ret) { - dev_err(interface->usb_dev, - "Problem with DSP image loading\n"); - goto err_load; - } - - gPollingfailed = false; - ft1000dev->pPollThread = - kthread_run(ft1000_poll_thread, ft1000dev, "ft1000_poll"); - - if (IS_ERR(ft1000dev->pPollThread)) { - ret = PTR_ERR(ft1000dev->pPollThread); - goto err_load; - } - - msleep(500); - - while (!pft1000info->CardReady) { - if (gPollingfailed) { - ret = -EIO; - goto err_thread; - } - msleep(100); - pr_debug("Waiting for Card Ready\n"); - } - - pr_debug("Card Ready!!!! Registering network device\n"); - - ret = reg_ft1000_netdev(ft1000dev, interface); - if (ret) - goto err_thread; - - ft1000dev->NetDevRegDone = 1; - - return 0; - -err_thread: - kthread_stop(ft1000dev->pPollThread); -err_load: - kfree(pFileStart); -err_fw: - usb_free_urb(ft1000dev->rx_urb); - usb_free_urb(ft1000dev->tx_urb); - kfree(ft1000dev); - return ret; -} - -static void ft1000_disconnect(struct usb_interface *interface) -{ - struct ft1000_info *pft1000info; - struct ft1000_usb *ft1000dev; - - pft1000info = (struct ft1000_info *)usb_get_intfdata(interface); - pr_debug("In disconnect pft1000info=%p\n", pft1000info); - - if (pft1000info) { - ft1000dev = pft1000info->priv; - if (ft1000dev->pPollThread) - kthread_stop(ft1000dev->pPollThread); - - pr_debug("threads are terminated\n"); - - if (ft1000dev->net) { - pr_debug("destroy char driver\n"); - ft1000_destroy_dev(ft1000dev->net); - unregister_netdev(ft1000dev->net); - pr_debug("network device unregistered\n"); - free_netdev(ft1000dev->net); - - } - - usb_free_urb(ft1000dev->rx_urb); - usb_free_urb(ft1000dev->tx_urb); - - pr_debug("urb freed\n"); - - kfree(ft1000dev); - } - kfree(pFileStart); -} - -static struct usb_driver ft1000_usb_driver = { - .name = "ft1000usb", - .probe = ft1000_probe, - .disconnect = ft1000_disconnect, - .id_table = id_table, -}; - -module_usb_driver(ft1000_usb_driver); diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h deleted file mode 100644 index 9b5050fcbb66..000000000000 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef _FT1000_USB_H_ -#define _FT1000_USB_H_ - -#include "../ft1000.h" -#include "ft1000_ioctl.h" -#define FT1000_DRV_VER 0x01010403 - -#define MAX_NUM_APP 6 -#define MAX_MSG_LIMIT 200 -#define NUM_OF_FREE_BUFFERS 1500 - -#define PSEUDOSZ 16 - -struct app_info_block { - u32 nTxMsg; /* DPRAM msg sent to DSP with app_id */ - u32 nRxMsg; /* DPRAM msg rcv from dsp with app_id */ - u32 nTxMsgReject; /* DPRAM msg rejected due to DSP doorbell - * set - */ - u32 nRxMsgMiss; /* DPRAM msg dropped due to overflow */ - struct fown_struct *fileobject;/* Application's file object */ - u16 app_id; /* Application id */ - int DspBCMsgFlag; - int NumOfMsg; /* number of messages queued up */ - wait_queue_head_t wait_dpram_msg; - struct list_head app_sqlist; /* link list of msgs for applicaton on - * slow queue - */ -} __packed; - -#define FALSE 0 -#define TRUE 1 - -#define FT1000_STATUS_CLOSING 0x01 - -#define DSPBCMSGID 0x10 - -/* Electrabuzz specific DPRAM mapping */ -/* this is used by ft1000_usb driver - isn't that a bug? */ -#undef FT1000_DPRAM_RX_BASE -#define FT1000_DPRAM_RX_BASE 0x1800 /* RX AREA (SlowQ) */ - -/* MEMORY MAP FOR MAGNEMITE */ -/* the indexes are swapped comparing to PCMCIA - is it OK or a bug? */ -#undef FT1000_MAG_DSP_LED_INDX -#define FT1000_MAG_DSP_LED_INDX 0x1 /* dsp led status for PAD - * device - */ -#undef FT1000_MAG_DSP_CON_STATE_INDX -#define FT1000_MAG_DSP_CON_STATE_INDX 0x0 /* DSP Connection Status Info */ - -/* Maximum times trying to get ASIC out of reset */ -#define MAX_ASIC_RESET_CNT 20 - -#define MAX_BUF_SIZE 4096 - -struct ft1000_debug_dirs { - struct list_head list; - struct dentry *dent; - struct dentry *file; - int int_number; -}; - -struct ft1000_usb { - struct usb_device *dev; - struct net_device *net; - - u32 status; - - struct urb *rx_urb; - struct urb *tx_urb; - - u8 tx_buf[MAX_BUF_SIZE]; - u8 rx_buf[MAX_BUF_SIZE]; - - u8 bulk_in_endpointAddr; - u8 bulk_out_endpointAddr; - - struct task_struct *pPollThread; - unsigned char fcodeldr; - unsigned char bootmode; - unsigned char usbboot; - unsigned short dspalive; - bool fProvComplete; - bool fCondResetPend; - bool fAppMsgPend; - int DeviceCreated; - int NetDevRegDone; - u8 CardNumber; - u8 DeviceName[15]; - struct ft1000_debug_dirs nodes; - spinlock_t fifo_lock; - int appcnt; - struct app_info_block app_info[MAX_NUM_APP]; - u16 DrvMsgPend; - unsigned short tempbuf[32]; -} __packed; - - -struct dpram_blk { - struct list_head list; - u16 *pbuffer; -} __packed; - -int ft1000_read_register(struct ft1000_usb *ft1000dev, - u16 *Data, u16 nRegIndx); -int ft1000_write_register(struct ft1000_usb *ft1000dev, - u16 value, u16 nRegIndx); -int ft1000_read_dpram32(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer, u16 cnt); -int ft1000_write_dpram32(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer, u16 cnt); -int ft1000_read_dpram16(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer, u8 highlow); -int ft1000_write_dpram16(struct ft1000_usb *ft1000dev, - u16 indx, u16 value, u8 highlow); -int fix_ft1000_read_dpram32(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer); -int fix_ft1000_write_dpram32(struct ft1000_usb *ft1000dev, - u16 indx, u8 *buffer); - -extern void *pFileStart; -extern size_t FileLength; -extern int numofmsgbuf; - -int ft1000_close(struct net_device *dev); -int scram_dnldr(struct ft1000_usb *ft1000dev, void *pFileStart, - u32 FileLength); - -extern struct list_head freercvpool; - -/* lock to arbitrate free buffer list for receive command data */ -extern spinlock_t free_buff_lock; - -int ft1000_create_dev(struct ft1000_usb *dev); -void ft1000_destroy_dev(struct net_device *dev); -int card_send_command(struct ft1000_usb *ft1000dev, - void *ptempbuffer, int size); - -struct dpram_blk *ft1000_get_buffer(struct list_head *bufflist); -void ft1000_free_buffer(struct dpram_blk *pdpram_blk, struct list_head *plist); - -int dsp_reload(struct ft1000_usb *ft1000dev); -int init_ft1000_netdev(struct ft1000_usb *ft1000dev); -struct usb_interface; -int reg_ft1000_netdev(struct ft1000_usb *ft1000dev, - struct usb_interface *intf); -int ft1000_poll(void *dev_id); - -#endif /* _FT1000_USB_H_ */ diff --git a/drivers/staging/ft1000/ft1000-usb/ft3000.img b/drivers/staging/ft1000/ft1000-usb/ft3000.img deleted file mode 100644 index 7bef6bd3680a22849b5dc7e85586ebc11d99510c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280414 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
aV00ZD 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
2epj)5PT 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≫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 LbAPpeow5G_%)B!= diff --git a/drivers/staging/ft1000/ft1000.h b/drivers/staging/ft1000/ft1000.h deleted file mode 100644 index 8a2e4caa532d..000000000000 --- a/drivers/staging/ft1000/ft1000.h +++ /dev/null @@ -1,366 +0,0 @@ -/* - * Common structures and definitions for FT1000 Flarion Flash OFDM PCMCIA and - * USB devices. - * - * Originally copyright (c) 2002 Flarion Technologies - * - */ - -#define DSPVERSZ 4 -#define HWSERNUMSZ 16 -#define SKUSZ 20 -#define EUISZ 8 -#define MODESZ 2 -#define CALVERSZ 2 -#define CALDATESZ 6 - -#define ELECTRABUZZ_ID 0 /* ASIC ID for Electrabuzz */ -#define MAGNEMITE_ID 0x1a01 /* ASIC ID for Magnemite */ - -/* MEMORY MAP common to both ELECTRABUZZ and MAGNEMITE */ -#define FT1000_REG_DPRAM_ADDR 0x000E /* DPADR - Dual Port Ram Indirect - * Address Register - */ -#define FT1000_REG_SUP_CTRL 0x0020 /* HCTR - Host Control Register */ -#define FT1000_REG_SUP_STAT 0x0022 /* HSTAT - Host Status Register */ -#define FT1000_REG_RESET 0x0024 /* HCTR - Host Control Register */ -#define FT1000_REG_SUP_ISR 0x0026 /* HISR - Host Interrupt Status - * Register - */ -#define FT1000_REG_SUP_IMASK 0x0028 /* HIMASK - Host Interrupt Mask */ -#define FT1000_REG_DOORBELL 0x002a /* DBELL - Door Bell Register */ -#define FT1000_REG_ASIC_ID 0x002e /* ASICID - ASIC Identification - * Number - */ - -/* MEMORY MAP FOR ELECTRABUZZ ASIC */ -#define FT1000_REG_UFIFO_STAT 0x0000 /* UFSR - Uplink FIFO status register */ -#define FT1000_REG_UFIFO_BEG 0x0002 /* UFBR - Uplink FIFO beginning - * register - */ -#define FT1000_REG_UFIFO_MID 0x0004 /* UFMR - Uplink FIFO middle register */ -#define FT1000_REG_UFIFO_END 0x0006 /* UFER - Uplink FIFO end register */ -#define FT1000_REG_DFIFO_STAT 0x0008 /* DFSR - Downlink FIFO status - * register - */ -#define FT1000_REG_DFIFO 0x000A /* DFR - Downlink FIFO Register */ -#define FT1000_REG_DPRAM_DATA 0x000C /* DPRAM - Dual Port Indirect - * Data Register - */ -#define FT1000_REG_WATERMARK 0x0010 /* WMARK - Watermark Register */ - -/* MEMORY MAP FOR MAGNEMITE */ -#define FT1000_REG_MAG_UFDR 0x0000 /* UFDR - Uplink FIFO Data - * Register (32-bits) - */ -#define FT1000_REG_MAG_UFDRL 0x0000 /* UFDRL - Uplink FIFO Data - * Register low-word (16-bits) - */ -#define FT1000_REG_MAG_UFDRH 0x0002 /* UFDRH - Uplink FIFO Data Register - * high-word (16-bits) - */ -#define FT1000_REG_MAG_UFER 0x0004 /* UFER - Uplink FIFO End Register */ -#define FT1000_REG_MAG_UFSR 0x0006 /* UFSR - Uplink FIFO Status Register */ -#define FT1000_REG_MAG_DFR 0x0008 /* DFR - Downlink FIFO Register - * (32-bits) - */ -#define FT1000_REG_MAG_DFRL 0x0008 /* DFRL - Downlink FIFO Register - * low-word (16-bits) - */ -#define FT1000_REG_MAG_DFRH 0x000a /* DFRH - Downlink FIFO Register - * high-word (16-bits) - */ -#define FT1000_REG_MAG_DFSR 0x000c /* DFSR - Downlink FIFO Status - * Register - */ -#define FT1000_REG_MAG_DPDATA 0x0010 /* DPDATA - Dual Port RAM Indirect - * Data Register (32-bits) - */ -#define FT1000_REG_MAG_DPDATAL 0x0010 /* DPDATAL - Dual Port RAM Indirect - * Data Register low-word (16-bits) - */ -#define FT1000_REG_MAG_DPDATAH 0x0012 /* DPDATAH - Dual Port RAM Indirect Data - * Register high-word (16-bits) - */ -#define FT1000_REG_MAG_WATERMARK 0x002c /* WMARK - Watermark Register */ -#define FT1000_REG_MAG_VERSION 0x0030 /* LLC Version */ - -/* Reserved Dual Port RAM offsets for Electrabuzz */ -#define FT1000_DPRAM_TX_BASE 0x0002 /* Host to PC Card Messaging Area */ -#define FT1000_DPRAM_RX_BASE 0x0800 /* PC Card to Host Messaging Area */ -#define FT1000_FIFO_LEN 0x07FC /* total length for DSP FIFO tracking */ -#define FT1000_HI_HO 0x07FE /* heartbeat with HI/HO */ -#define FT1000_DSP_STATUS 0x0FFE /* dsp status - non-zero is a request - * to reset dsp - */ -#define FT1000_DSP_LED 0x0FFA /* dsp led status for PAD device */ -#define FT1000_DSP_CON_STATE 0x0FF8 /* DSP Connection Status Info */ -#define FT1000_DPRAM_FEFE 0x0002 /* location for dsp ready indicator */ -#define FT1000_DSP_TIMER0 0x1FF0 /* Timer Field from Basestation */ -#define FT1000_DSP_TIMER1 0x1FF2 /* Timer Field from Basestation */ -#define FT1000_DSP_TIMER2 0x1FF4 /* Timer Field from Basestation */ -#define FT1000_DSP_TIMER3 0x1FF6 /* Timer Field from Basestation */ - -/* Reserved Dual Port RAM offsets for Magnemite */ -#define FT1000_DPRAM_MAG_TX_BASE 0x0000 /* Host to PC Card - * Messaging Area - */ -#define FT1000_DPRAM_MAG_RX_BASE 0x0200 /* PC Card to Host - * Messaging Area - */ - -#define FT1000_MAG_FIFO_LEN 0x1FF /* total length for DSP - * FIFO tracking - */ -#define FT1000_MAG_FIFO_LEN_INDX 0x1 /* low-word index */ -#define FT1000_MAG_HI_HO 0x1FF /* heartbeat with HI/HO */ -#define FT1000_MAG_HI_HO_INDX 0x0 /* high-word index */ -#define FT1000_MAG_DSP_LED 0x3FE /* dsp led status for - * PAD device - */ -#define FT1000_MAG_DSP_LED_INDX 0x0 /* dsp led status for - * PAD device - */ -#define FT1000_MAG_DSP_CON_STATE 0x3FE /* DSP Connection Status Info */ -#define FT1000_MAG_DSP_CON_STATE_INDX 0x1 /* DSP Connection Status Info */ -#define FT1000_MAG_DPRAM_FEFE 0x000 /* location for dsp ready - * indicator - */ -#define FT1000_MAG_DPRAM_FEFE_INDX 0x0 /* location for dsp ready - * indicator - */ -#define FT1000_MAG_DSP_TIMER0 0x3FC /* Timer Field from - * Basestation - */ -#define FT1000_MAG_DSP_TIMER0_INDX 0x1 -#define FT1000_MAG_DSP_TIMER1 0x3FC /* Timer Field from - * Basestation - */ -#define FT1000_MAG_DSP_TIMER1_INDX 0x0 -#define FT1000_MAG_DSP_TIMER2 0x3FD /* Timer Field from - * Basestation - */ -#define FT1000_MAG_DSP_TIMER2_INDX 0x1 -#define FT1000_MAG_DSP_TIMER3 0x3FD /* Timer Field from - * Basestation - */ -#define FT1000_MAG_DSP_TIMER3_INDX 0x0 -#define FT1000_MAG_TOTAL_LEN 0x200 -#define FT1000_MAG_TOTAL_LEN_INDX 0x1 -#define FT1000_MAG_PH_LEN 0x200 -#define FT1000_MAG_PH_LEN_INDX 0x0 -#define FT1000_MAG_PORT_ID 0x201 -#define FT1000_MAG_PORT_ID_INDX 0x0 - -#define HOST_INTF_LE 0x0 /* Host interface little endian mode */ -#define HOST_INTF_BE 0x1 /* Host interface big endian mode */ - -/* FT1000 to Host Doorbell assignments */ -#define FT1000_DB_DPRAM_RX 0x0001 /* this value indicates that DSP - * has data for host in DPRAM - */ -#define FT1000_DB_DNLD_RX 0x0002 /* Downloader handshake doorbell */ -#define FT1000_ASIC_RESET_REQ 0x0004 /* DSP requesting host to - * reset the ASIC - */ -#define FT1000_DSP_ASIC_RESET 0x0008 /* DSP indicating host that - * it will reset the ASIC - */ -#define FT1000_DB_COND_RESET 0x0010 /* DSP request for a card reset. */ - -/* Host to FT1000 Doorbell assignments */ -#define FT1000_DB_DPRAM_TX 0x0100 /* this value indicates that host - * has data for DSP in DPRAM. - */ -#define FT1000_DB_DNLD_TX 0x0200 /* Downloader handshake doorbell */ -#define FT1000_ASIC_RESET_DSP 0x0400 /* Responds to FT1000_ASIC_RESET_REQ */ -#define FT1000_DB_HB 0x1000 /* Indicates that supervisor has a - * heartbeat message for DSP. - */ - -#define hi 0x6869 /* PC Card heartbeat values */ -#define ho 0x686f /* PC Card heartbeat values */ - -/* Magnemite specific defines */ -#define hi_mag 0x6968 /* Byte swap hi to avoid - * additional system call - */ -#define ho_mag 0x6f68 /* Byte swap ho to avoid - * additional system call - */ - -/* Bit field definitions for Host Interrupt Status Register */ -/* Indicate the cause of an interrupt. */ -#define ISR_EMPTY 0x00 /* no bits set */ -#define ISR_DOORBELL_ACK 0x01 /* Doorbell acknowledge from DSP */ -#define ISR_DOORBELL_PEND 0x02 /* Doorbell pending from DSP */ -#define ISR_RCV 0x04 /* Packet available in Downlink FIFO */ -#define ISR_WATERMARK 0x08 /* Watermark requirements satisfied */ - -/* Bit field definition for Host Interrupt Mask */ -#define ISR_MASK_NONE 0x0000 /* no bits set */ -#define ISR_MASK_DOORBELL_ACK 0x0001 /* Doorbell acknowledge mask */ -#define ISR_MASK_DOORBELL_PEND 0x0002 /* Doorbell pending mask */ -#define ISR_MASK_RCV 0x0004 /* Downlink Packet available mask */ -#define ISR_MASK_WATERMARK 0x0008 /* Watermark interrupt mask */ -#define ISR_MASK_ALL 0xffff /* Mask all interrupts */ -/* Default interrupt mask - * (Enable Doorbell pending and Packet available interrupts) - */ -#define ISR_DEFAULT_MASK 0x7ff9 - -/* Bit field definition for Host Control Register */ -#define DSP_RESET_BIT 0x0001 /* Bit field to control - * dsp reset state - */ - /* (0 = out of reset 1 = reset) */ -#define ASIC_RESET_BIT 0x0002 /* Bit field to control - * ASIC reset state - */ - /* (0 = out of reset 1 = reset) */ -#define DSP_UNENCRYPTED 0x0004 -#define DSP_ENCRYPTED 0x0008 -#define EFUSE_MEM_DISABLE 0x0040 - -/* Application specific IDs */ -#define DSPID 0x20 -#define HOSTID 0x10 -#define DSPAIRID 0x90 -#define DRIVERID 0x00 -#define NETWORKID 0x20 - -/* Size of DPRAM Message */ -#define MAX_CMD_SQSIZE 1780 - -#define ENET_MAX_SIZE 1514 -#define ENET_HEADER_SIZE 14 - -#define SLOWQ_TYPE 0 -#define FASTQ_TYPE 1 - -#define MAX_DSP_SESS_REC 1024 - -#define DSP_QID_OFFSET 4 - -/* Driver message types */ -#define MEDIA_STATE 0x0010 -#define TIME_UPDATE 0x0020 -#define DSP_PROVISION 0x0030 -#define DSP_INIT_MSG 0x0050 -#define DSP_HIBERNATE 0x0060 -#define DSP_STORE_INFO 0x0070 -#define DSP_GET_INFO 0x0071 -#define GET_DRV_ERR_RPT_MSG 0x0073 -#define RSP_DRV_ERR_RPT_MSG 0x0074 - -/* Driver Error Messages for DSP */ -#define DSP_HB_INFO 0x7ef0 -#define DSP_FIFO_INFO 0x7ef1 -#define DSP_CONDRESET_INFO 0x7ef2 -#define DSP_CMDLEN_INFO 0x7ef3 -#define DSP_CMDPHCKSUM_INFO 0x7ef4 -#define DSP_PKTPHCKSUM_INFO 0x7ef5 -#define DSP_PKTLEN_INFO 0x7ef6 -#define DSP_USER_RESET 0x7ef7 -#define FIFO_FLUSH_MAXLIMIT 0x7ef8 -#define FIFO_FLUSH_BADCNT 0x7ef9 -#define FIFO_ZERO_LEN 0x7efa - -/* Pseudo Header structure */ -struct pseudo_hdr { - unsigned short length; /* length of msg body */ - unsigned char source; /* hardware source id */ - /* Host = 0x10 */ - /* Dsp = 0x20 */ - unsigned char destination; /* hardware destination id - * (refer to source) - */ - unsigned char portdest; /* software destination port id */ - /* Host = 0x00 */ - /* Applicaton Broadcast = 0x10 */ - /* Network Stack = 0x20 */ - /* Dsp OAM = 0x80 */ - /* Dsp Airlink = 0x90 */ - /* Dsp Loader = 0xa0 */ - /* Dsp MIP = 0xb0 */ - unsigned char portsrc; /* software source port id - * (refer to portdest) - */ - unsigned short sh_str_id; /* not used */ - unsigned char control; /* not used */ - unsigned char rsvd1; - unsigned char seq_num; /* message sequence number */ - unsigned char rsvd2; - unsigned short qos_class; /* not used */ - unsigned short checksum; /* pseudo header checksum */ -} __packed; - -struct drv_msg { - struct pseudo_hdr pseudo; - u16 type; - u16 length; - u8 data[0]; -} __packed; - -struct media_msg { - struct pseudo_hdr pseudo; - u16 type; - u16 length; - u16 state; - u32 ip_addr; - u32 net_mask; - u32 gateway; - u32 dns_1; - u32 dns_2; -} __packed; - -struct dsp_init_msg { - struct pseudo_hdr pseudo; - u16 type; - u16 length; - u8 DspVer[DSPVERSZ]; /* DSP version number */ - u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */ - u8 Sku[SKUSZ]; /* SKU */ - u8 eui64[EUISZ]; /* EUI64 */ - u8 ProductMode[MODESZ]; /* Product Mode (Market/Production) */ - u8 RfCalVer[CALVERSZ]; /* Rf Calibration version */ - u8 RfCalDate[CALDATESZ]; /* Rf Calibration date */ -} __packed; - -struct prov_record { - struct list_head list; - u8 *pprov_data; -}; - -struct ft1000_info { - void *priv; - struct net_device_stats stats; - u16 DrvErrNum; - u16 AsicID; - int CardReady; - int registered; - int mediastate; - u8 squeseqnum; /* sequence number on slow queue */ - spinlock_t dpram_lock; - u16 fifo_cnt; - u8 DspVer[DSPVERSZ]; /* DSP version number */ - u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */ - u8 Sku[SKUSZ]; /* SKU */ - u8 eui64[EUISZ]; /* EUI64 */ - time_t ConTm; /* Connection Time */ - u8 ProductMode[MODESZ]; - u8 RfCalVer[CALVERSZ]; - u8 RfCalDate[CALDATESZ]; - u16 DSP_TIME[4]; - u16 LedStat; - u16 ConStat; - u16 ProgConStat; - struct list_head prov_list; - u16 DSPInfoBlklen; - int (*ft1000_reset)(void *); - u16 DSPInfoBlk[MAX_DSP_SESS_REC]; - union { - u16 Rec[MAX_DSP_SESS_REC]; - u32 MagRec[MAX_DSP_SESS_REC/2]; - } DSPSess; -}; From 5a602ac4d6ecda412746fe249423d6455e32a264 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sun, 18 Oct 2015 22:59:18 +0100 Subject: [PATCH 2133/2431] staging: emxx_udc: Remove boolean comparisons Boolean tests do not need explicit comparison to true or false. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 049274738a2e..26c8d5bdbccf 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -1267,7 +1267,7 @@ static int _nbu2ss_start_transfer( /* EPn */ if (ep->direct == USB_DIR_OUT) { /* OUT */ - if (bflag == FALSE) + if (!bflag) nret = _nbu2ss_epn_out_transfer(udc, ep, req); } else { /* IN */ @@ -1509,7 +1509,7 @@ static inline int _nbu2ss_req_feature(struct nbu2ss_udc *udc, bool bset) if (0x0000 == (wIndex & 0xFF70)) { if (selector == USB_ENDPOINT_HALT) { ep_adrs = wIndex & 0xFF; - if (bset == FALSE) { + if (!bset) { _nbu2ss_endpoint_toggle_reset( udc, ep_adrs); } @@ -1756,7 +1756,7 @@ static inline int _nbu2ss_decode_request(struct nbu2ss_udc *udc) } } - if (bcall_back == FALSE) { + if (!bcall_back) { if (udc->ep0state == EP0_IN_STATUS_PHASE) { if (nret >= 0) { /*--------------------------------------*/ @@ -2044,7 +2044,7 @@ static inline void _nbu2ss_epn_in_dma_int( preq = &req->req; - if (req->dma_flag == FALSE) + if (!req->dma_flag) return; preq->actual += req->div_len; @@ -2756,7 +2756,7 @@ static int nbu2ss_ep_queue( bflag = list_empty(&ep->queue); list_add_tail(&req->queue, &ep->queue); - if ((bflag != FALSE) && (ep->stalled == FALSE)) { + if (bflag && !ep->stalled) { result = _nbu2ss_start_transfer(udc, ep, req, FALSE); if (result < 0) { From ba57f5fadb79f35e9e2a75617dccd62415db5252 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Mon, 19 Oct 2015 12:24:39 +0530 Subject: [PATCH 2134/2431] Staging: emxx_udc: Add space around operator. Add a space around '>>' operator. Problem found using checkpatch. Signed-off-by: Navya Sri Nizamkari Reviewed-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- drivers/staging/emxx_udc/emxx_udc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 26c8d5bdbccf..4e6c16af40fc 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -211,7 +211,7 @@ static u32 _nbu2ss_get_begin_ram_address(struct nbu2ss_udc *udc) } if ((data >> 16) > last_ram_adr) - last_ram_adr = data>>16; + last_ram_adr = data >> 16; } return last_ram_adr + use_ram_size; From 62d46eaac6c64c48413d62aae285a013439c51b9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:15 +0200 Subject: [PATCH 2135/2431] staging: rtl8192e: rtl_dm: Use proper packet type rtl92e_send_cmd_packet sends only NORMAL packets, passing invalid type (even it it's ignored) is confusing. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index efa57d814186..c993f2039a24 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -655,7 +655,7 @@ static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev) tx_cmd.Op = TXCMD_SET_TX_PWR_TRACKING; tx_cmd.Length = 4; tx_cmd.Value = Value; - rtl92e_send_cmd_pkt(dev, (u8 *)&tx_cmd, DESC_PACKET_TYPE_INIT, + rtl92e_send_cmd_pkt(dev, (u8 *)&tx_cmd, DESC_PACKET_TYPE_NORMAL, sizeof(struct dcmd_txcmd)); mdelay(1); for (i = 0; i <= 30; i++) { From 1afacec6636dcf7b77ed0fdd34b7d09afaf3b323 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:16 +0200 Subject: [PATCH 2136/2431] staging: rtl8192e: cmdpkt: Use packettype properly rtl92e_send_cmd_pkt used hardcoded NORMAL packet type. As it may be used to send other packet types as well - use provided packet type instead of defaults. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index 6f5839f43c5c..d74d0386bbaa 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c @@ -58,7 +58,7 @@ bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *code_virtual_address, memcpy((unsigned char *)(skb->cb), &dev, sizeof(dev)); tcb_desc = (struct cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); tcb_desc->queue_index = TXCMD_QUEUE; - tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_NORMAL; + tcb_desc->bCmdOrInit = packettype; tcb_desc->bLastIniPkt = bLastIniPkt; tcb_desc->pkt_size = frag_length; From 2e74c73c9837171c380f4c2ce4c749a0b62e4b8c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:17 +0200 Subject: [PATCH 2137/2431] staging: rtl8192e: cmdpkt: Simplify argument names Rename: codevirtualaddress -> data buffer_len -> len packettype -> type Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 17 ++++++++--------- .../staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h | 3 +-- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index d74d0386bbaa..e602604867af 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c @@ -17,8 +17,7 @@ #include "r8192E_hw.h" #include "r8192E_cmdpkt.h" -bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *code_virtual_address, - u32 packettype, u32 buffer_len) +bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *data, u32 type, u32 len) { bool rt_status = true; @@ -33,17 +32,17 @@ bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *code_virtual_address, struct tx_fwinfo_8190pci *pTxFwInfo = NULL; - RT_TRACE(COMP_CMDPKT, "%s(),buffer_len is %d\n", __func__, buffer_len); + RT_TRACE(COMP_CMDPKT, "%s(),buffer_len is %d\n", __func__, len); rtl92e_init_fw_param(dev); frag_threshold = pfirmware->cmdpacket_frag_thresold; do { - if ((buffer_len - frag_offset) > frag_threshold) { + if ((len - frag_offset) > frag_threshold) { frag_length = frag_threshold; bLastIniPkt = 0; } else { - frag_length = (u16)(buffer_len - frag_offset); + frag_length = (u16)(len - frag_offset); bLastIniPkt = 1; } @@ -58,7 +57,7 @@ bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *code_virtual_address, memcpy((unsigned char *)(skb->cb), &dev, sizeof(dev)); tcb_desc = (struct cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); tcb_desc->queue_index = TXCMD_QUEUE; - tcb_desc->bCmdOrInit = packettype; + tcb_desc->bCmdOrInit = type; tcb_desc->bLastIniPkt = bLastIniPkt; tcb_desc->pkt_size = frag_length; @@ -68,14 +67,14 @@ bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *code_virtual_address, memset(pTxFwInfo, 0x12, 8); seg_ptr = skb_put(skb, frag_length); - memcpy(seg_ptr, code_virtual_address, (u32)frag_length); + memcpy(seg_ptr, data, (u32)frag_length); priv->rtllib->softmac_hard_start_xmit(skb, dev); - code_virtual_address += frag_length; + data += frag_length; frag_offset += frag_length; - } while (frag_offset < buffer_len); + } while (frag_offset < len); rtl92e_writeb(dev, TPPoll, TPPoll_CQ); Failed: diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h index 31303a14c7fb..1acf09933e8e 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h @@ -15,6 +15,5 @@ #ifndef R819XUSB_CMDPKT_H #define R819XUSB_CMDPKT_H -bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *codevirtualaddress, - u32 packettype, u32 buffer_len); +bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *data, u32 type, u32 len); #endif From d15fe3e01989df34c5afc0d61fb53337484872b0 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:18 +0200 Subject: [PATCH 2138/2431] staging: rtl8192e: cmdpkt: Reorder arguments Use send_cmd_pkt(dev, type, data , size) order to avoid confusion Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index e602604867af..b151837efb12 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c @@ -17,7 +17,7 @@ #include "r8192E_hw.h" #include "r8192E_cmdpkt.h" -bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *data, u32 type, u32 len) +bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, u8 *data, u32 len) { bool rt_status = true; diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h index 1acf09933e8e..67b3f609f0ee 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h @@ -15,5 +15,5 @@ #ifndef R819XUSB_CMDPKT_H #define R819XUSB_CMDPKT_H -bool rtl92e_send_cmd_pkt(struct net_device *dev, u8 *data, u32 type, u32 len); +bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, u8 *data, u32 len); #endif diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c993f2039a24..ef03242113be 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -655,7 +655,7 @@ static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev) tx_cmd.Op = TXCMD_SET_TX_PWR_TRACKING; tx_cmd.Length = 4; tx_cmd.Value = Value; - rtl92e_send_cmd_pkt(dev, (u8 *)&tx_cmd, DESC_PACKET_TYPE_NORMAL, + rtl92e_send_cmd_pkt(dev, DESC_PACKET_TYPE_NORMAL, (u8 *)&tx_cmd, sizeof(struct dcmd_txcmd)); mdelay(1); for (i = 0; i <= 30; i++) { From c008fa83c416bbdcca9a49fb2d6f3fbc50daf421 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:19 +0200 Subject: [PATCH 2139/2431] staging: rtl8192e: cmdpkt: Pass data as const void* Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 3 ++- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index b151837efb12..5ff7f2d44afd 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c @@ -17,7 +17,8 @@ #include "r8192E_hw.h" #include "r8192E_cmdpkt.h" -bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, u8 *data, u32 len) +bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, const void *data, + u32 len) { bool rt_status = true; diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h index 67b3f609f0ee..7dd15d993481 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h @@ -15,5 +15,6 @@ #ifndef R819XUSB_CMDPKT_H #define R819XUSB_CMDPKT_H -bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, u8 *data, u32 len); +bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, const void *data, + u32 len); #endif From 1e7da09afd129d9b75b561808d5ed9209d6d2f2c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:20 +0200 Subject: [PATCH 2140/2431] staging: rtl8192e: Use macro to represent fragmentation threshold Add CMDPACKET_FRAG_SIZE macro and use it as fragmentation threshold in send_cmd_pkt functions. This makes rt_firmware::cmdpacket_frag_thresold and rtl92e_init_fw_param() obsolete. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 8 ++------ .../rtl8192e/rtl8192e/r8192E_firmware.c | 18 ++---------------- .../rtl8192e/rtl8192e/r8192E_firmware.h | 5 ----- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 ++ 4 files changed, 6 insertions(+), 27 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index 5ff7f2d44afd..3de1b25b0155 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c @@ -23,9 +23,7 @@ bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, const void *data, bool rt_status = true; struct r8192_priv *priv = rtllib_priv(dev); - u16 frag_threshold; u16 frag_length = 0, frag_offset = 0; - struct rt_firmware *pfirmware = priv->pFirmware; struct sk_buff *skb; unsigned char *seg_ptr; struct cb_desc *tcb_desc; @@ -34,12 +32,10 @@ bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, const void *data, struct tx_fwinfo_8190pci *pTxFwInfo = NULL; RT_TRACE(COMP_CMDPKT, "%s(),buffer_len is %d\n", __func__, len); - rtl92e_init_fw_param(dev); - frag_threshold = pfirmware->cmdpacket_frag_thresold; do { - if ((len - frag_offset) > frag_threshold) { - frag_length = frag_threshold; + if ((len - frag_offset) > CMDPACKET_FRAG_SIZE) { + frag_length = CMDPACKET_FRAG_SIZE; bLastIniPkt = 0; } else { diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index dab67c12ccc2..f88e112847a1 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -19,34 +19,20 @@ #include "r8192E_firmware.h" #include -void rtl92e_init_fw_param(struct net_device *dev) -{ - struct r8192_priv *priv = rtllib_priv(dev); - struct rt_firmware *pfirmware = priv->pFirmware; - - pfirmware->cmdpacket_frag_thresold = GET_COMMAND_PACKET_FRAG_THRESHOLD( - MAX_TRANSMIT_BUFFER_SIZE); -} - static bool _rtl92e_fw_download_code(struct net_device *dev, u8 *code_virtual_address, u32 buffer_len) { struct r8192_priv *priv = rtllib_priv(dev); - u16 frag_threshold; u16 frag_length, frag_offset = 0; int i; - - struct rt_firmware *pfirmware = priv->pFirmware; struct sk_buff *skb; unsigned char *seg_ptr; struct cb_desc *tcb_desc; u8 bLastIniPkt; - rtl92e_init_fw_param(dev); - frag_threshold = pfirmware->cmdpacket_frag_thresold; do { - if ((buffer_len - frag_offset) > frag_threshold) { - frag_length = frag_threshold; + if ((buffer_len - frag_offset) > CMDPACKET_FRAG_SIZE) { + frag_length = CMDPACKET_FRAG_SIZE; bLastIniPkt = 0; } else { diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h index 10aac8c17f5b..186c65d6f6d3 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h @@ -15,8 +15,6 @@ #ifndef __INC_FIRMWARE_H #define __INC_FIRMWARE_H -#define GET_COMMAND_PACKET_FRAG_THRESHOLD(v) (4*(v/4) - 8) - #define RTL8192E_BOOT_IMG_FW "RTL8192E/boot.img" #define RTL8192E_MAIN_IMG_FW "RTL8192E/main.img" #define RTL8192E_DATA_IMG_FW "RTL8192E/data.img" @@ -48,7 +46,6 @@ enum firmware_status { struct rt_firmware { enum firmware_status firmware_status; - u16 cmdpacket_frag_thresold; #define RTL8190_MAX_FIRMWARE_CODE_SIZE 64000 #define MAX_FW_INIT_STEP 3 u8 firmware_buf[MAX_FW_INIT_STEP][RTL8190_MAX_FIRMWARE_CODE_SIZE]; @@ -56,6 +53,4 @@ struct rt_firmware { }; bool rtl92e_init_fw(struct net_device *dev); -void rtl92e_init_fw_param(struct net_device *dev); - #endif diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.h b/drivers/staging/rtl8192e/rtl8192e/rtl_core.h index 1ddf42a83fb4..a7777a319c02 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.h @@ -91,6 +91,8 @@ (1600 + (MAX_802_11_HEADER_LENGTH + ENCRYPTION_MAX_OVERHEAD) * \ MAX_FRAGMENT_COUNT) +#define CMDPACKET_FRAG_SIZE (4 * (MAX_TRANSMIT_BUFFER_SIZE / 4) - 8) + #define DEFAULT_FRAG_THRESHOLD 2342U #define MIN_FRAG_THRESHOLD 256U #define DEFAULT_BEACONINTERVAL 0x64U From c0f6479165ed0380e8588f50ff728b76131c4383 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:21 +0200 Subject: [PATCH 2141/2431] staging: rtl8192e: cmd_pkt: Handle INIT packets Add support for DESC_PACKET_TYPE_INIT to rtl92e_send_cmd_pkt(). With this generalization, _rtl92e_fw_download_code() may be removed after slight modification. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index 3de1b25b0155..f9003a28cae2 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c @@ -43,8 +43,11 @@ bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, const void *data, bLastIniPkt = 1; } - skb = dev_alloc_skb(frag_length + - priv->rtllib->tx_headroom + 4); + if (type == DESC_PACKET_TYPE_NORMAL) + skb = dev_alloc_skb(frag_length + + priv->rtllib->tx_headroom + 4); + else + skb = dev_alloc_skb(frag_length + 4); if (skb == NULL) { rt_status = false; @@ -56,17 +59,30 @@ bool rtl92e_send_cmd_pkt(struct net_device *dev, u32 type, const void *data, tcb_desc->queue_index = TXCMD_QUEUE; tcb_desc->bCmdOrInit = type; tcb_desc->bLastIniPkt = bLastIniPkt; - tcb_desc->pkt_size = frag_length; - seg_ptr = skb_put(skb, priv->rtllib->tx_headroom); - pTxFwInfo = (struct tx_fwinfo_8190pci *)seg_ptr; - memset(pTxFwInfo, 0, sizeof(struct tx_fwinfo_8190pci)); - memset(pTxFwInfo, 0x12, 8); + if (type == DESC_PACKET_TYPE_NORMAL) { + tcb_desc->pkt_size = frag_length; + + seg_ptr = skb_put(skb, priv->rtllib->tx_headroom); + pTxFwInfo = (struct tx_fwinfo_8190pci *)seg_ptr; + memset(pTxFwInfo, 0, sizeof(struct tx_fwinfo_8190pci)); + memset(pTxFwInfo, 0x12, 8); + } else { + tcb_desc->txbuf_size = (u16)frag_length; + } seg_ptr = skb_put(skb, frag_length); memcpy(seg_ptr, data, (u32)frag_length); - priv->rtllib->softmac_hard_start_xmit(skb, dev); + if (type == DESC_PACKET_TYPE_INIT && + (!priv->rtllib->check_nic_enough_desc(dev, TXCMD_QUEUE) || + (!skb_queue_empty(&priv->rtllib->skb_waitQ[TXCMD_QUEUE])) || + (priv->rtllib->queue_stop))) { + skb_queue_tail(&priv->rtllib->skb_waitQ[TXCMD_QUEUE], + skb); + } else { + priv->rtllib->softmac_hard_start_xmit(skb, dev); + } data += frag_length; frag_offset += frag_length; From 292f4b47baf8e45b4196dab432ee787fd1eeca88 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:22 +0200 Subject: [PATCH 2142/2431] staging: rtl8192e: Add rt_fw_blob rt_fw_blob contains single firmware blob and its size. Update firmware loading code accordingly. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../rtl8192e/rtl8192e/r8192E_firmware.c | 19 +++++++++---------- .../rtl8192e/rtl8192e/r8192E_firmware.h | 12 ++++++++---- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index f88e112847a1..eb1f1bb46ca2 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -233,7 +233,7 @@ bool rtl92e_init_fw(struct net_device *dev) for (i = starting_state; i <= FW_INIT_STEP2_DATA; i++) { if (rst_opt == OPT_SYSTEM_RESET) { - if (pfirmware->firmware_buf_size[i] == 0) { + if (pfirmware->blobs[i].size == 0) { const char *fw_name[3] = { RTL8192E_BOOT_IMG_FW, RTL8192E_MAIN_IMG_FW, @@ -250,8 +250,7 @@ bool rtl92e_init_fw(struct net_device *dev) "request firmware fail!\n"); goto download_firmware_fail; } - if (fw_entry->size > - sizeof(pfirmware->firmware_buf[i])) { + if (fw_entry->size > MAX_FW_SIZE) { RT_TRACE(COMP_FIRMWARE, "img file size exceed the container struct buffer fail!\n"); release_firmware(fw_entry); @@ -259,17 +258,17 @@ bool rtl92e_init_fw(struct net_device *dev) } if (i != FW_INIT_STEP1_MAIN) { - memcpy(pfirmware->firmware_buf[i], + memcpy(pfirmware->blobs[i].data, fw_entry->data, fw_entry->size); - pfirmware->firmware_buf_size[i] = + pfirmware->blobs[i].size = fw_entry->size; } else { - memset(pfirmware->firmware_buf[i], + memset(pfirmware->blobs[i].data, 0, 128); - memcpy(&pfirmware->firmware_buf[i][128], + memcpy(&pfirmware->blobs[i].data[128], fw_entry->data, fw_entry->size); - pfirmware->firmware_buf_size[i] = + pfirmware->blobs[i].size = fw_entry->size + 128; } @@ -278,8 +277,8 @@ bool rtl92e_init_fw(struct net_device *dev) } } - mapped_file = pfirmware->firmware_buf[i]; - file_length = pfirmware->firmware_buf_size[i]; + mapped_file = pfirmware->blobs[i].data; + file_length = pfirmware->blobs[i].size; rt_status = _rtl92e_fw_download_code(dev, mapped_file, file_length); diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h index 186c65d6f6d3..4dde93eda4de 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h @@ -44,12 +44,16 @@ enum firmware_status { FW_STATUS_5_READY = 5, }; +#define MAX_FW_SIZE 64000 +struct rt_fw_blob { + u16 size; + u8 data[MAX_FW_SIZE]; +}; + +#define FW_BLOBS 3 struct rt_firmware { enum firmware_status firmware_status; -#define RTL8190_MAX_FIRMWARE_CODE_SIZE 64000 -#define MAX_FW_INIT_STEP 3 - u8 firmware_buf[MAX_FW_INIT_STEP][RTL8190_MAX_FIRMWARE_CODE_SIZE]; - u16 firmware_buf_size[MAX_FW_INIT_STEP]; + struct rt_fw_blob blobs[FW_BLOBS]; }; bool rtl92e_init_fw(struct net_device *dev); From 6167a6c88c07f5efe9fb86603f2b095b7ccc941a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:23 +0200 Subject: [PATCH 2143/2431] staging: rtl8192e: Rename rt_firmware::firmware_status to status Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 8 ++++---- .../staging/rtl8192e/rtl8192e/r8192E_firmware.c | 14 +++++++------- .../staging/rtl8192e/rtl8192e/r8192E_firmware.h | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index dad63c210303..e9c4f973bba9 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -719,19 +719,19 @@ start: rtl92e_writeb(dev, ANAPAR, 0x37); mdelay(500); } - priv->pFirmware->firmware_status = FW_STATUS_0_INIT; + priv->pFirmware->status = FW_STATUS_0_INIT; if (priv->RegRfOff) priv->rtllib->eRFPowerState = eRfOff; ulRegRead = rtl92e_readl(dev, CPU_GEN); - if (priv->pFirmware->firmware_status == FW_STATUS_0_INIT) + if (priv->pFirmware->status == FW_STATUS_0_INIT) ulRegRead |= CPU_GEN_SYSTEM_RESET; - else if (priv->pFirmware->firmware_status == FW_STATUS_5_READY) + else if (priv->pFirmware->status == FW_STATUS_5_READY) ulRegRead |= CPU_GEN_FIRMWARE_RESET; else netdev_err(dev, "%s(): undefined firmware state: %d.\n", - __func__, priv->pFirmware->firmware_status); + __func__, priv->pFirmware->status); rtl92e_writel(dev, CPU_GEN, ulRegRead); diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index eb1f1bb46ca2..528b68ac0207 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -168,27 +168,27 @@ static bool _rtl92e_fw_check_ready(struct net_device *dev, switch (load_fw_status) { case FW_INIT_STEP0_BOOT: - pfirmware->firmware_status = FW_STATUS_1_MOVE_BOOT_CODE; + pfirmware->status = FW_STATUS_1_MOVE_BOOT_CODE; break; case FW_INIT_STEP1_MAIN: - pfirmware->firmware_status = FW_STATUS_2_MOVE_MAIN_CODE; + pfirmware->status = FW_STATUS_2_MOVE_MAIN_CODE; rt_status = _rtl92e_fw_boot_cpu(dev); if (rt_status) - pfirmware->firmware_status = FW_STATUS_3_TURNON_CPU; + pfirmware->status = FW_STATUS_3_TURNON_CPU; else RT_TRACE(COMP_FIRMWARE, "_rtl92e_fw_boot_cpu fail!\n"); break; case FW_INIT_STEP2_DATA: - pfirmware->firmware_status = FW_STATUS_4_MOVE_DATA_CODE; + pfirmware->status = FW_STATUS_4_MOVE_DATA_CODE; mdelay(1); rt_status = _rtl92e_is_fw_ready(dev); if (rt_status) - pfirmware->firmware_status = FW_STATUS_5_READY; + pfirmware->status = FW_STATUS_5_READY; else RT_TRACE(COMP_FIRMWARE, "_rtl92e_is_fw_ready fail(%d)!\n", @@ -219,11 +219,11 @@ bool rtl92e_init_fw(struct net_device *dev) RT_TRACE(COMP_FIRMWARE, " PlatformInitFirmware()==>\n"); - if (pfirmware->firmware_status == FW_STATUS_0_INIT) { + if (pfirmware->status == FW_STATUS_0_INIT) { rst_opt = OPT_SYSTEM_RESET; starting_state = FW_INIT_STEP0_BOOT; - } else if (pfirmware->firmware_status == FW_STATUS_5_READY) { + } else if (pfirmware->status == FW_STATUS_5_READY) { rst_opt = OPT_FIRMWARE_RESET; starting_state = FW_INIT_STEP2_DATA; } else { diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h index 4dde93eda4de..b48ec9410c09 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h @@ -52,7 +52,7 @@ struct rt_fw_blob { #define FW_BLOBS 3 struct rt_firmware { - enum firmware_status firmware_status; + enum firmware_status status; struct rt_fw_blob blobs[FW_BLOBS]; }; From 58533b221730c0ccbcd7d7694b2111679f11d99d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:24 +0200 Subject: [PATCH 2144/2431] staging: rtl8192e: init_fw: Drop unneded check rst_opt is always equal to OPT_SYSTEM_RESET in this scope. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 528b68ac0207..42eabce56236 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -271,9 +271,7 @@ bool rtl92e_init_fw(struct net_device *dev) pfirmware->blobs[i].size = fw_entry->size + 128; } - - if (rst_opt == OPT_SYSTEM_RESET) - release_firmware(fw_entry); + release_firmware(fw_entry); } } From 51dac5f09577e8300602e378d115075cf656a32c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:25 +0200 Subject: [PATCH 2145/2431] staging: rtl8192e: Add _rtl92e_wait_for_fw() Add function waiting for firmware load/boot; Remove _rtl92e_is_fw_ready() that is obsolete (can be replaced with _rtl92e_wait_for_fw(). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../rtl8192e/rtl8192e/r8192E_firmware.c | 73 +++++-------------- 1 file changed, 18 insertions(+), 55 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 42eabce56236..2ac74843c130 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -19,6 +19,18 @@ #include "r8192E_firmware.h" #include +static bool _rtl92e_wait_for_fw(struct net_device *dev, u32 mask, u32 timeout) +{ + unsigned long deadline = jiffies + msecs_to_jiffies(timeout); + + while (time_before(jiffies, deadline)) { + if (rtl92e_readl(dev, CPU_GEN) & mask) + return true; + mdelay(2); + } + return false; +} + static bool _rtl92e_fw_download_code(struct net_device *dev, u8 *code_virtual_address, u32 buffer_len) { @@ -85,78 +97,30 @@ static bool _rtl92e_fw_download_code(struct net_device *dev, static bool _rtl92e_fw_boot_cpu(struct net_device *dev) { - bool rt_status = true; u32 CPU_status = 0; - unsigned long timeout; - timeout = jiffies + msecs_to_jiffies(200); - while (time_before(jiffies, timeout)) { - CPU_status = rtl92e_readl(dev, CPU_GEN); - if (CPU_status & CPU_GEN_PUT_CODE_OK) - break; - mdelay(2); - } - - if (!(CPU_status&CPU_GEN_PUT_CODE_OK)) { + if (!_rtl92e_wait_for_fw(dev, CPU_GEN_PUT_CODE_OK, 200)) { netdev_err(dev, "Firmware download failed.\n"); goto CPUCheckMainCodeOKAndTurnOnCPU_Fail; - } else { - RT_TRACE(COMP_FIRMWARE, "Download Firmware: Put code ok!\n"); } + RT_TRACE(COMP_FIRMWARE, "Download Firmware: Put code ok!\n"); CPU_status = rtl92e_readl(dev, CPU_GEN); rtl92e_writeb(dev, CPU_GEN, (u8)((CPU_status|CPU_GEN_PWR_STB_CPU)&0xff)); mdelay(1); - timeout = jiffies + msecs_to_jiffies(200); - while (time_before(jiffies, timeout)) { - CPU_status = rtl92e_readl(dev, CPU_GEN); - if (CPU_status&CPU_GEN_BOOT_RDY) - break; - mdelay(2); - } - - if (!(CPU_status&CPU_GEN_BOOT_RDY)) { + if (!_rtl92e_wait_for_fw(dev, CPU_GEN_BOOT_RDY, 200)) { netdev_err(dev, "Firmware boot failed.\n"); goto CPUCheckMainCodeOKAndTurnOnCPU_Fail; } RT_TRACE(COMP_FIRMWARE, "Download Firmware: Boot ready!\n"); - return rt_status; + return true; CPUCheckMainCodeOKAndTurnOnCPU_Fail: - rt_status = false; - return rt_status; -} - -static bool _rtl92e_is_fw_ready(struct net_device *dev) -{ - - bool rt_status = true; - u32 CPU_status = 0; - unsigned long timeout; - - timeout = jiffies + msecs_to_jiffies(20); - while (time_before(jiffies, timeout)) { - CPU_status = rtl92e_readl(dev, CPU_GEN); - if (CPU_status&CPU_GEN_FIRM_RDY) - break; - mdelay(2); - } - - if (!(CPU_status&CPU_GEN_FIRM_RDY)) - goto CPUCheckFirmwareReady_Fail; - else - RT_TRACE(COMP_FIRMWARE, "Download Firmware: Firmware ready!\n"); - - return rt_status; - -CPUCheckFirmwareReady_Fail: - rt_status = false; - return rt_status; - + return false; } static bool _rtl92e_fw_check_ready(struct net_device *dev, @@ -186,14 +150,13 @@ static bool _rtl92e_fw_check_ready(struct net_device *dev, pfirmware->status = FW_STATUS_4_MOVE_DATA_CODE; mdelay(1); - rt_status = _rtl92e_is_fw_ready(dev); + rt_status = _rtl92e_wait_for_fw(dev, CPU_GEN_FIRM_RDY, 20); if (rt_status) pfirmware->status = FW_STATUS_5_READY; else RT_TRACE(COMP_FIRMWARE, "_rtl92e_is_fw_ready fail(%d)!\n", rt_status); - break; default: rt_status = false; From 09b1893831d23bac5d6a0a84ac578fdec7099b7d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:26 +0200 Subject: [PATCH 2146/2431] staging: rtl8192e: Add _rtl92e_fw_prepare Add function to request and prepare firmware image. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../rtl8192e/rtl8192e/r8192E_firmware.c | 69 ++++++++++--------- 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 2ac74843c130..b1ee65dfaf57 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -167,6 +167,36 @@ static bool _rtl92e_fw_check_ready(struct net_device *dev, return rt_status; } +static bool _rtl92e_fw_prepare(struct net_device *dev, struct rt_fw_blob *blob, + const char *name, u8 padding) +{ + const struct firmware *fw; + int rc, i; + bool ret = true; + + rc = request_firmware(&fw, name, &dev->dev); + if (rc < 0) + return false; + + if (round_up(fw->size, 4) > MAX_FW_SIZE - padding) { + netdev_err(dev, "Firmware image %s too big for the device.\n", + name); + ret = false; + goto out; + } + + if (padding) + memset(blob->data, 0, padding); + if (fw->size % 4) + memset(blob->data + padding + fw->size, 0, 4); + memcpy(blob->data + padding, fw->data, fw->size); + + blob->size = round_up(fw->size, 4) + padding; +out: + release_firmware(fw); + return ret; +} + bool rtl92e_init_fw(struct net_device *dev) { struct r8192_priv *priv = rtllib_priv(dev); @@ -202,39 +232,16 @@ bool rtl92e_init_fw(struct net_device *dev) RTL8192E_MAIN_IMG_FW, RTL8192E_DATA_IMG_FW }; - const struct firmware *fw_entry; - int rc; + int pad = 0; - rc = request_firmware(&fw_entry, - fw_name[i], - &priv->pdev->dev); - if (rc < 0) { - RT_TRACE(COMP_FIRMWARE, - "request firmware fail!\n"); + if (i == FW_INIT_STEP1_MAIN) + pad = 128; + + if (!_rtl92e_fw_prepare(dev, + &pfirmware->blobs[i], + fw_name[i], + pad)) goto download_firmware_fail; - } - if (fw_entry->size > MAX_FW_SIZE) { - RT_TRACE(COMP_FIRMWARE, - "img file size exceed the container struct buffer fail!\n"); - release_firmware(fw_entry); - goto download_firmware_fail; - } - - if (i != FW_INIT_STEP1_MAIN) { - memcpy(pfirmware->blobs[i].data, - fw_entry->data, fw_entry->size); - pfirmware->blobs[i].size = - fw_entry->size; - - } else { - memset(pfirmware->blobs[i].data, - 0, 128); - memcpy(&pfirmware->blobs[i].data[128], - fw_entry->data, fw_entry->size); - pfirmware->blobs[i].size = - fw_entry->size + 128; - } - release_firmware(fw_entry); } } From f4c807d6d5fa653dc060a75e963cb2834f697ed4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:27 +0200 Subject: [PATCH 2147/2431] staging: rtl8192e: Swap firmware endian in _rtl92e_fw_prepare() Remove endian swap from _rtl92e_fw_download_code(), this way it can be replaced with _rtl92e_send_cmd_pkt(). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../rtl8192e/rtl8192e/r8192E_firmware.c | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index b1ee65dfaf57..7c7c195bb7d2 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -36,9 +36,7 @@ static bool _rtl92e_fw_download_code(struct net_device *dev, { struct r8192_priv *priv = rtllib_priv(dev); u16 frag_length, frag_offset = 0; - int i; struct sk_buff *skb; - unsigned char *seg_ptr; struct cb_desc *tcb_desc; u8 bLastIniPkt; @@ -59,20 +57,9 @@ static bool _rtl92e_fw_download_code(struct net_device *dev, tcb_desc->queue_index = TXCMD_QUEUE; tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_INIT; tcb_desc->bLastIniPkt = bLastIniPkt; - - seg_ptr = skb->data; - for (i = 0; i < frag_length; i += 4) { - *seg_ptr++ = ((i+0) < frag_length) ? - code_virtual_address[i+3] : 0; - *seg_ptr++ = ((i+1) < frag_length) ? - code_virtual_address[i+2] : 0; - *seg_ptr++ = ((i+2) < frag_length) ? - code_virtual_address[i+1] : 0; - *seg_ptr++ = ((i+3) < frag_length) ? - code_virtual_address[i+0] : 0; - } - tcb_desc->txbuf_size = (u16)i; - skb_put(skb, i); + tcb_desc->txbuf_size = (u16)frag_length; + memcpy(skb->data, code_virtual_address, frag_length); + skb_put(skb, frag_length); if (!priv->rtllib->check_nic_enough_desc(dev, tcb_desc->queue_index) || (!skb_queue_empty(&priv->rtllib->skb_waitQ[tcb_desc->queue_index])) || @@ -192,6 +179,12 @@ static bool _rtl92e_fw_prepare(struct net_device *dev, struct rt_fw_blob *blob, memcpy(blob->data + padding, fw->data, fw->size); blob->size = round_up(fw->size, 4) + padding; + + /* Swap endian - firmware is packaged in invalid endiannes*/ + for (i = padding; i < blob->size; i += 4) { + u32 *data = (u32 *)(blob->data + i); + *data = swab32p(data); + } out: release_firmware(fw); return ret; From 15d140664c94f56e67e4cf3107c000471ae72a9c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:28 +0200 Subject: [PATCH 2148/2431] staging: rtl8192e: Remove _rtl92e_fw_download_code() Reuse rtl92e_send_cmd_pkt() instead. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- .../rtl8192e/rtl8192e/r8192E_firmware.c | 56 +------------------ 1 file changed, 3 insertions(+), 53 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 7c7c195bb7d2..cbd23c0c9dea 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -17,6 +17,7 @@ #include "r8192E_hw.h" #include "r8192E_hwimg.h" #include "r8192E_firmware.h" +#include "r8192E_cmdpkt.h" #include static bool _rtl92e_wait_for_fw(struct net_device *dev, u32 mask, u32 timeout) @@ -31,57 +32,6 @@ static bool _rtl92e_wait_for_fw(struct net_device *dev, u32 mask, u32 timeout) return false; } -static bool _rtl92e_fw_download_code(struct net_device *dev, - u8 *code_virtual_address, u32 buffer_len) -{ - struct r8192_priv *priv = rtllib_priv(dev); - u16 frag_length, frag_offset = 0; - struct sk_buff *skb; - struct cb_desc *tcb_desc; - u8 bLastIniPkt; - - do { - if ((buffer_len - frag_offset) > CMDPACKET_FRAG_SIZE) { - frag_length = CMDPACKET_FRAG_SIZE; - bLastIniPkt = 0; - - } else { - frag_length = buffer_len - frag_offset; - bLastIniPkt = 1; - - } - - skb = dev_alloc_skb(frag_length + 4); - memcpy((unsigned char *)(skb->cb), &dev, sizeof(dev)); - tcb_desc = (struct cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); - tcb_desc->queue_index = TXCMD_QUEUE; - tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_INIT; - tcb_desc->bLastIniPkt = bLastIniPkt; - tcb_desc->txbuf_size = (u16)frag_length; - memcpy(skb->data, code_virtual_address, frag_length); - skb_put(skb, frag_length); - - if (!priv->rtllib->check_nic_enough_desc(dev, tcb_desc->queue_index) || - (!skb_queue_empty(&priv->rtllib->skb_waitQ[tcb_desc->queue_index])) || - (priv->rtllib->queue_stop)) { - RT_TRACE(COMP_FIRMWARE, - "===================> tx full!\n"); - skb_queue_tail(&priv->rtllib->skb_waitQ - [tcb_desc->queue_index], skb); - } else { - priv->rtllib->softmac_hard_start_xmit(skb, dev); - } - - code_virtual_address += frag_length; - frag_offset += frag_length; - - } while (frag_offset < buffer_len); - - rtl92e_writeb(dev, TPPoll, TPPoll_CQ); - - return true; -} - static bool _rtl92e_fw_boot_cpu(struct net_device *dev) { u32 CPU_status = 0; @@ -241,8 +191,8 @@ bool rtl92e_init_fw(struct net_device *dev) mapped_file = pfirmware->blobs[i].data; file_length = pfirmware->blobs[i].size; - rt_status = _rtl92e_fw_download_code(dev, mapped_file, - file_length); + rt_status = rtl92e_send_cmd_pkt(dev, DESC_PACKET_TYPE_INIT, + mapped_file, file_length); if (!rt_status) goto download_firmware_fail; From 91d7b8cf7cfef7a1e3e344e5bbbaf664505eb2c9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:29 +0200 Subject: [PATCH 2149/2431] staging: rtl8192e: fw: Use netdev_dbg instead of RT_TRACE Drop legacy logging system. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index cbd23c0c9dea..becf062fde5b 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -40,7 +40,7 @@ static bool _rtl92e_fw_boot_cpu(struct net_device *dev) netdev_err(dev, "Firmware download failed.\n"); goto CPUCheckMainCodeOKAndTurnOnCPU_Fail; } - RT_TRACE(COMP_FIRMWARE, "Download Firmware: Put code ok!\n"); + netdev_dbg(dev, "Download Firmware: Put code ok!\n"); CPU_status = rtl92e_readl(dev, CPU_GEN); rtl92e_writeb(dev, CPU_GEN, @@ -52,7 +52,7 @@ static bool _rtl92e_fw_boot_cpu(struct net_device *dev) goto CPUCheckMainCodeOKAndTurnOnCPU_Fail; } - RT_TRACE(COMP_FIRMWARE, "Download Firmware: Boot ready!\n"); + netdev_dbg(dev, "Download Firmware: Boot ready!\n"); return true; @@ -79,7 +79,7 @@ static bool _rtl92e_fw_check_ready(struct net_device *dev, if (rt_status) pfirmware->status = FW_STATUS_3_TURNON_CPU; else - RT_TRACE(COMP_FIRMWARE, "_rtl92e_fw_boot_cpu fail!\n"); + netdev_dbg(dev, "_rtl92e_fw_boot_cpu fail!\n"); break; @@ -97,7 +97,7 @@ static bool _rtl92e_fw_check_ready(struct net_device *dev, break; default: rt_status = false; - RT_TRACE(COMP_FIRMWARE, "Unknown firmware status"); + netdev_dbg(dev, "Unknown firmware status"); break; } @@ -153,7 +153,7 @@ bool rtl92e_init_fw(struct net_device *dev) struct rt_firmware *pfirmware = priv->pFirmware; - RT_TRACE(COMP_FIRMWARE, " PlatformInitFirmware()==>\n"); + netdev_dbg(dev, " PlatformInitFirmware()==>\n"); if (pfirmware->status == FW_STATUS_0_INIT) { rst_opt = OPT_SYSTEM_RESET; @@ -200,7 +200,7 @@ bool rtl92e_init_fw(struct net_device *dev) goto download_firmware_fail; } - RT_TRACE(COMP_FIRMWARE, "Firmware Download Success\n"); + netdev_dbg(dev, "Firmware Download Success\n"); return rt_status; download_firmware_fail: From b0dcce5fbfac9cb238c4666b8798065eb982bb82 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:30 +0200 Subject: [PATCH 2150/2431] staging: rtl8192e: _rtl92e_fw_boot_cpu: Remove unneeded goto Drop ugly label as no resource cleanup is needed. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index becf062fde5b..9aaa85526eb8 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -38,7 +38,7 @@ static bool _rtl92e_fw_boot_cpu(struct net_device *dev) if (!_rtl92e_wait_for_fw(dev, CPU_GEN_PUT_CODE_OK, 200)) { netdev_err(dev, "Firmware download failed.\n"); - goto CPUCheckMainCodeOKAndTurnOnCPU_Fail; + return false; } netdev_dbg(dev, "Download Firmware: Put code ok!\n"); @@ -49,15 +49,12 @@ static bool _rtl92e_fw_boot_cpu(struct net_device *dev) if (!_rtl92e_wait_for_fw(dev, CPU_GEN_BOOT_RDY, 200)) { netdev_err(dev, "Firmware boot failed.\n"); - goto CPUCheckMainCodeOKAndTurnOnCPU_Fail; + return false; } netdev_dbg(dev, "Download Firmware: Boot ready!\n"); return true; - -CPUCheckMainCodeOKAndTurnOnCPU_Fail: - return false; } static bool _rtl92e_fw_check_ready(struct net_device *dev, From 9c68ed09fe11cdd45cd84f8dcf634c2ca4075a52 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Sun, 18 Oct 2015 22:51:41 -0700 Subject: [PATCH 2151/2431] rtl8188eu : BIT() macro cleanup Use the BIT(x) macro directly instead using multiple BITX defines. Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/core/rtw_efuse.c | 48 +- drivers/staging/rtl8188eu/hal/bb_cfg.c | 2 +- drivers/staging/rtl8188eu/hal/odm.c | 24 +- drivers/staging/rtl8188eu/hal/odm_HWConfig.c | 4 +- drivers/staging/rtl8188eu/hal/odm_RTL8188E.c | 116 ++--- drivers/staging/rtl8188eu/hal/phy.c | 30 +- drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c | 20 +- .../staging/rtl8188eu/hal/rtl8188e_hal_init.c | 24 +- drivers/staging/rtl8188eu/hal/rtl8188eu_led.c | 6 +- drivers/staging/rtl8188eu/hal/usb_halinit.c | 56 +-- .../rtl8188eu/include/Hal8188EPhyCfg.h | 14 +- drivers/staging/rtl8188eu/include/hal_intf.h | 16 +- drivers/staging/rtl8188eu/include/odm.h | 90 ++-- drivers/staging/rtl8188eu/include/odm_debug.h | 42 +- drivers/staging/rtl8188eu/include/odm_reg.h | 2 +- .../staging/rtl8188eu/include/osdep_service.h | 39 -- drivers/staging/rtl8188eu/include/pwrseq.h | 84 ++-- .../staging/rtl8188eu/include/rtl8188e_spec.h | 411 ++++++++---------- .../staging/rtl8188eu/include/rtw_sreset.h | 14 +- 19 files changed, 485 insertions(+), 557 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_efuse.c b/drivers/staging/rtl8188eu/core/rtw_efuse.c index 7b99ea91a9e6..685ce98620f1 100644 --- a/drivers/staging/rtl8188eu/core/rtw_efuse.c +++ b/drivers/staging/rtl8188eu/core/rtw_efuse.c @@ -396,7 +396,7 @@ u8 Efuse_WordEnableDataWrite(struct adapter *pAdapter, u16 efuse_addr, u8 word_e memset((void *)tmpdata, 0xff, PGPKT_DATA_SIZE); - if (!(word_en&BIT0)) { + if (!(word_en & BIT(0))) { tmpaddr = start_addr; efuse_OneByteWrite(pAdapter, start_addr++, data[0]); efuse_OneByteWrite(pAdapter, start_addr++, data[1]); @@ -404,9 +404,9 @@ u8 Efuse_WordEnableDataWrite(struct adapter *pAdapter, u16 efuse_addr, u8 word_e efuse_OneByteRead(pAdapter, tmpaddr, &tmpdata[0]); efuse_OneByteRead(pAdapter, tmpaddr+1, &tmpdata[1]); if ((data[0] != tmpdata[0]) || (data[1] != tmpdata[1])) - badworden &= (~BIT0); + badworden &= (~BIT(0)); } - if (!(word_en&BIT1)) { + if (!(word_en & BIT(1))) { tmpaddr = start_addr; efuse_OneByteWrite(pAdapter, start_addr++, data[2]); efuse_OneByteWrite(pAdapter, start_addr++, data[3]); @@ -414,9 +414,9 @@ u8 Efuse_WordEnableDataWrite(struct adapter *pAdapter, u16 efuse_addr, u8 word_e efuse_OneByteRead(pAdapter, tmpaddr, &tmpdata[2]); efuse_OneByteRead(pAdapter, tmpaddr+1, &tmpdata[3]); if ((data[2] != tmpdata[2]) || (data[3] != tmpdata[3])) - badworden &= (~BIT1); + badworden &= (~BIT(1)); } - if (!(word_en&BIT2)) { + if (!(word_en & BIT(2))) { tmpaddr = start_addr; efuse_OneByteWrite(pAdapter, start_addr++, data[4]); efuse_OneByteWrite(pAdapter, start_addr++, data[5]); @@ -424,9 +424,9 @@ u8 Efuse_WordEnableDataWrite(struct adapter *pAdapter, u16 efuse_addr, u8 word_e efuse_OneByteRead(pAdapter, tmpaddr, &tmpdata[4]); efuse_OneByteRead(pAdapter, tmpaddr+1, &tmpdata[5]); if ((data[4] != tmpdata[4]) || (data[5] != tmpdata[5])) - badworden &= (~BIT2); + badworden &= (~BIT(2)); } - if (!(word_en&BIT3)) { + if (!(word_en & BIT(3))) { tmpaddr = start_addr; efuse_OneByteWrite(pAdapter, start_addr++, data[6]); efuse_OneByteWrite(pAdapter, start_addr++, data[7]); @@ -434,7 +434,7 @@ u8 Efuse_WordEnableDataWrite(struct adapter *pAdapter, u16 efuse_addr, u8 word_e efuse_OneByteRead(pAdapter, tmpaddr, &tmpdata[6]); efuse_OneByteRead(pAdapter, tmpaddr+1, &tmpdata[7]); if ((data[6] != tmpdata[6]) || (data[7] != tmpdata[7])) - badworden &= (~BIT3); + badworden &= (~BIT(3)); } return badworden; } @@ -738,18 +738,18 @@ static bool wordEnMatched(struct pgpkt *pTargetPkt, struct pgpkt *pCurPkt, u8 match_word_en = 0x0F; /* default all words are disabled */ /* check if the same words are enabled both target and current PG packet */ - if (((pTargetPkt->word_en & BIT0) == 0) && - ((pCurPkt->word_en & BIT0) == 0)) - match_word_en &= ~BIT0; /* enable word 0 */ - if (((pTargetPkt->word_en & BIT1) == 0) && - ((pCurPkt->word_en & BIT1) == 0)) - match_word_en &= ~BIT1; /* enable word 1 */ - if (((pTargetPkt->word_en & BIT2) == 0) && - ((pCurPkt->word_en & BIT2) == 0)) - match_word_en &= ~BIT2; /* enable word 2 */ - if (((pTargetPkt->word_en & BIT3) == 0) && - ((pCurPkt->word_en & BIT3) == 0)) - match_word_en &= ~BIT3; /* enable word 3 */ + if (((pTargetPkt->word_en & BIT(0)) == 0) && + ((pCurPkt->word_en & BIT(0)) == 0)) + match_word_en &= ~BIT(0); /* enable word 0 */ + if (((pTargetPkt->word_en & BIT(1)) == 0) && + ((pCurPkt->word_en & BIT(1)) == 0)) + match_word_en &= ~BIT(1); /* enable word 1 */ + if (((pTargetPkt->word_en & BIT(2)) == 0) && + ((pCurPkt->word_en & BIT(2)) == 0)) + match_word_en &= ~BIT(2); /* enable word 2 */ + if (((pTargetPkt->word_en & BIT(3)) == 0) && + ((pCurPkt->word_en & BIT(3)) == 0)) + match_word_en &= ~BIT(3); /* enable word 3 */ *pWden = match_word_en; @@ -961,19 +961,19 @@ u8 efuse_OneByteWrite(struct adapter *pAdapter, u16 addr, u8 data) */ void efuse_WordEnableDataRead(u8 word_en, u8 *sourdata, u8 *targetdata) { - if (!(word_en&BIT(0))) { + if (!(word_en & BIT(0))) { targetdata[0] = sourdata[0]; targetdata[1] = sourdata[1]; } - if (!(word_en&BIT(1))) { + if (!(word_en & BIT(1))) { targetdata[2] = sourdata[2]; targetdata[3] = sourdata[3]; } - if (!(word_en&BIT(2))) { + if (!(word_en & BIT(2))) { targetdata[4] = sourdata[4]; targetdata[5] = sourdata[5]; } - if (!(word_en&BIT(3))) { + if (!(word_en & BIT(3))) { targetdata[6] = sourdata[6]; targetdata[7] = sourdata[7]; } diff --git a/drivers/staging/rtl8188eu/hal/bb_cfg.c b/drivers/staging/rtl8188eu/hal/bb_cfg.c index 4eb982bdbfc0..264d7e366246 100644 --- a/drivers/staging/rtl8188eu/hal/bb_cfg.c +++ b/drivers/staging/rtl8188eu/hal/bb_cfg.c @@ -705,7 +705,7 @@ bool rtl88eu_phy_bb_config(struct adapter *adapt) /* Enable BB and RF */ regval = usb_read16(adapt, REG_SYS_FUNC_EN); - usb_write16(adapt, REG_SYS_FUNC_EN, (u16)(regval|BIT13|BIT0|BIT1)); + usb_write16(adapt, REG_SYS_FUNC_EN, (u16)(regval | BIT(13) | BIT(0) | BIT(1))); usb_write8(adapt, REG_RF_CTRL, RF_EN|RF_RSTB|RF_SDMRSTB); diff --git a/drivers/staging/rtl8188eu/hal/odm.c b/drivers/staging/rtl8188eu/hal/odm.c index 46be4de50629..2c25d3b02036 100644 --- a/drivers/staging/rtl8188eu/hal/odm.c +++ b/drivers/staging/rtl8188eu/hal/odm.c @@ -437,7 +437,7 @@ void odm_CommonInfoSelfInit(struct odm_dm_struct *pDM_Odm) { struct adapter *adapter = pDM_Odm->Adapter; - pDM_Odm->bCckHighPower = (bool)phy_query_bb_reg(adapter, 0x824, BIT9); + pDM_Odm->bCckHighPower = (bool)phy_query_bb_reg(adapter, 0x824, BIT(9)); pDM_Odm->RFPathRxEnable = (u8)phy_query_bb_reg(adapter, 0xc04, 0x0F); ODM_InitDebugSetting(pDM_Odm); @@ -736,8 +736,8 @@ void odm_FalseAlarmCounterStatistics(struct odm_dm_struct *pDM_Odm) return; /* hold ofdm counter */ - phy_set_bb_reg(adapter, ODM_REG_OFDM_FA_HOLDC_11N, BIT31, 1); /* hold page C counter */ - phy_set_bb_reg(adapter, ODM_REG_OFDM_FA_RSTD_11N, BIT31, 1); /* hold page D counter */ + phy_set_bb_reg(adapter, ODM_REG_OFDM_FA_HOLDC_11N, BIT(31), 1); /* hold page C counter */ + phy_set_bb_reg(adapter, ODM_REG_OFDM_FA_RSTD_11N, BIT(31), 1); /* hold page D counter */ ret_value = phy_query_bb_reg(adapter, ODM_REG_OFDM_FA_TYPE1_11N, bMaskDWord); FalseAlmCnt->Cnt_Fast_Fsync = (ret_value&0xffff); @@ -760,8 +760,8 @@ void odm_FalseAlarmCounterStatistics(struct odm_dm_struct *pDM_Odm) FalseAlmCnt->Cnt_BW_USC = (ret_value & 0xffff0000)>>16; /* hold cck counter */ - phy_set_bb_reg(adapter, ODM_REG_CCK_FA_RST_11N, BIT12, 1); - phy_set_bb_reg(adapter, ODM_REG_CCK_FA_RST_11N, BIT14, 1); + phy_set_bb_reg(adapter, ODM_REG_CCK_FA_RST_11N, BIT(12), 1); + phy_set_bb_reg(adapter, ODM_REG_CCK_FA_RST_11N, BIT(14), 1); ret_value = phy_query_bb_reg(adapter, ODM_REG_CCK_FA_LSB_11N, bMaskByte0); FalseAlmCnt->Cnt_Cck_fail = ret_value; @@ -853,7 +853,7 @@ void ODM_RF_Saving(struct odm_dm_struct *pDM_Odm, u8 bForceInNormal) } if (pDM_PSTable->initialize == 0) { pDM_PSTable->Reg874 = (phy_query_bb_reg(adapter, 0x874, bMaskDWord)&0x1CC000)>>14; - pDM_PSTable->RegC70 = (phy_query_bb_reg(adapter, 0xc70, bMaskDWord)&BIT3)>>3; + pDM_PSTable->RegC70 = (phy_query_bb_reg(adapter, 0xc70, bMaskDWord) & BIT(3))>>3; pDM_PSTable->Reg85C = (phy_query_bb_reg(adapter, 0x85c, bMaskDWord)&0xFF000000)>>24; pDM_PSTable->RegA74 = (phy_query_bb_reg(adapter, 0xa74, bMaskDWord)&0xF000)>>12; pDM_PSTable->initialize = 1; @@ -882,18 +882,18 @@ void ODM_RF_Saving(struct odm_dm_struct *pDM_Odm, u8 bForceInNormal) if (pDM_PSTable->PreRFState != pDM_PSTable->CurRFState) { if (pDM_PSTable->CurRFState == RF_Save) { phy_set_bb_reg(adapter, 0x874, 0x1C0000, 0x2); /* Reg874[20:18]=3'b010 */ - phy_set_bb_reg(adapter, 0xc70, BIT3, 0); /* RegC70[3]=1'b0 */ + phy_set_bb_reg(adapter, 0xc70, BIT(3), 0); /* RegC70[3]=1'b0 */ phy_set_bb_reg(adapter, 0x85c, 0xFF000000, 0x63); /* Reg85C[31:24]=0x63 */ phy_set_bb_reg(adapter, 0x874, 0xC000, 0x2); /* Reg874[15:14]=2'b10 */ phy_set_bb_reg(adapter, 0xa74, 0xF000, 0x3); /* RegA75[7:4]=0x3 */ - phy_set_bb_reg(adapter, 0x818, BIT28, 0x0); /* Reg818[28]=1'b0 */ - phy_set_bb_reg(adapter, 0x818, BIT28, 0x1); /* Reg818[28]=1'b1 */ + phy_set_bb_reg(adapter, 0x818, BIT(28), 0x0); /* Reg818[28]=1'b0 */ + phy_set_bb_reg(adapter, 0x818, BIT(28), 0x1); /* Reg818[28]=1'b1 */ } else { phy_set_bb_reg(adapter, 0x874, 0x1CC000, pDM_PSTable->Reg874); - phy_set_bb_reg(adapter, 0xc70, BIT3, pDM_PSTable->RegC70); + phy_set_bb_reg(adapter, 0xc70, BIT(3), pDM_PSTable->RegC70); phy_set_bb_reg(adapter, 0x85c, 0xFF000000, pDM_PSTable->Reg85C); phy_set_bb_reg(adapter, 0xa74, 0xF000, pDM_PSTable->RegA74); - phy_set_bb_reg(adapter, 0x818, BIT28, 0x0); + phy_set_bb_reg(adapter, 0x818, BIT(28), 0x0); } pDM_PSTable->PreRFState = pDM_PSTable->CurRFState; } @@ -1229,7 +1229,7 @@ void odm_TXPowerTrackingCheckCE(struct odm_dm_struct *pDM_Odm) return; if (!pDM_Odm->RFCalibrateInfo.TM_Trigger) { /* at least delay 1 sec */ - phy_set_rf_reg(Adapter, RF_PATH_A, RF_T_METER_88E, BIT17 | BIT16, 0x03); + phy_set_rf_reg(Adapter, RF_PATH_A, RF_T_METER_88E, BIT(17) | BIT(16), 0x03); pDM_Odm->RFCalibrateInfo.TM_Trigger = 1; return; diff --git a/drivers/staging/rtl8188eu/hal/odm_HWConfig.c b/drivers/staging/rtl8188eu/hal/odm_HWConfig.c index 36afe45d1c9a..3dd6cff873d9 100644 --- a/drivers/staging/rtl8188eu/hal/odm_HWConfig.c +++ b/drivers/staging/rtl8188eu/hal/odm_HWConfig.c @@ -362,7 +362,7 @@ static void odm_Process_RSSIForDM(struct odm_dm_struct *dm_odm, } } - pEntry->rssi_stat.PacketMap = (pEntry->rssi_stat.PacketMap<<1) | BIT0; + pEntry->rssi_stat.PacketMap = (pEntry->rssi_stat.PacketMap<<1) | BIT(0); } else { RSSI_Ave = pPhyInfo->RxPWDBAll; @@ -391,7 +391,7 @@ static void odm_Process_RSSIForDM(struct odm_dm_struct *dm_odm, pEntry->rssi_stat.ValidBit++; for (i = 0; i < pEntry->rssi_stat.ValidBit; i++) - OFDM_pkt += (u8)(pEntry->rssi_stat.PacketMap>>i)&BIT0; + OFDM_pkt += (u8)(pEntry->rssi_stat.PacketMap>>i) & BIT(0); if (pEntry->rssi_stat.ValidBit == 64) { Weighting = ((OFDM_pkt<<4) > 64) ? 64 : (OFDM_pkt<<4); diff --git a/drivers/staging/rtl8188eu/hal/odm_RTL8188E.c b/drivers/staging/rtl8188eu/hal/odm_RTL8188E.c index d3c6873925ba..0be6c051e804 100644 --- a/drivers/staging/rtl8188eu/hal/odm_RTL8188E.c +++ b/drivers/staging/rtl8188eu/hal/odm_RTL8188E.c @@ -28,26 +28,26 @@ static void dm_rx_hw_antena_div_init(struct odm_dm_struct *dm_odm) if (*(dm_odm->mp_mode) == 1) { dm_odm->AntDivType = CGCS_RX_SW_ANTDIV; - phy_set_bb_reg(adapter, ODM_REG_IGI_A_11N, BIT7, 0); - phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT31, 1); + phy_set_bb_reg(adapter, ODM_REG_IGI_A_11N, BIT(7), 0); + phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT(31), 1); return; } /* MAC Setting */ value32 = phy_query_bb_reg(adapter, ODM_REG_ANTSEL_PIN_11N, bMaskDWord); phy_set_bb_reg(adapter, ODM_REG_ANTSEL_PIN_11N, bMaskDWord, - value32|(BIT23|BIT25)); + value32|(BIT(23) | BIT(25))); /* Pin Settings */ - phy_set_bb_reg(adapter, ODM_REG_PIN_CTRL_11N, BIT9|BIT8, 0); - phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, BIT10, 0); - phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT22, 1); - phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT31, 1); + phy_set_bb_reg(adapter, ODM_REG_PIN_CTRL_11N, BIT(9) | BIT(8), 0); + phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, BIT(10), 0); + phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT(22), 1); + phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT(31), 1); /* OFDM Settings */ phy_set_bb_reg(adapter, ODM_REG_ANTDIV_PARA1_11N, bMaskDWord, 0x000000a0); /* CCK Settings */ - phy_set_bb_reg(adapter, ODM_REG_BB_PWR_SAV4_11N, BIT7, 1); - phy_set_bb_reg(adapter, ODM_REG_CCK_ANTDIV_PARA2_11N, BIT4, 1); + phy_set_bb_reg(adapter, ODM_REG_BB_PWR_SAV4_11N, BIT(7), 1); + phy_set_bb_reg(adapter, ODM_REG_CCK_ANTDIV_PARA2_11N, BIT(4), 1); rtl88eu_dm_update_rx_idle_ant(dm_odm, MAIN_ANT); phy_set_bb_reg(adapter, ODM_REG_ANT_MAPPING1_11N, 0xFFFF, 0x0201); } @@ -59,37 +59,37 @@ static void dm_trx_hw_antenna_div_init(struct odm_dm_struct *dm_odm) if (*(dm_odm->mp_mode) == 1) { dm_odm->AntDivType = CGCS_RX_SW_ANTDIV; - phy_set_bb_reg(adapter, ODM_REG_IGI_A_11N, BIT7, 0); + phy_set_bb_reg(adapter, ODM_REG_IGI_A_11N, BIT(7), 0); phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, - BIT5|BIT4|BIT3, 0); + BIT(5) | BIT(4) | BIT(3), 0); return; } /* MAC Setting */ value32 = phy_query_bb_reg(adapter, ODM_REG_ANTSEL_PIN_11N, bMaskDWord); phy_set_bb_reg(adapter, ODM_REG_ANTSEL_PIN_11N, bMaskDWord, - value32|(BIT23|BIT25)); + value32|(BIT(23) | BIT(25))); /* Pin Settings */ - phy_set_bb_reg(adapter, ODM_REG_PIN_CTRL_11N, BIT9|BIT8, 0); - phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, BIT10, 0); - phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT22, 0); - phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT31, 1); + phy_set_bb_reg(adapter, ODM_REG_PIN_CTRL_11N, BIT(9) | BIT(8), 0); + phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, BIT(10), 0); + phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT(22), 0); + phy_set_bb_reg(adapter, ODM_REG_LNA_SWITCH_11N, BIT(31), 1); /* OFDM Settings */ phy_set_bb_reg(adapter, ODM_REG_ANTDIV_PARA1_11N, bMaskDWord, 0x000000a0); /* CCK Settings */ - phy_set_bb_reg(adapter, ODM_REG_BB_PWR_SAV4_11N, BIT7, 1); - phy_set_bb_reg(adapter, ODM_REG_CCK_ANTDIV_PARA2_11N, BIT4, 1); + phy_set_bb_reg(adapter, ODM_REG_BB_PWR_SAV4_11N, BIT(7), 1); + phy_set_bb_reg(adapter, ODM_REG_CCK_ANTDIV_PARA2_11N, BIT(4), 1); /* Tx Settings */ - phy_set_bb_reg(adapter, ODM_REG_TX_ANT_CTRL_11N, BIT21, 0); + phy_set_bb_reg(adapter, ODM_REG_TX_ANT_CTRL_11N, BIT(21), 0); rtl88eu_dm_update_rx_idle_ant(dm_odm, MAIN_ANT); /* antenna mapping table */ if (!dm_odm->bIsMPChip) { /* testchip */ phy_set_bb_reg(adapter, ODM_REG_RX_DEFUALT_A_11N, - BIT10|BIT9|BIT8, 1); + BIT(10) | BIT(9) | BIT(8), 1); phy_set_bb_reg(adapter, ODM_REG_RX_DEFUALT_A_11N, - BIT13|BIT12|BIT11, 2); + BIT(13) | BIT(12) | BIT(11), 2); } else { /* MPchip */ phy_set_bb_reg(adapter, ODM_REG_ANT_MAPPING1_11N, bMaskDWord, 0x0201); @@ -118,40 +118,40 @@ static void dm_fast_training_init(struct odm_dm_struct *dm_odm) /* MAC Setting */ value32 = phy_query_bb_reg(adapter, 0x4c, bMaskDWord); - phy_set_bb_reg(adapter, 0x4c, bMaskDWord, value32|(BIT23|BIT25)); + phy_set_bb_reg(adapter, 0x4c, bMaskDWord, value32|(BIT(23) | BIT(25))); value32 = phy_query_bb_reg(adapter, 0x7B4, bMaskDWord); - phy_set_bb_reg(adapter, 0x7b4, bMaskDWord, value32|(BIT16|BIT17)); + phy_set_bb_reg(adapter, 0x7b4, bMaskDWord, value32|(BIT(16) | BIT(17))); /* Match MAC ADDR */ phy_set_bb_reg(adapter, 0x7b4, 0xFFFF, 0); phy_set_bb_reg(adapter, 0x7b0, bMaskDWord, 0); - phy_set_bb_reg(adapter, 0x870, BIT9|BIT8, 0); - phy_set_bb_reg(adapter, 0x864, BIT10, 0); - phy_set_bb_reg(adapter, 0xb2c, BIT22, 0); - phy_set_bb_reg(adapter, 0xb2c, BIT31, 1); + phy_set_bb_reg(adapter, 0x870, BIT(9) | BIT(8), 0); + phy_set_bb_reg(adapter, 0x864, BIT(10), 0); + phy_set_bb_reg(adapter, 0xb2c, BIT(22), 0); + phy_set_bb_reg(adapter, 0xb2c, BIT(31), 1); phy_set_bb_reg(adapter, 0xca4, bMaskDWord, 0x000000a0); /* antenna mapping table */ if (AntCombination == 2) { if (!dm_odm->bIsMPChip) { /* testchip */ - phy_set_bb_reg(adapter, 0x858, BIT10|BIT9|BIT8, 1); - phy_set_bb_reg(adapter, 0x858, BIT13|BIT12|BIT11, 2); + phy_set_bb_reg(adapter, 0x858, BIT(10) | BIT(9) | BIT(8), 1); + phy_set_bb_reg(adapter, 0x858, BIT(13) | BIT(12) | BIT(11), 2); } else { /* MPchip */ phy_set_bb_reg(adapter, 0x914, bMaskByte0, 1); phy_set_bb_reg(adapter, 0x914, bMaskByte1, 2); } } else if (AntCombination == 7) { if (!dm_odm->bIsMPChip) { /* testchip */ - phy_set_bb_reg(adapter, 0x858, BIT10|BIT9|BIT8, 0); - phy_set_bb_reg(adapter, 0x858, BIT13|BIT12|BIT11, 1); - phy_set_bb_reg(adapter, 0x878, BIT16, 0); - phy_set_bb_reg(adapter, 0x858, BIT15|BIT14, 2); - phy_set_bb_reg(adapter, 0x878, BIT19|BIT18|BIT17, 3); - phy_set_bb_reg(adapter, 0x878, BIT22|BIT21|BIT20, 4); - phy_set_bb_reg(adapter, 0x878, BIT25|BIT24|BIT23, 5); - phy_set_bb_reg(adapter, 0x878, BIT28|BIT27|BIT26, 6); - phy_set_bb_reg(adapter, 0x878, BIT31|BIT30|BIT29, 7); + phy_set_bb_reg(adapter, 0x858, BIT(10) | BIT(9) | BIT(8), 0); + phy_set_bb_reg(adapter, 0x858, BIT(13) | BIT(12) | BIT(11), 1); + phy_set_bb_reg(adapter, 0x878, BIT(16), 0); + phy_set_bb_reg(adapter, 0x858, BIT(15) | BIT(14), 2); + phy_set_bb_reg(adapter, 0x878, BIT(19) | BIT(18) | BIT(17), 3); + phy_set_bb_reg(adapter, 0x878, BIT(22) | BIT(21) | BIT(20), 4); + phy_set_bb_reg(adapter, 0x878, BIT(25) | BIT(24) | BIT(23), 5); + phy_set_bb_reg(adapter, 0x878, BIT(28) | BIT(27) | BIT(26), 6); + phy_set_bb_reg(adapter, 0x878, BIT(31) | BIT(30) | BIT(29), 7); } else { /* MPchip */ phy_set_bb_reg(adapter, 0x914, bMaskByte0, 0); phy_set_bb_reg(adapter, 0x914, bMaskByte1, 1); @@ -165,13 +165,13 @@ static void dm_fast_training_init(struct odm_dm_struct *dm_odm) } /* Default Ant Setting when no fast training */ - phy_set_bb_reg(adapter, 0x80c, BIT21, 1); - phy_set_bb_reg(adapter, 0x864, BIT5|BIT4|BIT3, 0); - phy_set_bb_reg(adapter, 0x864, BIT8|BIT7|BIT6, 1); + phy_set_bb_reg(adapter, 0x80c, BIT(21), 1); + phy_set_bb_reg(adapter, 0x864, BIT(5) | BIT(4) | BIT(3), 0); + phy_set_bb_reg(adapter, 0x864, BIT(8) | BIT(7) | BIT(6), 1); /* Enter Traing state */ - phy_set_bb_reg(adapter, 0x864, BIT2|BIT1|BIT0, (AntCombination-1)); - phy_set_bb_reg(adapter, 0xc50, BIT7, 1); + phy_set_bb_reg(adapter, 0x864, BIT(2) | BIT(1) | BIT(0), (AntCombination-1)); + phy_set_bb_reg(adapter, 0xc50, BIT(7), 1); } void rtl88eu_dm_antenna_div_init(struct odm_dm_struct *dm_odm) @@ -205,18 +205,18 @@ void rtl88eu_dm_update_rx_idle_ant(struct odm_dm_struct *dm_odm, u8 ant) if (dm_odm->AntDivType == CG_TRX_HW_ANTDIV) { phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, - BIT5|BIT4|BIT3, default_ant); + BIT(5) | BIT(4) | BIT(3), default_ant); phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, - BIT8|BIT7|BIT6, optional_ant); + BIT(8) | BIT(7) | BIT(6), optional_ant); phy_set_bb_reg(adapter, ODM_REG_ANTSEL_CTRL_11N, - BIT14|BIT13|BIT12, default_ant); + BIT(14) | BIT(13) | BIT(12), default_ant); phy_set_bb_reg(adapter, ODM_REG_RESP_TX_11N, - BIT6|BIT7, default_ant); + BIT(6) | BIT(7), default_ant); } else if (dm_odm->AntDivType == CGCS_RX_HW_ANTDIV) { phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, - BIT5|BIT4|BIT3, default_ant); + BIT(5) | BIT(4) | BIT(3), default_ant); phy_set_bb_reg(adapter, ODM_REG_RX_ANT_CTRL_11N, - BIT8|BIT7|BIT6, optional_ant); + BIT(8) | BIT(7) | BIT(6), optional_ant); } } dm_fat_tbl->RxIdleAnt = ant; @@ -231,9 +231,9 @@ static void update_tx_ant_88eu(struct odm_dm_struct *dm_odm, u8 ant, u32 mac_id) target_ant = MAIN_ANT_CG_TRX; else target_ant = AUX_ANT_CG_TRX; - dm_fat_tbl->antsel_a[mac_id] = target_ant&BIT0; - dm_fat_tbl->antsel_b[mac_id] = (target_ant&BIT1)>>1; - dm_fat_tbl->antsel_c[mac_id] = (target_ant&BIT2)>>2; + dm_fat_tbl->antsel_a[mac_id] = target_ant & BIT(0); + dm_fat_tbl->antsel_b[mac_id] = (target_ant & BIT(1))>>1; + dm_fat_tbl->antsel_c[mac_id] = (target_ant & BIT(2))>>2; } void rtl88eu_dm_set_tx_ant_by_tx_info(struct odm_dm_struct *dm_odm, @@ -344,12 +344,12 @@ void rtl88eu_dm_antenna_diversity(struct odm_dm_struct *dm_odm) if (dm_fat_tbl->bBecomeLinked) { ODM_RT_TRACE(dm_odm, ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("Need to Turn off HW AntDiv\n")); - phy_set_bb_reg(adapter, ODM_REG_IGI_A_11N, BIT7, 0); + phy_set_bb_reg(adapter, ODM_REG_IGI_A_11N, BIT(7), 0); phy_set_bb_reg(adapter, ODM_REG_CCK_ANTDIV_PARA1_11N, - BIT15, 0); + BIT(15), 0); if (dm_odm->AntDivType == CG_TRX_HW_ANTDIV) phy_set_bb_reg(adapter, ODM_REG_TX_ANT_CTRL_11N, - BIT21, 0); + BIT(21), 0); dm_fat_tbl->bBecomeLinked = dm_odm->bLinked; } return; @@ -357,12 +357,12 @@ void rtl88eu_dm_antenna_diversity(struct odm_dm_struct *dm_odm) if (!dm_fat_tbl->bBecomeLinked) { ODM_RT_TRACE(dm_odm, ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("Need to Turn on HW AntDiv\n")); - phy_set_bb_reg(adapter, ODM_REG_IGI_A_11N, BIT7, 1); + phy_set_bb_reg(adapter, ODM_REG_IGI_A_11N, BIT(7), 1); phy_set_bb_reg(adapter, ODM_REG_CCK_ANTDIV_PARA1_11N, - BIT15, 1); + BIT(15), 1); if (dm_odm->AntDivType == CG_TRX_HW_ANTDIV) phy_set_bb_reg(adapter, ODM_REG_TX_ANT_CTRL_11N, - BIT21, 1); + BIT(21), 1); dm_fat_tbl->bBecomeLinked = dm_odm->bLinked; } } diff --git a/drivers/staging/rtl8188eu/hal/phy.c b/drivers/staging/rtl8188eu/hal/phy.c index 2eafa503f343..bb3c7773d74f 100644 --- a/drivers/staging/rtl8188eu/hal/phy.c +++ b/drivers/staging/rtl8188eu/hal/phy.c @@ -97,9 +97,9 @@ static u32 rf_serial_read(struct adapter *adapt, udelay(10); if (rfpath == RF_PATH_A) - rfpi_enable = (u8)phy_query_bb_reg(adapt, rFPGA0_XA_HSSIParameter1, BIT8); + rfpi_enable = (u8)phy_query_bb_reg(adapt, rFPGA0_XA_HSSIParameter1, BIT(8)); else if (rfpath == RF_PATH_B) - rfpi_enable = (u8)phy_query_bb_reg(adapt, rFPGA0_XB_HSSIParameter1, BIT8); + rfpi_enable = (u8)phy_query_bb_reg(adapt, rFPGA0_XB_HSSIParameter1, BIT(8)); if (rfpi_enable) ret = phy_query_bb_reg(adapt, phyreg->rfLSSIReadBackPi, @@ -293,7 +293,7 @@ static void phy_set_bw_mode_callback(struct adapter *adapt) (hal_data->nCur40MhzPrimeSC>>1)); phy_set_bb_reg(adapt, rOFDM1_LSTF, 0xC00, hal_data->nCur40MhzPrimeSC); - phy_set_bb_reg(adapt, 0x818, (BIT26 | BIT27), + phy_set_bb_reg(adapt, 0x818, (BIT(26) | BIT(27)), (hal_data->nCur40MhzPrimeSC == HAL_PRIME_CHNL_OFFSET_LOWER) ? 2 : 1); break; default: @@ -652,7 +652,7 @@ static u8 phy_path_a_iqk(struct adapter *adapt, bool config_pathb) reg_e94 = phy_query_bb_reg(adapt, rTx_Power_Before_IQK_A, bMaskDWord); reg_e9c = phy_query_bb_reg(adapt, rTx_Power_After_IQK_A, bMaskDWord); - if (!(reg_eac & BIT28) && + if (!(reg_eac & BIT(28)) && (((reg_e94 & 0x03FF0000)>>16) != 0x142) && (((reg_e9c & 0x03FF0000)>>16) != 0x42)) result |= 0x01; @@ -705,7 +705,7 @@ static u8 phy_path_a_rx_iqk(struct adapter *adapt, bool configPathB) reg_e94 = phy_query_bb_reg(adapt, rTx_Power_Before_IQK_A, bMaskDWord); reg_e9c = phy_query_bb_reg(adapt, rTx_Power_After_IQK_A, bMaskDWord); - if (!(reg_eac & BIT28) && + if (!(reg_eac & BIT(28)) && (((reg_e94 & 0x03FF0000)>>16) != 0x142) && (((reg_e9c & 0x03FF0000)>>16) != 0x42)) result |= 0x01; @@ -753,7 +753,7 @@ static u8 phy_path_a_rx_iqk(struct adapter *adapt, bool configPathB) phy_set_bb_reg(adapt, rFPGA0_IQK, bMaskDWord, 0x00000000); phy_set_rf_reg(adapt, RF_PATH_A, 0xdf, bRFRegOffsetMask, 0x180); - if (!(reg_eac & BIT27) && /* if Tx is OK, check whether Rx is OK */ + if (!(reg_eac & BIT(27)) && /* if Tx is OK, check whether Rx is OK */ (((reg_ea4 & 0x03FF0000)>>16) != 0x132) && (((reg_eac & 0x03FF0000)>>16) != 0x36)) result |= 0x02; @@ -783,14 +783,14 @@ static u8 phy_path_b_iqk(struct adapter *adapt) regec4 = phy_query_bb_reg(adapt, rRx_Power_Before_IQK_B_2, bMaskDWord); regecc = phy_query_bb_reg(adapt, rRx_Power_After_IQK_B_2, bMaskDWord); - if (!(regeac & BIT31) && + if (!(regeac & BIT(31)) && (((regeb4 & 0x03FF0000)>>16) != 0x142) && (((regebc & 0x03FF0000)>>16) != 0x42)) result |= 0x01; else return result; - if (!(regeac & BIT30) && + if (!(regeac & BIT(30)) && (((regec4 & 0x03FF0000)>>16) != 0x132) && (((regecc & 0x03FF0000)>>16) != 0x36)) result |= 0x02; @@ -959,9 +959,9 @@ static void mac_setting_calibration(struct adapter *adapt, u32 *mac_reg, u32 *ba usb_write8(adapt, mac_reg[i], 0x3F); for (i = 1; i < (IQK_MAC_REG_NUM - 1); i++) { - usb_write8(adapt, mac_reg[i], (u8)(backup[i]&(~BIT3))); + usb_write8(adapt, mac_reg[i], (u8)(backup[i]&(~BIT(3)))); } - usb_write8(adapt, mac_reg[i], (u8)(backup[i]&(~BIT5))); + usb_write8(adapt, mac_reg[i], (u8)(backup[i]&(~BIT(5)))); } static void path_a_standby(struct adapter *adapt) @@ -1117,15 +1117,15 @@ static void phy_iq_calibrate(struct adapter *adapt, s32 result[][8], } /* BB setting */ - phy_set_bb_reg(adapt, rFPGA0_RFMOD, BIT24, 0x00); + phy_set_bb_reg(adapt, rFPGA0_RFMOD, BIT(24), 0x00); phy_set_bb_reg(adapt, rOFDM0_TRxPathEnable, bMaskDWord, 0x03a05600); phy_set_bb_reg(adapt, rOFDM0_TRMuxPar, bMaskDWord, 0x000800e4); phy_set_bb_reg(adapt, rFPGA0_XCD_RFInterfaceSW, bMaskDWord, 0x22204000); - phy_set_bb_reg(adapt, rFPGA0_XAB_RFInterfaceSW, BIT10, 0x01); - phy_set_bb_reg(adapt, rFPGA0_XAB_RFInterfaceSW, BIT26, 0x01); - phy_set_bb_reg(adapt, rFPGA0_XA_RFInterfaceOE, BIT10, 0x00); - phy_set_bb_reg(adapt, rFPGA0_XB_RFInterfaceOE, BIT10, 0x00); + phy_set_bb_reg(adapt, rFPGA0_XAB_RFInterfaceSW, BIT(10), 0x01); + phy_set_bb_reg(adapt, rFPGA0_XAB_RFInterfaceSW, BIT(26), 0x01); + phy_set_bb_reg(adapt, rFPGA0_XA_RFInterfaceOE, BIT(10), 0x00); + phy_set_bb_reg(adapt, rFPGA0_XB_RFInterfaceOE, BIT(10), 0x00); if (is2t) { phy_set_bb_reg(adapt, rFPGA0_XA_LSSIParameter, bMaskDWord, diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c index d5281409168d..2d88c5a44439 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c @@ -149,7 +149,7 @@ void rtl8188e_Add_RateATid(struct adapter *pAdapter, u32 bitmap, u8 arg, u8 rssi init_rate = get_highest_rate_idx(bitmap&0x0fffffff)&0x3f; - shortGIrate = (arg&BIT(5)) ? true : false; + shortGIrate = (arg & BIT(5)) ? true : false; if (shortGIrate) init_rate |= BIT(6); @@ -577,23 +577,23 @@ void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *adapt, u8 mstatus) /* Do not set TSF again here or vWiFi beacon DMA INT will not work. */ /* Set REG_CR bit 8. DMA beacon by SW. */ - haldata->RegCR_1 |= BIT0; + haldata->RegCR_1 |= BIT(0); usb_write8(adapt, REG_CR+1, haldata->RegCR_1); /* Disable Hw protection for a time which revserd for Hw sending beacon. */ /* Fix download reserved page packet fail that access collision with the protection time. */ /* 2010.05.11. Added by tynli. */ usb_write8(adapt, REG_BCN_CTRL, usb_read8(adapt, REG_BCN_CTRL)&(~BIT(3))); - usb_write8(adapt, REG_BCN_CTRL, usb_read8(adapt, REG_BCN_CTRL)|BIT(4)); + usb_write8(adapt, REG_BCN_CTRL, usb_read8(adapt, REG_BCN_CTRL) | BIT(4)); - if (haldata->RegFwHwTxQCtrl&BIT6) { + if (haldata->RegFwHwTxQCtrl & BIT(6)) { DBG_88E("HalDownloadRSVDPage(): There is an Adapter is sending beacon.\n"); bSendBeacon = true; } /* Set FWHW_TXQ_CTRL 0x422[6]=0 to tell Hw the packet is not a real beacon frame. */ - usb_write8(adapt, REG_FWHW_TXQ_CTRL+2, (haldata->RegFwHwTxQCtrl&(~BIT6))); - haldata->RegFwHwTxQCtrl &= (~BIT6); + usb_write8(adapt, REG_FWHW_TXQ_CTRL+2, (haldata->RegFwHwTxQCtrl&(~BIT(6)))); + haldata->RegFwHwTxQCtrl &= (~BIT(6)); /* Clear beacon valid check bit. */ rtw_hal_set_hwreg(adapt, HW_VAR_BCN_VALID, NULL); @@ -626,7 +626,7 @@ void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *adapt, u8 mstatus) /* */ /* Enable Bcn */ - usb_write8(adapt, REG_BCN_CTRL, usb_read8(adapt, REG_BCN_CTRL)|BIT(3)); + usb_write8(adapt, REG_BCN_CTRL, usb_read8(adapt, REG_BCN_CTRL) | BIT(3)); usb_write8(adapt, REG_BCN_CTRL, usb_read8(adapt, REG_BCN_CTRL)&(~BIT(4))); /* To make sure that if there exists an adapter which would like to send beacon. */ @@ -635,8 +635,8 @@ void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *adapt, u8 mstatus) /* the beacon cannot be sent by HW. */ /* 2010.06.23. Added by tynli. */ if (bSendBeacon) { - usb_write8(adapt, REG_FWHW_TXQ_CTRL+2, (haldata->RegFwHwTxQCtrl|BIT6)); - haldata->RegFwHwTxQCtrl |= BIT6; + usb_write8(adapt, REG_FWHW_TXQ_CTRL+2, (haldata->RegFwHwTxQCtrl | BIT(6))); + haldata->RegFwHwTxQCtrl |= BIT(6); } /* Update RSVD page location H2C to Fw. */ @@ -647,7 +647,7 @@ void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *adapt, u8 mstatus) /* Do not enable HW DMA BCN or it will cause Pcie interface hang by timing issue. 2011.11.24. by tynli. */ /* Clear CR[8] or beacon packet will not be send to TxBuf anymore. */ - haldata->RegCR_1 &= (~BIT0); + haldata->RegCR_1 &= (~BIT(0)); usb_write8(adapt, REG_CR+1, haldata->RegCR_1); } } diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c b/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c index a6295ca6a73e..29353bf1884e 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c @@ -106,8 +106,8 @@ void _8051Reset88E(struct adapter *padapter) u8 u1bTmp; u1bTmp = usb_read8(padapter, REG_SYS_FUNC_EN+1); - usb_write8(padapter, REG_SYS_FUNC_EN+1, u1bTmp&(~BIT2)); - usb_write8(padapter, REG_SYS_FUNC_EN+1, u1bTmp|(BIT2)); + usb_write8(padapter, REG_SYS_FUNC_EN+1, u1bTmp&(~BIT(2))); + usb_write8(padapter, REG_SYS_FUNC_EN+1, u1bTmp|(BIT(2))); DBG_88E("=====> _8051Reset88E(): 8051 reset success .\n"); } @@ -184,10 +184,10 @@ static void hal_notch_filter_8188e(struct adapter *adapter, bool enable) { if (enable) { DBG_88E("Enable notch filter\n"); - usb_write8(adapter, rOFDM0_RxDSP+1, usb_read8(adapter, rOFDM0_RxDSP+1) | BIT1); + usb_write8(adapter, rOFDM0_RxDSP+1, usb_read8(adapter, rOFDM0_RxDSP+1) | BIT(1)); } else { DBG_88E("Disable notch filter\n"); - usb_write8(adapter, rOFDM0_RxDSP+1, usb_read8(adapter, rOFDM0_RxDSP+1) & ~BIT1); + usb_write8(adapter, rOFDM0_RxDSP+1, usb_read8(adapter, rOFDM0_RxDSP+1) & ~BIT(1)); } } void rtl8188e_set_hal_ops(struct hal_ops *pHalFunc) @@ -372,7 +372,7 @@ static void Hal_ReadPowerValueFromPROM_8188E(struct txpowerinfo24g *pwrInfo24G, pwrInfo24G->BW20_Diff[rfPath][TxCount] = EEPROM_DEFAULT_24G_HT20_DIFF; } else { pwrInfo24G->BW20_Diff[rfPath][TxCount] = (PROMContent[eeAddr]&0xf0)>>4; - if (pwrInfo24G->BW20_Diff[rfPath][TxCount] & BIT3) /* 4bit sign number to 8 bit sign number */ + if (pwrInfo24G->BW20_Diff[rfPath][TxCount] & BIT(3)) /* 4bit sign number to 8 bit sign number */ pwrInfo24G->BW20_Diff[rfPath][TxCount] |= 0xF0; } @@ -380,7 +380,7 @@ static void Hal_ReadPowerValueFromPROM_8188E(struct txpowerinfo24g *pwrInfo24G, pwrInfo24G->OFDM_Diff[rfPath][TxCount] = EEPROM_DEFAULT_24G_OFDM_DIFF; } else { pwrInfo24G->OFDM_Diff[rfPath][TxCount] = (PROMContent[eeAddr]&0x0f); - if (pwrInfo24G->OFDM_Diff[rfPath][TxCount] & BIT3) /* 4bit sign number to 8 bit sign number */ + if (pwrInfo24G->OFDM_Diff[rfPath][TxCount] & BIT(3)) /* 4bit sign number to 8 bit sign number */ pwrInfo24G->OFDM_Diff[rfPath][TxCount] |= 0xF0; } pwrInfo24G->CCK_Diff[rfPath][TxCount] = 0; @@ -390,7 +390,7 @@ static void Hal_ReadPowerValueFromPROM_8188E(struct txpowerinfo24g *pwrInfo24G, pwrInfo24G->BW40_Diff[rfPath][TxCount] = EEPROM_DEFAULT_DIFF; } else { pwrInfo24G->BW40_Diff[rfPath][TxCount] = (PROMContent[eeAddr]&0xf0)>>4; - if (pwrInfo24G->BW40_Diff[rfPath][TxCount] & BIT3) /* 4bit sign number to 8 bit sign number */ + if (pwrInfo24G->BW40_Diff[rfPath][TxCount] & BIT(3)) /* 4bit sign number to 8 bit sign number */ pwrInfo24G->BW40_Diff[rfPath][TxCount] |= 0xF0; } @@ -398,7 +398,7 @@ static void Hal_ReadPowerValueFromPROM_8188E(struct txpowerinfo24g *pwrInfo24G, pwrInfo24G->BW20_Diff[rfPath][TxCount] = EEPROM_DEFAULT_DIFF; } else { pwrInfo24G->BW20_Diff[rfPath][TxCount] = (PROMContent[eeAddr]&0x0f); - if (pwrInfo24G->BW20_Diff[rfPath][TxCount] & BIT3) /* 4bit sign number to 8 bit sign number */ + if (pwrInfo24G->BW20_Diff[rfPath][TxCount] & BIT(3)) /* 4bit sign number to 8 bit sign number */ pwrInfo24G->BW20_Diff[rfPath][TxCount] |= 0xF0; } eeAddr++; @@ -407,7 +407,7 @@ static void Hal_ReadPowerValueFromPROM_8188E(struct txpowerinfo24g *pwrInfo24G, pwrInfo24G->OFDM_Diff[rfPath][TxCount] = EEPROM_DEFAULT_DIFF; } else { pwrInfo24G->OFDM_Diff[rfPath][TxCount] = (PROMContent[eeAddr]&0xf0)>>4; - if (pwrInfo24G->OFDM_Diff[rfPath][TxCount] & BIT3) /* 4bit sign number to 8 bit sign number */ + if (pwrInfo24G->OFDM_Diff[rfPath][TxCount] & BIT(3)) /* 4bit sign number to 8 bit sign number */ pwrInfo24G->OFDM_Diff[rfPath][TxCount] |= 0xF0; } @@ -415,7 +415,7 @@ static void Hal_ReadPowerValueFromPROM_8188E(struct txpowerinfo24g *pwrInfo24G, pwrInfo24G->CCK_Diff[rfPath][TxCount] = EEPROM_DEFAULT_DIFF; } else { pwrInfo24G->CCK_Diff[rfPath][TxCount] = (PROMContent[eeAddr]&0x0f); - if (pwrInfo24G->CCK_Diff[rfPath][TxCount] & BIT3) /* 4bit sign number to 8 bit sign number */ + if (pwrInfo24G->CCK_Diff[rfPath][TxCount] & BIT(3)) /* 4bit sign number to 8 bit sign number */ pwrInfo24G->CCK_Diff[rfPath][TxCount] |= 0xF0; } eeAddr++; @@ -485,13 +485,13 @@ void Hal_ReadPowerSavingMode88E(struct adapter *padapter, u8 *hwinfo, bool AutoL /* hw power down mode selection , 0:rf-off / 1:power down */ if (padapter->registrypriv.hwpdn_mode == 2) - padapter->pwrctrlpriv.bHWPowerdown = (hwinfo[EEPROM_RF_FEATURE_OPTION_88E] & BIT4); + padapter->pwrctrlpriv.bHWPowerdown = (hwinfo[EEPROM_RF_FEATURE_OPTION_88E] & BIT(4)); else padapter->pwrctrlpriv.bHWPowerdown = padapter->registrypriv.hwpdn_mode; /* decide hw if support remote wakeup function */ /* if hw supported, 8051 (SIE) will generate WeakUP signal(D+/D- toggle) when autoresume */ - padapter->pwrctrlpriv.bSupportRemoteWakeup = (hwinfo[EEPROM_USB_OPTIONAL_FUNCTION0] & BIT1) ? true : false; + padapter->pwrctrlpriv.bSupportRemoteWakeup = (hwinfo[EEPROM_USB_OPTIONAL_FUNCTION0] & BIT(1)) ? true : false; DBG_88E("%s...bHWPwrPindetect(%x)-bHWPowerdown(%x) , bSupportRemoteWakeup(%x)\n", __func__, padapter->pwrctrlpriv.bHWPwrPindetect, padapter->pwrctrlpriv.bHWPowerdown , padapter->pwrctrlpriv.bSupportRemoteWakeup); diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_led.c b/drivers/staging/rtl8188eu/hal/rtl8188eu_led.c index 81d691ddd6c6..564cf53bff1b 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188eu_led.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188eu_led.c @@ -36,7 +36,7 @@ void SwLedOn(struct adapter *padapter, struct LED_871x *pLed) if (padapter->bSurpriseRemoved || padapter->bDriverStopped) return; LedCfg = usb_read8(padapter, REG_LEDCFG2); - usb_write8(padapter, REG_LEDCFG2, (LedCfg&0xf0)|BIT5|BIT6); /* SW control led0 on. */ + usb_write8(padapter, REG_LEDCFG2, (LedCfg&0xf0) | BIT(5) | BIT(6)); /* SW control led0 on. */ pLed->bLedOn = true; } @@ -55,12 +55,12 @@ void SwLedOff(struct adapter *padapter, struct LED_871x *pLed) if (pHalData->bLedOpenDrain) { /* Open-drain arrangement for controlling the LED) */ LedCfg &= 0x90; /* Set to software control. */ - usb_write8(padapter, REG_LEDCFG2, (LedCfg|BIT3)); + usb_write8(padapter, REG_LEDCFG2, (LedCfg | BIT(3))); LedCfg = usb_read8(padapter, REG_MAC_PINMUX_CFG); LedCfg &= 0xFE; usb_write8(padapter, REG_MAC_PINMUX_CFG, LedCfg); } else { - usb_write8(padapter, REG_LEDCFG2, (LedCfg|BIT3|BIT5|BIT6)); + usb_write8(padapter, REG_LEDCFG2, (LedCfg | BIT(3) | BIT(5) | BIT(6))); } exit: pLed->bLedOn = false; diff --git a/drivers/staging/rtl8188eu/hal/usb_halinit.c b/drivers/staging/rtl8188eu/hal/usb_halinit.c index 1ef878fd997b..7e72259f0e40 100644 --- a/drivers/staging/rtl8188eu/hal/usb_halinit.c +++ b/drivers/staging/rtl8188eu/hal/usb_halinit.c @@ -607,7 +607,7 @@ static void _InitBeaconParameters(struct adapter *Adapter) static void _BeaconFunctionEnable(struct adapter *Adapter, bool Enable, bool Linked) { - usb_write8(Adapter, REG_BCN_CTRL, (BIT4 | BIT3 | BIT1)); + usb_write8(Adapter, REG_BCN_CTRL, (BIT(4) | BIT(3) | BIT(1))); usb_write8(Adapter, REG_RD_CTRL+1, 0x6F); } @@ -632,8 +632,8 @@ static void _InitAntenna_Selection(struct adapter *Adapter) return; DBG_88E("==> %s ....\n", __func__); - usb_write32(Adapter, REG_LEDCFG0, usb_read32(Adapter, REG_LEDCFG0)|BIT23); - phy_set_bb_reg(Adapter, rFPGA0_XAB_RFParameter, BIT13, 0x01); + usb_write32(Adapter, REG_LEDCFG0, usb_read32(Adapter, REG_LEDCFG0) | BIT(23)); + phy_set_bb_reg(Adapter, rFPGA0_XAB_RFParameter, BIT(13), 0x01); if (phy_query_bb_reg(Adapter, rFPGA0_XA_RFInterfaceOE, 0x300) == Antenna_A) haldata->CurAntenna = Antenna_A; @@ -664,13 +664,13 @@ enum rt_rf_power_state RfOnOffDetect(struct adapter *adapt) if (adapt->pwrctrlpriv.bHWPowerdown) { val8 = usb_read8(adapt, REG_HSISR); - DBG_88E("pwrdown, 0x5c(BIT7)=%02x\n", val8); - rfpowerstate = (val8 & BIT7) ? rf_off : rf_on; + DBG_88E("pwrdown, 0x5c(BIT(7))=%02x\n", val8); + rfpowerstate = (val8 & BIT(7)) ? rf_off : rf_on; } else { /* rf on/off */ - usb_write8(adapt, REG_MAC_PINMUX_CFG, usb_read8(adapt, REG_MAC_PINMUX_CFG)&~(BIT3)); + usb_write8(adapt, REG_MAC_PINMUX_CFG, usb_read8(adapt, REG_MAC_PINMUX_CFG)&~(BIT(3))); val8 = usb_read8(adapt, REG_GPIO_IO_SEL); DBG_88E("GPIO_IN=%02x\n", val8); - rfpowerstate = (val8 & BIT3) ? rf_on : rf_off; + rfpowerstate = (val8 & BIT(3)) ? rf_on : rf_off; } return rfpowerstate; } /* HalDetectPwrDownMode */ @@ -805,7 +805,7 @@ static u32 rtl8188eu_hal_init(struct adapter *Adapter) /* Enable TX Report */ /* Enable Tx Report Timer */ value8 = usb_read8(Adapter, REG_TX_RPT_CTRL); - usb_write8(Adapter, REG_TX_RPT_CTRL, (value8|BIT1|BIT0)); + usb_write8(Adapter, REG_TX_RPT_CTRL, (value8 | BIT(1) | BIT(0))); /* Set MAX RPT MACID */ usb_write8(Adapter, REG_TX_RPT_CTRL+1, 2);/* FOR sta mode ,0: bc/mc ,1:AP */ /* Tx RPT Timer. Unit: 32us */ @@ -898,7 +898,7 @@ HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_LCK); usb_write8(Adapter, REG_USB_HRPWM, 0); /* ack for xmit mgmt frames. */ - usb_write32(Adapter, REG_FWHW_TXQ_CTRL, usb_read32(Adapter, REG_FWHW_TXQ_CTRL)|BIT(12)); + usb_write32(Adapter, REG_FWHW_TXQ_CTRL, usb_read32(Adapter, REG_FWHW_TXQ_CTRL) | BIT(12)); exit: HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_END); @@ -918,7 +918,7 @@ static void CardDisableRTL8188EU(struct adapter *Adapter) /* Stop Tx Report Timer. 0x4EC[Bit1]=b'0 */ val8 = usb_read8(Adapter, REG_TX_RPT_CTRL); - usb_write8(Adapter, REG_TX_RPT_CTRL, val8&(~BIT1)); + usb_write8(Adapter, REG_TX_RPT_CTRL, val8&(~BIT(1))); /* stop rx */ usb_write8(Adapter, REG_CR, 0x0); @@ -944,7 +944,7 @@ static void CardDisableRTL8188EU(struct adapter *Adapter) /* YJ,add,111212 */ /* Disable 32k */ val8 = usb_read8(Adapter, REG_32K_CTRL); - usb_write8(Adapter, REG_32K_CTRL, val8&(~BIT0)); + usb_write8(Adapter, REG_32K_CTRL, val8&(~BIT(0))); /* Card disable power action flow */ rtl88eu_pwrseqcmdparsing(Adapter, PWR_CUT_ALL_MSK, @@ -953,9 +953,9 @@ static void CardDisableRTL8188EU(struct adapter *Adapter) /* Reset MCU IO Wrapper */ val8 = usb_read8(Adapter, REG_RSV_CTRL+1); - usb_write8(Adapter, REG_RSV_CTRL+1, (val8&(~BIT3))); + usb_write8(Adapter, REG_RSV_CTRL+1, (val8&(~BIT(3)))); val8 = usb_read8(Adapter, REG_RSV_CTRL+1); - usb_write8(Adapter, REG_RSV_CTRL+1, val8|BIT3); + usb_write8(Adapter, REG_RSV_CTRL+1, val8 | BIT(3)); /* YJ,test add, 111207. For Power Consumption. */ val8 = usb_read8(Adapter, GPIO_IN); @@ -1171,10 +1171,10 @@ static void ResumeTxBeacon(struct adapter *adapt) /* 2010.03.01. Marked by tynli. No need to call workitem beacause we record the value */ /* which should be read from register to a global variable. */ - usb_write8(adapt, REG_FWHW_TXQ_CTRL+2, (haldata->RegFwHwTxQCtrl) | BIT6); - haldata->RegFwHwTxQCtrl |= BIT6; + usb_write8(adapt, REG_FWHW_TXQ_CTRL+2, (haldata->RegFwHwTxQCtrl) | BIT(6)); + haldata->RegFwHwTxQCtrl |= BIT(6); usb_write8(adapt, REG_TBTT_PROHIBIT+1, 0xff); - haldata->RegReg542 |= BIT0; + haldata->RegReg542 |= BIT(0); usb_write8(adapt, REG_TBTT_PROHIBIT+2, haldata->RegReg542); } @@ -1185,10 +1185,10 @@ static void StopTxBeacon(struct adapter *adapt) /* 2010.03.01. Marked by tynli. No need to call workitem beacause we record the value */ /* which should be read from register to a global variable. */ - usb_write8(adapt, REG_FWHW_TXQ_CTRL+2, (haldata->RegFwHwTxQCtrl) & (~BIT6)); - haldata->RegFwHwTxQCtrl &= (~BIT6); + usb_write8(adapt, REG_FWHW_TXQ_CTRL+2, (haldata->RegFwHwTxQCtrl) & (~BIT(6))); + haldata->RegFwHwTxQCtrl &= (~BIT(6)); usb_write8(adapt, REG_TBTT_PROHIBIT+1, 0x64); - haldata->RegReg542 &= ~(BIT0); + haldata->RegReg542 &= ~(BIT(0)); usb_write8(adapt, REG_TBTT_PROHIBIT+2, haldata->RegReg542); /* todo: CheckFwRsvdPageContent(Adapter); 2010.06.23. Added by tynli. */ @@ -1200,7 +1200,7 @@ static void hw_var_set_opmode(struct adapter *Adapter, u8 variable, u8 *val) u8 mode = *((u8 *)val); /* disable Port0 TSF update */ - usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL)|BIT(4)); + usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL) | BIT(4)); /* set net_type */ val8 = usb_read8(Adapter, MSR)&0x0c; @@ -1378,7 +1378,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) usb_write32(Adapter, REG_TSFTR+4, tsf>>32); /* enable related TSF function */ - usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL)|BIT(3)); + usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL) | BIT(3)); if (((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE) || ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)) ResumeTxBeacon(Adapter); @@ -1403,10 +1403,10 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) usb_write16(Adapter, REG_RXFLTMAP2, 0x00); /* reset TSF */ - usb_write8(Adapter, REG_DUAL_TSF_RST, (BIT(0)|BIT(1))); + usb_write8(Adapter, REG_DUAL_TSF_RST, (BIT(0) | BIT(1))); /* disable update TSF */ - usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL)|BIT(4)); + usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL) | BIT(4)); break; case HW_VAR_MLME_SITESURVEY: if (*((u8 *)val)) { /* under sitesurvey */ @@ -1418,7 +1418,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) usb_write16(Adapter, REG_RXFLTMAP2, 0x00); /* disable update TSF */ - usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL)|BIT(4)); + usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL) | BIT(4)); } else { /* sitesurvey done */ struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); @@ -1578,7 +1578,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) } break; case HW_VAR_CAM_INVALID_ALL: - usb_write32(Adapter, RWCAM, BIT(31)|BIT(30)); + usb_write32(Adapter, RWCAM, BIT(31) | BIT(30)); break; case HW_VAR_CAM_WRITE: { @@ -1795,7 +1795,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) break; case HW_VAR_BCN_VALID: /* BCN_VALID, BIT16 of REG_TDECTRL = BIT0 of REG_TDECTRL+2, write 1 to clear, Clear by sw */ - usb_write8(Adapter, REG_TDECTRL+2, usb_read8(Adapter, REG_TDECTRL+2) | BIT0); + usb_write8(Adapter, REG_TDECTRL+2, usb_read8(Adapter, REG_TDECTRL+2) | BIT(0)); break; default: break; @@ -1815,7 +1815,7 @@ static void GetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) break; case HW_VAR_BCN_VALID: /* BCN_VALID, BIT16 of REG_TDECTRL = BIT0 of REG_TDECTRL+2 */ - val[0] = (BIT0 & usb_read8(Adapter, REG_TDECTRL+2)) ? true : false; + val[0] = (BIT(0) & usb_read8(Adapter, REG_TDECTRL+2)) ? true : false; break; case HW_VAR_DM_FLAG: val[0] = podmpriv->SupportAbility; @@ -2052,7 +2052,7 @@ static void SetBeaconRelatedRegisters8188EUsb(struct adapter *adapt) ResumeTxBeacon(adapt); - usb_write8(adapt, bcn_ctrl_reg, usb_read8(adapt, bcn_ctrl_reg)|BIT(1)); + usb_write8(adapt, bcn_ctrl_reg, usb_read8(adapt, bcn_ctrl_reg) | BIT(1)); } static void rtl8188eu_init_default_value(struct adapter *adapt) diff --git a/drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h b/drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h index 20e6b40fc35c..e058162fe2ba 100644 --- a/drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h +++ b/drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h @@ -87,13 +87,13 @@ enum rf_radio_path { enum wireless_mode { WIRELESS_MODE_UNKNOWN = 0x00, - WIRELESS_MODE_A = BIT2, - WIRELESS_MODE_B = BIT0, - WIRELESS_MODE_G = BIT1, - WIRELESS_MODE_AUTO = BIT5, - WIRELESS_MODE_N_24G = BIT3, - WIRELESS_MODE_N_5G = BIT4, - WIRELESS_MODE_AC = BIT6 + WIRELESS_MODE_A = BIT(2), + WIRELESS_MODE_B = BIT(0), + WIRELESS_MODE_G = BIT(1), + WIRELESS_MODE_AUTO = BIT(5), + WIRELESS_MODE_N_24G = BIT(3), + WIRELESS_MODE_N_5G = BIT(4), + WIRELESS_MODE_AC = BIT(6) }; enum phy_rate_tx_offset_area { diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h b/drivers/staging/rtl8188eu/include/hal_intf.h index e73c6341248e..1b1c10292456 100644 --- a/drivers/staging/rtl8188eu/include/hal_intf.h +++ b/drivers/staging/rtl8188eu/include/hal_intf.h @@ -25,10 +25,10 @@ #include enum RTL871X_HCI_TYPE { - RTW_PCIE = BIT0, - RTW_USB = BIT1, - RTW_SDIO = BIT2, - RTW_GSPI = BIT3, + RTW_PCIE = BIT(0), + RTW_USB = BIT(1), + RTW_SDIO = BIT(2), + RTW_GSPI = BIT(3), }; enum _CHIP_TYPE { @@ -226,10 +226,10 @@ enum rt_eeprom_type { }; #define RF_CHANGE_BY_INIT 0 -#define RF_CHANGE_BY_IPS BIT28 -#define RF_CHANGE_BY_PS BIT29 -#define RF_CHANGE_BY_HW BIT30 -#define RF_CHANGE_BY_SW BIT31 +#define RF_CHANGE_BY_IPS BIT(28) +#define RF_CHANGE_BY_PS BIT(29) +#define RF_CHANGE_BY_HW BIT(30) +#define RF_CHANGE_BY_SW BIT(31) enum hardware_type { HARDWARE_TYPE_RTL8188EU, diff --git a/drivers/staging/rtl8188eu/include/odm.h b/drivers/staging/rtl8188eu/include/odm.h index 73ef9c7596c1..bc970caf7eda 100644 --- a/drivers/staging/rtl8188eu/include/odm.h +++ b/drivers/staging/rtl8188eu/include/odm.h @@ -414,31 +414,31 @@ enum odm_common_info_def { enum odm_ability_def { /* BB ODM section BIT 0-15 */ - ODM_BB_DIG = BIT0, - ODM_BB_RA_MASK = BIT1, - ODM_BB_DYNAMIC_TXPWR = BIT2, - ODM_BB_FA_CNT = BIT3, - ODM_BB_RSSI_MONITOR = BIT4, - ODM_BB_CCK_PD = BIT5, - ODM_BB_ANT_DIV = BIT6, - ODM_BB_PWR_SAVE = BIT7, - ODM_BB_PWR_TRA = BIT8, - ODM_BB_RATE_ADAPTIVE = BIT9, - ODM_BB_PATH_DIV = BIT10, - ODM_BB_PSD = BIT11, - ODM_BB_RXHP = BIT12, + ODM_BB_DIG = BIT(0), + ODM_BB_RA_MASK = BIT(1), + ODM_BB_DYNAMIC_TXPWR = BIT(2), + ODM_BB_FA_CNT = BIT(3), + ODM_BB_RSSI_MONITOR = BIT(4), + ODM_BB_CCK_PD = BIT(5), + ODM_BB_ANT_DIV = BIT(6), + ODM_BB_PWR_SAVE = BIT(7), + ODM_BB_PWR_TRA = BIT(8), + ODM_BB_RATE_ADAPTIVE = BIT(9), + ODM_BB_PATH_DIV = BIT(10), + ODM_BB_PSD = BIT(11), + ODM_BB_RXHP = BIT(12), /* MAC DM section BIT 16-23 */ - ODM_MAC_EDCA_TURBO = BIT16, - ODM_MAC_EARLY_MODE = BIT17, + ODM_MAC_EDCA_TURBO = BIT(16), + ODM_MAC_EARLY_MODE = BIT(17), /* RF ODM section BIT 24-31 */ - ODM_RF_TX_PWR_TRACK = BIT24, - ODM_RF_RX_GAIN_TRACK = BIT25, - ODM_RF_CALIBRATION = BIT26, + ODM_RF_TX_PWR_TRACK = BIT(24), + ODM_RF_RX_GAIN_TRACK = BIT(25), + ODM_RF_CALIBRATION = BIT(26), }; -#define ODM_RTL8188E BIT4 +#define ODM_RTL8188E BIT(4) /* ODM_CMNINFO_CUT_VER */ enum odm_cut_version { @@ -460,14 +460,14 @@ enum odm_fab_Version { /* ODM_CMNINFO_RF_TYPE */ /* For example 1T2R (A+AB = BIT0|BIT4|BIT5) */ enum odm_rf_path { - ODM_RF_TX_A = BIT0, - ODM_RF_TX_B = BIT1, - ODM_RF_TX_C = BIT2, - ODM_RF_TX_D = BIT3, - ODM_RF_RX_A = BIT4, - ODM_RF_RX_B = BIT5, - ODM_RF_RX_C = BIT6, - ODM_RF_RX_D = BIT7, + ODM_RF_TX_A = BIT(0), + ODM_RF_TX_B = BIT(1), + ODM_RF_TX_C = BIT(2), + ODM_RF_TX_D = BIT(3), + ODM_RF_RX_A = BIT(4), + ODM_RF_RX_B = BIT(5), + ODM_RF_RX_C = BIT(6), + ODM_RF_RX_D = BIT(7), }; enum odm_rf_type { @@ -498,33 +498,33 @@ enum odm_bt_coexist { /* ODM_CMNINFO_OP_MODE */ enum odm_operation_mode { - ODM_NO_LINK = BIT0, - ODM_LINK = BIT1, - ODM_SCAN = BIT2, - ODM_POWERSAVE = BIT3, - ODM_AP_MODE = BIT4, - ODM_CLIENT_MODE = BIT5, - ODM_AD_HOC = BIT6, - ODM_WIFI_DIRECT = BIT7, - ODM_WIFI_DISPLAY = BIT8, + ODM_NO_LINK = BIT(0), + ODM_LINK = BIT(1), + ODM_SCAN = BIT(2), + ODM_POWERSAVE = BIT(3), + ODM_AP_MODE = BIT(4), + ODM_CLIENT_MODE = BIT(5), + ODM_AD_HOC = BIT(6), + ODM_WIFI_DIRECT = BIT(7), + ODM_WIFI_DISPLAY = BIT(8), }; /* ODM_CMNINFO_WM_MODE */ enum odm_wireless_mode { ODM_WM_UNKNOW = 0x0, - ODM_WM_B = BIT0, - ODM_WM_G = BIT1, - ODM_WM_A = BIT2, - ODM_WM_N24G = BIT3, - ODM_WM_N5G = BIT4, - ODM_WM_AUTO = BIT5, - ODM_WM_AC = BIT6, + ODM_WM_B = BIT(0), + ODM_WM_G = BIT(1), + ODM_WM_A = BIT(2), + ODM_WM_N24G = BIT(3), + ODM_WM_N5G = BIT(4), + ODM_WM_AUTO = BIT(5), + ODM_WM_AC = BIT(6), }; /* ODM_CMNINFO_BAND */ enum odm_band_type { - ODM_BAND_2_4G = BIT0, - ODM_BAND_5G = BIT1, + ODM_BAND_2_4G = BIT(0), + ODM_BAND_5G = BIT(1), }; /* ODM_CMNINFO_SEC_CHNL_OFFSET */ diff --git a/drivers/staging/rtl8188eu/include/odm_debug.h b/drivers/staging/rtl8188eu/include/odm_debug.h index 914f831a5b77..e9390963d6ff 100644 --- a/drivers/staging/rtl8188eu/include/odm_debug.h +++ b/drivers/staging/rtl8188eu/include/odm_debug.h @@ -57,30 +57,30 @@ /* Define the tracing components */ /* BB Functions */ -#define ODM_COMP_DIG BIT0 -#define ODM_COMP_RA_MASK BIT1 -#define ODM_COMP_DYNAMIC_TXPWR BIT2 -#define ODM_COMP_FA_CNT BIT3 -#define ODM_COMP_RSSI_MONITOR BIT4 -#define ODM_COMP_CCK_PD BIT5 -#define ODM_COMP_ANT_DIV BIT6 -#define ODM_COMP_PWR_SAVE BIT7 -#define ODM_COMP_PWR_TRA BIT8 -#define ODM_COMP_RATE_ADAPTIVE BIT9 -#define ODM_COMP_PATH_DIV BIT10 -#define ODM_COMP_PSD BIT11 -#define ODM_COMP_DYNAMIC_PRICCA BIT12 -#define ODM_COMP_RXHP BIT13 +#define ODM_COMP_DIG BIT(0) +#define ODM_COMP_RA_MASK BIT(1) +#define ODM_COMP_DYNAMIC_TXPWR BIT(2) +#define ODM_COMP_FA_CNT BIT(3) +#define ODM_COMP_RSSI_MONITOR BIT(4) +#define ODM_COMP_CCK_PD BIT(5) +#define ODM_COMP_ANT_DIV BIT(6) +#define ODM_COMP_PWR_SAVE BIT(7) +#define ODM_COMP_PWR_TRA BIT(8) +#define ODM_COMP_RATE_ADAPTIVE BIT(9) +#define ODM_COMP_PATH_DIV BIT(10) +#define ODM_COMP_PSD BIT(11) +#define ODM_COMP_DYNAMIC_PRICCA BIT(12) +#define ODM_COMP_RXHP BIT(13) /* MAC Functions */ -#define ODM_COMP_EDCA_TURBO BIT16 -#define ODM_COMP_EARLY_MODE BIT17 +#define ODM_COMP_EDCA_TURBO BIT(16) +#define ODM_COMP_EARLY_MODE BIT(17) /* RF Functions */ -#define ODM_COMP_TX_PWR_TRACK BIT24 -#define ODM_COMP_RX_GAIN_TRACK BIT25 -#define ODM_COMP_CALIBRATION BIT26 +#define ODM_COMP_TX_PWR_TRACK BIT(24) +#define ODM_COMP_RX_GAIN_TRACK BIT(25) +#define ODM_COMP_CALIBRATION BIT(26) /* Common Functions */ -#define ODM_COMP_COMMON BIT30 -#define ODM_COMP_INIT BIT31 +#define ODM_COMP_COMMON BIT(30) +#define ODM_COMP_INIT BIT(31) /*------------------------Export Marco Definition---------------------------*/ #define RT_PRINTK(fmt, args...) \ diff --git a/drivers/staging/rtl8188eu/include/odm_reg.h b/drivers/staging/rtl8188eu/include/odm_reg.h index 89bc46bc71b0..7f10b695cf9d 100644 --- a/drivers/staging/rtl8188eu/include/odm_reg.h +++ b/drivers/staging/rtl8188eu/include/odm_reg.h @@ -112,7 +112,7 @@ /* Bitmap Definition */ /* */ -#define BIT_FA_RESET BIT0 +#define BIT_FA_RESET BIT(0) diff --git a/drivers/staging/rtl8188eu/include/osdep_service.h b/drivers/staging/rtl8188eu/include/osdep_service.h index 96505a6dbe2c..e24fe8cc3d0b 100644 --- a/drivers/staging/rtl8188eu/include/osdep_service.h +++ b/drivers/staging/rtl8188eu/include/osdep_service.h @@ -75,45 +75,6 @@ static inline int rtw_netif_queue_stopped(struct net_device *pnetdev) netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3)); } - -#define BIT0 0x00000001 -#define BIT1 0x00000002 -#define BIT2 0x00000004 -#define BIT3 0x00000008 -#define BIT4 0x00000010 -#define BIT5 0x00000020 -#define BIT6 0x00000040 -#define BIT7 0x00000080 -#define BIT8 0x00000100 -#define BIT9 0x00000200 -#define BIT10 0x00000400 -#define BIT11 0x00000800 -#define BIT12 0x00001000 -#define BIT13 0x00002000 -#define BIT14 0x00004000 -#define BIT15 0x00008000 -#define BIT16 0x00010000 -#define BIT17 0x00020000 -#define BIT18 0x00040000 -#define BIT19 0x00080000 -#define BIT20 0x00100000 -#define BIT21 0x00200000 -#define BIT22 0x00400000 -#define BIT23 0x00800000 -#define BIT24 0x01000000 -#define BIT25 0x02000000 -#define BIT26 0x04000000 -#define BIT27 0x08000000 -#define BIT28 0x10000000 -#define BIT29 0x20000000 -#define BIT30 0x40000000 -#define BIT31 0x80000000 -#define BIT32 0x0100000000 -#define BIT33 0x0200000000 -#define BIT34 0x0400000000 -#define BIT35 0x0800000000 -#define BIT36 0x1000000000 - int RTW_STATUS_CODE(int error_code); #define rtw_update_mem_stat(flag, sz) do {} while (0) diff --git a/drivers/staging/rtl8188eu/include/pwrseq.h b/drivers/staging/rtl8188eu/include/pwrseq.h index 43db92dcb8b3..8c876c6c7a4f 100644 --- a/drivers/staging/rtl8188eu/include/pwrseq.h +++ b/drivers/staging/rtl8188eu/include/pwrseq.h @@ -65,31 +65,31 @@ * comment here */ \ {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, BIT1}, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ /* wait till 0x04[17] = 1 power ready*/ \ {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0|BIT1, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0) | BIT(1), 0}, \ /* 0x02[1:0] = 0 reset BB*/ \ {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ /*0x24[23] = 2b'01 schmit trigger */ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0}, \ /* 0x04[15] = 0 disable HWPDN (control by DRV)*/ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4|BIT3, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4) | BIT(3), 0}, \ /*0x04[12:11] = 2b'00 disable WL suspend*/ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ /*0x04[8] = 1 polling until return 0*/ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT0, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(0), 0}, \ /*wait till 0x04[8] = 0*/ \ {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ /*LDO normal mode*/ \ {0x0074, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ /*SDIO Driving*/ #define RTL8188E_TRANS_ACT_TO_CARDEMU \ @@ -102,13 +102,13 @@ PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, \ /*0x1F[7:0] = 0 turn off RF*/ \ {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ /*LDO Sleep mode*/ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ /*0x04[9] = 1 turn off MAC by HW state machine*/ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), 0}, \ /*wait till 0x04[9] = 0 polling until return 0 to disable*/ #define RTL8188E_TRANS_CARDEMU_TO_SUS \ @@ -119,28 +119,28 @@ */ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ - PWR_CMD_WRITE, BIT3|BIT4, BIT3}, \ + PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, \ /* 0x04[12:11] = 2b'01enable WL suspend */ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, BIT3|BIT4}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) | BIT(4)}, \ /* 0x04[12:11] = 2b'11enable WL suspend for PCIe */ \ {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ - PWR_CMD_WRITE, 0xFF, BIT7}, \ + PWR_CMD_WRITE, 0xFF, BIT(7)}, \ /* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */\ {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ - PWR_CMD_WRITE, BIT4, 0}, \ + PWR_CMD_WRITE, BIT(4), 0}, \ /*Clear SIC_EN register 0x40[12] = 1'b0 */ \ {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ - PWR_CMD_WRITE, BIT4, BIT4}, \ + PWR_CMD_WRITE, BIT(4), BIT(4)}, \ /*Set USB suspend enable local register 0xfe10[4]=1 */ \ {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, BIT0}, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ /*Set SDIO suspend local register*/ \ {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, 0}, \ + PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0}, \ /*wait power state to suspend*/ #define RTL8188E_TRANS_SUS_TO_CARDEMU \ @@ -150,13 +150,13 @@ * comments here */ \ {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, 0}, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0}, \ /*Set SDIO suspend local register*/ \ {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, BIT1}, \ + PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ /*wait power state to suspend*/ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, \ /*0x04[12:11] = 2b'01enable WL suspend*/ #define RTL8188E_TRANS_CARDEMU_TO_CARDDIS \ @@ -166,11 +166,11 @@ * comments here */ \ {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ /*0x24[23] = 2b'01 schmit trigger */ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ - PWR_CMD_WRITE, BIT3|BIT4, BIT3}, \ + PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, \ /*0x04[12:11] = 2b'01 enable WL suspend*/ \ {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ @@ -178,16 +178,16 @@ /* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */\ {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ - PWR_CMD_WRITE, BIT4, 0}, \ + PWR_CMD_WRITE, BIT(4), 0}, \ /*Clear SIC_EN register 0x40[12] = 1'b0 */ \ {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ /*Set USB suspend enable local register 0xfe10[4]=1 */ \ {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, BIT0}, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ /*Set SDIO suspend local register*/ \ {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, 0}, \ + PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0}, \ /*wait power state to suspend*/ #define RTL8188E_TRANS_CARDDIS_TO_CARDEMU \ @@ -197,13 +197,13 @@ * comments here */ \ {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, 0}, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0}, \ /*Set SDIO suspend local register*/ \ {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ - PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, BIT1}, \ + PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ /*wait power state to suspend*/ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, \ /*0x04[12:11] = 2b'01enable WL suspend*/ #define RTL8188E_TRANS_CARDEMU_TO_PDN \ @@ -213,10 +213,10 @@ * comments here */ \ {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ /* 0x04[16] = 0*/ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ /* 0x04[15] = 1*/ #define RTL8188E_TRANS_PDN_TO_CARDEMU \ @@ -226,7 +226,7 @@ * comments here */ \ {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0}, \ /* 0x04[15] = 0*/ /* This is used by driver for LPSRadioOff Procedure, not for FW LPS Step */ @@ -251,7 +251,7 @@ PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ /*Should be zero if no packet is transmitting*/ \ {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ /*CCK and OFDM are disabled,and clock are gated*/ \ {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, \ @@ -259,9 +259,9 @@ {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x3F},/*Reset MAC TRX*/ \ {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0},/*check if removed later*/\ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0},/*check if removed later*/\ {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT5, BIT5}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), BIT(5)}, \ /*Respond TxOK to scheduler*/ @@ -280,22 +280,22 @@ {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, /*Delay*/ \ {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ /* 0x08[4] = 0 switch TSF to 40M */ \ {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT7, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(7), 0}, \ /* Polling 0x109[7]=0 TSF in 40M */ \ {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT6|BIT7, 0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6) | BIT(7), 0}, \ /* 0x29[7:6] = 2b'00 enable BB clock */ \ {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ /* 0x101[1] = 1 */ \ {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, \ /* 0x100[7:0] = 0xFF enable WMAC TRX */ \ {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ - PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1|BIT0, BIT1|BIT0}, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1) | BIT(0), BIT(1) | BIT(0)}, \ /* 0x02[1:0] = 2b'11 enable BB macro */ \ {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, /*. 0x522 = 0*/ diff --git a/drivers/staging/rtl8188eu/include/rtl8188e_spec.h b/drivers/staging/rtl8188eu/include/rtl8188e_spec.h index e99179a794af..beeee4a6b0bc 100644 --- a/drivers/staging/rtl8188eu/include/rtl8188e_spec.h +++ b/drivers/staging/rtl8188eu/include/rtl8188e_spec.h @@ -19,39 +19,6 @@ #ifndef __RTL8188E_SPEC_H__ #define __RTL8188E_SPEC_H__ -#define BIT0 0x00000001 -#define BIT1 0x00000002 -#define BIT2 0x00000004 -#define BIT3 0x00000008 -#define BIT4 0x00000010 -#define BIT5 0x00000020 -#define BIT6 0x00000040 -#define BIT7 0x00000080 -#define BIT8 0x00000100 -#define BIT9 0x00000200 -#define BIT10 0x00000400 -#define BIT11 0x00000800 -#define BIT12 0x00001000 -#define BIT13 0x00002000 -#define BIT14 0x00004000 -#define BIT15 0x00008000 -#define BIT16 0x00010000 -#define BIT17 0x00020000 -#define BIT18 0x00040000 -#define BIT19 0x00080000 -#define BIT20 0x00100000 -#define BIT21 0x00200000 -#define BIT22 0x00400000 -#define BIT23 0x00800000 -#define BIT24 0x01000000 -#define BIT25 0x02000000 -#define BIT26 0x04000000 -#define BIT27 0x08000000 -#define BIT28 0x10000000 -#define BIT29 0x20000000 -#define BIT30 0x40000000 -#define BIT31 0x80000000 - /* 8192C Regsiter offset definition */ #define HAL_PS_TIMER_INT_DELAY 50 /* 50 microseconds */ @@ -477,14 +444,14 @@ #define MAX_MSS_DENSITY_1T 0x0A /* EEPROM enable when set 1 */ -#define CmdEEPROM_En BIT5 +#define CmdEEPROM_En BIT(5) /* System EEPROM select, 0: boot from E-FUSE, 1: The EEPROM used is 9346 */ -#define CmdEERPOMSEL BIT4 -#define Cmd9346CR_9356SEL BIT4 +#define CmdEERPOMSEL BIT(4) +#define Cmd9346CR_9356SEL BIT(4) /* 8192C GPIO MUX Configuration Register (offset 0x40, 4 byte) */ #define GPIOSEL_GPIO 0 -#define GPIOSEL_ENBT BIT5 +#define GPIOSEL_ENBT BIT(5) /* 8192C GPIO PIN Control Register (offset 0x44, 4 byte) */ /* GPIO pins input value */ @@ -497,18 +464,18 @@ #define GPIO_MOD (REG_GPIO_PIN_CTRL+3) /* 8723/8188E Host System Interrupt Mask Register (offset 0x58, 32 byte) */ -#define HSIMR_GPIO12_0_INT_EN BIT0 -#define HSIMR_SPS_OCP_INT_EN BIT5 -#define HSIMR_RON_INT_EN BIT6 -#define HSIMR_PDN_INT_EN BIT7 -#define HSIMR_GPIO9_INT_EN BIT25 +#define HSIMR_GPIO12_0_INT_EN BIT(0) +#define HSIMR_SPS_OCP_INT_EN BIT(5) +#define HSIMR_RON_INT_EN BIT(6) +#define HSIMR_PDN_INT_EN BIT(7) +#define HSIMR_GPIO9_INT_EN BIT(25) /* 8723/8188E Host System Interrupt Status Register (offset 0x5C, 32 byte) */ -#define HSISR_GPIO12_0_INT BIT0 -#define HSISR_SPS_OCP_INT BIT5 -#define HSISR_RON_INT_EN BIT6 -#define HSISR_PDNINT BIT7 -#define HSISR_GPIO9_INT BIT25 +#define HSISR_GPIO12_0_INT BIT(0) +#define HSISR_SPS_OCP_INT BIT(5) +#define HSISR_RON_INT_EN BIT(6) +#define HSISR_PDNINT BIT(7) +#define HSISR_GPIO9_INT BIT(25) /* 8192C (MSR) Media Status Register (Offset 0x4C, 8 bits) */ /* @@ -533,51 +500,51 @@ Default: 00b. /* 88E Driver Initialization Offload REG_FDHM0(Offset 0x88, 8 bits) */ /* IOL config for REG_FDHM0(Reg0x88) */ -#define CMD_INIT_LLT BIT0 -#define CMD_READ_EFUSE_MAP BIT1 -#define CMD_EFUSE_PATCH BIT2 -#define CMD_IOCONFIG BIT3 -#define CMD_INIT_LLT_ERR BIT4 -#define CMD_READ_EFUSE_MAP_ERR BIT5 -#define CMD_EFUSE_PATCH_ERR BIT6 -#define CMD_IOCONFIG_ERR BIT7 +#define CMD_INIT_LLT BIT(0) +#define CMD_READ_EFUSE_MAP BIT(1) +#define CMD_EFUSE_PATCH BIT(2) +#define CMD_IOCONFIG BIT(3) +#define CMD_INIT_LLT_ERR BIT(4) +#define CMD_READ_EFUSE_MAP_ERR BIT(5) +#define CMD_EFUSE_PATCH_ERR BIT(6) +#define CMD_IOCONFIG_ERR BIT(7) /* 6. Adaptive Control Registers (Offset: 0x0160 - 0x01CF) */ /* 8192C Response Rate Set Register (offset 0x181, 24bits) */ -#define RRSR_1M BIT0 -#define RRSR_2M BIT1 -#define RRSR_5_5M BIT2 -#define RRSR_11M BIT3 -#define RRSR_6M BIT4 -#define RRSR_9M BIT5 -#define RRSR_12M BIT6 -#define RRSR_18M BIT7 -#define RRSR_24M BIT8 -#define RRSR_36M BIT9 -#define RRSR_48M BIT10 -#define RRSR_54M BIT11 -#define RRSR_MCS0 BIT12 -#define RRSR_MCS1 BIT13 -#define RRSR_MCS2 BIT14 -#define RRSR_MCS3 BIT15 -#define RRSR_MCS4 BIT16 -#define RRSR_MCS5 BIT17 -#define RRSR_MCS6 BIT18 -#define RRSR_MCS7 BIT19 +#define RRSR_1M BIT(0) +#define RRSR_2M BIT(1) +#define RRSR_5_5M BIT(2) +#define RRSR_11M BIT(3) +#define RRSR_6M BIT(4) +#define RRSR_9M BIT(5) +#define RRSR_12M BIT(6) +#define RRSR_18M BIT(7) +#define RRSR_24M BIT(8) +#define RRSR_36M BIT(9) +#define RRSR_48M BIT(10) +#define RRSR_54M BIT(11) +#define RRSR_MCS0 BIT(12) +#define RRSR_MCS1 BIT(13) +#define RRSR_MCS2 BIT(14) +#define RRSR_MCS3 BIT(15) +#define RRSR_MCS4 BIT(16) +#define RRSR_MCS5 BIT(17) +#define RRSR_MCS6 BIT(18) +#define RRSR_MCS7 BIT(19) /* 8192C Response Rate Set Register (offset 0x1BF, 8bits) */ /* WOL bit information */ -#define HAL92C_WOL_PTK_UPDATE_EVENT BIT0 -#define HAL92C_WOL_GTK_UPDATE_EVENT BIT1 +#define HAL92C_WOL_PTK_UPDATE_EVENT BIT(0) +#define HAL92C_WOL_GTK_UPDATE_EVENT BIT(1) /* 8192C BW_OPMODE bits (Offset 0x203, 8bit) */ -#define BW_OPMODE_20MHZ BIT2 -#define BW_OPMODE_5G BIT1 +#define BW_OPMODE_20MHZ BIT(2) +#define BW_OPMODE_5G BIT(1) /* 8192C CAM Config Setting (offset 0x250, 1 byte) */ -#define CAM_VALID BIT15 +#define CAM_VALID BIT(15) #define CAM_NOTVALID 0x0000 -#define CAM_USEDK BIT5 +#define CAM_USEDK BIT(5) #define CAM_CONTENT_COUNT 8 @@ -594,69 +561,69 @@ Default: 00b. #define CAM_CONFIG_USEDK true #define CAM_CONFIG_NO_USEDK false -#define CAM_WRITE BIT16 +#define CAM_WRITE BIT(16) #define CAM_READ 0x00000000 -#define CAM_POLLINIG BIT31 +#define CAM_POLLINIG BIT(31) #define SCR_UseDK 0x01 #define SCR_TxSecEnable 0x02 #define SCR_RxSecEnable 0x04 /* 10. Power Save Control Registers (Offset: 0x0260 - 0x02DF) */ -#define WOW_PMEN BIT0 /* Power management Enable. */ -#define WOW_WOMEN BIT1 /* WoW function on or off. */ -#define WOW_MAGIC BIT2 /* Magic packet */ -#define WOW_UWF BIT3 /* Unicast Wakeup frame. */ +#define WOW_PMEN BIT(0) /* Power management Enable. */ +#define WOW_WOMEN BIT(1) /* WoW function on or off. */ +#define WOW_MAGIC BIT(2) /* Magic packet */ +#define WOW_UWF BIT(3) /* Unicast Wakeup frame. */ /* 12. Host Interrupt Status Registers (Offset: 0x0300 - 0x030F) */ /* 8188 IMR/ISR bits */ #define IMR_DISABLED_88E 0x0 /* IMR DW0(0x0060-0063) Bit 0-31 */ -#define IMR_TXCCK_88E BIT30 /* TXRPT interrupt when CCX bit of the packet is set */ -#define IMR_PSTIMEOUT_88E BIT29 /* Power Save Time Out Interrupt */ -#define IMR_GTINT4_88E BIT28 /* When GTIMER4 expires, this bit is set to 1 */ -#define IMR_GTINT3_88E BIT27 /* When GTIMER3 expires, this bit is set to 1 */ -#define IMR_TBDER_88E BIT26 /* Transmit Beacon0 Error */ -#define IMR_TBDOK_88E BIT25 /* Transmit Beacon0 OK */ -#define IMR_TSF_BIT32_TOGGLE_88E BIT24 /* TSF Timer BIT32 toggle indication interrupt */ -#define IMR_BCNDMAINT0_88E BIT20 /* Beacon DMA Interrupt 0 */ -#define IMR_BCNDERR0_88E BIT16 /* Beacon Queue DMA Error 0 */ -#define IMR_HSISR_IND_ON_INT_88E BIT15 /* HSISR Indicator (HSIMR & HSISR is true, this bit is set to 1) */ -#define IMR_BCNDMAINT_E_88E BIT14 /* Beacon DMA Interrupt Extension for Win7 */ -#define IMR_ATIMEND_88E BIT12 /* CTWidnow End or ATIM Window End */ -#define IMR_HISR1_IND_INT_88E BIT11 /* HISR1 Indicator (HISR1 & HIMR1 is true, this bit is set to 1) */ -#define IMR_C2HCMD_88E BIT10 /* CPU to Host Command INT Status, Write 1 clear */ -#define IMR_CPWM2_88E BIT9 /* CPU power Mode exchange INT Status, Write 1 clear */ -#define IMR_CPWM_88E BIT8 /* CPU power Mode exchange INT Status, Write 1 clear */ -#define IMR_HIGHDOK_88E BIT7 /* High Queue DMA OK */ -#define IMR_MGNTDOK_88E BIT6 /* Management Queue DMA OK */ -#define IMR_BKDOK_88E BIT5 /* AC_BK DMA OK */ -#define IMR_BEDOK_88E BIT4 /* AC_BE DMA OK */ -#define IMR_VIDOK_88E BIT3 /* AC_VI DMA OK */ -#define IMR_VODOK_88E BIT2 /* AC_VO DMA OK */ -#define IMR_RDU_88E BIT1 /* Rx Descriptor Unavailable */ -#define IMR_ROK_88E BIT0 /* Receive DMA OK */ +#define IMR_TXCCK_88E BIT(30) /* TXRPT interrupt when CCX bit of the packet is set */ +#define IMR_PSTIMEOUT_88E BIT(29) /* Power Save Time Out Interrupt */ +#define IMR_GTINT4_88E BIT(28) /* When GTIMER4 expires, this bit is set to 1 */ +#define IMR_GTINT3_88E BIT(27) /* When GTIMER3 expires, this bit is set to 1 */ +#define IMR_TBDER_88E BIT(26) /* Transmit Beacon0 Error */ +#define IMR_TBDOK_88E BIT(25) /* Transmit Beacon0 OK */ +#define IMR_TSF_BIT32_TOGGLE_88E BIT(24) /* TSF Timer BIT32 toggle indication interrupt */ +#define IMR_BCNDMAINT0_88E BIT(20) /* Beacon DMA Interrupt 0 */ +#define IMR_BCNDERR0_88E BIT(16) /* Beacon Queue DMA Error 0 */ +#define IMR_HSISR_IND_ON_INT_88E BIT(15) /* HSISR Indicator (HSIMR & HSISR is true, this bit is set to 1) */ +#define IMR_BCNDMAINT_E_88E BIT(14) /* Beacon DMA Interrupt Extension for Win7 */ +#define IMR_ATIMEND_88E BIT(12) /* CTWidnow End or ATIM Window End */ +#define IMR_HISR1_IND_INT_88E BIT(11) /* HISR1 Indicator (HISR1 & HIMR1 is true, this bit is set to 1) */ +#define IMR_C2HCMD_88E BIT(10) /* CPU to Host Command INT Status, Write 1 clear */ +#define IMR_CPWM2_88E BIT(9) /* CPU power Mode exchange INT Status, Write 1 clear */ +#define IMR_CPWM_88E BIT(8) /* CPU power Mode exchange INT Status, Write 1 clear */ +#define IMR_HIGHDOK_88E BIT(7) /* High Queue DMA OK */ +#define IMR_MGNTDOK_88E BIT(6) /* Management Queue DMA OK */ +#define IMR_BKDOK_88E BIT(5) /* AC_BK DMA OK */ +#define IMR_BEDOK_88E BIT(4) /* AC_BE DMA OK */ +#define IMR_VIDOK_88E BIT(3) /* AC_VI DMA OK */ +#define IMR_VODOK_88E BIT(2) /* AC_VO DMA OK */ +#define IMR_RDU_88E BIT(1) /* Rx Descriptor Unavailable */ +#define IMR_ROK_88E BIT(0) /* Receive DMA OK */ /* IMR DW1(0x00B4-00B7) Bit 0-31 */ -#define IMR_BCNDMAINT7_88E BIT27 /* Beacon DMA Interrupt 7 */ -#define IMR_BCNDMAINT6_88E BIT26 /* Beacon DMA Interrupt 6 */ -#define IMR_BCNDMAINT5_88E BIT25 /* Beacon DMA Interrupt 5 */ -#define IMR_BCNDMAINT4_88E BIT24 /* Beacon DMA Interrupt 4 */ -#define IMR_BCNDMAINT3_88E BIT23 /* Beacon DMA Interrupt 3 */ -#define IMR_BCNDMAINT2_88E BIT22 /* Beacon DMA Interrupt 2 */ -#define IMR_BCNDMAINT1_88E BIT21 /* Beacon DMA Interrupt 1 */ -#define IMR_BCNDERR7_88E BIT20 /* Beacon DMA Error Int 7 */ -#define IMR_BCNDERR6_88E BIT19 /* Beacon DMA Error Int 6 */ -#define IMR_BCNDERR5_88E BIT18 /* Beacon DMA Error Int 5 */ -#define IMR_BCNDERR4_88E BIT17 /* Beacon DMA Error Int 4 */ -#define IMR_BCNDERR3_88E BIT16 /* Beacon DMA Error Int 3 */ -#define IMR_BCNDERR2_88E BIT15 /* Beacon DMA Error Int 2 */ -#define IMR_BCNDERR1_88E BIT14 /* Beacon DMA Error Int 1 */ -#define IMR_ATIMEND_E_88E BIT13 /* ATIM Window End Ext for Win7 */ -#define IMR_TXERR_88E BIT11 /* Tx Err Flag Int Status, write 1 clear. */ -#define IMR_RXERR_88E BIT10 /* Rx Err Flag INT Status, Write 1 clear */ -#define IMR_TXFOVW_88E BIT9 /* Transmit FIFO Overflow */ -#define IMR_RXFOVW_88E BIT8 /* Receive FIFO Overflow */ +#define IMR_BCNDMAINT7_88E BIT(27) /* Beacon DMA Interrupt 7 */ +#define IMR_BCNDMAINT6_88E BIT(26) /* Beacon DMA Interrupt 6 */ +#define IMR_BCNDMAINT5_88E BIT(25) /* Beacon DMA Interrupt 5 */ +#define IMR_BCNDMAINT4_88E BIT(24) /* Beacon DMA Interrupt 4 */ +#define IMR_BCNDMAINT3_88E BIT(23) /* Beacon DMA Interrupt 3 */ +#define IMR_BCNDMAINT2_88E BIT(22) /* Beacon DMA Interrupt 2 */ +#define IMR_BCNDMAINT1_88E BIT(21) /* Beacon DMA Interrupt 1 */ +#define IMR_BCNDERR7_88E BIT(20) /* Beacon DMA Error Int 7 */ +#define IMR_BCNDERR6_88E BIT(19) /* Beacon DMA Error Int 6 */ +#define IMR_BCNDERR5_88E BIT(18) /* Beacon DMA Error Int 5 */ +#define IMR_BCNDERR4_88E BIT(17) /* Beacon DMA Error Int 4 */ +#define IMR_BCNDERR3_88E BIT(16) /* Beacon DMA Error Int 3 */ +#define IMR_BCNDERR2_88E BIT(15) /* Beacon DMA Error Int 2 */ +#define IMR_BCNDERR1_88E BIT(14) /* Beacon DMA Error Int 1 */ +#define IMR_ATIMEND_E_88E BIT(13) /* ATIM Window End Ext for Win7 */ +#define IMR_TXERR_88E BIT(11) /* Tx Err Flag Int Status, write 1 clear. */ +#define IMR_RXERR_88E BIT(10) /* Rx Err Flag INT Status, Write 1 clear */ +#define IMR_TXFOVW_88E BIT(9) /* Transmit FIFO Overflow */ +#define IMR_RXFOVW_88E BIT(8) /* Receive FIFO Overflow */ #define HAL_NIC_UNPLUG_ISR 0xFFFFFFFF /* The value when the NIC is unplugged for PCI. */ @@ -692,40 +659,40 @@ Current IOREG MAP /* the correct arragement is VO - Bit0, VI - Bit1, BE - Bit2, * and BK - Bit3. */ /* 8723 and 88E may be not correct either in the earlier version. */ -#define StopBecon BIT6 -#define StopHigh BIT5 -#define StopMgt BIT4 -#define StopBK BIT3 -#define StopBE BIT2 -#define StopVI BIT1 -#define StopVO BIT0 +#define StopBecon BIT(6) +#define StopHigh BIT(5) +#define StopMgt BIT(4) +#define StopBK BIT(3) +#define StopBE BIT(2) +#define StopVI BIT(1) +#define StopVO BIT(0) /* 8192C (RCR) Receive Configuration Register(Offset 0x608, 32 bits) */ -#define RCR_APPFCS BIT31 /* WMAC append FCS after payload */ -#define RCR_APP_MIC BIT30 -#define RCR_APP_PHYSTS BIT28 -#define RCR_APP_ICV BIT29 -#define RCR_APP_PHYST_RXFF BIT28 -#define RCR_APP_BA_SSN BIT27 /* Accept BA SSN */ -#define RCR_ENMBID BIT24 /* Enable Multiple BssId. */ -#define RCR_LSIGEN BIT23 -#define RCR_MFBEN BIT22 -#define RCR_HTC_LOC_CTRL BIT14 /* MFC<--HTC=1 MFC-->HTC=0 */ -#define RCR_AMF BIT13 /* Accept management type frame */ -#define RCR_ACF BIT12 /* Accept control type frame */ -#define RCR_ADF BIT11 /* Accept data type frame */ -#define RCR_AICV BIT9 /* Accept ICV error packet */ -#define RCR_ACRC32 BIT8 /* Accept CRC32 error packet */ -#define RCR_CBSSID_BCN BIT7 /* Accept BSSID match packet +#define RCR_APPFCS BIT(31) /* WMAC append FCS after payload */ +#define RCR_APP_MIC BIT(30) +#define RCR_APP_PHYSTS BIT(28) +#define RCR_APP_ICV BIT(29) +#define RCR_APP_PHYST_RXFF BIT(28) +#define RCR_APP_BA_SSN BIT(27) /* Accept BA SSN */ +#define RCR_ENMBID BIT(24) /* Enable Multiple BssId. */ +#define RCR_LSIGEN BIT(23) +#define RCR_MFBEN BIT(22) +#define RCR_HTC_LOC_CTRL BIT(14) /* MFC<--HTC=1 MFC-->HTC=0 */ +#define RCR_AMF BIT(13) /* Accept management type frame */ +#define RCR_ACF BIT(12) /* Accept control type frame */ +#define RCR_ADF BIT(11) /* Accept data type frame */ +#define RCR_AICV BIT(9) /* Accept ICV error packet */ +#define RCR_ACRC32 BIT(8) /* Accept CRC32 error packet */ +#define RCR_CBSSID_BCN BIT(7) /* Accept BSSID match packet * (Rx beacon, probe rsp) */ -#define RCR_CBSSID_DATA BIT6 /* Accept BSSID match (Data)*/ +#define RCR_CBSSID_DATA BIT(6) /* Accept BSSID match (Data)*/ #define RCR_CBSSID RCR_CBSSID_DATA /* Accept BSSID match */ -#define RCR_APWRMGT BIT5 /* Accept power management pkt*/ -#define RCR_ADD3 BIT4 /* Accept address 3 match pkt */ -#define RCR_AB BIT3 /* Accept broadcast packet */ -#define RCR_AM BIT2 /* Accept multicast packet */ -#define RCR_APM BIT1 /* Accept physical match pkt */ -#define RCR_AAP BIT0 /* Accept all unicast packet */ +#define RCR_APWRMGT BIT(5) /* Accept power management pkt*/ +#define RCR_ADD3 BIT(4) /* Accept address 3 match pkt */ +#define RCR_AB BIT(3) /* Accept broadcast packet */ +#define RCR_AM BIT(2) /* Accept multicast packet */ +#define RCR_APM BIT(1) /* Accept physical match pkt */ +#define RCR_AAP BIT(0) /* Accept all unicast packet */ #define RCR_MXDMA_OFFSET 8 #define RCR_FIFO_OFFSET 13 @@ -1193,56 +1160,56 @@ Current IOREG MAP #define SDIO_HIMR_DISABLED 0 /* RTL8188E SDIO Host Interrupt Mask Register */ -#define SDIO_HIMR_RX_REQUEST_MSK BIT0 -#define SDIO_HIMR_AVAL_MSK BIT1 -#define SDIO_HIMR_TXERR_MSK BIT2 -#define SDIO_HIMR_RXERR_MSK BIT3 -#define SDIO_HIMR_TXFOVW_MSK BIT4 -#define SDIO_HIMR_RXFOVW_MSK BIT5 -#define SDIO_HIMR_TXBCNOK_MSK BIT6 -#define SDIO_HIMR_TXBCNERR_MSK BIT7 -#define SDIO_HIMR_BCNERLY_INT_MSK BIT16 -#define SDIO_HIMR_C2HCMD_MSK BIT17 -#define SDIO_HIMR_CPWM1_MSK BIT18 -#define SDIO_HIMR_CPWM2_MSK BIT19 -#define SDIO_HIMR_HSISR_IND_MSK BIT20 -#define SDIO_HIMR_GTINT3_IND_MSK BIT21 -#define SDIO_HIMR_GTINT4_IND_MSK BIT22 -#define SDIO_HIMR_PSTIMEOUT_MSK BIT23 -#define SDIO_HIMR_OCPINT_MSK BIT24 -#define SDIO_HIMR_ATIMEND_MSK BIT25 -#define SDIO_HIMR_ATIMEND_E_MSK BIT26 -#define SDIO_HIMR_CTWEND_MSK BIT27 +#define SDIO_HIMR_RX_REQUEST_MSK BIT(0) +#define SDIO_HIMR_AVAL_MSK BIT(1) +#define SDIO_HIMR_TXERR_MSK BIT(2) +#define SDIO_HIMR_RXERR_MSK BIT(3) +#define SDIO_HIMR_TXFOVW_MSK BIT(4) +#define SDIO_HIMR_RXFOVW_MSK BIT(5) +#define SDIO_HIMR_TXBCNOK_MSK BIT(6) +#define SDIO_HIMR_TXBCNERR_MSK BIT(7) +#define SDIO_HIMR_BCNERLY_INT_MSK BIT(16) +#define SDIO_HIMR_C2HCMD_MSK BIT(17) +#define SDIO_HIMR_CPWM1_MSK BIT(18) +#define SDIO_HIMR_CPWM2_MSK BIT(19) +#define SDIO_HIMR_HSISR_IND_MSK BIT(20) +#define SDIO_HIMR_GTINT3_IND_MSK BIT(21) +#define SDIO_HIMR_GTINT4_IND_MSK BIT(22) +#define SDIO_HIMR_PSTIMEOUT_MSK BIT(23) +#define SDIO_HIMR_OCPINT_MSK BIT(24) +#define SDIO_HIMR_ATIMEND_MSK BIT(25) +#define SDIO_HIMR_ATIMEND_E_MSK BIT(26) +#define SDIO_HIMR_CTWEND_MSK BIT(27) /* RTL8188E SDIO Specific */ -#define SDIO_HIMR_MCU_ERR_MSK BIT28 -#define SDIO_HIMR_TSF_BIT32_TOGGLE_MSK BIT29 +#define SDIO_HIMR_MCU_ERR_MSK BIT(28) +#define SDIO_HIMR_TSF_BIT32_TOGGLE_MSK BIT(29) /* SDIO Host Interrupt Service Routine */ -#define SDIO_HISR_RX_REQUEST BIT0 -#define SDIO_HISR_AVAL BIT1 -#define SDIO_HISR_TXERR BIT2 -#define SDIO_HISR_RXERR BIT3 -#define SDIO_HISR_TXFOVW BIT4 -#define SDIO_HISR_RXFOVW BIT5 -#define SDIO_HISR_TXBCNOK BIT6 -#define SDIO_HISR_TXBCNERR BIT7 -#define SDIO_HISR_BCNERLY_INT BIT16 -#define SDIO_HISR_C2HCMD BIT17 -#define SDIO_HISR_CPWM1 BIT18 -#define SDIO_HISR_CPWM2 BIT19 -#define SDIO_HISR_HSISR_IND BIT20 -#define SDIO_HISR_GTINT3_IND BIT21 -#define SDIO_HISR_GTINT4_IND BIT22 -#define SDIO_HISR_PSTIME BIT23 -#define SDIO_HISR_OCPINT BIT24 -#define SDIO_HISR_ATIMEND BIT25 -#define SDIO_HISR_ATIMEND_E BIT26 -#define SDIO_HISR_CTWEND BIT27 +#define SDIO_HISR_RX_REQUEST BIT(0) +#define SDIO_HISR_AVAL BIT(1) +#define SDIO_HISR_TXERR BIT(2) +#define SDIO_HISR_RXERR BIT(3) +#define SDIO_HISR_TXFOVW BIT(4) +#define SDIO_HISR_RXFOVW BIT(5) +#define SDIO_HISR_TXBCNOK BIT(6) +#define SDIO_HISR_TXBCNERR BIT(7) +#define SDIO_HISR_BCNERLY_INT BIT(16) +#define SDIO_HISR_C2HCMD BIT(17) +#define SDIO_HISR_CPWM1 BIT(18) +#define SDIO_HISR_CPWM2 BIT(19) +#define SDIO_HISR_HSISR_IND BIT(20) +#define SDIO_HISR_GTINT3_IND BIT(21) +#define SDIO_HISR_GTINT4_IND BIT(22) +#define SDIO_HISR_PSTIME BIT(23) +#define SDIO_HISR_OCPINT BIT(24) +#define SDIO_HISR_ATIMEND BIT(25) +#define SDIO_HISR_ATIMEND_E BIT(26) +#define SDIO_HISR_CTWEND BIT(27) /* RTL8188E SDIO Specific */ -#define SDIO_HISR_MCU_ERR BIT28 -#define SDIO_HISR_TSF_BIT32_TOGGLE BIT29 +#define SDIO_HISR_MCU_ERR BIT(28) +#define SDIO_HISR_TSF_BIT32_TOGGLE BIT(29) #define MASK_SDIO_HISR_CLEAR \ (SDIO_HISR_TXERR | SDIO_HISR_RXERR | SDIO_HISR_TXFOVW |\ @@ -1252,8 +1219,8 @@ Current IOREG MAP SDIO_HISR_PSTIMEOUT | SDIO_HISR_OCPINT) /* SDIO HCI Suspend Control Register */ -#define HCI_RESUME_PWR_RDY BIT1 -#define HCI_SUS_CTRL BIT0 +#define HCI_RESUME_PWR_RDY BIT(1) +#define HCI_SUS_CTRL BIT(0) /* SDIO Tx FIFO related */ /* The number of Tx FIFO free page */ @@ -1287,33 +1254,33 @@ Current IOREG MAP /* 2REG_MULTI_FUNC_CTRL(For RTL8723 Only) */ /* Enable GPIO[9] as WiFi HW PDn source */ -#define WL_HWPDN_EN BIT0 +#define WL_HWPDN_EN BIT(0) /* WiFi HW PDn polarity control */ -#define WL_HWPDN_SL BIT1 +#define WL_HWPDN_SL BIT(1) /* WiFi function enable */ -#define WL_FUNC_EN BIT2 +#define WL_FUNC_EN BIT(2) /* Enable GPIO[9] as WiFi RF HW PDn source */ -#define WL_HWROF_EN BIT3 +#define WL_HWROF_EN BIT(3) /* Enable GPIO[11] as BT HW PDn source */ -#define BT_HWPDN_EN BIT16 +#define BT_HWPDN_EN BIT(16) /* BT HW PDn polarity control */ -#define BT_HWPDN_SL BIT17 +#define BT_HWPDN_SL BIT(17) /* BT function enable */ -#define BT_FUNC_EN BIT18 +#define BT_FUNC_EN BIT(18) /* Enable GPIO[11] as BT/GPS RF HW PDn source */ -#define BT_HWROF_EN BIT19 +#define BT_HWROF_EN BIT(19) /* Enable GPIO[10] as GPS HW PDn source */ -#define GPS_HWPDN_EN BIT20 +#define GPS_HWPDN_EN BIT(20) /* GPS HW PDn polarity control */ -#define GPS_HWPDN_SL BIT21 +#define GPS_HWPDN_SL BIT(21) /* GPS function enable */ -#define GPS_FUNC_EN BIT22 +#define GPS_FUNC_EN BIT(22) /* 3 REG_LIFECTRL_CTRL */ -#define HAL92C_EN_PKT_LIFE_TIME_BK BIT3 -#define HAL92C_EN_PKT_LIFE_TIME_BE BIT2 -#define HAL92C_EN_PKT_LIFE_TIME_VI BIT1 -#define HAL92C_EN_PKT_LIFE_TIME_VO BIT0 +#define HAL92C_EN_PKT_LIFE_TIME_BK BIT(3) +#define HAL92C_EN_PKT_LIFE_TIME_BE BIT(2) +#define HAL92C_EN_PKT_LIFE_TIME_VI BIT(1) +#define HAL92C_EN_PKT_LIFE_TIME_VO BIT(0) #define HAL92C_MSDU_LIFE_TIME_UNIT 128 /* in us */ @@ -1323,7 +1290,7 @@ Current IOREG MAP #define POLLING_LLT_THRESHOLD 20 #define POLLING_READY_TIMEOUT_COUNT 1000 /* GPIO BIT */ -#define HAL_8192C_HW_GPIO_WPS_BIT BIT2 +#define HAL_8192C_HW_GPIO_WPS_BIT BIT(2) /* 8192C EEPROM/EFUSE share register definition. */ diff --git a/drivers/staging/rtl8188eu/include/rtw_sreset.h b/drivers/staging/rtl8188eu/include/rtw_sreset.h index 580e850511a7..3a62ed010875 100644 --- a/drivers/staging/rtl8188eu/include/rtw_sreset.h +++ b/drivers/staging/rtl8188eu/include/rtw_sreset.h @@ -30,13 +30,13 @@ struct sreset_priv { #include #define WIFI_STATUS_SUCCESS 0 -#define USB_VEN_REQ_CMD_FAIL BIT0 -#define USB_READ_PORT_FAIL BIT1 -#define USB_WRITE_PORT_FAIL BIT2 -#define WIFI_MAC_TXDMA_ERROR BIT3 -#define WIFI_TX_HANG BIT4 -#define WIFI_RX_HANG BIT5 -#define WIFI_IF_NOT_EXIST BIT6 +#define USB_VEN_REQ_CMD_FAIL BIT(0) +#define USB_READ_PORT_FAIL BIT(1) +#define USB_WRITE_PORT_FAIL BIT(2) +#define WIFI_MAC_TXDMA_ERROR BIT(3) +#define WIFI_TX_HANG BIT(4) +#define WIFI_RX_HANG BIT(5) +#define WIFI_IF_NOT_EXIST BIT(6) void sreset_init_value(struct adapter *padapter); u8 sreset_get_wifi_status(struct adapter *padapter); From 7346489110da94ed5792a8f1ef3116e0bd1961f6 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Wed, 21 Oct 2015 18:29:59 +0100 Subject: [PATCH 2152/2431] staging: rtl8188eu: fix misleading indentation Code is correct, i needs to be moved back by 2 to correct for the last iteration of the while loop, since READ_NEXT_PAIR advances two. Fixing the misleading indentation. Fix a smatch warning: drivers/staging/rtl8188eu/hal/rf_cfg.c:217 rtl88e_phy_config_rf_with_headerfile() warn: curly braces intended? Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8188eu/hal/rf_cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8188eu/hal/rf_cfg.c b/drivers/staging/rtl8188eu/hal/rf_cfg.c index 067649a7fbec..a3f1abaf60d9 100644 --- a/drivers/staging/rtl8188eu/hal/rf_cfg.c +++ b/drivers/staging/rtl8188eu/hal/rf_cfg.c @@ -214,7 +214,7 @@ static bool rtl88e_phy_config_rf_with_headerfile(struct adapter *adapt) while (v2 != 0xDEAD && v2 != 0xCDEF && v2 != 0xCDCD && i < array_len - 2) READ_NEXT_PAIR(v1, v2, i); - i -= 2; + i -= 2; } else { READ_NEXT_PAIR(v1, v2, i); while (v2 != 0xDEAD && v2 != 0xCDEF && From cf31378ba705945fb7b7d6e6c96e47a8a6ce4503 Mon Sep 17 00:00:00 2001 From: Muhammad Falak R Wani Date: Mon, 19 Oct 2015 22:37:51 +0530 Subject: [PATCH 2153/2431] staging: ion: Remove explicit NULL comparison Rewrite explicit NULL comparison in its simpler form. @NULL_REPLACE@ expression e; @@ -e == NULL + !e Signed-off-by: Muhammad Falak R Wani Signed-off-by: Greg Kroah-Hartman --- drivers/staging/android/ion/ion_heap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/android/ion/ion_heap.c b/drivers/staging/android/ion/ion_heap.c index e97a2c32ed78..ca15a87f6fd3 100644 --- a/drivers/staging/android/ion/ion_heap.c +++ b/drivers/staging/android/ion/ion_heap.c @@ -56,7 +56,7 @@ void *ion_heap_map_kernel(struct ion_heap *heap, vaddr = vmap(pages, npages, VM_MAP, pgprot); vfree(pages); - if (vaddr == NULL) + if (!vaddr) return ERR_PTR(-ENOMEM); return vaddr; From 1ca96884b12dd2d57e0339d9f4a29e4888edc0e2 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Mon, 19 Oct 2015 18:14:29 +0100 Subject: [PATCH 2154/2431] staging: rtl8712: Remove boolean comparisons Boolean tests do not need explicit comparison to true or false. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/os_intfs.c | 4 +- drivers/staging/rtl8712/rtl8712_cmd.c | 9 +- drivers/staging/rtl8712/rtl8712_efuse.c | 56 +++--- drivers/staging/rtl8712/rtl8712_io.c | 6 +- drivers/staging/rtl8712/rtl8712_led.c | 164 +++++++++--------- drivers/staging/rtl8712/rtl8712_recv.c | 25 ++- drivers/staging/rtl8712/rtl8712_xmit.c | 4 +- drivers/staging/rtl8712/rtl871x_cmd.c | 8 +- drivers/staging/rtl8712/rtl871x_eeprom.c | 22 +-- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 56 +++--- drivers/staging/rtl8712/rtl871x_ioctl_rtl.c | 12 +- drivers/staging/rtl8712/rtl871x_ioctl_set.c | 26 +-- drivers/staging/rtl8712/rtl871x_mlme.c | 77 ++++---- drivers/staging/rtl8712/rtl871x_mlme.h | 2 +- drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 16 +- drivers/staging/rtl8712/rtl871x_pwrctrl.c | 6 +- drivers/staging/rtl8712/rtl871x_recv.c | 39 ++--- drivers/staging/rtl8712/rtl871x_security.c | 4 +- drivers/staging/rtl8712/rtl871x_sta_mgt.c | 6 +- drivers/staging/rtl8712/rtl871x_xmit.c | 38 ++-- drivers/staging/rtl8712/usb_intf.c | 4 +- drivers/staging/rtl8712/usb_ops_linux.c | 10 +- drivers/staging/rtl8712/xmit_linux.c | 4 +- 23 files changed, 291 insertions(+), 307 deletions(-) diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 6805f79ae00a..92ab59dcb5ec 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -177,7 +177,7 @@ static int r871x_net_set_mac_address(struct net_device *pnetdev, void *p) struct _adapter *padapter = netdev_priv(pnetdev); struct sockaddr *addr = p; - if (padapter->bup == false) + if (!padapter->bup) ether_addr_copy(pnetdev->dev_addr, addr->sa_data); return 0; } @@ -384,7 +384,7 @@ static int netdev_open(struct net_device *pnetdev) struct _adapter *padapter = netdev_priv(pnetdev); mutex_lock(&padapter->mutex_start); - if (padapter->bup == false) { + if (!padapter->bup) { padapter->bDriverStopped = false; padapter->bSurpriseRemoved = false; padapter->bup = true; diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index f70235c8683d..39b63207fa52 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -85,7 +85,7 @@ static void query_fw_rx_phy_status(struct _adapter *padapter) u32 val32 = 0; int pollingcnts = 50; - if (check_fwstate(&padapter->mlmepriv, _FW_LINKED) == true) { + if (check_fwstate(&padapter->mlmepriv, _FW_LINKED)) { r8712_write32(padapter, IOCMD_CTRL_REG, 0xf4000001); msleep(100); /* Wait FW complete IO Cmd */ @@ -324,8 +324,7 @@ int r8712_cmd_thread(void *context) while (1) { if ((_down_sema(&(pcmdpriv->cmd_queue_sema))) == _FAIL) break; - if ((padapter->bDriverStopped == true) || - (padapter->bSurpriseRemoved == true)) + if (padapter->bDriverStopped || padapter->bSurpriseRemoved) break; if (r8712_register_cmd_alive(padapter) != _SUCCESS) continue; @@ -375,8 +374,8 @@ _next: pcmdbuf += 2; /* 8 bytes alignment */ memcpy((u8 *)pcmdbuf, pcmd->parmbuf, pcmd->cmdsz); while (check_cmd_fifo(padapter, wr_sz) == _FAIL) { - if ((padapter->bDriverStopped == true) || - (padapter->bSurpriseRemoved == true)) + if (padapter->bDriverStopped || + padapter->bSurpriseRemoved) break; msleep(100); continue; diff --git a/drivers/staging/rtl8712/rtl8712_efuse.c b/drivers/staging/rtl8712/rtl8712_efuse.c index d95716999498..13d4b8dcf073 100644 --- a/drivers/staging/rtl8712/rtl8712_efuse.c +++ b/drivers/staging/rtl8712/rtl8712_efuse.c @@ -39,7 +39,7 @@ static void efuse_reg_ctrl(struct _adapter *padapter, u8 bPowerOn) { u8 tmpu8 = 0; - if (true == bPowerOn) { + if (bPowerOn) { /* -----------------e-fuse pwr & clk reg ctrl --------------- * Enable LDOE25 Macro Block */ @@ -127,7 +127,7 @@ static u8 efuse_one_byte_rw(struct _adapter *padapter, u8 bRead, u16 addr, tmpv8 = ((u8)((addr >> 8) & 0x03)) | (r8712_read8(padapter, EFUSE_CTRL + 2) & 0xFC); r8712_write8(padapter, EFUSE_CTRL+2, tmpv8); - if (true == bRead) { + if (bRead) { r8712_write8(padapter, EFUSE_CTRL+3, 0x72); /* read cmd */ while (!(0x80 & r8712_read8(padapter, EFUSE_CTRL+3)) && (tmpidx < 100)) @@ -158,7 +158,7 @@ static u8 efuse_is_empty(struct _adapter *padapter, u8 *empty) u8 value, ret = true; /* read one byte to check if E-Fuse is empty */ - if (efuse_one_byte_rw(padapter, true, 0, &value) == true) { + if (efuse_one_byte_rw(padapter, true, 0, &value)) { if (0xFF == value) *empty = true; else @@ -250,8 +250,7 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) return false; memset(data, 0xFF, sizeof(u8)*PGPKT_DATA_SIZE); while (efuse_addr < efuse_available_max_size) { - if (efuse_one_byte_read(padapter, efuse_addr, &efuse_data) == - true) { + if (efuse_one_byte_read(padapter, efuse_addr, &efuse_data)) { if (efuse_data == 0xFF) break; hoffset = (efuse_data >> 4) & 0x0F; @@ -262,8 +261,7 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) for (tmpidx = 0; tmpidx < word_cnts * 2; tmpidx++) { if (efuse_one_byte_read(padapter, - efuse_addr+1+tmpidx, &efuse_data) == - true) { + efuse_addr+1+tmpidx, &efuse_data)) { tmpdata[tmpidx] = efuse_data; } else ret = false; @@ -295,7 +293,7 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) /* retrieve original data */ addr = 0; while (addr < header_addr) { - if (efuse_one_byte_read(padapter, addr++, &value) == false) { + if (!efuse_one_byte_read(padapter, addr++, &value)) { ret = false; break; } @@ -310,14 +308,14 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) if (BIT(i) & pkt.word_en) { if (efuse_one_byte_read( padapter, addr, - &value) == true) + &value)) pkt.data[i*2] = value; else return false; if (efuse_one_byte_read( padapter, addr + 1, - &value) == true) + &value)) pkt.data[i*2 + 1] = value; else @@ -337,8 +335,7 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) efuse_one_byte_write(padapter, addr+1, pkt.data[i*2 + 1]); /* additional check */ - if (efuse_one_byte_read(padapter, addr, &value) - == false) + if (!efuse_one_byte_read(padapter, addr, &value)) ret = false; else if (pkt.data[i*2] != value) { ret = false; @@ -346,8 +343,7 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) efuse_one_byte_write(padapter, addr, pkt.data[i * 2]); } - if (efuse_one_byte_read(padapter, addr+1, &value) == - false) + if (!efuse_one_byte_read(padapter, addr+1, &value)) ret = false; else if (pkt.data[i*2 + 1] != value) { ret = false; @@ -388,8 +384,8 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, efuse_one_byte_write(padapter, efuse_addr, pg_header); /*hdr*/ sub_repeat = 0; /* check if what we read is what we write */ - while (efuse_one_byte_read(padapter, efuse_addr, - &efuse_data) == false) { + while (!efuse_one_byte_read(padapter, efuse_addr, + &efuse_data)) { if (++sub_repeat > _REPEAT_THRESHOLD_) { bResult = false; /* continue to blind write */ break; /* continue to blind write */ @@ -406,8 +402,9 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, efuse_one_byte_write(padapter, efuse_addr + i, *(data + i)); - if (efuse_one_byte_read(padapter, - efuse_addr + i, &efuse_data) == false) + if (!efuse_one_byte_read(padapter, + efuse_addr + i, + &efuse_data)) bResult = false; else if (*(data+i) != efuse_data) /* fail */ bResult = false; @@ -437,10 +434,10 @@ u8 r8712_efuse_access(struct _adapter *padapter, u8 bRead, u16 start_addr, if (start_addr > EFUSE_MAX_SIZE) return false; - if ((bRead == false) && ((start_addr + cnts) > + if (!bRead && ((start_addr + cnts) > efuse_available_max_size)) return false; - if ((false == bRead) && (r8712_efuse_reg_init(padapter) == false)) + if (!bRead && !r8712_efuse_reg_init(padapter)) return false; /* -----------------e-fuse one byte read / write ---------------------*/ for (i = 0; i < cnts; i++) { @@ -450,10 +447,10 @@ u8 r8712_efuse_access(struct _adapter *padapter, u8 bRead, u16 start_addr, } res = efuse_one_byte_rw(padapter, bRead, start_addr + i, data + i); - if ((false == bRead) && (false == res)) + if (!bRead && !res) break; } - if (false == bRead) + if (!bRead) r8712_efuse_reg_uninit(padapter); return res; } @@ -466,8 +463,7 @@ u8 r8712_efuse_map_read(struct _adapter *padapter, u16 addr, u16 cnts, u8 *data) if ((addr + cnts) > EFUSE_MAP_MAX_SIZE) return false; - if ((efuse_is_empty(padapter, &offset) == true) && (offset == - true)) { + if (efuse_is_empty(padapter, &offset) && offset) { for (i = 0; i < cnts; i++) data[i] = 0xFF; return ret; @@ -504,13 +500,13 @@ u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr, u16 cnts, empty = r8712_read8(padapter, EFUSE_CLK_CTRL); if (empty != 0x03) return false; - if (efuse_is_empty(padapter, &empty) == true) { - if (true == empty) + if (efuse_is_empty(padapter, &empty)) { + if (empty) memset(pktdata, 0xFF, PGPKT_DATA_SIZE); } else return false; offset = (addr >> 3) & 0xF; - if (empty == false) + if (!empty) if (!r8712_efuse_pg_packet_read(padapter, offset, pktdata)) return false; word_en = 0xF; @@ -554,13 +550,13 @@ u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr, u16 cnts, } if (word_en != 0xF) - if (r8712_efuse_pg_packet_write(padapter, offset, - word_en, newdata) == false) + if (!r8712_efuse_pg_packet_write(padapter, offset, + word_en, newdata)) return false; if (idx == cnts) break; offset++; - if (empty == false) + if (!empty) if (!r8712_efuse_pg_packet_read(padapter, offset, pktdata)) return false; diff --git a/drivers/staging/rtl8712/rtl8712_io.c b/drivers/staging/rtl8712/rtl8712_io.c index b9abe05e6078..4148d48ece62 100644 --- a/drivers/staging/rtl8712/rtl8712_io.c +++ b/drivers/staging/rtl8712/rtl8712_io.c @@ -102,8 +102,7 @@ void r8712_read_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) void (*_read_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem); - if ((adapter->bDriverStopped == true) || - (adapter->bSurpriseRemoved == true)) + if (adapter->bDriverStopped || adapter->bSurpriseRemoved) return; _read_mem = pintfhdl->io_ops._read_mem; _read_mem(pintfhdl, addr, cnt, pmem); @@ -127,8 +126,7 @@ void r8712_read_port(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) u32 (*_read_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem); - if ((adapter->bDriverStopped == true) || - (adapter->bSurpriseRemoved == true)) + if (adapter->bDriverStopped || adapter->bSurpriseRemoved) return; _read_port = pintfhdl->io_ops._read_port; _read_port(pintfhdl, addr, cnt, pmem); diff --git a/drivers/staging/rtl8712/rtl8712_led.c b/drivers/staging/rtl8712/rtl8712_led.c index ada8d5dafd49..48d744df47df 100644 --- a/drivers/staging/rtl8712/rtl8712_led.c +++ b/drivers/staging/rtl8712/rtl8712_led.c @@ -122,8 +122,7 @@ static void SwLedOn(struct _adapter *padapter, struct LED_871x *pLed) { u8 LedCfg; - if ((padapter->bSurpriseRemoved == true) || - (padapter->bDriverStopped == true)) + if (padapter->bSurpriseRemoved || padapter->bDriverStopped) return; LedCfg = r8712_read8(padapter, LEDCFG); switch (pLed->LedPin) { @@ -151,8 +150,7 @@ static void SwLedOff(struct _adapter *padapter, struct LED_871x *pLed) { u8 LedCfg; - if ((padapter->bSurpriseRemoved == true) || - (padapter->bDriverStopped == true)) + if (padapter->bSurpriseRemoved || padapter->bDriverStopped) return; LedCfg = r8712_read8(padapter, LEDCFG); switch (pLed->LedPin) { @@ -222,11 +220,11 @@ static void SwLedBlink(struct LED_871x *pLed) bStopBlinking = true; break; case LED_BLINK_StartToBlink: - if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) && + if (check_fwstate(pmlmepriv, _FW_LINKED) && (pmlmepriv->fw_state & WIFI_STATION_STATE)) bStopBlinking = true; - if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) && - ((pmlmepriv->fw_state & WIFI_ADHOC_STATE) || + if (check_fwstate(pmlmepriv, _FW_LINKED) && + ((pmlmepriv->fw_state & WIFI_ADHOC_STATE) || (pmlmepriv->fw_state & WIFI_ADHOC_MASTER_STATE))) bStopBlinking = true; else if (pLed->BlinkTimes == 0) @@ -241,11 +239,10 @@ static void SwLedBlink(struct LED_871x *pLed) break; } if (bStopBlinking) { - if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) && - (pLed->bLedOn == false)) + if (check_fwstate(pmlmepriv, _FW_LINKED) && + !pLed->bLedOn) SwLedOn(padapter, pLed); - else if ((check_fwstate(pmlmepriv, _FW_LINKED) == - true) && pLed->bLedOn == true) + else if (check_fwstate(pmlmepriv, _FW_LINKED) && pLed->bLedOn) SwLedOff(padapter, pLed); pLed->BlinkTimes = 0; pLed->bLedBlinkInProgress = false; @@ -296,7 +293,7 @@ static void SwLedBlink1(struct LED_871x *pLed) else SwLedOff(padapter, pLed); if (peeprompriv->CustomerID == RT_CID_DEFAULT) { - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { if (!pLed1->bSWLedCtrl) { SwLedOn(padapter, pLed1); pLed1->bSWLedCtrl = true; @@ -332,7 +329,7 @@ static void SwLedBlink1(struct LED_871x *pLed) if (pLed->BlinkTimes == 0) bStopBlinking = true; if (bStopBlinking) { - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { pLed->bLedLinkBlinkInProgress = true; pLed->CurrLedState = LED_BLINK_NORMAL; if (pLed->bLedOn) @@ -366,7 +363,7 @@ static void SwLedBlink1(struct LED_871x *pLed) if (pLed->BlinkTimes == 0) bStopBlinking = true; if (bStopBlinking) { - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { pLed->bLedLinkBlinkInProgress = true; pLed->CurrLedState = LED_BLINK_NORMAL; if (pLed->bLedOn) @@ -446,7 +443,7 @@ static void SwLedBlink2(struct LED_871x *pLed) if (pLed->BlinkTimes == 0) bStopBlinking = true; if (bStopBlinking) { - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { pLed->CurrLedState = LED_ON; pLed->BlinkingLedState = LED_ON; SwLedOn(padapter, pLed); @@ -470,7 +467,7 @@ static void SwLedBlink2(struct LED_871x *pLed) if (pLed->BlinkTimes == 0) bStopBlinking = true; if (bStopBlinking) { - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { pLed->CurrLedState = LED_ON; pLed->BlinkingLedState = LED_ON; SwLedOn(padapter, pLed); @@ -512,7 +509,7 @@ static void SwLedBlink3(struct LED_871x *pLed) if (pLed->BlinkTimes == 0) bStopBlinking = true; if (bStopBlinking) { - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { pLed->CurrLedState = LED_ON; pLed->BlinkingLedState = LED_ON; if (!pLed->bLedOn) @@ -538,7 +535,7 @@ static void SwLedBlink3(struct LED_871x *pLed) if (pLed->BlinkTimes == 0) bStopBlinking = true; if (bStopBlinking) { - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { pLed->CurrLedState = LED_ON; pLed->BlinkingLedState = LED_ON; if (!pLed->bLedOn) @@ -827,8 +824,7 @@ static void BlinkTimerCallback(unsigned long data) /* This fixed the crash problem on Fedora 12 when trying to do the * insmod;ifconfig up;rmmod commands. */ - if ((pLed->padapter->bSurpriseRemoved == true) || - (pLed->padapter->bDriverStopped == true)) + if (pLed->padapter->bSurpriseRemoved || pLed->padapter->bDriverStopped) return; schedule_work(&pLed->BlinkWorkItem); } @@ -893,15 +889,15 @@ static void SwLedControlMode1(struct _adapter *padapter, switch (LedAction) { case LED_CTL_START_TO_LINK: case LED_CTL_NO_LINK: - if (pLed->bLedNoLinkBlinkInProgress == false) { + if (!pLed->bLedNoLinkBlinkInProgress) { if (pLed->CurrLedState == LED_SCAN_BLINK || IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedLinkBlinkInProgress == true) { + if (pLed->bLedLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedLinkBlinkInProgress = false; } - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -916,15 +912,15 @@ static void SwLedControlMode1(struct _adapter *padapter, } break; case LED_CTL_LINK: - if (pLed->bLedLinkBlinkInProgress == false) { + if (!pLed->bLedLinkBlinkInProgress) { if (pLed->CurrLedState == LED_SCAN_BLINK || IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -939,21 +935,21 @@ static void SwLedControlMode1(struct _adapter *padapter, } break; case LED_CTL_SITE_SURVEY: - if ((psitesurveyctrl->traffic_busy) && - (check_fwstate(pmlmepriv, _FW_LINKED) == true)) + if (psitesurveyctrl->traffic_busy && + check_fwstate(pmlmepriv, _FW_LINKED)) ; /* dummy branch */ - else if (pLed->bLedScanBlinkInProgress == false) { + else if (!pLed->bLedScanBlinkInProgress) { if (IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } - if (pLed->bLedLinkBlinkInProgress == true) { + if (pLed->bLedLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedLinkBlinkInProgress = false; } - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -970,15 +966,15 @@ static void SwLedControlMode1(struct _adapter *padapter, break; case LED_CTL_TX: case LED_CTL_RX: - if (pLed->bLedBlinkInProgress == false) { + if (!pLed->bLedBlinkInProgress) { if (pLed->CurrLedState == LED_SCAN_BLINK || IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } - if (pLed->bLedLinkBlinkInProgress == true) { + if (pLed->bLedLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedLinkBlinkInProgress = false; } @@ -996,20 +992,20 @@ static void SwLedControlMode1(struct _adapter *padapter, case LED_CTL_START_WPS: /*wait until xinpin finish */ case LED_CTL_START_WPS_BOTTON: - if (pLed->bLedWPSBlinkInProgress == false) { - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (!pLed->bLedWPSBlinkInProgress) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } - if (pLed->bLedLinkBlinkInProgress == true) { + if (pLed->bLedLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedLinkBlinkInProgress = false; } - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } - if (pLed->bLedScanBlinkInProgress == true) { + if (pLed->bLedScanBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedScanBlinkInProgress = false; } @@ -1024,19 +1020,19 @@ static void SwLedControlMode1(struct _adapter *padapter, } break; case LED_CTL_STOP_WPS: - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } - if (pLed->bLedLinkBlinkInProgress == true) { + if (pLed->bLedLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedLinkBlinkInProgress = false; } - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } - if (pLed->bLedScanBlinkInProgress == true) { + if (pLed->bLedScanBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedScanBlinkInProgress = false; } @@ -1111,11 +1107,11 @@ static void SwLedControlMode2(struct _adapter *padapter, case LED_CTL_SITE_SURVEY: if (pmlmepriv->sitesurveyctrl.traffic_busy) ; /* dummy branch */ - else if (pLed->bLedScanBlinkInProgress == false) { + else if (!pLed->bLedScanBlinkInProgress) { if (IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -1133,8 +1129,8 @@ static void SwLedControlMode2(struct _adapter *padapter, case LED_CTL_TX: case LED_CTL_RX: - if ((pLed->bLedBlinkInProgress == false) && - (check_fwstate(pmlmepriv, _FW_LINKED) == true)) { + if (!pLed->bLedBlinkInProgress && + check_fwstate(pmlmepriv, _FW_LINKED)) { if (pLed->CurrLedState == LED_SCAN_BLINK || IS_LED_WPS_BLINKING(pLed)) return; @@ -1168,12 +1164,12 @@ static void SwLedControlMode2(struct _adapter *padapter, case LED_CTL_START_WPS: /*wait until xinpin finish*/ case LED_CTL_START_WPS_BOTTON: - if (pLed->bLedWPSBlinkInProgress == false) { - if (pLed->bLedBlinkInProgress == true) { + if (!pLed->bLedWPSBlinkInProgress) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } - if (pLed->bLedScanBlinkInProgress == true) { + if (pLed->bLedScanBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedScanBlinkInProgress = false; } @@ -1244,10 +1240,10 @@ static void SwLedControlMode3(struct _adapter *padapter, case LED_CTL_SITE_SURVEY: if (pmlmepriv->sitesurveyctrl.traffic_busy) ; /* dummy branch */ - else if (pLed->bLedScanBlinkInProgress == false) { + else if (!pLed->bLedScanBlinkInProgress) { if (IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -1264,8 +1260,8 @@ static void SwLedControlMode3(struct _adapter *padapter, break; case LED_CTL_TX: case LED_CTL_RX: - if ((pLed->bLedBlinkInProgress == false) && - (check_fwstate(pmlmepriv, _FW_LINKED) == true)) { + if (!pLed->bLedBlinkInProgress && + check_fwstate(pmlmepriv, _FW_LINKED)) { if (pLed->CurrLedState == LED_SCAN_BLINK || IS_LED_WPS_BLINKING(pLed)) return; @@ -1298,12 +1294,12 @@ static void SwLedControlMode3(struct _adapter *padapter, break; case LED_CTL_START_WPS: /* wait until xinpin finish */ case LED_CTL_START_WPS_BOTTON: - if (pLed->bLedWPSBlinkInProgress == false) { - if (pLed->bLedBlinkInProgress == true) { + if (!pLed->bLedWPSBlinkInProgress) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } - if (pLed->bLedScanBlinkInProgress == true) { + if (pLed->bLedScanBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedScanBlinkInProgress = false; } @@ -1395,15 +1391,15 @@ static void SwLedControlMode4(struct _adapter *padapter, mod_timer(&pLed->BlinkTimer, jiffies + msecs_to_jiffies(0)); } - if (pLed->bLedStartToLinkBlinkInProgress == false) { + if (!pLed->bLedStartToLinkBlinkInProgress) { if (pLed->CurrLedState == LED_SCAN_BLINK || IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } @@ -1434,11 +1430,11 @@ static void SwLedControlMode4(struct _adapter *padapter, jiffies + msecs_to_jiffies(0)); } } - if (pLed->bLedNoLinkBlinkInProgress == false) { + if (!pLed->bLedNoLinkBlinkInProgress) { if (pLed->CurrLedState == LED_SCAN_BLINK || IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -1453,17 +1449,17 @@ static void SwLedControlMode4(struct _adapter *padapter, } break; case LED_CTL_SITE_SURVEY: - if ((pmlmepriv->sitesurveyctrl.traffic_busy) && - (check_fwstate(pmlmepriv, _FW_LINKED) == true)) + if (pmlmepriv->sitesurveyctrl.traffic_busy && + check_fwstate(pmlmepriv, _FW_LINKED)) ; - else if (pLed->bLedScanBlinkInProgress == false) { + else if (!pLed->bLedScanBlinkInProgress) { if (IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -1480,11 +1476,11 @@ static void SwLedControlMode4(struct _adapter *padapter, break; case LED_CTL_TX: case LED_CTL_RX: - if (pLed->bLedBlinkInProgress == false) { + if (!pLed->bLedBlinkInProgress) { if (pLed->CurrLedState == LED_SCAN_BLINK || IS_LED_WPS_BLINKING(pLed)) return; - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } @@ -1510,16 +1506,16 @@ static void SwLedControlMode4(struct _adapter *padapter, mod_timer(&pLed->BlinkTimer, jiffies + msecs_to_jiffies(0)); } - if (pLed->bLedWPSBlinkInProgress == false) { - if (pLed->bLedNoLinkBlinkInProgress == true) { + if (!pLed->bLedWPSBlinkInProgress) { + if (pLed->bLedNoLinkBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedNoLinkBlinkInProgress = false; } - if (pLed->bLedBlinkInProgress == true) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } - if (pLed->bLedScanBlinkInProgress == true) { + if (pLed->bLedScanBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedScanBlinkInProgress = false; } @@ -1666,11 +1662,11 @@ static void SwLedControlMode5(struct _adapter *padapter, jiffies + msecs_to_jiffies(0)); break; case LED_CTL_SITE_SURVEY: - if ((pmlmepriv->sitesurveyctrl.traffic_busy) && - (check_fwstate(pmlmepriv, _FW_LINKED) == true)) + if (pmlmepriv->sitesurveyctrl.traffic_busy && + check_fwstate(pmlmepriv, _FW_LINKED)) ; /* dummy branch */ - else if (pLed->bLedScanBlinkInProgress == false) { - if (pLed->bLedBlinkInProgress == true) { + else if (!pLed->bLedScanBlinkInProgress) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -1687,7 +1683,7 @@ static void SwLedControlMode5(struct _adapter *padapter, break; case LED_CTL_TX: case LED_CTL_RX: - if (pLed->bLedBlinkInProgress == false) { + if (!pLed->bLedBlinkInProgress) { if (pLed->CurrLedState == LED_SCAN_BLINK) return; pLed->bLedBlinkInProgress = true; @@ -1737,8 +1733,8 @@ static void SwLedControlMode6(struct _adapter *padapter, break; case LED_CTL_TX: case LED_CTL_RX: - if (pLed->bLedBlinkInProgress == false && - (check_fwstate(pmlmepriv, _FW_LINKED) == true)) { + if (!pLed->bLedBlinkInProgress && + check_fwstate(pmlmepriv, _FW_LINKED)) { if (IS_LED_WPS_BLINKING(pLed)) return; pLed->bLedBlinkInProgress = true; @@ -1754,8 +1750,8 @@ static void SwLedControlMode6(struct _adapter *padapter, break; case LED_CTL_START_WPS: /*wait until xinpin finish*/ case LED_CTL_START_WPS_BOTTON: - if (pLed->bLedWPSBlinkInProgress == false) { - if (pLed->bLedBlinkInProgress == true) { + if (!pLed->bLedWPSBlinkInProgress) { + if (pLed->bLedBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedBlinkInProgress = false; } @@ -1805,7 +1801,7 @@ void LedControl871x(struct _adapter *padapter, enum LED_CTL_MODE LedAction) { struct led_priv *ledpriv = &(padapter->ledpriv); - if (ledpriv->bRegUseLed == false) + if (!ledpriv->bRegUseLed) return; switch (ledpriv->LedStrategy) { case SW_LED_MODE0: diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index 534dc04d51a6..83cdb6146216 100644 --- a/drivers/staging/rtl8712/rtl8712_recv.c +++ b/drivers/staging/rtl8712/rtl8712_recv.c @@ -217,7 +217,7 @@ static union recv_frame *recvframe_defrag(struct _adapter *adapter, curfragnum++; plist = &defrag_q->queue; plist = plist->next; - while (end_of_queue_search(phead, plist) == false) { + while (!end_of_queue_search(phead, plist)) { pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u); pnfhdr = &pnextrframe->u.hdr; /*check the fragment sequence (2nd ~n fragment frame) */ @@ -489,7 +489,7 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, phead = &ppending_recvframe_queue->queue; plist = phead->next; - while (end_of_queue_search(phead, plist) == false) { + while (!end_of_queue_search(phead, plist)) { pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u); pnextattrib = &pnextrframe->u.hdr.attrib; if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num)) @@ -519,7 +519,7 @@ int r8712_recv_indicatepkts_in_order(struct _adapter *padapter, phead = &ppending_recvframe_queue->queue; plist = phead->next; /* Handling some condition for forced indicate case.*/ - if (bforced == true) { + if (bforced) { if (list_empty(phead)) return true; @@ -541,8 +541,8 @@ int r8712_recv_indicatepkts_in_order(struct _adapter *padapter, (preorder_ctrl->indicate_seq + 1) % 4096; /*indicate this recv_frame*/ if (!pattrib->amsdu) { - if ((padapter->bDriverStopped == false) && - (padapter->bSurpriseRemoved == false)) { + if (!padapter->bDriverStopped && + !padapter->bSurpriseRemoved) { /* indicate this recv_frame */ r8712_recv_indicatepkt(padapter, prframe); @@ -576,8 +576,8 @@ static int recv_indicatepkt_reorder(struct _adapter *padapter, /* s1. */ r8712_wlanhdr_to_ethhdr(prframe); if (pattrib->qos != 1) { - if ((padapter->bDriverStopped == false) && - (padapter->bSurpriseRemoved == false)) { + if (!padapter->bDriverStopped && + !padapter->bSurpriseRemoved) { r8712_recv_indicatepkt(padapter, prframe); return _SUCCESS; } else @@ -643,16 +643,15 @@ static int r8712_process_recv_indicatepkts(struct _adapter *padapter, if (phtpriv->ht_option == 1) { /*B/G/N Mode*/ if (recv_indicatepkt_reorder(padapter, prframe) != _SUCCESS) { /* including perform A-MPDU Rx Ordering Buffer Control*/ - if ((padapter->bDriverStopped == false) && - (padapter->bSurpriseRemoved == false)) + if (!padapter->bDriverStopped && + !padapter->bSurpriseRemoved) return _FAIL; } } else { /*B/G mode*/ retval = r8712_wlanhdr_to_ethhdr(prframe); if (retval != _SUCCESS) return retval; - if ((padapter->bDriverStopped == false) && - (padapter->bSurpriseRemoved == false)) { + if (!padapter->bDriverStopped && !padapter->bSurpriseRemoved) { /* indicate this recv_frame */ r8712_recv_indicatepkt(padapter, prframe); } else @@ -962,12 +961,12 @@ int recv_func(struct _adapter *padapter, void *pcontext) prframe = (union recv_frame *)pcontext; orig_prframe = prframe; pattrib = &prframe->u.hdr.attrib; - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { + if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { if (pattrib->crc_err == 1) padapter->mppriv.rx_crcerrpktcount++; else padapter->mppriv.rx_pktcount++; - if (check_fwstate(pmlmepriv, WIFI_MP_LPBK_STATE) == false) { + if (!check_fwstate(pmlmepriv, WIFI_MP_LPBK_STATE)) { /* free this recv_frame */ r8712_free_recvframe(orig_prframe, pfree_recv_queue); goto _exit_recv_func; diff --git a/drivers/staging/rtl8712/rtl8712_xmit.c b/drivers/staging/rtl8712/rtl8712_xmit.c index 27b121398027..296591902e19 100644 --- a/drivers/staging/rtl8712/rtl8712_xmit.c +++ b/drivers/staging/rtl8712/rtl8712_xmit.c @@ -168,7 +168,7 @@ static struct xmit_frame *dequeue_one_xmitframe(struct xmit_priv *pxmitpriv, xmitframe_phead = &pframe_queue->queue; xmitframe_plist = xmitframe_phead->next; - if ((end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false) { + if (!end_of_queue_search(xmitframe_phead, xmitframe_plist)) { pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list); list_del_init(&pxmitframe->list); @@ -208,7 +208,7 @@ static struct xmit_frame *dequeue_xframe_ex(struct xmit_priv *pxmitpriv, phwxmit = phwxmit_i + inx[i]; sta_phead = &phwxmit->sta_queue->queue; sta_plist = sta_phead->next; - while ((end_of_queue_search(sta_phead, sta_plist)) == false) { + while (!end_of_queue_search(sta_phead, sta_plist)) { ptxservq = LIST_CONTAINOR(sta_plist, struct tx_servq, tx_pending); pframe_queue = &ptxservq->sta_pending; diff --git a/drivers/staging/rtl8712/rtl871x_cmd.c b/drivers/staging/rtl8712/rtl871x_cmd.c index ef7182961002..83317815be40 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.c +++ b/drivers/staging/rtl8712/rtl871x_cmd.c @@ -172,7 +172,7 @@ u32 r8712_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj) { int res; - if (pcmdpriv->padapter->eeprompriv.bautoload_fail_flag == true) + if (pcmdpriv->padapter->eeprompriv.bautoload_fail_flag) return _FAIL; res = _enqueue_cmd(&pcmdpriv->cmd_queue, obj); up(&pcmdpriv->cmd_queue_sema); @@ -186,7 +186,7 @@ u32 r8712_enqueue_cmd_ex(struct cmd_priv *pcmdpriv, struct cmd_obj *obj) if (obj == NULL) return _SUCCESS; - if (pcmdpriv->padapter->eeprompriv.bautoload_fail_flag == true) + if (pcmdpriv->padapter->eeprompriv.bautoload_fail_flag) return _FAIL; queue = &pcmdpriv->cmd_queue; spin_lock_irqsave(&queue->lock, irqL); @@ -519,7 +519,7 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) * If not, we copy the connecting AP's MAC address to it so that * the driver just has the bssid information for PMKIDList searching. */ - if (pmlmepriv->assoc_by_bssid == false) + if (!pmlmepriv->assoc_by_bssid) ether_addr_copy(&pmlmepriv->assoc_bssid[0], &pnetwork->network.MacAddress[0]); psecnetwork->IELength = r8712_restruct_sec_ie(padapter, @@ -679,7 +679,7 @@ u8 r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key) else GET_ENCRY_ALGO(psecuritypriv, sta, psetstakey_para->algorithm, false); - if (unicast_key == true) + if (unicast_key) memcpy(&psetstakey_para->key, &sta->x_UncstKey, 16); else memcpy(&psetstakey_para->key, diff --git a/drivers/staging/rtl8712/rtl871x_eeprom.c b/drivers/staging/rtl8712/rtl871x_eeprom.c index 50339e67da07..4e713610ad8b 100644 --- a/drivers/staging/rtl8712/rtl871x_eeprom.c +++ b/drivers/staging/rtl8712/rtl871x_eeprom.c @@ -49,7 +49,7 @@ static void shift_out_bits(struct _adapter *padapter, u16 data, u16 count) { u16 x, mask; - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) goto out; mask = 0x01 << (count - 1); x = r8712_read8(padapter, EE_9346CR); @@ -58,7 +58,7 @@ static void shift_out_bits(struct _adapter *padapter, u16 data, u16 count) x &= ~_EEDI; if (data & mask) x |= _EEDI; - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) goto out; r8712_write8(padapter, EE_9346CR, (u8)x); udelay(CLOCK_RATE); @@ -66,7 +66,7 @@ static void shift_out_bits(struct _adapter *padapter, u16 data, u16 count) down_clk(padapter, &x); mask >>= 1; } while (mask); - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) goto out; x &= ~_EEDI; r8712_write8(padapter, EE_9346CR, (u8)x); @@ -77,7 +77,7 @@ static u16 shift_in_bits(struct _adapter *padapter) { u16 x, d = 0, i; - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) goto out; x = r8712_read8(padapter, EE_9346CR); x &= ~(_EEDO | _EEDI); @@ -85,7 +85,7 @@ static u16 shift_in_bits(struct _adapter *padapter) for (i = 0; i < 16; i++) { d <<= 1; up_clk(padapter, &x); - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) goto out; x = r8712_read8(padapter, EE_9346CR); x &= ~(_EEDI); @@ -129,17 +129,17 @@ static void eeprom_clean(struct _adapter *padapter) { u16 x; - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) return; x = r8712_read8(padapter, EE_9346CR); - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) return; x &= ~(_EECS | _EEDI); r8712_write8(padapter, EE_9346CR, (u8)x); - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) return; up_clk(padapter, &x); - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) return; down_clk(padapter, &x); } @@ -206,11 +206,11 @@ u16 r8712_eeprom_read16(struct _adapter *padapter, u16 reg) /*ReadEEprom*/ tmp8_clk_new = tmp8_clk_ori | 0x20; if (tmp8_clk_new != tmp8_clk_ori) r8712_write8(padapter, 0x10250003, tmp8_clk_new); - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) goto out; /* select EEPROM, reset bits, set _EECS */ x = r8712_read8(padapter, EE_9346CR); - if (padapter->bSurpriseRemoved == true) + if (padapter->bSurpriseRemoved) goto out; x &= ~(_EEDI | _EEDO | _EESK | _EEM0); x |= _EEM1 | _EECS; diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index a96481609f39..a7f581633c23 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -178,17 +178,17 @@ static inline char *translate_scan(struct _adapter *padapter, /* Add the protocol name */ iwe.cmd = SIOCGIWNAME; if (r8712_is_cckratesonly_included(pnetwork->network.rates)) { - if (ht_cap == true) + if (ht_cap) snprintf(iwe.u.name, IFNAMSIZ, "IEEE 802.11bn"); else snprintf(iwe.u.name, IFNAMSIZ, "IEEE 802.11b"); } else if (r8712_is_cckrates_included(pnetwork->network.rates)) { - if (ht_cap == true) + if (ht_cap) snprintf(iwe.u.name, IFNAMSIZ, "IEEE 802.11bgn"); else snprintf(iwe.u.name, IFNAMSIZ, "IEEE 802.11bg"); } else { - if (ht_cap == true) + if (ht_cap) snprintf(iwe.u.name, IFNAMSIZ, "IEEE 802.11gn"); else snprintf(iwe.u.name, IFNAMSIZ, "IEEE 802.11g"); @@ -310,7 +310,7 @@ static inline char *translate_scan(struct _adapter *padapter, if (r8712_get_wps_ie(pnetwork->network.IEs, pnetwork->network.IELength, - wps_ie, &wps_ielen) == true) { + wps_ie, &wps_ielen)) { if (wps_ielen > 2) { iwe.cmd = IWEVGENIE; iwe.u.data.length = (u16)wps_ielen; @@ -443,7 +443,7 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, struct sta_priv *pstapriv = &padapter->stapriv; if (check_fwstate(pmlmepriv, WIFI_STATION_STATE | - WIFI_MP_STATE) == true) { /* sta mode */ + WIFI_MP_STATE)) { /* sta mode */ psta = r8712_get_stainfo(pstapriv, get_bssid(pmlmepriv)); if (psta) { @@ -617,22 +617,22 @@ static int r8711_wx_get_name(struct net_device *dev, if (p && ht_ielen > 0) ht_cap = true; prates = pcur_bss->rates; - if (r8712_is_cckratesonly_included(prates) == true) { - if (ht_cap == true) + if (r8712_is_cckratesonly_included(prates)) { + if (ht_cap) snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11bn"); else snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11b"); - } else if ((r8712_is_cckrates_included(prates)) == true) { - if (ht_cap == true) + } else if (r8712_is_cckrates_included(prates)) { + if (ht_cap) snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11bgn"); else snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11bg"); } else { - if (ht_cap == true) + if (ht_cap) snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11gn"); else @@ -697,7 +697,7 @@ static int r8711_wx_get_freq(struct net_device *dev, struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { wrqu->freq.m = ieee80211_wlan_frequencies[ pcur_bss->Configuration.DSConfig-1] * 100000; wrqu->freq.e = 1; @@ -746,12 +746,12 @@ static int r8711_wx_get_mode(struct net_device *dev, struct iw_request_info *a, struct _adapter *padapter = netdev_priv(dev); struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) wrqu->mode = IW_MODE_INFRA; else if (check_fwstate(pmlmepriv, - WIFI_ADHOC_MASTER_STATE|WIFI_ADHOC_STATE) == true) + WIFI_ADHOC_MASTER_STATE | WIFI_ADHOC_STATE)) wrqu->mode = IW_MODE_ADHOC; - else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) + else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) wrqu->mode = IW_MODE_MASTER; else wrqu->mode = IW_MODE_AUTO; @@ -940,7 +940,7 @@ static int r871x_wx_set_priv(struct net_device *dev, struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); struct wlan_network *pcur_network = &pmlmepriv->cur_network; /*static u8 xxxx; */ - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { sprintf(ext, "%s rssi %d", pcur_network->network.Ssid.Ssid, /*(xxxx=xxxx+10) */ @@ -1044,9 +1044,9 @@ static int r8711_wx_set_wap(struct net_device *dev, struct wlan_network *pnetwork = NULL; enum NDIS_802_11_AUTHENTICATION_MODE authmode; - if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) + if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY)) return -EBUSY; - if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true) + if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) return ret; if (temp->sa_family != ARPHRD_ETHER) return -EINVAL; @@ -1055,7 +1055,7 @@ static int r8711_wx_set_wap(struct net_device *dev, phead = &queue->queue; pmlmepriv->pscanned = phead->next; while (1) { - if (end_of_queue_search(phead, pmlmepriv->pscanned) == true) + if (end_of_queue_search(phead, pmlmepriv->pscanned)) break; pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, struct wlan_network, list); @@ -1137,17 +1137,17 @@ static int r8711_wx_set_scan(struct net_device *dev, struct mlme_priv *pmlmepriv = &padapter->mlmepriv; u8 status = true; - if (padapter->bDriverStopped == true) { + if (padapter->bDriverStopped) { netdev_info(dev, "In %s: bDriverStopped=%d\n", __func__, padapter->bDriverStopped); return -1; } - if (padapter->bup == false) + if (!padapter->bup) return -ENETDOWN; - if (padapter->hw_init_completed == false) + if (!padapter->hw_init_completed) return -1; if ((check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)) || - (pmlmepriv->sitesurveyctrl.traffic_busy == true)) + (pmlmepriv->sitesurveyctrl.traffic_busy)) return 0; if (wrqu->data.length == sizeof(struct iw_scan_req)) { struct iw_scan_req *req = (struct iw_scan_req *)extra; @@ -1164,7 +1164,7 @@ static int r8711_wx_set_scan(struct net_device *dev, spin_lock_irqsave(&pmlmepriv->lock, irqL); if ((check_fwstate(pmlmepriv, _FW_UNDER_SURVEY | _FW_UNDER_LINKING)) || - (pmlmepriv->sitesurveyctrl.traffic_busy == true)) { + (pmlmepriv->sitesurveyctrl.traffic_busy)) { if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) status = false; } else @@ -1173,7 +1173,7 @@ static int r8711_wx_set_scan(struct net_device *dev, } } else status = r8712_set_802_11_bssid_list_scan(padapter); - if (status == false) + if (!status) return -1; return 0; } @@ -1204,7 +1204,7 @@ static int r8711_wx_get_scan(struct net_device *dev, phead = &queue->queue; plist = phead->next; while (1) { - if (end_of_queue_search(phead, plist) == true) + if (end_of_queue_search(phead, plist)) break; if ((stop - ev) < SCAN_ITEM_SIZE) { ret = -E2BIG; @@ -1427,7 +1427,7 @@ static int r8711_wx_get_rate(struct net_device *dev, wrqu->bitrate.value = rate*500000; i++; } - if (ht_cap == true) { + if (ht_cap) { if (mcs_rate & 0x8000 /* MCS15 */ && rf_type == RTL8712_RF_2T2R) @@ -1599,7 +1599,7 @@ static int r8711_wx_get_enc(struct net_device *dev, struct iw_point *erq = &(wrqu->encoding); struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - if (check_fwstate(pmlmepriv, _FW_LINKED) == false) { + if (!check_fwstate(pmlmepriv, _FW_LINKED)) { if (!check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) { erq->length = 0; erq->flags |= IW_ENCODE_DISABLED; @@ -1973,7 +1973,7 @@ static int r871x_get_ap_info(struct net_device *dev, phead = &queue->queue; plist = phead->next; while (1) { - if (end_of_queue_search(phead, plist) == true) + if (end_of_queue_search(phead, plist)) break; pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); if (!mac_pton(data, bssid)) { diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c index ac0baff7f090..d8e62ec697b3 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c @@ -324,8 +324,8 @@ uint oid_rt_get_channel_hdl(struct oid_par_priv *poid_par_priv) if (poid_par_priv->type_of_oid != QUERY_OID) return RNDIS_STATUS_NOT_ACCEPTED; - if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) || - (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)) + if (check_fwstate(pmlmepriv, _FW_LINKED) || + check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) pnic_Config = &pmlmepriv->cur_network.network.Configuration; else pnic_Config = &padapter->registrypriv.dev_network. @@ -465,7 +465,7 @@ uint oid_rt_pro_rf_read_registry_hdl(struct oid_par_priv *poid_par_priv) if (poid_par_priv->type_of_oid != SET_OID) /* QUERY_OID */ return RNDIS_STATUS_NOT_ACCEPTED; if (poid_par_priv->information_buf_len == (sizeof(unsigned long)*3)) { - if (Adapter->mppriv.act_in_progress == true) + if (Adapter->mppriv.act_in_progress) status = RNDIS_STATUS_NOT_ACCEPTED; else { /* init workparam */ @@ -515,11 +515,11 @@ uint oid_rt_get_connect_state_hdl(struct oid_par_priv *poid_par_priv) * nStatus==2 AdHocMode * nStatus==3 NotAssociated */ - if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true) + if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) ulInfo = CHECKINGSTATUS; - else if (check_fwstate(pmlmepriv, _FW_LINKED) == true) + else if (check_fwstate(pmlmepriv, _FW_LINKED)) ulInfo = ASSOCIATED; - else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) + else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) ulInfo = ADHOCMODE; else ulInfo = NOTASSOCIATED; diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_set.c b/drivers/staging/rtl8712/rtl871x_ioctl_set.c index 22262b3558ba..67a2695fbeed 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_set.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_set.c @@ -136,12 +136,12 @@ u8 r8712_set_802_11_bssid(struct _adapter *padapter, u8 *bssid) } spin_lock_irqsave(&pmlmepriv->lock, irqL); if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY | - _FW_UNDER_LINKING) == true) { + _FW_UNDER_LINKING)) { status = check_fwstate(pmlmepriv, _FW_UNDER_LINKING); goto _Abort_Set_BSSID; } if (check_fwstate(pmlmepriv, - _FW_LINKED|WIFI_ADHOC_MASTER_STATE) == true) { + _FW_LINKED | WIFI_ADHOC_MASTER_STATE)) { if (!memcmp(&pmlmepriv->cur_network.network.MacAddress, bssid, ETH_ALEN)) { if (!check_fwstate(pmlmepriv, WIFI_STATION_STATE)) @@ -149,7 +149,7 @@ u8 r8712_set_802_11_bssid(struct _adapter *padapter, u8 *bssid) * WIFI_ADHOC_MASTER_STATE */ } else { r8712_disassoc_cmd(padapter); - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) + if (check_fwstate(pmlmepriv, _FW_LINKED)) r8712_ind_disconnect(padapter); r8712_free_assoc_resources(padapter); if ((check_fwstate(pmlmepriv, @@ -197,7 +197,7 @@ void r8712_set_802_11_ssid(struct _adapter *padapter, */ r8712_disassoc_cmd(padapter); if (check_fwstate(pmlmepriv, - _FW_LINKED) == true) + _FW_LINKED)) r8712_ind_disconnect(padapter); r8712_free_assoc_resources(padapter); if (check_fwstate(pmlmepriv, @@ -213,18 +213,18 @@ void r8712_set_802_11_ssid(struct _adapter *padapter, } } else { r8712_disassoc_cmd(padapter); - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) + if (check_fwstate(pmlmepriv, _FW_LINKED)) r8712_ind_disconnect(padapter); r8712_free_assoc_resources(padapter); if (check_fwstate(pmlmepriv, - WIFI_ADHOC_MASTER_STATE) == true) { + WIFI_ADHOC_MASTER_STATE)) { _clr_fwstate_(pmlmepriv, WIFI_ADHOC_MASTER_STATE); set_fwstate(pmlmepriv, WIFI_ADHOC_STATE); } } } - if (padapter->securitypriv.btkip_countermeasure == true) + if (padapter->securitypriv.btkip_countermeasure) goto _Abort_Set_SSID; if (!validate_ssid(ssid)) goto _Abort_Set_SSID; @@ -248,13 +248,13 @@ void r8712_set_802_11_infrastructure_mode(struct _adapter *padapter, if (*pold_state != networktype) { spin_lock_irqsave(&pmlmepriv->lock, irqL); - if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) || + if (check_fwstate(pmlmepriv, _FW_LINKED) || (*pold_state == Ndis802_11IBSS)) r8712_disassoc_cmd(padapter); if (check_fwstate(pmlmepriv, - _FW_LINKED|WIFI_ADHOC_MASTER_STATE) == true) + _FW_LINKED | WIFI_ADHOC_MASTER_STATE)) r8712_free_assoc_resources(padapter); - if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) || + if (check_fwstate(pmlmepriv, _FW_LINKED) || (*pold_state == Ndis802_11Infrastructure) || (*pold_state == Ndis802_11IBSS)) { /* will clr Linked_state before this function, @@ -291,7 +291,7 @@ u8 r8712_set_802_11_disassociate(struct _adapter *padapter) struct mlme_priv *pmlmepriv = &padapter->mlmepriv; spin_lock_irqsave(&pmlmepriv->lock, irqL); - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { r8712_disassoc_cmd(padapter); r8712_ind_disconnect(padapter); r8712_free_assoc_resources(padapter); @@ -312,8 +312,8 @@ u8 r8712_set_802_11_bssid_list_scan(struct _adapter *padapter) if (!padapter->hw_init_completed) return false; spin_lock_irqsave(&pmlmepriv->lock, irqL); - if ((check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)) || - (pmlmepriv->sitesurveyctrl.traffic_busy == true)) { + if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY | _FW_UNDER_LINKING) || + pmlmepriv->sitesurveyctrl.traffic_busy) { /* Scan or linking is in progress, do nothing. */ ret = (u8)check_fwstate(pmlmepriv, _FW_UNDER_SURVEY); } else { diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index fbcb248b0235..c1890f54b527 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.c +++ b/drivers/staging/rtl8712/rtl871x_mlme.c @@ -110,7 +110,7 @@ static void _free_network(struct mlme_priv *pmlmepriv, if (pnetwork == NULL) return; - if (pnetwork->fixed == true) + if (pnetwork->fixed) return; curr_time = jiffies; delta_time = (curr_time - (u32)pnetwork->last_scanned) / HZ; @@ -130,7 +130,7 @@ static void _free_network_nolock(struct mlme_priv *pmlmepriv, if (pnetwork == NULL) return; - if (pnetwork->fixed == true) + if (pnetwork->fixed) return; list_del_init(&pnetwork->list); list_add_tail(&pnetwork->list, &free_queue->queue); @@ -176,7 +176,7 @@ static void _free_network_queue(struct _adapter *padapter) spin_lock_irqsave(&scanned_queue->lock, irqL); phead = &scanned_queue->queue; plist = phead->next; - while (end_of_queue_search(phead, plist) == false) { + while (!end_of_queue_search(phead, plist)) { pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); plist = plist->next; _free_network(pmlmepriv, pnetwork); @@ -189,7 +189,7 @@ sint r8712_if_up(struct _adapter *padapter) sint res; if (padapter->bDriverStopped || padapter->bSurpriseRemoved || - (check_fwstate(&padapter->mlmepriv, _FW_LINKED) == false)) { + !check_fwstate(&padapter->mlmepriv, _FW_LINKED)) { res = false; } else res = true; @@ -392,7 +392,7 @@ static void update_scanned_network(struct _adapter *adapter, plist = phead->next; while (1) { - if (end_of_queue_search(phead, plist) == true) + if (end_of_queue_search(phead, plist)) break; pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); @@ -409,7 +409,7 @@ static void update_scanned_network(struct _adapter *adapter, /* If we didn't find a match, then get a new network slot to initialize * with this beacon's information */ - if (end_of_queue_search(phead, plist) == true) { + if (end_of_queue_search(phead, plist)) { if (list_empty(&pmlmepriv->free_bss_pool.queue)) { /* If there are no more slots, expire the oldest */ pnetwork = oldest; @@ -468,10 +468,10 @@ static int is_desired_network(struct _adapter *adapter, int bselected = true; struct security_priv *psecuritypriv = &adapter->securitypriv; - if (psecuritypriv->wps_phase == true) { + if (psecuritypriv->wps_phase) { if (r8712_get_wps_ie(pnetwork->network.IEs, pnetwork->network.IELength, wps_ie, - &wps_ielen) == true) + &wps_ielen)) return true; else return false; @@ -479,7 +479,7 @@ static int is_desired_network(struct _adapter *adapter, if ((psecuritypriv->PrivacyAlgrthm != _NO_PRIVACY_) && (pnetwork->network.Privacy == 0)) bselected = false; - if (check_fwstate(&adapter->mlmepriv, WIFI_ADHOC_STATE) == true) { + if (check_fwstate(&adapter->mlmepriv, WIFI_ADHOC_STATE)) { if (pnetwork->network.InfrastructureMode != adapter->mlmepriv.cur_network.network. InfrastructureMode) @@ -533,7 +533,7 @@ void r8712_survey_event_callback(struct _adapter *adapter, u8 *pbuf) return; spin_lock_irqsave(&pmlmepriv->lock2, flags); /* update IBSS_network 's timestamp */ - if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) { + if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) { if (!memcmp(&(pmlmepriv->cur_network.network.MacAddress), pnetwork->MacAddress, ETH_ALEN)) { struct wlan_network *ibss_wlan = NULL; @@ -551,7 +551,7 @@ void r8712_survey_event_callback(struct _adapter *adapter, u8 *pbuf) } } /* lock pmlmepriv->lock when you accessing network_q */ - if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == false) { + if (!check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { if (pnetwork->Ssid.Ssid[0] != 0) rtl8711_add_network(adapter, pnetwork); else { @@ -571,15 +571,15 @@ void r8712_surveydone_event_callback(struct _adapter *adapter, u8 *pbuf) spin_lock_irqsave(&pmlmepriv->lock, irqL); - if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) { + if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY)) { del_timer(&pmlmepriv->scan_to_timer); _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY); } - if (pmlmepriv->to_join == true) { - if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) { - if (check_fwstate(pmlmepriv, _FW_LINKED) == false) { + if (pmlmepriv->to_join) { + if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) { + if (!check_fwstate(pmlmepriv, _FW_LINKED)) { set_fwstate(pmlmepriv, _FW_UNDER_LINKING); if (r8712_select_and_join_from_scan(pmlmepriv) @@ -679,7 +679,7 @@ void r8712_ind_disconnect(struct _adapter *padapter) { struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { _clr_fwstate_(pmlmepriv, _FW_LINKED); padapter->ledpriv.LedControlHandler(padapter, LED_CTL_NO_LINK); r8712_os_indicate_disconnect(padapter); @@ -764,10 +764,10 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) if (pnetwork->network.Length > sizeof(struct wlan_bssid_ex)) goto ignore_joinbss_callback; if (pnetwork->join_res > 0) { - if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true) { + if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { /*s1. find ptarget_wlan*/ - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { - if (the_same_macaddr == true) + if (check_fwstate(pmlmepriv, _FW_LINKED)) { + if (the_same_macaddr) ptarget_wlan = r8712_find_network(&pmlmepriv-> scanned_queue, @@ -813,7 +813,7 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) /*s2. find ptarget_sta & update ptarget_sta*/ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { - if (the_same_macaddr == true) { + if (the_same_macaddr) { ptarget_sta = r8712_get_stainfo(pstapriv, pnetwork->network.MacAddress); @@ -897,14 +897,13 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) update_ht_cap(adapter, cur_network->network.IEs, cur_network->network.IELength); /*indicate connect*/ - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) - == true) + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) r8712_indicate_connect(adapter); del_timer(&pmlmepriv->assoc_timer); } else goto ignore_joinbss_callback; } else { - if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true) { + if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { mod_timer(&pmlmepriv->assoc_timer, jiffies + msecs_to_jiffies(1)); _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); @@ -924,7 +923,7 @@ void r8712_stassoc_event_callback(struct _adapter *adapter, u8 *pbuf) struct stassoc_event *pstassoc = (struct stassoc_event *)pbuf; /* to do: */ - if (r8712_access_ctrl(&adapter->acl_list, pstassoc->macaddr) == false) + if (!r8712_access_ctrl(&adapter->acl_list, pstassoc->macaddr)) return; psta = r8712_get_stainfo(&adapter->stapriv, pstassoc->macaddr); if (psta != NULL) { @@ -946,8 +945,8 @@ void r8712_stassoc_event_callback(struct _adapter *adapter, u8 *pbuf) psta->XPrivacy = adapter->securitypriv.PrivacyAlgrthm; psta->ieee8021x_blocked = false; spin_lock_irqsave(&pmlmepriv->lock, irqL); - if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) || - (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true)) { + if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) || + check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) { if (adapter->stapriv.asoc_sta_count == 2) { /* a sta + bc/mc_stainfo (not Ibss_stainfo) */ r8712_indicate_connect(adapter); @@ -969,7 +968,7 @@ void r8712_stadel_event_callback(struct _adapter *adapter, u8 *pbuf) struct wlan_network *tgt_network = &pmlmepriv->cur_network; spin_lock_irqsave(&pmlmepriv->lock, irqL2); - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) { + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { r8712_ind_disconnect(adapter); r8712_free_assoc_resources(adapter); } @@ -1046,7 +1045,7 @@ void r8712_got_addbareq_event_callback(struct _adapter *adapter, u8 *pbuf) void r8712_wpspbc_event_callback(struct _adapter *adapter, u8 *pbuf) { - if (adapter->securitypriv.wps_hw_pbc_pressed == false) + if (!adapter->securitypriv.wps_hw_pbc_pressed) adapter->securitypriv.wps_hw_pbc_pressed = true; } @@ -1081,7 +1080,7 @@ void _r8712_join_timeout_handler(struct _adapter *adapter) spin_lock_irqsave(&pmlmepriv->lock, irqL); _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); pmlmepriv->to_join = false; - if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { r8712_os_indicate_disconnect(adapter); _clr_fwstate_(pmlmepriv, _FW_LINKED); } @@ -1131,8 +1130,8 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) phead = &queue->queue; pmlmepriv->pscanned = phead->next; while (1) { - if (end_of_queue_search(phead, pmlmepriv->pscanned) == true) { - if ((pmlmepriv->assoc_by_rssi == true) && + if (end_of_queue_search(phead, pmlmepriv->pscanned)) { + if ((pmlmepriv->assoc_by_rssi) && (pnetwork_max_rssi != NULL)) { pnetwork = pnetwork_max_rssi; goto ask_for_joinbss; @@ -1144,7 +1143,7 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) if (pnetwork == NULL) return _FAIL; pmlmepriv->pscanned = pmlmepriv->pscanned->next; - if (pmlmepriv->assoc_by_bssid == true) { + if (pmlmepriv->assoc_by_bssid) { dst_ssid = pnetwork->network.MacAddress; src_ssid = pmlmepriv->assoc_bssid; if (!memcmp(dst_ssid, src_ssid, ETH_ALEN)) { @@ -1172,7 +1171,7 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) pmlmepriv->assoc_ssid.SsidLength) && (!memcmp(dst_ssid, src_ssid, pmlmepriv->assoc_ssid.SsidLength))) { - if (pmlmepriv->assoc_by_rssi == true) { + if (pmlmepriv->assoc_by_rssi) { /* if the ssid is the same, select the bss * which has the max rssi*/ if (pnetwork_max_rssi) { @@ -1429,7 +1428,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, cnt += in_ie[cnt+1] + 2; /*get next*/ } /*restruct WPA IE or WPA2 IE in sec_ie[] */ - if (match == true) { + if (match) { if (sec_ie[0] == _WPA_IE_ID_) { /* parsing SSN IE to select required encryption * algorithm, and set the bc/mc encryption algorithm */ @@ -1566,7 +1565,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, memcpy(out_ie, in_ie, 12); ielength = 12; /*copy RSN or SSN*/ - if (match == true) { + if (match) { memcpy(&out_ie[ielength], &sec_ie[0], sec_ie[1]+2); ielength += sec_ie[1] + 2; if (authmode == _WPA2_IE_ID_) { @@ -1580,7 +1579,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, /*copy fixed ie only*/ memcpy(out_ie, in_ie, 12); ielength = 12; - if (psecuritypriv->wps_phase == true) { + if (psecuritypriv->wps_phase) { memcpy(out_ie+ielength, psecuritypriv->wps_ie, psecuritypriv->wps_ie_len); ielength += psecuritypriv->wps_ie_len; @@ -1738,7 +1737,7 @@ static void update_ht_cap(struct _adapter *padapter, u8 *pie, uint ie_len) if (!phtpriv->ht_option) return; /* maybe needs check if ap supports rx ampdu. */ - if ((phtpriv->ampdu_enable == false) && + if (!phtpriv->ampdu_enable && (pregistrypriv->ampdu_enable == 1)) phtpriv->ampdu_enable = true; /*check Max Rx A-MPDU Size*/ @@ -1788,8 +1787,8 @@ void r8712_issue_addbareq_cmd(struct _adapter *padapter, int priority) struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct ht_priv *phtpriv = &pmlmepriv->htpriv; - if ((phtpriv->ht_option == 1) && (phtpriv->ampdu_enable == true)) { - if (phtpriv->baddbareq_issued[priority] == false) { + if ((phtpriv->ht_option == 1) && (phtpriv->ampdu_enable)) { + if (!phtpriv->baddbareq_issued[priority]) { r8712_addbareq_cmd(padapter, (u8)priority); phtpriv->baddbareq_issued[priority] = true; } diff --git a/drivers/staging/rtl8712/rtl871x_mlme.h b/drivers/staging/rtl8712/rtl871x_mlme.h index 08d6c986c11e..61e0eb745d21 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.h +++ b/drivers/staging/rtl8712/rtl871x_mlme.h @@ -153,7 +153,7 @@ static inline void clr_fwstate(struct mlme_priv *pmlmepriv, sint state) unsigned long irqL; spin_lock_irqsave(&pmlmepriv->lock, irqL); - if (check_fwstate(pmlmepriv, state) == true) + if (check_fwstate(pmlmepriv, state)) pmlmepriv->fw_state ^= state; spin_unlock_irqrestore(&pmlmepriv->lock, irqL); } diff --git a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c index 77f01bf1ca3c..7b00c350d147 100644 --- a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c +++ b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c @@ -181,7 +181,7 @@ static int mp_start_test(struct _adapter *padapter) } else bssid.Length = length; spin_lock_irqsave(&pmlmepriv->lock, irqL); - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) + if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) goto end_of_mp_start_test; /*init mp_start_test status*/ pmppriv->prev_fw_state = get_fwstate(pmlmepriv); @@ -223,7 +223,7 @@ static int mp_stop_test(struct _adapter *padapter) unsigned long irqL; spin_lock_irqsave(&pmlmepriv->lock, irqL); - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == false) + if (!check_fwstate(pmlmepriv, WIFI_MP_STATE)) goto end_of_mp_stop_test; /* 3 1. disconnect psudo AdHoc */ r8712_os_indicate_disconnect(padapter); @@ -247,9 +247,9 @@ int mp_start_joinbss(struct _adapter *padapter, struct ndis_802_11_ssid *pssid) struct mlme_priv *pmlmepriv = &padapter->mlmepriv; unsigned char res = _SUCCESS; - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == false) + if (!check_fwstate(pmlmepriv, WIFI_MP_STATE)) return _FAIL; - if (check_fwstate(pmlmepriv, _FW_LINKED) == false) + if (!check_fwstate(pmlmepriv, _FW_LINKED)) return _FAIL; _clr_fwstate_(pmlmepriv, _FW_LINKED); res = r8712_setassocsta_cmd(padapter, pmppriv->network_macaddr); @@ -684,7 +684,7 @@ uint oid_rt_get_thermal_meter_hdl(struct oid_par_priv *poid_par_priv) if (poid_par_priv->type_of_oid != QUERY_OID) return RNDIS_STATUS_NOT_ACCEPTED; - if (Adapter->mppriv.act_in_progress == true) + if (Adapter->mppriv.act_in_progress) return RNDIS_STATUS_NOT_ACCEPTED; if (poid_par_priv->information_buf_len < sizeof(u8)) @@ -728,7 +728,7 @@ uint oid_rt_pro_read_efuse_hdl(struct oid_par_priv *poid_par_priv) if ((addr > 511) || (cnts < 1) || (cnts > 512) || (addr + cnts) > EFUSE_MAX_SIZE) return RNDIS_STATUS_NOT_ACCEPTED; - if (r8712_efuse_access(Adapter, true, addr, cnts, data) == false) + if (!r8712_efuse_access(Adapter, true, addr, cnts, data)) status = RNDIS_STATUS_FAILURE; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; return status; @@ -756,7 +756,7 @@ uint oid_rt_pro_write_efuse_hdl(struct oid_par_priv *poid_par_priv) if ((addr > 511) || (cnts < 1) || (cnts > 512) || (addr + cnts) > r8712_efuse_get_max_size(Adapter)) return RNDIS_STATUS_NOT_ACCEPTED; - if (r8712_efuse_access(Adapter, false, addr, cnts, data) == false) + if (!r8712_efuse_access(Adapter, false, addr, cnts, data)) status = RNDIS_STATUS_FAILURE; return status; } @@ -824,7 +824,7 @@ uint oid_rt_pro_efuse_map_hdl(struct oid_par_priv *poid_par_priv) status = RNDIS_STATUS_FAILURE; } else { /* SET_OID */ - if (r8712_efuse_reg_init(Adapter) == true) { + if (r8712_efuse_reg_init(Adapter)) { if (r8712_efuse_map_write(Adapter, 0, EFUSE_MAP_MAX_SIZE, data)) *poid_par_priv->bytes_rw = EFUSE_MAP_MAX_SIZE; diff --git a/drivers/staging/rtl8712/rtl871x_pwrctrl.c b/drivers/staging/rtl8712/rtl871x_pwrctrl.c index 9bc04f474d18..bf10d6db50e8 100644 --- a/drivers/staging/rtl8712/rtl871x_pwrctrl.c +++ b/drivers/staging/rtl8712/rtl871x_pwrctrl.c @@ -44,8 +44,7 @@ void r8712_set_rpwm(struct _adapter *padapter, u8 val8) if (pwrpriv->rpwm_retry == 0) return; } - if ((padapter->bDriverStopped == true) || - (padapter->bSurpriseRemoved == true)) + if (padapter->bDriverStopped || padapter->bSurpriseRemoved) return; rpwm = val8 | pwrpriv->tog; switch (val8) { @@ -129,8 +128,7 @@ static void _rpwm_check_handler (struct _adapter *padapter) { struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; - if (padapter->bDriverStopped == true || - padapter->bSurpriseRemoved == true) + if (padapter->bDriverStopped || padapter->bSurpriseRemoved) return; if (pwrpriv->cpwm != pwrpriv->rpwm) schedule_work(&pwrpriv->rpwm_workitem); diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c index 046a46c4cd7f..8a544364b86b 100644 --- a/drivers/staging/rtl8712/rtl871x_recv.c +++ b/drivers/staging/rtl8712/rtl871x_recv.c @@ -147,7 +147,7 @@ void r8712_free_recvframe_queue(struct __queue *pframequeue, spin_lock(&pframequeue->lock); phead = &pframequeue->queue; plist = phead->next; - while (end_of_queue_search(phead, plist) == false) { + while (!end_of_queue_search(phead, plist)) { precvframe = LIST_CONTAINOR(plist, union recv_frame, u); plist = plist->next; r8712_free_recvframe(precvframe, pfree_recv_queue); @@ -178,7 +178,7 @@ sint r8712_recvframe_chkmic(struct _adapter *adapter, idx = iv[3]; mickey = &psecuritypriv->XGrprxmickey[(((idx >> 6) & 0x3)) - 1].skey[0]; - if (psecuritypriv->binstallGrpkey == false) + if (!psecuritypriv->binstallGrpkey) return _FAIL; } else mickey = &stainfo->tkiprxmickey.skey[0]; @@ -197,16 +197,15 @@ sint r8712_recvframe_chkmic(struct _adapter *adapter, if (miccode[i] != *(pframemic + i)) bmic_err = true; } - if (bmic_err == true) { - if (prxattrib->bdecrypted == true) + if (bmic_err) { + if (prxattrib->bdecrypted) r8712_handle_tkip_mic_err(adapter, (u8)IS_MCAST(prxattrib->ra)); res = _FAIL; } else { /* mic checked ok */ - if ((psecuritypriv->bcheck_grpkey == - false) && (IS_MCAST(prxattrib->ra) == - true)) + if (!psecuritypriv->bcheck_grpkey && + IS_MCAST(prxattrib->ra)) psecuritypriv->bcheck_grpkey = true; } recvframe_pull_tail(precvframe, 8); @@ -224,7 +223,7 @@ union recv_frame *r8712_decryptor(struct _adapter *padapter, union recv_frame *return_packet = precv_frame; if ((prxattrib->encrypt > 0) && ((prxattrib->bdecrypted == 0) || - (psecuritypriv->sw_decrypt == true))) { + psecuritypriv->sw_decrypt)) { psecuritypriv->hw_decrypted = false; switch (prxattrib->encrypt) { case _WEP40_: @@ -324,8 +323,8 @@ static sint sta2sta_data_frame(struct _adapter *adapter, u8 *sta_addr = NULL; sint bmcast = IS_MCAST(pattrib->dst); - if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) || - (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)) { + if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) || + check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) { /* filter packets that SA is myself or multicast or broadcast */ if (!memcmp(myhwaddr, pattrib->src, ETH_ALEN)) return _FAIL; @@ -336,13 +335,13 @@ static sint sta2sta_data_frame(struct _adapter *adapter, (memcmp(pattrib->bssid, mybssid, ETH_ALEN))) return _FAIL; sta_addr = pattrib->src; - } else if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) { + } else if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { /* For Station mode, sa and bssid should always be BSSID, * and DA is my mac-address */ if (memcmp(pattrib->bssid, pattrib->src, ETH_ALEN)) return _FAIL; sta_addr = pattrib->bssid; - } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) { + } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { if (bmcast) { /* For AP mode, if DA == MCAST, then BSSID should * be also MCAST */ @@ -355,7 +354,7 @@ static sint sta2sta_data_frame(struct _adapter *adapter, return _FAIL; sta_addr = pattrib->src; } - } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { + } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN); memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN); @@ -369,7 +368,7 @@ static sint sta2sta_data_frame(struct _adapter *adapter, else *psta = r8712_get_stainfo(pstapriv, sta_addr); /* get ap_info */ if (*psta == NULL) { - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) + if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) adapter->mppriv.rx_pktloss++; return _FAIL; } @@ -388,8 +387,8 @@ static sint ap2sta_data_frame(struct _adapter *adapter, u8 *myhwaddr = myid(&adapter->eeprompriv); sint bmcast = IS_MCAST(pattrib->dst); - if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) - && (check_fwstate(pmlmepriv, _FW_LINKED) == true)) { + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) && + check_fwstate(pmlmepriv, _FW_LINKED)) { /* if NULL-frame, drop packet */ if ((GetFrameSubType(ptr)) == WIFI_DATA_NULL) return _FAIL; @@ -419,8 +418,8 @@ static sint ap2sta_data_frame(struct _adapter *adapter, *psta = r8712_get_stainfo(pstapriv, pattrib->bssid); if (*psta == NULL) return _FAIL; - } else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && - (check_fwstate(pmlmepriv, _FW_LINKED) == true)) { + } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) && + check_fwstate(pmlmepriv, _FW_LINKED)) { memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN); memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN); @@ -444,7 +443,7 @@ static sint sta2ap_data_frame(struct _adapter *adapter, struct mlme_priv *pmlmepriv = &adapter->mlmepriv; unsigned char *mybssid = get_bssid(pmlmepriv); - if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) { + if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { /* For AP mode, if DA is non-MCAST, then it must be BSSID, * and bssid == BSSID * For AP mode, RA=BSSID, TX=STA(SRC_ADDR), A3=DST_ADDR */ @@ -630,7 +629,7 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe) rmv_len = pattrib->hdrlen + pattrib->iv_len + (bsnaphdr ? SNAP_SIZE : 0); len = precvframe->u.hdr.len - rmv_len; - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { + if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { ptr += rmv_len; *ptr = 0x87; *(ptr+1) = 0x12; diff --git a/drivers/staging/rtl8712/rtl871x_security.c b/drivers/staging/rtl8712/rtl871x_security.c index 862792826dc5..48b05578e80e 100644 --- a/drivers/staging/rtl8712/rtl871x_security.c +++ b/drivers/staging/rtl8712/rtl871x_security.c @@ -675,7 +675,7 @@ u32 r8712_tkip_decrypt(struct _adapter *padapter, u8 *precvframe) idx = iv[3]; prwskey = &psecuritypriv->XGrpKey[ ((idx >> 6) & 0x3) - 1].skey[0]; - if (psecuritypriv->binstallGrpkey == false) + if (!psecuritypriv->binstallGrpkey) return _FAIL; } else prwskey = &stainfo->x_UncstKey.skey[0]; @@ -1374,7 +1374,7 @@ u32 r8712_aes_decrypt(struct _adapter *padapter, u8 *precvframe) idx = iv[3]; prwskey = &psecuritypriv->XGrpKey[ ((idx >> 6) & 0x3) - 1].skey[0]; - if (psecuritypriv->binstallGrpkey == false) + if (!psecuritypriv->binstallGrpkey) return _FAIL; } else diff --git a/drivers/staging/rtl8712/rtl871x_sta_mgt.c b/drivers/staging/rtl8712/rtl871x_sta_mgt.c index 6ae8cdc1bfd1..400dfb612183 100644 --- a/drivers/staging/rtl8712/rtl871x_sta_mgt.c +++ b/drivers/staging/rtl8712/rtl871x_sta_mgt.c @@ -83,7 +83,7 @@ static void mfree_all_stainfo(struct sta_priv *pstapriv) spin_lock_irqsave(&pstapriv->sta_hash_lock, irqL); phead = &pstapriv->free_sta_queue.queue; plist = phead->next; - while ((end_of_queue_search(phead, plist)) == false) + while (!end_of_queue_search(phead, plist)) plist = plist->next; spin_unlock_irqrestore(&pstapriv->sta_hash_lock, irqL); @@ -222,7 +222,7 @@ void r8712_free_all_stainfo(struct _adapter *padapter) for (index = 0; index < NUM_STA; index++) { phead = &(pstapriv->sta_hash[index]); plist = phead->next; - while ((end_of_queue_search(phead, plist)) == false) { + while (!end_of_queue_search(phead, plist)) { psta = LIST_CONTAINOR(plist, struct sta_info, hash_list); plist = plist->next; @@ -247,7 +247,7 @@ struct sta_info *r8712_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) spin_lock_irqsave(&pstapriv->sta_hash_lock, irqL); phead = &(pstapriv->sta_hash[index]); plist = phead->next; - while ((end_of_queue_search(phead, plist)) == false) { + while (!end_of_queue_search(phead, plist)) { psta = LIST_CONTAINOR(plist, struct sta_info, hash_list); if ((!memcmp(psta->hwaddr, hwaddr, ETH_ALEN))) { /* if found the matched address */ diff --git a/drivers/staging/rtl8712/rtl871x_xmit.c b/drivers/staging/rtl8712/rtl871x_xmit.c index 2e4fa88951ad..d41413991017 100644 --- a/drivers/staging/rtl8712/rtl871x_xmit.c +++ b/drivers/staging/rtl8712/rtl871x_xmit.c @@ -217,8 +217,8 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, memcpy(pattrib->dst, ðerhdr.h_dest, ETH_ALEN); memcpy(pattrib->src, ðerhdr.h_source, ETH_ALEN); pattrib->pctrl = 0; - if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) || - (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)) { + if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) || + check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) { memcpy(pattrib->ra, pattrib->dst, ETH_ALEN); memcpy(pattrib->ta, pattrib->src, ETH_ALEN); } else if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { @@ -227,7 +227,7 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { memcpy(pattrib->ra, pattrib->dst, ETH_ALEN); memcpy(pattrib->ta, get_bssid(pmlmepriv), ETH_ALEN); - } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { + } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { /*firstly, filter packet not belongs to mp*/ if (pattrib->ether_type != 0x8712) return _FAIL; @@ -267,7 +267,7 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, psta = r8712_get_bcmc_stainfo(padapter); pattrib->mac_id = 4; } else { - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { + if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { psta = r8712_get_stainfo(pstapriv, get_bssid(pmlmepriv)); pattrib->mac_id = 5; @@ -300,10 +300,10 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, pattrib->subtype = WIFI_DATA_TYPE; pattrib->priority = 0; } - if (psta->ieee8021x_blocked == true) { + if (psta->ieee8021x_blocked) { pattrib->encrypt = 0; if ((pattrib->ether_type != 0x888e) && - (check_fwstate(pmlmepriv, WIFI_MP_STATE) == false)) + !check_fwstate(pmlmepriv, WIFI_MP_STATE)) return _FAIL; } else GET_ENCRY_ALGO(psecuritypriv, psta, pattrib->encrypt, bmcast); @@ -330,14 +330,14 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, } if (pattrib->encrypt && - ((padapter->securitypriv.sw_encrypt == true) || - (psecuritypriv->hw_decrypted == false))) + (padapter->securitypriv.sw_encrypt || + !psecuritypriv->hw_decrypted)) pattrib->bswenc = true; else pattrib->bswenc = false; /* if in MP_STATE, update pkt_attrib from mp_txcmd, and overwrite * some settings above.*/ - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) + if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) pattrib->priority = (txdesc.txdw1 >> QSEL_SHT) & 0x1f; return _SUCCESS; } @@ -483,28 +483,28 @@ static sint make_wlanhdr(struct _adapter *padapter, u8 *hdr, memset(hdr, 0, WLANHDR_OFFSET); SetFrameSubType(fctrl, pattrib->subtype); if (pattrib->subtype & WIFI_DATA_TYPE) { - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) { + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { /* to_ds = 1, fr_ds = 0; */ SetToDs(fctrl); memcpy(pwlanhdr->addr1, get_bssid(pmlmepriv), ETH_ALEN); memcpy(pwlanhdr->addr2, pattrib->src, ETH_ALEN); memcpy(pwlanhdr->addr3, pattrib->dst, ETH_ALEN); - } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) { + } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { /* to_ds = 0, fr_ds = 1; */ SetFrDs(fctrl); memcpy(pwlanhdr->addr1, pattrib->dst, ETH_ALEN); memcpy(pwlanhdr->addr2, get_bssid(pmlmepriv), ETH_ALEN); memcpy(pwlanhdr->addr3, pattrib->src, ETH_ALEN); - } else if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) - || (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) - == true)) { + } else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) || + check_fwstate(pmlmepriv, + WIFI_ADHOC_MASTER_STATE)) { memcpy(pwlanhdr->addr1, pattrib->dst, ETH_ALEN); memcpy(pwlanhdr->addr2, pattrib->src, ETH_ALEN); memcpy(pwlanhdr->addr3, get_bssid(pmlmepriv), ETH_ALEN); - } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { + } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { memcpy(pwlanhdr->addr1, pattrib->dst, ETH_ALEN); memcpy(pwlanhdr->addr2, pattrib->src, ETH_ALEN); memcpy(pwlanhdr->addr3, get_bssid(pmlmepriv), @@ -609,7 +609,7 @@ sint r8712_xmitframe_coalesce(struct _adapter *padapter, _pkt *pkt, return _FAIL; _r8712_open_pktfile(pkt, &pktfile); _r8712_pktfile_read(&pktfile, NULL, (uint) pattrib->pkt_hdrlen); - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { + if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { /* truncate TXDESC_SIZE bytes txcmd if at mp mode for 871x */ if (pattrib->ether_type == 0x8712) { /* take care - update_txdesc overwrite this */ @@ -680,7 +680,7 @@ sint r8712_xmitframe_coalesce(struct _adapter *padapter, _pkt *pkt, pframe += pattrib->icv_len; } frg_inx++; - if (bmcst || (r8712_endofpktfile(&pktfile) == true)) { + if (bmcst || r8712_endofpktfile(&pktfile)) { pattrib->nr_frags = frg_inx; pattrib->last_txcmdsz = pattrib->hdrlen + pattrib->iv_len + @@ -855,7 +855,7 @@ void r8712_free_xmitframe_queue(struct xmit_priv *pxmitpriv, spin_lock_irqsave(&(pframequeue->lock), irqL); phead = &pframequeue->queue; plist = phead->next; - while (end_of_queue_search(phead, plist) == false) { + while (!end_of_queue_search(phead, plist)) { pxmitframe = LIST_CONTAINOR(plist, struct xmit_frame, list); plist = plist->next; r8712_free_xmitframe(pxmitpriv, pxmitframe); @@ -923,7 +923,7 @@ sint r8712_xmit_classifier(struct _adapter *padapter, if (bmcst) psta = r8712_get_bcmc_stainfo(padapter); else { - if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) + if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) psta = r8712_get_stainfo(pstapriv, get_bssid(pmlmepriv)); else diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c index d1ff7c9d66ba..91d33e77b434 100644 --- a/drivers/staging/rtl8712/usb_intf.c +++ b/drivers/staging/rtl8712/usb_intf.c @@ -302,7 +302,7 @@ void rtl871x_intf_stop(struct _adapter *padapter) void r871x_dev_unload(struct _adapter *padapter) { - if (padapter->bup == true) { + if (padapter->bup) { /*s1.*/ padapter->bDriverStopped = true; @@ -611,7 +611,7 @@ static void r871xu_dev_remove(struct usb_interface *pusb_intf) release_firmware(padapter->fw); /* never exit with a firmware callback pending */ wait_for_completion(&padapter->rtl8712_fw_ready); - if (drvpriv.drv_registered == true) + if (drvpriv.drv_registered) padapter->bSurpriseRemoved = true; unregister_netdev(pnetdev); /* will call netdev_close() */ flush_scheduled_work(); diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index c940722fbfd3..e33eeedfdddf 100644 --- a/drivers/staging/rtl8712/usb_ops_linux.c +++ b/drivers/staging/rtl8712/usb_ops_linux.c @@ -266,7 +266,7 @@ u32 r8712_usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem) if (adapter->bDriverStopped || adapter->bSurpriseRemoved || adapter->pwrctrlpriv.pnp_bstop_trx) return _FAIL; - if (!precvbuf->reuse == false || !precvbuf->pskb) { + if (precvbuf->reuse || !precvbuf->pskb) { precvbuf->pskb = skb_dequeue(&precvpriv->free_recv_skb_queue); if (precvbuf->pskb != NULL) precvbuf->reuse = true; @@ -330,13 +330,13 @@ void r8712_xmit_bh(void *priv) struct _adapter *padapter = (struct _adapter *)priv; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; - if ((padapter->bDriverStopped == true) || - (padapter->bSurpriseRemoved == true)) { + if (padapter->bDriverStopped || + padapter->bSurpriseRemoved) { netdev_err(padapter->pnetdev, "xmit_bh => bDriverStopped or bSurpriseRemoved\n"); return; } ret = r8712_xmitframe_complete(padapter, pxmitpriv, NULL); - if (ret == false) + if (!ret) return; tasklet_hi_schedule(&pxmitpriv->xmit_tasklet); } @@ -410,7 +410,7 @@ u32 r8712_usb_write_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *wmem) (padapter->pwrctrlpriv.pnp_bstop_trx)) return _FAIL; for (i = 0; i < 8; i++) { - if (pxmitframe->bpending[i] == false) { + if (!pxmitframe->bpending[i]) { spin_lock_irqsave(&pxmitpriv->lock, irqL); pxmitpriv->txirp_cnt++; pxmitframe->bpending[i] = true; diff --git a/drivers/staging/rtl8712/xmit_linux.c b/drivers/staging/rtl8712/xmit_linux.c index d15fb1ad45b9..d3981836ce26 100644 --- a/drivers/staging/rtl8712/xmit_linux.c +++ b/drivers/staging/rtl8712/xmit_linux.c @@ -166,7 +166,7 @@ int r8712_xmit_entry(_pkt *pkt, struct net_device *pnetdev) struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); int ret = 0; - if (r8712_if_up(padapter) == false) { + if (!r8712_if_up(padapter)) { ret = 0; goto _xmit_entry_drop; } @@ -181,7 +181,7 @@ int r8712_xmit_entry(_pkt *pkt, struct net_device *pnetdev) } padapter->ledpriv.LedControlHandler(padapter, LED_CTL_TX); pxmitframe->pkt = pkt; - if (r8712_pre_xmit(padapter, pxmitframe) == true) { + if (r8712_pre_xmit(padapter, pxmitframe)) { /*dump xmitframe directly or drop xframe*/ dev_kfree_skb_any(pkt); pxmitframe->pkt = NULL; From 168a2c10288d78f1e8504d132f59bb407f4fb9a6 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Mon, 19 Oct 2015 18:15:29 +0100 Subject: [PATCH 2155/2431] staging: rtl8712: braces should be used on all arms Fix all instances of the following checkpatch.pl check: CHECK: braces {} should be used on all arms of this statement Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/hal_init.c | 11 ++-- drivers/staging/rtl8712/ieee80211.c | 15 ++++-- drivers/staging/rtl8712/rtl8712_cmd.c | 6 ++- drivers/staging/rtl8712/rtl8712_efuse.c | 20 +++++--- drivers/staging/rtl8712/rtl8712_led.c | 15 ++++-- drivers/staging/rtl8712/rtl8712_recv.c | 16 +++--- drivers/staging/rtl8712/rtl8712_xmit.c | 10 ++-- drivers/staging/rtl8712/rtl871x_cmd.c | 7 +-- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 50 +++++++++++-------- drivers/staging/rtl8712/rtl871x_ioctl_rtl.c | 40 +++++++++------ drivers/staging/rtl8712/rtl871x_ioctl_set.c | 3 +- drivers/staging/rtl8712/rtl871x_mlme.c | 29 +++++++---- drivers/staging/rtl8712/rtl871x_mp.c | 6 ++- drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 18 ++++--- drivers/staging/rtl8712/rtl871x_recv.c | 27 ++++++---- drivers/staging/rtl8712/rtl871x_security.c | 21 +++++--- drivers/staging/rtl8712/rtl871x_sta_mgt.c | 4 +- drivers/staging/rtl8712/rtl871x_xmit.c | 37 +++++++------- drivers/staging/rtl8712/usb_halinit.c | 3 +- drivers/staging/rtl8712/usb_intf.c | 9 ++-- drivers/staging/rtl8712/usb_ops_linux.c | 6 ++- 21 files changed, 216 insertions(+), 137 deletions(-) diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index e0ae57d32fa1..8008efe5686d 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -191,9 +191,9 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) imem_sz = fwhdr.img_IMEM_size; do { memset(ptx_desc, 0, TXDESC_SIZE); - if (imem_sz > MAX_DUMP_FWSZ/*49152*/) + if (imem_sz > MAX_DUMP_FWSZ/*49152*/) { dump_imem_sz = MAX_DUMP_FWSZ; - else { + } else { dump_imem_sz = imem_sz; ptx_desc->txdw0 |= cpu_to_le32(BIT(28)); } @@ -309,8 +309,9 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter) } if (i == 0) goto exit_fail; - } else + } else { goto exit_fail; + } ret = _SUCCESS; exit_fail: @@ -386,9 +387,9 @@ uint rtl871x_hal_init(struct _adapter *padapter) return _FAIL; if (padapter->halpriv.hal_bus_init(padapter) != _SUCCESS) return _FAIL; - if (rtl8712_hal_init(padapter) == _SUCCESS) + if (rtl8712_hal_init(padapter) == _SUCCESS) { padapter->hw_init_completed = true; - else { + } else { padapter->hw_init_completed = false; return _FAIL; } diff --git a/drivers/staging/rtl8712/ieee80211.c b/drivers/staging/rtl8712/ieee80211.c index 261a97304dfe..3c38fcbc4364 100644 --- a/drivers/staging/rtl8712/ieee80211.c +++ b/drivers/staging/rtl8712/ieee80211.c @@ -304,8 +304,9 @@ int r8712_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, *group_cipher = r8712_get_wpa_cipher_suite(pos); pos += WPA_SELECTOR_LEN; left -= WPA_SELECTOR_LEN; - } else if (left > 0) + } else if (left > 0) { return _FAIL; + } /*pairwise_cipher*/ if (left >= 2) { count = le16_to_cpu(*(u16 *)pos); @@ -318,8 +319,9 @@ int r8712_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, pos += WPA_SELECTOR_LEN; left -= WPA_SELECTOR_LEN; } - } else if (left == 1) + } else if (left == 1) { return _FAIL; + } return _SUCCESS; } @@ -344,8 +346,9 @@ int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, *group_cipher = r8712_get_wpa2_cipher_suite(pos); pos += RSN_SELECTOR_LEN; left -= RSN_SELECTOR_LEN; - } else if (left > 0) + } else if (left > 0) { return _FAIL; + } /*pairwise_cipher*/ if (left >= 2) { count = le16_to_cpu(*(u16 *)pos); @@ -358,8 +361,9 @@ int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, pos += RSN_SELECTOR_LEN; left -= RSN_SELECTOR_LEN; } - } else if (left == 1) + } else if (left == 1) { return _FAIL; + } return _SUCCESS; } @@ -385,8 +389,9 @@ int r8712_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len, in_ie[cnt + 1] + 2); *rsn_len = in_ie[cnt+1] + 2; cnt += in_ie[cnt+1] + 2; /*get next*/ - } else + } else { cnt += in_ie[cnt+1] + 2; /*get next*/ + } } } return *rsn_len + *wpa_len; diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index 39b63207fa52..ac6c22f98db8 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -405,10 +405,12 @@ _next: if (list_empty(&pcmdpriv->cmd_queue.queue)) { r8712_unregister_cmd_alive(padapter); continue; - } else + } else { goto _next; - } else + } + } else { goto _next; + } flush_signals_thread(); } /* free all cmd_obj resources */ diff --git a/drivers/staging/rtl8712/rtl8712_efuse.c b/drivers/staging/rtl8712/rtl8712_efuse.c index 13d4b8dcf073..4dcc82632326 100644 --- a/drivers/staging/rtl8712/rtl8712_efuse.c +++ b/drivers/staging/rtl8712/rtl8712_efuse.c @@ -163,8 +163,9 @@ static u8 efuse_is_empty(struct _adapter *padapter, u8 *empty) *empty = true; else *empty = false; - } else + } else { ret = false; + } return ret; } @@ -229,8 +230,9 @@ u16 r8712_efuse_get_current_size(struct _adapter *padapter) word_cnts = calculate_word_cnts(hworden); /* read next header */ efuse_addr = efuse_addr + (word_cnts * 2) + 1; - } else + } else { bContinual = false; + } } return efuse_addr; } @@ -263,8 +265,9 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) if (efuse_one_byte_read(padapter, efuse_addr+1+tmpidx, &efuse_data)) { tmpdata[tmpidx] = efuse_data; - } else + } else { ret = false; + } } pgpacket_copy_data(hworden, tmpdata, data); } @@ -335,17 +338,17 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) efuse_one_byte_write(padapter, addr+1, pkt.data[i*2 + 1]); /* additional check */ - if (!efuse_one_byte_read(padapter, addr, &value)) + if (!efuse_one_byte_read(padapter, addr, &value)) { ret = false; - else if (pkt.data[i*2] != value) { + } else if (pkt.data[i*2] != value) { ret = false; if (0xFF == value) /* write again */ efuse_one_byte_write(padapter, addr, pkt.data[i * 2]); } - if (!efuse_one_byte_read(padapter, addr+1, &value)) + if (!efuse_one_byte_read(padapter, addr+1, &value)) { ret = false; - else if (pkt.data[i*2 + 1] != value) { + } else if (pkt.data[i*2 + 1] != value) { ret = false; if (0xFF == value) /* write again */ efuse_one_byte_write(padapter, addr+1, @@ -503,8 +506,9 @@ u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr, u16 cnts, if (efuse_is_empty(padapter, &empty)) { if (empty) memset(pktdata, 0xFF, PGPKT_DATA_SIZE); - } else + } else { return false; + } offset = (addr >> 3) & 0xF; if (!empty) if (!r8712_efuse_pg_packet_read(padapter, offset, pktdata)) diff --git a/drivers/staging/rtl8712/rtl8712_led.c b/drivers/staging/rtl8712/rtl8712_led.c index 48d744df47df..79981b591d91 100644 --- a/drivers/staging/rtl8712/rtl8712_led.c +++ b/drivers/staging/rtl8712/rtl8712_led.c @@ -297,14 +297,16 @@ static void SwLedBlink1(struct LED_871x *pLed) if (!pLed1->bSWLedCtrl) { SwLedOn(padapter, pLed1); pLed1->bSWLedCtrl = true; - } else if (!pLed1->bLedOn) + } else if (!pLed1->bLedOn) { SwLedOn(padapter, pLed1); + } } else { if (!pLed1->bSWLedCtrl) { SwLedOff(padapter, pLed1); pLed1->bSWLedCtrl = true; - } else if (pLed1->bLedOn) + } else if (pLed1->bLedOn) { SwLedOff(padapter, pLed1); + } } } switch (pLed->CurrLedState) { @@ -407,8 +409,9 @@ static void SwLedBlink1(struct LED_871x *pLed) mod_timer(&pLed->BlinkTimer, jiffies + msecs_to_jiffies(LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA)); bStopBlinking = false; - } else + } else { bStopBlinking = true; + } if (bStopBlinking) { pLed->bLedLinkBlinkInProgress = true; pLed->CurrLedState = LED_BLINK_NORMAL; @@ -570,8 +573,9 @@ static void SwLedBlink3(struct LED_871x *pLed) mod_timer(&pLed->BlinkTimer, jiffies + msecs_to_jiffies(LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA)); bStopBlinking = false; - } else + } else { bStopBlinking = true; + } if (bStopBlinking) { pLed->CurrLedState = LED_ON; pLed->BlinkingLedState = LED_ON; @@ -1317,8 +1321,9 @@ static void SwLedControlMode3(struct _adapter *padapter, if (pLed->bLedWPSBlinkInProgress) { del_timer(&pLed->BlinkTimer); pLed->bLedWPSBlinkInProgress = false; - } else + } else { pLed->bLedWPSBlinkInProgress = true; + } pLed->CurrLedState = LED_BLINK_WPS_STOP; if (pLed->bLedOn) { pLed->BlinkingLedState = LED_OFF; diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index 83cdb6146216..b6b2b4201b1c 100644 --- a/drivers/staging/rtl8712/rtl8712_recv.c +++ b/drivers/staging/rtl8712/rtl8712_recv.c @@ -180,8 +180,9 @@ static void update_recvframe_attrib_from_recvstat(struct rx_pkt_attrib *pattrib, pattrib->ip_chkrpt = 1; /* correct */ else pattrib->ip_chkrpt = 0; /* incorrect */ - } else + } else { pattrib->tcpchk_valid = 0; /* invalid */ + } pattrib->mcs_rate = (u8)((le32_to_cpu(prxstat->rxdw3)) & 0x3f); pattrib->htc = (u8)((le32_to_cpu(prxstat->rxdw3) >> 14) & 0x1); /*Offset 16*/ @@ -414,8 +415,9 @@ static int amsdu_to_msdu(struct _adapter *padapter, union recv_frame *prframe) if ((pattrib->tcpchk_valid == 1) && (pattrib->tcp_chkrpt == 1)) { sub_skb->ip_summed = CHECKSUM_UNNECESSARY; - } else + } else { sub_skb->ip_summed = CHECKSUM_NONE; + } netif_rx(sub_skb); } } @@ -580,8 +582,9 @@ static int recv_indicatepkt_reorder(struct _adapter *padapter, !padapter->bSurpriseRemoved) { r8712_recv_indicatepkt(padapter, prframe); return _SUCCESS; - } else + } else { return _FAIL; + } } } spin_lock_irqsave(&ppending_recvframe_queue->lock, irql); @@ -654,8 +657,9 @@ static int r8712_process_recv_indicatepkts(struct _adapter *padapter, if (!padapter->bDriverStopped && !padapter->bSurpriseRemoved) { /* indicate this recv_frame */ r8712_recv_indicatepkt(padapter, prframe); - } else + } else { return _FAIL; + } } return retval; } @@ -812,9 +816,9 @@ static void query_rx_phy_status(struct _adapter *padapter, /* * (3) Get Signal Quality (EVM) */ - if (pwdb_all > 40) + if (pwdb_all > 40) { sq = 100; - else { + } else { sq = pcck_buf->sq_rpt; if (pcck_buf->sq_rpt > 64) sq = 0; diff --git a/drivers/staging/rtl8712/rtl8712_xmit.c b/drivers/staging/rtl8712/rtl8712_xmit.c index 296591902e19..02140b0ebf7f 100644 --- a/drivers/staging/rtl8712/rtl8712_xmit.c +++ b/drivers/staging/rtl8712/rtl8712_xmit.c @@ -98,11 +98,11 @@ static u32 get_ff_hwaddr(struct xmit_frame *pxmitframe) struct _adapter *padapter = pxmitframe->padapter; struct dvobj_priv *pdvobj = &padapter->dvobjpriv; - if (pxmitframe->frame_tag == TXAGG_FRAMETAG) + if (pxmitframe->frame_tag == TXAGG_FRAMETAG) { addr = RTL8712_DMA_H2CCMD; - else if (pxmitframe->frame_tag == MGNT_FRAMETAG) + } else if (pxmitframe->frame_tag == MGNT_FRAMETAG) { addr = RTL8712_DMA_MGTQ; - else if (pdvobj->nr_endpoint == 6) { + } else if (pdvobj->nr_endpoint == 6) { switch (pattrib->priority) { case 0: case 3: @@ -239,9 +239,9 @@ void r8712_do_queue_select(struct _adapter *padapter, unsigned int qsel = 0; struct dvobj_priv *pdvobj = &padapter->dvobjpriv; - if (pdvobj->nr_endpoint == 6) + if (pdvobj->nr_endpoint == 6) { qsel = (unsigned int) pattrib->priority; - else if (pdvobj->nr_endpoint == 4) { + } else if (pdvobj->nr_endpoint == 4) { qsel = (unsigned int) pattrib->priority; if (qsel == 0 || qsel == 3) qsel = 3; diff --git a/drivers/staging/rtl8712/rtl871x_cmd.c b/drivers/staging/rtl8712/rtl871x_cmd.c index 83317815be40..1f6e69b1bba3 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.c +++ b/drivers/staging/rtl8712/rtl871x_cmd.c @@ -137,9 +137,9 @@ static struct cmd_obj *_dequeue_cmd(struct __queue *queue) struct cmd_obj *obj; spin_lock_irqsave(&(queue->lock), irqL); - if (list_empty(&(queue->queue))) + if (list_empty(&(queue->queue))) { obj = NULL; - else { + } else { obj = LIST_CONTAINOR(queue->queue.next, struct cmd_obj, list); list_del_init(&obj->list); @@ -538,8 +538,9 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) if (psecnetwork->IELength != tmp_len) { psecnetwork->IELength = tmp_len; pqospriv->qos_option = 1; /* WMM IE in beacon */ - } else + } else { pqospriv->qos_option = 0; /* no WMM IE in beacon */ + } } if (pregistrypriv->ht_enable) { /* For WEP mode, we will use the bg mode to do the connection diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index a7f581633c23..e70513d06a35 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -356,8 +356,9 @@ static int wpa_set_auth_algs(struct net_device *dev, u32 value) Ndis802_11AuthModeOpen; padapter->securitypriv.AuthAlgrthm = 0; } - } else + } else { ret = -EINVAL; + } return ret; } @@ -381,8 +382,9 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, /* for large key indices, set the default (0) */ param->u.crypt.idx = 0; } - } else + } else { return -EINVAL; + } if (strcmp(param->u.crypt.alg, "WEP") == 0) { netdev_info(dev, "r8712u: %s: crypt.alg = WEP\n", __func__); padapter->securitypriv.ndisencryptstatus = @@ -411,8 +413,9 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, padapter->securitypriv.XGrpPrivacy = _WEP104_; } - } else + } else { return -EINVAL; + } pwep->KeyIndex = wep_key_idx; pwep->KeyIndex |= 0x80000000; memcpy(pwep->KeyMaterial, param->u.crypt.key, pwep->KeyLength); @@ -587,8 +590,9 @@ static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie, netdev_info(padapter->pnetdev, "r8712u: SET WPS_IE, wps_phase==true\n"); cnt += buf[cnt+1]+2; break; - } else + } else { cnt += buf[cnt + 1] + 2; + } } } } @@ -639,8 +643,9 @@ static int r8711_wx_get_name(struct net_device *dev, snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11g"); } - } else + } else { snprintf(wrqu->name, IFNAMSIZ, "unassociated"); + } return 0; } @@ -674,14 +679,14 @@ static int r8711_wx_set_freq(struct net_device *dev, fwrq->m = c + 1; } /* Setting by channel number */ - if ((fwrq->m > 14) || (fwrq->e > 0)) + if ((fwrq->m > 14) || (fwrq->e > 0)) { rc = -EOPNOTSUPP; - else { + } else { int channel = fwrq->m; - if ((channel < 1) || (channel > 14)) + if ((channel < 1) || (channel > 14)) { rc = -EINVAL; - else { + } else { /* Yes ! We can set it !!! */ padapter->registrypriv.channel = channel; } @@ -1069,9 +1074,9 @@ static int r8711_wx_set_wap(struct net_device *dev, } spin_unlock_irqrestore(&queue->lock, irqL); if (!ret) { - if (!r8712_set_802_11_authentication_mode(padapter, authmode)) + if (!r8712_set_802_11_authentication_mode(padapter, authmode)) { ret = -ENOMEM; - else { + } else { if (!r8712_set_802_11_bssid(padapter, temp->sa_data)) ret = -1; } @@ -1167,12 +1172,14 @@ static int r8711_wx_set_scan(struct net_device *dev, (pmlmepriv->sitesurveyctrl.traffic_busy)) { if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) status = false; - } else + } else { status = r8712_sitesurvey_cmd(padapter, &ssid); + } spin_unlock_irqrestore(&pmlmepriv->lock, irqL); } - } else + } else { status = r8712_set_802_11_bssid_list_scan(padapter); + } if (!status) return -1; return 0; @@ -1379,8 +1386,9 @@ set_rate: datarates[i] = mpdatarate[i]; if (fixed == 0) break; - } else + } else { datarates[i] = 0xff; + } } if (r8712_setdatarate_cmd(padapter, datarates) != _SUCCESS) ret = -ENOMEM; @@ -1439,8 +1447,9 @@ static int r8711_wx_get_rate(struct net_device *dev, max_rate *= 2; /* Mbps/2 */ } wrqu->bitrate.value = max_rate * 500000; - } else + } else { return -ENOLINK; + } return 0; } @@ -1461,9 +1470,9 @@ static int r8711_wx_set_frag(struct net_device *dev, { struct _adapter *padapter = netdev_priv(dev); - if (wrqu->frag.disabled) + if (wrqu->frag.disabled) { padapter->xmitpriv.frag_len = MAX_FRAG_THRESHOLD; - else { + } else { if (wrqu->frag.value < MIN_FRAG_THRESHOLD || wrqu->frag.value > MAX_FRAG_THRESHOLD) return -EINVAL; @@ -1898,9 +1907,9 @@ static int r871x_mp_ioctl_hdl(struct net_device *dev, ret = -EINVAL; goto _r871x_mp_ioctl_hdl_exit; } - if (phandler->oid == 0 && phandler->handler) + if (phandler->oid == 0 && phandler->handler) { status = phandler->handler(&oid_par); - else if (phandler->handler) { + } else if (phandler->handler) { oid_par.adapter_context = padapter; oid_par.oid = phandler->oid; oid_par.information_buf = poidparam->data; @@ -1967,8 +1976,9 @@ static int r871x_get_ap_info(struct net_device *dev, if (pdata->length >= 32) { if (copy_from_user(data, pdata->pointer, 32)) return -EINVAL; - } else + } else { return -EINVAL; + } spin_lock_irqsave(&(pmlmepriv->scanned_queue.lock), irqL); phead = &queue->queue; plist = phead->next; diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c index d8e62ec697b3..b10b3e82994e 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c @@ -58,8 +58,9 @@ uint oid_rt_get_small_packet_crc_hdl(struct oid_par_priv *poid_par_priv) *(u32 *)poid_par_priv->information_buf = padapter->recvpriv.rx_smallpacket_crcerr; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -74,8 +75,9 @@ uint oid_rt_get_middle_packet_crc_hdl(struct oid_par_priv *poid_par_priv) *(u32 *)poid_par_priv->information_buf = padapter->recvpriv.rx_middlepacket_crcerr; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -90,8 +92,9 @@ uint oid_rt_get_large_packet_crc_hdl(struct oid_par_priv *poid_par_priv) *(u32 *)poid_par_priv->information_buf = padapter->recvpriv.rx_largepacket_crcerr; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -122,8 +125,9 @@ uint oid_rt_get_rx_total_packet_hdl(struct oid_par_priv *poid_par_priv) padapter->recvpriv.rx_pkts + padapter->recvpriv.rx_drop; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -152,8 +156,9 @@ uint oid_rt_get_rx_icv_err_hdl(struct oid_par_priv *poid_par_priv) *(uint *)poid_par_priv->information_buf = padapter->recvpriv.rx_icv_err; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -182,8 +187,9 @@ uint oid_rt_get_preamble_mode_hdl(struct oid_par_priv *poid_par_priv) preamblemode = 2; *(u32 *)poid_par_priv->information_buf = preamblemode; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -239,8 +245,9 @@ uint oid_rt_set_preamble_mode_hdl(struct oid_par_priv padapter->registrypriv.preamble = PREAMBLE_SHORT; *(u32 *)poid_par_priv->information_buf = preamblemode; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -269,8 +276,9 @@ uint oid_rt_get_total_tx_bytes_hdl(struct oid_par_priv *(u32 *)poid_par_priv->information_buf = padapter->xmitpriv.tx_bytes; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -287,8 +295,9 @@ uint oid_rt_get_total_rx_bytes_hdl(struct oid_par_priv padapter->recvpriv.rx_bytes; *poid_par_priv->bytes_rw = poid_par_priv-> information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -364,8 +373,9 @@ uint oid_rt_supported_wireless_mode_hdl(struct oid_par_priv ulInfo |= 0x0400; /* WIRELESS_MODE_A */ *(u32 *) poid_par_priv->information_buf = ulInfo; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { return RNDIS_STATUS_INVALID_LENGTH; + } return RNDIS_STATUS_SUCCESS; } @@ -451,8 +461,9 @@ uint oid_rt_pro_rf_write_registry_hdl(struct oid_par_priv* (unsigned long)(*((unsigned long *) poid_par_priv->information_buf + 2)))) status = RNDIS_STATUS_NOT_ACCEPTED; - } else + } else { status = RNDIS_STATUS_INVALID_LENGTH; + } return status; } @@ -465,9 +476,9 @@ uint oid_rt_pro_rf_read_registry_hdl(struct oid_par_priv *poid_par_priv) if (poid_par_priv->type_of_oid != SET_OID) /* QUERY_OID */ return RNDIS_STATUS_NOT_ACCEPTED; if (poid_par_priv->information_buf_len == (sizeof(unsigned long)*3)) { - if (Adapter->mppriv.act_in_progress) + if (Adapter->mppriv.act_in_progress) { status = RNDIS_STATUS_NOT_ACCEPTED; - else { + } else { /* init workparam */ Adapter->mppriv.act_in_progress = true; Adapter->mppriv.workparam.bcompleted = false; @@ -489,8 +500,9 @@ uint oid_rt_pro_rf_read_registry_hdl(struct oid_par_priv *poid_par_priv) io_value)) status = RNDIS_STATUS_NOT_ACCEPTED; } - } else + } else { status = RNDIS_STATUS_INVALID_LENGTH; + } return status; } diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_set.c b/drivers/staging/rtl8712/rtl871x_ioctl_set.c index 67a2695fbeed..ab84a4032fe4 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_set.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_set.c @@ -207,9 +207,10 @@ void r8712_set_802_11_ssid(struct _adapter *padapter, set_fwstate(pmlmepriv, WIFI_ADHOC_STATE); } - } else + } else { goto _Abort_Set_SSID; /* driver is in * WIFI_ADHOC_MASTER_STATE */ + } } } else { r8712_disassoc_cmd(padapter); diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index c1890f54b527..98113c4e699e 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.c +++ b/drivers/staging/rtl8712/rtl871x_mlme.c @@ -191,8 +191,9 @@ sint r8712_if_up(struct _adapter *padapter) if (padapter->bDriverStopped || padapter->bSurpriseRemoved || !check_fwstate(&padapter->mlmepriv, _FW_LINKED)) { res = false; - } else + } else { res = true; + } return res; } @@ -354,8 +355,9 @@ static void update_network(struct wlan_bssid_ex *dst, padapter->recvpriv.signal = (u8)tmpVal; src->Rssi = padapter->recvpriv.signal; - } else + } else { src->Rssi = (src->Rssi + dst->Rssi) / 2; + } memcpy((u8 *)dst, (u8 *)src, r8712_get_wlan_bssid_ex_sz(src)); } @@ -552,9 +554,9 @@ void r8712_survey_event_callback(struct _adapter *adapter, u8 *pbuf) } /* lock pmlmepriv->lock when you accessing network_q */ if (!check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { - if (pnetwork->Ssid.Ssid[0] != 0) + if (pnetwork->Ssid.Ssid[0] != 0) { rtl8711_add_network(adapter, pnetwork); - else { + } else { pnetwork->Ssid.SsidLength = 8; memcpy(pnetwork->Ssid.Ssid, "", 8); rtl8711_add_network(adapter, pnetwork); @@ -719,8 +721,9 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) return; memcpy((u8 *)pnetwork+16, (u8 *)pbuf + 8, sizeof(struct wlan_network) - 16); - } else + } else { pnetwork = (struct wlan_network *)pbuf; + } #ifdef __BIG_ENDIAN /* endian_convert */ @@ -767,12 +770,12 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { /*s1. find ptarget_wlan*/ if (check_fwstate(pmlmepriv, _FW_LINKED)) { - if (the_same_macaddr) + if (the_same_macaddr) { ptarget_wlan = r8712_find_network(&pmlmepriv-> scanned_queue, cur_network->network.MacAddress); - else { + } else { pcur_wlan = r8712_find_network(&pmlmepriv-> scanned_queue, @@ -821,10 +824,11 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) ptarget_sta = r8712_alloc_stainfo(pstapriv, pnetwork->network.MacAddress); - } else + } else { ptarget_sta = r8712_alloc_stainfo(pstapriv, pnetwork->network.MacAddress); + } if (ptarget_sta) /*update ptarget_sta*/ { ptarget_sta->aid = pnetwork->join_res; ptarget_sta->qos_option = 1; @@ -900,8 +904,9 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) r8712_indicate_connect(adapter); del_timer(&pmlmepriv->assoc_timer); - } else + } else { goto ignore_joinbss_callback; + } } else { if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { mod_timer(&pmlmepriv->assoc_timer, @@ -1163,8 +1168,9 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) } goto ask_for_joinbss; } - } else if (pmlmepriv->assoc_ssid.SsidLength == 0) + } else if (pmlmepriv->assoc_ssid.SsidLength == 0) { goto ask_for_joinbss; + } dst_ssid = pnetwork->network.Ssid.Ssid; src_ssid = pmlmepriv->assoc_ssid.Ssid; if ((pnetwork->network.Ssid.SsidLength == @@ -1178,8 +1184,9 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) if (pnetwork->network.Rssi > pnetwork_max_rssi->network.Rssi) pnetwork_max_rssi = pnetwork; - } else + } else { pnetwork_max_rssi = pnetwork; + } } else if (is_desired_network(adapter, pnetwork)) { if (check_fwstate(pmlmepriv, _FW_LINKED)) { r8712_disassoc_cmd(adapter); diff --git a/drivers/staging/rtl8712/rtl871x_mp.c b/drivers/staging/rtl8712/rtl871x_mp.c index 26201ea3cca6..678305501d63 100644 --- a/drivers/staging/rtl8712/rtl871x_mp.c +++ b/drivers/staging/rtl8712/rtl871x_mp.c @@ -237,8 +237,9 @@ static u8 set_bb_reg(struct _adapter *pAdapter, org_value = r8712_bb_reg_read(pAdapter, offset); bit_shift = bitshift(bitmask); new_value = ((org_value & (~bitmask)) | (value << bit_shift)); - } else + } else { new_value = value; + } return r8712_bb_reg_write(pAdapter, offset, new_value); } @@ -262,8 +263,9 @@ static u8 set_rf_reg(struct _adapter *pAdapter, u8 path, u8 offset, u32 bitmask, org_value = r8712_rf_reg_read(pAdapter, path, offset); bit_shift = bitshift(bitmask); new_value = ((org_value & (~bitmask)) | (value << bit_shift)); - } else + } else { new_value = value; + } return r8712_rf_reg_write(pAdapter, path, offset, new_value); } diff --git a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c index 7b00c350d147..26786ad19b71 100644 --- a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c +++ b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c @@ -56,8 +56,9 @@ uint oid_rt_wireless_mode_hdl(struct oid_par_priv *poid_par_priv) Adapter->registrypriv.wireless_mode; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { status = RNDIS_STATUS_INVALID_LENGTH; + } } else { status = RNDIS_STATUS_NOT_ACCEPTED; } @@ -178,8 +179,9 @@ static int mp_start_test(struct _adapter *padapter) if (length % 4) { /*round up to multiple of 4 bytes.*/ bssid.Length = ((length >> 2) + 1) << 2; - } else + } else { bssid.Length = length; + } spin_lock_irqsave(&pmlmepriv->lock, irqL); if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) goto end_of_mp_start_test; @@ -388,8 +390,9 @@ uint oid_rt_pro_query_tx_packet_sent_hdl( *(u32 *)poid_par_priv->information_buf = Adapter->mppriv.tx_pktcount; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { status = RNDIS_STATUS_INVALID_LENGTH; + } return status; } @@ -408,8 +411,9 @@ uint oid_rt_pro_query_rx_packet_received_hdl( *(u32 *)poid_par_priv->information_buf = Adapter->mppriv.rx_pktcount; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { status = RNDIS_STATUS_INVALID_LENGTH; + } return status; } @@ -428,8 +432,9 @@ uint oid_rt_pro_query_rx_packet_crc32_error_hdl( *(u32 *)poid_par_priv->information_buf = Adapter->mppriv.rx_crcerrpktcount; *poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; - } else + } else { status = RNDIS_STATUS_INVALID_LENGTH; + } return status; } @@ -457,8 +462,9 @@ uint oid_rt_pro_reset_rx_packet_received_hdl(struct oid_par_priv if (poid_par_priv->information_buf_len == sizeof(u32)) { Adapter->mppriv.rx_pktcount = 0; Adapter->mppriv.rx_crcerrpktcount = 0; - } else + } else { status = RNDIS_STATUS_INVALID_LENGTH; + } return status; } diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c index 8a544364b86b..e9dc1f472756 100644 --- a/drivers/staging/rtl8712/rtl871x_recv.c +++ b/drivers/staging/rtl8712/rtl871x_recv.c @@ -112,9 +112,9 @@ union recv_frame *r8712_alloc_recvframe(struct __queue *pfree_recv_queue) struct recv_priv *precvpriv; spin_lock_irqsave(&pfree_recv_queue->lock, irqL); - if (list_empty(&pfree_recv_queue->queue)) + if (list_empty(&pfree_recv_queue->queue)) { precvframe = NULL; - else { + } else { phead = &pfree_recv_queue->queue; plist = phead->next; precvframe = LIST_CONTAINOR(plist, union recv_frame, u); @@ -180,8 +180,9 @@ sint r8712_recvframe_chkmic(struct _adapter *adapter, 6) & 0x3)) - 1].skey[0]; if (!psecuritypriv->binstallGrpkey) return _FAIL; - } else + } else { mickey = &stainfo->tkiprxmickey.skey[0]; + } /*icv_len included the mic code*/ datalen = precvframe->u.hdr.len - prxattrib->hdrlen - prxattrib->iv_len - prxattrib->icv_len - 8; @@ -239,8 +240,9 @@ union recv_frame *r8712_decryptor(struct _adapter *padapter, default: break; } - } else if (prxattrib->bdecrypted == 1) + } else if (prxattrib->bdecrypted == 1) { psecuritypriv->hw_decrypted = true; + } return return_packet; } /*###set the security information in the recv_frame */ @@ -270,9 +272,9 @@ union recv_frame *r8712_portctrl(struct _adapter *adapter, if ((psta != NULL) && (psta->ieee8021x_blocked)) { /* blocked * only accept EAPOL frame */ - if (ether_type == 0x888e) + if (ether_type == 0x888e) { prtnframe = precv_frame; - else { + } else { /*free this frame*/ r8712_free_recvframe(precv_frame, &adapter->recvpriv.free_recv_queue); @@ -289,8 +291,9 @@ union recv_frame *r8712_portctrl(struct _adapter *adapter, prtnframe = precv_frame; } } - } else + } else { prtnframe = precv_frame; + } return prtnframe; } @@ -341,7 +344,7 @@ static sint sta2sta_data_frame(struct _adapter *adapter, if (memcmp(pattrib->bssid, pattrib->src, ETH_ALEN)) return _FAIL; sta_addr = pattrib->bssid; - } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { + } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { if (bmcast) { /* For AP mode, if DA == MCAST, then BSSID should * be also MCAST */ @@ -354,15 +357,16 @@ static sint sta2sta_data_frame(struct _adapter *adapter, return _FAIL; sta_addr = pattrib->src; } - } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { + } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN); memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN); memcpy(pattrib->ra, pattrib->dst, ETH_ALEN); memcpy(pattrib->ta, pattrib->src, ETH_ALEN); sta_addr = mybssid; - } else + } else { ret = _FAIL; + } if (bmcast) *psta = r8712_get_bcmc_stainfo(adapter); else @@ -429,8 +433,9 @@ static sint ap2sta_data_frame(struct _adapter *adapter, *psta = r8712_get_stainfo(pstapriv, pattrib->bssid); if (*psta == NULL) return _FAIL; - } else + } else { return _FAIL; + } return _SUCCESS; } diff --git a/drivers/staging/rtl8712/rtl871x_security.c b/drivers/staging/rtl8712/rtl871x_security.c index 48b05578e80e..1d7888a19387 100644 --- a/drivers/staging/rtl8712/rtl871x_security.c +++ b/drivers/staging/rtl8712/rtl871x_security.c @@ -636,8 +636,9 @@ u32 r8712_tkip_encrypt(struct _adapter *padapter, u8 *pxmitframe) pframe = (u8 *)RND4((addr_t)(pframe)); } } - } else + } else { res = _FAIL; + } } return res; } @@ -677,8 +678,9 @@ u32 r8712_tkip_decrypt(struct _adapter *padapter, u8 *precvframe) ((idx >> 6) & 0x3) - 1].skey[0]; if (!psecuritypriv->binstallGrpkey) return _FAIL; - } else + } else { prwskey = &stainfo->x_UncstKey.skey[0]; + } GET_TKIP_PN(iv, txpn); pnl = (u16)(txpn.val); pnh = (u32)(txpn.val >> 16); @@ -696,8 +698,9 @@ u32 r8712_tkip_decrypt(struct _adapter *padapter, u8 *precvframe) crc[1] != payload[length - 3] || crc[0] != payload[length - 4]) return _FAIL; - } else + } else { return _FAIL; + } } return _SUCCESS; } @@ -1069,8 +1072,9 @@ static sint aes_cipher(u8 *key, uint hdrlen, if (hdrlen != WLAN_HDR_A3_QOS_LEN) hdrlen += 2; qc_exists = 1; - } else + } else { qc_exists = 0; + } pn_vector[0] = pframe[hdrlen]; pn_vector[1] = pframe[hdrlen+1]; pn_vector[2] = pframe[hdrlen+4]; @@ -1188,8 +1192,9 @@ u32 r8712_aes_encrypt(struct _adapter *padapter, u8 *pxmitframe) pframe = (u8 *)RND4((addr_t)(pframe)); } } - } else + } else { res = _FAIL; + } } return res; } @@ -1377,14 +1382,16 @@ u32 r8712_aes_decrypt(struct _adapter *padapter, u8 *precvframe) if (!psecuritypriv->binstallGrpkey) return _FAIL; - } else + } else { prwskey = &stainfo->x_UncstKey.skey[0]; + } length = ((union recv_frame *)precvframe)-> u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len; aes_decipher(prwskey, prxattrib->hdrlen, pframe, length); - } else + } else { return _FAIL; + } } return _SUCCESS; } diff --git a/drivers/staging/rtl8712/rtl871x_sta_mgt.c b/drivers/staging/rtl8712/rtl871x_sta_mgt.c index 400dfb612183..162e61c6ea06 100644 --- a/drivers/staging/rtl8712/rtl871x_sta_mgt.c +++ b/drivers/staging/rtl8712/rtl871x_sta_mgt.c @@ -117,9 +117,9 @@ struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) pfree_sta_queue = &pstapriv->free_sta_queue; spin_lock_irqsave(&(pfree_sta_queue->lock), flags); - if (list_empty(&pfree_sta_queue->queue)) + if (list_empty(&pfree_sta_queue->queue)) { psta = NULL; - else { + } else { psta = LIST_CONTAINOR(pfree_sta_queue->queue.next, struct sta_info, list); list_del_init(&(psta->list)); diff --git a/drivers/staging/rtl8712/rtl871x_xmit.c b/drivers/staging/rtl8712/rtl871x_xmit.c index d41413991017..eb41f7635d13 100644 --- a/drivers/staging/rtl8712/rtl871x_xmit.c +++ b/drivers/staging/rtl8712/rtl871x_xmit.c @@ -293,9 +293,9 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, /* get ether_hdr_len */ pattrib->pkt_hdrlen = ETH_HLEN; - if (pqospriv->qos_option) + if (pqospriv->qos_option) { r8712_set_qos(&pktfile, pattrib); - else { + } else { pattrib->hdrlen = WLAN_HDR_A3_LEN; pattrib->subtype = WIFI_DATA_TYPE; pattrib->priority = 0; @@ -305,8 +305,9 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, if ((pattrib->ether_type != 0x888e) && !check_fwstate(pmlmepriv, WIFI_MP_STATE)) return _FAIL; - } else + } else { GET_ENCRY_ALGO(psecuritypriv, psta, pattrib->encrypt, bmcast); + } switch (pattrib->encrypt) { case _WEP40_: case _WEP104_: @@ -509,8 +510,9 @@ static sint make_wlanhdr(struct _adapter *padapter, u8 *hdr, memcpy(pwlanhdr->addr2, pattrib->src, ETH_ALEN); memcpy(pwlanhdr->addr3, get_bssid(pmlmepriv), ETH_ALEN); - } else + } else { return _FAIL; + } if (pattrib->encrypt) SetPrivacy(fctrl); @@ -526,9 +528,9 @@ static sint make_wlanhdr(struct _adapter *padapter, u8 *hdr, struct sta_info *psta; sint bmcst = IS_MCAST(pattrib->ra); - if (pattrib->psta) + if (pattrib->psta) { psta = pattrib->psta; - else { + } else { if (bmcst) psta = r8712_get_bcmc_stainfo(padapter); else @@ -719,17 +721,18 @@ void r8712_update_protection(struct _adapter *padapter, u8 *ie, uint ie_len) case AUTO_VCS: default: perp = r8712_get_ie(ie, _ERPINFO_IE_, &erp_len, ie_len); - if (perp == NULL) + if (perp == NULL) { pxmitpriv->vcs = NONE_VCS; - else { + } else { protection = (*(perp + 2)) & BIT(1); if (protection) { if (pregistrypriv->vcs_type == RTS_CTS) pxmitpriv->vcs = RTS_CTS; else pxmitpriv->vcs = CTS_TO_SELF; - } else + } else { pxmitpriv->vcs = NONE_VCS; + } } break; } @@ -743,9 +746,9 @@ struct xmit_buf *r8712_alloc_xmitbuf(struct xmit_priv *pxmitpriv) struct __queue *pfree_xmitbuf_queue = &pxmitpriv->free_xmitbuf_queue; spin_lock_irqsave(&pfree_xmitbuf_queue->lock, irqL); - if (list_empty(&pfree_xmitbuf_queue->queue)) + if (list_empty(&pfree_xmitbuf_queue->queue)) { pxmitbuf = NULL; - else { + } else { phead = &pfree_xmitbuf_queue->queue; plist = phead->next; pxmitbuf = LIST_CONTAINOR(plist, struct xmit_buf, list); @@ -797,9 +800,9 @@ struct xmit_frame *r8712_alloc_xmitframe(struct xmit_priv *pxmitpriv) struct __queue *pfree_xmit_queue = &pxmitpriv->free_xmit_queue; spin_lock_irqsave(&pfree_xmit_queue->lock, irqL); - if (list_empty(&pfree_xmit_queue->queue)) + if (list_empty(&pfree_xmit_queue->queue)) { pxframe = NULL; - else { + } else { phead = &pfree_xmit_queue->queue; plist = phead->next; pxframe = LIST_CONTAINOR(plist, struct xmit_frame, list); @@ -917,12 +920,12 @@ sint r8712_xmit_classifier(struct _adapter *padapter, struct mlme_priv *pmlmepriv = &padapter->mlmepriv; sint bmcst = IS_MCAST(pattrib->ra); - if (pattrib->psta) + if (pattrib->psta) { psta = pattrib->psta; - else { - if (bmcst) + } else { + if (bmcst) { psta = r8712_get_bcmc_stainfo(padapter); - else { + } else { if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) psta = r8712_get_stainfo(pstapriv, get_bssid(pmlmepriv)); diff --git a/drivers/staging/rtl8712/usb_halinit.c b/drivers/staging/rtl8712/usb_halinit.c index b4ae11a78b46..944df8543941 100644 --- a/drivers/staging/rtl8712/usb_halinit.c +++ b/drivers/staging/rtl8712/usb_halinit.c @@ -285,8 +285,9 @@ u8 r8712_usb_hal_bus_init(struct _adapter *padapter) /* Reset TxDMA */ r8712_write8(padapter, CR, val8|_TXDMA_EN); } - } else + } else { ret = _FAIL; + } return ret; } diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c index 91d33e77b434..de447da02cdb 100644 --- a/drivers/staging/rtl8712/usb_intf.c +++ b/drivers/staging/rtl8712/usb_intf.c @@ -395,9 +395,9 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf, /* step 3. * initialize the dvobj_priv */ - if (!padapter->dvobj_init) - goto error; - else { + if (!padapter->dvobj_init) { + goto error; + } else { status = padapter->dvobj_init(padapter); if (status != _SUCCESS) goto error; @@ -553,8 +553,9 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf, padapter->ledpriv.bRegUseLed = false; break; } - } else + } else { AutoloadFail = false; + } if (((mac[0] == 0xff) && (mac[1] == 0xff) && (mac[2] == 0xff) && (mac[3] == 0xff) && (mac[4] == 0xff) && (mac[5] == 0xff)) || diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index e33eeedfdddf..f35b3b6a4b8b 100644 --- a/drivers/staging/rtl8712/usb_ops_linux.c +++ b/drivers/staging/rtl8712/usb_ops_linux.c @@ -144,8 +144,9 @@ static unsigned int ffaddr2pipehdl(struct dvobj_priv *pdvobj, u32 addr) pipe = usb_sndbulkpipe(pusbd, 0x0d); break; } - } else + } else { pipe = 0; + } return pipe; } @@ -306,8 +307,9 @@ u32 r8712_usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem) err = usb_submit_urb(purb, GFP_ATOMIC); if ((err) && (err != (-EPERM))) ret = _FAIL; - } else + } else { ret = _FAIL; + } return ret; } From 4ef2de5ae0377bc88c1f5021c3797db3c62bc384 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Mon, 19 Oct 2015 18:16:01 +0100 Subject: [PATCH 2156/2431] staging: rtl8712: spaces preferred around operands Clean up all instances of checkpatch.pl checks: CHECK: spaces preferred around that '+' (and other operands) Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/ieee80211.c | 21 ++-- drivers/staging/rtl8712/mlme_linux.c | 2 +- drivers/staging/rtl8712/os_intfs.c | 2 +- drivers/staging/rtl8712/rtl8712_cmd.c | 12 +- drivers/staging/rtl8712/rtl8712_efuse.c | 74 ++++++------ drivers/staging/rtl8712/rtl8712_led.c | 8 +- drivers/staging/rtl8712/rtl8712_recv.c | 12 +- drivers/staging/rtl8712/rtl8712_xmit.c | 60 +++++----- drivers/staging/rtl8712/rtl871x_cmd.c | 10 +- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 47 ++++---- drivers/staging/rtl8712/rtl871x_ioctl_rtl.c | 3 +- drivers/staging/rtl8712/rtl871x_ioctl_set.c | 4 +- drivers/staging/rtl8712/rtl871x_mlme.c | 40 +++---- drivers/staging/rtl8712/rtl871x_mp.c | 17 +-- drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 4 +- drivers/staging/rtl8712/rtl871x_recv.c | 8 +- drivers/staging/rtl8712/rtl871x_security.c | 108 +++++++++--------- drivers/staging/rtl8712/rtl871x_xmit.c | 20 ++-- drivers/staging/rtl8712/usb_halinit.c | 10 +- drivers/staging/rtl8712/usb_intf.c | 4 +- drivers/staging/rtl8712/usb_ops.c | 20 ++-- drivers/staging/rtl8712/usb_ops_linux.c | 4 +- 22 files changed, 256 insertions(+), 234 deletions(-) diff --git a/drivers/staging/rtl8712/ieee80211.c b/drivers/staging/rtl8712/ieee80211.c index 3c38fcbc4364..974ca021ccef 100644 --- a/drivers/staging/rtl8712/ieee80211.c +++ b/drivers/staging/rtl8712/ieee80211.c @@ -336,7 +336,8 @@ int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, /* No RSN IE - fail silently */ return _FAIL; } - if ((*rsn_ie != _WPA2_IE_ID_) || (*(rsn_ie+1) != (u8)(rsn_ie_len - 2))) + if ((*rsn_ie != _WPA2_IE_ID_) || + (*(rsn_ie + 1) != (u8)(rsn_ie_len - 2))) return _FAIL; pos = rsn_ie; pos += 4; @@ -381,16 +382,16 @@ int r8712_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len, if ((authmode == _WPA_IE_ID_) && (!memcmp(&in_ie[cnt + 2], &wpa_oui[0], 4))) { memcpy(wpa_ie, &in_ie[cnt], in_ie[cnt + 1] + 2); - *wpa_len = in_ie[cnt+1]+2; + *wpa_len = in_ie[cnt + 1] + 2; cnt += in_ie[cnt + 1] + 2; /*get next */ } else { if (authmode == _WPA2_IE_ID_) { memcpy(rsn_ie, &in_ie[cnt], in_ie[cnt + 1] + 2); - *rsn_len = in_ie[cnt+1] + 2; - cnt += in_ie[cnt+1] + 2; /*get next*/ + *rsn_len = in_ie[cnt + 1] + 2; + cnt += in_ie[cnt + 1] + 2; /*get next*/ } else { - cnt += in_ie[cnt+1] + 2; /*get next*/ + cnt += in_ie[cnt + 1] + 2; /*get next*/ } } } @@ -408,14 +409,14 @@ int r8712_get_wps_ie(u8 *in_ie, uint in_len, u8 *wps_ie, uint *wps_ielen) while (cnt < in_len) { eid = in_ie[cnt]; if ((eid == _WPA_IE_ID_) && - (!memcmp(&in_ie[cnt+2], wps_oui, 4))) { - memcpy(wps_ie, &in_ie[cnt], in_ie[cnt+1]+2); - *wps_ielen = in_ie[cnt+1]+2; - cnt += in_ie[cnt+1]+2; + (!memcmp(&in_ie[cnt + 2], wps_oui, 4))) { + memcpy(wps_ie, &in_ie[cnt], in_ie[cnt + 1] + 2); + *wps_ielen = in_ie[cnt + 1] + 2; + cnt += in_ie[cnt + 1] + 2; match = true; break; } - cnt += in_ie[cnt+1]+2; /* goto next */ + cnt += in_ie[cnt + 1] + 2; /* goto next */ } return match; } diff --git a/drivers/staging/rtl8712/mlme_linux.c b/drivers/staging/rtl8712/mlme_linux.c index 6d253bf6021e..e4e4bdee78be 100644 --- a/drivers/staging/rtl8712/mlme_linux.c +++ b/drivers/staging/rtl8712/mlme_linux.c @@ -163,7 +163,7 @@ void r8712_report_sec_ie(struct _adapter *adapter, u8 authmode, u8 *sec_ie) p += sprintf(p, "%02x", sec_ie[i]); p += sprintf(p, ")"); memset(&wrqu, 0, sizeof(wrqu)); - wrqu.data.length = p-buff; + wrqu.data.length = p - buff; wrqu.data.length = (wrqu.data.length < IW_CUSTOM_MAX) ? wrqu.data.length : IW_CUSTOM_MAX; wireless_send_event(adapter->pnetdev, IWEVCUSTOM, &wrqu, buff); diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 92ab59dcb5ec..b89e2d3c4fe1 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -97,7 +97,7 @@ static char *initmac; */ static int wifi_test; -module_param_string(ifname, ifname, sizeof(ifname), S_IRUGO|S_IWUSR); +module_param_string(ifname, ifname, sizeof(ifname), S_IRUGO | S_IWUSR); module_param(wifi_test, int, 0644); module_param(initmac, charp, 0644); module_param(video_mode, int, 0644); diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index ac6c22f98db8..9b9160947943 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -62,7 +62,7 @@ static void check_hw_pbc(struct _adapter *padapter) tmp1byte = r8712_read8(padapter, GPIO_CTRL); if (tmp1byte == 0xff) return; - if (tmp1byte&HAL_8192S_HW_GPIO_WPS_BIT) { + if (tmp1byte & HAL_8192S_HW_GPIO_WPS_BIT) { /* Here we only set bPbcPressed to true * After trigger PBC, the variable will be set to false */ @@ -345,7 +345,7 @@ _next: pcmdpriv->cmd_issued_cnt++; cmdsz = round_up(pcmd->cmdsz, 8); wr_sz = TXDESC_SIZE + 8 + cmdsz; - pdesc->txdw0 |= cpu_to_le32((wr_sz-TXDESC_SIZE) & + pdesc->txdw0 |= cpu_to_le32((wr_sz - TXDESC_SIZE) & 0x0000ffff); if (pdvobj->ishighspeed) { if ((wr_sz % 512) == 0) @@ -443,20 +443,20 @@ void r8712_event_handle(struct _adapter *padapter, uint *peventbuf) } /* checking if event code is valid */ if (evt_code >= MAX_C2HEVT) { - pevt_priv->event_seq = ((evt_seq+1) & 0x7f); + pevt_priv->event_seq = ((evt_seq + 1) & 0x7f); goto _abort_event_; } else if ((evt_code == GEN_EVT_CODE(_Survey)) && (evt_sz > sizeof(struct wlan_bssid_ex))) { - pevt_priv->event_seq = ((evt_seq+1)&0x7f); + pevt_priv->event_seq = ((evt_seq + 1) & 0x7f); goto _abort_event_; } /* checking if event size match the event parm size */ if ((wlanevents[evt_code].parmsize) && (wlanevents[evt_code].parmsize != evt_sz)) { - pevt_priv->event_seq = ((evt_seq+1)&0x7f); + pevt_priv->event_seq = ((evt_seq + 1) & 0x7f); goto _abort_event_; } else if ((evt_sz == 0) && (evt_code != GEN_EVT_CODE(_WPS_PBC))) { - pevt_priv->event_seq = ((evt_seq+1)&0x7f); + pevt_priv->event_seq = ((evt_seq + 1) & 0x7f); goto _abort_event_; } pevt_priv->event_seq++; /* update evt_seq */ diff --git a/drivers/staging/rtl8712/rtl8712_efuse.c b/drivers/staging/rtl8712/rtl8712_efuse.c index 4dcc82632326..eaa93fbb95a3 100644 --- a/drivers/staging/rtl8712/rtl8712_efuse.c +++ b/drivers/staging/rtl8712/rtl8712_efuse.c @@ -80,12 +80,13 @@ static u8 efuse_one_byte_read(struct _adapter *padapter, u16 addr, u8 *data) u8 tmpidx = 0, bResult; /* -----------------e-fuse reg ctrl --------------------------------- */ - r8712_write8(padapter, EFUSE_CTRL+1, (u8)(addr&0xFF)); /* address */ - r8712_write8(padapter, EFUSE_CTRL+2, ((u8)((addr>>8)&0x03)) | - (r8712_read8(padapter, EFUSE_CTRL+2)&0xFC)); - r8712_write8(padapter, EFUSE_CTRL+3, 0x72); /* read cmd */ + r8712_write8(padapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ + r8712_write8(padapter, EFUSE_CTRL + 2, ((u8)((addr >> 8) & 0x03)) | + (r8712_read8(padapter, EFUSE_CTRL + 2) & 0xFC)); + r8712_write8(padapter, EFUSE_CTRL + 3, 0x72); /* read cmd */ /* wait for complete */ - while (!(0x80 & r8712_read8(padapter, EFUSE_CTRL+3)) && (tmpidx < 100)) + while (!(0x80 & r8712_read8(padapter, EFUSE_CTRL + 3)) && + (tmpidx < 100)) tmpidx++; if (tmpidx < 100) { *data = r8712_read8(padapter, EFUSE_CTRL); @@ -102,13 +103,14 @@ static u8 efuse_one_byte_write(struct _adapter *padapter, u16 addr, u8 data) u8 tmpidx = 0, bResult; /* -----------------e-fuse reg ctrl -------------------------------- */ - r8712_write8(padapter, EFUSE_CTRL+1, (u8)(addr&0xFF)); /* address */ - r8712_write8(padapter, EFUSE_CTRL+2, ((u8)((addr>>8)&0x03)) | - (r8712_read8(padapter, EFUSE_CTRL+2)&0xFC)); + r8712_write8(padapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ + r8712_write8(padapter, EFUSE_CTRL + 2, ((u8)((addr >> 8) & 0x03)) | + (r8712_read8(padapter, EFUSE_CTRL + 2) & 0xFC)); r8712_write8(padapter, EFUSE_CTRL, data); /* data */ - r8712_write8(padapter, EFUSE_CTRL+3, 0xF2); /* write cmd */ + r8712_write8(padapter, EFUSE_CTRL + 3, 0xF2); /* write cmd */ /* wait for complete */ - while ((0x80 & r8712_read8(padapter, EFUSE_CTRL+3)) && (tmpidx < 100)) + while ((0x80 & r8712_read8(padapter, EFUSE_CTRL + 3)) && + (tmpidx < 100)) tmpidx++; if (tmpidx < 100) bResult = true; @@ -123,13 +125,13 @@ static u8 efuse_one_byte_rw(struct _adapter *padapter, u8 bRead, u16 addr, u8 tmpidx = 0, tmpv8 = 0, bResult; /* -----------------e-fuse reg ctrl --------------------------------- */ - r8712_write8(padapter, EFUSE_CTRL+1, (u8)(addr&0xFF)); /* address */ + r8712_write8(padapter, EFUSE_CTRL + 1, (u8)(addr & 0xFF)); /* address */ tmpv8 = ((u8)((addr >> 8) & 0x03)) | (r8712_read8(padapter, EFUSE_CTRL + 2) & 0xFC); - r8712_write8(padapter, EFUSE_CTRL+2, tmpv8); + r8712_write8(padapter, EFUSE_CTRL + 2, tmpv8); if (bRead) { - r8712_write8(padapter, EFUSE_CTRL+3, 0x72); /* read cmd */ - while (!(0x80 & r8712_read8(padapter, EFUSE_CTRL+3)) && + r8712_write8(padapter, EFUSE_CTRL + 3, 0x72); /* read cmd */ + while (!(0x80 & r8712_read8(padapter, EFUSE_CTRL + 3)) && (tmpidx < 100)) tmpidx++; if (tmpidx < 100) { @@ -141,8 +143,8 @@ static u8 efuse_one_byte_rw(struct _adapter *padapter, u8 bRead, u16 addr, } } else { r8712_write8(padapter, EFUSE_CTRL, *data); /* data */ - r8712_write8(padapter, EFUSE_CTRL+3, 0xF2); /* write cmd */ - while ((0x80 & r8712_read8(padapter, EFUSE_CTRL+3)) && + r8712_write8(padapter, EFUSE_CTRL + 3, 0xF2); /* write cmd */ + while ((0x80 & r8712_read8(padapter, EFUSE_CTRL + 3)) && (tmpidx < 100)) tmpidx++; if (tmpidx < 100) @@ -208,7 +210,7 @@ static void pgpacket_copy_data(const u8 word_en, const u8 *sourdata, u8 word_idx, byte_idx; for (word_idx = 0; word_idx < PGPKG_MAX_WORDS; word_idx++) { - if (!(word_en&BIT(word_idx))) { + if (!(word_en & BIT(word_idx))) { byte_idx = word_idx * 2; targetdata[byte_idx] = sourdata[tmpindex++]; targetdata[byte_idx + 1] = sourdata[tmpindex++]; @@ -250,7 +252,7 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) return false; if (offset > 0x0f) return false; - memset(data, 0xFF, sizeof(u8)*PGPKT_DATA_SIZE); + memset(data, 0xFF, sizeof(u8) * PGPKT_DATA_SIZE); while (efuse_addr < efuse_available_max_size) { if (efuse_one_byte_read(padapter, efuse_addr, &efuse_data)) { if (efuse_data == 0xFF) @@ -263,7 +265,8 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) for (tmpidx = 0; tmpidx < word_cnts * 2; tmpidx++) { if (efuse_one_byte_read(padapter, - efuse_addr+1+tmpidx, &efuse_data)) { + efuse_addr + 1 + tmpidx, + &efuse_data)) { tmpdata[tmpidx] = efuse_data; } else { ret = false; @@ -271,7 +274,7 @@ u8 r8712_efuse_pg_packet_read(struct _adapter *padapter, u8 offset, u8 *data) } pgpacket_copy_data(hworden, tmpdata, data); } - efuse_addr += 1 + (word_cnts*2); + efuse_addr += 1 + (word_cnts * 2); } else { ret = false; break; @@ -303,7 +306,7 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) offset = GET_EFUSE_OFFSET(value); word_en = GET_EFUSE_WORD_EN(value); if (pkt.offset != offset) { - addr += calculate_word_cnts(word_en)*2; + addr += calculate_word_cnts(word_en) * 2; continue; } for (i = 0; i < PGPKG_MAX_WORDS; i++) { @@ -312,14 +315,14 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) if (efuse_one_byte_read( padapter, addr, &value)) - pkt.data[i*2] = value; + pkt.data[i * 2] = value; else return false; if (efuse_one_byte_read( padapter, addr + 1, &value)) - pkt.data[i*2 + 1] = + pkt.data[i * 2 + 1] = value; else return false; @@ -334,25 +337,26 @@ static u8 fix_header(struct _adapter *padapter, u8 header, u16 header_addr) /* fill original data */ for (i = 0; i < PGPKG_MAX_WORDS; i++) { if (BIT(i) & pkt.word_en) { - efuse_one_byte_write(padapter, addr, pkt.data[i*2]); - efuse_one_byte_write(padapter, addr+1, - pkt.data[i*2 + 1]); + efuse_one_byte_write(padapter, addr, pkt.data[i * 2]); + efuse_one_byte_write(padapter, addr + 1, + pkt.data[i * 2 + 1]); /* additional check */ if (!efuse_one_byte_read(padapter, addr, &value)) { ret = false; - } else if (pkt.data[i*2] != value) { + } else if (pkt.data[i * 2] != value) { ret = false; if (0xFF == value) /* write again */ efuse_one_byte_write(padapter, addr, pkt.data[i * 2]); } - if (!efuse_one_byte_read(padapter, addr+1, &value)) { + if (!efuse_one_byte_read(padapter, addr + 1, &value)) { ret = false; - } else if (pkt.data[i*2 + 1] != value) { + } else if (pkt.data[i * 2 + 1] != value) { ret = false; if (0xFF == value) /* write again */ - efuse_one_byte_write(padapter, addr+1, - pkt.data[i*2 + 1]); + efuse_one_byte_write(padapter, addr + 1, + pkt.data[i * 2 + + 1]); } } addr += 2; @@ -401,7 +405,7 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, /* go to next address */ efuse_addr++; - for (i = 0; i < target_word_cnts*2; i++) { + for (i = 0; i < target_word_cnts * 2; i++) { efuse_one_byte_write(padapter, efuse_addr + i, *(data + i)); @@ -409,7 +413,7 @@ u8 r8712_efuse_pg_packet_write(struct _adapter *padapter, const u8 offset, efuse_addr + i, &efuse_data)) bResult = false; - else if (*(data+i) != efuse_data) /* fail */ + else if (*(data + i) != efuse_data) /* fail */ bResult = false; } break; @@ -541,8 +545,8 @@ u8 r8712_efuse_map_write(struct _adapter *padapter, u16 addr, u16 cnts, break; } - if ((data[idx] != pktdata[i]) || (data[idx+1] != - pktdata[i+1])) { + if ((data[idx] != pktdata[i]) || (data[idx + 1] != + pktdata[i + 1])) { word_en &= ~BIT(i >> 1); newdata[j++] = data[idx]; newdata[j++] = data[idx + 1]; diff --git a/drivers/staging/rtl8712/rtl8712_led.c b/drivers/staging/rtl8712/rtl8712_led.c index 79981b591d91..9055827cccf8 100644 --- a/drivers/staging/rtl8712/rtl8712_led.c +++ b/drivers/staging/rtl8712/rtl8712_led.c @@ -130,11 +130,11 @@ static void SwLedOn(struct _adapter *padapter, struct LED_871x *pLed) break; case LED_PIN_LED0: /* SW control led0 on.*/ - r8712_write8(padapter, LEDCFG, LedCfg&0xf0); + r8712_write8(padapter, LEDCFG, LedCfg & 0xf0); break; case LED_PIN_LED1: /* SW control led1 on.*/ - r8712_write8(padapter, LEDCFG, LedCfg&0x0f); + r8712_write8(padapter, LEDCFG, LedCfg & 0x0f); break; default: break; @@ -158,11 +158,11 @@ static void SwLedOff(struct _adapter *padapter, struct LED_871x *pLed) break; case LED_PIN_LED0: LedCfg &= 0xf0; /* Set to software control.*/ - r8712_write8(padapter, LEDCFG, (LedCfg|BIT(3))); + r8712_write8(padapter, LEDCFG, (LedCfg | BIT(3))); break; case LED_PIN_LED1: LedCfg &= 0x0f; /* Set to software control.*/ - r8712_write8(padapter, LEDCFG, (LedCfg|BIT(7))); + r8712_write8(padapter, LEDCFG, (LedCfg | BIT(7))); break; default: break; diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index b6b2b4201b1c..d187508dd1e0 100644 --- a/drivers/staging/rtl8712/rtl8712_recv.c +++ b/drivers/staging/rtl8712/rtl8712_recv.c @@ -89,7 +89,7 @@ int r8712_init_recv_priv(struct recv_priv *precvpriv, struct _adapter *padapter) RECVBUFF_ALIGN_SZ); if (pskb) { tmpaddr = (addr_t)pskb->data; - alignment = tmpaddr & (RECVBUFF_ALIGN_SZ-1); + alignment = tmpaddr & (RECVBUFF_ALIGN_SZ - 1); skb_reserve(pskb, (RECVBUFF_ALIGN_SZ - alignment)); skb_queue_tail(&precvpriv->free_recv_skb_queue, pskb); } @@ -160,7 +160,7 @@ static void update_recvframe_attrib_from_recvstat(struct rx_pkt_attrib *pattrib, { u16 drvinfo_sz; - drvinfo_sz = (le32_to_cpu(prxstat->rxdw0)&0x000f0000)>>16; + drvinfo_sz = (le32_to_cpu(prxstat->rxdw0) & 0x000f0000) >> 16; drvinfo_sz <<= 3; /*TODO: * Offset 0 */ @@ -825,7 +825,7 @@ static void query_rx_phy_status(struct _adapter *padapter, else if (pcck_buf->sq_rpt < 20) sq = 100; else - sq = ((64-sq) * 100) / 44; + sq = ((64 - sq) * 100) / 44; } prframe->u.hdr.attrib.signal_qual = sq; prframe->u.hdr.attrib.rx_mimo_signal_qual[0] = sq; @@ -1022,8 +1022,8 @@ static int recvbuf2recvframe(struct _adapter *padapter, struct sk_buff *pskb) pfree_recv_queue = &(precvpriv->free_recv_queue); pbuf = pskb->data; prxstat = (struct recv_stat *)pbuf; - pkt_cnt = (le32_to_cpu(prxstat->rxdw2)>>16)&0xff; - pkt_len = le32_to_cpu(prxstat->rxdw0)&0x00003fff; + pkt_cnt = (le32_to_cpu(prxstat->rxdw2) >> 16) & 0xff; + pkt_len = le32_to_cpu(prxstat->rxdw0) & 0x00003fff; transfer_len = pskb->len; /* Test throughput with Netgear 3700 (No security) with Chariot 3T3R * pairs. The packet count will be a big number so that the containing @@ -1035,7 +1035,7 @@ static int recvbuf2recvframe(struct _adapter *padapter, struct sk_buff *pskb) } do { prxstat = (struct recv_stat *)pbuf; - pkt_len = le32_to_cpu(prxstat->rxdw0)&0x00003fff; + pkt_len = le32_to_cpu(prxstat->rxdw0) & 0x00003fff; /* more fragment bit */ mf = (le32_to_cpu(prxstat->rxdw1) >> 27) & 0x1; /* ragmentation number */ diff --git a/drivers/staging/rtl8712/rtl8712_xmit.c b/drivers/staging/rtl8712/rtl8712_xmit.c index 02140b0ebf7f..b21a60e9f8a9 100644 --- a/drivers/staging/rtl8712/rtl8712_xmit.c +++ b/drivers/staging/rtl8712/rtl8712_xmit.c @@ -264,13 +264,14 @@ u8 r8712_construct_txaggr_cmd_desc(struct xmit_buf *pxmitbuf) /* Fill up TxCmd Descriptor according as USB FW Tx Aaggregation info.*/ /* dw0 */ - ptx_desc->txdw0 = cpu_to_le32(CMD_HDR_SZ&0xffff); + ptx_desc->txdw0 = cpu_to_le32(CMD_HDR_SZ & 0xffff); ptx_desc->txdw0 |= - cpu_to_le32(((TXDESC_SIZE+OFFSET_SZ)<txdw0 |= cpu_to_le32(OWN | FSG | LSG); /* dw1 */ - ptx_desc->txdw1 |= cpu_to_le32((0x13<txdw1 |= cpu_to_le32((0x13 << QSEL_SHT) & 0x00001f00); return _SUCCESS; } @@ -322,12 +323,14 @@ u8 r8712_append_mpdu_unit(struct xmit_buf *pxmitbuf, int i; for (i = 0; i < padding_sz; i++) - *(pxmitframe->buf_addr+TXDESC_SIZE+last_txcmdsz+i) = 0; + *(pxmitframe->buf_addr + TXDESC_SIZE + last_txcmdsz + + i) = 0; } /* Add the new mpdu's length */ - ptx_desc->txdw0 = cpu_to_le32((ptx_desc->txdw0&0xffff0000) | - ((ptx_desc->txdw0&0x0000ffff)+ - ((TXDESC_SIZE+last_txcmdsz+padding_sz)&0x0000ffff))); + ptx_desc->txdw0 = cpu_to_le32((ptx_desc->txdw0 & 0xffff0000) | + ((ptx_desc->txdw0 & 0x0000ffff) + + ((TXDESC_SIZE + last_txcmdsz + padding_sz) & + 0x0000ffff))); return _SUCCESS; } @@ -341,7 +344,7 @@ u8 r8712_xmitframe_aggr_1st(struct xmit_buf *pxmitbuf, pxmitbuf->priv_data = pxmitframe; pxmitframe->pxmit_urb[0] = pxmitbuf->pxmit_urb[0]; /* buffer addr assoc */ - pxmitframe->buf_addr = pxmitbuf->pbuf+TXDESC_SIZE+CMD_HDR_SZ; + pxmitframe->buf_addr = pxmitbuf->pbuf + TXDESC_SIZE + CMD_HDR_SZ; /*RTL8712_DMA_H2CCMD */ r8712_construct_txaggr_cmd_desc(pxmitbuf); r8712_construct_txaggr_cmd_hdr(pxmitbuf); @@ -382,29 +385,32 @@ u8 r8712_dump_aggr_xframe(struct xmit_buf *pxmitbuf, /* use 1st xmitframe as media */ xmitframe_xmitbuf_attach(pxmitframe, pxmitbuf); - pcmd_hdr->cmd_dw0 = cpu_to_le32(((total_length-CMD_HDR_SZ)&0x0000ffff)| - (pcmd_hdr->cmd_dw0&0xffff0000)); + pcmd_hdr->cmd_dw0 = cpu_to_le32(((total_length - CMD_HDR_SZ) & + 0x0000ffff) | (pcmd_hdr->cmd_dw0 & + 0xffff0000)); /* urb length in cmd_dw1 */ pcmd_hdr->cmd_dw1 = cpu_to_le32((pxmitbuf->aggr_nr & 0xff)| - ((total_length+TXDESC_SIZE) << 16)); + ((total_length + TXDESC_SIZE) << 16)); pxmitframe->last[0] = 1; pxmitframe->bpending[0] = false; pxmitframe->mem_addr = pxmitbuf->pbuf; - if ((pdvobj->ishighspeed && ((total_length+TXDESC_SIZE)%0x200) == 0) || - ((!pdvobj->ishighspeed && - ((total_length+TXDESC_SIZE)%0x40) == 0))) { + if ((pdvobj->ishighspeed && ((total_length + TXDESC_SIZE) % 0x200) == + 0) || ((!pdvobj->ishighspeed && ((total_length + TXDESC_SIZE) % + 0x40) == 0))) { ptxdesc->txdw0 |= cpu_to_le32 - (((TXDESC_SIZE+OFFSET_SZ+8)<txdw0 |= cpu_to_le32 - (((TXDESC_SIZE+OFFSET_SZ)<padapter, RTL8712_DMA_H2CCMD, - total_length+TXDESC_SIZE, (u8 *)pxmitframe); + total_length + TXDESC_SIZE, (u8 *)pxmitframe); return _SUCCESS; } @@ -432,7 +438,7 @@ static void update_txdesc(struct xmit_frame *pxmitframe, uint *pmem, int sz) memcpy(&txdesc_mp, ptxdesc, sizeof(struct tx_desc)); memset(ptxdesc, 0, sizeof(struct tx_desc)); /* offset 0 */ - ptxdesc->txdw0 |= cpu_to_le32(sz&0x0000ffff); + ptxdesc->txdw0 |= cpu_to_le32(sz & 0x0000ffff); if (pdvobj->ishighspeed) { if (((sz + TXDESC_SIZE) % 512) == 0) blnSetTxDescOffset = 1; @@ -446,42 +452,42 @@ static void update_txdesc(struct xmit_frame *pxmitframe, uint *pmem, int sz) } if (blnSetTxDescOffset) { /* 32 bytes for TX Desc + 8 bytes pending */ - ptxdesc->txdw0 |= cpu_to_le32(((TXDESC_SIZE+OFFSET_SZ + 8) << + ptxdesc->txdw0 |= cpu_to_le32(((TXDESC_SIZE + OFFSET_SZ + 8) << OFFSET_SHT) & 0x00ff0000); } else { /* default = 32 bytes for TX Desc */ - ptxdesc->txdw0 |= cpu_to_le32(((TXDESC_SIZE+OFFSET_SZ) << + ptxdesc->txdw0 |= cpu_to_le32(((TXDESC_SIZE + OFFSET_SZ) << OFFSET_SHT) & 0x00ff0000); } ptxdesc->txdw0 |= cpu_to_le32(OWN | FSG | LSG); if (pxmitframe->frame_tag == DATA_FRAMETAG) { /* offset 4 */ - ptxdesc->txdw1 |= cpu_to_le32((pattrib->mac_id)&0x1f); + ptxdesc->txdw1 |= cpu_to_le32((pattrib->mac_id) & 0x1f); #ifdef CONFIG_R8712_TX_AGGR /* dirty workaround, need to check if it is aggr cmd. */ if ((u8 *)pmem != (u8 *)pxmitframe->pxmitbuf->pbuf) { ptxdesc->txdw0 |= cpu_to_le32 - ((0x3 << TYPE_SHT)&TYPE_MSK); + ((0x3 << TYPE_SHT) & TYPE_MSK); qsel = (uint)(pattrib->qsel & 0x0000001f); if (qsel == 2) qsel = 0; ptxdesc->txdw1 |= cpu_to_le32 ((qsel << QSEL_SHT) & 0x00001f00); ptxdesc->txdw2 = cpu_to_le32 - ((qsel << RTS_RC_SHT)&0x001f0000); + ((qsel << RTS_RC_SHT) & 0x001f0000); ptxdesc->txdw6 |= cpu_to_le32 - ((0x5 << RSVD6_SHT)&RSVD6_MSK); + ((0x5 << RSVD6_SHT) & RSVD6_MSK); } else { ptxdesc->txdw0 |= cpu_to_le32 - ((0x3 << TYPE_SHT)&TYPE_MSK); + ((0x3 << TYPE_SHT) & TYPE_MSK); ptxdesc->txdw1 |= cpu_to_le32 ((0x13 << QSEL_SHT) & 0x00001f00); qsel = (uint)(pattrib->qsel & 0x0000001f); if (qsel == 2) qsel = 0; ptxdesc->txdw2 = cpu_to_le32 - ((qsel << RTS_RC_SHT)&0x0001f000); + ((qsel << RTS_RC_SHT) & 0x0001f000); ptxdesc->txdw7 |= cpu_to_le32 (pcmdpriv->cmd_seq << 24); pcmdpriv->cmd_seq++; @@ -593,7 +599,7 @@ static void update_txdesc(struct xmit_frame *pxmitframe, uint *pmem, int sz) ptxdesc->txdw1 |= cpu_to_le32((qsel << QSEL_SHT) & 0x00001f00); } else { /* offset 4 */ - qsel = (uint)(pattrib->priority&0x0000001f); + qsel = (uint)(pattrib->priority & 0x0000001f); ptxdesc->txdw1 |= cpu_to_le32((qsel << QSEL_SHT) & 0x00001f00); /*offset 8*/ /*offset 12*/ diff --git a/drivers/staging/rtl8712/rtl871x_cmd.c b/drivers/staging/rtl8712/rtl871x_cmd.c index 1f6e69b1bba3..562a10203127 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.c +++ b/drivers/staging/rtl8712/rtl871x_cmd.c @@ -70,7 +70,7 @@ static sint _init_cmd_priv(struct cmd_priv *pcmdpriv) return _FAIL; pcmdpriv->cmd_buf = pcmdpriv->cmd_allocated_buf + CMDBUFF_ALIGN_SZ - ((addr_t)(pcmdpriv->cmd_allocated_buf) & - (CMDBUFF_ALIGN_SZ-1)); + (CMDBUFF_ALIGN_SZ - 1)); pcmdpriv->rsp_allocated_buf = kmalloc(MAX_RSPSZ + 4, GFP_ATOMIC); if (pcmdpriv->rsp_allocated_buf == NULL) return _FAIL; @@ -485,7 +485,7 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) return _FAIL; /* for hidden ap to set fw_state here */ - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE|WIFI_ADHOC_STATE) != + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE) != true) { switch (ndis_network_mode) { case Ndis802_11IBSS: @@ -508,12 +508,12 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) memcpy(psecnetwork, &pnetwork->network, sizeof(*psecnetwork)); psecuritypriv->authenticator_ie[0] = (unsigned char) psecnetwork->IELength; - if ((psecnetwork->IELength-12) < (256 - 1)) + if ((psecnetwork->IELength - 12) < (256 - 1)) memcpy(&psecuritypriv->authenticator_ie[1], - &psecnetwork->IEs[12], psecnetwork->IELength-12); + &psecnetwork->IEs[12], psecnetwork->IELength - 12); else memcpy(&psecuritypriv->authenticator_ie[1], - &psecnetwork->IEs[12], (256-1)); + &psecnetwork->IEs[12], (256 - 1)); psecnetwork->IELength = 0; /* If the driver wants to use the bssid to create the connection. * If not, we copy the connecting AP's MAC address to it so that diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index e70513d06a35..edfc6805e012 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -118,12 +118,13 @@ static inline void handle_group_key(struct ieee_param *param, param->u.crypt.idx < 3) { /* group key idx is 1 or 2 */ memcpy(padapter->securitypriv.XGrpKey[param->u.crypt. - idx-1].skey, param->u.crypt.key, (param->u.crypt.key_len - > 16 ? 16 : param->u.crypt.key_len)); + idx - 1].skey, param->u.crypt.key, + (param->u.crypt.key_len > 16 ? 16 : + param->u.crypt.key_len)); memcpy(padapter->securitypriv.XGrptxmickey[param-> - u.crypt.idx-1].skey, &(param->u.crypt.key[16]), 8); + u.crypt.idx - 1].skey, &(param->u.crypt.key[16]), 8); memcpy(padapter->securitypriv. XGrprxmickey[param-> - u.crypt.idx-1].skey, &(param->u.crypt.key[24]), 8); + u.crypt.idx - 1].skey, &(param->u.crypt.key[24]), 8); padapter->securitypriv.binstallGrpkey = true; r8712_set_key(padapter, &padapter->securitypriv, param->u.crypt.idx); @@ -199,7 +200,7 @@ static inline char *translate_scan(struct _adapter *padapter, memcpy((u8 *)&cap, r8712_get_capability_from_ie(pnetwork->network.IEs), 2); cap = le16_to_cpu(cap); - if (cap & (WLAN_CAPABILITY_IBSS|WLAN_CAPABILITY_BSS)) { + if (cap & (WLAN_CAPABILITY_IBSS | WLAN_CAPABILITY_BSS)) { if (cap & WLAN_CAPABILITY_BSS) iwe.u.mode = (u32)IW_MODE_MASTER; else @@ -575,10 +576,10 @@ static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie, eid = buf[cnt]; if ((eid == _VENDOR_SPECIFIC_IE_) && - (!memcmp(&buf[cnt+2], wps_oui, 4))) { + (!memcmp(&buf[cnt + 2], wps_oui, 4))) { netdev_info(padapter->pnetdev, "r8712u: SET WPS_IE\n"); padapter->securitypriv.wps_ie_len = - ((buf[cnt+1] + 2) < + ((buf[cnt + 1] + 2) < (MAX_WPA_IE_LEN << 2)) ? (buf[cnt + 1] + 2) : (MAX_WPA_IE_LEN << 2); @@ -588,7 +589,7 @@ static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie, padapter->securitypriv.wps_phase = true; netdev_info(padapter->pnetdev, "r8712u: SET WPS_IE, wps_phase==true\n"); - cnt += buf[cnt+1]+2; + cnt += buf[cnt + 1] + 2; break; } else { cnt += buf[cnt + 1] + 2; @@ -613,7 +614,7 @@ static int r8711_wx_get_name(struct net_device *dev, struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; u8 *prates; - if (check_fwstate(pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE) == + if (check_fwstate(pmlmepriv, _FW_LINKED | WIFI_ADHOC_MASTER_STATE) == true) { /* parsing HT_CAP_IE */ p = r8712_get_ie(&pcur_bss->IEs[12], _HT_CAPABILITY_IE_, @@ -704,7 +705,7 @@ static int r8711_wx_get_freq(struct net_device *dev, if (check_fwstate(pmlmepriv, _FW_LINKED)) { wrqu->freq.m = ieee80211_wlan_frequencies[ - pcur_bss->Configuration.DSConfig-1] * 100000; + pcur_bss->Configuration.DSConfig - 1] * 100000; wrqu->freq.e = 1; wrqu->freq.i = pcur_bss->Configuration.DSConfig; } else { @@ -949,7 +950,7 @@ static int r871x_wx_set_priv(struct net_device *dev, sprintf(ext, "%s rssi %d", pcur_network->network.Ssid.Ssid, /*(xxxx=xxxx+10) */ - ((padapter->recvpriv.fw_rssi)>>1)-95 + ((padapter->recvpriv.fw_rssi) >> 1) - 95 /*pcur_network->network.Rssi */ ); } else { @@ -1012,7 +1013,7 @@ static int r871x_wx_set_priv(struct net_device *dev, goto FREE_EXT; } if (copy_to_user(dwrq->pointer, ext, - min(dwrq->length, (__u16)(strlen(ext)+1)))) + min(dwrq->length, (__u16)(strlen(ext) + 1)))) ret = -EFAULT; FREE_EXT: @@ -1151,7 +1152,7 @@ static int r8711_wx_set_scan(struct net_device *dev, return -ENETDOWN; if (!padapter->hw_init_completed) return -1; - if ((check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)) || + if ((check_fwstate(pmlmepriv, _FW_UNDER_SURVEY | _FW_UNDER_LINKING)) || (pmlmepriv->sitesurveyctrl.traffic_busy)) return 0; if (wrqu->data.length == sizeof(struct iw_scan_req)) { @@ -1201,7 +1202,8 @@ static int r8711_wx_get_scan(struct net_device *dev, if (padapter->bDriverStopped) return -EINVAL; - while (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)) { + while (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY | + _FW_UNDER_LINKING)) { msleep(30); cnt++; if (cnt > 100) @@ -1311,7 +1313,7 @@ static int r8711_wx_get_essid(struct net_device *dev, struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; u32 len, ret = 0; - if (check_fwstate(pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE)) { + if (check_fwstate(pmlmepriv, _FW_LINKED | WIFI_ADHOC_MASTER_STATE)) { len = pcur_bss->Ssid.SsidLength; wrqu->essid.length = len; memcpy(extra, pcur_bss->Ssid.Ssid, len); @@ -1412,7 +1414,7 @@ static int r8711_wx_get_rate(struct net_device *dev, u16 mcs_rate = 0; i = 0; - if (check_fwstate(pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE)) { + if (check_fwstate(pmlmepriv, _FW_LINKED | WIFI_ADHOC_MASTER_STATE)) { p = r8712_get_ie(&pcur_bss->IEs[12], _HT_CAPABILITY_IE_, &ht_ielen, pcur_bss->IELength - 12); @@ -1432,7 +1434,7 @@ static int r8711_wx_get_rate(struct net_device *dev, if (rate > max_rate) max_rate = rate; wrqu->bitrate.fixed = 0; /* no auto select */ - wrqu->bitrate.value = rate*500000; + wrqu->bitrate.value = rate * 500000; i++; } if (ht_cap) { @@ -1853,7 +1855,7 @@ static int r8711_wx_write32(struct net_device *dev, u32 data32; get_user(addr, (u32 __user *)wrqu->data.pointer); - data32 = ((u32)wrqu->data.length<<16) | (u32)wrqu->data.flags; + data32 = ((u32)wrqu->data.length << 16) | (u32)wrqu->data.flags; r8712_write32(padapter, addr, data32); return 0; } @@ -1966,7 +1968,8 @@ static int r871x_get_ap_info(struct net_device *dev, if (padapter->bDriverStopped || (pdata == NULL)) return -EINVAL; - while (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)) { + while (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY | + _FW_UNDER_LINKING)) { msleep(30); cnt++; if (cnt > 100) @@ -1997,13 +2000,13 @@ static int r871x_get_ap_info(struct net_device *dev, if (ether_addr_equal(bssid, pnetwork->network.MacAddress)) { /* BSSID match, then check if supporting wpa/wpa2 */ pbuf = r8712_get_wpa_ie(&pnetwork->network.IEs[12], - &wpa_ielen, pnetwork->network.IELength-12); + &wpa_ielen, pnetwork->network.IELength - 12); if (pbuf && (wpa_ielen > 0)) { pdata->flags = 1; break; } pbuf = r8712_get_wpa2_ie(&pnetwork->network.IEs[12], - &wpa_ielen, pnetwork->network.IELength-12); + &wpa_ielen, pnetwork->network.IELength - 12); if (pbuf && (wpa_ielen > 0)) { pdata->flags = 2; break; @@ -2088,7 +2091,7 @@ static int wpa_set_param(struct net_device *dev, u8 name, u32 value) switch (name) { case IEEE_PARAM_WPA_ENABLED: padapter->securitypriv.AuthAlgrthm = 2; /* 802.1x */ - switch ((value)&0xff) { + switch ((value) & 0xff) { case 1: /* WPA */ padapter->securitypriv.ndisauthtype = Ndis802_11AuthModeWPAPSK; /* WPA_PSK */ diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c index b10b3e82994e..7c346a405a20 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c @@ -475,7 +475,8 @@ uint oid_rt_pro_rf_read_registry_hdl(struct oid_par_priv *poid_par_priv) if (poid_par_priv->type_of_oid != SET_OID) /* QUERY_OID */ return RNDIS_STATUS_NOT_ACCEPTED; - if (poid_par_priv->information_buf_len == (sizeof(unsigned long)*3)) { + if (poid_par_priv->information_buf_len == (sizeof(unsigned long) * + 3)) { if (Adapter->mppriv.act_in_progress) { status = RNDIS_STATUS_NOT_ACCEPTED; } else { diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_set.c b/drivers/staging/rtl8712/rtl871x_ioctl_set.c index ab84a4032fe4..f772675ae9cd 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_set.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_set.c @@ -180,11 +180,11 @@ void r8712_set_802_11_ssid(struct _adapter *padapter, if (!padapter->hw_init_completed) return; spin_lock_irqsave(&pmlmepriv->lock, irqL); - if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)) { + if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY | _FW_UNDER_LINKING)) { check_fwstate(pmlmepriv, _FW_UNDER_LINKING); goto _Abort_Set_SSID; } - if (check_fwstate(pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE)) { + if (check_fwstate(pmlmepriv, _FW_LINKED | WIFI_ADHOC_MASTER_STATE)) { if ((pmlmepriv->assoc_ssid.SsidLength == ssid->SsidLength) && (!memcmp(&pmlmepriv->assoc_ssid.Ssid, ssid->Ssid, ssid->SsidLength))) { diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index 98113c4e699e..b22dbd5311e7 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.c +++ b/drivers/staging/rtl8712/rtl871x_mlme.c @@ -205,8 +205,8 @@ void r8712_generate_random_ibss(u8 *pibss) pibss[1] = 0x11; pibss[2] = 0x87; pibss[3] = (u8)(curtime & 0xff); - pibss[4] = (u8)((curtime>>8) & 0xff); - pibss[5] = (u8)((curtime>>16) & 0xff); + pibss[4] = (u8)((curtime >> 8) & 0xff); + pibss[5] = (u8)((curtime >> 16) & 0xff); } uint r8712_get_wlan_bssid_ex_sz(struct wlan_bssid_ex *bss) @@ -635,7 +635,7 @@ void r8712_free_assoc_resources(struct _adapter *adapter) pwlan = r8712_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress); - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE|WIFI_AP_STATE)) { + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_AP_STATE)) { struct sta_info *psta; psta = r8712_get_stainfo(&adapter->stapriv, @@ -647,7 +647,7 @@ void r8712_free_assoc_resources(struct _adapter *adapter) } if (check_fwstate(pmlmepriv, - WIFI_ADHOC_STATE|WIFI_ADHOC_MASTER_STATE|WIFI_AP_STATE)) + WIFI_ADHOC_STATE | WIFI_ADHOC_MASTER_STATE | WIFI_AP_STATE)) r8712_free_all_stainfo(adapter); if (pwlan) pwlan->fixed = false; @@ -719,8 +719,8 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) pnetwork = kmalloc(sizeof(struct wlan_network), GFP_ATOMIC); if (!pnetwork) return; - memcpy((u8 *)pnetwork+16, (u8 *)pbuf + 8, - sizeof(struct wlan_network) - 16); + memcpy((u8 *)pnetwork + 16, (u8 *)pbuf + 8, + sizeof(struct wlan_network) - 16); } else { pnetwork = (struct wlan_network *)pbuf; } @@ -1414,7 +1414,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, while (cnt < in_len) { if (in_ie[cnt] == authmode) { if ((authmode == _WPA_IE_ID_) && - (!memcmp(&in_ie[cnt+2], &wpa_oui[0], 4))) { + (!memcmp(&in_ie[cnt + 2], &wpa_oui[0], 4))) { memcpy(&sec_ie[0], &in_ie[cnt], in_ie[cnt + 1] + 2); match = true; @@ -1432,7 +1432,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, memcpy(&bkup_ie[0], &in_ie[cnt], in_ie[cnt + 1] + 2); } - cnt += in_ie[cnt+1] + 2; /*get next*/ + cnt += in_ie[cnt + 1] + 2; /*get next*/ } /*restruct WPA IE or WPA2 IE in sec_ie[] */ if (match) { @@ -1492,7 +1492,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, /*select the uncst_oui and remove * the other uncst_oui*/ cnt = sec_ie[12]; - remove_cnt = (cnt-1) * 4; + remove_cnt = (cnt - 1) * 4; sec_ie[12] = 0x01; memcpy(&sec_ie[14], &uncst_oui[0], 4); /*remove the other unicast suit*/ @@ -1553,7 +1553,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, /*select the uncst_oui and remove the * other uncst_oui*/ cnt = sec_ie[8]; - remove_cnt = (cnt-1)*4; + remove_cnt = (cnt - 1) * 4; sec_ie[8] = 0x01; memcpy(&sec_ie[10], &uncst_oui[0], 4); /*remove the other unicast suit*/ @@ -1561,7 +1561,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, &sec_ie[14 + remove_cnt], (sec_ie[1] - 14 + 2 - remove_cnt)); - sec_ie[1] = sec_ie[1]-remove_cnt; + sec_ie[1] = sec_ie[1] - remove_cnt; } break; } @@ -1573,7 +1573,7 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, ielength = 12; /*copy RSN or SSN*/ if (match) { - memcpy(&out_ie[ielength], &sec_ie[0], sec_ie[1]+2); + memcpy(&out_ie[ielength], &sec_ie[0], sec_ie[1] + 2); ielength += sec_ie[1] + 2; if (authmode == _WPA2_IE_ID_) { /*the Pre-Authentication bit should be zero*/ @@ -1587,8 +1587,8 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie, memcpy(out_ie, in_ie, 12); ielength = 12; if (psecuritypriv->wps_phase) { - memcpy(out_ie+ielength, psecuritypriv->wps_ie, - psecuritypriv->wps_ie_len); + memcpy(out_ie + ielength, psecuritypriv->wps_ie, + psecuritypriv->wps_ie_len); ielength += psecuritypriv->wps_ie_len; } } @@ -1702,11 +1702,11 @@ unsigned int r8712_restructure_ht_ie(struct _adapter *padapter, u8 *in_ie, struct ht_priv *phtpriv = &pmlmepriv->htpriv; phtpriv->ht_option = 0; - p = r8712_get_ie(in_ie+12, _HT_CAPABILITY_IE_, &ielen, in_len-12); + p = r8712_get_ie(in_ie + 12, _HT_CAPABILITY_IE_, &ielen, in_len - 12); if (p && (ielen > 0)) { if (pqospriv->qos_option == 0) { out_len = *pout_len; - r8712_set_ie(out_ie+out_len, _VENDOR_SPECIFIC_IE_, + r8712_set_ie(out_ie + out_len, _VENDOR_SPECIFIC_IE_, _WMM_IE_Length_, WMM_IE, pout_len); pqospriv->qos_option = 1; } @@ -1720,7 +1720,7 @@ unsigned int r8712_restructure_ht_ie(struct _adapter *padapter, u8 *in_ie, IEEE80211_HT_CAP_DSSSCCK40; ht_capie.ampdu_params_info = (IEEE80211_HT_CAP_AMPDU_FACTOR & 0x03) | (IEEE80211_HT_CAP_AMPDU_DENSITY & 0x00); - r8712_set_ie(out_ie+out_len, _HT_CAPABILITY_IE_, + r8712_set_ie(out_ie + out_len, _HT_CAPABILITY_IE_, sizeof(struct ieee80211_ht_cap), (unsigned char *)&ht_capie, pout_len); phtpriv->ht_option = 1; @@ -1754,11 +1754,11 @@ static void update_ht_cap(struct _adapter *padapter, u8 *pie, uint ie_len) &len, ie_len - sizeof(struct NDIS_802_11_FIXED_IEs)); if (p && len > 0) { - pht_capie = (struct ieee80211_ht_cap *)(p+2); + pht_capie = (struct ieee80211_ht_cap *)(p + 2); max_ampdu_sz = (pht_capie->ampdu_params_info & IEEE80211_HT_CAP_AMPDU_FACTOR); /* max_ampdu_sz (kbytes); */ - max_ampdu_sz = 1 << (max_ampdu_sz+3); + max_ampdu_sz = 1 << (max_ampdu_sz + 3); phtpriv->rx_ampdu_maxlen = max_ampdu_sz; } /* for A-MPDU Rx reordering buffer control for bmc_sta & sta_info @@ -1786,7 +1786,7 @@ static void update_ht_cap(struct _adapter *padapter, u8 *pie, uint ie_len) len = 0; p = r8712_get_ie(pie + sizeof(struct NDIS_802_11_FIXED_IEs), _HT_ADD_INFO_IE_, &len, - ie_len-sizeof(struct NDIS_802_11_FIXED_IEs)); + ie_len - sizeof(struct NDIS_802_11_FIXED_IEs)); } void r8712_issue_addbareq_cmd(struct _adapter *padapter, int priority) diff --git a/drivers/staging/rtl8712/rtl871x_mp.c b/drivers/staging/rtl8712/rtl871x_mp.c index 678305501d63..e1cb149253b8 100644 --- a/drivers/staging/rtl8712/rtl871x_mp.c +++ b/drivers/staging/rtl8712/rtl871x_mp.c @@ -211,7 +211,7 @@ static u32 bitshift(u32 bitmask) u32 i; for (i = 0; i <= 31; i++) - if (((bitmask>>i) & 0x1) == 1) + if (((bitmask >> i) & 0x1) == 1) break; return i; } @@ -307,7 +307,8 @@ static void SetOFDMTxPower(struct _adapter *pAdapter, u8 TxPower) { u32 TxAGC = 0; - TxAGC |= ((TxPower<<24)|(TxPower<<16)|(TxPower<<8)|TxPower); + TxAGC |= ((TxPower << 24) | (TxPower << 16) | (TxPower << 8) | + TxPower); set_bb_reg(pAdapter, rTxAGC_Rate18_06, bTxAGCRate18_06, TxAGC); set_bb_reg(pAdapter, rTxAGC_Rate54_24, bTxAGCRate54_24, TxAGC); set_bb_reg(pAdapter, rTxAGC_Mcs03_Mcs00, bTxAGCRateMCS3_MCS0, TxAGC); @@ -328,12 +329,12 @@ void r8712_SetTxAGCOffset(struct _adapter *pAdapter, u32 ulTxAGCOffset) { u32 TxAGCOffset_B, TxAGCOffset_C, TxAGCOffset_D, tmpAGC; - TxAGCOffset_B = (ulTxAGCOffset&0x000000ff); - TxAGCOffset_C = (ulTxAGCOffset & 0x0000ff00)>>8; - TxAGCOffset_D = (ulTxAGCOffset & 0x00ff0000)>>16; - tmpAGC = (TxAGCOffset_D<<8 | TxAGCOffset_C<<4 | TxAGCOffset_B); + TxAGCOffset_B = (ulTxAGCOffset & 0x000000ff); + TxAGCOffset_C = (ulTxAGCOffset & 0x0000ff00) >> 8; + TxAGCOffset_D = (ulTxAGCOffset & 0x00ff0000) >> 16; + tmpAGC = (TxAGCOffset_D << 8 | TxAGCOffset_C << 4 | TxAGCOffset_B); set_bb_reg(pAdapter, rFPGA0_TxGainStage, - (bXBTxAGC|bXCTxAGC|bXDTxAGC), tmpAGC); + (bXBTxAGC | bXCTxAGC | bXDTxAGC), tmpAGC); } void r8712_SetDataRate(struct _adapter *pAdapter) @@ -379,7 +380,7 @@ void r8712_SwitchBandwidth(struct _adapter *pAdapter) * Set Control channel to upper or lower. These settings are * required only for 40MHz */ set_bb_reg(pAdapter, rCCK0_System, bCCKSideBand, - (HAL_PRIME_CHNL_OFFSET_DONT_CARE>>1)); + (HAL_PRIME_CHNL_OFFSET_DONT_CARE >> 1)); set_bb_reg(pAdapter, rOFDM1_LSTF, 0xC00, HAL_PRIME_CHNL_OFFSET_DONT_CARE); set_bb_reg(pAdapter, rFPGA0_AnalogParameter2, bMaskDWord, 0x18); diff --git a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c index 26786ad19b71..b98a596757f5 100644 --- a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c +++ b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c @@ -295,7 +295,7 @@ uint oid_rt_pro_start_test_hdl(struct oid_par_priv *poid_par_priv) r8712_write8(Adapter, MSR, 1); /* Link in ad hoc network, 0x1025004C */ r8712_write8(Adapter, RCR, 0); /* RCR : disable all pkt, 0x10250048 */ /* RCR disable Check BSSID, 0x1025004a */ - r8712_write8(Adapter, RCR+2, 0x57); + r8712_write8(Adapter, RCR + 2, 0x57); /* disable RX filter map , mgt frames will put in RX FIFO 0 */ r8712_write16(Adapter, RXFLTMAP0, 0x0); val8 = r8712_read8(Adapter, EE_9346CR); @@ -885,7 +885,7 @@ uint oid_rt_set_rx_packet_type_hdl(struct oid_par_priv rcr_val32 |= (RCR_AB | RCR_AM | RCR_APM | RCR_AAP | RCR_ACRC32); break; case RX_PKT_PHY_MATCH: - rcr_val32 |= (RCR_APM|RCR_ACRC32); + rcr_val32 |= (RCR_APM | RCR_ACRC32); break; default: rcr_val32 &= ~(RCR_AAP | diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c index e9dc1f472756..4ff530155187 100644 --- a/drivers/staging/rtl8712/rtl871x_recv.c +++ b/drivers/staging/rtl8712/rtl871x_recv.c @@ -83,7 +83,7 @@ sint _r8712_init_recv_priv(struct recv_priv *precvpriv, precvpriv->precv_frame_buf = precvpriv->pallocated_frame_buf + RXFRAME_ALIGN_SZ - ((addr_t)(precvpriv->pallocated_frame_buf) & - (RXFRAME_ALIGN_SZ-1)); + (RXFRAME_ALIGN_SZ - 1)); precvframe = (union recv_frame *)precvpriv->precv_frame_buf; for (i = 0; i < NR_RECVFRAME; i++) { INIT_LIST_HEAD(&(precvframe->u.list)); @@ -301,7 +301,7 @@ static sint recv_decache(union recv_frame *precv_frame, u8 bretry, struct stainfo_rxcache *prxcache) { sint tid = precv_frame->u.hdr.attrib.priority; - u16 seq_ctrl = ((precv_frame->u.hdr.attrib.seq_num&0xffff) << 4) | + u16 seq_ctrl = ((precv_frame->u.hdr.attrib.seq_num & 0xffff) << 4) | (precv_frame->u.hdr.attrib.frag_num & 0xf); if (tid > 15) @@ -637,7 +637,7 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe) if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { ptr += rmv_len; *ptr = 0x87; - *(ptr+1) = 0x12; + *(ptr + 1) = 0x12; /* append rx status for mp test packets */ ptr = recvframe_pull(precvframe, (rmv_len - sizeof(struct ethhdr) + 2) - 24); @@ -648,7 +648,7 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe) sizeof(struct ethhdr) + (bsnaphdr ? 2 : 0))); memcpy(ptr, pattrib->dst, ETH_ALEN); - memcpy(ptr+ETH_ALEN, pattrib->src, ETH_ALEN); + memcpy(ptr + ETH_ALEN, pattrib->src, ETH_ALEN); if (!bsnaphdr) { len = htons(len); memcpy(ptr + 12, &len, 2); diff --git a/drivers/staging/rtl8712/rtl871x_security.c b/drivers/staging/rtl8712/rtl871x_security.c index 1d7888a19387..09242425dad4 100644 --- a/drivers/staging/rtl8712/rtl871x_security.c +++ b/drivers/staging/rtl8712/rtl871x_security.c @@ -175,22 +175,22 @@ void r8712_wep_encrypt(struct _adapter *padapter, u8 *pxmitframe) if (((struct xmit_frame *)pxmitframe)->buf_addr == NULL) return; - pframe = ((struct xmit_frame *)pxmitframe)->buf_addr+TXDESC_OFFSET; + pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + TXDESC_OFFSET; /*start to encrypt each fragment*/ if ((pattrib->encrypt == _WEP40_) || (pattrib->encrypt == _WEP104_)) { keylength = psecuritypriv->DefKeylen[psecuritypriv-> PrivacyKeyIndex]; for (curfragnum = 0; curfragnum < pattrib->nr_frags; curfragnum++) { - iv = pframe+pattrib->hdrlen; + iv = pframe + pattrib->hdrlen; memcpy(&wepkey[0], iv, 3); memcpy(&wepkey[3], &psecuritypriv->DefKey[ psecuritypriv->PrivacyKeyIndex].skey[0], keylength); - payload = pframe+pattrib->iv_len+pattrib->hdrlen; + payload = pframe + pattrib->iv_len + pattrib->hdrlen; if ((curfragnum + 1) == pattrib->nr_frags) { - length = pattrib->last_txcmdsz-pattrib-> - hdrlen-pattrib->iv_len - + length = pattrib->last_txcmdsz - pattrib-> + hdrlen - pattrib->iv_len - pattrib->icv_len; *((u32 *)crc) = cpu_to_le32(getcrc32( payload, length)); @@ -200,14 +200,15 @@ void r8712_wep_encrypt(struct _adapter *padapter, u8 *pxmitframe) arcfour_encrypt(&mycontext, payload + length, crc, 4); } else { - length = pxmitpriv->frag_len-pattrib->hdrlen - - pattrib->iv_len-pattrib->icv_len; + length = pxmitpriv->frag_len - + pattrib->hdrlen - pattrib->iv_len - + pattrib->icv_len; *((u32 *)crc) = cpu_to_le32(getcrc32( payload, length)); arcfour_init(&mycontext, wepkey, 3 + keylength); arcfour_encrypt(&mycontext, payload, payload, length); - arcfour_encrypt(&mycontext, payload+length, + arcfour_encrypt(&mycontext, payload + length, crc, 4); pframe += pxmitpriv->frag_len; pframe = (u8 *)RND4((addr_t)(pframe)); @@ -241,8 +242,8 @@ void r8712_wep_decrypt(struct _adapter *padapter, u8 *precvframe) psecuritypriv->PrivacyKeyIndex].skey[0], keylength); length = ((union recv_frame *)precvframe)-> - u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len; - payload = pframe+prxattrib->iv_len+prxattrib->hdrlen; + u.hdr.len - prxattrib->hdrlen - prxattrib->iv_len; + payload = pframe + prxattrib->iv_len + prxattrib->hdrlen; /* decrypt payload include icv */ arcfour_init(&mycontext, wepkey, 3 + keylength); arcfour_encrypt(&mycontext, payload, payload, length); @@ -495,11 +496,11 @@ static void phase1(u16 *p1k, const u8 *tk, const u8 *ta, u32 iv32) /* Now compute an unbalanced Feistel cipher with 80-bit block */ /* size on the 80-bit block P1K[], using the 128-bit key TK[] */ for (i = 0; i < PHASE1_LOOP_CNT; i++) { /* Each add is mod 2**16 */ - p1k[0] += _S_(p1k[4] ^ TK16((i&1) + 0)); - p1k[1] += _S_(p1k[0] ^ TK16((i&1) + 2)); - p1k[2] += _S_(p1k[1] ^ TK16((i&1) + 4)); - p1k[3] += _S_(p1k[2] ^ TK16((i&1) + 6)); - p1k[4] += _S_(p1k[3] ^ TK16((i&1) + 0)); + p1k[0] += _S_(p1k[4] ^ TK16((i & 1) + 0)); + p1k[1] += _S_(p1k[0] ^ TK16((i & 1) + 2)); + p1k[2] += _S_(p1k[1] ^ TK16((i & 1) + 4)); + p1k[3] += _S_(p1k[2] ^ TK16((i & 1) + 6)); + p1k[4] += _S_(p1k[3] ^ TK16((i & 1) + 0)); p1k[4] += (unsigned short)i; /* avoid "slide attacks" */ } } @@ -587,7 +588,7 @@ u32 r8712_tkip_encrypt(struct _adapter *padapter, u8 *pxmitframe) if (((struct xmit_frame *)pxmitframe)->buf_addr == NULL) return _FAIL; - pframe = ((struct xmit_frame *)pxmitframe)->buf_addr+TXDESC_OFFSET; + pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + TXDESC_OFFSET; /* 4 start to encrypt each fragment */ if (pattrib->encrypt == _TKIP_) { if (pattrib->psta) @@ -600,7 +601,7 @@ u32 r8712_tkip_encrypt(struct _adapter *padapter, u8 *pxmitframe) for (curfragnum = 0; curfragnum < pattrib->nr_frags; curfragnum++) { iv = pframe + pattrib->hdrlen; - payload = pframe+pattrib->iv_len + + payload = pframe + pattrib->iv_len + pattrib->hdrlen; GET_TKIP_PN(iv, txpn); pnl = (u16)(txpn.val); @@ -612,7 +613,8 @@ u32 r8712_tkip_encrypt(struct _adapter *padapter, u8 *pxmitframe) if ((curfragnum + 1) == pattrib->nr_frags) { /* 4 the last fragment */ length = pattrib->last_txcmdsz - - pattrib->hdrlen-pattrib->iv_len - + pattrib->hdrlen - + pattrib->iv_len - pattrib->icv_len; *((u32 *)crc) = cpu_to_le32( getcrc32(payload, length)); @@ -622,16 +624,18 @@ u32 r8712_tkip_encrypt(struct _adapter *padapter, u8 *pxmitframe) arcfour_encrypt(&mycontext, payload + length, crc, 4); } else { - length = pxmitpriv->frag_len-pattrib-> - hdrlen-pattrib-> - iv_len-pattrib->icv_len; + length = pxmitpriv->frag_len - + pattrib->hdrlen - + pattrib->iv_len - + pattrib->icv_len; *((u32 *)crc) = cpu_to_le32(getcrc32( payload, length)); arcfour_init(&mycontext, rc4key, 16); arcfour_encrypt(&mycontext, payload, payload, length); arcfour_encrypt(&mycontext, - payload+length, crc, 4); + payload + length, crc, + 4); pframe += pxmitpriv->frag_len; pframe = (u8 *)RND4((addr_t)(pframe)); } @@ -667,8 +671,9 @@ u32 r8712_tkip_decrypt(struct _adapter *padapter, u8 *precvframe) stainfo = r8712_get_stainfo(&padapter->stapriv, &prxattrib->ta[0]); if (stainfo != NULL) { - iv = pframe+prxattrib->hdrlen; - payload = pframe+prxattrib->iv_len + prxattrib->hdrlen; + iv = pframe + prxattrib->hdrlen; + payload = pframe + prxattrib->iv_len + + prxattrib->hdrlen; length = ((union recv_frame *)precvframe)-> u.hdr.len - prxattrib->hdrlen - prxattrib->iv_len; @@ -854,7 +859,7 @@ static void mix_column(u8 *in, u8 *out) andf7[3] = in[3] & 0x7f; for (i = 3; i > 0; i--) { /* logical shift left 1 bit */ andf7[i] = andf7[i] << 1; - if ((andf7[i-1] & 0x80) == 0x80) + if ((andf7[i - 1] & 0x80) == 0x80) andf7[i] = (andf7[i] | 0x01); } andf7[0] = andf7[0] << 1; @@ -1076,11 +1081,11 @@ static sint aes_cipher(u8 *key, uint hdrlen, qc_exists = 0; } pn_vector[0] = pframe[hdrlen]; - pn_vector[1] = pframe[hdrlen+1]; - pn_vector[2] = pframe[hdrlen+4]; - pn_vector[3] = pframe[hdrlen+5]; - pn_vector[4] = pframe[hdrlen+6]; - pn_vector[5] = pframe[hdrlen+7]; + pn_vector[1] = pframe[hdrlen + 1]; + pn_vector[2] = pframe[hdrlen + 4]; + pn_vector[3] = pframe[hdrlen + 5]; + pn_vector[4] = pframe[hdrlen + 6]; + pn_vector[5] = pframe[hdrlen + 7]; construct_mic_iv(mic_iv, qc_exists, a4_exists, pframe, plen, pn_vector); construct_mic_header1(mic_header1, hdrlen, pframe); construct_mic_header2(mic_header2, pframe, a4_exists, qc_exists); @@ -1112,7 +1117,7 @@ static sint aes_cipher(u8 *key, uint hdrlen, mic[j] = aes_out[j]; /* Insert MIC into payload */ for (j = 0; j < 8; j++) - pframe[payload_index+j] = mic[j]; + pframe[payload_index + j] = mic[j]; payload_index = hdrlen + 8; for (i = 0; i < num_blocks; i++) { construct_ctr_preload(ctr_preload, a4_exists, qc_exists, @@ -1125,11 +1130,11 @@ static sint aes_cipher(u8 *key, uint hdrlen, if (payload_remainder > 0) { /* If short final block, then pad it,*/ /* encrypt and copy unpadded part back */ construct_ctr_preload(ctr_preload, a4_exists, qc_exists, - pframe, pn_vector, num_blocks+1); + pframe, pn_vector, num_blocks + 1); for (j = 0; j < 16; j++) padded_buffer[j] = 0x00; for (j = 0; j < payload_remainder; j++) - padded_buffer[j] = pframe[payload_index+j]; + padded_buffer[j] = pframe[payload_index + j]; aes128k128d(key, ctr_preload, aes_out); bitwise_xor(aes_out, padded_buffer, chain_buffer); for (j = 0; j < payload_remainder; j++) @@ -1141,7 +1146,7 @@ static sint aes_cipher(u8 *key, uint hdrlen, for (j = 0; j < 16; j++) padded_buffer[j] = 0x00; for (j = 0; j < 8; j++) - padded_buffer[j] = pframe[j+hdrlen+8+plen]; + padded_buffer[j] = pframe[j + hdrlen + 8 + plen]; aes128k128d(key, ctr_preload, aes_out); bitwise_xor(aes_out, padded_buffer, chain_buffer); for (j = 0; j < 8; j++) @@ -1229,13 +1234,13 @@ static sint aes_decipher(u8 *key, uint hdrlen, /* start to decrypt the payload */ /*(plen including llc, payload and mic) */ num_blocks = (plen - 8) / 16; - payload_remainder = (plen-8) % 16; + payload_remainder = (plen - 8) % 16; pn_vector[0] = pframe[hdrlen]; - pn_vector[1] = pframe[hdrlen+1]; - pn_vector[2] = pframe[hdrlen+4]; - pn_vector[3] = pframe[hdrlen+5]; - pn_vector[4] = pframe[hdrlen+6]; - pn_vector[5] = pframe[hdrlen+7]; + pn_vector[1] = pframe[hdrlen + 1]; + pn_vector[2] = pframe[hdrlen + 4]; + pn_vector[3] = pframe[hdrlen + 5]; + pn_vector[4] = pframe[hdrlen + 6]; + pn_vector[5] = pframe[hdrlen + 7]; if ((hdrlen == WLAN_HDR_A3_LEN) || (hdrlen == WLAN_HDR_A3_QOS_LEN)) a4_exists = 0; else @@ -1269,7 +1274,7 @@ static sint aes_decipher(u8 *key, uint hdrlen, if (payload_remainder > 0) { /* If short final block, pad it,*/ /* encrypt it and copy the unpadded part back */ construct_ctr_preload(ctr_preload, a4_exists, qc_exists, - pframe, pn_vector, num_blocks+1); + pframe, pn_vector, num_blocks + 1); for (j = 0; j < 16; j++) padded_buffer[j] = 0x00; for (j = 0; j < payload_remainder; j++) @@ -1282,12 +1287,12 @@ static sint aes_decipher(u8 *key, uint hdrlen, /* start to calculate the mic */ memcpy((void *)message, pframe, (hdrlen + plen + 8)); pn_vector[0] = pframe[hdrlen]; - pn_vector[1] = pframe[hdrlen+1]; - pn_vector[2] = pframe[hdrlen+4]; - pn_vector[3] = pframe[hdrlen+5]; - pn_vector[4] = pframe[hdrlen+6]; - pn_vector[5] = pframe[hdrlen+7]; - construct_mic_iv(mic_iv, qc_exists, a4_exists, message, plen-8, + pn_vector[1] = pframe[hdrlen + 1]; + pn_vector[2] = pframe[hdrlen + 4]; + pn_vector[3] = pframe[hdrlen + 5]; + pn_vector[4] = pframe[hdrlen + 6]; + pn_vector[5] = pframe[hdrlen + 7]; + construct_mic_iv(mic_iv, qc_exists, a4_exists, message, plen - 8, pn_vector); construct_mic_header1(mic_header1, hdrlen, message); construct_mic_header2(mic_header2, message, a4_exists, qc_exists); @@ -1319,7 +1324,7 @@ static sint aes_decipher(u8 *key, uint hdrlen, mic[j] = aes_out[j]; /* Insert MIC into payload */ for (j = 0; j < 8; j++) - message[payload_index+j] = mic[j]; + message[payload_index + j] = mic[j]; payload_index = hdrlen + 8; for (i = 0; i < num_blocks; i++) { construct_ctr_preload(ctr_preload, a4_exists, qc_exists, @@ -1332,7 +1337,7 @@ static sint aes_decipher(u8 *key, uint hdrlen, if (payload_remainder > 0) { /* If short final block, pad it,*/ /* encrypt and copy unpadded part back */ construct_ctr_preload(ctr_preload, a4_exists, qc_exists, - message, pn_vector, num_blocks+1); + message, pn_vector, num_blocks + 1); for (j = 0; j < 16; j++) padded_buffer[j] = 0x00; for (j = 0; j < payload_remainder; j++) @@ -1375,7 +1380,7 @@ u32 r8712_aes_decrypt(struct _adapter *padapter, u8 *precvframe) &prxattrib->ta[0]); if (stainfo != NULL) { if (IS_MCAST(prxattrib->ra)) { - iv = pframe+prxattrib->hdrlen; + iv = pframe + prxattrib->hdrlen; idx = iv[3]; prwskey = &psecuritypriv->XGrpKey[ ((idx >> 6) & 0x3) - 1].skey[0]; @@ -1386,7 +1391,8 @@ u32 r8712_aes_decrypt(struct _adapter *padapter, u8 *precvframe) prwskey = &stainfo->x_UncstKey.skey[0]; } length = ((union recv_frame *)precvframe)-> - u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len; + u.hdr.len - prxattrib->hdrlen - + prxattrib->iv_len; aes_decipher(prwskey, prxattrib->hdrlen, pframe, length); } else { diff --git a/drivers/staging/rtl8712/rtl871x_xmit.c b/drivers/staging/rtl8712/rtl871x_xmit.c index eb41f7635d13..68d65d230fe3 100644 --- a/drivers/staging/rtl8712/rtl871x_xmit.c +++ b/drivers/staging/rtl8712/rtl871x_xmit.c @@ -390,7 +390,7 @@ static sint xmitframe_addmic(struct _adapter *padapter, if (pframe[1] & 1) { /* ToDS==1 */ r8712_secmicappend(&micdata, &pframe[16], 6); /*DA*/ - if (pframe[1]&2) /* From Ds==1 */ + if (pframe[1] & 2) /* From Ds==1 */ r8712_secmicappend(&micdata, &pframe[24], 6); else @@ -399,7 +399,7 @@ static sint xmitframe_addmic(struct _adapter *padapter, } else { /* ToDS==0 */ r8712_secmicappend(&micdata, &pframe[4], 6); /* DA */ - if (pframe[1]&2) /* From Ds==1 */ + if (pframe[1] & 2) /* From Ds==1 */ r8712_secmicappend(&micdata, &pframe[16], 6); else @@ -414,8 +414,8 @@ static sint xmitframe_addmic(struct _adapter *padapter, for (curfragnum = 0; curfragnum < pattrib->nr_frags; curfragnum++) { payload = (u8 *)RND4((addr_t)(payload)); - payload = payload+pattrib-> - hdrlen+pattrib->iv_len; + payload = payload + pattrib-> + hdrlen + pattrib->iv_len; if ((curfragnum + 1) == pattrib->nr_frags) { length = pattrib->last_txcmdsz - pattrib->hdrlen - @@ -424,10 +424,10 @@ static sint xmitframe_addmic(struct _adapter *padapter, ? pattrib->icv_len : 0); r8712_secmicappend(&micdata, payload, length); - payload = payload+length; + payload = payload + length; } else{ length = pxmitpriv->frag_len - - pattrib->hdrlen-pattrib->iv_len - + pattrib->hdrlen - pattrib->iv_len - ((psecuritypriv->sw_encrypt) ? pattrib->icv_len : 0); r8712_secmicappend(&micdata, payload, @@ -441,7 +441,7 @@ static sint xmitframe_addmic(struct _adapter *padapter, * last_txcmdsz */ memcpy(payload, &(mic[0]), 8); pattrib->last_txcmdsz += 8; - payload = payload-pattrib->last_txcmdsz + 8; + payload = payload - pattrib->last_txcmdsz + 8; } } return _SUCCESS; @@ -879,19 +879,19 @@ static inline struct tx_servq *get_sta_pending(struct _adapter *padapter, case 2: ptxservq = &(psta->sta_xmitpriv.bk_q); *ppstapending = &padapter->xmitpriv.bk_pending; - (phwxmits+3)->accnt++; + (phwxmits + 3)->accnt++; break; case 4: case 5: ptxservq = &(psta->sta_xmitpriv.vi_q); *ppstapending = &padapter->xmitpriv.vi_pending; - (phwxmits+1)->accnt++; + (phwxmits + 1)->accnt++; break; case 6: case 7: ptxservq = &(psta->sta_xmitpriv.vo_q); *ppstapending = &padapter->xmitpriv.vo_pending; - (phwxmits+0)->accnt++; + (phwxmits + 0)->accnt++; break; case 0: case 3: diff --git a/drivers/staging/rtl8712/usb_halinit.c b/drivers/staging/rtl8712/usb_halinit.c index 944df8543941..ad21df16c2bd 100644 --- a/drivers/staging/rtl8712/usb_halinit.c +++ b/drivers/staging/rtl8712/usb_halinit.c @@ -167,12 +167,12 @@ u8 r8712_usb_hal_bus_init(struct _adapter *padapter) r8712_write8(padapter, CR + 1, 0x37); /* Fix the RX FIFO issue(usb error), */ val8 = r8712_read8(padapter, 0x1025FE5c); - r8712_write8(padapter, 0x1025FE5c, (val8|BIT(7))); + r8712_write8(padapter, 0x1025FE5c, (val8 | BIT(7))); val8 = r8712_read8(padapter, 0x102500ab); - r8712_write8(padapter, 0x102500ab, (val8|BIT(6)|BIT(7))); + r8712_write8(padapter, 0x102500ab, (val8 | BIT(6) | BIT(7))); /* For power save, used this in the bit file after 970621 */ val8 = r8712_read8(padapter, SYS_CLKR); - r8712_write8(padapter, SYS_CLKR, val8&(~CPU_CLKSEL)); + r8712_write8(padapter, SYS_CLKR, val8 & (~CPU_CLKSEL)); } else if (pregistrypriv->chip_version == RTL8712_2ndCUT || pregistrypriv->chip_version == RTL8712_3rdCUT) { /* Initialization for power on sequence, @@ -280,10 +280,10 @@ u8 r8712_usb_hal_bus_init(struct _adapter *padapter) if (PollingCnt <= 0) { val8 = r8712_read8(padapter, CR); - r8712_write8(padapter, CR, val8&(~_TXDMA_EN)); + r8712_write8(padapter, CR, val8 & (~_TXDMA_EN)); udelay(2); /* PlatformStallExecution(2); */ /* Reset TxDMA */ - r8712_write8(padapter, CR, val8|_TXDMA_EN); + r8712_write8(padapter, CR, val8 | _TXDMA_EN); } } else { ret = _FAIL; diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c index de447da02cdb..c71333fbe823 100644 --- a/drivers/staging/rtl8712/usb_intf.c +++ b/drivers/staging/rtl8712/usb_intf.c @@ -339,7 +339,7 @@ static void disable_ht_for_spec_devid(const struct usb_device_id *pdid, flags = specific_device_id_tbl[i].flags; if ((pdid->idVendor == vid) && (pdid->idProduct == pid) && - (flags&SPEC_DEV_ID_DISABLE_HT)) { + (flags & SPEC_DEV_ID_DISABLE_HT)) { padapter->registrypriv.ht_enable = 0; padapter->registrypriv.cbw40_enable = 0; padapter->registrypriv.ampdu_enable = 0; @@ -426,7 +426,7 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf, /* The following operations prevent Efuse leakage by * turning on 2.5V. */ - tmpU1b = r8712_read8(padapter, EFUSE_TEST+3); + tmpU1b = r8712_read8(padapter, EFUSE_TEST + 3); r8712_write8(padapter, EFUSE_TEST + 3, tmpU1b | 0x80); msleep(20); r8712_write8(padapter, EFUSE_TEST + 3, diff --git a/drivers/staging/rtl8712/usb_ops.c b/drivers/staging/rtl8712/usb_ops.c index c03508d935f2..856f257bb77e 100644 --- a/drivers/staging/rtl8712/usb_ops.c +++ b/drivers/staging/rtl8712/usb_ops.c @@ -47,11 +47,11 @@ static u8 usb_read8(struct intf_hdl *pintfhdl, u32 addr) request = 0x05; requesttype = 0x01; /* read_in */ index = 0; - wvalue = (u16)(addr&0x0000ffff); + wvalue = (u16)(addr & 0x0000ffff); len = 1; r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, requesttype); - return (u8)(le32_to_cpu(data)&0x0ff); + return (u8)(le32_to_cpu(data) & 0x0ff); } static u16 usb_read16(struct intf_hdl *pintfhdl, u32 addr) @@ -67,11 +67,11 @@ static u16 usb_read16(struct intf_hdl *pintfhdl, u32 addr) request = 0x05; requesttype = 0x01; /* read_in */ index = 0; - wvalue = (u16)(addr&0x0000ffff); + wvalue = (u16)(addr & 0x0000ffff); len = 2; r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, requesttype); - return (u16)(le32_to_cpu(data)&0xffff); + return (u16)(le32_to_cpu(data) & 0xffff); } static u32 usb_read32(struct intf_hdl *pintfhdl, u32 addr) @@ -87,7 +87,7 @@ static u32 usb_read32(struct intf_hdl *pintfhdl, u32 addr) request = 0x05; requesttype = 0x01; /* read_in */ index = 0; - wvalue = (u16)(addr&0x0000ffff); + wvalue = (u16)(addr & 0x0000ffff); len = 4; r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, requesttype); @@ -107,10 +107,10 @@ static void usb_write8(struct intf_hdl *pintfhdl, u32 addr, u8 val) request = 0x05; requesttype = 0x00; /* write_out */ index = 0; - wvalue = (u16)(addr&0x0000ffff); + wvalue = (u16)(addr & 0x0000ffff); len = 1; data = val; - data = cpu_to_le32(data&0x000000ff); + data = cpu_to_le32(data & 0x000000ff); r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, requesttype); } @@ -128,10 +128,10 @@ static void usb_write16(struct intf_hdl *pintfhdl, u32 addr, u16 val) request = 0x05; requesttype = 0x00; /* write_out */ index = 0; - wvalue = (u16)(addr&0x0000ffff); + wvalue = (u16)(addr & 0x0000ffff); len = 2; data = val; - data = cpu_to_le32(data&0x0000ffff); + data = cpu_to_le32(data & 0x0000ffff); r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, requesttype); } @@ -149,7 +149,7 @@ static void usb_write32(struct intf_hdl *pintfhdl, u32 addr, u32 val) request = 0x05; requesttype = 0x00; /* write_out */ index = 0; - wvalue = (u16)(addr&0x0000ffff); + wvalue = (u16)(addr & 0x0000ffff); len = 4; data = cpu_to_le32(val); r8712_usbctrl_vendorreq(pintfpriv, request, wvalue, index, &data, len, diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index f35b3b6a4b8b..489a9e6d52fc 100644 --- a/drivers/staging/rtl8712/usb_ops_linux.c +++ b/drivers/staging/rtl8712/usb_ops_linux.c @@ -281,7 +281,7 @@ u32 r8712_usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem) if (!precvbuf->pskb) return _FAIL; tmpaddr = (addr_t)precvbuf->pskb->data; - alignment = tmpaddr & (RECVBUFF_ALIGN_SZ-1); + alignment = tmpaddr & (RECVBUFF_ALIGN_SZ - 1); skb_reserve(precvbuf->pskb, (RECVBUFF_ALIGN_SZ - alignment)); precvbuf->phead = precvbuf->pskb->head; @@ -451,7 +451,7 @@ u32 r8712_usb_write_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *wmem) } /* translate DMA FIFO addr to pipehandle */ pipe = ffaddr2pipehdl(pdvobj, addr); - if (pxmitpriv->free_xmitbuf_cnt%NR_XMITBUFF == 0) + if (pxmitpriv->free_xmitbuf_cnt % NR_XMITBUFF == 0) purb->transfer_flags &= (~URB_NO_INTERRUPT); else purb->transfer_flags |= URB_NO_INTERRUPT; From 192b6a8475f8312f0d1f19a010fcca322018d14f Mon Sep 17 00:00:00 2001 From: Muhammad Falak R Wani Date: Tue, 20 Oct 2015 00:57:38 +0530 Subject: [PATCH 2157/2431] staging: octeon: Remove explicit NULL comparison Remove the explicit NULL comparison and rewrite in a compact form. Signed-off-by: Muhammad Falak R Wani Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index d78fd7b5c74c..f69fb5cc7cb8 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -678,7 +678,7 @@ static int cvm_oct_probe(struct platform_device *pdev) } cvm_oct_poll_queue = create_singlethread_workqueue("octeon-ethernet"); - if (cvm_oct_poll_queue == NULL) { + if (!cvm_oct_poll_queue) { pr_err("octeon-ethernet: Cannot create workqueue"); return -ENOMEM; } From ffca44fb93e755e3af822966ddf0a5d041d8bd93 Mon Sep 17 00:00:00 2001 From: Muhammad Falak R Wani Date: Tue, 20 Oct 2015 00:57:39 +0530 Subject: [PATCH 2158/2431] staging: octeon: Remove explicit NULL comparison Remove the explicit NULL comparison and rewrite in a compact form. Signed-off-by: Muhammad Falak R Wani Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet-tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c index 3a5d8f53831c..c053c4a47a7e 100644 --- a/drivers/staging/octeon/ethernet-tx.c +++ b/drivers/staging/octeon/ethernet-tx.c @@ -549,7 +549,7 @@ int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev) /* Get a work queue entry */ cvmx_wqe_t *work = cvmx_fpa_alloc(CVMX_FPA_WQE_POOL); - if (unlikely(work == NULL)) { + if (unlikely(!work)) { printk_ratelimited("%s: Failed to allocate a work queue entry\n", dev->name); priv->stats.tx_dropped++; From 73eee567cbdc3e2f70843a1090786ceb0391061e Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 21 Oct 2015 20:00:50 +0300 Subject: [PATCH 2159/2431] staging: octeon-usb: Replace kmalloc with kmalloc_array Replace kmalloc with specialized function kmalloc_array when the size is a multiplication of: number_of_elements * size_of_element Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon-usb/octeon-hcd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/octeon-usb/octeon-hcd.c b/drivers/staging/octeon-usb/octeon-hcd.c index 61940284311c..6f2871784ba5 100644 --- a/drivers/staging/octeon-usb/octeon-hcd.c +++ b/drivers/staging/octeon-usb/octeon-hcd.c @@ -3216,9 +3216,9 @@ static int octeon_usb_urb_enqueue(struct usb_hcd *hcd, * Allocate a structure to use for our private list of * isochronous packets. */ - iso_packet = kmalloc(urb->number_of_packets * - sizeof(struct cvmx_usb_iso_packet), - GFP_ATOMIC); + iso_packet = kmalloc_array(urb->number_of_packets, + sizeof(struct cvmx_usb_iso_packet), + GFP_ATOMIC); if (iso_packet) { int i; /* Fill the list with the data from the URB */ From 9a28617fbc99fa8276ebe88faa3d46f8fa451378 Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Fri, 23 Oct 2015 00:01:35 +0300 Subject: [PATCH 2160/2431] staging: octeon: Do not use multiple blank lines. Remove multiple blank lines. Problem found using checkpatch.pl "CHECK: Please don't use multiple blank lines". Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/octeon/ethernet-defines.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/octeon/ethernet-defines.h b/drivers/staging/octeon/ethernet-defines.h index 716400588af0..13e4cee1f86d 100644 --- a/drivers/staging/octeon/ethernet-defines.h +++ b/drivers/staging/octeon/ethernet-defines.h @@ -42,5 +42,4 @@ #define TOTAL_NUMBER_OF_PORTS (CVMX_PIP_NUM_INPUT_PORTS+1) - #endif /* __ETHERNET_DEFINES_H__ */ From 78b987879726ed61630e3ea0f567360138723e07 Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Thu, 22 Oct 2015 16:25:08 +0300 Subject: [PATCH 2161/2431] staging: skein: Add space around '%' Add space around operator '%'. Problem found using checkpatch.pl CHECK: spaces preferred around that '%' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_block.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/skein/skein_block.c b/drivers/staging/skein/skein_block.c index dda5c003ad31..45b47327e024 100644 --- a/drivers/staging/skein/skein_block.c +++ b/drivers/staging/skein/skein_block.c @@ -212,7 +212,7 @@ #undef RCNT #define RCNT (SKEIN_1024_ROUNDS_TOTAL/8) #ifdef SKEIN_LOOP /* configure how much to unroll the loop */ -#define SKEIN_UNROLL_1024 ((SKEIN_LOOP)%10) +#define SKEIN_UNROLL_1024 ((SKEIN_LOOP) % 10) #else #define SKEIN_UNROLL_1024 (0) #endif From 9efbbfada99cd553fa16f66a49b98acf011080a9 Mon Sep 17 00:00:00 2001 From: Anton Tatuev Date: Thu, 22 Oct 2015 18:37:30 +0300 Subject: [PATCH 2162/2431] skein: fix coding style Added spaces around binary operators. Signed-off-by: Tatuev Anton Signed-off-by: Greg Kroah-Hartman --- drivers/staging/skein/skein_api.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/skein/skein_api.c b/drivers/staging/skein/skein_api.c index 46a74fc40375..36f849fbba5e 100644 --- a/drivers/staging/skein/skein_api.c +++ b/drivers/staging/skein/skein_api.c @@ -50,7 +50,7 @@ int skein_init(struct skein_ctx *ctx, size_t hash_bit_len) * memory available. The beauty of C :-) . */ x = ctx->m.s256.x; - x_len = ctx->skein_size/8; + x_len = ctx->skein_size / 8; /* * If size is the same and hash bit length is zero then reuse * the save chaining variables. @@ -91,7 +91,7 @@ int skein_mac_init(struct skein_ctx *ctx, const u8 *key, size_t key_len, skein_assert_ret(ctx, SKEIN_FAIL); x = ctx->m.s256.x; - x_len = ctx->skein_size/8; + x_len = ctx->skein_size / 8; skein_assert_ret(hash_bit_len, SKEIN_BAD_HASHLEN); @@ -135,7 +135,7 @@ void skein_reset(struct skein_ctx *ctx) * memory available. The beautiy of C :-) . */ x = ctx->m.s256.x; - x_len = ctx->skein_size/8; + x_len = ctx->skein_size / 8; /* Restore the chaing variable, reset byte counter */ memcpy(x, ctx->x_save, x_len); @@ -212,7 +212,7 @@ int skein_update_bits(struct skein_ctx *ctx, const u8 *msg, /* partial byte bit mask */ mask = (u8) (1u << (7 - (msg_bit_cnt & 7))); /* apply bit padding on final byte (in the buffer) */ - up[length-1] = (u8)((up[length-1] & (0-mask))|mask); + up[length - 1] = (u8)((up[length - 1] & (0 - mask)) | mask); return SKEIN_SUCCESS; } From d59b7b68344df4a2a9eb31e0d667692bfa43a690 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:40 +0300 Subject: [PATCH 2163/2431] staging: iio: light: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/light/isl29018.c | 4 ++-- drivers/staging/iio/light/tsl2583.c | 6 +++--- drivers/staging/iio/light/tsl2x7x_core.c | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/staging/iio/light/isl29018.c b/drivers/staging/iio/light/isl29018.c index 019ba5245c23..73109dd40114 100644 --- a/drivers/staging/iio/light/isl29018.c +++ b/drivers/staging/iio/light/isl29018.c @@ -370,7 +370,7 @@ static int isl29018_write_raw(struct iio_dev *indio_dev, break; case IIO_CHAN_INFO_INT_TIME: if (chan->type == IIO_LIGHT) { - if (val != 0) { + if (val) { mutex_unlock(&chip->lock); return -EINVAL; } @@ -716,7 +716,7 @@ static int isl29018_probe(struct i2c_client *client, int dev_id = 0; indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*chip)); - if (indio_dev == NULL) { + if (!indio_dev) { dev_err(&client->dev, "iio allocation fails\n"); return -ENOMEM; } diff --git a/drivers/staging/iio/light/tsl2583.c b/drivers/staging/iio/light/tsl2583.c index df602038a4bd..3100d960fe2c 100644 --- a/drivers/staging/iio/light/tsl2583.c +++ b/drivers/staging/iio/light/tsl2583.c @@ -263,7 +263,7 @@ static int taos_get_lux(struct iio_dev *indio_dev) if ((ch0 >= chip->als_saturation) || (ch1 >= chip->als_saturation)) goto return_max; - if (ch0 == 0) { + if (!ch0) { /* have no data, so return LAST VALUE */ ret = chip->als_cur_info.lux = 0; goto out_unlock; @@ -415,7 +415,7 @@ static int taos_chip_on(struct iio_dev *indio_dev) /* determine als integration register */ als_count = (chip->taos_settings.als_time * 100 + 135) / 270; - if (als_count == 0) + if (!als_count) als_count = 1; /* ensure at least one cycle */ /* convert back to time (encompasses overrides) */ @@ -499,7 +499,7 @@ static ssize_t taos_power_state_store(struct device *dev, if (kstrtoint(buf, 0, &value)) return -EINVAL; - if (value == 0) + if (!value) taos_chip_off(indio_dev); else taos_chip_on(indio_dev); diff --git a/drivers/staging/iio/light/tsl2x7x_core.c b/drivers/staging/iio/light/tsl2x7x_core.c index bf9627ea2ffb..9dfd04855a1b 100644 --- a/drivers/staging/iio/light/tsl2x7x_core.c +++ b/drivers/staging/iio/light/tsl2x7x_core.c @@ -403,7 +403,7 @@ static int tsl2x7x_get_lux(struct iio_dev *indio_dev) goto return_max; } - if (ch0 == 0) { + if (!ch0) { /* have no data, so return LAST VALUE */ ret = chip->als_cur_info.lux; goto out_unlock; @@ -678,7 +678,7 @@ static int tsl2x7x_chip_on(struct iio_dev *indio_dev) /* determine als integration register */ als_count = (chip->tsl2x7x_settings.als_time * 100 + 135) / 270; - if (als_count == 0) + if (!als_count) als_count = 1; /* ensure at least one cycle */ /* convert back to time (encompasses overrides) */ @@ -825,7 +825,7 @@ void tsl2x7x_prox_calculate(int *data, int length, int sample_sum; int tmp; - if (length == 0) + if (!length) length = 1; sample_sum = 0; From 062f782b37059f7156e59f46c71225ba4a5efa06 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:41 +0300 Subject: [PATCH 2164/2431] staging: iio: meter: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/meter/ade7753.c | 2 +- drivers/staging/iio/meter/ade7754.c | 2 +- drivers/staging/iio/meter/ade7759.c | 2 +- drivers/staging/iio/meter/ade7854-spi.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c index 3d2e50cfe9a3..188830d7e257 100644 --- a/drivers/staging/iio/meter/ade7753.c +++ b/drivers/staging/iio/meter/ade7753.c @@ -406,7 +406,7 @@ static ssize_t ade7753_write_frequency(struct device *dev, ret = kstrtou16(buf, 10, &val); if (ret) return ret; - if (val == 0) + if (!val) return -EINVAL; mutex_lock(&indio_dev->mlock); diff --git a/drivers/staging/iio/meter/ade7754.c b/drivers/staging/iio/meter/ade7754.c index 8552c76cbbe7..664c6e5f76b1 100644 --- a/drivers/staging/iio/meter/ade7754.c +++ b/drivers/staging/iio/meter/ade7754.c @@ -438,7 +438,7 @@ static ssize_t ade7754_write_frequency(struct device *dev, ret = kstrtou16(buf, 10, &val); if (ret) return ret; - if (val == 0) + if (!val) return -EINVAL; mutex_lock(&indio_dev->mlock); diff --git a/drivers/staging/iio/meter/ade7759.c b/drivers/staging/iio/meter/ade7759.c index 23e739207027..11c1edcc1ed6 100644 --- a/drivers/staging/iio/meter/ade7759.c +++ b/drivers/staging/iio/meter/ade7759.c @@ -377,7 +377,7 @@ static ssize_t ade7759_write_frequency(struct device *dev, ret = kstrtou16(buf, 10, &val); if (ret) return ret; - if (val == 0) + if (!val) return -EINVAL; mutex_lock(&indio_dev->mlock); diff --git a/drivers/staging/iio/meter/ade7854-spi.c b/drivers/staging/iio/meter/ade7854-spi.c index 9b255a5f62c3..da774866512c 100644 --- a/drivers/staging/iio/meter/ade7854-spi.c +++ b/drivers/staging/iio/meter/ade7854-spi.c @@ -278,7 +278,7 @@ static int ade7854_spi_probe(struct spi_device *spi) struct iio_dev *indio_dev; indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); - if (indio_dev == NULL) + if (!indio_dev) return -ENOMEM; st = iio_priv(indio_dev); spi_set_drvdata(spi, indio_dev); From eee587ea87343777f51825c532462635dd2e4157 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:42 +0300 Subject: [PATCH 2165/2431] staging: iio: accel: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/accel/sca3000_ring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/accel/sca3000_ring.c b/drivers/staging/iio/accel/sca3000_ring.c index 23685e74917e..6d19e127cf40 100644 --- a/drivers/staging/iio/accel/sca3000_ring.c +++ b/drivers/staging/iio/accel/sca3000_ring.c @@ -267,7 +267,7 @@ int sca3000_configure_ring(struct iio_dev *indio_dev) struct iio_buffer *buffer; buffer = sca3000_rb_allocate(indio_dev); - if (buffer == NULL) + if (!buffer) return -ENOMEM; indio_dev->modes |= INDIO_BUFFER_HARDWARE; From e6e65f97db4ebd6a9aec26eccca2992eb638afd3 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:43 +0300 Subject: [PATCH 2166/2431] staging: iio: cdc: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/cdc/ad7150.c | 2 +- drivers/staging/iio/cdc/ad7152.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c index 636a7ee4a508..e8d0ff2d5c9b 100644 --- a/drivers/staging/iio/cdc/ad7150.c +++ b/drivers/staging/iio/cdc/ad7150.c @@ -219,7 +219,7 @@ static int ad7150_write_event_config(struct iio_dev *indio_dev, u64 event_code; /* Something must always be turned on */ - if (state == 0) + if (!state) return -EINVAL; event_code = IIO_UNMOD_EVENT_CODE(chan->type, chan->channel, type, dir); diff --git a/drivers/staging/iio/cdc/ad7152.c b/drivers/staging/iio/cdc/ad7152.c index c3d5531f73c2..485d0a5af53c 100644 --- a/drivers/staging/iio/cdc/ad7152.c +++ b/drivers/staging/iio/cdc/ad7152.c @@ -290,7 +290,7 @@ static int ad7152_write_raw(struct iio_dev *indio_dev, ret = 0; break; case IIO_CHAN_INFO_SCALE: - if (val != 0) { + if (val) { ret = -EINVAL; goto out; } From 97deb1bc1183f8d91f0ebde1403980e5f9429f6e Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:44 +0300 Subject: [PATCH 2167/2431] staging: iio: frequency: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/frequency/ad9834.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/frequency/ad9834.c b/drivers/staging/iio/frequency/ad9834.c index d02bb44fb8fc..fcffe2c11685 100644 --- a/drivers/staging/iio/frequency/ad9834.c +++ b/drivers/staging/iio/frequency/ad9834.c @@ -111,7 +111,7 @@ static ssize_t ad9834_write(struct device *dev, break; case AD9834_FSEL: case AD9834_PSEL: - if (val == 0) { + if (!val) { st->control &= ~(this_attr->address | AD9834_PIN_SW); } else if (val == 1) { st->control |= this_attr->address; From ac1640fbd833b6dfaab1cc8e08ec1e511be189a8 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:45 +0300 Subject: [PATCH 2168/2431] staging: iio: trigger: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/trigger/iio-trig-bfin-timer.c | 4 ++-- drivers/staging/iio/trigger/iio-trig-periodic-rtc.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c index 9fe48ef11473..035dd456d7d6 100644 --- a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c +++ b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c @@ -100,7 +100,7 @@ static ssize_t iio_bfin_tmr_frequency_store(struct device *dev, if (enabled) disable_gptimers(st->t->bit); - if (val == 0) + if (!val) return count; val = get_sclk() / val; @@ -125,7 +125,7 @@ static ssize_t iio_bfin_tmr_frequency_show(struct device *dev, unsigned int period = get_gptimer_period(st->t->id); unsigned long val; - if (period == 0) + if (!period) val = 0; else val = get_sclk() / get_gptimer_period(st->t->id); diff --git a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c index 2db885750fb8..00d139331261 100644 --- a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c +++ b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c @@ -39,7 +39,7 @@ static int iio_trig_periodic_rtc_set_state(struct iio_trigger *trig, bool state) dev_dbg(&trig_info->rtc->dev, "trigger frequency is %u\n", trig_info->frequency); ret = rtc_irq_set_state(trig_info->rtc, &trig_info->task, state); - if (ret == 0) + if (!ret) trig_info->state = state; return ret; From 05824120e4ff5f431370db106d1a034b3923e0db Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:46 +0300 Subject: [PATCH 2169/2431] staging: iio: gyro: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/gyro/adis16060_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/gyro/adis16060_core.c b/drivers/staging/iio/gyro/adis16060_core.c index 4c5869dd8223..80783e703f0d 100644 --- a/drivers/staging/iio/gyro/adis16060_core.c +++ b/drivers/staging/iio/gyro/adis16060_core.c @@ -67,7 +67,7 @@ static int adis16060_spi_read(struct iio_dev *indio_dev, u16 *val) * starts to place data MSB first on the DOUT line at * the 6th falling edge of SCLK */ - if (ret == 0) + if (!ret) *val = ((st->buf[0] & 0x3) << 12) | (st->buf[1] << 4) | ((st->buf[2] >> 4) & 0xF); From cd857a158abcf2ad0134e9f044ba74b2bd0b468a Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:47 +0300 Subject: [PATCH 2170/2431] staging: iio: magnetometer: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/iio/magnetometer/hmc5843_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/magnetometer/hmc5843_core.c b/drivers/staging/iio/magnetometer/hmc5843_core.c index 4aab0228a195..394bc141a1b0 100644 --- a/drivers/staging/iio/magnetometer/hmc5843_core.c +++ b/drivers/staging/iio/magnetometer/hmc5843_core.c @@ -334,7 +334,7 @@ static int hmc5843_get_scale_index(struct hmc5843_data *data, int val, int val2) { int i; - if (val != 0) + if (val) return -EINVAL; for (i = 0; i < data->variant->n_regval_to_nanoscale; i++) From fb795c68479f9ada8e5a0d5b54af18fd54a951a5 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:52 +0300 Subject: [PATCH 2171/2431] staging: dgap: remove unnecessary blank lines This patch removes the unnecessary blank lines before a closed bracket and after an open bracket. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 44 ------------------------------------- 1 file changed, 44 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index ca64126618ed..2d36ea563fd5 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -514,7 +514,6 @@ static uint dgap_config_get_num_prts(struct board_t *bd) return 0; for (p = bd->bd_config; p; p = p->next) { - switch (p->type) { case BNODE: /* @@ -547,7 +546,6 @@ static char *dgap_create_config_string(struct board_t *bd, char *string) } for (p = bd->bd_config; p; p = p->next) { - switch (p->type) { case LNODE: *ptr = '\0'; @@ -1446,7 +1444,6 @@ static void dgap_parity_scan(struct channel_t *ch, unsigned char *cbuf, *cout++ = c; if (ch->pscan_savechar == 0x0) { - if (c == 0x0) { ch->ch_err_break++; *fout++ = TTY_BREAK; @@ -1536,7 +1533,6 @@ static void dgap_input(struct channel_t *ch) !(ch->ch_tun.un_flags & UN_ISOPEN) || !(tp->termios.c_cflag & CREAD) || (ch->ch_tun.un_flags & UN_CLOSING)) { - writew(head, &(bs->rx_tail)); writeb(1, &(bs->idata)); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); @@ -1618,7 +1614,6 @@ static void dgap_input(struct channel_t *ch) * of data the card actually has pending... */ while (n) { - s = ((head >= tail) ? head : ch->ch_rsize) - tail; s = min(s, n); @@ -1668,7 +1663,6 @@ static void dgap_input(struct channel_t *ch) if (ld) tty_ldisc_deref(ld); - } static void dgap_write_wakeup(struct board_t *bd, struct channel_t *ch, @@ -1739,7 +1733,6 @@ static void dgap_carrier(struct channel_t *ch) * Test for a VIRTUAL carrier transition to HIGH. */ if (((ch->ch_flags & CH_FCAR) == 0) && (virt_carrier == 1)) { - /* * When carrier rises, wake any threads waiting * for carrier in the open routine. @@ -1753,7 +1746,6 @@ static void dgap_carrier(struct channel_t *ch) * Test for a PHYSICAL carrier transition to HIGH. */ if (((ch->ch_flags & CH_CD) == 0) && (phys_carrier == 1)) { - /* * When carrier rises, wake any threads waiting * for carrier in the open routine. @@ -1775,7 +1767,6 @@ static void dgap_carrier(struct channel_t *ch) if ((virt_carrier == 0) && ((ch->ch_flags & CH_CD) != 0) && (phys_carrier == 0)) { - /* * When carrier drops: * @@ -1867,7 +1858,6 @@ static int dgap_event(struct board_t *bd) * Loop to process all the events in the buffer. */ while (tail != head) { - /* * Get interrupt information. */ @@ -1910,7 +1900,6 @@ static int dgap_event(struct board_t *bd) * Process received data. */ if (reason & IFDATA) { - /* * ALL LOCKS *MUST* BE DROPPED BEFORE CALLING INPUT! * input could send some data to ld, which in turn @@ -1949,7 +1938,6 @@ static int dgap_event(struct board_t *bd) * Process break. */ if (reason & IFBREAK) { - if (ch->ch_tun.un_tty) { /* A break has been indicated */ ch->ch_err_break++; @@ -2025,7 +2013,6 @@ static void dgap_poll_tasklet(unsigned long data) * If board is ready, parse deeper to see if there is anything to do. */ if (bd->state == BOARD_READY) { - struct ev_t __iomem *eaddr; if (!bd->re_map_membase) { @@ -2269,7 +2256,6 @@ static void dgap_poll_handler(ulong dummy) */ if ((dgap_numboards == 1) || (num_online_cpus() <= 1)) { for (i = 0; i < dgap_numboards; i++) { - brd = dgap_board[i]; if (brd->state == BOARD_FAILED) @@ -2413,7 +2399,6 @@ static void dgap_cmdb(struct channel_t *ch, u8 cmd, u8 byte1, * is outlandish, declare the FEP dead. */ for (count = dgap_count ;;) { - head = readw(&(cm_addr->cm_head)); tail = readw(&(cm_addr->cm_tail)); @@ -2496,7 +2481,6 @@ static void dgap_cmdw(struct channel_t *ch, u8 cmd, u16 word, uint ncmds) * is outlandish, declare the FEP dead. */ for (count = dgap_count ;;) { - head = readw(&(cm_addr->cm_head)); tail = readw(&(cm_addr->cm_tail)); @@ -2591,7 +2575,6 @@ static void dgap_cmdw_ext(struct channel_t *ch, u16 cmd, u16 word, uint ncmds) * is outlandish, declare the FEP dead. */ for (count = dgap_count ;;) { - head = readw(&(cm_addr->cm_head)); tail = readw(&(cm_addr->cm_tail)); @@ -2711,7 +2694,6 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) * If baud rate is zero, flush queues, and set mval to drop DTR. */ if ((ch->ch_c_cflag & (CBAUD)) == 0) { - /* flush rx */ head = readw(&(ch->ch_bs->rx_head)); writew(head, &(ch->ch_bs->rx_tail)); @@ -3042,7 +3024,6 @@ static int dgap_block_til_ready(struct tty_struct *tty, struct file *file, /* Loop forever */ while (1) { - sleep_on_un_flags = 0; /* @@ -3069,7 +3050,6 @@ static int dgap_block_til_ready(struct tty_struct *tty, struct file *file, */ if (!((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_CLOSING)) { - /* * Our conditions to leave cleanly and happily: * 1) NONBLOCKING on the tty is set. @@ -3353,7 +3333,6 @@ static int dgap_wait_for_drain(struct tty_struct *tty) /* Loop until data is drained */ while (count != 0) { - count = dgap_tty_chars_in_buffer(tty); if (count == 0) @@ -3632,7 +3611,6 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, } if (n > 0) { - /* * Move rest of data. */ @@ -3641,7 +3619,6 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, memcpy_toio(vaddr, (u8 *) buf, remain); head += remain; - } if (count) { @@ -4227,7 +4204,6 @@ static int dgap_tty_digisetcustombaud(struct channel_t *ch, struct board_t *bd, return -EFAULT; if (bd->bd_flags & BD_FEP5PLUS) { - spin_lock_irqsave(&bd->bd_lock, lock_flags); spin_lock_irqsave(&ch->ch_lock, lock_flags2); @@ -4319,7 +4295,6 @@ static void dgap_tty_throttle(struct tty_struct *tty) spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); - } static void dgap_tty_unthrottle(struct tty_struct *tty) @@ -4478,7 +4453,6 @@ static int dgap_tty_open(struct tty_struct *tty, struct file *file) * Initialize if neither terminal or printer is open. */ if (!((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_ISOPEN)) { - ch->ch_mforce = 0; ch->ch_mval = 0; @@ -4595,7 +4569,6 @@ static void dgap_tty_close(struct tty_struct *tty, struct file *file) */ if ((ch->ch_open_count == 0) && !(ch->ch_digi.digi_flags & DIGI_PRINTER)) { - ch->ch_flags &= ~(CH_RXBLOCK); spin_unlock_irqrestore(&ch->ch_lock, lock_flags); @@ -4635,7 +4608,6 @@ static void dgap_tty_close(struct tty_struct *tty, struct file *file) ch->pscan_state = 0; ch->pscan_savechar = 0; ch->ch_baud_info = 0; - } /* @@ -4814,9 +4786,7 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, } switch (cmd) { - /* Here are all the standard ioctl's that we MUST implement */ - case TCSBRK: /* * TCSBRK is SVID version: non-zero arg --> no break @@ -5066,7 +5036,6 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, } switch (arg) { - case TCOON: spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); @@ -5104,7 +5073,6 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, /* set information for ditty */ if (cmd == (DIGI_SETAW)) { - spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); rc = dgap_wait_for_drain(tty); @@ -5839,14 +5807,12 @@ static ssize_t dgap_tty_name_show(struct device *d, cn = ch->ch_portnum; for (cptr = bd->bd_config; cptr; cptr = cptr->next) { - if ((cptr->type == BNODE) && ((cptr->u.board.type == APORT2_920P) || (cptr->u.board.type == APORT4_920P) || (cptr->u.board.type == APORT8_920P) || (cptr->u.board.type == PAPORT4) || (cptr->u.board.type == PAPORT8))) { - found = TRUE; if (cptr->u.board.v_start) starto = cptr->u.board.start; @@ -5875,7 +5841,6 @@ static ssize_t dgap_tty_name_show(struct device *d, } if (cptr->type == CNODE) { - for (i = 0; i < cptr->u.conc.nport; i++) { if (cn != (i + ncount)) continue; @@ -5892,7 +5857,6 @@ static ssize_t dgap_tty_name_show(struct device *d, } if (cptr->type == MNODE) { - for (i = 0; i < cptr->u.module.nport; i++) { if (cn != (i + ncount)) continue; @@ -6082,7 +6046,6 @@ static void dgap_do_fep_load(struct board_t *brd, const u8 *ufep, int len) writel(0xbfc01004, (addr + 0xc34)); writel(0x3, (addr + 0xc30)); - } /* @@ -6157,7 +6120,6 @@ static void dgap_do_reset_board(struct board_t *brd) if (check == FEPRST) break; udelay(10); - } if (i > 1000) { dev_warn(&brd->pdev->dev, @@ -6254,7 +6216,6 @@ static void dgap_get_vpd(struct board_t *brd) * the first 2 bytes (header) should be 0x55, 0xAA */ if (byte1 == 0x55 && byte2 == 0xAA) { - base_offset = 0; /* @@ -6262,7 +6223,6 @@ static void dgap_get_vpd(struct board_t *brd) * for the VPD offset. */ while (base_offset <= EXPANSION_ROM_SIZE) { - /* * Lots of magic numbers here. * @@ -6406,7 +6366,6 @@ static void dgap_create_tty_sysfs(struct un_t *un, struct device *c) return; dev_set_drvdata(c, un); - } static void dgap_remove_tty_sysfs(struct device *c) @@ -6442,7 +6401,6 @@ static int dgap_tty_register_ports(struct board_t *brd) ch = brd->channels[0]; for (i = 0; i < brd->nasync; i++, ch = brd->channels[i]) { - struct device *classp; classp = tty_port_register_device(&brd->serial_ports[i], @@ -6546,7 +6504,6 @@ static int dgap_request_irq(struct board_t *brd) * Set up our interrupt handler if we are set to do interrupts. */ if (dgap_config_get_useintr(brd) && brd->irq) { - rc = request_irq(brd->irq, dgap_intr, IRQF_SHARED, "DGAP", brd); if (!rc) @@ -6770,7 +6727,6 @@ static int dgap_tty_init(struct board_t *brd) /* Set up channel variables */ for (i = 0; i < brd->nasync; i++, ch = brd->channels[i], bs++) { - spin_lock_init(&ch->ch_lock); /* Store all our magic numbers */ From 629c7349a2e5bc6c5680c00b3e822b2384bf0523 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:53 +0300 Subject: [PATCH 2172/2431] staging: dgap: properly indent to match open paranthesis Indent parameters and arguments passed to function calls to match open paranthesis Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 55 ++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 2d36ea563fd5..f7850f426ff8 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -931,8 +931,8 @@ static int dgap_parsefile(char **in) brd->u.board.conc1++; conc_type = dgap_gettok(in); - if (conc_type == 0 || (conc_type != CX && - conc_type != EPC)) { + if (conc_type == 0 || + (conc_type != CX && conc_type != EPC)) { pr_err("failed to set a type of concentratros"); return -1; } @@ -972,8 +972,8 @@ static int dgap_parsefile(char **in) brd->u.board.module1++; module_type = dgap_gettok(in); - if (module_type == 0 || (module_type != PORTS && - module_type != MODEM)) { + if (module_type == 0 || + (module_type != PORTS && module_type != MODEM)) { pr_err("failed to set a type of module"); return -1; } @@ -1351,8 +1351,7 @@ static int dgap_remap(struct board_t *brd) if (!request_mem_region(brd->membase, 0x200000, "dgap")) return -ENOMEM; - if (!request_mem_region(brd->membase + PCI_IO_OFFSET, 0x200000, - "dgap")) + if (!request_mem_region(brd->membase + PCI_IO_OFFSET, 0x200000, "dgap")) goto err_req_mem; brd->re_map_membase = ioremap(brd->membase, 0x200000); @@ -1390,7 +1389,7 @@ static void dgap_unmap(struct board_t *brd) * the Linux line discipline way. */ static void dgap_parity_scan(struct channel_t *ch, unsigned char *cbuf, - unsigned char *fbuf, int *len) + unsigned char *fbuf, int *len) { int l = *len; int count = 0; @@ -1649,7 +1648,7 @@ static void dgap_input(struct channel_t *ch) len = tty_buffer_request_room(tp->port, len); tty_insert_flip_string_flags(tp->port, ch->ch_bd->flipbuf, - ch->ch_bd->flipflagbuf, len); + ch->ch_bd->flipflagbuf, len); } else { len = tty_buffer_request_room(tp->port, len); tty_insert_flip_string(tp->port, ch->ch_bd->flipbuf, len); @@ -2161,7 +2160,7 @@ static struct board_t *dgap_found_board(struct pci_dev *pdev, int id, /* init our poll helper tasklet */ tasklet_init(&brd->helper_tasklet, dgap_poll_tasklet, - (unsigned long) brd); + (unsigned long)brd); ret = dgap_remap(brd); if (ret) @@ -2342,7 +2341,7 @@ schedule_poller: * *=======================================================================*/ static void dgap_cmdb(struct channel_t *ch, u8 cmd, u8 byte1, - u8 byte2, uint ncmds) + u8 byte2, uint ncmds) { char __iomem *vaddr; struct __iomem cm_t *cm_addr; @@ -3011,7 +3010,7 @@ static int dgap_block_til_ready(struct tty_struct *tty, struct file *file, int sleep_on_un_flags; if (!tty || tty->magic != TTY_MAGIC || !file || !ch || - ch->magic != DGAP_CHANNEL_MAGIC) + ch->magic != DGAP_CHANNEL_MAGIC) return -EIO; un = tty->driver_data; @@ -3509,7 +3508,7 @@ static int dgap_tty_write_room(struct tty_struct *tty) * In here exists all the Transparent Print magic as well. */ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, - int count) + int count) { struct channel_t *ch; struct un_t *un; @@ -3575,7 +3574,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, */ if ((un->un_type == DGAP_PRINT) && !(ch->ch_flags & CH_PRON)) { dgap_wmove(ch, ch->ch_digi.digi_onstr, - (int) ch->ch_digi.digi_onlen); + (int)ch->ch_digi.digi_onlen); head = readw(&(bs->tx_head)) & tmask; ch->ch_flags |= CH_PRON; } @@ -3586,7 +3585,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, */ if ((un->un_type != DGAP_PRINT) && (ch->ch_flags & CH_PRON)) { dgap_wmove(ch, ch->ch_digi.digi_offstr, - (int) ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); head = readw(&(bs->tx_head)) & tmask; ch->ch_flags &= ~CH_PRON; } @@ -3644,7 +3643,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, writeb(1, &(bs->iempty)); } else { dgap_wmove(ch, ch->ch_digi.digi_offstr, - (int) ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); head = readw(&(bs->tx_head)) & tmask; ch->ch_flags &= ~CH_PRON; } @@ -3731,7 +3730,7 @@ static int dgap_tty_tiocmget(struct tty_struct *tty) * Set modem signals, called by ld. */ static int dgap_tty_tiocmset(struct tty_struct *tty, - unsigned int set, unsigned int clear) + unsigned int set, unsigned int clear) { struct board_t *bd; struct channel_t *ch; @@ -4222,7 +4221,7 @@ static int dgap_tty_digisetcustombaud(struct channel_t *ch, struct board_t *bd, * dgap_set_termios() */ static void dgap_tty_set_termios(struct tty_struct *tty, - struct ktermios *old_termios) + struct ktermios *old_termios) { struct board_t *bd; struct channel_t *ch; @@ -4385,7 +4384,7 @@ static int dgap_tty_open(struct tty_struct *tty, struct file *file) * sleep waiting for it to happen or they cancel the open. */ rc = wait_event_interruptible(brd->state_wait, - (brd->state & BOARD_READY)); + (brd->state & BOARD_READY)); if (rc) return rc; @@ -4597,7 +4596,7 @@ static void dgap_tty_close(struct tty_struct *tty, struct file *file) * have been dropped for modems to see it. */ spin_unlock_irqrestore(&ch->ch_lock, - lock_flags); + lock_flags); /* .25 second delay for dropping RTS/DTR */ schedule_timeout_interruptible(msecs_to_jiffies(250)); @@ -4615,7 +4614,7 @@ static void dgap_tty_close(struct tty_struct *tty, struct file *file) */ if ((un->un_type == DGAP_PRINT) && (ch->ch_flags & CH_PRON)) { dgap_wmove(ch, ch->ch_digi.digi_offstr, - (int) ch->ch_digi.digi_offlen); + (int)ch->ch_digi.digi_offlen); ch->ch_flags &= ~CH_PRON; } @@ -4750,7 +4749,7 @@ static void dgap_tty_flush_chars(struct tty_struct *tty) * The usual assortment of ioctl's */ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, - unsigned long arg) + unsigned long arg) { struct board_t *bd; struct channel_t *ch; @@ -5996,7 +5995,7 @@ static int dgap_test_bios(struct board_t *brd) err1 = readw(addr + SEQUENCE); err2 = readw(addr + ERROR); dev_warn(&brd->pdev->dev, "%s failed diagnostics. Error #(%x,%x).\n", - brd->name, err1, err2); + brd->name, err1, err2); brd->state = BOARD_FAILED; brd->dpastatus = BD_NOBIOS; @@ -6531,7 +6530,7 @@ static int dgap_firmware_load(struct pci_dev *pdev, int card_type, if (fw_info[card_type].conf_name) { ret = request_firmware(&fw, fw_info[card_type].conf_name, - &pdev->dev); + &pdev->dev); if (ret) { dev_err(&pdev->dev, "config file %s not found\n", fw_info[card_type].conf_name); @@ -6584,7 +6583,7 @@ static int dgap_firmware_load(struct pci_dev *pdev, int card_type, if (fw_info[card_type].bios_name) { ret = request_firmware(&fw, fw_info[card_type].bios_name, - &pdev->dev); + &pdev->dev); if (ret) { dev_err(&pdev->dev, "bios file %s not found\n", fw_info[card_type].bios_name); @@ -6601,7 +6600,7 @@ static int dgap_firmware_load(struct pci_dev *pdev, int card_type, if (fw_info[card_type].fep_name) { ret = request_firmware(&fw, fw_info[card_type].fep_name, - &pdev->dev); + &pdev->dev); if (ret) { dev_err(&pdev->dev, "dgap: fep file %s not found\n", fw_info[card_type].fep_name); @@ -6630,7 +6629,7 @@ static int dgap_firmware_load(struct pci_dev *pdev, int card_type, if (fw_info[card_type].con_name && check && vaddr) { ret = request_firmware(&fw, fw_info[card_type].con_name, - &pdev->dev); + &pdev->dev); if (ret) { dev_err(&pdev->dev, "conc file %s not found\n", fw_info[card_type].con_name); @@ -6994,8 +6993,8 @@ static int dgap_start(void) } device = device_create(dgap_class, NULL, - MKDEV(DIGI_DGAP_MAJOR, 0), - NULL, "dgap_mgmt"); + MKDEV(DIGI_DGAP_MAJOR, 0), + NULL, "dgap_mgmt"); if (IS_ERR(device)) { rc = PTR_ERR(device); goto failed_device; From 181225530e2f625869fb8ad242444d8efa8a478b Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:54 +0300 Subject: [PATCH 2173/2431] staging: dgap: remove unnecessary space after cast This patch removes unnecessary spaces after the cast. Patch done with coccinelle semantic patch: @rule0@ type t; identifier e; constant c; expression expr; @@ ( - (t) e + (t)e | - (t) c + (t)c | - (t) expr + (t)expr ) Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 88 ++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index f7850f426ff8..3cda302ef6fb 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -1412,7 +1412,7 @@ static void dgap_parity_scan(struct channel_t *ch, unsigned char *cbuf, case 0: /* No FF seen yet */ - if (c == (unsigned char) '\377') + if (c == (unsigned char)'\377') /* delete this character from stream */ ch->pscan_state = 1; else { @@ -1424,7 +1424,7 @@ static void dgap_parity_scan(struct channel_t *ch, unsigned char *cbuf, case 1: /* first FF seen */ - if (c == (unsigned char) '\377') { + if (c == (unsigned char)'\377') { /* doubled ff, transform to single ff */ *cout++ = c; *fout++ = TTY_NORMAL; @@ -1836,7 +1836,7 @@ static int dgap_event(struct board_t *bd) return -EIO; } - eaddr = (struct ev_t __iomem *) (vaddr + EVBUF); + eaddr = (struct ev_t __iomem *)(vaddr + EVBUF); /* Get our head and tail */ head = readw(&(eaddr->ev_head)); @@ -1993,7 +1993,7 @@ next: */ static void dgap_poll_tasklet(unsigned long data) { - struct board_t *bd = (struct board_t *) data; + struct board_t *bd = (struct board_t *)data; ulong lock_flags; char __iomem *vaddr; u16 head, tail; @@ -2026,7 +2026,7 @@ static void dgap_poll_tasklet(unsigned long data) if (!bd->nasync) goto out; - eaddr = (struct ev_t __iomem *) (vaddr + EVBUF); + eaddr = (struct ev_t __iomem *)(vaddr + EVBUF); /* Get our head and tail */ head = readw(&(eaddr->ev_head)); @@ -2261,7 +2261,7 @@ static void dgap_poll_handler(ulong dummy) continue; if (!brd->intr_running) /* Call the real board poller directly */ - dgap_poll_tasklet((unsigned long) brd); + dgap_poll_tasklet((unsigned long)brd); } } else { /* @@ -2314,7 +2314,7 @@ schedule_poller: new_time = dgap_poll_time - jiffies; - if ((ulong) new_time >= 2 * dgap_poll_tick) { + if ((ulong)new_time >= 2 * dgap_poll_tick) { dgap_poll_time = jiffies + dgap_jiffies_from_ms(dgap_poll_tick); } @@ -2368,7 +2368,7 @@ static void dgap_cmdb(struct channel_t *ch, u8 cmd, u8 byte1, if (!vaddr) return; - cm_addr = (struct cm_t __iomem *) (vaddr + CMDBUF); + cm_addr = (struct cm_t __iomem *)(vaddr + CMDBUF); head = readw(&(cm_addr->cm_head)); /* @@ -2383,7 +2383,7 @@ static void dgap_cmdb(struct channel_t *ch, u8 cmd, u8 byte1, * Put the data in the circular command buffer. */ writeb(cmd, (vaddr + head + CMDSTART + 0)); - writeb((u8) ch->ch_portnum, (vaddr + head + CMDSTART + 1)); + writeb((u8)ch->ch_portnum, (vaddr + head + CMDSTART + 1)); writeb(byte1, (vaddr + head + CMDSTART + 2)); writeb(byte2, (vaddr + head + CMDSTART + 3)); @@ -2451,7 +2451,7 @@ static void dgap_cmdw(struct channel_t *ch, u8 cmd, u16 word, uint ncmds) if (!vaddr) return; - cm_addr = (struct cm_t __iomem *) (vaddr + CMDBUF); + cm_addr = (struct cm_t __iomem *)(vaddr + CMDBUF); head = readw(&(cm_addr->cm_head)); /* @@ -2466,8 +2466,8 @@ static void dgap_cmdw(struct channel_t *ch, u8 cmd, u16 word, uint ncmds) * Put the data in the circular command buffer. */ writeb(cmd, (vaddr + head + CMDSTART + 0)); - writeb((u8) ch->ch_portnum, (vaddr + head + CMDSTART + 1)); - writew((u16) word, (vaddr + head + CMDSTART + 2)); + writeb((u8)ch->ch_portnum, (vaddr + head + CMDSTART + 1)); + writew((u16)word, (vaddr + head + CMDSTART + 2)); head = (head + 4) & (CMDMAX - CMDSTART - 4); @@ -2533,7 +2533,7 @@ static void dgap_cmdw_ext(struct channel_t *ch, u16 cmd, u16 word, uint ncmds) if (!vaddr) return; - cm_addr = (struct cm_t __iomem *) (vaddr + CMDBUF); + cm_addr = (struct cm_t __iomem *)(vaddr + CMDBUF); head = readw(&(cm_addr->cm_head)); /* @@ -2549,19 +2549,19 @@ static void dgap_cmdw_ext(struct channel_t *ch, u16 cmd, u16 word, uint ncmds) */ /* Write an FF to tell the FEP that we want an extended command */ - writeb((u8) 0xff, (vaddr + head + CMDSTART + 0)); + writeb((u8)0xff, (vaddr + head + CMDSTART + 0)); - writeb((u8) ch->ch_portnum, (vaddr + head + CMDSTART + 1)); - writew((u16) cmd, (vaddr + head + CMDSTART + 2)); + writeb((u8)ch->ch_portnum, (vaddr + head + CMDSTART + 1)); + writew((u16)cmd, (vaddr + head + CMDSTART + 2)); /* * If the second part of the command won't fit, * put it at the beginning of the circular buffer. */ if (((head + 4) >= ((CMDMAX - CMDSTART)) || (head & 03))) - writew((u16) word, (vaddr + CMDSTART)); + writew((u16)word, (vaddr + CMDSTART)); else - writew((u16) word, (vaddr + head + CMDSTART + 4)); + writew((u16)word, (vaddr + head + CMDSTART + 4)); head = (head + 8) & (CMDMAX - CMDSTART - 4); @@ -2859,13 +2859,13 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) cflag &= 0xffff; if (cflag != ch->ch_fepcflag) { - ch->ch_fepcflag = (u16) (cflag & 0xffff); + ch->ch_fepcflag = (u16)(cflag & 0xffff); /* * Okay to have channel and board * locks held calling this */ - dgap_cmdw(ch, SCFLAG, (u16) cflag, 0); + dgap_cmdw(ch, SCFLAG, (u16)cflag, 0); } /* Handle transition from B0 */ @@ -2906,7 +2906,7 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) ch->ch_fepiflag = iflag; /* Okay to have channel and board locks held calling this */ - dgap_cmdw(ch, SIFLAG, (u16) ch->ch_fepiflag, 0); + dgap_cmdw(ch, SIFLAG, (u16)ch->ch_fepiflag, 0); } /* @@ -2931,7 +2931,7 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) ch->ch_hflow = hflow; /* Okay to have channel and board locks held calling this */ - dgap_cmdb(ch, SHFLOW, (u8) hflow, 0xff, 0); + dgap_cmdb(ch, SHFLOW, (u8)hflow, 0xff, 0); } /* @@ -2959,7 +2959,7 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) ch->ch_mostat = mval; /* Okay to have channel and board locks held calling this */ - dgap_cmdb(ch, SMODEM, (u8) mval, D_RTS(ch)|D_DTR(ch), 0); + dgap_cmdb(ch, SMODEM, (u8)mval, D_RTS(ch) | D_DTR(ch), 0); } /* @@ -3158,7 +3158,7 @@ static void dgap_tty_flush_buffer(struct tty_struct *tty) ch->ch_flags &= ~CH_STOP; head = readw(&(ch->ch_bs->tx_head)); - dgap_cmdw(ch, FLUSHTX, (u16) head, 0); + dgap_cmdw(ch, FLUSHTX, (u16)head, 0); dgap_cmdw(ch, RESUMETX, 0, 0); if (ch->ch_tun.un_flags & (UN_LOW|UN_EMPTY)) { ch->ch_tun.un_flags &= ~(UN_LOW|UN_EMPTY); @@ -3603,7 +3603,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, n -= remain; vaddr = ch->ch_taddr + head; - memcpy_toio(vaddr, (u8 *) buf, remain); + memcpy_toio(vaddr, (u8 *)buf, remain); head = ch->ch_tstart; buf += remain; @@ -3616,7 +3616,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, vaddr = ch->ch_taddr + head; remain = n; - memcpy_toio(vaddr, (u8 *) buf, remain); + memcpy_toio(vaddr, (u8 *)buf, remain); head += remain; } @@ -3829,7 +3829,7 @@ static int dgap_tty_send_break(struct tty_struct *tty, int msec) #if 0 dgap_cmdw(ch, SBREAK, (u16) SBREAK_TIME, 0); #endif - dgap_cmdw(ch, SBREAK, (u16) msec, 0); + dgap_cmdw(ch, SBREAK, (u16)msec, 0); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); @@ -4151,7 +4151,7 @@ static int dgap_tty_digisetedelay(struct channel_t *ch, struct board_t *bd, spin_lock_irqsave(&bd->bd_lock, lock_flags); spin_lock_irqsave(&ch->ch_lock, lock_flags2); - writew((u16) new_digi, &(ch->ch_bs->edelay)); + writew((u16)new_digi, &ch->ch_bs->edelay); dgap_param(ch, bd, un->un_type); @@ -4758,7 +4758,7 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, u16 head; ulong lock_flags = 0; ulong lock_flags2 = 0; - void __user *uarg = (void __user *) arg; + void __user *uarg = (void __user *)arg; if (!tty || tty->magic != TTY_MAGIC) return -ENODEV; @@ -4810,7 +4810,7 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, spin_lock_irqsave(&ch->ch_lock, lock_flags2); if (((cmd == TCSBRK) && (!arg)) || (cmd == TCSBRKP)) - dgap_cmdw(ch, SBREAK, (u16) SBREAK_TIME, 0); + dgap_cmdw(ch, SBREAK, (u16)SBREAK_TIME, 0); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); @@ -4837,7 +4837,7 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, spin_lock_irqsave(&bd->bd_lock, lock_flags); spin_lock_irqsave(&ch->ch_lock, lock_flags2); - dgap_cmdw(ch, SBREAK, (u16) SBREAK_TIME, 0); + dgap_cmdw(ch, SBREAK, (u16)SBREAK_TIME, 0); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); @@ -4864,7 +4864,7 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, spin_lock_irqsave(&bd->bd_lock, lock_flags); spin_lock_irqsave(&ch->ch_lock, lock_flags2); - dgap_cmdw(ch, SBREAK, (u16) SBREAK_TIME, 0); + dgap_cmdw(ch, SBREAK, (u16)SBREAK_TIME, 0); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); @@ -4888,13 +4888,13 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, spin_unlock_irqrestore(&bd->bd_lock, lock_flags); return put_user(C_CLOCAL(tty) ? 1 : 0, - (unsigned long __user *) arg); + (unsigned long __user *)arg); case TIOCSSOFTCAR: spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); - rc = get_user(arg, (unsigned long __user *) arg); + rc = get_user(arg, (unsigned long __user *)arg); if (rc) return rc; @@ -4959,7 +4959,7 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, ch->ch_flags &= ~CH_STOP; head = readw(&(ch->ch_bs->tx_head)); - dgap_cmdw(ch, FLUSHTX, (u16) head, 0); + dgap_cmdw(ch, FLUSHTX, (u16)head, 0); dgap_cmdw(ch, RESUMETX, 0, 0); if (ch->ch_tun.un_flags & (UN_LOW|UN_EMPTY)) { ch->ch_tun.un_flags &= ~(UN_LOW|UN_EMPTY); @@ -5984,7 +5984,7 @@ static int dgap_test_bios(struct board_t *brd) brd->wait_for_bios = 0; while (brd->wait_for_bios < 1000) { /* Check to see if BIOS thinks board is good. (GD). */ - if (word == *(u16 *) "GD") + if (word == *(u16 *)"GD") return 0; msleep_interruptible(10); brd->wait_for_bios++; @@ -6070,12 +6070,12 @@ static int dgap_test_fep(struct board_t *brd) brd->wait_for_fep = 0; while (brd->wait_for_fep < 500) { /* Check to see if FEP is up and running now. */ - if (word == *(u16 *) "OS") { + if (word == *(u16 *)"OS") { /* * Check to see if the board can support FEP5+ commands. */ word = readw(addr + FEP5_PLUS); - if (word == *(u16 *) "5A") + if (word == *(u16 *)"5A") brd->bd_flags |= BD_FEP5PLUS; return 0; @@ -6161,8 +6161,8 @@ static void dgap_do_conc_load(struct board_t *brd, u8 *uaddr, int len) vaddr = brd->re_map_membase; - offset = readw((u16 *) (vaddr + DOWNREQ)); - to_dp = (struct downld_t *) (vaddr + (int) offset); + offset = readw((u16 *)(vaddr + DOWNREQ)); + to_dp = (struct downld_t *)(vaddr + (int)offset); memcpy_toio(to_dp, uaddr, len); /* Tell card we have data for it */ @@ -6621,7 +6621,7 @@ static int dgap_firmware_load(struct pci_dev *pdev, int card_type, * is requesting a concentrator image from us. */ if ((bd->type == PCX) || (bd->type == PEPC)) { - chk_addr = (u16 *) (vaddr + DOWNREQ); + chk_addr = (u16 *)(vaddr + DOWNREQ); /* Nonzero if FEP is requesting concentrator image. */ check = readw(chk_addr); vaddr = brd->re_map_membase; @@ -6636,7 +6636,7 @@ static int dgap_firmware_load(struct pci_dev *pdev, int card_type, return ret; } /* Put concentrator firmware loading code here */ - offset = readw((u16 *) (vaddr + DOWNREQ)); + offset = readw((u16 *)(vaddr + DOWNREQ)); memcpy_toio(offset, fw->data, fw->size); dgap_do_conc_load(brd, (char *)fw->data, fw->size) @@ -6719,8 +6719,8 @@ static int dgap_tty_init(struct board_t *brd) ch = brd->channels[0]; vaddr = brd->re_map_membase; - bs = (struct bs_t __iomem *) ((ulong) vaddr + CHANBUF); - cm = (struct cm_t __iomem *) ((ulong) vaddr + CMDBUF); + bs = (struct bs_t __iomem *)((ulong)vaddr + CHANBUF); + cm = (struct cm_t __iomem *)((ulong)vaddr + CMDBUF); brd->bd_bs = bs; From 44209c93299efbc84eb8c29827b3132bf06f7e42 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:55 +0300 Subject: [PATCH 2174/2431] staging: dgap: remove unnecessary brackets This patch removes unnecessary brackets when dealing with unary operators like '&'. Done with coccinelle semantic patch: @@ expression e; @@ ( - &(e) + &e ) Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 190 ++++++++++++++++++------------------ 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 3cda302ef6fb..5fb4554a6172 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -1509,15 +1509,15 @@ static void dgap_input(struct channel_t *ch) rmask = ch->ch_rsize - 1; - head = readw(&(bs->rx_head)); + head = readw(&bs->rx_head); head &= rmask; - tail = readw(&(bs->rx_tail)); + tail = readw(&bs->rx_tail); tail &= rmask; data_len = (head - tail) & rmask; if (data_len == 0) { - writeb(1, &(bs->idata)); + writeb(1, &bs->idata); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); return; @@ -1532,8 +1532,8 @@ static void dgap_input(struct channel_t *ch) !(ch->ch_tun.un_flags & UN_ISOPEN) || !(tp->termios.c_cflag & CREAD) || (ch->ch_tun.un_flags & UN_CLOSING)) { - writew(head, &(bs->rx_tail)); - writeb(1, &(bs->idata)); + writew(head, &bs->rx_tail); + writeb(1, &bs->idata); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); return; @@ -1543,7 +1543,7 @@ static void dgap_input(struct channel_t *ch) * If we are throttled, simply don't read any data. */ if (ch->ch_flags & CH_RXBLOCK) { - writeb(1, &(bs->idata)); + writeb(1, &bs->idata); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); return; @@ -1552,10 +1552,10 @@ static void dgap_input(struct channel_t *ch) /* * Ignore oruns. */ - tmpchar = readb(&(bs->orun)); + tmpchar = readb(&bs->orun); if (tmpchar) { ch->ch_err_overrun++; - writeb(0, &(bs->orun)); + writeb(0, &bs->orun); } /* Decide how much data we can send into the tty layer */ @@ -1590,13 +1590,13 @@ static void dgap_input(struct channel_t *ch) * space to put the data right now. */ if (!ld->ops->receive_buf) { - writew(head, &(bs->rx_tail)); + writew(head, &bs->rx_tail); len = 0; } } if (len <= 0) { - writeb(1, &(bs->idata)); + writeb(1, &bs->idata); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); if (ld) @@ -1629,8 +1629,8 @@ static void dgap_input(struct channel_t *ch) tail &= rmask; } - writew(tail, &(bs->rx_tail)); - writeb(1, &(bs->idata)); + writew(tail, &bs->rx_tail); + writeb(1, &bs->idata); ch->ch_rxcount += len; /* @@ -1839,8 +1839,8 @@ static int dgap_event(struct board_t *bd) eaddr = (struct ev_t __iomem *)(vaddr + EVBUF); /* Get our head and tail */ - head = readw(&(eaddr->ev_head)); - tail = readw(&(eaddr->ev_tail)); + head = readw(&eaddr->ev_head); + tail = readw(&eaddr->ev_tail); /* * Forget it if pointers out of range. @@ -1915,7 +1915,7 @@ static int dgap_event(struct board_t *bd) if (ch->ch_flags & CH_RACTIVE) ch->ch_flags |= CH_RENABLE; else - writeb(1, &(bs->idata)); + writeb(1, &bs->idata); if (ch->ch_flags & CH_RWAIT) { ch->ch_flags &= ~CH_RWAIT; @@ -1982,7 +1982,7 @@ next: tail = (tail + 4) & (EVMAX - EVSTART - 4); } - writew(tail, &(eaddr->ev_tail)); + writew(tail, &eaddr->ev_tail); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); return 0; @@ -2029,8 +2029,8 @@ static void dgap_poll_tasklet(unsigned long data) eaddr = (struct ev_t __iomem *)(vaddr + EVBUF); /* Get our head and tail */ - head = readw(&(eaddr->ev_head)); - tail = readw(&(eaddr->ev_tail)); + head = readw(&eaddr->ev_head); + tail = readw(&eaddr->ev_tail); /* * If there is an event pending. Go service it. @@ -2369,7 +2369,7 @@ static void dgap_cmdb(struct channel_t *ch, u8 cmd, u8 byte1, return; cm_addr = (struct cm_t __iomem *)(vaddr + CMDBUF); - head = readw(&(cm_addr->cm_head)); + head = readw(&cm_addr->cm_head); /* * Forget it if pointers out of range. @@ -2389,7 +2389,7 @@ static void dgap_cmdb(struct channel_t *ch, u8 cmd, u8 byte1, head = (head + 4) & (CMDMAX - CMDSTART - 4); - writew(head, &(cm_addr->cm_head)); + writew(head, &cm_addr->cm_head); /* * Wait if necessary before updating the head @@ -2398,8 +2398,8 @@ static void dgap_cmdb(struct channel_t *ch, u8 cmd, u8 byte1, * is outlandish, declare the FEP dead. */ for (count = dgap_count ;;) { - head = readw(&(cm_addr->cm_head)); - tail = readw(&(cm_addr->cm_tail)); + head = readw(&cm_addr->cm_head); + tail = readw(&cm_addr->cm_tail); n = (head - tail) & (CMDMAX - CMDSTART - 4); @@ -2452,7 +2452,7 @@ static void dgap_cmdw(struct channel_t *ch, u8 cmd, u16 word, uint ncmds) return; cm_addr = (struct cm_t __iomem *)(vaddr + CMDBUF); - head = readw(&(cm_addr->cm_head)); + head = readw(&cm_addr->cm_head); /* * Forget it if pointers out of range. @@ -2471,7 +2471,7 @@ static void dgap_cmdw(struct channel_t *ch, u8 cmd, u16 word, uint ncmds) head = (head + 4) & (CMDMAX - CMDSTART - 4); - writew(head, &(cm_addr->cm_head)); + writew(head, &cm_addr->cm_head); /* * Wait if necessary before updating the head @@ -2480,8 +2480,8 @@ static void dgap_cmdw(struct channel_t *ch, u8 cmd, u16 word, uint ncmds) * is outlandish, declare the FEP dead. */ for (count = dgap_count ;;) { - head = readw(&(cm_addr->cm_head)); - tail = readw(&(cm_addr->cm_tail)); + head = readw(&cm_addr->cm_head); + tail = readw(&cm_addr->cm_tail); n = (head - tail) & (CMDMAX - CMDSTART - 4); @@ -2534,7 +2534,7 @@ static void dgap_cmdw_ext(struct channel_t *ch, u16 cmd, u16 word, uint ncmds) return; cm_addr = (struct cm_t __iomem *)(vaddr + CMDBUF); - head = readw(&(cm_addr->cm_head)); + head = readw(&cm_addr->cm_head); /* * Forget it if pointers out of range. @@ -2565,7 +2565,7 @@ static void dgap_cmdw_ext(struct channel_t *ch, u16 cmd, u16 word, uint ncmds) head = (head + 8) & (CMDMAX - CMDSTART - 4); - writew(head, &(cm_addr->cm_head)); + writew(head, &cm_addr->cm_head); /* * Wait if necessary before updating the head @@ -2574,8 +2574,8 @@ static void dgap_cmdw_ext(struct channel_t *ch, u16 cmd, u16 word, uint ncmds) * is outlandish, declare the FEP dead. */ for (count = dgap_count ;;) { - head = readw(&(cm_addr->cm_head)); - tail = readw(&(cm_addr->cm_tail)); + head = readw(&cm_addr->cm_head); + tail = readw(&cm_addr->cm_tail); n = (head - tail) & (CMDMAX - CMDSTART - 4); @@ -2613,7 +2613,7 @@ static void dgap_wmove(struct channel_t *ch, char *buf, uint cnt) * Check parameters. */ bs = ch->ch_bs; - head = readw(&(bs->tx_head)); + head = readw(&bs->tx_head); /* * If pointers are out of range, just return. @@ -2645,7 +2645,7 @@ static void dgap_wmove(struct channel_t *ch, char *buf, uint cnt) memcpy_toio(taddr, buf, n); head += cnt; - writew(head, &(bs->tx_head)); + writew(head, &bs->tx_head); } /* @@ -2694,12 +2694,12 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) */ if ((ch->ch_c_cflag & (CBAUD)) == 0) { /* flush rx */ - head = readw(&(ch->ch_bs->rx_head)); - writew(head, &(ch->ch_bs->rx_tail)); + head = readw(&ch->ch_bs->rx_head); + writew(head, &ch->ch_bs->rx_tail); /* flush tx */ - head = readw(&(ch->ch_bs->tx_head)); - writew(head, &(ch->ch_bs->tx_tail)); + head = readw(&ch->ch_bs->tx_head); + writew(head, &ch->ch_bs->tx_tail); ch->ch_flags |= (CH_BAUD0); @@ -2965,7 +2965,7 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) /* * Read modem signals, and then call carrier function. */ - ch->ch_mistat = readb(&(ch->ch_bs->m_stat)); + ch->ch_mistat = readb(&ch->ch_bs->m_stat); dgap_carrier(ch); /* @@ -3157,7 +3157,7 @@ static void dgap_tty_flush_buffer(struct tty_struct *tty) spin_lock_irqsave(&ch->ch_lock, lock_flags2); ch->ch_flags &= ~CH_STOP; - head = readw(&(ch->ch_bs->tx_head)); + head = readw(&ch->ch_bs->tx_head); dgap_cmdw(ch, FLUSHTX, (u16)head, 0); dgap_cmdw(ch, RESUMETX, 0, 0); if (ch->ch_tun.un_flags & (UN_LOW|UN_EMPTY)) { @@ -3251,15 +3251,15 @@ static int dgap_tty_chars_in_buffer(struct tty_struct *tty) tmask = (ch->ch_tsize - 1); /* Get Transmit queue pointers */ - thead = readw(&(bs->tx_head)) & tmask; - ttail = readw(&(bs->tx_tail)) & tmask; + thead = readw(&bs->tx_head) & tmask; + ttail = readw(&bs->tx_tail) & tmask; /* Get tbusy flag */ - tbusy = readb(&(bs->tbusy)); + tbusy = readb(&bs->tbusy); /* Get Command queue pointers */ - chead = readw(&(ch->ch_cm->cm_head)); - ctail = readw(&(ch->ch_cm->cm_tail)); + chead = readw(&ch->ch_cm->cm_head); + ctail = readw(&ch->ch_cm->cm_tail); spin_unlock_irqrestore(&ch->ch_lock, lock_flags2); spin_unlock_irqrestore(&bd->bd_lock, lock_flags); @@ -3295,7 +3295,7 @@ static int dgap_tty_chars_in_buffer(struct tty_struct *tty) if (tbusy != 0) { spin_lock_irqsave(&ch->ch_lock, lock_flags); un->un_flags |= UN_EMPTY; - writeb(1, &(bs->iempty)); + writeb(1, &bs->iempty); spin_unlock_irqrestore(&ch->ch_lock, lock_flags); } @@ -3340,7 +3340,7 @@ static int dgap_wait_for_drain(struct tty_struct *tty) /* Set flag waiting for drain */ spin_lock_irqsave(&ch->ch_lock, lock_flags); un->un_flags |= UN_EMPTY; - writeb(1, &(bs->iempty)); + writeb(1, &bs->iempty); spin_unlock_irqrestore(&ch->ch_lock, lock_flags); /* Go to sleep till we get woken up */ @@ -3419,13 +3419,13 @@ static inline void dgap_set_firmware_event(struct un_t *un, unsigned int event) if ((event & UN_LOW) != 0) { if ((un->un_flags & UN_LOW) == 0) { un->un_flags |= UN_LOW; - writeb(1, &(bs->ilow)); + writeb(1, &bs->ilow); } } if ((event & UN_LOW) != 0) { if ((un->un_flags & UN_EMPTY) == 0) { un->un_flags |= UN_EMPTY; - writeb(1, &(bs->iempty)); + writeb(1, &bs->iempty); } } } @@ -3462,8 +3462,8 @@ static int dgap_tty_write_room(struct tty_struct *tty) spin_lock_irqsave(&ch->ch_lock, lock_flags); tmask = ch->ch_tsize - 1; - head = readw(&(bs->tx_head)) & tmask; - tail = readw(&(bs->tx_tail)) & tmask; + head = readw(&bs->tx_head) & tmask; + tail = readw(&bs->tx_tail) & tmask; ret = tail - head - 1; if (ret < 0) @@ -3575,7 +3575,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, if ((un->un_type == DGAP_PRINT) && !(ch->ch_flags & CH_PRON)) { dgap_wmove(ch, ch->ch_digi.digi_onstr, (int)ch->ch_digi.digi_onlen); - head = readw(&(bs->tx_head)) & tmask; + head = readw(&bs->tx_head) & tmask; ch->ch_flags |= CH_PRON; } @@ -3586,7 +3586,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, if ((un->un_type != DGAP_PRINT) && (ch->ch_flags & CH_PRON)) { dgap_wmove(ch, ch->ch_digi.digi_offstr, (int)ch->ch_digi.digi_offlen); - head = readw(&(bs->tx_head)) & tmask; + head = readw(&bs->tx_head) & tmask; ch->ch_flags &= ~CH_PRON; } @@ -3623,7 +3623,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, if (count) { ch->ch_txcount += count; head &= tmask; - writew(head, &(bs->tx_head)); + writew(head, &bs->tx_head); } dgap_set_firmware_event(un, UN_LOW | UN_EMPTY); @@ -3636,15 +3636,15 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, * Otherwise turn it off right now. */ if ((un->un_type == DGAP_PRINT) && (ch->ch_flags & CH_PRON)) { - tail = readw(&(bs->tx_tail)) & tmask; + tail = readw(&bs->tx_tail) & tmask; if (tail != head) { un->un_flags |= UN_EMPTY; - writeb(1, &(bs->iempty)); + writeb(1, &bs->iempty); } else { dgap_wmove(ch, ch->ch_digi.digi_offstr, (int)ch->ch_digi.digi_offlen); - head = readw(&(bs->tx_head)) & tmask; + head = readw(&bs->tx_head) & tmask; ch->ch_flags &= ~CH_PRON; } } @@ -3700,7 +3700,7 @@ static int dgap_tty_tiocmget(struct tty_struct *tty) spin_lock_irqsave(&ch->ch_lock, lock_flags); - mstat = readb(&(ch->ch_bs->m_stat)); + mstat = readb(&ch->ch_bs->m_stat); /* Append any outbound signals that might be pending... */ mstat |= ch->ch_mostat; @@ -3911,7 +3911,7 @@ static int dgap_get_modem_info(struct channel_t *ch, unsigned int __user *value) spin_lock_irqsave(&ch->ch_lock, lock_flags); - mstat = readb(&(ch->ch_bs->m_stat)); + mstat = readb(&ch->ch_bs->m_stat); /* Append any outbound signals that might be pending... */ mstat |= ch->ch_mostat; @@ -4123,7 +4123,7 @@ static int dgap_tty_digigetedelay(struct tty_struct *tty, int __user *retinfo) memset(&tmp, 0, sizeof(tmp)); spin_lock_irqsave(&ch->ch_lock, lock_flags); - tmp = readw(&(ch->ch_bs->edelay)); + tmp = readw(&ch->ch_bs->edelay); spin_unlock_irqrestore(&ch->ch_lock, lock_flags); if (copy_to_user(retinfo, &tmp, sizeof(*retinfo))) @@ -4458,8 +4458,8 @@ static int dgap_tty_open(struct tty_struct *tty, struct file *file) /* * Flush input queue. */ - head = readw(&(bs->rx_head)); - writew(head, &(bs->rx_tail)); + head = readw(&bs->rx_head); + writew(head, &bs->rx_tail); ch->ch_flags = 0; ch->pscan_state = 0; @@ -4943,9 +4943,9 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, if ((arg == TCIFLUSH) || (arg == TCIOFLUSH)) { if (!(un->un_type == DGAP_PRINT)) { - head = readw(&(ch->ch_bs->rx_head)); - writew(head, &(ch->ch_bs->rx_tail)); - writeb(0, &(ch->ch_bs->orun)); + head = readw(&ch->ch_bs->rx_head); + writew(head, &ch->ch_bs->rx_tail); + writeb(0, &ch->ch_bs->orun); } } @@ -4958,7 +4958,7 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, } ch->ch_flags &= ~CH_STOP; - head = readw(&(ch->ch_bs->tx_head)); + head = readw(&ch->ch_bs->tx_head); dgap_cmdw(ch, FLUSHTX, (u16)head, 0); dgap_cmdw(ch, RESUMETX, 0, 0); if (ch->ch_tun.un_flags & (UN_LOW|UN_EMPTY)) { @@ -4994,8 +4994,8 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, if (cmd == TCSETSF) { /* flush rx */ ch->ch_flags &= ~CH_STOP; - head = readw(&(ch->ch_bs->rx_head)); - writew(head, &(ch->ch_bs->rx_tail)); + head = readw(&ch->ch_bs->rx_head); + writew(head, &ch->ch_bs->rx_tail); } /* now wait for all the output to drain */ @@ -5899,31 +5899,31 @@ static struct attribute *dgap_sysfs_tty_entries[] = { static void dgap_create_ports_sysfiles(struct board_t *bd) { dev_set_drvdata(&bd->pdev->dev, bd); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_state); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_baud); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_msignals); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_iflag); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_cflag); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_oflag); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_lflag); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_digi_flag); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_rxcount); - device_create_file(&(bd->pdev->dev), &dev_attr_ports_txcount); + device_create_file(&bd->pdev->dev, &dev_attr_ports_state); + device_create_file(&bd->pdev->dev, &dev_attr_ports_baud); + device_create_file(&bd->pdev->dev, &dev_attr_ports_msignals); + device_create_file(&bd->pdev->dev, &dev_attr_ports_iflag); + device_create_file(&bd->pdev->dev, &dev_attr_ports_cflag); + device_create_file(&bd->pdev->dev, &dev_attr_ports_oflag); + device_create_file(&bd->pdev->dev, &dev_attr_ports_lflag); + device_create_file(&bd->pdev->dev, &dev_attr_ports_digi_flag); + device_create_file(&bd->pdev->dev, &dev_attr_ports_rxcount); + device_create_file(&bd->pdev->dev, &dev_attr_ports_txcount); } /* removes all the sys files created for that port */ static void dgap_remove_ports_sysfiles(struct board_t *bd) { - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_state); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_baud); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_msignals); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_iflag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_cflag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_oflag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_lflag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_digi_flag); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_rxcount); - device_remove_file(&(bd->pdev->dev), &dev_attr_ports_txcount); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_state); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_baud); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_msignals); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_iflag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_cflag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_oflag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_lflag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_digi_flag); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_rxcount); + device_remove_file(&bd->pdev->dev, &dev_attr_ports_txcount); } /* @@ -6759,12 +6759,12 @@ static int dgap_tty_init(struct board_t *brd) ch->ch_dsr = DM_DSR; } - ch->ch_taddr = vaddr + (ioread16(&(ch->ch_bs->tx_seg)) << 4); - ch->ch_raddr = vaddr + (ioread16(&(ch->ch_bs->rx_seg)) << 4); + ch->ch_taddr = vaddr + (ioread16(&ch->ch_bs->tx_seg) << 4); + ch->ch_raddr = vaddr + (ioread16(&ch->ch_bs->rx_seg) << 4); ch->ch_tx_win = 0; ch->ch_rx_win = 0; - ch->ch_tsize = readw(&(ch->ch_bs->tx_max)) + 1; - ch->ch_rsize = readw(&(ch->ch_bs->rx_max)) + 1; + ch->ch_tsize = readw(&ch->ch_bs->tx_max) + 1; + ch->ch_rsize = readw(&ch->ch_bs->rx_max) + 1; ch->ch_tstart = 0; ch->ch_rstart = 0; @@ -6782,7 +6782,7 @@ static int dgap_tty_init(struct board_t *brd) dgap_cmdw(ch, SRHIGH, 7 * ch->ch_rsize / 8, 0); - ch->ch_mistat = readb(&(ch->ch_bs->m_stat)); + ch->ch_mistat = readb(&ch->ch_bs->m_stat); init_waitqueue_head(&ch->ch_flags_wait); init_waitqueue_head(&ch->ch_tun.un_flags_wait); @@ -6790,18 +6790,18 @@ static int dgap_tty_init(struct board_t *brd) /* Turn on all modem interrupts for now */ modem = (DM_CD | DM_DSR | DM_CTS | DM_RI); - writeb(modem, &(ch->ch_bs->m_int)); + writeb(modem, &ch->ch_bs->m_int); /* * Set edelay to 0 if interrupts are turned on, * otherwise set edelay to the usual 100. */ if (brd->intr_used) - writew(0, &(ch->ch_bs->edelay)); + writew(0, &ch->ch_bs->edelay); else - writew(100, &(ch->ch_bs->edelay)); + writew(100, &ch->ch_bs->edelay); - writeb(1, &(ch->ch_bs->idata)); + writeb(1, &ch->ch_bs->idata); } return 0; From a9108b71b1f7335149d68fbd166af7236ed60373 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:56 +0300 Subject: [PATCH 2175/2431] staging: dgap: add spaces around binary operator '|' This patch adds spaces around binary operator '|'. Done with coccinelle semantic patch: @@ identifier x, y, z; @@ ( - x|y|z + x | y | z | - x|y + x | y ) Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 58 ++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 5fb4554a6172..bad355100825 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -140,21 +140,21 @@ struct board_id { }; static struct board_id dgap_ids[] = { - { PPCM, PCI_DEV_XEM_NAME, 64, (T_PCXM|T_PCLITE|T_PCIBUS) }, - { PCX, PCI_DEV_CX_NAME, 128, (T_CX|T_PCIBUS) }, - { PCX, PCI_DEV_CX_IBM_NAME, 128, (T_CX|T_PCIBUS) }, - { PEPC, PCI_DEV_EPCJ_NAME, 224, (T_EPC|T_PCIBUS) }, - { APORT2_920P, PCI_DEV_920_2_NAME, 2, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { APORT4_920P, PCI_DEV_920_4_NAME, 4, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { APORT8_920P, PCI_DEV_920_8_NAME, 8, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { PAPORT8, PCI_DEV_XR_NAME, 8, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { PAPORT8, PCI_DEV_XRJ_NAME, 8, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { PAPORT8, PCI_DEV_XR_422_NAME, 8, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { PAPORT8, PCI_DEV_XR_IBM_NAME, 8, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { PAPORT8, PCI_DEV_XR_SAIP_NAME, 8, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { PAPORT8, PCI_DEV_XR_BULL_NAME, 8, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { APORT8_920P, PCI_DEV_920_8_HP_NAME, 8, (T_PCXR|T_PCLITE|T_PCIBUS) }, - { PPCM, PCI_DEV_XEM_HP_NAME, 64, (T_PCXM|T_PCLITE|T_PCIBUS) }, + {PPCM, PCI_DEV_XEM_NAME, 64, (T_PCXM | T_PCLITE | T_PCIBUS)}, + {PCX, PCI_DEV_CX_NAME, 128, (T_CX | T_PCIBUS) }, + {PCX, PCI_DEV_CX_IBM_NAME, 128, (T_CX | T_PCIBUS) }, + {PEPC, PCI_DEV_EPCJ_NAME, 224, (T_EPC | T_PCIBUS) }, + {APORT2_920P, PCI_DEV_920_2_NAME, 2, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {APORT4_920P, PCI_DEV_920_4_NAME, 4, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {APORT8_920P, PCI_DEV_920_8_NAME, 8, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {PAPORT8, PCI_DEV_XR_NAME, 8, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {PAPORT8, PCI_DEV_XRJ_NAME, 8, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {PAPORT8, PCI_DEV_XR_422_NAME, 8, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {PAPORT8, PCI_DEV_XR_IBM_NAME, 8, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {PAPORT8, PCI_DEV_XR_SAIP_NAME, 8, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {PAPORT8, PCI_DEV_XR_BULL_NAME, 8, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {APORT8_920P, PCI_DEV_920_8_HP_NAME, 8, (T_PCXR | T_PCLITE | T_PCIBUS)}, + {PPCM, PCI_DEV_XEM_HP_NAME, 64, (T_PCXM | T_PCLITE | T_PCIBUS)}, {0,} /* 0 terminated list. */ }; @@ -2704,7 +2704,7 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) ch->ch_flags |= (CH_BAUD0); /* Drop RTS and DTR */ - ch->ch_mval &= ~(D_RTS(ch)|D_DTR(ch)); + ch->ch_mval &= ~(D_RTS(ch) | D_DTR(ch)); mval = D_DTR(ch) | D_RTS(ch); ch->ch_baud_info = 0; @@ -2725,7 +2725,7 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) /* Handle transition from B0 */ if (ch->ch_flags & CH_BAUD0) { ch->ch_flags &= ~(CH_BAUD0); - ch->ch_mval |= (D_RTS(ch)|D_DTR(ch)); + ch->ch_mval |= (D_RTS(ch) | D_DTR(ch)); } mval = D_DTR(ch) | D_RTS(ch); @@ -2871,7 +2871,7 @@ static int dgap_param(struct channel_t *ch, struct board_t *bd, u32 un_type) /* Handle transition from B0 */ if (ch->ch_flags & CH_BAUD0) { ch->ch_flags &= ~(CH_BAUD0); - ch->ch_mval |= (D_RTS(ch)|D_DTR(ch)); + ch->ch_mval |= (D_RTS(ch) | D_DTR(ch)); } mval = D_DTR(ch) | D_RTS(ch); } @@ -3160,12 +3160,12 @@ static void dgap_tty_flush_buffer(struct tty_struct *tty) head = readw(&ch->ch_bs->tx_head); dgap_cmdw(ch, FLUSHTX, (u16)head, 0); dgap_cmdw(ch, RESUMETX, 0, 0); - if (ch->ch_tun.un_flags & (UN_LOW|UN_EMPTY)) { - ch->ch_tun.un_flags &= ~(UN_LOW|UN_EMPTY); + if (ch->ch_tun.un_flags & (UN_LOW | UN_EMPTY)) { + ch->ch_tun.un_flags &= ~(UN_LOW | UN_EMPTY); wake_up_interruptible(&ch->ch_tun.un_flags_wait); } - if (ch->ch_pun.un_flags & (UN_LOW|UN_EMPTY)) { - ch->ch_pun.un_flags &= ~(UN_LOW|UN_EMPTY); + if (ch->ch_pun.un_flags & (UN_LOW | UN_EMPTY)) { + ch->ch_pun.un_flags &= ~(UN_LOW | UN_EMPTY); wake_up_interruptible(&ch->ch_pun.un_flags_wait); } @@ -3981,7 +3981,7 @@ static int dgap_set_modem_info(struct channel_t *ch, struct board_t *bd, break; case TIOCMSET: - ch->ch_mforce = D_DTR(ch)|D_RTS(ch); + ch->ch_mforce = D_DTR(ch) | D_RTS(ch); if (arg & TIOCM_RTS) ch->ch_mval |= D_RTS(ch); @@ -4588,8 +4588,8 @@ static void dgap_tty_close(struct tty_struct *tty, struct file *file) * If we have HUPCL set, lower DTR and RTS */ if (ch->ch_c_cflag & HUPCL) { - ch->ch_mostat &= ~(D_RTS(ch)|D_DTR(ch)); - dgap_cmdb(ch, SMODEM, 0, D_DTR(ch)|D_RTS(ch), 0); + ch->ch_mostat &= ~(D_RTS(ch) | D_DTR(ch)); + dgap_cmdb(ch, SMODEM, 0, D_DTR(ch) | D_RTS(ch), 0); /* * Go to sleep to ensure RTS/DTR @@ -4961,12 +4961,12 @@ static int dgap_tty_ioctl(struct tty_struct *tty, unsigned int cmd, head = readw(&ch->ch_bs->tx_head); dgap_cmdw(ch, FLUSHTX, (u16)head, 0); dgap_cmdw(ch, RESUMETX, 0, 0); - if (ch->ch_tun.un_flags & (UN_LOW|UN_EMPTY)) { - ch->ch_tun.un_flags &= ~(UN_LOW|UN_EMPTY); + if (ch->ch_tun.un_flags & (UN_LOW | UN_EMPTY)) { + ch->ch_tun.un_flags &= ~(UN_LOW | UN_EMPTY); wake_up_interruptible(&ch->ch_tun.un_flags_wait); } - if (ch->ch_pun.un_flags & (UN_LOW|UN_EMPTY)) { - ch->ch_pun.un_flags &= ~(UN_LOW|UN_EMPTY); + if (ch->ch_pun.un_flags & (UN_LOW | UN_EMPTY)) { + ch->ch_pun.un_flags &= ~(UN_LOW | UN_EMPTY); wake_up_interruptible(&ch->ch_pun.un_flags_wait); } if (waitqueue_active(&tty->write_wait)) From 614a2910900084d93fe80611a3d14c62edc0ea10 Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Tue, 20 Oct 2015 23:29:31 +0300 Subject: [PATCH 2176/2431] staging: netlogic: Do not use multiple blank lines. Remove multiple blank lines. Problem found using checkpatch.pl "CHECK: Please don't use multiple blank lines" Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/netlogic/platform_net.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/netlogic/platform_net.c b/drivers/staging/netlogic/platform_net.c index e914147d7379..7806c2bc3af3 100644 --- a/drivers/staging/netlogic/platform_net.c +++ b/drivers/staging/netlogic/platform_net.c @@ -58,7 +58,6 @@ #define MAX_NUM_XLS_GMAC 8 #define MAX_NUM_XLR_GMAC 4 - static u32 xlr_gmac_offsets[] = { NETLOGIC_IO_GMAC_0_OFFSET, NETLOGIC_IO_GMAC_1_OFFSET, NETLOGIC_IO_GMAC_2_OFFSET, NETLOGIC_IO_GMAC_3_OFFSET, From ada40ba4e5b5f6a668a4d684e12a8b097fbafee3 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 21 Oct 2015 20:00:49 +0300 Subject: [PATCH 2177/2431] staging: rtl8712: Replace kmalloc with kmalloc_array Replace kmalloc with specialized function kmalloc_array when the size is a multiplication of: number_of_elements * size_of_element Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8712/rtl871x_mlme.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index b22dbd5311e7..a4a002b55128 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.c +++ b/drivers/staging/rtl8712/rtl871x_mlme.c @@ -62,8 +62,8 @@ static sint _init_mlme_priv(struct _adapter *padapter) _init_queue(&(pmlmepriv->scanned_queue)); set_scanned_network_val(pmlmepriv, 0); memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid)); - pbuf = kmalloc(MAX_BSS_CNT * (sizeof(struct wlan_network)), - GFP_ATOMIC); + pbuf = kmalloc_array(MAX_BSS_CNT, sizeof(struct wlan_network), + GFP_ATOMIC); if (pbuf == NULL) return _FAIL; pmlmepriv->free_bss_buf = pbuf; From 8c182ae20791d638c07ff499709c4a1d4697bd7c Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Wed, 21 Oct 2015 18:32:38 +0100 Subject: [PATCH 2178/2431] staging: rtl8723au: core: rtw_wlan_util: fix misleading indentation For loop is outside of the else branch of the above conditional statement. Fixing misleading indentation. Fix a smatch warning: drivers/staging/rtl8723au/core/rtw_wlan_util.c:528 WMMOnAssocRsp23a() warn: curly braces intended? Signed-off-by: Luis de Bethencourt Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_wlan_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8723au/core/rtw_wlan_util.c b/drivers/staging/rtl8723au/core/rtw_wlan_util.c index 5e8736092720..cc2b84be9774 100644 --- a/drivers/staging/rtl8723au/core/rtw_wlan_util.c +++ b/drivers/staging/rtl8723au/core/rtw_wlan_util.c @@ -525,7 +525,7 @@ void WMMOnAssocRsp23a(struct rtw_adapter *padapter) else aSifsTime = 16; - for (i = 0; i < 4; i++) { + for (i = 0; i < 4; i++) { ACI = (pmlmeinfo->WMM_param.ac_param[i].ACI_AIFSN >> 5) & 0x03; ACM = (pmlmeinfo->WMM_param.ac_param[i].ACI_AIFSN >> 4) & 0x01; From 0cddeac382a2ac846adef88eac7e254f38046d4b Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Thu, 22 Oct 2015 00:48:29 +0300 Subject: [PATCH 2179/2431] staging: vt6655: Add space around '*' Add space around operator '*'. Problem found using checkpatch.pl CHECK: spaces preferred around that '*' (ctx:VxV) Signed-off-by: Burcin Akalin Reviewed-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 76ad036cbbaa..b31a6184e794 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -238,7 +238,7 @@ bool CARDbSetPhyParameter(struct vnt_private *priv, u8 bb_type) BBbWriteEmbedded(priv, 0x88, 0x03); bySlot = C_SLOT_SHORT; bySIFS = C_SIFS_A; - byDIFS = C_SIFS_A + 2*C_SLOT_SHORT; + byDIFS = C_SIFS_A + 2 * C_SLOT_SHORT; byCWMaxMin = 0xA4; } else if (bb_type == BB_TYPE_11B) { MACvSetBBType(priv->PortOffset, BB_TYPE_11B); From 68535a16bb6a8878ad8731867a85f8acd9337e7d Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Thu, 22 Oct 2015 15:15:39 +0300 Subject: [PATCH 2180/2431] staging: vt6655: Add space around '*' Add space around operator '*'. Problem found using checkpatch.pl CHECK: spaces preferred around that '*' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index b31a6184e794..b6730a8068fd 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -286,7 +286,7 @@ bool CARDbSetPhyParameter(struct vnt_private *priv, u8 bb_type) if (priv->bShortSlotTime) { bySlot = C_SLOT_SHORT; - byDIFS = C_SIFS_BG + 2*C_SLOT_SHORT; + byDIFS = C_SIFS_BG + 2 * C_SLOT_SHORT; } else { bySlot = C_SLOT_LONG; byDIFS = C_SIFS_BG + 2*C_SLOT_LONG; From 0d07fc1b027403d05b223c7c99ace996de8cad7b Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Tue, 20 Oct 2015 23:06:45 -0700 Subject: [PATCH 2181/2431] staging: r8723au: replace printk() with netdev_err() Replace printk() with netdev_err() for uniform error reporting. Issue found by checkpatch. Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_cmd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8723au/core/rtw_cmd.c b/drivers/staging/rtl8723au/core/rtw_cmd.c index 46aea16cbf78..d3479e1544eb 100644 --- a/drivers/staging/rtl8723au/core/rtw_cmd.c +++ b/drivers/staging/rtl8723au/core/rtw_cmd.c @@ -236,7 +236,8 @@ int rtw_enqueue_cmd23a(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) res = queue_work(pcmdpriv->wq, &cmd_obj->work); if (!res) { - printk(KERN_ERR "%s: Call to queue_work() failed\n", __func__); + netdev_err(pcmdpriv->padapter->pnetdev, + "%s: Call to queue_work() failed\n", __func__); res = _FAIL; } else res = _SUCCESS; From c12e8dba0ebfcfe398e520ecbb3f1cb97b6d1a6c Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Tue, 20 Oct 2015 23:08:27 -0700 Subject: [PATCH 2182/2431] staging: r8723au: move constant to right of comparison test Move constant to right of comparison test to improve readability. Addresses checkpatch.pl: WARNING: Comparisons should place the constant on the right side of the test Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8723au/core/rtw_cmd.c b/drivers/staging/rtl8723au/core/rtw_cmd.c index d3479e1544eb..f8f637685986 100644 --- a/drivers/staging/rtl8723au/core/rtw_cmd.c +++ b/drivers/staging/rtl8723au/core/rtw_cmd.c @@ -621,7 +621,7 @@ int rtw_disassoc_cmd23a(struct rtw_adapter *padapter, u32 deauth_timeout_ms, } else { /* no need to enqueue, do the cmd hdl directly and free cmd parameter */ - if (H2C_SUCCESS != disconnect_hdl23a(padapter, (u8 *)param)) + if (disconnect_hdl23a(padapter, (u8 *)param) != H2C_SUCCESS) res = _FAIL; kfree(param); } From 164e265b63db867b77d0f57ddf2324bbdaa151f3 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Tue, 20 Oct 2015 23:09:37 -0700 Subject: [PATCH 2183/2431] staging: r8723au: add & use local variable to simplify references Add local variable scanned_queue to rtw_createbss_cmd23a_callback() and use it (5x) to simplify references. Addresses checkpatch.pl WARNING: line over 80 characters Signed-off-by: Alison Schofield Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/core/rtw_cmd.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8723au/core/rtw_cmd.c b/drivers/staging/rtl8723au/core/rtw_cmd.c index f8f637685986..3035bb864c39 100644 --- a/drivers/staging/rtl8723au/core/rtw_cmd.c +++ b/drivers/staging/rtl8723au/core/rtw_cmd.c @@ -1343,6 +1343,7 @@ void rtw_createbss_cmd23a_callback(struct rtw_adapter *padapter, struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)pcmd->parmbuf; struct wlan_network *tgt_network = &pmlmepriv->cur_network; + struct rtw_queue *scanned_queue = &pmlmepriv->scanned_queue; if (pcmd->res != H2C_SUCCESS) { RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, @@ -1372,19 +1373,19 @@ void rtw_createbss_cmd23a_callback(struct rtw_adapter *padapter, spin_unlock_bh(&pmlmepriv->lock); } else { pwlan = rtw_alloc_network(pmlmepriv, GFP_KERNEL); - spin_lock_bh(&pmlmepriv->scanned_queue.lock); + spin_lock_bh(&scanned_queue->lock); if (!pwlan) { - pwlan = rtw_get_oldest_wlan_network23a(&pmlmepriv->scanned_queue); + pwlan = rtw_get_oldest_wlan_network23a(scanned_queue); if (!pwlan) { RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, "Error: can't get pwlan in rtw23a_joinbss_event_cb\n"); - spin_unlock_bh(&pmlmepriv->scanned_queue.lock); + spin_unlock_bh(&scanned_queue->lock); goto createbss_cmd_fail; } pwlan->last_scanned = jiffies; } else { list_add_tail(&pwlan->list, - &pmlmepriv->scanned_queue.queue); + &scanned_queue->queue); } pnetwork->Length = get_wlan_bssid_ex_sz(pnetwork); @@ -1403,9 +1404,9 @@ void rtw_createbss_cmd23a_callback(struct rtw_adapter *padapter, clr_fwstate(pmlmepriv, _FW_UNDER_LINKING); - spin_unlock_bh(&pmlmepriv->scanned_queue.lock); /* we will set _FW_LINKED when there is one more sat to join us (rtw_stassoc_event_callback23a) */ + spin_unlock_bh(&scanned_queue->lock); } createbss_cmd_fail: From 598af18afc6dd5753622b8e4c9a6cd185f4223a4 Mon Sep 17 00:00:00 2001 From: Dennis Menschel Date: Wed, 21 Oct 2015 23:16:53 +0200 Subject: [PATCH 2184/2431] staging: fbtft: use MIPI DCS for ST7789V and C-Berry28 This patch makes use of the standard MIPI Display Command Set to remove redundant entries from the command enum of the ST7789V display controller and also some of the magic constants found in the init sequence of the C-Berry28 display. Signed-off-by: Dennis Menschel Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fbtft/fb_st7789v.c | 39 ++++++++++------------------ drivers/staging/fbtft/fbtft_device.c | 7 ++--- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/drivers/staging/fbtft/fb_st7789v.c b/drivers/staging/fbtft/fb_st7789v.c index dc7d304fccc6..22a7b5b2219f 100644 --- a/drivers/staging/fbtft/fb_st7789v.c +++ b/drivers/staging/fbtft/fb_st7789v.c @@ -18,6 +18,7 @@ #include #include #include +#include